Не впевнений що цей пост буде для когось цікавим, але в свій час, коли я тільки починав розбиратися з кан шиною та шукав хоч якусь інформацію я не знаходив взагалі нічого. Можливо колись хтось буде в такому ж положенні як і я і буде гуглити бодай якусь інфу і натрапить на цей пост саме на українському драйвері, я буду дуже радий.
Отже до справи, всі приклади наведені тут і вся інформація стосується саме автомобіля Honda Accord 7, але код я впевнений можна використати на великій кількості різних авто, мінімально змінивши конфігурацію.
І так, автомобіль Honda Accord 7 покоління має 2 шини CAN - B-Can, який ще можна назвати шиною комфорту, та F-Can, який можна назвати моторною шиною.
Шина B-Can використовується для обміну інформацією між блоками в салоні, має доволі низьку швидкість, а саме 33 кілобіти на секунду і в цілому якщо якийсь блок не відповідає не станеться нічого страшного, крім зниження комфорту (і то не завджи). По цій шині, наприклад, спілкуються блоки склопідйомників, блок клімат конролю (той самий, що відправляє температуру на панель приладів, який перестає працювати при заміні магнітоли), датчик дощу, бесключовий доступ, блок MICU, блок світла, панель приладів і багато іншого.
Також авто обладнане шиною F-Can, яка відповідає за першочергові функції авто, він має швидкість 500 кбіт/сек, об'єднує блок керування двигуном, блок ABS, панель приладів. Так, панель приладів вміє в обидві шини і є таким собі мостом між 2 шинами, може приймати та передавати інформацію із шини в шину.
Для чого взагалі це все потрібно, працює собі машин і хай працює. Таке питання я часто чув, і в цілому для 99% користувачів так воно і є, але я зараз спробую коротко розповісти які модливості відкриває кан шина:
Як наразі я використовую цю інформацію:
Можливості по суті обмежені лише уявою та наявності певного функціоналу конкретного авто, придумати та реалізуати можна безліч речей.
Тепер про те, що необхідно для того, щоб почати роботу з шиною CAN
Мій приклад підключення та коду буде на Arduino Uno, але принцип той самий. Нижче приводжу фото з інтернету по підключенню:
Даний кан модуль побудований на мікросхемі MCP2515 та трансівері TJA1050, він повністю сумісний з багатьма авто, в тому числі з 7 Аккордом, але по B-Can шині є нюанс, на 7 Аккорді він однопровідний і в оригінальних блоках використовується трансівер AU5790D, який можна без проблем підключити до MCP2515, але вимагає певних знань та навичок. Якщо використовувати стандартний TJA1050 то потрыбно Can High модуля підключати до B-Can авто, а Can Low модуля посадити на масу.
При роботі з шиною F-Can цього робити не треба, High до High, Low до Low. Обов'язково необхідно з'єднати мінус авто та мінус контроллера.
Додаю простий приклад коду для читання та виводу у серійний монітор інформації, яку контроллер отримує з шини авто, а також там є простий приклад для відправки. Як це використовувати вирішувати вже кожному окремо, моєю задачею було просто поділитися інформацією, яка мені відома, і можливо зберегти комусь багато часу та нервів)))
Дякую за інфу, обов'язково гляну код!
Згодиться чи нє, але най буде 😁.