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
CAN is extensively used in automobiles and trucks but has found applications everywhere. There are many application layers available for CAN, however, it is very easy to develop your own protocol that will fit and simplify your needs. This detailed primer removes the mystery of developing applications using CAN and will guide you in making the right choices when implementing a system.
- The USB Device Interface is provided in binary form as part of MDK-Professional. It is not included with other MDK-ARM Editions.