Frage

Was serielle Kommunikationsbus würden Sie in einem Automobil-Embedded-System verwenden, wenn Ihre wichtigsten Auswahlkriterien waren:

  • Elektrisch robust
  • Langsamlauf (32 kb / s)
  • Einfache Programmierung
  • Einfache Schnittstelle mit Mikrocontroller

Es wird nicht viel Daten werden übertragen, aber es muss in regelmäßigen Abständen mit hohen Geschwindigkeit übertragen wird (100 bis 500 Hz). Ich finde, dass RS-232 reichte einfach nicht zuverlässig ist, wenn Sie Lärm in Ihrer Erdleitung haben. CAN-Bus scheint interessant, aber ich habe keine Erfahrung damit.

Wir sind derzeit Interesse an einer Kombination von AVR AT90CAN128 Mikrocontroller.

War es hilfreich?

Lösung

Sie haben bereits die AT90CAN128 gewählt, deren herausragende Merkmal im Vergleich zu anderen AVR-Prozessoren ist die Unterstützung für den CAN-Bus. Es gibt wirklich nicht eine bessere Wahl als CAN für eine Automobilanwendung mit Ihrer Datenrate und Störfestigkeit Anforderungen. Wenn Sie mit etwas anderem als CAN zu einem Automobilkunden marschieren in, werden Sie alle Ihre Zeit die Verteidigung der Entscheidung am Ende nicht, es zu benutzen.

Mit dieser sagte, für Störsicherheit in einer feindlichen Umgebung wie ein Auto benötigen Sie einen Bus mit differential signaling. Das schließt aus i2c oder SPI, was schade ist, weil sie Ihre andere Anforderungen erfüllen. RS-485 wäre praktikabel wie @ Andrew Edgecombe weist darauf hin.

Wenn Sie nicht ein kommerzielles Produkt bauen, sondern für den eigenen Gebrauch bauen etwas im Motorraum zu setzen, können Sie wahrscheinlich mit USB auszukommen. USB wird es einfach mit einem Laptop in dem Fahrgastraum zu verbinden, und wenn es nicht für High-Lärm-Umgebungen ausgelegt ist, es ist unterschiedlich bei einer angemessen hohen Spannung signalisiert.

Andere Tipps

Für alle Zuverlässigkeit aus Sie nicht in der Vergangenheit CANbus gehen können (aber dann wurde diese Art von impliziertem Ihrer Wahl des Prozessors?)

Je nachdem, was Sie wollen zu verbinden, kann dies sehr einfach sein - die Basis-Protokoll-Ebene ziemlich geradlinig. Aber wenn Sie zu irgendwelchen anderen nicht-proprietären Geräten sprechen mögen Sie die höheren Protokolle implementieren (z. B. CANopen).

Aber wenn CANbus nicht geeignet ist, dann würde ich empfehlen, RS485 oder RS422 (je nach Topologie). Wenn alle Sie versuchen zu erreichen, ist Punkt-Kommunikation Punkt ist es zu RS232 identisch. (Sie werden Ihre eigene Protokollschicht auf der Oberseite haben zu setzen, wenn Sie versuchen, obwohl Multidrop- Comms zu unterstützen.)

Zwei weitere ausgezeichnete Wahl andere als CAN ist LIN und FlexRay. LIN ist eine einfachere, langsame Schnittstelle während FlexRay ist robuster und für sicherheitskritische Systeme wie Echtzeit-Steuerung der Bremsen.

Für einen schönen Überblick Diagramm, wie die verschiedenen Bus-Optionen sehen miteinander in Beziehung dieses Dia .

Ich würde immer vorschlagen, dass CAN ist die beste in der Automobil-Kommunikation.

  • Es hat sich Differential Linie bekam, die auch standhalten kann, wenn es eine elektrische Störung in der Datenübertragung in der physikalischen Schicht ist
  • es zuverlässig Geschwindigkeit zur Verfügung stellen kann, ist es 500Kbaud Rate Geschwindigkeit in den meisten der Automobil-Software-Anwendungen dient.
  • Interfacing ist auch einfach, wenn Sie Mailbox CAN-Controller kennen und Struktur zu registrieren.

Wie bereits gesagt, CAN ist Standard, robust, robuster mit langsamer Geschwindigkeit etc.

Und es gibt auch in Linux-Kernel für sie ab Version 2.6.15 unterstützen, wenn Sie immer größeres System benötigen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top