Обзор цифровых интерфейсов современного автомобиля
Отказ от ответственности
Все нижеследующее выражает личное мнение автора, возможно, мне неизвестны какие-либо существенные факты либо знаковые плюсы и минусы какого-то стандарта либо я недооцениваю их потенциал.
Интерфейс LIN (aka ISO17987) — пожалуй самый длинный (если сравнивать по длине линий, а не по весу меди в проводах) пучок в современном авто. Как говорится — модно, доступно, молодёжно. Принцип необходимой достаточности и минимальной цены решения применяемый для некритичных к надёжности и/или безопасности компонент: климатическая установка, кнопки мультируля, стеклоподьемники, замки дверей. Протокол по физике очень похож (берет своё начало) от K-line протокола диагностики, стандартизованного как ISO9141. Во многих микроконтроллерах реализуется на основе аппаратного UART (в том же STM8 имеюттся аппаратные дополнения к UART для поддержки различных реализаций LIN)
- 2002г — дата первой публикации (первые черновики датируются 1999г)
- однопроводная шина с PullUp
- длина шины до 40 метров
- коммуникация по принципу ведущий — ведомые (до 16-ти ведомых)
- скорость до 20 кбит/с
- длина пакета 2, 4 или 8 байт
- поддержка широковещательного режима
- контроль целостности данных с помощью CRC8
- возможность определения сбойного абонента
Интерфейс CAN (aka ISO11898) — пожалуй, самый известный интерфейс современного автомобиля, во многом благодаря использования как стандарт де-факто для интерфейса диагностики инжекторного двигателя — аля OBD2. Однако, благодаря своим уникальным качествам, нашёл применение в таких ответственных отраслях как промэлектроника, авиация, космонавтика, ЖД и морской транспорт.
- 1986г — дата первой публикации
- неэкранированная дифференциальная пара
- длина шины до 40 метров
- одноранговая сеть с равноправными абонентами (арбитраж по ID абонента)
- скорость до 1 Мбит/с
- длина пакета от 0 до 8 байт
- поддержка широковещательного режима
- контроль целостности данных с помощью CRC15
- возможность автовыключения сбойного узла
FlexRay
Интерфейс FlexRay (aka ISO17458) — пожалуй, можно назвать антиподом LIN в плане стоимости реализации и бесполезности. Поскольку часть обмена по шине осуществляется в режиме TDMA, предьявляются особые требования к точности тактового генератора узлов сети. Сам протокол излишне сложен и надуман (с точки зрения реализации собственного аппаратного контроллера, работающего с FlexRay; однозначно сложнее реализации Ethernet+CAN вместе взятых). На данный момент FlexRay используется на ограниченном количестве моделей автомобилей европейских премиум-брендов (это за >10 лет существования), а дальнейшей экспансией не пахнет. Вероятно, совсем скоро FlexRay загнётся ввиду его замены такими технологиями как CAN FD (сравнимая скорость) и TT-CAN (TDMA работа с шиной).
- 2006г — дата первой публикации (первые черновики датируются 2000г)
- дублированная неэкранированная дифференциальная пара
- длина шины до ?? метров
- топология — звезда, шина или гибридная
- скорость до 10 Мбит/с
- длина пакета до 254 байт
- совмещенная работа в двух режимах: событийном и TDMA-доступа к шине
- контроль целостности данных с помощью CRC11 (заголовок) и CRC24 (данные)
Интерфейс MOST (не стандартизован ISO) — пожалуй, лишь условно можно назвать автомобильным, поскольку основное назначение — изохронная передача мультимедиаданных (аудио/видео). Не особо понятно почему тот же SPDIF по оптике или коаксиалу не использовать — очередная попытка авто-индустрии придумать «свой» стандарт?
- 1998г — дата первой публикации
- оптоволокно, коаксиальный кабель или неэкранированная витая пара
- топология шины — кольцо
- скорость до 150 Мбит/с
- длина пакета до 3072 бит
- до 64-х абонентов на шине
Ethernet AVB
Протокол Ethernet AVB (Audio Video Bridging) — назначение, аналогичное MOST. Протокол описывается целой когортой стандартов IEEE:
- IEEE 802.1BA: Audio Video Bridging (AVB) Systems
- IEEE 802.1AS: Timing and Synchronization for Time-Sensitive Applications (gPTP)
- IEEE 802.1Qat: Stream Reservation Protocol (SRP)
- IEEE 802.1Qav: Forwarding and Queuing for Time-Sensitive Streams (FQTSS)
Возможно, за счёт многолетних наработок по Ethernet и удешевлению элементной базы, стандарт «взлетит». Предполагаемое использование: передача звука из головного устройства в цифровой усилитель, трансляция картинки на IVI и пассажирские мониторы, подключение обзорных и парк-камер.
- 2013г — дата первой публикации (по факту работы были начаты в 2004г)
- витая пара, аналогичная для Ethernet 100/1000
- длина шины, аналогичная для Ethernet 100/1000
- скорость шины, аналогичная для Ethernet 100/1000
- поддержка широковещательного режима, аналогичная Ethernet
- контроль целостности данных, аналогичный Ethernet
Интерфейс SENT (Single Edge Nibble Transmission, aka SAE J2716) — разработанный для автопрома и быстро ставший популярным интерфейс для датчиков. По аналогии с аналоговыми датчиками, используется три провода: земля, питание 5В и данные с датчика.
Характеристики:
- 2007г — дата первой публикации
- однопроводная шина
- длина шины до ? метров
- коммуникация точка-точка
- длина тика от 90 до 3 мкс
- длина пакета 24 бита
- контроль целостности данных с помощью CRC4
Интерфейс PSI5 (Peripheral Sensor Interface) — второй разработанный специально для нужд автопрома интерфейс для коммуникации с датчиками. Это токовый интерфейс, данные в котором передаются модуляцией по питающей линии. Для кодирования бит используется манчестер-кодирование. Выглядит замечательно: прощайте аналоговые трёхпроводные датчики, чувствительные к наводкам!
- 2008г — дата первой публикации (первое упоминание в 2005)
- медная витая пара
- длина шины до ? метров
- поддержка синхронного и асинхронного обмена и двунаправленного обмена
- топология точка-точка
- скорость 125/189 кбит/с
- длина пакета от 8 до 24 бит
- контроль целостности данных с помощью бита чётности или CRC3
Кстати, в последних редакциях стандарт предлагает поддержку датчиков системы эйрбэгов.
Вместо послесловия
Запасаюсь попкорном и жду исходов битвы интерфейсов/появления новых кандидатов за место под солнцем. Как показал опыт FlexRay, недостаточно поддержать интерфейс вендорами в кремнии или консорциумами типа ISO/SAE — он, как фрукт, должен вызреть.
Источник статьи: http://idoka.ru/modern-car-interfaces-overview/
Система интерфейс для автомобиля
Дельта принтеры крайне требовательны к точности изготовления комплектующих (геометрия рамы, длины диагоналей, люфтам соединения диагоналей, эффектора и кареток) и всей геометрии принтера. Так же, если концевые выключатели (EndStop) расположены на разной высоте (или разный момент срабатывания в случае контактных концевиков), то высота по каждой из осей оказывается разная и мы получаем наклонную плоскость не совпадающая с плоскостью рабочего столика(стекла). Данные неточности могут быть исправлены либо механически (путем регулировки концевых выключателей по высоте), либо программно. Мы используем программный способ калибровки.
Далее будут рассмотрены основные настройки дельта принтера.
Для управления и настройки принтера мы используем программу Pronterface.
Калибровка принтера делится на три этапа:
1 Этап. Корректируем плоскость по трем точкам
Выставление в одну плоскость трех точек — A, B, C (расположенных рядом с тремя направляющими). По сути необходимо уточнить высоту от плоскости до концевых выключателей для каждой из осей.
Большинство (если не все) платы для управления трехмерным принтером (В нашем случае RAMPS 1.4) работают в декартовой системе координат, другими словами есть привод на оси: X, Y, Z.
В дельта принтере необходимо перейти от декартовых координат к полярным. Поэтому условимся, что подключенные к двигателям X, Y, Z соответствует осям A, B, C.(Против часовой стрелки начиная с любого двигателя, в нашем случае смотря на логотип слева — X-A, справа Y-B, дальний Z-C) Далее при слайсинге, печати и управлении принтером в ручном режиме, мы будем оперировать классической декартовой системой координат, электроника принтера сама будет пересчитывать данные в нужную ей систему. Это условность нам необходима для понятия принципа работы и непосредственной калибровки принтера.
Точки, по которым мы будем производить калибровку назовем аналогично (A, B, C) и позиция этих точек равна A= X-52 Y-30; B= X+52 Y-30; C= X0 Y60.
Алгоритм настройки:
- Подключаемся к принтеру. (В случае “крагозяб” в командной строке, необходимо сменить скорость COM порта. В нашем случае с 115200 на 250000 и переподключится)
После чего мы увидим все настройки принтера. - Обнуляем высоты осей X, Y, Z командой M666 x0 y0 z0.
И сохраняем изменения командой M500. После каждого изменения настроек необходимо нажать home (или команда g28), для того что бы принтер знал откуда брать отсчет. - Калибровка принтера производится “на горячую”, то есть должен быть включен подогрев стола (если имеется) и нагрев печатающей головки (HotEnd’а) (Стол 60град., сопло 185 град.) Так же нам понадобится щуп, желательно металлический, известных размеров. Для этих задач вполне подойдет шестигранный ключ (самый большой, в нашем случае 8мм, он предоставляется в комплекте с принтерами Prizm Pro и Prizm Mini)
- Опускаем печатающую головку на высоту (условно) 9мм (от стола, так, что бы сопло еле касалось нашего щупа, т.к. высота пока что не точно выставлена.) Команда: G1 Z9.
- Теперь приступаем непосредственно к настройке наших трех точек.
Для удобства можно вместо g- команд создать в Pronterface четыре кнопки, для перемещения печатающей головки в точки A, B, C, 0-ноль.
Далее командой меняем параметры высоты оси Y: M666 Y <посчитанная величина>
M666 Y0.75
M500
G28
2 Этап. Исправляем линзу
После того как мы выставили три точки в одну плоскость необходимо произвести коррекцию высоты центральной точки. Из за особенности механики дельты при перемещении печатающей головки между крайними точками в центре она может пройти либо ниже либо выше нашей плоскости, тем самым мы получаем не плоскость а линзу, либо вогнутую либо выпуклую.
Корректируется этот параметр т.н. дельта радиусом, который подбирается экспериментально.
Калибровка:
- Отправляем головку на высоту щупа в любую из трех точек стола. Например G1 Z9 X-52 Y-30
- Сравниваем высоту центральной точки и высоту точек A,B,C. (Если высота точек A, B, C разная, необходимо вернутся к предыдущей калибровки.)
- Если высота центральной точки больше остальных, то линза выпуклая и необходимо увеличить значение дельта радиуса. Увеличивать или уменьшать желательно с шагом +-0,2мм, при необходимости уменьшить или увеличить шаг в зависимости от характера и величины искривления (подбирается экспериментально)
- Команды:
G666 R67,7
M500
G28 - Подгоняем дельта радиус пока наша плоскость не выровняется
3 Этап. Находим истинную высоту от сопла до столика
Третьим этапом мы подгоняем высоту печати (от сопла до нижней плоскости — столика) Так как мы считали, что общая высота заведомо не правильная, необходимо ее откорректировать, после всех настроек высот осей. Можно пойти двумя путями решения данной проблемы:
1 Способ:
Подогнав вручную наше сопло под щуп, так что бы оно свободно под ним проходило, но при этом не было ощутимого люфта,
- Командой M114 выводим на экран значение фактической высоты нашего HotEnd’а
- Командой M666 L получаем полное значение высоты (Параметр H)
- После чего вычитаем из полной высоты фактическую высоту.
- Получившееся значение вычитаем из высоты щупа.
Таким образом мы получаем величину недохода сопла до нижней плоскости, которое необходимо прибавить к полному значению высоты и и записать в память принтера командами:
G666 H 235.2
M500
G28
2 Способ:
Второй способ прост как валенок. С “потолка”, “на глаз” прибавляем значение высоты (после каждого изменение не забываем “уходить” в home), добиваясь необходимого значения высоты, но есть шанс переборщить со значениями и ваше сопло с хрустом шмякнется об стекло.
Как сделать авто калибровку для вашего принтера и что при этом авто калибрует принтер вы узнаете из следующих статей.
Источник статьи: http://itnan.ru/post.php?c=2&p=295615