Innodisk’s Embedded Peripheral Card EMUC-B201 Supports the Open Source SocketCAN to Provide the Best Compatibility

CANbus (Controller Area Network) is a type of serial communication that is widely used in automation, embedded systems and the automotive industry. Innodisk designed the EMUC-B201 CANbus expansion card specifically to fulfill these needs. It provides dual-port CAN 2.0B connectivity with an isolation design, and supports a wide temperature range in order to enhance system security and reliability.

Software engineers often find closed architecture API to be inefficient and have to use specific hardware when developing CANbus-related applications. In light of this, Innodisk’s expansion card supports open source SocketCAN in order to solve the following issues when developing systems:

  • Applications are limited to specific CAN devices.
  • Different CAN devices have different drivers and operations.
  • Programs must be modified when changing CAN devices.

What is SocketCAN?

SocketCAN is the standard interface for accessing CAN in Linux and uses normal socket mechanisms to send and receive data on CAN. CAN frequently uses the character device driver, but only one process can communicate with the device at a time. SocketCAN, however, uses the Berkeley Socket API in Linux to allow the CAN device to become a Network Device. With SocketCAN, several applications can read and write to the same CAN controller simultaneously. The SocketCAN interface is similar to TCP/IP, so software engineers can use the card and develop related CAN applications with ease.

Benefits of SocketCAN:

  1. It supports one CAN device for multiple applications.
  2. It supports one application for multiple CAN devices.
  3. Its operation is similar to a network card.
  4. It maintains the same logic in the program. There is no need to change the code due to hardware variations.

The EMUC-B201 expansion card is based on the Linux built-in CDC-ACM, Innodisk EMUC SocketCAN Network driver and the Linux service that allows two ports on a single card to support SocketCAN application. Thus, it provides maximum compatibility for customers when developing programs.