新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于Submerge Frame方法的CAN-以太网网关

基于Submerge Frame方法的CAN-以太网网关

——
作者:合肥工业大学 韩江洪 李阳铭 时间:2007-01-26来源:《单片机与嵌入式系统应用》收藏


以太网凭借其成本低、开放性强以及具有广泛的开发、应用软硬件支持等明显优势,已经成为目前应用最为广泛的局域网络技术之一,而can总线也以星火燎原之势成为应用最普遍的现场总线之一[1]。由于can总线的传输速率受到传输距离的限制,在应用中往往以can总线作为现场控制局部网络,连接现场监控设备和高级智能设备,而将以太网作为企业信息传输主干网,连接各个现场控制局部网络,传统的can-以太网网关往往无法适应较大规模和重网络负荷环境,本文对在不改变操作系统、网络协议且不增加硬件成本的基础上实现高效的can总线的以太网接入问题的研究具有一定参考价值。

本文引用地址:http://www.eepw.com.cn/article/21194.htm

1 嵌入式can-以太网网关

网关是一种网络互联设备,一般分为协议网关,安全网关和应用网关,对于嵌入式can-以太网网关,由于can总线连接的嵌入式节点和智能仪表等与pc机和服务器相比功能较弱,嵌入式节点不直接支持tcp/ic等网络协议,而由网关进行网络协议的转换,所以嵌入式can-以太网网关主要作为协议网关。

1.1 嵌入式can-以太网网关性能要求

对can网关的具体性能要求是与应用类型相关的,不同应用的侧重点及其指标也不一样,一般来说,对can网关都有以下要求:

1)实时性。网关的响应要快,不能影响系统的实时性。

2)可靠性。网关须具有高可靠性,能满足工控系统要求,这包括两方面内容:一方面,网关要能够稳定运行;另一方面,在自身出现故障时不影响所在的网络。

3)开放性。由于can协议本身并没有对应用层作出规定,在应用中存在各种互不兼容的应用层协议,因此网关需要解决用层协议的兼容性问题。

4)通用性。网关要能直接应用于can总线的以太网接入,而无须进行复杂的二次开发。

5)高效性。网关要高效实现网络的无缝互联,而不能构成系统的瓶颈。

1.2 can-以太网网关结构

以太网作为企业信息传输主干网接入internet,can总线作为现场控制网络实现服务器与嵌入式控制器之间的信息传输,网关实现二者之间的无缝转换,图1为一种can-以太网网关的结构框图。

本方案以philips公司的基于arm7tdmi内核的芯片lpc2294为cpu构建网关,lpc2249支持实时仿真和跟踪,带有256kb高速flash,采用lqfp144封装,功耗极低,并带有32位定时器,8路10位adc,pwm通道,9个外部中断以及112个gpio口(不使用外部时);特别是它带有4路独立的can控制器,使得它非常适合于构建can网关,由于lpc2294支持内部总线,因此cpu与以太网控制芯片rtl8019之间的硬件连接以及驱动程序的编写都比较简单,但相对于使用带有内置以太网控制器的arm芯片的网关方案,其抗干扰能力相对较弱,在硬件布线时须充分考虑抗电磁干扰问题。

2 以太网帧与can帧分析

在网关效率的研究中,对以太网和can总线,特别是对其帧结构的深入理解是必需的。

2.1 以太网网络

以太网是一个局部区域多计算机通信系统,是符合ieee802.3、iso/iec8802-3或ieee802.12iso/iec8802-12标准的,采用冲突检测的载波监听多点接入(csma/cd)机制的计算机局域网[2]。

以太网帧是以太网网络通信信号的基本单元,是对其进行网络性能分析的基础。以太网发展时间较长,衍生出的相应规范较多,如10mbps-10baset ethernet(802.3)、100mbps-fast ethernet(802.3u)、1000mbps-gigabit ethernet(802.3z))和10 gigabit ethernet(ieee 802.3ae)等,一般将以太网帧分为数据帧和管理帧。其中数据帧又分为以太网基本帧和vlan采用的扩展帧等。以太网基本帧和vlan采用的一种扩展帧结构如图2所示。

图2中:

◇帧前导。0、1交错的56位图形。

◇帧起始符(sof)。占8位,表示一帧的开始。

◇目的地址与源地址。各占8字节,表示目的和源的mac地址。

◇帧长度/帧类型(l/t)。2字节,mac帧内不包括任何填充的数据字段长度或类型。

◇数据。占用的字节数a由数据量决定,须满足a≤1500字节。

◇填充。占用字节数b根据需要而定,须满足a+b≥46字节。

◇帧校验区(fcs)。占4字节,用于帧的差错校验。

需要注意的是,对于基本帧,mac客户数据区数据最低不能少于46节,最高不能多于1500字节,网络mac帧的尺寸不能小于64字节,最大不能超过1518字节。这里不包括帧前导和帧起始符两个区域,共计18字节。

2.2 can总线

can是一种采用多主工作方式、非破坏仲裁技术和接收滤波工作方法的数据通信协议,按照iso有关标准,can的拓扑结构为总线式,因此也称为can总线[3]。

can协议中每帧的数据量都不超过8字节,以短帧多发的方式实现数据的高实时性,纠错能力非常强,传输数据的准确性高,真正的高速网络,传输速率可以达到1mbit/s。它的通信介质可以是双绞线、同轴电缆或光导纤维[4]。

can2.0b中存在两种不同的帧结构,其区别在于标识符场的长度。具有11位标识符场的称为“标准帧”,具有29位标识符场的称为“扩展帧”[5]。can2.0b协议规定的两种帧结构如图3所示。

图3中:

◇sof帧起始,由一个显性位构成,占1位宽度;

◇替代远程请求srr(substitute remote request),占1位宽度;

◇远程发送请求rtr(remote transmission request),占1位宽度;

◇ide(identifier extension),占1位宽度;

◇数据长度码dlc,表示数据场的长度,占4位;

◇r1、r0为保留位,各占1位宽度;

◇帧结束,为7个隐性位。

从上述分析中可以看出,can协议为了提高实时性采用了短帧结构,而以太网帧相对要长得多,can协议采用载波侦听多路存取/消息优先仲裁(csma/amp)机制解决冲突,而以太网帧采用csma/cd机制,这两点构成了can与以太网之间的主要差异,也是传统can-ethernet网关效率底下的主要原因。

3 submerge frame方法研究

3.1 submerge frame方法介绍

为了讨论方便,我们称为以太网发往can总线的数据帧为“下行的”,而can总线发往以太网的帧为“上行的”。

submerge frame方法是一种基于隧道技术的处理方法,它包括上行和下行两部分,对于下行数据,以太网中的服务器将即将传输的can帧中的前k个作为传输的数据一起打包送入以太网中;嵌入式网关根据规定对以太网帧解包,将恢复的can帧按照优先级依次传输。对于上行数据,嵌入式网关将收到的帧按照优先级排队,然后将前k个can帧作为传输数据打包送入以太网中,基于submerge frame方法的以太网帧结构图4所示,其中1#-k#为k个完整的can帧。

submerge frame方法的实现过程很简单,它基于优先级对等待服务的需can帧进行排队 ,当可以使用媒体时,将队列中的前k个帧合并作为上层数据打包送入以太网。从帧格式可以看出,将can帧打包以太网帧和can帧数据恢复都非常简单。

submerge frame方法并不主动等待k个帧的到来,它总是尽可能地将can帧送出,以缩短信息传输延时。

3.2 submerge frame方法效率研究

submerge frame方法效率包括下行数据效率和上行数据效率两部分。

下行数据效率的关键在于以太网的传输等待时间长短,以太网采用1-坚持csma/cd动态信道分配方式。当网络上的任何一个节点需要传递数据时,它首先侦听信道,看其他站点是否有数据传送,如果信道忙,则它就继续等待,直到信道空闲再进行发送尝试,为了方便计算,可以假设在稳定的重负载情况下每帧数据平均发送时间为p,则信道效率η满足[6]:

式中,:2τ为每个竞争时槽的时间长度;a为在某个时间槽内一个工作站获得传输媒体的概率。

设以太网各节点发送数据帧的平均帧长为f,网络带宽为b,则上式可以变为:

从式(2)中可以看出,信道效率η由决定,在具体应用环境中以太网中工作站的数目一般是固定的,因此,τ、a、b都是定值。此时,网络的效率帧长f决定,f越大,局域网的效率越高。

从上述分析中已经得知,can的帧长为:60-124位(扩展帧),40-104位(标准帧)。若简单采用隧道技术,需将其补足46位,在最差情况下,有信息只占信息总量的10%;即使在最好情况下,有效信息也只占信息总量的33.6%,而此时,由于帧长f=64字节,η仅为帧长1518字节时的,可得,在一个有20个节点的100m赫兹交换以太网中,з约为50%。

在实际应用中,由于网络负载随具体情况变化较大,实际应用中submerge frame方法处理下行数据的效率也随之变化。总体来说,网络负载越重,传输等待时间就越长,submerge frame方法的效率也就越高。

上行数据的讨论集中在网关对接收到的can帧的处理上,设can总线上由7个发送节点,不妨设这些节点所发送的信息帧的标识符为1,…,n。其中:1#节点所发送的信息帧具有最小标识符,从而具有最高优先级,n#节点具有最低优先级。由于can到主发送机制,所以i节点发送信息帧是参数为λi的poisson过程[7]。就网关内部而言,排队过程是非抢占的。若一次对k个帧进行打包,整个传输过程就形成了一个具有n个优先级的m/g/k队列。

这样,信息帧i的排队时间分为4部分:1)先于i到达且优先级高于i的、还未获得服务的信息帧的服务时间;2)后于i到达、优先级高于i的信息帧的服务时间;3)正在接受服务的信息帧的剩余传送时间;4)以太网阻塞延时。这样,即可得到信息帧i的平均等待时间:

式中:λi为信息帧i的到达率,i=1,…,n;μi为信息帧i的服务率,i=1,…,n;ρi为信息帧i的使用率,ρi=(i=1,…,n)即服务强度;wi为信息帧i的等待时间,i=1,…,n;xi为在总线上的传送信息帧i的时间,即占用服务台的时间。

采用常规can时的最大排队时间可由非抢占式任务的调度理论获得,这里不再赘述。

从式(3)中可以看出submerge frame方法在处理上行数据时可以明显提高传输效率;

◇整个系统的平均服务时间由

◇服务强度变为原来的1/k,系统稳定的概率更高;

◇缩短了后续帧的等待时间、以太网的阻塞时间以及高优先级can帧的传输延时。

3.3 submerge frame 方法中的关键问题

submerge frame方法实现简单,其效率在于队列k的选择,对于下行数据,k值可以相对固定。下行数据一般由服务器根据控制条件发出,因为可以对发出的can帧的数目和目的网络进行充分优化,k值就可以通过对应用的分析得出,对于上行数据,k值的大小与can网络节点数量,以太网网络规模、负载以及控制域的条件密切相关,也就是说,can总线网络规模越大,以太网负载越重,控制域上报信息和突发事件频度越高,k值也就越大,一般而言,以太网网络实际可用带宽要比can带宽大,所以在轻载情况下k值一般不会太大,当发生网络阻塞时,k值会急剧上升,在一定规模的网络中,k值可以得出一个统计学量,在此不做讨论。

由于submerge frame 方法中k值和服务等待时间紧密相连,这就形成了网络效率和服务时间之间的矛盾。k值越大,网络效率提高就越多,但也就意味着服务等待时间越长,实时性相对较差,k值越小,服务时间越短,同时伴随着网络效率的下降,在极限情况下就退化成了m/g/1队列,submerge frame方法的效率降至最低。

4 结论

submerge frame方法是一种被动的状态,即在网络服务时间长时将等待服务队列中的前k个帧合并,使平均服务时间从,从而提高了服务强度,增强了系统稳定性,由于网络实时性更为重要,submerge frame方法并不主动等待若干个帧的到来。在实际应用中,网络周期流量构成网络负载的主要部分之一,而这种周期流量的周期往往是可以控制的。基于submerge frame方法的can-以太网网关已经在安徽省“十五”二期科技攻关项目——井下安全生产数字化平台中得到应用。在应用中通过对周期流量产生时间的充分优化,网关在重网络负载环境中运行稳定,安全达到了预期目标。



关键词: 存储器

评论


相关推荐

技术专区

关闭