Since its introduction in the mid-1980s, the Controller Area Network (CAN) has become a standard network protocol for automotive applications. Cars manufactured today use CAN for powertrain networks, electronic stability control, diagnostics, and a variety of comfort and convenience features. The success of CAN in the automotive domain has also led to its widespread use in other applications such as industrial control and medical instrumentation where reliability and safety are critical.
MultiCAN improves upon previous CAN implementations, including TwinCAN, by adding features such as additional CAN nodes, more message objects, linked list management of message objects, and support for TTCAN level 2. For backward compatiblity, you can configure MultiCAN to provide features and functionality similar to TwinCAN.
MultiCAN is available in technology-independent, fully synthesizable source code with your choice of host processor bus interfaces: Infineon FPI, XBus, or AMBA APB.
Full CAN Support
MultiCAN provides full CAN support as opposed to basic CAN. In a basic CAN implementation, the CAN interface provides very limited message filtering and storage, typically only enough buffering for one transmit message and one or two receive messages. The host CPU must deal with each transmitted and received CAN message on an individual basis, which results in frequent interrupts and a high processing load on the CPU. In a full CAN implementation like MultiCAN, the CAN interface minimizes CPU load and interrupts by implementing more extensive masking, filtering, and buffering services for CAN messages.
Message Objects
All six CAN nodes share a common set of up to 256 message objects. Each message object can be individually allocated to one of the CAN nodes. In addition to serving as storage containers for incoming and outgoing frames, message objects can be combined to build gateways between CAN nodes or to set up a FIFO buffer. The message objects are organized in double-chained linked lists, where each CAN node has its own list of message objects. A CAN node stores frames only into message objects that are allocated to it, and transmits only messages belonging to its message object list.
- Transmitting or receiving
- Standard (11-bit) or Extended (29-bit) format frames
- Message acceptance filtering
Each message object also has a frame counter which can be programmed for either frame counting or frame timestamp monitoring.
Automatic Gateway Support
Message objects can be linked to form a gateway to automatically transfer frames between 2 different CAN buses. A single gateway can link any two CAN nodes, which allows frames (data frames or remote frames) received on one node to to be automatically transmitted on another node. For data frames, the gateway can be configured as a FIFO.
An arbitrary number of gateways may be defined. Once the host CPU sets up a gateway, the operation of the gateway is automatic; no CPU intervention is needed.
Time-Triggered CAN Support
By default, each configured MultiCAN node supports TTCAN level 1 (software-driven) by way of the frame counter. You can also configure the MultiCAN IP to provide complete TTCAN level 1 and 2 support on Node 0. TTCAN support is compliant with ISO 11898-4 and fully conforms to the existing CAN protocol.
With TTCAN support, Node 0 can be programmed for either eventdriven or time-triggered mode. TTCAN related features include:
- Full support of basic cycle and system matrix functionality
- Usable as time master
- Arbitration window support
- Global time information available
- Built-in scheduler mechanism and timing synchronization unit
- External time trigger inputs can be used as transmit triggers for reference messages
- Timing-related interrupt
- Write protection for scheduler timing data memory
- Parity protection for scheduler memory
CAN Analysis Features
- CAN analyzer mode for monitoring bus traffic
- CAN loopback mode for testing and software development without access to a CAN bus
- Bit timing analysis for automatic baud rate detection, synchronization, and driver delay measurement