Как читать can шину

Не секрет, что в современном автомобиле управление многими исполнительными устройствами, а также обмен данных между различными ЭБУ (а их в автомобиле может быть довольно много, минимум по одному на каждую систему) осуществляется по CAN шине. Не буду в данной статье углубляться в теорию построения CAN шины и обмена данными в ней, ограничимся только тем, что мы CAN шину используем как транспорт для данных. Кому нужна более детальная информация по CAN шине, без труда найдет ее в любом поисковике.

Итак, какими исполнительными устройствами можно управлять по CAN? Список на самом деле может быть огромен, и может зависеть от конкретной марки и модели автомобиля. Для примера, по CAN может осуществляться снятие, постановка на охрану, складывание зеркал, управление стеклоподъемниками, срабатывание центрального замка, включение фар и т.д. Кстати, многие автомобильные девайсы подключаются к CAN шине, и путем передачи в шину определенных данных осуществлять какие-то действия. Например, по такому принципу работают доводчики стекол. Такой доводчик ждет появления в CAN шине данных на постановку на охрану, и при получении этих данных осуществляет передачу данных в CAN шину, которые инициируют закрытие стекол. Как правило, такие доводчики вставляются в OBD-2 разъем автомобиля, в котором имеется выход CAN шины. Тут следует сказать, что на автомобиле может быть несколько CAN шин (высокоскоростная, низкоскоростная), которые разделены между собой.
Сразу возникает вопрос, есть ли в машине CAN шина. Определить это можно, посмотрев в OBD2 разъем наличие пинов 6 и 14.

Что представляет собой CAN пакет с данными? Грубо говоря он представляет собой CAN ID (идентификатор CAN, может быть 11-ти или 29-ти битным) и данные DATA (в одном CAN пакете возможно передача до 8 байт). CAN ID — это фактически поле адресата, т.е. кому адресуются данные DATA. Несколько CAN пакетов могут образовывать одно сообщение (чтобы преодолеть лимит на передачу более 8-ми байт).
Каждому исполнительному устройству или датчику автопроизводитель назначает уникальный CANID (у разных производителей они будут разными), благодаря чему можно адресовать посылку данных конкретному ЭБУ или устройству, или получив CAN пакет ЭБУ может определить ему ли он предназначался, и если ему, то что он должен с ним сделать (например, в нашем примере с доводчиком — поднять стекло).

До этого была теория. Теперь я расскажу, как посмотреть, что творится в CAN шине автомобиля и что для этого нужно. Для этого необходим специальный адаптер и программа, которая будет отображать состояние CAN шины. Вообще, таких программ и адаптеров в природе существует много, но самым популярным является CANHacker (такой себе стандарт «де-факто»), поэтому про него я и расскажу. В качестве адаптера я буду использовать CHIPSOFT J2534 Lite адаптер, который может работать в режиме J2534 устройства, K-Line адаптера и в необходимом нам режиме CANHacker.

Как читать can шину

Сама программа CANHacker бесплатна и может быть без труда найдена на просторах интернета. Обращаю внимание на то, что по состоянию на март 2016, данная программа не может работать в Windows 10. Что-то Microsoft в своей операционке так улучшило, что в ней перестали работать все программы написанные ранее на Visual Basic c использованием COM порта.

Первая статья с «теорией». В этой расскажу об основных компонентах, которые понадобятся и расскажу немного о работе с CAN-шиной, но пока без конечной реализации.

Предисловие
Никакой необходимости в том, что я сделал у меня не было. Мне просто было интересно попробовать.

Видел на Drive несколько статей про «ботовые компьютеры» на базе Arduino, а так как сам недавно начал изучить микроконтроллеры на примере данной «платформы», мне стало интересно попробовать сделать нечто подобное самому.

Очень коротко о главном
Нужно получать информацию от узлов автомобиля и выводить её на штатный LCD-дисплей (на котором информация с магнитолы отображается). Основные компоненты это Arduino Nano и CAN Bus Модуль MCP2515.

Как читать can шину

Как читать can шину

В комментариях к первой части, у меня с Red-ICE возникло некое недопонимание, возможно больше с моей стороны, поэтому я считаю нужным пояснить что же расположенно на плате этого модуля, а точнее что такое MCP2515 и TJA1050 и для чего они.

Стоит упомянуть сетевую модель OSI (open systems interconnection basic reference model — базовая эталонная модель взаимодействия открытых систем), так как CAN — это стандарт промышленной сети и он соответствует этой модели. Если коротко и о главном, то модель OSI описывает уровни взаимодействия, что и на каком уровне должно происходить. Если мы говорим о CAN-шине, то это канальный и физический уровень.

Канальный уровень предназначен для обеспечения взаимодействия сетей на физическом уровне. Полученные с физического уровня данные, представленные в битах, устройство упаковывает в кадры (о них будет ниже). Т. е. устройство, которое работает на этом уровне фактически не взаимодействует с сигналами, а организует это взаимодействие (как если бы Вашему начальнику нужны были какие-либо документы, но сам бы он не пошёл, а послал Вас, рассказав где и у кого их забрать). Так же это устройство получает битовые последовательности и отправляет их. Этим и занимается MCP2515.

Физический уровень — это нижний уровень модели OSI, который определяет метод передачи данных, представленных в двоичном виде, от одного устройства к другому. Устройства, которые работают на этом уровне, осуществляют передачу электрических или оптических сигналов в кабель или в радиоэфир и, соответственно, их приём и преобразование в биты данных. Этим занимается TJA1050. Вот одна строчка из datasheet к TJA1050 «The TJA1050 is the interface between the Controller Area Network (CAN) protocol controller and the physical bus».

Читайте также: Шина для большого пальца ноги при переломе

С этим я думаю всё более-менее понятно.

Про подключение CAN Bus Модуль MCP2515 к Arduino Nano
Модуль подключается к Arduino по SPI (Serial Peripheral Interface, SPI bus — последовательный периферийный интерфейс, шина SPI). В SPI используются четыре цифровых сигнала:
MOSI — выход ведущего, вход ведомого (Master Out Slave In). Служит для передачи данных от ведущего устройства ведомому.
MISO — вход ведущего, выход ведомого (Master In Slave Out). Служит для передачи данных от ведомого устройства ведущему.
SCLK — последовательный тактовый сигнал (Serial Clock). Служит для передачи тактового сигнала для ведомых устройств.
CS или SS — выбор микросхемы, выбор ведомого (Chip Select, Slave Select).
В Arduino Nano аппаратно установленные следующие цифровые выводы для подключения SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK).
На изображении модуля (выше) видно, что контакты J4 имеют немного другую маркировку, но это не меняет из назначения.

Подключаем следующим образом (имя на модуле — номер вывода на Arduino):
SCK — 13
SI — 11
SO — 12
А вот вывод CS (он же SS) устанавливается программно в скетче. Почему так?

Как читать can шину

Потому что к шине SPI можно подключить несколько устройств Slave. И если сигналы SCK, MOSI, MISO являются «общими» для всех устройств Slave, то SS должен соответствовать своему устройству (отсюда и название Slave Select), т. е. Master подключается к каждому Slave отдельным проводом SS сигнала.
VCC и GND — питание (5 В) и земля, соответственно. Причём имеет смысл чтобы Arduino и модуль были на земле OBD разъёма.
INT на модуле не нужен, если не планируется работать с прерыванием. Я пока не планирую, поэтому я его не использовал.
К CAN-шине модуль подключается в соответсвии с маркировкой L (LOW) и H (HIGH) (J2 и J3 на модуле) к соответствующим контактам на разъёме OBD-II.

Ещё немного про CAN-шину
CAN (Controller Area Network — сеть контроллеров) — стандарт промышленной сети, ориентированный прежде всего на объединение в единую сеть различных исполнительных устройств и датчиков. Режим передачи — последовательный, широковещательный, пакетный… Передача ведётся кадрами, которые принимаются всеми узлами сети.
Это значит, что моё устройство будет получать все сообщения (кадры), которые «гуляют» по шине, а так же сможет отправлять сообщения, которе будет получать адресат, т.е. LCD-дисплей.
Кадры имеют определённый «формат» — последовательность битов, условно разделенных на группы по «смыслу». Подробно я не буду рассказывать, потому что для моей задачи это не нужно, ну и потому что я не разбирался с этим до конца. Кому интересно, информации полно.
Всего есть четыре вида кадров, но меня интересует только кадр данных, так как этот кадр передаёт «полезную» информацию.

Что нужно знать про кадр данных (в рамках моей задачи)
Как я написал выше, режим передачи в CAN-шине широковещательный. Это означает, что все устройства на шине получают сообщения от других устройств. Чтобы фильтровать сообщения и выбирать только нужные применяется идентификатор сообщения и маска. Идентификатор сообщения — это 11 бит в кадре (в расширенном 29, но у нас будет 11). Чтобы выбрать нужные сообщения, устройство указывает драйверу CAN-шины (через который оно подключено), последовательность бит идентификатора и последовательность бит маски и драйвер получает только «нужные» сообщения. Подробно описывать не буду, но те кто знаком с понятием IP-адреса и маски подсети поймут, принцип такой же.
Резюмируя: чтобы дисплей получил и отобразил сообщение, мы должны знать какой идентификатор (для отправки маску знать не нужна) указать в кадре.

Выясняем нужный(е) нам идентификатор(ы)
Первый способ (им я проверил правильность второго) — это подключиться к CAN-шине и «читать» сообщения, а потом заняться их расшифровкой. Долго и сложно.
Второй способ, и самый очевидный и простой — искать в интернете. И оно там есть, потому что нашлись те, кто воспользовался первым способом.
Тут www.madox.net/blog/projects/mazda-can-bus/ есть немножко информации в самой статье, но самое полезное в комментариях к статье. Вот тут docs.google.com/spreadshe…eieBFiGY/edit?usp=sharing более полный и подробный перечень того что «гуляет» по MS-CAN. Там есть вся информация, которая нам нужна, чтобы отправить «правильное» сообщение для LCD-дисплея.
Посмотрев перечень сообщений MS-CAN мы увидим, что для дисплея определено 3 идентификатора. 0x28F нам не сильно сейчас интересен, а вот 0x290 и 0x291 нужно объяснить отдельно.
LCD-дисплей может отобразить 12 символов. А вот кадр данных может передавать только 8 байт данных (каждый ASCII символ будет занимать 1 байт), т. е. мы сможет передать дисплею только 7 символов. Почему 7? Потому что первый байт в сообщениях с идентификаторами 0x290 и 0x0291 занят каким-то служебным значением, которое менять нельзя. И так, получается, чтобы заполнить 12 символьный экран (а пробел, ну или пустой символ, это тоже символ) нужно отправить 2 сообщения: в первом указываем первые 7 символов, а во втором 5 оставшихся (тут я нагло вру, читай правду в конце). Как это выглядит, я покажу ниже.

Читайте также: Что такое последовательная шина can

Ближе к практике
Так как CAN-шина она везде CAN-шина, то имея два Arduino (Nano и Uno) и два CAN Bus модуля я соединил оба Arduino и начал писать скетч. А точнее два, для отправки и получения сообщений. Как я писал выше, оба CAN Bus модуля можно было подключить к одному Arduino, но я сделал отправку и чтения на разных, а ниже покажу для чего.

Как читать can шину

Программировал я в стандартном Arduino IDE. Для работы с MCP2515 нужна библиотека, но правильная. Что значит правильная? Есть «официальная» библиотека Seeed-Studio/CAN_BUS_Shield, однако она не подойдёт, т. к. в ней поддерживается только работа на 16 МГц, а у меня плата с кварцевым генератором 8МГц. А правильной библиотекой будет эта (эту, крайне полезную информацию, я прочитал в статье у Red-ICE . Я думаю это сэкономило мне значительно времени).

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

Сделав «черновые» скетчи и залив их на Arduino, я взял ту, которая читает с CAN-шины, взял переходник для OBD-II (который я упомянул в первой части) и пошёл в автомобиль проверять.
Так как ноутбука у меня нет, я подключал Arduino к смартфону. Вот так выглядит «это».

Появление цифровых шин в автомобилях произошло позднее, чем в них начали широко внедряться электронные блоки. В то время цифровой «выход» им был нужен только для «общения» с диагностическим оборудованием – для этого хватало низкоскоростных последовательных интерфейсов наподобие ISO 9141-2 (K-Line). Однако кажущееся усложнение бортовой электроники с переходом на CAN-архитектуру стало ее упрощением.

Как читать can шину

Действительно, зачем иметь отдельный датчик скорости, если блок АБС уже имеет информацию о скорости вращения каждого колеса? Достаточно передавать эту информацию на приборную панель и в блок управления двигателем. Для систем безопасности это ещё важнее: так, контроллер подушек безопасности уже становится способен самостоятельно заглушить мотор при столкновении, послав соответствующую команду на ЭБУ двигателя, и обесточить максимум бортовых цепей, передав команду на блок управления питанием. Раньше же приходилось для безопасности применять не надежные меры вроде инерционных выключателей и пиропатронов на клемме аккумулятора (владельцы BMW с его «глюками» уже хорошо знакомы).

Однако на старых принципах реализовать полноценное «общение» блоков управления было невозможно. На порядок выросли объем данных и их важность, то есть потребовалась шина, которая не только способна работать с высокой скоростью и защищена от помех, но и обеспечивает минимальные задержки при передаче. Для движущейся на высокой скорости машины даже миллисекунды уже могут играть критичную роль. Решение, удовлетворяющее таким запросам, уже существовало в промышленности – речь идет о CAN BUS (Controller Area Network).

Видео:CAN шина👏 Как это работаетСкачать

CAN шина👏 Как это работает

Суть CAN-шины

Цифровая CAN-шина – это не конкретный физический протокол. Принцип работы CAN-шины, разработанный Bosch еще в восьмидесятых годах, позволяет реализовать ее с любым типом передачи – хоть по проводам, хоть по оптоволокну, хоть по радиоканалу. КАН-шина работает с аппаратной поддержкой приоритетов блоков и возможностью «более важному» перебивать передачу «менее важного».

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

Представьте себе класс в начале урока. Ученики (контроллеры низкого приоритета) спокойно переговариваются между собой. Но, стоит учителю (контроллеру высокого приоритета) громко дать команду «Тишина в классе!», перекрывая шум в классе (доминантный бит подавил рецессивный), как передача данных между контроллерами-учениками прекращается. В отличие от школьного класса, в CAN-шине это правило работает на постоянной основе.

Для чего это нужно? Чтобы важные данные были переданы с минимумом задержек даже ценой того, что маловажные данные не будут переданы на шину (это отличает CAN шину от знакомого всем по компьютерам Ethernet). В случае аварии возможность ЭБУ впрыска получить информацию об этом от контроллера SRS несоизмеримо важнее, чем приборной панели получить очередной пакет данных о скорости движения.

В современных автомобилях уже стало нормой физическое разграничение низкого и высокого приоритетов. В них используются две и даже более физические шины низкой и высокой скорости – обычно это «моторная» CAN-шина и «кузовная», потоки данных между ними не пересекаются. К всем сразу подключен только контроллер CAN-шины, который дает возможность диагностическому сканеру «общаться» со всеми блоками через один разъем.

Например, техническая документация Volkswagen определяет три типа применяемых CAN-шин:

  • «Быстрая» шина, работающая на скорости 500 килобит в секунду, объединяет блоки управления двигателем, ABS, SRS и трансмиссией.
  • «Медленная» функционирует на скорости 100 кбит/с и объединяет блоки системы «Комфорт» (центральный замок, стеклоподъемники и так далее).
  • Третья работает на той же скорости, но передает информацию только между навигацией, встроенным телефоном и так далее. На старых машинах (например, Golf IV) информационная шина и шина «комфорт» были объединены физически.

Читайте также: Высота шины р15 185 65

Интересный факт: на Renault Logan второго поколения и его «соплатформенниках» также физически две шины, но вторая соединяет исключительно мультимедийную систему с CAN-контроллером, на второй одновременно присутствуют и ЭБУ двигателя, и контроллер ABS, и подушки безопасности, и ЦЭКБС.

Физически же автомобили с CAN-шиной используют ее в виде витой дифференциальной пары: в ней оба провода служат для передачи единственного сигнала, который определяется как разница напряжений на обоих проводах. Это нужно для простой и надежной помехозащиты. Неэкранированный провод работает, как антенна, то есть источник радиопомех способен навести в нем электродвижущую силу, достаточную для того, чтобы помеха воспринялась контроллерами как реально переданный бит информации.

Но в витой паре на обоих проводах значение ЭДС помехи будет одинаковым, так что разница напряжений останется неизменной. Поэтому, чтобы найти CAN-шину в автомобиле, ищите витую пару проводов – главное не перепутать ее с проводкой датчиков ABS, которые так же для защиты от помех прокладываются внутри машины витой парой.

Диагностический разъем CAN-шины не стали придумывать заново: провода вывели на свободные пины уже стандартизированной в OBD-II колодки, в ней CAN-шина находится на контактах 6 (CAN-H) и 14 (CAN-L).

Как читать can шину

Поскольку CAN-шин на автомобиле может быть несколько, часто практикуется использование на каждой разных физических уровней сигналов. Вновь для примера обратимся к документации Volkswagen. Так выглядит передача данных в моторной шине:

Как читать can шину

Когда на шине не передаются данные или передается рецессивный бит, на обоих проводах витой пары вольтметр покажет по 2,5 В относительно «массы» (разница сигналов равна нулю). В момент передачи доминантного бита на проводе CAN-High напряжение поднимается до 3,5 В, в то время как на CAN-Low опускается до полутора. Разница в 2 вольта и означает «единицу».

На шине «Комфорт» все выглядит иначе:

Как читать can шину

Здесь «ноль» — это, наоборот, 5 вольт разницы, причем напряжение на проводе Low выше, чем на проводе High. «Единица» же – это изменение разности напряжений до 2,2 В.

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

Как читать can шину

«Расшифровка» CAN-шины автомобиля также ведется специализированным прибором – анализатором. Он позволяет выводить пакеты данных с шины в том виде, как они передаются.

Как читать can шину

Сами понимаете, что диагностика шины CAN на «любительском» уровне без соответствующего оборудования и знаний не имеет смысла, да и банально невозможна. Максимум, что можно сделать «подручными» средствами, чтобы проверить кан-шину – это измерить напряжения и сопротивление на проводах, сравнив их с эталонными для конкретного автомобиля и конкретной шины. Это важно – выше мы специально привели пример того, что даже на одном автомобиле между шинами может быть серьезная разница.

Как читать can шину

Видео:лекция 403 CAN шина- введениеСкачать

лекция 403  CAN шина- введение

Неисправности

Хотя интерфейс CAN и хорошо защищен от помех, электрические неисправности стали для него серьезной проблемой. Объединение блоков в единую сеть сделало ее уязвимой. КАН-интерфейс на автомобилях стал настоящим кошмаром малоквалифицированных автоэлектриков уже по одной своей особенности: сильные скачки напряжения (например, зимний запуск на сильно разряженном аккумуляторе) способны не только «повесить» ошибку CAN-шины, обнаруживаемую при диагностике, но и заполнить память контроллеров спорадическими ошибками, случайного характера.

В результате на приборной панели загорается целая «гирлянда» индикаторов. И, пока новичок в шоке будет чесать голову: «да что же это такое?», грамотный диагност первым делом поставит нормальный аккумулятор.

Как читать can шину

Чисто электрические проблемы – это обрывы проводов шины, их замыкания на «массу» или «плюс». Принцип дифференциальной передачи при обрыве любого из проводов или «неправильном» сигнале на нем становится нереализуем. Страшнее всего замыкание провода, поскольку оно «парализует» всю шину.

Представьте себе простую моторную шину в виде провода, на котором «сидят в ряд» несколько блоков – контроллер двигателя, контроллер АБС, приборная панель и диагностический разъем. Обрыв у разъема автомобилю не страшен – все блоки продолжат передавать информацию друг другу в штатном режиме, невозможной станет только диагностика. Если оборвать провод между контроллером АБС и панелью, мы сможем увидеть сканером на шине только ее, ни скорость, ни обороты двигателя она показывать не будет.

А вот при обрыве между ЭБУ двигателя и АБС машина, скорее всего, уже не заведется: блок, не «видя» нужный ему контроллер (информация о скорости учитывается при расчете времени впрыска и угла опережения зажигания), уйдет в аварийный режим.

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

Благо подключение CAN-шины сигнализации не разъем в разъем, а врезаясь непосредственно в шину автомобиля, дают «криворукому» установщику возможность перепутать провода местами. Автомобиль после этого не то что откажется заводиться – при наличии контроллера управления бортовыми цепями, распределяющего питание, даже зажигание не факт что включится.

  • Свежие записи
    • Нужно ли менять пружины при замене амортизаторов
    • Скрипят амортизаторы на машине что делать
    • Из чего состоит стойка амортизатора передняя
    • Чем стянуть пружину амортизатора без стяжек
    • Для чего нужны амортизаторы в автомобиле


    🎦 Видео

    Как читать данные в CAN-шине? | Easy Logic Creators | Урок 5.2Скачать

    Как читать данные в CAN-шине? | Easy Logic Creators | Урок 5.2

    Экспресс диагностика CAN шины на автомобиле. №21Скачать

    Экспресс диагностика CAN шины на автомобиле. №21

    Подробно про CAN шинуСкачать

    Подробно про CAN шину

    Как управлять автомобилем через CAN-шину?Скачать

    Как управлять автомобилем через CAN-шину?

    CAN-шина, простой поиск данных в кан шине автомобиля. Как расшифровать и найти данные в кан шине?Скачать

    CAN-шина, простой поиск данных в кан шине автомобиля. Как расшифровать и найти данные в кан шине?

    CAN шина на осциллографе FINIRSI ADS1013DСкачать

    CAN шина на осциллографе FINIRSI ADS1013D

    Кан шина, что это? Поймет школьник! принцип работыСкачать

    Кан шина, что это? Поймет школьник! принцип работы

    Поиск уровня топлива в CAN шине Toyota Camry 2017Скачать

    Поиск уровня топлива в CAN шине Toyota Camry 2017

    Как отправлять сообщения в CAN-шину? | Easy Logic Creators | Урок 5.4Скачать

    Как отправлять сообщения в CAN-шину? | Easy Logic Creators | Урок 5.4

    Блокировка can-шины в фаре Toyota/Lexus. Шок для опытных установщиков. Зачем думать и читать схемыСкачать

    Блокировка can-шины в фаре Toyota/Lexus. Шок для опытных установщиков. Зачем думать и читать схемы

    Как проверить CAN шину Используем симулятор ElectudeСкачать

    Как проверить CAN шину  Используем симулятор Electude

    #10. Как отправлять сообщения и команды в CAN-шину для управления автомобилем?Скачать

    #10. Как отправлять сообщения и команды в CAN-шину для управления автомобилем?

    поиск нерабочей can шины, часть дваСкачать

    поиск нерабочей can шины, часть два

    Анализ CAN-шины Гранта. CAN-hacker.Скачать

    Анализ CAN-шины Гранта. CAN-hacker.

    CAN-Hacker Как искать пакеты в CAN шине на примере Toyota Prius-C AquaСкачать

    CAN-Hacker Как искать пакеты в CAN шине на примере Toyota Prius-C Aqua

    Простая проверка CAN шины. Сканер не видит автомобиль через OBD2. Как правильно выбрать изоленту.Скачать

    Простая проверка CAN шины. Сканер не видит автомобиль через OBD2. Как правильно выбрать изоленту.

    Как работает LIN шина автомобиля. K-Line L-Line шины данных. Лин шина автомобиля. Lin-bus networkСкачать

    Как работает LIN шина автомобиля. K-Line L-Line шины данных. Лин шина автомобиля. Lin-bus network

    Компьютерная диагностика авто. K-линия и CAN шинаСкачать

    Компьютерная диагностика авто. K-линия и CAN шина
Поделиться или сохранить к себе:
Технарь знаток