[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和NRF24LE1/NRF24LU1/NRF24L01通信

  其中nrf51和其他三種類型的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 )

使能動態數據長度

 


 ESBEnhanced ShockBurst,增強型突發模式。

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

  • 盡量節能。
  • 低的系統費用(低速微處理器也能進行高速射頻發射)。
  • 數據在空中停留時間短,降低了碰撞幾率,提供了抗干擾性能。

 

 

后記:nRF51822運行在傳統2.4G模式下可以和之前的一些2.4G模塊兼容,從而做出更個性化的通信網絡。但更多的時候nRF51822用在BLE領域,比如bong手環、百度手環等一些設備上。但是其運行在BLE模式下需要搭載BLE協議棧,其復雜程度要比跑在經典2.4G模式下發雜得多。

 

 

@nRF51822基礎實驗系列:


[nRF51822] 7、基礎實驗代碼解析大全(前十)

[nRF51822] 8、基礎實驗代碼解析大全 · 實驗11 - PPI

[nRF51822] 9、基礎實驗代碼解析大全 · 實驗12 - ADC

[nRF51822] 10、基礎實驗代碼解析大全 · 實驗15 - RTC

[nRF51822] 11、基礎實驗代碼解析大全 · 實驗16 - 內部FLASH讀寫

[nRF51822] 12、基礎實驗代碼解析大全 · 實驗19 - PWM


 

 

@beautifulzzzz - 物聯網&普適計算實踐者
e-mail:beautifulzzzz@qq.com 
i-blog:blog.beautifulzzzz.com 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM