Вопрос

Взаимодействие с CAN-шиной

Я хочу написать приложение на C# и использовать его как на компьютерах с архитектурой ARM, так и на компьютерах с архитектурой x86. Мой вопрос заключается в следующем: нужен ли мне специализированный интерфейс для протокола CAN-шины при использовании кабеля J1939 — DB9 или достаточно подключения через последовательный порт?



Перевод вопроса с Mechanics Stack Exchange
Лицензия: CC BY-SA (2.5–4.0)
Оригинальный вопрос: https://mechanics.stackexchange.com/questions/62784/interfacing-with-can-bus

10 Комментариев

  1. Я предлагаю вам поискать в Google модуль CAN MCP2515.



    Вы найдёте интерфейсный модуль, который «переводит» сигналы шины CAN в последовательный порт.



    А ещё вы найдёте примеры программирования. Я нашёл несколько для Arduino.


  1. Существует стандарт для разъёмов SubD9, которые используются для CAN практически всеми устройствами CAN за пределами автомобильной отрасли. Распиновка следующая:



    1: N/C
    2: CAN Low
    3: Ground
    4: N/C
    5: Shield
    6: Ground (Optional)
    7: CAN High
    8: N/C
    9: Optional voltage to supply small devices


    Как видите, это не RS232, и ваш кабель, скорее всего, является не более чем переходником между двумя типами разъёмов.



    Вам действительно нужен интерфейс CAN. Чаще всего используются USB-интерфейсы CAN, но есть также последовательные интерфейсы CAN или даже микросхемы драйверов, которые могут подойти для систем на базе ARM.


  1. @SolarMike: С математической точки зрения «не все» означает «по крайней мере одно не» ;-) На мой взгляд, слишком много вопросов по электрике попадают сюда, хотя им было бы уместнее находиться в другом разделе.
  1. @sweber извините, но я с вами не согласен. Не все вопросы, связанные с автомобилями, переносятся из раздела «Авто» в раздел «Вопросы и ответы», некоторые остаются там и получают очень компетентные ответы... Просто взгляните...
  1. @mike65535 Но помни... Если вопрос хоть как-то связан с автомобилями (в данном случае с «J1939»), он будет перенаправлен сюда с EE. Несколько дней назад на EE кто-то задал вопрос об «идентификации компонента», и его перенаправили сюда, поскольку компонент находился на печатной плате приборной панели. И что с того?
  1. Да, скорее всего, вам помогут гики, разбирающиеся в электронике и программировании, а не мотолюбители
  1. Мне просто интересно, сколько механиков будут одновременно программистами на C#, которые потратили время на то, чтобы сделать то, что вы хотите сделать... Многие механики будут использовать считыватели и т. д. для настройки автомобилей и т. д., но, возможно, вы выбрали не ту область... Возможно, вам стоит подумать о других областях, связанных с программированием или процессорами ARM и т. д.
  1. @SolarMike не отвечает на мой вопрос о фактическом взаимодействии с шиной CAN. Да, есть много постов, в которых упоминается шина CAN, но они не отвечают на мой конкретный вопрос.
  1. см. mechanics.stackexchange.com/q/17634/10976
  1. Здесь много постов о шине CAN? Вы смотрели что-нибудь? Похоже на предыдущий вопрос...
Вы уже ответили на этот вопрос