发布时间:2020-01-14 14:33:08
随着移动通讯的迅速发展,中国移动的GPRS 网络已经覆盖我国的大部分区域,GPRS(neral packet Radio Service,通用无线分组业务)作为第一代移动通信技术GSM向第三代移动通信(3C)的过渡技术。GPRS是在现有的GSM网络基础上叠加了一个新的网络,同时在网络上增加一些硬件设备和软件升级,形成了一个新的网络逻辑实体,提供端到端的、广域的无线IP连接,用户通过GPRS 可以在移动状态下使用各种高速数据业务,包括收发E一mail进行Internet浏览等,给移动用户提供高速无线IP服务。
在GPRS的无线IP业务出现之前,远程数据无线传输大部分是通过GSM网络的短信业务实现的。GPRS的无线IP数据通讯中具有GSM网络短信数据无可比拟的优点:.数据传输及时@费用低,.接收简单@安全传输。
虽然当前部分的车载终端已经使用GPRS通讯平台,但是要求监控中心(接收数据服务器)有固定IP地址,而目前全球的IP地址资源有限,如果要把监控中心(接收数据服务器)建在企业里费用相对比较高。所以,提出了基于动态IP的GPRS 车载终端设计。终端采用具有GPRS/GSM内嵌 TCP/IP协议栈功能的Motorola G20模块和具有 GPS接收功能的M12模块,这两个模块均是采用 RS232串口与外界进行数据传输。所以,车载终端就采用具有双串口的W77E58型号的处理器。
本文约定,W77巧8为MCIJ,G20是Motorola 公司生产的GPRS模块,M12为Motorola公司生产的G模块。
2硬件实现
由于车载终端的运行环境比较的恶劣,所以在硬件设计上要采用硬件必要的保护措施来提高车载终端的抗干扰性能。系统由以下几个部分组成:电源、w77E58、G20模块、M12模块、键盘、显示和存储等,图1为系统的框架图。〈为了使框架图更加简洁明了,图1中省去了电源模块)
W77E 5 8
键盘
显示
SPI 存储

图1系统框架图
2 · 1电源
车载终端的供电电源使车上的车载电源;车载蓄电池一般为24v直流,具有电压不稳定和时有大脉冲出现等特点,而车载终端的主供电源是要有 5V的稳定电压。所以,需要对输人的车载电源进行滤波和降压。采用LM2576芯片进行电压转换,其电压转换范围7一40v,最大电流2A(见图2)。电源端除了有滤波功能外,还具有过流保护和反向电压保护功能。

图2电源
2.2 C20模块与W77E58的通讯
G20模块和M12模块与W77巧8之间的通讯是通过RS232的串口进行的,G20模块有时数据包的数据达到200个以上,如果不对G20模块进行数据流控制,接收的过程中容易造成数据的丢失。然而W77巧8的串口线只有D和· RXD两根,没有 RTS硬件数据流控制线,所以本文采用一个普通的 1/0当R进行数据流控制(图2)0图中的D2是电平转换电路,由于W77巧8的串口高电平为5,而 G20模块的串口高电平是3 · OV,它们之间的数据传输要进行电平的转换,D2是用三极管和电阻组成的电路(这里就不对这个电路进行详细的描述);平常的电路,串口的线路应该进行交叉通讯,也就是RXD对TXDI、D对RXDI,而图中G20 的模块RXD是对应W77巧8的RXDI,这是由于 G20内部已经做了交叉工作;R(Ready to Send) 的控制线接Pl. 4,由普通的1/0口进行控制。
w77E58D2G20
P 1.2〔RXD 1 } Pl.3(TXD1)3RXD TXD RTS

图3 G20与w77巧8的接线图
2 · 3 M12模块与W77E58
M12与W77巧8的通讯也是通过RS232串口通讯实现的,M12不仅能够获得GPS的当前比较精确的经纬度信息,还能获得当前的时间,在M12 的模块中有一块锂电池能够保证在系统断电以后很长一段时间M12的时钟的运转,所以在系统设计中M12还作片外的时间芯片用。M12的IPPS 脚是做校正时间的功能,其能在每秒产生一次中断,这样我们就能不用频繁的访问GPS以及不使用W77E58的内部时钟情况下获得当前的时间,其电路如图4。
w77E58M 12
RXD TXD PIS/INT31TXD RX D LPPS

图4 M12与7E58的接线图
除了在前面比较详细介绍的电源、G20和M12 模块的设计以及一些原理,接下来将对键盘模块和显示模块进行简要的介绍。系统中键盘总共有8 个,采用LS148进行解码,这样系统就可以使用3 根普通10线和1根外部中断线进行读取按键值,外部扰动可以通过软件和硬件进行消除,这里就不再说明了。显示模块是采用LS128 5的液晶显示屏,其内部带一、二级GB2312字库,整个屏幕能够显示16 × 16点阵的中文汉字32个。存储芯片是采用X巧65 E2PROM芯片,进行存储。在系统中我们用了G20模块和M12模块,这两个模块都有射频(RF)部分,在进行PCB布线时候将这两个部分尽量的分开,为防止他们之间相互干扰。

图5系统初始化流程图
3系统软件实现
监控中心(接收数据服务器)没有固定IP地址,在重启后其会动态分配一个IP地址,这样车载终端就无法发送信息到新的IP地址上。要实现与远程动态IP进行通讯,车载终端必须得到当前远程终端的IP地址。信息监控中心会给每一个监控的车载终端发送短消息,告知新的IP,使之能够重新进行TCP/IP连接,把最新的IP地址保存在E2 PROM中。
系统的初始化部分包括:显示的初始化,GPS
的初始化,E2PROM的初始化,GSM短消息初始化和GPRS的初始化。系统初始化的流程图见图5。 3,1获得IP地址和端口号车载终端是通过接收车载终端发过来的消息,进行密码校验和数据信息解码,最终获得监控终端的IP地址和端口号。
Void recSMS() //通过短信获得IP地址和端口号的子程序
pnntf( "AT + CMGF = 1 \r\n recDATA();//接收G20返回的数据信息的子程序 if( strstr( redata, “ OK")= = NULL) { return; printf("AT+CMGL= \"ALL\"\r\n recDATA(); i:getAI,1SMS();//获得手机短信的总条数的子函数
= 0)return · for(;i > 0;i)//手机短信一条一条的读取并删除
printf("AT +CMGR =% d\r\n" ( i );//读取手机的第i条数 recDATA();
/ *获得IP和端口的子函数,其功能密码校验,解密获得IP地址和端口号* / j:getIPPORT(); printf( "AT +CMGD:%d\r\n'' ,u) ; //删除第
1条数
if(j!:0){ / *保存IP地址和其获得地址时的时间* / write—ippttm();
3 · 2 GPRS连接用IP地址和端口号,与远程的监控中心进行 TCP/IP连接的子程序如下:
BYTE linkCMNET( void)//建立TCP/IP连接的子程序
pnntf( “ at + mipcall= 1 cmnet \ r \ n 一个无线链接。 recDATA();
/ *接收子程序,接收G20回应的数据,数据放
在redataC]中。* /
if(strstr(redata, ' + MIPCALL: 10 ”)
NULL)
return(0);
/ *打开一个SOCKET,本地端口为2開0,远程的IP地址为ipptl. ip、端口为ipptl. po 的协议类型为TCP的连接。* /
printf("at+mipopen=I,2000 \ " %s %d O\r
,ipptl. ip,ipptl · PO); recDATA();
if(strstr(redata, ' + MIPOPEN: 1 ”
NULL) {
return(1);//连接成功
return(0);
4小结
本文是基于动态IP的车载终端设计与实现,以GPRS通讯方式做为无线通讯平台,充分发挥了 GPRS的优点,增强数据传输的实时性,降低通讯费用和数据的误码率,而且信息终端使用动态IP,可以节约IP地址资源和减少企业的运营费用。基于 GPRS/CDMA的通讯,将在现在和接下来的一段时间内成为无线通讯的主要途径,对车辆调度与监控、无线抄表等远程无线信息传输起到推动作用,因此基于动态IP,运用GPRS通讯方式的远程无线信息传输将会有很广阔的市场前景。
大客户
微信
置顶