基于FPGA和nRF905的挖掘機無線監(jiān)控數(shù)據(jù)傳輸系統(tǒng)
摘要:使用SOPC技術(shù)設(shè)計了一種基于FPGA和nRF905的挖掘機無線監(jiān)控數(shù)據(jù)傳輸系統(tǒng),用于對挖掘機進行遠程狀態(tài)監(jiān)測、實時挖掘動作控制和行走操作控制等。該無線監(jiān)控數(shù)據(jù)傳輸系統(tǒng)工作在433MHz的ISM頻段,能夠進行雙向傳輸。
關(guān)鍵詞:FPGA;SOPC;nRF905;無線通信
液壓挖掘機在工業(yè)與民用建筑、交通運輸、水利電力工程、礦山采掘以及軍事工程等施工中起著極為重要的作剛。對于某些不適合人類進入的工作場所,如高溫、含有輻射物或裝卸危險物品的場所下的挖掘任務(wù),以人手動操作為主的傳統(tǒng)液壓挖掘機已不能勝任,液壓挖掘機的遠程監(jiān)控、自動化和智能化成為該類場所挖掘難題的最好解決方案。在液壓挖掘機的無線遠程監(jiān)控系統(tǒng)設(shè)計中,各種傳感器數(shù)據(jù)和控制數(shù)據(jù)的無線傳輸系統(tǒng)的設(shè)計對于遠程監(jiān)控功能的實現(xiàn)具有關(guān)鍵作用。
1 系統(tǒng)設(shè)計方案
液壓挖掘機的無線監(jiān)控數(shù)據(jù)傳輸系統(tǒng)采用上下位機雙層控制結(jié)構(gòu),上下位機之間采用了點對點通訊模式。上位機采用PC機,主要完成遠程監(jiān)控、數(shù)據(jù)存儲處理和運動軌跡規(guī)劃運算等工作。下位機安裝于挖掘機上,采用Inter Control公司的機載電腦。MTC通過CAN總線傳輸各傳感器數(shù)據(jù)和油缸電磁閥開口大小信號,進行挖掘機狀態(tài)數(shù)據(jù)的采集和電磁閥等執(zhí)行機構(gòu)的驅(qū)動等。各傳感器、油缸電磁閥和機載電腦之間通過CAN總線通信。編程工具是工控領(lǐng)域常用的CoDeSvs。采用通訊頻段為433MHz、通訊最大距離為500m的無線數(shù)傳輸模塊nRF905進行無線數(shù)據(jù)傳輸。nRF905有4種工作模式:掉電模式、待機模式、發(fā)射模式、接收模式。無線監(jiān)控數(shù)據(jù)傳輸系統(tǒng)采用FPGA作為通信控制模塊,使用SOPC技術(shù)搭建片上硬件系統(tǒng)。通信控制程序使用C語言編寫。FPGA通過GPIO口控制nRF905的三組引腳:TX_EN、TRX_CE和PWR來設(shè)置nRF905不同的工作模式;載波儉測輸出CD、地址匹配輸出AM和數(shù)據(jù)就緒輸出DR用于通知FPGAnRF905的收發(fā)狀態(tài);SPI接口用于配置、發(fā)送和接收數(shù)據(jù)。系統(tǒng)硬件結(jié)構(gòu)框圖如圖1所示。
2 SOPC片上系統(tǒng)設(shè)計
該單元主要功能是通過建立通信協(xié)議和對無線數(shù)據(jù)傳輸模塊的控制,準確實時地接收、存儲來自各個節(jié)點的數(shù)據(jù),并傳送給上位機和MTC。
2.1 SOPC片上系統(tǒng)硬件構(gòu)成
加入的SOPC組件和模塊主要有:NiosⅡ處理器,Avalon三態(tài)總線橋;外部SDRAM存儲器的控制器核;Flash類型的存儲器,用于存放程序和數(shù)據(jù);時間計數(shù)器核Interval timer;SPI核,用于實現(xiàn)SPI協(xié)議并提供Avalon接口;PIO接口用于連接nRF905的SPT接口和發(fā)出控制信號,其管腳連接至FPGA的GPIO口。將所組成的系統(tǒng)進行編譯后,可以下載到FPGA芯片上構(gòu)成片上控制系統(tǒng)。系統(tǒng)框圖如圖2所示。
2.2 SPI核配置
nRF905射頻模塊和FGPA通過SPI接口進行數(shù)據(jù)傳輸,該接口以主從方式工作,由以下四線組成:SCK (時鐘信號,由主設(shè)備產(chǎn)生)、CSN(片選信號,由主設(shè)備控制)、MOSI(主設(shè)備數(shù)據(jù)輸出,從設(shè)備數(shù)據(jù)輸入)、MISO(主設(shè)備數(shù)據(jù)輸入,從設(shè)備數(shù)據(jù)輸出) 通過FPGA實現(xiàn)SPI接口與總線接口轉(zhuǎn)換,需要考慮的因素有:
(1)接口時序 主要包括/SS與SCK的時序關(guān)系:/TREQ與/SS的時序關(guān)系;SCK與MOSI和MISO的時序關(guān)系,比如MOSI數(shù)據(jù)存SCK下降沿被從機采集接收,而MISO數(shù)據(jù)必須在SCK上升沿由從機輸出,在相鄰的下降沿被主機接收。
(2)接口速率 nRF905無線收發(fā)芯片的最高工作速率為50kb/s。上位機端的控制軟件可以設(shè)置串口的工作速率,本設(shè)計中波特率設(shè)置為9600b/s。串口的波特率的每個字節(jié)加上起始位、停止位和奇偶校驗位,經(jīng)計算,串口工作速率小于無線芯片的工作速率,因此可以采用nRF905轉(zhuǎn)發(fā)串口數(shù)據(jù)進行通信。
SOPC Builder內(nèi)部集成的NIOS II的SPI核可以實現(xiàn)SPI協(xié)議并提供與Avalon總線相連的接口。SPI核作為連接微處理器和控制設(shè)備的通信接口,可以實現(xiàn)主協(xié)議,也可以實現(xiàn)從協(xié)議。本系統(tǒng)將SPI核配置為主模式。SPI發(fā)送數(shù)據(jù)的順序根據(jù)nRF905的SPI數(shù)據(jù)傳輸要求,數(shù)據(jù)字的高位先發(fā)送。
2.3 片上系統(tǒng)通訊控制程序設(shè)計
(1) FPGA半雙工雙向通信程序設(shè)計
nRF905采用了Nordic公司的VLSI Shock Burst技術(shù),射頻數(shù)據(jù)包的高速信號處理都在芯片內(nèi)部進行,并且自動產(chǎn)生前導(dǎo)碼和CRC校驗碼。由于nRF905為半雙工芯片,為了實現(xiàn)雙向通信,在程序設(shè)計時需要考慮發(fā)送與接收的時間。為了提高運行效率,可以采用Shock Burst RX直接到ShockBurst TX模式轉(zhuǎn)換或Shock Burst TX直接到ShockBurst RX的模式轉(zhuǎn)換,由于不需要再重新配置寄存器,保持了相同的頻道,因此轉(zhuǎn)換所消耗的時間最少,轉(zhuǎn)換時間為550μs。發(fā)送端數(shù)據(jù)采用單字節(jié)逐次移位的方式進行傳輸。在發(fā)送完畢即直接從Shock Burst TX模式轉(zhuǎn)換為Shock Burst RX模式。為了確保收到信息,系統(tǒng)采用中斷的方式,通過數(shù)據(jù)就緒輸出DR置高米產(chǎn)生中斷,如果沒有收到則接收端仍然保持Shock Burst RX模式,發(fā)送端若一定時間收不到對方的信號則將上次發(fā)送的內(nèi)容再次發(fā)送,從而保證了接收端信息的可靠接收,實現(xiàn)了雙向通信。FPGA片上系統(tǒng)通信流程罔如圖3所示。
(2) SOPC片上串口通信程序設(shè)計
NIOSII的UART核可以設(shè)置所需的通信模式,比如波特率、偶校驗、停止位、數(shù)據(jù)位和其他控制信號。系統(tǒng)選用的串口波特率為9600bps。采用1位起始位,8位數(shù)據(jù)位和1位停止位。串口通信可以使用查詢的方式也可以使用中斷的方式。但是由于查詢的方式較為占用資源,所以本系統(tǒng)采用中斷的方式直接讀取寄存器。UART核能夠輸出一個單獨的中斷請求(IRQ)信號給Avalon總線,從而連接到Nios II處理器,通知FPGA將數(shù)據(jù)轉(zhuǎn)發(fā)至SPI接口。串口程序流程圖如圖4所示。
3 上下位機與FPGA間的串口程序設(shè)計
3.1 MTC方的串口通信設(shè)計
Codesyrs進行RS232通信編程,要用到以下四個函數(shù):SysComOpen,SysComSetSettings,SysComRead,SvsComWrite。編寫程序方法類似C語言。
SvsComOpen:打開RS232通訊端口,MTC僅可選COM2,其余皆不可用。
Buffm Address:當(dāng)讀取到數(shù)據(jù)后拷貝到變量BUFFER_DATA指向的地址內(nèi);
Bvtes To Read:讀取多少個bytes。
Buffer Address:發(fā)送數(shù)據(jù)所在地址。
3.2 PC方的串口通信設(shè)計
PC的串口通信程序使用VC6.0編寫,使用Microsoft公司ActiveX控件MSComm。采用事件驅(qū)動的辦法,每當(dāng)有數(shù)據(jù)由串口收到時,就會觸發(fā)消息的響應(yīng)函數(shù)OnComm。即可由PC收取串口的數(shù)據(jù)。發(fā)送時可直接調(diào)用該控件發(fā)送。
4 結(jié)束語
本系統(tǒng)能夠低成本地設(shè)計出挖掘機無線傳輸系統(tǒng),較好地完成半雙工的挖掘機無線數(shù)據(jù)傳輸工作。采用SOPC設(shè)計挖掘機無線傳輸模塊的控制器能夠在軟硬件設(shè)計上實現(xiàn)模塊化,能夠大量地減輕研發(fā)工作量、提高研發(fā)速度。