(1.蘭州交通大學(xué) 機(jī)電技術(shù)研究所,甘肅 蘭州 730070;2.蘭州交通大學(xué) 機(jī)電工程學(xué)院,甘肅 蘭州 730070; 3.蘭州交通大學(xué) 新能源與動(dòng)力工程學(xué)院,甘肅 蘭州 730070)
我國鐵路運(yùn)營總里程已達(dá)到12.4萬公里,其中普通鐵路客車依然占據(jù)著旅客運(yùn)輸?shù)闹饕匚?。隨著新技術(shù)的不斷應(yīng)用,我國鐵路運(yùn)輸?shù)募夹g(shù)實(shí)力有了較大提升,但依然有很多傳統(tǒng)模式亟需改變。普通臥鋪車廂旅客管理,是沿用了幾十年的“人工換票”模式:列車員手持換票夾,將每位旅客車票換成臥鋪卡,旅客在旅行期間要保管好謹(jǐn)防丟失,列車員需人工統(tǒng)計(jì)車廂臥鋪就位情況,同時(shí)擔(dān)負(fù)著到站前提醒旅客下車及再次換回車票的任務(wù)[1]。這種工作模式效率低、容易出錯(cuò),并且旅客的信息無法實(shí)時(shí)獲取并利用,已經(jīng)不能適應(yīng)鐵路發(fā)展及信息化管理的要求[2]。所以利用先進(jìn)的計(jì)算機(jī)、通信技術(shù)設(shè)計(jì)一套臥鋪車廂旅客信息管理系統(tǒng)是非常必要的。
結(jié)合臥鋪車廂旅客信息管理的具體要求,系統(tǒng)應(yīng)首先掃描上車旅客車票的二維碼,獲取旅客信息并實(shí)時(shí)上傳匯總,列車開出的同時(shí),該節(jié)車廂所有鋪位信息自動(dòng)匯總生成;系統(tǒng)終端顯示屏安裝在列車員室,該節(jié)臥鋪使用情況、旅客目的到站一目了然,并且信息在每到達(dá)一個(gè)車站后,隨著旅客上下車都能夠自動(dòng)更新;系統(tǒng)同時(shí)具備到站前提示旅客下車功能,替代了傳統(tǒng)的列車員人工喊話。通過這套系統(tǒng),列車員可以實(shí)時(shí)掌握車廂旅客動(dòng)態(tài),大大提升車廂管理效率,降低列車工作人員的勞動(dòng)強(qiáng)度,提升旅客出行體驗(yàn)。
根據(jù)功能設(shè)想,系統(tǒng)結(jié)構(gòu)如圖1所示,系統(tǒng)設(shè)計(jì)由手持信息采集終端、旅客信息管理終端以及到站提醒模塊組成。手持信息采集終端采集旅客信息并上傳至旅客信息管理終端,旅客信息管理終端負(fù)責(zé)接收、處理信息并在顯示屏中顯示。根據(jù)系統(tǒng)的工作方式并結(jié)合列車車廂狹長、走道處不宜布線的特殊結(jié)構(gòu),手持信息采集終端與旅客信息管理終端的通信選擇無線的方式。對比目前常用的無線通信技術(shù),ZigBee占用系統(tǒng)資源僅4~32 KB[3],功耗遠(yuǎn)小于GPRS、藍(lán)牙等通信技術(shù),設(shè)計(jì)帶寬為250 Kbits/s,通信距離幾百米到幾公里[4],足以完成手持信息采集終端的信息發(fā)送任務(wù),且具有更高可靠性。故手持信息采集終端與旅客信息管理終端的通信選擇ZigBee技術(shù)。
旅客信息管理終端需要與車廂內(nèi)66個(gè)到站提醒模塊建立通信連接,系統(tǒng)設(shè)計(jì)選用現(xiàn)場總線的方式進(jìn)行數(shù)據(jù)通信。對比常用的現(xiàn)場總線技術(shù),系統(tǒng)采用CAN總線通信。CAN總線是目前為止唯一具有國際標(biāo)準(zhǔn)的現(xiàn)場總線,支持的節(jié)點(diǎn)數(shù)多達(dá)110個(gè)[5],具有良好的可靠性、穩(wěn)定性和較低的開發(fā)成本,能夠滿足旅客信息管理終端與到站提醒模塊的節(jié)點(diǎn)連接數(shù)量需求。
系統(tǒng)硬件設(shè)計(jì)包括手持信息采集終端、旅客信息管理終端以及到站提醒模塊3個(gè)部分,系統(tǒng)以放置在列車員室的旅客信息管理終端為核心。
手持信息采集終端由ZigBee通信基本單元和條碼掃描模塊UC3020S組成,通過串口連接,核心電路如圖2所示。ZigBee通信基本單元使用CC2530芯片作為中央處理器,該芯片整合了射頻前端、內(nèi)存[6]。條碼掃描獲取旅客信息經(jīng)ZigBee傳輸至旅客管理終端。
旅客信息管理終端負(fù)責(zé)全部旅客信息的接收、匯總、顯示及數(shù)據(jù)處理,由嵌入式模塊和通信模塊組成。嵌入式模塊主要包括嵌入式核心板、觸摸屏模塊、存儲設(shè)備、輸入輸出接口,旅客信息管理終端結(jié)構(gòu)如圖3所示。嵌入式核心板以三星公司ARM Cortex-A8內(nèi)核的S5PV210微處理器為核心,使用7英寸電容觸摸屏,觸摸屏使用FT5x06控制模塊。ZigBee通信模塊通過串口與核心板連接[7];外置CAN控制器MCP2515標(biāo)準(zhǔn)SPI接口與CAN控制器連接,負(fù)責(zé)CAN節(jié)點(diǎn)控制[8];GPS模塊與核心板通過串口連接,用于獲取列車當(dāng)前位置。
到站提醒模塊負(fù)責(zé)接收旅客管理終端的提醒指令,由CAN通信模塊和單片機(jī)執(zhí)行模塊組成。CAN通信模塊采用MCP2515獨(dú)立控制器和TJA1050高速CAN總線收發(fā)器為一體的外接模塊。TJA1050和MCP2515之間選用高速光耦隔離6N137以增強(qiáng)系統(tǒng)的抗干擾能力。
圖1 臥鋪車廂旅客信息管理系統(tǒng)結(jié)構(gòu)圖
圖2 手持信息采集終端核心電路連接圖
圖3 旅客信息管理終端結(jié)構(gòu)圖
系統(tǒng)軟件設(shè)計(jì)分為手持信息采集終端以及旅客信息管理終端兩部分,手持信息采集終端軟件基于Z-stack通信協(xié)議棧開發(fā),旅客信息管理終端軟件基于Linux操作系統(tǒng)開發(fā)。
手持信息采集終端負(fù)責(zé)旅客信息的掃描獲取及無線傳輸,實(shí)現(xiàn)過程如圖4所示。手持終端上電后首先進(jìn)行初始化,主要包括ZigBee通信模塊的系統(tǒng)時(shí)鐘、Flash、內(nèi)存和網(wǎng)絡(luò)層的初始化以及設(shè)置條碼掃描模塊的工作模式兩部分;初始化完成,主要工作就是旅客信息二維碼掃描、解碼顯示及信息上傳。信息的無線傳輸功能基于Z-stack協(xié)議棧設(shè)計(jì)。Z-stack協(xié)議棧是由TI公司專門為CC2530芯片而設(shè)計(jì),以函數(shù)的形式將ZigBee協(xié)議集成起來形成的函數(shù)庫[9],信息的發(fā)送程序調(diào)用Z-stack協(xié)議棧的API函數(shù)即可。
圖4 手持終端旅客信息獲取與無線傳輸
旅客信息管理終端采用Qt/Embedded圖形界面,顯示車廂內(nèi)各旅客起終點(diǎn)站、姓名。與旅客管理終端相連的GPS模塊實(shí)時(shí)獲取列車當(dāng)前位置,列車到站前,旅客管理終端對相應(yīng)旅客發(fā)出到站提醒。旅客對提醒信號進(jìn)行按鍵確認(rèn)后,旅客管理終端會自動(dòng)更新顯示數(shù)據(jù);若旅客管理終端長時(shí)間未收到個(gè)別旅客的反饋信號,此時(shí)列車員可再進(jìn)行人工提醒。
3.2.1 嵌入式Linux系統(tǒng)環(huán)境搭建
旅客管理終端以Linux 2.6.35為開發(fā)環(huán)境。首先PC機(jī)上安裝Ubuntu操作系統(tǒng)、應(yīng)用程序交叉編譯工具、文件傳輸服務(wù)TFTP以及文件共享服務(wù)NFS[10];接著,編譯引導(dǎo)程序u-boot,在基本的Linux內(nèi)核中加載接口驅(qū)動(dòng)程序并重新編譯,通過TFTP服務(wù)將u-boot和內(nèi)核傳輸至S5PV210的SDRAM中啟動(dòng)操作系統(tǒng);最后,使用BusyBox制作Linux文件系統(tǒng),通過NFS服務(wù)將文件系統(tǒng)掛載到S5PV210。
3.2.2 旅客信息接收程序設(shè)計(jì)
旅客信息的接收是旅客信息管理終端的重點(diǎn)之一,Linux操作系統(tǒng)將設(shè)備以文件的形式進(jìn)行操作,只需打開相應(yīng)的串口設(shè)備文件,從該文件讀取數(shù)據(jù)即可完成旅客信息的接收,需要使用的文件操作函數(shù)如下。
① 打開串口設(shè)備:int open (const char *pathname,int flag s);
② 關(guān)閉串口設(shè)備:int close (int fd);
③ 接收旅客信息:s size_t read (int fd,void *buf,size_t count);
3.2.3 到站提醒模塊程序設(shè)計(jì)
到站提醒模塊程序設(shè)計(jì)的重點(diǎn)是通信數(shù)據(jù)幀的設(shè)計(jì)。列車到站前,旅客管理終端向相應(yīng)的旅客發(fā)出到站提醒提示旅客做好下車準(zhǔn)備,數(shù)據(jù)幀格式設(shè)計(jì)為:幀頭+幀ID+幀長度+幀數(shù)據(jù)段+CRC校驗(yàn)+幀尾;其中幀頭采用“S”;幀ID用于區(qū)分不同的到站提醒模塊;幀數(shù)據(jù)段長度為2個(gè)字節(jié),代表相應(yīng)的位置和鋪號;幀尾以05H和06H 2個(gè)字節(jié)作為結(jié)束。
3.2.4 人機(jī)交互程序設(shè)計(jì)
旅客信息管理終端采用Qt/Embedded圖形界面,使用Qt/Embedded下的集成開發(fā)工具Qt Designer實(shí)現(xiàn)嵌入式GUI的設(shè)計(jì)與布局,完成界面設(shè)計(jì)后生成.ui文件,由.ui文件生成相應(yīng)的頭文件,在頭文件中用類實(shí)現(xiàn)對界面的搭建。具體編寫過程如下。
① 使用Qt Designer提供的uic工具通過界面文件Passenger.ui生成Passenger.h和Passenger.cpp文件。命令為uic-o Passenger.h Passenger.ui uic-o 和Passenger.cpp-impl Passenger.h Passenger.ui。
② 在系統(tǒng)中實(shí)現(xiàn)顯示,在Passenger.cpp文件中加入相應(yīng)的功能實(shí)現(xiàn)代碼。編寫主函數(shù)文件,主函數(shù)文件名為main.cpp,首先產(chǎn)生一個(gè)QApplication類的實(shí)例,然后定義窗口類實(shí)現(xiàn)并將其作為程序的主窗口,接著設(shè)置mainwindow部件,然后再調(diào)用show()和exec()方法,使用庫管理界面作為主界面,程序進(jìn)入消息循環(huán)。
③ 編譯。使用progen命令生成工程文件(.pro文件),根據(jù)工程文件使用tmake命令生成 Makefile文件,最后使用make命令編譯鏈接整個(gè)工程。
通過對旅客信息進(jìn)行處理匯總,旅客管理終端可以實(shí)現(xiàn)車廂當(dāng)前鋪位以及剩余鋪位的統(tǒng)計(jì),另外還增添了補(bǔ)票功能。旅客信息管理終端顯示界面如圖5所示,列車員通過操作旅客信息管理終端即可實(shí)現(xiàn)對車廂旅客的管理。
圖5 旅客信息管理終端顯示界面
傳統(tǒng)的人工換票及到站提醒效率低下、出錯(cuò)率高,給旅客帶來不必要的束縛感的同時(shí)也使列車員的工作較為煩瑣。本文開發(fā)的基于嵌入式的臥鋪車廂旅客信息管理系統(tǒng)可以擺脫人工換票、人工到站提醒,實(shí)現(xiàn)車廂旅客數(shù)字化管理。并且我國目前新興的高速列車亦有發(fā)展臥鋪車廂的趨勢,若能應(yīng)用到廣大的臥鋪列車管理中可以有效提高列車員的工作效率,降低列車員的出錯(cuò)率,具有一定的實(shí)用性和推廣價(jià)值。