羅國平(樂山師范學院計算機科學系 四川 樂山 614000)
礦山作業人員井下定位及動態監管系統(簡稱:井下人員定位系統)以現代無線電編碼通訊技術為基礎,應用現代無線電通訊技術中的信令技術及無線發射接收技術,結合目前流行的數據通訊、數據處理及圖形展示軟件等技術實現井下人員定位、跟蹤功能。井下人員定位系統能夠及時、準確的將井下各個區域人員和移動設備情況動態反映到地面計算機系統,以便管理人員能夠隨時掌握井下人員和移動設備的總數及分布狀況;井下人員定位系統能跟蹤干部跟班下井情況、每個礦工入井、出井時間及運動軌跡,以便于企業進行更加合理的調度和管理。井下人員定位系統中最核心的技術實際上是RFID技術,根據供電方式分,RFID技術主要分兩種,一種是有源RFID技術,另一種是無源RFID技術。有源RFID需要外供電源,一般內嵌電池供電,具有信號傳輸較遠的優點,一般能達到5~80米,缺點是壽命非常有限,目前采用2.4GHz全球開放ISM頻段的射頻芯片較多,其中比較有代表的是nRF24L01。無源RFID不需要外供電,只需要激勵天線,通過外部激勵天線供電,優點是壽命較長,缺點是信號傳輸距離較短,能達到0~4cm。在人員定位系統中,一般采用有源RFID技術。
RFID的技術原理是一種射頻識別技術,它的通信方式利用射頻方式進行非接觸式的雙向數據通信,從而能夠識別到射頻設備,在此基礎上形成數據交換,以達到識別目的并交換數據[3]。RFID 射頻識別系統主要由射頻卡(Tag)和讀卡器(Reader)兩部分構成。射頻卡(Tag)不僅具有非接觸、工作距離長的特點,而且可以在惡劣環境中運用、并能夠識別運動中的目標,可以用來作為人員的身份以及設備的標識卡[3]。無線射頻識別(Radio Frequency Identification,RFID)是非接觸式自動識別技術的一種,俗稱射頻卡。RFID技術是直接繼承了雷達的原理,并由此發展起來的一種新的自動識別技術[1]。隨著RFID技術的發展,國內煤礦也大規模使用RFID技術進行管理。
nRF24L01是一款工業級內置硬件鏈路層協議的低成本無線收發器。該器件工作于2.4GHz全球開放ISM頻段,內置頻率合成器、功率放大器、晶體振蕩器、調制器、解調器、輸出功率、頻道選擇和協議設置等功能模塊,并融合增強型ShockBurstTM技術,其輸出功率和通信頻道可通過程序配置。擁有ShockBurstTM和Enhanced ShockBurstTM兩種數據傳輸模式。可直接與單片機I/O連接,外接元件數目很少。nRF24L01功耗低,以-6dBm的功率發射時,工作電流僅9mA;接收電流僅12.3mA,多種低功率工作模式(掉電和空閑模式)更有利于節能設計。
煤礦井下人員定位系統分地面和井下兩個部分組成,地面部分是人員信息采集處理中心,也稱為監控中心,主要以通訊接口、人員監測管理軟件和監控主機、打印機、監視器等組成;井下部分主要由防爆兼本安電源、定位分站、識別卡讀卡器、人員定位識別卡等組成,分站作為井下人員編碼信息檢測處理的基本單元,每一個分站最多可配置5個天線,天線與分站之間連接一般采用RS485總線連接、分站與分站之間以及上位機之間采用CAN總線連接,本文重點研究RFID技術部分,即識別卡天線和識別卡,其他內容情況可以參考文獻[2]。
系統工作原理是:每一個井下工作人員或移動設備佩戴一個識別卡(有源RFID卡),每張識別卡都具有唯一的ID號,這個ID號通過識別卡中nRF24L01模塊 以2秒/次左右的頻率發出,當識別卡信號到達識別卡讀卡器所能接收的信號范圍時,識別卡讀卡器就接收到識別卡發送出的ID號,該ID號經過讀卡器、分站、接口等通訊設備最終傳送到上位機,通過上位機軟件解析,展示在繪制有礦井井下地圖的圖形中,就可以知道目前該人員或移動設備所在的位置。
有源RFID電路設計主要包括兩個部分,即讀卡器和識別卡。其電路設計非常簡單,讀卡器采用P89LPC932A1作為MCU控制器,通過SPI接口訪問nRF24L01控制器,外加電源電路和聲光報警指示電路等,識別卡電路由一個nRFL24L01控制器和MSP430G2211構成,外加簡單電源電路以及指示電路等構成,由于MSP430系列單片機具有電源管理功能,具有5級電源管理功能,即可以工作在LPM4~LPM0 5種工作模式,各個電源管理模式,節電能力不同,用戶可以根據實際情況進行配置,從而達到節電目的。
nRF24L01應用電路設計非常簡單,難點在于驅動程序設計和程序調試上,nRF24L01中斷與一般的器件中斷響應和處理有一定的區別,通信調試有一定難度,因此,下面介紹nRF24L01通信協議和驅動程序設計。
2.4 GHz無線通信協議分為3層:物理層、數據鏈路層和應用層。物理層包括GFSK調制和解調器、接收和發送濾波器、射頻合成器、SPI接口和電源管理,主要完成數據的調制解調、編碼解碼、FHSS跳頻擴頻和SPI通信。數據鏈路層主要完成解包和封包過程。該協議有2種基本的封包:數據包和應答包。數據包格式如 表1所示。

表1 數據包格式Tab.1 Packet format
前導碼用來檢測0和1,nRF24L01在接收模式下去除前導碼,在發送模式下加入前導碼。地址內容為接收機地址,地址寬度是3、4或5字節,可以對接收通道和發送通道分別進行配置,接收端從接收到的數據包中自動去除地址。
封包控制域為9位,前6位是數據包長度標志,數據長度標志位只有在動態數據長度選項使能時才有效,6位可以表示傳輸的數據域字節數從0~32字節;后3位分別是2位PID位,1位應答標志位。PID標志位用來檢測接收到的數據包是新的還是重發的;自動應答標志位表示這個封包是否需要自動應答。封包可以采用1或2字節的CRC校驗。對于應答包來說,數據域是一個可選項,但是如果使用該選項的話應該使能動態數據長度特性。應用層按照設計需要可以是鍵盤和鼠標等HID類設備。
無論是識別卡還是識別卡讀卡器實際上編寫驅動程序大致是相同的,所不同的只有硬件端口不一樣,根據具體的電路設計配置端口。在程序設計中發現P89LPC932A1自帶的SPI接口不能正常使用,通過示波器檢測發現,信號畸變嚴重,導致時序錯誤,因此該接口無法正常使用,可以通過IO口模擬SPI接口的辦法來解決這個問題。nRF24L01驅動函數主要有以下幾個函數:


BYTE SPI_Read_Buf(BYTE reg,BYTE*pBuf,BYTE bytes)//批量讀FIFO子程序


這些子程序是經過調試成功的,在工程中可以直接調用。需要注意的是,nRF24L01中斷請求方式是電平觸發而不是邊沿觸發,因此在使用51內核單片機配置中斷模式要注意;中斷處理后,需要回寫,否則無法正常工作;在接收數據后要及時將接收FIFO中的數據清空,否則會出現意想不到的結果。
在通信過程中,識別卡以每2秒一次的頻率發送ID號,當讀卡器收到識別卡發送的數據后,將收到的數據快速上傳給上位機,通過上位機定位系統軟件解析處理,就得到了該識別卡目前所在天線的位置,從而獲得了該人員目前在井下大概的位置。通過實驗測試,目前KJ-129人員定位系統讀卡器每一秒鐘能收到90個左右的識別卡卡號,基本能達到國家標準要求。
KJ-129井下人員定位系統,系統中nRF24L01無線通信正常,數據傳送速率快,誤碼率較低,目前已經在四川150多個煤礦得到了有效應用,運行較為平穩,工作基本正常,取得了較好的應用效果。
[1]李洪宇.井下人員定位系統[D].濟南:山東科技大學,2004.
[2]羅國平.CAN總線在KJ-129人員定位系統中應用研究[J].科技信息,2011(27).
[3]游戰請,李蘇劍.無線射頻識別技術(RFID)理論與應用[M].電子工業出版社,2004,10.