《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 其他 > 設(shè)計(jì)應(yīng)用 > 基于nRF24L01和Actel FPGA的智能探測系統(tǒng)設(shè)計(jì)
基于nRF24L01和Actel FPGA的智能探測系統(tǒng)設(shè)計(jì)
維庫
摘要: 設(shè)計(jì)了基于nRF24L01無線數(shù)據(jù)傳輸芯片和Fusion StartKit開發(fā)板的智能探測系統(tǒng),。通過開啟nRF24L01的ACK PAYLOAD功能實(shí)現(xiàn)車載系統(tǒng)與上位機(jī)之間的雙向通信,,采用Actel公司帶有APB3總線的8051S軟核在Fusion StartKit開發(fā)板上構(gòu)建片上系統(tǒng),使用MFC編寫Windows環(huán)境下的人機(jī)交互界面,,實(shí)現(xiàn)了具有實(shí)時(shí)數(shù)據(jù)傳送,、自動(dòng)避障,、遠(yuǎn)程操控等功能的智能探測系統(tǒng)。
Abstract:
Key words :
  

  目前一些惡劣或危險(xiǎn)的環(huán)境人類仍然無法置身其中進(jìn)行現(xiàn)場檢測,,如出現(xiàn)險(xiǎn)情的礦井地道,、地形崎嶇的巖洞等,很難取得現(xiàn)場的參數(shù),。在這種情況下只有借助于智能探測裝置,。因智能小車控制方便、行動(dòng)靈活,,對比其他載體工具更容易勝任探測任務(wù),,因此成為各種探測儀器的首選工具。

  本文設(shè)計(jì)的智能探測系統(tǒng)以小車為載體,,將所測得的現(xiàn)場參數(shù)通過nRF24L01無線模塊實(shí)時(shí)傳回上位機(jī),,具有快速靈活的特點(diǎn),;在實(shí)際工作時(shí)可左右轉(zhuǎn)向和后退,自動(dòng)躲避障礙物,;同時(shí)該小車操控方便,,可通過MFC搭建的人機(jī)交互界面利用鼠標(biāo)和鍵盤對小車進(jìn)行遠(yuǎn)程控制。

1,、系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)

  該系統(tǒng)基于Actel FPGA實(shí)現(xiàn),,采用兩塊Fusi。nStartkit開發(fā)板,,一塊作為車載控制板,,另一塊作為中轉(zhuǎn)板。車載控制板負(fù)責(zé)采集溫度,、濕度,、板載電壓、當(dāng)前路況以及人體檢測等現(xiàn)場信息,,驅(qū)動(dòng)小車運(yùn)行,,同時(shí)通過無線發(fā)送現(xiàn)場信息以及接收上位機(jī)的控制命令。中轉(zhuǎn)板負(fù)責(zé)將接收到的無線信號通過串口轉(zhuǎn)發(fā)給PC機(jī),,同時(shí)將PC機(jī)由串口返回的控制指令利用無線模塊發(fā)送給車載控制板,。PC機(jī)上采用MFC編寫人機(jī)交互界面,顯示小車所在環(huán)境的相關(guān)信息,,同時(shí)提供鼠標(biāo),、鍵盤等完善的操控手段。系統(tǒng)結(jié)構(gòu)如圖1所示,。


圖1 系統(tǒng)結(jié)構(gòu)框圖

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。

  2.2 Core 80515架構(gòu)

  Core 8051S是Actel公司推出的基于APB3總線的8051lP核,,兼容8051的全部指令,,同時(shí)又具備許多51單片機(jī)所沒有的獨(dú)特功能:

  (1)具有可配置的JTAG接口調(diào)試功能,,可利用Flash_Pro下載器作為其調(diào)試工具,;優(yōu)化指令執(zhí)行速度,內(nèi)部設(shè)置流水線,,可實(shí)現(xiàn)單個(gè)時(shí)鐘周期執(zhí)行一條指令,,且是普通51單片機(jī)的12倍。

 ?。?)采用APB3外設(shè)總線結(jié)構(gòu)和SER寄存器內(nèi)存映射方式管理外設(shè),,將外部擴(kuò)展的64 KB數(shù)據(jù)空間中的最高4 KB作為APB3外設(shè)的寄存器內(nèi)存映射地址,,每個(gè)APB3外設(shè)占據(jù)256 B的地址,因此最多可添加16個(gè)外設(shè),。

 ?。?)使用CoreConsole軟件以圖形化界面的方式添加Core8051S以及其他外設(shè),既直觀又方便,。

  

 

 

  圖3是以CoreConsole開發(fā)的,、基于Core805lS和APB3總線的50PC系統(tǒng)的典型架構(gòu)。該軟件的開發(fā)流程與Altera公司基于NIOS Ⅱ處理器的soPc開發(fā)流程類似,,同時(shí)又具有其獨(dú)特優(yōu)勢:在系統(tǒng)不復(fù)雜,、控制部分遠(yuǎn)多于計(jì)算處理時(shí),使用Core805⊥s可靈活迅速地進(jìn)行開發(fā),,通過安裝ISA—Actel5 1為Keil提供調(diào)試驅(qū)動(dòng)可直接使用Keil編寫代碼并進(jìn)行在線程序調(diào)試,,而優(yōu)化后的指令執(zhí)行速度可滿足大部分應(yīng)用的要求。

圖3 CoreConsole下基于Core8051S的開發(fā)實(shí)例

  本系統(tǒng)設(shè)計(jì)步驟:

 ?。?)利用CoreConsole以圖形化方式設(shè)計(jì)片上系統(tǒng)所需的總線及外設(shè),,包括SPI、PWM,、GP10,、UART等模塊;配置各模塊與APB3總線之間的連接關(guān)系,,正確分配外設(shè)地址,;然后生成.Ⅴ文件導(dǎo)人Actel集成開發(fā)環(huán)境Libero。

 ?。?)使用Libero的Flash Memory System Builder將Fu_S10n內(nèi)部的Flash模塊配置為Core8051S的外部程序空問,。如果有必要還可以將Fusi。n StartKit開發(fā)板上的SRAM作為Core8051S的外部數(shù)據(jù)空間使用,。

 ?。?)將工程編譯綜合后下載到開發(fā)板上,通過Keil編寫程序并進(jìn)行調(diào)試,。

3,、系統(tǒng)軟件設(shè)計(jì)

  3.1車載控制系統(tǒng)軟件設(shè)計(jì)

  車載系統(tǒng)是本系統(tǒng)的核心部分,它擔(dān)負(fù)著現(xiàn)場環(huán)境探測,,遠(yuǎn)距離數(shù)據(jù)傳輸以及未知區(qū)域檢測等重要功能,。因此該部分的設(shè)計(jì)對可靠性和穩(wěn)定性要求較高。系統(tǒng)的軟件流程圖如圖4所示,。

圖4車載控制系統(tǒng)流程圖

  車載系統(tǒng)軟件包含兩部分功能:采集現(xiàn)場各種參數(shù)和實(shí)現(xiàn)各種運(yùn)行模式,。通過溫濕度傳感器和人體紅外傳感器采集溫濕度值以及現(xiàn)場環(huán)境是否有人信號;通過無線返,;回參數(shù)決定當(dāng)前小車的運(yùn)行模式,,包括自動(dòng)運(yùn)行模式,、半遙控模式和全遙控模式。自動(dòng)運(yùn)行模式下小車會根據(jù)采集到的光電對管組信息分析當(dāng)前的路況,,從而作出相應(yīng)運(yùn)行路徑修正處理,;半遙控模式下通過鼠標(biāo)控制Windows界面的參數(shù)來控制小車的行動(dòng);全遙控模式下通過操控鍵盤可直接操控小車運(yùn)行,。

  車載系統(tǒng)自動(dòng)運(yùn)行時(shí),,通過內(nèi)部算法進(jìn)行路徑選擇和障礙規(guī)避。由于光電對管組信息相對較少,,故采用查表映射法進(jìn)行舵機(jī)電機(jī)驅(qū)動(dòng)控制,,即將光電對管組采集到的信息進(jìn)行分類,根據(jù)不同的信息賦予小車不同的電機(jī)和舵機(jī)驅(qū)動(dòng)值,,而光電對管組采集得到的信息為6 bit數(shù)據(jù),,也就是數(shù)值為0~63,將其作為數(shù)組的下標(biāo),,在數(shù)組內(nèi)容中根據(jù)下標(biāo)所表征的類型設(shè)置不同的經(jīng)驗(yàn)值,,通過大量的運(yùn)行測試即可得到比較理想的參數(shù)。車載系統(tǒng)檢測到小障礙物時(shí),,查表得到舵機(jī)電機(jī)參數(shù),,轉(zhuǎn)過一定角度繞開障礙物繼續(xù)運(yùn)行;檢測到較大障礙物且無法繞過時(shí),,車載系統(tǒng)倒車回到安全區(qū)域繼續(xù)運(yùn)行,。

  由于光電對管組存在干擾信號,在算法上進(jìn)行了如下濾波處理:利用記憶功能將前幾次的行進(jìn)路線保存,,通過與當(dāng)前輸出狀態(tài)的比對,,判斷是否為干擾信息以決定是否摒棄當(dāng)前控制量。

  以上算法保證了車載系統(tǒng)在運(yùn)行中出錯(cuò)概率降到最低,。

  3.2人機(jī)交互界面設(shè)計(jì)

  A機(jī)交互界面是采用微軟基礎(chǔ)類(MFC)開發(fā)的基于對活框架構(gòu)的應(yīng)用程序。采用CMSComm類處理中轉(zhuǎn)板與PC之間的串口通信,,同時(shí)通過截獲軟件系統(tǒng)的消息傳遞函數(shù)來實(shí)現(xiàn)對鍵盤值的判斷,。

  本文詳細(xì)介紹了nRF24L01無線芯片的DPL和ACKPAYLOAD等功能,實(shí)現(xiàn)了車載系統(tǒng)與上位機(jī)之間的雙向通信,,使用Actel公司的CoreConsole工具構(gòu)建SoPC片上系統(tǒng),,同時(shí)設(shè)計(jì)了PC機(jī)上人機(jī)交互界面,完善了系統(tǒng)的運(yùn)行和控制,,實(shí)現(xiàn)了具有實(shí)時(shí)數(shù)據(jù)傳送,、自動(dòng)避障、遠(yuǎn)程操控等功能的智能探測系統(tǒng),。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。