This post is part of a series on CAN Bus and SAE J1939 Prototyping with the ARM Cortex M3 processor.
The ARM Cortex-M is a group of 32-bit RISC ARM processor cores licensed by ARM Holdings. The cores are intended for microcontroller use, and consist of the Cortex-M0, M0+, M1, M3, M4, and M7.
The ARM Cortex-M3 processor is very well suited for highly deterministic real-time applications, even for low-cost platforms, such as automotive body systems, industrial control systems, wireless networking and sensors, and many more.
Cortex-M3 microcontrollers are available from a number of semiconductor manufacturers such as Texas Instruments, Infineon, Atmel, NXP (formerly Philips), Analog Devices, Toshiba, STMicroelectronics, and more.
Key features of the Cortex-M3 core are:
- ARMv7-M architecture
- 3-stage pipeline with branch speculation.
- Instruction sets:
- Thumb (entire).
- Thumb-2 (entire).
- 32-bit hardware multiply with 32-bit or 64-bit result, signed or unsigned, add or subtract after the multiply.
- 32-bit hardware divide (2-12 cycles).
- Saturated math support.
- DSP extension: Single cycle 16/32-bit MAC, single cycle dual 16-bit MAC, 8/16-bit SIMD arithmetic.
- 1 to 240 interrupts, plus NMI.
- 12 cycle interrupt latency.
- Integrated sleep modes.
Since the Cortex-M3 has been licensed to such a variety of manufacturers, their individual processor products vary slightly in regards to processor speed, memory size, available interfaces, etc.
In the following, I will refer to two hardware systems using:
- Atmel SAM3X8E ARM Cortex-M3 CPU
- NXP LPC1768 with a 32-bit ARM Cortex-M3 core
Besides its great speed and more than sufficient amount of FLASH and RAM, the ARM Cortex-M3 is the perfect choice for a myriad of embedded applications due to its support of a great number of peripheral interfaces. They built-in features include:
- USB Host and Device
- Controller Area Network (CAN)
- Digital I/O
The availability of Controller Area Network (CAN) interfaces in combination with other interface technologies explains the vast popularity of the Cortex-M3 processor in the CAN and J1939 industry. The processor provides the means to easily and quickly create applications like CAN/J1939 gateways, CAN Bridges, J1939 ECUs, J1939 Data Logger, and many more.
Last, but not least, for more information on the topic see: CAN Bus and SAE J1939 Prototyping with the ARM Cortex M3 processor.
Controller Area Network (CAN) is a serial network technology that was originally designed for the automotive industry, especially for European cars, but has also become a popular bus in industrial automation as well as other applications.
The CAN bus is primarily used in embedded systems, and as its name implies, is a network technology that provides fast communication among microcontrollers up to real-time requirements, eliminating the need for the much more expensive and complex technology of a Dual-Ported RAM.
This book provides complete information on all CAN features and aspects combined with a high level of readability.
This post is part of a series on CAN Bus and SAE J1939 Prototyping with the ARM Cortex M3 processor. The prototyping of Controller Area Network (CAN) interfaces used to be a tedious task, but the recent years have seen the emergence of low-cost, yet easy-to-use embedded development platforms such as the Arduino, BeagleBone, Raspberry Pi, and others. This [...]