что такое lin шина в автомобиле
Что такое LIN шина и как я восстанавливал стекло подъемники.
Для начала предыстория.
При покупке машины мне сказали что есть проблема со стекло подъемниками, а точнее с водительским и пультом управления на двери водителя. А по весне в одно утро выйдя к машине я обнаружил наполовину открытое задние правое стекло.
Изучив кучу статей как и кто ремонтировал стекло подъемники был составлен план действий.
1- Проверка всех разъемов в стойках
2- Проверка жгутов проводов в дверях
3- По очередное отключение исполнительных блоков для выявления неисправного.
4- Визуальный осмотр исполнительных блоков
5- Проверка шины управления LIN
Так выглядит сигнал в спокойном состояние при подаче команды добавляется еще один БИТ и его добавление выглядит как всплеск амплитуды. Проверять сигнал я решил на блоке кнопок водителя так как все вело к нему. Проверив предварительно что шина не коратит на массу я подключил осциллограф к тонкому красному проводу с синей полосой.
И увиденное меня удивило сигнал был сильно искажен дополнительными помехами но откуда они взялись? Отключаю по одному блоки управления на дверях нет изменения отключаю по одному блоки кнопок и после отключения водительского блока сигнал выравнялся.
Так истина где то рядом). разрезаю провод LIN блика кнопок водителя и подсоединяю его обратно. Смотрю что твориться по сигналу чисто с блока и понимаю что искажения идут с него.Но при этом при нажатие на клавиши в сигнале присутствуют изменения.
Причина ясна что то в блоке кнопок водителя работает не так. Для полной уверенности разобрал его и осмотрел сфоткал все элементы (микросхемы). И обнаружил что на выходе блока стоит преобразователь сигнала и судя по всему именно он то и бздит.
Стоимость нового блока за номером 3746100XK80XA89 от 4800 до 6300
Б.У. 900 р
Заказал с разбора не заюзаный.
После установки все заработало.
Одновременно с работой над стекло подъемниками переделал подключение авто сигнализации — убрал не нужные сопли.и пере подключил концевики дверей через диоды для развязки.
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 протокол разработан для создания дешевых локальных сетей обмена данными на коротких расстояниях. Он служит для передачи входных воздействий, состояний переключателей на панелях управления, а также ответных действий различных устройств, соединенных в одну систему через 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:
Система передачи в шине 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). Имеются следующие значения:
Из 64 возможных сообщений 32 могут содержать только два байта данных, 16 — четыре байта данных, и остальные 16 — восемь байтов данных.
Последние два разряда в поле идентификации содержат контрольные суммы, защищающие идентификатор от ошибок при передаче и неправильного распределения сообщений.
Поле данных
После передачи ведущим устройством заголовка начинается передача фактических данных. Ведомые устройства по переданному идентификатору определяют, являются ли они адресатами и, при необходимости, отправляют ответ в поле данных.
В один фрейм можно включить несколько сигналов. Здесь у каждого сигнала есть один генератор, т.е. он всегда описывается одним и тем же узлом сети. Во время работы не разрешается сопоставлять сигналу другой генератор, что возможно в других сетях с управлением по времени.
Данные в ответе ведомого устройства защищаются контрольной суммой (CS).
Описательный файл LIN
Конфигурация шины LIN, т.е. спецификация пользователей сети, сигналов и фреймов, выполняется в описательном файле LIN. Спецификация LIN для этой цели имеет подходящий язык конфигурации.
Из описательного файла LIN автоматически генерируется набор кодов на С и файлов заголовков; эти коды и файлы используются для реализации функций ведущего и ведомых устройств в ЭБУ, расположенных на шине. Таким образом, описательный файл LIN служит для конфигурации всей сети LIN. Это общий интерфейс между автопроизводителем и поставщиками ведущих и ведомых устройств.
Составление графика отправки сообщений
Таблица-график в описательном файле LIN определяет порядок и время отправки сообщений. Часто запрашиваемая информация отправляется время от времени. Когда таблица проработана, ведущее устройство снова начинает с первого сообщения. Последовательность обработки можно изменить в зависимости от режима работы (например, активна/неактивна диагностика, включено/ выключено зажигание).
Таким образом, известен фрейм передачи каждого сообщения. Детерминированные характеристики гарантируются тем фактом, что все передачи инициируются ведущим Устройством в случае управления доступом по принципу «ведущий-ведомый».
Управление сетью LIN
Для минимизации тока замкнутой цепи узлы сети LIN можно переводить в спящий режим. Это можно сделать двумя способами. Ведущее устройство передает команду «перейти в спящий режим» зарезервированным идентификатором 60, либо ведомые устройства переходят в спящий режим автоматически, если в течение относительно длительного времени (4 секунды) не было передачи данных по шине. И ведущее, и ведомые устройства могут снова активировать сеть. Для этого необходимо передать сигнал активации. Он состоит из байта данных с номером 128, обозначающим содержание. После перерыва времени бита 4-64 (разграничитель активации) все узлы должны быть инициализированы и способны ответить ведущему устройству.
Lin шина Vag. Разбираем протокол кнопок руля.
Несколько месяцев назад K-Ian прикупил себе новый двухспиценый руль на шкоду. Поставил, замутил штатный подогрев на рапиде. Но пару кнопок не работало на новом руле. Кнопки достаточно важные, без них невозможно было нормально пользоваться бортовым компьютером на приборке. Связанно это с тем, что на новом поколении шкод переработали меню, и команды отсылаемые кнопками руля воспринимаются только этим поколением. Предыдущие поколения требовали других команд. Поскольку кнопки подключаются по Lin шине, решено было сделать Lin адаптер решающий вопрос взаимопонимания. Началась подготовка. Мне нужно было для начала научиться работать с Lin шиной. После изучения LIN Specification Package и сравнения того что на бумаге с тем что в реальности выдает БЦМ рапида (PQ26) стало более менее понятно что делать дальше. Главное алгоритм подсчета контрольной суммы пакета инженеры ваг менять не стали)) Собрал небольшой стенд из приборки и БЦМ.
Vag местами отошел от протокола, но только в софтровой части.
Диаграмма протокола из спецификации
Диаграмма с осциллографа:
желтый луч — Lin сигнал
фиолетовый — период передачи ID
зеленый — период передачи DATA
Далее встал вопрос чем слушать лин шину. Нужен был сниффер лин шины. Существуют готовые решения от конторы can hacker, но это не мой случай) не увидел для себя смысла покупать готовое решение. Терминал в данном случае был слишком не удобен, решил в качестве сниффера использовать программу CanHacker 2.1 с описанным процентов на 80% протоколом (LAWICEL) находящимся в открытом доступе. Под эту программу я ранее делал свой кан хакер, которым слушал can шину на туареге чтобы подружить его и сиденья с вентиляцией от кайена. Оставалось дело за малым)) — сделать плату и написать программу. На выходе получился вот такой франкенштейн)).
В планах объединить кан хакер и лин хакер в одно устройство, развести нормальную плату ну и сунуть в корпус естественно. После отработки программы микроконтроллера совместно с БЦМ, удалось получить отличный результат. Данные побежали, посидев ещё над кодом убрал ложняки и добился отличной стабильности.
Получился сниффер Lin шины умеющий слушать, писать лог и устанавливать фильтры на ID и данные. В общем то мои потребности относительно слушалки Lin на 90% были удовлетворены. Оставшиеся 10% пойдут на отправку сообщений, но пока у меня такой потребности не возникало. Как понадобится допишу эту часть.
Имея сниффер был отслушан родной руль и новый руль. Были найдены отличия. Стало понятно что нужно сделать не только в общем понимании, а уже вполне конкретно.
Началось самое интересное) нужно было научиться работать с данными, пропускать их через плату с минимальной задержкой, научиться их частично подменивать и блокировать полностью.
Собрал для себя новый стенд. Гейт от MQB платформы и кнопки оттуда же.
Запустив, сразу прошелся по can шинам ради интереса.
Окончательно определившись по железу сделал первый прототип платы.
Именно на этом пучке проводов и был обкатан основной код.
Далее привожу скриншоты с осциллографа и данные из сниaфера.
Фильтр настроен на ID 33.
Данные проходят насквозь без модификации. Задержка обусловлена работой адаптера. Время задержки видно из осциллограммы.
Желтый — данные на входе Lin адаптера
Бирюзовый — данные на выходе Lin адаптера
Данные модифицируются.
Желтый — данные на входе Lin адаптера
Бирюзовый — данные на выходе Lin адаптера
Данные блокируются.
Желтый — данные на входе Lin адаптера
Бирюзовый — данные на выходе Lin адаптера
Проходит Break и байт синхронизации. Далее пакет блокируется. Фактически устройство которому предназначается пакет после получения байта синхронизации встает на прием, но ненужных с нашей точки зрения данных не видит))
Научившись выполнять все эти манипуляции удалось на столе добиться требуемого результата. Приборка начала реагировать на кнопки так, как было надо мне, а не как задумывалось на заводе))
Более подробно о первой установке написанно вот здесь:Дружим новый руль Skoda 2021 с старой приборкой Rapid / Octavia
По завершении испытаний переразвели плату, так же был организован переезд на другой процессор.
Получилось довольно компактно. Плата 30х40 мм с встроенным блоком питания на борту устанавливается последовательно с кнопками и отлично себя чувствует внутри руля.
После установки завел себе файл в котором нарисовал все отслушанные рули и расписал для себя все обозначения кнопок.
На этом пока всё. В качестве тизера к следующей записи:
Can Lin Шина, что это такое
Часто в характеристиках авто сигнализации можно увидеть фразу Can Lin шина. На пальцах разбираем зачем это нам нужно.
CAN и LIN шина- что это такое.
Во – первых? что такое шина.
Шина – в данном случае, это не часть колеса. Назовем её просто автомобильный интернет.
Но интернет для своих устройств.
До 1991 года в автомобилях не было подобной сети. От каждого электрического устройства к кнопке или рычагу управления тянулся свой кабель. А таких устройств было больше сотни.
Каждая лампочка, поворотник, подсветка салона, габариты ближний свет и дальний свет – имели свой кабель. Разнообразные датчики двигателя, температуры, индикация открытых дверей и капота, лючка бензобака. От каждого такого электронного устройства тянулся свой кабель. Всё это привело к тому, что электрика автомобиля стала похожа на паутину гигантского паука, а длина кабелей стала исчисляться Километрами.
Чем больше электронных устройств стало появляться в автомобиле (и не только), тем более очевиден становился вопрос организации всей этой паутины. Для упрощения работы всех систем и возникли CAN Шина, а так же Lin Шина. Последняя используется в- основном на отечественных автомобилях.
Конечно, электрифицированные элементы приобрели цифровой голос, а не аналоговый, как раньше, и стало возможным соединять эти устройства как бы гирляндой (Lin шина). Каждый элемент в эту сеть телеграфировал о своем статусе и принимал команды.
Благодаря этому, стало возможно разместить в автомобиле компьютер, который бы собирал, анализировал данные и с него же происходило бы всё управление. Ну и конечно же автопроизводители сэкономили на количестве кабелей.
Не будем вдаваться в сложные технические детали как работает этот автомобильный интернет.
Поговорим об авто сигнализации.
Если в автомобиле есть Can или Lin Шина, мы можем подключиться к интернету автомобиля и считать, например, такие данные
— какая из дверей открыта
— заведен ли двигатель
— повернут ли ключ зажигания
— какое напряжение в аккумуляторе
— сработал ли датчик удара или крена
И многое другое. В- общем мы можем считать показатели всех устройств и отдать им команду. Например, чтобы замигали фары, включилась сирена, перестал работать двигатель.
То есть наличие такой шины в автомобиле дает нам в первую очередь разнообразные комфортные сервисы и простое дистанционное управление автомобилем. Мы можем посмотреть, закрыты ли двери, получить от автомобиля информацию о том, что кто –то толкает автомобиль, заблокировать работу какого либо агрегата.
В дополнении к этому, мы можем скрыто установить авто сигнализацию, почти в любую точку гирлянды, так что у угонщика уйдет очень много времени на поиск и обезвреживание заветной коробочки, а это самое важное. Ведь угоны должны осуществляться быстро.
Что же делать если в автомобиле нет такой шины? Придется ставить дополнительные датчики, тянуть больше кабелей. Охранная система уже будет сложнее и состоять из бОльшего количества устройств и, как правило, и, скорее всего, не будет иметь самого продвинутого функционала.
Большое количество современных автомобилей оборудовано подобными шинами. Однако каждый производитель часто привносит в систему что-то своё.
Представьте себе. Мы подключились к этому автомобильному интернету. Что дальше?
Теперь у нас есть уши и голос, однако мы находимся на площади европейского города. Да ещё и иностранцы говорят на разных языках, и злыдни, никак не хотят нас учить своему языку, делая из этого строжайший секрет (например, Форд Мерседесу не друг, а конкурент). Вот и приходится по – одному «брать языка», и для каждой марки и каждой модели выпытывать свой язык общения.
У каждого производителя охранных систем есть свой набор марок и моделей, для которых найден общий язык.
Этот список постоянно расширяется и дополняется.
Резюмируя выше сказанное- наличие в Вашем автомобиле такой шины существенно облегчает установку авто сигнализации и как следствие удешевляет стоимость системы и установки.
Удачи Вам на дорогах и пусть Ваш автомобиль будет под надежной защитой.