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