MDK-Professional includes a generic CAN interface layer which provides a standard programming API for all supported microcontrollers.
It provides a quick and easy way to implement a CAN network, and provides code portability, should you need to migrate your code to another microcontroller.
The CAN interface runs interrupt service routines using RTX Kernel functions for Mailbox Management and Memory Allocation.
It uses one Memory Pool for all CAN messages and two mailbox arrays.
Generic Software Layer
The generic software layer allows users to apply the same interface across different targets and to easily switch from one target to another without changing the main application code.
The CAN interface API supports:
- Initialize/Start CAN Communication
- Define CAN message objects for RX/TX
- Send, request, and receive CAN messages
Hardware Dependent Layer
The CAN hardware layer enables the generic software interface to function on many different targets,
with each target having its own hardware layer implementation. The Hardware Layer supports the following devices:
- Atmel SAM7 & SAM9
- NXP LPC17xx, LPC21xx, LPC23xx, LPC24xx, & LPC29xx
- STMicroelectronics STR7, STR9, & STM32
- Texas Instruments Stellaris family
This paper clearly expains the details of using CAN and helps you to implement a successful CAN-enabled system.
- CAN Driver is provided as source code in MDK-Professional. It is not included with other MDK-ARM Editions.
- The CAN Driver must be used with the RTX Real-Time Operating System.