CN111123806A - 一种具有双数据通道的EtherCAT主站系统 - Google Patents
一种具有双数据通道的EtherCAT主站系统 Download PDFInfo
- Publication number
- CN111123806A CN111123806A CN202010037631.6A CN202010037631A CN111123806A CN 111123806 A CN111123806 A CN 111123806A CN 202010037631 A CN202010037631 A CN 202010037631A CN 111123806 A CN111123806 A CN 111123806A
- Authority
- CN
- China
- Prior art keywords
- module
- data
- process data
- real
- microprocessor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0423—Input/output
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/25—Pc structure of the system
- G05B2219/25257—Microcontroller
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种具有双数据通道的EtherCAT主站系统,包括微处理器、随机存取单元、FPGA模块和以太网物理层模块,并通过以太网物理层模块连接一组伺服从站;通过随机存取单元配合微处理器对EtherCAT主站协议栈进行运行和维护;过程数据驱动模块以驻留在FPGA存储模块中的过程数据镜像为数据源,使用实时数据通道实现主站的周期性通信;微处理器无需取走过程数据镜像,而是通过地址映射通信总线进行字节访问。本申请利用硬件优化了数据传输路径,降低了周期性通信的延迟和抖动,可实现较短的主站周期,适用于数控机床高速插补运动控制。
Description
技术领域
本申请涉及工业以太网现场通信领域,具体涉及一种适用于工业自动化高速通信的EtherCAT主站系统。
背景技术
倍福公司起初推广EtherCAT协议,其主要优势之一是可以采用处理器加外扩网卡的通用体系架构来实现主站功能,EtherCAT协议的数据链路层和应用层均由软件实现。针对通用网卡单缓存的操作效率不高、系统软中断实时性不强等问题,EtherCAT协议使用从站分布时钟机制来弥补主站实时性上的的不足,可以达到纳秒级的多轴同步精度。该方案实施简便、成本低廉、可移植性好,能满足大部分应用场景(通信周期为500μs以上)的性能要求。
由于上述方案并不能满足一些对主站实时性要求高的应用场合,有不少专利针对EtherCAT主站的实时性提出多种改进方案。
专利文献CN201510107162.X公开了一种基于FPGA的EtherCAT主站装置,其主站采用FPGA来实现EtherCAT协议数据链路层功能。该主站的应用层程序和EtherCAT协议驱动模块均同步于FPGA产生的等时中断。该方案利用FPGA协议驱动模块来分担处理器的EtherCAT报文处理任务,提高了EtherCAT数据链路层的效率。在报文的调度策略上,在每一个中断周期,周期性报文和非周期性报文各发送一帧,周期性报文优先发送。
专利文献CN201510870564.5公开了一种基于ARM的嵌入式EtherCAT主站构建方法,该方案使用ARM来分担数控系统CPU在EtherCAT主站上的分布时钟、状态机以及帧运算等程序任务,CPU与ARM通过FPGA内存来实现指令与数据的交互,从而达到减轻主机运算任务、提升运行速度的目的。
专利文献CN201511031363.2公开了一种EtherCAT通信系统主站及通信方法,该方案使用FPGA来实现EtherCAT协议数据链路层功能。CPU应用程序向FPGA收发单元发送指令和数据,FPGA收发单元实现报文的处理;周期性报文的发起时刻由FPGA分布时钟单元控制,克服了软中断带来的不稳定性。
现有的解决方案主要集中在利用额外的协处理单元来替代主机处理器去完成EtherCAT协议数据链路层的工作,从而提高报文的处理效率。利用FPGA的并行处理和硬件实现特性来实现EtherCAT报文的组装和解析,可以在一定程度上起到加速的作用,而数据流的路径规划同样是影响主站实时性的主要因素之一,在现有方案中依然存在数据反复迁移的现象。再者,EtherCAT主站的实时性主要由周期性过程数据通信决定,通信协议无差别地使用硬件实现,不仅造成资源浪费,而且会丧失灵活性。
发明内容
本申请的目的是提供一种具有双数据通道的EtherCAT主站系统,在保留传统EtherCAT主站原有的标准数据通道的情况下,开辟旁路实时数据通道并用于周期性过程数据通信,进一步缩短通信栈软件的处理时间,实现高频率、低抖动的过程数据等时同步传输、以及快速的时钟同步运动控制。
为了实现上述任务,本申请采用以下技术方案:
一种具有双数据通道的EtherCAT主站系统,包括微处理器、随机存取单元、FPGA模块和以太网物理层模块,并通过以太网物理层模块连接一组伺服从站;通过随机存取单元配合微处理器对EtherCAT主站协议栈进行运行和维护;
所述FPGA模块用于在EtherCAT协议的数据链路层同时提供标准数据通道和旁路实时数据通道;其中,所述的标准数据通道用于将微处理器提供的EtherCAT报文转换成数据流并发送给所述的以太网物理层模块,或者将以太网物理层模块上传的数据流恢复成数据报文并转交给微处理器;旁路实时数据通道则用于同步于FPGA模块中的时钟模块发起的周期脉冲信号,直接从驻留在FPGA模块内的过程数据镜像区提取信息,产生过程数据报文并发送给以太网物理层模块,或者将以太网物理层模块上传的数据流恢复成报文,并从中提取有效信息,更新到过程数据镜像区;
所述微处理器用于根据应用层任务的需要,通过微处理器接口模块实现对所述过程数据镜像区进行字节访问;
所述的以太网物理层模块用于将来自FPGA模块的数据流转换为差分信号发送到物理介质中,将被各个伺服从站处理完的报文通过物理介质返回EtherCAT主站,然后通过以太网物理层模块转换成数据流后进入FPGA模块。
进一步地,所述FPGA模块包括所述的微处理器接口模块、时钟模块以及存储模块、过程数据驱动模块、调度模块和以太网模块,其中:
所述存储模块分别与微处理器接口模块、过程数据驱动模块、调度模块连接,过程数据驱动模块连接微处理器接口模块和时钟模块,时钟模块连接调度模块、以太网模块,以太网模块与所述以太网物理层连接。
进一步地,所述微处理器接口模块包括三个数据交互子模块:控制寄存器模块、状态寄存器模块和存储单元控制模块,其中:
所述控制寄存器模块与状态寄存器模块包含多个寄存器,微处理器通过地址映射通信总线向控制寄存器模块的特定寄存器中写入控制数据,或者从状态寄存器模块的特定寄存器中读取反馈数据,从而实现对FPGA模块的状态控制;
所述存储单元控制模块将微处理器通过地址映射通信总线所发起的读写请求转换为对FPGA模块中存储器的读写信号,实现低延迟、可变长度的数据猝发传输;
所述的微处理器接口模块还包括来自FPGA模块的硬件中断信号线,用于传递过程数据驱动模块向微处理器发起的同步中断信号。
进一步地,所述存储模块包括所述的过程数据镜像区,以及实时发送缓冲区、实时接收缓冲区、标准发送缓冲区和标准接收缓冲区,其中:
所述的过程数据镜像区分别连接过程数据驱动模块和微处理器接口模块中的存储单元控制模块,由微处理器和过程数据驱动模块互斥访问;所述的实时发送缓冲区和实时接收缓冲区的A端口均连接过程数据驱动模块,由过程数据驱动模块写入和读取报文;标准发送缓冲区和标准接收缓冲区的A端口均连接微处理器接口模块中的存储单元控制模块,由微处理器写入和读取报文;所述实时发送缓冲区、实时接收缓冲区、标准发送缓冲区和标准接收缓冲区的B端口,通过调度模块中间接连接以太网模块。
进一步地,所述过程数据驱动模块负责在每个周期的等时脉冲信号信号产生后,从过程数据镜像区获取过程数据并封装成过程数据报文,然后写入实时发送缓冲区;当以太网模块接收到过程数据报文并写入实时接收缓冲区后,过程数据驱动模块负责从实时接收缓冲区中提取过程数据并更新到过程数据镜像区,完成后向微处理器发出同步中断信号。
进一步地,所述时钟模块提供两个脉冲信号输出,其中一个信号输出是等时脉冲信号,由时钟模块周期产生,其周期由微处理器通过微处理器接口模块中的寄存器进行设定;另一个信号输出是提前脉冲信号,其输出时刻以等时脉冲信号的产生时刻为基准,提前一个可变的时间量。
进一步地,所述调度模块包括一个具有标准态、过渡态和实时态的有限状态机,用以协调实时数据通道与标准数据通道对以太网接口的共享,该状态机按照标准态-过渡态-实时态的顺序反复循环转换;
当状态机处于标准态时,以太网模块连接标准数据通道,接受并处理面向微处理器的数据收发请求;当处于过渡态时,以太网模块连接标准数据通道,但不再接受新的数据发送请求,未完成的发送操作和未完成的接收操作会继续执行;当处于实时态时,以太网模块连接实时数据通道,接受并处理面向过程数据驱动模块的实时数据收发请求。
进一步地,所述以太网模块采用100Mbps全双工模式,使用自动协商,内部划分为发送模块和接收模块两个完全独立的子模块,分别负责EtherCAT数据帧的发送与接收。
进一步地,所述过程数据驱动模块组装和解析过程数据帧的过程包括:
在EtherCAT系统配置期间,预先按照过程数据报文格式生成过程数据报文并写入实时发送缓冲区。每次等时脉冲信号信号发生后,所述的过程数据驱动模块直接将过程数据镜像区的整段过程数据填充到实时发送缓冲区中的过程数据子报文数据域中,除子报文数据域之外的部分不再做更改;每次终止脉冲信号产生后,从接收到的过程数据帧中的子报文数据域中提取过程数据,并将其覆盖到过程数据镜像区。
进一步地,利用FPGA并发执行特性,采用流水线方法实现过程数据帧的组装和发送并发执行:
当等时脉冲信号产生后,以太网模块立即从实时发送缓冲区读取并发送报文,与此同时过程数据驱动模块从过程数据镜像区读取过程数据并覆盖到正在发送的过程数据帧的子报文数据域。
综上所述,根据EtherCAT协议过程数据通信对实时性要求高、报文处理操作重复性高的特点,本申请与现有技术相比具有以下技术特点:
1.降低了周期性通信的时间延迟,实现了主站周期时间的最小化。
①采用高性能、高带宽、低延迟的地址映射通信方式,将过程数据镜像从内存迁移到FPGA块存储器中,节省了数据拷贝的时间;②取消了发送和接收FIFO结构,进一步减少数据传输延迟;③采用流水线方式实现了报文组装和报文发送的并发执行,实现更快的数据帧发送响应。
2.降低了主站周期性通信的抖动。
过程数据通信过程完全基于硬件实现,理论上主站周期性通信的实时性不受软件的影响,只存在硬件器件上的抖动,适用于数控机床高速插补运动控制。
3.周期性通信对非周期性通信的制约更小。由于本申请的主站系统采用轮转调度策略共享一个以太网接口资源,两种通信通道在各自的时间片内完全占有资源的使用权,因此相互之间的干扰程度更小。
4.兼容基于通用架构实现的主站方案。
本申请的主站系统提供双数据通道,在主站平台移植中只需要实现基于标准数据通道的接口驱动程序,即可实现主站通信功能。
5.节省资源和成本,有利于扩展升级。
本申请中的EtherCAT主站大部分非时间关键的协议功能由软件实现,只有少部分时间关键的部分采用硬件实现,有利于EtherCAT协议的扩展和升级,更加节省资源和成本。
附图说明
图1是本申请一个实施例的主站系统总体结构示意图;
图2是本申请一个实施例的微处理器接口模块的结构示意图;
图3是本申请一个实施例的标准和实时两种数据通道的调度策略示意图;
图4是按照本申请实施例的以太网模块中发送模块的结构示意图;
图5是按照本申请实施例的以太网模块中接收模块的结构示意图。
图中标号说明:1微处理器,2随机存取单元,3微处理器接口模块,3.1状态寄存器模块/控制寄存器模块,3.2存储单元控制模块,4存储模块,4.1过程数据镜像区,4.2实时发送缓冲区,4.3实时接收缓冲区,4.4标准发送缓冲区,4.5标准接收缓冲区,5过程数据驱动模块,6时钟模块,7调度模块,8以太网模块,9以太网物理层模块。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
参见图1,本申请的一个实施例提供了一种具有双数据通道的EtherCAT主站系统,包括微处理器1、随机存取单元2、FPGA模块10和以太网物理层模块9;所述微处理器1利用地址映射通信总线通过微处理器接口模块3与FPGA模块10交互,FPGA模块10通过所述以太网模块8与以太网物理层模块9交互。主站系统通过所述以太网物理层模块9连接一组伺服从站,EtherCAT主站协议栈以软件程序的形式由所述随机存取单元2配合微处理器1进行运行和维护。
所述FPGA模块10在EtherCAT协议的数据链路层同时提供了标准数据通道和旁路实时数据通道;其中,所述的标准数据通道负责将微处理器1提供的EtherCAT报文转换成数据流,按照100Mbps全双工的模式发送给所述的以太网物理层模块9,或者将以太网物理层模块9上传的数据流恢复成数据报文并转交给微处理器1;旁路实时数据通道则用于同步于FPGA模块10中的时钟模块6发起的周期脉冲信号,直接从驻留在FPGA模块10的存储模块4中的过程数据镜像区4.1提取信息,产生过程数据报文并发送给以太网物理层模块9,或者将以太网物理层模块9上传的数据流恢复成报文,并从中提取有效信息,更新到过程数据镜像区4.1。
微处理器1无需取走整个过程数据镜像,而是根据应用层任务的需要,通过地址映射通信总线、微处理器接口模块3实现对过程数据镜像区4.1进行字节访问。所述的以太网物理层模块9把来自FPGA模块10的数据流转换为差分信号发送到物理介质中;被各个伺服从站处理完的报文通过物理介质返回主站,然后通过以太网物理层模块9转换成数据流后进入FPGA模块10。
本申请中,所述FPGA模块10包括微处理器接口模块3、存储模块4、过程数据驱动模块5、时钟模块6、调度模块7和以太网模块8六个部分,下面分别对每个部分进行说明。
(1)微处理器接口模块3
微处理器接口模块3作为微处理器1与FPGA模块10中的其他子模块实现交互的桥梁,采用地址映射通信总线,该总线使用五个独立的通道:读地址通道、写地址通道、读数据通道、写数据通道、写响应通道,每个通道由一个信号集构成,并且使用双向的握手信号机制。
参见图2,微处理器接口模块3包括三个数据交互子模块:控制寄存器模块3.1、状态寄存器模块和存储单元控制模块3.2。
控制寄存器模块3.1与状态寄存器模块用于使微处理器1实现对FPGA模块10的状态控制,具体实现过程包括:所述控制寄存器模块3.1与状态寄存器模块包含多个寄存器,微处理器1通过地址映射通信总线向控制寄存器模块3.1的特定寄存器中写入控制数据,或者从状态寄存器模块的特定寄存器中读取反馈数据,从而实现对FPGA模块10的状态控制。
存储单元控制模块3.2用于使微处理器1实现按字节访问存储单元;具体地,存储单元控制模块3.2将微处理器1通过地址映射通信总线所发起的读写请求转换为对FPGA模块10中存储器的读写信号,实现低延迟、可变长度的数据猝发传输。
所述的微处理器接口模块3还包括来自FPGA模块10的硬件中断信号线,用于传递过程数据驱动模块5向微处理器1发起的同步中断信号pdo_intr。
(2)存储模块4
存储模块4由FPGA模块10双端口随机块存储器(BRAM)构成,分为过程数据镜像区4.1、实时发送缓冲区4.2、实时接收缓冲区4.3、标准发送缓冲区4.4和标准接收缓冲区4.5五个部分。所述的过程数据镜像区4.1的A、B两个端口分别连接过程数据驱动模块5和微处理器接口模块3中的存储单元控制模块3.2,由微处理器1和过程数据驱动模块5互斥访问;所述的实时发送缓冲区4.2和实时接收缓冲区4.3的A端口均连接过程数据驱动模块5,由过程数据驱动模块5写入和读取报文;标准发送缓冲区4.4和标准接收缓冲区4.5的A端口均连接微处理器接口模块3中的存储单元控制模块3.2,由微处理器1写入和读取报文;所述四个收发缓冲区:实时发送缓冲区4.2、实时接收缓冲区4.3、标准发送缓冲区4.4和标准接收缓冲区4.5的B端口,通过调度模块7中的接口选择器间接连接以太网模块8。
(3)过程数据驱动模块5
过程数据驱动模块5负责在每个周期的等时脉冲信号pdo_begin信号产生后,从过程数据镜像区4.1获取过程数据并封装成过程数据报文,然后写入实时发送缓冲区4.2;当以太网模块8接收到过程数据报文并写入实时接收缓冲区4.3后,过程数据驱动模块5负责从实时接收缓冲区4.3中提取过程数据并更新到过程数据镜像区4.1,完成后向微处理器1发出同步中断信号pdo_intr。
(4)时钟模块6
时钟模块6提供两个脉冲信号输出,其中一个信号输出是等时脉冲信号pdo_begin,由时钟模块6周期产生,其周期由微处理器1通过微处理器接口模块3中的寄存器cycle_time进行设定;另一个信号输出是提前脉冲信号pdo_pre,其输出时刻以pdo_begin的产生时刻为基准,提前一个可变的时间量,这个可变的时间量是由时钟模块6根据位于微处理器接口模块3中的标准发送报文长度寄存器tx_byte的当前值进行计算得到。
(5)调度模块7
调度模块7采用轮换调度策略,调度模块7包括一个具有三种状态(标准态、过渡态和实时态)的有限状态机,用以协调实时数据通道与标准数据通道对以太网接口的共享。该状态机按照标准态-过渡态-实时态的顺序反复循环转换。当状态机处于标准态时,以太网模块8连接标准数据通道,接受并处理面向微处理器1的数据收发请求;当处于过渡态时,以太网模块8连接标准数据通道,但不再接受新的数据发送请求,未完成的发送操作和未完成的接收操作会继续执行。当处于实时态时,以太网模块8连接实时数据通道,接受并处理面向过程数据驱动模块5的实时数据收发请求。其中,pdo_begin脉冲信号作为过渡态向实时态转换的触发条件;pdo_pre脉冲信号作为标准态向过渡态转换的触发条件;终止脉冲信号pdo_end由所述的以太网模块8产生,表示本周期内所有的过程数据帧全部正确接收,作为实时态向标准态转换的触发条件。
(6)以太网模块8
以太网模块采用100Mbps全双工模式,使用自动协商,内部划分为发送模块和接收模块两个完全独立的子模块,分别负责EtherCAT数据帧的发送与接收。发送模块和接收模块均不使用FIFO结构,发送模块向以太网物理层模块9提供时钟频率为25MHz的TX_CLK,接收模块直接采用以太网物理层模块9向FPGA所提供的输入时钟RX_CLK作为驱动源时钟。
根据EtherCAT通信系统初始化完成后,过程数据通信报文结构中的以太网帧头、EtherCAT帧头、子报文头以及尾部的WKC部分的数值均固定不变的特点,本申请提出一种过程数据帧组装和解析的新方法:
在EtherCAT系统配置期间,预先按照过程数据报文格式生成过程数据报文并写入实时发送缓冲区4.2。每次pdo_begin信号发生后,所述的过程数据驱动模块5直接将过程数据镜像区4.1的整段过程数据填充到实时发送缓冲区4.2中的过程数据子报文数据域(帧起始地址向后偏移26字节起)中,除子报文数据域之外的部分不再做更改;每次pdo_end信号产生后,从接收到的过程数据帧中的子报文数据域(帧起始地址向后偏移26字节起)中提取过程数据,并将其覆盖到过程数据镜像区4.1。
如果过程数据的长度超出一帧标准以太网报文的容量,则拆成多个片段,连续发送多个过程数据帧,等过程数据报文全部正确接收完毕再产生pdo_end脉冲信号,然后从多帧报文中提取过程数据最后拼接起来。
本申请还提出一种基于旁路实时通道实现实时补偿从站本地时钟漂移的方法:
在每个周期发出的第一帧用于过程数据通信的EtherCAT数据帧中,包含两个子报文,第一子报文为逻辑寻址读写命令(LRW)的过程数据子报文,第二子报文为一读多写命令(ARMW)的报文,第二子报文用于读取参考时钟从站的寄存器0x910~0x917的值(系统时间)并写入其他从站的寄存器0x910~0x917中,用于从站调整自身的时间控制环。当该数据帧返回主站后,解析出第二子报文中的系统时间,并写入微处理器接口模块3中的寄存器system_time中,供微处理器1读取。
结合上述改进后的过程数据帧组装和解析方法,本申请提出利用FPGA并发执行特性,采用流水线方法实现过程数据帧的组装和发送并发执行:
当等时脉冲信号pdo_begin产生后,以太网模块8立即从实时发送缓冲区4.2读取并发送报文,与此同时过程数据驱动模块5从过程数据镜像区4.1读取过程数据并覆盖到正在发送的过程数据帧的子报文数据域。由于读数据的位置位于数据帧的起始地址0,而写数据的位置位于起始地址向后偏移26字节的地址,且读时钟频率为25Mhz(100Mbps)远小于写时钟频,因此不存在冲突。
针对伺服从站数量过多的情况,本申请基于提出如下解决方法:
如果过程数据镜像的长度超出一帧标准以太网报文的容量,则拆成多个片段,连续发送多个过程数据帧,等过程数据报文全部正确接收完毕再产生pdo_end脉冲信号,然后从多帧报文中提取过程数据最后拼接起来。
在本申请的一个实施例中:
微处理器1和FPGA模块10具体可采用Xilinx公司的ZYNQ-7000系列SoC,该SoC内部主要集成了ARM Cortex-A9双核处理器和Xilinx FPGA可编程逻辑资源,本申请实施例仅使用FPGA资源和其中一个ARM微处理器1。微处理器1通过SoC的片内总线AXI4与FPGA模块10连接。随机存取单元2可以采用双倍速率同步动态随机存储器(DDR SDRAM)。以太网物理层模块9可以采用PHY芯片或者E-BUS。可以运行有操作系统或者无操作系统。本申请实施例需要搭载EtherCAT主站协议栈软件库,可以采用开源主站(Simple OpenSource EtherCATMaster、the IgH EtherCAT Master或其他)、商业主站或者自行开发的主站协议栈。本申请的实施例还需要分别实现面向标准数据通道与实时数据通道的报文收发接口驱动程序。
图2是本申请实施例的微处理器接口模块3的结构示意图。微处理器接口模块3是微处理器1与FPGA模块10中其他子模块进行交互的桥梁,其中微处理器1与微处理器1接口之间的连线采用片内总线AXI4,可以实现高性能、高带宽、低延迟的数据传输。控制与状态寄存器模块可以是Xilinx提供的FPGA AXI IP核封装外壳,存储单元控制模块3.2可以是Xilinx IP核库的AXI BRAM Controller。硬件中断信号线pdo_intr用于传递FPGA模块10(10)向微处理器1发起的中断同步信号,通知微处理器1最新的过程数据镜像已经刷新。
图3是本申请实施例的实时数据通道和标准数据通道的调度策略示意图,调度模块7的状态机初始状态为标准态,主站使用标准数据通道初始化并配置EtherCAT系统,当初始化完成后使能时钟模块6,时钟模块6开始产生脉冲信号,调度模块7的状态机开始轮转。信号pdo_pre最先产生,此时状态机从标准态切换到过渡态,以太网模块8不再接受新的发送请求;然后到信号pdo_begin产生,此时状态机由过渡态切换到实时态,过程数据开始发送;接着到pdo_end产生,状态机由实时态切换到标准态,此时过程数据帧收发已经完毕,过程数据帧开始解析;最后到信号pdo_intr产生,此时过程数据帧解析完毕,通知微处理器1过程数据镜像已经刷新,并且进入下一个周期。
图4是本申请实施例的以太网模块8中发送模块的结构示意图,若调度模块7的状态机处于标准态,发送模块选择位于控制与状态寄存器模块中的寄存器tx_en作为使能驱动;若调度模块7的状态机处于实时态,则选择时钟模块6的pdo_begin信号作为使能驱动。当使能信号发生后,发送模块的状态机切换至状态1;同时地址寄存器复位,选择路径①作为介质无关接口模块3的数据输入。当前导码与开始界定符发送完成后,发送模块的状态机立即切换到状态2,此时选择路径②作为输入。状态2是一个条件循环,反复从实时发送缓冲区4.2、标准发送缓冲区4.4中读出数据并转发至介质无关接口模块3和CRC32校验模块,直到发送字节数与寄存器tx_byte中的值相等为止。若tx_byte不足60字节,则持续输入0填充至60字节。然后状态机切换至状态3,在数据流的尾部追加发送CRC32校验模块的最终输出值。
图5是本申请实施例的以太网模块8中接收模块的结构示意图,当接收模块检测到以太网物理层模块9有数据帧到来,立即将状态机切换为状态1,开始监听前导码,如果检测到连续7个0x55且下一个为0x5d,则立刻切换到状态2开始接收数据;否则状态机返回空闲态,准备监听下一次信号。数据流在经过位宽转换后直接转存到实时接收缓冲区4.3、标准接收缓冲区4.5,CRC32校验模块同步计算数据流的校验结果。当数据帧接收完成后,将CRC32校验模块的最终输出结果与数据帧末尾32位bit进行比较,若校验正确且当前调度模块7的状态机为标准态或过渡态,则通过控制与状态寄存器模块中的寄存器new_recv通知微处理器1接收到了新的报文;若校验正确且当前调度模块7的状态机为实时态,则产生pdo_end脉冲信号;若校验不正确,则不发出数据帧被接收的断言,控制与状态寄存器模块中的寄存器fcs_err自加1。
从整体逻辑流上描述本申请实施例的通信过程:
标准发送过程:
微处理器1通过地址映射通信总线将待发送报文从随机存取单元2拷贝到标准发送缓冲区4.4,然后设置寄存器tx_byte的值为报文长度,接着将寄存器tx_en设置为1,向FPGA模块10发起发送请求。若FPGA模块10接受了该请求,则启动如上述发送模块的执行流程向外发送数据,发送完毕后等待960ns再将寄存器tx_en清零,微处理器1检测到tx_en变为0后,可以再次发起新的发送请求。
标准接收过程:
数据流从以太网物理层模块9进入FPGA模块10,以太网模块8中的接收模块一边接收一边写入标准接收缓冲区4.5,接收完毕后若CRC32校验通过,则寄存器new_recv被置1,微处理器1通过轮询寄存器new_recv发现有新的数据帧被接收,接着通过存储单元控制模块3.2将报文取走,最后将new_recv清0,通知FPGA该报文已被使用。
实时发送过程:
同步中断pdo_intr产生后,此时过程数据镜像区4.1内的数据是从站的最新状态,应用程序可以通过地址映射通信来访问这些数据用于任务计算,计算完成后将用于从站控制的数据写入过程数据镜像区4.1内,微处理器1继续执行其他任务。等到pdo_begin产生后,调度模块7的状态机切换至实时态,发送模块开始从实时发送缓冲区4.2中读取数据发送至以太网物理层模块9,与此同时过程数据驱动模块5从过程数据镜像区4.1拷贝过程数据写入到正在被发送的EtherCAT数据帧的子报文数据域。由于读数据的位置位于数据帧的起始地址0,而写数据的位置位于起始地址向后偏移26字节的地址,且读时钟频率为25Mhz(100Mbps)远小于写时钟频,因此并不存在冲突。
实时接收过程:
数据流从以太网物理层模块9进入FPGA模块10,以太网模块8中的接收模块一边接收一边写入实时接收缓冲区4.3,接收完毕后若CRC32校验通过,则产生pdo_end脉冲信号。此时调度模块7、的状态机切换至标准态,过程数据驱动模块5从数据帧起始地址向后偏移26字节的位置开始,将子报文数据域中的数据拷贝到过程数据镜像区4.1,拷贝完毕后向微处理器1发出同步中断信号pdo_intr,进入下一个周期。
以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (10)
1.一种具有双数据通道的EtherCAT主站系统,其特征在于,包括微处理器(1)、随机存取单元(2)、FPGA模块(10)和以太网物理层模块(9),并通过以太网物理层模块(9)连接一组伺服从站;通过随机存取单元(2)配合微处理器(1)对EtherCAT主站协议栈进行运行和维护;
所述FPGA模块(10)用于在EtherCAT协议的数据链路层同时提供标准数据通道和旁路实时数据通道;其中,所述的标准数据通道用于将微处理器(1)提供的EtherCAT报文转换成数据流并发送给所述的以太网物理层模块(9),或者将以太网物理层模块(9)上传的数据流恢复成数据报文并转交给微处理器(1);旁路实时数据通道则用于同步于FPGA模块(10)中的时钟模块(6)发起的周期脉冲信号,直接从驻留在FPGA模块(10)内的过程数据镜像区(4.1)提取信息,产生过程数据报文并发送给以太网物理层模块(9),或者将以太网物理层模块(9)上传的数据流恢复成报文,并从中提取有效信息,更新到过程数据镜像区(4.1);
所述微处理器(1)用于根据应用层任务的需要,通过微处理器接口模块(3)实现对所述过程数据镜像区(4.1)进行字节访问;
所述的以太网物理层模块(9)用于将来自FPGA模块(10)的数据流转换为差分信号发送到物理介质中,将被各个伺服从站处理完的报文通过物理介质返回EtherCAT主站,然后通过以太网物理层模块(9)转换成数据流后进入FPGA模块(10)。
2.根据权利要求1所述的具有双数据通道的EtherCAT主站系统,其特征在于,所述FPGA模块(10)包括所述的微处理器接口模块(3)、时钟模块(6)以及存储模块(4)、过程数据驱动模块(5)、调度模块(7)和以太网模块(8),其中:
所述存储模块(4)分别与微处理器接口模块(3)、过程数据驱动模块(5)、调度模块(7)连接,过程数据驱动模块(5)连接微处理器接口模块(3)和时钟模块(6),时钟模块(6)连接调度模块(7)、以太网模块(8),以太网模块(8)与所述以太网物理层连接。
3.根据权利要求1所述的具有双数据通道的EtherCAT主站系统,其特征在于,所述微处理器接口模块(3)包括三个数据交互子模块:控制寄存器模块(3.1)、状态寄存器模块和存储单元控制模块(3.2),其中:
所述控制寄存器模块(3.1)与状态寄存器模块包含多个寄存器,微处理器(1)通过地址映射通信总线向控制寄存器模块(3.1)的特定寄存器中写入控制数据,或者从状态寄存器模块的特定寄存器中读取反馈数据,从而实现对FPGA模块(10)的状态控制;
所述存储单元控制模块(3.2)将微处理器(1)通过地址映射通信总线所发起的读写请求转换为对FPGA模块(10)中存储器的读写信号,实现低延迟、可变长度的数据猝发传输;
所述的微处理器接口模块(3)还包括来自FPGA模块(10)的硬件中断信号线,用于传递过程数据驱动模块(5)向微处理器(1)发起的同步中断信号。
4.根据权利要求2所述的具有双数据通道的EtherCAT主站系统,其特征在于,所述存储模块(4)包括所述的过程数据镜像区(4.1),以及实时发送缓冲区(4.2)、实时接收缓冲区(4.3)、标准发送缓冲区(4.4)和标准接收缓冲区(4.5),其中:
所述的过程数据镜像区(4.1)分别连接过程数据驱动模块(5)和微处理器接口模块(3)中的存储单元控制模块(3.2),由微处理器(1)和过程数据驱动模块(5)互斥访问;所述的实时发送缓冲区(4.2)和实时接收缓冲区(4.3)的A端口均连接过程数据驱动模块(5),由过程数据驱动模块(5)写入和读取报文;标准发送缓冲区(4.4)和标准接收缓冲区(4.5)的A端口均连接微处理器接口模块(3)中的存储单元控制模块(3.2),由微处理器(1)写入和读取报文;所述实时发送缓冲区(4.2)、实时接收缓冲区(4.3)、标准发送缓冲区(4.4)和标准接收缓冲区(4.5)的B端口,通过调度模块(7)中间接连接以太网模块(8)。
5.根据权利要求2所述的具有双数据通道的EtherCAT主站系统,其特征在于,所述过程数据驱动模块(5)负责在每个周期的等时脉冲信号信号产生后,从过程数据镜像区(4.1)获取过程数据并封装成过程数据报文,然后写入实时发送缓冲区(4.2);当以太网模块(8)接收到过程数据报文并写入实时接收缓冲区(4.3)后,过程数据驱动模块(5)负责从实时接收缓冲区(4.3)中提取过程数据并更新到过程数据镜像区(4.1),完成后向微处理器(1)发出同步中断信号。
6.根据权利要求1所述的具有双数据通道的EtherCAT主站系统,其特征在于,所述时钟模块(6)提供两个脉冲信号输出,其中一个信号输出是等时脉冲信号,由时钟模块(6)周期产生,其周期由微处理器(1)通过微处理器接口模块(3)中的寄存器进行设定;另一个信号输出是提前脉冲信号,其输出时刻以等时脉冲信号的产生时刻为基准,提前一个可变的时间量。
7.根据权利要求2所述的具有双数据通道的EtherCAT主站系统,其特征在于,所述调度模块(7)包括一个具有标准态、过渡态和实时态的有限状态机,用以协调实时数据通道与标准数据通道对以太网接口的共享,该状态机按照标准态-过渡态-实时态的顺序反复循环转换;
当状态机处于标准态时,以太网模块(8)连接标准数据通道,接受并处理面向微处理器(1)的数据收发请求;当处于过渡态时,以太网模块(8)连接标准数据通道,但不再接受新的数据发送请求,未完成的发送操作和未完成的接收操作会继续执行;当处于实时态时,以太网模块(8)连接实时数据通道,接受并处理面向过程数据驱动模块(5)的实时数据收发请求。
8.根据权利要求2所述的具有双数据通道的EtherCAT主站系统,其特征在于,所述以太网模块(8)采用100Mbps全双工模式,使用自动协商,内部划分为发送模块和接收模块两个完全独立的子模块,分别负责EtherCAT数据帧的发送与接收。
9.根据权利要求5所述的具有双数据通道的EtherCAT主站系统,其特征在于,所述过程数据驱动模块(5)组装和解析过程数据帧的过程包括:
在EtherCAT系统配置期间,预先按照过程数据报文格式生成过程数据报文并写入实时发送缓冲区(4.2);每次等时脉冲信号信号发生后,所述的过程数据驱动模块(5)直接将过程数据镜像区(4.1)的整段过程数据填充到实时发送缓冲区(4.2)中的过程数据子报文数据域中,除子报文数据域之外的部分不再做更改;每次终止脉冲信号产生后,从接收到的过程数据帧中的子报文数据域中提取过程数据,并将其覆盖到过程数据镜像区(4.1)。
10.根据权利要求4所述的具有双数据通道的EtherCAT主站系统,其特征在于,利用FPGA并发执行特性,采用流水线方法实现过程数据帧的组装和发送并发执行:
当等时脉冲信号产生后,以太网模块(8)立即从实时发送缓冲区(4.2)读取并发送报文,与此同时过程数据驱动模块(5)从过程数据镜像区(4.1)读取过程数据并覆盖到正在发送的过程数据帧的子报文数据域。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010037631.6A CN111123806A (zh) | 2020-01-14 | 2020-01-14 | 一种具有双数据通道的EtherCAT主站系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010037631.6A CN111123806A (zh) | 2020-01-14 | 2020-01-14 | 一种具有双数据通道的EtherCAT主站系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111123806A true CN111123806A (zh) | 2020-05-08 |
Family
ID=70490503
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010037631.6A Pending CN111123806A (zh) | 2020-01-14 | 2020-01-14 | 一种具有双数据通道的EtherCAT主站系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111123806A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111858160A (zh) * | 2020-06-23 | 2020-10-30 | 杭州龙境科技有限公司 | 一种便于云手机访问的IeMMC方法和系统 |
CN112147927A (zh) * | 2020-09-11 | 2020-12-29 | 苏州谷夫道自动化科技有限公司 | 一种双通道总线通信的多轴运动控制系统 |
CN112398714A (zh) * | 2020-10-22 | 2021-02-23 | 北京和利时系统工程有限公司 | 一种背板总线主站、系统及其数据通信方法 |
CN113722254A (zh) * | 2021-05-24 | 2021-11-30 | 核工业理化工程研究院 | 一种适用于工业控制现场的多主机通讯总线系统 |
CN114221439A (zh) * | 2021-12-08 | 2022-03-22 | 南京丰道电力科技有限公司 | 功率控制系统实时数据交换方法及装置 |
CN114448801A (zh) * | 2021-12-23 | 2022-05-06 | 东莞市李群自动化技术有限公司 | 实时通道组创建的方法、网络拓扑、设备及存储介质 |
CN114488951A (zh) * | 2021-12-30 | 2022-05-13 | 深圳市正运动技术有限公司 | 总线转脉冲方法、系统、装置、终端设备及存储介质 |
-
2020
- 2020-01-14 CN CN202010037631.6A patent/CN111123806A/zh active Pending
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111858160A (zh) * | 2020-06-23 | 2020-10-30 | 杭州龙境科技有限公司 | 一种便于云手机访问的IeMMC方法和系统 |
CN111858160B (zh) * | 2020-06-23 | 2023-12-22 | 杭州龙境科技有限公司 | 一种便于云手机访问的IeMMC方法和系统 |
CN112147927A (zh) * | 2020-09-11 | 2020-12-29 | 苏州谷夫道自动化科技有限公司 | 一种双通道总线通信的多轴运动控制系统 |
CN112147927B (zh) * | 2020-09-11 | 2022-02-11 | 苏州谷夫道自动化科技有限公司 | 一种双通道总线通信的多轴运动控制系统 |
CN112398714A (zh) * | 2020-10-22 | 2021-02-23 | 北京和利时系统工程有限公司 | 一种背板总线主站、系统及其数据通信方法 |
CN113722254A (zh) * | 2021-05-24 | 2021-11-30 | 核工业理化工程研究院 | 一种适用于工业控制现场的多主机通讯总线系统 |
CN113722254B (zh) * | 2021-05-24 | 2023-06-20 | 核工业理化工程研究院 | 一种适用于工业控制现场的多主机通讯总线系统 |
CN114221439A (zh) * | 2021-12-08 | 2022-03-22 | 南京丰道电力科技有限公司 | 功率控制系统实时数据交换方法及装置 |
CN114448801A (zh) * | 2021-12-23 | 2022-05-06 | 东莞市李群自动化技术有限公司 | 实时通道组创建的方法、网络拓扑、设备及存储介质 |
CN114448801B (zh) * | 2021-12-23 | 2024-04-12 | 东莞市李群自动化技术有限公司 | 实时通道组创建的方法、网络拓扑、设备及存储介质 |
CN114488951A (zh) * | 2021-12-30 | 2022-05-13 | 深圳市正运动技术有限公司 | 总线转脉冲方法、系统、装置、终端设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN211207146U (zh) | 一种具有双数据通道的EtherCAT主站系统 | |
CN111123806A (zh) | 一种具有双数据通道的EtherCAT主站系统 | |
US5634015A (en) | Generic high bandwidth adapter providing data communications between diverse communication networks and computer system | |
KR101077900B1 (ko) | 네트워크 효율성을 고려한 SoC 기반 시스템 네트워크에서의 인터페이스 장치의 통신방법 및 그에 의해 통신하는 인터페이스 장치 | |
KR101028898B1 (ko) | 플렉스레이 통신 장치 | |
JP4571671B2 (ja) | 通信モジュールのメッセージメモリのデータへアクセスする方法および装置 | |
RU2390053C2 (ru) | Диспетчер сообщений и способ управления доступом к данным в памяти сообщений коммуникационного компонента | |
EP2721770B1 (en) | Integrated circuit device and method of performing cut-through forwarding of packet data | |
US20090300254A1 (en) | Method for Connecting a Flexray user having a Microcontroller to a Flexray Communications line Via a Flexray Communications Control Device, and Flexray Communications Control Device, Flexray User, and Flexray Communications System for Realizing this Method | |
JP4903801B2 (ja) | FlexRay通信モジュールとFlexRay加入者装置とを繋ぐ加入者インタフェース、およびFlexRay通信モジュールとFlexRay加入者装置とを繋ぐ加入者インタフェースを経由するメッセージの伝送方法 | |
JP2009511318A (ja) | マイクロコントローラとFlexRay通信モジュールとを繋ぐ加入者インタフェース、FlexRay加入者装置、およびマイクロコントローラとFlexRay通信モジュールとを繋ぐ加入者インタフェースを経由するメッセージの伝送方法 | |
US20110128977A1 (en) | Data transfer device, data transmitting device, data receiving device, and data transfer method | |
CN112953683B (zh) | 一种自适应速率srio接口数据发送方法 | |
KR20120040535A (ko) | 버스 시스템 및 그것의 동작 방법 | |
EP2699030B1 (en) | Route switching device, network switching system and route switching method | |
EP1401155B1 (en) | Method and system for wakeup packet detection at gigabit speeds | |
KR20070039937A (ko) | 메시지 메모리 내에서 메시지를 저장하기 위한 방법 및상응하는 메시지 메모리 | |
JP2009502072A (ja) | FlexRay通信モジュール及びFlexRay通信制御装置、並びにFlexRay通信接続とFlexRay加入者装置との間でメッセージを伝送する方法 | |
CN114185830A (zh) | 基于mailbox的多处理器通信方法、设备、系统和存储介质 | |
EP1351459B1 (en) | Data transfer control device and electronic equipment | |
CN110519137A (zh) | 转接装置 | |
WO2024040483A1 (zh) | 一种调频方法和装置 | |
CN219611809U (zh) | 基于以太网控制自动化技术的主站控制器、主站和系统 | |
US11625353B1 (en) | Prioritized parallel to serial interface | |
CN114513382B (zh) | 一种基于网卡的实时以太网现场总线网络数据包处理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |