(1.蘭州交通大學 機電技術研究所,甘肅 蘭州 730070;2.蘭州交通大學 機電工程學院,甘肅 蘭州 730070; 3.蘭州交通大學 新能源與動力工程學院,甘肅 蘭州 730070)
我國鐵路運營總里程已達到12.4萬公里,其中普通鐵路客車依然占據著旅客運輸的主要地位。隨著新技術的不斷應用,我國鐵路運輸的技術實力有了較大提升,但依然有很多傳統模式亟需改變。普通臥鋪車廂旅客管理,是沿用了幾十年的“人工換票”模式:列車員手持換票夾,將每位旅客車票換成臥鋪卡,旅客在旅行期間要保管好謹防丟失,列車員需人工統計車廂臥鋪就位情況,同時擔負著到站前提醒旅客下車及再次換回車票的任務[1]。這種工作模式效率低、容易出錯,并且旅客的信息無法實時獲取并利用,已經不能適應鐵路發展及信息化管理的要求[2]。所以利用先進的計算機、通信技術設計一套臥鋪車廂旅客信息管理系統是非常必要的。
結合臥鋪車廂旅客信息管理的具體要求,系統應首先掃描上車旅客車票的二維碼,獲取旅客信息并實時上傳匯總,列車開出的同時,該節車廂所有鋪位信息自動匯總生成;系統終端顯示屏安裝在列車員室,該節臥鋪使用情況、旅客目的到站一目了然,并且信息在每到達一個車站后,隨著旅客上下車都能夠自動更新;系統同時具備到站前提示旅客下車功能,替代了傳統的列車員人工喊話。通過這套系統,列車員可以實時掌握車廂旅客動態,大大提升車廂管理效率,降低列車工作人員的勞動強度,提升旅客出行體驗。
根據功能設想,系統結構如圖1所示,系統設計由手持信息采集終端、旅客信息管理終端以及到站提醒模塊組成。手持信息采集終端采集旅客信息并上傳至旅客信息管理終端,旅客信息管理終端負責接收、處理信息并在顯示屏中顯示。根據系統的工作方式并結合列車車廂狹長、走道處不宜布線的特殊結構,手持信息采集終端與旅客信息管理終端的通信選擇無線的方式。對比目前常用的無線通信技術,ZigBee占用系統資源僅4~32 KB[3],功耗遠小于GPRS、藍牙等通信技術,設計帶寬為250 Kbits/s,通信距離幾百米到幾公里[4],足以完成手持信息采集終端的信息發送任務,且具有更高可靠性。故手持信息采集終端與旅客信息管理終端的通信選擇ZigBee技術。
旅客信息管理終端需要與車廂內66個到站提醒模塊建立通信連接,系統設計選用現場總線的方式進行數據通信。對比常用的現場總線技術,系統采用CAN總線通信。CAN總線是目前為止唯一具有國際標準的現場總線,支持的節點數多達110個[5],具有良好的可靠性、穩定性和較低的開發成本,能夠滿足旅客信息管理終端與到站提醒模塊的節點連接數量需求。
系統硬件設計包括手持信息采集終端、旅客信息管理終端以及到站提醒模塊3個部分,系統以放置在列車員室的旅客信息管理終端為核心。
手持信息采集終端由ZigBee通信基本單元和條碼掃描模塊UC3020S組成,通過串口連接,核心電路如圖2所示。ZigBee通信基本單元使用CC2530芯片作為中央處理器,該芯片整合了射頻前端、內存[6]。條碼掃描獲取旅客信息經ZigBee傳輸至旅客管理終端。
旅客信息管理終端負責全部旅客信息的接收、匯總、顯示及數據處理,由嵌入式模塊和通信模塊組成。嵌入式模塊主要包括嵌入式核心板、觸摸屏模塊、存儲設備、輸入輸出接口,旅客信息管理終端結構如圖3所示。嵌入式核心板以三星公司ARM Cortex-A8內核的S5PV210微處理器為核心,使用7英寸電容觸摸屏,觸摸屏使用FT5x06控制模塊。ZigBee通信模塊通過串口與核心板連接[7];外置CAN控制器MCP2515標準SPI接口與CAN控制器連接,負責CAN節點控制[8];GPS模塊與核心板通過串口連接,用于獲取列車當前位置。
到站提醒模塊負責接收旅客管理終端的提醒指令,由CAN通信模塊和單片機執行模塊組成。CAN通信模塊采用MCP2515獨立控制器和TJA1050高速CAN總線收發器為一體的外接模塊。TJA1050和MCP2515之間選用高速光耦隔離6N137以增強系統的抗干擾能力。

圖1 臥鋪車廂旅客信息管理系統結構圖

圖2 手持信息采集終端核心電路連接圖

圖3 旅客信息管理終端結構圖
系統軟件設計分為手持信息采集終端以及旅客信息管理終端兩部分,手持信息采集終端軟件基于Z-stack通信協議棧開發,旅客信息管理終端軟件基于Linux操作系統開發。
手持信息采集終端負責旅客信息的掃描獲取及無線傳輸,實現過程如圖4所示。手持終端上電后首先進行初始化,主要包括ZigBee通信模塊的系統時鐘、Flash、內存和網絡層的初始化以及設置條碼掃描模塊的工作模式兩部分;初始化完成,主要工作就是旅客信息二維碼掃描、解碼顯示及信息上傳。信息的無線傳輸功能基于Z-stack協議棧設計。Z-stack協議棧是由TI公司專門為CC2530芯片而設計,以函數的形式將ZigBee協議集成起來形成的函數庫[9],信息的發送程序調用Z-stack協議棧的API函數即可。

圖4 手持終端旅客信息獲取與無線傳輸
旅客信息管理終端采用Qt/Embedded圖形界面,顯示車廂內各旅客起終點站、姓名。與旅客管理終端相連的GPS模塊實時獲取列車當前位置,列車到站前,旅客管理終端對相應旅客發出到站提醒。旅客對提醒信號進行按鍵確認后,旅客管理終端會自動更新顯示數據;若旅客管理終端長時間未收到個別旅客的反饋信號,此時列車員可再進行人工提醒。
3.2.1 嵌入式Linux系統環境搭建
旅客管理終端以Linux 2.6.35為開發環境。首先PC機上安裝Ubuntu操作系統、應用程序交叉編譯工具、文件傳輸服務TFTP以及文件共享服務NFS[10];接著,編譯引導程序u-boot,在基本的Linux內核中加載接口驅動程序并重新編譯,通過TFTP服務將u-boot和內核傳輸至S5PV210的SDRAM中啟動操作系統;最后,使用BusyBox制作Linux文件系統,通過NFS服務將文件系統掛載到S5PV210。
3.2.2 旅客信息接收程序設計
旅客信息的接收是旅客信息管理終端的重點之一,Linux操作系統將設備以文件的形式進行操作,只需打開相應的串口設備文件,從該文件讀取數據即可完成旅客信息的接收,需要使用的文件操作函數如下。
① 打開串口設備:int open (const char *pathname,int flag s);
② 關閉串口設備:int close (int fd);
③ 接收旅客信息:s size_t read (int fd,void *buf,size_t count);
3.2.3 到站提醒模塊程序設計
到站提醒模塊程序設計的重點是通信數據幀的設計。列車到站前,旅客管理終端向相應的旅客發出到站提醒提示旅客做好下車準備,數據幀格式設計為:幀頭+幀ID+幀長度+幀數據段+CRC校驗+幀尾;其中幀頭采用“S”;幀ID用于區分不同的到站提醒模塊;幀數據段長度為2個字節,代表相應的位置和鋪號;幀尾以05H和06H 2個字節作為結束。
3.2.4 人機交互程序設計
旅客信息管理終端采用Qt/Embedded圖形界面,使用Qt/Embedded下的集成開發工具Qt Designer實現嵌入式GUI的設計與布局,完成界面設計后生成.ui文件,由.ui文件生成相應的頭文件,在頭文件中用類實現對界面的搭建。具體編寫過程如下。
① 使用Qt Designer提供的uic工具通過界面文件Passenger.ui生成Passenger.h和Passenger.cpp文件。命令為uic-o Passenger.h Passenger.ui uic-o 和Passenger.cpp-impl Passenger.h Passenger.ui。
② 在系統中實現顯示,在Passenger.cpp文件中加入相應的功能實現代碼。編寫主函數文件,主函數文件名為main.cpp,首先產生一個QApplication類的實例,然后定義窗口類實現并將其作為程序的主窗口,接著設置mainwindow部件,然后再調用show()和exec()方法,使用庫管理界面作為主界面,程序進入消息循環。
③ 編譯。使用progen命令生成工程文件(.pro文件),根據工程文件使用tmake命令生成 Makefile文件,最后使用make命令編譯鏈接整個工程。
通過對旅客信息進行處理匯總,旅客管理終端可以實現車廂當前鋪位以及剩余鋪位的統計,另外還增添了補票功能。旅客信息管理終端顯示界面如圖5所示,列車員通過操作旅客信息管理終端即可實現對車廂旅客的管理。

圖5 旅客信息管理終端顯示界面
傳統的人工換票及到站提醒效率低下、出錯率高,給旅客帶來不必要的束縛感的同時也使列車員的工作較為煩瑣。本文開發的基于嵌入式的臥鋪車廂旅客信息管理系統可以擺脫人工換票、人工到站提醒,實現車廂旅客數字化管理。并且我國目前新興的高速列車亦有發展臥鋪車廂的趨勢,若能應用到廣大的臥鋪列車管理中可以有效提高列車員的工作效率,降低列車員的出錯率,具有一定的實用性和推廣價值。