- Регистрация
- 23 Август 2023
- Сообщения
- 2 954
- Лучшие ответы
- 0
- Реакции
- 0
- Баллы
- 51
Offline
«Программирование микроконтроллеров — это не только головой, но и руками. Не только руками, но и головой.»
Пролог
Так вышло, что до разработки автомобильной электроники я варил прошивки для infotainment аудиосистем. Поэтому на новые задачи я смотрю через призму прошлого опыта.
Как оказалось при разработке электроники часто приходится работать с CAN шиной. Это не только автомобилестроение, но и электронная начинка для лифтов, поездов, кораблей, космических аппаратов и прочего тоже использует CAN шину для общения между агрегатами.
При прототипировании CAN совместимых устройств часто надо собирать и разбирать различные конфигурации CAN шин. Два устройства, 4 устройства, 8 устройств, потом снова 3 и прочее. Обычно традиционные harness-ы для CAN шины делают как гирлянду из разъемов DB-9.

Однако разъёмы DB-9 содержат 9 пинов, а CAN нужно 2 пина. Можно ошибиться при подключении перемычек. Потом каждый раз развинчивать разъём DB-9 не удобно. В конце концов разъёмы DB-9 устарели.
Я предлагаю собирать отладочные CAN harness-ы на основе всем известных audio jack 3.5mm разъемов. Вот так.

Что надо из оборудования?
Компонент | Назначение | RUR |
Audio Jack 3.5mm Connector Mono, Plug to Screw Terminal | Соединение сегментов сети | 49 |
Mini T Type Wire Connector Electric Quick Splice Terminals Crimp Without Breaking Cable Insulated Line Push-in Terminal Blocks | Для ответвление от шины | 49 |
пластиковые Хомуты | для скрепления двух жил кабеля | ? |
отвертка с плоским шлицем 2,5мм | для закрепления в клеммниках | ? |
Провод диаметром 0,5-1,5 мм | для передачи CAN пакетов | ? |
DMM | для прозвонки соединений | ? |
Лучше покупать именно audio jack mono разъём. Так легче не ошибиться с подключением и легче отлаживаться. В клемму + завинчивать CAN_H, в клемму - завинчивать CAN_L.

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

По сути задача организации гибкой CAN шины для прототипирования и отладки сводится к изготовлению двух типов CAN секций: FNN и NNF.

Можно также пристегнуть терминирующий резистор 120 Om практически в любое место.

CAN-шина собранная на основе Audio-Jack обладает следующими достоинствами:
Достоинства
++Дешевизна. Себестоимость одной секции составляет порядка 200 RUR.
++Можно удлинять CAN шину за счет переходников вилка-вилка, вилка-гнездо, который можно купить в любом магазине, где торгуют мобильными телефонами или в киосках метро.

++Не нужна отвертка для скрепления гнезда и вилки, как в случае с DB-9
++Эстетический вид. Audio jack 3.5 mm - это видовая деталь. Поэтому выглядит прилично.
++Миниатюрность. Такая CAN шина легко разбирается и собирается. Удобна при транспотрировке.
++Можно отдельным Audio-Jack-ом подключиться к шине осциллографом или переходником с USB-CAN. Буквально в любом месте.
++Безопасность. Если кто-то ногой заденет лежащую на полу такую CAN шину, то шина легко разорвется и человек не споткнется и не упадет.
++Позволяет экспериментировать с топологией. Массив, дерево, можно хоть в кольцо CAN шину замкнуть.
Итог
Удалось смастерить простую конфигурируемую и масштабируемую CAN шину буквально из подручных материалов.
К слову, всё то же самое справедливо и для шины RS-485.
Надеюсь что этот текст поможет и другим программистам микроконтроллеров собирать удобные CAN harness-ы для отладки своих устройств.
Словарь
Сокращение | Расшифровка |
CAN | Controller Area Network |
DMM | Digital MultiMeter |
FNN | Nest Nest Fork |
NFF | Fork Fork Nest |
Ссылки
Ссылки | URL |
CAN-шина (Теория) | |
Утилита CANcat (или CAN-Мессенджер) | |
Обзор USB-CAN переходника USB2CANFD_V1 | |
ЛикБез по CAN-FD | |
Обзор Переходника USB-CAN (SYS TEC USB-CANmodul1) | |
Сканирование шины RS485 | |
Обзор Протокола ISO-TP [ISO 15765-2] | |
Обзор USB-CAN переходника USBCAN-II C | |
Earphone Audio Jack 3.5mm Connector Stereo Adapter 3.5mm RCA Audio Mono Channel Plug to Screw Terminal Audio Mono Channel Plug |