Wie man einen "hundert Jahre alten" USB-Hub in einen "intelligenten" verwalteten verwandelt und gleichzeitig 300 $ spart

    Irgendwie brauchte ich schon vor langer Zeit einen Hub, am besten mit einer großen Anzahl von Ports und einer recht praktischen Form, die sich zum Einbetten anstelle eines Diskettenlaufwerks in den 3,5-Zoll-Schacht eignet. Ein kurzer Blick auf den Flohmarkt warf das Modell D-Link DUB-H7 und sogar in der Kombination „2 zum Preis von 1“. Äußere Inspektion hat nichts Besonderes ergeben, der Hub als Hub, solide gebaut, ein großer "Drucker" USB AM-BM auf der Rückseite und ein 3 A-Netzteil. Wie immer nahm ich es zuerst auseinander, freute mich über wenige Leerstellen anstelle von Elementen sowie über hochwertiges Löten und beruhigte mich. Nur für den Fall, dass ich im Internet war, um zu sehen, was der Hub war und ob es interessante Projekte mit seiner Beteiligung gab. Es gab keine Projekte, Benutzerberichte 50/50, im Allgemeinen keine Dynamik. Die Nabe für 5-7 Jahre, ziemlich erträglich gearbeitet und hat ihre Aufgabe erfüllt, dann bewegte es sich reibungslos zur elektronischen Trödelbox und wäre wahrscheinlich zusammen mit unbekannten Adaptern, Adaptern usw. verschwunden. Aber ich hatte ein Ereignis in meinem Leben, bei dem ich in Taschen mit altem Trödel graben musste, um dies zu finden Es stellte sich heraus, dass es ein einzigartiger D-Link ist und den Staub abschüttelt, um ihn ins Licht Gottes zu ziehen. Wenn es interessant ist zu hören warum - willkommen unter Schnitt.


    Twink Twink Augenblick

    Intro oder Crying über gierige USB-Hub-Hersteller


    Mit dem Aufkommen von kleinen, komfortablen SoC-Routern (wie dem Klon des beliebten chinesischen Mini-Routers Hame A15, auch „A5-V11 ohne Marken ) und der weit verbreiteten Einführung von openwrt für die Verwaltung einer Vielzahl von Geräten (in der Mehrzahl) In diesen Fällen werden diese Geräte über USB angeschlossen.) Die Verwaltung der Stromversorgung verschiedener Modems, Kartenleser, USB-RS232-Konverter usw. wird zu einer sehr dringenden Aufgabe. Am häufigsten wird bei der Arbeit mit GSM der Anschluss gesteuert Emami (neu zu starten, zum Beispiel). Grundsätzlich haben die Menschen bereits genügend Lösungen entwickelt.. Für diese Zwecke beginnen Sie mit der Verwendung freier GPIO-Pins im Router und enden mit vorgefertigten Relais. Es gibt Lösungen von Drittherstellern. Dies ist zum Beispiel ein programmierbarer USB-Hub für 4 Ports von Acroname , der ebenfalls reich an Software und Software ist, jedoch etwa 300 US-Dollar kostet.


    Bild

    Es gibt eine billigere Option, einen intelligent umschaltbaren Hub mit dem angenehmen Namen Yupkit YKUSH für nur 35 €:


    Bild

    Die kostengünstigsten können ein Paket aus dem billigsten USB-Hub, ein normalerweise geschlossenes 5-V-Relais und ein beliebiges Arduino-K verwenden, um die Stromversorgung vom USB-Port zu trennen, falls dies erforderlich ist. Die Kosten für eine solche Entscheidung <10 $, ausgenommen die Zeit, die für das Löten und das Programmieren von Arduino aufgewendet wurde.


    Es scheint eine Sackgasse zu sein. Entweder teuer und schön oder einfach schlicht und frech . Es stellte sich jedoch heraus, dass es eine dritte Option gibt. Darüber hinaus ist die Entscheidung so alt wie die USB 2.0-Spezifikation für Hubs, in der sie beschrieben wird.


    Auszüge aus der Spezifikation zum USB-Power-Management

    Self-powered hubs may have power switches that control delivery of power downstream facing ports but it is not required. Bus-powered hubs are required to have power switches. A hub with power switches can switch power to all ports as a group/gang, to each port individually, or have an arbitrary number of gangs of one or more ports. A hub indicates whether or not it supports power switching by the setting of the Logical Power Switching Mode field in wHubCharacteristics. If a hub supports per-port power switching, then the power to a port is turned on when a SetPortFeature(PORT_POWER) request is received for the port. Port power is turned off when the port is in the Powered-off or Not Configured states. If a hub supports ganged power switching, then the power to all ports in a gang is turned on when any port in a gang receives a SetPortFeature(PORT_POWER) request. The power to a gang is not turned off unless all ports in a gang are in the Powered-off or Not Configured states.

    Although a self-powered hub is not required to implement power switching, the hub must support the Powered-off state for all ports. Additionally, the hub must implement the PortPwrCtrlMask (all bits set to 1B) even though the hub has no power switches that can be controlled by the USB System Software.


    Bei der Übersetzung ins Russische stellt sich heraus, dass der USB-Standard bereits die Fähigkeit zur Kontrolle der Leistung der Ports mit Hilfe der so genannten Ports festgelegt hat. Pro Port Power Switching (PPPS) , aber ein Gerät zu treffen, das diese Funktion unterstützt, ist nicht nur schwer, sondern auch sehr schwer. Um die PPPS-Funktionalität zu implementieren, werden zusätzliche Komponenten (Feldeffekttransistoren und Rohrleitungen) benötigt, die zum Speichern nicht in Hubs installiert werden.


    Einige Hersteller reagieren sensibel auf die Anforderungen des Marktes und geben in den Hub-Spezifikationen die PPPS-Funktion an. In der Realität geht der Fall jedoch nicht weiter. Im Prinzip ist es schwierig, einen Fehler zu finden, da viele Chips in den Hubs diese Funktion unterstützen, aber es ist unmöglich, sie ohne zusätzliche Schalter (Transistoren) zu implementieren (meistens werden USB-Ports direkt an die + 5V-Leitung angeschlossen).


    Ich habe sogar mehrere kleine USB-Hubs demontiert, die ich zusammen mit dem A5-V11-Router verwenden wollte. Im Inneren stellte sich heraus: der GL850G- Chip und der von den chinesischen FE1.1s heißgeliebte Chip . Natürlich wurden nur die Controller selbst mit einem Minimum an Details gefunden. In Anbetracht der Miniaturgröße der Platine ist es schwierig, selbst eine gelenkige Verdrahtung des Transistors und der Teile, die mit ihm verbunden sind, zu platzieren. Ich musste es beruhigen. Wenn jedoch je nach Chip die Überstromerkennung oder eine einzelne oder gestaffelte Leistungsregelung im Datenblatt erwähnt wird , können Sie den Smart-Test eines solchen Geräts mit der im Artikel beschriebenen Methode durchführen . Ein Freund verwendete eine Kombination aus einem Transistor und einer Reihe von Widerständen, um die PPPS-Funktion in seinem Hub zu aktivieren.


    Änderungsschema und Aussehen des Geräts
    image
    image

    Wenn Sie die Dokumentation lesen, werden Sie sich auch darin einfangen, dass es Nein-Nein gibt und ja, es gibt den Hinweis, dass der Portsteuerungsmodus durch Hinzufügen von AIC1526-0 oder MIC2026 (Zweikanal-Stromverteilungsschalter) zur Schaltung implementiert werden kann.


    Schemas von Datenblättern werden nicht lügen


    Ein Teil des Hauptteils oder gehe zum Punkt


    Überwältigt von düsteren Gedanken über den Kauf chinesischer Hubs mit unbekannter Funktionalität ("die Katze in der Tasche") und die Unmöglichkeit, sie vorher zu überprüfen, stieß ich unabsichtlich auf einen Artikel über das Einrichten von openwrt für das Power-Management eines USB-Hubs D-Link DUB-H7 in einem grauen Koffer vergessen .



    Nach der Prüfung der Hardware stellte sich heraus, dass sich an Bord des Hubs neben dem ziemlich fortschrittlichen Philips ISP1521BE-Controller auch eine ganze Reihe dieser zweikanaligen Stromverteilungsschalter AIC1528-0 für die vollständige Leistungsumschaltung befindet. Dem Datenblatt zufolge kann der Chip mit einem minimalen Body-Kit selbst die Leistung der Downstream-Ports steuern (und es hat sich noch herausgestellt, dass viele Dinge nicht implementiert wurden, z. B. keine Anzeige der Upstream-Port-Aktivität mithilfe der GoodLink-Technologie oder eines USB 1.1-Hosts, um einen Mix aus 2.0 und 1.1 richtig zu unterstützen Downstream-Ports usw. usw.).


    Übrigens, für diejenigen, die sich für die Wiederholung des eingeschlagenen Pfads entscheiden, werde ich gleich sagen, dass die modernen Versionen des D-Link DUB-H7 (in einem glänzenden schwarzen Gehäuse) nicht so nützlich sind wie die alten grauen Männer.



    Nach Informationen von wikidevi.com ( 1 , 2 , 3 , 4 ) gibt es mehrere Revisionen dieses Hubs mit einem anderen Satz von Komponenten an Bord und dementsprechend mit unterschiedlicher Funktionalität (A1 / A5 - ISP1521BE 7-Port, B1-2xGL854G 4-Port, C1 - 2xGL850Z 4-Port).


    Die Aufmerksamkeit des D-Link DUB-H7 gilt auch, weil er neben seiner guten Funktionalität auch die preisgünstigste (in Bezug auf Preis und Verbreitung) in unserer Region ist. Unter den Modellen, die zusammen mit "Per Port Power Switching" erwähnt werden könnten, können Sie beispielsweise auch Folgendes erwähnen:


    • Linksys USB2HUB4 USB 2.0-Hub.
    • D-Link DFB-H7 Combo-Hub
    • Elecom U2H-G4S
    • Sanwa Versorgung USB-HUB14GPH
    • Targus Inc. PAUH212
    • Hawking Technology UH214

    Die genannten Geräte habe ich nicht gesucht, weil ich mit der Revisionsversion A5 einmal Glück hatte. Wenn ich jetzt jedoch einen solchen Hub kaufen müsste, würde ich versuchen, die Revision B1 zu finden , da der Chip, auf dem er aufgebaut ist (GL854G), neben dem Port-Power-Management so etwas wie einen Multi Transaction Translator enthält .



    Die Bedeutung eines Multi Transaction Translator (MTT) in einem USB-Hub


    Ein kleiner Exkurs, um zu erfahren, was dieser Multi Transaction Translator (MTT) ist und warum er so wichtig und notwendig ist. Der Operationssender (English Transaction Translator, TT) ist eine wichtige Komponente eines Hochgeschwindigkeits-Hubs, der die Kommunikation zwischen den Upstream- und Downstream-Ports des Hubs ermöglicht, insbesondere wenn diese Ports mit unterschiedlichen Datenübertragungsgeschwindigkeiten arbeiten. Tatsächlich trennt TT Geräte mit niedriger und mittlerer Geschwindigkeit von Hochgeschwindigkeitsgeräten (insbesondere USB 2.0) und ist für den Betrieb mit USB 1.1-Geschwindigkeiten verantwortlich.


    Der Transmitter-Betrieb kann auf zwei Arten erfolgen: Single (English Single Transaction Translator, STT) oder mehrere (English Multiple Transaction Translator, MTT). Im Fall von STT wird ein Sender für alle Ports verwendet, und im Fall von MTT hat jeder Port einen eigenen Sender. Es ist klar, dass die erste Option billiger und einfacher ist, wobei der Hauptnachteil dieser Option darin liegt, dass beim Anschluss mehrerer USB 1.1-Ports an den Hub alle ein einziger Engpass vorhanden ist. Ich denke, Sie können sich vorstellen, was mit der Geschwindigkeit des Austauschs passieren wird.



    Einfach ausgedrückt, haben STT-Hubs eine Begrenzung für die Anzahl der Geräte, die gleichzeitig verwendet werden können. Andernfalls kann es zu Paketverlusten aufgrund von Konflikten bei der Planung von Datenübertragungen kommen, wobei der Hub überlastet wird (insbesondere bei der Verwendung von aktiv kommunizierenden Geräten wie Soundkarten usw.). Daher ist es bei der Auswahl eines Hubs besser, sich sofort auf Geräte mit MTT zu konzentrieren und nicht auf die Ursache von Instabilitäten bei der Arbeit zu achten Wenn es bereits einen Hub gibt, der leider vom STT stammt, müssen Sie nur noch die Standards der an den Hub angeschlossenen Geräte sorgfältig überprüfen und, wenn möglich, die Anzahl der angeschlossenen USB 1.1 auf eins reduzieren.


    Leider haben die meisten Low-Cost-Hubs, die auf Low-End-Chips aufgebaut sind (zB 1.1s, GL850G und ISP1521BE) meines A5-Hubs, STTs an Bord, die teurer und fortgeschrittener sind (GL852G, GL854G (B1-Revision von D-Link DUB-H7). GL3520, VL812, VL813, SMSC USB2514) führen MTT aus.


    Sie können die Art des Senderbetriebs überprüfen, indem Sie entweder das Datenblatt auf dem Chip lesen (die Chinesen sind jedoch oft nicht in der Lage oder nicht bereit, die Marke des Chips zu melden) oder indem Sie den Hub mit * nix an einen Computer anschließen und den Befehl lsusb -v ausführen und die entsprechenden Dienstinformationen zu dem betreffenden Hub finden Name). Die Zeile DeviceProtocol zeigt entweder Single TT oder Multi TT an . Es ist klar, dass es besser ist, nur mit Multi zu kaufen :)


    Beschreibung der Eigenschaften des Hubs, die vom Befehl lsusb ausgegeben werden

    Bus 001 Device 005: ID 2001:f103 D-Link Corp. DUB-H7 7-port USB 2.0 hub
    Couldn't open device, some information will be missing
    Device Descriptor:
    bLength 18
    bDescriptorType 1
    bcdUSB 2.00
    bDeviceClass 9 Hub
    bDeviceSubClass 0 Unused
    bDeviceProtocol 1 Single TT
    bMaxPacketSize0 64
    idVendor 0x2001 D-Link Corp.
    idProduct 0xf103 DUB-H7 7-port USB 2.0 hub
    bcdDevice 1.00
    iManufacturer 0
    iProduct 0
    iSerial 0
    bNumConfigurations 1
    Configuration Descriptor:
    bLength 9
    bDescriptorType 2
    wTotalLength 25
    bNumInterfaces 1
    bConfigurationValue 1
    iConfiguration 0
    bmAttributes 0xe0
    Self Powered
    Remote Wakeup
    MaxPower 0mA
    Interface Descriptor:
    bLength 9
    bDescriptorType 4
    bInterfaceNumber 0
    bAlternateSetting 0
    bNumEndpoints 1
    bInterfaceClass 9 Hub
    bInterfaceSubClass 0 Unused
    bInterfaceProtocol 0 Full speed (or root) hub
    iInterface 0
    Endpoint Descriptor:
    bLength 7
    bDescriptorType 5
    bEndpointAddress 0x81 EP 1 IN
    bmAttributes 3
    Transfer Type Interrupt
    Synch Type None
    Usage Type Data
    wMaxPacketSize 0x0001 1x 1 bytes
    bInterval 12


    Wenn Sie den Befehl lsusb -v -t ausführen , sehen Sie eine schöne hierarchische Struktur der verbundenen USB-Geräte.



    Anstelle von lsusb können Sie das Dienstprogramm hwinfo mit der Taste --usb verwenden (es ist wünschenswert, es über sudo apt-get install hwinfo vorinstallieren ). Die Ausgabe von Informationen über USB-Geräte sieht dann etwas anders aus:


    Von hwinfo herausgegebene Informationen

    lab@lab-G:~$ hwinfo --usb
    23: USB 00.0: 10a00 Hub
    [Created at usb.122]
    Unique ID: zFuK.sOcBcpBDhs4
    Parent ID: k4bc.9T1GDCLyFd9
    SysFS ID: /devices/pci0000:00/0000:00:1d.7/usb1/1-8/1-8:1.0
    SysFS BusID: 1-8:1.0
    Hardware Class: hub
    Model: "D-Link DUB-H7 7-port USB 2.0 hub"
    Hotplug: USB
    Vendor: usb 0x2001 "D-Link"
    Device: usb 0xf103 "DUB-H7 7-port USB 2.0 hub"
    Revision: "1.00"
    Driver: "hub"
    Driver Modules: "usbcore"
    Speed: 480 Mbps
    Module Alias: "usb:v2001pF103d0100dc09dsc00dp01ic09isc00ip00in00"
    Config Status: cfg=new, avail=yes, need=no, active=unknown
    Attached to: #21 (Hub)


    Im Allgemeinen klappen die Besonderheiten der Low-Speed-Geräte kurz auf und jetzt ist es an der Zeit, zum Softwareteil zu gehen.


    Wir verwalten die Leistung von USB-Ports


    Ich sage sofort, dass ich keinen Weg finden konnte, PPPS-Funktionalität in einer Windows-Umgebung zu implementieren (zumindest aus freiem Interesse). Maximum - Aktivieren / Deaktivieren Sie das Gerät mithilfe des Dienstprogramms devcon . Ich würde mich freuen, wenn jemand von den Lesern korrigiert und ergänzt wird. In der Zwischenzeit werden alle Prozeduren am Beispiel von Ubuntu ausgeführt (im Fall von openwrt ist der Algorithmus ähnlich, obwohl er im letzten Trunk bereits in der "Distribution" enthalten sein sollte).


    Die Funktion " Per Port Power Switching" (PPPS) oder "Port Power Switching" wird auf Hubs mit Hardwareunterstützung für diese Funktion mithilfe des Hub-Ctrl- Programms oder des zugehörigen Nachkommens uhubctrl implementiert . Ich werde sie der Reihe nach betrachten.


    HUB-CTRL


    Das Programm wird von dem japanischen geschriebenen Unabhängigkeitskämpfer Ingenieure Niibe Yutaka im Jahr 2006. Aber es funktioniert jetzt ohne Probleme. Für die Installation benötigen wir eine * nix- und libusb-dev- Bibliothek . Der Ubuntu 16.04 LTS-Algorithmus lautet beispielsweise wie folgt:


    Ext. Installieren Pakete: sudo apt-get update & & sudo apt-get installieren libusb-dev git gcc
    Quellen zum Herunterladen: git clone https://github.com/codazoda/hub-ctrl.c
    Kompilieren mit gcc: cd hub-ctrl.c && gcc -o hub-ctrl hub-ctrl.c -lusb

    Wenn die Adresse nicht verfügbar ist, können Sie die Quellen von hier oder von hier aus manuell herunterladen und mit dem oben beschriebenen Befehl kompilieren.


    Das Programm hat eine relativ einfache Befehlszeilensyntax, die in die folgende Beschreibung fällt:


    ./ hub-ctrl [{-h HUBNUM | -b BUSNUM -d DEVNUM}] \ [-P PORT] [{-p [VALUE] | -l [VALUE]}]
    wobei HUBNUM die Hubnummer, BUSNUM-Busnummer, DEVNUM-Gerätenummer und PORT-Portnummer ist


    Um diese Parameter herauszufinden, führen Sie einfach den Befehl lsusb aus :



    Übrigens kann das Hub-Ctrl-Programm als eine Art „Probe“ eines USB-Hubs auf die Tatsache hinweisen, dass es die Fähigkeit hat, die Port-Stromversorgung zu verwalten. Es reicht aus, es mit der -v-Taste auszuführen. Wir erhalten eine Liste der unterstützten Hubs im System (die INFO-Leitung) und den Status der Ports (in meinem Fall sind alle Ports deaktiviert).


    lab @ lab-G: ~ / hub $ sudo ./hub-ctrl -v
    Hub # 0 um 001: 006
    INFO: individuelle Leistungsumschaltung.
    WARN: Port-Anzeigen werden NICHT unterstützt.
    Hub-Port-Status:
    Port 1: 0000.0000
    Port 2: 0000.0000
    Port 3: 0000.0000
    Port 4: 0000.0000
    Port 5: 0000.0000
    Port 6: 0000.0000
    Port 7: 0000.0000

    So sieht die Konfiguration aus, wenn alle Ports aktiviert sind:


    lab @ lab-G: ~ / hub $ sudo ./hub-ctrl -v
    Hub # 0 um 001: 006
    INFO: individuelle Leistungsumschaltung.
    WARN: Port-Anzeigen werden NICHT unterstützt.
    Status des Hub-Ports:
    Port 1: 0000.0100 Strom
    Port 2: 0000.0100 Strom
    Port 3: 0000.0100 Strom
    Port 4: 0000.0100 Strom
    Port 5: 0000.0100 Strom
    Port 6: 0000.0100 Strom
    Port 7: 0000.0100 Strom

    Um einen der Ports zu aktivieren, müssen Sie den Befehl sudo ./hub-ctrl -h 0 -P 1 -p 1 ausführen , wobei -h angibt, welcher Hub verwendet wird (in meinem Fall 0). -P gibt an, welcher Port (1- der Port in meinem Fall) und -p zeigt den Status an (0-Aus, 1-Ein).



    Um die Konfiguration wie in der Abbildung oben zu erhalten, mussten die folgenden Befehle nacheinander ausgeführt werden (für ursprünglich deaktivierte Ports).


    sudo ./hub-ctrl -h 0 -P 2 -p 1
    sudo ./hub-ctrl-h 0 -P 4 -p 1
    sudo ./hub-ctrl -h 0 -P 6 -p 1


    Dementsprechend ist es nicht schwierig, ein Skript zu schreiben, bei dem die LEDs zum Spaß in der gewünschten Reihenfolge blinken. Beispiele für solche Dinge sind bereits vorhanden und funktionieren erfolgreich:
    Morsecode auf einem USB-Hub, Christbaumkerzen usw. usw. Aufgrund der Möglichkeiten von hub-ctrl hatte ich nicht genug von der Funktion der zyklischen Inklusion, um meine momentanen Lichtphantasien zu realisieren (um keine Zeit mit dem Schreiben des Skripts usw. zu verschwenden). Dieser lästige Fehler wird im Nachfolger - Uhubctl - behoben.


    Uhubctl


    Das uhubctl-Programm ist ein optimiertes Analogon von hub-ctrl und weist einige kosmetische Unterschiede auf (und unterstützt natürlich mehr Geräte).


    Arbeit mit Uhubctl:

    Theoretisch kann das Dienstprogramm so kompiliert werden, dass es in der Windows-Umgebung ausgeführt werden kann, aber ... Bisher interagiert es jedoch mit Geräten über den Treiber winusb.sys, der nicht direkt auf den Hub zugreifen kann. Das Programm behauptet auch, dass USB 3.0 unterstützt wird (USB 3.0-Hubs, die Per-Port Power Switching unterstützen, sind übrigens weitaus mehr als USB 2.0-Hubs mit ähnlicher Funktionalität). Wenn Sie mit einem USB 3.0-Hub arbeiten, der an einen USB 3.0-Upstream-Port angeschlossen ist, definiert das Programm diesen als zwei unabhängige virtuelle Hubs: USB 2.0 und USB 3.0. Die USB-Geräte selbst werden je nach ihren Fähigkeiten und Verbindungsgeschwindigkeit an einen von ihnen angeschlossen . Um solche Geräte zu steuern, schaltet das Programm die Stromversorgung der virtuellen Hubs standardmäßig ein / aus (Sie können das Dienstprogramm in den manuellen Modus schalten, indem Sie den Befehl –e zum Startbefehl hinzufügen).


    Wichtig: Das Adressierungssystem für USB-Anschlüsse kann zu Verwirrung führen (bei Hub-Ctrl und Uhubctl ist es ähnlich). Während des Betriebs wird dieselbe Adressierungsmethode verwendet, die der im Linux-Kernel ähnelt: bx.yz, wobei b die USB-Busnummer und x, y, z die Portnummern der Knotenkette sind, beginnend mit dem Root-USB-Hub für diesen Bus. Wenn es mehr als einen verwalteten USB-Hub gibt, können Sie die korrekten Parameter ermitteln, indem Sie uhubctl mit dem Parameter -l (location) ausführen. Ich beachte, dass diese Adressierung halbstabil ist - sie ändert sich nicht, wenn Sie die USB-Geräte entfernen und wieder an denselben physischen Port anschließen.


    Der Algorithmus zum Kompilieren eines Programms ähnelt dem Algorithmus für hub-ctrl. Mit der Ausnahme, dass Sie zusätzlich die Bibliothek libusb-1.0 (Version 1.0.12 oder höher) mit dem üblichen Befehl sudo apt-get install libusb-1.0-0-dev installieren und die Binärdateien mit dem Befehl make kompilieren müssen .


    Die Syntax für das nächste Ausführen des Programms


    uhubctl -a off -p 2


    Dieser Befehl schaltet die Stromversorgung (-a aus oder -a 0) an Port 2 (-p 2) ab. Unterstützte Befehle Aus / Ein / Zyklus (oder 0/1/2). Die Cycle- Taste schaltet die Stromversorgung aus, wartet eine Weile (bestimmt durch die -d-Taste) und schaltet sie wieder ein. Ie Nun kann der Hub den Mikrocontroller leicht ersetzen.


    Was folgt daraus oder Schlussfolgerungen


    Daraus folgt, dass es im alten Hub von D-Link ein „Geheimnis“ gibt. Die Verwendung der beschriebenen Technologie (PPPS) ist sinnvoll, wenn ein Array von an dem USB-Bus angeschlossenen Geräten ferngesteuert werden muss. Darüber hinaus wird diese Methode bereits zum Deaktivieren von Festplatten , Webcams und GSM-Modems (wie im Bild) verwendet:


    Bild

    Was die Modems und den von mir erwähnten D-Link-DUB-H7 angeht , gibt es Leute, die die Leistung eines solchen Bundles in Frage stellen (beim Arbeiten mit dem Programm hub-ctrl).


    Der Grund ist, dass ...

    "… эксперименты с использованием Dlink DUB H-7 показали, что hub-ctrl -p 0 понижает напряжение только до уровня 1.47V. При этом после вставки модема в такой "выключенный порт" светодиод не моргает, однако файлы /dev/ttyUSBx для данного модема в системе появляются. Они даже могут быть открыты. Однако запись команд и чтение ответов из этого порта не заканчиваются успехом."


    Die in diesem Artikel beschriebenen Dienstprogramme (lsusb, hwinfo, hub-ctrl) können eine große Hilfe bei der Auswahl des nächsten USB-Hubs sein, insbesondere wenn der Zugriff auf das interne Gerät nicht möglich ist. Am Hub wurden bereits Benutzerideen und Erwartungen von den idealen USB-Hubs ( hier und hier ) beschrieben. Die beschriebenen Algorithmen zur Überprüfung vorhandener Hubs werden meiner Meinung nach die von den Autoren beschriebenen Ansätze perfekt ergänzen und verwässern. Nun, und so sieht der Held meines Artikels (D-Link DUB-H7 ver. A5) meiner Meinung nach aus Sicht der Schaltungslösungen sehr gut aus. Darauf werde ich mich vielleicht verlassen :)


    Sergey Besarab ( Siarhei V. Besarab )


    PS Nach der Frage an die Mitglieder der Habr-Community, die plötzlich ganz zufällig wie mein D-Link DUB-H7 in einem grauen Koffer herumstolperten.



    Was sind die Details, die an den eingekreisten Positionen angebracht sind (und vielleicht hat sogar jemand das Schema gesehen)? Die Elemente RP1 ... RP2 sind besonders interessant (ich vermute eine Widerstandsanordnung von 0 Widerständen).


    Zusatz : Wenn plötzlich jemand einen Firmware-Dump für den EEPROM 24C02-Chip benötigt, sieht das so aus:




    Jetzt auch beliebt: