公交车载GPS智能报站系统设计

发布者:Yinyue1314最新更新时间:2011-05-29 关键字:GPS  无线通讯  单片机 手机看文章 扫描二维码
随时随地手机看文章

  近年来, 随着城市公交事业的迅速发展,国内公交车报站的方式已经有了很大改善, 由传统的售票员喊话报站逐渐变为驾驶员使用报站器手动报站。

  虽然手动报站器使用比较方便, 但是因为驾驶员需要在保证安全驾驶的前提下进行报站, 所以经常出现报站不及时, 甚至错报、漏报的现象,而且让驾驶员在驾驶过程中进行报站也存在安全隐患。采用自动报站的方式可以大大减轻驾驶员的工作量,促进公交系统的现代化进程。要实现自动报站, 需要实时测出公交车的位置, 以确定公交车是否已经到达站点。利用GPS 可以确定公交车的地理位置, 只需把当前位置同公交站点的位置数据( 经、纬度) 相比较, 就可以知道公交车是否到达站点,使得报站系统具有一定的智能性。这种基于GPS 的智能报站系统能够杜绝驾驶员驾驶过程中因兼顾报站器而带来的隐患。特别适合因汽车行业高速发展而导致交通问题日益严峻的我国国情,还可以在重点线路上加入对城市景点风貌的相关介绍。该系统在GPS 导航领域和商业领域都有着非常大的潜力, 具有广阔的发展前景。

  1 系统方案

  基于GPS 的公交车智能报站系统是移动通讯技术和GPS 技术的结合, 整个系统由S3C24l0 ARM9( 进阶精简指令集机器)开发板、SIM548C GPS/ GPRS模块、语音播报模块、AT89S52 单片机以及OCMJ5X10B 的LED( 发光二极管)背光宽温黄绿屏等器件组成。GSM/ GPS 模块由GPS 分模块与GSM( 全球移动通讯系统) 分模块组成。GPS 模块负责GPS 数据接收。公交车在行进过程中, GPS 模块的实测信息同已存储的位置信息进行比较即可进行自动报站, 无需人为干预,还可实现在固定位置播放某些特定信息, 如乘车提示、广告信息等。GSM 模块用于公交车与调度室之间的数据通讯, 实现公交车的联合调度,实现调度中心对公交车的调度功能。

  语音播报模块负责语音播放, 提供进出站以及提示信息等语音的播放。单片机模块控制按键扫描以及LCD 显示。

  1. 1 硬件设计

  系统硬件部分主要由S3C2410 ARM9 开发板、GPS/ GSM 模块、功放模块、显示模块、语音播放模块及相应的外围电路组成。GPRS 模块和GPS 模块均通过RS232( 串口) 与ARM 处理器相连, 而LCD( 液晶显示器) 模块则由单片机控制通过串口与ARM 通讯, 语音播放模块通过IIS ( Inter IC Sound) 、SPI( 串行外设接口) 与ARM 通讯。硬件连接方式如图1 所示。

 

图1 系统硬件结构

  GSM/ GPS 模块采用SIMCOM 公司的GPS/ GSM 模块, 该模块是一款四频GSM/ GPRS(通用分组无线服务技术) 无线模块, 同时支持SiRF Star III AGPS 技术。

  GSM/ GPRS 与AGPS 技术的整合使得该模块可以满足GPS跟踪、导航、车辆船舶等设备和资产的监控管理以及其他GPS 的应用。键盘扫描和屏幕显示由单片机做数据处理。键盘显示板主要实现键盘扫描、液晶屏幕的显示并与ARM处理器模块进行通讯。硬件系统整体框图如图2所示。

 

图2 系统组成

  1. 2 软件总体设计

  系统的主要功能由ARM 控制, 采用C 语言进行编程, 采用多线程处理相关功能模块。执行相关过程如下: 系统初始化完成后,依据GPS 定位信息和系统存储的线路信息计算位置、报站和读取相关信息, 并由ARM 控制车内的显示模块进行显示、语音播放以及向数据中心进行数据传送。

  2 设计实现

  2. 1 系统初始化

  在系统运行之前, 必须用软件程序对各部分进行初始化。初始化包括以下几个部分:

  ARM 以及系统初始化;显示按键模块初始化;外部器件、接口初始化:主要是GPS、GPRS和语音芯片等设备的初始化;软件系统的初始化: 设置全局变量、指针和数组、数据结构以及公交信息初始化。[page]

        系统软件部分主要是在主程序中检测GPS 信息,确定公交车当前的地理位置, 然后决定是否播放语音信息。同时还需要实现按键所要求的功能,如切换到手动播报等。本系统的软件部分开发工作是基于Linux 开发环境实现的。根据系统要完成的功能和各个模块的运行情况,主程序部分采用了多线程以及消息队列的方式, 可以及时接收GPS 数据。

  因为只使用GPRMC 帧的数据, 串行通讯的数据量不大, 通讯及数据处理过程比较快,系统能够及时播放报站及其他语音信息。公交车途经的各站点的经纬度数据需要预先测量好, 并存放到系统的数据区, 作为对比参考使用。GPRS 的信息通过串行口传递,采用查询法, 按键也使用查询方式进行接收, 以确定按下的是哪个功能键。软件采用C 语言编写,调试成功后烧录到Flash 中, 实现脱机运行。

  2. 2 GPS 模块

  由于该GPS 模块设置信息掉电丢失, 在每次系统启动时均要对该GPS 模块进行初始化。将模块设置成每秒钟输出一次GPS 信息。

  系统启动后, 模块接收GPS 信息, 然后解析出GPS 信息, 根据解析出来的经纬度信息与数据区中存储的站点信息比较,计算出实际距离。如果距离到达阀值时, 启动GPS 报站中断。

  该GPS 模块接收模块遵循NMEA. 0183 协议, 可以输出多种格式的数据帧, 均以“MYM”开头。输出数据采用的是ASCII 码字符, 内容包含了纬度、经度、速度、日期、航向及卫星状况等信息。帧格式达10 余种, 该系统所使用的仅限于$ GPRMC 定位数据帧格式。

  系统启动后, 通过串口对GPS 模块进行设置,由于系统对实时性要求不高, 将GPS 设置为每秒钟输出一次RMC 数据。提取GPRMC 语句的思路是设置一个数据缓冲区, 把接收到的GPS 数据都放入这个缓冲区,当缓冲区满了的时候就在缓冲区中查找是否接受到GPRMC 定位语句, 如果没有接收到则重新接收GPS 数据。如果找到了GPRMC 定位语句则还要判断该语句在缓冲区中的位置离缓冲区的最大字节数是否大于62个字节( 因为本程序中需要的GPRMC 定位语句所包含的字节数为62) , 然后通过多程序提取相关经纬度、时间和速度等信息并通过数据处理线程进行相关处理。系统工作流程如图3 所示。

 

图3 系统工作流程

  2. 3 GPRS 无线通讯模块

  由于GSM 模块内嵌TCP/ IP 协议, 可以直接调用AT 命令与服务器通过TCP、UDP 通讯。无线通讯分为上行数据转换模块和通讯模块2 个模块。

  上行数据转换模块的主要功能是把接收到的GPS 数据或是相关的状态信息转换成约定好的数据格式以便同主信息中心的通讯。该模块会判断需要转换的数据是GPS 数据信息还是相关状态信息或是二者都有, 然后选择相应的转换程序。由上面的介绍可以知道接收到的GPS 数据都是顺序存放在数据缓冲区当中的, 需要什么数据就到缓冲区中相应的位置提取就可以了。数据都是以字符形式存放的,所以实际要用的时候必须先转换成整形数据。

  下行数据转换模块的功能与上行数据转化模块的功能相反, 它将主信息中心发送的命令进行识别后发送给车载终端, 并通知用户界面模块显示。

  通讯模块的主要任务是完成车载终端与监控中心的通讯, 它既可以通过GPRS 网络实现与主信息中心的无线通讯。如果车载终端与上位机的距离隔的很远可以直接通过GPRS 网络与监控中心进行连接,而且通过SIM548C 模块连接GPRS 网络与监控中心连接也非常方便, 只需向GPRS 模块发送几条AT 命令就可以了,但是监控中心必须有因特网的固定IP。启动车载终端的同时SIM548C 模块也会被启动, 这是模块会自动连接上GPRS 网络进入命令模式。拨号成功以后就连接上了GPRS 网络了, 然后对与SIM548C 模块连接的串口进行读写操作就可以实现与监控中心的无线通讯。

  在测试中发现, 由于无线信号存在差异, 在某些网络信号较差的地方容易与主信息中心失去网络连接。为解决这一问题,在系统中采用多线程监视网络连接状态, 一旦失去网络连接, 立即与主信息中心重新连接。

  2. 4 语音播放模块

  语音播放采用飞利浦SPI 接口音频芯片, 驱动为Linux 下的声卡设备。通过S3C2410 SPI 控制音频芯片, 通过IIS 传送音频数据, 最终将音频芯片驱动成系统下的标准声卡设备。

  在语音报站时, 需要为公交车上的喇叭提供语音信号, 功放电路采用MAXIM 功放模块, 该功放模块采用单端输入的方式,输入的负端直接接地。[page]

  该功放模块为单声道/ 立体声、D 类音频功率放大器, 能向8 立体声负载提供高达2 × 21W 功率,或向单声道4 负载提供高达1 ×42 W 功率, 效率高达87%。该功放模块兼具D 类放大器的效率和AB 类放大器的性能, 无需大体积散热器,降低了功耗。该功放模块采用+ 10~ + 18 V 单电源供电, 可驱动BTL 配置的负载。

  用于播放报站、广告和信息等语音的播放器选用基于开源的播放器, 在源代码的基础上进行修改,形成适合播放短小音频的播放线程,为系统体统音频播放功能。

        2. 5 显示按键模块

  键盘扫描和屏幕显示由51 单片机做数据处理。

  键盘显示板主要实现键盘扫描、液晶屏幕的显示并与ARM 处理器模块进行通讯。


  显示按键模块通过串口与数据处理模块通讯,将扫描到按键发送给数据处理模块进行处理, 同时接受数据处理模块的显示数据命令,在相应的液晶屏幕位置显示数据, 从而实现车载报站系统的人机交互功能, 实现公交车的调度管理功能。

  基于GPS 和GPRS 的公交自动报站系统, 具定位功能, GPRS 无线通讯功能, 能实现自动报站、调度、信息收发和中心通讯,具有USB 接口等优点。

  大大降低了公交员工的劳动强度, 提高了公交管理的科学性。

  3 结束语

  公交车载GPS 智能报站系统采用GPS 定位技术、无线通讯技术, 具有体积小、播报准确等特点。

  能实现自动报站、调度、信息收发和中心通讯等功能。通过USB 接口可使系统存储多条线路, 方便公交车临时更换运营线路;利用按键和广播等作为人机交互界面, 方便乘客接收相关信息;可提供广告等增值业务。系统为建立完整的智能公交调度管理系统提供了关键的公交车载系统。

 

 

关键字:GPS  无线通讯  单片机 引用地址:公交车载GPS智能报站系统设计

上一篇:基于MC9S12XS128的汽车BCM的设计与实现
下一篇:一种汽车用金卤灯的快速点亮电路

推荐阅读最新更新时间:2024-05-02 21:24

基于AT89C2051单片机的超声波理疗仪设计
摘要:给出了一种基于AT89C2051单片机控制的超声波理疗仪的设计方案。该方案采用高频和低频信号双通道输入电路,能产生波形峰值低、穿透力强的特定超声波能量,因而可以更加深层地作用于肌肉骨骼上,起到加速愈合的作用。实践证明,此方法经济适用,且实现简单。 关键词:AT89C2051;MAX038;超声波;理疗仪 0 引言 目前国内外的多数超声治疗仪(理疗型)普遍都是以连续正弦波(1~3 MHz)或脉冲正弦波(低频调制100 kHz左右)的方式进行工作,其输出声强≤3.0 W/cm2,所存在的问题是超声波主要作用于皮肤、肌肉和结缔组织,发射波形峰值高、穿透力差等,对较深病灶点的治疗效果不明显。因此,治疗和促进肌肉恢复和骨骼愈合需要
[单片机]
基于AT89C2051<font color='red'>单片机</font>的超声波理疗仪设计
MCS-51单片机输入/输出口的P0并行扩展方法
在单片机家族的众多成员中,MCS-51系列单片机以其优越的性能、成熟的技术、高可靠性和高性价比,占领了工业测控和自动化工程应用的主要市场,并成为国内单片机应用领域中的主流机型。 MCS-51单片机的并行口有P0、P1、P2和P3,由于P0口是地址/数据总线口,P2口是高8位地址线,P3口具有第二功能,这样,真正可以作为双向I/O口应用的就只有P1口了。这在大多数应用中是不够的,因此,大部分MCS-51单片机应用系统设计都不可避免的需要对P0口进行扩展。 由于MCS-51单片机的外部RAM和I/O口是统一编址的,因此,可以把单片机外部64K字节RAM空间的一部分作为扩展外围I/O口的地址空间。这样,单片机就可以像访问外部RAM存
[单片机]
MCS-51<font color='red'>单片机</font>输入/输出口的P0并行扩展方法
uC/OS-II在51单片机上的移植2
文件名 : YY.C #i nclude #define MAX_STK_SIZE 64 void TaskStartyya(void *yydata) reentrant; void TaskStartyyb(void *yydata) reentrant; void TaskStartyyc(void *yydata) reentrant; OS_STK TaskStartStkyya ;//注意:我在ASM文件中设置?STACK空间为40H即64,不要超出范围。 OS_STK TaskStartStkyyb ;//用户栈多一个字节存长度 OS_STK TaskStartStkyyc ; void main(void)
[单片机]
51单片机实现三相六拍的步进电机控制
单片机源程序如下 #include reg52.h #define uchar unsigned char #define uint unsigned int uint speed = 100; //初始转速 uint max = 200; //最慢转速 uint min = 20; //最快转速 sbit swich = P2^0; //总开关 sbit dir = P2^1;
[单片机]
51<font color='red'>单片机</font>实现三相六拍的步进电机控制
PIC单片机软件开发方法
1 动作标志位的使用 在整个控制中,组合的动作很多,当所有动作定位都通过光电开关控制时,在程序编写上就有一些问题。如要求左手上升到故障位、右手上升到举手位(手初始位置在最下的放下位),光电开关0有效(即为0时是挡住),到达正确位置。用简单的理解可以写成下面的程序: list P=16c73 call lefthandup call righthandup LO call readinsignal bdss csl_v,1efthandligbts call lefthandstop btfsc csl_v,righthandlight4 goto L0 call righthandstop
[单片机]
基于MSP430单片机的单相正弦波逆变电源设计
本系统实现输入直流电压15V,输出交流电压有效值10V,额定功率10W,交流电压频率在20至100Hz可步进调整。以MSP430单片机为控制核心,产生SPWM波控制全桥电路,然后经过LC滤波电路得到失真度小于0.5%的正弦波。采用PID算法反馈控制使输出交流电压负载调整率低于1%,采用 开关电源 作为辅助电源、合理选用MOSFET等使系统效率达到90%,采用输入电流前馈法来估计输出电流以实现过流保护以及自恢复功能。    引言   要求实现单项正弦波 逆变电源 ,输入直流15V,输出交流电压有效值10V,功率10W,且频率20至100Hz步进可调,要求波形无明显失真,负载调整率小于1%,效率尽可能高,系统要具备过流保护以及
[电源管理]
基于MSP430<font color='red'>单片机</font>的单相正弦波逆变电源设计
51单片机系列之驱动蜂鸣器发声
名称:51单片机驱动蜂鸣器发声 平台:Keil 4, Ly-51S学习板 内容:模拟报警声,如闹钟 滴 滴 滴 滴 -----------------------------------------------------*/ #include reg52.h sbit SPK = P1^2; void delay_2us(unsigned char t) { while(--t); } void main() { while(1) { delay_2us(25); SPK = !SPK; } }
[单片机]
STM32单片机bxCAN的工作模式解析
1 bxCAN工作模式 bxCAN有3个主要的工作模式:初始化模式、正常模式和睡眠模式。 在硬件复位后,bxCAN工作在睡眠模式以节省电能,同时CANTX引脚的内部上拉电阻被激活。软件通过对CAN_MCR寄存器的INRQ或SLEEP位置’1’,可以请求bxCAN进入初始化或睡眠模式。一旦进入了初始化或睡眠模式,bxCAN就对CAN_MSR寄存器的INAK或SLAK位置’1’来进行确认,同时内部上拉电阻被禁用。 当INAK和SLAK位都为’0’时,bxCAN就处于正常模式。在进入正常模式前,bxCAN必须跟CAN总线取得同步;为取得同步,bxCAN要等待CAN总线达到空闲状态,即在CANRX引脚上监测到11个连续的隐性位。 1.
[单片机]
STM32<font color='red'>单片机</font>bxCAN的工作模式解析
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved