一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

智能控制器和传感器网络总线以及包括多层平台安全架构的系统和方法与流程

2022-04-02 07:46:57 来源:中国专利 TAG:

智能控制器和传感器网络总线以及包括多层平台安全架构的系统和方法
交叉引用
1.本技术是2019年10月15日提交的共同待审的第16/653,558号美国专利申请“智能控制器和传感器网络总线、以及包括智能柔性执行器模块的系统和方法”的部分接续案,上述部分接续案是2019年9月16日提交的共同待审的第16/572,358号美国专利申请“智能控制器和传感器网络总线、以及包括通用封装模式的系统和方法”的部分接续案,该部分接续案又是2019年8月1日提交的第16/529,682号美国专利申请“智能控制器和传感器网络总线、以及系统和方法”的部分接续案,所有这些申请通过引用被并入本技术。
技术领域
2.本技术涉及总线领域。更具体地,本技术涉及控制器和传感器网络总线架构。


背景技术:

3.随着自驾车、智能机器人和工厂自动化的发展,机械自动化领域正在迅速扩展。然而,由于其多样化和高速的需求,没有总线或网络架构能够有效地处理这些新兴技术的所有需求。相反,目前的网络延迟高,带宽低,布线复杂,电磁干扰(emi)大,成本高,数据不安全且系统集成复杂。比如,网络没有足够的速度和吞吐量将相机、光线检测和测距(lidar)这样的传感器数据通过网络传输到cpu内核。此外,现有的电缆系统复杂且距离短,且由于使用的是铜电缆系统,在没有昂贵屏蔽的情况下无法处理emi。目前没有一体化的“控制器和传感器网络”系统总线解决方案能够支持并在系统中从边缘节点到边缘节点之间传输互联网l2/l3以太网数据包(packet)、电机和运动控制消息、传感器数据和cpu-cmd。


技术实现要素:

4.本技术提供了一种用于控制和操作自动化机器的机器自动化系统。该系统包括控制器和传感器总线,该控制器和传感器总线包括中央处理内核和多介质传输内部网,该多介质传输内部网用于实现一种动态突发到广播传输方案,在该方案中,消息从节点突发到中央处理内核并从中央处理内核广播到所有节点。
5.第一方面,本技术实施例公开了一种用于控制和操作自动化机器的机器自动化系统。所述系统包括:包括多个输入/输出端口的控制器和传感器总线;和通过所述总线的端口可操作地耦合在一起的多个外部机器自动化设备,其中所述总线包括:至少一个中央处理内核;多介质传输内部网,所述多介质传输内部网包括直接耦合到所述内核的一个或多个中央传输网络,以及包括多个节点和一个或多个门,以及多个子网络,每个子网络分别耦合到所述中央传输网络之一的所述门中的不同个,所述子网络包括多个子节点;和多层安全架构,所述多层安全架构包括与安全模块耦合的安全管理器中央处理单元cpu,所述安全模块具有一次性可编程存储器,所述一次性可编程存储器存储所述节点、所述子节点和所述内核中的每一个的至少一个主秘钥,其中只有所述安全管理器cpu能够直接访问所述安
全模块;其中,所述节点和所述子节点中的每一个通过一个或多个所述端口与一个或多个所述设备耦合,并从耦合到一个或多个所述端口的一个或多个所述设备接收消息。
6.在一些实施例中,当所述设备之一与所述节点之一耦合时,所述节点之一与所述内核在使所述设备之一能够在所述总线上操作之前执行双向认证过程。在一些实施例中,所述双向认证过程包括所述节点之一基于所述内核的所述主秘钥的导数来验证所述内核的身份,以及所述内核基于所述节点之一的所述主秘钥的导数来验证耦合到所述节点之一的所述设备之一的身份。在一些实施例中,在使所述设备之一能够通过所述节点之一在所述总线上操作之后,所述节点之一和所述内核周期性地重新执行所述双向认证过程,并且如果所述双向认证过程失败,则所述节点之一和所述内核禁用所述总线上的所述设备之一的操作。在一些实施例中,如果所述双向认证过程成功,则所述节点之一和所述内核确定所述设备之一的加密秘钥,并且所述节点之一和所述内核使用所述加密密钥来加密来自所述设备之一的消息和解密发送到所述设备之一的消息。
7.在一些实施例中,每当所述双向认证过程的周期性重新执行成功时,所述节点之一和所述内核确定所述设备之一的新加密秘钥,并且所述节点之一和所述内核使用所述新加密密钥来加密来自所述设备之一的消息和解密发送到所述设备之一的消息。在一些实施例中,所述安全模块存储所述总线的多个子系统中的每个子系统的认证中心和引导映像的测量,并且当引导所述总线执行信任引导过程时,所述执行信任引导过程包括:对于每个子系统:识别所述子系统的证书;测量所述子系统的当前引导映像;以及除非所述证书能够基于所述认证中心进行认证以及所述当前引导映像的测量与存储在所述安全模块中的所述子系统的所述引导映像的测量匹配,否则不引导所述子系统。
8.在一些实施例中,所述多层安全架构包括至少一个行为监控节点,所述行为监控节点:存储与一组一个或多个所述节点和所述内核对应的多个行为参数和动作集合;以及对于所述组中的每一个:监控并记录所述组中的所述一个的行为;将所监控的行为和与所述组中的所述一个对应的一个所述行为参数和动作集合中的行为参数进行比较;以及如果所监控的行为不满足所述行为参数,则执行所述对应的一个所述行为参数和动作集合中的一个或多个动作。在一些实施例中,所述动作包括由以下各项构成的所述组中的一个或多个:禁用所述组中的所述一个,发送关于所述组中的所述一个的警报消息,以及启动所述组中的所述一个的所述双向认证过程的周期性重新执行。在一些实施例中,所述所监控的行为包括由以下各项构成的所述组中的一个或多个:由所述组中的所述一个发送的消息的类型、所述组中的所述一个的功率使用、由所述组中的所述一个发送的消息的目的地、以及由所述组中的所述一个发送的消息的大小。
9.第二方面,本技术实施例公开了一种控制器和传感器总线。所述总线包括:多个输入/输出端口,用于与机器自动化系统的多个外部机器自动化设备耦合;至少一个中央处理内核;多介质传输内部网,所述多介质传输内部网包括直接耦合到所述内核的一个或多个中央传输网络,以及包括多个节点和一个或多个门,以及多个子网络,每个子网络分别耦合到所述中央传输网络之一的所述门中的不同个,所述子网络包括多个子节点;和多层安全架构,所述多层安全架构包括与安全模块耦合的安全管理器中央处理单元cpu,所述安全模块具有一次性可编程存储器,所述一次性可编程存储器存储所述节点、所述子节点和所述内核中的每一个的至少一个主秘钥,其中只有所述安全管理器cpu能够直接访问所述安全
模块;其中,所述节点和所述子节点中的每一个通过一个或多个所述端口与一个或多个所述设备耦合,并从耦合到一个或多个所述端口的一个或多个所述设备接收消息。
10.在一些实施例中,当所述设备之一与所述节点之一耦合时,所述节点之一与所述内核在使所述设备之一能够在所述总线上操作之前执行双向认证过程。在一些实施例中,所述双向认证过程包括所述节点之一基于所述内核的所述主秘钥的导数来验证所述内核的身份,以及所述内核基于所述节点之一的所述主秘钥的导数来验证耦合到所述节点之一的所述设备之一的身份。在一些实施例中,在使所述设备之一能够通过所述节点之一在所述总线上操作之后,所述节点之一和所述内核周期性地重新执行所述双向认证过程,并且如果所述双向认证过程失败,则所述节点之一和所述内核禁用所述总线上的所述设备之一的操作。在一些实施例中,如果所述双向认证过程成功,则所述节点之一和所述内核确定所述设备之一的加密秘钥,并且所述节点之一和所述内核使用所述加密密钥来加密来自所述设备之一的消息和解密发送到所述设备之一的消息。
11.在一些实施例中,每当所述双向认证过程的周期性重新执行成功时,所述节点之一和所述内核确定所述设备之一的新加密秘钥,并且所述节点之一和所述内核使用所述新加密密钥来加密来自所述设备之一的消息和解密发送到所述设备之一的消息。在一些实施例中,所述安全模块存储所述总线的多个子系统中的每个子系统的认证中心和引导映像的测量,并且当引导所述总线执行信任引导过程时,所述执行信任引导过程包括:对于每个子系统:识别所述子系统的证书;测量所述子系统的当前引导映像;以及除非所述证书能够基于所述认证中心进行认证以及所述当前引导映像的测量与存储在所述安全模块中的所述子系统的所述引导映像的测量匹配,否则不引导所述子系统。
12.在一些实施例中,所述多层安全架构包括至少一个行为监控节点,所述行为监控节点:存储与一组一个或多个所述节点和所述内核对应的多个行为参数和动作集合;以及对于所述组中的每一个:监控并记录所述组中的所述一个的行为;将所监控的行为和与所述组中的所述一个对应的一个所述行为参数和动作集合中的行为参数进行比较;以及如果所监控的行为不满足所述行为参数,则执行所述对应的一个所述行为参数和动作集合中的一个或多个动作。在一些实施例中,所述动作包括由以下各项构成的所述组中的一个或多个:禁用所述组中的所述一个,发送关于所述组中的所述一个的警报消息,以及启动所述组中的所述一个的所述双向认证过程的周期性重新执行。在一些实施例中,所述所监控的行为包括由以下各项构成的所述组中的一个或多个:由所述组中的所述一个发送的消息的类型、所述组中的所述一个的功率使用、由所述组中的所述一个发送的消息的目的地、以及由所述组中的所述一个发送的消息的大小。
13.第三方面,本技术实施例公开了一种操作控制器和传感器总线的方法。所述总线包括多个输入/输出端口、至少一个中央处理内核、多介质传输内部网、以及多层安全架构;其中,所述多个输入/输出端口用于与机器自动化系统的多个外部机器自动化设备耦合;所述多介质传输内部网包括直接耦合到所述内核的一个或多个中央传输网络,以及包括多个节点和一个或多个门,以及多个子网络,每个子网络分别耦合到所述中央传输网络之一的所述门中的不同个,所述子网络包括多个子节点;所述多层安全架构包括与安全模块耦合的安全管理器中央处理单元cpu,所述安全模块具有一次性可编程存储器,所述一次性可编程存储器存储所述节点、所述子节点和所述内核中的每一个的至少一个主秘钥,其中只有
所述安全管理器cpu能够直接访问所述安全模块;所述方法包括:检测通过一个或多个所述端口耦合到所述节点之一的所述设备之一;利用所述节点之一和所述内核,通过基于所述内核的所述主密钥的导数来验证所述内核的身份以及基于所述节点的所述主密钥的导数来验证耦合到所述节点之一的所述设备之一的身份,执行双向认证过程;以及如果所述内核和所述端口之一的身份都能够被验证,则使得所述设备之一能够通过所述中央传输网络将消息传送给耦合到其他所述节点的其他所述设备。
14.在一些实施例中,所述方法进一步包括:在使得所述设备之一传送消息之后,利用所述节点之一和所述内核周期性地重新执行所述双向认证过程,并且如果所述双向认证过程失败,则禁用所述总线上的所述设备之一的操作。在一些实施例中,所述方法进一步包括:如果所述双向认证过程成功,则确定所述设备之一和所述节点之一的加密密钥,并使用所述加密密钥来加密来自所述设备之一的消息和解密发送到所述设备之一的消息。在一些实施例中,所述方法进一步包括:每当所述双向认证过程的周期性重新执行成功时,确定所述设备之一的新加密密钥,并使用所述新加密密钥来加密来自所述设备之一的消息和解密发送到所述设备之一的消息。
15.在一些实施例中,所述安全模块存储所述总线的多个子系统中的每个子系统的认证中心和引导映像的测量,所述方法还包括执行信任引导过程,所述执行信任引导过程包括:对于每个子系统:识别所述子系统的证书;测量所述子系统的当前引导映像;以及除非所述证书能够基于所述认证中心进行认证以及所述当前引导映像的测量与存储在所述安全模块中的所述子系统的所述引导映像的测量匹配,否则不引导所述子系统。在一些实施例中,所述多层安全架构包括至少一个行为监控节点,所述方法进一步包括:利用所述行为监控节点:存储与一组一个或多个所述节点和所述内核对应的多个行为参数和动作集合;以及对于所述组中的每一个:监控并记录所述组中的所述一个的行为;将所监控的行为和与所述组中的所述一个对应的一个所述行为参数和动作集合中的行为参数进行比较;以及如果所监控的行为不满足所述行为参数,则执行所述对应的一个所述行为参数和动作集合中的一个或多个动作。
16.在一些实施例中,所述动作包括由以下各项构成的所述组中的一个或多个:禁用所述组中的所述一个,发送关于所述组中的所述一个的警报消息,以及启动所述组中的所述一个的所述双向认证过程的周期性重新执行。在一些实施例中,所述所监控的行为包括由以下各项构成的所述组中的一个或多个:由所述组中的所述一个发送的消息的类型、所述组中的所述一个的功率使用、由所述组中的所述一个发送的消息的目的地、以及由所述组中的所述一个发送的消息的大小。
附图说明
17.图1示出了根据一些实施例的机器自动化系统。
18.图2示出了根据一些实施例的智能控制器和传感器内部网总线。
19.图3示出了根据一些实施例的智能控制器和传感器内部网总线的树拓扑。
20.图4示出了根据一些实施例的用于实现该系统的示例性计算设备的框图。
21.图5示出了根据一些实施例的操作包括智能控制器和传感器内部网总线的机器自动化系统的方法。
22.图6a示出了根据一些实施例的示例性gem数据包格式。
23.图6b示出了根据一些实施例的gem数据包头部格式的详细视图。
24.图6c示出了根据一些实施例的节点报告消息的gem头部格式的详细视图。
25.图6d示出了根据一些实施例的根端口带宽授权消息的gem头部格式的第一变型的详细视图。
26.图6e示出了根据一些实施例的根端口带宽授权消息的gem头部格式的第二变型的详细视图。
27.图6f示出了根据一些实施例的用于控制消息的gem头部格式的详细视图。
28.图7a示出了根据一些实施例的广播phy帧(broadcast-phy-frame)。
29.图7b示出了根据一些实施例的突发phy帧(burst-phy-frame)。
30.图7c示出了根据一些实施例的门突发phy帧(gate burst-phy-frame)。
31.图8示出了根据一些实施例的操作智能控制器和传感器内部网总线的方法。
32.图9示出了根据一些实施例的智能柔性执行器(sca)和传感器模块。
33.图10a示出了根据一些实施例的sca和传感器模块的控制板的第一变型。
34.图10b示出了根据一些实施例的sca和传感器模块的控制板的第二变型。
35.图10c示出了根据一些实施例的sca和传感器模块的控制板的第三变型。
36.图11a和11b示出了根据一些实施例的包括耦合的sca和传感器模块的机器自动化系统。
37.图12示出了根据一些实施例的操作控制器和传感器总线的方法。
38.图13示出了根据一些实施例的包括多层安全架构的总线。
39.图14示出了根据一些实施例的总线的安全模块。
40.图15示出了根据一些实施例的包括被划分成多个级联管理器级别的多个子系统的总线。
41.图16示出了根据一些实施例的实现双向节点/内核认证协议的方法。
42.图17示出了根据一些实施例的操作智能控制器和传感器内部网总线的方法。
具体实施方式
43.本文描述的实施例涉及一种用于控制和操作自动化机器的机器自动化系统、方法和设备。该系统、方法和设备包括控制器和传感器总线,该控制器和传感器总线包括中央处理内核和多介质传输内部网,该多介质传输内部网用于实现动态突发到广播传输方案,在该方案中,消息从节点突发到中央处理内核并且从中央处理内核广播到所有节点。因此,该系统、方法和设备尽管结合了低速网络介质但仍具有高速性能的优势,并且为包括所有门、节点和根端口在内的整个内网系统提供了统一的软件映像,简化了软件架构,缩短了产品开发周期,更容易进行系统级别的远程调试,以及监控和故障排除。特别地,该系统、方法和设备提供了专门为机器自动化应用所定义和优化的独特的内部网系统架构。
44.图1示出了根据一些实施例的机器自动化系统100。如图1所示,系统100包括与智能控制器和传感器内部网总线104可操作地耦合在一起的一个或多个外部设备102。在一些实施例中,系统100可以为诸如自动驾驶车辆、自动工业机器或自动自控机器人的自动装置的一部分。可选地,系统100可以为其它机器自动化应用的一部分。设备102可包括以下设备
中的一个或多个:传感器设备(例如超声波、红外、相机、光检测和测距(lidar)、声音导航和测距(sonar)、磁性、无线电检测和测距(radar))、互联网设备、电机、执行器、灯、显示器(例如屏幕、用户界面)、扬声器、图形处理单元、中央处理单元、存储器(例如固态驱动器、硬盘驱动器)、控制器/微控制器或其组合。设备102中的每一个能够经由一个或多个总线输入/输出(i/o)端口与总线104可操作地布线和/或无线耦合(参见图2)。尽管如图1所示,系统100包括离散数量的外部设备102和总线104,但可以考虑设置更多或更少的设备102和/或总线104。
45.图2示出了根据一些实施例的智能控制器和传感器内部网总线104。如图2所示,总线104包括由中央内核200形成的内部网,该中央内核200经由一个或多个中央传输网络206与一个或多个门202以及多个边缘节点204(每个边缘节点204具有一个或多个外部io端口99)耦合,并且经由从门202延伸的一个或多个子网络210与一个或多个边缘子节点208(每个边缘子节点208具有一个或多个外部io端口99)耦合。因此,如图3所示,总线104形成网络树拓扑,其中中央网络206从内核200(例如内核的根端口230)分支到边缘节点204和门202,子网络210从门202分支到子节点208和/或子门202’。这样,内核200可以看到所有的节点204和子节点208(因为门202和子门202’对内核200是透明的)。在一些实施例中,门202中的一个或多个直接与没有节点的i/o端口99耦合(例如,与外部cpu,gpu,ai内核和/或固态驱动器(ssd)耦合)。
46.端口99可以是任何类型的接口端口,诸如高速外围组件互联(pcie)、移动工业处理器接口(mipi)、以太网、通用串行总线(usb)、通用输入输出(gpio)、通用异步收发器(uart)、集成电路(i2c)和/或其他类型的端口。尽管如图2所示,总线104包括离散量的端口99、内核200、节点204,208、门202、网络206,210、其它元件及其组件,但也可考虑设置更多或更少的端口99、内核200、节点204,208、门202、网络206,210、其它元件及其组件。
47.中央传输网络206可以包括比耦合到该中央传输网络206的门202的子网络210的连接介质更快/更低延迟的连接介质。类似地,对于每个迭代子网,子网210可以包括比耦合到子网210的门202’的子网210’的连接介质更快/更低延迟的连接介质。这种网络/子网连接介质速度/延迟关系能够使总线104避免整个总线104的处理减慢,尽管其仍包括下面详细描述的较慢的连接介质。可选地,子网络210、210’和/或中央网络206中的一个或多个可具有相同的或其他的连接介质速度/延迟关系。
48.在一些实施例中,中央传输网络206的连接介质包括使用光分路器214(例如2-1分路器)分路的光纤电缆212,并且具有光收发器216以耦合到节点204、208并从节点204、208接收数据。在一些实施例中,子网210的连接介质包括光连接介质(例如,与中央传输网络206类似,但可能较慢)、无线连接(例如,射频收发器218)、铜线连接(例如,双绞铜线220,其可选地使用模拟分路器222(例如,扇出/多路复用器)分路且具有耦合到节点204,208并从节点204,208接收数据的串行器/解串器(serdes)224)和/或其组合(例如混合光纤、铜和/或无线连接介质)。因此,总线104支持多速率流量传输,取决于延迟/速度,连接性和/或数据/流量/外部设备102的距离要求,不同的节点/网络能够被用于耦合到总线104,同时仍然提供所需的吞吐量。例如,对于高速、低延迟和长距离要求,中央网络的光连接介质能够通过耦合到节点204而被使用。否则,取决于成本、速度、连接和/或距离要求,也能够使用其他网络210。在一些实施例中,中央网络206是无源光网络和/或铜子网络210是有源网络。在图
2所示的一些实施例中,节点204中的一个或多个耦合到控制器区域网络(can)226,这样节点从耦合到控制器区域网络的每个控制器输入数据。或者,如图3所示,一个或多个子网络210可以是经由门202中的一个与内核200耦合的can。
49.多层总线寻址
50.总线104可以利用多层寻址方案,该方案中根端口230、i/o端口99、节点204、208、234和/或门202能够使用节点、历元和gem标识地址来通过总线104引导消息。特别地,根端口230、节点204、208、234和门202中的每一个可以被分配节点标识符(node-id),其中节点204、208和门202还被分配至少一个历元标识符(epoch-id)和至少一个gem标识符(gem-id)。epoch-id能够用于识别网络206、210中的消息的源/目的地(例如节点/门设备及它们的i/o端口、嵌入式cpu和/或其他类型的服务),同时gem-id能够用于识别消息的目标(例如节点/门设备及其i/o端口的集合和子集,嵌入式cpu和/或其他类型的服务)。因此,epoch-id能够被用于在整个网络206、210中传输/路由消息,而gem-id能够被设备本身(经由端口99)使用以确定是否捕获所接收/广播的消息作为目标。
51.根据节点/门的服务级别协议(sla)配置文件(其能够对应于耦合到节点/门的端口99的设备),节点/门可以被分配多个epoch-id和多个gem-id。因此,节点204、208和门202中的每一个的node-id能够映射到一个或多个epoch-id,该一个或多个epoch-id能够映射到一个或多个gem-id。例如,与两个io端口99耦合的节点204、208可以具有单个node-id、两个epoch-id(每个端口99一个epoch-id)和十个gem-id(一个gem-id与第一epoch-id和第一端口99相关联,九个gem-id与第二epoch-id和第二端口99相关联)。此外,虽然node-id和epoch-id对于每个节点/门/端口是唯一的,但是gem-id可以在节点/门/端口之间共享。例如,相同节点204、208的端口99或不同节点204、208的不同端口99都能够与匹配或重叠集gem-id相关联。
52.门202也可以被分配一个或多个虚拟node-id给与门202直接耦合的端口99。与常规节点一样,这些由门202表示的虚拟节点能够根据门202的sla配置文件(其能够对应于耦合到虚拟节点/门的端口99的设备)被分配多个epoch-id和多个gem-id。
53.其他节点234和内核232(它们直接耦合到内核200,例如io设备和嵌入式cpu内核)各自能够具有一个或多个gem-id以及全局node-id,但是不需要被分配epoch-id,这不是必需的,因为到这些节点234的消息和从这些节点234到内核200的消息完全在内核200内。与节点204、208类似,分配给节点234和内核232中的每一个的gem-id的数量能够基于该节点234或内核232的sla配置文件(其能够对应于耦合到节点234的端口99的设备)来确定。内核交换机220、根端口230、节点204、208、234和/或门202中的每一个能够维护和更新本地sla表,该表指示每个node-id、epoch-id和gem-id之间的映射。因此,总线寻址提供了使用epoch-id和/或node-id来促进网络100内的节点、门和内核之间的简化突发/广播消息传送的优点,同时使用gem-id来促进设备/io端口99和/或内核本身之间的任何期望的更为复杂的消息传送。
54.通用封装模式
55.总线104能够将所有输入数据和内部生成的数据(例如,控制、操作和管理消息)封装成通用封装模式(gem)以跨总线104内部网传输。因此,gem充当唯一的标准化数据和消息容器,用于在节点之间和/或经由总线104内部网向内核200传输数据。结果,当输入数据进
入总线104时,输入数据可以在每个节点处被封装成gem格式,并被路由通过内核200(在内核200处,输入数据被解封装以进行处理并且被重新封装以进行传输)到达其目的节点上,该目的节点将数据解封装回原始格式以出口到目标外部设备102或其他目的地。该输入数据可以来自各种源(例如设备102、can 226),经由节点204、208、234或门202处的端口99和/或嵌入式cpu内核232输入。
56.gem格式存在以下两种格式:gem数据包(packet)和gem控制。gem数据包格式包括gem头部(header)加上gem净荷(例如,从8字节到4千字节的长度)。通常,gem数据包格式用于在入口(例如节点、端口)封装输入端口数据、数据包和消息。下面是一些能够利用gem数据包格式的io端口数据、数据包和消息示例:-使用gem数据包格式携带以太网数据包,在gem封装之后通过104总线从本地门202和/或节点204、208传输到远端门202和/或节点204(例如,这能够用于通过以太网端口或pcie端口的互联网和wi-fi接口);-使用gem数据包格式携带传感器数据,在gem封装之后通过总线104从本地门202和/或节点204传输到远端门202和/或节点204(例如,can总线数据、摄像机(mipi)帧数据、激光雷达(以太网)数据、磁编码器数据和其他类型的传感器数据);-使用gem数据包格式携带巨型数据和数据包,并通过分片和解分片方案从本地节点204、208传输到远端节点204、208。这能够包括分片、解分片和重新排序/重新传输功能;-使用gem数据包格式在内核200和节点204、208(和/或门)之间传送网络控制、操作和管理消息,包括物理层操作、管理和维护(ploam)、节点管理控制接口(nmci)以及操作、管理和维护(oam)消息;-使用gem数据包格式携带cpu/pcie访问cmd/data,在gem封装之后通过总线104从内核200和本地门202和/或节点204传送到远端本地门202和/或节点204(例如,cpu 232通过pcie、usb、i2c、uart和gpio接口从节点到节点(node-to-node)访问目标设备102)。-最后,使用gem数据包格式通过总线104在本地节点204、208与远端节点204、208之间进行vpn通道应用。
57.gem控制消息格式包括消息加扩展消息(例如,长度8字节 8字节...)。gem控制消息格式可以在总线104中使用以用于内部网络管理和控制目的,包括动态带宽分配(dba)报告消息、dba授权、gem接收(rx)确认、gem流控制、gem功率管理、gem侦听、gem远程消息和/或其他类型的控制消息。如上所述,节点204负责将数据封装成gem数据包以及将数据从gem控制消息格式解封装。该方案能够将pcie接口协议从点对点拓扑扩展到点对多点拓扑,且将接口距离从短距离扩展到长距离。
58.图6a-f示出了根据一些实施例的示例性gem数据包格式和gem头部格式。如图6a所示,gem数据包600可以包括头部602和对应的净荷604。如上所述,对于消息数据包(message packet),头部可以是一个设置的大小(例如8字节),并且净荷可以在长度(例如从8字节到4千字节的长度)上变化,对于控制数据包(control packet),例如,头部可以是具有或不具有一个或多个8字节扩展的8字节。
59.图6b示出了根据一些实施例的gem数据包头部格式的详细视图。如图6b所示,头部602包括gem类型字段606、净荷长度指示字段608、加密密钥索引字段610(例如aes密钥索引)、node/epoch id字段612、gem-id字段614、gem数据包类型字段616、传输序列标识符字
段618、需要确认(acknowledge required)字段620、最后片段指示字段622和头部错误校正/校验(hec)字段624。或者,可以省略一个或多个这些字段和/或可以增加一个或多个附加字段。在一些实施例中,gem类型字段606是2比特,净荷长度指示字段608是12比特,加密密钥索引字段610是2比特,node/epoch id字段612是12比特,gem-id字段614是12比特,gem数据包类型字段616是3比特,传输序列标识符字段618是6比特,需要确认字段620是1比特,最后片段指示字段622是1比特,以及头部错误校正/校验字段622是13比特。或者,这些字段中的一个或多个可以更大或更小。
60.gem类型字段606指示gem数据包600是哪种类型的头部602(以及因此是哪种类型的数据包)。例如,gem类型字段可以指示头部602是数据包头部、带宽授权消息头部(例如从根端口230被传输到门/节点)、带宽报告消息头部(例如从门/节点被传输到根端口230)和/或控制消息(例如在根端口230、门202和/或节点204、208、234中的一个或多个之间传输)中的一个或多个。净荷长度指示字段608指示数据包600的净荷604的长度。加密密钥索引字段610指示要在数据包600上使用的加密类型。例如,加密密钥索引字段610可以被用作加密表中的索引值,以识别以下中的一个或多个:是否加密数据包、要使用哪个密钥来加密数据包、和/或要使用哪个加密方法。
61.node/epoch id字段612能够识别数据包600的源节点或目的节点。例如,对于从节点突发到内核的gem数据包600,字段612可以是或表示节点的epoch-id以指示数据包600的源。作为另一示例,对于从根端口230广播到其网络206、210内的节点/门的gem数据包600,字段612可以是或表示目的地的node-id(包括单播node-id、多播node-id和/或广播node-id)。gem-id字段614可以是或表示用于点到点消息的源节点的数据/数据包/消息标识符,或者可以是或表示用于点到多点消息的目的节点的gem-id(例如,包括can消息gem-id、传感器数据gem-id和/或以太网数据包gem-id)。因此,gem格式提供了使得总线104能够通过node/epoch id字段612识别直接源节点和/或目的节点,同时还使得目标设备/端口/服务能够通过使用gem-id字段614被识别的优点。
62.gem数据包类型字段616可以指示(例如,从设备102接收和/或通过端口99接收的)封装在gem格式内的消息的头部的类型和格式。例如,字段616可以指示消息头是ploam消息、节点管理和控制接口(nmci)消息、can命令消息、传感器数据、以太网数据包、cpu-io(例如pcie/usb)消息和/或节点操作和控制报告(nocr)消息。需要确认字段620可以指示是否需要响应于消息的确认消息,以及(对于从节点突发到内核200的数据包)传输序列标识符字段618可以识别来自源节点的数据包集合内的数据包600的传输序列号和/或其epoch-id。在一些实施例中,当被需要确认字段620指示时,需要来自接收根端口230的确认消息。对于从根端口230广播到节点/门的数据包,传输序列标识符字段618可以识别单播/广播/多播gem-id(例如,can消息gem-id、传感器数据gem-id、以太网数据包gem-id和cpu/pcie/usb数据消息gem-id)的传输序列号。在一些实施例中,当由需要确认字段620指示时,需要来自接收根端口230和/或节点的确认。最后片段指示字段622可以指示该数据包600是否是大数据包的一系列片段的最后一个片段,并且头部错误校正/校验字段622可以用于检查头部602的错误。
63.图6c示出了根据一些实施例的节点报告消息的gem头部格式的详细视图。如图6c所示,头部602包括gem类型字段606、报告消息类型字段624、源epoch-id字段626、报告总大
小字段628、报告阈值大小字段630、报告序列号字段632、一个或多个源节点虚拟输出队列(voq)状态字段634(例如cpu-io、ploam、nmci、can、传感器、以太网或其他类型)、报告优先级字段636和头部错误校正/校验(hec)字段622。或者,可以省略一个或多个这些字段和/或可以增加一个或多个附加字段。在一些实施例中,gem类型字段606是2比特,报告消息类型字段624是2比特,源epoch-id字段626是12比特,报告总大小字段628是14比特,报告阈值大小字段630是8比特,报告序列号字段632是5比特,一个或多个源节点虚拟输出队列状态字段634各自是1比特(或6比特的单个字段),报告优先级字段636是2位,头部错误校正/校验(hec)字段622是13比特。或者,这些字段中的一个或多个可以更大或更小。
64.报告消息类型字段624指示gem数据包600是哪种类型的报告头部602(以及因此是哪种类型的报告消息)。例如,报告消息类型字段624可以指示头部602是无效报告消息、其自身的节点报告消息(例如,其中数据包的源的epoch-id映射到数据包的源的node-id)、另一节点的节点报告消息(例如,其中数据包的源的epoch-id未映射到数据包的源的node-id)、和/或致命故障报告消息(例如,需要/请求最高优先级的消息)中的一个或多个。源epoch-id字段626可以是或表示:源节点的epoch-id(例如对于ploam和nmci的报告加上can/传感器/以太网队列标志)、can的epoch-id(例如对于can的报告)、传感器/节点之一的epoch-id(例如对于传感器的报告),以太网epoch-id(例如对于以太网数据包的报告)和/或pcie/usb epoch-id(例如对于pcie/usb报告消息)。报告总大小字段628可以指示voq内的gem数据的总大小(对于该epoch-id和/或node-id),而报告阈值大小字段630可以指示voq内的gem数据包边界(例如,用于确定为该历元和/或节点授权的突发窗口的大小)。
65.报告序列号字段632可以指示消息在序列中是哪个编号(例如,是否存在相关报告消息的序列以便确定一个消息是丢失的还是错序的)。一个或多个源节点虚拟输出队列(voq)状态字段634各自可以指示源节点相对于特定数据功能/类型的状态(例如cpu/io、ploam、nmci、can、传感器、以太网)。报告优先级字段636可以指示给予消息的优先级(例如,尽力而为、正常带宽请求优先级、can消息请求优先级、致命故障请求优先级)。
66.图6d和6e示出了根据一些实施例的根端口带宽授权消息的gem头部格式的两个变型的详细视图。如图6d所示,对于node-id与epoch-id相同的节点授权消息,头部602可以包括gem类型字段606、epoch-id字段638、开始时间字段640、授权大小字段642、授权标志字段644、报告命令字段646、授权命令字段648、强制唤醒指示符(fwi)字段650,突发配置文件字段652和头部错误校正/校验字段622。或者,可以省略这些字段中的一个或多个和/或可以增加一个或多个附加字段。在一些实施例中,gem类型字段606是2比特,epoch-id字段638是12比特,开始时间字段640是14比特,授权大小字段642是14比特,授权标志字段644是1比特,报告命令字段646是3比特,授权命令字段648是2比特,强制唤醒指示符字段650是1比特,突发配置文件字段652是2比特,头部错误校正/校验字段622是13比特。或者,这些字段中的一个或多个可以更大或更小。
67.epoch-id字段638可以是或表示消息所针对的节点或node-id的epoch-id。开始时间字段640可以指示被授予目标节点(例如,该节点的历元)的授权窗口的开始时间,授权大小字段642可以指示授权窗口的大小/持续时间。授权标志字段644可以指示窗口是否被授权。报告命令字段646可以指示从节点/历元/端口请求的什么报告。例如,报告命令字段646可以指示以下中的一个或多个:无节点请求发送(rts)状态报告或强制节点向端口报告rts
消息用于黑匣子和诊断测试;与以下一个或多个结合:ploam和nmci仅报告cpu-io消息、can消息和传感器数据加上ploam/nmci的强制报告;以太网数据包加上cpu-io/can/传感器和ploam/nmci的强制报告;和/或ploam/nmci/cpu-io/can/传感器/以太网加上节点操作和控制报告(nocr)的强制完整报告。授权命令字段648可以指示哪种类型的消息/数据被授予突发窗口。例如,授权命令字段648可以指示以下中的一个或多个:窗口不用于ploam和nmci消息;授权窗口仅用于ploam消息;授权窗口仅用于nmci消息;和/或授权窗口用于ploam、nmci和nocr消息。fwi字段650用于指示是否强制休眠节点唤醒,突发配置文件字段652可以指示突发配置(例如,sob定界符、eob定界符和/或前导码的长度、模式和/或其他特性)。
68.如图6e所示,对于node-id与epoch-id不相同的gem授权消息,除了没有报告命令字段646和fwi字段650之外,头部602能够与图6d的头部基本相同。此外,与图6d中不同的是,授权命令字段648可以是6比特。或者,授权命令字段648可以更大或更小。还与图6d中不同的是,授权命令字段648可以指示不同类型的gem带宽授权。例如,字段648可以指示基于节点的输出调度设置的所有voq/cos(服务等级)、仅用于cos消息、仅用于传感器数据、仅用于致命故障消息和/或用于cos消息和传感器数据两者的带宽许可。另外,字段648可以强制针对于node-id的功耗节省,其中节点用确认消息进行回复。
69.图6f示出了根据一些实施例的用于控制消息的gem头部格式的详细视图。如图6f所示,头部602包括gem类型字段606、控制消息类型字段654、一个或多个控制消息字段656和头部错误校正/校验字段622。或者,可以省略这些字段中的一个或多个和/或可以增加一个或多个附加字段。在一些实施例中,gem类型字段606是2比特,控制消息类型字段654是4比特,一个或多个控制消息字段一起是45比特,头部错误校正/校验字段622是13比特。或者,这些字段中的一个或多个可以更大或更小。
70.控制消息类型字段654可以指示该消息是哪种类型的控制消息(例如,因此可以获知控制消息字段656和它们的偏移以用于处理)。在一些实施例中,控制消息类型字段654指示以下中的一个或多个:报告确认消息、can确认消息、流控制消息、节电消息、和io事件消息(例如,致命故障)、运行时状态消息、和/或时间戳更新(例如,从端口到节点)。控制消息字段656可以包括基于(如控制消息类型字段654中所指示的)控制消息的类型的各种控制消息字段。
71.因此,gem格式提供了以下的优点:使总线104能够将显著不同类型的网络(例如,控制器区域网络、光网络、传感器设备广播网络、无线网络、cpu访问网络)的不同输入数据和消息封装成一个唯一的格式(gem)。此唯一的格式能够促进突发和广播消息中的不同数据输入的高速标准化处理和传输,从而实现现代机器自动化应用所需的多网络多设备总线结构的有效操作。
72.突发/广播帧格式
73.在一些实施例中,广播消息被格式化为广播phy帧,该广播phy帧由以下内容定义:前导码 帧起始定界符 帧净荷,其中帧净荷包括多个gem数据包数据和gem控制消息。广播phy帧可以是固定的帧大小(例如,在25-125μs之间)。或者,可以使用更大或更小的帧大小。例如,对于具有较少节点设备204、208的中央网络206和子网络210,帧大小可以更小(例如,25μs或50μs)。在一些实施例中,广播phy帧被构造成携带gem数据包和gem控制消息以通过包括光网络、铜网络和无线网络的网络206、210将从根端口230传送到门202和/或节点204、
208、234。
74.在一些实施例中,突发消息被格式化为突发phy帧,该突发phy帧由以下内容定义的:前导码 帧起始定界符 帧净荷 帧结束定界符,其中帧净荷包括一个或多个gem数据包数据和gem控制消息。突发phy帧尺寸可以根据由根端口hdba和/或门dba授权的节点/门的总突发窗口大小而变化。在一些实施例中,(来自门202或节点204、208、234的)突发phy帧不能超过最大广播phy帧大小(例如,在25-125μs之间)。在一些实施例中,突发phy帧被构造成携带gem数据包和gem控制消息以经由包括光网络、铜网络和无线网络的网络206、210将从门202和/或节点204、208、234传送到根端口230和/或门202。
75.图7a示出了根据一些实施例的广播phy帧700。如图7a所示,广播phy帧700包括用于广播的物理同步块(psbbc)702和广播成帧子层帧704,广播成帧子层帧704包括gem控制消息706、一个或多个gem数据包600和成帧子层(fs)尾部708。如上所述,每个gem数据包600包括头部602和净荷604。在一些实施例中,广播fs帧是受前向纠错(fec)保护的。图7b示出了根据一些实施例的突发phy帧710。如图7b所示,突发phy帧710包括突发定界符(psbuc_sd)712的物理同步块单播开始、突发成帧子层(fs)714和突发定界符(psbuc_ed)716的物理同步块单播结束。psbuc_sd 712可以包括前导码718和突发开始(sob)定界符720,psbuc_ed 716可以包括突发结束(eob)定界符722。突发fs 714可以包括fs头724、一个或多个历元(epoch)726和fs尾708。每个历元726可以包括如上所述具有头部602和净荷604的一个或多个gem数据包600。在一些实施例中,突发fs帧是受fec保护的。特别地,通过包括eob定界符(除了sob定界符和帧的大小之外),结构710使嗅探器、分析引擎或其他元件能够监视总线104内的流量,因为尽管不知道/访问帧的大小,结构710使元件能够基于eob定界符来确定每个突发帧的结束。
76.图7c示出了根据一些实施例的门突发phy帧728。如图7c所示,门突发phy帧728可以包括一个或多个突发phy帧710,这些突发phy帧710组合在一起成为具有单个前导码729和一个或多个间隙730的单个组合突发phy帧。特别地,如下面详细描述的,门202可以从一个或多个子节点208以及一个或多个io端口99(作为虚拟节点)接收突发帧728,并将这些帧728组合成如图7c所示的组合门突发phy帧728。因此,系统100提供了以下优点:即通过组合突发帧进行更有效的消息通信以及通过仅对组合帧整体使用单个前导码而不是对每个组合突发帧(其每个的前导码可以最多至256字节或更多)使用单独的前导码来减少每帧的开销。
77.图8示出了根据一些实施例的操作智能控制器和传感器内部网总线103的方法。如图8所示,在步骤802,一个或多个节点204、208从耦合到一个或多个端口99的一个或多个设备102输入一个或多个消息。在步骤804中,节点204、208将消息封装成通用封装模式(gem)格式以传输到中央处理内核200。在步骤806中,如果输入消息的目的地是内核200内的节点234,则内核解封装、处理消息并将消息发送到它们的目的地而不进行重新封装。否则,在步骤808中,如果输入消息的目的地是(内核200之外的)一个或多个其他节点204、208,则内核200将消息解封装、处理并重新封装回到gem格式,以便广播到它们的目的地。在步骤810中,节点204、208将从内核200接收的消息从gem格式解封装成从设备102之一接收的输入数据的原始格式。或者,如果输入消息是从内核200内部的节点234输入的,则它们能够被内核200输入和处理(不被封装),并且如果它们的目的地是内核200外部的一个或多个节点204、
208,则它们仅被内核200封装以用于广播。因此,该方法提供了以下优点:即实现许多不同类型的数据(例如,传感器、控制器总线、以太网或其他类型的数据)的通信、经由组合突发帧进行的更有效的消息通信、以及通过仅对组合帧整体使用单个前导码而不是对每个组合突发帧使用单独的前导码来减少每帧的开销。
78.内核
79.内核200可以包括内核交换机228、一个或多个根端口230(内部端口)、中央处理单元232和具有io端口99(外部端口)的一个或多个内核节点234。在一些实施例中,内核200还包括用于将数据存储在黑匣子存储器238中的安全存储器(例如,安全数字(sd)存储器)节点236。或者,sd节点236和/或存储器238可以被省略。内核节点234使得用户可以绕过网络206、210将用户插件模块(例如,cpu内核、wifilte/5g、用户应用软件)直接耦合到内核200。
80.内核交换机228包括转发引擎元件、队列缓冲管理器和流量管理器。转发引擎元件可以包括多个转发引擎。例如,转发引擎元件可以包括用于l2/l3/l4以太网头部解析器、查找和分类/访问控制列表(acl)功能的一个引擎,包括l2介质访问控制(mac)地址学习和转发功能、l3互联网协议(ip)地址到gem-id路由/映射。另外,一个引擎可以用于gem头部消息解析器、查找、acl和转发和/或另一引擎可以用于支持dos攻击功能以保护总线104免受外部互联网dos攻击。gem队列缓冲管理器可以是一种集中化的缓冲架构,它采用基于链表的缓冲和队列存储方法,该方法结合了存储-n-转发和直通转发方案。对于延迟敏感gem数据包和gem消息,可以使用直通转发方案,对于拥塞gem数据包,可以使用存储-n-转发方案。这两种方案都可以动态地混合在一起并且根据运行时流量拥塞情况在彼此之间动态切换。gem流量管理器支持基于gem-id和node-id的双令牌管制、单令牌速率限制和输出拟形功能,包括相关管理信息库(mib)计数器。可以支持gem-id加权随机早期检测(wred)和尾部丢弃功能以及早期流量拥塞检测、指示和反馈机制,以通知混合动态带宽分配机制(hdba)、根端口230、门202和节点204、208、234减缓流量传输以避免流量拥塞发生。
81.因此,内核交换机228可以提供入口上的功能,交换机228从根端口230、本地节点234、计算机232和/或其他io端口中的一个或多个接收gem,在出口处处理gem,将接收的gem转发并传输到根端口230、本地节点234、计算机232和/或其他io端口中的一个或多个。换句话说,交换机228可以接受来自多个源的gem数据包;执行gem和以太网l2/l3/l4头解析、l2 mac查找和学习、gem消息和五元组acl和分类;(如果需要的话)修改gem头部和gem净荷以太网头部;以及将gem数据包(或直通缓冲存储器)存储和转发到一个或多个混合自动重传请求(harq)功能块和一个或多个根端口230的广播mac。
82.在执行该处理和/或转发功能时,交换机228可以支持混合存储、转发和直通转发方案,以便减少对延迟敏感gem的传播延迟,并为过突发gem流量提供足够大的缓冲。另外,交换机228可以支持总线104内的即时流控制机制,包括混合动态带宽分配和授权以确保总线104上的总体服务质量(qos)。此外,交换机228可以支持l2/l3/l4 acl和分类、l2mac地址学习和转发、l3 ip地址到gem-id路由/映射以及dos攻击保护。最后,交换机228可以支持qos调度、gem缓冲wred/尾部丢弃、节点和/或gem管制和输出拟形功能。
83.根端口
84.根端口230可以包括根传输mac、根接收mac、安全引擎(例如高级加密标准(aes))、前向纠错(fec)引擎、混合动态带宽分配(hdba)引擎、激活处理器(例如激活状态机)和突发
模式serdes ip。或者,可以省略上述元件中的一个或多个。每个根端口230的传输mac负责接受准备从交换机228和/或harq出口的gem;将gem映射并打包成广播帧格式(例如,广播phy帧结构);并且将gem广播到中央传输网络206上的所有门202和/或节点204,根端口230(例如通过根serdes和光/铜网络广播域)耦合到该中央传输网络206。相反地,每个根端口230的接收mac负责从突发模式serdes和门202和/或节点204、208接收突发帧格式(例如突发phy帧结构)的gem;从突发帧格式中提取gem;解析gem的gem头部;(例如,基于gem头部和系统服务级别协议(sla)配置文件设置)接受发送到它的gem,然后将gem/数据输出到交换机228以进行进一步处理和转发。换句话说,每个根端口230都可以从(从门202的子网210中的节点208转发的)节点204和/或门202接收突发流量,将突发流量转换为用于由交换机228处理的正确格式,然后按照交换机228的指示将输出流量重新格式化并(经由门202)广播到所有节点204和节点208。
85.混合动态带宽分配(hdba)引擎负责接收关于带宽使用、流量拥塞和其他因素的报告(例如,node-dba报告);基于与每个报告相关联的节点/端口/设备的sla配置文件来执行hdba分析,dba报告数据本身和承诺信息速率(cir)/峰值信息速率(pir)反馈;将突发窗口授权给每个node设备并分配端口/epoch-id。换句话说,hdba引擎从(与根端口230及其子网络210相关联的网络206的)节点204、208中的每一个和/或关于带宽使用/流量拥塞的其他源输入数据,并且将突发传输窗口开始时间和/或大小动态地分配给这些节点204、208中的每一个。在对子网210内的节点208执行这种分配时,提供对节点208的访问的门202对于hdba引擎是透明的。因此,如下面详细描述的,门202接收所期望的数据并且在分配给门的202子网210的每个节点208的窗口内执行突发传输。hdba引擎还可以向节点204、208发出报告确认消息(gem-report-ack消息),以确认已收到报告消息(gem-dba报告)。
86.根激活状态机负责通过在节点204、208、234和根端口230之间交换物理层操作、管理和维护(ploam)gem消息的激活处理和过程来执行和完成节点204、208、234设备激活和注册。安全引擎可以是用于接收和发送mac的aes-128/256加密和解密功能块。或者,可以使用其他加密。前向纠错(fec)引擎用于控制在不可靠或有噪声的通信信道上的数据传输中的错误。在一些实施例中,fec引擎分别针对10g和2.5g数据速率使用rs(255,216)和rs(225,232)的里德所罗门fec编码方案。或者,fec引擎可以使用低密度奇偶校验(ldpc)方案和/或其他fec算法。突发模式serdes使用快速时钟和数据恢复(cdr)锁定模式来确保正确接收合适的突发消息(例如突发phy帧)。在一些实施例中,在光纤切断、快速故障转移和保护开关恢复中需要cdr的快速锁定功能。
87.最后,在注册过程之后,根端口230从节点204、208接收广播数据分发服务(dds)消息,该消息将新节点/设备已经加入并注册到总线104的信息通知给根端口230。因此,根端口230用于一直监听和接受来自交换机228和新节点204、208的加入总线104的声明中的这些数据分配服务消息(dds),并更新根端口sla配置文件数据库和设置以反映新添加的节点/设备。
88.节点
89.边缘节点204、208、234在总线104内提供桥接功能,以经由一侧上的io端口99与外部设备102接口,并连接到另一侧上的总线内部网104。为了提供来自耦合到节点204、28的端口99的设备102的数据,节点204、208、234通过总线104将突发消息(例如封装为gem的数
据的突发phy帧)经由根端口230构造并发送到其他节点204、208。此外,为了向耦合到节点204、28的端口99的设备102提供数据,节点204、208、234经由(作为网络206的一部分或其子网络210的)根端口230从其他节点204、208接收广播消息(例如,封装为gem的数据的广播phy帧),从广播消息(例如,来自rx bc-phy帧的gem)提取数据,并过滤和接受属于(发往)节点204、208的数据。
90.为了执行这些和其它功能,边缘节点204、208可以包括一个或多个io端口99、封装/解封装引擎、harq块和节点mac。每个端口99可以是cpu接口(例如pcie、usb和uart)、传感器接口(例如mipi、模数转换器(adc)、gpio)、互联网接口(例如以太网、ethercat和can-bus)以及电机模块接口(例如脉宽调制(pwm)、i2c、adc和gpio)中的一个。封装/解封装引擎接受来自端口99的输入数据,并且在入口将从互联网端口(例如以太网、wi-fi)、传感器接口、电机模块接口和cpu(例如pcie和usb)接收的数据数据包、命令(cmd)和消息封装成gem格式。然后,节点204、208可以将封装的消息(例如gem)输出到harq和/或节点传输mac(如下所述)。在出口处,接受来自(从根端口230和/或另一节点204、208、234接收的)节点接收mac的gem数据包,并将gem解封装回原始数据格式(如从耦合设备102所接收的那样),以便经由端口99之一输出到设备102。与在根端口230中一样,节点204、208的harq执行混合自动重复请求功能,以确保gem数据包被成功地传送到它们的一个或多个目的节点204、208、234。具体地,harq可以内置有重复发送定时器、发送gem列表标志表和接收确认检查功能(例如,gem rx确认(gem rx-acknowledge)),以在定时器没有接收到确认的情况下发生超时时触发gem重新发送。
91.节点mac包括传输mac(tx mac)、接收mac(rx mac)、安全引擎(例如aes)、前向纠错(fec)引擎、dba报告引擎和serdes ip。tx mac负责将gem映射/打包成突发结构(例如突发phy帧结构),并负责在根端口230的动态突发分配引擎所授权的节点的突发窗口期间将突发消息发送到根端口230和/或节点204、208、234。rx mac负责从根端口230和/或节点204、208、234接收和终止广播消息(例如,广播phy帧),从广播消息格式提取gem,基于节点的sla配置文件设置解析和接受发往其(例如,发往其端口99之一)的gem,并且随后将数据输出到封装/解封装引擎。
92.dba报告引擎通过(如上所述的)突发报告将队列(例如epoch队列)中的整体数据数据包和消息报告给相关的根端口230的hdba引擎。另外,dba报告引擎接受来自相关根端口230的hdba和/或相关门202的dba的gem授权消息,并且准备节点传输mac以构建具有存储在队列(例如epoch队列)中的gem的突发消息(例如突发phy帧)。
93.节点激活处理器负责在节点204、206、234和根端口230之间执行和完成节点204、208、234激活处理和过程。安全引擎可以是用于接收和发送mac的aes-128/256加密和解密功能块。或者,可以使用其他加密。fec引擎用于控制在不可靠或有噪声的通信信道上的数据传输错误。在一些实施例中,fec引擎分别针对10g和2.5g数据速率使用rs(255,216)和rs(225,232)的里德所罗门fec编码方案。突发模式serdes使用快速时钟和数据恢复(cdr)锁定模式来确保快速光纤切断、快速故障转移和保护开关恢复。
94.最后,在激活处理之后(例如,在注册过程完成之后),节点204、206、234可以向整个总线104广播dds消息,以将新设备已在该节点204、208、234处加入并注册到总线104的信息通知和公告给根端口230、交换机228、门202和/或其他节点204、206、234。此外,节点204、
206、234可以监听来自交换机228和其它新节点204、206、234的加入总线104的声明中的dds消息,并基于dds消息更新它们的全局sla配置文件数据库和设置。
95.门
96.门202可以包括(具有多个虚拟节点状态机和缓冲的)节点mac、自适应域桥(adb)、(具有内置门dba功能/门dba的)根端口mac、门sla配置文件数据库和突发模式serdes。节点mac包括一下中的一个或多个:发送mac、接收mac、安全引擎(例如,aes)、fec引擎、dba报告功能模块、serdes功能模块和/或虚拟节点处理器的多组(例如,子网210内的每个节点对应一组)、虚拟节点配置文件和设置、以及相关的mib计数器和报告逻辑。传输mac从门adb接收gem,并且基于门的虚拟节点sla配置文件数据库设置将gem映射并打包成其相关的虚拟节点突发结构(例如突发phy帧结构)。此外,传输mac将多个虚拟节点突发结构(例如突发phy帧)聚合成一个门突发结构(例如门/涡轮(gate/turbo)突发phy帧),并基于从根端口230的hdba接收的那些节点208的授权突发窗口,通过网络206将突发消息发送到根端口230。节点接收mac从根端口230接收广播消息(例如,广播phy帧),从消息中提取gem,解析gem的头部,基于gem头部和虚拟节点sla配置文件数据库设置确定哪些消息用于门202的子网210内的节点208,并将这些消息输出到adb。
97.adb在节点mac和门202的根mac之间执行桥接功能。具体地,在(从根端口230到节点208的)广播方向上,adb从节点接收mac接收gem,并基于门虚拟节点配置文件数据库执行gem头部查找、检查和过滤功能,以便接受属于门202的子网210的节点208的gem。然后,adb可以将这些gem输出到门202的根端口传输mac。在(从节点208到根端口230的)突发方向上,adb从根接收mac接收gem,将它们存储在它们相关联的虚拟节点缓冲存储器中,并在它们的突发窗口开始时间到达时将它们输出到虚拟节点传输mac。
98.门202的根端口mac包括传输mac、接收mac、安全引擎(例如,aes)、fec引擎、门dba和突发模式serdes模块。传输mac负责接受来自adb的gem,将gem映射并打包成广播格式(例如,广播phy帧结构),并将广播格式的帧输出到突发模式serdes。接收mac负责从突发模式serdes(例如,远端节点)接收突发消息(例如,突发phy帧),从消息中提取gem,仅解析和接受(如基于解析的gem头部和sla配置文件设置所指示的)针对门202的子网210内的节点208的gem,然后将gem输出到门202的adb。门202的dba是根端口230的扩展hdba。门dba根据门dba sla配置文件设置(其为根hdba的子集)授权和分配节点突发窗口。门sla配置文件数据库包括属于(例如位于门202的子网210内的)该门202的节点标识符列表、门dba功能的节点标识符的sla配置文件表和gem转发信息。突发模式serdes接受来自根传输mac的广播消息(例如广播phy帧),并沿广播传输方向向子网210中的节点208发送。在接收方向上,突发模式serdes通过子网210从节点208接收突发消息(例如突发phy帧),并将它们输出到根接收mac以用于消息/帧终止和gem提取。
99.门202的主要功能是通过自适应桥接将一个根端口230的中央传输网络206桥接到一个或多个子网络210(以及其中的节点208)来扩展该中央传输网络206。特别地,门202可以将来自节点208和/或其子网210内的其它门202’的消息突发到它们所在的网络206的根端口230,就像突发流量来自中央传输网络206内的节点一样。类似地,门202可以将从其它节点204、208、234、交换机228和/或根端口230接收到的消息广播到它们所在的子网210内的节点208和/或其它门202’,就像节点208和/或其它门202’处于中央传输网络206内一样。
因此,门202可以将中央传输网络206扩展到附加节点208和/或不同类型的子网络210,同时在中央传输网络206内维持突发/广播通信方法。
100.更详细地,在(例如,从节点/门到根端口/交换机/内核的)传输突发方向上,从节点208到门202到根230的突发窗口授权机制可以包括以下步骤。首先,门202的dba是(门202是其一部分的网络206的)根端口230的hdba的子集,因此门202的dba对根端口230和节点208是透明的。第二,当门202接收到从其根端口230广播的突发窗口授权消息(例如,gem授权消息)时,门202使用消息头部(例如,gem头部)来查找用于gem转发信息的门sla配置文件数据库。换句话说,门202使用头部数据来确定授权消息是否用于如门sla配置文件数据库中所指示的其子网210内的任何节点208。如果授权消息不是针对其子网210的任何节点208的,则门202丢弃该授权消息,否则,门202将该消息存储在其虚拟节点数据库中,更新数据库,并且向其子网210中的所有节点/门广播新窗口授权消息(例如,gem授权消息),该子网210导向原始授权消息所导向的节点208。作为响应,节点208向门202提供突发消息,并且门202格式化和/或以其他方式准备用于在所接收的该节点208的窗口授权消息中指示的突发窗口开始时向根端口230突发的消息。
101.第三,为了获得最佳吞吐量带宽、高突发带宽效率和/或低传输延迟,门202可以将该新授权消息中指示的授权窗口调整为在原始授权消息中指示的授权窗口之前的至少预定时间量。特别地,该时间量提供了在由原始窗口授权消息指示的时间将数据从门202突发到根端口230之前从节点208接收和格式化突发数据的门202时间。实际上,通过同时针对多个节点208这样做,门202可以将来自多个不同节点的消息(例如,多个突发phy帧)聚合为单个更大的突发消息(例如,gate突发phy帧)
102.第四,由于门流量dba报告和根端口230窗口授权之间的协议,根端口230和门202可以维护组成员关系列表,并且意识到每个门230下的虚拟节点208为一组。因此,当节点208向根端口230的hdba发出报告消息(例如,gem报告)时,门203可以截取报告消息,将其修改为包括临时存储在门202的虚拟节点缓冲存储器(如果存在的话)中的gem数据,并向根端口230的hdba发出新的报告消息。换句话说,门202可以组合来自其子网210中的节点的报告消息,以便使报告更有效。
103.另外,当根端口230的hdba向子网210中的节点208发出授权消息(例如,gem授权消息)时,因为它们(例如,经由虚拟节点数据库)意识到该子网210中的所有节点208,根端口230的hdba可以确保属于相同门202和/或子网210的节点208的授权窗口按顺序/连续顺序排列,从而门202可以组合和/或突发所有虚拟节点的突发消息(例如突发phy帧)无需每个突发消息具备前导码,除第一个突发消息外。提供了减少前导码开销和提高突发带宽效率(特别是对于gem控制消息的小突发)的好处。
104.换句话说,对于数据路径,门202从突发模式serdes和远端节点208接收突发消息(例如突发phy帧),从门202的根接收mac中的消息中提取gem,将gem存储在其相关联的虚拟节点缓冲存储器中,并等待虚拟节点突发窗口授权从这些虚拟节点208的根端口230进入。然后,门202可以将所存储的用于该节点208和其他节点208的gem映射并包装回突发消息格式,从而将多个突发消息聚集在一起,在门202的节点传输mac中形成一个更大的突发消息。最后,门202可以基于授权的突发窗口(例如,该门202的多个连续虚拟节点突发窗口)通过网络206向serdes和根端口230发送该更大的突发消息。
105.现在来看(例如,从根端口/交换机/内核到节点/门的)广播方向,同样,门202可以将中央网络206延伸到子网络210,同时也对其网络206的根端口230和其子网络210中的节点208都是透明的。为了实现这一点,门202可以像虚拟节点一样作用,从根端口230接收广播消息(例如,广播phy帧),从消息中提取gem,丢弃未被导向(例如,由消息头部和门sla配置文件数据库指示的)其子网210中的节点208/门202’之一的gem。否则,门202可以使用存储-n-转发和/或直通方案来将gem打包并映射回到门202的根传输mac中的根端口广播消息结构(例如,广播phy帧结构)中,并且将新的广播消息广播到其子网210中的所有节点208和/或门202’。
106.数据传输操作
107.在操作中,总线104使用突发/广播通信方案来操作,其中来自节点204、208、234(和门202)的所有数据消息使用突发传输方法被汇集到到内核200,其中,大小可(由内核200)动态调整的传输窗口被授权给节点204、208、234,使得它们(或代表它们的门202)可以在被授权的窗口内作为“突发”来发送它们的数据消息。如果发送节点在子网210中,则门202(充当该网络210的根端口)通过子网210从节点208接收突发消息,然后随后通过中央网络206将该消息突发到内核200(如同节点208是中央网络206的一部分一样)。在进行这种突发通信时,门202可以聚集来自子网210内的多个节点208的突发消息,从而提高效率并降低子网210相对于中央网络206可能增加的延迟的影响。实际上,上述操作也可在子网210内的门202’等上重复,该门202’提供了到子网210’的门通道等等,以支持任何数量的“链式/门”网络。此外,在该过程中,门202可以对内核200和节点208透明,使得不需要将消息发往门202。
108.内核200(从将内核200耦合到每个中央网络206的一个或多个根端口230)接收这些消息,处理这些消息(包括修改和/或确定它们的目标目的地),并将它们(以及源自内核200的任何消息)广播到该消息的目标节点204、208、234(或表示该目标节点208的门202)所在的任何中央传输网络206上。与上面的突发通信类似,如果目标节点208在子网210内,则桥接到该子网210的门202可以从内核接收/截取消息,并将该消息重新广播到子网210上的所有节点208(和/或门202’)。为了提高效率,不在子网210(或其子网)上的目标节点204的任何广播消息可以被门202丢弃。同样,该过程是透明的,并且可以由子网210内的门202’等重复,以使任何数量的链式网络通过网络广播消息。因此,网络206(和与其耦合的子网络210)中的每一个上的所有节点204、208、234(和门202)接收来自内核200的在该网络206上广播的所有消息,并且仅需要查找被导向这些节点的消息,丢弃其他的消息。
109.更详细地,当节点204、208、234通过它们的一个或多个io端口99从一个或多个外部设备102接收数据时,将数据存储在gem-id队列缓冲存储器中,并将报告消息(例如,gem报告)突发到它们所在的中央网络206的根端口230(如果它们位于中央网络206的子网络210中,则直接地或通过一个或多个门202突发),并等待被授权一突发窗口以发送输入数据。如上所述,门202可以从它们的子网210中的多个节点208(和/或门202’)收集报告消息并将其聚合成单个更大的报告消息,从而门202可以在这些端口208的突发窗口期间更有效地将该单个更大的报告消息突发到根端口230。
110.同时,节点204、208、234可以将输入数据封装成gem格式(将超过预定义大小的gem分割成更小的gem),利用节点204、208、234的安全密钥加密gem,更新harq表,将gem映射并
打包成突发格式(例如突发phy帧格式),以及进行编码(例如fec rs(255,216)编码)。随后,在每个节点的突发窗口授权和到达之时,节点将包括输入数据的gem突发到关联的根端口230。
111.根端口230的hdba接收来自节点204、208(和/或门202)的所有报告消息,并基于sla配置文件数据库、延迟敏感级别、流量拥塞反馈、承诺信息速率(cir)/峰值信息速率(pir)反馈和/或其他因素对节点204、208中的每一个进行dba分析,以确定节点204、208中的每一个的授权窗口突发大小和开始时间。一旦已经为节点204、208中的一个或多个确定了授权突发窗口,根端口230(经由门202)在广播授权消息(例如,gem授权)中将每个节点的窗口广播到相关联的中心网络206和/或任何子网络210中的所有节点204、208。如上所述,来自根端口230的广播消息的大小相同,而从节点204、208到根端口230的突发窗口的大小可以随着hdba动态分配的大小而变化。
112.门202在接收到把它们的子网210(或其子网)内的节点208作为目标的广播授权消息时,向子网210内的所有节点208广播新的授权消息。具体而言,这些新的授权消息可以指定在原始/根端口授权窗口指示的时间之前发生的突发窗口。这是为了确保门202在原始/根端口授权窗口之前从端口208接收(例如“突发的”)输入数据/gem,从而给予门202时间,以在原始/根端口授权窗口到达时将来自多个节点208和/或端口99的数据/gem聚合成用于突发到根端口230的单个更大的消息。因此,门202可以弥补子网络210的低效率和/或较慢的方面,使得它们不会减慢中央传输网络206的效率。
113.在接收到包括gem的突发消息(包括来自外部设备102的输入数据)时,根端口230可以对突发消息进行解码(例如,fec rs(255,216)解码)和纠错以解码和校正任何的传输错误。然后,根端口230可以从突发消息(例如,传输帧格式)提取gem,解密提取的gem(例如,使用aes-gem/256和源节点安全密钥),旁路gem分段块并将gem传递到交换机228。对于每个gem,交换机228随后可以执行gem头部查找、解析以太网l2/l3地址和头部并对其进行分类、处理gem转发流程图并确定gem转发目的地信息、将gem存储在(直通)缓冲存储器中,并基于sla数据库qos输出调度器将gem输出到harq和目的地根端口230(例如根端口230,其网络206或子网络210包括目标节点204、208)。
114.根端口230接收gem,利用目标节点(或广播gem)的安全密钥进行gem加密(例如aes-gem/256加密),将gem打包并映射成广播消息结构(例如广播帧结构),对消息进行编码(例如fec rs(255,216)编码),最后将广播消息广播到该根端口的网络206及其子网络210中的所有节点204,208。如果节点208在子网210内,则到该子网的门202接收广播消息并将该消息广播到子网210内的所有节点208。在一些实施例中,门202过滤掉不定向到其子网210(或其子网)内的节点208的任何广播消息,并且仅广播有定向到那些节点208中的一个的广播消息。或者,门202可以将所有广播消息重新广播到其子网210内的节点208,无需确定消息是否与这些节点208中的一个相关。
115.所有节点204、208监控所接收的广播消息,处理那些有关节点204、208的广播消息并丢弃其它的广播消息。具体地,对于未被丢弃的消息,节点204、208对这些消息进行解码(例如,fec rs(255,216)解码)和纠错,从广播消息格式(例如,bc phy帧)提取gem,解密提取的gem(例如,使用aes-128/256和目的地节点的安全密钥),将数据从gem格式解封装回原始io端口(io-port)数据格式,并且通过指定的io端口99将数据输出到外部设备102。因此,
总线104和系统100提供了以下优点:能够将具有变化的输入数据、变化的处理速度和数据约束的多个不同网络结合起来,同时仍然保持机器自动化系统所需的低延迟和高吞吐量。这是一个独特的内部网系统架构,专门为这种机器自动化应用程序定义和优化。
116.图4示出了根据一些实施例的用于实现系统100的示例性计算设备400的框图。除了上面描述的特征之外,外部设备102可以包括以下描述的设备400的一些或全部特征。通常,适合于实现计算设备400的硬件结构包括网络接口402、存储器404、处理器406、i/o设备408(例如,读取器)、总线410和存储设备412。可选地,所示出的部件中的一个或多个可以被移除或由本领域中公知的其他部件来替代。处理器的选择不是关键的,只要选择具有足够速度的合适处理器即可。存储器404可以是本领域已知的任何常规计算机存储器。存储设备412可以包括硬盘驱动器、cdrom、cdrw、dvd、dvdrw、闪存卡或任何其他存储设备。计算设备400可以包括一个或多个网络接口402。网络接口的示例包括连接到以太网或其他类型的lan的网卡。i/o设备408可以包括以下一个或多个设备:键盘、鼠标、监视器、显示器、打印机、调制解调器、触摸屏、按钮接口和其他设备。操作软件/应用程序430或其功能/模块可能被存储在存储设备412和存储器404中,并且如应用程序通常处理那样被处理。图4中所示的更多或更少的组件可以包括在计算设备400中。在一些实施例中,包括机器自动化系统硬件420。虽然图4中的计算设备400包括用于系统100的应用程序430和硬件420,但是系统100可以在计算设备上以硬件、固件、软件或其任何组合来实现。
117.图5示出了根据一些实施例的操作包括智能控制器和传感器内部网总线104的机器自动化系统100的方法。如图5所示,在步骤502中,节点204、208经由总线104的一个或多个端口99接收来自多个外部设备102的输入数据。在步骤504中,节点204、208将输入数据作为突发消息以可变大小的突发窗口突发到内核200。在一些实施例中,对于节点204、208中的每一个,根端口230的hdba动态地调整突发窗口开始时间和可变突发窗口的大小,并且基于节点204、208中的一个节点报告的数据流量参数在广播授权窗口消息中将调整的窗口分配给对应的节点204、208。在一些实施例中,门202将从节点208接收到的包括输入数据和/或流量报告的两个或更多个突发消息聚合为单个较大的突发报告或输入数据消息,用于突发到内核200。在这样的实施例中,门202可以省略所接收的突发消息(例如,前导码)的部分,以便提高总线104的效率。在一些实施例中,在从内核200接收广播窗口授权消息时,门202将突发窗口的原始时间调整为更早的时间,并将调整后的广播窗口授权消息广播到节点208。因此,节点208在由根端口230授权的窗口之前将它们的数据突发到门202,使得门202可以将多个突发消息组合在一起并且在稍后的原始时间窗口中突发它们。在步骤506中,内核200处理输入数据并将其作为广播消息广播至到达该消息的目标节点204、208所需的中央网络206和子网络210内的节点204、208中的每一个。在步骤508中,目标节点204、208将广播消息的数据转换为由耦合到节点204、208的设备102所接受的格式,并将数据输出到设备102。因此,该方法提供了以下优点:尽管使用低速网络介质,但仍能够使总线104保持高速。
118.多层安全
119.图13示出了根据一些实施例的包括多层安全架构的总线104,该多层安全架构包括组件层、网络层和行为层。可选地,可以省略这些层中的一个或多个。因此,除了这里描述的差异之外,图13的总线104可以基本上类似于图2的总线。如图13所示,总线104可以包括
安全模块1302、专用安全模块管理中央处理单元(cpu)1304和一个或多个行为监视节点1306。在一些实施例中,在每个网络206和/或子网络210中存在一个或多个单独的行为监测节点1306,用于监测那些网络206/210的节点204、208、234的行为。可选地,一个或多个行为监测节点1306可以监测多个或所有网络206和/或子网络210的节点204、208、234的行为。在一些实施例中,每个内核200包括单独的安全模块1302和内核200内的专用安全模块管理cpu 1304。可选地,一个或多个内核200可以不具有单独的安全模块1302和专用安全模块管理cpu 1304,和/或安全模块1302,且专用安全模块管理cpu 1304可以位于总线104内的内核200的外部。在一些实施例中,每个安全模块1302具有与安全模块1302一起操作的单独的专用安全模块管理cpu 1304。可选地,专用安全模块管理cpu 1304中的一个或多个可以与多个不同的安全模块1302一起操作。
120.组件层可以包括安全模块1302、专用安全模块管理cpu 1304和调试元件1306。如图14所示,安全模块1302可以包括存储器1402(例如非易失性存储器)、一次性可编程(otp)存储器1404、随机数生成器1406(例如真随机数生成器(trng))、密钥生成器1408(例如硬件加密密钥生成引擎)、引导只读存储器(rom)1410、随机存取存储器(ram)、一个或多个cpu 1414和安全模块接口1416。在一些实施例中,模块1302可以经由附加存储器1402’(例如,附加非易失性存储器)和/或附加ram 1412’以包括外部存储器。在这样的实施例中,模块1302可以经由接口1416访问、读取或写入外部存储器。外部存储器可以位于内核200中的一个或多个和/或总线104上的其它地方。在一些实施例中,仅密钥生成器1408有权访问otp存储器1404,因而otp存储器1404与外部访问隔离。在一些实施例中,模块1302的元件中的一个或多个可以被省略或复制,和/或可以添加不同的元件。
121.otp存储器1402是在不损坏存储器的情况下无法被重新编程或读取的存储器,因而该存储器只能被编程为单个实例。在模块1302内,otp存储器1402被编程以存储一个或多个主种子(primary seed)和/或唯一主密钥(例如,背书主密钥)、存储密钥和从总线104的每个内核200和节点204、208、234的一个或多个主种子导出的平台密钥。这些主种子和主密钥永远不会在模块1302之外共享,并且在模块1302内可以用于为它们已被分配/被关联的节点/内核导出所有其他安全密钥(例如,形成密钥的分层树)。具体地,密钥生成器1408可以访问主密钥以便为一个或多个节点和/或内核生成次密钥,然后这些次密钥可以存储在存储器1402中(以及如果存储器1402已满,则存储在附加存储器1402’中)。在一些实施例中,主平台密钥用于导出每个节点/内核(用于网络证书)的平台密钥和每个节点/内核的网络加密密钥(例如aes加密)中的一个或多个,用于加密总线104上的消息。在一些实施例中,网络加密密钥可以在每个内核200中开始(并且分布到与该内核耦合的节点)。这些密钥可以在内核200重新启动之后的期间进行更改。此外,在内核200操作期间,内核200和/或系统100可以改变网络加密密钥并将新密钥分配给节点(可选地排除如下面描述的行为模块所指示的表现出可疑行为的节点)。在一些实施例中,网络加密密钥处于模块1302中的临时密钥层级中。在一些实施例中,主存储密钥可以用于导出每个节点/内核的存储器1402、1402’加密密钥和每个节点/内核的文件系统加密密钥中的一个或多个。在一些实施例中,主要出生/背书密钥可以用于导出每个节点/内核的身份密钥中的一个或多个以用于标识/认证过程。
122.例如,节点/内核的根安全密钥(rsk)可以是基于该节点/内核的一个或多个主密
钥(例如出生密钥)(例如由密钥生成器1408)为该节点/内核生成的rsa密钥;节点/内核的存储密钥可以是基于节点/内核的rsk(例如由密钥生成器1408)为节点/内核生成的rsa密钥;用于对节点/内核的消息进行数字签名的签名密钥(signk)可以是基于节点/内核的sk(例如由密钥生成器1408)为节点/内核生成的密钥;节点/内核的根网络密钥(rnk)可以是基于节点/内核的rsk(例如由密钥生成器1408)为节点/内核生成的rsa密钥;并且用于为节点/内核加密/解密消息的网络aes密钥(nak)可以与rnk一起被传输到节点/内核。可选地,可以使用和/或从主密钥导出其他类型的次密钥。每个节点/内核的每个次密钥可以以加密形式伴随它们与彼此和/或与它们的主密钥的层级关系存储在模块1302的存储器1402、1402’中。每个节点/内核的这些密钥中的一个或多个(除了主种子和/或主密钥之外)可以由专用安全模块1302周期性地和/或响应于当前状态(例如由如下所述的行为层确定的检测到的行为状态)重置、重新分配和/或重新计算。在一些实施例中,主密钥和次密钥中的一个或多个仅可以在安全模块1302内使用。在一些实施例中,加密密钥可以被加载到模块1302中,解密并保存以供以后使用。
123.此外,主密钥和/或次密钥可以用于向每个节点和/或内核提供证书。特别地,每个内核可以被提供有(例如保存在存储器1402、1402’中的)认证中心,用于验证/认证节点可以连接的有效内核(参见下面的双向认证过程)。类似地,每个节点可以被提供(例如,保存在存储器1402、1402’中的)网络证书和出生证书,用于分别加入总线104的网络206、210中的一个和证明总线104上的节点的身份。此外,原始软件认证中心可以存储在otp存储器1404中。该认证中心的认证码及其完整的自身可以由系统100的原始所有者提供(例如与种子一起),并且可以用于认证能够在总线104上加载和使用的软件(参见下面的信任引导过程)。
124.随机数生成器1406可以生成随机数和/或字符串,这些随机数和/或字符串可以由密钥生成器1408与主种子和/或密钥一起使用,以为每个节点204、208、234和/或内核200生成密钥树的次密钥。在一些实施例中,密钥生成器1408还可以生成用于使能网络206、210内的安全通信的消息的认证码,和/或可以用于生成节点和/或内核的基于散列的密钥。安全模块接口1416可以提供用于与专用安全模块管理cpu 1304通信的接口,用于接收和响应系统100请求。
125.在一些实施例中,模块1302包括重置功能,该重置功能可以重置安全模块的设置,使得所有存储器1402、1402’被删除,从而移除存储在那里的所有安全密钥。然而,即使在重置期间,存储在otp存储器1404中的数据(例如,主种子/密钥)也不受影响。在一些实施例中,重置功能1416不能被远程激活,因而需要管理员的物理存在来重置安全模块1302。
126.专用安全模块管理cpu 1304可以与网络100内的所有其它cpu子系统隔离,并且专用于与安全模块1302一起操作。因此,专用安全模块管理cpu 1304提供对系统100内的安全模块1302的唯一访问。为了使总线102的任意操作元件访问安全模块1302,它们必须和随后与模块1302通信的安全模块管理cpu 1304接口,以便检索期望的数据。
127.组件层还可以实现级联管理器基础架构和信任引导过程。具体地,根据一些实施例,图15示出了总线104包括被划分为多个级联管理器级别的多个子系统。
128.如图15所示,最高级别可以包括以下中的一个或多个:专用安全模块管理cpu1304、安全模块1302、用于对设备102执行实时控制的一个或多个控制器(例如微控制器
单元(mcu))1502和一个或多个转换器1504(例如模数转换器(adc)、数模转换器(dca))。在一些实施例中,控制器单元1502可以结合一个或多个计算机系统应用或用户应用。第二级可以包括一个或多个网络引擎1506。在一些实施例中,可以添加一个或多个附加级别。每个级别的每个组件提供有对下层资源/服务的访问,但是每个低级别组件不能将访问/使用指向上层资源/服务。相反,如果需要上层资源/服务,则低级别组件可以向高级别组件发送所需资源/服务的请求(例如,中断信号)。因此,高级别组件可以通过在授权、执行或拒绝低级别组件请求时强制执行安全协议来在低级别组件上强制执行这些协议。同时,只有专用安全模块管理cpu 1304可以访问安全模块1302(其中存储有加密密钥和证书)。可选地,可以使用更高或更低的级别和/或组件。
129.信任引导过程是安全引导过程,其中在引导系统的下一级之前对每个引导程序(例如,系统100的节点或其他元件的引导加载程序和/或管理cpu 1304的操作系统映像、控制器1502、驱动器、用户应用程序和/或其他程序)进行认证,使得在认证能够被建立之前防止运行不能被认证的程序。具体地,安全模块1302的存储器1402可以存储用于要在系统100上引导的每个程序(例如,程序的每个映像和/或引导加载程序)的测量集(例如,散列或其他测量度量)和可以验证所引导的程序的证书的原始认证中心。在总线104的制造或启动期间,(例如由原始所有者提供的)原始认证中心可以被存储在otp存储器1404中。每个程序的测量集可以包括:黄金测量集(例如,工厂/初始设置);从最近的引导尝试开始记录的最后一组测量;以及当程序当前在系统100上运行时从程序的引导开始记录的当前测量集合。此外,每当一个程序被更新时,不是覆盖现有的测量条目,而是存储黄金、最后和当前测量集的新条目(因而如果它们希望从后续更新恢复,则系统可以返回到先前的测量集)。在一些实施例中,每个引导程序包括证书(例如制造商证书)、引导程序本身以及引导程序的测量(例如签名代码散列)。如下所述,在可以执行/引导程序之前,需要验证每个引导程序的证书和测量结果。
130.在操作中,在停止所有其它程序的引导的同时,系统100首先使用存储在otp存储器1404中的认证中心来确定专用安全模块管理cpu 1304的引导加载程序软件的引导加载程序证书是否真实。例如,证书可以是可以使用认证中心验证的密钥解密的密钥的签名。如果该证书不是真实的,引导将中止并采取纠正措施(例如使用以前存储的版本、发出管理警报等)。如果该证书是真实的,则系统测量专用安全模块管理cpu 1304的引导软件映像,将结果存储为安全模块1302中的关联条目的最后测量集,并将结果与存储的该条目的黄金测量集进行比较。如果测量值匹配(或在定义的不一致范围内基本匹配),则系统引导安全模块管理cpu 1304并记录结果作为关联条目的当前测量值。然后,系统可以重复该模式以引导每个后续程序(同时停止其他程序的引导),并且以相同的方式测量程序,存储结果,将其与所存储的黄金测量集进行比较,且如果结果匹配(或者在定义的不一致范围内基本匹配),则引导程序。如果有任何程序的测量结果不匹配(或在定义的不一致范围内基本不匹配),则可以重新计算该测量和/或可以停止和/或跳过这些程序的引导,直到管理员批准上述不一致或批准从先前存储的(例如,先前版本的)条目引导。
131.在一些实施例中,如果后续用户想要添加不具有来自原始认证中心的证书的附加软件,则可以有多个阶段的引导加载程序,每个引导加载程序使用后续(由先前认证中心授权的)认证中心以认证其引导软件的证书。具体地,在这种多阶段引导过程中,在如上所述
认证第一阶段引导加载程序软件证书和软件测量(例如散列)之后,执行第一阶段引导加载程序软件,并且(例如由原始总线104所有者提供并存储在otp存储器1404中的)第一阶段认证中心生成新的认证中心并将其加载到安全模块1302的ram 1412、1412’中。此新认证中心由原始认证中心签名,并颁发阶段2引导加载程序软件证书。该第二阶段引导加载程序软件证书可以与第二阶段引导加载程序软件一起使用,因此其可以以与如上所述验证第一阶段引导加载程序软件证书相同的方式被安全模块1302(通过使用新的认证中心不是原始认证中心)认证。
132.如果阶段2引导加载程序软件证书通过验证,则对阶段2引导加载程序软件进行软件测量(例如散列)以确定它们是否与阶段2的黄金测量基本匹配(或者如果这是第一次,则将测量存储为黄金测量)。如果测量基本匹配,则执行阶段2引导加载程序软件。如果有任何身份验证失败,则可以中止或重试该引导加载程序软件的引导。然后,此模式可以继续用于任何后续阶段,前一阶段生成链中每个后续阶段的新认证中心和软件证书。因此,系统可以确保总线104上运行的每个程序被认证。
133.调试元件1306可以经由一个或多个调试访问端口(例如,联合测试动作组(jtag)端口)实现和/或经由网络210与调试控制接口(if)和调试控制器一起远程实现。调试元件在启用对总线102的访问之前需要身份验证。具体地,调试元件需要由网络组件发布的调试证书(例如,需要节点制造商来启用soc内的调试控制接口(例如,内核200))。关于安全模块1302的调试,调试控制if可以经由专用安全模块管理cpu 1304被启用并且可以仅在预定时间段和/或其他特定预编程状态中有效。在一些实施例中,调试元件1306在运行时被禁用(例如,以防止运行时黑客攻击)。
134.因此,组件层提供了以下优点:防止未知或未授权组件通信或以其他方式中断总线104的操作,包括防止物理和软件损坏尝试。此外,组件层可以通过屏蔽用于欺骗安全密钥的功耗来阻止电力轨攻击。
135.网络层包括双向节点/内核认证和/或消息加密协议的实现。每当节点204、208、234加入总线104(例如,设备102耦合到节点204、208、234)时,根据需要和/或响应于行为层检测到的行为模式,可以在总线104上实现双向节点/内核认证。在该过程开始之前,新节点的标识符(例如联网证书)被存储在节点204、208、234希望与之通信的内核200的存储器的数据库中,并且那些内核200的标识符和/或证书(例如认证中心)被存储在节点204、208、234上。在节点/内核被认证之后,内核200的证书被存储在节点204、208、234上以用于将来的通信/认证。这些证书可以是提供给安全模块1302的内核/节点制造商证书,然后安全模块1302可以将它们(或使用内核/节点的一个或多个主种子和/或密钥的它们的衍生物)提供给内核/节点。具体地,每个内核200可以存储内核200所属网络206、210内的所有节点204、208、234的标识符和/或证书,并且每个节点204、208、234可以存储节点204、208、234所属网络206、210内的所有内核200的标识符和/或证书。
136.图16示出了根据一些实施例的实现双向节点/内核认证协议的方法。如图16所示,在步骤1602中,节点204、208、234通过向内核200发送包括节点204、208、234的标识符的请求消息来请求在策略(例如,公共、私有或其他)下加入(或重建)与内核200的通信。该策略可以定义提供给节点204、208、234的特权级别和/或节点204、208、234通信所需的加密级别。在步骤1604中,内核200通过将接收到的标识符与内核200的标识符数据库中存储的标
识符进行比较来验证节点204、208、234的身份。在步骤1606中,如果验证了节点204、208、234的标识符,则内核200向节点204、208、234发送证书请求消息。在步骤1608中,节点204、208、234向内核200发送节点证书。在一些实施例中,节点204、208、234基于在步骤1602的请求消息中请求的策略来选择存储的证书中的哪一个来发送。
137.在步骤1610中,内核200通过将接收到的证书与内核200的证书数据库中存储的该节点的证书进行比较来验证节点证书(并且该节点能够证明其对证书的所有权)。在步骤1612中,如果验证了节点204、208、234的证书,则内核200向节点204、208、234发送内核证书。在一些实施例中,内核200基于在步骤1602的请求消息中请求的策略来选择存储的证书中的哪一个来发送。在步骤1614中,节点204、208、234通过将接收到的证书与节点204、208、234的证书数据库中存储的该内核200的内核证书进行比较来验证该内核证书(并且该内核能够证明其对该证书的所有权)。在步骤1616中,如果验证了内核200的证书,则节点204、208、234向内核200发送消息加密密钥请求消息。在一些实施例中,证书请求消息及其验证基于策略,使得不同的策略与不同的证书相关联,并且不同证书的认证要求提交与正确的策略相关联的证书。
138.在步骤1618中,内核200生成新的加密密钥或(例如,经由对安全模块管理cpu 1304的请求)检索存储在安全模块1302中的加密密钥(例如,nak)。在步骤1620中,内核200向节点204、208、234发送加密密钥。在步骤1622中,节点204、208、234接收并存储加密密钥,并将加密密钥发送给安全模块1302。在一些实施例中,内核200在使用内核200和节点204、208、234的根网络密钥(rnk)将加密密钥(经由安全模块管理cpu 1304)传输到节点204、208、234之前对加密密钥进行加密,使得在传输期间其他节点不能读取该加密密钥。在步骤1624中,节点204、208、234向内核200发送接收该加密密钥的确认。因此,系统100使得每个内核/节点对能够建立(和重建)(或仅由该内核/节点对使用,或由一组一个或多个节点和/或内核共享的)加密密钥,以用于在总线104上加密/解密内核200和节点204、208、234之间的通信。
139.在该认证过程之前,加入总线104的新节点204、208、234可以监听来自内核200的广播消息,但是在它们在被认证之前被限制不能在总线104上发送/突发消息。当监听时,新节点204、208、234将无法解密(例如,通过aes)加密的安全策略消息,但可以得知未加密的公共策略消息。此外,上述认证过程可以要求系统管理员特权来执行。
140.消息加密协议使得系统100的节点204、208、234和/或内核200在双向认证过程期间使用管理cpu 1304和/或安全模块1302分配给节点204、208、234和/或内核200的加密密钥(例如aes密钥)来加密通过总线104的所有通信(如果服从安全策略的话)。或者,如果通信不敏感,则它们服从公共策略,在公共策略中,加密可以被省略。用于加密消息的加密密钥可以对于通信的每个节点/内核对是唯一的,使得不同的节点/内核对可以使用不同的加密密钥来加密它们的通信。因此,内核200可以存储多个加密密钥,每个加密密钥与一个或多个不同节点204、208、234相关联并且用于加密/解密来自那些一个或多个节点204、208、234的消息。类似地,节点204、208、234可以存储多个加密密钥,每个加密密钥与一个或多个不同的内核200相关联并且用于加密/解密来自那些一个或多个内核200的消息。因此,即使解密密钥被泄露,入侵者也只能使用该密钥而不是使用其他密钥加密的消息来解密来自节点204、208、234和/或内核200的消息。因此,系统100的网络层提供了以下优点:使得单独的
密钥可以被用于每个节点/内核通信组合和/或用于由一些或所有节点/内核所共享的加密密钥,从而自定义系统100的安全级别。此外,网络层提供双向认证的优点,确保在加入网络之前对节点和内核进行认证,并且对后续通信进行加密以避免不需要的监听。
141.行为层包括可以监控总线104(或其子集)内的节点204、208、234和/或内核200的行为的一个或多个行为监控节点(或内核)1308,以检测和/或响应异常行为。在一些实施例中,监控节点1308位于节点204、208、234和/或内核200中的一个或多个内。可选地或另外地,监控节点1308可以与节点204、208、234和/或内核200分隔开。
142.在操作中,监控节点1308监控并存储总线104内的节点204、208、234(以及因此耦合到它们的设备102)和/或内核200中的一个或多个的行为。然后,监控节点1308将所监控的行为的周期与一组存储的行为参数或模式进行比较,以确定所监控的行为的周期是否在(该节点/内核的)行为参数的可接受值内。如果所监控的行为不在行为参数的可接受值内,则监控节点1308可以针对节点/内核采取一个或多个安全动作。这些动作可以包括发送指示所检测到的行为的警告或错误消息、暂停节点/内核的操作、要求节点/内核与系统重新认证(例如,经由图16的认证过程)、改变所有其他节点/内核使用的加密密钥(使得“不当行为”的节点/内核不能再在系统上加密/解密消息)以及暂停全部或部分总线104、设备102和/或系统的操作。监控节点1308可以包括将一个或多个动作与节点/内核及其行为参数相关联的表,使得监控节点1308所采取的动作可以基于所监控的行为如何偏离由表指示的行为参数。在一些实施例中,仅当预定数量或百分比的监控节点1308全部指示(由那些单独的监控节点1308独立监控的)主体节点/内核的行为在该节点/内核的行为参数之外时,才采取一个或多个动作。
143.所监控的行为可以包括消息频率、消息类型、功率使用、消息目的地、消息时间、消息大小、拥塞级别和/或此处描述的节点和/或内核的行为的其他特征。相应地,所存储的行为参数可以包括一个或多个所监控的行为特征的值、范围、阈值、比率或其他度量和/或它们的组合。所存储的行为参数可以被预编程用于每个监控节点1308(或者由多个监控节点1308共享),使得其监控的每种类型的节点204、208、234和/或内核200具有相关联的一组行为参数。可选地或另外地,一个或多个监控节点1308可以包括人工智能或自学习功能,其中节点1308基于其行为生成和/或调整其监控的每种类型的节点204、208、234和/或内核200的行为参数。例如,可以对默认行为参数进行预编程,然后基于在该时段期间监控的行为周期性地调整。
144.因此,行为层提供了以下优点:检测节点和/或内核何时由于密钥/证书泄漏(例如,使用合法证书在其上运行的非法软件)和导致不当行为的错误或其他故障而被黑客攻击。
145.图17示出了根据一些实施例的操作智能控制器和传感器内部网总线的方法。如图17所示,在步骤1702中,对于总线104的每个子系统,总线104执行信任引导过程,该信任引导过程包括:测量子系统的当前引导映像,并且除非当前引导映像的测量与存储在安全模块中的子系统的引导映像的测量匹配,否则不引导该子系统。在步骤1704中,节点204、208、234和内核200通过基于内核200的一个或多个主种子和/或密钥的导数来利用节点204、208、234之一验证内核200的身份,并且通过基于节点204、208、234之一的主种子和/或密钥中的一个或多个的导数来利用内核200验证耦合到节点204、208、234之一的设备102之一的
身份,以执行双向认证过程。在步骤1706中,行为监测节点1308存储与一组一个或多个节点204、208、234和内核200对应的行为参数和动作集合,并且对于该组中的每一个:监测和记录该组中的一个的行为;将所监控的行为与该组中的该个对应的一个行为参数和动作集合中的行为参数进行比较;并且如果所监控的行为不满足该行为参数,则执行该行为参数和动作集合中的一个或多个动作。因此,该方法提供了确保系统100在组件、网络和行为级别上的安全性的优点。
146.在一些实施例中,在使设备102中的一个可以传送消息之后,节点/内核周期性地重新执行双向认证过程,并且如果双向认证过程失败,则在总线104上禁用设备102之一的操作。在一些实施例中,如果双向认证过程成功,则内核200确定设备102之一和节点之一的加密密钥,并且内核和节点/设备使用加密密钥来加密和解密消息。在一些实施例中,每当双向认证过程的周期性重新执行成功时,内核200为设备/节点之一确定新的加密密钥,并使用新的加密密钥对消息进行加密和解密。
147.设备模块
148.在一些实施例中,设备102可以是设备模块。图9示出了根据一些实施例的智能柔性执行器(sca)和传感器模块900。sca和传感器模块900可以是本文描述的机器自动化系统100的设备102中的一个或多个。在一些实施例中,智能柔性执行器(sca)和传感器模块900根据所施加的外力允许偏离其自身的平衡位置,其中柔性执行器的平衡位置被定义为执行器产生零力或零转矩的执行器位置。如图9所示,sca和传感器模块可以包括经由设备网络908耦合在一起的一个或多个电机902、一个或多个传感器904和/或控制板906(用于控制电机902和/或传感器904)。特别地,这种类型的模块900可以执行高带宽和/或低延迟所需的机器自动化任务(例如,经由总线104与一个或多个控制器设备102耦合)。电机902可以包括驱动电机以控制模块900的致动(例如机器人臂的移动),并且传感器904可以包括图像和/或磁传感器以输入图像数据和/或检测模块900的位置(例如机器人臂的当前位置、图像传感器的位置、来自自动驾驶汽车的前部的感测图像,或其他感测数据)。
149.图10a-c示出了根据一些实施例的控制板906、906’、906”的变型。如图10a所示,用于多连接模式模块900的控制板906可以包括全部可操作地耦合在一起的节点片上系统(soc)1002、跨阻放大器(tia)和/或激光驱动器(ld)1004、双向光学组件(bosa)1006、功率调节器1008、电机驱动器1010、柔性执行器电机和功率控制连接器1012,电机控制信号收发器1014、一个或多个传感器1016、光分路器1018、输入功率连接器1020、一个或多个输出功率连接器1022、第一光纤连接器1024和一个或多个第二光纤连接器1026。特别地,bosa 1006、光分路器1018和光纤连接器1024、1026经由光纤电缆耦合在一起。可选地,可以省略上述元件中的一个或多个,其数量可以增加或减少和/或可以增加其他元件。
150.控制板906可以是柔性印刷电路板。bosa 1006可以包括发送器光学子组件(tosa)、接收器光学子组件(rosa)和波分复用(wdm)滤波器,使得其可以使用双向技术来支持每个光纤上的两个波长。在一些实施例中,bosa 1006是混合硅光子学bosa。电机驱动器1010可以是预驱动器、门驱动器或其他类型的驱动器。柔性执行器电机和功率控制连接器1012可以向电机902传输控制和/或功率信号。电动机控制信号收发器1014可以经由总线104接收电机控制信号和/或将电机、传感器和/或其他数据发送到一个或多个控制器设备102。传感器1016可以包括磁传感器和/或其他类型的传感器。例如,传感器1016可以感测模
块900的位置和/或朝向,并将位置数据作为反馈提供给soc 1002和/或经由总线104与模块900耦合的控制器设备102。光分路器1018可以内置于控制板906。输入功率连接器1020接收控制板906的功率。输出功率连接器1022用于向一个或多个其它板/模块900供应、传输和/或转发功率。
151.第一光纤连接器1024与光纤分路器1018耦合,分路器1018将电缆分离成两个或更多个电缆。一根电缆与bosa 1006耦合,用于向板906的其他元件传输信号和从板906的其他元件传输信号,其余的每根电缆与一个或多个第二光纤连接器1026中的不同个光纤连接器耦合。第一光纤连接器1024和/或第二光纤连接器1026可以是尾纤光纤连接点和/或连接器1024。具体地,尾纤光纤连接点和/或连接器可以包括单个的、短的、通常紧密缓冲的光纤,该光纤一端预安装有光纤连接器,另一端有一段裸露光纤。尾纤的末端可以被剥离并熔接成多纤维干的单纤维。可选地,可以使用其它类型的光学连接点和/或连接器1024。
152.在控制板906、906’、906”内的操作中,电机驱动器1010可以接收由soc 1002(和/或经由soc 1002的控制器装置102)产生的脉宽调制(pwm)的控制信号,用于(经由柔性执行器电机和功率控制连接器1012)控制soc模块900的电机902的转矩、速度和/或其它操作。另外,传感器1016、传感器904和/或驱动器1010可以向soc 1002提供电机和/或传感器状态反馈,使得soc 1002(和/或经由soc 1002的控制器设备102)可以基于反馈来调节控制信号,以便控制电机902和/或传感器904的操作。例如,驱动器1010可以提供包括a相电流值、b相电流值和c相电流值的电机电流传感器反馈,其中soc 1002的内部模数转换器(adc)将这些值转换为数字值,并且soc 1002(和/或经由soc 1002的控制器设备102)基于从驱动器1010接收的电机电流传感器反馈来调节传输到驱动器1010的pwm控制信号,从而调节电机902的速度,转矩和/或其它特性。
153.在系统100内的操作中,第一光纤连接器1024使得板/模块900可以经由光纤电缆耦合到总线104,而分路器1018和第二光纤连接器1026使得板/模块900可以经由附加光纤电缆耦合到一个或多个附加板/模块900(例如,用于从耦合到总线104的其他端口99的一个或多个控制器装置102接收控制信号和/或向耦合到总线104的其他端口99的一个或多个控制器装置102发送数据信号)。因此,如图11a所示,板/模块900可以作为串行级联耦合到总线104的端口99,其中仅仅单个端口99就可以耦合到多个板/模块900。具体地,如图11a所示,一个板906(经由光纤电缆)从第一光纤连接器1024光耦合到端口99,并且每个后续板906的第一光纤连接器1024(全部经由光纤电缆)耦合到另一个板906的第二光纤连接器1026。实际上,如图11a所示,如果板906包括多个第二光纤连接器1026,则级联可以分支成树状结构,其中单个板/模块900光耦合到多个其他板/模块900。同时,板/模块900可以以相同的方式共享功率,其中它们经由从电源接收功率的一个或多个模块900和通过将其输入功率连接器1020耦合到另一个模块900的输出功率连接器1022来接收功率的一个或多个其他模块900的输入功率连接器1020被光耦合。
154.可选地,如图11b所示,用于单连接模式模块900的控制板906’可以不包括一个或多个第二光纤连接器1026和/或一个或多个输出功率连接器1022。在一些实施例中,如图10c所示,用于单连接模式图像传感器模块900的控制板906”可以进一步包括一个或多个柔性执行器电机1028以及一个或多个图像或其他类型的传感器1030(例如,照相机、激光雷达、磁性、超声、红外、射频)。在这样的实施例中,电机1028可以控制传感器1030的移动,同
时传感器1016检测电机1028和/或传感器1030的位置和/或朝向。可选地,控制板906”可以是进一步包括一个或多个第二光纤连接器1026和/或一个或多个输出功率连接器1022的多连接模式图像传感器模块900。
155.如图11a所示,这些单连接模式模块900和/或板906’和906”可以耦合到由多连接模式模块900形成的级联或树,和/或与总线104并联耦合。另外,如图11b所示,系统100可以包括一个或多个外部光分路器1102,其中配置成串行级联、树和/或并联的一个或多个板/模块906、906’、906”可以在使用外部光分路器1102耦合到总线104时进一步并联和/或串联。例如,如图11b所示,光分路器1102用于耦合到单个端口99、模块900的级联的输出、一个或多个单独模块900和另一分路器1102。尽管如图11b所示,分路器1102是1-4分路器,但是根据需要它们可以是任何比率1-n。同样,尽管如图11a和11b所示,仅模块906、906’、906”被示出为耦合到总线104,但是应当理解,其它装置102的任何组合也可以与模块一起耦合到总线104。例如,一个或多个控制器设备102可以耦合到总线104以用于接收数据和向模块发出命令。
156.因此,模块900提供提供了以下优点:实现超高吞吐量和数据带宽,并且与其他模块相比可支持高达10倍至100倍的带宽和长距离。具体地,利用光通信以及串行级联耦合的能力使得模块900能够提供快速数据传输速度和超低延迟而不被电磁干扰(emi)所干扰。此外,由于模块900能够应对机器人、工业自动化和自动驾驶车辆领域对传感器数据的高带宽和低延迟要求,所以模块900在这些领域中具有特别的优势。
157.图12示出了根据一些实施例的操作控制器和传感器总线的方法,该控制器和传感器总线包括用于与机器自动化系统的多个外部机器自动化设备耦合的多个端口。如图12所示,在步骤1202中,一个或多个控制器设备102耦合到总线104的一个或多个端口99。在步骤1204中,一个或多个sca和传感器模块900的第一光纤连接器1024与一个或多个端口99耦合。在步骤1206中,经由一个或多个中央传输网络206通过总线104在控制器104与sca和传感器模块900之间中继消息。在步骤1208中,控制板906基于从控制器设备102接收的消息来调节sca和传感器模块900的操作。在一些实施例中,sca和传感器模块900中的每一个经由光纤电缆直接并行地耦合到端口99之一。在一些实施例中,耦合sca和传感器模块900包括将sca和传感器模块900与光分路器1102并行地耦合并且经由光纤电缆将光分路器1102耦合到端口99。在一些实施例中,耦合sca和传感器模块900包括经由光纤电缆将第一个sca和传感器模块900的第一光纤连接器1024耦合到端口99之一,并且将第一个sca和传感器模块900中的第二光纤连接器1026耦合到第二个sca和传感器模块900中的第一光纤连接器1024。
158.实现动态突发到广播传输网络的系统100以及机器自动化控制器和传感器总线104具有许多优点。具体而言,它提供了以下的优点:简单的电缆系统和连接;消除光纤电缆用户造成的重大电磁干扰(emi)影响;保障节点到节点通信的低延迟;从节点到节点传输的高吞吐量带宽(10,25,100gbps或更大gbps);节点到节点设备之间可扩展到20km;采用无源光网络结构,低功耗;采用集中式dba调度机制,从而具有不流量拥塞的工业级qos;内置harq机制,保证节点间和gem传输成功;为整个以太网系统(包括所有的门、节点和根端口)提供一个统一的软件映像,从而简化了软件架构,缩短了产品开发周期,并便于远程进行系统级调试、监控和故障排除。
159.本发明根据结合细节的具体实施例进行了描述,以便于理解本发明的构造和操作原理。本文中,对具体实施例及其细节的引用并不旨在限制本文所附权利要求的范围。对于本领域技术人员来说,显而易见的是,在不背离如权利要求所限定的本发明的精神和范围的情况下,可以在选择用于说明的实施例中进行其他各种修改。例如,尽管如本文中所描述的,总线被描述为在机器自动化系统内操作,但是应当理解,总线可以与其它类型的系统及其设备一起操作以促进设备之间的通信。另外,本文关于特定类型的节点的讨论可以指代本文讨论的任何类型的节点,包括虚拟节点和代表节点作用的门。此外,应理解,如本文所述,由节点204、208、234执行的操作或为节点204、208、234执行的操作可以是由耦合到节点204、208、234的设备102执行的操作或为耦合到节点204、208、234的设备102执行的操作(例如,与节点204、208、234一致)。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献