嵌入式
返回首页

GPS全自动公交语音报站器的研究

2012-01-19

1 引言
    目前,国内各大城市公交系统基本采用人工干预的电脑报站器。首先根据运营线路设置上、下行线路;公交车司机在驾驶的同时,当快到站时,按下相应报站按键。而进站时,由于人流较多,影响司机工作导致漏报站、错报站时有发生,影响公交服务质量,而且存在着很大的交通隐患。因此,这里提出一种GPS全自动公交语言报站器的设计方案,该方案采用GPS全球定位系统,无需人工干预,当车辆快到车站时可全自动实现语音报站。

2 GPS公交报站系统的原理
    GPS(Global Positioning System),即全球卫星定位系统。每颗GPS卫星时刻发布其位置和时间数据信号,用户接收机测量每颗卫星信号到接收机的时间延迟,根据信号传输的速度计算出接收机到不同卫星的距离。同时接收到至少4颗卫星数据时,就可以算出三维坐标、速度和时间。GPS接收模块接收GPS卫星发送的定位数据,经简单的字符串操作可分别找出GPS信号中的经度、纬度以及相应的格林威治时间等定位信息。然后,将这些经纬度信息通过串口发送给单片机处理。


    图1为GPS公交智能报站器原理。GPS模块接收所选卫星发来的导航信息和星钟校正参数的时间,计算出车辆当前的经纬度坐标信息。将此坐标信息与存储在单片机中的车站的经纬度坐标信息比对(可以设定阈值),就可查得车站站名信息,由语音系统播报即可。

3 系统器件选型
3.1 GPS定位模块——Leadtek GPS-9543LP
    目前市场上GPS模块较多,由于系统对GPS模块无特殊精度要求,出于成本的考虑,选用价格相对便宜的LeadtekGPS-9543LP定位模块。其定位精度10 m,能满足设计要求。Leadtek GPS-9543LP提供一个双列20针的对外接口,如图2所示。它有两组全双工的异步串行接口,便于和单片机通讯。在加电后开始运行,其基本运行过程如下:
    (1)自检 加电后开始自检,通过输出通道报告自检结果,其过程将检测RAM、Flash、接收器、实时时钟和晶体振荡器。

    (2)初始化 自检完毕后,将开始卫星探测和跟踪过程。整个探测过程是完全自动的。正常情况下,GPS-9543LP将用45 s的时间获取定位信息(在已知星历表时只需8 s),之后通过输出通道传送有效的位置、速度和时间信息。
    (3)导航探测完毕后,GPS-9543LP通过输出通道发送有效的导航信息,包括经纬度、海拔、速度、日期/时间、误差估计、卫星和接收机状态。
    (4)卫星数据收集 运行时,GPS-9543LP将自动更新卫星轨道数据。

    GPS-9543LP采用美国国家海洋电子协会制定的NMEA-0183通信标准格式。其输出数据采用ASCII码,内容包含纬度、经度、高度、速度、日期、时间、航向以及卫星状况等信息。一条$GPGGA输出语句包括17个字段:语句标识头,世界时间,纬度,纬度半球,经度,经度半球,定位质量指示,使用卫星数量,水平精确度,海拔高度,高度单位,大地水准面高度,高度单位,差分GPS数据期限,差分参考基站标号,校验和结束标记(用回车符< CR>和换行符),分别用14个逗号分隔。如单片机接收到以下定位信息:
    $GPGGA,114641,3002.3232,N,12206.1157,E,1,05,12.9,53.2,M,11.6,M,*4A
    表示使用“$GPGGA”格式语句,世界(格林威治)时间为11时46分41秒,位置在北纬30度2.323 2分.东经122度6.1157分,定位有效,接收到5颗卫星,水平精度12.9 m,天线离海平面高度53.2 m,所在地离地平面高度11.6 m,校验和为4AH。
    从GPS板接收的数据流是文本字符串,可根据GPS输出数据NMEA-0183通信标准格式所定义的各种记录语句的结构组成特点,编制程序解析其中有用信息。由于帧内各数据段由逗号分隔,因此在处理缓存数据时一般通过搜寻ASCII码“$”判断是否是帧头。在识别帧头的类别(GPGGA)后,通过对所经历逗号个数判断当前正在处理的是哪一种定位导航参数,并作出相应处理。

3.2 语音合成模块
    XF-S4240语音合成模块是嵌入式中文语音合成模块。该模块通过异步串口(UART)、SPI接口及I2C总线3种方式接收待合成的文本,直接合成为语音输出。XF-S4240采用3.3 V电源供电,支持GB2312,GBK,BIG5,UNICODE 4种内码格式的文本,具有智能的文本分析处理算法,可正确识别和处理数值、号码、时间的度量衡符号,具备较强多音字处理能力;可男声、女声双发音;支持软件调节语速、语调、音量;支持多种控制命令,包括:合成、停止、暂停合成、继续合成等。其命令由3部分组成如表1,其命令共有6个,详细内容如表2,表3 所示。

4 GPS公交智能语音报站器的硬件电路
    该系统采用常见的AT89C52单片机作为控制器。该器件成本低廉且内部有8 KB的EPROM。GPS模块和语音模块均采用异步串行通讯模式与单片机通讯,简化了硬件连接。由于AT89C52只有一个串行口,因此需扩展 AT89C52的串口。采用单片机的P3.0和P3.1分别控制GPS和语音模块的RXD,低电平有效如图3所示。只有当某控制引脚为低电平时,对应模块才享有使用串口的权力,达到串口分时复用。


    在GPS定位模块Leadtek GPS-95431JP中,系统主要关心经度、纬度、卫星数信息,只需以逗号为标识符提取这些信息即可。对于GPS数据是否有效,是通过检测搜索到的卫星数可否大于等于4来判断。如果要在车上显示时间信息,同样可以提取实时的时、分信息(世界时间与北京时间相差8 h)。由于语音合成模块支持文本格式,所以只要将所需合成的语音汉字(如“前方到站”、“请做好下车准备”等)转为GB2312码,按帧命令的要求格式由单片机向语音模块发送数据即可,它与AT89C51通讯通过全双工异步串口实现。


5 系统软件程序设计
    系统采用Keil C结构化编程,主要完成:接收GPS模块数据,从GPS数据获取经纬度信息、语音报站。站点的经纬度信息,站名以数组形式存放。主程序主要完成串口初始化,设置波特率4 800 Kb/s。在中断服务程序中,读取的经纬度坐标信息与存储的站点坐标比对,达到设定的阈值时,将串口权交给语音模块,调用语音程序即可播报,报音结束再将串口权交回GPS模块。如将串口权交语音模块,可用P3=P310x01和P3=P3&0xfd两句语句实现;同样,将串口权交回GPS模块.可用P3=P310x02和P3=P3&0xfe语句实现。系统程序流程如图4、图5、图6所示。

6 系统调试
    整个系统由GPS模块部分和语音播报模块部分构成,先调试这两个模块,工作正常后再联调。站点经纬度信息,应在到站前50 m左有处实测(将本系统GPS测得的经纬度信息用LCD显示,即可制成经纬度显示仪),这样才能在公交车快到站时启动播报信息。同时,由于上、下行站点位置接近,站名信息相同,为了避免进出站重复播报,软件中在对GPS测得的经纬度信息与站点信息比对后,应对查得的站名信息的前两个字与上次播报的站名的前两个字比对,确认是不同站名再播报。这样就能实现无需人工设置上下行线路的自动播报。


7 结束语
    使用AT89C51单片机、GPS-9543LP全球定位模块和XF-S4240语音合成模块,实现了公交语音自动报站系统。根据公交报站的具体要求,系统还可继续完善。本装置能够把司机彻底从报站任务中解放出来,并减少交流隐患,因此该系统设计具有很好的应用前景。

 

 

 

 

进入嵌入式查看更多内容>>
相关视频
  • PX4固件二次开发课程

  • RISC-V嵌入式系统开发

  • NuttX Workshop 2024

  • 自己动手写操作系统

  • SOC系统级芯片设计实验

  • 自己动手做一台计算机

最新器件
精选电路图
  • CCFL的工作原理及电子驱动电路解析

  • 开关电源的基本组成及工作原理

  • 运算放大器IC741的基本工作原理及在电路中的实现方式

  • 比较常见的功率整流器和滤波电路

  • 一个简单的红外耳机电路

  • 基于CA3193的热电偶放大器电路

    相关电子头条文章