基于IEEE802.11的矿井Mesh网络路由节点设计

2012-11-25 03:08丁继存高明玉
中国煤炭 2012年10期
关键词:内核数据包路由

丁继存 杨 澎 高明玉

(1.中国矿业大学信息与电气工程学院,江苏省徐州市,221008;2.兖州煤业股份有限公司济宁三号煤矿,山东省济宁市,272169;3.兖州煤业股份有限公司兴隆庄煤矿,山东省济宁市,272169)

基于IEEE802.11的矿井Mesh网络路由节点设计

丁继存1,2杨 澎2高明玉3

(1.中国矿业大学信息与电气工程学院,江苏省徐州市,221008;2.兖州煤业股份有限公司济宁三号煤矿,山东省济宁市,272169;3.兖州煤业股份有限公司兴隆庄煤矿,山东省济宁市,272169)

介绍了一种基于ARM的视频监控系统无线路由器装置,该装置在S3C2440嵌入式开发平台上通过无线网络模块实现视频客户端的接入,能够对矿井Mesh网络骨干链路的数据进行分组。分析了该装置的总体结构、硬件结构,并重点阐述了监控无线路由器装置的内核空间、用户空间等几个核心模块的软件设计与实现。

视频监控 无线路由器 ARM

目前在井下视频监控领域普遍通过铺设大量光纤传输线路来实现对井下的实时监控,不仅增加了施工的复杂度,还造成了大量的资源浪费,无法满足煤矿信息化和智能化发展的需求,而Mesh网络(无线网格网络)具有组建方便、构建成本低、网络容量大、覆盖能力强和传输距离远等优势,因此Mesh网络在井下视频监控领域具有很好的发展潜力。本文在井下巷道的特殊环境中,针对无线Mesh骨干链路网络传输性能受跳数影响的问题,对井下Mesh网络多接口多信道路由节点进行了研究。

1 井下Mesh路由节点的总体结构

构成Mesh网络的主体骨干链路的Mesh网络路由节点(MR)不仅要实现本地覆盖(即为客户终端提供接入的功能),而且还要为相邻的无线Mesh路由节点提供数据分组的接收和发送。对于传统的无线路由节点而言,它们都是串行传输的。为了提高Mesh网络骨干链路的网络吞吐量,设计的Mesh网络路由节点结构如图1所示。

从图1中可知,Mesh网络路由节点的构成分别为1个接入模块、2个数据回程模块,并且这些模块使用的都是无线的方式。接入模块用于本地覆盖并且专门用来接入视频终端,由于目前无线接入终端的无线网卡大多使用IEEE802.11b/g协议,所以用来接入视频终端的无线模块也采用相同的协议。回程模块使用IEEE802.11a的协议模式作为骨干链路回传,分别用于接收和发送数据分组。因为该协议的信道中可以提供相互正交的信道有12个,这样可以更合理地为各个路由节点分配接口信道,提高骨干链路的网络吞吐量。

图1 多模Mesh网络路由节点结构

2 Mesh网络路由节点硬件设计

本文基于北京凌阳爱普科技有限公司设计的嵌入式开发板,搭建了Mesh网络路由节点的硬件平台。Mesh网络路由节点的总体电路设计如图2所示。

图2 Mesh网络路由节点的总体电路设计

微处理器S3C2440采用ARM公司的16/32位ARM920TRISC处理器核,具有PLL时钟发生器、16kB指令Cache、16kB数据Cache和存储管理单元MMU,主频最高可达533MHz。平台配置了32 MB Nand Flash和64MB SDRAM、主从USB口、RTC电路、JTAG通用接口、音频模块、触摸屏、支持MPEG4的编解码、32位数据总线等。

因为S3C2440微处理芯片自身不带PCI总线接口,采用的无线网卡vt6656是具有PCI接口的,因此需要在开发板上扩展该接口功能。这里采用外围的PCI总线控制芯片PCI9054方式实现系统总线的扩展,从而可以通过PCI总线实现无线网络接口来满足用户远距离数据传输的要求。S3C2440的引脚与PCI9054的本地总线引脚相连接,为该芯片提供数据和地址的存储空间以及对各种信号的控制功能。

3 Mesh网络路由节点软件设计

本文在AODV路由协议的基础上,在现有的、成熟的应用框架下对其进行改进,使之成为基于Linux操作系统的Mesh_aodv的路由算法。将Mesh_aodv路由协议设计成两个块:Mesh_aodv内核空间模块主要是查找路由表、处理错误信息以及提供相应的接口;Mesh_aodv用户空间模块主要是数据帧的生成、收发、处理和更新路由表,Mesh_aodv路由协议设计实现框图如图3所示。

图3 Mesh_aodv路由协议设计实现框图

3.1 Mesh_aodv内核空间模块设计

对于Mesh网络,由于网络拓扑的易变性,需要对每条路由设定一定的生存时间,即如果超过该时间而路径没得到有效的更新,那么该条路径会被删除,从而保证其可用性。因此在内核设计中,由内核定时器列表和生存路由定时器链表构成路由的过期事件。其中生存路由定时器链表的内容包括路由生存的标志、过期时间、目的地址和下一跳转地址等。当触发过期路由事件时,会在生存路由定时器链表和内核定时器列表中分别插入一个表项和定时事件,其中内核定时器列表的添加由函数timer_add(struct timer*t)完成,参数“*t”是个定时器结构体“struct timer”的对象。

内核空间需要对流过的数据包进行过滤判断,确保可以获得该协议正常运行时需要的信息,即上层协议发送数据包时首先会查找路由表是否有该路由选项,如果有相匹配的路由时,会根据IP数据包中的目的地址判断是否为本地节点,当发现不是时,该数据包就会被转发;如果没有相匹配的路由时,会在用户守护进程中发送路由请求(RREQ)帧,并且将用户数据缓存到用户空间,等到收到相应的路由应答(RREP)帧再进行发送,或者在超时后就销毁该队列释放内存空间。以上这些都是由加载Kaodv_hook函数来完成的。

为了便于对照原协议,系统Kaodv_hook函数的设计采用将3个挂载点(PRE_ROUTING、POST_ROUTING和LOCAL_OUT)的处理函数放在一块,以不同的标志位来进行区分。PRE_ROUTING的hook(钩子)点用来处理其它节点输入的数据分组,先对流入数据包进行路由更新,然后判断IP数据包的目的地址是否为本地节点,如果是就提交上层处理,如果不是就转发该数据包;POST_ROUTING的hook点用来处理输出到其它节点的数据分组,只需对目的地址更新其路由生存时间;LOCAL_OUT的hook点用来处理本地节点发出的数据分组。当内存的路由缓冲中不存在数据包的目的地址的路由路径时,将会在用户空间将该数据包进行缓存,触发用户守护进程中路由请求(RREQ)帧的生成和发送。

3.2 Mesh_aodv用户空间模块设计

3.2.1 用户守护进程设计

根据实际需要,路由用户进程应设计为可以稳定地在后台运行。由于Linux操作系统的守护进程是Linux中的后台服务进程,通常独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件,所以将Mesh_aodv路由用户程序设计为一个守护(deamon)进程。

图4 用户守护进程流程

Mesh_aodv路由协议的用户守护进程主要是初始化系统的硬件和软件,收发Mesh_aodv协议中各种数据帧的收发以及设定其参数等。用户守护进程主要由以下几个主要模块构成:Mesh_aodv协议的HELLO、RREQ、RREP、RERR帧的生成、收发和处理模块;Mesh_aodv socket接口,负责Mesh_aodv协议的所有控制帧的传输接口;Mesh_aodv内核路由表netlink接口,负责对内核路由表进行处理;初始化Mesh_aodv路由协议运行参数,如路由生存时间、生存时间(TTL)初始值和最大值等等;定时器队列,通过向其添加或删除定时器来表明Mesh_aodv路由协议中事件,即当某定时器发生中断时,该系统便会触发该事件的函数对其处理。用户守护进程流程如图4所示。

3.2.2 后台进程Aodvd

后台进程Aodvd主要是用于路由查找以及建立和维护与其他节点之间的路由信息。当本地节点需要转发数据分组时,开始会在内核路由缓冲表中查找,该数据分组会被传送出去;如果不存在的话,就会使用内核挂载点的挂载函数处理该数据包,也就是将该包经raw socket接口发送到用户空间并进行缓存,并且Aodvd调用路由算法程序寻求路由,当该路由建立的时候,会将该数据分组经raw socket接口再次传送到Mesh_aodv的内核空间;如果路由查找完毕仍没发现该路径,就会将用户空间的缓存数据包丢弃(drop)。

4 结语

本文针对当前煤矿井下视频传输存在的移动性差、覆盖范围小、传输质量不高等问题,设计了一种基于ARM的视频监控系统无线路由器装置。本系统能够很好的适应无线网络,并在PC机上对视频监控程序进行了测试,视频清晰无失真。该装置的设计解决了综采工作面远程可视化开采的一个实际难题,对下一步综采工作面的信息化推进具有一定的实际意义。

[1] 杨水清,张剑,施云飞等.Linux系统开发技术详解[M].北京:电子工业出版社,2008

[2] 王怀新,杨合法等.矿井安全生产无线网络信息系统在郑煤集团公司的应用[J].中国煤炭,2004(2)

[3] 李建忠.基于ARM的家庭自动化系统的研究[D].南京理工大学,2008

[4] 韦东山.嵌入式Linux应用开发完全手册[M].北京:人民邮电出版社,2010

Design of mine wireless Mesh network routing node based on IEEE802.11

Ding Jicun1,2,Yang Peng2,Gao Mingyu1
(1.School of Information and Electrical Engineering,CUMT,Xuzhou,Jiangsu 221008,China;2.Jining No.3Mine,Yanzhou Coal Mining Co.,Ltd.,Jining,Shandong 272169,China;3.Xinglongzhuang Mine,Yanzhou Coal Mining Co.,Ltd.,Jining,Shandong 272169,China)

A kind of wireless router device of video monitoring system based on the ARM is introduced.Based on the embedded S3C2440development platform,through the wireless network module,the device realizes the access of video clients and the data packet transmission in backbone links of mine Mesh network.This paper analyzes the overall structure and hardware structure of the wireless router,and elaborates the software design and implementation of several core modules such as the kernel space and user space of the wireless router device.

video monitoring,wireless router,ARM

TD655.3

A

丁继存(1982-),男,山东兖州人,工程师,在读硕士,研究方向为控制工程。

(责任编辑 王雅琴)

猜你喜欢
内核数据包路由
多内核操作系统综述①
二维隐蔽时间信道构建的研究*
强化『高新』内核 打造农业『硅谷』
活化非遗文化 承启设计内核
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
铁路数据网路由汇聚引发的路由迭代问题研究
多点双向路由重发布潜在问题研究
一种基于虚拟分扇的簇间多跳路由算法
微软发布新Edge浏览器预览版下载换装Chrome内核
路由重分发时需要考虑的问题