1、GPS自动报站系统的设计与实现 摘 要:给出了利用GPS卫星定位系统来采集车辆运行时的地理位置的经纬度、方位以及速度等信息的实现方法,利用该系统,可在上述信息经过AVR高速嵌入式单片机处理后,对预存的数据进行方向和距离误差分析,并在车辆行驶到达预定位置时,通过语音处理芯片对预先录制的语音进行播报,从而达到自动报站的目的。 关键字:GPS;自动报站;单片机 张 波 哈尔滨工程大学信息通信学院 自动报站系统使公交车辆可以方便、及时地告诉乘客车辆运行的信息。另外,该系统还可以为乘客提供多项提示或警示服务,使得乘客能安全乘车,减轻司乘人员的负担。 通过GPS卫星定位系统可以
2、比较准确的给出车辆的运行位置、行进的方向及速度等情况。本系统利用RoyalTek公司的21R OEM GPS数据接收板,进行经纬度及行进方向等数据的接收;使用ISD4004-16长时间语音处理芯片进行语音的存储与播放;用ATMEL公司的AVR高速嵌入式单片机AT90S8515做数据存储与控制单元,较好地满足了设计要求。 GPS数据接收 本系统使用的是RoyalTek公司的21R OEM接收板,接收板使用NMEA-0183V3.0协议,支持GGA、GLL、GSA、GSV、RMC、VTG等6种数据格式。本例使用的是较常用的RMC格式。该格式的数据为:“<格式标识>,<协调世界时UTC>,<接收
3、状态>,<纬度>,<北/南纬度指示>,<经度>,<东/西经度指示>,<速度>,<方向>,<日期>,<磁偏角>,<检查和>,
4、ddmm.mmmm”,<东/西经度指示>为“E/W”,用于配合说明东/西经度,由于我们地处东经,所以我们也只需一个经度值就可以了;<速度>是行驶的速度,单位是哩/小时,数据给出到小数点后两位;<方向>为行驶的方向,数据格式为“ddd. dd”。例如,若接收到的数据为: “$GPRMC,031604.719,A,3201.3255,N,12054.1669,E,20.15,298.21,250905” 就表示是RMC格式,北京时间11时16分4.719秒,数据有效, 32°1.3255分(北纬),120°54.1669分(东经),速度20.15哩/小时,方向298.21°,日期为05年9月2
5、5日。 数据压缩与预存 判别车辆行驶的位置,需要对播报点的语音编码、经纬度坐标、方向、运行状态进行预存。为了节约存储空间,必须对数据进行预处理与压缩。由于我国陆地地处东经73度到136度之间,所以我们将采集到的经度数据首先减去73度,变换使得经度范围在0~63度之间。对经纬度值的预存可以使用存储每次的增量值的办法,这样可使数据长度变短,但处理起来要麻烦一些,并且可能产生误差积累;另外一种方法就是存储变换后的绝对经纬度值,这样虽然数据略长一些,但处理起来比较简单。经过权衡,本例使用了后者。GPS提供的经纬度为1/10000分,实际上它的最低位值是不稳定的,所以我们只取到1/1000分。由于地
6、球的半径约为R=6 378 km,这样每1/1000分所对应的弧长约为: 2πR/(360度×60(分/度))/1000 ≈1.86 m 所以这里只取小数点后3位。以1/1 000分为单位,经度的最大值为63×60×1 000=3 780 000。我国纬度的最高值不超过北纬60度,同样以1/1 000分为单位,最大值为60×60×1 000=3 600 000,经纬度以二进制形式存储备用,24位(3个字节)是足够了。经纬度共需要6个字节即可。 方向数据,GPS可提供1/100度的精度,实际使用时以2度为单位已经足够了,所以对采集的数据整数部分除以2,范围在0~180之间,这样只须1个字
7、节就可以了。 语音编码由语音芯片的地址确定,使用7位便可以设置128段语音,剩余1位用于存放运行状态。 由此,对一帧预存的信息只要8个字节就可以了。而在AT90S8515中内置512一个字节E2PROM,可以存储64组预存信息。结构如图1所示。 距离差距的处理与识别 由于一般车辆行使的范围都是比较小的,所以可以将经纬度直接看作直角坐标来处理。设预存的经度为x0,预存的纬度为y0,车辆位置实时采集的经度为x,纬度为y。根据距离公式,两点间的距离为: 如果将距离控制在40 m内进行播报,则40/1.86≈21.5,这也就是说车辆的位置(x,y)与预存的位置(x0,y0)之间的值小
8、于21.5即满足播报的条件;方向的判别主要用于往返同一(同名)站点,以及不同方向的运行状况,所以要求的精度并不高,只要在预存的方向值的基础上±15°(30°)即可。最后再加上运行状态等数据的识别,即可准确的进行播报。 系统组成 图2为系统组成原理图。图中,IC1是ATMEL公司的AVR高速嵌入式单片机AT90S8515,它完成数据的采集、存储、处理;控制语音芯片进行语音的录制、播报;键盘与显示等功能。AT90S8515是增强低功耗RISC结构,内置8K FlashROM、512B在线可编程E2PROM、512B SRAM、32个通用寄存器,同时具有可编程的UART、同步串行通信接口
9、SPI以及内外中断源等。I/O口置有上拉电阻,而且上拉电阻的使用与否可通过编程控制;此外片内还嵌有E2PROM,可以存储预存的信息,从而使得外电路及其结构变得简单可靠。 图2中的GPSB为RoyalTek公司的21R OEM GPS接收板,该板使用NMEA-0183 V3.0协议,可支持6种数据格式。本系统提供了2组TTL电平RS-232接口,分A、B两组,初始状态为9600bps、8位、1个停止位、无校验位。系统使用A组接口与AT90S8515处理器通信。定位准确度优于10米。 图2中的IC2为长时间语音处理芯片ISD4004-16,主要用来完成语音储存与播放工作,它与单片机之间通过同步
10、串行接口SPI进行通信,该芯片采用多电平直接模拟量存储技术,将采样值直接存储于闪存中,能真实地再现录制的语音。图3为ISD4004的控制字,其中各位的含义如下: C4:1表示允许操作,0表示禁止操作; C3:1表示放音,0表示录音; C2:1表示上电,0表示掉电; C1:1表示不使用指定地址,0表示使用指定地址; C0:1表示允许快进,0表示不允许快进; A15~A0:指定地址。 这样组成常用的指令及含义如下: 00100xxx(xxxxxxxxxxxxxxxx):上电; 11100xxx(A15~A0):指定放音地址(须后跟放音指令,使放音继续); 11110xx
11、x(xxxxxxxxxxxxxxxx):放音指令,从当前位置放音,直到遇到段结束或存储器尾标记为止; 10100xxx(A15-A0):指定录音地址(须后跟录音指令,使录音继续); 10110xxx(xxxxxxxxxxxxxxxx):录音指令,从当前位置录音,直到停止指令或遇到存储器尾标记; 11101xxx(A15-A0):指定快进地址(须后跟快进指令,使快机快进继续); 11111xxx(xxxxxxxxxxxxxxxx):快进指令,直到遇到段结束或存储器尾标记; 0x110xxx(xxxxxxxxxxxxxxxx):停止指令,停止当前操作; 0x01xxxx(xxxxxxx
12、xxxxxxxxx):停止当前操作并掉电指令; 0x110xxx(xxxxxxxxxxxxxxxx):读状态指令,读取段结束或存储器尾标记。 在图2中还有控制键和显示部分,这里不再赘述。 结束语 GPS系统被广泛用于电子地图、个人定位报警、车船调度管理系统、车船导航系统、定位防盗报警服务等方面。在自动报站方面的应用是一个尝试,尚有一些功能可扩充和完善。 相关文章 ·超声波探伤在无损检测焊接质量中的作用 ·工程机械搅拌设备用称重传感器的选型 ·D101/HP20大孔吸附树脂分离纯化罗汉果皂甙的新方法 ·无线传感器网络及其应用 ·有毒有害气体检测仪在工业中的应用 ·航天测控电子设备电路板故障诊断技术 ·如何选购发动机综合性能检测仪 ·管道内径激光测量传感器 ·温度冲击试验箱的控制系统-上海林频仪器技术部 ·测量仪器的分类及其常用仪器的应用






