趙四海等



摘 要:該文提出了一種基于2.4 GHz無線射頻芯片nRF24LE1的掘進機遙控裝置的設計方案。闡述了如何通過nRF24LE1實現遙控操作的過程。介紹了基于片上系統nRF24LE1的遙控裝置硬件設計和無線收發流程,建立了nRF24LE1和機載PLC之間RS485通訊協議。該裝置具有性能穩定可靠,成本低,人機界面良好的特點。
關鍵詞:掘進機 遙控裝置 nRF24LE1 PLC
中圖分類號:TP273.5 文獻標識碼:A 文章編號:1674-098X(2015)06(a)-0050-03
掘進機是煤礦井下巷道掘進的重要設備,傳統的掘進機作業依賴掘進機司機的手動操作,主要通過操作箱上的按鈕以及油缸換向閥來完成采掘工作[1]。一方面,由于煤礦井下工作環境惡劣,通常巷道內伴隨著高溫、高壓環境以及高瓦斯濃度,安全事故頻發;另一方面,掘進機工作現場的粉塵以及機體振動等因素給操作人員的工作帶來了很大的困難,導致勞動強度較大,掘進效率難以得到保障。針對以上情況,該文提出了一種基于nRF24LE1的掘進機遙控裝置的設計方案,通過手持式遙控器實現對掘進機電控系統工作參數的監測以及掘進機運行的控制。該裝置可穩定運行于惡劣的掘進環境,有效地保證了掘進機操作人員的人身安全,減少安全事故的發生,全面提升掘進機的工作效率。
1 系統結構
掘進機遙控裝置的總體結構如圖1所示,主要由手持式遙控器、機載收發器和機載PLC組成。由于一般要求對掘進機的遙控有效距離是15 m,故裝置采用nRF24LE1射頻芯片即可達到要求。手持式遙控器是以片上系統nRF24LE1無線射頻芯片為核心,外接LCD液晶顯示模塊以及功能鍵組成。機載收發器由nRF24LE1射頻芯片以及RS485通訊端口組成,通過RS485總線與機載PLC進行通信。
遙控裝置的工作過程大致為:掘進機電控系統上電后,操作人員按下遙控器上的按鈕后,遙控器發出無線遙控信號,位于主控箱內的機載收發器接收到無線信號后,經處理后輸入機載收發器的單片機內,單片機通過485通信端口與PLC通訊,然后PLC檢測到信號后,經程序處理輸出控制信號;當電控系統出現故障后,PLC檢測到故障信號后通過485通訊端口傳輸到機載收發器,機載收發器存儲故障原因并將故障信號傳輸到遙控器,遙控器檢測到故障信號后,在顯示屏上顯示故障信號并提醒操作人員處理故障。
2 硬件系統設計
2.1 手持式遙控器
手持式遙控器主要由無線收發模塊、顯示模塊、功能鍵、控制單元以及本安電池組成,硬件框圖如圖2所示。遙控器主要實現控制油泵、截割、二運、風機電機的啟停,工作參數的顯示等功能。遙控器發出的無線控制指令經過機載接收器中無線接收模塊的接收、解調,控制信號驅動相應的繼電器動作,動作的節點信號送入PLC的開關量輸入端,經PLC處理輸出控制信號,使掘進機完成相應的動作,實現遙控功能。
根據實際要求,遙控器與機載收發器采用相同的無線射頻芯片,即Nordic公司生產的超低功耗nRF24LE1無線射頻芯片。nRF24LE1內部集成了增強型8位8051 MCU和nRF24L01+2.4 GHz射頻收發器,并通過SPI接口進行通信[2]。片內集成14路6~12位的A/D轉換器,模擬信號經簡單的濾波后可以直接接入nRF24LE1,不需要信號調理電路。工作于2.4~2.5 GHz的ISM頻段,有多達125個頻點,可通過改變頻率的方式來避免干擾,最大傳輸速率可達2 Mbit/s,室內傳輸距離可達30~40 m [3]。
遙控器采用本安電池供電。顯示屏采用液晶顯示模塊VLCM12864,對掘進機電控系統的重要工礦參數進行顯示。遙控器共用6個按鍵,分別是開機鍵、急停鍵、油泵啟動鍵、截割啟動鍵、二運啟動鍵、風機啟動鍵。
2.2 機載收發器
機載收發器同樣采用nRF24LE1無線射頻芯片。芯片內部集成的MCU通過通訊電路與PLC進行485通訊,通訊電路如圖3所示,其中A、B兩端為485通訊接口,通過通訊電路與固定操作站、無線遙控站通訊,實現對掘進機的控制以及工作狀態的實時顯示。機載收發器與PLC之間采用主從方式通信,PLC每隔200 ms向機載收發器發送數據,其接收到數據后存儲到MCU的存儲器中,同時通過無線模塊向遙控器發送信號。
3 軟件設計
3.1 主程序
主程序由遙控器程序和機載收發程序兩部分,軟件流程圖如圖4所示。遙控器上電后,首先對nRF24LE1內部MCU以及外圍硬件進行初始化,然后打開中斷并進入省電模式。其中,按鍵信號的接收及處理均采用中斷方式,大大減輕MCU的負擔,降低功耗。在此過程中系統產生中斷,MCU強制進入運行模式,調用相應中斷服務程序處理按鍵信號。系統掃描到的按鍵信號后將發出無線按鍵指令,發送完畢后,對發送的指令進行校驗;若發送不成功,則重新發送直至校驗正確。同時,系統也接收機載收發器發送的信號,并對接收信號進行校驗,若接收信號不成功,則發出指令重新接收直至接收成功,最后將接收的信號送至VLCM12864模塊上顯示。發送或接收數據時,顯示燈閃爍一次表示收發成功。系統在完成每次收發協作后進入低功耗模式,等待下一步動作。機載收發器上電后,首先對nRF24LE1內部MCU以及外圍硬件進行初始化,然后檢測有無無線信號可接收,若有無線信號接收,則對信號接收并校驗。同時機載收發器反饋PLC的信號,將反饋數據通過無線模塊發送并校驗,直至發送成功。在數據校驗中,其核心問題在于校驗一組數據的正確性及數據是否發送成功。若數據發送錯誤,則將標志清零;若數據發送正確且是發送給本機,在主程序中決定是否發送顯示數據和按鍵數據。當主程序發送完這些數據后,將重新進入省電模式。
3.2 無線收發程序
nRF24L1內置有8051內核芯片,無線射頻收發功能主要是通過訪問其內部寄存器register map設置芯片的工作方式,相應的通訊存儲器TXFIFOs以及RXFIFOs用于存儲無線發送和接收的通訊數據[4]。本設計采用了Enhance ShockBurstTM收發模式通訊,即位于電控箱內的機載收發站與手持式遙控器之間的通訊模式采用Enhance ShockBurstTM,相應的通訊數據幀格式如表1所示。Enhance ShockBurstTM數據包基于可靠數據雙向鏈路層,主發送端發送一個數據包后自動進入接收模式,主接收端接收數據后自動發送一個確認應答。同時射頻芯片內部遵循高速處理的RF協議,自動處理前導碼和 CRC校驗碼,發送數據時只需將數據放入發送數據緩沖區,器件會自行產生前導字符和CRC校驗碼,并將這些數據地址和地址信息、發送數據緩沖區的數據等組成一個數據包發送出去。endprint
無線收發程序包括接收程序和發送程序。發送程序通過主程序調用子程序,其主要功能是將鍵盤的鍵值打包發送至主控器,以控制掘進機執行相應的動作。接收程序是通過中斷程序來完成,用以接收從主控器發送的掘進機各電機的狀態參數。無線發送模塊處于發送模式時,要置高POR_UP,置低PRIM_RX位,TX FIFO不為空,rfce位置高10 μs后置低進入發送模式,發射器將保持在發送模式直到數據包發送完畢。此時若rfce為零,收發器返回待機模式[5,6]。若rfce為1且TX FIFO不為空,則收發器繼續保留在發送模式并發送下一數據包。在發送數據過程中,不能收發器置于發射模式超過4ms。模塊處于接收模式時,要將PWR_UP位、PRIM_RX位以及rfce位置1,從而對信號進行調節,當地址與自身地址一致且CRC校驗正確時,有效數據被送到RX FIFOs。若RX FIFOs已滿,則數據包被丟棄。
3.3 液晶顯示程序
遙控站顯示程序作為一個人機交互程序供主程序調用,主要用于顯示掘進機相關電機的運行狀態參數和故障狀態,程序主要實現對液晶模塊VLCM12864的使用。PLC將實時采集掘進機的各種參數,并將油泵、截割、二運、風機電機等關鍵參數發送給機載收發器,再發送至遙控器上,遙控器接收到相應的數據后送入VLCM12864模塊顯示,顯示流程圖如圖5所示。
3.4 通訊協議
系統通訊通過PLC作為主機來實現,PLC與機載收發器采用RS485接口實現通訊,總線協議上采用Modbus協議。Modbus協議中波特率為19200bps,1個起始位,8個數據位,數據校驗采用查詢法CRC校驗。PLC中設置為主站,并用F145 SEND指令,設置發送Modbus地址、從站地址,以及發送內容。
4 結語
通過調試與試驗,采用基于2.4 GHz無線射頻芯片nRF24LE1的掘進機遙控裝置具有成本低、體積小、功耗低及性能穩定等特點。該裝置可實現對油泵、風機、二運、截割電機等相關工作參數進行實時監測和控制,及時發現故障與隱患并采取相應的措施,確保掘進機安全可靠運行;減輕了工人的工作強度,改善了工人的工作環境,提高了工作效率。
參考文獻
[1] 謝錫純,李曉豁.礦山機械與設備[M].北京:中國礦業大學出版社,2000.
[2] 孫傳堂,李威.基于ARM和nRF905的采煤機遙控裝置設計[J].礦山機械,2010(17):23-26.
[3] 程冬,丁保華.基于片上系統CC2530的采煤機遠程遙控裝置設計[J].礦山機械,2010(3):19-21.
[4] 馬躍坤,應時彥,楊文君,等.基于nRF24LE1的無線數據傳輸系統實現[J].浙江工業大學學報,2010,38(6):666-672.
[5] 周鑫.nRF9401在采煤機遙控遙測裝置中的應用[J].煤礦機械,2003(5):40-42.
[6] 王立峰,王光欣,陳旭東,等.基于nRF24LE1的智能雙向汽車遙控系統[J].工業控制計算機,2011,24(1):99-100.
[7] 肖林榮,應時彥,馬躍坤,等.2.4GHz射頻收發芯片nRF24LE1及其應用[J].信息技術,2009(12):13-16,20.endprint