IPMS_CAN is a CAN bus controller that performs serial communication according to the CAN 2.0B and the CAN FD specification. It is compatible to ISO CAN FD and the non-ISO (Bosch) CAN FD standard.
The CAN protocol uses a multi-master bus configuration for the transfer of frames between nodes of the network and manages error handling with no burden on the host processor. The core enables the user to set up economic and reliable links between various components. It appears as a memory-mapped I / O device to the host processor, which accesses the IPMS_CAN core to control the transmission and reception of frames.
The IPMS_CAN core is easy to integrate: it offers a simple generic processor interface or optionally an AMBA AHB or APB interface. IPMS_CAN is flexible but still easy to use: it provides programmable interrupts, data and baud rates as well as a configurable number of independently programmable acceptance filters. It implements a flexible buffering scheme, allowing fine-tuning of the core size to the requirements of each specific application. The number of receive buffers is synthesis-time configurable. Two types of transmit buffers are implemented: a high-priority primary transmit buffer (PTB) and a lower-priority secondary transmit buffer (STB). The PTB can store one message, while the number of included buffer slots for the STB is synthesis-time configurable. The STB can operate in FIFO mode or in priority mode where automatically the message with the highest priority is transmitted first. Moreover, an optional wrapper instantiating multiple CAN controller cores eases the integration in cases where multiple bus-nodes need to be controlled by the same host processor.
The core implements functionality similar to the Philips SJA1000 working with its PeliCAN mode extensions, providing error analysis, diagnosis, system maintenance and optimization features. Time-triggered operation (TTCAN), according ISO 11898-4 is supported.
Beside compatibility to CAN 2.0 the core offers compatibility to the CAN FD extension (ISO and non-ISO) to increase the data throughput. It comprises data fields up to 64 bytes, extended CRC checksum, and a higher data rate for the payload.
- Enhanced Functionality
- Easily switch between ISO CAN FD and non-ISO CAN FD at runtime
- Flexible CAN FD data rate, extended data field with up to 64 bytes
- Error Analysis features enabling diagnostics, system maintenance and system optimization: last error type, arbitration lost position, error warning limit
- Listen-Only Mode enables CAN bus traffic analysis and automatic bit-rate detection
- Single Shot Transmission Mode
- 2 clock domains for CAN protocol machine and host controller interface enable usage of an optimal clock for CAN communication independent from the host clock (clock domain crossing)
- Time-triggered operation (TTCAN, ISO 11898-4)
- Flexible Message Buffering and Filtering
- Configurable number of receive buffers
- One high-priority transmit buffer
- Configurable number of lower-priority transmit buffers
- 1 to 16 independently programmable 29-bit acceptance filters
- Optional memory protection using ECC
- Easy to Use and Integrate
- Programmable data rate up to 1 Mbit / s with CAN 2.0 and several Mbit / s with CAN FD option
- Programmable baud rate prescaler: 1 up to 1 / 256
- Flexible programmable interrupt sources
- Generic 32-bit host controller interface AHB and APB (32 bit), generic 8-bit and 16-bit optionally
- Buffers can be implemented as Flip-Flops or RAM
- A single host can control multiple CAN bus nodes via an optional Multi-CAN wrapper
- Available in RTL, and portable to ASIC and FPGA technologies
- Size of approximately 30,000 gates.
- VHDL or Verilog RTL source code
- Post-synthesis netlist for FPGA
- Testbenches (behavioral, post-synthesis verification)
- Simulation and synthesis scripts
- The IPMS_CAN core can be integrated in devices that use CAN or higher-layer CANbased communication protocols. In addition to traditional automotive applications, such devices are used in industrial (e.g. the CANopen and DeviceNet protocols), aviation (e.g. the ARINC-825 and CANaerospace protocols), marine (e.g. the NMEA 2000 protocol) and other applications.
Block Diagram of the ISO CAN FD / CAN 2.0B Controller