现在城市公交体系飞速开展,且已根本都是无人售票,报站也由本来的售票员报站改为由司机手动操控报站。可是因为公交司机既要开车,又要统筹手动按键报站,所以经常呈现误报、漏报等现象,不能满意公交体系的要求;别的,因为司机开车时为报站涣散精力,也对公交的安全运转埋下了危险。运用主动报站体系即能够节约职工开支,增强公司效益,又能够运用报站器播报规范的普通话站名,使各城市更利于沟通和开展。
GPS卫星定位语音报站体系具有定位精度高、语音主动播报等特色。现在市场上已有依据GPS的公交车主动报站体系的试用,但这些体系都是依据各种单片机为处理芯片的。
车载设备装置于公交车上,其作业环境比较恶劣,因而对设备的结构也有必定的要求,本体系选用作业安稳牢靠、抗干扰才能强的ARM9处理器。嵌入式体系固化于存储器中,其牢靠性高、成本低、体积小、功耗低。鉴于此,本研讨规划了一种依据GPS的嵌入式公交车主动报站体系,能够完结公交车抵达站点后的实时报站,预告下一站的信息,播映语音、视频等信息,结合LCD进行报站显现,让乘客能够更便利地了解周边信息,也能够下降司机的劳动强度。
1 GPS技能概述
全球定位体系GPS(Global Positioning System)是美国从20世纪70年代开端研发,历时20年,耗资200亿美元,具有海、陆、空全方位实时三维导航与定位才能的新一代高精度卫星导航与定位体系。GPS定位的根本原理是依据高速运动的卫星瞬间方位作为已知的起算数据,选用空间间隔后方交会的办法,确认待测点的方位。假定t时刻在地上待测点上安顿GPS接纳机,能够测定GPS信号抵达接纳机的时刻?驻t,再加上接纳机所接纳到的卫星星历等其他数据能够确认以下4个方程式,如图 1 所示。
2 GPS通讯的NMEA0183协议
一般GPS模块支撑两种格局:二进制音讯格局和NMEA-0183 ASCII音讯格局。前者的通讯协议为9 600 b/s、无校验、8 bit数据位、1 bit中止位;后者的通讯协议为4 800 b/s、无校验、8 bit数据位、1 bit中止位。因为NMEA-0183 ASCII格局直观、易于辨认及运用, 因而本设备选用ASCII格局。现在GPS厂商遵从NMEA0183协议供给串行通讯接口,串行通讯参数为:波特率=4 800 b/s,数据位=8 bit,中止位=1 bit,无奇偶校验。
GPS与体系通讯时,经过串口发送数据。体系接纳到的GPS数据首要由帧头、帧尾和帧内数据组成。依据数据帧的不同, 帧头也不相同, 首要有 GPGGA、 GPGSA、GPGSV以及 GPRMC等。各类数据帧别离包括了不同的信息。
因为帧内各数据段由逗号切割, 因而在处理缓存数据时经过搜索ASCII 码“ ”来判别是否是帧头。在对帧头的类别进行辨认后, 再经过对所阅历逗号个数的计数判别出当时正在处理的是哪一种定位导航参数, 并做出相应处理。
假如与卫星的通讯正常,则能够接纳到的数据格局如下:
GPRMC,204700,A,3403.868,N,11709.432,W,001.9,336.9,170698,013.6,E*6E
数据阐明如下:
GPRMC:代表 GPS 引荐的最短数据;204700:UTC_TIME 24h制的规范时刻,依照h/min/s的格局;
A:A或许V,A表明数据OK,V表明一个正告;
3403.868:LAT纬度值,精确到小数点前4位,后3位;
N:LAT_DIR N表明北纬,S表明南纬;
11709.432:LON经度值,精确到小数点前5位,后3位;
W:LON_DIR W表明西经,E表明东经;
下面是一个接纳不到卫星信号的比如:
GPRMC,204149,V,…,170698,*3A
3 报站体系模块规划
3.1 GPS数据解析模块
在接纳进程receive中收到“\n”之后,表明收到一条完好的信息。在gps_parse子程序中完结GPRMC格局数据的解析,show_gps子程序中完结数据的显现。
从GPS原始收集的数据能够解分出年月日、时刻、状况、纬度经度以及高度等信息,然后能够经过GPS的报站程序,依照设定的格局,只需条件满意就履行报站程序及数据的显现。
3.2 串口通讯的规划
翻开串口:翻开串口是经过规范的文件翻开函数来完结的。
串口设置:最根本的设置串口包括波特率设置、校验位和中止位设置。串口的设置首要是设置struct termios结构体的各成员值,关于该结构体的界说能够查看/arm2410s/kernel-2410s/include/asm/termios.h文件。
读写串口:设置好串口之后,读写串口很简略,把串口当作文件读写就能够了。
读取串口数据:运用文件操作read函数读取,假如设置为原始形式(Raw Mode)传输数据,那么read函数回来的字符数是实践串口收到的字符数。能够运用操作文件的函数来完结异步读取,如fcntl,或许select等操作。
封闭串口:封闭串口便是封闭文件。
3.3 语音报站的规划
语音报站是依据GPS的主动报站体系的中心部分,只要完结了语音报站,整个体系才算完结。试验箱中的音频驱动程序和视频驱动程序都是一个独立的程序,要想在GPS的主动报站程序中运用音频驱动程序完结语音报站,就必须用一个函数来完结程序的调用。System函数就有这样的功用。System函数现已被收录在规范C库中,能够直接调用。
语音报站程序首要是经过system函数调用音频驱动程序来完结的。假如收集信号的状况为“A”,就能够进行数据的比照,假如在站点规模内就用system函数调用一段语音,假如出了站点规模就调用别的一段语音。站点详细的经度和纬度能够用数组来界说,这样能够便利修正,也愈加直观、简略。站点的规模经过一个方框限制,经度和纬度在站点的100 m规模内。站点的规模也能够用一个圆来限制,即到站点的间隔小于d的规模,两个站点间的间隔能够用公式核算。
3.4 多线程的运用
多线程程序作为一种多任务、并发的作业方法,有以下的长处:(1)进步运用程序呼应;(2)使多CPU体系愈加有用;(3)改进程序结构。LIBC中的pthread库供给了很多的API函数,为用户编写运用程序供给支撑。在本程序的代码中很多运用了线程函数,如pthread_create(线程创立函数)、pthread_join(等候一个线程的完毕)pthread_exit(一个线程的完毕)等。
4 体系总体规划及调试
4.1 体系总体规划
体系的软件部分首要是GPS数据的解析和报站子程序的规划。现在军用GPS接纳机的定位精度现已到达1 m,可是民用GPS定位体系定位精度只要10 m~20 m,而实践的公交车报站的精度只需在150 m规模内就能够,所以本次规划中的站点规模为100 m,彻底能够到达规划的要求。假如是中小城市的话能够将定位的精度进行恰当的调整。
因为GPS收集信号的周期是每1 s采一次,而实践上公交车站点之间的间隔较远,且报站的时刻需提早一点,1 s进行一次数据比照比较费事,每隔5 s进行一次数据比照就能够了,所以程序中将数据比照的周期改成了5 s一次。公交车上还能够选用车轮计速的办法,每次车轮转够必定的圈数就进行一次数据比对,这样能够避免公交车到站泊车后持续履行报站程序。
收集到的信号状况为“A”时,履行相应的报站程序,可是有时候会呈现信号欠好的状况,这时就要提示司机暂时将主动报站改成本来的手动报站,以避免乘客下错站。
体系的软件流程图如图2所示。
GPS公交主动报站体系包括硬件和软件两部分。硬件以ARM9S3c2410x处理器为中心, 装备存储器、I/O设备、通讯模块等必要的外设;软件以嵌入式Linux操作体系为中心,供给运用编程接口API。嵌入式体系中,软件和硬件紧密配合,和谐作业,共同完结体系预订的功用。主动报站的硬件原理图如图3所示。
体系软件部分在Linux操作体系顶用C言语编程完结,将各模块的程序整合到一同,装备好开发环境,进入GPS的目录,用vi指令将代码进行修改,然后编译、在minicom下运转,就能够看到成果是否正确。
4.2 体系调试
查看跳线:确认试验渠道扩展槽上方JP1102/JP1103跳线坐落2、3之间,跳线位为EXPORT;确认GPS/GPRS模块的JP201/JP202跳线坐落模块外侧GPS端。
接入设备:封闭2410-S渠道,将GPS天线连接到GPS/GPRS模块上,天线接纳端置放在能杰出接纳室外信号的当地,将模块刺进2410-S扩展插槽。
然后运转程序,即可得到试验成果。
本研讨依据公交车报站的实践需要,规划并完结了依据GPS的公交车主动报站体系。该体系运用嵌入式试验设备完结了公交车的主动报站,具有功能高、能耗低、体积小、播报精确的特色,便于在实践运转的公交车上运用;选用先进的卫星定位技能与语音播映技能相结合的方法,彻底改变了传统公交车语音报站器由司机手控的方法,进站、出站主动播报站名及服务用语,精确、及时,彻底不需要人工介入。试验成果表明,该体系能够用于GPS信号的收集和主动报站,但收集到的数据与实在值之间有必定的差错,而且有时因为树木、楼房的遮挡会导致有些路段接纳GPS信号作用欠安。因而,选用数学办法(差分技能)消除数据间的差错,运用其他辅佐定位体系与GPS 定位相结合进行定位来进步定位数据的精度,将是下一步研讨的首要方向。