Что такое lin шина в автомобиле?

Автомобильный справочник

для настоящих любителей техники

LIN шина

LIN протокол разработан для создания дешевых локальных сетей обмена данными на коротких расстояниях. Он служит для передачи входных воздействий, состояний переключателей на панелях управления, а также ответных действий различных устройств, соединенных в одну систему через LIN.

Первая спецификация стандарта под брендом LIN была издана в 1999 году по инициативе консорциума европейских автопроизводителей и других известных компаний, включая Audi AG, BMW AG, Daimler Chrysler AG, Motorola Inc., Volcano Communications Technologies AB, Volkswagen AG и VolvoCar Corporation. Последняя спецификация, LIN 2.2, издана в 2010 году. В настоящее время документы стандарта переданы под контроль Международной организации по стандартизации (ISO), где стандарту был присвоено новое наименование ISO 17987. В связи с политикой ISO копия стандарта стала платной.

Шина LIN

LIN шина (локальная сеть воздействия) была разработана для удовлетворения потребно­стей в связи для систем класса А (см. табл. «Классификация шинных систем» ) с использованием самого экономичного обо­рудования. Типичные области применения:

  • Дверной модуль с дверным замком;
  • Приводы стеклоподъемников;
  • Регулировка боковых зеркал заднего вида;
  • Система кондиционирования (передача сигналов от элемента управления, актива­ция вентилятора свежего воздуха).

Текущую спецификацию LIN можно найти на сайте консорциума LIN.

Важные особенности шины LIN:

  • Концепции с одним ведущим и несколь­кими ведомыми устройствами;
  • Небольшая стоимость оборудования за счет передачи данных по неэкранированному однопроводному кабелю;
  • Самосинхронизация ведомых устройств без кварцевого генератора;
  • Связь в виде очень коротких сообщений;
  • Скорость передачи данных до 20 кбит/с;
  • Длина шины до 40 м, до 16 узлов.

Система передачи в шине LIN

Шина LIN представляет собой неэкранированный однопроводный кабель. Уровень шины может принимать два логических состояния. Доминантный уровень соответствует напря­жению приблизительно 0 В (масса) и пред­ставляет собой логический 0. Рецессивный Уровень соответствует напряжению батареи Ubatt и представляет собой логическую 1.

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

Скорость передачи по шине LIN ограничена величиной 20 кбит/с. Это компромисс между большой крутизной фронта импульсов, не­обходимой для синхронизации ведомых устройств, с одной стороны, и небольшой его крутизной, необходимой для улучшения ЕМС — с другой. Рекомендуемая скорость передачи составляют 2400, 9600 и 19200 бит/с. Минимально допустимая скорость составляет 1 кбит/с.

Максимальное количество узлов не регла­ментируется в спецификации LIN. Теоретиче­ски оно ограничено количеством доступных идентификаторов сообщений. Возможности линии и узла и крутизна фронта импульсов ограничивают сочетание длины и количества узлов сети LIN. Рекомендуется не более 16 узлов.

Пользователи шины обычно располага­ются в линейной топологии; однако эта топо­логия не является обязательной.

Доступ к шине LIN

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

Во время обмена сообщениями между ве­дущим и ведомым устройством возможны следующие взаимосвязи:

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

Протокол LIN

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

Информация на шине LIN встраивается в определенный фрейм данных, фрейм LIN (рис. «Фрейм LIN» ). Инициированное ведущим устрой­ством сообщение начинается с заголовка. В поле сообщения (ответ) содержится раз­личная информация, зависящая от типа со­общения. Если ведущее устройство передает инструкции ведомому устройству, то оно опи­сывает поле сообщения данными, которые должно использовать ведомое устройство. В случае запроса данных адресуемое ведомое устройство описывает поле сообщения дан­ными, запрошенными ведущим устройством.

Заголовок

Заголовок состоит из разрыва синхронизации, поля синхронизации и поля идентификации.

Синхронизация LIN

Синхронизация происходит в начале каж­дого фрейма для обеспечения последова­тельной передачи данных между ведущим и ведомыми устройствами. Сначала разрывом синхронизации четко определяется начало фрейма. Он состоит из не менее 13 после­довательных доминантных уровней и одного рецессивного уровня.

После разрыва синхронизации ведущее устройство передает поле синхронизации, состоящее из последовательности битов 01010101. Это дает ведомым устройствам возможность адаптироваться к временной оси ведущего. Тактовый импульс ведущего устройства не должен отличаться от номи­нального значения более чем на ±0,5%. Так­товый импульс ведомых устройств перед син­хронизацией может иметь разброс ±15 %, если синхронизация к концу сообщения достигает уровня ±2 %. Таким образом, ведомым устрой­ствам не нужен дорогой кварцевый генера­тор — они могут быть выполнены, например, с экономичной резистивно-емкостной цепью.

Идентификатор LIN

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

Шесть или восемь битов в поле идентифи­катора определяют сам идентификатор; из них получается 64 возможных идентифика­тора (ID). Имеются следующие значения:

  • ID = 0 — 59: передача сигналов;
  • ID = 60: запрос команд и диагностики от ведущего устройства;
  • ID = 61: отклик ведомого устройства на ID 60;
  • ID = 62: зарезервирован для связи с изго­товителем;
  • ID = 63: зарезервирован для будущих рас­ширений протокола.

Из 64 возможных сообщений 32 могут содер­жать только два байта данных, 16 — четыре байта данных, и остальные 16 — восемь бай­тов данных.

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

Поле данных

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

В один фрейм можно включить несколько сигналов. Здесь у каждого сигнала есть один генератор, т.е. он всегда описывается одним и тем же узлом сети. Во время работы не разрешается сопоставлять сигналу другой генератор, что возможно в других сетях с управлением по времени.

Данные в ответе ведомого устройства за­щищаются контрольной суммой (CS).

Описательный файл LIN

Конфигурация шины LIN, т.е. спецификация пользователей сети, сигналов и фреймов, выполняется в описательном файле LIN. Спецификация LIN для этой цели имеет под­ходящий язык конфигурации.

Из описательного файла LIN автоматиче­ски генерируется набор кодов на С и файлов заголовков; эти коды и файлы используются для реализации функций ведущего и ведо­мых устройств в ЭБУ, расположенных на шине. Таким образом, описательный файл LIN служит для конфигурации всей сети LIN. Это общий интерфейс между автопроизво­дителем и поставщиками ведущих и ведомых устройств.

Составление графика отправки сообщений

Таблица-график в описательном файле LIN определяет порядок и время отправки со­общений. Часто запрашиваемая информа­ция отправляется время от времени. Когда таблица проработана, ведущее устройство снова начинает с первого сообщения. После­довательность обработки можно изменить в зависимости от режима работы (например, активна/неактивна диагностика, включено/ выключено зажигание).

Таким образом, известен фрейм передачи каждого сообщения. Детерминированные характеристики гарантируются тем фактом, что все передачи инициируются ведущим Устройством в случае управления доступом по принципу «ведущий-ведомый».

Управление сетью LIN

Для минимизации тока замкнутой цепи узлы сети LIN можно переводить в спящий режим. Это можно сделать двумя способами. Веду­щее устройство передает команду «перейти в спящий режим» зарезервированным иден­тификатором 60, либо ведомые устройства переходят в спящий режим автоматически, если в течение относительно длительного времени (4 секунды) не было передачи данных по шине. И ведущее, и ведомые устройства могут снова активировать сеть. Для этого необходимо передать сигнал ак­тивации. Он состоит из байта данных с номе­ром 128, обозначающим содержание. После перерыва времени бита 4-64 (разграничитель активации) все узлы должны быть инициа­лизированы и способны ответить ведущему устройству.

Применение локальной шины LIN в современном автомобиле

В этой статье автор рассматривает алгоритм работы однопроводной шины LIN (Local Interconnect Network — локальная коммутационная сеть) — интерфейса, который присутствует в любом современном автомобиле.

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

Читайте также  Кто виноват красный или белый автомобиль?

Увеличившееся число электронных модулей вынудило, в свою очередь, находить и внедрять новые технологии передачи данных между отдельными блоками управления. В вычислительной технике они уже давно существовали, поэтому оставалось только перенести опыт их использования и стандартизировать применительно к автомобилю. Сначала произошло внедрение шины данных CAN. У ведущих проиводителей это случилось в середине 90-х годов. Однако пропускной способности и скорости этой технологии хватило примерно лет на 10, после чего встал вопрос о дальнейшем развитии системы передачи информации. Особенно заметны проблемы стали после повсеместного применения инормационно-развлекательного контента. Вместе с ним пришли и технологии, применяемые в кабельном телевидении и в современных системах связи, включая диагностику и сервис.

В итоге к завоевавшей уважение и известной шине CAN на сегодня добавились:

— шина LIN (однопроводная шина);

— шина MOST (оптоволоконная шина) (рис. 1);

— беспроводная шина Bluetooth™.

Рис. 1. Оптоволоконная шина MOST в современном автомобиле

В этой статье мы рассмотрим алгоритм работы однопроводной шины LIN. Local Interconnect означает, что все блоки управления данной сети находятся в пределах одного условно ограниченного модуля (к примеру: багажника, крыши, мотора вентилятора и др.).

Она может обозначаться еще и как «локальная подсистема». Обмен данными между отдельными системами шин LIN одного автомобиля осуществляется через соответствующий блок управления по шине данных CAN. Говоря о шине LIN, необходимо понимать, что речь идет об однопроводной шине. Площадь поперечного сечения провода составляет 0,35 мм 2 . Экранирование кабеля не является обязательным условием. Цвет изоляции может быть различным, в автомобилях «Ауди» он фиолетовый. Алгоритм работы шины LIN интуитивно понятен и от того прост для освоения. Он позволяет осуществлять обмен данными между одним блоком управления LIN, его называют Master, и подчиненными блоками Slave.

Блок управления LIN Master

Напомним, что блоки управления LIN Master сопряжены с шиной данных CAN и выполняют мастер-функции управления определенной шиной LIN.

Приведем основные функции блока LIN Master:

— контролирует передачу данных в шине LIN и скорость обмена;

— отправляет посылки-телеграммы в шину LIN. В его ПО заложен цикл, какому подчиненному блоку, когда, как часто и какие посылки-телеграммы отправлять;

— выполняет функцию сопряжения подчиненных блоков шины LIN с шиной данных CAN, так как является единственным блоком управления отдельной шины LIN, подключенным к шине данных CAN (рис. 2);

Рис. 2. Применение шины LIN в современном автомобиле

— обеспечивает процесс диагностики подключенных блоков управления LIN Slave (рис. 3).

Рис. 3. Блоки управления LIN Slave

Блоки управления LIN Slave

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

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

Технически интерфейс LIN реализуется просто и надежно. Сопряжение блоков LIN Slave с управляющим блоком LIN (Master) осуществляется по однопроводной линии с помощью одноконтактного разъема, одного на всех.

Рассмотрим алгоритм передачи данных.

Скорость шины LIN примерно в 5 раз меньше скорости шины CAN и составляет до 20 кбит/сек. Реализовано это для того, чтобы не перегружать шину CAN. Цифровые сигналы, как это давно уже принято в вычислительной и связной технике, передаются высоким и низким уровнями сигналов. Размах сигналов зависит от уровня напряжения питания. В автомобиле используется бортовое напряжение 12 В (14,4 В при работе генератора). Отсюда и уровни сигналов шин — от 0 до 12 В.

Если по шине LIN не происходит передача телеграмм или передается «рецессивный» бит, то уровень сигнала будет около 12 В, если будет передан «доминантный» бит, то передатчик замыкает на «массу» и уровень будет близок к нулю (рис. 4) Последовательность доминантных и рецессивных битов и составляет телеграмму, с помощью которой блок управления LIN Master обменивается с блоками LIN Slave. В различных модификациях приемопередатчиков (трансиверов) внешний вид рецессивных и доминантных уровней может иметь отличия.

Рис. 4. Осциллограмма сигналов шины LIN

Чтобы устранить влияние различных факторов на качество работы шины LIN, при передаче возможны отклонения от заданных уровней (0 и 12 В) не более чем на 2 В (рис. 5).

Рис. 5. Диапазон напряжений при передаче

Уровень приема еще более защищен и сигналы принимаются амплитудой с отклонением до 40% от заданных (рис. 6).

Рис. 6. Диапазон напряжений при приеме

Опишем непосредственно «телеграммы», с помощью которых происходит общение блоков по шине LIN.

Блок управления LIN Master посылает телеграмму блоку LIN Slave и в заголовке передается код операции — что именно надо сделать. Например, необходимо переслать показания датчиков, измеряющих скорость вращения вентилятора, т.е. переслать информацию о величине скорости, которую данные датчики измеряют. Это первый видтелеграммы — опросный.

В ответ блок LIN Slave пересылает телеграмму с измеренными величинами. Это второй вид телеграммы — ответный.

Блок управления LIN Master анализирует показания датчиков, пересланные от блока LIN Slave, и посылает телеграмму с указаниями изменить скорость вращения. Это третий вид телеграммы — управляющий.

По такому алгоритму и происходит обмен между блоками, сопряженными шиной LIN.

Реализация этого алгоритма начинается с того, что блок LIN Master с определенным циклом обращается к блокам LIN Slave, посылая заголовок телеграммы (рис. 7). Цикл обращения установлен программным обеспечением и может изменяться в зависимости от ситуации, режимов работы автомобиля и других факторов.

Рис. 7. Осциллограмма заголовка телеграммы

Обращение относится ко всему возможному оборудованию, если каких-либо устройств нет на шине LIN, а это зависит от количества опций, которое оплачено владельцем, то обмен с отсутствующими блоками не состоится. Иными словами, на свой запрос к некоторым возможным блокам LIN Slave останется без ответа, ибо эти блоки просто отсутствуют в данной модификации. Это обстоятельство не влияет на работу. Если данные блоки будут поставлены, алгоритм работы с ними восстановится, напомним, что их может быть до 16-ти на каждый блок управления LIN Master.

Теперь подробнее о самой реализации взаимодействия.

Как было сказано ранее, блок управления LIN Master посылает с разной периодичностью, зашитой в программном обеспечении, опросные телеграммы. Каждая телеграмма содержит заголовок (Header) и собственно текст, состоящий из переданных данных.

Заголовок состоит из четырех частей (рис. 7):

— пауза в синхронизации;

Опишем каждую из них.

Пауза в синхронизации (synch break)

Представляет собой не менее 13-ти битов, пересылаемых доминантным уровнем, что в вычислительной технике расценивается как передача не менее 13-ти «нулей». Блоки LIN Slave имеют возможность настроиться на прием телеграммы, ибо в тексте самой телеграммы не может быть подобной информации и столь долгая передача только доминантного уровня подсказывает блокам, что после этого поля последуют другие.

Окончание синхронизации (synch delimiter)

Эта часть передается рецессивным уровнем (около 12 В), что соответствует передаче «единицы» и сообщает блокам LIN Slave о том, что пауза закончилась и необходимо приготовиться к синхронизации.

Поле синхронизации (synch field)

Эта часть заголовка служит для непосредственной настройки блоков LIN Slave на работу с блоком управления LIN Master. Поле состоит из последовательности доминантных и рецессивных битов, то есть последовательности «нулей» и «единиц». Таким образом синхронизируется частота, на которой блоки LIN Slave должны работать по шине LIN, принять поле идентификатора и последующие за ним данные.

Читайте также  Футорка что это такое в автомобиле?

Это поле состоит из восьми бит. В первых 6-ти битах передаются адрес блока LIN Slave для его опознавания (идентификации) и количество полей для передачи данных, отведенных для ответа (от 0 до 8). Два оставшихся бита предназначены для передачи контрольной суммы. Контрольная сумма вычисляется согласно определенному алгоритму и необходима для того, чтобы избежать ошибок в передаче. При совпадении контрольной суммы оборудование считает что информация передана корректно.

Получая информацию о количестве полей для передачи данных (Datafields), блок LIN Slave передает данные о состоянии сопряженных с ним датчиков, например, о скорости вращения вентилятора. Каждое поле — это 10 бит информации, из них первый бит — доминирующий стартовый, далее передается байт (8 бит) информации и заканчивается поле стоповым рецессивным битом (рис. 8). Стартовый и стоповый биты служат для синхронизации при передаче данных.

Рис. 8. Осциллограмма ответа

В свою очередь, блок управления LIN Master принимает информацию, в нашем примере — это скорость вращения вентилятора. Если скорость вращения удовлетворяет ситуации и не требуется ее коррекция, то блок управления LIN Master через некоторое время (определяется ПО) снова пошлет запрос в виде телеграммы для контроля за работой данного блока LIN Slave.

Если необходимо изменить скорость вращения вентилятора, то блок управления LIN Master посылает телеграмму с нужной скоростью вращения, и блок LIN Slave, получив указание, изменяет скорость вентилятора (рис. 9).

Рис. 9. Регулировка скорости вращения вентилятора

Напомним, что опрос блоков LIN Slave осуществляется с частотой, заложенной в программном обеспечении, но при изменении ситуации эта частота может меняться. Факторов к изменению частоты обращения к блокам LIN Slave тем больше, чем лучше ПО и чем современнее бортовое оборудование автомобиля.

Комплектация современного автомобиля может быть разной, и если блок управления LIN Master имеющий полное ПО, посылает запрос несуществующему блоку LIN Slave, то заголовки телеграмм возвращаются к LIN Master без ответа (рис. 10). Это не мешает алгоритму работу шины LIN и при установке соответствующего блока LIN Slave незамедлительно начинается его опрос и контроль работы со стороны блока управления LIN Master.

Рис. 10. Осциллограммы с заголовками телеграмм без ответов

Алгоритм работы шины LIN постоянно находится под контролем блока управления LIN Master и потому защищен от несанкционированного внешнего доступа (от блоков, размещенных за наружной обшивкой автомобиля), что и позволяет размещать блоки LIN Slave, которые работают только на выполнение команд от LIN Master и не требуют передачи данных на внешних деталях машины. Вмешательство извне затруднено, поэтому, к примеру, блок управления открытием гаражных ворот может располагаться в переднем бампере.

Диагностика шины LIN и всех блоков, сопряженных с этой линией, осуществляется через диагностический разъем. При тестировании происходит имитация обмена между блоками, анализируются ответы от блоков LIN Slave и задающие команды от LIN Master.

1. Новые технологии обмена данными — LIN, MOST, BluetoothTM. Программа самообучения 286.

Автор: Михаил Митин (г. Москва)

Мнения читателей

Нет комментариев. Ваш комментарий будет первый.

Вы можете оставить свой комментарий, мнение или вопрос по приведенному выше материалу:

LIN — цифровая шина в автомобиле

LIN -шина, это однопроводная цифровая шина для управления по одному проводу группой разнообразных исполнительных устройств, широко применяемая в современных автомобилях. Например двигателями заслонок климата, корректорами фар, замками и стеклоподъемниками дверей и т.п. Конкретно у меня сейчас стоит задача заставить управлять шаговыми двигателями корректора фар. Шаговые двигатели управляются драйвером-контроллером AMIS-30621 Моя задача сделать контроллер, который бы умел контролировать и управлять шаговыми моторчиками корректора фар. А чтоб сделать контроллер, необходимо изучить сам протокол данных LIN и конкретно сам даташит драйвера.
Протокол LIN достаточно не сложный, не быстрый, но при этом надежный и в общем мне очень понравился. В даташитах все подробно описано, я лишь пробегусь вкратце. Если кратко, то цифровая посылка LIN контроллера состоит из этого:

Sync Break — передача данных всегда начинается с притягиванию к нулю шины не менее чем на 13 тактов. Увидев эту притяжку, все устройства на шине оживают, и понимают, что сейчас пойдет что то интересное и начинают ждать. А далее следует:
Sync Field — сигнал синхронизации. Все устройства на шине обязаны подстроится под этот сигнал и подстроить свои тактовые сигналы.
PID Field — служебный байт, который содержит адрес конкретного устройства на шине, последующую длину данных байт и два бита контроля ошибок
Data — передаваемые данные, до восьми байт
Checksum — контрольная сумма

Общее описание стало понятно, пора было собрать макетную плату контроллера шины.
За основу взят микроконтроллер ATTiny13 и транслятор-приемник шины LIN TJA1020 Регулятор положения сделан на обычном энкодере. Вот получилась такая схема:

Далее пошло изучение даташита контроллера шагового мотора. AMIS-30621 это контроллер последнего поколения, который включает в себя все, что можно. Он имеет ЦАП, контроль тока, контроль температуры, напряжения, режим разгона-торможения, настройку силы тока и еще кучу настраиваемых параметров. Достаточно ему подать команду, насколько нужно нашагать, остальное полностью он делает сам. Очень умный драйвер короче. Даташит немного замудреный, много неясностей было при прочтении, но в итоге удалось оживить этого монстра, читать с него данные и управлять им. Вот пример из анализатора:

А вот пример из кода:
Сначала нужно считать данные состояния, это обязательное условие из даташита:
void GetFullStatus (void)
<
// PREPARING FRAME
SyncLIN (); // Sync Break и Sync Field
DataTX(0b00111100); // Identifier
DataTX(0x80); // AppCMD
DataTX(0x81); // CMD
DataTX(0b11110000); // slave address
DataTX(0xff); // DATA
DataTX(0xff); // DATA
DataTX(0xff); // DATA
DataTX(0xff); // DATA
DataTX(0xff); // DATA
DataTX(0b00001101); // CHK байт контроля ошибок

// READING FRAME
SyncLIN (); // Sync Break и Sync Field
DataTX(0B01111101);

В ответ драйвер мотора посылает восемь байт своего состояния, после этого можно слать команду установки на нужную позицию — мотор оживает и делает нужное количество шагов:
SyncLIN ();// Sync Break и Sync Field
DataTX(0x3c); // Identifier
DataTX(0x80); // AppCMD
DataTX(0x8b); // CMD
DataTX(0xf0); // AD1[6:0] slave address 1 шагового мотора
DataTX(0x55); // DATA нужная позиция 1 мотора (16 бит, поэтому в два захода)
DataTX(0xff); // DATA нужная позиция 1 мотора
DataTX(0xNN); // DATA slave address 2-го шагового мотора
DataTX(0xNN); // DATA нужная позиция 2 мотора (16 бит, поэтому в два захода)
DataTX(0xNN); // DATA нужная позиция 2 мотора
DataTX(0xNN); // CHK
контрольная сумма

Это минимальный код, заставляющий двигаться шаговый мотор. В железе это вышло так:

Внизу: плата контроллера
Слева: программатор
Вверху: шаговый мотор и драйвер

Плата драйвера крупнее:

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

Что такое шина LIN

Шина LIN – это простая последовательная однопроводная шина для автомобильных применений и используется в тех случаях когда применение CAN шины – дорого. По шине LIN управляются различные приводы (корректоры фар, заслонки климатической системы, приводы центрального замка), а так же собирается информация с простых датчиков (датчики дождя, света, температуры).

Для изучения шины LIN Вы можете использовать наш адаптер CAN-Hacker 3.0 с дополнительной опцией LIN анализатора.
А так же интерфейс CAN-Hacker CH-P

Пример системы управления дверью с шиной LIN и без нее:

Еще пример, в автомобиле Porsche Macan 2015 г. все привода и датчики климатической системы подключены к шине LIN а сам блок климат контроля связан с автомобилем при помощи CAN шины.

Дешевизна LIN обусловлена тем что реализация протокола LIN полностью программная и строится на базе обычного UART (родственник RS232, COM порт). Так же LIN не требует применения точных времязадающих цепей – кварцевых резонаторов и генераторов. Поэтому можно применять дешевые микроконтроллеры.

Скорость передачи данных

Скорость передачи данных на шине LIN стандартная для устройств построенных на базе UART: 2400; 9600; 10400; 19200; 20000 Бод. Это немного но достаточно для передачи данных от датчиков и для управления медленными механизмами.

Читайте также  Как найти обрыв провода в автомобиле?

Электрическая реализация LIN

Электрически интерфейс LIN реализован так же просто. В каждом узле линия шины подтянута к шине питания +12V. Передача осуществляется опусканием уровня шины до уровня массы GND. Микроконтроллер подключается к шине LIN при помощи специальной микросхемы Трансивера, например TJA1021

Подключение LIN трансивера к микроконтроллеру

Архитектура сети LIN

Особенностью шины LIN является то, что в сети присутствует два вида узлов: Master и Slave, Master – ведущий, Slave – подчиненный.

Master может опрашивать Slave о его состоянии, будить его, отправлять ему команды. Обмен информации на шине LIN происходит в формате обмена пакетами, и на первый взгляд может показаться что механизм идентичен шине CAN, это не так. Объясняем почему:

Структура LIN пакета выглядит так:

Frame – Header – заголовок кадра, который отправляется в шину Мастером. Включает в себя ID кадра

Frame – Response – данные которые отправляет Slave в ответ на запрос Master -а.

Уловите разницу – в шине CAN все узлы передают и ID кадра и данные. В шине LIN – заголовок пакета это задача Мастер-узла.

Поле Frame-Header состоит из полей:

BREAK – Это сигнал шине о том что мастер сейчас будет говорить

Поле синхронизации – это просто байт = 0x55. При его передаче приемники подстраивают свою скорость.

PID – это поле защищенного идентификатора. В дальнейшем будем писать просто – идентификатор.

Идентификатор может принимать значения от 0 до 59 (0x3B в HEX) для пользовательских пакетов. Так же возможно использование специальных служебных пакетов с ID 0x3C, 0x3D, 0x3E и 0x3F. Защищенность идентификатора заключена в следующем:

В структуре байта ID мы видим биты собственно самого идентификатора с ID0 по ID5, а затем идут два контрольных бита P0 и P1, которые рассчитываются так:

P0 = ID0 ⊕ ID1 ⊕ ID2 ⊕ ID4
P1 = ¬ (ID1 ⊕ ID3 ⊕ ID4 ⊕ ID5)

ID = 0x00 PID =0x80

ID = 0x0C PID = 0x4C

Если в PID контрольные биты рассчитаны неверно то пакет не будет обработан принимающей стороной.

В случае если мы будем эмулировать работу какого либо узла Master, предварительно изучив отправляемые им данные при помощи LIN сниффера, то нам не придется задумываться о расчете контрольных битов ID, поскольку в пакетах которые мы видим сниффером все уже посчитано до нас.

После того как Slave принял Header мастера он отвечает полем Frame Response который состоит из байтов данных в количестве от 1 до 8 и байта контрольной суммы.

Контрольная сумма (CRC) считается как инвертированная сумма всех байтов данных с переносом либо сумма всех байтов данных + значение защищенного ID . В первом случае CRC называется классической, во втором – расширенной. Вариант подсчета контрольной суммы определяется версией стандарта шины LIN. В версиях 1.xx применяется классический алгоритм, в версиях 2.xx применяется расширенный.

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

На этой схеме мы видим как один Мастер общается с двумя узлами Slave. Обратите внимание на третий кадр, в нем заголовок Header и тело пакета Response передает Мастер – это важный момент, такие кадры используются для диагностики и конфигурирования Slave узлов.

На осциллограмме обмен одного Master и одного Slave выглядит так:

Здесь мы видим запрос мастера состоящий из полей Break – S – затем следует ответ узла Slave состоящий из четырех байт и контрольной суммы равной 0x3F.

Если мы отключим узел Slave от шины LIN, то увидим уже такую осциллограмму:

Так же в протоколе шины LIN предусмотрены и специальные служебные пакеты служащие для диагностики шины, пробуждения устройств и других функций. В этом случае Master может передавать как Frame Header так и Frame Response последовательно, тогда пакет Master -а может иметь такой вид:

ID=0x3C DATA : FF FF FF FF FF FF FF FF

Обмен диагностическими сообщениями на шине LIN выглядит так :

При помощи длинных пакетов Master может конфигурировать и программировать узлы Slave. Если для программирования или конфигурирования узла LIN необходимо более 8 байт, то поток данных сегментируется и пересылается частями. Механика передачи данных определяется специальным транспортным протоколом работающим поверх физики шины LIN, о нем мы напишем в следующих статьях.

Видео пример работы с шиной LIN и адаптером CAN-Hacker 3.2

Параметрический поиск по компонентам

  • 21.02.2018 10:40Приемопередатчики интерфейса CAN с единым напряжением питания 3.3 В и защитой от перегрузок на шине до ±36 В
    Устройства также отличаются высокой пропускной способностью, функцией регулировки скорости нарастания выходного сигнала и малопотребляющим режимом ожидания
    Производитель: Exar Группа компонентов: CAN

  • 21.02.2018 10:22Миниатюрный модуль зарядного устройства малой мощности для работы в системах накопления энергии из окружающей среды
    Устройство, выполненное в виде готового решения с минимальным числом внешних компонентов, отличается низкой стоимостью, высокой эффективностью и чрезвычайно компактными размерами
    Производитель: Silvertel Группа компонентов: PoE-модули питания

  • 21.02.2018 10:08Низковольтный модуль драйвера светодиодов Ag201 с программируемой величиной выходного тока
    Благодаря возможности пользовательской установки максимального тока нагрузки, драйвер способен управлять различными типами светодиодов
    Производитель: Silvertel Группа компонентов: Контроллеры Дисплеев

  • 21.02.2018 09:53Коммутаторы Ethernet BCM56980 серий StrataXGS® Tomahawk® 3 с пропускной способностью 12.8 Tбит/с
    Семейство StrataXGS Tomahawk 3 с поддержкой до 32 портов стандарта 400GbE может использоваться для построения высокомасштабируемых распределительных, объединительных и масштабирующих коммутаторов
    Производитель: Broadcom Limited Группа компонентов: Ethernet

  • 21.02.2018 09:44Компактный DC/DC преобразователь в исполнении µModule® с током нагрузки 20 А в 1-канальной и 10 А на канал в 2-канальной конфигурации,
    ИС предназначена для каскадов питания ПЛИС, графических процессоров, специализированных микросхем и системного энергообеспечения
    Производитель: Analog Devices Группа компонентов: Понижающие преобразователи напряжения

  • 28.11.2017 06:05Скидки от 50% на ПО для проектирования печатных плат от Mentor Graphics
    ЗАО «Нанософт», официальный дистрибьютор компании Mentor Graphics, объявляет о старте специального предложения на приобретение программных решений для разработки электроники – PADS
    Производитель: Группа компонентов:
  • 24.09.2016 08:15Компания АВИТОН — официальный представитель Regatron (Швейцария)
    Компания Regatron осуществляет разработку и производство источников питания
    Производитель: Группа компонентов: Источники питания
  • 15.09.2016 08:42Arrow Electronics проводит в жизнь технологии краудфандинга с Indiegogo
    Их деятельность направлена на оптимизацию цепочки краудфандинг — продукт и должна ускорить темпы внедрения инноваций для технологии интернета вещей (IoT)
    Производитель: Arrow Electronics Russia Группа компонентов:
  • 08.08.2016 08:41«Новости Электроники + Светотехника» №01/2016: LED-освещение для промышленных объектов

    Производитель: Группа компонентов:

  • 22.07.2016 08:31Прошивка Serial Extender упрощает работу с модулями MBee
    Два радиомодуля MBee-868 с прошивкой Serial Extender позволяют заменить проводное последовательное соединение между двумя любыми устройствами с интерфейсом UART
    Производитель: Группа компонентов: Модули

  • 29.07.2015 10:24Компания Altera присоединилась с проекту OPNFV с целью привнести преимущества ПЛИС FPGA в технологию виртуализации сетевых функций
    Решения на базе ПЛИС FPGA и Систем-на-Кристалле уже ускоряют работу серверов дата-центров в области предоставления поисковых сервисов и свёрточных нейронных сетей
    Производитель: Altera Группа компонентов: FPGA
  • 29.07.2015 10:14Пример разработки хранилища данных на базе ПЛИС FPGA удваивает срок службы NAND FLASH памяти
    Архитектура ПЛИС FPGA со встроенным процессорным ядром предлагает инновационный метод создания устройств хранения данных для облачных приложений и высокопроизводительных вычислительных систем
    Производитель: Altera Группа компонентов: SoC FPGA
  • 08.07.2015 13:41Компания Pentair предлагает новые трехмерные чертежи и услуги для конструкторов на портале Traceparts
    Чертежи Schroff на портале Traceparts
    Производитель: Schroff Группа компонентов:
  • 13.04.2015 14:37Cypress Semiconductor: CySmart™ — приложения для устройств Bluetooth® с низким энергопотрбелением (BLE)

    Производитель: Cypress Группа компонентов: Bluetooth

  • 28.01.2015 09:43Audi выбрала Системы-на-Кристалле компании Altera для применения в автомобилях с функцией «Автопилот»
    Altera и TTTech Deliver Industry, лидер в области разработки продвинутых систем помощи водителю (ADAS), приступили к разработке систем управления автопилотируемых автомобилей для компании Audi
    Производитель: Altera Группа компонентов: Программируемая Логика

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: