LIN (Local Interconnect Network)

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 13:04, 7 июня 2019.

LIN (англ. Local Interconnect Network) — стандарт промышленной сети, ориентированный на управление автомобильными системами низкой ответственности, разработанный специально для организации связи между простыми электронными блоками в автомобилях консорциумом европейских автопроизводителей и других известных компаний, включая Audi AG, BMW AG, Daimler Chrysler AG, Motorola Inc., Volcano Communications Technologies AB, Volkswagen AG и VolvoCar Corporation.

История

В конце 1990-х годов консорциум LIN был основан пятью автопроизводителями (BMW, Volkswagen Group, Audi Group, Volvo Cars, Mercedes-Benz) с использованием технологий (опыт работы в области сетей и аппаратного обеспечения) от Volcano Automotive Group и Motorola.

В 1996 г. концерн Volvo и Volcano Communication (VCT) совместно разработали интерфейс на основе UART/SCI-технологии для применения его в новой серии автомобилей Volvo S80. В дальнейшем этот интерфейс получил название Volcano Lite. Данный интерфейс стал неотъемлемой частью автомобильных средств коммуникации. В 1997 г. Motorola совместно с Volvo и VCT с целью удовлетворения новых технических требований (например, реализовав концепцию самосинхронизации ведомого узла без применения кварцевого резонатора) улучшила Volcano Lite и сформировала новый открытый стандарт, позволяющий поддерживать широкий ряд автомобильных систем. В декабре 1998 г. Audi, BMW, DaimlerChrysler и VW основали LIN-консорциум/

Первая полностью реализованная версия новой спецификации LIN (LIN версия 1.3) была опубликована в ноябре 2002 года. В сентябре 2003 года была введена версия 2.0 для расширения возможностей и обеспечения дополнительных функций диагностики. LIN также может использоваться по линии электропитания аккумулятора автомобиля с помощью специального трансивера LIN-DC Powerline (DC-LIN).

Линия электропередачи LIN через DC (DC-LIN) стандартизирована как ISO / AWI 17987-8. CAN in Automation (CIA) был назначен Советом по техническому управлению ISO (TMB) в качестве регистрирующего органа для идентификатора поставщика LIN, стандартизированного в серии ISO 17987.[Источник 1]

Позиционирование

Основная цель протокола LIN это создание дешёвых локальных сетей обмена данными на коротких расстояниях. Он предназначен для передачи входных воздействий, состояний переключателей на панелях управления и так далее, а также ответных действий различных устройств, соединённых в одну систему через LIN, происходящих в так называемом «человеческом» временном диапазоне (порядка сотен миллисекунд).

К основным задачам, которые возлагает на LIN консорциумом европейских автомобильных производителей, относится в первую очередь объединение автомобильных подсистем и узлов (таких как дверные замки, стеклоочистители, стеклоподъёмники, управление магнитолой и климат-контролем, электролюк и так далее) в единую электронную систему. LIN протокол утверждён Европейским Автомобильным Консорциумом как дешёвое дополнение к сверхнадёжному протоколу CAN.

LIN и CAN являются дополнениями друг к другу и позволяют объединить все электронные автомобильные приборы в единую многофункциональную бортовую сеть. Следуут учитывать, что область применения CAN — участки, где требуется сверхнадёжность и скорость; область же применения LIN — объединение дешёвых узлов, работающих с малыми скоростями передачи информации на коротких дистанциях и сохраняющих при этом универсальность, многофункциональность, а также простоту разработки и отладки. Стандарт LIN включает технические требования на протокол и на среду передачи данных. Как последовательный протокол связи, LIN эффективно поддерживает управление электронными узлами в автомобильных системах с шиной класса «А» (двунаправленный полудуплексный), что подразумевает наличие в системе одного главного (англ. master) и нескольких подчинённых (англ. slave) узлов.

Сетевая топология

LIN — широковещательная последовательная сеть в составе которой 16 узлов (один мастер и, как правило, до 15 подчиненных). Все сообщения инициируются мастером с не более чем одним ответом на данный идентификатор сообщения от подчиненного узла. Главный узел может также выступать в качестве подчинённого (англ. slave), отвечая на свои собственные сообщения. Поскольку все коммуникации инициируются мастером, то не нужно осуществлять обнаружение противоречий. Главный и подчиненные узлы, как правило, микроконтроллеры, но в целях экономии стоимости, места, или потребления, так же могут быть реализованы в специализированных аппаратных средствах или ASIC.

Аппаратное обеспечение LIN

Спецификация LIN была разработана для того, чтобы в сети могли использоваться очень дешевые аппаратные узлы. Это недорогая однопроводная сеть, основанная на стандарте ISO 9141. В современных автомобильных топологиях используются микроконтроллеры с возможностью UART или выделенным оборудованием LIN. Микроконтроллер генерирует все необходимые данные LIN с помощью программного обеспечения и подключается к сети LIN через приемопередатчик LIN (преобразователь уровня с некоторыми надстройками). Работа в качестве узла LIN является лишь частью возможной функциональности. Аппаратное обеспечение LIN может включать этот трансивер и работать как чистый узел LIN без дополнительных функций.

Поскольку подчиненные узлы LIN должны быть как можно более дешевыми, они могут генерировать свои внутренние часы, используя RC-генераторы вместо кристаллических (кварцевых или керамических). Для обеспечения стабильности скорости передачи в одном блоке данных LIN используется поле SYNC в заголовке.

Обзор

Шина LIN представляет собой недорогой последовательный коммуникационный протокол, который эффективно поддерживает удаленное приложение в сети автомобиля. В частности предназначен для мехатронных узлов, но в равной степени подходит для промышленного применения. Она предназначена как дополнение к существующей сети CAN.[Источник 2]

Первая версия LIN 1.0 под влиянием некоторых автомобильных компаний была реализована в июле 1999 г. благодаря переделке стандарта VLITE. В дальнейшем LIN-стандарт был переделан дважды в течение 2000 г., в результате чего появилась следующая версия LIN 1.2. В ноябре 2002 г. LIN-консорциум выпустил новый стандарт LIN 1.3. Изменения в нем в основном коснулись только физического уровня, благодаря чему была достигнута лучшая совместимость между узлами сети. Последняя версия стандарта, названная LIN 2.0, была принята в сентябре 2003 г., обновление позволило расширить возможности конфигурации и дополнительной диагностики.

Функции протокола

Основные функции протокола перечислены ниже:

  • В основу LIN положена концепция "single-master/multi-slave"
  • Один ведущий, до 16 подчиненных. Это значение, рекомендованное Консорциумом LIN для достижения детерминированного отклика времени.
    • Обнаружение положения подчиненного узла (ОППД) позволяет назначать адреса узла после включения питания.
  • Топология "общая шина"
  • Реализуется с помощью асинхронного последовательного интерфейса (UART).
  • Переменная длина блока данных (2, 4 и 8 байт).
  • Передача данных по одному проводу
  • Обнаружение дефектных узлов.
  • Скорость до 20 Кбит/с
  • Длина шины до 40 м
  • Напряжение на шине в пассивном состоянии 9...18 В (подключенные к шине узлы должны выдерживать повышение напряжения до 40 В)

Данные передаются по шине в фиксированной форме сообщений выбираемых длин. Мастер задача передает заголовок, который состоит из сигнала разрыва и идентификаторов полей. Подчинённые узлы присылают блок данных, который состоит из от 2, 4 и 8 байт данных плюс 3 байта информации управления.

Применение

Примеры применения протокола в различных компонентах автомобиля:

Сегмент Пример применения
Крыша Датчик освещенности, управление освещением, солнечная крыша
Руль Круиз-контроль, стеклоочиститель, поворотник, климат-контроль, автомагнитола, блокировка руля
Сиденье Моторы положения сиденья, датчики пассажира, панель управления
Двигатель Датчики, малые моторы, моторы вентиляторов охлаждения
Решетка Решетка жалюзи
Климат Малые моторы, панель управления
Дверь Зеркало, центральный ЭБУ, выключатель зеркала, стеклоподъемник, выключатель сиденья, замок двери
Освещение Улучшение отделки салона автомобиля, накладки на пороги освещены светодиодом RGB

LIN блок сообщений

Сообщения содержат следующие поля:

  • Разрыв синхронизации
  • Байты синхронизации
  • Байты дентификатора
  • Байты данных
  • Контрольная сумма


Типы блоков данных:

  1. Безусловный блок. Они всегда несут сигналы, и их идентификаторы находятся в диапазоне от 0 до 59 (от 0x00 до 0x3b). Все подписчики безусловного блока должны получить блок и сделать его доступным для приложения (при условии, что ошибок не обнаружено).
  2. Блок, инициированный событием. Его целью является повышение скорости отклика кластера LIN без выделения слишком большой полосы пропускания шины для опроса множества подчиненных узлов с редко возникающими событиями. Первый байт данных переносимого безусловного блока должен быть равен защищенному идентификатору, назначенному блоку, инициированному событием. Подчиненное устройство должно ответить связанным безусловным блоком, только если его значение данных изменилось. Если ни одна из подчиненных задач не отвечает на заголовок, оставшаяся часть слота блока молчит, а заголовок игнорируется. Если более чем одна подчиненная задача отвечает на заголовок в одном и том же временном интервале блока, произойдет конфликт, и мастер должен разрешить конфликт, запросив все связанные безусловные блоки, прежде чем запросить блок, инициированный событием.
  3. Спорадический блок. Этот блок передается ведущим по мере необходимости, поэтому столкновение не может произойти. Заголовок спорадического блока должен отправляться только в соответствующий ему интервал блока, когда главная задача знает, что сигнал, переносимый в блоке данных, обновлен. Издатель спорадического блока всегда должен предоставлять ответ на заголовок.
  4. Диагностический блок. Они всегда содержат диагностические данные или данные конфигурации, и они всегда содержат восемь байтов данных. Идентификатор: 60 (0x3C), называемый основным блоком запроса, или 61 (0x3D), называемый ведомым ответным блоком. Прежде чем генерировать заголовок диагностического блока, мастер задач спрашивает свой диагностический модуль, должен ли он быть отправлен или шина должна молчать. Подчиненные задачи публикуют и подписываются на ответ в соответствии с их диагностическим модулем.
  5. Пользовательский блок. Они могут нести любую информацию. Их идентификатор - 62 (0x3E). Заголовок пользовательского блока всегда передается, когда обрабатывается интервал блока, выделенный для блока данных.
  6. Зарезервированный блок. Они не должны использоваться в кластере LIN 2.0. Их идентификатор - 63 (0x3F).

Принципы построения LIN-сети

LIN-сеть состоит из одного ведущего узла (master node) и нескольких ведомых (slave nodes). Пример построения LIN-сети с одним ведущим узлом и двумя ведомыми показан на (рис.1). Обычный ведущий узел выполняет как «задачу ведущего» (Master Task), так и «задачу ведомого» (Slave Task). Все остальные узлы (ведомые) выполняют только Slave Task. В задачу ведущего узла входит: принятие решения, а также когда и какие данные должны быть переданы, в то время как ведомый узел отвечает только за обеспечение данных на запросы ведущего[Источник 3].

Рис.1. Пример построения LIN сети

Принцип работы LIN-интерфейса

Данные, передаваемые по LIN-шине, называются фреймом. Фрейм состоит из заголовка (Header), формируемого ведущим узлом, и ответа от ведомого узла (Response). Процесс связи в LIN-сети всегда начинается только ведущим узлом, как показано на (рис.2).
Рис.2. Пример связи в LIN интерфейсе

Заголовок фрейма содержит области Break (поле стартовых битов) и Synch (поле битов синхронизации), а также поле идентификации PID. Идентификатор однозначно определяет содержание сообщения, но не адрес приемного устройства. Это является задачей «ведомого узла» — решать предназначено ли сообщение для данного узла. Поле PID содержит 6-битный идентификатор ID и два бита паритета. Для идентификатора ID значения могут быть выбраны в диапазоне от 0 до 63. Ответ ведомого узла содержит данные и поле Checksum (контрольная сумма). Фрейм может иметь от 2 до 8 байт данных. Структура LIN-фрейма показана на (рис.3).

Рис.3. Структура LIN-фрейма.

Типы передаваемых данных в LIN-интерфейсе

  1. Значения или массив значений в поле данных ответа от ведомого узла. Важно отметить, что положение передаваемых значений зафиксировано внутри поля данных и зависит от конкретного идентификатора PID.
  2. Диагностические сообщения передаются с одним из двух зарезервированных идентификаторов ID (Master Request = 0x3C и Slave Response = 0x3D). Данные сообщения несут в себе диагностическую или конфигурационную информацию и всегда имеют длину 8 байт[Источник 4].

Ведущий узел передает заголовок на основании списка сети. Список определяет — какой фрейм должен быть послан и интервал времени между текущей посылкой и предыдущей. Ведущий узел может переключаться между несколькими различными списками. Такая концепция построения списка гарантирует, что сеть никогда не будет перегруженной. При этом достигается максимально гарантированное время передачи данных.

Спецификации

В этом разделе мы рассмотрим спецификации основных LIN сетей.

LIN 1.3

Спецификация LIN 1.3 содержит в себе следующие части:

  • Спецификация LIN-протокола описывает физический уровень (LIN Physical Layer) и уровень данных (LIN Data Link Layer);
  • LIN Configuration Language Description описывает конфигурационный файл LIN-сети, который используется для полного конфигурирования сети, а также является общим интерфейсом между пользователем и производителем различных узлов сети и может использоваться инструментами разработки и отладки сети;
  • LIN API Specification описывает интерфейс обмена данными между сетью и программой приложения.

LIN 2.0

Спецификация LIN 2.0 описывает последние тенденции определенные LIN-консорциумом, а также включает дополнение SAE J2602 Task Force (специально для готовых исполнительных узлов). Спецификация LIN 2.0 содержит в себе следующие части:

  • LIN Physical Layer Specification описывает физический уровень шины, включая скорость передачи, точность частоты и т.д.;
  • LIN Protocol Specification описывает уровень данных LIN-интерфейса;
  • LIN API Specification описывает интерфейс обмена между сетью и программой приложения, включая конфигурационный и диагностический уровни;
  • LIN Configuration Language Specification описывает конфигурационный файл LIN-сети, который используется для полного конфигурирования сети, а также является общим интерфейсом между пользователем и производителем различных узлов сети и может использоваться инструментами разработки и отладки сети;
  • LIN Diagnostic and Configuration Specification описывает сервис, который может быть подключен на верхний уровень данных для обеспечения конфигурационной и диагностической информации узла;
  • LIN Node Capability Language Specification определяет формат описания готовых исполнительных узлов, которые могут быть использованы с инструментами разработки для автоматического создания файла описания LIN-сети.

Сравнение спецификаций

При сравнении LIN 1.3 и LIN 2.0 выявляются два наиболее важных отличия в пользу последней версии: стандартизированная поддержка для конфигурации и диагностики, а также специальный файл совместимости. Обе цели служат для упрощения использования готовых исполнительных узлов.

Между спецификациями LIN 1.3 и LIN 2.0 существуют и другие важные отличия, отмечающие превосходство последней спецификации:

  1. LIN API (часть спецификации LIN) написана полностью на языке С для всех узлов;
  2. добавлен улучшенный подсчет Checksum (в LIN 2.0 учитывается PID);
  3. добавлены команды по конфигурированию узлов;
  4. стандартизированы обязательные идентификаторы конечного продукта LIN Product Identifier (поставщик ID/версия ID), как часть конфигурации;
  5. добавлены API конфигурации и диагностики;
  6. определены новые фреймы и типы данных. Как следствие, могут использоваться как отдельные фреймы, так и массивы данных;
  7. добавлен обязательный мониторинг состояния исполнительных устройств;
  8. разделены команды qoto_sleep (переход в режим сна) и wake_up (переход в активный режим);
  9. добавлено в спецификацию интерфейса автоматическое определение скорости передачи данных.

Поскольку LIN 2.0 является расширением LIN 1.3, то ведущий узел LIN 2.0 может содержать оба типа исполнительных устройств: как LIN 1.3, так и LIN 2.0. Очевидно, что некоторые свойства LIN 2.0 (например расширенное поле Checksum, пере конфигурация и диагностика) не поддерживаются в LIN 1.3 ведомых устройствах. Ведомые LIN 2.0 узлы не могут работать с ведущим LIN 1.3 узлом, поскольку для них необходима конфигурация.

ИМС, реализующие протокол

ИМС Тип корпуса Категория Конфигурация Тип передатчика Напряжение питания [мин] (В) Напряжение питания [макс] (В)
PCA82C250T SO8 Передатчик HS-CAN передатчик Высокоскоростной CAN 4.75 5.25
PCA82C251T SO8 Передатчик HS-CAN передатчик Высокоскоростной CAN 4.75 5.25
TJA1020T SO8 Передатчик LIN1.3 передатчик LIN1.3 передатчик 5 27
TJA1020U Bare die Передатчик LIN1.3 передатчик LIN1.3 передатчик 5 27
TJA1021T SO8 Передатчик LIN2.1 / SAE J2602 передатчик LIN2.1 передатчик 5.5 27
TJA1021TK HVSON8 Передатчик LIN2.1 / SAE J2602 передатчик LIN2.1 передатчик 5.5 27
TJA1040T SO8 Передатчик HS-CAN передатчик Высокоскоростной CAN 4.75 5.25
TJA1041AT SO14 Передатчик HS-CAN передатчик Высокоскоростной CAN 4.75 5.25
TJA1041AU bare die Передатчик HS-CAN передатчик Высокоскоростной CAN 4.75 5.25
TJA1041T SO14 Передатчик HS-CAN передатчик Высокоскоростной CAN 4.75 5.25
TJA1042T SO8 Передатчик HS-CAN передатчик Высокоскоростной CAN 4.5 5.5
TJA1043T SO14 Передатчик HS-CAN передатчик Высокоскоростной CAN 4.5 5.5
TJA1050T SO8 Передатчик HS-CAN передатчик Высокоскоростной CAN 4.75 5.25
TJA1050U bare die Передатчик HS-CAN передатчик Высокоскоростной CAN 4.75 5.25
TJA1051T SO8 Передатчик HS-CAN передатчик Высокоскоростной CAN 4.5 5.5
TJA1054AT SO14 Передатчик FT-CAN Устойчивый к отказам CAN передатчик 5 27
TJA1054T SO14 Передатчик FT-CAN Устойчивый к отказам CAN передатчик 5 27
TJA1055T SO14 Передатчик FT-CAN Устойчивый к отказам CAN передатчик 5 40
TJA1080ATS SSOP20 Передатчик FlexRay Передатчик совместимый
с архитектурой нодов и «звезда»
версии EPL2.1.
FlexRay Совместимый
с архитектурой нодов и «звезда»
передатчик (clamp 30)
6.5 60

Ссылки

http://www.lin-subbus.org/ - Ныне не действующий сайт консорциума LIN.

Источники

  1. LIN // Wikipedia.[2019]. Дата изменения: 21.01.2017. URL: https://ru.wikipedia.org/wiki/LIN (дата обращения: 17.05.2019).
  2. LIN // ChipInfo.[1991 - 2019]. Дата изменения: 23.07.2015. URL: http://www.chipinfo.ru/literature/chipnews/200102/12.html (дата обращения: 18.05.2019).
  3. LIN // Дейтамикро.[1991 - 2018]. Дата изменения: 11.05.2016. URL: http://www.datamicro.ru/LIN (дата обращения: 17.05.2019).
  4. Шина LIN // Автодата. [1999 - 2019]. Дата изменения: 11.05.2016. URL: http://www.datamicro.ru/LIN (дата обращения: 05.06.2019).