1. 引言
从1831英国人沃尔特·汉考克制造出世界上第一辆装有发动机的公共汽车起,公交车已经历经了将近200年的发展过程。从最初的“闷罐头”到如今配套的空调系统;从专人售票到无人售票;从人工报站到半自动语音报站,公交车向着越来越人性化的方向发展。可是目前仍存在一个问题,半自动语音报站系统需要由司机在机车进出公交站的时候人工操作,而这两个时间点往往是路面情况较复杂的时刻,因此也给行驶中的车辆带来了安全隐患。本设计的目标就是彻底摒弃人工操作,实现公交车进出站时的全自动语音报站,并且伴有语音提示和LED显示屏显示等信息。
本文利用GPS模块实现站台的自动识别,通过单片机对LED模块及语音模块的综合控制实现全自动语音报站和显示站台信息的功能。
2. 硬件系统设计
2.1. 系统设计
本系统实现自动播报站名且兼有LED同步显示信息的功能。系统主要由五大部分组成:主控制核心单片机、GPS定位信息采集模块、按键模块、语音模块和LED显示模块(如图1)。设计的整体思路是:通过按键电路和GPS定位系统采集地段信息并传给单片机,单片机获取信号后进行数据处理,在LED显示屏上显示当前和下一站站名信息,同时通过语音芯片输出放大后的语音信息 [1] [2] 。
2.2. 系统的工作原理
设备通电运行后,处理器会把FlashROM中保存的各站点经纬度数据读入内存,启动GPS模块工作,
![](//html.hanspub.org/file/3-2780100x9_hanspub.png)
Figure 1. The working diagram of the system
图1. 系统工作原理图
实时捕获车辆行驶过程中地理位置数据,然后与站点地理数据比较,确定车辆的具体行驶位置。处理器根据车辆的不同状态,调用经纬度信息,并启动语音文件播放器,同时调用FlashROM中对应的显示字库内容,传输到LED显示屏显示,从而实现了自动语音报站和文字信息同步显示。且在途中运行阶段,LED显示屏会持续滚动显示下一站的站名,方便乘客及时掌握车辆行驶状态。
2.3. 主控系统
主控系统处理器MCU采用的是宏晶公司STC89系列的STC
89C
52RC。STC
89C
52RC是宏晶科技推出的新一代超强抗干扰/高速/低功耗的单片机,指令代码完全兼容传统8051单片机,12时钟/机器周期和6时钟/机器周期可任意选择 [3] 。
2.4. GPS定位
该系统是通过GPS接收单元接收卫星发送的信号确认车辆的动态位置(经度、纬度)、时间、状态等信息,与公交线路信息库中存储的车站的位置信息进行比较,根据预先设定的信息和规则向乘客通报车站和线路的语音信息。GPS选用微型12通道GPS接收器,可以同时接收12颗卫星信号(只要能观测到4颗卫星,就能得到观测点的三维坐标)。美国取消SA政策以后,一般微型GPS接收机的即时定位精度在10~20 m之间,完全满足自动报站系统的需要 [4] 。
2.5. 语音播放
WTV 170系列语音芯片是广州唯创电子有限公司推出的一款语音芯片,其性能优越,价格实惠,能为用户提供很高的性价比 [5] 。本设计采用的是三线制控制方式,其具体硬件电路如图2所示:
![](//html.hanspub.org/file/3-2780100x10_hanspub.png)
Figure 2. Hardware circuit of the voice broadcast
图2. 语音播报硬件电路
2.6. LED显示屏文字播放
LED显示屏具有屏幕大、亮度高、视觉好、节能环保、寿命长、易于数字化控制以及价位低的特点,与LCD显示屏比较,更适合在公交车上使用 [6] 。
本设计中使用的LED显示屏为64 × 16点阵的单色屏体。为了保证显示内容与显示屏体大小无关,设计中显示方式采用跑马道的形式显示信息。
2.7. 按键电路
本系统兼有按键操作功能,键盘上的每一个键都有一个编号,CPU采用中断方式获取有无键输入的信息,并判断是哪个键按下,然后通过相应的键转移指令执行该键的功能程序。其具体电路如图3所示。
3. 系统软件设计
3.1. 主程序流程(见图4)
3.2. GPS模块程序设计
GPS一次接收数据流程(见图5): [7] [8] 。
3.3. 语音设计
为保证语音与文字同步,应用程序在调用语音播放的同时,把AT
29C
020 (256 KB的FLASH空间)中对应内容送给LED显示屏上滚动显示。语音程序流程,见图6。
3.4. LED屏显示控制的软件实现
扫描显示是利用人的视觉暂停原理,分时分行显示,由于每行重复显示时间间隔足够小,以至于人眼根本不能分辨,最终达到整屏点亮的效果。
(1) LED显示屏系统总体构架(见图7)。
![](//html.hanspub.org/file/3-2780100x11_hanspub.png)
Figure 3. Hardware circuit of the press key
图3. 按键电路
![](//html.hanspub.org/file/3-2780100x13_hanspub.png)
Figure 5. The program flow chart of GPS accepting data
图5. GPS一次接收数据流程
![](//html.hanspub.org/file/3-2780100x14_hanspub.png)
Figure 6. The program flow chart of speech
图6. 语音程序流程图
![](//html.hanspub.org/file/3-2780100x15_hanspub.png)
Figure 7. The framework of the LED display
图7. LED显示屏系统总体构架
(2) LED显示软件流程(见图8)。
4. 调试
4.1. 最小系统调试
(1) 在电路设计时,先测试晶振的好坏,再把晶振尽可能的接近单片机的18、19脚。
(2) 程序下载不进去的时候,有可能是因为MAX232烧毁。
(3) 程序下载时内部扩展AUX-RAM必须选禁止访问,不然单片机访问片内的RAM,导致数据出错。
(4) ISP下载:赋值ISP_CONTR = 0x60。
4.2. 语音模块调试
按照WTV系列语音的经典电路连接,其中需要注意的几个问题。
![](//html.hanspub.org/file/3-2780100x16_hanspub.png)
Figure 8. The program flow of the LED display
图8. LED显示程序流程图
(1) 振荡电路:R = 270 K,C = 101的无极性电容可以适当改变。R的值可调整语音播放的速度,阻值变小则语音速度变快,改动区间为:250 K~290 K。调节R5(反馈电阻)的大小可以改变音量,电阻的可调范围为0~50 KΩ,阻值越大,音量越大。
(2) 芯片的供电为3.3 V。
(3) 布线时VCC端的电容C1,要尽量靠近VCC管脚,同时,震荡电阻R2也要靠近R-FREQ管脚,以增强WTV系列语音芯片的抗干扰能力。
(4) 在单片机+5 V供电,语音芯片3.3 V供电的情呀下,需要在IO口上串接上470 Ω的电阻。
(5) 芯片控制方式分为按键、并口和串口模式,其中串口模式又分为一线串口和三线串口模式,在设计之前就要考虑好。语音内容和芯片控制方式需要合适,一般播放的内容较少可以选择一线式比较方便,但内容相对多的时候需要选用三线式,这些都需要设计电路之前就考虑好。
4.3. 显示调试
本文采用显示单元板为1/16扫描驱动电路,设计中送列数据之后的行扫描需要控制好时间,另外在程序调试过程中应特别注意:
(1) 如果行扫描信号停止,只会看到一行数据;
(2) 如果行扫描速度过低会看到数据在一行到另一行之间跳动;
(3) 如果行扫描速度过高会看到整屏都是红屏;
设计中根据标准的LED显示屏标准设计程序,调试的过程中刚开始显示屏显示暗红,主要是因为LED的消影开关设置反了的原因。
4.4. 按键调试
本设计测试过程中采用两种方法判断按键按下:
(1) 第一种是中断的方式。系统中设计了6个按键,使用了两个74HC08,将按键全部“与”起来接到单片机的外部中断输入口,接上拉电阻,这样情况下不管哪一个按键按下都会触发中断,然后就到中断中把按键标志置高。然后单片机判断到标志后处理相应的按键程序;
(2) 第二是采用查询的方式。单片机不断的查询是否有按键按下,如果有按键按下的执行相应的按键程序,否则的话继续查询。
采用查询方式比较占用时间,体统中需要判断的地方比较多,容易导致程序运行速度降低,所以本设计采用了中断的方式判断按键。
5. 结论
本次设计基本达到了预先的要求,实现了公交语音报站以及LED显示功能。但在GPS定位自动控制报站器方面功能还需要完善,主要因为GPS接收到的是字符数据,要实现设计最初与预设值进行比较然后判断位置的目的,需要的是具体的经纬度数据信息,但精确经纬度信息的获取比较困难。
资助信息
本文工作获云南省教育厅项目(2015C085Y)和曲靖师范学院(YZKC027)等项目支持。