摘 要: 隨著城市軌道交通的迅猛發(fā)展,地鐵列車(chē)的安全性與舒適性越來(lái)越成為乘客關(guān)注的重大議題,,其中保障通信順暢是確保列車(chē)安全運(yùn)行的重要環(huán)節(jié)之一,。本文針對(duì)上海地鐵三號(hào)線阿爾斯通軌道列車(chē)的乘客緊急通信單元不足之處,提出了一套以ATmega8-A為控制核心的解決方案,,并給出了乘客緊急通信單元的硬件設(shè)計(jì)和軟件實(shí)現(xiàn)方法,,旨在為軌道列車(chē)技術(shù)國(guó)產(chǎn)化盡微薄之力。
關(guān)鍵詞: 乘客緊急單元,;Atmega8-A,;USART,;通信接口
0 引言
乘客信息系統(tǒng)(Passenger Information System,PIS)被廣泛應(yīng)用在國(guó)內(nèi)外各種有軌車(chē)輛,、地鐵,、動(dòng)車(chē)及高鐵等交通工具上。PIS給乘客提供各種旅途信息,,已經(jīng)被廣大乘客所接受,,其已成為地鐵列車(chē)設(shè)計(jì)的必需系統(tǒng)。乘客緊急單元(PECU)是PIS的重要外設(shè),。PECU是乘客或列車(chē)自身出現(xiàn)異常情況時(shí),,乘客與司機(jī)緊急聯(lián)系的唯一通道,它的可靠性直接影響列車(chē)安全運(yùn)行甚至乘客的生命安全,。目前,,我國(guó)的PECU一般都采用國(guó)外技術(shù),出現(xiàn)問(wèn)題時(shí),,其維修難度高而且費(fèi)用昂貴。另外隨著地鐵的運(yùn)行,,原有的PECU裝備也會(huì)出現(xiàn)老化等問(wèn)題,。因此必須對(duì)PECU進(jìn)行研究,盡快實(shí)現(xiàn)國(guó)產(chǎn)化設(shè)計(jì),,使其性能更加卓越,,安全性能更高[1]。
1 乘客緊急通信單元硬件設(shè)計(jì)
本乘客緊急通信單元的設(shè)計(jì)以ATmega8-A單片機(jī)為控制核心,,主要由控制信號(hào)輸入接口,、通信接口、音頻放大及電源等模塊組成,。設(shè)計(jì)結(jié)構(gòu)框圖如圖1所示,。
當(dāng)列車(chē)出現(xiàn)緊急情況,乘客按下客室內(nèi)的呼叫按鈕,,在司機(jī)應(yīng)答之后便可實(shí)現(xiàn)全雙工通信,。ATmega8-A接收從控制口發(fā)來(lái)的命令并解析,將音頻數(shù)據(jù)通過(guò)硬件電路在車(chē)廂或者司機(jī)室內(nèi)進(jìn)行播放[2],。
1.1 微控制器Atmega8-A
AVR單片機(jī)是1997年Atmel公司推出的RISC(精簡(jiǎn)指令系統(tǒng)計(jì)算機(jī))單片機(jī),。RISC并非只是簡(jiǎn)單地去減少指令,而是通過(guò)使計(jì)算機(jī)的結(jié)構(gòu)更加簡(jiǎn)單合理而提高運(yùn)算速度,。由于AVR單片機(jī)采用了RISC的這種結(jié)構(gòu),,使其具備了1 MIPS/MHz的高速處理能力。AVR單片機(jī)硬件結(jié)構(gòu)采取8位機(jī)與16位機(jī)的折中策略,,即采用局部寄存器存堆(32個(gè)寄存器文件)和單體高速輸入/輸出的方案[3],。它在軟/硬件開(kāi)銷(xiāo),、速度、性能和成本諸多方面取得了優(yōu)化平衡,,是高性價(jià)比的單片機(jī),。Atmega8-A是AVR系列中的一員,它具有8 KB的系統(tǒng)內(nèi)可編程Flash,、512 KB的EEPROM,、擦寫(xiě)壽命可達(dá)10 000次、1 KB的片內(nèi)SRAM等特點(diǎn),,具有良好的抗干擾性和穩(wěn)定性[4],。
1.2 通信串口模塊
通信接口是指微型計(jì)算機(jī)系統(tǒng)與其他系統(tǒng)直接進(jìn)行數(shù)字通信的接口電路。圖2中MAX487CPA是MAXIM公司的差分平衡型收發(fā)器芯片,,是用于TTL協(xié)議與RS-485通信協(xié)議的一種低功耗收發(fā)器,。其每個(gè)器件中都具有一個(gè)驅(qū)動(dòng)器和一個(gè)接收器,收發(fā)器在驅(qū)動(dòng)器禁用的空載或滿載狀態(tài)下,,吸取的電源電流在120 A~500 A之間,。另外,MAX487具有低電流關(guān)斷模式,,僅消耗0.1 μA,,所有器件都工作在5 V單電源下。因此選取該芯片可以很好地符合本設(shè)計(jì)的要求[5],。
1.3 放大電路模塊
放大電路能夠?qū)⒁粋€(gè)微弱的交流小信號(hào)(疊加在直流工作點(diǎn)上),,通過(guò)一個(gè)裝置(核心為三極管、場(chǎng)效應(yīng)管)轉(zhuǎn)變?yōu)橐粋€(gè)波形相似(不失真),,但幅值卻大很多的交流大信號(hào)輸出,。實(shí)際的放大電路通常是由信號(hào)源、晶體三極管構(gòu)成的放大器及負(fù)載組成[6],。本設(shè)計(jì)采用Tda2052單聲道功率放大器芯片,。它能夠提供4個(gè)高功率8 負(fù)載阻抗,具有寬電壓范圍的高輸出電流能力,。Tda2052放大器的主要特點(diǎn)是:高輸出功率,、AC短路保護(hù)、熱關(guān)閉掉電保護(hù),、ESD保護(hù)以及Mute/Stand-By功能,。Tda2052可以工作在正負(fù)25 V的電壓環(huán)境下,沒(méi)有開(kāi)關(guān)噪音,。
2 乘客緊急通信單元軟件設(shè)計(jì)與實(shí)現(xiàn)
乘客緊急通信單元的軟件設(shè)計(jì)主要包括USART通信協(xié)議和單片機(jī)主控制程序兩大部分,。
2.1 USART簡(jiǎn)介
AVR單片機(jī)的異步串行收發(fā)器(UniversalSynchronous/Asynchronous Receiver/Transmitter,USART)是一個(gè)全雙工通用同步/異步串行收發(fā)模塊,。其主要特點(diǎn)包括全雙工操作(相互獨(dú)立地接收數(shù)據(jù)和發(fā)送數(shù)據(jù)),、異步或同步操作,、主機(jī)或從機(jī)提供時(shí)鐘的同步操作、高精度的波特率發(fā)生器,、具有5/6/7/8/9個(gè)數(shù)據(jù)位和1或2個(gè)停止位,、硬件支持奇偶校驗(yàn)操作、幀錯(cuò)誤檢測(cè),、噪聲濾波,、三個(gè)獨(dú)立的中斷、多處理器通信模式等特點(diǎn)[7],。
USART發(fā)送數(shù)據(jù)緩沖寄存器和USART接收數(shù)據(jù)緩沖寄存器共享相同的I/O地址,,稱(chēng)為USART數(shù)據(jù)寄存器或UDR。將數(shù)據(jù)寫(xiě)入U(xiǎn)DR時(shí)實(shí)際操作的是發(fā)送數(shù)據(jù)到緩沖寄存器(TXB),,讀UDR時(shí)實(shí)際返回的是接收數(shù)據(jù)緩沖寄存器(RXB)的內(nèi)容[8],。
本設(shè)計(jì)采用查詢方式的USART通信方式,詳細(xì)地介紹USART初始化函數(shù)usart_init(),、發(fā)送數(shù)據(jù)函數(shù)usart_SendByte()以及接收數(shù)據(jù)函數(shù)usart_ReceiveByte(),。
void usart_init(void)//USART初始化
{
UCSRB=0x00;
UCSRA=0x00,;
UBRRH=(unsigned char)(UBRR_0>>8),;//設(shè)置波特率
UBRRL=(unsigned char)UBRR_0;
UCSRB=(1<<RXCIE)|(1<<RXEN)|(1<<TXEN),;
//接收器和發(fā)送器使能
UCSRC=(1<<URSEL)|(1<<UPM1)|(1<<UCSZ1)|(1<<UCSZ0);//奇偶校驗(yàn)
}
void usart_SendByte(unsigned char data)//查詢方式發(fā)送
{
while(!(UCSRA&(1<<UDRE))),;
//等待發(fā)送緩沖器為空
UDR=data,;//將數(shù)據(jù)放入緩沖器,發(fā)送數(shù)據(jù)
}
unsigned char usart_ReceiveByte(void)//查詢方式接收
{
while(!(UCSRA&(1<<RXC))),;//等待接收數(shù)據(jù)
return UDR,;//從緩沖器獲取并返回?cái)?shù)據(jù)
}
2.2 單片機(jī)主程序
2.2.1 單片機(jī)主程序流程圖
圖3是本設(shè)計(jì)的軟件設(shè)計(jì)流程圖,結(jié)合AVR單片機(jī)的知識(shí),,介紹本設(shè)計(jì)單片機(jī)工作的流程,。
2.2.2 單片機(jī)主程序代碼
主程序包括端口初始化函數(shù)port_init()、定時(shí)器中斷初始化函數(shù)timer0_init(),、timer1_init()以及設(shè)備初始化函數(shù)device_init(),。其中端口初始化函數(shù)將PORTB、PORTC設(shè)置為輸入,,PORTD的高5位為輸出,,低3位為輸入[9]。由于這些函數(shù)很常見(jiàn),,本文就不列出具體的代碼,。MPU通信協(xié)議函數(shù)tx()是利用USART通信協(xié)議編寫(xiě)的串口通信函數(shù),,本函數(shù)通過(guò)判斷USART的接收緩存寄存器rx_buffer0,判斷PECU是第一次上電還是已經(jīng)處于正常工作,,并發(fā)送對(duì)應(yīng)的PECU上電碼和PECU工作碼給主控單元,。因?yàn)镽S-485是地鐵列車(chē)的通信方式,所以還需要通過(guò)RS-485通信協(xié)議發(fā)送和接收代碼[10],。
單片機(jī)主函數(shù)包括判斷乘客是否按下客室內(nèi)呼叫按鈕,,按下后在等待司機(jī)室的響應(yīng)時(shí)呼叫按鈕LED會(huì)閃亮,顯示等待狀態(tài),。當(dāng)接收到司機(jī)室的響應(yīng)后,,LED變?yōu)槌A粒藭r(shí)可與司機(jī)正常通話,。
void main(void)
{
unsigned char i=0,;
unsigned char j=0;
unsigned char pei=0,,r=0,;
delay_ms(1000);
init_devices(),;
while(1)
{
if((pei==0)&&(BPACTIV==0))
//第一次按下客室按鈕
?。?/p>
r=1;
TCCR1B=(TCCR1B & 0xF8)|0x05,;
REQ_PEI_ON,;
delay_ms(1000);
}
switch(r)
{
case 1:TCCR1B=(TCCR1B & 0xF8)|0x05,;
//客室燈閃亮,;
REQ_PEI_ON;
if(PEI_ACK==0)
{
r=2,;
TCCR1B=0,;
PEI_LED_ON;
delay_ms(1000),;
}
break,;
case 2:TCCR1B=0;
PEI_LED_ON,;//客室燈常亮,;
PEI_BUS_ON;
PEI_LINE_ON,;
if(PEI_ACK==1)
{
r=0,;
TCCR1B=0;
PEI_LED_OFF,;
}
break,;
default:TCCR1B=0,;
PEI_LED_OFF;//客室燈常滅,;
REQ_PEI_OFF,;
PEI_BUS_OFF;
PEI_LINE_OFF,;
break,;
}
}
}
3 結(jié)論
本設(shè)計(jì)將解決PECU通信協(xié)議問(wèn)題,完成PECU的設(shè)計(jì),,形成完整的緊急通信單元,。經(jīng)過(guò)對(duì)現(xiàn)有PECU的研究,將可設(shè)計(jì)出功能齊全,、性能優(yōu)異的國(guó)產(chǎn)PECU設(shè)備,,使其可以替代現(xiàn)有產(chǎn)品。接下來(lái)將進(jìn)一步測(cè)試硬件和優(yōu)化代碼,,完善程序功能,,并通過(guò)現(xiàn)場(chǎng)測(cè)試檢驗(yàn)其穩(wěn)定性和可靠性,爭(zhēng)取盡快應(yīng)用在軌道交通列車(chē)上,。
參考文獻(xiàn)
[1] 趙曉峰.地鐵列車(chē)乘客緊急報(bào)警系統(tǒng)設(shè)計(jì)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,,2011,11(6):49-51,,55.
[2] 史利強(qiáng),,郭秀清.城市軌道交通乘客信息系統(tǒng)中信號(hào)處理單元設(shè)計(jì)[J].微型機(jī)與應(yīng)用,2015,,34(2):29-31,,34.
[3] 謝群.列車(chē)全數(shù)字緊急對(duì)講單元硬件設(shè)計(jì)與實(shí)現(xiàn)[D].大連:大連理工大學(xué),2011.
[4] 嚴(yán)利明,,胡立坤,王慶超.基于UART的主從通信方式的主節(jié)點(diǎn)時(shí)序分析[J].電測(cè)與儀表,,2006,,43(7):51-54.
[5] 張恒旭,郭秀清,,霍勇.基于Atmega128數(shù)字化報(bào)站器的設(shè)計(jì)與實(shí)現(xiàn)[J].機(jī)電一體化,,2011,17(10):66-70.
[6] 黃俊杰,,黃云峰.AVR單片機(jī)實(shí)現(xiàn)光電隔離RS-422-485智能接口研究[J].鄭州大學(xué)學(xué)報(bào)(工學(xué)版),,2004,25(1):85-88.
[7] IEC61375-1 Ed.2 2005. Electric railway equipment-train bus-part1: train communication network[S]. 2005.
[8] 于孝安,,孫同慶,,汪曉臣,,等.城市軌道交通乘客信息系統(tǒng)路網(wǎng)控制中心設(shè)計(jì)的研究[J].鐵路計(jì)算機(jī)應(yīng)用,2013,,22(5):55-57.
[9] 徐強(qiáng),,郭秀清.地鐵列車(chē)PIS存儲(chǔ)模塊的設(shè)計(jì)[J].微型機(jī)與應(yīng)用,2014,,35(22):14-16.
[10] 劉煒,,毛建鑫,梁磊,,等.一種基于ARM的集中器的硬件實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,,2014,40(1):86-89.