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