基于单片机的公交车语音报站录放系统.docx
《基于单片机的公交车语音报站录放系统.docx》由会员分享,可在线阅读,更多相关《基于单片机的公交车语音报站录放系统.docx(31页珍藏版)》请在冰豆网上搜索。
基于单片机的公交车语音报站录放系统
基于单片机的公交车语音报站录放系统
摘要
目前,每辆公交车上只配备一个司机,公交车上大部分都采用投币的购票方式。
如何方便、准确地指示乘客到站成为了当务之急。
虽然随着单片机的出现,早有设计出的语音自动报站器投入使用,但实践证明,只有语音的报站器并不能满足所有乘客的需要,比如在噪音比较大的场合或者聋哑人乘车时,就有可能因听不见语音报站而导致坐过站,为乘客带来不便。
因此,我研制这个具有汉字显示功能和语音输出功能的报站器单片机系统,来解决这个问题。
系统采用单片机作为主要控制部件,根据公交车报站的特点,提出了一种用单片机控制语音芯片进行公交车语音自动报站的方法。
利用STC90C516RD+作为CPU进行总体控制,通过ISD4002语音芯片建立语音信息库,形成变化多样的语音信息,利用Speak喇叭播出站号语音信息以及提示语音信息,同时运用LCD液晶显示器进行相应站点显示。
经调试,系统在公交车进站、出站时能自动播报语音提示信息及服务用语,同时利用LCD进行汉字显示。
【关键词】ISD4002语音芯片;STC90C516RD+单片机;LCD12864液晶
Automatic newspaperstationsystem voicebus basedonSinglechipmicrocomputer
Abstract
Atpresent,everybusonlyequippedwithadriver,thebusmostofthemadoptedtheticketmethod.Howconvenient,accurateindicationofpassengerarrivalhasbecomeapressingmatterofthemoment.AlthoughwithMCU,hadastationputintouseautomaticspeechdesigned,butthepracticeproof,onlythevoicestationreportingdevicecannotmeetalltheneedsofpassengers,suchasinthenoiseisrelativelylargeoccasionsordeafcar,itispossibleforinaudiblevoicestationreportingtositstation,inconvenienceforpassengers.Therefore,IdevelopedtheChinesecharactersdisplaymicrocontrollersystemfunctionandvoiceoutputfunctiontostop,tosolvetheproblem.
Thesystemadoptsthesingle-chipmicrocomputerasthemaincontrolunit,accordingtothecharacteristicsofbusstations,thispaperpresentsanovelmethodforvoicebusstopautomatedvoicechipwithMCUcontrol.AstheCPUoverallcontrolusingSTC90C516RD+,establishingavoicedatabasethroughtheISD4002voicechip,theformationofavarietyofspeechinformation,useSpeakspeakerbroadcastingstation,voicemessagingandvoiceinformation,whiletheuseofLCDliquidcrystaldisplayforthecorrespondingdisplay.Afterdebugging,thesystemcanautomaticallybroadcastvoicepromptinformationandservicesinthebusstation,station,usingLCDChinesecharactersdisplay.
【Keywords】ISD4002voicechip;STC90C516RDsinglechipmicrocomputer;LCD12864
目录
1绪论1
1.1课题研究的背景1
1.2公交车报站器近年来的发展现状和趋势1
1.3课题研究的目的和意义2
1.4设计任务2
2方案设计3
2.1原理3
2.2方案设计3
3系统的硬件设计电路及原件说明5
3.1MCU控制电路的设计5
3.1.1关于STC90C516RD+单片机5
3.2语音输出电路的设计5
3.2.1关于语音芯片ISD40025
3.2.2录音、放音电路的设计8
3.3系统显示电路的设计10
3.3.1关于LCD12864液晶显示10
3.3.2LCD12864液晶显示器的管脚图及管脚定义11
3.3.3显示电路的原理图11
3.4按键电路的设计12
4系统软件13
4.1设计思想13
4.2模块程序设计13
4.2.1软件主流程图13
4.2.2ISD4002语音模块录放音16
4.2.3LCD12864显示17
5系统调试及测试结果分析20
5.1系统测试20
5.2测试结果分析20
5.2.1测试环境20
5.2.2测试结果20
6总结22
参考文献23
致谢24
附录一系统的程序清单25
附录二基于单片机的公交车语音自动报站系统原理图30
附录三基于单片机的公交车语音自动报站系统PCB图31
附录四基于单片机的公交车语音自动报站系统实物图32
1绪论
随着国家城市建设进程的加快,公交车作为城市的基础设施之一,在保护环境与实惠方面,首选的交通出行方式就是公交车。
大家为了能够快速有效的了解到城市的具体情况,基本上都会选择乘坐公交车这一便利有实惠的通行方式,特别是为外来旅游、出差、就医、求职等这样需要快速了解本城市的基本路线,以及希望能在该城市能灵活通行的人们,为他们提供更加便利的公交系统,提高整个城市公交系统的运作效率,公交的报站系统便随之产生。
这在非常大程度去除乘务员沿途报站的麻烦,减少了公交车的工作人员,减少了劳动力,不仅给许多不熟悉公交线路的乘客带来更大的方便,而且是整个城市生产生活方式的提升。
公交报站系统的全面推广在城市建设的过程中将不单单是形象的提升,效益也是有很大的增长。
1.1课题研究的背景
在现代社会中,对大多数城市居民旅游相关公共交通行业,但在传统的手工报站巴士仍然无法满足所有要求。
主要表现有:
(1)乘车人员的安全隐患:
每次报站时都需要由驾驶员对报站器进行操作,此时的司机又要停车和启动车辆,还要操作报站系统,这样会在行驶时有安全问题。
(2)在行车中报站不准确:
由于司机一整天都在工作,难免会有按错键或忘记按键的时候,这样会让不熟悉路线站点的乘客有下错车的现象。
公交报站语音录放系统的设计主要是为了填补传统人工报站,而且车上必须有乘务人员和司机两个人才能工作的这样一种落后的工作方法,在进站、出站的时候由司机操作报站系统来播报站名以及服务用语,并且可以显示站名等,使得那种听力不好活聋哑的特殊人士也可以顺利的搭乘公交车。
1.2公交车报站器近年来的发展现状与发展趋势
目前,语音报站器主要有以下几种:
(1)一般语音报站器,是由乘务员按动进站和出站按钮报站,以提示下车信息和预报下站站名;
(2)门控语音报站器,将开门、关门时转换信号与语音报站器连接,司机在按开、关门时就可以实现自动报站了;(3)无线信标语音报站器,建设复杂,费用高,用户修改站点非常不方便系统维护成本较高;(4)GPS自动语音报站器,次报站器是在公交车上安装GPS自动语音报站器,可以自动识别站点并报告站点信息,由于报站精准,又不需要人工操作,被广泛应用[1]。
综合各方面的情况,我在本次公交车语音录放报站系统的设计中,我采用了第一种的语音报站方法,并对其不恰当的地方进行了调整,使其更加实用,更加便利。
1.3课题研究的目的与意义
目前公交车报站系统的设计只有语音报站,但是当公交车内的乘客多的时候,声音很嘈杂,语音报站可能不能完全的满足乘客的需求。
而到站台等车这样的时候,就更加忽视了乘客,在恶劣的天气和能见度低,乘客往往不能明确区分车辆到达线,有很多车的问题,,基本现象如下:
有的乘客走到机动车的行车道上伸头观望,这样很不安全;而更多的则是一大群一拥而上,公交车的乘车人数还是很多的,这样很容易造成盲目拥挤,秩序混乱的场面。
而且还经常出现乘客坐不到车,耽误坐车时间,这样会在工作生活带来很大的不利,严重的还会出现一些不安全事故。
其次,传统的人工报站方式效果太差。
即由乘务员进行人工报站,这个时候乘务员不仅需要负责售票工作,还要精准的为乘客报站,在每个不同的地方,口音都会有不同,这是一个地方的传统特色,而报站时大多就是用的地方口音,使得外来人员有时候很难听懂报站,从而引起不必要的乘车麻烦。
传统的人工语音报站在当今的时代已经被大多数的城市淘汰了,取而代之的是公交车语音与文字显示于一体报站系统,这样可以弥补了传统人工语音报站的落后的工作方式,为广大市民以及外来城市人员提供了更人性化,更完善的交通服务。
比如说可以通过公交车语音报站,照顾盲人乘客;可以用液晶显示器显示站名,照顾聋哑人等,让每个人在生活中都感受到科技创新给大家在生活中带来的便利,科技的进步是我们人类文明的进步。
1.4设计任务
本设计结合单片机的特点和公交车报站系统的特点,提出了一种基于单片机STC90C516RD+来控制语音芯片ISD4002进行公交车语音报站,并通过LCD12864液晶来显示当前报站信息。
这次设计过程先是进行硬件电路设计,然后进行软件程序编写。
本系统硬件利用STC90C516RD+作为CPU进行总体控制,通过ISD4002语音芯片建立语音信息库,是的多样语音信息形成,利用Speak喇叭播出站号语音信息以及提示语音信息,同时运用LCD液晶显示器进行相应站点显示。
公交车语音报站系统的设计使用灵活,性能稳定,而且声音清晰,自然,社会和科学研究存在的价值。
2方案设计
2.1原理
公交车报站录放系统的设计主要是有司机按键来进行语音报站。
本系统使用单片机STC90C516RD+作为控制器件。
当系统的语音播放,语音单片机控制语音合成电路读取外部麦克风接收的语音信息,以及合成的语音信号,再通过音频放大电路语音报站。
同时,单片机STC90C516RD+通过程序读取文字信息,送入液晶显示器LCD12864来进行站名的显示。
当系统在语音录制站台信息时,语音信号是通过语音录音电路送给语音合成电路中的语音芯片,在语音芯片ISD4002中进行数据处理,并将生成的数字语音信息存储到该语音芯片的存储芯片当中,建立出语音库。
2.2方案设计
公交车站报站录放系统的设计,用单片机STC90C516RD+为主控芯片,对外来脉冲计数,结合语音芯片ISD4002语音输出。
系统由脉冲检测、脉冲计数、CPU控制、控制信号、语音芯片、输出显示等组成。
原理框图如图2-1所示。
图2-1原理框图
(1)脉冲检测:
本次系统设计考虑车辆是在复杂的环境中运行,因此是采用DN6848来作为信号的采集装置,然后经过光电耦合器作用输入单片机STC90C516RD+。
(2)脉冲计数:
光电耦合器的信号进入单片机C51后,采用中断方式对脉冲计数。
(3)CPU控制:
程序中将计数值于预置值进行比较,判断是否到站,当到站时就输出信号控制语言芯片进行报站。
(4)控制按键:
在手动控制、手动调整、预置值的输入中操作。
(5)语言芯片:
由专用语音芯片ISD4002组成,可擦写,便于在不同公交线上使用。
外接话筒和音箱组成语音录制和播放电路。
(6)输出显示:
文字显示模组采用LCD12864液晶屏作为显示单元,液晶显示器LCD(Liquid Crystal Display)广泛应用于微型计算机系统中,与LED相比,具有功率低,抗干扰能力强,体积小,价格低廉等优点。
(7)预置存储:
采用两种方式存储,一种是在烧写器上将数据写入,另一种是在车上,单片机处于输入状态,车辆行驶一遍,将站与站之间的脉冲数写入片内。
3系统的硬件设计电路及元件说明
本章根据系统设计结构图来对每个部分的电路进行分析和说明,重点讲述微控制器STC90C516RD+、语音芯片ISD4002和液晶显示模块LCD12864。
该系统中STC90C516RD+是核心器件,系统的设计原理图如附录二所示。
3.1MCU控制电路的设计
3.1.1关于STC90C516RD+单片机
STC90C516RD+系列单片机是一种新一代的高速、低功耗的单片机,它的东西完全兼容了8051系列单片机。
有12时钟/机器周期和6时钟/机器周期两种机器周期可供选择,内部集成MAX810专用复位电路,时钟频率在12MHz以下时,复位脚可直接接地。
STC90C516RD+有:
40个引脚,61kBytesFlash片内程序存储器,128Bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器;STC90C516RD+单片机为40引脚双列直插芯片有四个I/O口,单片机共有4个8位的I/O,分别为P1口、P2口、P3口、和P4口这四个接口,并且每一条I/O线都可以独立地作输出或输入7[2]。
1)STC90C516RD+管脚图如下图3-1所示
图3-1管脚图
3.2语音输出电路的设计
3.2.1关于语音芯片ISD4002
ISD4002芯片的声音录放器件是用CMOS工艺实现的高语音质量、3V工作电压的集成电路芯片。
它们一系列的芯片必须用于微处理器或微控制器系列,通过串行外围接口SPI或Microwire串行接口进行寻址和控制。
录音的语音数据被存放方法是通过ISD的多级存储专利技术实现的,用声音自然的形式直接存放在故态存储器中,使得使用中能够得到高质量回放语音的保真度。
本设计使用的芯片ISD4002,它的单片录放时间为120 s[3]。
1)ISD4002的主要性能及其特点:
(1) 单片实现声音录放功能
(2) 采用单一3V工作电压
(3) 低功耗:
典型的录音工作电流为25mA; 典型的放音工作电流为15mA ;典型待机节能状态电流为1uA
(4) 单片录放时间为8min、10min、12min和16min
(5) 自动静音电路可以在无声状态时消除背景噪音
(6)高质量自然的声音/音频回放
(7) 不需要考虑实现算法
(8) 当中有微控制器或Microwire串行接口
(9) 可以对多段信息寻址控制
(10)可以通过SPI或Microwire控制寄存器控制功耗
(11)语音数据断电都不会丢失,可以保存100年
(12)可以反复录音10万次
(13)片上都带有时钟源
(14)有PDIP、CSP、TSOP与SOIC多种封装形式
2)串行接口SPI
SPI是一种同步串行传输规范,经常作为单片机的外设芯片串行扩展接口。
SPI的4个引脚分别是:
从器件选择线(SS)、串行数据输出线(SDO)、串行数据输入线(SDI)和同步串行时钟线(SCK)。
SPI用全双工通信方式同时发送和接收8位数据,工作过程如下图3—2所示,这里的主控制器为型号STC90C516RD+的单片机,语音芯片ISD4002为主工作器件,通过SPI口完成通信控制的过程。
图3-2SPI的模块框图
ISD4002工作于SPI串行接口。
SPI协议是一个同步串行数据传输协议,协议假定微控制器的SPI移位寄存器在SCLK的下降沿动作。
对ISD4002而言,在时钟上升沿锁存MOSI引脚数据.存下降沿将数据送至MISO引脚。
图3-3SPI时序
以下是控制寄存器的说明:
(1)N控制寄存器:
用于控制操作。
当其为1时,启动操作;当其为0时,停止操作。
(2)/R控制寄存器:
用于选择放音和录音操作。
当其为1时选择放音操作;当其为0时,选择录音操作。
(3) MC控制寄存器:
用语控制报文插入功能。
当其为1时,允许报文插入;当其为0时,关闭报文插入功能。
(4) PU控制寄存器:
用于主电源控制。
当其为1时,控制上电;当其为0时,掉电进入节能状态。
(5) IAB控制寄存器:
忽略地址控制位。
当其为1时,忽略输入地址寄存器的内容A9-A0/A15-A0。
(6) P9-P0/P15-P0:
行指针寄存器的输出。
(7) A9-A0/A15-A0:
输入地址寄存器。
(8) P9-P0/P15-P0:
行指针寄存器的输出。
(9) A9-A0/A15-A0:
输入地址寄存器。
3.2.2录音、放音电路的设计
ISD4002是采样频率为6.4kHz的声音录放器,它的单片录放有8分钟、10分钟、12分钟和16分钟这四种录放时间,内置的非挥发性快闪记忆体,快闪记忆体功率不丢失数据,因此数据时不需要消耗的功率,也就不会耗电了。
被存储信息可以保存时间相当之长,可以高达100年,一个存储单元可以反复录音不下10万次。
1)功放电路的设计
ISD4002芯片的音频输出引脚AUD OUT可以驱动一个5K的负载,当器件上电后,该引脚输出的电源为1.2V。
本系统中选用的放大器TDA2822,其中的主要部件是TDA282集成芯片,TDA2822电路的特点如下:
(1)电源电压降到1.8V时仍能正常工作
(2)交越失真和静态电流小
(3)可作桥式或者立体声式功放应用
(4)外围元件少
(5)通道分离度高
(6)开机关机无冲击噪声
音频信号经L-IN、R-IN输入,输入的音频信号经过电位器,电位器是可变电阻的一种,电位器由滑动部分和固定部分组成,改变滑动部分位置就可改变了电压大小,就可以调节音箱音量的大小了。
由于LC串联回路有滤除外来的干扰信号的作用,本设计就采用这个回路以滤除其干扰,然后由电容阻止交流信号的通过,集成块TDA2822的作用还是最主要的,TDA2822是音频功率放大器。
功放电路连线图如图3-4所示。
图3-4功放电路
2)录音电路的设计
如下图3-5所示,MIC是一个录音口子,即语音信号的输入端口,输出的模拟语音信号经过下图设计的放大器进行放大,然后加到ISD4002语音芯片的ANA IN-反向模拟输入端。
图3-5录音电路
图3-6为ISD4002与外围设备的连接总图。
图3-6ISD4002与外围设备的连接总图
3.3系统显示电路的设计
3.3.1关于LCD12864液晶显示器
本系统所用的是液晶显示器,它简称为LCD。
其特点是功耗低、体积小、使用寿命长。
而本次设计采用LCD12864液晶显示,它每一横向一共有128个可显示点,每一列纵向有64个,显示的所有的点都是发光二极管。
一个汉字是一个非中文字符所占剧的显示面积的两倍。
LCD12864的一些内部存储器:
CGROM(CharacterGeneratorROM):
在字形产生时,只是读取数据的存储器。
CGRAM(CharacterGeneratorRAM):
在字形产生时,可以随机读取的存储器。
DDRAM(DataDisplayRAM):
数据显示随机存储器,是将被显示的字符数据存放的存储器。
ICON RAM:
图标随机存储器,是将被显示的图标数据存储的地方。
GDRAM(GraphicDynamic RAM):
动态图形随机存储器,是供显示的图形存储的存储器。
3.3.2LCD12864液晶显示器的管脚图及管脚定义
图3-7LCD12648芯片图
VL引脚:
是偏压信号脚。
RS引脚:
寄存器选择功能。
当为低电平是选中命令寄存器,反之选中数据寄存器。
RW引脚:
读写选择功能。
当低电平时对LCD进行写操作,反之进行读操作。
EN引脚:
脉冲信号功能。
在负脉冲时将数据从总线写入LCD或将数据从LCD读出总线。
CS1和CS2引脚:
分别对应LCD的两个半屏,高电平时对应半屏可用。
注:
每一块12864都分为两个半屏,上下两半或者左右两半,制造工艺使然。
3.3.3显示电路的原理图
LCD12864显示电路原理图如下图3-8所示
图3-8显示电路原理图
3.4按键电路的设计
本设计中我设计的按键电路,采用四个独立式按键,四个独立式按键k1、k2、k3、k4分别接单片机STC90C516RD+的P3.2口、P3.3口、P2.0口、P2.1口这四个接口。
按键是直接用I/O口线构成的单个按键电路,每个按键单独占用一根I/O口线,每个按键的工作又占用不会其他I/O口线的状态,该按键电路设计图如下图3-9所示
图3-9按键电路图
4系统软件
4.1设计思想
软件设计的主要功能是完成公交车语音报站,并且加入了文字显示功能,采用STC90C516RD+单片机作为主控芯片,对ISD4002语音芯片与显示液晶屏LCD12864进行控制,在实现语音报站的同时显示出报站信息,图4-1就是报站系统工作时的显示状态。
按键采用独立按键设计,简单易行且控制方便。
在本次设计中,主要设计了12站,通过四个按键进行控制。
k1键——起始键,k2键——停止键,k3键——录音键,k4键——播放键
图4-1工作时的显示
4.2模块程序设计
在本次设计中我针对永州13路公交车,从中取了“湘科院、朝阳公园、柳子庙、东风大桥、零陵楼、博物馆、汽车站、红太阳、商业城、橘园、南津渡、市一中”这12站进行了单边线路的设计。
4.2.1软件主流程图
系统上电后,液晶显示模块LCD12864与语音模块ISD4002进行初始化,当检测到有按键按下时,跳转到相应的显示程序和语音播放程序并执行,从而实现公交车语音报站与文字显示功能。
软件主流程图如图4-2所示
图4-2软件主程流图
主程序:
voidmain()
{
...... //初化lcd屏和DS4002芯片
while
(1)
{
b[0]=b[1];
b[1]=k2;
if(b[0]&&(!
b[1]))
{
modle=~modle;
}
b[2]=b[3];
b[3]=k3;
if(b[2]&&(!
b[3]))
{
LED1=0;
if(modle)
speech_record();
else
{
record_temp++;
if(record_temp>11)
record_temp=0;