基于nRF24L01和Actel FPGA的智能探測系統設計

發(fā)布時(shí)間:2010-12-28 21:29    發(fā)布者:designer
關(guān)鍵詞: Actel , FPGA , nRF24L01 , 探測系統
設計了基于nRF24L01無(wú)線(xiàn)數據傳輸芯片和Fusion StartKit開(kāi)發(fā)板的智能探測系統。通過(guò)開(kāi)啟nRF24L01的ACK PAYLOAD功能實(shí)現車(chē)載系統與上位機之間的雙向通信,采用Actel公司帶有APB3總線(xiàn)的8051S軟核在Fusion StartKit開(kāi)發(fā)板上構建片上系統,使用MFC編寫(xiě)Windows環(huán)境下的人機交互界面,實(shí)現了具有實(shí)時(shí)數據傳送、自動(dòng)避障、遠程操控等功能的智能探測系統。

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

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

1、系統總體結構設計

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




圖1 系統結構框圖

2、系統硬件設計

2、1無(wú)線(xiàn)數據傳輸芯片nRF24L01

2.1.1芯片簡(jiǎn)介H

nRF24L01是挪威NorDic公司的單片2.4 GHz無(wú)線(xiàn)收發(fā)一體芯片,有多達125個(gè)頻道可供選擇,支持1 Mb/s和2 Mb/s傳輸速率。該芯片采用SPI接口進(jìn)行數據讀寫(xiě)和參數配置,以寄存器映射方式對各個(gè)寄存器進(jìn)行管理,同時(shí)具有自動(dòng)重傳、動(dòng)態(tài)有效信息長(cháng)度(DPL)、應答信號攜帶有效信息(ACK PAYLOAD)等高級功能。

2.1.2功能

動(dòng)態(tài)有效信息長(cháng)度(DPL)指的是發(fā)送端的nRF24L01芯片通過(guò)寫(xiě)人有效數據區的數據長(cháng)度決定當前一幀數據的大小,而接收端則通過(guò)接收到的數據幀中的控制域信息而不是寄存器中定義的數據長(cháng)度提取有效數據。這個(gè)功能極大地提高了無(wú)線(xiàn)信道的使用率,同時(shí)減少了冗余數據的傳播,降低了數據在空中滯留的時(shí)間和數據被污染的概率。配合nRF24L0l的CRC校驗和自動(dòng)重傳功能,在有效地降低數據誤碼率的同時(shí)保證了數據傳輸的時(shí)效性。

應答信號攜帶有效信息(ACK PAYLOAD)指nRF24L01芯片在開(kāi)啟自動(dòng)重傳和DPL的基礎上實(shí)現的雙向通信功能。圖2為一對無(wú)線(xiàn)模塊之間的一次攜帶應答有效信息的數據傳輸過(guò)程。主發(fā)送模塊(PTX)發(fā)送完第1幀數據后,自動(dòng)置為接收模式,等待主接收模塊(PRX)發(fā)送應答信號或攜帶有效數據的應答信號。主接收模塊收到主發(fā)送模塊發(fā)送的第1個(gè)數據幀后,若此時(shí)有需要附加的有效數據,則在發(fā)送完ACK信號后繼續發(fā)送有效數據。而主發(fā)送模塊收到ACK信號后繼續接收有效信號,直到空中沒(méi)有殘留的無(wú)線(xiàn)信號再開(kāi)始發(fā)送第2幀信號。

使用ACK PAYLOAD可以實(shí)現車(chē)載系統和PC機的雙向通信,該功能很好地解決了手動(dòng)切換無(wú)線(xiàn)收發(fā)狀態(tài)導致雙方互相等待的問(wèn)題,同時(shí)只在需要對車(chē)載控制板進(jìn)行控制的時(shí)刻附帶應答有效信息,可以減少不必要的通信過(guò)程,大大提高了系統穩定性。



圖2攜帶ACK PAYLOAD的1次數據傳輸示意圖

2.1.3實(shí)現功能的配置方法

要實(shí)現nRF24L01的ACK PAYLOAD功能需要經(jīng)過(guò)以下步驟:首先進(jìn)行無(wú)線(xiàn)模塊的基本配置,包括發(fā)送接收模式的選擇(CONFIG)、開(kāi)啟自動(dòng)重傳功能(EN_AA)、接收地址使能(EN_ADDR)、設置重傳時(shí)問(wèn)不為零(SET-UP RETR)等;然后同時(shí)開(kāi)啟DPL和ACK PAYLOAD功能,要實(shí)現這兩個(gè)功能,必須在完成第一步之后用nRF24L01白帶的ACTIVATE命令加上0x73數據開(kāi)啟默認隱藏的兩個(gè)寄存器FEATURE和DYNPD。通過(guò)對這兩個(gè)寄存器的設置就可以實(shí)現數據的雙向通信。但要注意,接收端開(kāi)啟DPL后要使用R_RX PL WID命令讀取當前數據幀的有效數據長(cháng)度,同時(shí)使用W ACK PAY-LOAD命令將ACK PAYLOAD寫(xiě)入FIFO。

2.2 Core 80515架構

Core 8051S是Actel公司推出的基于A(yíng)PB3總線(xiàn)的8051lP核,兼容8051的全部指令,同時(shí)又具備許多51單片機所沒(méi)有的獨特功能:

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

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

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

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



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

本系統設計步驟:

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

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

(3)將工程編譯綜合后下載到開(kāi)發(fā)板上,通過(guò)Keil編寫(xiě)程序并進(jìn)行調試。

3、系統軟件設計

3.1車(chē)載控制系統軟件設計

車(chē)載系統是本系統的核心部分,它擔負著(zhù)現場(chǎng)環(huán)境探測,遠距離數據傳輸以及未知區域檢測等重要功能。因此該部分的設計對可靠性和穩定性要求較高。系統的軟件流程圖如圖4所示。



圖4車(chē)載控制系統流程圖

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

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

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

以上算法保證了車(chē)載系統在運行中出錯概率降到最低。

3.2人機交互界面設計

A機交互界面是采用微軟基礎類(lèi)(MFC)開(kāi)發(fā)的基于對活框架構的應用程序。采用CMSComm類(lèi)處理中轉板與PC之間的串口通信,同時(shí)通過(guò)截獲軟件系統的消息傳遞函數來(lái)實(shí)現對鍵盤(pán)值的判斷。

本文詳細介紹了nRF24L01無(wú)線(xiàn)芯片的DPL和ACKPAYLOAD等功能,實(shí)現了車(chē)載系統與上位機之間的雙向通信,使用Actel公司的CoreConsole工具構建SoPC片上系統,同時(shí)設計了PC機上人機交互界面,完善了系統的運行和控制,實(shí)現了具有實(shí)時(shí)數據傳送、自動(dòng)避障、遠程操控等功能的智能探測系統。
本文地址:http://selenalain.com/thread-48157-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
QQ42142951 發(fā)表于 2011-7-25 10:42:29
Nordic是專(zhuān)業(yè)的射頻品牌,公司絕對優(yōu)勢配合提供NRF24L01/NRF24L01+/NRF24LE1/NRF24LU1P/NRF905/NRF24AP2系列,在研發(fā)樣品階段需要樣品支持,試產(chǎn)階段需要少批量支持,大批量生產(chǎn)階段需要長(cháng)期穩定供應,甚至協(xié)助做產(chǎn)品優(yōu)化,請隨時(shí)聯(lián)系!13510620050
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页