EDN China > 技术文章 > 嵌入式系统 > 操作系统 > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

基于GPRS的火灾视频监测终端网络接口设计

来源:控制工程中文网?? 2007年04月16日 ?? 收藏0

  引言

  大的林区一般面积广阔,且大多数没有有线通讯设施,这是以往影响无人值守的火情了望台应用的技术瓶颈。但是,空间及遥感技术、计算机技术、通信与网络技术的快速发展为森林火灾监测的研究提供了不断完善的方法和手段。本文研究的森林火灾视频监控终端采用μC/OS-II作为嵌入式操作系统,为了支持 GPRS网络通信,系统需要PPP或SLIP协议的支持。由于μC/OS-II不包括TCP/IP协议栈,所以要编写设备的网络接口。本文选用免费的 TCP/IP协议栈LwIP v0.6.4作为设计核心,在μC/OS-II上移植了LwIP以实现TCP/IP协议栈,从而获得了一个功能完善的嵌入式IP终端。

  视频监测终端网络接口原理

  图像监控系统工作流程

  工作时,图像监控系统首先将接收服务器连入Internet,取得服务器的公网IP地址,确定服务的端口号,并将IP地址及端口信息以短消息方式发送给远程站点的视频监控仪模块。视频监控仪模块通过GPRS-Modem模块连入Internet后即可与接收服务器连线。视频监控仪在正常工作时(无火警) 仅定时上传含有本地特征编码的短消息,接收服务器软

  件会根据收到的短消息来分析各监控仪的状态并进行显示。当视频监控仪检测到火警时,它会将火灾信息编码,以短消息形式传递到服务器,同时启动视频图像压缩及上传服务,供接收服务器分析判断。

  
GPRS传输模块工作原理

图1 GPRS传输模块工作原理

  GPRS传输模块工作原理

  视频监控终端的GPRS传输模块原理如图1所示,西门子公司的 MC35 GPRS模块把从TCP/IP模块接收的TCP/IP包和从基站接收的GPRS分组数据进行相应的协议处理后再转发。MC35模块主要由射频天线、内部 Flash、SRAM、GSM基带处理器、匹配电源和一个40脚的ZIF插座组成。GSM基带处理器是核心部件,其作用相当于一个协议处理器,用来处理外部系统通过串口发送过来的AT指令。射频天线部分主要实现信号的调制与解调,以及外部射频信号与内部基带处理器之间的信号转换。匹配电源为处理器及射频部分提供所需的电源。MC35 GPRS模块支持GSM900和GSMl800双频网络,接收速率可达86.20kbps,发送速率可达21.5kbps。MC35模块提供了9针的标准 RS232接口,通过MAX3232电平转换芯片和LPC2104的UART0口相连,进行全双工通信。MC35工作电压为12V,上电后由DTR上升沿跳变触发启动。本系统指定LPC2104的P0.13信号线经MAX3232电平转换后作为MC35的DTR。系统上电复位后,首先进行工作频率等参数设置,然后进行拨号和PPP协商,得到系统本地IP,完成GPRS的Internet接入。ARM CPU将用户数据先打成IP包,再经串口发送给MC35,MC35把其封装成GPRS分组数据包传到GPRS网络。

  网络接口协议

  本系统的视频监控仪网络通信分层结构如图2所示,GPRS服务节点和网关节点等GPRS内部节点都简化抽象为GPRS网络,GPRS内部协议及Internet网关协议等都简化抽象为GPRS网关协议。

  视频监控终端网络通信各层的作用如下。

  物理层:ARM CPU利用AT指令对GPRS Modem进行拨号。反馈应答后,一条物理通道即GPRS信道就在本系统中的GPRS Modem和Internet之间建立起来。

  数据链路层:PPP协议将原始的GPRS物理层连接改造成无差错的数据链路,系统远程登录Internet,并得到GPRS网关分配的A类IP地址。

  网络层:采用IP协议作为网络层协议。IP协议将接入Internet、具有不同IP地址的终端都联系起来。经过IP路由选择,可以令本系统与连在Internet上的任一IP终端进行数据交互。

  传输层:选择TCP作为传输层协议,为数据传输提供面向连接的可靠服务。

  
视频监控仪网络通信分层结构

图2 视频监控仪网络通信分层结构

  视频监测终端网络接口软件设计

  LwIP在μC/OS-II上的实现

  LwIP协议栈在设计时就考虑到了将来的移植问题,因此把所有与硬件、操作系统、编译器相关的部份都独立出来,放在/src/arch目录下。 LwIP在μC/OS-II上的实现就是要修改该目录下的文件,其它的文件一般不应该修改,主要的工作包括以下几部分。

  与CPU或编译器相关的include文件

  在/src/arch/include/arch目录下的cc.h、cpu.h、perf.h中有一些与CPU或编译器相关的定义,如数据长度、字的高低位顺序等,这应该与用户实现μC/OS-II时定义的数据长度等参数一致。一般情况下C语言的结构体struct是4字节对齐的,但是在处理数据包的时候,LwIP是通过结构体中不同数据的长度来读取相应数据的,所以,一定要在定义struct的时候使用_packed关键字,让编译器放弃struct 的字节对齐。


上一页12下一页
?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

GPRS? 视频? 终端? 接口?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈