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