Alt om USB-C: Højhastighedsgrænseflader

Alt om USB-C: Højhastighedsgrænseflader

Kildeknude: 1901675

En fantastisk ting ved USB-C er dens højhastighedsfunktioner. Pinout'en giver dig fire højhastigheds-differentialpar og et par flere par med lavere hastighed, som lader dig pumpe gigantiske mængder data gennem et stik, der er mindre end en cent-mønt. Ikke alle enheder drager fordel af denne mulighed, og de er ikke påkrævet – USB-C er designet til at være tilgængelig for enhver bærbar enhed under solen. Når du har en enhed med højhastighedsbehov eksponeret gennem USB-C, er det dog herligt, hvor meget USB-C kan give dig, og hvor godt det kan fungere.

Evnen til at få en højhastighedsgrænseflade ud af USB-C kaldes en alternativ tilstand, kort sagt "altmode". De tre altmodes, du kan støde på i dag, er USB3, DisplayPort og Thunderbolt, der er et par stykker, der er gået hen i uklarhed som HDMI og VirtualLink, og nogle er på vej som USB4. De fleste altmodes kræver digital USB-C-kommunikation, ved hjælp af en bestemt slags meddelelser over PD-kanalen. Når det er sagt, gør de ikke alle – USB3 er den enkleste. Lad os gennemgå, hvad der får en altmode til at tikke.

C'et i "USB-C" står for "Capable"

Hvis du har set pinout'en, har du set højhastighedsstifterne. I dag vil jeg gerne vise dig, hvilke grænseflader du kan få ud af disse stifter i dag. Dette er ikke en komplet eller omfattende liste – for eksempel vil jeg ikke tale om ting som USB4, til dels fordi jeg ikke forstår det godt nok og heller ikke har erfaring med det; det, og det er sikkert, at vi vil få flere USB-C-udstyrede højhastighedsenheder i fremtiden. Derudover er USB-C fleksibel nok til, at en hacker kan afsløre Ethernet eller SATA over det på en USB-C-kompatibel måde – og hvis det er det, du leder efter, er denne oversigt måske, hvad der hjælper dig med at finde ud af det.

USB3

USB3 er meget, meget simpelt – du har et TX- og et RX-par, og selvom transmissionshastighederne er meget højere end USB2, er de overskuelige for en hacker. Hvis du bruger et flerlags PCB med impedansstyring til USB3-signaler og behandler dine diffpairs med respekt, vil din USB3-forbindelse generelt fungere.

En højhastighedsforbindelse: Enhed udstyret med stikkontakter til venstre, enhed udstyret med kabel eller stik til højre. Hvis du vil tilføje et USB-C USB3-kompatibelt stik til et flashdrev, består "CC-logikken" til højre af en enkelt modstand.

Med USB3 over USB-C ændres der ikke meget - du vil have en mux til at håndtere rotationen, men det er det hele. USB3-muxer er rigelige, så du vil næppe nogensinde have et problem, hvis du nogensinde skal tilføje USB3-kompatibel USB-C på dit board. Der er også dual-link USB3, der bruger to USB3-links parallelt for at øge gennemløbet, men hackere vil generelt hverken støde på eller have brug for denne, og dette område har en tendens til at være bedre dækket af Thunderbolt. Vil du konvertere en USB3-enhed til USB-C? Alt du virkelig behøver er en mux. Hvis du tænkte på at sætte et MicroUSB 3.0-stik på dit board til din højhastighedsenhed, beder jeg dig høfligt men bestemt om at genoverveje og sætte et USB-C-stik og en VL160 på der i stedet.

Hvis du designer en USB3-enhed med stik, behøver du ikke engang en mux til rotationshåndtering – du har faktisk ikke brug for nogen rotationsdetektion. En enkelt, ikke-overvåget 5.1 kΩ-modstand vil være nok til at bygge et USB3-flashdrev, der sættes direkte i en USB-C-port, eller til at lave en USB-C han-til USB-A 3.0 hun-adapter. På fatningssiden kan du undgå at bruge en mux hvis du har en ekstra USB3-forbindelse at ofre, selvom det selvfølgelig ikke er en vidunderlig handel at lave. Jeg er ikke klar over dual-link USB3 nok til at sige, om en sådan forbindelse er USB3 dual-link-kompatibel, men jeg ser "nej" som mere sandsynligt for et svar end "ja"!

DisplayPort

DisplayPort (DP) er en vidunderlig grænseflade til at forbinde højopløselige skærme – den har overhalet HDMI på skrivebordet, dominerer det indlejrede skærmrum i sin eDP-form og sørger for høje opløsninger over et enkelt kabel, ofte bedre end HDMI kan. Den kan konverteres til DVI eller HDMI med en billig adapter ved hjælp af en standard kaldet DP++, og den er ikke så royalty-behæftet, som HDMI er. Det giver mening, at VESA-konsortiet har arbejdet med USB-gruppen for at implementere DisplayPort-understøttelse, især i betragtning af, at DisplayPort-sendere i SoC'er er blevet mere og mere populære.

Hvis du bruger en dock med HDMI- eller VGA-udgang, bruger den DisplayPort altmode under hætten. Oftere og oftere kommer skærme med DisplayPort over USB-C-indgange, og takket være en funktion kaldet MST kan du sammenkæde skærme, hvilket giver dig en enkelt-kabel multi-monitor konfiguration – medmindre du bruger en Macbook, som Apple nægter at understøtte MST i MacOS.

PinePhone, der bruger DisplayPort-udgangunderstøttelse til tilslutning af en HDMI-skærm gennem en dock

Også sjovt faktum - DP altmode er en af ​​de eneste altmodes, der bruger SBU-stifter, som er genbrugt til DisplayPort AUX-parret. Den overordnede mangel på USB-C-ben betød også, at DP-konfigurationsben måtte udelades, undtagen DP++ HDMI/DVI-kompatibilitetstilstanden, og som et resultat er alle USB-C DP til HDMI-adaptere faktisk aktive DP-HDMI-konvertere i forklædning – i modsætning til DP++, som lader dig bruge niveauskiftere til HDMI-understøttelse.

Hvis du vil pille ved DisplayPort, har du måske brug for en DP-understøttende mux, men vigtigst af alt skal du være i stand til at sende brugerdefinerede PD-meddelelser. For det første, hele "tilbyde/anmode DP altmode"-delen udføres gennem PD - modstande er ikke nok. Plus, der var ingen ledig pin til HPD, et afgørende signal i DisplayPort, og som sådan sendes hotplug-begivenheder og afbrydelser som beskeder over PD-kanalen i stedet. Når det er sagt, så er det ikke voldsomt svært at implementere, og jeg kigger på at lave en hackervenlig implementering – indtil da, hvis du har brug for DP eller HDMI ud af en USB-C port med DP altmode, er der nogle chips, som f.eks. CYPD3120, som lader dig skrive en firmware til at gøre det.

En fantastisk ting, der får DP altmode til at skille sig ud – med fire højhastighedsbaner på USB-C giver denne altmode mulighed for at kombinere en USB3-forbindelse på den ene side af USB-C-porten og en to-sporet DisplayPort-forbindelse på den anden. Sådan fungerer alle "USB3-porte, perifere enheder og en HDMI-udgang"-dockingstation. Hvis dual-lane-opløsningen er begrænsende for dig, kan du også få en fire-bane-adapter – der vil ikke være nogen dataoverførsel på grund af manglende USB3, men du vil være i stand til at få højere opløsninger eller framerates gennem to ekstra DisplayPort-baner.

Min opfattelse – DisplayPort altmode er ligefrem en af ​​de bedste ting ved USB-C, og selvom den billigste (eller mest fejldesignede) af bærbare computere og telefoner ikke understøtter det, er det en fornøjelse at have en enhed, der gør det. Nogle gange vil en stor virksomhed selvfølgelig tage glæden væk, ligesom Google gjorde.

På den note, lad os tale om den mest komplekse altmode af dem alle.

Thunderbolt

Ikke alt er godt i Thunderbolt-land

Specifikt på USB-C kan du få Thunderbolt 3 – snart også Thunderbolt 4, men det er fiktion for nu. Thunderbolt 3 er en oprindeligt proprietær specifikation, der til sidst blev open source af Intel. Åbenbart har de ikke open source det nok, eller der er en anden advarsel til det, da Thunderbolt 3-enheder i naturen stadig bliver bygget udelukkende ved hjælp af Intel-chips, og mit gæt er, at mangel på konkurrence er det, der forårsager prismærker fast i tredobbelt cifferterritorium. Hvorfor ville du lede efter Thunderbolt-enheder i første omgang? Bortset fra højere hastigheder er der en dræberfunktion.

Du kan få PCIe-passthrough over Thunderbolt – også op til et 4x bredt link! Dette har været et varmt emne blandt folk, der ønsker eGPU-understøttelse eller hurtig ekstern lagring i form af NVMe-drev, og nogle hackere bruger det til PCIe-forbundne FPGA'er. Hvis du har to computere (f.eks. to bærbare computere), som understøtter Thunderbolt, kan du også forbinde dem over et Thunderbolt-kompatibelt kabel – dette skaber en højhastigheds-netværksgrænseflade mellem de to, uden at der kræves ekstra komponenter. Åh, og selvfølgelig kan Thunderbolt nemt tunnelere DisplayPort og USB3 i sig selv. Teknikken mellem Thunderbolt er ekstremt kraftfuld og velsmagende for superbrugere.

Når det er sagt, kommer al denne coolness til en pris af proprietær og kompleks teknologisk stak. Thunderbolt er ikke noget, som en ensom hacker nemt kan bygge videre på - men nogen burde prøve det en dag. Og selvom Thunderbolt docks har en vidunderlig mængde af funktioner, er softwaresiden af ​​tingene ofte ramt, især når det kommer til ting som at prøve at få dvaletilstand på din bærbare computer til at fungere, uden at din eGPU styrter din kerne. Hvis det ikke har været tydeligt nu, venter jeg spændt på, at Intel får det sammen.

Muxes? Hvilke Muxes?

Jeg bliver ved med at sige "muxes". Hvad er det for nogle? Kort sagt, det er den del, der hjælper med at håndtere højhastighedssignaludveksling afhængigt af USB-C-rotationen.

Højhastighedsbanerne er den del af USB-C, der er mest påvirket af portrotation. Hvis din USB-C-port bruger højhastighedsbaner, det skal bruge en mux (multiplexer) IC der styrer to mulige USB-C-rotationer - matchende orienteringer af porte i begge ender og kablet til de faktiske højhastighedsmodtagere og -sendere inde i enheder, der tilsluttes. Nogle gange er disse muxer interne i en højhastighedschip, hvis den er udviklet med USB-C i tankerne, men mange gange er de en separat chip. Ønsker du at tilføje højhastigheds-USB-C-understøttelse til en enhed, der endnu ikke har det? En mux vil være et kerneelement for at få din højhastighedskommunikation til at fungere.

Hvis din enhed har et USB-C-stik med højhastighedsbaner, har den brug for en mux – captive-kabel og stik-udstyrede enheder har ikke brug for det. Som regel, hvis du bruger et kabel til at forbinde to højhastighedsenheder med USB-C-stik, har de begge brug for muxes - styring af kabelrotation er hver enheds ansvar. På begge sider vil mux'en (eller en PD-controller med en mux tilsluttet) overvåge CC-pin-orienteringen og handle i overensstemmelse hermed. Der er også en del af disse muxer til forskellige formål - alt efter hvad du vil have ud af en port.

Du vil se USB3-tilsigtede muxer i billige bærbare computere, der kun implementerer USB 3.0 på Type-C-porten, og hvis den understøtter DisplayPort, vil du have en mux, der har ekstra input til at blande disse signaler i. I bærbare computere med mere avancerede porte, der implementerer Thunderbolt, mux'en bliver indbygget i Thunderbolt-chippen. For hackere, der udvikler med USB-C, som ikke kan nå Thunderbolt eller ikke har brug for det, tilbyder TI og VLI en del gode muxer til alle formål. For eksempel har jeg for nylig leget med DisplayPort over USB-C, og VL170 (tilsyneladende 1:1 klon af TI HD3SS460) ligner en vidunderlig chip til kombineret DisplayPort + USB3 formål.

DisplayPort-kompatible USB-C-muxer som HD3SS460 udfører ikke selv CC-pin-styring og rotationsdetektion, men det er en rimelig begrænsning – du skal lave nogenlunde applikationsspecifikke PD-kommunikationer til DisplayPort, som hurtigt vokser fra, hvad en mux kan gøre for du. Er du tilfreds med USB3, hvor PD-kommunikation ikke er påkrævet? VL161 er en simpel chip til USB3-muxing, der har en polaritetsindgang, der forventer, at du selv foretager polaritetsdetektion.

Hvis du heller ikke ønsker at foretage polaritetsdetektion – er analog, 5V-kun PD nok til dine USB3-behov? Brug noget som VL160 – det vil gøre synke og kilde analog PD, håndtere kraft og højhastighedsbanerotation alt i én. Dette er den rigtige "Jeg vil have USB3 på USB-C, og jeg vil have alt administreret for mig" IC; for eksempel, VL160 er, hvad den seneste open source HDMI-optagelseskort bruger til sin USB-C-port. For at være retfærdig behøver jeg dog ikke at fremhæve VL160 – der er snesevis af sådanne IC'er; "USB3 mux til USB-C, der gør alt" er nok den mest populære form for USB-C-relateret IC, der findes.

Planlagt, men forladt

Der er et par forladte USB-C altmodes. Den første vil jeg ikke fælde en tåre over – det er HDMI altmode; og den sætter bare HDMI-stikben på USB-C-stikben. Det ville give dig HDMI over USB-C, og det ser ud til at have været brugt på smartphones i en kort periode. Men at skulle konkurrere med den let-konverterbare-til-HDMI DisplayPort altmode, mens HDMI-DP-konvertering typisk er dyr, manglende evne til at blive kombineret med USB 3.0, da HDMI kræver fire differentialepar, og HDMI-licensbagagen ser ud til at have drevet HDMI. altmode ned i jorden. Det er min oprigtige overbevisning, at det burde forblive der, da jeg ikke tror på, at vores verden kan forbedres ved at tilføje mere HDMI.

Den anden er dog faktisk interessant – den hedder VirtualLink. En gruppe af store teknologivirksomheder har undersøgt mulighederne for USB-C til VR – trods alt er det vidunderligt, når dit VR-headset kun skal bruge et enkelt kabel til alt. VR-briller har dog brug for en højopløsnings høj-framerate dual-display-kompatibel videogrænseflade og en højhastighedsdataforbindelse til ekstra kameraer og sensorer, og den sædvanlige "dual-lane DisplayPort+USB3" kombination kunne ikke give sådanne muligheder dengang. Hvad gør man så?

Det er enkelt, sagde VirtualLink-gruppen, man slipper for de to duplikerede USB2-par på USB-C-stikket, og bruger de fire ben til en USB3-forbindelse. Husk USB2 til USB3-konverterchippen Jeg nævnte i en kort artikel for et halvt år siden? Ja, dets oprindelige formål var VirtualLink. Denne form for arrangement kræver selvfølgelig et dyrere specialkabel med to ekstra afskærmede par, og det krævede også, at pc'er leverede op til 27W strøm, og dermed 9 Volt output – en sjældenhed på USB-C-porte, der ikke er vægstikopladere eller powerbanks. USB2-udeladelsesafvigelsen fra USB3 har forstyrret nogle; Men med henblik på VR så VirtualLink meget nyttigt ud.

Nogle GPU'er blev leveret med VirtualLink-understøttelse, men i sidste ende ikke nok – og bærbare computere, kendt for deres ofte manglende USB-C-porte, generede ikke. Det her forårsagede en nøglespiller i arrangementet, Valve, for at opgive at tilføje VirtualLink-integration med Valve Index, og det gik ned ad bakke derfra. Desværre tog VirtualLink aldrig rigtig fart. Det ville have været en sjov altmode at have rundt – det med et enkelt kabel ville have været fantastisk for VR-brugere, og kravet om øget spænding tilgængelig via USB-C ville også have givet os PD-kompatible porte med højere end 5V – som ingen bærbare computere og næsten ingen pc'er tilbyder i dag. Ja, bare en påmindelse – hvis du har en USB-C-port på din stationære eller bærbare computer, vil den give dig 5 V, selvfølgelig, men du får ikke en højere spænding ud.

Lad os dog se på den lyse side. Hvis du tilfældigvis har en af ​​de GPU'er, der blev leveret med en USB-C-port, er den vil have både USB3 og DisplayPort-understøttelse!

Ensretning bringer kompatibilitet

Det fantastiske ved USB-C - en leverandør eller en hacker kunne absolut definere deres egne altmodes, hvis de ville, mens adapteren ville være semi-proprietær, ville den stadig forblive en USB-C-port i hjertet, der arbejder til opladning og data overførsel. Vil du have en Ethernet altmode eller dual-port SATA? Gør det. Tiden er forbi med at skulle købe alvorligt obskure stik til enheder, hvor hvert docking- og opladningsstik var anderledes og kunne koste op til $10 stykket, hvis det var sjældent nok, hvis det overhovedet havde været muligt at finde det.

Ikke alle USB-C-porte skal implementere hver eneste af disse muligheder – mange gør ikke. Det gør mange af dem dog, og for hver dag får vi mere og mere ud af en gennemsnitlig USB-C-port. Denne ensretning og standardisering vil betale sig i det lange løb, og mens der vil forekomme afvigelser i ny og næ, vil producenterne lære at blive klogere på dem.

Tidsstempel:

Mere fra Hack A Day