打印本文 关闭窗口 | ||||||||
基于SubmergeFrame方法的CAN以太网网关,CAN总线,以太网,网关,SubmergeFrame方法来源于瑞达科技网 | ||||||||
作者:佚名 文章来源:不详 点击数 更新时间:2011/12/29 文章录入:瑞达 责任编辑:瑞达科技 | ||||||||
|
||||||||
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-以太网网关已经在安徽省“十五”二期科技攻关项目——井下安全生产数字化平台中得到应用。在应用中通过对周期流量产生时间的充分优化,网关在重网络负载环境中运行稳定,安全达到了预期目标。 |
||||||||
打印本文 关闭窗口 |