基于GPS+CDMA的物流车辆监控终端的设计
扫描二维码
随时随地手机看文章
随着我国国民经济、交通运输业的不断发展,物流运输行业成为了推动国民经济快速发展必不可少的基础产业。各类物流运输仓储企业虽然在长期发展过程中已经积累了丰富的实践经验,但车辆动态信息的实时监控一直未能得到完善地解决,例如,信息反馈不及时、不精确、不全面等问题导致了运力的大量浪费与运作成本居高不下。利用GPS对物流车辆以及物流对象进行管理监控已成为了发展趋势。
针对上述情况,本文对物流车辆监控终端进行研究,提出了基于GPS+GIS+CDMA的总体系统构架。系统将全球定位系统(Global Position-ing System,GPS)、地理信息系统(Geographic Information System,GIS)以及CDMA(Code Division Multiple Access)无线通信技术融于一身。
本文设计的物流运输车辆监控终端,通过GPS卫星定位获得车辆的经纬度等信息后,经过CDMA无线通信网络与监控中心进行通信,实时地将运输车辆的各种信息传输给监控中心,供监控中心对整体运输车队进行显示、查询、调度。
1 系统总体设计
基于GPS和CDMA的物流运输车辆监控系统由车辆监控终端、数据传输网络以及监控中心组成。其中数据传输网络由CDMA网络和Internet组成。
通过GPS卫星网络,车辆终端能够对物流车辆和物流对象进行精确定位,经CDMA无线网络接入Internet链接到监控中心服务器,实时向监控中心传输物流车辆的经纬度、速度、航向、海拔、时间等GPS数据信息,监控中心可以在具有地理信息处理和查询功能的电子地图上显示、查询车辆的各种信息,实时监控车辆运行状态。
另外监控中心还具有与车载终端通讯的功能,能够对物流运输车辆实时调度、对突发事故进行及时处理,适用于各种物流交通领域。
2 终端硬件设计
本文设计的物流车载终端硬件结构由S3C2440A、JTAG片上调试接口、视频接口、音频接口、复位电路、CDMA无线通信模块、GPS模块、电源电路、LCD触摸屏、键盘等组成,外接SDRAM、NAND FLASH、NOR FLASH作为外部存储器,其硬件结构如图1所示。
图1 终端硬件设计硬件结构
2.1 CPU选型
为了满足系统对实时性、大数据量处理、GPS信号接收、CDMA数据发送等各方面的要求,终端采用三星公司的S3C2440A 32位ARM芯片作为CPU。S3C2440A采用了先进的ARM920T内核,片上集成了3路UART串口,2路SPI口,8路10位ADC,具有日历功能的RTC,带PLL的片上时钟发生器,130个通用I/O口,24个外部中断源等丰富的资源,易于开发,是一款性价比非常高的芯片。
2.2 CDMA模块接口设计
终端采用了华为EM200 CDMA1X模块。该模块工作频段为800 MHz,最大发射功率为0.25 W,接收灵敏度小于-106 dBm,工作电压3.3~4.2 V,集成了UART,UIM卡,天线等丰富的资源接口。支持标准AT指令集。极限工作温度为-30℃~+75℃,工作温度范围广,适合各种物流运输环境。
S3C2440A有3个UART串口,EM200模块与S3C2440A通过串口1相连,因为二者输入输出都是TTL电平,所以无需电平转换可直接相连,其中EM200的管脚是数据发出端,与S3C2440A的RXD端相连;EM200的管脚是数据接收端,与S3C2440A的TXD端相连,由此实现了两者之间的数据收发。华为EM200 CDMA1X模块与S3C2440A连接图如图2所示。
图2 华为EM200 CDMA1X模块与S3C2440A连接图
其中S3C2440的TXD0、nRTS0、DTR脚,分别经过3个1 kΩ电阻与EM200的脚相连,目的是防止电流过大对芯片造成损害。
2.3 GPS模块接口设计
GPS模块是终端实现精确定位的关键,是终端设计的核心,所以本终端选取了Gstar公司的SIFEIII代GS-15B模块。
GS-15B是一个高效能、低功耗的智能型卫星接收模块。它采用台湾联发科技股份有限公司所设计的MT3329F卫星定位接收芯片,是一个完整的卫星定位接收器。同时具备全方位功能,能满足专业定位的严格要求与工业级需求。内置GPS天线,采用MTK高灵敏度、低耗电量芯片MT3 329F。具备快速定位及追踪32颗卫星的能力。体积超小,芯片内建20万个.运算器,大幅提高搜寻及运算卫星讯号能力。支持NMEA-0183 v2.2版本规格输出。接收灵敏度为-157 dBm,工作温度为-40℃~85℃,TTL电平输出,工作电压3.3~5.0 V,冷启动定位时间仅为42 s,平均定位精度为10~15 m。既满足了终端对高性价比需求,也满足了终端的精确定位的需求。
S3C2440A与GS-15B的接口连接图如图3所示。终端使用S3C2440A的串口2连接GPS模块,为了增强驱动能力,在S3C2440A的TXD1和PXD1管脚上加了2个100 kΩ的上拉电阻。终端一般只接收GPS信息,不对GPS做写操作,所以为了保护芯片,在S3C2440A的RXD1与GS-15B之间加了1个100 Ω的电阻和1个型号为MCIA148的反向二极管,从而保证了终端运行时的稳定。
图3 S3C2440A与GS-15B的接口连接图
3 终端软件设计
终端的软件部分是基于WinCE 5.0嵌入式操作系统设计的,WinCE是一个多任务、完全抢占式的32位嵌入式操作系统,支持WinCE MFC、ATL、WinCE API和一些附加的编程接口以及各种通信技术。WinCE嵌入式操作系统具有操作界面良好、实时性较高、占用资源少、开发工具丰富以及强大的技术支持等优势,充分满足本终端软件的设计需求。
3.1 终端软件设计流程
首先系统上电,启动bootloader,加载WinCE内核,启动WinCE嵌入式操作系统。然后初始化CPU、LCD、GPS,CDMA等外围模块,再加载串口驱动和网络协议,若加载成功则执行用户应用程序,若加载失败则返回,重新加载串口驱动和网络协议。其中终端的用户应用程序包括:CDMA无线网络接入程序、网络数据传输程序、GPS串口接收程序等。终端软件设计流程图如图4所示。
图4 终端软件设计流程图
3.2 CDMA无线网络接入程序
终端通过AT指令控制CDMA模块,实现无线网络接入和网络数据传输。
系统运行后,首先初始化CDMA模块,设置波特率为115 200 b/s,然后进入拨号等待状态,终端经过PPP拨号连接登录网络,接入号为777,用户名和密码均为card。确认登陆网络成功后,则调用GPS串口接收程序和网络数据传输程序,采用定时方式向监控中心发送终端的GPS定位信息。
建立PPP(point-to-point protocol)连接的AT指令及返回值如下:
3.3 CDMA无线网络通信程序
终端通过CDMA网络接入Internet后,无线网络通信程序将终端解析的GPS数据通过Intemet上传到监控中心。本终端软件设计采用流格式套接字进行网络通信,对应于TCP/IP协议中面向连接的TCP协议。网络数据传输程序采用客户机/服务器机制编程,终端(客户机)进程由用户操纵;而监控中心(服务器)进程则驻留在主机上连续运行,等待终端连接请求进入。
监控中心的网络通信程序流程如下:1)用socket()函数创建套接口,并给套接口地址结构赋值;2)用bind()函数使套接口与本地IP地址、端*绑定,选用静态IP地址;3)用listen()函数在该套接口上*连接请求;4)用accept()函数接收终端连接请求,产生新的套接口及描述字并与终端连接,利用新的套接字发送和接收数据;5)用fork()函数派生新的子进程与终端通信,父进程继续*其他请求。这样就可避免一个终端与监控中心建立连接后,监控中心不能再与其他终端通信的问题。
终端的TCP程序流程如下:1)用socket()创建本地套接口,给监控中心套接口地址结构赋值;2)用connect()函数使本地套接口向监控中心套接口主动发出建立连接请求,经三次握手建立TCP连接;3)若连接建立成功,则用send()和recv()函数与监控中心通信;4)通信结束,用close()关闭套接口。
3.4 终端GPS串口程序
软件开发工具采用EVC(embedded visual C++),EVC是Windows CE上的主流开发工具,封装了网络底层通讯、COM互操作、RAPI等。EVC支持MFC类库的子集,使Win32平台上的VC程序可以方便地移植到WinCE平台上。
终端GPS串口程序主要完成两个功能:接收GPS数据和解析GPS数据。GPS模块输出遵循NMEA-0183标准。程序流程如下:
1)使用OpenPort()函数打开串口,该函数使用创建文件函数CreatFile()打开串口2,以获取串口2的操作句柄m_hComm;
2)如果串口2打开成功,则读取当前串口的设置,即通过GetCommState()读取串口参数结构体DCB变量;
3)用SetCommState()对串口2进行相应的设置:如设置波特率为4 800 b/s,8位数据位,无奇偶校验,1位停止位,无数据流控制;
4)按位读取数据,判断帧起始是否为$GPRMC,若为$GPRMC则从中提取时间、经度、纬度、速度等信息并存入相应结构体;判断帧起始是否为$GPGGA,若为$GPGGA则从第9字段提取海拔高度并存入相应结构体;判断帧起始是否为$GPGSV,若为$GPGSV则从中提取有效卫星数目、有效卫星编号等信息并存入相应结构体;
5)用SetWindowText()在LCD上显示接收到的GPS数据和解析后的GPS信息;
6)最后,在需要时用ClosePort()函数关闭串口2。该函数使用CloseHandh()关闭串口2的句柄m_hComm。
4 运行结果
本文所设计的终端软件运行结果如图5所示。终端GPS数据显示包括UTC时间、经纬度、星历、方向、海拔等。实现了全面地、直观地显示GPS数据的功能,具有友好的人机界面风格。其中图5(a)中可以对GPS串口进行配置,以及显示接收到的原始NEMA-0183语句。图5(b)中的经纬度是在天津市北辰区河北工业大学新校区测得的,精确到秒级,经度为东经117°41’34.4”,纬度为北纬39°37’6.2”。测试时间是2010年6月6日,下午16点24分22秒。
图5 终端GPS数据显示界面
测试表明,终端软件能平稳地运行在嵌入式WinCE 5.0系统上,具有良好的实时性和准确性。
另外,终端通过CDMA无线通信网络实时地将GPS定位数据传给监控中心,监控中心的电子地图上即实时显示终端的地理位置。经测试,终端的实际位置与电子地图上的位置完全符合,并且具有良好的实时性,数据刷新时间小于3 s,GPS位置漂移值小于20 m。
5 结束语
针对我国物流行业快速发展的背景,本文对基于GPS和CDMA的物流车辆监控终端进行了软硬件设计。实现了对物流车辆的远程监控和实时调度。相比传统的车载终端,本设计采用32位ARM处理器,具有更快的处理速度、更大的存储空间、更直观的界面显示等优点。尤其在GPS数据无线传输方面采用了CDMA无线通信技术,比传统GPRS技术更适用于长距离、大数据量、实时性要求非常高的车载终端领域。随着3G移动通信系统的发展,采用CDMA网络的GPS终端更易于向3G网络平滑过渡,会有更广阔的应用前景。