本发明一般涉及以太网网络,特别涉及以太网接口模块。
背景技术:
以太网已经在广泛的产品系列中使用。然而,以太网需要相当数量的硬件和软件来实现甚至简单的设备。
典型的以太网设备,甚至具有非常简单的功能的以太网设备,除了提供以太网通信(除了设备的实际功能之外)还需要以下组件:
1.以太网物理接入层(phy)及相关磁性元件,连接器等硬件。
2.以太网介质访问控制(mac),用于在设备和phy之间以数字形式传送数据包。
3.分组存储器,用于在接收到的分组被评估和消费时存储它们,并且存储输出分组用于传输。
4.用于评估通过以太网通信的一系列协议的微处理器和软件。在实现中评估的协议将包括以下一些以及各种其他协议:
arp(地址解析协议)
icmp(internet控制消息协议)
udp(用户数据报协议)
tcp(传输控制协议)
dhcp(动态主机配置协议)
bootp(引导协议)
5.用于每个设备的以太网交换装置,包括用于每个设备的通用交换机上的端口或者在单独设备上的交换资源。以太网交换装置需要额外的存储器和硬件逻辑资源,以及用于交换机管理的附加软件/协议要求。
上面列出的组件是除了以太网设备的实际功能所需的组件之外的组件。
即使以太网简单设备实现的大量硬件和软件使得以太网对于某些类别的应用而言成本过高。
因此,非常需要提供一种需要较少组件,较不复杂且成本较低的以太网接口或节点。
技术实现要素:
根据本发明的原理,提供了非常低成本的以太网接口,其将更复杂的功能和产品差异推向更高级别的设备。
以太网接口实施例利用phy和mac块,但不需要分组存储器,协议评估软件和每个设备的交换资源。
被配置为将设备耦合到以太网网络装置的以太网接口模块的实施例包括:包括第一phy和第一mac的第一全双工端口,以及包括第二phy和第二mac的第二全双工端口。第一全双工端口和第二双工端口各自可操作以在网络和设备之间传送帧。每个帧包括目的地址字段、源地址字段和命令字段。以太网接口模块还包括耦合第一双工端口和第二全双工端口的第一路径;耦合所述第二全双工端口和所述第一全双工端口的第二路径;设置在所述第一路径中的第一队列;设置在所述第二路径中的第二队列;以及耦合到所述第一队列和所述第二队列的评估装置。评估装置从接收到的来自第一全双工端口或第二全双工端口之一的帧中接收的目的地地址确定所接收的帧是否寻址到该设备。评估装置包括与可变命令相关联的命令标识,并且评估装置操作以在确定接收的帧将与设备一起使用之后识别在命令字段中接收到命令标识时应用于设备的可变命令。
评估装置包括可以是随机存取存储器以存储命令标识的存储器。
评估装置可操作以使得如果地址不与以太网接口模块相关联,所接收的帧从接收到所述接收到的帧的所述第一全双工端口或所述第二全双工端口中的所述一个转发到所述第一全双工端口或第二全双工端口中的所述一个的另一个。
以太网接口模块具有一个或多个目的地地址,并且如果所接收的目的地地址与所述以太网接口模块不相关联,则所述评估装置可操作以使所述接收到的帧被转发到所述第一双工端口或所述第二全双工端口中的所述一个的另一个。
第一队列可操作以存储在第一全双工端口处接收的接收帧的第一预定数量的字节,并且第二队列可操作以存储在第二全双工端口处接收的接收帧的第二预定数量的字节双工端口。
操作第一队列和第二队列,使得与在第一全双工端口和第二全双工端口之一处接收的接收帧同时地,所接收的帧穿过第一队列和第二全双工端口中的相应一个并且被提供给第一双工端口和第二全双工端口中的另一个作为发送帧。
评估装置可以包括设备的单播地址和设备支持的一个或多个多播地址。
以太网接口模块还包括读/写装置。读/写装置可操作使得如果评估装置确定接收帧的目的地址字段包含单播地址,则读/写装置将一个或多个多播地址中的预定的一个组播地址插入到目的地字段中的发送帧中的目的地地址。
评估装置还可操作以使得所接收的帧从接收到所述接收到的帧的所述第一全双工端口或所述第二全双工端口中的所述一个转发到所述第一全双工端口或第二全双工端口(如果地址不与以太网接口模块相关联)。
以太网接口模块可以包括与其相关联的预定以太网类型;并且所述评估装置可操作以确定所接收的帧以太网类型字段中的所接收的以太网类型是否匹配所述预定的以太网类型。
评估装置在确定接收到的以太网类型与预定以太网类型匹配之后,确定帧命令字段是否包含应用于设备的接收到的命令。
以太网接口模块还包括耦合到所述设备的设备接口和数据存储器。数据存储器和评估设备响应于应用于设备的接收到的命令而协作地操作以在接收到的帧穿过第一或第二队列时从接收到的帧中提取接收的数据,或者将发送数据插入到接收的帧中,接收数据。
评估装置可操作以使得如果目的地地址不与以太网接口模块相关联,则将接收到的帧转发到第一双工端口或第二全双工端口中的另一个,并从其中的另一个传送。
评估装置在确定接收的以太网类型对应于设备以太网类型之后,确定命令字段是否包含应用于设备的接收到的命令。如果命令字段包含应用于设备的接收到的命令,则从接收到的帧中提取所接收的命令中涉及的以太网接口模块数据或将其插入到所发送的帧中。发送的分组由以太网接口模块以与接收的分组相同的长度来维护。
如果评估设备确定接收的命令不适用于设备,则从以太网接口模块发送所接收的帧作为发送的帧。
以太网接口模块包括到所述设备的接口;存储装置,用于存储在所述设备与所述第一队列和所述第二队列之间交换的数据;和读/写设备。当接收到的帧经过以太网接口模块时,读/写设备操作以从接收的帧提取数据或将数据插入到接收的帧中。
评估装置确定针对所接收的帧发生的动作。动作的确定基于接收帧的目的地地址字段中的目的地地址,接收帧的以太类型字段中的以太类型和接收帧的命令字段中的命令标识中的一个或多个。
以太网接口模块可以被配置为将设备耦合到以太网网络装置:包括第一phy和第一mac的第一全双工端口和包括第二phy和第二mac的第二全双工端口。第一全双工端口和第二双工端口各自可操作以在网络和设备之间传送分组数据的帧。每个帧包括目的地址字段,源地址字段和命令字段。以太网接口模块包括耦合第一双工端口和第二全双工端口的第一路径;耦合所述第二全双工端口和所述第一全双工端口的第二路径;设置在所述第一路径中的第一队列,所述第一队列被选择为存储帧的预定数量的字节;设置在所述第二路径中的第二队列,所述第二队列被选择为存储帧的预定数量的字节;以及耦合到所述第一队列和所述第二队列的评估装置,所述评估装置可操作用于确定所接收的帧是否是从在所接收的帧中从所述第一全双工端口中的一个接收的接收到的目的地地址寻址到所述设备,第二全双工端口。第一队列可操作以将在第一全双工端口接收的每个接收帧传送到第二全双工端口,以提供延迟预定固定延迟时间的传送帧。第二队列可操作以将在第二全双工端口接收的每个接收帧传送到第一全双工端口,以提供延迟了预定固定延迟时间的传送帧。评估装置包括与可变命令相关联的命令标识。评估设备操作以在确定接收到的帧将与设备一起使用之后识别在命令字段中接收到命令标识时应用于设备的可变命令。
预定的固定延迟时间可以由预定数量的字节确定。
以太网接口模块包括读/写设备。读/写设备可操作用于将在第一全双工端口或第二全双工端口之一处接收的接收帧中的第一预定分组数据替换为第二预定分组数据,作为将接收到的帧提供给第一全双工端口和第二全双工端口。
以太网接口模块还可以包括耦合到设备的接口;并且所述读/写设备耦合到所述第一队列和所述第二队列以及所述接口。读/写设备操作以从第一队列或第二队列提取接收的帧数据,并用来自设备的数据替换提取的接收帧数据。
以太网接口模块还可以包括数据存储器。响应于所接收的命令,数据存储器,评估设备和读取/写入设备协作地操作以应用于设备,以在所接收的帧穿过第一队列或第一队列中的相应一个时从接收到的帧中提取接收的帧数据并且将发送数据插入接收的帧中以代替接收的数据。
以太网接口模块被配置为将设备耦合到以太网网络装置包括:包括第一phy和第一mac的第一全双工端口,包括第二phy和第二mac的第二全双工端口,第一耦合第一全双工端口和第二全双工端口的第二路径,设置在第一路径中的第一队列和设置在第二路径中的第二队列。第一全双工端口和第二全双工端口均可操作以在网络和设备之间传送帧。每个帧包括目的地地址字段和命令字段。以太网接口模块还包括耦合到第一队列和第二队列的评估装置,评估装置根据在接收到的帧中从第一全双工端口或第二全双工端口之一接收的接收目的地地址确定接收的帧被寻址到该设备。评估装置包括与可变命令相关联的命令标识,并且在确定接收的帧将与设备一起使用之后,操作以识别在接收到命令字段中的命令标识时应用于设备的可变命令。
一种被配置为将设备耦合到以太网网络装置的以太网接口模块包括:包括第一phy和第一mac的第一全双工端口,以及包括第二phy和第二mac的第二全双工端口。第一全双工端口包括第一接收部分和第一发送部分。第二双工端口包括第二接收部分和第二发送部分。第一全双工端口和第二双工端口各自可操作以在网络和设备之间传送分组帧。每个帧包括目的地地址字段和命令字段。以太网接口模块还包括耦合第一双工端口和第二全双工端口的第一路径,耦合第二全双工端口和第一全双工端口的第二路径,设置在第一路径中的第一队列,在第二路径中,耦合第一接收部分和第一发射部分并包括第一队列的至少一部分的第三路径,耦合第二接收部分和第二发射部分的第四路径,并且包括至少一部分第二队列,以及耦合到第一队列和第二队列的评估装置。评估装置可操作以确定接收到的帧是否是从在第一全双工端口或第二全双工端口之一的接收帧中接收的接收目的地地址寻址到设备。评估装置包括与可变命令相关联的命令标识,并且在确定接收的帧将与设备一起使用之后,操作以识别在接收到命令字段中的命令标识时应用于设备的可变命令。以太网接口模块可操作在作为以太网现场节点的第一模式中和作为以太网结束模式的第二模式中。当以太网接口模块处于第一模式时,其可操作以在第一全双工端口或第二全双工端口之一处接收所接收的帧,并且在第一全双工端口和第二全双工端口中的另一个处发送所接收的帧全双工端口,并且当以太网接口模块处于第二模式时,其可操作以在第一全双工端口或第二全双工端口之一处接收所接收的帧,并且在第一全双工端口中的同一个处发送所接收的帧全双工端口和第二全双工端口。
评估装置可以包括存储命令标识的存储器。存储器可以是随机存取存储器。
如果包含在接收的帧中的接收的目的地地址不与以太网接口模块相关联,评估装置可以在第一模式中操作,以使得所接收的帧从接收到所接收的帧的第一全双工端口或第二全双工端口中的一个转发到第一全双工端口或第二全双工端口的另一个。
设备可以具有与其相关联的一个或多个目的地地址。
评估装置可操作在第一模式中,以使得如果接收到的目的地地址不与第一双工端口或第二全双工端口中的另一个相关联,则将接收到的帧转发到另一个双工端口或另一个双工端口,以太网接口模块。
第一队列可操作以存储在第一全双工端口处接收的接收帧的第一预定数量的字节,并且第二队列可操作以存储在第二全双工端口处接收的接收帧的第二预定数量的字节双工端口。
第一队列和第二队列以第一模式操作,使得与在第一全双工端口和第二全双工端口之一处接收的接收帧同时地,所接收的帧穿过第一全双工端口和第二全双工端口中的相应一个,队列和第二队列,并且被提供给第一双工端口和第二全双工端口中的另一个作为发送帧。
评估装置可以包括设备的单播地址和设备支持的一个或多个多播地址。
以太网接口模块还包括读/写装置,其可操作使得如果评估装置确定接收帧的目的地址字段包含单播地址,则读/写装置插入一个或多个多播的预定的一个地址代替发送的帧中的目的地址到目的地字段中。
评估装置可以在第一模式中操作,以使接收的帧从接收到所接收的帧的第一全双工端口或第二全双工端口中的一个转发到另一个第一全双工端口或第二全双工端口(如果地址不与以太网接口模块相关联)。
以太网接口模块包括与其相关联的预定以太网类型,并且评估装置可操作用于确定接收到的帧以太网类型字段中接收的以太网类型是否与预定以太网类型匹配。在确定接收的以太网类型与预定以太网类型匹配之后,评估装置确定帧命令字段是否包含应用于设备的接收到的命令。
以太网接口模块还可以包括耦合到设备的设备接口和数据存储器。数据存储器和评估设备响应于接收到的命令而协同地操作以应用于设备,以在接收到的帧经过以太网接口模块时从接收到的帧中提取接收的数据,或者将发送数据插入到发送的帧中,取代接收的数据。发送的分组由以太网接口模块以与接收的分组相同的长度来维护。
如果评估设备确定接收到的命令不适用于设备,则从以太网接口模块发送所接收的帧作为发送的帧。
以太网接口模块可以包括到设备的接口,用于存储在设备和第一队列和第二队列之间交换的数据的存储装置,以及读/写设备。当接收到的帧经过以太网接口模块时,读/写设备操作以从接收的帧提取数据或将数据插入到接收的帧中。
以太网接口模块被配置为将设备耦合到以太网网络装置,包括:包括第一phy和第一mac的第一全双工端口,包括第二phy和第二mac的第二全双工端口;第一路径,耦合所述第一双工端口和所述第二全双工端口;第二路径,耦合所述第二全双工端口和所述第一全双工端口;第一队列,设置在所述第一路径中,被选择为存储帧的预定数量的字节;第二队列,其被布置在所述第二路径中,被选择来存储帧的预定数量的字节;以及评估装置,其耦合到所述第一队列和所述第二队列。第一全双工端口和第二双工端口各自可操作以在网络和设备之间传送分组数据的帧。每个帧包括目的地址字段,源地址字段和命令字段。评估装置可操作以确定接收到的帧是否是从在第一全双工端口或第二全双工端口之一的接收帧中接收的接收目的地地址寻址到设备。第一队列可操作以将在第一全双工端口接收的每个接收帧传送到第二全双工端口,以提供延迟预定固定延迟时间的传送帧。第二队列可操作以将在第二全双工端口接收的每个接收帧传送到第一全双工端口,以提供延迟了预定固定延迟时间的传送帧。评估装置包括与可变命令相关联的命令标识,并且在确定接收的帧将与设备一起使用之后,操作以识别在接收到命令字段中的命令标识时应用于设备的可变命令。以太网接口模块可操作在作为以太网现场节点的第一模式中和作为以太网结束模式的第二模式中。以太网接口模块在处于第一模式时可操作以在第一全双工端口或第二全双工端口之一处接收所接收的帧,并在第一全双工端口和第二全双工端口中的另一个处发送所接收的帧全双工端口。以太网接口模块在处于第二模式时可操作以在第一全双工端口或第二全双工端口之一处接收所接收的帧,并且在第一全双工端口和第二全双工端口中的同一个处发送所接收的帧接收所接收的帧的双工端口。
以太网接口模块被配置为将设备耦合到以太网网络装置,并且包括:包括第一phy和第一mac的第一全双工端口,所述第一双工端口包括接收部分和发送部分,并且可操作以在网络和设备之间传送分组帧。每个帧包括目的地地址字段和命令字段。以太网接口模块还包括将第一双工端口的接收部分耦合到第一全双工端口的发送部分的第一路径,设置在第一路径中的队列,以及评估装置,耦合到所述队列,所述评估装置根据在接收帧中从所述接收部分接收的接收到的目的地地址来确定所述接收的帧是否寻址到所述设备。评估装置包括与可变命令相关联的命令标识,并且在确定接收的帧将与设备一起使用之后,操作以识别在接收到命令字段中的命令标识时应用于设备的可变命令。
以太网接口模块包括存储命令标识的第一存储器。第一存储器包括随机存取存储器。
评估装置可操作以使所接收的帧从所接收的部分转发到发送部分。当接收到的帧不与以太网接口模块相关联时,接收到的帧从接收部分转发到发送部分而不改变。当接收到的帧不与以太网接口模块相关联时,接收到的帧从接收部分转发到发送部分而不改变。
队列可操作以存储接收到的帧的第一预定数量的字节。队列操作使得与经由接收部分接收的接收帧同时,接收到的帧经过队列并且作为发送帧提供给发送部分。
评估装置包括设备的单播地址和设备支持的一个或多个多播地址。以太网接口模块还包括读/写装置,其可操作使得如果评估装置确定接收帧的目的地地址字段包含单播地址,则读/写装置将一个或多个多播地址中的预定的一个插入到目的地字段代替接收帧中的目的地地址。评估装置可操作用于如果目的地地址不与以太网接口模块相关联,则使接收到的帧从接收到的部分转发到发送部分。以太网接口模块包括与其相关联的预定以太网类型,并且可操作用于确定接收到的帧以太类型字段中接收的以太网类型是否与预定以太网类型匹配。评估装置在确定接收到的以太网类型与预定以太网类型匹配之后,可操作以确定帧命令字段是否包含应用于设备的接收到的命令。
在确定所接收的以太网类型对应于设备以太网类型之后,评估设备可操作以确定命令字段是否包含应用于设备的接收到的命令。如果命令字段包含应用于设备的接收到的命令,则从接收到的帧中提取以太网接口模块数据或将其插入到传输的帧中。如果评估设备确定接收到的命令不适用于设备,则将接收的帧作为发送的帧来发送。如果评估设备确定接收到的以太网类型不对应于设备以太网类型,则将接收到的帧作为发送帧从以太网接口模块发送。
以太网接口模块还可以包括:耦合到所述设备的设备接口和数据存储器。数据存储器和评估设备响应于所接收的命令而应用于设备以协作地操作,以便在所接收的帧穿过队列时从接收的帧提取接收的数据,或者代替接收的数据将发送数据插入到接收的帧中。发送的分组由以太网接口模块以与接收的分组相同的长度来维护。
以太网接口模块还可以包括:到设备的接口,用于存储在设备与第一队列和第二队列之间交换的数据的存储装置,以及读/写设备。读/写设备操作以在所接收的帧穿过队列时从所接收的帧提取数据或将数据插入到所接收的帧中。
评估装置确定对于所接收的帧发生的动作。动作的确定基于接收帧的目的地地址字段中的目的地地址,接收帧的以太类型字段中的以太类型和接收帧的命令字段中的命令标识中的一个或多个。
队列可操作以将每个接收到的帧从所接收的部分传送到传送部分,以提供延迟预定固定延迟时间的传送帧。选择队列以存储接收帧的预定数量的字节。队列可操作以将每个接收到的帧从接收部分传送到传送部分,以提供延迟预定固定延迟时间的传送帧。预定的固定延迟时间由预定的字节数确定。
一种被配置为将设备耦合到以太网的以太网接口模块包括:第一全双工端口,包括接收部分和发送部分,并且可操作以在所述以太网和所述设备之间传送帧;第二全双工端口,包括第二接收部分和可操作以在所述网络和所述设备之间传送帧的第二发送部分;耦合所述第一双工端口和所述第二全双工端口的第一路径;耦合所述第二全双工端口和所述第一全双工端口的第二路径;设置在所述第一路径中的第一队列;设置在所述第二路径中的第二队列;耦合所述第一接收部分和所述第一发射部分的第三路径,所述第三路径包括所述第一队列的至少一部分;耦合所述第二接收部分和所述第二发射部分的第四路径,所述第四路径包括所述第二队列的至少一部分;评估装置,其耦合到所述第一队列和所述第二队列。评估装置可操作以从所接收的帧中的来自第一全双工端口或第二全双工端口之一的接收到的目的地地址确定所接收的帧是否寻址到所述设备。每个接收的帧包括源地址字段,其包括源地址,包括目的地地址的目的地地址字段,用于识别帧类型的帧类型字段,以及用于向设备提供命令的命令字段。评估装置确定接收到的帧是否寻址到设备,并且确定帧类型字段是否包含帧类型。
每个帧类型用于标识该帧是否包括预定字段。预定字段包括序列标识字段和返回地址字段中的一个或多个。包含在帧类型字段中的每个帧类型包括被设置为第一状态的第一预定比特,并且包含在命令字段中的每个命令包括被设置为第二状态的第一预定比特,第一状态和第二状态被选择为不同以区分帧类型字段和命令字段。
每个以太网接口模块包括标识该以太网接口模块的目的地地址以太网接口模块。每个接收的帧包括包含目的地地址的目的地地址字段和包含指示帧的源的源地址的源地址字段。以太网接口模块可与设备一起操作以修改所接收的帧的字段,并且不改变源地址以产生返回帧。
以太网接口模块可与设备一起操作以修改接收到的帧的字段,以产生修改的返回帧,将模块的地址插入到返回帧的源地址字段中,并利用返回地址来识别目的地的返回框。
以太网接口模块可以包括标识以太网接口模块的目的地地址和返回地址。每个接收的帧包括包含目的地地址的目的地地址字段和包含指示帧的源的源地址的返回地址字段。以太网接口模块可与设备一起操作以修改接收到的帧的字段,以产生修改的返回帧,将模块的地址插入到返回帧的源地址字段中,并利用返回地址来识别返回帧。返回地址被插入到返回帧的目的地址字段中。
每个接收的帧包括包含序列标识的序列标识字段。一系列接收到的帧的序列标识具有彼此预定的关系。以太网接口模块利用序列标识来确定接收的帧是否与先前接收的帧具有预定关系。当确定接收到的帧的序列标识不具有预定关系时,以太网接口模块对接收到的帧执行预定操作。预定操作可以包括拒绝接收的帧。预定操作可以包括向接收到的帧的源提供所接收的帧已经被拒绝的指示。
以太网网络包括发起接收帧的主设备;并且命令字段具有包括相关联的命令数据的一个或多个相关联的数据字段。以太网接口模块包括与其相关联的唯一标识密钥,并且主设备具有唯一标识密钥。
接收的帧包括序列标识字段和安全字段,序列标识字段包括序列标识,并且安全字段包括用于包含在相关联的数据字段之一中的第一数据的加密散列值。由主机利用唯一的标识密钥在序列标识和第一数据上计算加密的散列值。
接收的帧可以包括第二序列标识字段和第二安全字段。第二序列标识字段包括第二序列标识。第二安全字段包括用于包含在相关联的数据字段的第二个中的第二数据的第二加密散列值。通过主机利用唯一的标识密钥在第二序列标识和第二数据上计算第二加密散列值。
以太网接口模块还可以包括:第一数据寄存器;第二数据寄存器;以及在接收帧上操作以检查具有第一加密散列值的第一数据和具有第二加密散列值的第二数据的装置。如果第一加密散列值验证第一数据的完整性,则装置将第一数据存储在第一数据寄存器中,并且如果第二加密散列值验证第二数据的完整性,则将第二数据存储在第二寄存器中。该装置比较第一存储数据和第二存储数据。如果第一存储数据和第二存储数据相同,则将第一存储数据和第二存储数据中的至少一个输出到设备。如果第一存储数据和第二存储数据不相同,则以太网接口设备拒绝接收的帧。
以太网接口模块可与设备一起操作以修改接收到的帧的字段,以产生返回帧并通过以太网传输返回帧。返回帧包括第一返回序列标识字段和第一返回数据字段,第一返回序列标识字段包括第一返回序列标识,第一返回数据字段包括将通过以太网发送的第一返回数据,并且包括第一返回安全字段。返回帧包括第二返回序列标识字段和第二返回数据字段,第二返回序列标识字段包括第二返回序列标识,第二返回数据字段包括将通过以太网发送的第二返回数据,并且包括第二返回安全字段。第一返回安全字段包括利用唯一标识密钥在返回序列标识和第一返回数据上计算的第一加密散列值。第二返回安全字段包括使用唯一标识密钥在第二返回序列标识和第二返回数据上计算的第二加密散列值。
返回第一序列标识可以包括序列标识和生成的序列标识中的一个,返回的第二序列标识可以包括序列标识和生成的第二序列标识中的一个。
以太网接口模块可以包括计数器,该计数器对第一序列标识和第二序列标识中的每一个分别用于产生第一计数和第二计数的次数进行计数,并且第二装置修改第一返回序列标识以及基于第一和计数的第二序列标识。
在另一实施例中,以太网接口模块包括第一数据寄存器,第二数据寄存器和在所接收的帧上操作以检查具有第一加密散列值的第一数据的装置。如果第一加密散列值验证第一数据的完整性,则装置将第一数据存储在第一数据寄存器中。
主机发起包括第二序列标识,第二数据和在第二序列标识和第二加密散列值上计算的第二加密散列值的第二接收帧。如果第二加密散列值验证第二数据的完整性,则设备对第二接收帧进行操作以检查具有第二加密散列值的第二数据,并将第二数据存储在第二寄存器中。该装置比较第一存储数据和第二存储数据。如果第一存储数据和第二存储数据相同,则将第一存储数据和第二存储数据中的至少一个输出到设备。如果第一存储数据和第二存储数据不相同,则以太网接口设备拒绝接收到的帧和第二接收帧。
以太网接口模块可与设备一起操作以修改接收到的帧的字段,以修改接收到的帧,以产生返回帧并且通过以太网传输返回帧。返回帧包括第一返回序列标识字段和第一返回数据字段,第一返回序列标识字段包括第一返回序列标识,第一返回数据字段包括将通过以太网发送的第一返回数据,并且包括第一返回安全字段。返回帧包括第二返回序列标识字段和第二返回数据字段,第二返回序列标识字段包括第二返回序列标识,第二返回数据字段包括将通过以太网发送的第二返回数据,并且包括第二返回安全字段。第一返回安全字段包括利用唯一标识密钥在返回序列标识和第一返回数据上计算的第一加密散列值。第二返回安全字段包括使用唯一标识密钥在第二返回序列标识和第二返回数据上计算的第二加密散列值。
返回第一序列标识包括序列标识和生成的序列标识中的一个,返回的第二序列标识包括序列标识和生成的第二序列标识中的一个。
以太网接口模块还可以包括计数器。计数器分别计数第一序列识别和第二序列识别中的每一个用于产生第一计数和第二计数的次数。第二装置分别基于第一和第二计数来修改第一返回序列识别和第二序列识别。
以太网接口模块可与设备一起操作以修改所接收的帧的字段,以修改所接收的帧,以产生返回帧并且通过以太网传输返回帧。返回帧包括包含第一返回序列标识的第一返回序列标识字段和包含第一返回数据并且包含第一返回安全字段的第一返回数据字段。以太网接口模块可与设备一起操作以修改第二接收帧的字段,以修改第二接收帧,以产生第二返回帧并且通过以太网传输第二返回帧。第二返回帧包括包含第二返回序列标识的第二返回序列标识字段和包含返回数据并且包含第二返回安全字段的第二返回数据字段。第一返回安全字段包括在返回序列标识上计算的第一加密散列值和利用唯一标识密钥的第一返回数据。第二返回安全字段包括在第二返回序列标识和第一返回数据上计算的第二加密散列值。返回第一序列标识包括序列标识和生成的序列标识中的一个,返回第二序列标识包括序列标识和生成的第二序列标识中的一个。
提供了一种操作被配置为将设备耦合到以太网的以太网接口模块的方法。以太网接口模块包括:第一全双工端口,包括接收部分和发送部分,并且可操作以在以太网和设备之间传送帧;以及第二全双工端口,包括第二接收部分和第二发送部分,在网络和设备之间的帧;唯一目的地地址;耦合所述第一双工端口和所述第二全双工端口的第一路径;耦合所述第二全双工端口和所述第一全双工端口的第二路径;设置在所述第一路径中的第一队列;设置在所述第二路径中的第二队列;耦合所述第一接收部分和所述第一发射部分的第三路径,所述第三路径包括所述第一队列的至少一部分;耦合所述第二接收部分和所述第二发射部分的第四路径,所述第四路径包括所述第二队列的至少一部分;评估装置,其耦合到所述第一队列和所述第二队列,以从所述第一全双工端口或所述第二全双工端口之一的接收帧中的接收目的地地址确定所接收的帧是否包括寻址到所述设备的唯一地址;每个接收的帧包括源地址字段,其包括源地址,包括目的地地址的目的地址字段,用于标识帧类型的帧类型字段和用于提供命令的命令字段。评估装置确定接收到的帧是否寻址到设备,并且确定帧类型字段是否包含帧类型。
该方法包括:接收包括以太网接口模块的命令的帧,将第一全双工端口和第二全双工端口中的一个定义为上行端口的命令,以及第一全双工端口和第二全双工端口中的另一个双工端口作为下行端口,该帧提供反射器以太网节点的反射器地址,并且该命令可执行以将以太网接口模块置于ping封装模式。
该方法还包括:以ping封装模式操作以太网接口模块,以将包含目的地字段中的唯一地址并在上游端口接收的接收帧转发到下游端口,其中所接收到的帧的接收到的目的地址字段帧修改以提供包括反射器地址的修改帧,修改为包括唯一地址的接收帧的源地址字段和帧序列字段中的新循环冗余校验;以及除了帧检查序列字段之外,向修改的帧提供接收帧的剩余部分不变。
该方法还可以包括以ping封装模式操作以太网接口模块,以转发第二修改帧,该第二修改帧包括接收帧的未改变部分,该接收帧包括目的地字段中的唯一地址,并在下游端口接收到上游端口,其中帧序列字段包括在下游端口接收帧的部分上计算的循环冗余校验;并且提供所修改的下游端口接收帧,其中下游端口接收帧的剩余部分不改变,除了帧校验序列字段。
该方法可以包括:在包括ping封装层和帧的上游端口处接收ping封装帧;通过下游端口将帧转发到反射器以太网节点;在下游端口接收包括来自反射器以太网节点的ping封装层和响应帧的第二ping封装帧;并从第二个ping封装帧中删除ping封装层,并通过上游端口转发响应帧。
被配置为将设备耦合到以太网的以太网接口模块包括:第一全双工端口,其包括接收部分和发送部分,并且可操作以在以太网和设备之间传送帧。每个接收到的帧包括用于标识帧类型的帧类型字段和用于向设备提供命令的命令字段。该模块还包括将第一双工端口的接收部分耦合到第一全双工端口的发送部分的第一路径;排列在第一路径中的队列;以及耦合到队列的评估装置。评估装置确定接收到的帧是否被寻址到以太网接口模块,并确定帧类型字段是否包含帧类型。帧类型用于识别帧是否包括预定字段。预定字段包括序列标识字段和返回地址字段中的一个或多个。
包含在帧类型字段中的帧类型包括设置为第一状态的第一预定位,并且包含在命令字段中的每个命令包括设置为第二状态的第一预定位,选择第一状态和第二状态要区分帧类型字段和命令字段。
附图说明
通过阅读以下结合附图的详细描述,可以更好地理解本发明,其中:
图1a,1b,1c,1d,1e,1f,1g,1h和1j各自示出一帧;
图2是以太网接口模块的框图;
图3是流程图;
图4和图5是以太网接口的一部分的详细框图;
图6示出了第一网络拓扑;
图7示出了第二种网络技术;
图8示出了第三种网络技术;
图9是值表;
图10示出了命令;
图11是第二以太网接口模块的框图;
图12示出了第一配置中的双端口实施例;
图13示出了第二配置中的单端口实施例;
图14示出了第三配置中的单端口实施例;
图15示出了第四配置中的单端口实施例;
图16示出了第一拓扑;
图17示出了第二拓扑结构;
图18示出了第三拓扑。
具体实施方式
以太网物理收发器通常被称为物理层发射器和/或接收器、物理层收发器、phy收发器、phy接收器或简单的phy。通常在以太网设备上找到phy。其目的是为以太网链路提供模拟信号物理访问。phy芯片实现以太网帧的硬件发送和接收功能。phy接口一端的线路调制和另一端的二进制数据包信令。phy通常与第二芯片结合使用或与微控制器相连接,微控制器负责处理较高层媒体访问控制或mac功能。ieee802.3-2002第4.1.4节列出了mac所需的功能。
如本文所使用的,phy和mac分别指提供phy和mac功能的块。
下面描述的以太网接口模块的各种实施例包括phy和mac,但不包括或要求分组存储器,协议评估软件和每个设备切换资源。以太网接口模块的各种实施例包括仅允许对应设备的全双工操作的约束,并且与以太网接口模块相关联的相应设备上的所有端口必须以相同的数据速率进行操作。
利用上述约束,利用以太网接口模块实施例的设备可以在任何典型的以太网网络中共存,包括许多非常高性能的以太网环境,包括但不限于profinet1588v2和avb。
在各种以太网接口模块中,除了必须是全双工以外,对以太网物理实现的细节没有约束。作为非限制性示例,以太网物理实现可以包括使用光纤或铜缆,屏蔽电缆或非屏蔽方法,通过电缆的不同信令技术,以太网供电等。
全双工操作允许一对站或设备之间的同时通信。通过全双工操作,每个站或设备可以同时发送和接收,因此每个以太网接口必须能够同时发送和接收分组数据帧。
图1a中示出了用于以太网接口模块的各种实施例的基本帧格式100a。格式100a是示例性的,并且如本领域技术人员将理解的不是限制性的。说明性格式100a包括目的地地址字段101,源地址字段103,以太网类型标识字段105,以太网接口模块(eim)命令字段107,分组数据字段109和fcs(帧校验序列)字段111。
为每个以太网接口模块分配唯一的48位地址,有时称为接口的物理或硬件地址。目的地址字段101包含对应于作为分组帧的目的地的接口的地址的地址。或者,目的地地址字段101可以替代地包含网络上的一个或多个接口已被启用以接收的多播地址或标准广播地址。
连接到网络的每个以太网接口模块通过至少目的地地址字段101在每个发送的帧上读取。如果帧的目的地地址与以太网接口模块的自己的地址或多播或广播中的一个不匹配指出以太网接口模块被编程为接收,则以太网接口模块可以丢弃数据包帧或转发数据包,如下所述。
源地址或src地址字段103包含发送包帧的以太网接口的地址的物理地址。
以太网类型识别字段107包含参考分组数据字段111中承载的高级协议数据类型的标识符。
每个以太网接口模块支持一组在命令字段109中指定的命令。一些常见命令被定义为基本协议的一部分,而大多数可用命令被留在特定于设备的命令中操作。下面详细描述命令集。
数据字段111携带数据。
帧fcs(帧校验序列)字段113提供循环冗余校验(crc),用于检查各个字段中位的完整性。由于帧由发送以太网站或主站产生,所以计算crc值并将其插入到字段113中。当接收到帧时,在接收以太网接口中再次计算crc。将新计算的crc值与字段113中的crc值进行比较。如果两个值相同,则存在高级别的保证,在分组数据帧的传输中没有发生错误。
具有vlan(虚拟局域网络)头部的基本分组帧格式100b示于图ib。分组帧格式100是说明性的,并且如本领域技术人员将理解的,不是限制性的。说明性格式包括目的地址字段101,源地址字段103,vlan(虚拟局域网)报头字段113,以太网类型标识字段105,以太网接口模块(eim)命令字段107,数据字段109和fcs(帧校验序列)字段111。
vlan标签报头字段113标识该帧所属的vlan。
在某些实施例中,vlan标签报头字段113可以是可选的。在vlan头是可选的情况下,命令字段107是16位长,而数据字段109取决于该命令。尽管该实施例示出了使用vlan报头,但是可以使用其他报头字段。
图2中示出了以太网接口模块200的框图。以太网接口模块200包括包括第一phy201a和第一mac201b的第一全双工端口201。以太网接口模块200还包括包括第二phy203a和第二mac203b的第二全双工端口203。作为全双工端口的每个端口201,203包括发送部分和接收部分,为了清楚起见,未示出。
第一路径205将端口201的接收部分耦合到端口203的发送部分。第二路径207将端口203的接收部分耦合到端口201的发送部分。在第一路径205内设置第一路径队列209.第二路径207中设置的是第二队列211.每个队列209,211的长度为几个字节,通常为6个或更多个字节。
在操作中,每个队列209,211从接收的帧接收字节。当接收到每个新字节时,字节在队列中向相应的发送部分移动。长度队列小于帧的长度,结果,在端口201,203中的一个端口接收到的接收帧作为发送帧在另一端口203,201处被发送,同时与接收的帧仍然被接收,但是在时间上偏移预定的时间延迟。预定的时间延迟由队列201,203的大小决定。
通过提供可确定的恒定时间延迟,根据本发明的原理,本发明的实施例有利地为使用以太网接口模块200的所有设备提供可预测的一致的恒定时间延迟。
以太网接口模块200还包括评估逻辑213、读/写逻辑215、寄存器/存储器217和设备接口219。评估逻辑213和读/写逻辑215可以各自用专用逻辑或低成本逻辑可编程器件上的高级软件。设备接口219提供到设备1000的接口。设备1000和接收到的帧之间的数据传输通过队列209,211,读/写逻辑215,存储器217和设备接口219进行。
评估逻辑213、读/写逻辑215、存储器217和设备接口219的大小和复杂性可以根据对设备类的要求而变化。例如,寄存器/存储器的范围可以从几个字节到千字节的存储空间。设备接口19可以从几个数字输入和/或输出到串行接口(例如spi或uart)到复杂总线,以直接与微处理器进行通信。
评估逻辑213包括地址存储器,其包含用于其关联设备的一个或多个目的地地址。目的地地址包括与该设备相关联的一个或多个多播地址。在各种实施例中,一些多播地址可以是可编程的。存储器通常是随机存取存储器。存储器可以存储关联设备1000的单播和多播地址。评估逻辑213在每个接收到的帧通过第一队列209或第二队列211时监视每个接收的帧,并将包含在接收帧的目的地地址字段101中的目的地地址与与设备1000相关联的地址。
每个以太网接口模块200可以作为“现场节点”或者作为“终端节点”操作。作为现场节点或端节点的指定是指以太网接口模块200在网络中的位置和角色。使用如图2所示的双端口以太网接口模块200。如图2所示,如果连接两个端口201,203的一个端口(例如具有以太网链路),则以太网接口模块200将作为端点节点工作。如果以太网接口模块200具有连接它的两个端口201,203将作为现场节点操作。
读/写逻辑215响应于评估逻辑213从接收到的帧中读取数据分组以存储在存储器217中,并经由设备接口219传输到设备1000,并且写入经由接口219接收的设备1000的数据分组并存储在存储器217中。
当以太网接口模块200作为场节点操作时,当在端口201,203中的一个端口上接收到帧时,接收到的帧的前六个字节被存储在相应的队列209,211中,并且由用于与设备1000的mac地址匹配的评估逻辑203和设备1000支持的一个或多个多播地址。如果存在地址匹配,并且如果目的地地址是设备的单播地址,则替换该分组的目的地地址存储在以太网接口模块200中的预定的一个多播地址。
当接收到的帧的帧字节在端口201,203之一处被接收时,并排队在队列209,211的相应一个中,所接收的帧作为发送帧呈现给另一个端口203,201,并且帧的传输在另一端口203,201上开始。当每个帧穿过队列209,211评估逻辑213检查接收帧的以太网类型字段。如果以太网类型字段中包含的以太网类型与以太网接口模块200的以太网类型匹配,则接收到的帧的以下部分将由评估逻辑213针对可能适用于设备的命令进行评估。
适用于设备的命令的示例包括诸如读取数据,写入数据等。命令中涉及的数据从数据包中提取出来,或者在遍历节点时适当插入到数据包中。数据包将保持与出路相同的长度,就像在进路中一样。即,如果将字节从接收的帧写入存储器219,则相同的字节也被写入发送的帧。然而,如果将字节从存储器219读入接收到的帧,则接收到的帧的相应位置中的输入字节被丢弃并被来自存储器219的设备数据替换。
现在转到图3,显示以太网接口模块200的基本操作。在图3中,假设在步骤301,在端口201处接收到接收到的帧。来自接收帧的第一个字节在队列209中排队,并且评估逻辑213在步骤303确定目的地址字段101是否包含设备1000的地址,如果接收到的帧不包含设备1000的目的地址,则评估逻辑213然后在步骤305确定目的地址字段101是否包含全局多播地址。如果接收到的帧不包含全局多播地址,则评估逻辑213在步骤307确定目的地址字段101是否包含用于设备1000的辅助多播地址。如果在步骤307确定目的地址字段101不包含辅助设备1000的多播地址,评估逻辑213在步骤309确定以太网接口模块200是否被选择为端接节点或场节点。如果以太网接口模块200是终端节点,则在步骤311,以太网接口模块200将丢弃所接收的帧。如果以太网接口模块200不是终端节点,即场节点,则以太网接口模块200将未修改的接收帧转发作为端口203处的发送帧。这允许不与设备1000相关联的以太网业务以最小和固定的可确定延迟来穿越网络。
如果评估逻辑213在步骤303,305,307中的任何一个确定存在目的地地址匹配,则评估逻辑213接下来在步骤315确定以太网接口模块200是否是端节点或场节点。如果作为步骤315的结果,确定以太网接口模块200是终端节点,则在步骤317,评估逻辑213使得目的地地址字段101被包含在源地址字段103中的源地址重写,评估逻辑213接下来确定以太网类型字段107是否包含设备1000的以太网类型。如果以太网类型字段107包含设备1000的以太网类型,并且如果在步骤321确定以太网接口模块200是终端节点,则以太网接口模块处理该命令包含在命令字段109中,同时将接收到的帧反映在端口201的接收部分上。如果以太网类型字段107包含设备1000的以太网类型,并且如果在步骤321确定以太网接口模块200不是终端节点,以太网接口模块200处理包含在命令字段109中的命令,并在步骤325完成发送帧的传输。
如果在步骤319评估逻辑213确定以太类型字段107不包含设备1000的以太类型,则评估逻辑213在步骤309确定以太网接口模块200是否是终端节点。如果确定以太网接口模块200是终端节点,则在步骤311丢弃该帧。如果确定以太网接口模块200不是终端节点,则从端口203发送未修改的接收帧。
如果在步骤315评估逻辑213确定以太网接口模块200不是终端节点,则评估逻辑213确定接收帧的目的地字段101是否包含与设备1000相关联的多播地址。如果目的地字段包含与设备1000相关联的多播地址,则所接收的帧被转发到端口203,并且评估逻辑213在步骤319确定以太网类型字段107是否包含与以太网接口模块200相关联的以太网类型。从步骤319进行的处理如上所述进行。
如果在步骤315评估逻辑213确定以太网接口模块200不是结束节点和评估逻辑213,在步骤327确定目的地地址字段101不包含与设备1000相关联的多播地址,则在步骤329,评估逻辑213使接收帧的目的地字段101中的地址要被写入多播地址,并且在步骤320开始以太网接口模块200开始将接收的帧转发到端口203。评估逻辑213在步骤319然后确定以太网类型字段107中的以太类型是否与以太网接口模块200的以太网类型匹配。步骤319的处理如上所述进行。
总而言之,如果传入的接收帧失败了上述任何检查(目的地址不匹配,以太网类型不匹配,或者它不是支持的命令),则所接收的帧被转发出另一个端口未修改为传输帧。这允许不与关联设备1000相关联的流量仅以最小的延迟来遍历网络。
评估逻辑213可以维持无效分组的数量和其他感兴趣统计数据的计数,用于网络诊断目的。这些统计数据通过一般命令帧读取。
在端口201,203的发送侧,计算分组帧校验序列(fcs)并将其插入到fcs字段113中的发送帧上,从接收到的帧替换fcs。如果在接收到的帧中的fcs计算中检测到错误,则在发送的帧上插入错误的fcs以使其无效。
如果在两个端口201,203上同时接收命令,则可以针对特定设备类型对评估逻辑213进行编程,以便如何进行操作。可用选项包括:只能按照第一个认可的命令进行操作;
执行两个操作没有任何进一步的限制;
只有在不干预的情况下才执行这两个操作;要么
在一个或两个数据包中插入错误代码。
当以太网接口模块200被指定为终端节点时,如果接收到的帧与mac地址或所支持的多播地址中的一个不匹配,或者如果其ethertype不匹配,则将其丢弃。如果所有这些检查都通过,则将传入帧的源地址用作发送的接收帧中的消息的目标地址,以返回给生成它的源控制器。然后将该设备的mac地址用作发送帧中的源地址。帧的发送开始于接收到的相同端口的发送部分。当帧被转发时,正如在场节点中那样执行与命令字段109相同的处理和读/写帧内容的处理。
以太网接口模块200支持关于帧的处理的几个特征。只要至少有一个,支持的多播地址的数量可以有所不同。每个以太网接口模块支持的命令集可能有所不同。可以通过几种不同的方式处理vlan标头。vlan头可以忽略。
以太网接口模块200可以被进一步编程,使得vlan字段105可以用作分析多播目的地地址的附加过滤器。例如,如果目的地址字段101中的目的地址匹配,并且vlan字段105匹配,则目的地址可以被认为是匹配的。
当以太网接口模块200被编程为终端节点时,可进一步将其编程为仅在vlan字段105中反映具有正确vlan地址的帧。此外,可以将其编程为替换vlan中的vlan地址当将所接收的帧反映为发送帧时,接收到的帧的字段105具有另一vlan地址。
以太网接口模块200可以被编程为仅对某些命令进行操作,如果它们被定向到与设备1000相关联的单播地址。这允许以普遍公认的命令仅对单个设备的受控访问。
以太网接口模块200还可以包括数据管理功能,包括延迟输入数据的应用,直到包含数据的接收帧已被完全验证。为了提供输入数据的延迟应用,可以提供各种方法,范围从以太网接口模块200提供影子存储器或影子寄存器以允许输入数据的多重缓冲。可以在设备接口219处提供信令以指示新鲜数据的接收以及有效性指示。此外,可以产生仅在承载数据的发送帧已经被验证之后才输出数据的信号。以太网接口模块200可以提供输出数据的多缓冲以保证用于传输的一致的数据集。以太网接口模块200还可以提供状态标志以指示数据正在被读/写在设备接口219上。
因为不同的设备1000可以合理地包括多种具有各种复杂性的风格,包括具有不同分组字段的帧,以太网接口模块200还可操作以区分帧类型。每个帧100可以包括如图1所示的类型字段117。1c。类型字段117可以被选择为16位长度。
下面的表1示出了对于字段117的编码。
表1。
所有类型编码都具有最高有效位设置。命令字段107的最高有效位永远不会被设置。这允许在类型字段117和命令字段107之间进行区分。通过提供这种区别,基本设备1000与更复杂的操作无缝地操作。
以太网接口模块200以其最简单的形式修改帧的某些字段而不改变其中包含的源地址。原始源地址保持在输出帧中,以在帧到达设备字符串的末尾时将目的地返回到帧源。
可替换地,如图10中的框100d所示的返回地址字段119。id包含在支持此协议扩展的所有帧100d中。然后,修改帧的每个以太网接口模块200使用其自己的地址作为源地址,并且端节点或反射器以太网接口模块200可以使用返回地址。
另外,潜在的端节点以太网接口模块200可以用返回地址来编程。这降低了帧开销并缩短了端点节点以太网接口模块200上的周转时间。为了实现这种方法,不需要对帧进行改变,只需要在端节点上的附加命令和存储。
当具有该特征的以太网接口模块200接收到寻址到其的帧时,它用其自己的mac地址替换出站帧的源地址。结束节点以太网接口模块200然后在帧被转动时使用返回地址作为目的地地址。
对于如图1a1所示的基本框架100a,终端节点以太网接口模块200必须等待直到在传输开始之前已经读取和验证ethertype。现在,必须等到收到返回地址才能将帧数据发送出去。这种方法的一个后果是帧转向导致更多的延迟延迟。
然而,该延迟实际上是最小的,因为在任一情况下,在接收/验证以太类型之后,可以开始前导码的传输。假设前导码是8字节,类型/返回地址也是8字节长,则有效的附加延迟非常小(在100mbit时为0-80ns)。
现在转到图ie,序列识别(“序列id”)字段121被添加到帧100e的协议中。提供序列id使得可以保证帧以正确的顺序到达并且检测到丢失的帧。
在框架100e中,示出了16位序列id。更大长度的序列id字段可以用于特殊情况,例如与认证等相关联,但16位对于管理帧顺序是足够的。
以太网接口模块200不修改帧的序列id。以所接收的序列id返回帧。在操作中,以太网接口模块200期望按照满量程包装的序列id的递增序列。如果接收到较旧的帧,即无序帧,则不对其进行操作,而是被拒绝。可以通过确定接收到的帧的序列号与先前接收的帧的序列号具有预定的关系来检测较旧的帧。
在命令的操作中向主机401指示帧的拒绝。例如,read命令不会修改返回到主机401的数据。一个write命令具有相关联的接收字段,其在成功的操作中被设备1000修改,并且对于不成功的操作保持不变,例如,序列id是out的秩序。这些细节是命令编码的一部分。
为了解决本地以太网中的安全性,提供了认证方法。
每个以太网接口模块200具有与其相关联的密钥,其在制造或部署时安装。主设备401具有与其通信的任何以太网接口模块200的密钥。基本帧协议格式不变,而在命令数据字段109中包括附加数据。包括附加数据的帧100f如图1f所示。
在帧100f中,命令数据的每个部分(例如,到/来自不同设备)具有单独的序列id。使用特定于设备的密钥(例如,128位),主机401在序列id121a,121b和伴随数据字段109a,109b上计算加密散列。然后,按照安全散列值字段123a,123b中的数据将该加密散列插入到帧100f中。当以太网接口模块200接收数据时,它在序列id字段121a,121b中的序列id和数据字段109a,109b中的数据上计算相同的散列函数,并且验证它与包括在接收帧中的散列值相匹配。
类似地,对于要从设备1000读出的数据,生成新的序列id或者利用从主机400最近接收到的序列id,并且在序列id和要发送的数据之间生成加密散列当400帧包含适当的读取命令的帧if穿过以太网接口模块200时,在主机400接收时发送和检查序列id字段,数据字段和散列字段。
选择64位序列id以确保序列id不需要重新使用,这将提供用于攻击设备1000和/或主机400的机制。
对于本领域技术人员显而易见的是可以使用更小或更大的值。类似地,加密散列大小被选择为64位以提供大小和安全性之间的良好折中。
以太网接口模块200提供一般以太网的安全通道。数据在以太网接口模块200内发送两个不同的,经过验证的通道。这是以下面结合图4和5所述的集成硬件实现来实现的。
主器件400确定输出值并将其编码为帧作为图1f中的两个数据块109a,109b。然后如上所述,在字段121a,121b中的每个数据块109a,109b和字段123a,123b中的加密散列进行保护。可以使用两种不同的加密密钥。帧100f然后被发送到以太网接口模块200。或者,可以经由两个单独的帧发送两个不同的安全数据编码数据块109a,109b。
在以太网接口模块200处接收到帧或帧100f之后,字段109a,109b中的两个安全数据编码块通过读/写逻辑215来处理,在图4和图5中更详细地示出。为了参考目的,图4中示出了框架100f,数据字段109a,109b的处理由箭头4500a,4500b指示。字段109a,109b中的安全编码数据块在框4501a,4501b被接收。在字段109a,109b中的安全编码数据块通过散列函数执行4503a,4503b比较字段123a,123b中的加密哈希值或值进行检查,并且在任何变换完成之后被加载到单独的寄存器4505a,4505b中。两个寄存器4505a,4505b中的加密哈希值由比较器4507进行比较,如果匹配,输出将被施加到i/o多路复用器并输出到设备1000。如果它们不匹配,则帧或帧将被拒绝,并且输出存储在框4511中的倒退哈希值。
如果在预定的可编程时间段内没有接收到有效的帧,则使用看门狗定时器4511并将其重置为默认值。
以太网接口模块200将从设备1000接收的输入帧写入两个单独的寄存器605a,605b。然后如上所述以相反的方式管理要输出到主机400的输入帧数据。序列id被提供给输入帧。使用的序列id将是来自主机400的最后成功接收输出数据的序列id。未示出的附加的小的,例如4位的计数器指示已经使用序列id的次数。该信息被加载到目的地为主机400的输入帧中。
在接收到主机400处的输入帧100f时,帧数据被解包,验证并比较。
该方法通过通用以太网网络提供纯硬件安全通道。
以太网接口设备200的功能在多个网络拓扑中是可操作的。这种网络拓扑的一些示例在图6,7和8中示出。
图6示出了代表性的全循环拓扑400。主机401从其一个端口401a发送帧,并且在其另一端口401b上的以太网接口模块403,405,407,409,411,413,415的修改之后接收相同的帧。与非以太网接口模块节点415之间的传输就好像以太网接口模块403,405,407,409,411,413设备不存在一样。因为没有终端节点或反射器,传输帧的组播目的地址不会被改变(但单播len包目的地址将被改变为多播地址)。
在图7所示的反射线示例中,主机401发送由各种以太网接口设备503,505,507,509修改的帧。线路中最后一个端口连接的最后一个以太网接口设备509将接收到的帧的目标地址字段101中的目标地址替换为主机401的地址,在源地址字段103中使用其自己的地址作为源地址,并将如所修改的接收到的帧发送回主机401。
在图8的示例中,以太网接口模块603,607,609,611615分布在标准以太网网络600中,其中多个交换机605和耦合到主机401的其它设备类型613,617。交换网络600类似于多个反射线路,其中每个反射设备将分组发送回主机401。例如,在开关605之前,由主机401发送的旨在由以太网接口设备603操作的组播以太网接口设备帧将通过多个路径到多个反射器607,609,615。这导致将接收的帧的许多副本发送回主机401。为了避免分组的这种乘法,我们使用几种不同的支持技术。通过仔细控制通过交换机的组播数据包的路由,可以使用特定的多播地址,该地址将由指定的节点进行操作,同时仅从该路由到单个反射器。或者,再次使用受管理的交换机,vlanid字段105中的vlanid可以用于将帧路由到单个反射器607,609,615。
即使不使用被管理的交换机,也可以使用以太网接口模块设备的特征来管理这种情况。不同的以太网接口模块可以分配不同的组播地址,导致一个问题的框架只能被单个端点节点反映出来。类似地,可以使用vlan字段105中的vlan报头,使得仅一个反射器将发回所讨论的帧,从而避免分组重复。
这些特征允许控制流经网络的帧,无论是使用还是不使用被管理的交换机。
以太网接口模块200支持在接收帧中在命令字段109中指定的一组丰富的命令。一些命令被定义为基本协议的一部分,而大多数可用命令被留作用于特定于设备的操作。图9示出了在以太网接口模块200的一个实施例中实现的一些命令。
命令是固定的或可配置的。固定命令始终以相同的方式运行,而不管设备1000如何配置。可配置命令可以通过以太网配置修改功能的各种功能。这些元素包括特定的命令标识(id),以及设备读取/写入数据的数据包的偏移量等。可配置的命令在构建复杂的设备方面提供了很大的灵活性。命令功能的唯一约束是它们不会干扰整个设备的数据包流。任何对特定设备有意义的功能都可以分配给一个命令。
在各种实施例中,所有设备共享一组称为核心命令的固定命令。对于非常基本的设备,完全支持的命令集可以仅包括固定的命令。核心命令包括:
发现-下面说明
读取配置-读取设备的当前配置;
写配置-更改设备的配置(具体来说,设置可配置命令的参数);
读取基本数据-读取与设备相关的基本输入数据;和
写入基本数据-写入与设备相关的基本输出数据。
更复杂的设备将支持附加命令。这些可以是可配置的或固定的。这些命令的复杂性不受协议的限制,只要它们不会干扰以太网接口模块200上的数据流。设备特定的命令可以被实现为专用逻辑块,或者可以由可编程块。在以太网接口模块200中的可编程块的情况下,它可以从设备上的资源(例如,rom或由主机处理器写入)来加载其程序,或者可以通过该设备的配置命令加载其程序,即作为配置过程的一部分,控制器将写入电子接口模块200的程序。
支持可配置命令的每个设备具有指示与命令相关联的命令id以及必要的其他字段的随机存取存储器表。这通常包括由命令寻址的数据的大小,正在执行命令的帧中的数据的偏移,以及设备上的读/写数据的存储器/寄存器空间中的偏移量。图7的表中给出的值只是例子。
该变量命令方法允许系统设计者构建从多个设备读取不同数据的单个帧,将数据写入多个设备,从一个设备读取数据并将其写入另一个设备等。例如,相同的以太网接口模块200命令id可以被配置为某些设备上的读取命令,而在其他设备上可以配置为写入命令,因此单个帧将导致两个操作。一些复杂的设备可以支持将多个命令的单个命令id配置,从而允许单个命令/帧在单个帧(在帧中的不同偏移或共享偏移量)下产生读取和写入以及可能的一些其他功能。其他命令id可能与任何帧数据无关,而是将帧用作触发器件某些行为的事件。
特定关注的命令是发现命令。这允许以太网接口模块200主机,以确定网络上有哪些以太网接口模块设备可用,并了解它们在网络上的彼此之间的关系。发现框架800在图10中示出。已经结合图1a描述了字段101,103,105,107,113中的每一个。
开始计数字段801包含作为发现的起始值的开始计数,如下所述,它将允许发现非常大量的设备。最大计数字段811包含可以容纳在当前发现帧中的最大计数。计数字段813包含要发现的下一个设备的索引。字段817-0,817-1,...817-n包括由发现的设备填充的信息。字段817-0,817-1,...817-n可以包括以下内容:
设备mac地址(6字节);
设备类型(2字节)-表示一组基本功能/数据。示例包括开关,8位i/o,温度传感器,1位输入,1位输出,继电器等;
供应商id(4字节);
供应商设备类型(2字节)-用于识别设备的更具体/广泛的功能;
版本号(2字节);和
供应商字段(4字节)-根据选项,状态等进一步区分设备。
使用这组信息,每个设备使用20个字节来报告自身的发现。全尺寸发现框架最多可以报告73个设备。
典型的发现过程将开始于主机发送如下所示格式化的多播分组:
开始计数=0
maxcount=72
count=0
当帧穿过以太网接口模块200时,它将使计数与最大计数字段813中的最大计数进行比较。如果计数大于最大计数,则该帧将被转发而不进行修改(除非当如上所述反射和结束节点)。如果计数小于最大计数,则当前计数字段815将用作帧800中的偏移量。计数将在其离开设备时递增并写回发送的帧。
接下来,以太网接口模块200将转发未修改的接收帧的内容,直到其到达从其从帧读取的计数识别的帧位置乘以字段中的字节数(例如20))。在这一点上,上述数据被写入分组,并且分组的剩余部分被转发而没有修改。
对于具有比在单个帧中可识别的装置更多的装置的系统,使用起始计数字段811。第一帧将以0的开始计数和72的最大计数发送。如果它返回满,则将发送下一个帧,起始计数为73,最大计数为145,依此类推,直到返回一个帧那没有满。
给定返回的发现帧中的信息,主机可以确定在网络上有多少个可用的设备。它也可以推导出很多网络的拓扑结构。
以太网接口模块200提供各种网络管理支持功能。在网络错误管理中有用的一个特征是,如果以太网接口模块200在其中一个端口201,203上丢失网络链路时具有创建特定帧的能力。该帧被定向到主机400或特定多播地址否则不编程。该帧包含有关以太网接口模块200的id和丢失其网络链路的端口的信息。以太网接口模块200在被重新建立的端口的链路上传送类似的帧。
当以太网接口模块200接通电源时,用于链路改变通知分组的相同帧和硬件也被用于发出一般的“hello”消息。这允许主机400在它变为活动时立即识别每个以太网接口模块200。
多个与网络相关的值由以太网接口模块200监视并保持其发生的计数。这些计数然后可由主站400访问以帮助网络诊断等。监控数据的示例包括:
每个端口接收到的数据字节数为108个;
每个端口发送的数据字节数为109个;
每个端口接收到110个帧;
在每个端口上执行111帧;
每个端口收到112个无效帧(坏fcs);
每个端口接收到无效安全加密散列的113个帧;在每个端口上接收到无效序列id的帧数。
无论是通过设计还是由于网络故障,在线路末端没有以太网接口模块200的网络拓扑中,提供了利用标准互联网控制消息协议icmp的方法在最后一个以太网接口模块200的下游的普通以太网设备上执行ping协议。以下将普通以太网设备称为反射器。这是通过将最后一个以太网接口模块200放置在特殊模式的线路中来实现的。
在这种特殊模式(称为ping封装模式)中,主机401向最后一个以太网接口模块200发送命令以设置以下参数:
限定上游端口,即最靠近主机401的端口;限定下游端口,即面向下游反射器的端口;
提供反射器的以太网mac地址;和
编程指示要被丢弃的帧头(sh)的大小的值。这种可编程性为ip-v6提供了支持。
在接收到图1g所示的ping封装帧100g时,以太网接口模块200被置于ping封装模式中。帧100g包括目的地址字段101中的以太网接口模块200的地址和源地址字段103中的主机401的地址。帧100g还包括ip报头字段125和icmp回显请求报头字段127。ping有效载荷字段100x也包括在框架100g中。有效载荷字段100x包括完整的以太网帧。以太网接口模块200转发如图1h所示的修改的ping封装帧100h,通过下游端口。在帧100h中,通过用设置中提供的标准以太网设备的地址替换帧100g的字段101中的目的地地址来修改帧100g,通过用其自己的mac地址替换字段103中的源地址;并且通过在fcs字段111中提供新计算的fcs。包括ping有效载荷字段111中的ping有效载荷内容的帧100g的剩余部分不变,在图1h中。
在ping封装模式中,以太网接口模块200接收图1j所示的回波响应或pong帧100j,针对自己的单播mac地址并在下游端口上接收。以太网接口模块200丢弃帧的第一个sh字节加上另外4个字节,如果vlan头存在,并将字段100y中携带的帧100j的余数作为单独的帧处理,并通过上行端口转发字段100y,在字段100y中的帧上生成新的fcs。丢弃报头后,接下来的六个字节将被视为目的地址,并将以下六个字节视为源地址。如果帧的其余部分寻址到以太网接口模块20,以太网接口模块将处理它。
主机401在配置如上所述的以太网接口模块200之后将通过创建ping帧报头来网络,就像它正在从以太网接口模块200发送到其下游的标准以太网节点,除了以太网目的地地址是以太网接口模块200的地址,源地址是主机401的源地址。主机401将标准的以太网接口模块放置200帧,例如在图1g所示的ping帧100g的有效载荷字段100x中。主机400将帧发送到以太网接口模块200。
框架100g被接收在以太网接口模块200的上游端口上并如上所述进行处理,从而从以太网接口模块200到反射器设备产生有效的ping帧100h。
反射器设备将帧100h作为标准ping帧处理,并将结果帧100j发送回以太网接口模块200。
以太网接口模块200从帧100g中移除ping封装层,处理并转发包含在字段100y中的标准以太网接口模块200帧在主机401的方向上的上游以及存在于其上的任何其它以太网接口模块200网络线。修改icmpping标题和ip标头,以从回显请求(ping)更改为回应响应(乒乓)。当框架在返回路径上穿过以太网接口模块200时,在ping有效负载块100y之前的所有事物被丢弃,留下标准帧。
一个问题是必须为该帧使用不同于主机401的ip地址。这是因为中继器将使用帧中的ip地址和关联的mac地址更新其arp表。一个这样的ip地址可以用于在给定的以太网网络系统中以这种方式使用的任何和所有以太网接口模块200。
以太网接口模块900的另一实施例在图11中示出。以太网接口模块900包括使用单个phy901a和单个mac901b的单个全双工端口901,同时保持丰富的拓扑选择集合。以太网接口模块900使用单个全双工端口901来提供与双端口节点相同的基本操作,而不是使用两个全双工链路与两个方向上转发的数据。以太网接口模块900的不同实施例取决于全双工通信的发送和接收路径是物理上分开的还是相同的。如果发送和接收路径是分开的,则所有以下讨论都适用。如果通信信道不是分离的,则这样的一个phy设备只能用作反射器。
以太网接口模块900的操作类似于双端口以太网接口模块200,除了端口901上的流量被转发回同一个端口901。当处于反射器模式时,它以反射器模式像两端口以太网接口模块200一样工作。反射器模式的不同之处在于,不是基于连接状态进入反射模式的决定;节点被固定为反射器节点,或者存在来自物理开关,外部处理器等的外部指示。
为了理解这些节点的操作,图12至15中示出了不同的网络布线方法。
图12示出了双端口以太网接口模块200,具有每个端口201,203经由两个连接器1005,1007连接到单独的电缆1001,1003。每个电缆1001,1003包括用于在两个方向上通信的两根双绞线。电缆1001包括双绞线c,d,电缆1003包括双绞线a,b。
图13示出了单端口以太网接口模块900,其单端口901通过两个连接器1105,1107连接到两个不同的电缆1101,1103。一个通信方式简单地连接在节点上的两个连接器1105,1107之间,而不经过通过以太网接口模块900。另一个通信方向从一个电缆1103进入端口901并且退出相同的端口901,被路由到另一电缆1101。每个电缆101,1103包括两个双绞线,用于在两个方向进行通信。电缆1101包括双绞线c,d,电缆1103包括双绞线a,b。
图14示出了具有单个连接器1205的单端口以太网接口模块900。电缆1201包括使用的单个双绞线c,并且电缆1203同样包括所使用的单个双绞线a。这种方法需要对连接器和/或电缆采用不同的方法,以便如图所示“拼接”电缆。另一种方法是使用类似于图2的两个连接器。11,但省略了绕过len逻辑的导体。
图15示出了具有可以直接附接到标准以太网端口901的单个连接器的单端口len接口模块900。该配置是专用反射器(总是线路上的最后一个节点)的配置,并且仅一个电缆1303具有使用两条双绞线。
参考图16,示出了网络1400的以太网拓扑,其中图1所示的布线。13。每个设备或现场节点1403,1405和端节点1407具有两个连接器,并且电缆具有用于在两个方向上的通信的导体。帧起始于主站1401,沿着线路向下转发到作为行中的最后一个节点的场节点1403,1405和终端节点1407。终端节点1407经由场节点1403,1405将帧反射回主站1401。
参考图17,示出了网络1500的交换网络拓扑。提供以太网主机1501并与多个设备通信,其中一些设备由框1503表示。标准以太网交换机1505耦合到现场节点1507,1517和终端节点1513,1515。附加场节点1509被耦合到端节点1511和现场节点1517耦合到代表性以太网设备1521,代表性以太网设备1521又耦合到终端节点1519。在该拓扑中,任何场节点1507,1509,1517以及终端节点1511,1513中的任一个,1515,1519可以包括以太网接口模块200或以太网接口模块900。另外,以太网设备1521可以具有集成在其中的以太网接口模块的功能。
在图18所示的网络1600的拓扑中,电缆是根据图12。图16的网络1600是使用单个导体方向(例如,用于100base-tx操作的单个铜双绞线)的现场节点1603,1605,1607,1609和终端节点1611的循环。
对于单端口以太网接口模块900,除非严格将其用作插入标准交换机端口或双端口设备上的端口的反射器,否则它们不能参与自动协商。因此,它们通常以固定的通信模式运行。
因为以太网接口模块200,900具有以相同数据速率运行的所有通信,所以不同的规则集适用于链路管理。对于双端口以太网接口模块200,最简单的选择是以固定数据速率构建设备,并禁用任何自动协商。这要求连接这些设备的所有其他端口也是固定数据速率,并且禁用自动协商。
在各种实施例中,更灵活的方法是允许以太网接口模块200进行自动协商,但将协商限制到固定速度。这将与以太网接口模块200可能关联的大多数标准设备无缝地工作。
以太网接口模块200可以如下执行链路管理初始化:
建立第一个港口的链接201;
建立第二个港口203的链接;和
如果两个链路传输速度不匹配,则停止更快的链路并重新启动自动协商,强制传输速度较低。
如果单端口以太网接口模块900在两个方向被解析到另一设备上的相同端口的模式下操作,则仅能执行自动协商。在网络1600的情况下,其提供图16所示的反射回路拓扑,不能自动协商,必须使用固定频率。
以太网接口模块200,900可以使用各种各样的方法来实现。
在一个实施例中,以太网接口模块200,900包括可编程的设备,该可编程设备可以充分规律地操作,以执行软件中的帧处理和转发,以及mac功能(硬件或软件)和phy。‘
在其他实施例中,以太网接口模块200,900可以包括执行与外部phy耦合的核心以太网接口模块功能和mac功能的集成电路。
在另外的实施例中,以太网接口模块200,900可以包括集成电路,其利用phy执行核心以太网接口模块功能合并在同一个ic上。
在另外的实施例中,以太网接口模块200,900可以包括执行核心以太网接口模块作为专用i/o操作(例如同一ic上的模数转换器)的集成电路。
在另外的实施例中,以太网接口模块200,900可以包括执行核心以太网接口模块功能的集成电路和具有或不具有同一ic上的phy的mac。
上述中的任何一个可以在诸如现场可编程门阵列(fpga)的可编程硬件中实现。
如果需要,以太网接口模块200,900与网络上的其他设备的同步可以以各种方式实现。在一个实施例中,输入以太网接口模块命令帧的定时可以用于生成用于对事件进行时间戳的信号,或者甚至直接控制时钟管理块。
可以向以太网接口模块200,900提供各种特征以执行时间戳,时钟频率管理等。此外,以太网接口模块200,900的某些实施例可以识别来自诸如ieee1588v2和其他协议的帧,利用这些协议。
可以在以太网接口模块200,900中提供看门狗定时器功能。这样的功能包括测量特定命令的接收或一组命令之一的最大时间的定时器。如果超过时间,则采取一些措施,例如向外部硬件产生信号,用默认值等替换电子接口模块200,900中的数据。
设备的接收端口上的精确通信频率由正在发送帧的对等设备确定,而由另一端口重传的分组的频率由本地设备确定。由于两个装置上的振荡器的差异,温度影响等,这两个频率通常不会完全匹配。这种差异引起了两个问题。
第一个问题是在本地设备上需要一定量的缓冲,使得如果其传输时钟比其正在接收的数据更快,则在帧的结尾之前它不会用尽数据以进行传输。同样,如果发送时钟较慢,则必须能够缓冲在接收到帧之前接收的附加数据。由前导码传输加上接收目的地址所需的时间的转发时间足以覆盖更快的传输时钟。类似的缓冲级别,在几个字节的数量级上足以处理缓慢的传输时钟情况。
第二个问题是针对高性能网络的。一些网络依赖于穿越网络的帧的非常一致的定时。示例包括profinetirt网络,sercosiii网络以及利用以太网分发精确时序的各种网络协议。在这些情况下,通过在以太网接口模块200,900节点上的发送和接收时钟差异引入的抖动是有问题的。为了解决这个问题,以太网接口模块200,900可以使用从接收端口201,901上的信号恢复的时钟来驱动发送端口传输203,903。这将保持数据包穿过以太网接口所需的时间模块200,900节点到非常一致的级别,并允许在这些高性能网络中的无缝操作。
在包含以太网接口模块200,900的网络中的主机功能由任何具有合理处理能力的以太网感知设备都可以执行。这可以是个人计算机,基于云的服务器,可编程逻辑控制器或专用控制器。主机的性能要求完全是网络设备需求的功能。对于设备的帧的频率可以从一些应用的微秒到其他应用的时间范围,对于这一点,协议是完全不可知的。
包括以太网接口模块200,900的局域网(lan)可以集成到包括物联网(iot)应用在内的更广泛的网络中。如果需要通过互联网协议(ip)或通过本地以太网lan直接访问的功能访问以太网接口模块设备,则可以通过“ip虚拟化”来实现。在这种互联网协议(ip)虚拟化中,帧可以封装在udp或tcp数据包中,并使用ip协议发送到以太网接口模块所在的lan上的另一个具有ip功能的节点。该远程ip功能节点剥离上层协议(例如ip/tcp)并发送原始帧,然后重新封装返回的帧,并使用ip将其发送给主设备。在与主(或直接在主机本身内)和以太网接口模块所在的远程lan相同的lan上,以这种方式构建专用设备来封装和转发帧是一个简单的过程。
对于利用以太网接口模块200,900进行通信和控制的方法存在大量潜在的用途。这些用途特别广泛是由于以太网接口模块200,900网络的高带宽和低成本的组合。
以太网接口模块可以与家用电器一起使用,以将状态和控制信息的任何级别的复杂度传送到房屋中的单个控制器或多个控制器。这允许对房屋内的设备进行统一的控制接口,并提供需要为internet级别访问和安全问题等进行管理的单一位置。
除主要设备,例如洗衣机/干衣机,洗碗机,炉/ac,范围,冰箱等之外,以太网接口模块节点可以用于较小的设备,例如恒温器,火灾探测器等。例如,在恒温器市场中,有具有增强的功能(和大量成本)的“智能”恒温器。利用带有恒温器的以太网接口模块,并通过控制器上的软件进行扩展,可以提供具有任意级别功能的低成本“智能恒温器”功能。
此外,以太网接口模块200,900的使用可以通过使用双绞线在墙壁开关,灯具,插座等之间进行通信来降低基本家庭布线的成本。在这种布置中,重的用于提供电力的铜线路将通过最短路径串联在灯具和出口之间,电子开关由以太网接口模块200,900节点控制。墙壁开关是非常简单的以太网接口模块200,900设备1000,仅具有通信线路和提供给它们的低压电力。使用以太网供电标准之一。结果是减少了安装人力,布线成本和增强的控制灵活性,使得开关和固定装置的相关性是可编程的,并且所有房屋布线都在主控制器的控制之下。
在工业设置中,以太网接口模块200,900可以用于当前使用更复杂的系统(许多以太网和其他通信层)的许多设备中。此外,具有以太网接口模块200,900的设备可以散布在大多数网络中的其他类型的设备之间。例如,由于以太网接口模块200,900的确定性转发性能,可以将低成本以太网因特网模块设备放置在操作profinetirt的网络上,对irt网络没有负面影响。
以太网接口模块200,900可以广泛地用于汽车领域。从圆顶灯控制,门锁控制,到关键通信类似于与高性能工业网络的结合,以太网接口模块200,900可以放置在高性能汽车网络中,而不管网络时序和管理协议如何,使单个设备设计的销售成为多个汽车制造商,即使他们采取不同的方法,他们的网络架构。
已经根据各种实施例描述了本发明。本领域技术人员将理解,在不脱离本发明的范围的情况下,可以进行各种改变和修改。不希望本发明受到所示和所描述的特定实施例的限制。本发明的目的仅在于所附权利要求的范围。