随着我国经济的高速发展,人们外出旅行的机会逐渐增多,公交汽车在日常生活中的作用越来越突出,从而对城市公交系统安全运营方面提出了更高的要求。目前,许多中等以上城市的公交车上都实现了无人售票,公交司机对行车安全承担的责任也就更大,这就迫切需要在每辆公交车上安装自动报站器。近些年来,国内学者逐步开展了这方面的研究工作,采用单片机、嵌入式处理器、无线传感器网络和GPS等技术设计了各种公交自动报站系统,对城市公交的发展起了很好的促进作用。但是,目前大部分中小城市的公交线路仍未全面采用自动报站系统,急需成本低廉、运行可靠、易于维护、易于推广的自动报站器。
笔者针对中小城市公交系统的特点,将单片机与ZigBee技术相结合,设计出基于ZigBee技术的低成本自动报站器,兼有手动和自动两种报站器的优点,适合于大规模普及应用。
1 总体方案
在城市各主要街道的公交车站台众多,一个站台可能要停靠多个线路的公交车辆,而且同一站台在各个线路的命名可能不一样,因此,站址编码信息需要采用8位拨码开关进行动态设置,以便各路公交车自动识别在本线路中的当前位置。图1所示的是具有n个站台的公交车自动报站系统示意图。
由于中小城市的路面较窄,公交车在行进过程中可能会同时接收到多个站址编码信息,如图1中右向行驶的公交车就会同时接收到站台1和站台n的编码信息,此时可以通过行驶方向自动判断站台1的编码信息是有效的。车辆行驶方向可以采用预制或站址递增(递减)方式进行识别,如果出现编码突变的情况,说明车辆行进过程中可能因为无法自动报站而采用了手动报站,这样系统可以记录下该站台的编码以便及时维修。
本系统分为车载和站台两部分,车载部分采用以MSP430F149单片机为核心的控制模块;站台部分只需要发射站址编码信息,要求低功耗、低成本、高可靠性且易于维护,因此ZigBee发射模块以CC2430芯片为核心构成。图2所示的是公交车自动报站系统的设计框图。
2 硬件设计
2.1 站址编码信息发射器
站址编码信息发射器的硬件设计如图3所示,主要由ZigBee发射模块、晶振、阻抗匹配网络、天线和电池组成。ZigBee选用Chipcon公司的CC2430芯片,该芯片延用了以往CC2420芯片的架构,在单个芯片上整合了ZigBee射频前端、内存和微控制器(增强型8051内核),采用0.18 mCMOS工艺生产,在发射模式下电流损耗低于25mA,具有从休眠时间模式切换到主动模式的超短时间特性,特别适用于要求电池寿命非常长的场合,2节5号电池最长可使用2a时间。
CC2430芯片外接32MHz的晶振,通过8位拨码开关SW动态设置站址编码数据,经阻抗匹配网络处理后通过天线发送出去,覆盖范围可达几十米。
该硬件设计方法具有电路简单、信号稳定、成本低、易安装的特点。
2.2 车载自动报站器
车载自动报站器的硬件设计如图4所示(除键盘和显示模块外)。
单片机采用TI公司的MSP430F149芯片,其功耗电流为μA级。MSP430内核是16位的CPU,具有高效的RISC指令系统,统一的中断管理,片内有精密硬件乘法器、两个16位定时器、一个14路的12位模数转换器、一个看门狗、六路并行口、两路USART通信端口、一个比较器、两个外部时钟和60kB的闪存,其中两路通信端口可工作于UART和SPI模式。
ZigBee接收模块采用CC2420芯片,它具有完全集成的压控振荡器,只需要天线、16MHz晶振等少数外围电路就能在2.4GHz频段工作。CC2420只提供一个SPI接口与微处理器连接,通过这个接口完成设置和收发数据工作。MSP430F149集成了SPI控制器,可以方便地与CC2420配合使用。
时钟芯片采用DS1302,是DALLAS公司开发的一种基于I2C总线的高性能、低功耗、带RAM、具有闰年补偿功能的串行时钟日历芯片,内部可自行产生年、月、日、星期、时、分、秒等时标数据并保存在相应的寄存器中,单片机可直接读取这些数据。
温度传感器采用DS18B20,是DALLAS公司生产的一线制单总线智能数字温度传感器,具有微型化、低功耗、高性能、抗干扰能力强等优点,测温范围为-55℃~+125℃,在-10℃~+80℃时测量精度为0.5℃。单片机发出温度转换指令后,DS18B20将测得的温度值保存在MSB(高8位)和LSB(低8位)两个单元中,单片机可直接读取。
LED点阵显示模块的主要部分是显示阵列和行列驱动电路。本设计显示阵列为16行×64列单色点阵,行驱动电路由MC74HC138芯片、TC74HC04芯片和三极管NPN9013组成,列驱动电路由M74HC595芯片组成,采用动态扫描型驱动方式,可动态、实时地显示站点、当前温度、日期及时间等信息。
USB接口芯片选用PDIUSBDI2,是Philips在USB1.1协议设备端使用最多的芯片之一,符合大多数器件分类的规格,可用于U盘上。PDIUSBDI2集成了许多特性,包括可编程的时钟输出、低频晶振、端点寄存器、模拟收发器、电压调整器、位时钟复位、串行接口引擎、存储器管理单元、SoftConnect,GoodLink和集成RAM.内部包含3个端点,每个端点又有输入和输出两个端点。其中端点0的索引0和1为控制输入和输出端点,用于传输USB的控制命令,完成USB的枚举;端点1的索引2和3为普通输入和输出端点,端点2的索引4和5可以配置成普通输入输出端点、同步输入端点、同步输出端点或者同步输入输出端点。端点0和端点1的缓冲区大小为32kB,端点2的缓冲区大小为128kB,且为双缓冲。USB数据的传输就是通过这些端点进行的。
语音功放模块包括语音芯片、功率放大器、扬声器等。语音芯片选用ISD4003集成芯片,其语音信号的连线很少,单片录放时间为4~8min,芯片采用多电平直接模拟量存储技术,每个采样值直接存贮在片内闪存中,可以真实、自然地再现语音信号。功放芯片选用TDA2822双声道音频功率放大电路,其工作电压范围宽,适用于在低电源电压下工作,交越失真小、静态电流小,最大输出功率可达3W.
3 软件设计
车载部分软件流程如图5所示,主要包括:系统初始化程序、键盘中断服务程序(手动报站部分)、ISD4003语音播放程序、U盘管理程序、LED显示程序以及读取DS1302,DS18B20,CC2420等子程序。站台部分的软件工作流程比较简单,在此就不再叙述了。
4 结束语
1)站台部分的设计采用CC2430芯片实现站址编码信息的自动发射,外围电路少,可采用电池长时间供电,成本低、运行可靠且易于安装、维护。
2)车载部分可通过U盘存储的线路信息方便地实现公交线路的切换,LED点阵显示效果好,在自动报站的同时可实时滚动显示站名、日历、时间、星期和温度信息,增加了实用性,使公交服务更人性化。
3)针对中小城市公交系统的特点及实际运营环境,考虑性能价格比和实用性设计了基于ZigBee技术的单片机自动报站系统,可扩展性强,成本低,非常适合大规模推广使用。