GSM/ GPRS 与AGPS 技术的整合使得该模块可以满足GPS跟踪、导航、车辆船舶等设备和资产的监控管理以及其他GPS 的应用。键盘扫描和屏幕显示由单片机做数据处理。键盘显示板主要实现键盘扫描、液晶屏幕的显示并与ARM处理器模块进行通讯。硬件系统整体框图如图2所示。
图2 系统组成
1. 2 软件总体设计
系统的主要功能由ARM 控制, 采用C 语言进行编程, 采用多线程处理相关功能模块。执行相关过程如下: 系统初始化完成后, 依据GPS 定位信息和系统存储的线路信息计算位置、报站和读取相关信息, 并由ARM 控制车内的显示模块进行显示、语音播放以及向数据中心进行数据传送。
2 设计实现
2. 1 系统初始化
在系统运行之前, 必须用软件程序对各部分进行初始化。初始化包括以下几个部分:
ARM 以及系统初始化;显示按键模块初始化;外部器件、接口初始化: 主要是GPS、GPRS和语音芯片等设备的初始化;软件系统的初始化: 设置全局变量、指针和数组、数据结构以及公交信息初始化。
系统软件部分主要是在主程序中检测GPS 信息, 确定公交车当前的地理位置, 然后决定是否播放语音信息。同时还需要实现按键所要求的功能, 如切换到手动播报等。本系统的软件部分开发工作是基于Linux 开发环境实现的。根据系统要完成的功能和各个模块的运行情况, 主程序部分采用了多线程以及消息队列的方式, 可以及时接收GPS 数据。
因为只使用GPRMC 帧的数据, 串行通讯的数据量不大, 通讯及数据处理过程比较快, 系统能够及时播放报站及其他语音信息。公交车途经的各站点的经纬度数据需要预先测量好, 并存放到系统的数据区, 作为对比参考使用。GPRS 的信息通过串行口传递, 采用查询法, 按键也使用查询方式进行接收, 以确定按下的是哪个功能键。软件采用C 语言编写, 调试成功后烧录到Flash 中, 实现脱机运行。