微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > 基于GPRS网络的车辆监控系统设计

基于GPRS网络的车辆监控系统设计

时间:10-05 来源:本站整理 点击:

个端口上, 不同的端口对应于不同的服务。一般Socket 有2 种: 流式Socket( SOCK _ STREAM ) 和数据报式Socket ( SOCK _DGRAM) .流式是一种面向连接的S ocket , 针对于面向连接的TCP 服务应用; 数据报式Socket 是无连接的Socket, 用于UDP 服务应用。

  在车载终端和服务器程序中, 定义了不同协议格式的2 种Socket( SOCK_STREAM、SOCK_DGRAM) .Socket作为网络节点, 通过T CP/U DP 协议完成数据发送接收。

 3  车载模块与服务器通讯模块软件设计

  软件部分设计主要包括车载模块通讯软件和服务器软件通讯模块设计。

  3. 1  车载模块通讯软件设计

  1) 车载终端处理器芯片

  车载模块的处理器选择芯唐M0516 处理器, 车载终端内部通讯包括MCU 与GPS 模块、GPRS 模块、以及周边模块的数据传输。内部数据传输都通过串口完成。以下代码为初始化串口中断, 并使能收发中断, 中断服务函数:

  Void init _ 1315 ( PFN _DRVU ART _CA LLBA CK GPS _

  INT _HANDLE)

  {

  STR_U ART_T sParam;

  UNLOCKREG( ) ;

  SY SCLK??> PWRCON . XT L12M_EN= 1;

  / * 设置串口1 功能引脚* /

  DrvGPIO_Init Funct ion( E_FUNC_UA RT 0) ;

  / * 串口通信设置* /

  sParam. u32BaudRat e= 9 600;

  sParam. u8cDataBits= DRV UART_DAT ABIT S_8;

  sParam. u8cSt opBits= DRVU ART _ST OPBIT S_1;

  sParam. u8cPar ity= DRVUART _PARIT Y_N ONE;

  sParam. u8cRxTriggerLevel = DRVU ART _ FIFO _1BYTES;

  while (DrvUART _ Open ( UART _ PORT 0,& sParam) ! = E_SUCCESS) ;

  DrvU ART _EnableInt( U ART _PORT0, DRVU ART _RDAINT , GPS_IN T_HANDLE) ;

  }

  MCU 通过响应串口的中断, 完成车载终端内部数据传输过程。

  2) GPS 模块接收数据

  GPS 模块采用REB??1315LPX 模块, 其读取定位信息流程如下图2 所示。

 

图2 REB-1315LPX 模块数据的读取方法

  代码较多, 具体实现函数不在此处详述。

  (3)GPRS 模块的通讯程序

  GPRS 模块与处理器的通信是通过串口完成的, 处理器向GPRS 模块发送AT 指令以及数据。GPRS 模块连接网络后利用TCP/U DP 协议与调度中心服务器进行无线通信。

  3. 2 服务器软件通讯模块设计

  服务器程序运用VC+ + 6. 0 为开发平台, 服务器程序通讯模块首先定义多组Socket 与其地址结构sockaddr_in, 然后根据需要调用通讯函数完成节点间通讯。

  WSA DAT A wsaDat a; / / 根据版本通知操作系统, 启用相应版本的DLL 库

  / / 地址结构赋值:

  serv. sin_addr. s_addr= h tonl( INADDR_ANY) ;

  serv. sin_family= AF_INET ;

  serv. sin_por t= htons( 8030) ; / / 取端口号为8030

  addlen= sizeof( serv) ;

  sock_T = socket( AF_INET , SOCK_ST REAM, 0) ;

  sock_U= socket(A F_IN ET, SOCK_DGRAM, 0) ;

  bind ( sock _ U , ( struct sockaddr * ) & srv, s izeof(srv) ) ; / / 绑定地址与端口

  listen( sock_T , 500) ; / / 监听T CP 端口

  accept( dlg-> sock_T, ( sockaddr* ) & ( dlg??> serv) ,& ( dlg-> addlen) ) ; / / 接受连接请求

  AfxBeginT hread(& t hread, 0) ; / / 启动监听及数据传输线程

  线程中调用recv( ) 函数和send( ) 函数, 完成数据收发任务。

  4  实 验

  设置车载机目标服务器IP 地址和端口号后加电, 车载机通过GPRS 网络向远程服务器发送连接请求, 服务器收到连接请求后, 建立连接并根据SIM 卡号和车载机编号识别车辆, 按照一定格式打包车辆GPS 并信息定时回传, 服务器将数据存入数据库完成数据采集, 实验结果如下:

  图3 为车载终端通过TCP 协议A SCII 码通道回传的一条定位信息, 此通道数据传输稳定且不需要对数据解码, 耗费流量较大。

 

图3  TCP 协议ASCI I 通道回传信息

  图4 为车载终端通过TCP 协议二进制编码通道回传的一条定位信息, 二进制解码后为以" $ "开头的定位信息。此通道传输稳定, 需要对二进制数据解码, 流量相对较小。

 

图4  TCP 协议ASCI I 通道回传信息

  图5 为车载终端通过UDP 协议二进制编码通道回传的一条定位信息。此通道为不可靠传输, 二进制数据需要解码, 相对于T CP 协议回传包简化了包头, 节省流量, 在系统中为主用数据传输通道, 用于定时( 此处设置30S) 回传数据。

 

图5  TCP 协议ASCII 通

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

网站地图

Top