Ich entwerfe ein System, das serielle Kommunikation über ein Standard-USB-Kabel sowie über normales USB (aber nicht gleichzeitig) ausführen muss. Mit anderen Worten, wenn es an einen PC angeschlossen wird, erscheint es als USB-Gerät und wenn es an ein eingebettetes System angeschlossen wird, verwendet es ein einfacheres serielles Kommunikationsprotokoll. Die USB-Seite hat nur volle Geschwindigkeit (12 Mb/s), und die serielle Kommunikation muss nur 100 Kb/s betragen, obwohl 1 Mb/s schön wäre.
Das eigenständige Gerät verwendet einen Mikrocontroller für die Kommunikation. Sowohl das Gerät als auch das eingebettete System werden Mikrocontroller-basiert sein, höchstwahrscheinlich Atmel XMEGA. Eine Option wäre, ein Gerät mit USB-OTG/Host-Unterstützung auszustatten, aber ich möchte diese Komplexität, Kosten und begrenzte Auswahl an Mikrocontrollern vermeiden.
Die XMEGA-Mikros haben UART- und SPI-Peripheriegeräte an denselben Pins wie USB D+/D-. Ich könnte I2C auch von zwei anderen Pins zu ihnen leiten, und ich glaube nicht, dass dies die Signalqualität beeinträchtigen würde. Da das USB-Kabel nur zwei Leitungen hat, wenn ich SPI verwenden würde, wäre es unidirektional, was ich verkraften könnte. Bidirektionales I2C oder 3,3 V RS232 wären jedoch schön.
Hat jemand so etwas versucht? Ich bin ein wenig besorgt über die Kapazität eines 3 m langen USB-Kabels, das Probleme verursacht. Keines dieser seriellen Protokolle ist differentiell, sollte aber mit schlechten Signalflanken fertig werden. Sie können Leitungstreiber für I2C/SPI/TTL-RS232 erhalten, aber die, die ich mir angesehen habe, scheinen USB zu stören, wenn sie nicht verwendet werden. Wenn man darüber nachdenkt, könnte I2C ohne Leitungstreiber aufgrund der Notwendigkeit von Pull-up-Widerständen problematisch sein.
Nach einigen Recherchen tendiere ich zu 3,3 V RS232. Ich könnte SPI verwenden, aber synchrone Protokolle können bei hohen Geschwindigkeiten Probleme mit einem 3-m-Kabel haben. Wenn der Empfänger die Uhr generiert, gibt es eine gewisse Verzögerung, bevor der Sender sie sieht und die Antwort eintrifft. Wenn der Sender den Takt erzeugt, gibt es kein Verzögerungsproblem (da Daten um den gleichen Betrag verzögert werden), aber es verkompliziert etwas die Zwei-Wege-Kommunikation. Der andere Nachteil von SPI ist das Fehlen von Start-/Stopp-Bits, ist aber normalerweise kein Problem, da Sie eine Aktivierungsleitung verwenden können, um die Kommunikation an einem bekannten Punkt zu starten, aber ich habe nicht genügend Leitungen für eine.
Andererseits kann es den zusätzlichen Aufwand auf der Protokollseite wert sein, getaktet zu werden, damit es bei Signalverschlechterung robuster sein sollte. Abschlusswiderstände sollten helfen, mit Reflexionen fertig zu werden.
In jedem Fall sollte eine einigermaßen hohe Geschwindigkeit möglich sein. Die Sony Playstation verwendet SPI bei 3,3 V mit einem 500-kHz-Takt und funktioniert gut mit langen Leitungen. Der N64 verwendet eine einzelne aysnc-Datenleitung (kein Takt) bei etwa 333 kHz, wiederum über lange Leitungen.
Mein Rat ist, einen UART und RS485 zu verwenden.
Wenn Sie versuchen, ein nicht differenzielles Signalisierungsprotokoll auf einer so langen Leitung zu verwenden, erhalten Sie eine schreckliche BER bei nützlichen Datenraten. Differentielles Halbduplex-Async ist der richtige Weg.
Ihre Bedenken hinsichtlich der gemeinsamen Nutzung des Busses mit USB sind berechtigt, aber RS485-Treiber können (im Allgemeinen) in einen hochohmigen Modus versetzt werden, der möglicherweise bereit ist, mit USB zu koexistieren.
Dies wurde in vielen Anwendungen durchgeführt. Was Sie benötigen, ist ein Mux, der die Signalstifte entweder zu den USB-Stiften des Mikrocontrollers oder zu den Stiften der seriellen Schnittstelle leitet.
So landen die Signale immer dort, wo sie hingehören, und die beiden Busse können sich nicht gegenseitig stören.
In Bezug auf das serielle Protokoll ist es am besten, mit einem differenziellen Bus zu arbeiten (USB ist differenziell ...)
Es ist möglich, TTL seriell ein paar Meter zu bekommen, aber es hängt stark von der Geschwindigkeit und der Verkabelung ab!
Benutzer
Markt
Benutzer
Markt
Benutzer