LIN ( Local Interconnect Network ) — сетевой протокол , используемый для связи между компонентами в современных транспортных средствах . Это недорогой однопроводной последовательный протокол , поддерживающий связь со скоростью до 19,2 Кбит/с с максимальной длиной шины 40 метров (131,2 фута).
Потребность в дешевой последовательной сети возникла по мере развития технологий и возможностей, реализованных в автомобиле, в то время как шина CAN была слишком дорогой для внедрения для каждого компонента в автомобиле. Европейские автопроизводители начали использовать различные технологии последовательной связи, что привело к проблемам совместимости.
В конце 1990-х годов пять автопроизводителей ( BMW , Volkswagen Group , Audi , Volvo Cars , Mercedes-Benz ) основали Консорциум LIN , а технологии (сетевые и аппаратные) предоставили Volcano Automotive Group и Motorola . Первая полностью реализованная версия новой спецификации LIN (версия LIN 1.3) была опубликована в ноябре 2002 года. В сентябре 2003 года была представлена версия 2.0 для расширения возможностей и обеспечения дополнительных диагностических функций. LIN также может использоваться по линии питания аккумулятора автомобиля с помощью специального приемопередатчика LIN-over-DC-power-line (DC-LIN). LIN по линии питания постоянного тока (DC-LIN) был стандартизирован как ISO/AWI 17987-8. [1]
Технический совет по управлению ISO (TMB) назначил CAN in Automation в качестве регистрационного органа для идентификатора поставщика LIN, стандартизированного в серии ISO 17987.
LIN — это широковещательная последовательная сеть, состоящая из 16 узлов (один главный и до 15 подчиненных). [2] [3] [4] [5]
Все сообщения инициируются мастером, и не более одного подчиненного узла отвечают на заданный идентификатор сообщения. Главный узел также может действовать как подчиненный узел, отвечая на свои собственные сообщения. Поскольку все сообщения инициируются мастером, нет необходимости реализовывать обнаружение столкновений . [6]
Ведущее и ведомое устройства обычно представляют собой микроконтроллеры , но могут быть реализованы в специализированном оборудовании или ASIC в целях экономии средств, пространства или энергии.
Текущие применения объединяют экономичную эффективность LIN и простые датчики для создания небольших сетей. Эти подсистемы могут быть соединены магистральной сетью (например, CAN в автомобилях). [7]
Шина LIN — это недорогой последовательный протокол связи, который эффективно поддерживает удаленное приложение в сети автомобиля. Он в частности предназначен для мехатронных узлов в распределенных автомобильных приложениях, но в равной степени подходит для промышленных приложений. Он предназначен для дополнения существующей сети CAN, ведущей к иерархическим сетям в автомобилях.
В конце 1990-х годов пять европейских автопроизводителей, Mentor Graphics (ранее Volcano Automotive Group) и Freescale (ранее Motorola , теперь NXP ) основали консорциум Local Interconnect Network (LIN) . Первая полностью реализованная версия новой спецификации LIN была опубликована в ноябре 2002 года как LIN версии 1.3. В сентябре 2003 года была представлена версия 2.0, расширяющая возможности конфигурации и предусматривающая значительные дополнительные диагностические функции и интерфейсы инструментов.
Основные характеристики протокола перечислены ниже:
Данные передаются по шине в сообщениях фиксированной формы выбираемой длины. Главная задача передает заголовок, состоящий из сигнала прерывания, за которым следуют поля синхронизации и идентификатора. Подчиненные отвечают кадром данных, состоящим из 2, 4 или 8 байтов данных плюс 3 байта управляющей информации. [9]
Сообщение содержит следующие поля: [9]
Спецификация LIN была разработана для того, чтобы разрешить использование очень дешевых аппаратных узлов в сети. Это недорогая однопроводная сеть на основе ISO 9141. [ 11] В современных автомобильных сетевых топологиях используются микроконтроллеры с возможностью UART или выделенное аппаратное обеспечение LIN. Микроконтроллер генерирует все необходимые данные LIN (протокол ...) (частично) программным обеспечением и подключается к сети LIN через трансивер LIN (проще говоря, преобразователь уровня с некоторыми дополнениями). Работа в качестве узла LIN — это только часть возможной функциональности. Аппаратное обеспечение LIN может включать этот трансивер и работать как чистый узел LIN без дополнительной функциональности.
Поскольку узлы LIN Slave должны быть максимально дешевыми, они могут генерировать свои внутренние часы, используя RC-генераторы вместо кварцевых генераторов (кварцевых или керамических). Для обеспечения стабильности скорости передачи данных в пределах одного кадра LIN используется поле SYNC в заголовке.
LIN-Master использует одну или несколько предопределенных таблиц планирования для начала отправки и получения на шину LIN. Эти таблицы планирования содержат как минимум относительное время, когда инициируется отправка сообщения. Один кадр LIN состоит из двух частей: заголовка и ответа . Заголовок всегда отправляется LIN Master, в то время как ответ отправляется либо одним выделенным LIN-Slave, либо самим LIN Master.
Передаваемые данные в LIN передаются последовательно как восьмибитные байты данных с одним стартовым битом, одним стоповым битом и без четности (поле прерывания не имеет стартового или стопового бита). Скорость передачи данных варьируется в диапазоне от 1 кбит/с до 20 кбит/с. Данные на шине делятся на рецессивные (логический HIGH) и доминантные (логический LOW). Время обычно рассматривается стабильным источником синхронизации LIN Masters, наименьшая единица — время одного бита (52 мкс при 19,2 кбит/с).
В протоколе LIN используются два состояния шины — спящий режим и активный. Пока данные находятся на шине, все узлы LIN переходят в активное состояние. По истечении указанного времени ожидания узлы переходят в спящий режим и возвращаются в активное состояние с помощью кадра WAKEUP. Этот кадр может быть отправлен любым узлом, запрашивающим активность на шине, либо ведущим LIN, следующим своему внутреннему расписанию, либо одним из подключенных ведомых LIN, активированных его внутренним программным приложением. После того, как все узлы пробуждены, ведущий продолжает планировать следующий идентификатор.
Заголовок состоит из пяти частей:
BREAK: Поле BREAK используется для активации всех подключенных подчиненных устройств LIN для прослушивания следующих частей заголовка. Оно состоит из одного стартового бита и нескольких доминантных битов. Длина составляет не менее 11 бит; стандартное использование на сегодняшний день составляет 13 бит, и поэтому отличается от базового формата данных. Это используется для того, чтобы прослушивающие узлы LIN с основными тактовыми частотами, отличающимися от установленной скорости передачи данных шины в указанных диапазонах, обнаружат BREAK как кадр, начинающий связь, а не как стандартный байт данных со всеми значениями ноль ( шестнадцатеричное 0x00).
SYNC: SYNC — это стандартный байт формата данных со значением шестнадцатеричного 0x55. Ведомые устройства LIN, работающие на RC-генераторе, будут использовать расстояние между фиксированным количеством восходящих и нисходящих фронтов для измерения текущего времени бита на шине (нормальное время ведущего устройства) и для пересчета внутренней скорости передачи данных.
INTER BYTE SPACE: Inter Byte Space используется для регулировки джиттера шины. Это необязательный компонент в спецификации LIN. Если включен, то все узлы LIN должны быть готовы к его обработке.
Между полями BREAK и SYNC имеется межбайтовый пробел, между SYNC и IDENTIFIER, между полезной нагрузкой и контрольной суммой и между каждым байтом данных в полезной нагрузке имеется межбайтовый пробел.
ИДЕНТИФИКАТОР: ИДЕНТИФИКАТОР определяет одно действие, которое должно быть выполнено одним или несколькими подключенными узлами LIN slave. Проектировщик сети должен обеспечить безошибочную функциональность на этапе проектирования (одному slave разрешено отправлять данные на шину за один кадр времени).
Если идентификатор заставляет одно физическое подчиненное устройство LIN отправлять ответ, идентификатор может называться Rx-идентификатором. Если задача подчиненного устройства главного устройства отправляет данные на шину, его можно называть Tx-идентификатором.
RESPONSE SPACE: Response Space — это время между полем IDENTIFIER и первым байтом данных, который начинает часть LIN RESPONSE кадра LIN. Когда конкретный кадр LIN полностью передается, заголовок + ответ, LIN MASTER, LIN MASTER будет использовать полное RESPONSE SPACE TIME для расчета времени отправки ответа после отправки заголовка. Если часть ответа кадра LIN поступает с физически другого SLAVE NODE, то каждый узел (главный и подчиненный) будет использовать 50% времени Response Space в своих расчетах тайм-аута.
Ответ отправляется одной из подключенных подчиненных задач LIN и делится на данные и контрольную сумму . [9]
ДАННЫЕ: Отвечающий ведомый может отправлять от нуля до восьми байтов данных на шину. Объем данных фиксируется разработчиком приложения и отражает данные, относящиеся к приложению, в котором работает ведомый LIN.
КОНТРОЛЬНАЯ СУММА: В LIN доступны две модели контрольной суммы: первая — это контрольная сумма, включающая только байты данных (спецификация до версии 1.3), вторая — дополнительно включает идентификатор (версия 2.0+). Используемая модель контрольной суммы заранее определяется разработчиком приложения.
Эти методы позволяют определять положение подчиненных узлов на шине LIN и позволяют назначать уникальный адрес узла (NAD). [12]
Ограничения:
Каждый подчиненный узел должен иметь два дополнительных контакта: один входной, D 1 , и один выходной, D 2 .
Каждый конфигурационный вывод D x (x=1-2) имеет дополнительную схему, помогающую в определении положения.
В начале процедуры ни одному устройству SNPD не назначен NAD.
1 Первое сообщение LIN с автоматической адресацией
2 Последующие сообщения LIN с автоматической адресацией
3 Все подтягивания и стягивания отключаются, завершая процедуру адресации.
Каждый подчиненный узел имеет два контакта LIN
Каждому подчиненному узлу требуются некоторые дополнительные схемы по сравнению со стандартной схемой LIN для помощи в определении положения.
В начале процедуры ни одно из устройств SNPD не имеет назначенного NAD. Процедура автоадресации выполняется во время поля синхронизации. Поле синхронизации разбито на три фазы:
1 Измерение тока смещения
2 Режим подтягивания
3 Режим источника тока
Эта технология защищена патентами EP 1490772 B1 и US 7091876.
LIN не является полной заменой шины CAN. Но шина LIN является хорошей альтернативой там, где важны низкие затраты и скорость/пропускная способность не важны. Обычно она используется в подсистемах, которые не критичны для производительности или безопасности транспортного средства - некоторые примеры приведены ниже.
Адресация в LIN достигается с помощью NAD (Node ADdress), который является частью PID (защищенного идентификатора). Значения NAD находятся на 7 битах, то есть в диапазоне от 1 до 127 (0x7F), и представляют собой композицию идентификатора поставщика, идентификатора функции и идентификатора варианта.
Вы можете получить идентификатор поставщика, обратившись в CAN in Automation — орган, ответственный за присвоение таких идентификаторов.
Различные автобусы для подключения транспортных средств (автомобилей):
Спецификация LIN v2.2A (2010) была транскрибирована в семейство официальных стандартов ISO 17987. Части 1–7 ISO были впервые выпущены в 2016 году, а часть 8 — в 2019 году.