天天看點

[nRF51822] 13、淺談nRF51822和NRF24LE1/NRF24LU1/NRF24L01經典2.4G子產品無線通信配置與流程

前言: 

  nRF51可以支援基于2.4G的互相通信、與NRF24LE1的通信、與NRF24LU1的通信、與NRF24L01的通信。

一、nRF51822基于2.4G和nRF51822通信

  其中nRF51互相通信和之前用51操作nRF24L01很像,涉及到的隻有幾個核心的函數:

nrf_esb_init---初始化ESB

nrf_esb_enable---使能ESB

nrf_esb_add_packet_to_tx_fifo---将資料送入發送隊列

  如果想知道發送是否成功等狀态可以用:

void nrf_esb_tx_success(uint32_t tx_pipe, int32_t rssi)// If an ACK was received, we send another packet.

void nrf_esb_tx_failed(uint32_t tx_pipe)

void nrf_esb_rx_data_ready(uint32_t rx_pipe, int32_t rssi)

void nrf_esb_disabled(void)

  整個架構比較簡單:

[nRF51822] 13、淺談nRF51822和NRF24LE1/NRF24LU1/NRF24L01經典2.4G子產品無線通信配置與流程

二、NRF51822和NRF24LE1/NRF24LU1/NRF24L01通信

  其中nrf51和其他三種類型的2.4G子產品通信類似,比其自身通信稍微複雜,其配置流程如下:

[nRF51822] 13、淺談nRF51822和NRF24LE1/NRF24LU1/NRF24L01經典2.4G子產品無線通信配置與流程

bool nrf_esb_set_enabled_prx_pipes(uint32_t pipes)

用于使能接收通道,第0位對應通道1,依次類推,可同時使能多個通道

bool nrf_esb_set_crc_length (nrf_esb_crc_length_t length)

設定CRC校驗,務必使發送方和接收方一緻

bool nrf_esb_set_output_power(nrf_esb_output_power_t power)

設定發送功率,可選功率從4~-20,4為步數

bool nrf_esb_set_channel (uint32_t channel )

設定無線通訊頻率。無線頻率=(2400 + channel) MHz,0 <= channel <= 125。

bool nrf_esb_set_datarate(nrf_esb_datarate_t datarate)

設定通信速率:可選250Kbps,1M,2M

NRF51822 2.4G 通訊比較麻煩的就是位址設定,和NRF24LXX 系列的無線晶片的位址有所不同,NRF51822 2.4G 通訊位址是由兩部分組成,配置位址時需要設定BASEn 和PREFIXn 寄存器,同時要指定BASEn 中位址長度。另外,NRF51822 的位址每個位元組内的位必須首位對調才能和NRF24LXX 系列的一緻。

NRF24LE1 端位址設定:

uint8_t TX_ADDRESS[5] = {0xE5,0xE4,0xE3,0xE2,0xE1}; //位址定義

hal_nrf_set_address(HAL_NRF_TX,TX_ADDRESS); //設定NRF24LE1 發射位址

NRF51822 端位址設定:

(void)nrf_esb_set_address_prefix_byte(0,0xE5);

(void)nrf_esb_set_base_address_0(0xE1E2E3E4);

(void)nrf_esb_set_base_address_length(NRF_ESB_BASE_ADDRESS_LENGTH_4B);

void nrf_esb_enable_dyn_ack (void )

使能動态資料長度

 ESB:Enhanced ShockBurst,增強型突發模式。

Enhanced ShockBurstTM 模式比ShockBurst 模式多了一個确認資料傳輸的信号,保證資料傳輸的可靠性。EnhancedShockBurst 收發模式下,使用片内的先入先出堆棧區,資料低速從微控制器送入,但高速(1Mbps)發射,這樣可以盡量節能與射頻協定相關的所有高速信号處理都在片内進行,這種做法有三大好處:

盡量節能。

低的系統費用(低速微處理器也能進行高速射頻發射)。

資料在空中停留時間短,降低了碰撞幾率,提供了抗幹擾性能。

後記:nRF51822運作在傳統2.4G模式下可以和之前的一些2.4G子產品相容,進而做出更個性化的通信網絡。但更多的時候nRF51822用在BLE領域,比如bong手環、百度手環等一些裝置上。但是其運作在BLE模式下需要搭載BLE協定棧,其複雜程度要比跑在經典2.4G模式下發雜得多。

@nRF51822基礎實驗系列:

<a href="http://www.cnblogs.com/zjutlitao/p/5750342.html" target="_blank">[nRF51822] 7、基礎實驗代碼解析大全(前十)</a>

<a href="http://www.cnblogs.com/zjutlitao/p/5752520.html" target="_blank">[nRF51822] 8、基礎實驗代碼解析大全 · 實驗11 - PPI</a>

<a href="http://www.cnblogs.com/zjutlitao/p/5753079.html" target="_blank">[nRF51822] 9、基礎實驗代碼解析大全 · 實驗12 - ADC</a>

<a href="http://www.cnblogs.com/zjutlitao/p/5753994.html" target="_blank">[nRF51822] 10、基礎實驗代碼解析大全 · 實驗15 - RTC</a>

<a href="http://www.cnblogs.com/zjutlitao/p/5755203.html">[nRF51822] 11、基礎實驗代碼解析大全 · 實驗16 - 内部FLASH讀寫</a>

<a href="http://www.cnblogs.com/zjutlitao/p/5755227.html">[nRF51822] 12、基礎實驗代碼解析大全 · 實驗19 - PWM</a>

本文轉自beautifulzzzz部落格園部落格,原文連結:http://www.cnblogs.com/zjutlitao/p/5760295.html,如需轉載請自行聯系原作者

繼續閱讀