Вопрос
Как лучше всего провести реверс-инжиниринг сигналов CAN-шины?
Всегда есть способы получше... Я собираюсь провести реверс-инжиниринг некоторых сигналов CAN-шины. Прежде чем начать, я хотел бы обсудить это с ребятами, которые уже делали это раньше и готовы поделиться своей методикой.
Меня интересуют аппаратные и программные средства, используемые для распознавания сигналов CAN.
Есть ли у кого-нибудь опыт?
Спасибо!
P. D.: было бы неплохо, если бы на этом сайте был тег «реверс-инжиниринг» :-)
Перевод вопроса с Mechanics Stack Exchange
Лицензия: CC BY-SA (2.5–4.0)
Оригинальный вопрос: https://mechanics.stackexchange.com/questions/6027/what-is-the-best-way-to-reverse-engineer-the-signals-of-a-can-bus
1
Хотя это может быть отличным вопросом для сайта реверс-инжиниринга, который находится на стадии бета-тестирования, я выскажу своё мнение.
Варианты оборудования
1) Они создают аппаратный интерфейс ODB II <==> UART, который предоставит вам последовательный доступ к вашим сигналам CAN. Вы можете эффективно считывать и записывать сигналы на шину.
2) Существуют такие платы, как автомобильная информационно-развлекательная система SABRE от Freescale, которая представляет собой одноплатный компьютер с чипом CAN на борту. Эта плата работает под управлением Linux и пользуется широкой поддержкой сообщества.
Параметры программного обеспечения
1) Я расскажу о программном обеспечении для Linux. Основным вариантом для Linux и CAN является SocketCAN. SocketCAN использует сетевой стек ОС для связи с шиной CAN. Это привлекательно по нескольким причинам, в том числе тем, что несколько приложений в пользовательском пространстве могут читать и записывать данные на шину (как и в случае с протоколом TCP/IP). Документация по ядру оказалась очень полезной.
Существует тестовое программное обеспечение под названием
cantest
иcandump
, которое показывает, что принимается по шине. Лучший способ обратного проектирования сигналов — поэкспериментировать с некоторыми функциями автомобиля и найти повторяющиеся сигналы, например, нажав кнопку кондиционера (например) и поискав повторяющиеся сигналы на шине. Диагностические коды можно найти в Google или в руководстве по ремонту, так что это не составит труда.