微波EDA网,见证研发工程师的成长!
首页 > 应用设计 > 汽车电子 > 如何通过CDMA模块实现车载终端数据通信

如何通过CDMA模块实现车载终端数据通信

时间:01-05 来源:电子设计应用 点击:

在传统的移动网络中,很多网络问题需要工程师或者技术人员携带仪表驾车路测来发现。这种测试方法在以往的网络优化测试中已采用多年,存在系统复杂、人员管理不方便、效率低下等问题。且每个技术人员或工程师都不可能负责太多的基站小区优化工作和问题分析。为此,建立无线网络质量自动监测系统的工作是有必要的。

车载终端组成

图1为车载终端的结构图,车载数据终端主要包括单片机(rabbit2000)、GPS模块、CDMA 手机模块、GSM手机模块、铁电存储器、电源变换模块等。其中,CDMA模块负责所采集数据的无线传输。


图1 车载终端结构图

车载终端工作原理

车载终端的工作原理可以描述为数据采集、数据处理及存储、数据上传几个过程。其中数据采集读取GPS模块返回的消息,提取经纬度信息,通过GSM和 CDMA 模块分别采集CDMA和GSM网络质量参数;数据处理及存储根据经纬度信息判断车辆行驶距离,由此距离判断是否记录该次采集的数据,上传数据时再从铁电中读取这些数据;数据上传通过简单IP实现与监控中心的TCP连接,并实时检测TCP连接状态,连接中断则立即重新连接,保证数据能实时地上传给监控中心。

数据传输的实现

硬件连接

本文中采用了MG815+模块及UIM卡,硬件连接如图2所示。图中左侧为UIM卡连接参考电路,右侧为MG815+模块连接参考电路。由于模块串口输出电平为3.8V,而Rabbit串口输出电平为5V,因此在两者之间增加了串口电平转换芯片NC7WZ07,以提升Rabbit和模块之间串口通信的可靠性。


图2 MG815+及UIM卡的硬件连接图

AT指令

AT(Attention) 指令最初由 Hayes 公司推出,主要用于对调制解调器的控制,现在已演化为一种标准,所有移动模块都支持 AT 指令。虽然不同厂家的手机模块都参照 GSM 协议,但格式还是有所不同,开发过程中一定要认真参考厂家给的资料。AT 指令格式如下:

AT指令都以"AT"开头,以结束,例如 "ATE0rn"

AT指令返回格式:<跟AT指令相关的字符串>,例如,对于上一AT命令的返回为"ATE0rnrnOKrn" 。

TCP连接的建立

TCP的连接建立经过以下过程:

① 建立拨号连接,AT命令为AT+ZPPPOPENrn。

② 建立TCP连接,AT 命令为AT+ZIPSETUP=SOCKET_NUM, IP_AD, PORT_NUM rn,例如AT+ZIPSETUP=1,211.136.18.171,5000rn。

③ TCP连接成功建立后,可以发送数据,AT命令为AT+ZIPSEND=, rrn,例如AT+ZIPSEND=1,4rgoodrn,发送的数据为"good"。

这里所用到的查询命令及各命令返回说明包括:

①查询拨号连接状态命令:AT+ZPPPSTATUSrn

返回有三种状态:拨号连接建立rn+ZPPPSTATUS: OPENEDrnrnOKrn

拨号连接断开 rn+ZPPPSTATUS: CLOSEDrnr nOKrn

正在拨号 rn+ZPPPSTATUS: * rnrnOKrn

②查询TCP连接状态命令:AT+ZIPSTATUS= SOCKET_NUM rn

返回有三种状态:TCP连接建立 rn+ZIPSTATUS: ESTABLISHEDrnrnOKrn

TCP连接失败 rn+ZIPSTATU S:CLOSEDrnrnOKrn

正在建立连接 rn+ZIPSTATUS:SYN_SENTrnrn OKrn

数据的发送和接收

模块从TCP通道接收到数据后,由串口返回消息:+ZIPRECV:0,1,, rn,例如,+ZIPRECV: 0,10,1234567890rn,则TCP通道接收的数据为1234567890。

+ZIPRECV为异步消息,在任意时刻返回,在接收该消息时要注意。

数据传输的软件设计

终端与监控中心以报文形式交互数据,报文包括数据包(采集的数据信息)、心跳包(定时发送,以维持网络连接)以及校时请求,以上均由终端主动发起,监控中心回复。数据通信子程序的流程如图3。


图3 数据通信流程图

根据流程图可知,发送数据后等待监控中心的回复消息,设置等待时间,若超时还无回复消息,则退出等待;下次发送数据时重新发送。

数据传输实例

终端发送的数据包如下:

01780102000146003030407 5345460008184101641000105 03010701221632303903.6741N1215 3.1326E27990357079425-70-66-632 004070031040828531405011144 1801194100068722100694210807 02200906902012

数据包中0178为报文长度;01为版本号;02为命令字;0001为数据包序列号;460030304075345为UIM卡号;460008184101641为SIM卡号;00010503为系统工作状态字;01为后面跟1条数据(每条长度126)。

0701221632303903.6741N12153.13 26E27990357079425-70-66-63200407003104082853140501114 418011941000687221006942 1080702200906902012为一条数据,依次为时间、经纬度、C网质量参数和G网质量参数。

注意事项

拆包现象

模块支持在TCP通道一次发送1024字节数据,但模块内部发送缓冲区为536字节,使用+ZIPSEND命令一次发送1024字节数据时,发送的1024 字节数据拆分为2条socket数据先后传送给监控中心

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top