Ich bin etwas verwirrt über die Anforderungen von USB 2.0 High-Speed.
USB 2.0. Die maximale Hochgeschwindigkeitsübertragungsrate beträgt 480 Mbit/s. Um diese Datenrate voll auszunutzen, sollte man also nach meinem Verständnis IC (uC oder FPGA) mit einer Frequenz von mindestens 480 MHz verwenden.
Aber zum Beispiel bieten die Mikrocontroller der STM32 F4-Serie USB 2.0-Hochgeschwindigkeitsunterstützung, obwohl die maximale Frequenz, auf der sie laufen, 180 MHz beträgt.
Auch Atmel SAM3U unterstützt trotz absoluter Maximalfrequenz von 192 MHz Highspeed-USB.
Wie ist das?
Bei Atmel ist mir aufgefallen, dass sie nur für USB einen zusätzlichen Takt von 480 MHz haben. Dies ist noch verwirrender, denn wenn der Mikrocontroller nur 192 MHz fähig ist - wie sollte er mit der internen USB-Peripherie kommunizieren, die mit 480 MHz läuft?
Für STM32 ist es auch seltsam, in ihrer CubeMX-Software scheinen sie USB mit einem Takt von 48 MHz zu betreiben. Durchsuchen des Datenblatts, einzige Erwähnung, die ich gefunden habe, war
Bit 15 PHYLPCS:
PHY Low-Power-Taktauswahl Dieses Bit wählt entweder den 480-MHz- oder den 48-MHz-PHY-Modus (Low-Power) aus. Im FS- und LS-Modus kann der PHY normalerweise mit einem 48-MHz-Takt betrieben werden, um Strom zu sparen.
0: 480 MHz interner PLL-Takt
1: 48 MHz externer Takt
Im 480-MHz-Modus arbeitet die UTMI-Schnittstelle entweder mit 60 oder 30 MHz, je nachdem, ob die 8- oder 16-Bit-Datenbreite ausgewählt ist. Im 48-MHz-Modus arbeitet die UTMI-Schnittstelle mit 48 MHz im FS- und LS-Modus.
Ich nehme an, es verwendet einen 48-MHz-Takt, um 480 MHz über PLL zu erzeugen. Aber noch einmal - wenn der Mikrocontroller selbst nur bis zu 180 MHz gehen kann - was ist der Sinn von 480 MHz USB?
FPGAs sind noch verwirrender (viele laufen unter 480 MHz), aber ich habe noch nicht viel über FPGA geforscht, also werde ich nichts fragen (aber wenn Sie einen Rat geben / über FPGA aufklären können - gerne, ich bin es interessiert).
Die Frage ist - wenn wir einen 180-MHz-Mikrocontroller verwenden und Daten mit einem 480-MHz-USB-Peripheriegerät übertragen möchten - wie passt er zur Frequenz? Was ist der Prozess?
Bitte beachten Sie, dass USB 480 MBit pro Sekunde hat, während uPs ihre Daten normalerweise 8 oder 32 Bit breit sind. Die Rate der Systemdatenübertragung sinkt also nur auf 60 MHz oder 15 MHz. USB-Controller verwenden Hardwarezugriff auf den uP-Speicher (auch bekannt als direkter Speicherzugriff oder „Bus-Mastering“), um Datenblöcke zwischen dem Systemspeicher und dem USB-PHY (Physical Layer Transceiver) zu übertragen. Die Übertragungen erfolgen im 8- oder 16-Bit-Parallelformat, und der PHY führt eine Parallel-zu-Seriell-Konvertierung durch. Das System verfügt normalerweise über viele "Elastizitäts"-Puffer (FIFOs), um kohärente USB-Pakete in voller Übereinstimmung mit den angegebenen Datenraten bereitzustellen.
Die Geschwindigkeit, mit der ein System die Lese-/Schreibspeicherpuffer vorbereiten kann, hängt vom Gesamtprozessordurchsatz ab, sodass leistungsschwache Prozessoren möglicherweise nicht den maximalen USB-Durchsatz erreichen.
R Drast
Eugen Sch.
WissenschaftSamowar
jw_