




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于赫优讯嵌入式模块EtherCAT从站设备的开发 摘要:随着实时工业以太网技术的发展,在最新版本的IEC61158Ed.4标准中已经包含了Profinet,EtherCAT,Ethernet/IP,SERCOSIII等11种实时以太网行规集。以netX网络控制器为处理器的嵌入式模块comX,是支持所有主流实时以太网协议的嵌入式模块。本文在介绍了实时以太网和netX网络控制器的基本结构和功能的基础上,详细探讨了基于该嵌入式模块comX的实时以太网从站设备的网络接口硬件组成和软件实现,以及在智能分拣系统中的应用。关摘要:随着实时工业以太网技术的发展,
2、在最新版本的IEC61158 Ed.4标准中已经包含了Profinet,EtherCAT,Ethernet/IP,SERCOS III等11种实时以太网行规集。以netX网络控制器为处理器的嵌入式模块comX,是支持所有主流实时以太网协议的嵌入式模块。本文在介绍了实时以太网和netX网络控制器的基本结构和功能的基础上,详细探讨了基于该嵌入式模块comX的实时以太网从站设备的网络接口硬件组成和软件实现,以及在智能分拣系统中的应用。关键字:实时以太网;netX网络控制器;双端口内存DPM;嵌入式模块comX 0 引言
3、60; 随着计算机、通信、网络等信息技术的发展,信息交换的领域已经覆盖了工厂、企业乃至世界各地的市场,因此,需要建立包含从工业现场设备层到控制层、管理层等各个层次的综合自动化网络平台,建立以工业控制网络技术为基础的企业信息化系统。 20世纪80年代产生和发展起来的现场总线技术,以全数字的通信代替420mA电流的模拟传输方式,使得控制系统与现场仪表之间不仅能传输生产过程测量与控制信息,而且能够传输现场仪表的大量非控制信息,使得工业企业的管理控制一体化成为可能。然而,现场总线技术在其发展过程中存
4、在不足:标准过多,不同总线之间不能兼容;专用实时通信网络,成本高;速度较低,支持的应用有限,不便于和Internet信息集成。 由于现场总线的互连、互通与互操作性问题很难解决,于是现场总线开始转向以太网。经过近几年的努力,以太网技术已经被工业自动化系统广泛接受。为了满足高实时性能应用的需求,各大公司和标准组织纷纷提出各种提升工业以太网实时性的技术解决方案,从而产生了实时以太网(Real Time Ethernet,简称RTE)。目前,在最新版的IEC 61158 Ed.4标准中包含了1
5、1种实时以太网行规集:Profinet,EtherCAT,Ethernet/IP,SERCOS III,PowerLink, EPA, Modbus/TCP,TC-net,Vnet/IP,P-NET和HSE。 本文介绍了一种基于嵌入式模块comX的EtherCAT实时以太网从站设备设计方案,该模块支持目前所有主流的实时以太网协议,并详细讨论了其硬件组成和软件实现,以及在智能分拣系统中的应用。 1 netX网络控制器1.1 netX基本结构
6、160; netX网络控制器是赫优讯(Hilscher)公司推出的新一代工业网络控制芯片,目前具有netX500、netX100、netX50三种型号,是一种高度集成的网络控制器,它具有全新的系统优化结构,适合工业通讯和大规模的数据吞吐。支持目前所有主流的实时以太网和现场总线系统: PROFINET、Ethernet/IP、EtherCAT、Powerlink、SERCOS III、Open Modbus on TCP/IP、AS-Interface、Interbus、CC-Link、C
7、ANopen、DeviceNet、Profibus等协议。 netX 500的结构如图1所示。netX 500/100以32位ARM 926EJ-S为CPU核,主频200MHz,片上集成144KB SRAM、装有引导程序和实时内核的32KB ROM,通过Memory控制器可以外扩SDRAM、SRAM或FLASH,通过双端口内存DPM接口还可以连接到主机系统。netX包含丰富的外设功能:如UART,USB,SPI,I2C以及集成的显示控制器,可以满足广泛的应用需求。此外,net
8、X采用中央数据交换(Data Switch),它连接着各个功能单元,允许同时在不同的主从端口之间通信,同时可以防止它们在传输数据时相互阻塞。netX最大的亮点在于具有可以自由定义4个智能通讯口,可以配置为现场总线或实时以太网通道。因此,netX是名副其实的“高端”网络控制器。图1 netX 500结构框图1.2 netX基本功能 netX 500网络控制器内部集成ARM 926的CPU核,因此可以做为一个单片系统,所有的应用都可以在netX上实现。其次,netX具有双端口内存D
9、PM接口,也可以再外接一个CPU,实现双核系统: CPU负责处理应用程序,netX专门实现网络通讯。 netX500最大的特点就是具有可配置的4个通信通道,它们建立在两层结构上,而且相互等同。它们具有专门的ALU,并且有特殊的逻辑单元,通过Microcode来实现各协议的基本功能。xMAC(Medium-Access-Controller)分别按照各自的总线存取进程,发送和接收数据,加密或者将它们转化为字节方式。xPEC(Protocol Execution Controller)负责编译,并将
10、数据打包,管理报文通讯。当数据量大时,可通过DMA通道进行数据交换。而且,每个通道有一个双端口内存DPM,可用于保存状态信息或本地数据。 其中,前两个通道集成PHY,可直接用于以太网的连接。并且内部已经集成了各种实时以太网协议所需的ASIC硬件资源,如Hub、Switch、IEEE1588等,如图2所示。 图2 实时以太网通道结构图 因此,通过这种智能的通讯ALU,在netX芯片上可以实现各种不同的通讯协议,可以是现场总线协议,也可以是各种实时以太网协议,并且
11、可以自由组合。而且,同步过程不受CPU响应时间的限制。 2 实时以太网设备的设计 在该从站设备中,使用的是德国赫优讯(Hilscher)自动化系统有限公司的嵌入式模块comX-CA-RE,模块内部已经集成专用的ASIC芯片和固化程序Firmware,由该模块实现实时以太网协议,主机CPU通过嵌入式模块提供的双端口内存(Dual-Port Memory,DPM)接口与模块进行数据通信,用户不需要关心协议的具体实现,只需往DPM接口读/写数据就可以,因此,该模块就像一个内存,使用起来特别方便。该模块
12、的另一个特点是,同一个硬件模块上就能支持各种不同实时以太网协议:Profinet、EtherCAT、Ethernet/IP、SERCOS III、Powerlink和Modbus TCP,并且还支持主站或从站,只需下载不同的协议堆栈Firmware。因此,减少了硬件开发成本,只需在软件上更改相关协议的API,这大大的保护了投资,减少了开发的再投入成本。2.1 硬件设计 嵌入式模块comX-CA-RE提供给用户的硬件接口只有X1一个排针连接头(50根管脚),即双端口内存接口,该连接头包含了与主机通信必备的控制
13、线、16位数据总线和14位地址总线。 由于该模块已经集成实现实时以太网接口的所有必备电路,因此在外围电路设计的时候非常简单方便,其电路连接与MCU和内存的连接相似。实时以太网协议都由模块内部实现,用户应用程序只需通过提供的API接口和访问方式,对双端口内存进行读/写操作。嵌入式模块comX与主机接口电路如图3所示。在该设备中,同时还设计了IO、AD采集电路,DA输出电路,以及其它的外设接口电路。图3 嵌入式模块与主机接口电路2.2 软件设计 嵌入式模块comX
14、提供的主机接口是双端口内存DPM,用户应用程序通过DPM接口来访问该模块。同时,为了提高整个系统的实时性和可靠性,主机系统使用的是实时多任务操作系统Linux。因此,在进行软件设计时,主要完成驱动程序以及应用程序的编写。2.2.1 双端口内存DPM结构 用户应用程序通过双端口内存DPM来访问实时以太网嵌入式模块comX,嵌入式模块comX提供的双端口内存DPM接口是16 KByte的地址空间,其具体结构如图4所示。图4 双端口内存地址空间 netX提
15、供的双端口内存最大地址空间是64KByte,分为系统通道、握手通道、通讯通道03、应用通道01。对于嵌入式模块comX,实时以太网的协议堆栈(如EtherCAT从站的Firmware)已经保存在模块的Flash中,因此只使用了默认的系统通道、握手通道和通讯通道0,16KByte的地址空间。 系统通道512个字节,位于双端口内存DPM的起始位置,是最重要的通道,总是存在。它包含了系统本身(netX硬件和实时操作系统rcX)的关键信息,并且提供一种邮箱的传输机制,用于发送/接收跟系统相关的报文。各功能块如表1所述。表1 系统通道结
16、构 握手通道256字节,从偏移地址0x0200开始,提供主机系统与netX固件(运行在netX芯片中的协议堆栈)之间的数据传输同步机制。所有通道的握手寄存器都在此区域,每个握手寄存器包含两类握手信息:系统握手信息和通讯握手信息。系统握手信息与“系统设备”相关,由主机应用执行netX系统相关的命令,如复位等。通讯握手信息用于同步循环或非循环数据,同时向主机系统提供状态变化信息。 通讯通道m256字节,从偏移地址0x0300开始,现场总线协议堆栈使用该通道,与主机系统进行循环数据和非
17、循环数据的数据交换。共有四个通讯通道,每个通讯通道分别对应netX芯片的xMAC/xPEC端口,其结构都相同。通讯通道0的默认大小是16KByte,其各功能块如表2所述。表2 通讯通道结构 应用通道m256字节,根据实际的需求,并不一定需要该通道,该通道实现用户特殊的信息交互,由客户定义使用。2.2.2 驱动程序的设计 赫优讯提供嵌入式模块comX的驱动源码Toolkit,用户可以根据实际的需求,在不同的目标系统中集成该Toolkit提供的驱动接口,这样用户应
18、用程序就能很方便的访问嵌入式模块comX的双端口内存。Toolkit提供的驱动接口与实时以太网协议无关,只与comX双端口内存DPM相关,因此,如果基于comX模块开发多种实时以太网协议(Profinet、EtherCAT、Ethernet/IP主从站等)的设备,其驱动程序是通用的。 在本系统中,使用Linux实时操作系统,设备驱动主要完成对嵌入式模块comX双端口内存DPM的访问,用户程序通过调用Toolkit提供的接口函数来访问实时以太网嵌入式模块comX。Linux设备驱动的框架如图5所示。图5 Linux设备驱动框架&
19、#160; Linux设备驱动主要实现的函数如表3。表3 Linux设备驱动函数表2.2.3 应用程序的设计 由于赫优讯提供的嵌入式模块comX,在同一个硬件模块上就能支持各种主流的实时以太网协议:Profinet、EtherCAT、Ethernet/IP、SERCOS III、Powerlink和Modbus TCP,并且还支持主站或从站,只需下载不同的协议堆栈Firmware。也就是说,如果开发不同实时以太网通讯接口的同类产品,除了不同的实时以太网
20、协议接口不一样,其它的程序接口都是一样的。 在本系统中,使用嵌入式模块COMX-CA-RE/ECS,即EtherCAT从站模块。因此,应用程序主要实现的功能:模块的初始化,从站热启动参数的下载,外围采集模块的数据采集,以及与EtherCAT主站设备的数据交换等等。 嵌入式模块comX的Flash中已经保存了EtherCAT从站的协议堆栈,在系统上电后,会自动加载该协议堆栈。然后再加载从站的热启动参数,需应用程序加载。不同的实时以太网从站,其热启动参数是不一样的,以报文
21、的方式,通过双端口内存DPM的系统邮箱发送给comX。EtherCAT从站关键的热启动参数如下, ptWarmstartReq->tData.ulSystemFlags = 0; / System Flags / ptWarmstartReq->tData.ulWatchdogTime=1000; / Watchdog time / &
22、#160; ptWarmstartReq->tData.ulVendorId = 0x44; / Vendor Id / ptWarmstartReq->tData.ulProductCode = 0x7874656E; / Product code/ ptWarmstartRe
23、q->tData.ulRevisionNumber = 0x0000FFFE; / Revision number / ptWarmstartReq->tData.ulSerialNumber = 0; / Serial number / ptWarmstartReq->tData.ulProcessDataOutput
24、Size = 4; / Process Data Output Size / ptWarmstartReq->tData.ulProcessDataInputSize = 4; / Process Data Input Size / 热启动参数的下载处理代码如下:
25、60; / 从站热启动参数下载 / if( true != GetWarmstartPacket( ulFirmwareSelection, ulDeviceSelection, &tSendPacket) printf("Erro
26、r reading WARMSTART packet for the given protocolrn"); else
27、0; / 发送包 lRet = ptCifXFnc->pfnChannelPutPacket( hChannel, &tSendPacket, 2000); if( CIFX_NO_ERROR = lRet)
28、60; printf("Sending WARMSTART packet: DONErn"); else pri
29、ntf("Error sending WARMSTART to the device: Error=0x%08Xrn", lRet); / 接收包 lRet = ptCifXFnc->pfn
30、ChannelGetPacket( hChannel, sizeof(tReceivePacket), &tReceivePacket, 2000); if(CIFX_NO_ERROR != lRet) printf(&qu
31、ot;Error while wait for WARMSTART response: Error=0x%08Xrn", lRet); else if(0 != (lRet = tReceivePacket.tHeader.ulState)
32、160; printf("Error in WARMSTART response: Error=0x%08Xrn", tReceivePacket.tHeader.ulState); else
33、60; / 等待,直到BUS位被设置 CHANNEL_INFORMATION tChannelInfo = 0; do
34、160; lRet = ptCifXFnc->pfnChannelInfo( hChannel, sizeof(tChannelInfo), &tChannelInfo); printf(".");
35、; while ( (CIFX_NO_ERROR = lRet) && (!(tChannelInfo.ulDeviceCOSFlags & (RCX_COMM_COS_RU
36、N | RCX_COMM_COS_READY) ); 当把热启动参数下载完成后,通过xChannelIOWrite()和xChannelIORead()两个函数,主机应用程序就可以与comX模块进行数据交换了。comX模块中运行的EtherCAT协议堆栈会自动将主机应用发来的循环数据或非循环数据发送到EtherCAT网络上。反之,自动截取EtherCAT主站发送给该从站的数据,并传送给主机应用程序。3 EtherCAT从站模块在智能设备的应用图6 智能分拣系统示意图 此智能分拣系统要求以流水方式顺序检测产品的若干个质量特征,并对相应的质量特征作出判别,并由主控制器对各个传感器的检测结果加以汇总从而得到某一产品的分拣结果,并控制分拣电机将相应的产品分拣到指定的分拣仓中,同时
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年新零售时代实体书店图书版权交易模式创新报告
- 2025年能源与资源行业:能源行业碳排放交易市场分析及政策建议报告001
- 2025年环保产业园产业集聚与环保产业风险管理报告:协同发展路径研究
- 2025年肿瘤早筛技术在肝细胞癌代谢组学分析早期检测中的应用前景与市场潜力报告
- 2025年汽车共享平台用户支付体验优化策略研究报告
- 2025年工业互联网平台网络切片技术在工业互联网设备智能诊断中的应用报告
- 榕城小学考试题及答案
- 菜谱拍摄制作合同协议
- 服装服饰加盟合同范本
- 设备供应合同解除协议
- 2025十堰张湾区城市社区党组织书记专项招聘事业编制人员考试笔试试卷【附答案】
- 2025年国防教育知识竞赛试题(附答案)
- 2025国庆节前安全教育培训
- 国歌课件教学课件
- 江苏省家政服务合同派遣制4篇
- 农业农村部在京事业单位招聘考试真题2024
- 农村电商公共服务体系的建设与完善-以资阳市雁江区为例
- 东营市专业技术人员继续教育公共服务平台-题库(答案)
- 2024八年级道德与法治上册知识点
- 航模课件教学课件
- 看守所巡控岗位课件
评论
0/150
提交评论