关键词: CAN,协议转换,网关,SX52
abstract:The gist of CAN bus and internet ethernet network technology are discussed in this paper.First,We analyse difficulty when the protocol was transformed. Second,we put forward a systemic design schema and implementation. In order to improve system performance,We select SX52 with high speed micro-controler to design embedded gateway.at the same time ,we introduce how to use SX52 to realize TCP/IP protocol and improve the performance of network processor so that system can work well.
Keyword: CAN FieldBus ,Protocol conversion,Gateway,SX52
1 引言
科技和社会的发展,使20世纪末的全球化市场竞争空前激烈。竞争中的企业逐渐开始实施计算机集成制造系统,采用系统集成、信息集成的观点来组织工业生产。在这个系统中,为实现现场智能设备之间的多点数字通信,计算机测控技术与计算机网络紧密地结合在一起,产生了能在工业现场环境运行、性能可靠、造价低廉的现场总线(FieldBus)技术。
现场总线是用于生产制造现场的最底层通信网络,它实现了微机化的现场测量控制仪器或设备之间的双向串行多节点数字通信。现场总线技术的关键是使自动控制系统与现场设备具备通信能力,将它们连接成网络系统,实现现场通信网络与控制系统的集成。作为网络系统,它具有开放统一的通信协议。CAN总线就是现场总线技术在工业应用中形成的一个成熟技术标准。它的协议建立在ISO/OSI模型基础之上,但只采用了该模型底层的物理层、数据链路层和顶层的应用层。在大型企业自动化系统中,上层企业管理层和生产监控层一般采用的都是以太网和PC机,而在下层车间现场都是采用现场总线和单片机测控设备。上下两层的沟通,通常采用工业控制机加以太网卡,再加上PC机插槽上的接口卡或并行打印口的EPP接口卡来实现。这种连接方式成本高,开发周期长。针对这种情况,我们设计一种单独的CAN以太网网关互连系统,成功地实现以太网和现有CAN总线网的直接数据互联。
2 系统总体设计
CAN总线是一个设备互连总线型控制网络。在CAN总线上可以挂接多达110个设备节点,各设备间可以自主相互通信,实现复杂网络控制系统。但设备信息层无法直接到达信息管理层,要想设备信息进入信息管理层就要通过一种数据网关。
这里我们设计了一个SX52网关用于CAN总线与以太网的互连。系统总体分为三部分:现场测控网络(CAN网络)、嵌入式透明SX52网关、以太网信息管理终端(如监控平台和网络数据库等)。以太网信息管理终端与CAN总线上的CAN节点通过ETHERNET,SX52网关,CANBUS相互通信,其中SX52网关起到核心的异构网络的互连作用。
协议转换是异构网络互连的技术关键和难点,协议转换一般可采用分层转换的方法,自低向上逐层进行。目前互连大都是在网际层或网络层展开的,因而必须对互连层以下各层协议逐层向上转换,这种转换方法的依据是协议分层的基本原理:即低层支持高层,高层调用低层,低层断开连接后,高层连接也随之断开,但高层断开连接却不会影响低层。从网络的分层结构上来看,我们设计的互连系统具有如图一所示的分层结构。以太网上运行TCP/IP协议,它具有应用层、传输层、网络层、以太网数据链路层和物理层;CAN总线具有应用层、数据链路层和物理层,其中应用层由用户自己定义,数据链路层和物理层由CAN协议所定义;SX52数据网关具有物理层、数据链路层和应用层,其应用层也就是ETHERNET与CAN的信息数据交换层,SX52微控制器在此层相互解释并转发这两种不同协议的数据。
在本设计中,SX52网关被设计成了一个透明数据网关,也就是在以太网应用层构建和解析完整的CAN协议数据包,CAN协议数据包作为TCP/IP网络应用层的数据进行传输,它对通信数据的具体实际意义不做任何解释。之所以把数据网关设计成透明式,是基于以下三个方面的考虑:1)透明式网关设计相对不透明网关来说较简单,在硬件上无须扩展大容量的数据存储器用于缓存通信数据;软件上也不用考虑数据的聚集和分发处理,降低了程序设计的复杂度、提高了通信的速度和实时性。2)透明式网关的适应性强,它可以应用于不同的项目要求,而不透明网关则要根据不同要求对网关程序作出不同的修改。3)因为协议转换设计简单,没有较多复杂处理,从而提高了通信的可靠性。
CAN总线网络的最大通信速率为1Mpbs,而以太网现在一般为10Mbps。这里就需考虑两者之间的速度匹配问题,这里可以从两个方面解决这个问题:一是在网关上使用较大的RAM,用来作为通信数据缓冲器,提高网路传输的效率。二是限制以太网向CAN总线传输的数据量,使它小于CAN总线的通信速率。
3 CAN协议分析
CAN是遵从OSI模型,按照OSI基准模型,CAN结构划分为两层:数据链路层和物理层。按照IEEE802.2和802.3标准,数据链路层又划分为:
——逻辑链路控制(LLC)
——媒体访问控制(MAC)
物理层又划分为:
——物理信令(PLS)
——物理媒体附属装置(PMA)
——媒体相关接口(MDI)
MAC子层运行借助称之为“故障界定实体(FCE)”的管理实体进行监控。故障界定是使判别短暂干扰和永久性故障成为可能的一种自检机制。物理层可借助检测和管理物理媒体故障实体进行监控(例如总线短路或中断,总线故障管理)。LLC和MAC两个同等的协议实体通过交换帧或协议数据单元(PDU—Protocol Data Unit)相互通信。
LLC子层提供的功能包括:帧接收滤波、超载通告和恢复管理。其中,超载通告功能是如果接收器内部条件要求延迟下一个LLC数据帧或LLC远程帧,则通过LLC子层开始发送超载帧最多可产生两个超载帧,以延迟下一个数据帧或远程帧。
按照网络的OSI七层模型来看,CAN总线网络完成了最下面两层协议的工作,即物理层和数据链路层,它们由CAN控制器的硬件实现电平转换和帧的封装。在实际应用中,还需要建立自己的上层协议。这里设计了一种简单实用的“命令项+数据项”结构,其完整数据帧结构如图二所示。
考虑到工业控制中的功能一般不多,因此命令项的长度设定为1BYTE(可以描述256种命令)。在数据项里设置数据长度是考虑到CAN总线是短帧传送(数据帧,每帧数据只有8BYTE),有的命令所需的数据参数可能大于7BYTE,同时很有可能返回的数据也较大,所以,这里设置一个字节的数据长度项,就可使用户定义数据帧长度达到256字节。
4 SX52的TCP/IP协议栈的设计
ARP协议可以实现逻辑地址到物理地址的动态映射。以太网接口支持一个唯一的48-bit的物理地址。在SX52中,ARP协议是通过一个“IP地址对应以太网地址”的单登记核实现。当远程主机需要知道它的物理地址时,远程主机会向它发送ARP请求,这时它就会响应这个远程主机的请求,告诉对方自己的物理地址。当应用层需要传输IP数据包时,SX52 ARP协议也可以请求远程目的物理地址。
要传输的Internet数据包数据包在以太网控制器的发送缓冲区中被构建,它使用最近接收到的数据包的目的以太网地址作为发送数据包的目的地址。当然,这可能不是正确的以太网地址,因此,在实际发送数据包之前,ARP协议将检查发送数据包中的IP地址是否存在于ARP核中,如果发送数据包中的IP地址在这个核中,在以太网发送缓冲区中的数据包将使用ARP核中的以太网地址更新,如果不在,则ARP协议将发送一个ARP请求包,然后等待一个应答。一旦这个ARP应答接收到,这个ARP核将使用刚接收到的目标以太网地址更新,接着,等待发送的数据包也将使用这个以太网地址更新,然后被发送出去。如果发送的ARP请求包没有应答,导致ARP定时器超时,这是等待发送的数据包将被废弃,正常的协议栈继续运行。
IP协议是TCP/IP协议族中最为核心的协议。所有的TCP、UDP、ICMP及IGMP数据都以IP数据报格式传输。IP提供不可靠、无连接的数据报传送服务,不能保证IP数据报成功地到达目的地。如果发生某种错误时,如某个路由器暂时用完了缓冲区,IP有一个简单的错误处理算法:丢弃该数据报,然后发送ICMP 消息报给信源端。任何要求的可靠性必须由上层来提供。无连接的意思是IP并不维护任何关于后续数据报的状态信息,每个数据报的处理是相互独立的。这也说明,IP数据报可以不按发送顺序接收。在本设计中,IP协议是针对特殊的应用环境下的合理简化。CAN总线的控制网络是一种短帧、实时网络,所以,IP数据包无须分片(MF=DF=0),同时,设置IP服务类型为一般类型,其头长为20字节,首部长度字段为5,寿命TTL设置为64。
TCP向应用层提供一种面向连接的、可靠的字节流服务。在面向工业控制上的应用时,可以对复杂的TCP协议做合理的简化,因为CAN网络传输速度较快,数据量小且l0Mpbs的以太网传输一般不会发生阻塞,以太网上的主机也会有足够的能力及时处理通信数据。所以可以固定超时与重传的时间为5s,此外RTL8019AS上有两个1500字节的接收缓冲区,且CAN网络为控制网,信息量小,所以可以固定接受窗口为1400字节。设计中采用一般的TCP服务就可以满足应用,所以可以忽略紧急指针和选项和填充字段的值。通过上述的三点简化,实际上大大简化了TCP协议的实现,因为TCP的超时与重传的时间的确定和窗口大小的控制有着较复杂的算法和实现机制。
5 创新点总结
本文的创新点是针对传统工业控制自动化现场总线连接方式成本高,开发周期长的不足之处,设计一种单独的CAN以太网网关互连系统,成功地实现以太网和现有CAN总线网的直接数据互联。现场总线通过与因特网、企业内部网相连,使自动控制系统与现场设备成为企业综合自动化系统和信息系统的一个组成部分。系统在开放性、互操作性、现场设备智能化、系统结构、对现场环境适应性等性能方面得到了很大的提高,成功实现两个异类网络的数据通信。
参考文献:
[1] 邹益仁 马增良 等,现场总线控制系统的设计和开发,2003,国防工业出版社
[2] 郑文波 控制网络技术,2001,清华大学出版社
[3] Ed.Taylor ,郑岩 邓凌 译,网络互连技术指南,2001,人民邮电出版社
[4] 李明 嵌入式互连网络接口的设计与开发,2002,工业控制计算机
[5] 邓遵义,宁样,刘保国.基于CAN总线的分布式机器人控制系统设计. 微计算机信息[J].2006年的22卷6-2期:第254-256页