摘要:在地鐵列車乘客緊急報警系統(tǒng)的設(shè)計過程中,采用AT89C52實現(xiàn)主控制邏輯,報警主機和分機之間的通信使用基于MT8888" title="MT8888">MT8888的DTMF通信" title="DTMF通信">DTMF通信,并使用EPM1270" title="EPM1270">EPM1270實現(xiàn)CRC8算法" title="CRC8算法">CRC8算法,提高了通信的安全性和可靠性。該系統(tǒng)具有存儲功能,利用自行設(shè)計的鍵盤可實現(xiàn)格式化存儲器" title="格式化存儲器">格式化存儲器。
關(guān)鍵詞:MT8888;DTMF通信;CRC8算法;EPM1270;格式化存儲器
引言
隨著城市軌道交通的快速發(fā)展,乘客對列車的舒適度和安全性提出越來越高的要求。對于上海地鐵1、2號線舊型直流驅(qū)動列車,當(dāng)列車車廂內(nèi)發(fā)生緊急情況(如火災(zāi)等)時,列車司機在封閉的駕駛室中無法得知災(zāi)難情況,而且乘客也沒有任何通信手段可以將車廂內(nèi)的災(zāi)情告知司機?;谶@種防災(zāi)需求,地鐵運營單位要求改造列車,加裝地鐵列車乘客緊急報警系統(tǒng)。
1 系統(tǒng)結(jié)構(gòu)
地鐵列車一般為6節(jié)編組(A1-B1-C1-B2-C2-A2),每節(jié)車廂長24.5 m,司機駕駛室設(shè)在A1和A2,乘客車廂為全部6節(jié)車廂。本系統(tǒng)在兩端司機駕駛室各設(shè)1臺報警主機,每節(jié)車廂安裝2個報警分機(車門上方)。當(dāng)乘客按下車廂內(nèi)的報警按鈕后,按鈕上的指示燈會點亮,并伴有報警聲音提示。報警分機在監(jiān)測到按鈕動作后,會將該信息通過列車線發(fā)送到駕駛室的報警主機。主機接收并處理信息后,點亮主機面板上對應(yīng)位置的LED指示燈,并利用聲音提示。此時,司機需要人工確認報警燈對應(yīng)按鈕,主機監(jiān)測到確認動作后關(guān)閉報警燈和報警聲音,并將該信息發(fā)送回對應(yīng)的報警分機。分機接收并處理信息后,關(guān)閉報警燈和報警聲音。
2 系統(tǒng)硬件設(shè)計
報警主機的硬件設(shè)計按照模塊化原則,可分為如下幾個功能模塊:主邏輯控制模塊、基于MT8888的DTMF通信模塊、LED數(shù)碼管控制模塊、LED燈控制模塊、蜂鳴器控制模塊、鍵盤掃描模塊、時鐘控制模塊、存儲控制模塊、數(shù)據(jù)存儲模塊等。系統(tǒng)硬件結(jié)構(gòu)框圖如圖1所示。
報警分機相對簡單,提供了乘客報警的人機界面。報警主機和分機之間使用基于MT8888芯片的DTMF通信技術(shù),并附加軟件CRC8校驗機制,確保通信的高可靠性和安全性。
3 系統(tǒng)軟件設(shè)計
報警主機和分機均使用Atmel公司的AT89C52作為主邏輯控制單元,與MCS-51產(chǎn)品指令和引腳完全兼容。分機的設(shè)計和實現(xiàn)相對簡單,主機用到了單片機提供的大部分資源,包括定時器中斷、外部中斷和串行中斷,各個功能模塊依靠各自中斷入口和優(yōu)先級依次運行。定時器和
中斷資源分配如表1所列。
對于中斷優(yōu)先級的考慮:
①與人機接口有關(guān)的中斷,其優(yōu)先級為高;
②為了保證串行通信的質(zhì)量,其優(yōu)先級為高;
③外部中斷采用較低級的中斷,其優(yōu)先級為低(外部中斷0,每秒2次;外部中斷1,每秒1次)。
3.1 基于MT8888的DTMF通信
由于涉及已運營線路的列車改造,系統(tǒng)的穩(wěn)定性和安全性是至關(guān)重要的,所以該系統(tǒng)在設(shè)計時報警主機和分機之間采用了基于MT8888的DTMF通信,并在列車上使用低煙、無鹵的線纜構(gòu)架系統(tǒng)的通信網(wǎng)絡(luò),做到與列車原有廣播系統(tǒng)的語音信號相互獨立,互不干擾。網(wǎng)絡(luò)拓撲結(jié)構(gòu)是總線型結(jié)構(gòu),最遠分機和主機的距離長達150 m。
DTMF通信每次收發(fā)只能處理4位數(shù)據(jù),但是對于實際通信數(shù)據(jù),就需要設(shè)置較大的緩沖區(qū),循環(huán)發(fā)送多字節(jié)數(shù)據(jù)。下面詳細描述主機和分機的通信協(xié)議。
3.2 基于CRC8的安全通信協(xié)議
根據(jù)系統(tǒng)的功能,報警主機和分機的消息類型包括:系統(tǒng)上電自檢、分機報警、主機報警回復(fù)。系統(tǒng)上電自檢是指在系統(tǒng)全部上電后,列車車廂內(nèi)的分機會自動向主機發(fā)送健康信息,主機收到該信息后會在界面上點亮對應(yīng)分機的指示燈;分機報警是指乘客按下報警按鈕后,分機向主機發(fā)送的報警信息;主機報警回復(fù)是指司機確認報警后,主機向分機發(fā)送的報警確認信息。為了保證通信的安全性,采用CRC8標準進行數(shù)據(jù)校驗,多項式為,簡記為0x31。
通信協(xié)議的詳細定義如下:
①上電自檢信息格式(3字節(jié))
報頭(1字節(jié)):FB
報文:車廂號(半字節(jié))+分機號(半字節(jié))
CRC(1字節(jié)):CRC8
②報警信息格式(3字節(jié))
報頭(1字節(jié)):EA
報文:車廂號(半字節(jié))+分機號(半字節(jié))
CRC(1字節(jié)):CRC8
③報警回復(fù)信息格式(3字節(jié))
報頭(1字節(jié)):EC
報文:車廂號(半字節(jié))+分機號(半字節(jié))
CRC(1字節(jié)):CRC8
在報警主機和報警分機的DTMF編解碼結(jié)束后,使用Altera公司的EPM1270芯片進行CRC8的生成和校驗,基于以下VHDL代碼實現(xiàn)了8位CRC碼生成電路。代碼中,InputData為輸入數(shù)據(jù),ResultCRC為輸出CRC碼,midCRC為當(dāng)前CRC碼。
CRC8校驗算法的使用,從軟件上為報警主機和分機的通信提供了一定的安全保障;CPLD硬件的實現(xiàn)方式,減輕了單片機的運算負擔(dān),使其專注于主控制邏輯的調(diào)度。
3.3 基于X25045的存儲管理
存儲芯片使用的是X25045,這個芯片具有看門狗和EEPROM兩種功能。使用時,看門狗的復(fù)位在定時器T0中實現(xiàn)。EEPROM的容量為512字節(jié),分上下兩個半?yún)^(qū),每半?yún)^(qū)地址為00H~0FFH。記錄的格式如表2所列。
基于以上提供的記錄格式,存儲空間做如下劃分:
◆000H,存儲待寫入記錄的上下半?yún)^(qū)地址;
◆001H,存儲待寫入記錄的半?yún)^(qū)內(nèi)地址;
◆002H~007H,預(yù)留;
◆008H~1FFH,存儲報警信息記錄。
所以,存儲器能夠存儲的報警信息的總數(shù)為(512-8)/7=72條。當(dāng)存儲器存滿之后,系統(tǒng)會自動覆蓋最早的一條記錄,從而循環(huán)利用存儲器空間。之所以會這樣考慮,主要是因為地鐵緊急報警系統(tǒng)是在極個別情況下才會使用的,所以真正使用的頻率可能會比較低。
存儲器的使用保證了系統(tǒng)在斷電之后,報警信息仍然可以保存下來。但是,這使得在系統(tǒng)初始化時,存在一個問題;系統(tǒng)斷電后,所有的其他信息都會丟失(包括存儲器的使用情況),當(dāng)系統(tǒng)再次上電復(fù)位后,系統(tǒng)就無法知道從存儲器的哪個字節(jié)開始存儲信息。所以,需要把存儲器的使用情況存儲在存儲器上(000H,001H)。這樣,當(dāng)系統(tǒng)上電復(fù)位的時候就可以讀取這個信息,從而正確使用存儲器。但是,在這種情況下,需要在使用系統(tǒng)前對存儲器進行格式化,就好像安裝PC機的操作系統(tǒng)需要格式化 硬盤一樣。本設(shè)計方案是利用已有的小鍵盤,通過
輸入簡單的密碼來格式化存儲器。
格式化命令:
①按下第一行左數(shù)最后一個鍵,A2-1;
②按下第二行左數(shù)第一個鍵,A1-2;
③按“回車”鍵。
這時,LED屏?xí)@示“-F-F-F”,這表示報警主機正在對X25045進行格式化。當(dāng)格式化結(jié)束后,LED屏?xí)詣犹氐綍r間顯示狀態(tài)。
結(jié)語
地鐵列車乘客緊急報警系統(tǒng)是上海地鐵列車安防系統(tǒng)國產(chǎn)化改造的重要成果,解決了既有線路維護工作中的實際問題,是國內(nèi)企業(yè)參與城市軌道交通建設(shè)的良好實踐。
地鐵項目的實施需要以高安全、高可靠的技術(shù)為基礎(chǔ),本文描述的項目從硬件和軟件兩方面著重考慮安全因素,并在幾十列列車上實際安裝使用,司機和乘客均反映良好。