Надежная и простая в реализации последовательная шина (автомобильное приложение) [закрыто]

StackOverflow https://stackoverflow.com/questions/144600

Вопрос

Какую последовательную шину связи вы бы использовали во встраиваемой автомобильной системе, если бы вашими основными критериями выбора были:

  • Электрически надежный
  • Медленная скорость (32 Кб/с)
  • Легко программировать
  • Простота взаимодействия с микроконтроллерами.

Он не будет передавать много данных, но их необходимо будет периодически передавать на высокой скорости (100–500 Гц).Я считаю, что RS-232 недостаточно надежен, если в линии заземления есть шум.CAN-шина кажется интересной, но у меня нет опыта работы с ней.

В настоящее время нас интересует комбинация микроконтроллеров AVR AT90CAN128.

Это было полезно?

Решение

Вы уже выбрали AT90CAN128, отличительной особенностью которого по сравнению с другими процессорами AVR является поддержка шины CAN.На самом деле нет лучшего выбора, чем CAN, для автомобильных приложений с учетом ваших требований к скорости передачи данных и помехоустойчивости.Если вы придете к автомобильному клиенту с чем-то, кроме CAN, вы в конечном итоге потратите все свое время, отстаивая решение не использовать его.

С учетом вышесказанного, для обеспечения помехоустойчивости в агрессивной среде, например в автомобиле, вам понадобится шина, использующая дифференциальную сигнализацию.Это исключает i2c или SPI, что прискорбно, поскольку они соответствуют другим вашим требованиям.Как отмечает @Andrew Edgecombe, RS-485 будет работоспособным.

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

Другие советы

Для полной надежности вы не можете пройти мимо CANbus (но тогда это как бы подразумевалось вашим выбором процессора?)

В зависимости от того, с чем вы хотите взаимодействовать, это может быть очень просто — протокол базового уровня довольно прост.Но если вы хотите общаться с любыми другими непатентованными устройствами, вам придется реализовать протоколы более высокого уровня (например.CANopen).

Но если CANbus не подходит, я бы рекомендовал RS485 или RS422 (в зависимости от вашей топологии).Если все, что вы пытаетесь достичь, — это связь «точка-точка», это идентично RS232.(хотя вам придется разместить свой собственный уровень протокола сверху, если вы пытаетесь поддерживать многоточечную связь.)

Два других отличных варианта, кроме МОЖЕТ это LIN и FlexRay. ЛИН это более простой и медленный интерфейс, в то время как ФлексРэй более надежен и предназначен для критически важных систем безопасности, таких как управление тормозами в реальном времени.

Хорошую обзорную диаграмму того, как взаимодействуют различные варианты автобусов, см. здесь. горка.

Я всегда считал, что CAN является лучшим средством автомобильной связи.

  • Он имеет дифференциальную линию, которая выдерживает даже электрические сбои при передаче данных на физическом уровне.
  • он может обеспечить надежную скорость, он обеспечивает скорость 500 Кбод в большинстве автомобильных программных приложений.
  • Взаимодействие также легко, если вы знаете почтовый ящик контроллера CAN и структуру регистров.

Как говорили другие, CAN является стандартным, надежным, более надежным с низкой скоростью и т. д.

И даже в ядре Linux есть его поддержка, начиная с версии 2.6.15, если вам когда-нибудь понадобится более крупная система.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top