这篇文章觉得不错,对于利用GPRS模块进行网络数据传输的理解有很大帮助,不知道3G模块原理是不是类似,只是速度上的问题而已,因为在本人的Andiroid手机上(3G启动)进行网络程序的开发时,用的是Socket的相关API与Internet的服务器通信,而与第3点的总结不一致,待证实!

总结: 1. CPU与GPRS的通信需要通过RS232,而非简单的TTL.

             2.  GRPS模块通信的桥梁是AT指令集,该指令集包含了短信,通话(声音靠GSM, GPRS在GSM之上),网络等功能。

             3.  利用AT指令集,GPRS建立了与internet服务器TCP连接后,在串口中传输的数据可以直接传到服务器上,CPU不不需要建立socket。待证实


嵌入式车载平台的GPRS网络实现
魏琨,黄涛
 
武汉理工大学信息工程学院,湖北武汉(430070)
E-mail:weikun_0324@126.com
摘    要:本文采用三星公司的smk2410芯片以及周立功公司的型号为ZWG-22A的GPRS DTU
作为硬件平台,以linux操作系统作为软件平台,实现了嵌入式车载平台的GPRS网络通信,
给出了硬件连接原理图以及相关的软件编程方法及代码。
关键词:GPRS DTU;SOCKET;  串口通信

1.  引  言
随着社会的发展及人们生活水平的不断提高,汽车已经逐渐走进了寻常百姓家。作为车
辆监控的重要手段的车载定位系统也越来越多的得到人们的重视。车载定位系统是基于
ARM硬件平台,集GPRS/GPS于一体,与互联网连通。GPRS保证永远在线,可以及时地将车辆
所处的位置、速度等信息上传至监控中心,以方便监控中心随时了解车辆的状态。另外用户
也可以通过互联网跟踪车辆、防盗反劫、手动/自动报警、查询车辆位置。该系统可以适用
于不同的监控场合,经济效益和社会效益明显,可广泛地应用于客运、银行、公安、物流行业。
2. GPRS 网络的结构及其特点
2.1 GPRS 网络的结构

图1中,数据采集设备可以是工业现场的各种数据采集设备,也可以是各种车载数据采
集设备。DTU通过RS-232串口将数据从用户设备中读入,然后经由DTU加入控制信息,做
透明数据协议处理后打包,使用AT命令(Modem专用控制命令)控制GPRS模块通过GPRS网
络将数据最终传送到数据中心,与数据中心进行数据交互;或者将GPRS网络中的数据读入
DTU,处理后通过用户侧串口给用户设备返回结果,并对用户端设备产生控制信号。
[1]  
(1)    数据采集设备:如摄像头、各类传感器等。对于本系统来说,指的是一个基于linux操
作系统的集数据采集节点控制一体的系统平台,采用的是三星公司的2410作为主芯片。
(2)    GPRS DTU:GPRS DTU  主要包括嵌入式MCU , GPRS  收发模块、与数据采集信号接
口电路、WatchDog  电路和电源模块等。本系统中采用的是周立功公司的型号为ZWG-22A
的GPRS DTU。
(3)  数据中心:数据中心包括联网设备、中心主机、RADIUS  服务器、数据库服务器等。数
据中心的功能主要包括网络的接入、心跳包的接收与回应、数据的接收与发送、数据处
理、数据库维护、用户身份认证及其他安全性管理。在本系统中,数据中心就是一个接
收车载信息的控制平台,同时通过GPRS网络对车载系统发出控制指令。

2.2 GPRS 网络的特点
1  可充分利用现有资源—中国移动全国范围的电信网络—GSM,方便、快速、低建设成本
地为用户数据终端提供远程接入网络的部署;  [2]  
2  传 输 速 率 高 ,GPRS  数 据 实 际 传 输 速 度 可 达 到  50Kbs  以 上 , 理 论 最 高 可 达 到
115Kbs--170Kbs,完全可以满足用户应用的需求;
3  接入时间短,GPRS 接入等待时间短,可快速建立连接;
4  提供实时在线功能  “alwaysonline”,用户将始终处于连线和在线状态,这将使访问服务
变得非常简单、快速;
5  按流量计费,GPRS  用户只有在发送或接收数据期间才占用资源,没有数据流量的传递
时,用户即使挂在网上也时不收费的。
GPRS 业务,具有接入迅速、永远在线、传输数率快,按流量计费等特点,在远程突发性数
据实时传输中有不可比拟的优势,特别适合频发小数据量的实时传输。
[3]  
3.  数据采集设备与 GPRS DTU 的连接
          在车载网络系统中,数据采集设备是一个集车身各项数据采集以及控制的控制CPU,
限于篇幅的关系不详述该系统的具体工作原理,只关注与GPRS DTU(GPRS数据传输单元)
互连的部分。本系统中使用的是SAMSUNG公司的2410芯片作为数据采集设备的CPU。
3.1  串口通信硬件连接
数据采集设备与GPRS DTU通过RS232电平变换芯片相连。这是由于GPRS DTU的接口
是采用DB9为接口的,DB9接口信号的电平表针是符合RS232电平标准的(±12V),  不能直接
连接TTL  电平,否则可能损坏数据采集设备器件.图2为数据采集设备与GPRS DTU互连的硬
件原理图。

3.2  数据采集设备串口通信软件实现
          GPRS DTU在设计上将串口设计成“透明转换”的方式,因此在完成硬件连接后,对于数
据采集设备而言需要将自己的串口设备的波特率和数据格式要和DTU  中的配置相匹配。需
要对该芯片的串口做相应的软件编程以适应GPRS DTU的串口传输速率。
          本系统中采用的软件平台为linux,在linux中串口设备是通过串口终端设备文件来访问
的,完成串口通信编程需要如下几个步骤:
[4]  
1  打开串口
打开串口与打开文件类似,同样使用open函数。
fd=open(“/dev/ttys0”,O_RDWR|O_NOCTTY);
2  设置串口通信参数
串口通信参数指的是波特率、数据位、奇偶校验位和停止位,主要涉及到termios结构体,
具体实现部分代码如下:
struct termios opt;                      /*定义指向termios结构类型的指针opt*/
tcgetattr(fd,&opt);                      /*获得串口指向termios结构的指针*/
cfsetispeed(&opt,B115200);        /*指定输入波特率,115200bps*/
cfsetospeed(&opt,B115200);        /*指定输出波特率,115200bps*/
opt.c_cflag&=-CSIZE;                    /*屏蔽其他标志位*/
opt.c_cflag|=CS8;                          /*将数据位修改为8bit*/
opt.c_cflag&=~PARENB;                  /*指定偶校验*/
opt.c_cflag&=~PARODD;
opt.c_cflag&=~CRTSCTS;              /*指定为硬件流控制位*/
tcsetattr(fd,TCANOW,&opt);        /*将修改后的termios数据设置到串口中*/
3  读写串口
读写串口是通过使用read函数和write函数实现的,在linux中,对设备的读写类似与对文
件的读写。
s_len=write(fd,sbuf,send_len);    /*sbuf是发送缓冲区,send_len是待发送的字节数,s_len为实际
发送字节数*/
r_len=read(fd,rbuf,read_len); /*rbuf是接收缓冲区,read_len是预接收的字节数,r_len为实际接
收字节数*/
4  关闭串口
在完成对设备文件的读写操作后,调用close函数关闭该文件描述符:close(fd);
4. GPRS DTU 的结构特点及工作原理
4.1 GPRS DTU  的结构及功能特点:
系统GPRS DTU结构如图3所示:

各硬件部分主要功能如下:
1 CPU 主要功能:
CPU 是整个 GPRS  DTU 的核心部件,它是一个嵌入式的高速处理器。内部封装了 PPP
拨号协议以及 TCP/IP 协议栈并且具有嵌入式操作系统。
2 GPRS Module,天线接口,SIM 卡接口
这3个部分组合起来实现了GPRS网络的通信功能,主要实现信号的调制和解调,以及外
部射频信号与内部基带处理器之间的信号转换,向数据中心注册动态IP  地址和SIM卡号。
3 Flash 和 sdram
这 2 个部分组合成存储系统,用于存储以及读取系统各类参数,以及协议参数各类参数,
GPRS  DTU 将数据中心的 IP 地址及端口号,串口的波特率等都保存在内部的永久存储器件
内(一般为 FLASH 或 EEPROM 等)。一旦上电,就自动按照设置好的参数进行工作。
4  电源处理和看门狗
这2个部分组合成一个电源控制系统
[5]
,用于控制电源的通断,以实现自动心跳保持永
久在线。GPRS通信网络的特点之一就是支持GPRS终端设备永久在线,这就要求DTU包含了
上电自动拨号,采用心跳包保持永久在线,支持断线自动重连,自动拨号等特点。WatchDog
电路主要用来防止终端系统死机,一旦系统死机,软件工作不正常,WatchDog  电路能使系统
自动重启。
5  串行接口
串行接口提供串口数据双向转换功能,GPRS  DTU  提供了串行通信接口,而且  GPRS
DTU 在设计上将串口设计成“透明转换”的方式,也就是说 GPRS DTU 可以将串口上的原始
数据转换成 TCP/IP 数据包进行传送,而不需要改变原有的数据通信内容。
4.2 GPRS DTU 的工作原理
        GPRS DTU 工作过程描述:
1)  GPRS DTU 上电后,首先读出内部 FLASH 中保存的工作参数(包括 GPRS 拨号参数,
串口波特率,数据中心 IP 地址等,事先已经配置好)。
2)  GPRS DTU  登陆 GSM 网络,然后进行 GPRS PPP 拨号。拨号成功后,GPRS DTU 将获
得一个由移动随机分配的内部 IP 地址。GPRS DTU  这时是一个移动内部局域网的设备,通
过移动网关来实现与外部 Internet 公网的通信。
3)    数据中心的公网 IP 地址或域名作为参数存储到 GPRS DTU 内,以便  GPRS DTU 一旦
上电拨号成功,就可以主动连接到数据中心。GPRS DTU 向数据中心发起 TCP 或 UDP 通信
请求。得到中心的响应后,GPRS DTU 即认为与中心握手成功,这时 TCP/UDP 通信连接已
经建立,就可以进行数据双向通信了。
4)  一旦接收到用户的串口数据,DTU 就立即把串口数据封装在一个 TCP/UDP 包里,发送
给数据中心,达到信息采集的功能。反之,当 DTU 收到数据中心发来的 TCP/UDP 包时,
从中取出数据内容,立即通过串口发送给用户设备,以达到控制用户设备的功能。
4.3 GPRS DTU 的配置方式
现在典型的 DTU 只需要在 PC 上做一些设置就可以正常工作。用户可以通过一个串口
调试工具直接使用配置命令操作  DTU。也可使用图形配置,使用专用配置工具(软件与产
品配套提供),通过配置工具完成所有命令的发出和解析,用户也可以编写自己的配置工具。
本系统采用的是 GPRS  DTU 自带的配置软件。通过该软件完成通信参数的设置,以及服务
中心的 IP 等。
5.  数据中心的软件设计
由图1可以看出数据中心是整个控制的中心部分,也是做为GPRS远程控制的服务器而存
在的,该部分硬件为PC以及其他网络硬件设备来实现。因为DTU  中内嵌GPRS  模块,  相当
于一个客户端,客户端的socket网络程序由GPRS DTU内嵌入MCU中,我们只要编写服务器端
网络服务程序。因此我们选用基于TCP  协议的socket  应用程序来实现服务中心的软件设计。
在工作的时候,  服务器端的Socket  应用程序指定一定的端口,  在创建好socket  对象之
后,  调用listen  方法来监听端口,随时响应客户端的连接要求。
[6]
服务器端套接口的工作过程
如下:服务器首先启动,通过调用socket()建立一个套接口;  然后调用bind()将该套接口和本地
网络地址联系在一起;  再调用listen()使套接口做好侦听的准备,  并规定它的请求队列的长度
为5,  等待客户请求到达该端口;  之后调用accept()来接收连接。数据终端在建立套接口后就
可以调用connect()和服务器建立连接。连接一旦建立,  数据终端和服务器之间就可以通信,
可以调用close()关闭套接口。基于TCP  的Socket  应用程序流程用如下图4可以表示
服务器端部分代码入下:
listen_fd=socket(PF_INET,SOCK_STREAM,0);                        /*创建套接字用于服务器的监听
*/
ret=bind(listen_fd,(struct sockaddr*)&srv_addr,sizeof(srv_addr));/*绑定端口*/
ret=listen(listen_fd,5);/*开始监听*/
com_fd=accept(listen_fd,(struct  sockaddr*)&clt_addr,&len);/*接受客户机请求建立与客户端的
连接*/
len=read(listen_fd,*readbuf,read_len);          /*接收客户端读数据到缓冲区*/
len=write(listen_fd,*writebuf,write_len);    /*向客户端发送控制命令*/
close(listen_fd);                                                    /*关闭连接*/

嵌入式车载平台的GPRS网络实现(转)相关推荐

  1. 浅谈mtk平台手机通过gprs网络连接pc

    GPRS:通用分组无线技术(General packet radios service),GSM网络覆盖的区域都可快速实现GPRS的覆盖. gprs的特点:高速率的数据传输.目前gprs速率达到40k ...

  2. 车载智能导航系统有没有采用嵌入式计算机,嵌入式车载导航系统的应用与研究...

    摘要: 随着汽车电子技术和互联网技术的发展,智能技术和互联技术正在重新定义汽车,人们在追求汽车舒适性,互联性以及娱乐性的同时,汽车智能化的发展对提高交通效率,增加舒适便捷,优化驾车体验与行驶安全等方面 ...

  3. 基于嵌入式linux 的车载定位系统设计,基于S3C2410嵌入式车载定位系统设计

    基于S3C2410嵌入式车载定位系统设计 基于S3C2410嵌入式车载定位系统设计 Design of embedded vehicle navigation system based on S3C2 ...

  4. 嵌入式 Linux平台 C程序 交叉编译技术

    嵌入式Linux平台C程序交叉编译技术 一.实验目的和任务 本实验要求复习和掌握Linux平台的C程序开发过程. 本实验要求掌握嵌入式开发板的操作方法. 本实验要求掌握Linux平台交叉编译方法和程序 ...

  5. GPRS网络几种数据中心的接入方式

    一.定IP或者公网动态IP+DNS解析服务.此种方案向先INTERNET运营商申请ADSL等宽带业务. 1.中心公网固定IP:监控点直接向中心发起连接.运行可靠稳定,推荐此种方案. 2.中心公网动态I ...

  6. 树莓派Raspberry Pi的嵌入式QT平台

    在树莓派上设计桌面应用一般情况会依赖于X11环境,如果是Windows平台,就目前而言,我们也可以选择Windows 10 IoT环境进行开发.UWP目前也支持在树莓派2上进行部署.至于常见的Linu ...

  7. 构建一个轻量级的嵌入式虚拟平台,开发工程用板stm32 picoc解释器,大量自定义函数,sarm拓展,lwip移植,nes模拟器移植,系统优化,等等技术的融合

    让嵌入式想java一样一处编写到处运行 第一次写博客,其实接触嵌入式已经快两年了,从开始学51单片机的时候,怀着满腔的热情.写出了点亮第一个流水灯代码的时候那个无比的激动,到后面自己做许多有趣的东西( ...

  8. 嵌入式 SIMCOM平台AT命令中文参考

    1.SIMCOM平台官方AT手册: http://pan.baidu.com/s/1kTqNQKZ 2.SIMCOM平台AT手册中文参考: SIMCOM AT指令 下面是在SIMCOM技术手册里找到的 ...

  9. 基于 树莓派4 + STM32H7 构建支持云端应用的嵌入式系统平台 【一】

    基于 树莓派4 + STM32H7 构建支持云端应用的嵌入式系统平台 [一] 一. 想法概述 1. 想法由来 2. 系统架构 3. 系统选型 4. 开发语言 5. 涉及到的框架 6. 开发工具 7. ...

最新文章

  1. 隔年增长的题_行测资料分析:一起聊聊隔年增长
  2. AI在农业领域的应用落地!
  3. 几种机器学习算法的偏差以及防范
  4. 人脸识别算法初次了解
  5. 很酷的word技巧---删除行前的空格
  6. mysq数据库再次理解
  7. 机器学习中倒三角符号_机器学习的三角误差
  8. 关于NSArray使用时用strong修饰还是copy修饰问题测试
  9. CSS教程--CSS 属性选择器
  10. MyBatis 拦截器 (实现分页功能)
  11. 建立 CLR Stored Procedure/Function 的小範例
  12. python相对路径-Python 相对路径和绝对路径--python实战(九)
  13. E-Prime1.1安装教程及软件下载
  14. 三点确定一个圆的计算方法
  15. 微分几何为何必然兴起?
  16. 英语3500词(19/20)education主题(2022.4.29)
  17. 金市良臣:3.9黄金白银今日操作建议黄金何时止跌完成筑底解读
  18. 笔记类app之Leanote同步机制 韩俊强的博客
  19. 宏基台式计算机编号,ACER如何查询型号名称序列号SNID?
  20. 物联计算机大赛,“翼灵杯”第七届物联网创意大赛成功举办

热门文章

  1. vue下载文件自定义路径_npm 自定义配置 文件下载路径
  2. 《极速蜗牛》渲染时间
  3. 离散程度度量:平均差、方差、标准差
  4. 信息安全继海、陆、空、天成为“第五维”战场!!
  5. error: unsupported reloc 43/42
  6. 4MANET-Routing
  7. hyperf 前置中间件 后置中间件
  8. 一阶段--java基础
  9. 创建简单的APAP/4程序
  10. 那个爆火的“梦中修炼”AI,你也能用Keras搭一个了