GPS-9543LP采用美国国家海洋电子协会制定的NMEA-0183通信标准格式。其输出数据采用ASCII码,内容包含纬度、经度、高度、速度、日期、时间、航向以及卫星状况等信息。一条$GPGGA输出语句包括17个字段:语句标识头,世界时间,纬度,纬度半球,经度,经度半球,定位质量指示,使用卫星数量,水平精确度,海拔高度,高度单位,大地水准面高度,高度单位,差分GPS数据期限,差分参考基站标号,校验和结束标记(用回车符< CR>和换行符<LF>),分别用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所示。只有当某控制引脚为低电平时,对应模块才享有使用串口的权力,达到串口分时复用。