FlexRay, это высокоскоростной сетевой протокол предназначенный для автомобилей. Он разработан компанией FlexRay, основоположником которой является компания NXP совместно с BMW, DaimlerChrysler, Bosch, GM и Volkswagen. Первые спецификации протокола были опубликованы в 2004 году. В 2009 консорциум FlexRay распался , однако стандарты были приняты как ISO с номерами от 17458-1 до 17458-5. Вот о том, что представляет собой шина FlexRay, мы и поговорим в этой статье.
Шина FlexRay
FlexRay — это шина, разработанная для автоматического управления в автомобилях. При ее разработке особое внимание уделялось пригодности для использования в системах активной безопасности без механического перехода на аварийный режим (X-by-Wire), где требуются детерминизм и отказоустойчивость.
Благодаря высокой скорости — до 20 Мбит/с — при передаче данных с резервированием, данную шину FlexRay также можно использовать для передачи аудиосигнала или видеосигнала с высокой степенью сжатия. Основные особенности:
- Передача с таймерным управлением с гарантированной задержкой отклика;
- Возможность передачи информации с управлением событиями с назначением приоритетов;
- Передача информации по одному или двум каналам;
- Высокая скорость передачи, до 10 Мбит/с, с параллельной передачей по двум каналам до 20 Мбит/с;
- Структура в виде линейной шины, звездообразной конфигурации или в комбинированном виде.
Спецификацию можно найти на сайте консорциума FlexRay.
Среда передачи в системе FlexRay
Среда передачи, используемая в системе FlexRay — это двухпроводной кабель с витой парой, где могут использоваться как экранированные, так и неэкранированные кабели. Каждый канал FlexRay состоит из двух ветвей, шина-плюс (ВР) и шина-минус (ВМ). Для шифрования FlexRay использует метод NRZ (без возврата на ноль).
Состояние шины определяется путем измерения разности напряжения между ВР и ВМ. Таким образом, передача данных менее чувствительна к внешним электромагнитным влияниям, поскольку они одинаково воздействуют на обе ветви и компенсируют друг друга.
При подаче разного напряжения на две ветви канала могут иметь место четыре состояния шины; они обозначаются как ldle LP (LP, низкая мощность), Idle, Data_0, и Data_1 (рис. «Состояния и напряжения шины FlexRay» ). Idle_LP — это состояние, при котором на ВР (шина-плюс) и ВМ (шина-минус) подается низкое напряжение от -200 до 200 мВ (относительно массы). В состоянии Idle на ВР и ВМ подается напряжение 2,5 В +-30 мВ. Чтобы перевести канал в состояние Data_0, как минимум один передающий узел должен подать на канал отрицательное напряжение -600 мВ, а для Data_1 +600 мВ.
Топология сети FlexRay
Сети FlexRay можно структурировать как шинные топологии и звездообразные топологии. Может быть и две звезды, если в звездах учитывать задержки сигналов. Также возможны топологии, в которых к звезде подключено несколько шин.
Поскольку оба канала системы FlexRay могут быть структурированы независимо друг от друга, в обоих каналах можно использовать разные топологии. Например, один канал может быть структурирован в виде активной звездообразной топологии, а другой — в виде шинной.
Из-за частот, которые могут превышать частоты CAN в десять раз, при проектировании сети FlexRay необходимо проследить во всех топологиях, чтобы такие параметры, как длина провода и нагрузочные резисторы, выбирались таким образом, чтобы искажения сигнала оставались в допустимом диапазоне.
Доступ к шине FlexRay, управление временем
Для достижения детерминизма, т.е. гарантированной максимальной длительности передачи сообщения, связь в шине FlexRay выполняется с управлением по времени, с циклами постоянной длительности. Каждый цикл в первую очередь имеет статический сегмент, поделенный на одинаковые интервалы времени (рис. «Управление по времени FlexRay» ). За каждым промежутком времени постоянно закрепляется не более одного узла из тех, которым в данный момент разрешена передача.
За ним следует динамический сегмент, в котором доступ к шине определяется приоритетом сообщений. Промежуток между статическим и динамическим сегментами можно произвольно менять, но не во время работы. То же самое относится к длительности интервалов времени, которые можно регулировать, но они должны оставаться постоянными во время работы.
В качестве третьего элемента в цикле можно определить окно «символов». Его можно использовать для передачи одного символа. Символы предусмотрены для активации сети и проверки функциональности.
Синхронизация в шине FlexRay
Каждому узлу в сети требуется свой генератор синхронизирующих импульсов, определяющий время для передачи и длительность битов. Внутренние генераторы синхронизирующих импульсов нескольких узлов могут отличаться друг от друга из-за колебаний температуры и напряжения, и производственных допусков. Поэтому в шинной системе, такой как FlexRay, управляющей доступом к шине через промежутки времени, необходимо посредством регулярных коррекций обеспечить, чтобы отклонение синхронизирующих импульсов друг от друга оставалось в допустимом диапазоне. Для этого некоторые узлы берут на себя функции синхронизаторов, с которыми другие узлы регулярно синхронизируют свои внутренние синхронизирующие импульсы. Эта процедура адаптирует и нулевые точки (смещение) синхронизирующих импульсов, и их частоту. Работа может продолжаться даже при отказе отдельных узлов. Чтобы можно было делать коррекцию, каждый цикл завершается короткой фразой (IMIT, перерыв в работе сети), в которой можно сдвигать нулевую точку цикла.
Благодаря этой процедуре во всех узлах обеспечивается «глобальное время». Это время выдается в виде макроимпульсов сигнала времени. Механизм синхронизации поддерживает длительность одного макроимпульса в среднем постоянной во всех узлах.
Когда сеть включена, сначала нужно установить общую концепцию времени со стороны всех узлов. Для этой цели служит процесс запуска, занимающий небольшое время. Аналогичным образом, узлу, намеревающемуся синхронизироваться с работающей сетью, требуется определенное время, чтобы быть принятым во внимание.
Арбитраж в динамическом сегменте
Сообщениям может даваться разный приоритет в динамическом сегменте. Длительность передачи сообщения не может гарантироваться. Приоритет устанавливается идентификатором фрейма, который может быть присвоен в сети лишь один раз. Сообщения передаются в порядке их идентификаторов фрейма. Для этого каждый узел запускает счетчик (идентификатор интервала), увеличивающийся при получении сообщения. Если идентификатор интервала принимает значение идентификатора фрейма готового сообщения в этом узле, то оно передается. Если длина динамического сегмента недостаточна для всех сообщений, то процесс передачи должен быть смещен на более поздний цикл.
Фреймы в динамическом сегменте могут иметь разную длину. Пределы динамического интервала на двух каналах не зависят друг от друга. Таким образом, могут быть сообщения с разными идентификаторами интервалов.
Фрейм данных FlexRay
FlexRay и в динамическом, и в статическом сегментах использует одинаковый формат, который может быть поделен натри раздела- заголовок, полезная фаза и трейлер (рис. «Фрейм данных» ).
Заголовок
Заголовок включает в себя:
- Зарезервированный бит для будущих изменений протокола;
- Индикатор начала полезной фазы, указывающий, содержится ли в ней вектор управления сетью;
- Нулевой индикатор фрейма, указывающий, что данные не обновлялись с последнего цикла;
- Индикатор фрейма синхронизации, указывающий, что данный фрейм нужно использовать для синхронизации системы;
- Индикатор фрейма запуска, указывающий, что данный фрейм используется в фазе запуска сети;
- Идентификатор фрейма; соответствует номеру интервала, в котором передается фрейм.
- Длительность полезной фазы с указанием размера пользовательских данных. У всех интервалов в статическом сегменте в этом поле всегда стоит одинаковое значение. Фреймы в динамическом сегменте могут иметь разную длину.
- CRC заголовка, придающий этой части фрейма дополнительную защиту, из-за его чувствительности к ошибкам в разряде.
- Количество циклов; в этом поле передается номер цикла, в котором размещается передающий сетевой узел.
Полезная фаза
Пользовательские данные, далее обрабатываемые главным компьютером, передаются в сегмент полезной фазы. Можно также передать вектор управления сетью или 16-битовый идентификатор сообщения.
Максимальная длины пользовательских данных составляет 254 байта, они передаются 2-байтовыми словами.
Трейлер
Трейлер содержит 24-битовую контрольную сумму (CRC фрейма), действующую на весь фрейм.
Генерирование потока битов фрейма
Прежде чем узел сможет передать фрейм с данными хоста, фрейм преобразуется в «поток битов». Для этого фрейм сначала разбивается на отдельные байты. В начало фрейма вставляется стартовая очередность передачи (TSS), затем стартовая очередность фрейма (FSS). Затем на основе байтов фрейма генерируется расширенная байтовая очередность, где перед каждым байтом фрейма вставляется стартовая байтовая очередность (BSS).
Для завершения потока байтов в конце добавляется завершающая очередность фрейма (FES).
В случае, когда фрейм находится в динамическом сегменте, можно добавить в поток битов еще одну очередность — динамическую конечную очередность (DTS), предотвращающую запуск передачи другим узлом.
Режимы работы шины FlexRay
Шину FlexRay можно перевести в режим, когда узлам требуется лишь минимальная мощность, и все операции шифрования и дешифрования остановлены, но могут быть активированы сигналом на линии шины. Здесь драйвер шины все еще в состоянии обнаруживать специальные сигналы на шине и затем также активировать ведущее устройство соответствующим сигналом. Каждый узел может передавать сигнал активации.
РЕКОМЕНДУЮ ЕЩЁ ПОЧИТАТЬ: