Iemand vroeg me laatst hoe een FTDI USB naar serieel UART werkt, en ik realiseerde me dat ik het niet wist. Ik keek naar de datasheet voor de FT232R en het blokschema hielp me niet echt. Kan iemand mij een goede uitleg uitleggen of koppelen?

Opmerkingen

  • Meer uitleg dan dat het de apparaatzijde van een USB CDC-apparaat implementeert? en.wikipedia.org/wiki/USB_communications_device_class
  • @kenny, eigenlijk niet ' t. Het maakt gebruik van een eigen profiel, daarom moet je stuurprogrammas installeren om het te gebruiken (tenminste op Windows).
  • @avakar, het gebruikt stuurprogrammas op alle besturingssystemen, sommige zijn al voorgeladen.

Answer

De FTDI-chips implementeren de USB-protocolstack. De verantwoordelijkheid van deze hardware is om uw pc te vertellen wat het is (met behulp van identificatie-informatie), zodat uw computer de juiste driver ervoor kan laden, en ook om de datatransacties te beheren met de pc erop na – zoek USB-eindpunten op voor een betere uitleg van deze processen.

Als die stuurprogrammas eenmaal zijn geladen, zou dit een commandoset specificeren die uw pc kan gebruiken om de chip op te vragen. Deze hardware zorgt voor één kant van de vergelijking (communicatie met uw pc). De andere kant zou een speciale hardware zijn om het UART-protocol te beheren, inclusief logica, buffers en lijnstuurprogrammas en dergelijke. De eerder genoemde commandoset zou worden gebruikt om te lezen van of te schrijven naar de UART-hardware. Er moet waarschijnlijk worden vermeld dat USB-apparaten door de pc worden gepolld, dus in gevallen waarin u code gebruikt die op gebeurtenissen is gebaseerd, voert uw pc in feite wat polling uit om vast te stellen dat er nieuwe gegevens zijn binnengekomen – dit kan anders zijn dan een native serieel poort, zou ik het niet weten.

De bovenstaande logica kan worden geïmplementeerd als een speciale ASIC of door een uitgeklede microcontrollerkern te gebruiken die firmware op ROM uitvoert. Als het inderdaad een microcontrollerkern is, dan kan ik stel je voor dat de UART ermee verbonden is als een randapparaat.

Opmerkingen

  • En hoe zeker ben je dat er geen '

erg moeilijk om een microcontroller van een ASIC te onderscheiden, als de microcontroller-firmware is niet ' t toegankelijk voor de gebruiker.

  • @Ben: Weet je wat? Ik zal waarschijnlijk ldn ' hebben dat niet gezegd. Antwoord is gewijzigd vanwege mijn onwetendheid. Ik ging met mijn instinctieve veronderstelling akkoord nadat ik naar het blokschema had gekeken, maar ik denk dat het toch beter zou zijn om eventuele uC-details te abstraheren. Ik veronderstel dat alleen degenen bij FTDI het zouden weten, en ik veronderstel dat het neerkomt op kernlicentiekosten versus interne ontwikkelingstijd.
  • Meestal, wanneer je een " protocol " je eindigt met een " programma " om het af te handelen … zelfs als het ' draait op een motor die diep in een ASIC of FPGA is begraven. De uitzondering zijn zaken waarbij verblindend hoge snelheid de complexiteit overtroeft, waar je waarschijnlijk een toestandsmachine of massaal parallellisme zult zien. Daartussenin bevinden zich engines waar het compute-pad niet in verhouding staat tot de besturingslogica – een soort van het oorspronkelijke idee achter DSP-processors.
  • Answer

    Er zit een USB-microcontroller in die een eigen protocol over USB spreekt (vandaar de behoefte aan stuurprogrammas) en dat omzet in “normale” UART-signalen en weer terug.

    Geef een reactie

    Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *