User:Shiyashamsu/sandbox

= CANKingdom =

Overview
CANKingdom is a CAN based, set of protocol primitives rather than a higher layer protocol like CANopen or DeviceNet.

According to CAN in Automation, the CAN-OSI communication model is a system consists of a number of clients or nodes that communicate with each other through the communication bus. The Application Layer level protocols (CAN Application Layer - CAL) facilitate the logical requirements for these communication. Some of the functions are to attach identifiers to the message packets to specify the intended destination node and another to specify the priority to be given for this message. In such a system nodes should be fully configured to be part of the system and need to be aware of the other nodes and components in the system.

CANKingdom Vs. CANopen
Higher Layer protocols like CANopen are based on this mechanism in which nodes request services from the system according to real-time situations. CANKingdom uses a different approach and is typically used in machine control applications. Here the system is programmed in such a way that it has advance information about the requirements and will foresee every situation that might occur during the operation of the system. Then it will instruct the nodes to perform specific tasks according to the present time requirements and thus consume each node’s service in a pre-determined manner.

The not-for-profit organization CANKingdom International maintains CANKingdom.

CANKingdom – System Designer is the “King”
In CANKingdom, the King (System Designer) is represented by the Capital (Supervisor Node) and the former has full freedom to design his own system. Nodes are programmed as modules and module designers can code them as general, independent modules without knowing in advance about the system into which they will be integrated. Each node contains software that provides a subset of protocol primitives needed by the whole system. The system designer can choose the needed modules for implementing the final protocol for his system with maximum performance. By restricting the type of modules to only what the system needs, he ensures system security also with such an open system. By using modules with protocol primitives, the CANKingdom system designer become free from the “rigid” system profiles needed by a standard higher layer protocol to ensure cross system compatibility. Then it is upto the application designer to define the higher layer application level protocols to match the application requirements.

CANKingdom Basic Principle - MSM
Modules are to Serve the Network (MSN): Here a module only needs to announce its presence in the network to be part of it. Other nodes will provide it with information needed for performing its tasks. It is contrary to The Network Serves the Modules (NSM) principle where the nodes already know their roles in the network. MSM principle is applied when you know the system requirements in advance, such as in a real-time, deterministic machine control network. NSM principle is used where the qualities of the network are given priority and the machine design depends upon the network protocol.

Advantages of a CANKingdom Network
1.   The MSN principle allows CANKingdom for not only specifying a communication protocol, but also for defining a framework to specify the building blocks of your machine.

2.   Since CANKingdom uses a set of protocol primitives rather than a complete protocol, a real-time system designer can create a system with the components highly suitable for his application, like the needed topology and bus access management.

3.   CANKingdom has mechanisms for resolving queues like providing messages with a predictable maximum latency period setting.

4.   CANKingdom does not rely on CAN identifiers to be used as message identifiers. Instead it uses the simple worldwide product identification standard EAN/UPC with serial numbers as node identifiers.

5.   CANKingdom provides cost reduction by allowing system designers to choose modules from different suppliers and allowing module designers to develop modules suitable for different systems.

Kvaser's detailed CANKingdom documentation is available here.