图1 netX 500结构框图。
随着实时工业以太网技术的发展,在最新版本的IEC61158 Ed.4标准中已经包含了Profinet、EtherCAT、Ethernet/IP、SERCOS III等11种实时以太网行规集。以netX网络控制器为处理器的嵌入式模块comX,是支持所有主流实时以太网协议的嵌入式模块。本文在介绍了实时以太网和netX网络控制器的基本结构和功能的基础上,详细探讨了基于该嵌入式模块comX的实时以太网从站设备的网络接口硬件组成和软件实现,以及在智能分拣系统中的应用。
20世纪80年代产生和发展起来的现场总线技术,以全数字的通信代替4~20mA电流的模拟传输方式,使得控制系统与现场仪表之间不仅能传输生产过程测量与控制信息,而且能够传输现场仪表的大量非控制信息,使得工业企业的管理控制一体化成为可能。然而,现场总线技术在其发展过程中存在不足,如标准过多,不同总线之间不能兼容;专用实时通信网络,成本高;速度较低,支持的应用有限,不便于和Internet信息集成。
由于现场总线的互连、互通与互操作性问题很难解决,于是现场总线开始转向以太网。经过近几年的努力,以太网技术已经被工业自动化系统广泛接受。为了满足高实时性能应用的需求,各大公司和标准组织纷纷提出各种提升工业以太网实时性的技术解决方案,从而产生了实时以太网(Real Time Ethernet,简称RTE)。
图2 实时以太网通道结构图。
netX网络控制器
netX基本结构
netX网络控制器是赫优讯(Hilscher)公司推出的新一代工业网络控制芯片,目前具有netX500、netX100、netX50三种型号,是一种高度集成的网络控制器。它具有全新的系统优化结构,适合工业通信和大规模的数据吞吐。支持目前所有主流的实时以太网和现场总线系统(如PROFINET、Ethernet/IP、EtherCAT、Powerlink、SERCOS III、Open Modbus on TCP/IP、AS-Interface、Interbus、CC-Link、CANopen、DeviceNet、Profibus等协议)。
netX 500的结构如图1所示。netX 500/100以32位ARM 926EJ-S为CPU核,片上集成144KB SRAM、装有引导程序和实时内核的32KB ROM,通过Memory控制器可外扩SDRAM、SRAM或FLASH,通过双端口内存DPM接口还可以连接到主机系统。netX包含丰富的外设功能,如UART、USB、SPI、I2C以及集成的显示控制器,可满足广泛的应用需求。此外,netX采用中央数据交换(Data Switch),连接各个功能单元,允许同时在不同的主从端口之间通信,同时可防止它们在传输数据时相互阻塞。netX最大的亮点在于具有可自由定义的4个智能通信口,可以配置为现场总线或实时以太网通道。因此,netX是名副其实的“高端”网络控制器。
图3 嵌入式模块与主机接口电路。
netX基本功能
netX 500网络控制器内部集成ARM 926的CPU核,可作为一个单片系统,所有应用都可在netX上实现。其次,netX具有双端口内存DPM接口,可以外接一个CPU,实现双核系统(CPU负责处理应用程序,netX专门实现网络通信)。
netX500最大的特点就是具有可配置的4个通信通道,它们建立在两层结构上,而且相互等同。它们具有专门的ALU,并且有特殊的逻辑单元,通过Microcode来实现各协议的基本功能。xMAC(Medium-Access-Controller)分别按照各自的总线存取进程,发送和接收数据,加密或将其转化为字节方式。xPEC(Protocol Execution Controller)负责编译,并将数据打包,管理报文通信。当数据量大时,可通过DMA通道进行数据交换。而且,每个通道有一个双端口内存DPM,可用于保存状态信息或本地数据。
图4 双端口内存地址空间。
其中,前两个通道集成PHY,可直接用于以太网的连接。并且内部已经集成了各种实时以太网协议所需的ASIC硬件资源,如Hub、Switch、IEEE1588等,如图2所示。
因此,通过ALU智能通信,在netX芯片上可实现各种不同的通信协议,即可以是现场总线协议,也可以是各种实时以太网协议,并可自由组合。而且,同步过程不受CPU响应时间的限制。
实时以太网设备的设计
在该从站设备中,使用的是德国赫优讯(Hilscher)自动化系统有限公司的嵌入式模块comX-CA-RE,模块内部已经集成专用的ASIC芯片和固化程序Firmware,由该模块实现实时以太网协议,主机CPU通过嵌入式模块提供的双端口内存(Dual-Port Memory,DPM)接口与模块进行数据通信,用户不需要关心协议的具体实现,只需往DPM接口读/写数据即可。因此,该模块就像一个内存,使用非常方便。该模块的另一特点是,在同一个硬件模块上就能支持各种不同实时以太网协议(Profinet、EtherCAT、Ethernet/IP、SERCOS III、Powerlink和Modbus TCP),并且还支持主站或从站,只需下载不同的协议堆栈Firmware。因此,减少了硬件开发成本,只需在软件上更改相关协议的API,大大的保护了投资,减少了开发的再投入成本。
图5 Linux设备驱动框架。
硬件设计
嵌入式模块comX-CA-RE提供给用户的硬件接口只有X1一个排针连接头(50根管脚),即双端口内存接口,该连接头包含了与主机通信必备的控制线、16位数据总线和14位地址总线。
由于该模块已经集成实现实时以太网接口的所有必备电路,因此在外围电路设计时非常简单方便,其电路连接与MCU和内存的连接相似。实时以太网协议都由模块内部实现,用户应用程序只需通过提供的API接口和访问方式,对双端口内存进行读/写操作。嵌入式模块comX与主机接口电路如图3所示。在该设备中,同时还设计了IO、AD采集电路,DA输出电路,及其他的外设接口电路。
图6 智能分拣系统示意图。
软件设计
嵌入式模块comX提供的主机接口是双端口内存DPM,用户应用程序通过DPM接口来访问该模块。同时,为了提高整个系统的实时性和可靠性,主机系统使用的是实时多任务操作系统Linux。因此,在进行软件设计时,主要完成驱动程序以及应用程序的编写。
双端口内存DPM结构
用户应用程序通过双端口内存DPM来访问实时以太网嵌入式模块comX,嵌入式模块comX提供的双端口内存DPM接口是16 Kbytes的地址空间,其具体结构如图4所示。
netX提供的双端口内存最大地址空间是64KByte,分为系统通道、握手通道、通信通道0~3、应用通道0~1。对于嵌入式模块comX,实时以太网的协议堆栈(如EtherCAT从站的Firmware)已经保存在模块的Flash中,因此只使用了默认的系统通道、握手通道和通信通道0,16KByte的地址空间。
系统通道大小为512 Bytes,位于双端口内存DPM的起始位置,是最重要的通道(总是存在)。它包含了系统本身(netX硬件和实时操作系统rcX)的关键信息,并且提供一种邮箱的传输机制,用于发送/接收跟系统相关的报文。各功能块如表1所述。
表1 系统通道结构
握手通道256 Bytes,从偏移地址0x0200开始,提供主机系统与netX固件(运行在netX芯片中的协议堆栈)之间的数据传输同步机制。所有通道的握手寄存器都在此区域,每个握手寄存器包含两类握手信息,即系统握手信息和通信握手信息。系统握手信息与“系统设备”相关,由主机应用执行netX系统相关的命令,如复位等。通信握手信息用于同步循环或非循环数据,同时向主机系统提供状态变化信息。
通信通道m×256 Bytes,从偏移地址0x0300开始,现场总线协议堆栈使用该通道,与主机系统进行循环数据和非循环数据的数据交换。共有四个通信通道,每个通道分别对应netX芯片的xMAC/xPEC端口,其结构都相同。通信通道0的默认大小是16KByte,其各功能块如表2所述。
应用通道m×256 Bytes,根据实际的需求,并不一定需要该通道,该通道实现用户特殊的信息交互,由客户定义使用。
驱动程序的设计
赫优讯提供嵌入式模块comX的驱动源码Toolkit,用户可根据实际需求,在不同的目标系统中集成该Toolkit提供的驱动接口,这样用户应用程序就能很方便的访问嵌入式模块comX的双端口内存。Toolkit提供的驱动接口与实时以太网协议无关,只与comX双端口内存DPM相关,因此,如果基于comX模块开发多种实时以太网协议(Profinet、EtherCAT、Ethernet/IP主从站等)的设备,其驱动程序是通用的。
表2 通信通道结构
在本系统中,使用Linux实时操作系统,设备驱动主要完成对嵌入式模块comX双端口内存DPM的访问,用户程序通过调用Toolkit提供的接口函数来访问实时以太网嵌入式模块comX。Linux设备驱动的框架如图5所示。
Linux设备驱动主要实现的函数如表3。
应用程序的设计
由于赫优讯提供的嵌入式模块comX,在同一个硬件模块上就能支持各种主流的实时以太网协议:Profinet、EtherCAT、Ethernet/IP、SERCOS III、Powerlink和Modbus TCP,并且还支持主站或从站,只需下载不同的协议堆栈Firmware。也就是说,如果开发不同实时以太网通信接口的同类产品,除了不同的实时以太网协议接口不一样,其他的程序接口都相同。
在本系统中,使用嵌入式模块COMX-CA-RE/ECS,即EtherCAT从站模块。因此,应用程序主要实现的功能有模块的初始化,从站热启动参数的下载,外围采集模块的数据采集,以及与EtherCAT主站设备的数据交换等等。
嵌入式模块comX的Flash中已经保存了EtherCAT从站的协议堆栈,在系统上电后,会自动加载该协议堆栈。然后再加载从站的热启动参数,需应用程序加载。不同的实时以太网从站,其热启动参数不同,以报文的方式,通过双端口内存DPM的系统邮箱发送给comX。
表3 Linux设备驱动函数表
当把热启动参数下载完成后,通过xChannelIOWrite()和xChannelIORead()两个函数,主机应用程序就可与comX模块进行数据交换了。comX模块中运行的EtherCAT协议堆栈会自动将主机应用发来的循环数据或非循环数据发送到EtherCAT网络上。反之,自动截取EtherCAT主站发送给该从站的数据,并传送给主机应用程序。
EtherCAT从站模块在智能设备中的应用
此智能分拣系统要求以流水方式顺序检测产品的若干个质量特征,对相应的质量特征做出判别,并由主控制器对各个传感器的检测结果加以汇总从而得到某一产品的分拣结果,并控制分拣电机,将相应的产品分拣到指定的分拣仓中,同时将该产品的质量信息存入数据库中。
在本系统中,传感器检测频率设计为40Hz,由于传感器位置和处理时间的原因,留给数据传输的时间要求小于1ms。同时由于要求质量判定结果需存入数据库,所以单一传感器的传输数据量为10~1kByte(因此,要求采用的现场总线的数据带宽不能小于10M)。在本系统中选用了EtherCAT实时以太网作为数据传输总线,采用德国赫优讯的comX嵌入式模块作为从站接入模块,嵌入式系统通过DPM与comX通信,采用轮询的方式向主控制器发送检测结果。
小结
目前,国内厂家多限于对现场总线产品的开发,对实时以太网产品的研究开发甚少,本文介绍了一种支持所有主流实时以太网协议的嵌入式模块comX,并详细讨论了其关键的开发步骤,对实时以太网产品的开发具有借鉴作用。从实时工业以太网技术发展形势看,实时以太网在工业控制系统中的应用必将越来越广。
跟帖
查看更多跟帖 已显示全部跟帖