Коммуникационные шины CAN и LIN Geely Atlas

Log_Stas

Мастер
Команда форума
Модератор
Член Клуба
Сообщения
849
Адрес
Югорск
Очки активности
872
В нашем авто используется два типа шин связи между электронными блоками – это CAN и LIN.
CAN (Controller Area Network) - одна из наиболее широко используемых шин на международном уровне. CAN - шина, предназначенная для использования в автомобильной среде, обменивается информацией между электронными блоками и образует бортовую сеть. Передача данных осуществляется по «витой паре», сигнал дифференциальный, максимальный уровень не более 5 вольт. Передача данных дифференциальным способом по «витой паре» подразумевает собой высокую помехозащищенность линии. Сигнальные линии интерфейса CAN обозначаются так: CAN-High и CAN-Low. Тип шины High Speed (CAN-HS). Скорость передачи данных во всех CAN – шинах нашего авто 500 кбит/с.
LIN (Local Interconnect Network) - это недорогая система последовательной связи, используемая в распределенной электронной системе управления транспортным средством. Она в основном используется для последовательной связи с интеллектуальными датчиками и исполнительными механизмами. Передача информационного сигнала осуществляется по одному проводу. Скорость передачи данных 19,2 кбит/с.
В Geely Atlas используется пять типов CAN – шин
1.jpg
и три LIN – шины
2.jpg
Типы шин и что к ним относится приведены в таблице
4.jpg
Как понятно из таблицы, любая из шин так или иначе упирается в шлюз. Это практически повсеместное решение в современном автомобилестроении. Поскольку некоторым блокам из одной сети необходима информация от блоков из другой, но весь трафик объединять не нужно, то для этого и существуют шлюзы. Они пропускают между сетями только необходимую информацию. Из этого следует, что шлюз "должен представлять", какие блоки есть в автомобиле, чтобы правильно обрабатывать информацию. Настройка этого "перечня" осуществляется с помощью диагностического сканера. Сам шлюз находится внутри салона, на моторном щите, над ногами водителя.
3.jpg
Поскольку шина у нас CAN-HS, то ее можно "слушать" довольно бюджетными устройствами, например связкой CAN-шилд + ардуина. Примеров в сети предостаточно. Можно использовать и более дорогие, но удобные готовые устройства, типа этого.
У каждой CAN - шины в автомобиле своя цветовая маркировка проводов.
1.jpg
На диагностическом разъеме OBD шина Di-CAN подключена на контакты: 6 - CAN-H, 14 - CAN-L.
Теперь немного о том, что же в шине имеется. Каждый блок в автомобиле, подключенный к CAN - шине, отправляет сообщения с информацией. Эти сообщения принимаются всеми остальными блоками сети и используются по-назначению, либо игнорируются. Полезная часть сообщения имеет несколько байт информации. Это идентификатор сообщения ID в шестнадцатиричном виде, длина сообщения (от 1 до 8) и собственно до 8 байт данных, опять же в HEX. Вот, например, как это выглядит в реальности в программе CAN Hacker:
6.jpg
Красным выделены идентификаторы сообщений, синим длина данных, зеленым данные в сообщении, ну и желтым период отправки. Здесь нужно сказать, что в шинах авто есть сообщения с постоянной периодичностью, когда, например, нужно передавать быстро изменяющийся параметр, а есть тип сообщений, отправляемых по событию, например нажатию кнопки. Наиболее интересными в сообщениях являются идентификатор, который указывает на принадлежность сообщения тому или иному блоку, и собственно сами данные. В них могут содержаться HEX-представления таких параметров, как температура ОЖ, обороты двигателя, скорости вращения колес, угол поворота рулевого колеса и др. Конечно, для большинства автолюбителей эта информация никакого интереса не представляет, но для определенного круга лиц бортовая информационная сеть автомобиля - это кладезь для творчества!
 

booroondook

Специалист
Член Клуба
Сообщения
119
Адрес
МО, г.о.Солнечногорск
Очки активности
3,765
Город
г.о.Солнечногорск
Имя
Игорь
Авто
Geely Atlas 2.4 AT 4WD
Вопрос такой. А можно ли (и как, с помощью чего) посылать команды в CAN-шину с целью изменить какие-то настройки? Ну, например, выставить часы на приборке. Или отключить клаксон при постановке на охрану. В штатной ситуации для выполнения этих операций необходимо наличие подключенного и нормально работающего штатного головного устройства (магнитолы). А если по какой-то причине магнитолы нет? Или она не работает? Что тогда можно сделать?
 

Log_Stas

Мастер
Команда форума
Модератор
Член Клуба
Сообщения
849
Адрес
Югорск
Очки активности
872
booroondook написал(а):
Вопрос такой. А можно ли (и как, с помощью чего) посылать команды в CAN-шину с целью изменить какие-то настройки? Ну, например, выставить часы на приборке. Или отключить клаксон при постановке на охрану. В штатной ситуации для выполнения этих операций необходимо наличие подключенного и нормально работающего штатного головного устройства (магнитолы). А если по какой-то причине магнитолы нет? Или она не работает? Что тогда можно сделать?
Можно. Выше я указывал на техсредства и софт, с помощью которого можно это сделать. Но для начала нужно эти команды отснифить в шине.
 

Log_Stas

Мастер
Команда форума
Модератор
Член Клуба
Сообщения
849
Адрес
Югорск
Очки активности
872
booroondook написал(а):
Log_Stas написал(а):
Такое техсредство подойдет?
https://obdmag.ru/can-hacker-full
Да, подойдет. Сам пользуюсь самодельным девайсом, который эмулирует этот оригинальный по ссылке.
 

Log_Stas

Мастер
Команда форума
Модератор
Член Клуба
Сообщения
849
Адрес
Югорск
Очки активности
872
Небольшое видео, в котором наглядно показал, как через CAN шину, минуя ГУ, можно изменить настройки авто
https://youtu.be/Hv9FD3lFDeM
 

booroondook

Специалист
Член Клуба
Сообщения
119
Адрес
МО, г.о.Солнечногорск
Очки активности
3,765
Город
г.о.Солнечногорск
Имя
Игорь
Авто
Geely Atlas 2.4 AT 4WD
Тут такое дело... В-общем, у моей альтернативной китайской башки обнаружилась очень интересная фича - отладка CAN-протокола на экране. Если ее включить, то буквально "по каждому чиху" на экран выдается строка с некими кодами.
Выглядит это примерно так:
IMG_20190918_134401_3.jpg
То есть, стоит, например, нажать кнопку на руле или шевельнуть регулятор кондиционера - и сразу на экране появляется строка с кодами.
Вопрос такой - можно ли это как-то использовать в свете тематики этой ветки?
 

Семёныч

Специалист
Член Клуба
Сообщения
208
Очки активности
0
Log_Stas написал(а):
Небольшое видео, в котором наглядно показал, как через CAN шину, минуя ГУ, можно изменить настройки авто
https://youtu.be/Hv9FD3lFDeM

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

Log_Stas

Мастер
Команда форума
Модератор
Член Клуба
Сообщения
849
Адрес
Югорск
Очки активности
872
booroondook написал(а):
Тут такое дело... В-общем, у моей альтернативной китайской башки обнаружилась очень интересная фича - отладка CAN-протокола на экране. Если ее включить, то буквально "по каждому чиху" на экран выдается строка с некими кодами.
Выглядит это примерно так:
IMG_20190918_134401_3.jpg
То есть, стоит, например, нажать кнопку на руле или шевельнуть регулятор кондиционера - и сразу на экране появляется строка с кодами.
Вопрос такой - можно ли это как-то использовать в свете тематики этой ветки?
С этим отладчиком встречался. И на моей "китаянке" он имеется. Здесь в чем нюанс - эти коды, что мы видим в отладчике, сформированы CAN-адаптером и с реальными сигналами в шине имеют мало общего. Т.е. мы видим то, что адаптер передал в андройд по UART. Конечно, можно отследить закономерности, какой бит, какого байта изменяется при нажатии той или иной кнопки. Потом уже думать, полезная это инфа или нет.
 

Log_Stas

Мастер
Команда форума
Модератор
Член Клуба
Сообщения
849
Адрес
Югорск
Очки активности
872
Семёныч написал(а):
Log_Stas написал(а):
Небольшое видео, в котором наглядно показал, как через CAN шину, минуя ГУ, можно изменить настройки авто
https://youtu.be/Hv9FD3lFDeM

таким макаром можно и зеркала отключить или нет, дабы не складывались при закрытии
а можно настроить тем самым команду на переключение акпп, что бы не переключала в районе 5000 тысяч а выше держала, теоретически идет же сигнал - передачу вверх сейчас?
Семеныч, вряд ли это возможно. Чтобы передать свою инфу коробке, нужно разорвать ее связь с двигателем, а это ой как опасно. На такие эксперименты не решусь никогда. А вот с зеркалами опыты буду ставить, уж очень хочется самому это иметь. Тем более, что в штатной ГУ такой пункт в настройках запустить есть возможность.
 

booroondook

Специалист
Член Клуба
Сообщения
119
Адрес
МО, г.о.Солнечногорск
Очки активности
3,765
Город
г.о.Солнечногорск
Имя
Игорь
Авто
Geely Atlas 2.4 AT 4WD
Log_Stas написал(а):
Здесь в чем нюанс - эти коды, что мы видим в отладчике, сформированы CAN-адаптером и с реальными сигналами в шине имеют мало общего. Т.е. мы видим то, что адаптер передал в андройд по UART. Конечно, можно отследить закономерности, какой бит, какого байта изменяется при нажатии той или иной кнопки.
А вот такая еще бредовая идея в голову пришла. Подключить параллельно к машине две башки - штатную и эту альтернативную с отладкой. Ну, то есть по сути получится, что к КАН-шине будут подключены штатная башка и КАН-адаптер второй башки. Затем на штатной башке выполнять какие-то действия, связанные с КАН-шиной (например, язык интерфейса переключить). А на второй башке смотреть отладку. Наверное, какие-то команды пройдут через КАН-адаптер, а какие-то нет. И хотя бы будет понятно, что можно "выжать" из адаптера, а что нельзя.
 

Log_Stas

Мастер
Команда форума
Модератор
Член Клуба
Сообщения
849
Адрес
Югорск
Очки активности
872
booroondook написал(а):
Подключить параллельно к машине две башки - штатную и эту альтернативную с отладкой.
Если есть на руках USB-UART конвертер, то можно прям на выход CAN-адаптера подключиться и проверить любой "терминалкой", что там. Скорость 19200, на своей сегодня заметил. Возможно, что и ГУ не нужно, только CAN-адаптером можно обойтись. Завтра попробую посмотреть, что там происходит.
 

booroondook

Специалист
Член Клуба
Сообщения
119
Адрес
МО, г.о.Солнечногорск
Очки активности
3,765
Город
г.о.Солнечногорск
Имя
Игорь
Авто
Geely Atlas 2.4 AT 4WD
Log_Stas написал(а):
Если есть на руках USB-UART конвертер
Да я вот купил устройство под названием "CAN Hacker" плюс кучу периферии к нему в комплекте.
Но таким вещами я никогда не занимался, поэтому не знаю, с чего начать. Кто бы научил, подтолкнул... Ну а уровень обучаемости у меня высокий.
 

KASiK

Специалист
Член Клуба
Партнер клуба
Сообщения
141
Очки активности
1,482
Город
Санкт-Петербург, Красное Село
Имя
Владимир
Авто
Geely Atlas LUX Beige 2,4 4WD АКПП
Возраст
46
Коль с мангитолы можно управлять клаксоном и складыванием зеркал, то по сути, если разобраться, можно и систему контроля давления в шинах TPMS отклбчать/включать, да и другие функции можно сделать. Наверняка найдутся программисты, которые под Андроид могут написать программульку, чтоб такие функции встроить в нашу штатную магнитолу, наравне с уже имеющимися функциями клаксона и зеркал.
Эх, давно я писал на ассемблере под Досом виртуозные вещи и драйвера, много воды с тех пор утекло, теперь и нагонять-то даже нет желания, настолько отстал от жизни, уж 17 лет уж не ограммировал. Но понимаю, коль магнитола уже что-то может, то научить ее остальному совершенно реально, даже и ошибки читать, написав необходимое ПО. Было бы желание... Тогда и дилеры со своими сканерами нам не нужны будут.
 

Log_Stas

Мастер
Команда форума
Модератор
Член Клуба
Сообщения
849
Адрес
Югорск
Очки активности
872
KASiK написал(а):
и складыванием зеркал
А где такое замечено? Я сколько уже бьюсь с этим, но никакого результата пока не получил. Вот показывал, что пункт этой настройки включить в мафоне можно, только вот он ни к чему не приводит.
 

KASiK

Специалист
Член Клуба
Партнер клуба
Сообщения
141
Очки активности
1,482
Город
Санкт-Петербург, Красное Село
Имя
Владимир
Авто
Geely Atlas LUX Beige 2,4 4WD АКПП
Возраст
46
Log_Stas написал(а):
KASiK написал(а):
и складыванием зеркал
А где такое замечено? Я сколько уже бьюсь с этим, но никакого результата пока не получил. Вот показывал, что пункт этой настройки включить в мафоне можно, только вот он ни к чему не приводит.

Я думал, что коль у кого-то есть, то и работает. У меня такого нет, к сожалению.
 

Log_Stas

Мастер
Команда форума
Модератор
Член Клуба
Сообщения
849
Адрес
Югорск
Очки активности
872
KASiK написал(а):
У меня такого нет, к сожалению.
Его ни у кого нет. И у меня не было. Этот пункт был принудительно вытащен из недр магнитолы. Но оказалось не все так просто.
 

KASiK

Специалист
Член Клуба
Партнер клуба
Сообщения
141
Очки активности
1,482
Город
Санкт-Петербург, Красное Село
Имя
Владимир
Авто
Geely Atlas LUX Beige 2,4 4WD АКПП
Возраст
46
А как так вы его вытащили? Может вытащив, можно и работать заставить, коль он там был предусмотрен для чего-то?
А что-то еще можно вытащить?
Вот найти бы умного программиста под андроид, наверняка мог бы заставить все это дело работать.
 

Log_Stas

Мастер
Команда форума
Модератор
Член Клуба
Сообщения
849
Адрес
Югорск
Очки активности
872
KASiK написал(а):
А как так вы его вытащили
Как вытащил? Декомпилировал приложение настроек, изменил код на нужный мне и скомпилировал обратно. Процесс то не сложный, если есть навыки программирования. Только помимо приложения настроек есть еще что-то, отвечающее за передачу данных в сеть машины. Этого пока не нашел. А также есть опасения, что наш BCM не поддерживает изменение этого пункта.
 
Сверху