施 聰
(上海軌道交通維護(hù)保障中心通號(hào)公司,200331,上?!喂こ處煟?/p>
近年來,隨著城市軌道交通的大力發(fā)展,也相應(yīng)地對(duì)維護(hù)保障工作提出了更高的要求。自從ATC(Automatic Train Control,列車自動(dòng)控制)系統(tǒng)投入使用以來,由于合同和技術(shù)保密的原因,并沒有向運(yùn)營(yíng)方提供與運(yùn)營(yíng)相關(guān)的關(guān)鍵設(shè)備和系統(tǒng)的技術(shù)參數(shù)。目前車載信號(hào)系統(tǒng)中有關(guān)ATC數(shù)據(jù)只能記錄在系統(tǒng)CPU板的EEPROM(電可擦寫可編程只讀處理器)內(nèi),由于EEPROM的容量有限,只提供了短時(shí)間內(nèi)簡(jiǎn)單保存一些最終事件記錄報(bào)告的功能而沒有中間變量的監(jiān)控,因而在設(shè)備發(fā)生故障特別是瞬間出現(xiàn)故障時(shí),使得維護(hù)人員找不到故障原因和解決問題的依據(jù),造成故障定位困難,故障處理時(shí)間長(zhǎng)。因此,有必要對(duì)車載ATC系統(tǒng)有關(guān)的關(guān)鍵信息,特別是安全信息進(jìn)行長(zhǎng)時(shí)間的實(shí)時(shí)監(jiān)控和記錄,并且要求能對(duì)數(shù)據(jù)進(jìn)行圖形化顯示,以方便分析處理。本文介紹一種應(yīng)用于上海軌道交通2號(hào)線的車載安全數(shù)據(jù)監(jiān)控系統(tǒng)。
該系統(tǒng)總體分為兩個(gè)部分:車載記錄板卡和上位機(jī)回放分析軟件。車載記錄板卡將數(shù)據(jù)存儲(chǔ)在大容量的SD卡中;上位機(jī)回放分析軟件則通過讀卡器直接在PC端讀取數(shù)據(jù),進(jìn)行顯示和分析。
車載記錄板卡總體結(jié)構(gòu)設(shè)計(jì)思路為:從車載ATC設(shè)備上下載ATO(Automatic Train Operation,列車自動(dòng)運(yùn)行)、ATP (Automatic Train Protection,列車自動(dòng)保護(hù))的數(shù)據(jù),并保存在大容量的SD卡中。要求車載記錄板卡符合列車車頭機(jī)架尺寸,可在機(jī)架上插拔,便于安裝。其整體結(jié)構(gòu)框圖如圖1所示。
圖1 車載記錄板卡整體結(jié)構(gòu)框圖
數(shù)據(jù)回放分析軟件的總體結(jié)構(gòu)設(shè)計(jì)思路為:以基礎(chǔ)資源庫(kù)為基石,以接口平臺(tái)為運(yùn)行支撐,以回放基礎(chǔ)功能為中心,建立系統(tǒng)架構(gòu),并在此系統(tǒng)架構(gòu)的支持下開發(fā)軟件。軟件的體系結(jié)構(gòu)包括資源庫(kù)、接口平臺(tái)和回放系統(tǒng)框架(如圖2所示)。
圖2 分析與回放軟件的體系結(jié)構(gòu)圖
車載ATC設(shè)備接口為標(biāo)準(zhǔn)的RS232串口(DB9接頭),波特率為19 200。車載記錄板卡設(shè)有兩個(gè)串口接收端,分別用于接收ATC設(shè)備中的ATP數(shù)據(jù)和ATO數(shù)據(jù)。內(nèi)部使用adm202e電平轉(zhuǎn)換芯片,其可靠性高,可以在-40℃~85℃內(nèi)正常工作,并且有15kV以內(nèi)的靜電保護(hù),能防止雷電等帶來的干擾和損害。
由于SD卡的正常工作電壓為3.3V,而單片機(jī)ATmega128工作在5V電壓下,若直接將單片機(jī)和SD卡連接將有可能損壞SD卡,所以需要進(jìn)行合適的5V-3.3V的電平轉(zhuǎn)換電路。SD卡工作在SPI(串行外設(shè)接口)模式。
74LVC245芯片完成從5V到3.3V的轉(zhuǎn)換。74LVC245芯片的3.3V供電電壓由 AMS1117-3.3芯片從5V轉(zhuǎn)換得到。與單片機(jī)連接的MOSI(主機(jī)輸出、從機(jī)輸入)、SCK(時(shí)鐘信號(hào))、SDCS(SD芯片選擇)的5V電平通過74LVC245轉(zhuǎn)換為3.3V輸出。而與SD卡連接的S_M(jìn)ISO(主機(jī)輸入、從機(jī)輸出)的3.3V電平通過74LVC245輸出仍為3.3V。對(duì)于工作在5 V電壓下的單片機(jī)而言,3.3V輸入仍然能夠識(shí)別為高電平。所以,通過74LVC245芯片轉(zhuǎn)換后主機(jī)和SD卡雙向都能夠正常工作。
列車機(jī)車電源為110V直流電源,必須通過DC—DC(直流—直流)轉(zhuǎn)換成5V電壓。如圖3所示,LC1為扼流圈,濾除110V中的高頻交流成分;ZLQ為整流堆,起反接保護(hù)。DC110S05芯片為DC 110~5V的電源轉(zhuǎn)換模塊,輸出為5V直流。
圖3 電源轉(zhuǎn)換電路
串口接收采用中斷方式,帶有1k字節(jié)緩存。緩存用FIFO(先進(jìn)先出)的環(huán)形隊(duì)列結(jié)構(gòu)。SD卡讀寫方式為單扇區(qū)讀寫,512字節(jié)為一個(gè)扇區(qū),即必須到達(dá)512字節(jié)數(shù)據(jù)量才開始一個(gè)扇區(qū)的寫操作。
由于采集的數(shù)據(jù)實(shí)時(shí)性要求較高,只要發(fā)送開始命令后數(shù)據(jù)就將以19 200波特率的速度不停發(fā)送。而文件系統(tǒng)在簇處理上需要尋找空扇區(qū)以建立文件簇鏈,往往在不連續(xù)的空扇區(qū)中將占用幾十ms到上百ms不等。所以串口的通信模塊中帶有1kB的緩存,能夠?yàn)槲募到y(tǒng)的處理時(shí)間爭(zhēng)取427ms左右的時(shí)間,可有效防止數(shù)據(jù)的意外溢出導(dǎo)致數(shù)據(jù)丟失。
程序開始時(shí),循環(huán)檢測(cè)SD卡;一旦SD卡插入卡槽后或SD卡已在卡槽中,就開始SD卡初始化,進(jìn)入SPI工作模式;初始化成功后,即裝載文件系統(tǒng),讀取當(dāng)前時(shí)間,建立當(dāng)天的文件夾;隨后向ATC設(shè)備發(fā)送開始接收命令。此時(shí)ATC設(shè)備將通過串口發(fā)送數(shù)據(jù)給車載監(jiān)控板卡,程序進(jìn)入主循環(huán)。具體流程見圖4。
由于ATC設(shè)備有時(shí)會(huì)故障重啟或人為關(guān)閉,所以需要檢測(cè)ATC設(shè)備掉線情況。正常工作時(shí),ATC設(shè)備將以400ms為間隔連續(xù)不斷地發(fā)送列車運(yùn)行時(shí)的數(shù)據(jù);如果遇到5s內(nèi)沒有收到任何數(shù)據(jù)時(shí),表明掉線發(fā)生,則應(yīng)重新向ATC設(shè)備發(fā)送開始接收命令。
掉線檢測(cè)的具體流程如下:串口緩存設(shè)置一個(gè)計(jì)數(shù)器,指示當(dāng)前緩存中的數(shù)據(jù)量。當(dāng)從緩存中取走一個(gè)字節(jié)數(shù)據(jù)時(shí),計(jì)數(shù)器減一。相反,當(dāng)串口接收一個(gè)字節(jié)數(shù)據(jù)到緩存中,計(jì)數(shù)器加一。當(dāng)計(jì)數(shù)器減為0時(shí),表明數(shù)據(jù)緩沖區(qū)當(dāng)前為空,進(jìn)入循環(huán)檢測(cè)。如果在5s內(nèi)緩存區(qū)依舊為空,關(guān)閉當(dāng)前文件,重新發(fā)送開始接收的命令。當(dāng)新數(shù)據(jù)再次到來時(shí),建立一個(gè)當(dāng)前時(shí)間的新文件并開始接收數(shù)據(jù)。
圖4 數(shù)據(jù)采集記錄程序流程框圖
1)系統(tǒng)分析。其任務(wù)在于明確并描述系統(tǒng)的需求,包括功能需求、界面需求、接口需求和性能需求等,并定義系統(tǒng)中的關(guān)鍵領(lǐng)域問題。
2)總體設(shè)計(jì)。根據(jù)系統(tǒng)分析需求,考慮特定系統(tǒng)的特殊需求,分析和設(shè)計(jì)具體的系統(tǒng)架構(gòu)。具體包括控件設(shè)計(jì)、軟件接口設(shè)計(jì)、ATC數(shù)據(jù)解析設(shè)計(jì)、界面設(shè)計(jì)和回放功能設(shè)計(jì)等。
3)數(shù)據(jù)準(zhǔn)備。收集整理所需的數(shù)據(jù)資源庫(kù),包括ATC配置文件、站場(chǎng)數(shù)據(jù)和所需組件等。
4)系統(tǒng)集成。生成基本操作界面,包括ATC數(shù)據(jù)顯示界面和站場(chǎng)圖,通過接口平臺(tái)進(jìn)行無(wú)縫連接,初步生成具有基本功能的回放系統(tǒng)(見圖5)。
圖5 ATC數(shù)據(jù)分析與回放軟件的系統(tǒng)集成
1)組件設(shè)計(jì)。圖6為上海軌道交通2號(hào)線設(shè)計(jì)組件的列表。圖7為上海軌道交通2號(hào)線的軌道信息通過組件設(shè)計(jì)而繪制的某站場(chǎng)圖。
2)軟件接口的實(shí)現(xiàn)。文本文件的輸入、輸出利用C++語(yǔ)言的fstream文件流進(jìn)行操作。車載板采集到的十六進(jìn)制TXT文件需要用ios∶binary以二進(jìn)制方式打開,其余文本文件以默認(rèn)方式打開。文本文件以ios∶∶out方式保存。EXCEL文件的輸入、輸出利用EXCEL操作類進(jìn)行操作。這里由于ODBC(開放數(shù)據(jù)庫(kù)連接)的功能限制,放棄了ODBC的快速讀寫速度,而調(diào)用office的com接口來操作office。這種方法的功能強(qiáng)大,便于滿足需求。
3)ATC數(shù)據(jù)解析實(shí)現(xiàn)。由于車載板采集到的數(shù)據(jù)文件為十六進(jìn)制格式,在Windows系統(tǒng)下難以直接分析,故需先將其轉(zhuǎn)換成ASCII碼的十六進(jìn)制文本文件,以便于分析采集到的數(shù)據(jù)是否正確;然后,根據(jù)分析ATC系統(tǒng)配置文件得到的參數(shù)對(duì)數(shù)據(jù)進(jìn)行分配組合完成數(shù)據(jù)處理。
4)實(shí)現(xiàn)基本回放功能由5個(gè)功能模塊組成,如圖8所示。①導(dǎo)入并且分析處理ATC系統(tǒng)的配置文件。由于ATC系統(tǒng)的配置文件會(huì)不斷地更新,如果每更新一次就要修改相關(guān)程序,就會(huì)使軟件的實(shí)用性大打折扣。因此,需要使軟件對(duì)配置文件能夠自我分析和處理。②導(dǎo)入并且處理車載板采集到的數(shù)據(jù)文本文件。車載板采集到的文本格式為連續(xù)的十六進(jìn)制數(shù)據(jù),需要對(duì)其進(jìn)行進(jìn)制轉(zhuǎn)換,然后根據(jù)導(dǎo)入ATC系統(tǒng)配置文件而得到的參數(shù)完成對(duì)原始本文的處理。最后將所需信息的相關(guān)數(shù)據(jù)導(dǎo)入軟件并按格式生成所需的EXCEL文件。③ 對(duì)所需ATC信息進(jìn)行回放顯示。ATC系統(tǒng)生成的每一組數(shù)據(jù)信息都會(huì)有對(duì)應(yīng)匹配的時(shí)間信息,因此以時(shí)間信息為基準(zhǔn),隨著時(shí)間信息的改變來同步顯示所需的相應(yīng)其他數(shù)據(jù)信息。④ 站場(chǎng)圖關(guān)聯(lián)。同樣以時(shí)間信息為基準(zhǔn),根據(jù)提供的《軌道ID對(duì)應(yīng)表》將ATC信息中的“軌道ID”與站場(chǎng)圖中的“軌道名稱”相關(guān)聯(lián),當(dāng)“軌道ID”為某一值時(shí),使列車會(huì)同步顯示在站場(chǎng)圖中相應(yīng)的軌道上,以實(shí)現(xiàn)列車在站場(chǎng)圖中的回放。⑤ 回放控制??刂苹胤诺拈_始和結(jié)束,提供設(shè)置所需回放時(shí)間段,提供設(shè)置所需回放速度。
5)根據(jù)ATC信息需求和基本功能需求設(shè)計(jì)操作界面。界面窗口分割為2大部分:一部分是數(shù)據(jù)顯示和回放控制;另一部分是站場(chǎng)圖(如圖9所示)。利用MFC(微軟基礎(chǔ)類)各控件能夠較容易地完成第一部分的繪制;但由于站場(chǎng)圖非常大,為方便起見需要對(duì)全圖進(jìn)行分割,并按照站點(diǎn)分為徐涇東—南京西路、人民廣場(chǎng)—塘鎮(zhèn)、凌空路—浦東國(guó)際機(jī)場(chǎng)共三段,再用已注冊(cè)的仿真組件完成繪制。
本文介紹了一種用于監(jiān)控記錄上海軌道交通2號(hào)線車載安全數(shù)據(jù)的系統(tǒng)。該系統(tǒng)有車載監(jiān)控板卡和上位機(jī)回放分析軟件兩部分組成。車載板卡數(shù)據(jù)存儲(chǔ)量大、便于安裝,回放分析軟件能將采集到的安全數(shù)據(jù)圖形化顯示,可進(jìn)行一定的分析。該系統(tǒng)大大提高了列車的維護(hù)保障效率、故障處理速度,稍加改造即可用于其它線的列車。這對(duì)保障城市軌道交通的安全監(jiān)控有積極意義。
[1]馬潮.AVR單片機(jī)嵌入式系統(tǒng)原理與應(yīng)用實(shí)踐[M].北京:北京航空航天大學(xué)出版社,2007:8.
[2]ChaN.ELM-FAT File Syst0em Module[EB/OL].http:∥elm-chan.Org/fsw/ff/00index_e.html
[3]姜堅(jiān)華.上海軌道交通線ATC系統(tǒng)的比較[J].城市軌道交通研究,2003(2):56.
[4]王野,郭秀清.基于組件技術(shù)的列車自動(dòng)監(jiān)控仿真系統(tǒng)開發(fā)平臺(tái)[J].計(jì)算機(jī)應(yīng)用,2007,27(S2):286.
[5]楊芙清,梅宏,李克勤.軟件復(fù)用與軟件構(gòu)件技術(shù)[J].電子學(xué)報(bào),1999,27(2):68.
[6]段繼華,劉衛(wèi).組件化技術(shù)在程序設(shè)計(jì)中的應(yīng)用[J].無(wú)線電通信技術(shù),2003,29(1):57.
[7]宇鵬,王曉峰,李云飛.Visual C++實(shí)踐與提高——ActiveX篇[M].北京:中國(guó)鐵道出版社,2001.
[8]周庭梁,周雄軍,張立鵬.城市軌道交通車載信號(hào)設(shè)備狀態(tài)的自適應(yīng)采集研究[J].城市軌道交通研究,2010(11):43.