基于GPS/GPRS的车辆移动监控终端的设计与实现
——
1 GPS与GPRS
全球定位系统(Global Positioning System,GPS)是美国从上世纪70年代开始研制的具有在海、陆、空全方位实时三维导航与定位能力的新一代卫星导航与定位系统,由于能为用户目标提供全天候、高精度、连续实时的导航、定位和授时,已被广泛应用于地面移动目标的跟踪定位。
随着移动GPRS业务的开展,利用GPRS来进行GPS数据传输优势明显。GPRS(General Packet Radio Service,通用分组无线业务)是一种以分组交换技术为基础,采用IP数据网络协议,传输高速、低速数据及信令的高效数据传输网络。相对于传统的远程传输方式来说,GPRS数据传输具有突出的优点。一方面,GPRS资费比较便宜,可以采用多种资费方案。对于大数据量业务的用户可以采用包月的方式,对于小数据量业务的用户可以根据通信的数据量和提供的服务质量进行计费。另一方面,在GPRS网中,用户只需与网络建立一次连接,就可长时间的保持这种连接,并只在传输数据时才占用信道并被计费,保持时不占用信道不计费。这样,数据采集点不用频繁建立连接,也不必支付传输间隙时的费用,而且GPRS能够较好地支持频繁、少量突发型的数据业务。此外,GPRS网络接入速度快,提供了与现有数据网的无缝连接。由于GPRS网本身是一个分组型数据网,支持TCP/IP,X.25等协议,可以直接与分组数据网(IP网或X.25网)互通,接入速度快于电路型数据业务。
2 系统组成和功能
整个基于GPS/GPRS车辆监控系统由车载移动终端、通信网络和监控中心组成。其系统组成如图1所示。
移动车辆配备的GPS接收机用以获取自己当前的位置、时间等信息,通过GPRS或短信的方式上传到中心通信服务服务器。在监控中心站,通讯服务器接收各监控目标的位置信息,并通过通信控制器送往中心服务器在电子地图中显示,对当前受监控车辆所在的位置、车速及行进方向进行实时监控,并可以通过网络对车载终端进行控制,实现移动车辆与监控中心的双向数据传输,完成对车辆运行状态、安全状态、技术状态的监控。
3 车载移动监控终端的设计和实现
根据系统结构框架,车载终端实现的主要功能有移动监控功能,当接收到监控中心的监控命令后,自动地根据要求将位置信息通过GPRS或SMS发送到监控中心;车体控制功能,根据接收的控制命令实现对车体的控制,比如点火线等端口的监测、断电/油路;安防功能,当汽车遇到特殊情况,如遇劫等,可以通过按钮发送SMS向监控中心报警。
3.1 系统组成的硬件框图
车载移动终端由主控处理器、GPRS通信模块、GPS模块等组成,其结构框图如图2所示。根据车载设备低功耗的要求,主控芯片上我们选用了SAMSUNG公司的S3C44B0X。S3C44B0X采用ARM7TDMI内核,并提供丰富的内置部件,包括:8 kB cache、内部SRAM、LCD控制器、带自动握手的2通道UART、I/O端口、8通道10位ADC、PLL倍频器等,他的低功耗精简和出色的全静态设计特别适合用于对成本和功耗敏感的应用。
GPRS模块是整个系统的通信基础,我们采用SI-MENS的MC35i。MC35i是新一代GSM/GPRS双模模块,支持GSM900/GSM1800双频和GRPS Class 8/ClassB。MC35i体积小巧,功耗低,能提供数据、语音、短信、传真功能,可广泛用于遥感测量记录传输、远程信息处理、电话。GPRS模块通过串行口UART2与主控芯片通信。
GPS接收单元我们采用μ-blox的GPS-MS1E,他具有高捕获和灵敏度、超低功耗、体积小等优点,主控芯片对GPS的控制主要是通过串行口UART1接收GPS定位信息。
用户按键与SC44B0的相应的I/O口连接以便控制器状态变化。同时系统还预留了丰富的外围接口,可灵活外接各种数据采集子系统,具有较大的可扩展性。
3.2 系统软件设计
由于车载终端需要完成与GPS模块、GPRS模块、其他I/O模块的交互和监控,单一的任务无法完成,因此需要实时操作系统的支持。在嵌入式操作系统上选用美国著名RTOS厂商ATI公司的Nucleus PLUS。他是在嵌入式实时多任务操作系统Nucleus基础,为实时嵌入式应用而设计的一个抢先式多任务操作系统内核。Nucleus PLUS对CPU的支持能力比较强,支持当前流行的大多数RISC,CISC,DSP处理器。其95%的代码是用ANSI C写成的,非常便于移植并支持大多数类型的处理器。Nucleus PLUS提供了任务控制、任务通信、任务同步、内存管理、可编程的定时器、标准的输入/输出设备接口等系统服务。
按功能上将系统应用软件分为9个模块,每个模块由一个主任务和若干个子任务组成,任务内部采用有限状态机的方式进行切换,任务之间采用消息管道(pipe)进行通信,每个模块都定义了自己的消息接受管道。各个模块之间的关系如图3所示。
(1) 主控模块是系统的核心模块,负责系统的控制,以消息分发的方式与其他模块交互,并控制其运行状态达到总体控制系统运行的目的。根据系统工作时处理的不同任务将主控模块划分为启动上电、正常工作、处理SMS数据、处理GPRS数据和退出下电五个状态。主控模块的任务名为SyscMain,他有自己的消息接收管道pipe[SY-SC],他循环地从此管道中接收和处理消息,并根据消息体的内容在主控模块的不同的状态之间转移切换,同时通过向其他模块的消息管道发送消息来控制他们的运行状态,另一方面其他模块通过消息管道向主控通知其自身的运行状态和接受的数据,以接受主控模块的监控。
(2) GPS模块主要负责GPS数据的接收和解析。由于GPS输出数据采用NMEA-0183格式,输出数据为多种格式,在本系统中,仅选择了取其中的一种数据格式:GPRMC(推荐最小数据量的GPS信息),其格式为(见表1):
$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<lO>,<11>,<12>*hh
当GPS输出数据为有效定位数据时,提取相应的信息(经纬度、高度、速度等),同时转换UTC时间为本地时间,封装为系统自定义的GPS DATA数据格式发送到通信任务模块。
(3) PPP模块负责GPRS的底层PPP连接和PPP数据包的处理。点对点协议(PPP)为在点对点连接上传输多协议数据包提供了一个标准方法。在TCP/IP协议集中他是一种用来同步调制连接的数据链路层协议。该模块实现负责TCP/IP协议栈低层的PPP协议的连接和释放,以及相应收到的PPP数据帧的处理与上层的TCP/IP层交互。主要包括PPP协议数据帧的封装方式、初始化的LCP协议的协商、PAP密码验证和NCP协议的协商过程的处理。该模块由外挂模块Nucleus NET提供支持。
(4) 通信模块(GPRS模块)负责与监控中心系统通信,完成GPRS数据的收发和短消息的收发。CPU对GPRS的控制主要是通过UART2发送AT命令实现。GSM AT指令集是由诺基亚、爱立信、摩托罗拉和HP等厂家共同为GSM系统研制的,提供了一种移动平台与数据终端设备之间的通用接口,并被加入到GSM 07.05标准以及之后的GSM 07.07标准。用户可以通过AT指令实现呼叫控制、短消息SMS、电话本、数据业务、补充业务、传真等方面的控制。
为满足用户进行GPRS数据通信的要求,NucleusNET作为外挂模块能与Nucleus PLUS无缝结合从而实现其网络互联功能。Nucleus NET通常使用TCP/UDP协议的客户/服务器运行模式,完成建立连接、发送数据及接收数据的工作。
TCP/IP的建立过程中,首先调用Nucleus NET提供的NU_init函数初始化GPRS网络,通过相应的设置AT指令来完成,包括检测是否连接到网络(AT+CREG),通信信号强弱(AT+CSQ)以及SIM卡的PIN值是否输入(AT+CPIN)等。然后用PPP拨号方式拨入GPRS网络,完成底层的数据链路层的连接,这部分由上述的PPP模块来完成。接着调用Nu_Socket函数为他的通信分配一个套接字,然后调用NU_Connect函数与监控中心服务器建立连接成功后,就可以进行GPRS数据的发送NUSend.和接受NU_Reev.
在监控中心服务器和移动终端上的数据传输协议上,为了兼容GPRS和GSM短消息这两种通信方式,系统自定义了如图所示的通信帧结构,其中协议帧最大长度为140 B,包括帧控制字节。
其中固定使用字母“A”作为帧头;帧类型用来表示该帧的具体含义,当为下行通信帧(监控中心服务器→终端)时表示为监控中心对终端的控制命令类型,比如设定定时报位命令、设定超速报警命令、终端配置命令等。当为上行通信帧(终端→监控中心服务器)时该字节省略;帧长为该帧体字段的长度;帧长的反为帧长字段按位取反的结果;帧体是个串类型,依据帧类型的不同表示不同的含义,当该帧为上行通信帧时,帧体的内容为系统自定义的GPS数据;帧序号从0开始到255后归0,用来对帧顺序进行判断;校验和为帧类型、帧长、帧长的反、帧序号、帧体几个字段各字节按字节异或的结果,用来判断该帧的正确性。
另一方面,用户还可以通过按键发送SMS来上报监控中心。主控芯片利用串口向GSM Modem收发一系列的GSM 07.05标准所定义的AT命令集,就能达到控制收发SMS的目的。根据GSMGSM 07.05标准,对SMS的控制共有3种接入协议:Block Mode;基于AT命令的TextMode;基于AT命令的PDU Mode。本系统采用PDU模式对短信息正文经过十六进制编码后传送。PDU模式下可以采用3种编码方式来对发送的内容进行编码,他们是7 b,8 b和UCS2编码。7 b编码用于发送普通的ASCII字符,他将一串7 b的字符(最高位为0)编码成8 b的数据,每8个字符可“压缩”成7个;8 b编码通常用于发送数据消息;而UCS2编码用于发送Unicode字符。发送SMS的具体过程为:
①首先发送AT以测试GSM Modem连接是否正常,等待GSM Modem返回OK;
②发送ATE0设置GSM Modem取消回显模式,等待返回OK;
③发送AT+CMGF=0设置发送短信时选用PDU格式编码,等待返回OK;
④接下来为正式发送SMS,先调用PDU编码函数对接收到GPS数据GPS_DATA进行编码,并根据通信协议封装为上行通信帧格式,然后发送指令。
AT+CMGS=监控中心短消息号码+回车符(0x0d,0x0a)+上行通信帧数据+回车符(0x0d,0x0a),等待返回OK。
上述的每个步骤完成后都必须加上回车符号(0x0d,0x0a)以使GSM Modem区别为不同的AT指令,而且都必须等待相应的应答,若失败(回应ERROR),需重新发送该AT指令。
(5) 附件模块负责终端硬件设备的检测,并通知主控模块,实现应用程序对终端硬件的控制。
CPU对其他外围接口的控制主要通过通用I/O口实现开关(电平)输入/输出,同时通过外部中断的方式实现了与点火信号、车用防盗报警器、紧急报警(SOS)等的接口。
4 结 语
使用GPRS作为GPS车辆综合监控调度管理系统的无线传输手段,具有费用低、无需线缆施工及安全可靠、维护方便的特点,是一种经济可行、技术先进的系统构建方案,这将使车辆监控系统具有更为广阔的应用前景。本文设计的基于GPS/GPRS的车载移动终端已投入实际运行,工作稳定,能够较精确地完成车辆监控,操作简单方便。
tcp/ip相关文章:tcp/ip是什么
评论