«»

...

Інформації пост: читання CAN шин Accord 7, та й не тільки

Опубліковано: 22 листопада 23:44
Я їжджу на Honda Accord (7G), Subaru Impreza (GE, GH)
Одеса, Україна

Не впевнений що цей пост буде для когось цікавим, але в свій час, коли я тільки починав розбиратися з кан шиною та шукав хоч якусь інформацію я не знаходив взагалі нічого. Можливо колись хтось буде в такому ж положенні як і я і буде гуглити бодай якусь інфу і натрапить на цей пост саме на українському драйвері, я буду дуже радий.

Отже до справи, всі приклади наведені тут і вся інформація стосується саме автомобіля Honda Accord 7, але код я впевнений можна використати на великій кількості різних авто, мінімально змінивши конфігурацію.


І так, автомобіль Honda Accord 7 покоління має 2 шини CAN - B-Can, який ще можна назвати шиною комфорту, та F-Can, який можна назвати моторною шиною.


Шина B-Can використовується для обміну інформацією між блоками в салоні, має доволі низьку швидкість, а саме 33 кілобіти на секунду і в цілому якщо якийсь блок не відповідає не станеться нічого страшного, крім зниження комфорту (і то не завджи). По цій шині, наприклад, спілкуються блоки склопідйомників, блок клімат конролю (той самий, що відправляє температуру на панель приладів, який перестає працювати при заміні магнітоли), датчик дощу, бесключовий доступ, блок MICU, блок світла, панель приладів і багато іншого.


Також авто обладнане шиною F-Can, яка відповідає за першочергові функції авто, він має швидкість 500 кбіт/сек, об'єднує блок керування двигуном, блок ABS, панель приладів. Так, панель приладів вміє в обидві шини і є таким собі мостом між 2 шинами, може приймати та передавати інформацію із шини в шину.


Вже кидав цю діаграму в одному з постів, але продублюю і сюди


Для чого взагалі це все потрібно, працює собі машин і хай працює. Таке питання я часто чув, і в цілому для 99% користувачів так воно і є, але я зараз спробую коротко розповісти які модливості відкриває кан шина:

  • можна виконувати різні цікаві і не дуже дії. Наприклад, можна відкрити багажник, опустити/підняти вікно/вікна, поморгати аварійкою, дальнім, змінити яскравість панелі приладів, відкрити/закрити авто тощо;
  • прочитати і використати певну інформацію, наприклад як в проекті жаби та гадюки, відображати відкриті двері/багажник/капот;
  • відфільтрувати або підмінити дані, як приклад, таке я робив щоб пофіксити баг китайського клімату з відображенням температури, китайці просто не відсилали потрібний байт у повідомлені, тож його потрібно було прочитати, відкоректувати та надіслати далі.

Як наразі я використовую цю інформацію:

  • роблю власний блок комфорту, який буде відпоідати за ввімкнення ДХО, закривання замків дверей автомобіля при певній швидкості та відкривання при переходу в пакінг або відкритті водійської двері, моргання аварійкою при відкритті багажника, спробую піднімати стекла при постанові на охорону з ключа, складати дзеркала, моргати дальнім при потребі та багато чого іншого;
  • планую зробити блок AFS та встановити AFS лінзи, буду брати інформацію про кут повороту коліс та відповідно рухати лінзи. Також хочу заюзати цю ж інформацію для малювання динамічних ліній паркування на магнітолі;
  • підключав панель приладів від Аккорду до автосимулторів))).

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


Тепер про те, що необхідно для того, щоб почати роботу з шиною CAN

  • мікроконтроллер, підійде будь-який з інтерфейсом SPI - Arduino, STM32, ESP32 та інші;
  • модуль CAN MCP2515;
  • вміння працювати з обраним мікроконтролером;
  • терпіння)))

Мій приклад підключення та коду буде на Arduino Uno, але принцип той самий. Нижче приводжу фото з інтернету по підключенню:



Даний кан модуль побудований на мікросхемі MCP2515 та трансівері TJA1050, він повністю сумісний з багатьма авто, в тому числі з 7 Аккордом, але по B-Can шині є нюанс, на 7 Аккорді він однопровідний і в оригінальних блоках використовується трансівер AU5790D, який можна без проблем підключити до MCP2515, але вимагає певних знань та навичок. Якщо використовувати стандартний TJA1050 то потрыбно Can High модуля підключати до B-Can авто, а Can Low модуля посадити на масу.

При роботі з шиною F-Can цього робити не треба, High до High, Low до Low. Обов'язково необхідно з'єднати мінус авто та мінус контроллера.


Додаю простий приклад коду для читання та виводу у серійний монітор інформації, яку контроллер отримує з шини авто, а також там є простий приклад для відправки. Як це використовувати вирішувати вже кожному окремо, моєю задачею було просто поділитися інформацією, яка мені відома, і можливо зберегти комусь багато часу та нервів)))


11 1

Обговорення

Щоб залишати коментарі, потрібно авторизуватись.
Я їжджу на Volkswagen Golf Mk4
Дуже дякую за інформацію. Давно хотів навчитись програмувати залізяки а залязяки для авто то подвійний кайф. Дуже гарна ввідна інформація. Додав в закладки.
1
вчора о 14:38
Я їжджу на Volkswagen Golf Mk4
Uns8ted
Dromich, дякую) не думав честно що буде цікаво. Задумаюсь про те щоб писати більше подібної інфи
Uns8ted, Пишіть полюбому. Така інфа чисто для порталу буде не зайва. Я буду слідкувати за вашим постами.
1
вчора о 15:12
На моєї автівці щоб складати дзеркала, потрібно подати високий струм в крісло пасажира, щоб той побіг, та склав)
1
вчора о 09:19
Stanyslav Kovalsky
На моєї автівці щоб складати дзеркала, потрібно подати високий струм в крісло пасажира, щоб той побіг, та склав)
Stanyslav Kovalsky, чудова ідея!) так впринципі і автоматичне відкриття воріт можна зробити)))
1
вчора о 09:21
Я їжджу на Nissan X-Trail IV
Я зі своїм ритмом кілька разів підходив дрібними набігами, але детально розібратися так і не знайшов часу. Дякую за допис. Тепер буде легше розібратися
2
вчора о 09:12
Я їжджу на Chevrolet Lacetti SW
Коли ж я, нарешті, розберуся з тими шинами? 😁
Дякую за інфу, обов'язково гляну код!
1
вчора о 08:40
RusLanCk
Коли ж я, нарешті, розберуся з тими шинами? 😁Дякую за інфу, обов'язково гляну код!
RusLanCk, радий якщо стане в нагоді. Кодом це назвати складно, але старт якийсь точно дасть, сам з такого починав
вчора о 09:14
Я їжджу на Chevrolet Lacetti SW
Цікаво, тому однозначно в закладки.
Згодиться чи нє, але най буде 😁.
2
вчора о 05:06