基于nRF24L01和Actel FPGA的智能探測系統設計
2、系統硬件設計
2、1無線數據傳輸芯片nRF24L01
2.1.1芯片簡介H
nRF24L01是挪威NorDic公司的單片2.4 GHz無線收發一體芯片,有多達125個頻道可供選擇,支持1 Mb/s和2 Mb/s傳輸速率。該芯片采用SPI接口進行數據讀寫和參數配置,以寄存器映射方式對各個寄存器進行管理,同時具有自動重傳、動態有效信息長度(DPL)、應答信號攜帶有效信息(ACK PAYLOAD)等高級功能。
2.1.2功能
動態有效信息長度(DPL)指的是發送端的nRF24L01芯片通過寫人有效數據區的數據長度決定當前一幀數據的大小,而接收端則通過接收到的數據幀中的控制域信息而不是寄存器中定義的數據長度提取有效數據。這個功能極大地提高了無線信道的使用率,同時減少了冗余數據的傳播,降低了數據在空中滯留的時間和數據被污染的概率。配合nRF24L0l的CRC校驗和自動重傳功能,在有效地降低數據誤碼率的同時保證了數據傳輸的時效性。
應答信號攜帶有效信息(ACK PAYLOAD)指nRF24L01芯片在開啟自動重傳和DPL的基礎上實現的雙向通信功能。圖2為一對無線模塊之間的一次攜帶應答有效信息的數據傳輸過程。主發送模塊(PTX)發送完第1幀數據后,自動置為接收模式,等待主接收模塊(PRX)發送應答信號或攜帶有效數據的應答信號。主接收模塊收到主發送模塊發送的第1個數據幀后,若此時有需要附加的有效數據,則在發送完ACK信號后繼續發送有效數據。而主發送模塊收到ACK信號后繼續接收有效信號,直到空中沒有殘留的無線信號再開始發送第2幀信號。
使用ACK PAYLOAD可以實現車載系統和PC機的雙向通信,該功能很好地解決了手動切換無線收發狀態導致雙方互相等待的問題,同時只在需要對車載控制板進行控制的時刻附帶應答有效信息,可以減少不必要的通信過程,大大提高了系統穩定性。
圖2攜帶ACK PAYLOAD的1次數據傳輸示意圖
2.1.3實現功能的配置方法
要實現nRF24L01的ACK PAYLOAD功能需要經過以下步驟:首先進行無線模塊的基本配置,包括發送接收模式的選擇(CONFIG)、開啟自動重傳功能(EN_AA)、接收地址使能(EN_ADDR)、設置重傳時問不為零(SET-UP RETR)等;然后同時開啟DPL和ACK PAYLOAD功能,要實現這兩個功能,必須在完成第一步之后用nRF24L01白帶的ACTIVATE命令加上0x73數據開啟默認隱藏的兩個寄存器FEATURE和DYNPD。通過對這兩個寄存器的設置就可以實現數據的雙向通信。但要注意,接收端開啟DPL后要使用R_RX PL WID命令讀取當前數據幀的有效數據長度,同時使用W ACK PAY-LOAD命令將ACK PAYLOAD寫入FIFO。
評論