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指令及返回值如下:
AT指令及返回值" src="/article/UploadPic/2011-3/2011326152425778.jpg" onload="return imgresize(this);" onclick="javascript:window.open(this.src);" style="cursor:pointer;"/>
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位停止位,无数据流控制;