CAN Open和CAN Kingdom的区别

作者:拉斯•本诺•弗雷迪克森     KVASER公司

我将简单地阐述CANOpen和CANKingdom之间的区别:

CANopen协议基于CAL。 CANKingdom和CAL都尝试用CAN解决问题,为系统中正确的报文指定正确的标识符,从而每条报文获得正确的优先级。CAL基于OSI模型,而CAN Kingdom不是。

OSI模型的主要目标是把两个客户端相互连接,让它们之间能够交换信息。系统为其中的节点服务。然后每个节点(客户端)必须提供与谁通信和通信内容的优先级信息。CAL或CANOpen系统中的每个节点都必须含有关于系统的大量信息。节点从系统请求服务。

在CANKingdom中情况不是这样。节点内不含系统的任何信息。系统从每个节点请求适用服务。这就是为什么CANKingdom实现通常比相应的CANOpen实现通信内容更小。

CANKingdom针对机器系统开发。系统优先于节点。在机器系统中节点自身没有任何目的行为。它根据系统设计人员的目的被放置在系统中来执行特定的任务。每种可能发生的情况都可预见,并且机器被设计为在特定情况发生时以特定方式运行。

CANOpen遵照OSI模型开发,而OSI模型针对办公和通信系统而开发。系统将为变化非常频繁且无法预见的需求的“节点”(客户端)提供服务。

简而言之:CANKingdom使用CAN专门用于机器控制,为系统设计人员获取最佳性能,以及节点设计人员设计独立于特定系统的节点提供了可能性。

CANOpen基于CAL。CAL是基于广泛接受的网络意见和规则而开发。然而,这些意见和规则来源于通信网络的理论和经验,用于交换信息,而不是用于机器控制。

大多数人认为CAN网络是通信网络,并且相应地开发了高层协议,即在两个或更多个节点之间建立通信线路。那么他们面临的问题是:节点如何知道与谁通信?对于CANKingdom和CANOpen,答案很明确:在CANKingdom中,节点将从King获得需要的信息。在CANOpen中,节点必须通过编程获得此信息。但是,如果您了解其它协议,例如J1939或DeviceNet,您将发现这个问题并没有标准答案。

您可以在CANKingdom网络中包含J1939、SDS或DeviceNet节点。我对CANOpen网络中这样设置表示怀疑。您还可以设计一个可用于J1939、SDS或DeviceNet系统的节点。这将需要一些额外的软件,例如Double MACID检查。