Cum RS232 lucrări : RS232 definește un protocol care detaliază modul în care un flux de biți de date issequentially transmis pe un fir de exemplu, un flux de biți. Ordinea șisensul fiecărui bit este definit de protocol. Explicația simplă de mai jos este suficientă pentru a înțelege RS232 – nu este nevoie să citiți un manual mare!,
RS232 este o serie de informații de transfer protocol standardthat definește atât protocol (metoda de transmitere a datelor) și thephysical hardware pentru a face asta. Acest document descrie modul în care funcționează la nivel fizic, astfel încât veți ști ce semnale vă puteți aștepta să vedeți la pinii microcontrolerului.ce este RS232?,
Fundamental este o metoda de a transfera date de pe un singur fir (da, am nevoie de două fire pentru a obține date înapoi de fiecare transferuri de date într-un singur directiononly):
este o metodă (sau protocol – un acord standard) care definește modul totransfer de date între două dispozitive prin câteva fire. Acesta utilizează o metodă serialtransmission în cazul în care octeți de date sunt de ieșire un bit la un moment dat pe asingle sârmă.datele sunt transmise numai într-o singură direcțiepentru fiecare fir, astfel încât pentru comunicarea bidirecțională (două direcții) aveți nevoie de două fire., Deci, acesta nu este un sistem de comunicare lan multidrop, cum ar fi RS485, ci un protocol punct-la-punct.aceste două împreună cu o referință la sol (total: trei fire) alcătuiescconfigurație minimă pe care o puteți scăpa.notă: pentru o comunicare mai fiabilă pe distanțe lungi, poate fi necesar să utilizați alte conexiuni definite în standardul RS232, cum ar fi DTR DCT etc. semnale de strângere de mână etc.
practic se poate transfera un singur octet de date pe un cablu serial havingbetween 3 la 22 semnale și rulează la viteze de la 100 la 20K baud. Ratele Commonbaud utilizate sunt 2.4 k, 9.6 k, 19.2 k, lungimea cablului poate fi de până la 50ft. Rate mai mari baud sunt utilizate, dar nu sunt acoperite de standardul ei încă workthough ex 38400,57600 Baud (biți/s).pentru a transfera un bloc de date, octeții individuali sunt transmiși unul dupăaltul.,
Această secțiune descrie modul RS232 funcționează, în general, fără describinghandshake metode – doar cel mai simplu sistem este descris – aceasta este themostuseful și cel mai probabil la locul de muncă!.semnalele de strângere de mână au nevoie de hardware suplimentar de traducere la nivel (un RS232chip cu mai multe I/O) și, deși simple, nu sunt de obicei necesare pentrupc la operarea plăcii de dezvoltare. Este posibil să aveți nevoie de ele pentru sisteme carecontrolează mai multe dispozitive unde poate fi necesar să opriți temporardatele de la o unitate. Există o secțiune privind semnalele de strângere de mână mai târziu în acest document.,datele sunt transmise în serie într-o direcție pe o pereche de fire. Datagoing out este etichetat Tx (indicând transmisie) în timp ce datele care vin în islabelled Rx (indicând recepție). Pentru a crea un sistem de comunicare în două sensuri aminim de trei fire sunt necesare Tx, Rx și GND (sol). Trecerea peste Tx& Rx între cele două sisteme permite fiecărei unități să vorbească cu cea opusă.
Notă: nivelul De semnal de inversare (logica 1is -12V si logica 0 este +12V).,
rata de transfer
cum RS232 funcționează în relația dintre rata de transfer și signalfrequency.
rata baud este pur și simplu viteza de transmisie măsurată în biți pe second.It definește frecvența fiecărei perioade de biți.
Pentru o rata de transfer de 2400 (2400 bps) frecvența este 2400Hz și bitperiod este 1/2400 sau 416.6 noi. Aceasta este informația pe care un receptor o foloseșterecuperați biții din fluxul de date.,
Cum RS232 Lucrări – Voltagelevels
pentru a face Să funcționeze peste mult timp cabluri de înaltă tensiune sunt trimise de la eachtransmitter deoarece din cauza cablu rezistență la tensiune reduce în continuare thesignal trebuie să călătorească. Specificația tensiunii de ieșire este de la +5V la +25V(transmiterea unui zero logic) și-5V la-25V (transmiterea unui Zero Logic).Notă: toate semnalele din cablu trebuie să genereze aceleași niveluri de tensiune, de exemplu DTR, DSR, RTS, CTS. Deci, aveți nevoie de o mulțime de chips-uri traducător nivel pentru un plininterfață, dar pentru distanțe foarte scurte ai nevoie doar de TX și RX și sol.,
tensiunea maximă de ±25V nu trebuie să fie utilizate și o commonvoltage în uz este ±12V (ieșire de MAX232 cip transceiver).
un semn (unul logic) este trimis ca-12V și un spațiu (zero logic) este trimis ca+12V adică sensul logic este inversat.
notă: faptul că există tensiuni mari la portul serial permitedispozitive de putere pe care în mod normal nu v-ați aștepta să le găsiți pe el. Dar eitrebuie să atragă foarte puțin curent.
nivelurile de tensiune ale receptorului
la receptor intrarea nivelurile minime de tensiune sunt definite ca ±3v, adică., pentru a primi logica zero tensiunea trebuie să fie mai mare decât 3V și de a primi un unu logic thevoltage trebuie să fie mai mică decât -3V. Acest lucru vă permite pentru pierderi ca semnalul travelsdown cablu și oferă imunitate de zgomot, adică orice false zgomot până la un nivel de ±3V poate fi tolerată fără a avea nici un efect asupra receptorului.
cum funcționează RS232-TheRS232 Start Bit
protocolul este descris ca asincron, deoarece nu există nici un ceas transmisla toate. În schimb, se folosește o altă metodă de recuperare a ceasului.,la începutul fiecărei transmisii se transmite un bit de pornire care indicăla receptor că urmează să urmeze un octet de date. Deoarece starea inactivă a liniilor RS232 este scăzută (-12v) pentru a semnala o condiție de pornire, linia este setată mare(+12v) pentru o perioadă de biți 1. Acest lucru înseamnă o tranziție pe linie este alwaysgenerated, astfel încât un receptor știe când 1 marginea date burstoccurs.
bitul de pornire permite receptorului să se sincronizeze cu biții de date, deoarece poatevedeți marginea în creștere a semnalului de pe linie., Ce înseamnă asta este căreceiver poate crea propriul ceas de probă la mijlocul fiecărui bit – pentru a decide dacă bitul este de fapt un zero de date sau unul de date.
Odată ce începe bit este găsit receptorul știe unde followingbits vor beas că este dat de perioade de probă (derivate din rata baud), ca parte a theinitialization proces. Acesta este motivul pentru care trebuie să setați aceleași setări atât în receptor, cât și în hardware-ul emițătorului, adică rata baud, numărul de biți de oprire, numărul de biți de date și bitul de paritate (pornit sau oprit)., Dacă nu, atunci, de obicei, nimic nu se va întâmpla – sau veți vedea rubbishcharacters la receptor.
cum funcționează RS232-biții de date
urmează bitul de pornire. De obicei, vor exista șapte sau opt date cu lsb transmise mai întâi. Motivul pentru care puteți alege între șapte oreight este că ASCII este alcătuit din alfabetul din primii șapte biți (precum și caracterele de control). Al optulea bit extinde setul de caractere pentrusimboluri grafice.dacă doriți doar să transmiteți text, atunci aveți nevoie doar de 7 biți., Acest lucru economisește abit și crește viteza de transmisie atunci când transmite blocuri mari de date.Alte dimensiuni de biți de date sunt 5, 6, 8 și 9 biți. Cu toate acestea, lungimea de biți este de obiceisetat la 8 biți-acest lucru este foarte frecvent utilizat.
cum funcționează RS232-bitul de paritate
bitul de paritate RS232 este un mecanism brut de detectare a erorilor.Puteți utiliza paritate impară sau paritate paritară sau deloc (în diagramabove este inclus un bit de paritate (între ultimul bit de date și bitul de oprire-aici paritatea este indicată ca „1”, ceea ce înseamnă că există un număr impar de date. Deci paritatea în uz este paritatea ciudată. Diagrama de mai jos (utilizată în mod obișnuitîn munca microcontrolerului) nu utilizează un bit de paritate.,pur și simplu evaluează toți biții de date și pentru paritatea impară returnează o logică onedacă există un număr impar de biți de date care sunt setate. Pentru paritate chiar un evennumber de biți de date care sunt setate, setează bitul de paritate.la receptor, bitul de paritate este utilizat pentru a spune dacă a apărut o eroare în timpultransmisie. Puteți utiliza acest lucru în software-ul receptorului citind un steag înmodul UART.
problema cu detectarea erorilor folosind bitul de paritate este că, dacă doi biți sunt în eroare, atunci verificarea parității eșuează., Acest lucru se datorează faptului că fiecare eroare anuleazăefectul celuilalt (în ceea ce privește calculul parității). Orice număr par de erori cauzează un eșec în detectarea erorilor.
nu va fi o problemă pe un sistem bazat pe banc (care nu are datatransfer critic). Peste un cablu scurt, de exemplu, 6ft, probabil că nu veți vedea nicio eroare. În mod normal, nu folosesc nici o paritate și nu există nici o problemă.
Pentru sisteme care rulează pe o distanță mare sau într-un mediu zgomotos un bettersystem ar trebui să fie utilizate, de exemplu, Adăugarea unui verificarea redundanței ciclice a datelor streambefore și după ce este trimis prin RS232., CRCs vă permit să verificați și correctquite câteva erori fără a re transmiterea datelor.
cum funcționează RS232-Stopbitul
bitul de oprire RS232 oferă doar o perioadă de timp înainte ca bitul de pornire să poată fi transmis. Este de sens opus la început bitand din cauza aceasta permite de a începe pic pentru a fi văzut de exemplu un bit de stop urmat de un pic de start dă întotdeauna o margine în creștere semnal pentru detectarea de către receptor.
dacă nu a existat un bit de oprire, atunci ultimul bit din fluxul de date ar fi bitul de paritate (sau bitul de date dacă paritatea nu este activă)., Acest lucru s-ar schimba în funcție de datele trimise, astfel încât, dacă ar avea același sens ca și bitul de pornire, atunci startbit-ul nu ar putea fi văzut!
bitul de oprire poate fi setat alegând dintre perioadele de 1, 1,5 sau 2 biți.
La foarte mare baud rate perioadei de bit de stop pentru a începe pic(presupunând că datele sunt trimise în mod continuu) vor fi foarte mici, de exemplu, pentru o rata de transfer de 115200 baud de timeing să se 1/115200 = 8.26 noi deci, prin utilizarea a 2 pic perioade va crește timpul de la 16,5 noi., Acest lucru poate permite receptorului să detecteze mai ușor bitul de pornire, deoarece, dacă există capacitate pe linie, formele de undă vor prezenta un timp de cădere a creșterii CR. Extinderea perioadei de timp permite o încărcare mai capacitivă. Cu toate acestea italso depinde de hardware-ul receptor utilizat.
Setări Tipice
setări Tipice pentru utilizarea pe desktop de exemplu, între un microcontroller și aterminal emulator program, cum ar fi „Tera Term”:
Baud | 9600 |
Data bits | 8 |
Parity | None |
Stop bits | 1 |
Flow Control | None |
This can also be compactly written as:
9600 8N1
Hardware Connections 3 (Rx,Tx,GND) – Rx and Tx crossed over.,
„Flow control” în lista de mai sus se referă la o metodă de semnalizare hardware flow control care utilizează semnalele DTR/DSR și RTS/CTS. Vezi AICI pentru mai multe despre asta.
Cum RS232 Lucrări – Nivele de Semnal
La un moment dat, poate doriți pentru a face un software UART poate pentru a salva codespace în curente de proiectare (poate nu ai nevoie de a primi o parte – ca ești doar scoate variabile) sau de a folosi un ac de rezervă.
Notă: puteți găsi primi și transmitsoftware USART codul în 12F675 Tutorialpages.,
pentru a-l crea aveți nevoie de diagramele de semnal reale pe care le vedeți la themicrocontroller pin (ciudat acestea sunt greu de găsit pe web).
următoarea diagramă arată fluxul de biți temporizat 0V și 5V la pinul de ieșire al microcontrolerului. Diagrama inferioară prezintă nivelurile de semnal traduse ladriverele de ieșire RS232 care sunt transmise prin cablul serial.
aceste niveluri mai ridicate sunt sunt generate prin trimiterea nivelurilor logice 0-5V la un cip de transfer, de ex., MAX232 care are o diodă / condensator impuls conveter builtin care stimulează nivelurile de semnal la tensiunea RS232 necesară ±12 volți. Rețineți modul în care nivelul-12V corespunde unui ” 1 „logic și +12Vlevel corespunde unui” 0 ” logic.
Cea mai mică undă în bove diagrama de mai sus arată RS232signal care le-ar vedea, folosind un osciloscop la ieșirea cu mașina unui traducător chip, cum ar fi MAX232. Rețineți că RS232 idlevoltage este -12V,
RS232 Ceas
diagrama De mai sus arată, de asemenea, RS232 timingdiagram unde fiecare bit perioada este de 1/frecvență atât pentru abaud rata de 9600 bps (biți pe secundă) perioada de fiecare bit este 1/9600 or104.,166us aceasta este în mod eficient perioada de ceas RS232 necesară pentru rata specificbaud în utilizare.
RS232 Undă
În diagrama de mai sus, cea mai mică formă de undă arată RS232 voltagesignal care vă puteți aștepta pentru a vedea la ieșirea din RS232 TX pin(de asemenea, aceleași niveluri pe RX pin) pe un osciloscop. În unele cipuri, nivelul maxim al semnalului poate să nu fie ±12V – tensiunea maximă și minimă ar putea fi mai mică (deoarece nu va exista o cădere de tensiune mare pe distanțe scurte)., Pentru distanțe lungi acestea ar trebui să fie ±12v – la capătul unui cablu lung tensiunea va scădea peste rezistența cablului, dar trebuie să fie mai mare de ±3V la celălalt capăt.
capacitatea cablului va încetini, de asemenea, marginile în creștere și în scădere – rotunjireele.
cum funcționează RS232 – semnalele de strângere de mână
semnalele de strângere de mână sunt pur și simplu o metodă de oprire a fluxului de date. Dacă o parte a sistemului este ocupată, este posibil să nu poată accepta mai multe dateși, mai degrabă decât să-l piardă, semnalele sunt utilizate la fiecare capăt al legăturii pentru a spune celuilalt capăt pentru a opri transmiterea datelor., Există două tipuri utilizateîn RS232: strângere de mână hardware și strângere de mână software.
strângere de mână hardware
- DTR-terminal de date gata.
- DSR – set de date gata.
- RTS-cerere de trimitere.
- CTS-clar pentru a trimite.
Dacă utilizați aceste semnale, atunci ele trebuie să fie transmise la theRS232 niveluri de exemplu ±25V (sau orice tensiune este generată de thetranslator cip de exemplu, ±12V adică la fel ca TX ieșire, așa că ai nevoie de o RS232 cip cu mai mult nivelul de traducători pentru ambele transmit receivethe semnale.,amintiți – vă că protocolul a fost bazat pe un modem (DCE sau echipamente de comunicare de date) așezat pe un birou și un atașat (prin RS232)la PC (DTE sau echipamente terminale de date) – controlerul. Nu există lucru ar fi un inel indicator (RI) care semnalizează când telefonul sună,conectate direct la linia telefonică, care ar permite automat modemdetection de intrare flux de date. fiecare semnal nu este ortogonal ceea ce înseamnă că nu există un semnal echivalent merge înapoi în altă parte., Această parte a protocolului a crescut Ore suplimentare, astfel încât există diferite utilizări ale acestor semnale, dar în general se utilizează următoarele:
pentru a opri datele provenite de la PC, adică pentru a opri copleșirea modemului cu date:
- RTS (PC) la modem.
- CTS (modem) la PC.
PC-ul afirmă RTS pentru a indica faptul că dorește să transmită date modemului.
modemul afirmă CTS pentru a primi date de pe PC. pentru a opri datele provenite de la modem, adică pentru a opri copleșirea PC-ului cu date:
- DTR (PC) la modem.
- DSR (modem) la PC.,modemul afirmă DSR pentru a indica faptul că dorește să transmită date către PC.
PC-ul afirmă DTR pentru a primi date de la modem.dacă vedeți termenii XON și XOFF aceasta este o metodă de control a fluxului software în care receptorul transmite un caracter special (în ASCIIset) pentru a spune transmițătorului să nu mai trimită date. Atunci când receptorul hastrecovered (un tampon este golirea), atunci se poate transmite semnalul XON pentru a spune transmițător pentru a re-porni de transmisie.