3.18. UART-perusteet

UART (Universal Asynchronous Receiver-Transmitter) on vanhin ja yksinkertaisin tapa siirtää tavuja kahden mikro-ohjaimen välillä tai mikro-ohjaimen ja isäntä-PC:n välillä. Kaksi johdinta kuljettaa dataa – yksi kumpaankin suuntaan – ja yhteinen maa palauttaa signaalin. Kumpikaan puoli ei käytä yhteistä kelloa; ne sopivat siirtonopeudesta etukäteen ja palauttavat bittien ajoituksen suoraan dataa kuljettavasta linjasta.

3.18.1. Kehys

Jokainen linjalla kulkeva merkki kääritään kehykseen: aloitusbitti, databitit, valinnainen pariteettibitti sekä yksi tai kaksi lopetusbittiä.

UART-kehyksen aaltomuoto. Signaali on vasemmalla lepotilassa ylhäällä, putoaa alas yhden bitin ajaksi (aloitus- bitti), kuljettaa sitten kahdeksan databittiä peräkkäin ja palaa lopuksi ylös yhden bitin ajaksi (lopetusbitti) ennen lepotilaan palaamista.

Yksi UART-kehys: aloitusbitti, kahdeksan databittiä ja lopetusbitti, joista jokainen on yhden bittijakson (1 / baudrate sekuntia) levyinen.

Linja lepää ylhäällä. Vastaanotin tarkkailee laskevaa reunaa, joka merkitsee uuden kehyksen alkua. Sen jälkeen se näytteistää datalinjan kerran bittijaksossa – tyypillisesti kunkin bitin keskeltä – ja kokoaa bitit takaisin merkiksi. Lopetusbitti palauttaa linjan lepotilaan, jotta seuraava aloitusbitti voidaan havaita.

3.18.2. Siirtonopeus

Bittijakson – ja yhteyden nopeuden – määrää siirtonopeus, eli bittien lukumäärä sekunnissa. 9600, 19200, 38400, 57600, 115200, 230400, 460800 ja 921600 ovat vakioarvot; 115200 on yleisin oletus. Molempien päiden on sovittava siirtonopeudesta muutaman prosentin tarkkuudella, tai vastaanotin näytteistää bitit väärissä kohdissa ja data palautuu sekaisena.

Korkeammat siirtonopeudet liikuttavat enemmän dataa sekunnissa, mutta ovat herkempiä kaapelin pituudelle, kapasitanssille ja kummankin pään kellojen tarkkuudelle. Lyhyillä yhteyksillä kahden saman pöydän levyn välillä 115200921600 toimii mukavasti.

3.18.3. Johdotus

UART-yhteys käyttää kolmea johdinta:

Kaksi levyä, joiden tunnukset ovat A ja B, kytkettynä kolmella johtimella. Levyn A TX-nasta kytkeytyy levyn B RX-nastaan; levyn B TX-nasta kytkeytyy levyn A RX-nastaan; ja molempien levyjen maanastat on kytketty yhteen.

UART-johdotus: yhden levyn TX menee toisen levyn RX:ään, ja molemmat maat on kytketty yhteen.

  • TX → RX, molempiin suuntiin. Kunkin levyn lähetysnasta on toisen levyn vastaanottonasta. Yleinen aloittelijan virhe on johdottaa TX → TX – kaksi ulostuloa taistelee toisiaan vastaan, eikä kummallakaan vastaanottimella ole dataa.

  • Yhteinen maa. Signaalitasot määritellään suhteessa maahan, joten kahdella levyllä on oltava yhteinen maa, tai vastaanotin näkee väärän jännitteen linjalla.

3.18.4. Jännitetasot ja fyysiset kerrokset

Kameran UART-nastojen signaalitasot ovat 3,3 V CMOS: maa loogiselle nollalle, 3,3 V loogiselle ykköselle. Mikä tahansa, joka puhuu 3,3 V CMOS UART:ia – toinen mikro-ohjain, 3,3 V:iin asetettu USB-sarjasovitin tai 3,3 V GPS-moduuli – voidaan johdottaa suoraan.

Muista

5 V CMOS UART -laitteet (vanhemmat mikro-ohjaimet, tietyt GPS-moduulit, jotkin vanhemmat sensorilaajennukset) puhuvat samaa UART-kehystystä 5 V:n loogisilla tasoilla. Niiden johdottaminen suoraan kameraan on vaarallista: kameran RX:ää ohjaava 5 V TX ylittää suurimman sallitun tulojännitteen kameroissa, jotka eivät kestä 5 V:ta, eikä kameran 3,3 V TX välttämättä yllä 5 V -laitteen ylätason kynnykseen puhtaan loogisen ykkösen tuottamiseksi.

Kahden jännitteen välinen muunnos vaatii aktiivisen linjaohjaimen – erillisen kaksisuuntaisen tasonsiirtopiirin, jolla on omat ohjaustransistorinsa kunkin linjan molemmilla puolilla. Passiiviset MOSFET- ja ylösvetovastuspohjaiset siirtimet kohdasta Tasonsiirto eivät riitä tähän: niiden nousevat reunat perustuvat linjan lataamiseen vastuksen kautta, mikä on hyvä kytkinnopeuksilla mutta aivan liian hidas UART:ille. 115200 baudin nopeudella kukin bitti kestää noin 8 µs, ja passiivisen siirtimen RC-nousu sotkee yhden bitin seuraavaan.

Aktiivinen linjaohjain tuottaa puhtaat reunat molempiin suuntiin täysillä UART-nopeuksilla. Valitse osa, joka on mitoitettu yhteyden käyttämälle siirtonopeudelle, johdota kameran TX ja RX siirtimen 3,3 V puolelle ja johdota 5 V -laitteen TX ja RX siirtimen 5 V puolelle.

Kolme vanhempaa fyysistä kerrosta käyttää samaa kehystystä mutta eri jännitteitä, ja ne tarvitsevat tasomuuntimen itsensä ja 3,3 V mikro-ohjaimen väliin:

  • RS-232. Pöytätietokoneiden sarjaporttien ja joidenkin teollisuuslaitteiden käyttämä. Linja heilahtelee suunnilleen ±5 V ja ±15 V välillä, lepotilan ollessa negatiivisessa kiskossa. Käänteinen napaisuus ja korkea jännite verrattuna CMOS:iin; MAX232 / MAX3232 -perheen (tai vastaava) piiri hoitaa muunnoksen.

  • RS-422. Differentiaalinen signalointistandardi pisteestä pisteeseen -yhteyksiä varten (yksi ohjain, jopa kymmenen vastaanotinta). Ohjain lähettää tasapainotetun johdinparin kautta; vastaanotin näkee niiden välisen eron ja jättää matkan varrella kertyvän yhteismuotoisen kohinan huomiotta. Täysdupleksiyhteydet käyttävät kahta paria – yhtä kumpaankin suuntaan. RS-422 yltää kymmenistä metreistä kilometriin siirtonopeudesta riippuen, ja RS-422-lähetinvastaanotinpiiri sijaitsee kameran TX / RX:n ja tasapainotetun parin välissä.

  • RS-485. RS-422:n monipisteversio – sama differentiaalinen signalointi, mutta suunniteltu sijoittamaan jopa 32 ohjainta ja vastaanotinta yhdelle väylälle. Useimmat yhteydet ovat puolidupleksisia yhdellä parilla, jolloin kunkin solmun ohjain ja vastaanotin jakavat samat johtimet ja ohjelmisto sovittaa, kuka puhuu. Käytetään teollisuusautomaatioväylissä (Modbus, DMX512, Profibus), joissa johtimet kulkevat kauas ja kohinaa on paljon; RS-485-lähetinvastaanotinpiiri sijaitsee kameran TX / RX:n ja differentiaaliparin välissä.

Molemmat lähettävät edelleen UART-kehyksiä bittitasolla. Kameran machine.UART -konfiguraatio (siirtonopeus, bitit, pariteetti, lopetusbitit) on sama riippumatta siitä, mikä fyysinen kerros kuljettaa signaalia lähetinvastaanottimen toisella puolella.