欢迎来到论文网! 识人者智,自知者明,通过生日认识自己! 生日公历:
网站地图 | Tags标签 | RSS
论文网 论文网8200余万篇毕业论文、各种论文格式和论文范文以及9千多种期刊杂志的论文征稿及论文投稿信息,是论文写作、论文投稿和论文发表的论文参考网站,也是科研人员论文检测和发表论文的理想平台。lunwenf@yeah.net。
您当前的位置:首页 > 科技论文 > 计算机论文

基于RTLINUX的实时以太网研究_通信延时

时间:2011-07-21  作者:秩名

论文导读::本文首先阐述了以太网的应用和实时化的改进技术,然后在研究造成网络通信延迟的三个因素基础上提出了基于RTLINUX的实时以太网的实现技术。文章描述了基于RTLINUX的实时以太网的关键技术实现:多队列数据交换机制、基于地址映射表的缓冲区管理机制、数据帧小型化机制。
论文关键词:RTLINUX,LINUX,实时以太网,通信延时

 

1.引言

以太网(Ethernet) 是当前应用最普遍的局域网技术,它很大程度上取代了其他局域网标准,如令牌环、FDDI和ARCNET。Ethernet遵循IEEE802.3标准,采用带冲突检测的载波侦听多路访问(CSMA/CD)协议解决介质访问冲突.由于CSMA/CD协议采用随机争用介质方式访问网络,使得网络节点发送与接收信息的时间变得不可预测,因此,现有Ethernet网络不具有我们所谓的实时性。为了使传统的Ethernet具有较好的实时性,很多研究人员提出了改进Ethernet网络的途径:

1)交换式以太网[1]:这种方法用交换机取代集线器(hub),以把整个以太网分割成多个独立的冲突域通信延时,这样在降低冲突的同时保证了传输时间的可预测性。

2)传输整形[2]:这种方法在传输层(如TCP/UDP)与Ethernet之间增加了一个流量整形器,以使网络的平均负载始终保持在某个较低的规定值,利用低负载、低冲突概率的原理来保证消息传输时间的可预测性;

3)增加实时通信控制层[3]:这种Ethernet实时化改进采用最多的方法。该方法主要在MAC层上增加一个实时通信控制层控制消息的发送与接收。如令牌传递、时分多路访问、虚拟时间协议等都使用这种方法。

本文提出的基于RTLINUX的实时以太网技术是一种在RTLINUX实时操作系统平台上,通过多队列数据交换、基于地址映射表的缓冲区管理、数据帧小型化等多种机制实现的一种以太网实时化改进技术。

2.系统设计

以太网络是一个软件和硬件的结合体,数据就在网络的软件和硬件中传送。以太网络基于CSMA/CD协议的内在特性决定了以太网络很难真正意义上消除网络数据的发送冲突。使用在MAC层上增加实时通信控制层在原理上可以消除网络冲突,但往往也带来一些网诸如络系统时钟同步的困境。

要实现网络的实时性,说到底就是要尽量的减少数据在网络中的传输延迟时间。在网络中从发送数据到接收到数据之间的全部通信延时,称为端到端的通信延时发表论文。主要包括下面几个因素:①排队延时:从信息进入排队队列,到此信息获取通信网络所需的时间。②发送延时:从信息的第一个字节开始发送到信息最后一个字节发送结束所需的时间。③传输延时:信息在现场设备间传输所需的时间。

网络的传输延时在很大程度上取决于网络的传输带宽,传输带宽主要取决于网络的传输介质等硬件条件。本文主要是考虑在网络的传输延时一定的情况下,通过减少排队延时和发送延时来改善网络的实时性能。网络中的终端在RTLINUX实时操作系统下运行,以增强对实时任务的响应速度。使用多队列数据交换机制来改善数据发送时的排队延时,使用基于地址映射表的缓冲区管理机制和数据帧小型化机制来改善数据的发送延时。同时,使用交换机取代集线器(hub),以把整个以太网分割成多个独立的冲突域,来降低网络冲突。

3.系统实现

3.1 构建RTLINUX实时操作系统

LINUXLINUX是一个源代码开放的、免费,支持多任务、多种硬件平台的网络操作系统。但是,LINUX与WINDOWS一样不是实时的操作系统,因此通信延时,LINUX也很难在实时控制领域得到应用。

RTLINUX说到底其实就是LINUX的一个实时补丁,它对LINUX内核进行改造,在LINUX内核与硬件之间增加了一个虚拟层(常称作虚拟机),构筑了一个小的、时间上可预测的、与LINUX内核分开的实时内核(即RTLINUX内核)。 打上实时补丁的LINUX(即RTLINUX操作系统)将所有中断信号都首先交给RTLINUX内核进行处理, RTLINUX将所有的中断分成LINUX中断和实时中断两类,如果收到的中断信号是普通LINUX中断,那就设置一个标志位,转由LINUX内核来响应该中断;如果是实时中断,则立即响应中断。这样系统将LINUX系统上的任务以及LINUX内核本身作为一个优先级最低的任务,而实时任务作为优先级最高的任务。RTLINUX最先知道硬件的信息,而实时任务直接和RTLINUX内核进行交互,这样大大缩短了系统和实时任务访问硬件的时间,从而得到最快的响应速度。

3.2 多队列数据交换机制

标准Linux对网络数据包的处理本质上是基于中断驱动的,因而应用层的处理总是被位于内核空间、拥有更高优先级的数据包处理(即中断处理)所抢断。在高负荷网络中,CPU的大部分资源会被频繁到达的网卡中断占用,而优先级较低的数据包应用进程任务无法得到执行。一段时间就会导致网络子系统的上层缓冲区溢出,收到的数据包丢弃。长此以往,将出现所谓的“接收活锁”。CPU花去所有的资源处理接收中断,而数据包被接受后由于得不到进一步处理而堆积通信延时,当接收队列溢出,数据包便白白被丢弃。另外,在标准的Linux系统中所有数据包共用一个backlog排队而使得优先级高的数据得不到及时处理,所以优先级高的数据有时分发延迟会增大,网络性能也会受到影响[4]

为了解决“接收活锁”和单一backlog队列引起的问题,可以在RTLinux系统中实现一个网络子系统,该子系统主要具有如下两方面的功能:

1)网络子系统启动专门的内核线程对不同协议的数据包进行处理,然后应用进程任务在相应的队列中取包进一步操作。由于线程的运行是参加调度的,它不像标准Linux的基于中断驱动的协议处理方法那样完全抢占CPU资源,自然也不会出现前面提到的“接收活锁”现象,从而实现对网络设备接收数据包的控制。

2)在网络子系统中依据实时性要求程度的不同建立多条接收队列backlog,每个队列分配不同大小的缓冲区和优先级,实时性要求高的队列具有较大的缓冲区和较高的调度优先级,而实时性要求低的队列具有较小的缓冲区和较低的调度优先级。这样就确保在高负荷网络中,实时的网络数据包也能及时的接受并得到处理。

3.3 基于地址映射表的缓冲区管理机制

用户缓冲区用来缓存网络报文,是连接网络层界面和用户层应用的桥梁发表论文。传统的缓冲区动态管理算法出于对通用性的考虑,在每次报文传输时都进行malloc/free操作,这无疑会影响系统性能[5]。基于地址映射表的缓冲区管理机制的主要思想就是在网络设备启用的时候就在用户空间预先分配一大块静态共享内存池,并将该内存池划分成若干个大小相同(比如说2K)的存储单元通信延时,通过资源映射图统一管理存储单元,这样就有效地避免了malloc/free操作。

问题是网络接口的DMA引擎与用户缓冲区进行数据交换时只能对锁定的物理地址操作,即不能操作使用虚拟内存地址的用户缓冲区。这里我们通过建立缓冲区地址映射表(ATB)的方法来解决:通过查找Linux内核中的三级页表,逻辑设备获得用户缓冲区中每个虚拟页面的物理地址,并将该页面锁定于内存.转换后的物理地址缓存在一个静态地址快表ATB(address translation buffer)中,所有用于报文传输的用户缓冲区物理地址被ATB完全覆盖,这样网络接口的DMA引擎就可以通过静态地址快表ATB来间接的操作用户缓冲区了。

 

 
  LINUX

图2基于地址映射表的缓冲区管理机制示意图

当新的网络数据报文到达时,网络设备驱动进程从可分配接收缓冲区首部获取一个空闲存储单元,并根据缓冲区地址映射表(ATB)获得该刚获得的储单元的物理地址AP,将接收到的网络以太帧通过DMA通道直接送到物理地址为AP的主机内存,最后将刚刚被填充数据的存储单元加入不同优先级的接收队列中。应用程序进程需要处理报文时,首先从较高优先级的接收队列首部获取已填充数据的存储单元,然后通过ATB根据该存储单元的物理地址AP.获得其虚拟地址AV,应用程序进程使用该虚拟地址AV处理完报文后又重新将刚刚处理过的存储单元加入到可分配接收缓冲区队列尾部。

3.4 数据帧小型化机制

网络的排队延时和发送延时其实是一对矛盾体,加大网络数据帧的容量可以明显的减少发送数据队列的长度,从而缩短数据发送的排队延时,但是大容量的数据帧又会增大数据的发送延时。数据仿真表明在10M带宽的以太网络中,数据帧长一定的情况下,数据帧越长通信延时,发送延时就越大,当数据帧长度超过128B时,传送延时在总延时里占主导地位[6]。根据IEEE802.3标准,10M带宽的以太网络帧的最小容量为64B,所以将以太网络帧的容量缩小在64~128B是比较适合在实时以太网络中传输的。在其他带宽的以太网络中可以根据实际的带宽来缩小数据帧的容量。

4.结论

具有实时性的工业以太网是当前学术界及工业界研究的热点,而以太网在工业应用中的实时性研究更是近年来发展最迅速、最受人们关注的研究领域之一。RTLINUX是一个免费、开放的硬实时操作系统,所以在RTLINUX系统之上架设实时以太网络是一个比较经济、可靠、实用的方法。在实际的工业应用中,场控制指令往往是比较短小精悍的,缩小数据帧容量以减少在网络中的发送延迟是一种提高网络实时性能的有效途径。但是,数据帧小型化往往会增加调度数据队列的长度,也会产生本文未考虑的网络吞吐量减少的问题。


参考文献:
1、KrommenackerN, Divoux T. Rondeau E. Using genetic algorithms to design switched Ethernetindustrial networks[J]. Industrial Electronics, 2002,1(1):152?157.
2、KweonSK, Shin KG. Achieving real-time communication over Ethernet with adaptivetraffic smoothing[J]. In: Proc. of the IEEE Real-Time Technology andApplications Symp. Washington: IEEE Computer Society Press, 2000. 90?100.
3、杨仕平,桑楠,熊光泽.基于Ethernet技术的安全关键实时网络[J],软件学报, 2005,16(01):121-134.
4、陈思,杜旭.一种基于RTLinux的实时网络子系统[J],计算机应用,2006,26(01):46-49.
5、田志宏等.RTLinux下基于半轮询驱动的用户级报文传输机制[J],软 件 学 报,2004,15(6):834-841.
6、陈曦,刘俊峰,付少波.工业以太网传输延时特性分析[J],计算机与信息技术,2007,4:62-63.
 

 

查看相关论文专题
加入收藏  打印本文
上一篇论文:基于Modbus的远程监控_LabView
下一篇论文:基于VBA的高级工考试自动评分研究_计算机论文
科技论文分类
科技小论文 数学建模论文
数学论文 节能减排论文
数学小论文 低碳生活论文
物理论文 建筑工程论文
网站设计论文 农业论文
图书情报 环境保护论文
计算机论文 化学论文
机电一体化论文 生物论文
网络安全论文 机械论文
水利论文 地质论文
交通论文
相关计算机论文
最新计算机论文
读者推荐的计算机论文