В этом видео я рассказал о небольшой задаче – преобразовании одного протокола шины CAN в другой. У заказчика на старой машине стоял джойстик с протоколом, условно названным "CANopen", а на новой версии машины используются джойстики с протоколом J1939. Они оказались несовместимы, и заказчику потребовался преобразователь интерфейсов. Этим вопросом мы с командой и занимались.
Я рассказал о джойстике J2, с которым раньше не сталкивался, и показал каталог, где была информация о параметрах и обозначениях (A6 - аналоговый выход, CJ - J1939, CO - CANopen). Заказчик предполагал, что у него джойстик с протоколом CANopen, но были сомнения. Я предложил исследовать протоколы обоих джойстиков (старого C6 и нового CJ).
Мы получили джойстики и начали разбираться. Выяснилось, что адресация старого джойстика (C6) расширенная, похожа на J1939, но сообщение идёт с адреса FF0B. Новый джойстик (CJ) полностью соответствовал протоколу J1939. Результаты исследования были оформлены в документ.
Стало понятно, что можно создать преобразователь протокола на базе контроллера Canny Echo 7.3. Я показал, как выглядит программа преобразователя интерфейса в среде разработки. Был создан испытательный стенд: джойстик подключен к контроллеру, и контроллер размещен прямо на базе джойстика.
В итоге заказчик получил джойстик, передающий в шину одновременно и новый сигнал (J1939), и старый (FF0B). Контроллер машины просто вылавливает нужный сигнал из шины. Джойстик проверили в работе, всё отлично.
Если у вас будут подобные или какие-то интересные задачи, обращайтесь!