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