One of the best of the emerging systems is FlexRay, which is also likely to soon be seen in non-automotive designs. It is therefore necessary to understand how to connect it to CAN-based systems in order to provide migration or integration of FlexRay nodes. The first implementations in European cars are on the road already, while many others are about to enter production.
FlexRay is the network of choice when a system requires security features such as redundant transfer or guaranteed frame latency. However, CAN is still considerably less expensive to implement, which leads to the conclusion that both bus systems will co-exist in the future. Depending on the application requirements, the necessity of using FlexRay in addition to CAN will be come more important in the near future. This means that a suitable message transfer from one bus system to the other is needed.
Using CAN and FlexRay in one application leads to the following question: What constitutes an optimal message-transfer-handling concept between the two bus systems? Both systems work according to different concepts. CAN, with the exception of time-triggered CAN, is based on the event-driven concept. When a message is transferred, the CAN interface tries to get on the network. The message ID defines the priority. FlexRay uses the time-triggered concept, featuring a static part in the protocol - with guaranteed latencies for any message - and a dynamic part, which follows the event-driven concept. In the dynamic part, the message ID also defines the priority. FlexRay runs at 10Mbits/s, and up to 254bytes payload data can be set up in a single message or frame. Passing data from CAN to FlexRay does not pose a problem. For example, using a CAN channel at 100kbit/s and a cycle length of 3ms for FlexRay enables the transmission of three CAN messages within one cycle. Even more CAN messages can be received in one FlexRay cycle with a higher CAN bit rate and a longer cycle length. On the CAN side, there are 32 message buffers available for each CAN interface. Depending on system architecture, the receive FIFO (first in first out) can be used for several messages or single buffers for each ID. Typically, the most highly prioritised messages will be assigned to full CAN buffers while lower priority messages may use the FIFO buffer. With FlexRay, messages can be sent using the static part while only obtaining guaranteed latency for all of them, or using the dynamic part only - ID priority - or even a mixture of both. High-priority or frequently transmitted messages may be sent via the static part, and low-prior or randomly sent messages will be transmitted via the dynamic part. Bearing this scenario in mind, the optimal setting for the application can be defined on a case-by-case basis.
The 32-bit MB91 F465X microcontroller meets CAN/Flexray gateway requirements. Equipped with two CAN channels and one FlexRay interface with two channels, it supports a flexible interface selection, from pure CAN usage to combined CAN and FlexRay usage. The designer can thus facilitate the different options through software design or external solder switches that select or deselect CAN and FlexRay interfaces without changing the microcontroller. The SK91465X-100PMC kit, which uses this MCU, offers a suitable development platform that eliminates the need for users to design their own hard-or software. Two LIN channels are also included.