Cel mai bun răspuns
UART este un protocol pentru a transfera datele în serie de la un nod la altul. Protocolul nu este altceva decât un set de reguli guvernate de toate părțile care participă la comunicare pentru a realiza o comunicare fără erori.
În special în comunicarea în serie, protocolul trebuie. în comunicație paralelă, în impuls unic, toți biții sunt transferați către un alt nod, dar în comunicația serială, biții sunt transferați unul câte unul, așa că au nevoie de impulsuri multiple. prin urmare, trebuie să informăm sistemul atunci când începeți să transmiteți datele, câți biți vor fi acolo și cum se va încheia transferul dvs. de date. ar trebui să integrați și o tehnică de verificare a erorilor. toate aceste reguli sunt incluse în protocol. UART este un protocol TTL care este acceptat de majoritatea microcontrolerului.
Dar atunci când vrem să afișăm datele pe ecranul cu mijloace hiperterminale ale computerului (computer), trebuie să le transferăm pe PC prin COM PORT disponibil pe panoul din spate. aici vine conceptul de standarde care nu este altceva decât un strat fizic pentru a transfera datele.
PC-ul are COM PORT care urmează standardul RS 232 pentru a accepta datele. Diagrama pin a DB9 este foarte bine faimoasă și ușor disponibilă pe internet. Dar nivelurile logice ale acestui PORT au fost stabilite cu mult înainte, când TTL nu era doar în imagine.
Conform standardului RS 232: logica 1 înseamnă -3V până la -25V
și logica 0 înseamnă + 3V la + 25V
unde protocolul nostru UART generează date conform logicii TTL.
unde logica 1 înseamnă 2.4V la 5V
logica 0 înseamnă 0 la 0.4V
prin urmare, datele din protocolul UART nu pot fi transferate direct pe portul RS 232. s-ar putea să o interpreteze greșit. prin urmare, un driver de linie numit MAX232 este utilizat pentru a converti nivelurile TTL în nivelurile RS 232.
În același mod avem și alte standarde care sunt perfect compatibile cu protocolul UART și anume. Standardul RS 485 și standardul RS 422 (ambele sunt potrivite pentru topologia autobuzelor)
Răspuns
Nu . RS-232 este un standard care definește ce tip de semnale există pe un tip de conexiune serială pentru dispozitive precum modemurile. Acesta a fost inițial conceput pentru a fi specific pentru modemuri și între echipamentele terminale de date (computere și modemuri DTE) și echipamente de comunicații de date (DCE – modemuri). A fost folosit și pentru multe alte dispozitive.
În timp ce RS-232 definește semnalul pe care pin, nivelurile de tensiune utilizate și unele lucruri de genul acesta, * nu * definește conținutul efectiv al acele semnale.
Deci, un dispozitiv sincron care se atașează la un modem pune pe fir cadre de date foarte diferite decât un dispozitiv asincron. Portul serial tipic de pe un PC (sau cel puțin ceea ce era obișnuit, porturile seriale sunt destul de rare în zilele noastre), este un port asincron. Sistemele mai mari foloseau adesea protocoale sincrone, bisync, SDLC și HDLC erau denumiri comune. Cea mai mare diferență între protocoalele aysnc și sincronizare este că cadrul pentru protocolul asincron acoperă un singur caracter, iar receptorul nu se sincronizează cu biții de date pe măsură ce trec. Cadrul pentru protocoalele sincrone este întregul cadru de date (la fel ca protocoalele de rețea moderne), iar receptorul extrage informații de ceas din semnal pentru a-și regla sincronizarea pentru a rămâne sincronizate pe parcursul a mii de biți. Primul este considerabil mai ușor de implementat, dar este mai puțin eficient (de obicei duce la aproximativ 25\% din costurile suplimentare pentru biții de oprire și pornire asociați fiecărui caracter) și este adesea limitat la rate de date mai mici.
Oricum , dispozitivele inițiale implementate aceste protocoale au fost construite din componente discrete și SSI, cu circuite diferite pentru asincronizare și sincronizare, precum și diferite tipuri de protocoale de sincronizare. Pe măsură ce circuitele integrate au devenit mai mari, oamenii au început să se integreze. În primele zile este posibil să aveți un receptor cu un singur cip și un transmițător cu un singur cip, dar de multe ori aveți încă cipuri suplimentare pentru ceas și control, și ce nu. Buit a fost o mare îmbunătățire.
Pe măsură ce lucrurile s-au îmbunătățit, majoritatea funcțiilor s-au integrat pe un singur cip. Astfel, un UART este un receptor / emițător asincron universal, integrat în esență cu toate funcțiile de care aveți nevoie pentru o parte a unei conexiuni seriale printr-o legătură RS-232 – logica de control un receptor și un tramsitter. Un USART a implementat suport (de obicei) atât pentru protocoalele aysnc, cât și pentru cele de sincronizare. Rețineți că driverele de linie reale sunt adesea încă separate.
Deci, un port serial al unui PC * are * un UART în el, este ceea ce pune semnalul pe conexiunea RS-232, unde un dispozitiv de la celălalt capăt are un UART care primește semnalul trimis, iar aceștia oferă, de asemenea, același serviciu în cealaltă direcție. UART este hardware-ul pe care îl vede programatorul care scrie driverul de dispozitiv. Există multe UART-uri diferite, cu interfețe de programare diferite, dar, în general, toate pot comunica (presupunând că pot fi setate la aceiași parametri), în ciuda necesității unei programări diferite.
Deci RS-232 definește ceea ce este fizic pe fire, asincronizarea sau sincronizarea definește modul în care sunt încadrate datele, iar un UART (sau USART) este de obicei implementarea logicii necesare pentru a conduce acel port pe dispozitiv la fiecare capăt al cablului.
Acestea fiind spuse, porturile seriale sincrone rare pe PC-uri și cei patru termeni (portul RS-232, portul asincronizat, portul serial și UART) sunt adesea folosite interschimbabil. Nu este chiar corect, dar din nou, porturile seriale non-asincronizate sunt rare.