Frage:
Woran erkennt ein Gerät (Dashcam), ob es an einen Computer oder eine Stromquelle angeschlossen ist?
A.S.
2018-04-10 18:13:04 UTC
view on stackexchange narkive permalink

Ich habe diese A118-Dashcam, die ich in einen Pi integrieren möchte.

Ich möchte während der Fahrt auf die montierte SD-Karte aufnehmen und zu Hause in WLAN-Reichweite die Dateien auf der SD-Karte über den Pi in mein Heimnetzwerk herunterladen.

Wenn diese Kamera an eine 5-V-Quelle am Zigarettenanzünder meines Fahrzeugs angeschlossen ist, beginnt die Kamera sofort mit der Aufnahme.

Wenn ich es an meinen Computer anschließe, werden Sie (auf dem Dashcam-Bildschirm) gefragt, ob Sie im Modus "Massenspeicher" oder "PC-Kamera" arbeiten möchten.

Dieses Video zeigt, wie ein Problem einer anderen Kamera behoben wurde, indem die TX- und RX-Anschlüsse von der Verbindung isoliert wurden.

Woher weiß die Kamera (oder ein normales USB-Gerät, wie auch ein Telefon), ob es an eine einfache Stromquelle oder an einen Computer angeschlossen ist?

Wie könnte ich dann diese Tatsache nutzen, um die Dashcam zu steuern? Wenn sie sich außerhalb meines Wifi-Bereichs befindet, zeichnet sie auf, wie wenn nur Strom zugeführt wird, und wenn sie sich im Wifi-Bereich befindet, um auf "Massenspeicher" zurückzugreifen Pi kann auf die Videodateien zugreifen und diese übertragen.

Ich denke, Relais würden funktionieren, aber ihre Größe macht es nicht praktisch. Wären Optokoppler eine bessere Alternative oder gibt es andere Vorschläge, die ich prüfen könnte?

Ich habe früher über dasselbe nachgedacht, als ich von der Arbeit nach Hause gefahren bin.Ich denke, es ist vielleicht besser, nur eine Dash-Cam zu verwenden, die dies überhaupt unterstützt.Es müsste zwar ein fest verdrahteter Niederspannungsschutz-Abwärtswandler sein.
Fünf antworten:
user4574
2018-04-10 19:08:10 UTC
view on stackexchange narkive permalink

Die USB-Batterieladespezifikation wird von vielen USB-Geräten verwendet, um zu bestimmen, an welche Art von Anschluss sie angeschlossen sind.

Die Haupttypen von Ports sind ...

Spezieller Ladeanschluss: Das Ladegerät zeigt an, dass es sich um einen dedizierten Ladeanschluss handelt, indem die D + - und D- -Leitungen kurzgeschlossen werden.

Standard-Downstream-Port: Ein USB-Port, der bis zu 500 mA Ladestrom (für einen USB 2.0-Port) sowie USB-Daten unterstützt. Das Gerät zählt auf dem USB-Bus auf, um zu bestimmen, wie viel Strom es ziehen kann. Das Feld bMaxPower im USB-Gerätedeskriptor wird verwendet, um den Host nach der Stromversorgung zu fragen.

Downstream-Ladeanschluss: Ein USB-Anschluss, der einen Ladestrom von bis zu 1,5 A sowie USB-Daten unterstützt. Das Gerät stellt fest, dass es an einen CDP angeschlossen ist, indem es zuerst die D-Leitung umschaltet. Wenn die D + -Leitung der D- -Linie folgt, weiß das Gerät, dass sie an eine Art Ladegerät angeschlossen ist. Als nächstes führt das Gerät eine sekundäre Erkennung durch Umschalten der D + -Leitung durch. Wenn die D-Leitung niedrig bleibt, weiß das Gerät, dass die Leitungen nicht kurzgeschlossen sind, sodass sie an einen nachgeschalteten Ladeanschluss angeschlossen werden müssen.

http://www.usb.org/developers/docs/devclass_docs/batt_charging_1_1.zip

Ein Standard 12 V zu 5 V Auto USB Konverter wäre ein dedizierter Ladeanschluss richtig?Was könnte ich mit dem Mux-Vorschlag in der anderen Antwort leicht umsetzen, indem ich die D + - und D- -Leitungen verbinde?
Ja, ein 12V bis 5V Adapter ist ein dedizierter Ladeanschluss.
@user96037, nicht unbedingt, einige Autoadapter können Apple Ladesignatur haben, die sich sehr von China DCP Signatur unterscheidet.
-1 Die Beschreibung des Standard-Downstream-Ports ist verkehrt herum.Ein Gerät "zählt nicht auf", es ist der USB-Host, der versucht, ein Gerät aufzulisten. Das Gerät "bestimmt nicht, wie viel Strom es jetzt ziehen kann", es ist der USB-Host, der bestimmt, ob es über genügend Strom verfügtBudget, um den Betrieb des Geräts zuzulassen.Das Feld bMaxPower dient dazu, den Host über den möglichen Stromverbrauch zu informieren, obwohl man diesen Mechanismus als "Fragen" interpretieren kann.
@AliChen Ich habe einen guten Teil der USB-Spezifikationen gelesen und denke, meine Beschreibung war korrekt.Meine Erklärung war Ihnen möglicherweise unklar, als Sie sie gelesen haben.Als ich sagte, dass das Gerät "auflistet", meinte ich nur, dass es am Aufzählungsprozess teilnimmt, der vom Host gesteuert wird.Ich habe nie gesagt, dass das Gerät den Aufzählungsprozess steuert.Außerdem bin ich mit der Funktionsweise von Gerätedeskriptoren vertraut.Ich habe sorgfältig darauf geachtet, dass das bMaxPower-Feld vom Gerät verwendet wird, um den Host nach Strom zu fragen.Der Host kann jederzeit entscheiden, ob er das Gerät zulassen möchte.
@user96037 bitte weiterhin Spezifikationen studieren.Ich habe diesen Prozess vor 18 Jahren abgeschlossen.Ein weiterer Ort, den Sie lesen sollten: Ein Standard-USB-Anschluss unterstützt nicht "bis zu 500 mA", sondern "mindestens 5 Ladeeinheiten", siehe Abschnitt 7.2.1. Hinweis: MINDESTENS.Ich habe Ihre Antwort abgelehnt, weil sie so viele Ungenauigkeiten dieser Art aufweist.
@AliChen ist aber nicht die Einheitslast in USB 2.0 100mA.Also 100 mA x 5 = 500 mA.Es scheint nicht, dass das Gerät an einen Hub angeschlossen wird, an dem der Stromverbrauch anderer Geräte ins Spiel kommen würde.
nschurando
2018-04-10 18:54:29 UTC
view on stackexchange narkive permalink

Um sehr präzise zu sein, verwenden USB-Geräte die D + / D- -Leitungen, um festzustellen, ob sie an einen USB-Host oder ein Ladegerät angeschlossen sind.

Wenn Sie möchten, dass das Gerät zwischen den beiden von Ihnen beschriebenen Modi wechselt, kann ich die Verwendung eines USB 2: 1-Mux-ICs wie FSUSB43 empfehlen, der an GPIOS des Raspberry Pi angeschlossen ist.So etwas in der Art:

enter image description here

Wie @dwizum im Kommentar unten ausgeführt hat, müssten Sie auch einen Transistor auf der 5-V-VBUS-Leitung hinzufügen, die zur Schaltnocke führt, um sie aus- und wieder einzuschalten, da das Umschalten von D + / D- nur zu undefiniertem Verhalten führen kann.Wenn Sie die VBUS-Leitung beim Umschalten beim Umschalten auf das USB-Gerät schalten, wird es zur Vereinfachung gezwungen, für eine neue Entdeckung bereit zu sein.

Von dort aus können Sie problemlos Ihre eigenen Skripte schreiben, die auf dem Raspberry Pi ausgeführt werden und die Status dieser GPIOS ändern, möglicherweise mithilfe von WiringPi, basierend auf verschiedenen Ereignissen wie der -Liste der verfügbaren Wi-Fi-Zugangspunkte.

Könnten in diesem Fall die D1 + - und D1- -Verbindungen einfach schweben?Oder sind sie (zum Beispiel mit GND) in einem herkömmlichen Ladegerät verbunden (obwohl ich nicht erwarte, dass dies der Fall ist)?
Ich würde dringend empfehlen, sie an die D + / D- -Leitungen des USB-Autoladegeräts zu binden, da sie, obwohl sie keine Daten übertragen, möglicherweise dennoch vom Autoladegerät verwendet werden, um anzukündigen, wie viel Strom es liefern kannFür die Dash-Cam, von der ich annehme, sind mehr als die Standard-500-mA-Leistung erforderlich.Siehe diese [Übersicht über die Version 1.2 zum Laden des USB-Akkus] (https://www.maximintegrated.com/de/app-notes/index.mvp/id/5801).
Nur ein Kommentar - das Umschalten der Dashcam-Datenpins zwischen den beiden USBs (Pi vs Autoladegerät) ohne auch das Umschalten der Dashcam-USB-Power-Pins funktioniert möglicherweise nicht oder führt zu seltsamem Verhalten: Soweit ich weiß, gibt es kein Standardprotokoll für den AustauschUSB-Datenpins an einen neuen Host, während die Power-Pins unter Spannung bleiben.Jemand kann mich korrigieren, wenn ich falsch liege.Wenn Sie es ausschalten, die Datenpins umschalten und dann wieder einschalten, wird der Handshake erneut ausgelöst und der Switch kann erkannt werden.
In der Tat, danke, dass Sie darauf hingewiesen haben.Ich habe meine Antwort entsprechend bearbeitet.
Bimpelrekkie
2018-04-10 18:34:06 UTC
view on stackexchange narkive permalink

Woher weiß die Kamera (oder ein normales USB-Gerät, wie auch ein Telefon), ob es an eine einfache Stromquelle oder an einen Computer angeschlossen ist?

USB verfügt über 4 Anschlüsse: 2 für die 5-V-Versorgung und 2 für Daten.

Ein Netzteil reagiert im Allgemeinen nicht auf Signale auf den Datenleitungen (mit Ausnahme von Schnellladeprotokollen, aber das ist mehr Pegelerkennung als übertragene Daten).

Ein PC reagiert auf Signale auf den Datenleitungen. Die Kamera kann eine USB-Verbindung anfordern, und der PC gewährt diese Anforderung (oder nicht). Einige Informationen werden ausgetauscht.

Grundsätzlich "spricht" die Kamera nur über die USB-Datenleitungen, sobald sie erkennt, dass der USB-Eingang mit Strom versorgt wird. Wenn keine Antwort erfolgt, muss es sich um ein "dummes" Netzteil handeln. Wenn eine Antwort eingeht, muss es sich um einen PC (USB-Host) handeln.

Die Steuerung des Verhaltens der Kamera in Abhängigkeit von der Reichweite von WLAN kann von der in der Kamera ausgeführten Software (Firmware) durchgeführt werden. Im Allgemeinen können und sollten Sie dies nicht ändern. Wenn Sie es falsch verstehen, wird die Kamera unbrauchbar (nicht mehr funktionsfähig).

Ich wollte gerade meine Antwort schreiben, als diese auftauchte!Ich habe so ziemlich alles abgedeckt, was ich sagen wollte!+1!
Ist das Gerät also dasjenige, das die Kommunikation initiiert, und wenn es eine Antwort erhält, weiß es, dass es sich um einen Computer handelt?Ich habe nicht vor, mit der Firmware herumzuspielen, ich habe keine Ahnung, wie.Was ich tun möchte, ist die Steuerung zu steuern. Wenn sich der WLAN-Status ändert, wird die Kamera zurückgesetzt, wobei der TX RX in Reichweite angeschlossen und die Verbindung getrennt wird, wenn er sich außerhalb der Reichweite befindet.Wie könnte ich das machen?Oder gibt es einen Grund, warum dies möglicherweise nicht funktioniert?
Dieser Teil der Frage fällt meiner Meinung nach in die Kategorie * "Ich möchte etwas Komplexes, habe aber keine Ahnung, wie es geht, und ich habe auch keine Erfahrung mit Elektronik." * Ihr erster Schritt sollte darin bestehen, das RPi auf einen IO-Pin umzuschaltenabhängig davon, ob das Netzwerk vorhanden ist oder nicht.Steuern Sie dann ein Relais mit diesem IO-Pin-Signal und schalten Sie den USB ein / aus.Ich würde ein Relais empfehlen, da für das USB-Schalten mit Elektronik ein Chip erforderlich ist. Es ist einfach, die USB-Signale zu vermasseln, damit es nicht mehr funktioniert oder die Kamera beschädigt.
Das Netzwerk und andere Teile eines solchen Systems sind nur Hintergrundinformationen. Die Leute fragen häufig danach, damit sie besser wissen, worum es bei einer Frage genau geht.Meine spezielle Frage in diesem Fall war, wie die Kommunikation zwischen dem Pi und der Kamera geändert werden kann.Wie die anderen Antworten zeigten, werde ich einen Mux verwenden, um zwischen dem Pi und den kurzgeschlossenen D + D-Leitungen zu wechseln.
JimmyB
2018-04-10 19:39:03 UTC
view on stackexchange narkive permalink

Sie können versuchen, die USB-Anschlüsse des Raspberry zu deaktivieren / aktivieren, je nachdem, ob die Kamera eine Datenverbindung erkennen soll oder nicht.

So schalten Sie die USB-Anschlüsse aus (dies schaltet auch das Ethernet aus):

echo '1-1' |sudo tee / sys / bus / usb / drivers / usb / unbind

Zum erneuten Einschalten

echo '1-1' |sudo tee / sys / bus / usb / drivers / usb / bind

( https://www.raspberrypi.org/forums/viewtopic.php?t=172313#p1217773)

IIRC, zumindest bei alten PIs, würde dies nicht die Stromleitungen der USB-Ports abschalten, sondern nur die Stromversorgung des USB / Ethernet-Chips des Pi, wodurch jegliche Kommunikation und Aufzählung em effektiv deaktiviert würden> an diesen USB / Ethernet-Anschlüssen;Ein Gerät, das an einen der deaktivierten Ports angeschlossen ist, kann nicht erkennen, dass es an etwas anderes als eine USB-Stromquelle angeschlossen ist.

Ale..chenski
2018-04-11 00:19:13 UTC
view on stackexchange narkive permalink

USB-Geräte (und insbesondere Dashcams) sind intelligente Geräte.Wenn sie mit dem USB-Host verbunden sind, führt der Host eine Aufzählung durch und gibt alle anderen USB-Schnittstellenaktivitäten aus.Und ein USB-Gerät merkt sich das.

Bei Anschluss an ein dummes Ladegerät erfolgt keine USB-Aufzählung / Kommunikation.So kennt die Dashcam / was auch immer den Unterschied.

In Bezug auf das eigentliche Problem, warum die Dashcam nicht intern aufzeichnet, wenn sie an einen funktionierenden USB-Host angeschlossen ist, ist dies eine Frage des Designs der Dashcam-Software - sie ist so konzipiert.Wenn Sie D + / D--Drähte in der Verbindung zwischen PC und Dashcam abschneiden (nicht Tx und Rx !!!), wird die USB-Kommunikation offensichtlich unterbrochen und die Dashcam wechselt in den Standardmodus mit Ladegerät.



Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...