孫曉東1,韋建榮,鄒 璞,張鵬躍
(1.中車青島四方機(jī)車車輛股份有限公司,山東 青島 266111;2.北京航天測控技術(shù)有限公司,北京 100041)
動車組列車地面功能調(diào)試是動車組生產(chǎn)最關(guān)鍵的步驟之一,為了實(shí)現(xiàn)數(shù)字化調(diào)試,中車四方廠配置了十多個(gè)調(diào)試車庫,每個(gè)車庫有3個(gè)調(diào)試臺位,總共60多個(gè)調(diào)試臺位。以往列車出入庫采用人工記錄,效率低下、管理不便,很難滿足列車數(shù)字化調(diào)試的需求。為提高調(diào)試管理效率,保證列車出入庫信息記錄的可靠性,有必要對列車出入庫進(jìn)行自動識別,自動記錄車庫和調(diào)試臺位編號、車輛編號、入庫/出庫、進(jìn)出庫時(shí)間等信息。
RFID無線射頻識別是一種非接觸式的自動識別技術(shù),它通過射頻信號自動識別目標(biāo)對象并獲取相關(guān)數(shù)據(jù),識別工作無須人工干預(yù),可以工作于各種惡劣環(huán)境。目前,RFID技術(shù)在智能倉儲、智能交通等領(lǐng)域的應(yīng)用已經(jīng)非常成熟[1]。
RFID閱讀器一般采用外部供電,通過LAN口與主控計(jì)算機(jī)通信,由軟件控制進(jìn)行不間斷識別,從而捕獲和存儲RFID標(biāo)簽的信息。這種識別方式簡單,但設(shè)備整體功耗較大。而列車數(shù)字化調(diào)試線的現(xiàn)場調(diào)試工裝一般不具備外部供電和有線入網(wǎng)的條件,需要具備長時(shí)間自供電及無線通訊的能力。因此,需要設(shè)計(jì)一種低功耗的觸發(fā)機(jī)制,僅當(dāng)列車靠近識別裝置時(shí)才觸發(fā)RFID標(biāo)簽的識別功能。此外,還需要選擇一種合適的無線通信方式,既要保證通信的可靠性,又要盡量降低通信的功耗。
本文針對動車組調(diào)試過程中車輛出入庫信息自動記錄的需求,提出了一種基于RFID識別技術(shù)和LoRa無線通信技術(shù)的設(shè)計(jì)方法,避免了現(xiàn)場操作人員手工記錄、手工錄入系統(tǒng)的繁瑣過程,提高了列車出入庫信息記錄的實(shí)時(shí)性和可靠性。
列車出入庫自動識別系統(tǒng)基于物聯(lián)網(wǎng)技術(shù),采用LoRa低功耗無線通信技術(shù)實(shí)現(xiàn)調(diào)試線現(xiàn)場分布式信息的獲取,基于現(xiàn)有的數(shù)字化調(diào)試線平臺實(shí)現(xiàn)私有云服務(wù)。系統(tǒng)主要由RFID電子標(biāo)簽、RFID閱讀器(LoRa節(jié)點(diǎn))、LoRa網(wǎng)關(guān)、LoRa通信服務(wù)器、數(shù)字化調(diào)試線數(shù)據(jù)庫、客戶端軟件等部分組成。系統(tǒng)架構(gòu)如圖1所示。
圖1 系統(tǒng)架構(gòu)圖
RFID標(biāo)簽通過RFID打印機(jī)預(yù)先寫入列車編號等相關(guān)信息,粘貼于列車車頭底部區(qū)域,2臺RFID閱讀器分別安裝在庫房調(diào)試臺位兩側(cè)出入口的軌道旁。每個(gè)車庫具有3個(gè)調(diào)試臺位,總共部署6臺RFID閱讀器。當(dāng)列車出入庫時(shí),會被RFID閱讀器中的兩個(gè)超聲波傳感器檢測到,從而觸發(fā)RFID檢測單元讀取標(biāo)簽信息。RFID閱讀器將識別到的列車出入庫信息通過LoRaWAN協(xié)議發(fā)送給LoRa網(wǎng)關(guān),再由LoRa網(wǎng)關(guān)發(fā)送給調(diào)試現(xiàn)場的WiFi網(wǎng)關(guān)。隨后,列車出入庫信息通過MQTT協(xié)議發(fā)送給位于機(jī)房的LoRa通信服務(wù)器,LoRa通信服務(wù)器解析數(shù)據(jù),并封裝成符合信息化調(diào)試線標(biāo)準(zhǔn)格式的消息,以WebService方式發(fā)送給調(diào)試線數(shù)據(jù)庫??蛻舳送ㄟ^B/S方式訪問調(diào)試線數(shù)據(jù)庫,實(shí)現(xiàn)列車出入庫狀態(tài)的實(shí)時(shí)監(jiān)測或者歷史信息的查閱。
RFID閱讀器采用大容量電池供電,兩個(gè)低功耗超聲波傳感器處于連續(xù)工作模式,RFID檢測單元和LoRa通信單元僅在初始化配置和列車經(jīng)過時(shí)才工作,平時(shí)處于睡眠模式,從而保證了RFID閱讀器能夠長時(shí)間自供電工作。
根據(jù)工作頻率的不同,RFID標(biāo)簽可以分為低頻(LF)、高頻(HF)、超高頻(UHF)和微波等不同種類。RFID標(biāo)簽的工作頻率不僅決定著射頻識別系統(tǒng)工作原理(電感耦合還是電磁耦合)、識別距離,還決定著RFID標(biāo)簽及RFID讀寫器實(shí)現(xiàn)的難易程度和成本。
數(shù)字化調(diào)試車間具有多個(gè)調(diào)試臺位,RFID閱讀器的識別距離需要適中(約4 m),距離太近則識別不到RFID標(biāo)簽信息,距離太遠(yuǎn)則容易識別到其它臺位的列車信息,因此,RFID標(biāo)簽需要工作在超高頻段。另外,考慮到列車表面為金屬材料,需要選用無源、抗金屬標(biāo)簽。系統(tǒng)選用Confidex公司的Silverline系列柔性可打印抗金屬電子標(biāo)簽,通過RFID打印機(jī)將列車信息寫入標(biāo)簽的EPC存儲區(qū),并在標(biāo)簽表面打印相應(yīng)的可視信息。
RFID閱讀器負(fù)責(zé)讀取RFID標(biāo)簽的信息,并通過LoRa無線通信的方式將數(shù)據(jù)上傳至云端數(shù)據(jù)庫。RFID檢測裝置的功能框圖如圖2所示。
圖2 RFID檢測裝置功能框圖
RFID閱讀器采用自供電的方式工作,由6只松下NCR18650BD組成的鋰離子電池組(2并3串),提供11.1 V、6400 mAh,總計(jì)71.04 Wh的電能;提供以TI公司BQ24610芯片為核心的快充電路[2],充電電流可達(dá)3 A,充電狀態(tài)具有LED顯示。
由于RFID讀信息和LoRa無線通信時(shí)功耗較大,為了減小功耗、提高設(shè)備待機(jī)時(shí)間,需要采用一種低功耗的觸發(fā)方式,觸發(fā)信號捕獲電路需要持續(xù)工作,當(dāng)列車運(yùn)行且RFID標(biāo)簽靠近時(shí)才觸發(fā)讀取RFID標(biāo)簽的信息,并啟動一次LoRa無線通信。
列車運(yùn)行方向識別單元實(shí)現(xiàn)觸發(fā)信號捕獲功能,以兩個(gè)超聲波傳感器為核心,面向調(diào)試臺位的軌道,并呈90o夾角安裝。設(shè)計(jì)選用ROBOT公司高性能超聲波傳感器SRF02,其在6 m的測距范圍內(nèi)精度可達(dá)1 cm,而功耗不超過20 mW。處理器通過兩個(gè)UART串口分別連續(xù)讀取兩個(gè)超聲波傳感器的測量結(jié)果[3],并通過算法實(shí)時(shí)判斷列車是否進(jìn)入探測區(qū)域,以及列車運(yùn)行的方向。一旦檢測到列車車頭經(jīng)過,RFID讀寫單元即被喚醒,處理器通過UART串口讀取RFID模塊的識別結(jié)果。
RFID讀寫單元負(fù)責(zé)讀取列車上RFID標(biāo)簽的信息。RFID模塊及天線選用深圳智天行科技的產(chǎn)品:ZTX-MD810R模塊及9 dBi的圓極化天線。ZTX-MD810R模塊以PHYCHIPS公司的PR9200芯片為核心,通過UART串口與外部處理器連接,并提供一個(gè)睡眠模式控制管腳。ZTX-MD810R模塊讀取信息時(shí)功率較大(約0.6 W),一般處于睡眠模式(功耗僅100 uA),一旦列車運(yùn)行方向識別單元檢測到列車車頭經(jīng)過,即被喚醒,處理器通過UART串口讀取ZTX-MD810R模塊的識別結(jié)果。
LoRa無線通信單元以Semtech公司的SX1278芯片為核心,其采用LoRaTM擴(kuò)頻調(diào)制技術(shù),具有接收靈敏度高、抗干擾能力強(qiáng)、通信距離遠(yuǎn)等優(yōu)點(diǎn)。模塊工作在433 MHz頻段,輸出功率+20 dBm,一般處于休眠模式(功耗僅10 uA),LoRa通信時(shí)被喚醒。
RFID閱讀器選用ST公司的32位超低功耗處理器STM32L151,其具有32 MHz主頻、1.25 DMIPS、0.28 uA待機(jī)功耗[4]。STM32 L151處理器負(fù)責(zé)RFID閱讀器各單元電路的管理。
LoRa網(wǎng)關(guān)是連接RFID閱讀器和數(shù)字化調(diào)試車間網(wǎng)絡(luò)的橋梁。本系統(tǒng)無線通信頻率不高,數(shù)據(jù)量不大,可選用LoRaWAN單通道網(wǎng)關(guān)。
LoRa網(wǎng)關(guān)選用深圳摩侖科技的GL2000產(chǎn)品。GL2000網(wǎng)關(guān)以Semtech公司的SX1278芯片為核心,采用LoRaWAN協(xié)議,支持CLASS A和CLASS C通信方式, LoRa數(shù)據(jù)傳輸速率21.875kbps,輸出功率可達(dá)20dBm,可以實(shí)現(xiàn)與數(shù)字化調(diào)試車間6臺RFID閱讀器的無線通信。GL2000網(wǎng)關(guān)上行具有WiFi接口,負(fù)責(zé)接入調(diào)試車間的網(wǎng)絡(luò),通過UDP和MQTT協(xié)議與LoRa服務(wù)器通信。
目前,超高頻RFID使用最為廣泛的是EPC Class-1 Gen-2標(biāo)準(zhǔn),該標(biāo)準(zhǔn)由EPCglobal組織于2004年12月16日制定,具有標(biāo)簽閱讀速度快、編碼形式靈活、兼容其它RFID頻譜、安全性強(qiáng)等優(yōu)點(diǎn)。標(biāo)準(zhǔn)中將RFID標(biāo)簽信息存儲區(qū)域分為Reserved區(qū)、EPC區(qū)、TID區(qū)和User區(qū)四個(gè)獨(dú)立的存儲區(qū)塊,其中Reserved區(qū)存儲滅活口令和訪問口令;EPC區(qū)存儲EPC號碼;TID區(qū)存儲唯一的標(biāo)簽識別號碼;User區(qū)存儲用戶定義的數(shù)據(jù)[5]。
本系統(tǒng)采用EPC GID-96編碼方案,充分考慮車輛調(diào)試過程中列車分類的特點(diǎn)。EPC GID-96通用標(biāo)識符由標(biāo)頭和EPC域名管理者、對象分類、序列號3個(gè)字段構(gòu)成。其中,標(biāo)頭固定為8-bit的0x35;域名管理者表示一個(gè)組織實(shí)體,分配28-bit空間;對象分類表示該組織實(shí)體下的某一物品種類,分配24-bit空間;序列號表示某一具體的物理對象,分配36-bit空間。
按照實(shí)際需求,在RFID電子標(biāo)簽的EPC區(qū)存儲企業(yè)代碼、列車車型、列車編號及車輛號等特征類型數(shù)據(jù)。列車出入庫RFID信息存儲格式如表1所示。
表1 RFID信息存儲格式 bit
RFID閱讀器軟件通過STM32處理器實(shí)現(xiàn),功能包括:通過SPI接口與LoRa接口通信,通過串口與超聲波傳感器、RFID模塊通信,通過IIC接口控制OLED顯示,通過模擬輸入接口檢測電池電量,通過IO口進(jìn)行狀態(tài)監(jiān)測與控制,通過RTC時(shí)鐘進(jìn)行時(shí)間管理等。
RFID閱讀器的軟件流程圖如圖3所示。
初始化過程包括:LoRa通信模塊初始化并處于休眠模式、超聲波傳感器初始化并處于連續(xù)工作模式、RFID模塊初始化并處于睡眠模式、電池電量檢測和OLED顯示初始化,以及IO初始化。若初始化過程異常,則啟動LoRa工作,將異常信息上報(bào)給服務(wù)器。
初始化并自檢正常后,啟動超聲波傳感器工作,探測是否有列車經(jīng)過。當(dāng)列車接近RFID閱讀器時(shí),其中一個(gè)超聲波傳感器先探測到列車,而另一個(gè)超聲波傳感器未探測到列車,此時(shí)RFID模塊從低功耗模式被喚醒;當(dāng)兩個(gè)超聲波傳感器同時(shí)探測到列車,則說明車頭已經(jīng)進(jìn)入RFID閱讀器的識別范圍,RFID模塊讀取電子標(biāo)簽信息,同時(shí)根據(jù)超聲波傳感器的探測順序判定該過程為列車入庫或出庫。
列車RFID標(biāo)簽信息被讀取后,RFID模塊重新進(jìn)入低功耗模式,并喚醒LoRa無線通信模塊,將列車出入庫信息通過LoRa無線通信模塊發(fā)送至LoRa網(wǎng)關(guān)。之后,LoRa無線通信模塊進(jìn)入低功耗模式。
RFID閱讀器將數(shù)據(jù)經(jīng)網(wǎng)關(guān)發(fā)送至服務(wù)器,最后由終端用戶訪問。LoRa消息傳遞流程如圖4所示。
圖4 LoRa消息傳遞流程圖
RFID閱讀器將數(shù)據(jù)內(nèi)容通過 LoRa協(xié)議發(fā)送出去,LoRa網(wǎng)關(guān)接收并解析節(jié)點(diǎn)發(fā)來的數(shù)據(jù),使用packet-forwarde服務(wù)形成LoRaWAN消息數(shù)據(jù),再通過互聯(lián)網(wǎng)的UDP 協(xié)議將這些數(shù)據(jù)發(fā)送至LoRa服務(wù)器[6]。
LoRa服務(wù)器軟件部署在Ubuntu16.0.4系統(tǒng)中,包括LoRa-gateway-bridge、MQTT broker、LoRa-server和LoRa-app-server四個(gè)服務(wù)。其中,LoRa-gateway-bridge接收來自LoRa網(wǎng)關(guān)的UDP消息,然后通過MQTT協(xié)議方式發(fā)送給MQTT服務(wù)器(MQTT broker);網(wǎng)絡(luò)服務(wù)器(LoRa-server)負(fù)責(zé)匯總LoRa數(shù)據(jù)并將這些數(shù)據(jù)存儲在該服務(wù)器所依賴的數(shù)據(jù)庫中;應(yīng)用服務(wù)器(LoRa-app-server)從LoRa-server的數(shù)據(jù)庫中讀取數(shù)據(jù),并提供 http、MQTT 之類的數(shù)據(jù)接口,方便客戶端應(yīng)用程序調(diào)用。上述四個(gè)服務(wù)基于loraserver官方提供的開源代碼開發(fā)。
部署RFID閱讀器節(jié)點(diǎn)時(shí),需要將每一個(gè)節(jié)點(diǎn)注冊到LoRa服務(wù)器中。將每一個(gè)RFID閱讀器節(jié)點(diǎn)自身的Device EUI和Application key填入LoRa服務(wù)器的注冊項(xiàng)中,LoRa-server將依據(jù)這兩個(gè)特征參數(shù),計(jì)算出LoRaWAN通信過程中的密鑰。
RFID閱讀器節(jié)點(diǎn)啟動后,使用OTAA入網(wǎng)協(xié)議向LoRa-server傳遞入網(wǎng)請求。LoRa-server驗(yàn)證閱讀器節(jié)點(diǎn)的合法性后,將通信密鑰發(fā)送給節(jié)點(diǎn)。此后,RFID閱讀器節(jié)點(diǎn)和LoRa服務(wù)器之間即可通過該密鑰傳遞數(shù)據(jù),從而保證通信的安全性。
Webservice是一種可編程的web服務(wù),通過在平臺上部署基于XML文件格式訪問的服務(wù)程序,實(shí)現(xiàn)跨平臺、低耦合的網(wǎng)絡(luò)數(shù)據(jù)交換。利用XML文件豐富的數(shù)據(jù)格式,用戶可以實(shí)現(xiàn)WebService的穩(wěn)定發(fā)布、快速發(fā)現(xiàn),也可以方便的遠(yuǎn)程配置WebService。
WebService可以在任何支持網(wǎng)絡(luò)通信的操作系統(tǒng)中運(yùn)行,為應(yīng)用程序提供數(shù)據(jù)和服務(wù),實(shí)現(xiàn)應(yīng)用程序之間的相互通信。
WebService具有以下特點(diǎn):
1)跨平臺間的相互通信。兩個(gè)應(yīng)用程序只要能讀寫XML文件,就能通過WebService實(shí)現(xiàn)互相通信。而不受硬件平臺、操作系統(tǒng)、通信協(xié)議的限制。
2)簡單方便的開發(fā)、部署。用戶只要獲得描述WebService的WSDL文件,就可以方便地生成客戶端代理,并通過代理訪問WebService。
3)簡潔的通信架構(gòu)。WebService可用基于XML的SOAP來表示數(shù)據(jù)和調(diào)用請求,并通過HTTP協(xié)議傳輸XML格式的數(shù)據(jù)[7]。
LoRa服務(wù)器需要與數(shù)字化調(diào)試線服務(wù)器進(jìn)行信息交互,由LoRa服務(wù)器將車輛出入庫信息發(fā)送給后者的數(shù)據(jù)庫。針對現(xiàn)有的數(shù)字化調(diào)試線管理平臺對接口形式、調(diào)用方法、通信方式的管理方法,本系統(tǒng)建立了基于WebService的數(shù)據(jù)封裝與數(shù)據(jù)傳輸接口,實(shí)現(xiàn)與數(shù)字化調(diào)試線管理平臺的兼容[8]。
WebService接口包括兩類接口:車輛RFID信息接口和RFID閱讀器信息接口。車輛RFID信息接口定義與車輛RFID信息相關(guān)的操作,包括車輛進(jìn)出狀態(tài)接口、車輛基礎(chǔ)信息查詢接口、車輛進(jìn)出狀態(tài)查詢接口等。RFID閱讀器信息接口定義與現(xiàn)場檢測裝置信息相關(guān)的操作,包括設(shè)備電量信息存儲接口、設(shè)備自檢信息存儲接口、設(shè)備自檢信息查詢接口、設(shè)備電量信息查詢接口等。WebService接口功能如圖5所示。
圖5 Webservice接口功能
WebService接口使用XML文件表示信息的數(shù)據(jù)和結(jié)構(gòu),數(shù)據(jù)庫服務(wù)器負(fù)責(zé)對XML文件進(jìn)行數(shù)據(jù)解析和轉(zhuǎn)化。
數(shù)字化調(diào)試線數(shù)據(jù)庫負(fù)責(zé)數(shù)據(jù)的儲存,為了減少大量數(shù)據(jù)的頻繁寫入、查詢和導(dǎo)出等操作對系統(tǒng)資源的占用,本系統(tǒng)利用SQLServer數(shù)據(jù)庫來儲存列車出入庫過程中產(chǎn)生的狀態(tài)數(shù)據(jù),數(shù)據(jù)的儲存方式為聚簇存放[9]。它具有以下優(yōu)點(diǎn):
1)聚簇功能可以大大提高按聚簇碼進(jìn)行查詢的效率;
2)聚簇以后,相同聚簇碼的元組聚簇在一起,節(jié)省了存儲空間;
3)聚簇功能不僅適用于單個(gè)關(guān)系,也適用于多個(gè)關(guān)系。
在數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì)過程中,既要分析當(dāng)前系統(tǒng)的數(shù)據(jù)存儲需求,又要兼顧數(shù)據(jù)庫已有表項(xiàng)結(jié)構(gòu)特點(diǎn),同時(shí)還要充分考慮未來數(shù)據(jù)結(jié)構(gòu)的變化,減少數(shù)據(jù)庫中的鏈接和遷移。在當(dāng)前數(shù)據(jù)庫已有的故障信息表格、狀態(tài)信息表格、車輛基礎(chǔ)信息表格和人員信息表格基礎(chǔ)上,新建兩張數(shù)據(jù)庫表格,包括車輛RFID信息表格和閱讀器設(shè)備信息表格,按照各自定義的格式儲存數(shù)據(jù)。
終端計(jì)算機(jī)可以通過B/S方式訪問web服務(wù)器,查詢列車出入庫信息,web界面通過C#開發(fā)。
C#是一種簡單、安全、面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,它吸收了C++、Visual Basic、Delphi、Java等語言的優(yōu)點(diǎn),繼承了C語言的語法風(fēng)格,同時(shí)又繼承了C++的面向?qū)ο筇匦?。不同的是,C#的對象模型已經(jīng)面向Internet進(jìn)行了重新設(shè)計(jì),使用的是.NET框架的類庫。其特點(diǎn)有:語言簡潔、保留了C++的強(qiáng)大功能、快速應(yīng)用開發(fā)功能、語言的自由性、強(qiáng)大的Web服務(wù)器控件、支持跨平臺、與XML相融合[10]。
列車出入庫信息查詢界面主要包括實(shí)時(shí)監(jiān)測、信息查詢和設(shè)備狀態(tài)監(jiān)測界面。實(shí)時(shí)監(jiān)測界面主要負(fù)責(zé)顯示車輛出入庫狀態(tài),并按最新時(shí)間排序,每五分鐘更新一次;信息查詢界面主要用于查詢指定條件下列車的出入庫狀態(tài);設(shè)備狀態(tài)監(jiān)測界面負(fù)責(zé)查看現(xiàn)場各節(jié)點(diǎn)設(shè)備的電量和自檢狀態(tài)等信息。列車出入庫信息查詢頁面效果如圖6所示。
圖6 列車出入庫信息查詢頁面
RFID閱讀器實(shí)物如圖7所示,低功耗模式下,整體功耗小于50 mW;RFID閱讀時(shí),功耗約0.6 W;LoRa通訊時(shí),功耗約0.1 W。大容量電池可滿足1個(gè)月的連續(xù)工作時(shí)間。
圖7 RFID閱讀器實(shí)物圖
現(xiàn)場測試驗(yàn)證表明:超聲波傳感器有效探測距離大于5 m,RFID模塊可以準(zhǔn)確識別到3 m以內(nèi)的RFID標(biāo)簽,LoRa通信距離可達(dá)到400 m(調(diào)試車間最大長度),車輛出入庫信息的記錄與顯示正常,數(shù)據(jù)更新與車輛出入庫保持同步。
本文根據(jù)車輛調(diào)試車間列車出入庫的特點(diǎn),采用低功耗的LoRa無線通信傳輸方式,自動將車輛出入庫信息采集并及時(shí)、準(zhǔn)確地發(fā)送至數(shù)字化調(diào)試線的數(shù)據(jù)庫,有效的降低了現(xiàn)場調(diào)試人員的工作強(qiáng)度。平臺采用符合LoRa傳輸標(biāo)準(zhǔn)的LoRaWAN協(xié)議,以及符合物聯(lián)網(wǎng)通信的MQTT協(xié)議設(shè)計(jì),具有良好的通用性和可移植性,為今后車輛調(diào)試過程中其它功能的LoRa傳感器數(shù)據(jù)無線接入數(shù)字化調(diào)試線服務(wù)器提供了支持。