×

Happy to Help!

This website doesn't store cookies. Enjoy the experience, without worrying about your data!

Great, thanks!

CAN Network Simulator

The CAN MDNS (Monitoring Device and Node simulator) is a device to monitor CAN communication and send messages on CAN networks. This device consists of a firmware based on Stellaris LM3S8962 and PC based tool. The communication between the device and PC based tool is over Ethernet using CAN MDNS protocol.

CAN MDNS supports the following features:

  • Detection of the CAN MDNS hardware available in the network through PC Tool
  • Configuration of CAN filter settings and CAN baud rate
  • Configuration of periodic and event based messages
  • A trace window to display all the activities on the CAN network [PC Tool]
  • Virtual node [node simulator]
  • Storing of configuration data in Flash
  • Storing of configuration in xml format
System Overview:

The CAN MDNS consists of two major functionalities namely:

  • CAN MDNS Firmware
    • The CAN MDNS firmware consists of all BSP drivers required for LM3S8962, UDP/ARP stack and the CAN MDNS application layer.
  • CAN MDNS PC Tool
    • The CAN MDNS PC Tool is a GUI which has all the fields for configuration updates and also has the trace window to display the activities of CAN bus.

The communication between CAN MDNS PC Tool and Firmware is over a customized protocol called “CAN MDNS protocol”. This protocol is also designed as a part of this project.

The following diagram illustrates the running system of CAN MDNS with the interface details given:

 

 

 

 

Design and Implementation
The design and implementation of CAN MDNS firmware and PC Tool includes the following:
  • Design and implementation of CAN MDNS protocol
  • Design and implementation of CAN MDNS firmware
    • Identification and Implementation of the CAN MDNS APIs.
    • Handling different states of the CAN MDNS.
    • Flash management
    • LWIP stack Integration
    • Implementation using C language
    • As per GNU coding guidelines
  • Design and implementation of CAN MDNS PC Tool
    • Design and implementation of GUI using VC++
    • Detection of device IP address
    • Configuration of device IP address
    • Configuration of CAN periodic messages
    • Configuration of CAN event based messages
    • Configuration of CAN Baud rate
    • Configuration of CAN Receive filters
    • Trace window
    • XML support for configurations
Tools
  • Luminary Micro’s LM3S8962 evaluation board
  • Cygwin and GCC complier
  • LM Flash programmer
  • Hercules and Wireshark
  • CodeSourcery++ editor/Debugger
  • Samdia CAN analyzer
Challenges
  • Ensuring that the CAN MDNS tool will work properly at a maximum load of 30 receive messages at a period of 100ms without losing any message.
    • Code optimization (especially minimizing the execution time) was critical.
    • Buffer implementation in the CAN MDNS application layer
  • Study of LWIP stack and integration of the stack with CAN MDNS code
  • Handling of multiple CAN MDNS devices on the same network