FlexRay

FlexRay

 

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 состоит из двух вет­вей, шина-плюс (ВР) и шина-минус (ВМ). Для шифрования 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

 

Каждому узлу в сети требуется свой ге­нератор синхронизирующих импульсов, определяющий время для передачи и дли­тельность битов. Внутренние генераторы синхронизирующих импульсов нескольких узлов могут отличаться друг от друга из-за колебаний температуры и напряжения, и производственных допусков. Поэтому в шинной системе, такой как FlexRay, управ­ляющей доступом к шине через промежутки времени, необходимо посредством регуляр­ных коррекций обеспечить, чтобы отклоне­ние синхронизирующих импульсов друг от друга оставалось в допустимом диапазоне. Для этого некоторые узлы берут на себя функции синхронизаторов, с которыми дру­гие узлы регулярно синхронизируют свои внутренние синхронизирующие импульсы. Эта процедура адаптирует и нулевые точки (смещение) синхронизирующих импульсов, и их частоту. Работа может продолжаться даже при отказе отдельных узлов. Чтобы можно было делать коррекцию, каждый цикл завершается короткой фразой (IMIT, перерыв в работе сети), в которой можно сдвигать нулевую точку цикла.

Благодаря этой процедуре во всех узлах обеспечивается «глобальное время». Это время выдается в виде макроимпульсов сиг­нала времени. Механизм синхронизации под­держивает длительность одного макроим­пульса в среднем постоянной во всех узлах.

Когда сеть включена, сначала нужно установить общую концепцию времени со стороны всех узлов. Для этой цели служит процесс запуска, занимающий небольшое время. Аналогичным образом, узлу, намере­вающемуся синхронизироваться с работаю­щей сетью, требуется определенное время, чтобы быть принятым во внимание.

Арбитраж в динамическом сегменте

 

Сообщениям может даваться разный приори­тет в динамическом сегменте. Длительность передачи сообщения не может гарантиро­ваться. Приоритет устанавливается иденти­фикатором фрейма, который может быть присвоен в сети лишь один раз. Сообщения передаются в порядке их идентификаторов фрейма. Для этого каждый узел запускает счетчик (идентификатор интервала), увели­чивающийся при получении сообщения. Если идентификатор интервала принимает значе­ние идентификатора фрейма готового сооб­щения в этом узле, то оно передается. Если длина динамического сегмента недостаточна для всех сообщений, то процесс передачи должен быть смещен на более поздний цикл.

Фреймы в динамическом сегменте могут иметь разную длину. Пределы динамического интервала на двух каналах не зависят друг от друга. Таким образом, могут быть сообщения с разными идентификаторами интервалов.

Фрейм данных FlexRay

 

FlexRay и в динамическом, и в статическом сегментах использует одинаковый формат, который может быть поделен натри раздела- заголовок, полезная фаза и трейлер (рис. «Фрейм данных» ).

Заголовок

 

Фрейм данных FlexRayЗаголовок включает в себя:

  • Зарезервированный бит для будущих из­менений протокола;
  • Индикатор начала полезной фазы, ука­зывающий, содержится ли в ней вектор управления сетью;
  • Нулевой индикатор фрейма, указываю­щий, что данные не обновлялись с послед­него цикла;
  • Индикатор фрейма синхронизации, указы­вающий, что данный фрейм нужно исполь­зовать для синхронизации системы;
  • Индикатор фрейма запуска, указывающий, что данный фрейм используется в фазе запуска сети;
  • Идентификатор фрейма; соответствует номеру интервала, в котором передается фрейм.
  • Длительность полезной фазы с указанием размера пользовательских данных. У всех интервалов в статическом сегменте в этом поле всегда стоит одинаковое значение. Фреймы в динамическом сегменте могут иметь разную длину.
  • CRC заголовка, придающий этой части фрейма дополнительную защиту, из-за его чувствительности к ошибкам в разряде.
  • Количество циклов; в этом поле передается номер цикла, в котором размещается передающий сетевой узел.

 

Полезная фаза

 

Пользовательские данные, далее обрабатываемые главным компьютером, передаются в сегмент полезной фазы. Можно также передать вектор управления сетью или 16-битовый идентификатор сообщения.

Максимальная длины пользовательских данных составляет 254 байта, они передаются 2-байтовыми словами.

 

 

Трейлер

 

Трейлер содержит 24-битовую контрольную сумму (CRC фрейма), действующую на весь фрейм.

Генерирование потока битов фрейма

Прежде чем узел сможет передать фрейм с данными хоста, фрейм преобразуется в «поток битов». Для этого фрейм сначала разбивается на отдельные байты. В начало фрейма вставляется стартовая очередность передачи (TSS), затем стартовая очередность фрейма (FSS). Затем на основе байтов фрейма генерируется расширенная байтовая очередность, где перед каждым байтом фрейма вставляется стартовая байтовая очередность (BSS).

Для завершения потока байтов в конце добавляется завершающая очередность фрейма (FES).

В случае, когда фрейм находится в динамическом сегменте, можно добавить в поток битов еще одну очередность — динамическую конечную очередность (DTS), предотвращающую запуск передачи другим узлом.

Режимы работы шины FlexRay

 

Шину FlexRay можно перевести в режим, когда узлам требуется лишь минимальная мощность, и все операции шифрования и дешифрования остановлены, но могут быть активированы сигналом на линии шины. Здесь драйвер шины все еще в состоянии обнаруживать специальные сигналы на шине и затем также активировать ведущее устройство соответствующим сигналом. Каждый узел может передавать сигнал активации.

В следующей статье я расскажу о LIN шине.

 

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *