《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 设计应用 > 基于F28M36的EtherNet/IP从站设计
基于F28M36的EtherNet/IP从站设计
2016年微型机与应用第14期
刘泽1,2,熊皑1,武继瑞1.2
(1. 中国科学院光电技术研究所,四川 成都 610209;2. 中国科学院大学,北京 100190)
摘要: 分析了一种全新的工业以太网协议EtherNet/IP,并从源代码的角度阐明了其基本原理。基于TI的DSP+ARM双核芯片F28M36设计了一款采用以太网传输的伺服控制系统控制卡,移植了UCOSII操作系统、CIP协议、嵌入式TCP/IP协议和网络芯片驱动,最终实现了工业以太网协议EtherNet/IP协议的成功移植。
Abstract:
Key words :

  刘泽1,2,熊皑1,武继瑞1.2

  (1. 中国科学院光电技术研究所,四川 成都 610209;2. 中国科学院大学,北京 100190)

  摘要:分析了一种全新的工业以太网协议EtherNet/IP,并从源代码的角度阐明了其基本原理。基于TI的DSP+ARM双核芯片F28M36设计了一款采用以太网传输的伺服控制系统控制卡,移植了UCOSII操作系统、CIP协议、嵌入式TCP/IP协议和网络芯片驱动,最终实现了工业以太网协议EtherNet/IP协议的成功移植。

  关键词:EtherNet/IP;F28M36;CIP ;伺服控制

0引言

  近年来,随工业控制对于组网和信息传输速率与精度的要求越来越高,传统的工业现场总线技术已经很难满足现代和未来的工业控制系统要求。现在,工业以太网已经成为了一种确定性的网络。通过和现场总线的对比,其在组网、传输速率、价格等方面显示出来的优势越来越明显,成为未来工业控制系统通信接口的发展方向。

  不同于传统的工业以太网协议,例如最普及的EtherCAT或者是高端的SERCOSIII等协议,EtherNet/IP协议只规定了应用层协议CIP的规范,在网络层和传输层上使用了事实上的标准网络协议TCP/IP协议,这使得EtherNet/IP协议在组网上有巨大的优势,可以一网到底,灵活组网,而不是传统工业以太网或者现场总线技术的专网专用。

  目前国内对于EtherNet/IP协议的研究还是停留在直接购买商业代码或者是购买专用的ASIC模块芯片进行研究阶段。可以说国内对应EtherNet/IP的研究还处于起步阶段。

1EtherNet/IP协议的简介

  1.1EtherNet/IP协议的模型

  相比较于传统的现场总线技术等工业控制协议,EtherNet/IP在本质上也都是基于IEEE802.3的规范以制定的标准,ODVA给出的EtherNet/IP协议规范就指出,EtherNet/IP由应用层的CIP、传输和网络层的TCP/IP协议以及底层的电气协议规范构成[1], EtherNet/IP的通信模型如图1所示。

001.jpg

  1.2EtherNet/IP的特点

  (1)EtherNet/IP是一种面向连接的协议,相互的设备间只用建立可靠连接才能通信。

  (2)EtherNet/IP能够传输各种类型的报文,并且对于不同类型的数据采用不同的传输方式,具体分为显示报文的传输、I/O数据报文的传输以及未连接数据报文的传输(UCMN)。

  (3)协议是基于生产者和消费者的模型通信,不仅支持多播通信,还支持很多种I/O数据触发方式,如:周期触发方式、中断方式等。

  (4)EtherNet/IP协议用几种对象模型来描述各种动作和参数,采用面向对象的方式编程是现在各种协议规范通常采用的办法。

  1.3EtherNet/IP的结构

  在几种常见的工业以太网协议和现场总线技术中,EtherNet/IP和ControlNet以及DeviceNet一样,使用的规范都是基于CIP协议,这就保证了EtherNet/IP设备在和使用了CIP作为应用层的设备能够很好地互联通信,而这三种协议不同的地方在于,EtherNet/IP在网络层和传输层协议上就使用了TCP/IP协议[2] ,如图2所示。

002.jpg

  1.4EtherNet/IP的对象参考模型

  EtherNet/IP协议使用了一系列的对象模型用来描述EtherNet/IP网络中的各种特征以及参数,通过使用对象模型的方式使得在具体的通信过程中,设备之间能够更加方便地识别和通信[1]。

  1.5EtherNet/IP的数据封装格式

  EtherNet/IP的数据封装格式如图3所示。

003.jpg

2伺服驱动器通信接口的硬件设计

  2.1伺服驱动器设计的整体架构

  由于设计的最终目的是实现通过EtherNet/IP网络控制两个电机的转动,因此采取的设计思路就是实现ARM和PC主站之间的通信,DSP控制电机转动,FPGA进行编码器数据的运算,如图4所示。

 

004.jpg

  2.2网络通信接口的设计

  由于F28M36芯片自带了EMAC模块的功能,所以只需要加入一个PHY芯片就可以了。采用TI公司的TLK110芯片作为PHY芯片,RJ45接口采用普通的8pin的网口,采用两组差分信号进行传输,并且预留了能够采用4组差分信号进行传输的接口。采用3.3 V进行供电[3],如图5所示。

005.jpg

3伺服驱动器控制卡从站的软件设计

  按照EtherNet/IP的协议规范,移植EtherNet/IP协议需要满足如下的软件条件:

  (1)应用层协议CIP代码,这里采用的是ODVA官网给出的示例源码ENetIP_EC。

  (2)嵌入式TCP/IP协议,这里采用的是轻量级支持操作系统的Lwip协议。

  (3)实时操作系统采用的是UCOSII。

  (4)整个移植过程中采用的是免费TCP/IP协议+示例从站应用层代码+RTOS的结构,具体的软件架构如图6所示。

006.jpg

  3.1嵌入式操作系统UCOSII的移植

  UCOSII操作系统是一款大家比较熟悉的嵌入式操作系统,关于UCOSII操作系统在ARM上的移植成功的例子很多,本文的创新之处在于在TI的芯片F28M36上成功进行了移植,主要的工作除了将图6EtherNet/IP的软件架构

  M3核移植到F28M36以外,还需要满足CCS6.1编译器的代码规范。

  3.2嵌入式TCP/IP协议Lwip的移植

  Lwip采用的是分层进行结构设计的思想,每一个协议都采用一个模块来进行实现,然后提供了与对应模块进行交互的接口。Lwip协议中所有的进程模块都在一个进程中,这样就保证了应用程序既可以是一个单独的进程也可以图7lwip的在F28M36上的通信流程嵌入到TCP/IP进程中,如果应用程序驻留在TCP/IP内部,那么就利用内部回调函数和TCP/IP通信,如图7所示。

007.jpg

  3.3CIP协议的移植

  EtherNet/IP协议的初始化过程中,必须先注册一个CIP类,CIP类中包括了应用对象的各种特征属性,例如ID、实例结构、类代码等。整个过程是通过一个全局公共变量gUserDefined以及MR维持的路由来实现的。首先需要判断CIP类注册的个数,然后给不同的注册类分配不同的内存空间,EtherNet/IP协议在代码实现上,通过调用不同的CIP注册类的接口函数来实现对于单个或多个CIP对象的操作。当创建完成一个CIP类之后,通过调用函数GSPutTrrbl()向消息路由发送一个MR_RegistrationtrrblType类型的trribble消息。

  进入传输层和网络层连接以后,程序按照下列步骤来进行:

  (1)首先协议栈进入函数en_PassiWaitTSK()运行,这个任务函数只有在初始连接阶段才会运行,等待任务执行完毕后,执行一个接收报文的封装任务函数en_cd_EncaRecvTASK(),它是一个中低级优先级的任务,主要的作用就是接收从底层网络(传输层)上传过来的报文信息并进行CIP格式的封装处理,然后产生一个伙伴任务en_cd_EncaSendTASK(),当接收到完整消息以后,en_cd_ProcessEncaMSG()就用来解析消息,然后返回响应。

  (2)未连接的消息由en _TXfpacket()来进行解析,然后通过en模块里面的函数en_cd_TxUnscheduledTask()来完成消息解析。针对消息的回复可以由UCMN来进行, 3类消息的处理则是通过函数en_cd_TxClass3Packet()来完成的,一旦消息被格式化完成,它就会被送到发送队列中等待发送,程序流程如图8所示。

  

008.jpg

4协议移植的验证

  4.1验证方案的确定

  EtherNet/IP协议的功能十分强大,但是由于没有购买商业代码,采用的是移植的免费的示例代码,所以关于移植方案只能确定移植的成功与否,而对工业以太网协议的众多技术指标并没有要求。

  判断协议移植成功的两个重要的技术指标是:

  (1)能够识别从站的IP地址,表明Lwip协议移植成功.

  (2)能够识别满足ODVA给出的EtherNet/IP规范的十六进制数据包,并返回EtherNet/IP数据包。

  4.2测试主站的选择

  测试EtherNet/IP从站移植的正确性,需要选择一个EtherNet/IP的主站,这里采用EtherNet/IP给出的一个简单的示例主站测试,其方法就是通过向主站发送一系列的EtherNet/IP主站数据包,看从站的反馈数据包是否是EtherNet/IP格式的数据包。

  4.3IP地址的确定

  Lwip可以使用固定IP地址,也可以采用DHCP自动分配IP地址,然后通过串口打印出来。采用DHCP自动分配的IP地址为169.254.169.99,然后ping IP地址。具体的过程如图9和图10所示。

  

009.jpg

  图10表明Lwip协议移植成功。

  4.4主从站的测试

  向主站发送固定的EtherNet/IP数据包,如图11所示。

010.jpg

  ODVA给了CIP报文的一个参考格式。CIP的数据包存储是先低位,再高位,逐条分析整个数据包的结构,整个数据表达的意思就是:通过UCMN未连接管理器发送rdtag1,通过连接管理对象去请求一个对象实例ID为01的对象,该对象去响应一个CIP读取数据的命令,给定数据读取的路径,然后只需要读取一个字节的数据。

  然后点击Request命令,再等待,当连接完成以后,最上面的Connection_FLAG由灰色变为黄色,表明连接成功。

  连接成功以后就会反馈一个EtherNet/IP的数据包,如果发送的数据包不是EtherNet/IP格式或者从站不遵循EtherNet/IP的数据格式,则不会有数据反馈。其中前4位是00D2,表明反馈回来的是第3类数据,即I/O数据,B2表明是UCMN数据,C2表明是第1类数据;00D2后面的数据表明是数据长度和数据大小,EtherNet/IP没有给出相应的规范,在商用驱动器中,用户不需要解析十六进制代码,主站会直接识别信息。

5结论

  通过测试分析一种全新的工业以太网协议EtherNet/IP,熟悉其架构和数据格式,通过ODVA给出的移植建议,设计了基于F28M36的网络接口硬件,自己选择了RTOS、TCP/IP协议栈和示例从站代码,在双核芯片F28M36的ARM核上成功移植了EtherNet/IP从站,结合示例的主站代码,测试TCP/IP协议和CIP协议移植的效果,并取得成功,证明了移植的有效性。由于EtherNet/IP是一种全新的工业以太网协议,且本文的所有移植都采用的是免费代码,因此本文没有测试很多重要的工业以太网的技术指标,只是验证了移植的有效性,今后将购买商业代码进行测试。

参考文献

  [1] CIP Common Specification. Release 1.0.2001 by ControlNet International and Open DeviceNet Vendor Association[S].2001.

  [2] 薛吉,邱浩,奚培锋,等.工业以太网EtherNet/IP介绍及其产品开发[J].低压电器, 2009 (5):3235.

  [3] 邹靖波,熊皑.EtherCAT从站硬件设计方法[J].微型机与应用,2015,34(7):2729.


此内容为AET网站原创,未经授权禁止转载。