一种基于EtherCAT总线的通信协议方法及系统与流程

文档序号:11147871阅读:906来源:国知局
一种基于EtherCAT总线的通信协议方法及系统与制造工艺

本发明涉及通信协议领域,尤其涉及一种基于EtherCAT总线的通信协议方法及系统。



背景技术:

现有的以太网通信协议中,从站的传输方式一般采用存储转发的模式,当主站发送报文、数据包时,在每个从站(连接点)接收以太网数据包,然后进行解码并复制为过程数据,并进行转发至下一个从站,使得报文在传输的过程中是逐个往下传输。然而,此种传输方式在报文数据包数据量庞大的时候,从站所需的解码复制时间较长,会导致数据包传输的时间过长,造成较大的延迟。



技术实现要素:

本发明实施例提供了一种基于EtherCAT总线的通信协议方法及系统,解决了现有的以太网通信协议中,从站的传输方式一般采用存储转发的模式,在报文数据包数据量庞大的时候,从站所需的解码复制时间较长,会导致数据包传输的时间过长,造成较大的延迟的技术问题。

本发明实施例提供的一种基于EtherCAT总线的通信协议方法,包括:

主站和从站;

方法步骤包括:从站获取到由主站发送的数据帧,并对数据帧的MAC地址及数据帧的数据类型进行判断,若数据帧的MAC地址为从站的MAC地址且数据帧为EtherCAT数据类型时,接收数据帧并分析数据帧,否则不接收数据帧。

可选地,从站获取到由主站发送的数据帧之前还包括:

主站将获取到的要发送的数据帧储存于RAM中,并在获取到数据帧发送指令时将储存于RAM中的数据帧读出并发送至从站。

可选地,数据帧包括以太网帧头、EtherCAT数据和FCS。

可选地,从站获取到由主站发送的数据帧,并对数据帧的MAC地址及数据帧的数据类型进行判断,若数据帧的MAC地址为从站的MAC地址且数据帧为EtherCAT数据类型时,接收数据帧并分析数据帧之后还包括:

若分析得数据帧的地址命令段为从站自增写操作命令时,从站将数据帧保存到内存空间中。

可选地,从站获取到由主站发送的数据帧,并对数据帧的MAC地址及数据帧的数据类型进行判断,若数据帧的MAC地址为从站的MAC地址且数据帧为EtherCAT数据类型时,接收数据帧并分析数据帧之后还包括:

若分析得数据帧的地址命令段为写入操作命令时,从站将内存空间中的数据写入到数据帧。

可选地,从站采用寄存器保存数据帧。

本发明实施例提供的一种基于EtherCAT总线的通信协议系统,包括:

主站和从站;

从站包括获取判断模块,用于获取到由主站发送的数据帧,并对数据帧的MAC地址及数据帧的数据类型进行判断,若数据帧的MAC地址为从站的MAC地址且数据帧为EtherCAT数据类型时,接收数据帧并分析数据帧,否则不接收数据帧。

可选地,主站包括:

储存模块,用于将获取到的要发送的数据帧储存于RAM中,并在获取到数据帧发送指令时将储存于RAM中的数据帧读出并发送至从站。

可选地,从站包括:

第一分析模块,用于若分析得数据帧的地址命令段为从站自增写操作命令时,从站将数据帧保存到内存空间中。

可选地,从站还包括:

第二分析模块,用于若分析得数据帧的地址命令段为写入操作命令时,从站将内存空间中的数据写入到数据帧。

从以上技术方案可以看出,本发明实施例具有以下优点:

本发明实施例提供了一种基于EtherCAT总线的通信协议方法及系统,包括:从站获取到由主站发送的数据帧,并对数据帧的MAC地址及数据帧的数据类型进行判断,若数据帧的MAC地址为从站的MAC地址且数据帧为EtherCAT数据类型时,接收数据帧并分析数据帧,否则不接收数据帧,本发明实施例中通过从站在数据帧的传输过程中对数据帧的MAC地址及数据帧的数据类型进行判断,在数据帧的MAC地址为从站的MAC地址且数据帧为EtherCAT数据类型时才接收该数据帧并进行分析,否则直接将数据帧传输至下一个从站,大大降低了数据帧的传输延迟,解决了现有的以太网通信协议中,从站的传输方式一般采用存储转发的模式,报文数据包数据量庞大的时候,从站所需的解码复制时间较长,会导致数据包传输的时间过长,造成较大的延迟的技术问题。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。

图1为本发明实施例提供的一种基于EtherCAT总线的通信协议方法的流程示意图;

图2(a)为本发明实施例提供的一帧数据的示意图;

图2(b)为本发明实施例提供的一帧数据的另一个示意图;

图2(c)为本发明实施例提供的一帧数据的另一个示意图;

图2(d)为本发明实施例提供的一帧数据的另一个示意图;

图2(e)为本发明实施例提供的一帧数据的另一个示意图;

图3为本发明实施例提供的一种伪双口RAM的结构示意图;

图4为本发明实施例提供的从站的数据帧判断流程示意图;

图5为本发明实施例提供的一种基于EtherCAT总线的通信协议系统。

具体实施方式

本发明实施例提供了一种基于EtherCAT总线的通信协议方法及系统,用于解决现有的以太网通信协议中,从站的传输方式一般采用存储转发的模式,报文数据包数据量庞大的时候,从站所需的解码复制时间较长,会导致数据包传输的时间过长,造成较大的延迟的技术问题。

为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

请参阅图1,本发明实施例提供的一种基于EtherCAT总线的通信协议方法包括:

101、主站将获取到的要发送的数据帧储存于RAM中,并在获取到数据帧发送指令时将储存于RAM中的数据帧读出并发送至从站。

首先,由主站将需要发送的一个完整的数据帧储存到RAM中,并在获取到数据帧发送指令时将储存于RAM中的数据帧读出并发送至从站。其中,一个完整的数据帧包括有以太网帧头、EtherCAT数据和FCS。请参阅图2(a)至图2(e),为根据协议帧的格式所定义的一帧完整的数据:包括在RAM中所保存的地址和所代表的意思,包括了前导序,数据和帧尾,一共是71个数据。请参阅图3,主站采用伪双口RAM来进布于存储数据,数据先从Data端写入,写入到相应的地址中,当要发送数据时根据读时钟和读地址将数据从RAM中读出,从端口Q输出。

102、从站获取到由主站发送的数据帧,并对数据帧的MAC地址及数据帧的数据类型进行判断,若数据帧的MAC地址为从站的MAC地址且数据帧为EtherCAT数据类型时,接收数据帧并分析数据帧,否则不接收数据帧。

在从站获取到由主站发送的数据帧之后,从站先判断这个数据帧的目的地址,如果是从站自身的MAC地址,就接收并继续判断数据的类型是不是EtherCAT的类型,若是就接收该数据帧并对该数据帧进行分析,在判断过程中,如果接收数据的MAC地址不是从站自身MAC地址的,或者数据类型不是EtherCAT的类型时,就结束判断并且不接收数据。请参阅图4,为从站的数据帧判断流程示意图。从站在进行接收的整个过程中采用状态机的形式来实现。

103、若分析得数据帧的地址命令段为从站自增写操作命令时,从站将数据帧保存到内存空间中。

在从站分析得数据帧的地址命令段为从站自增写操作命令时,如当地址10处的命令段为02的时候,即将主站发来的数据帧的内容保存到从站的内存空间中。

104、若分析得数据帧的地址命令段为写入操作命令时,从站将内存空间中的数据写入到数据帧。

在从站分析得数据帧的地址命令段为写入操作命令时,如当地址10处的命令段为01的时候,从站将内存空间中的数据写入到数据帧的某个地址中去。

以上为对本发明实施例提供的一种基于EtherCAT总线的通信协议方法的详细描述,为便于理解,以下将对主站发送数据包至从站的过程进行仿真演示。

仿真采用Modlelsim仿真软件,时钟选用100M的时钟,数据的采样时钟也是100M。数据包括前导序六个字节的0x“BC”,MAC地址中的目的地址和源地址,和第一个EtherCAT数据报文,包括有EtherCAT报文的帧头和从站所要接收的8个字节的数据:0x“0203040506070809”。第二个从站的数据没有MAC地址的信息,一个EtherCAT系统中只有第一个被寻址的从站可以用MAC地址来寻址,其他的从站对于MAC数据都没有识别能力的,如果随便的一个从站被放到不是EtherCAT系统中使用的话将会引起广播风暴,因为它会接收所有的包。从第二个数据报文开始将依靠从站内部的寻址方式来实现寻址,本仿真只是对于第一个从站接收数据的过程仿真。

在以上所定义的数据的帧结构中,定义了从站将要接收的数据的个数是8个字节的数据0x“0203040506070809”。从站要接收的数据,最后将会被保存到从站的寄存器中,寄存器采用移位寄存器的形式来保存数据。在没有接收数据的时候,移位寄存器中一直都是“0”的,一共是8个字节的“0”。当有数据要保存到寄存器中的时候,首先是数据0x“02”被保存到寄存器的最低位,然后是0x“03”被保存到最低位,同时0x“02”向高位移动了一个字节,依次类推,直到数据0x“09”被保存到寄存器为止。最后在寄存器data_slave_reg中保存的数据就是0x“0203040506070809”。至此数据保存到从站的过程就结束了。还可以看到进入到从站中的数据和被从站寄存器保存的数据之间只有1.5个周期的延迟,即15ns的延迟。整个数据接收的过程用时为8个周期即80ns。

状态机在数据和计数器到达指定的条件的时候就进行跳变,在写状态的时候,从站的数据寄存器中的数据是有变化的,数据帧中的数据被写入到从站寄存器,其他状态的时候寄存器都是处于“0”状态的,当数据存放完之后就会自动的跳转到空闲状态。

以上为对主站发送数据包至从站的过程进行仿真的过程所进行的详细描述,以下将对本发明实施例中提供的一种基于EtherCAT总线的通信协议系统进行详细的描述。

请参阅图5,本发明实施例提供的一种基于EtherCAT总线的通信协议系统,包括:

主站和从站;

从站包括获取判断模块,用于获取到由主站发送的数据帧,并对数据帧的MAC地址及数据帧的数据类型进行判断,若数据帧的MAC地址为从站的MAC地址且数据帧为EtherCAT数据类型时,接收数据帧并分析数据帧,否则不接收数据帧。

主站包括:

储存模块,用于将获取到的要发送的数据帧储存于RAM中,并在获取到数据帧发送指令时将储存于RAM中的数据帧读出并发送至从站。

从站还包括:

第一分析模块,用于若分析得数据帧的地址命令段为从站自增写操作命令时,从站将数据帧保存到内存空间中。

第二分析模块,用于若分析得数据帧的地址命令段为写入操作命令时,从站将内存空间中的数据写入到数据帧。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1