Question

CAN Driver means application program that interacts with CAN hardware and helps in initializing setup and communication.

CANopen Stack provides various APIs to deal with CAN communication.

Now this is confusing me so please let me know: Is CANopen Stack and CAN driver one and the same?

Was it helpful?

Solution

Not necessarily.

A 'stack' in this situation refers to a set of applications that are used for the overall product. See wikipedia solution stack and technology stack. The FOOstack would imply a set of software (the libraries necessary, maybe a specialized plugin or rework of the IDE (for example the SpringSource Tool Suite). For example, the MEAN Stack uses Mongo, expressjs, angularjs, and node for a solution and thus bundle of software is often referred to as a stack.

You will sometimes see referred to the 'full stack developer' which someone who can work on any part of the system from client to database.

The driver is a particular piece of software to communicate with a particular piece of hardware. Thats it. A video driver is used by the operating system to communicate with the video hardware.

A driver may be included as part of the stack, but a driver is not the entirety of the solution stack.

OTHER TIPS

The CAN Bus is based on the ISO/OSI layers 1 (physical) and 2 (data link) and is standardized in ISO 11898.

The CAN Driver is a software module that interacts with the CAN controller and the CAN transceiver. It provides an interface to higher layers for:

  • initializing the CAN Hardware
  • sending raw CAN messages
  • receiving raw CAN messages
  • notifying the higher layers about received CAN messages
  • controlling the operation mode (normal, standby, goto sleep, ...)
  • ...

CANopen implements the ISO/OSI layers 3 (network) to 7 (application). It includes the following features:

  • transport layer, supports data segmentation/desegmentation, controls the sending and receiving of more than 8 data bytes
  • network management, controls the state machines of the nodes (pre-operational, operational, ...)
  • heartbeat protocol, used to monitor if a network node is alive
  • SDO, PDO, SYNC, EMCY, ... and a lot more

The CANopen Stack implements the above mentioned features in software. It uses the interface provided by the CAN Driver to access the CAN Bus.

The basic CANopen communication is described in the CiA 301. This specifications is a good starting point for understanding the basics of CANopen.

Licensed under: CC-BY-SA with attribution
scroll top