Вопрос

Что произойдёт, если я подключу CAN-шину напрямую?

Это действительно простой вопрос, но я ничего не нашел по этому поводу в Интернете.
Я подумывал о покупке CANBUS shield для моего Arduino, чтобы я мог попытаться что-то сделать на своей машине, но я немного боюсь сценария, при котором я сокращу (по ошибке) линии canbus H и L, а затем, возможно, что-то испорчу.



Что может произойти, если я подключу линию CANBUS в обход? Есть ли наихудший сценарий, при котором я могу необратимо испортить что-то, что не смогу исправить самостоятельно?



Заранее спасибо за любые ответы и советы



Перевод вопроса с Mechanics Stack Exchange
Лицензия: CC BY-SA (2.5–4.0)
Оригинальный вопрос: https://mechanics.stackexchange.com/questions/50126/what-happens-if-i-shortcut-the-canbus

3 Комментария

  1. Сигналы CAN — это сигналы с очень низким током, и по задумке разработчиков, если высокий или низкий уровень сигнала CAN замкнётся сам на себя, на B+ или на землю, это не приведёт к повреждению. Я видел много случаев короткого замыкания сигналов CAN из-за повреждённых грызунами проводов или неисправных модулей управления, и это короткое замыкание не приводило к повреждению. Обратите внимание, что шины CAN в силовой установке не могут работать в «однопроводном режиме». Если высокий или низкий уровень сигнала CAN замкнётся, связь по всей шине прекратится. Обычно шины CAN, связанные с кузовом, могут работать в однопроводном режиме. Если вы случайно замкнёте какой-либо из сигналов CAN, это может привести к появлению ошибок в модулях управления автомобилем, которые необходимо будет устранить после ремонта проводки.


  1. Покопавшись ещё немного, я нашёл ответы на этот вопрос.



    Чтобы обобщить то, что я нашёл на других страницах, я процитирую здесь всё.



    Здесь (Edaboard) я нашёл следующее:




    CAN-приемопередатчики по своей конструкции защищены от короткого замыкания.




    И здесь (Stackoverflow) я нашёл ещё немного информации:




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



    При передаче 6 или более последовательных рецессивных битов это
    считается ошибкой! А когда количество таких ошибок превышает 255,
    контроллер переходит в состояние BUS_OFF.



    Поскольку линии будут короткими, рецессивных битов будет намного больше, и счётчик ошибок
    быстро достигнет 255, что приведёт к BUS_OFF.



    В протоколе CAN действительно есть «механизм восстановления шины», при котором он будет
    ждать 11 последовательных рецессивных битов в течение 128 раз (что и произойдёт, так как
    шина закорочена), но, опять же, произойдёт то же самое, и он
    вернётся в состояние BUS_OFF.




    Это всё, что я нашёл, но, думаю, этого достаточно.


  1. Можно ли с помощью этого метода создать иммобилайзер? Если в автобусе никто не может разговаривать, то и хакер не сможет завести машину или клонировать ключ зажигания.
Вы уже ответили на этот вопрос