摘 要: 随着城市轨道交通的迅猛发展,地铁列车的安全性与舒适性越来越成为乘客关注的重大议题,其中保障通信顺畅是确保列车安全运行的重要环节之一。本文针对上海地铁三号线阿尔斯通轨道列车的乘客紧急通信单元不足之处,提出了一套以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< //接收器和发送器使能 UCSRC=(1< } void usart_SendByte(unsigned char data)//查询方式发送 { while(!(UCSRA&(1< //等待发送缓冲器为空 UDR=data;//将数据放入缓冲器,发送数据 } unsigned char usart_ReceiveByte(void)//查询方式接收 { while(!(UCSRA&(1< 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.