DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 704|回复: 0
打印 上一主题 下一主题

[GPS] 基于GPS的公交车自动报站终端设计

[复制链接]
跳转到指定楼层
楼主
发表于 2014-10-1 06:13:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

0 引言
目前多数公交车采用无人售票的方式, 每部公交车
上只配备一个司机,无其他司乘人员。司机除了开车以
外,还得手动报站,分散了司机的注意力,存在一定的交
通安全隐患。GPS 全球定位具有全球、全天候、连续、实时
地提供高精度的三维位置、三维速度和准确的时间信息
等一系列优点,是实现全球导航定位的高新技术。
1 GPS 定位原理
地球上的任何位置都至少可以观测到4 颗卫星,
这些卫星不间断地发射经过编码调制的电磁波,电磁
波中带有卫星信号准确的发射时间和卫星在空间的
准确位置。用户使用GPS 接收模块即可接收卫星所发
射的信号,将接收到的信号解码并计算便可确定接收
机的位置。
假设接收机具有与卫星相同的同步时钟,记录下
从上电到收到GPS 信息的时间t, GPS 接收机的位置
为(x,y,z),光速为c,则卫星距接收机的距离为ct,利
用三个卫星与GPS 接收机的三个位置方程,便可求出
GPS 接收机的三维坐标。方程式如下:
姨(x1-x)2+(y1-y)2+(z1-z)2 =ct
姨(x2-x)2+(y2-y)2+(z2-z)2 =ct
姨(x3-x)2+(y3-y)2+(z3-z)2 =ct
式中,xi,yi,zi
为卫星的三维坐标,x,y,z 为GPS 接
收机的位置。
而实际上, 卫星和接收机同标准时间都有误差,
卫星的时钟差是已知的, 故需求出接收机的时钟差。
这样利用4 个已知卫星星历便可求出接收机的最终
位置。将上述位置方程式改成如下方程式:
姨(x3-x)2+(y3-y)2+(z3-z)2 =ct+cti
即可, 式中ti
为GPS 接收机与卫星的时钟差。按照4
个方程即可求出GPS 接收机的准确的三维位置。
GPS 接收模块都支持两种数据格式:SiRF 二进制
格式和NMEA-0183 ASCII 码。NMEA-0183 ASCII 码
传输的波特率为9600bit/s,传输的数据格式为8 位数
据位和1 位停止位, 无奇偶校验位, 数据为字符的
ASCII 码。SiRF 二进制格式的通信协议的波特率为
4800bit/s, 传输的数据格式为8 位数据位和1 位停止
位, 无奇偶校验位, 输出数据为二进制形式。因为
NMEA-0183 ASCII 格式易于解析, 因此采用NMEA-
0183 ASCII 码格式。
2 硬件设计
系统主要由单片机最小系统(电源模块、串口模
块、单片机、时钟模块等)、GPS 模块、语音模块和显示
模块构成。GPS 模块作为数据采集器,接收卫星传来
基于GPS 的公交车自动报站终端设计
王墨琦,薜雅丽
(唐山学院,河北唐山063000)
摘要:设计公交车自动报站终端,利用GPS 模块接收位置信息与单片机里预存的数据进行对比,分析车辆运行
情况,通过语音芯片播放报站信息,并通过LCD 屏幕显示,实现报站的全自动化。
关键词:GPS;公交报站;ISD4002
中图分类号:TP29 文献识别码:A
Design of Bus Automatic Station Report Terminal Based on GPS
WANG Mo-qi, XUE Ya-li
(Tangshan College,Tangshan 063000, China)
Abstract:A bus automatic station report terminal is designed. The location information received by the GPS module and
data stored in the MCU are compared so the bus operation condition is analyzed. Then station information is broadcast through
voice chip and display through LCD, which implement automatic bus station report.
Keywords:GPS;bus station;ISD4002
作者简介:王墨琦(1983-),硕士,讲师,研究方向为自动控制
及计算机控制。
收稿日期:2012-12-28
系统解决方案
56
自动化应用 2013 4 期
的数据信息,给系统提供数据输入,单片机最小系统
作为整个系统的主控制器, 实现对所采集的数据处
理,并控制语音模块播放相应语音信息,液晶模块显
示相应内容,从而实现数据采集、数据处理、语音播报
和信息显示等功能。系统整体设计如图1 所示。
图1 系统硬件结构
系统的主控制器采用STC89C52 单片机。GPS 模
块采用台湾HOLUX 公司生产的GR-87, 该模块采用
美国瑟孚SiRF 公司所设计的第三代卫星定位接收芯
片,是一个完整的卫星定位接收器。TTL 电平数据输
出, 每秒一次GPS 全功能数据, 通信波特率4800、
9600、19200、38400 可选。输出数据有ASCII 码和二进
制两种格式。由于需要解析出GPS 的字符串信息,所
以采用ASCII 码数据格式, 该协议支持6 种数据格
式, 分别是GPGGA、GPGLL、GPGSV、GPGSA、GPRMC
和GPVTG。由于只需要解析出经纬度信息,所以只需
要最简单的数据即可,GPRMC 型数据即是系统推荐
的最小GPS 数据,故在系统中采用该格式。将GPS 信
息使用串口调试助手工具调试,输出语句如下:
GPRMC,071945.000,A,,N,11809.8490,E,0.00,,
220511,,,A*7A
GPRMC,071945.000,A,3939.4166,N,11809.8491,E,0.
00,,220511,,,A*79
GPRMC 表示接收数据为GPRMC 数据,071945.
000 是接收到的格林威治时间数据,A 表示接收的数
据有效,3939.4166 是接收的纬度数据,N 表示北纬,
11809.8490 是接收的经度数据,E 表示是东经。只需解
析出这几个信息即可。
语音芯片采用ISD4002-120,可实现2min 的录放
音,且时间长度可选。芯片的工作电压3V,采样频率
为8.0kHz,最小分辨率为200ms。为了使系统更完善,
设计了语音功率放大电路和LCD 显示电路,确保语音
清晰和经纬度的直观显示。
3 系统软件设计
3.1 主程序设计
主程序主要用于实现液晶显示屏、串口和语音模
块的初始化。
main 函数的程序如下:
void main(void)
{
LCD_init(); /*LCD5110 初始化*/
init_serialcomm (); /* 串口出始化*/
while(1); /* 等待串口中断*/
}
LCD_init()函数是对液晶显示屏进行初始化,使其
能够顺利显示数字和字符。init_serialcomm ()是对串口
进行初始化,串口用来接收GPS 数据,所以要对串口
的波特率、工作方式等进行设置。串口初始化之后,
main 执行while(1)死循环等待串口中断。
3.2 串口中断程序的实现
设计使用的是串口接收中断,中断号为4,串口中
断服务程序主要包括两部分:GPS 数据接收解析程序
和数据处理程序。
函数定义如下:
void serial() interrupt 4;
当单片机接收到GPRMC 数据后, 会产生接收中
断,RI 被置1,主程序不再执行死循环while(1),而是进
入串口中断程序。在串口中断程序中,首先软件对RI
(必须软件清零)清0,允许串口接收缓冲器接收下一
个数据; 然后, 便开始接收GPRMC 数据。例如
“GPRMC,071946.000,A,3939.4166,N,11809.8480,E,
0.00,,20511,,,A*7A”, 使用if 语句判断接收缓冲区
SBUF 的值是否为‘R’, 即可知道该字符是不是
GPRMC 语句的开始。GPRMC 数据都是由逗号隔开
的。本设计中只接收GPS 接收机的经纬度数据,这样
占用单片机的程序存储器很小, 又能满足要求。
GPRMC 数据的某一项数据,如经度数据和纬度数据,
在一整条GPRMC 语句中总是有它的固定位置, 如纬
度数据是在第三个逗号之后,经度数据是在第五个逗
号之后。程序流程如图2 所示。
图2 串口接收流程图
电源模块
GPS 模块
液晶显示
单片机
89C52
语音模块
功率放大电路
复位电路
系统解决方案
S
S
S
计数器=3?
开始
串口初始化
接收字符=R? N
计数器清0
接收字符 N
=逗号?
计数器+1
N
计数值
送经度数组
计数器=5? N
计数值
送纬度数组
接收字符=
*?
N
计数器清0
数据处理
返回
Y
Y
Y
Y
Y
57
[img]www.chinacaaa.com]www.chinacaaa.com 自动化应用
(下转第65 页)
在主程序的开始,将经纬度数据和经纬度计数等
设计成全局变量。在确定接收到的字符为‘R’后,即可
确定开始接收一整条GPRMC 数据了。每次接收到的
数据为‘,’则num 值加1,收到第二个‘,’后,num 值变
2,依此类推。当num 的值为3 时,在下一次中断中接
收到数据即为纬度数据,这时num 的值不改变,中断
程序会一直接收纬度数据,wdjs 会一直增加, 直到遇
到逗号,num 值增加,wdjs[]不再存储数据。当num 的
值为5,同理接收经度数据。在后面的字符中,以‘*’作
为GPRMC 数据的末尾。使用if 语句判断接收到的字
符是否为‘*’,即可判断GPRMC 数据是否已经接收完
毕。
因为LCD 液晶屏的驱动需要字符串,所以经纬度
字符串的尾部需要添加‘\0’。每次接收完成后,经纬度
和逗号计数清零。因为站牌经纬度信息是以浮点数形
式宏定义在程序中的,所以在比较时应该将字符串转
化为浮点数,通过函数string_to_int()来实现转化。
3.3 语音处理程序
系统采用的语音芯片ISD4002 主要使用SPI 协议
传输数据,以主从方式工作,这种模式通常有一个主
设备和一个或多个从设备,需要至少4 根线(单向传
输时3 根也可以),分别是MOSI(数据输入)、MISO(数
据输出)、SCK(时钟)、SS(片选)。
语音处理程序主要包括放音程序和录音程序。
录、放音程序又是由各种其他子程序构成的。包括预
放音程序、预录音程序、预指令和地址发送程序、命令
发送程序、上电程序、掉电程序、停止程序和延时程序
等。ISD4002 的控制指令为5 位, 地址为10 位。
ISD4002 遵守SPI 串行通信协议, 数据在时钟上升沿
进入ISD4002,在时钟下降沿送出ISD4002。
数据的发送程序如下:
void spi_send(unsigned char isdx)
{
unsigned char isx_counter;
SS=0; //SS=0,打开spi 通信端
SCLK=0;
for (isx_counter=0;isx_counter>1;
SCLK=1;
delay(2);
SCLK=0;
delay(2);
}
}
SCLK 和MOSI 是ISD4002 与单片机的接口,一个
是时钟端,一个是数据移入端。在上述程序中,要发送
的命令字放在isdx 中, 若语句isdx&0x01=1, 则表明
isdx 最低位为1,否则为0,即MOSI 为1 或为0,设置
时钟上升沿,这位数据被送入ISD4002。isdx 右移,为
下一次送数据做准备,循环8 次,isdx 里所存储的数据
即被全部送入ISD4002。
3.4 液晶显示器LCD5110 驱动程序
在主程序的开始,将所需要字符的字库和要显示
的汉字字库使用宏定义声明为字符串数组。在显示相
应字符或汉字时,只需调用相应的字符串。
液晶显示屏LCD5110 驱动与语音芯片ISD4002
录放音程序相同,也遵守SPI 串行通信。液晶显示屏
以8 位数据为通信单位。与语音芯片ISD4002 稍有不
同的是,向ISD4002 发送8 位数据时,低位在前,高位
在后;而LCD5110 是高位在前,低位在后。LCD 驱动
使用的函数为void LCD_write_byte (unsigned char dat,
unsigned char command)。在发送数据时,要区分发送
的数据是命令字还是数据,因此在定义函数时,形参
中有一个是待发送的8 位字符串dat; 另外要区分要
发送的是字符串还是数据的变量command,command
为0 时,发送的为命令,command 为1 时,发送的为数
据。无论是数据还是命令,都要先选中液晶显示屏,即
令片选LCD_CE 为0, 然后把dat 的值送给LCD5110
的数据命令引脚SDIN。数据传送过程的实现与
ISD4002 语音芯片原理相同。
4 结语
通过硬件及软件系统的设计,制作了一个小型的
GPS 公交语音报站系统,经测试,在空旷的室外,GPS
模块可以很好地接收信号并准确读出经纬度数据;在
运动的过程中,可以对途经站点自动进行准确、清晰
地报站。该系统经过扩展封装后,可以直接应用于公
交车辆上,有很强的实用价值。
参考文献
[1] 王东,张海辉,路艳巧.基于GPS 的公交车自动报站系
系统解决方案
58
自动化应用 2013 4 期
(上接第58 页)
图4 潮房3 温度、蒸汽压力、下机水分实时曲线图
(3)回潮自动控制对操作人员的影响。
下机烟叶水分实现了自动控制,使得操作人员可
以从频繁的手动操作中解放出来,减小不同操作人员
操作时产生的误差。
通过对比2010 年、2011 年同期4 个月的检测数
据可以看出, 采用潮房1 和潮房2 蒸汽压力控制、潮
房的温度控制和下机烟叶水分控制有机结合,减小下
机烟叶水分控制滞后的方法,能极大地减小蒸汽波动
对烟叶回潮的影响,实现烟叶回潮的自动控制,提高
下机烟叶水分的均匀性、稳定性和一致性,从而提高
烟叶复烤加工质量水平,为烟叶长期贮存和醇化创造
条件,利于卷烟工业产品质量的稳定和提升。
参考文献
[1] 胡开文.烟叶打叶复烤工艺与设备[M].北京:化学工业
出版社,2002
[2] 路康,冯建勤,闫文科.烟叶烘烤过程智能控制系统设
计[J].烟草科技,2008,(5):21-24
[3] 胡发运. 烟叶复烤设备电控系统的设计开发[D].合肥:
合肥工业大学,2007
[4] 任正云,韩佰恒,王小飞,等. 预测PI 和准预测PI 控
制算法在片烟复烤机上的应用[J]. 烟草科技,2009,
(11):21-25
[5] 任正云,邵惠鹤,张立群.几种特殊动态特性对象的预
测PI 控制[J].仪器仪表学报,2004,25(5):615-619
[6] 曾强,李斌,闫亚明,等.增温增温过程中烟叶吸湿速
率的变化[J].烟草科技,2006,(1):15-17
[7] 李跃锋,姜焕元,刘志平,等. 烟叶温度和含水率与打
叶质量的关系[J]. 烟草科技,2005,(2):5-6
[8] 郑松锦,李斌,王宏生. 烟叶在高温湿度环境中平衡含
水率的数学模型[J]. 烟草科技,2010,(9):5-9
甲班乙班丙班
2010 年2011 年2010 年2011 年2010 年2011 年
检测次数优良率检测次数优良率检测次数优良率检测次数优良率检测次数优良率检测次数优良率
9 月1906 79.22% 2235 86.89% 1945 77.57% 2477 85.10% 1844 78.90% 2729 87.54%
10 月2388 78.69% 2802 85.36% 2489 77.35% 2437 84.01% 2535 78.42% 2589 86.65%
11 月2579 77.97% 2471 84.91% 2472 76.34% 2517 83.78% 2504 77.32% 2595 85.72%
12 月2263 75.66% 2966 83.03% 2331 74.86% 2795 82.30% 2638 76.66% 3099 84.64%
表1 2010/2011 年度部分月份下机烟叶优良率统计
注:优良率的定义为,客户要求的下机烟叶水分区间中值的±0.3 范围内样品个数占所有取样个数的百分比。
表2 2010/2011 年度部分月份下机烟叶标准偏差(SD)统计
甲班乙班丙班
2010 年2011 年2010 年2011 年2010 年2011 年
检测次数标准偏差SD 检测次数标准偏差SD 检测次数标准偏差SD 检测次数标准偏差SD 检测次数标准偏差SD 检测次数标准偏差SD
9 月1906 0.2793 2235 0.2432 1945 0.2805 2477 0.2473 1844 0.2796 2729 0.2427
10 月2388 0.2816 2802 0.2475 2489 0.2813 2437 0.2487 2535 0.2819 2589 0.2483
11 月2579 0.2852 2471 0.2506 2472 0.2816 2517 0.2515 2504 0.2859 2595 0.2502
12 月2263 0.2887 2966 0.2523 2331 0.2923 2795 0.2527 2638 0.2875 3099 0.2519
HMI 及PLC控制系统
统的设计[J]. 微型机与应用,2010,29 (24) :86-88,92
[2] 文科,张永生.基于GPS 技术的公交车控制器[J].自动
化与仪表,2009,(6):19-21
[3] 章乐多,兰琴丽.基于GPS 信号的公交车自动报站研
究[J].内江科技,2010,(6)
[4] 杨瑞霞.GPS 公交车智能报站系统的实现[J]. 电子技
术,2006,(6)
[5] 汪亚东.基于GPS 的嵌入式公交自动报站系统的研究
[D].西安:西安科技大学,2008
基于GPS的公交车自动报站终端设计.pdf (655.85 KB, 下载次数: 3)
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-5-12 04:42 , 耗时 0.090934 秒, 21 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表