Linear DC/DC微型模块稳压器产品适用于高速串行器/解串器系统中

时间:2020-12-09

  EtherCAT是由BECKHOFF提出和设计的一种工业以太网现场总线技术,广泛应用于运动控制领域。

  EtherCAT主要优势在于高速、高实时性以及   时钟同步。这些优势的实现基于EtherCAT设计的几个关键技术:飞读飞写(processingonthefly)、FMMU(FieldbusMemoryManagementUnit)、DC(DistributeClock)。以上几个关键技术都是在EtherCAT从站控制器ESC(EtherCATSlaveController)中实现,ESC是实现EtherCAT通信协议的关键。

  目前,EtherCAT从站控制技术由国外掌握,IP核和芯片全部是由国外公司提供。我国正在执行智能制造2025国家战略,没有自主化的先进的工业现场总线,工业系统升级就只能是亦步亦趋,跟随国外公司的步伐,无法开发出具有自主创新技术的专用产品。在工业控制系统领域,国外工业控制系统企业占据竞争优势,然而,工业现场总线是工业控制系统运行的枢纽,无论什么数据都要经过这个枢纽进行传输,出于系统安全的考虑,有必要对工业现场总线进行研究,以实现自主化设计。目前国内已经有针对EtherCAT总线技术的研究的:文献[5]设计并验证了ESC实现的通信链路可行性,文献[6]提出了一种使用FPGA实现FMMU的算法,但是上述研究都是进行理论推导与算法设计,没有工程实践应用。针对该问题,本文基于FPGA依据EtherCAT工作原理,设计一种能满足工程实践的EtherCAT功能单元FMMU,实现了FMMU的地址映射以及数据字节和位提取的功能。

  1EtherCAT系统及功能组成

  EtherCAT主站与从站组成结构如图1所示。主从站的单次通信过程是:主站遍历所有从站设备,数据帧通过某一从站时,从站设备根据报文命令分析寻址到本机报文并定位到指定位置进行数据读/写,数据帧到达   一个从站后,该从站把处理后的数据帧发送给主站。主站收到此上行电报后处理并返回数据,   完整的通信过程结束。EtherCAT系统整个通信过程由主从站内部状态机控制,主站采用广播寻址、自增量寻址、配置地址寻址、逻辑寻址等寻址方式和命令,这个阶段,主站获取了所连从站的基本信息,从站也根据主站数据帧要求对自身进行配置,有过程数据要求的对相关从站的FMMU进行配置,这些工作完成后,主从站转入OP(OperaTIon)态。

  基于FPGA器件实现FMMU地址映射和数据字节和位提取的功能

  EtherCAT从站控制器IP主要包括端口控制(Ports)处理单元、Auto-forwarder模块、Loopback模块、FMMU、SyncManager、PDI(ProcessDataInterface)单元、复位处理单元、分布时钟、EEPROM接口单元、REGS及RAM区,每个功能模块之间的关联如图2所示。根据不同的通信阶段及从站配置类型,EtherCAT可通过FMMU直接访问从站控制器的地址控制,读写RAM或寄存器区;有的从站过程数据交互时必须先通过SyncManager,才能对RAM或寄存器区进行读写访问,其中SyncManager是为了数据一致性以及数据安全性而设计的,既用作访问RAM或寄存器区的管理单元,又可以作为PDI和ECAT数据同步的调度接口。

  2FMMU原理及实现

  2.1FMMU运行原理

  FMMU作为EtherCAT从站控制器的   功能之一,采用地址映射技术将主站的逻辑地址转换为从站的物理地址,映射地址空间达4GB。FMMU用于主站对于从站的逻辑寻址命令帧中,而且能在一个数据子帧中对多个分布式从站进行寻址,既能节约数据帧资源,提高数据帧利用率,又能方便主站本地的地址空间管理和分配。

  EtherCAT系统运行时,每个EtherCAT从站都有一个配置文件,即ESI(EtherCATSlaveInformaTIon)文件,规定了每个从站的软件版本、类型、资源配置包括FMMU个数等情况。主站利用配置工具,将每个从站的ESI文件作为输入生成ENI(EtherCATNetworkInformaTIon)文件,主站软件根据各个ENI文件了解自身所在EtherCAT网络的从站信息。主站运行起来后会根据ENI文件要求对各个从站进行配置,FMMU就是由主站在PREOP到SAFEOP状态转换过程中进行配置的,主站根据每个从站的ENI信息对相关从站的FMMU配置以下信息:主站逻辑起始地址、字节长度、逻辑起始位、逻辑结束位、从站物理起始地址、从站物理起始位、访问方式(读、写、读写)、使能。映射实例如表1和图3所示。

  本实例是将32位的主站逻辑地址0x00014708映射到本地从站物理地址0x0F05,从实例配置表中可以看出,逻辑映射起始位为bit5,结束位为bit3,映射长度为7bit,操作类型是写。

  从站FMMU是由主站在PREOP状态利用FPWR(ConfiguredAddressPhysicalWrite)命令进行配置的。从站配置成功,并且系统转入OP状态之后,在进行过程数据的交互时,从站会收到主站发出的逻辑寻址的EtherCAT子报文,根据各个从站的FMMU逻辑配置情况,查询是否有与子报文中逻辑地址区相匹配的区域,如果有,且为输入类型数据(主站读访问操作),则从站FMMU会将映射的物理地址区数据插入到EtherCAT子报文数据区的对应位置;如果配置逻辑地址在子报文逻辑地址区域内且为输出类型数据(主站写访问操作),则从站FMMU根据配置要求将逻辑地址区数据抽取到被映射的相应物理地址区。

  2.2FMMU实现原理

  根据以上FMMU运行原理及配置实例分析,可将FMMU的实现原理分为两部分:FMMU配置设计与实现、FMMU数据处理设计与实现。

  2.2.1FMMU配置设计与实现

  根据EtherCAT协议和规范,从站的FMMU只能由主站进行配置,配置寄存器的基地址为0x0600开始的256B(FMMU个数为8,每个FMMU配置寄存器个数为16)的区域,表2~9所示为FMMU的所有配置寄存器描述说明(其中y表示FMMU索引,值为0~15)。

  FMMU的配置实现过程(即在PREOP状态,主站发FPWR命令帧进行配置)如图4所示。从站FPGA根据EEPROM配置的FMMU个数(0x0004寄存器的值,即图中变量n)依照图4所示逻辑对从站的FMMU进行配置,配置的逻辑地址起始位要大于等于配置的物理地址起始位。

  2.2.2FMMU数据处理-主站读

  主站发LRD(逻辑读)或者LRW(逻辑读写)命令帧,通过FMMU对从站进行读操作,读操作分为按位读(bit-wisereading)和按字节读(byte-wisereading)两种方式,按位读支持对从站任何允许的地址区域操作。逻辑读操作处理逻辑为:FPGA代码判断访问类型是否为读配置、帧命令是否为LRD和LRW、地址是否在逻辑映射地址区间内,满足这三个条件后,置一个标志位,在此标志位为1的情况下,将被映射的物理地址中的数据插入到数据帧的逻辑地址空间。

  2.2.3FMMU数据处理-主站写

  主站发LWR或者LRW命令帧,通过FMMU对从站进行写操作,写操作分为按位写和按字节写两种方式。对于按位操作来说,对同一个从站内的两个FMMU都进行按位写操作的情况下,两个FMMU的逻辑起始地址之差值设置为大于等于3。对于按字节操作来说,没有这个限制。按位写只支持对从站地址区域为0x0F00:0x0F03的数字量输出寄存器的按位写操作,对于除此区域之外的其他地址区域的按位写操作,未映射的区域将会被写入非定义的值,按字节写没有这种区域限制。图5所示为写操作的实现逻辑。

  在写操作的实现逻辑中,通过设置掩码,将需要写入的bit置1,不需要写入的bit置0,然后将掩码与原先物理地址区域或寄存器中的原值进行逻辑运算,既将要写入的bit写入了物理寄存器中,又保留了不需要更新的物理寄存器中的原值保留。

  3功能测试

  功能测试选取LWR命令进行验证,对两个从站采用按位写的映射方式。通过在testbench(测试台)中编写EtherCAT逻辑写测试包激励,使用Modelsim对设计的FMMU模块设计进行仿真测试,验证从站0xF00:0xF03中   终被写入数据的正确性。

  3.1测试例说明

  测试例采用两个从站,从站的0xF00:0xF03寄存器值默认复位都为0;主站采用LWR命令,逻辑起始地址0x01000011,写入5B数据0xaa556789ab,网络协议采用高字节顺序,即高字节数据存放在低字节地址,而且在传输中   传输   位,数据格式见表10所示。

     个从站的配置如表11所示,假设此从站物理寄存0x0F00:0F03初始值为0xabcdef78,按FMMU实现原理分析,FMMU模块截取逻辑写帧的值应该为6bit:010100,写入到物理寄存器0x0F00:0x0F03(leastbit:10101001即为0x95)的值为0x95cdef78。

  第二个从站的配置如表12所示,假设此从站物理寄存0x0F00:0F03初始值为0x12345678;按FMMU实现原理分析,FMMU模块截取逻辑写帧的值应该为6bit:001101,写入到物理寄存器0x0F00:0x0F03(leastbit:00011010即为0x58)的值为0x12585678。

  3.2仿真测试验证

  仿真采用Modelsim软件进行,根据表11和表12的配置要求,对从站1和从站2分别进行逻辑按位写仿真验证。

  根据表11中   个从站的测试例,取主站逻辑地址0x01000011中的数据0x55,得到的mask为0x3E00,处理后的数据为0x1540;取主站逻辑地址0x01000012中的数据0xaa,得到的mask为0x0040,处理后的数据为0x2a95,如图6所示。

  对数据进行掩码操作处理,将物理地址0x0F00中bit1~bit6对应的6bit数据用逻辑地址0x01000011对应的bit3开始的6bit数据替换,得到从站1的物理地址0x0F00的数据为0x95,数据处理仿真结果如图7所示。

  根据表12中第二个从站的测试例,取主站逻辑地址0x01000013中的数据0x89,得到的mask为0x3E00,处理后的数据为0x19C0;取主站逻辑地址0x01000014中的数据0x67,得到的mask为0x0040,处理后的数据为0x2295,如图8所示。

  对数据进行掩码操作处理,将物理地址0x0F01中bit1~bit6对应的6bit数据用逻辑地址0x01000013对应的bit3开始的6bit数据替换,得到从站2的物理地址0x0F01的数据为0x58,数据处理仿真结果如图9所示。

  4结论

  通过对FMMU实现逻辑代码的Modelsim仿真数据结果,验证了FMMU原理及其逻辑实现的正确性,说明用FPGA实现EtherCAT从站控制器FMMU模块是完全可行的,为开发完善的ESC从站控制器创造了条件。


上一篇:相控阵天线方向图——第2部分:栅瓣和波束斜视
下一篇:基于DSP器件TMS320F2812实现同步采样模块的方案设计

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料