公交车语音报站系统的设计
2012-03-13梁清梅杨立
梁清梅,杨立
(黑龙江八一农垦大学信息技术学院,大庆163319)
公共汽车为外出的人们提供了方便快捷的服务,传统由乘务人员人工报站因其效果太差和工作强度太大,在很多大城市已经被淘汰。近年来,由于单片机与各种语音芯片的结合,可完成语音的合成技术[1-3],而使得智能化汽车报站器的实现成为可能,并为市民提供了更加人性化的服务。鉴于传统公交车应用系统的不足之处[4-5],结合公交车辆的使用特点及实际营运环境,设计了一种低成本的由单片机控制的公交车应用系统[6],包括语音报站,时间、日期的显示,和车内温度的显示[7]。
1 设计方案
系统以单片机作为控制器件,采用人工按键的操作方式,实现对公交车站名的语音提示和文字显示功能。到达某站时,司机或乘务人员可通过按键,使单片机控制语音芯片。
图1 总体硬件设计框图Fig.1 Schematic diagram of hardware design
读取语音信息,通过语音输出电路进行语音报站提示。同时,单片机通过程序读取文字信息,送入液晶模块显示站名,还可将当前的温度和时间显示出来。因此得到一种公交车报站系统的低成本解决方案。
核心部分为单片机控制器,单元电路主要包括:时钟电路、显示部分、温度电路、语音播报电路。单片机通过程序来控制各部分统一协调地来完成各项功能。单片机选择AT89S52,外围电路由时钟芯片DS1302[8]、温度传感器DS18B20、LCD12864显示、功能键电路、语音芯片ISD4004等组成。语音电路ISD4004具有记录时间长、开发应用所需外围电路简单的优点。总体硬件设计框图如图1所示。
2 系统硬件电路设计
2.1 单片机系统
设计采用STC89C52作为主控芯片。STC89C52完全兼容传统51内核的单片机,因此使用的编译器和指令代码都和传统的51单片机是相同的,而且下载程序方式采用PC机串口下载,只需要做出电平转换电路即可方便的下载程序到单片机。
图2 单片机最小系统Fig.2 The smallest single-chip system
最小系统组成包括单片机,复位电路,振荡电路及电源。当最小系统接通电源时,上电瞬间REST端电位与VCC相同,随充电电流减小REST端电位逐渐下降,复位电路通过单片机复位信号输入端REST提供持续两个机器周期以上的复位电平使单片机复位。振荡电路为单片机提供工作所需的时钟信号,以保证单片机的正常运转。
2.2 时钟与温度电路
时钟电路如图3所示。DS1302工作电压为2.5~5.5 V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。当复位/片选线RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。
温度传感器采用 DS18B20,工作电压源为3~5 V,在使用中不需要任何的外围元器件,测量结果一般以9~12位数字量方式串行传送,测温范围为-55~125℃,固有测温分辨率0.5℃。
图3 时钟电路Fig.3 Clock circuit
2.3 语音播报电路
由单片机控制的语音播报电路部分如图4所示。该电路由ISD4004语音芯片和功率放大电路组成。ISD4004采用多电平直接模拟量存储技术,每个采样值直接存贮在片内闪烁存贮器中,声音记录不需要A/D转换和压缩,因此能够非常真实、自然地再现声音,避免了一般固体录音电路因量化和压缩造成的量化噪声和“金属声”。
同相模拟输入(ANA IN+)是录音信号的同相输入端。输入放大器可用单端或差分驱动。单端输入时,信号由耦合电容输入,最大幅度为峰峰值32 mV,耦合电容和本端的3 KΩ电阻输入阻抗决定了芯片频带的低端截止频率。差分驱动时,信号最大幅度为峰峰值16mV。反相模拟输入(ANA IN-)差分驱动时,是录音信号的反相输入端。信号通过耦合电容输入,最大幅度为峰峰值16mV。音频输出(AUD OUT)可驱动5 KΩ的负载。
图4 语音播报电路Fig.4 Circuitof speech broadcast
功率放大电路部分,INPUT为音频输入端,接ISD语音芯片的音频输出端,即AUNOUT引脚。调试时主要注意所接电容是否合理,输入电压大小如何。图中POT2为电位器,起调节音量大小的作用。用函数发生器输出一个频率为1 KHz的SIN信号,将此信号从功率放大器的输入端INPUT口输入,然后用示波器观察TDA2822的输出端输出的波形,如果能得到稳定、不失真且幅值被放大的正弦波形,则可以证明此功率放大器已经通过调试。
2.4 键盘、显示电路
键盘部分把公交车的电门按钮与报站系统的报站按钮设置到一起,当公交车到达某站台时,按下此按钮同时完成开门和报站的操作。当下一批乘客上车,公交车启动时,按下此按钮完成关门和播报下一站的站点信息工作;显示部分采用12864液晶显示。利用该模块灵活的接口方式和简单方便的操作指令,可显示8×4行16×16点阵的汉字,也可完成图形显示。
3 系统软件设计
3.1 日期与时间设置及显示流程图
图5 日期与时间设置及显示流程图Fig.5 Flowchartof date and time setting and display
启动DS1302,然后判断是否有按键按下,如果有setkey被按下,进行修改时间,再判断是否有setkey按下,如果有根据相应的setkey的值,修改时间和日期。直到有outkey按下时,退出时间的修改。如果没有键按下,就直接读时间操作。
3.2 语音播报流程图
ISD4004上电,初始化,看是录音键按下还是放音按下,如果录音按下进行录音操作,看是否正在录音,是就停止录音,不是就送录音命令;如果是放音键按下,就进行放音操作,看是否正在放音,如果正在放音就发送停止命令,否则就发送放音命令。如果没有按键按下就等待按键按下。
图6 语音播报流程图Fig.6 Flowchartof circuit of speech broadcast
4 小结
在设计中,将所要播报的站名和服务语音录到ISD4004中,并在公交车到达某站点,用键盘控制系统工作,通过语音电路输出语音信息和提示,同时在液晶12864上显示时间、日期和温度,通过设置键来更改时间和日期。最后,通过实物焊接以及软件调试,验证了设计的可行性与实用价值。
[1]胡伟.单片机C语言设计及应用实例[M].北京:人民邮电出版社,2003.
[2]刘海成.单片机及应用系统设计原理与实践[M].北京:北京航空航天大学出版社,2009.
[3]赵林惠.单片机应用技术[M].北京:科学出版社,2008.
[4]周国雄,许明情.城市公交车自动报站系统设计及其应用[J].装备制造技术,2007(4):109-111.
[5]李吉志,邓发明.基于DS18B20与DS1302的公交车报站系统[J].电子测试,2009(9):42-44.
[6]郭琳审.音频功放设计手册[M].北京:人民邮电出版社,2009.
[7]韩静,王熙.由单片机串口扩展的多位LED显示接口电路[J].黑龙江八一农垦大学学报,2007(6):42-45.
[8]王晨光,孙运强.串行时钟芯片DS1302在温度测量记录仪表中的应用[J].电子测试,2008(12):65-75.