FlexRay – это промышленная сеть, разработанная для использования в автомобильной электронике. Она представляет собой высокоскоростную, надежную и гибкую систему связи, используемую для передачи данных между различными узлами в автомобиле, такими как электронные системы управления двигателем, системы безопасности, системы комфорта и другие.
FlexRay был разработан с целью замены более старой и медленной шины CAN (Controller Area Network) в критически важных системах, где требуются высокая скорость передачи данных, точная синхронизация и надежность. Он поддерживает дуплексную передачу данных с высокой пропускной способностью до 10 Мбит/с и обеспечивает отказоустойчивость с помощью дублирования физической и логической связи.
FlexRay также предлагает распределенную архитектуру времени реального многопоточного канала, которая обеспечивает возможность коммуникации между различными узлами с высокой точностью и синхронизацией. Это позволяет системам в автомобиле обмениваться большим объемом данных и запускать одновременные задачи в реальном времени, такие как контроль двигателя, стабилизация, торможение и другие функции без смещения времени.
В целом, FlexRay обеспечивает более надежную и масштабируемую архитектуру связи для автомобильной электроники, в основе которой лежит передача данных с высокой пропускной способностью, возможностью обработки большого объема информации и временным контролем в реальном времени.
Система FlexRay состоит из шины и нескольких ЭБУ (англ. ECU). Каждый ЭБУ имеет независимую схему генерации синхросигнала, но дрейф частоты не может превышать 0,15 % от референсного значения. При такой точности возможна отправка приблизительно 300 бит без пересинхронизации. Синхронизация генераторов происходит периодически, в статическом сегменте.
В каждый момент времени лишь один ЭБУ отправляет сигнал в шину, используя дифференциальный код NRZI. Каждый отправляемый бит транслируется на протяжении 8 тактов, приемник получает 8 отсчетов, но определяет значения бита по последним 5 из них (через функцию мажоритарной системы).
Обмены производятся в составе фреймов. Фрейм состоит из байтов, обрамленными служебными битами по схеме:
- Сигнал начала передачи — Transmission Start Signal (TSS) — бит 0
- Сигнал начала фрейма — Frame Start Signal (FSS) — бит 1
- затем m раз повторяется:
- Сигнал начала байта 0 — Byte Start Signal 0 (BSS0) — бит 1
- Сигнал начала байта 1 — Byte Start Signal 1 (BSS1) — бит 0
- 0-й бит i-го байта
- 1-й бит i-го байта
- 2-й бит i-го байта
- 3-й бит i-го байта
- 4-й бит i-го байта
- 5-й бит i-го байта
- 6-й бит i-го байта
- 7-й бит i-го байта
- Сигнал завершения фрейма — Frame End Signal (FES) — бит 0
- Сигнал завершения передачи — Transmission End Signal (TES) — бит 1
Шина удерживается в состоянии 1 (высокого напряжения), когда не используется. Переход шины в состояние 0 сигнализирует участникам о начале передачи. Признаком полного сообщения является получение BSS0 (1) или FES (0). Для передачи 1 байта используется 80 тактов шины: 16 для BSS0/1 и 64 для самих данных. Формат фрейма позволяет передавать до 254 байтов и предусматривает использование раздельных CRC-сумм для заголовка (11 бит) и данных (24 бита).
FlexRay предоставляет большие скорости, чем традиционная шина CAN; также он защищает поле длины фрейма в отличие от CAN. Шина FlexRay имеет некоторые недостатки: низкие уровни напряжений и асимметрия, что ограничивает длину шины. Для задач, требующих большей пропускной способности и не относящихся к функциям безопасности, более вероятно использование шин группы Ethernet, при условии, если используетсч расширение «time triggered» и коммутатор для исключения коллизий.