孫曉東1,韋建榮,鄒 璞,張鵬躍
(1.中車青島四方機車車輛股份有限公司,山東 青島 266111;2.北京航天測控技術有限公司,北京 100041)
動車組列車地面功能調試是動車組生產最關鍵的步驟之一,為了實現數字化調試,中車四方廠配置了十多個調試車庫,每個車庫有3個調試臺位,總共60多個調試臺位。以往列車出入庫采用人工記錄,效率低下、管理不便,很難滿足列車數字化調試的需求。為提高調試管理效率,保證列車出入庫信息記錄的可靠性,有必要對列車出入庫進行自動識別,自動記錄車庫和調試臺位編號、車輛編號、入庫/出庫、進出庫時間等信息。
RFID無線射頻識別是一種非接觸式的自動識別技術,它通過射頻信號自動識別目標對象并獲取相關數據,識別工作無須人工干預,可以工作于各種惡劣環境。目前,RFID技術在智能倉儲、智能交通等領域的應用已經非常成熟[1]。
RFID閱讀器一般采用外部供電,通過LAN口與主控計算機通信,由軟件控制進行不間斷識別,從而捕獲和存儲RFID標簽的信息。這種識別方式簡單,但設備整體功耗較大。而列車數字化調試線的現場調試工裝一般不具備外部供電和有線入網的條件,需要具備長時間自供電及無線通訊的能力。因此,需要設計一種低功耗的觸發機制,僅當列車靠近識別裝置時才觸發RFID標簽的識別功能。此外,還需要選擇一種合適的無線通信方式,既要保證通信的可靠性,又要盡量降低通信的功耗。
本文針對動車組調試過程中車輛出入庫信息自動記錄的需求,提出了一種基于RFID識別技術和LoRa無線通信技術的設計方法,避免了現場操作人員手工記錄、手工錄入系統的繁瑣過程,提高了列車出入庫信息記錄的實時性和可靠性。
列車出入庫自動識別系統基于物聯網技術,采用LoRa低功耗無線通信技術實現調試線現場分布式信息的獲取,基于現有的數字化調試線平臺實現私有云服務。系統主要由RFID電子標簽、RFID閱讀器(LoRa節點)、LoRa網關、LoRa通信服務器、數字化調試線數據庫、客戶端軟件等部分組成。系統架構如圖1所示。

圖1 系統架構圖
RFID標簽通過RFID打印機預先寫入列車編號等相關信息,粘貼于列車車頭底部區域,2臺RFID閱讀器分別安裝在庫房調試臺位兩側出入口的軌道旁。每個車庫具有3個調試臺位,總共部署6臺RFID閱讀器。當列車出入庫時,會被RFID閱讀器中的兩個超聲波傳感器檢測到,從而觸發RFID檢測單元讀取標簽信息。RFID閱讀器將識別到的列車出入庫信息通過LoRaWAN協議發送給LoRa網關,再由LoRa網關發送給調試現場的WiFi網關。隨后,列車出入庫信息通過MQTT協議發送給位于機房的LoRa通信服務器,LoRa通信服務器解析數據,并封裝成符合信息化調試線標準格式的消息,以WebService方式發送給調試線數據庫。客戶端通過B/S方式訪問調試線數據庫,實現列車出入庫狀態的實時監測或者歷史信息的查閱。
RFID閱讀器采用大容量電池供電,兩個低功耗超聲波傳感器處于連續工作模式,RFID檢測單元和LoRa通信單元僅在初始化配置和列車經過時才工作,平時處于睡眠模式,從而保證了RFID閱讀器能夠長時間自供電工作。
根據工作頻率的不同,RFID標簽可以分為低頻(LF)、高頻(HF)、超高頻(UHF)和微波等不同種類。RFID標簽的工作頻率不僅決定著射頻識別系統工作原理(電感耦合還是電磁耦合)、識別距離,還決定著RFID標簽及RFID讀寫器實現的難易程度和成本。
數字化調試車間具有多個調試臺位,RFID閱讀器的識別距離需要適中(約4 m),距離太近則識別不到RFID標簽信息,距離太遠則容易識別到其它臺位的列車信息,因此,RFID標簽需要工作在超高頻段。另外,考慮到列車表面為金屬材料,需要選用無源、抗金屬標簽。系統選用Confidex公司的Silverline系列柔性可打印抗金屬電子標簽,通過RFID打印機將列車信息寫入標簽的EPC存儲區,并在標簽表面打印相應的可視信息。
RFID閱讀器負責讀取RFID標簽的信息,并通過LoRa無線通信的方式將數據上傳至云端數據庫。RFID檢測裝置的功能框圖如圖2所示。

圖2 RFID檢測裝置功能框圖
RFID閱讀器采用自供電的方式工作,由6只松下NCR18650BD組成的鋰離子電池組(2并3串),提供11.1 V、6400 mAh,總計71.04 Wh的電能;提供以TI公司BQ24610芯片為核心的快充電路[2],充電電流可達3 A,充電狀態具有LED顯示。
由于RFID讀信息和LoRa無線通信時功耗較大,為了減小功耗、提高設備待機時間,需要采用一種低功耗的觸發方式,觸發信號捕獲電路需要持續工作,當列車運行且RFID標簽靠近時才觸發讀取RFID標簽的信息,并啟動一次LoRa無線通信。
列車運行方向識別單元實現觸發信號捕獲功能,以兩個超聲波傳感器為核心,面向調試臺位的軌道,并呈90o夾角安裝。設計選用ROBOT公司高性能超聲波傳感器SRF02,其在6 m的測距范圍內精度可達1 cm,而功耗不超過20 mW。處理器通過兩個UART串口分別連續讀取兩個超聲波傳感器的測量結果[3],并通過算法實時判斷列車是否進入探測區域,以及列車運行的方向。一旦檢測到列車車頭經過,RFID讀寫單元即被喚醒,處理器通過UART串口讀取RFID模塊的識別結果。
RFID讀寫單元負責讀取列車上RFID標簽的信息。RFID模塊及天線選用深圳智天行科技的產品:ZTX-MD810R模塊及9 dBi的圓極化天線。ZTX-MD810R模塊以PHYCHIPS公司的PR9200芯片為核心,通過UART串口與外部處理器連接,并提供一個睡眠模式控制管腳。ZTX-MD810R模塊讀取信息時功率較大(約0.6 W),一般處于睡眠模式(功耗僅100 uA),一旦列車運行方向識別單元檢測到列車車頭經過,即被喚醒,處理器通過UART串口讀取ZTX-MD810R模塊的識別結果。
LoRa無線通信單元以Semtech公司的SX1278芯片為核心,其采用LoRaTM擴頻調制技術,具有接收靈敏度高、抗干擾能力強、通信距離遠等優點。模塊工作在433 MHz頻段,輸出功率+20 dBm,一般處于休眠模式(功耗僅10 uA),LoRa通信時被喚醒。
RFID閱讀器選用ST公司的32位超低功耗處理器STM32L151,其具有32 MHz主頻、1.25 DMIPS、0.28 uA待機功耗[4]。STM32 L151處理器負責RFID閱讀器各單元電路的管理。
LoRa網關是連接RFID閱讀器和數字化調試車間網絡的橋梁。本系統無線通信頻率不高,數據量不大,可選用LoRaWAN單通道網關。
LoRa網關選用深圳摩侖科技的GL2000產品。GL2000網關以Semtech公司的SX1278芯片為核心,采用LoRaWAN協議,支持CLASS A和CLASS C通信方式, LoRa數據傳輸速率21.875kbps,輸出功率可達20dBm,可以實現與數字化調試車間6臺RFID閱讀器的無線通信。GL2000網關上行具有WiFi接口,負責接入調試車間的網絡,通過UDP和MQTT協議與LoRa服務器通信。
目前,超高頻RFID使用最為廣泛的是EPC Class-1 Gen-2標準,該標準由EPCglobal組織于2004年12月16日制定,具有標簽閱讀速度快、編碼形式靈活、兼容其它RFID頻譜、安全性強等優點。標準中將RFID標簽信息存儲區域分為Reserved區、EPC區、TID區和User區四個獨立的存儲區塊,其中Reserved區存儲滅活口令和訪問口令;EPC區存儲EPC號碼;TID區存儲唯一的標簽識別號碼;User區存儲用戶定義的數據[5]。
本系統采用EPC GID-96編碼方案,充分考慮車輛調試過程中列車分類的特點。EPC GID-96通用標識符由標頭和EPC域名管理者、對象分類、序列號3個字段構成。其中,標頭固定為8-bit的0x35;域名管理者表示一個組織實體,分配28-bit空間;對象分類表示該組織實體下的某一物品種類,分配24-bit空間;序列號表示某一具體的物理對象,分配36-bit空間。
按照實際需求,在RFID電子標簽的EPC區存儲企業代碼、列車車型、列車編號及車輛號等特征類型數據。列車出入庫RFID信息存儲格式如表1所示。

表1 RFID信息存儲格式 bit
RFID閱讀器軟件通過STM32處理器實現,功能包括:通過SPI接口與LoRa接口通信,通過串口與超聲波傳感器、RFID模塊通信,通過IIC接口控制OLED顯示,通過模擬輸入接口檢測電池電量,通過IO口進行狀態監測與控制,通過RTC時鐘進行時間管理等。
RFID閱讀器的軟件流程圖如圖3所示。
初始化過程包括:LoRa通信模塊初始化并處于休眠模式、超聲波傳感器初始化并處于連續工作模式、RFID模塊初始化并處于睡眠模式、電池電量檢測和OLED顯示初始化,以及IO初始化。若初始化過程異常,則啟動LoRa工作,將異常信息上報給服務器。
初始化并自檢正常后,啟動超聲波傳感器工作,探測是否有列車經過。當列車接近RFID閱讀器時,其中一個超聲波傳感器先探測到列車,而另一個超聲波傳感器未探測到列車,此時RFID模塊從低功耗模式被喚醒;當兩個超聲波傳感器同時探測到列車,則說明車頭已經進入RFID閱讀器的識別范圍,RFID模塊讀取電子標簽信息,同時根據超聲波傳感器的探測順序判定該過程為列車入庫或出庫。
列車RFID標簽信息被讀取后,RFID模塊重新進入低功耗模式,并喚醒LoRa無線通信模塊,將列車出入庫信息通過LoRa無線通信模塊發送至LoRa網關。之后,LoRa無線通信模塊進入低功耗模式。
RFID閱讀器將數據經網關發送至服務器,最后由終端用戶訪問。LoRa消息傳遞流程如圖4所示。

圖4 LoRa消息傳遞流程圖
RFID閱讀器將數據內容通過 LoRa協議發送出去,LoRa網關接收并解析節點發來的數據,使用packet-forwarde服務形成LoRaWAN消息數據,再通過互聯網的UDP 協議將這些數據發送至LoRa服務器[6]。
LoRa服務器軟件部署在Ubuntu16.0.4系統中,包括LoRa-gateway-bridge、MQTT broker、LoRa-server和LoRa-app-server四個服務。其中,LoRa-gateway-bridge接收來自LoRa網關的UDP消息,然后通過MQTT協議方式發送給MQTT服務器(MQTT broker);網絡服務器(LoRa-server)負責匯總LoRa數據并將這些數據存儲在該服務器所依賴的數據庫中;應用服務器(LoRa-app-server)從LoRa-server的數據庫中讀取數據,并提供 http、MQTT 之類的數據接口,方便客戶端應用程序調用。上述四個服務基于loraserver官方提供的開源代碼開發。
部署RFID閱讀器節點時,需要將每一個節點注冊到LoRa服務器中。將每一個RFID閱讀器節點自身的Device EUI和Application key填入LoRa服務器的注冊項中,LoRa-server將依據這兩個特征參數,計算出LoRaWAN通信過程中的密鑰。
RFID閱讀器節點啟動后,使用OTAA入網協議向LoRa-server傳遞入網請求。LoRa-server驗證閱讀器節點的合法性后,將通信密鑰發送給節點。此后,RFID閱讀器節點和LoRa服務器之間即可通過該密鑰傳遞數據,從而保證通信的安全性。
Webservice是一種可編程的web服務,通過在平臺上部署基于XML文件格式訪問的服務程序,實現跨平臺、低耦合的網絡數據交換。利用XML文件豐富的數據格式,用戶可以實現WebService的穩定發布、快速發現,也可以方便的遠程配置WebService。
WebService可以在任何支持網絡通信的操作系統中運行,為應用程序提供數據和服務,實現應用程序之間的相互通信。
WebService具有以下特點:
1)跨平臺間的相互通信。兩個應用程序只要能讀寫XML文件,就能通過WebService實現互相通信。而不受硬件平臺、操作系統、通信協議的限制。
2)簡單方便的開發、部署。用戶只要獲得描述WebService的WSDL文件,就可以方便地生成客戶端代理,并通過代理訪問WebService。
3)簡潔的通信架構。WebService可用基于XML的SOAP來表示數據和調用請求,并通過HTTP協議傳輸XML格式的數據[7]。
LoRa服務器需要與數字化調試線服務器進行信息交互,由LoRa服務器將車輛出入庫信息發送給后者的數據庫。針對現有的數字化調試線管理平臺對接口形式、調用方法、通信方式的管理方法,本系統建立了基于WebService的數據封裝與數據傳輸接口,實現與數字化調試線管理平臺的兼容[8]。
WebService接口包括兩類接口:車輛RFID信息接口和RFID閱讀器信息接口。車輛RFID信息接口定義與車輛RFID信息相關的操作,包括車輛進出狀態接口、車輛基礎信息查詢接口、車輛進出狀態查詢接口等。RFID閱讀器信息接口定義與現場檢測裝置信息相關的操作,包括設備電量信息存儲接口、設備自檢信息存儲接口、設備自檢信息查詢接口、設備電量信息查詢接口等。WebService接口功能如圖5所示。

圖5 Webservice接口功能
WebService接口使用XML文件表示信息的數據和結構,數據庫服務器負責對XML文件進行數據解析和轉化。
數字化調試線數據庫負責數據的儲存,為了減少大量數據的頻繁寫入、查詢和導出等操作對系統資源的占用,本系統利用SQLServer數據庫來儲存列車出入庫過程中產生的狀態數據,數據的儲存方式為聚簇存放[9]。它具有以下優點:
1)聚簇功能可以大大提高按聚簇碼進行查詢的效率;
2)聚簇以后,相同聚簇碼的元組聚簇在一起,節省了存儲空間;
3)聚簇功能不僅適用于單個關系,也適用于多個關系。
在數據庫結構設計過程中,既要分析當前系統的數據存儲需求,又要兼顧數據庫已有表項結構特點,同時還要充分考慮未來數據結構的變化,減少數據庫中的鏈接和遷移。在當前數據庫已有的故障信息表格、狀態信息表格、車輛基礎信息表格和人員信息表格基礎上,新建兩張數據庫表格,包括車輛RFID信息表格和閱讀器設備信息表格,按照各自定義的格式儲存數據。
終端計算機可以通過B/S方式訪問web服務器,查詢列車出入庫信息,web界面通過C#開發。
C#是一種簡單、安全、面向對象的程序設計語言,它吸收了C++、Visual Basic、Delphi、Java等語言的優點,繼承了C語言的語法風格,同時又繼承了C++的面向對象特性。不同的是,C#的對象模型已經面向Internet進行了重新設計,使用的是.NET框架的類庫。其特點有:語言簡潔、保留了C++的強大功能、快速應用開發功能、語言的自由性、強大的Web服務器控件、支持跨平臺、與XML相融合[10]。
列車出入庫信息查詢界面主要包括實時監測、信息查詢和設備狀態監測界面。實時監測界面主要負責顯示車輛出入庫狀態,并按最新時間排序,每五分鐘更新一次;信息查詢界面主要用于查詢指定條件下列車的出入庫狀態;設備狀態監測界面負責查看現場各節點設備的電量和自檢狀態等信息。列車出入庫信息查詢頁面效果如圖6所示。

圖6 列車出入庫信息查詢頁面
RFID閱讀器實物如圖7所示,低功耗模式下,整體功耗小于50 mW;RFID閱讀時,功耗約0.6 W;LoRa通訊時,功耗約0.1 W。大容量電池可滿足1個月的連續工作時間。

圖7 RFID閱讀器實物圖
現場測試驗證表明:超聲波傳感器有效探測距離大于5 m,RFID模塊可以準確識別到3 m以內的RFID標簽,LoRa通信距離可達到400 m(調試車間最大長度),車輛出入庫信息的記錄與顯示正常,數據更新與車輛出入庫保持同步。
本文根據車輛調試車間列車出入庫的特點,采用低功耗的LoRa無線通信傳輸方式,自動將車輛出入庫信息采集并及時、準確地發送至數字化調試線的數據庫,有效的降低了現場調試人員的工作強度。平臺采用符合LoRa傳輸標準的LoRaWAN協議,以及符合物聯網通信的MQTT協議設計,具有良好的通用性和可移植性,為今后車輛調試過程中其它功能的LoRa傳感器數據無線接入數字化調試線服務器提供了支持。