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