Equipping your ECUs with CANopen functionality

Step 3: Integrate the CANopen Source Code on the target platform

Once you have decided to procure a commercial CANopen Source Code, you are faced with another question: What additional effort will be necessary to create a finished ECU on the target platform?

The use of a source code will accomplish CANopen-relevant tasks, but it will not relieve you of the work required to write the actual application, which relates to the implementation of state machines and handling of application-specific data. Just how rapidly this can be done primarily depends on the complexity of the ECU to be created and the experience of the participating developers. For a simple device, this extra effort might amount to less than a week. Close cooperation with the source code producer is important in startup and integration. It has often proven very beneficial for the source code producer and user to perform integration together in the framework of a project.

Step 4: Validation and final testing of the CANopen ECU

Following integration, there is the necessary testing of the finished ECU. Testing must verify that both communication content (CANopen) and application content (operation of inputs/outputs, PWM, etc.) have been implemented properly.

With CANoe.CANopen it is easy to specify and generate protocol-specific tests at the push of a button. In addition, a test environment is created that controls and monitors the test flow.

If conformance to the CANopen standard needs to be verified for communication, the Conformance Test Tool of CiA can be used. However, it must be considered that verification of performance is limited in this test, because:

  • The test is only performed with one device
  • These aspects are tested:
    - Consistency of the EDS file
    - Agreement between object directory and EDS file
    - Implementation of SDO protocols
    - Configuration of PDOs
    - Guarding or Heartbeat
    - State machine
  • These aspects are not tested:
    - Time behavior (e.g. in state transition)
    - Application-specific behavior (device profile)
    - Behavior in case of errors and elevated bus load
Did you find this page helpful?

Please comment: