Document, comentariu, eseu, bacalaureat, liceu si facultate
Top documenteAdmitereTesteUtileContact
      
    


 


Ultimele referate adaugate

Adauga referat - poti sa ne ajuti cu un referat?

Politica de confidentialitate



Ultimele referate descarcare de pe site
  CREDITUL IPOTECAR PENTRU INVESTITII IMOBILIARE (economie)
  Comertul cu amanuntul (economie)
  IDENTIFICAREA CRIMINALISTICA (drept)
  Mecanismul motor, Biela, organe mobile proiect (diverse)
  O scrisoare pierduta (romana)
  O scrisoare pierduta (romana)
  Ion DRUTA (romana)
  COMPORTAMENT PROSOCIAL-COMPORTAMENT ANTISOCIAL (psihologie)
  COMPORTAMENT PROSOCIAL-COMPORTAMENT ANTISOCIAL (psihologie)
  Starea civila (geografie)
 

Ultimele referate cautate in site
   domnisoara hus
   legume
    istoria unui galban
   metanol
   recapitulare
   profitul
   caract
   comentariu liric
   radiolocatia
   praslea cel voinic si merele da aur
 
despre:
 
Comunicatia seriala
Colt dreapta
Vizite: ? Nota: ? Ce reprezinta? Intrebari si raspunsuri
 

Descriere generala

Comunicaþiile seriale se utilizeaza pe distanþe mici de ordinul zecilor de metri cat ºi pe distanþe mari (interlocalitaþi), prin intermediul sistemului telefonic. Transformarea paralel-serie a cuvintelor de date asociate cu transmisia pe o singura linie (in general un singur canal), elimina sarcina dificila a asigurarii la recepþie a sincronismului, intre mai multe semnale electronice transmise in paralel pe linii fizic diferite. l5h23hb
Comunicaþiile serie in cazul PC-urilor se incadreaza in principiu in modelul general al unei comunicaþii de date serie intre doua echipamente de prelucrare a datelor (terminale, calculatoare). O astfel de comunicaþie este formata din urmatoarele componente :
- echipamente terminale (?C, calculator, terminal de date, etc) sunt surse ºi/sau destinaþii ale datelor. Ele sunt interfaþate paralel cu unitaþile de comunicaþii serie
- unitaþile de comunicaþie serie (numite ºi controlere de comunicaþie sau interfeþe de comunicaþie cu funcþiuni de control al comunicaþiei. In principal, unitatea serie executa conversia paralel-serie ºi serie-paralel de la ºi catre ?procesor. In plus tot la acest nivel se executa ºi detecþia ºi corecþia erorilor
- echipamente de adaptare electrica (ETCD - echipament terminal pentru comunicaþii de date) cu linia fizica (canalul) pe care se realizeaza legatura, numite in general modem-uri. In cazul in care mediul de transmisie este analogic, modemul executa conversia digital/analogica ºi cea inversa ºi modularea/demodularea unui semnal purtator, corespunzator cu largimea de banda a canalului utilizat ºi a vitezei de transmisie
- linia de comunicaþie, reprezinta mediul fizic prin care se face comunicaþia. In practica aceasta "linie" poate lua o diversitate de forme (linii fizice dedicate, linii telefonice din reþeaua telefonica publica, canale din sisteme mutiplex cu diviziune in frecvenþa sau in timp)
Comunicaþiile de date sunt subiectul a numeroase standardizari internaþionale. In aceste standardizari, unitatea de prelucrare ºi cea de comunicaþie serie formeaza impreuna echipamentul terminal de prelucrare a datelor (EPTD), vazut dinspre ETCD (modem) printr-o interfaþa mecanica ºi electrica standard de comunicaþie serie care asigura compatibilitatea diverselor ETPD ºi ETCD.
Circuitul de date este porþiunea cuprinsa intre doua ETPD. El asigura comunicaþia serie a datelor la nivelul ETPD, fara ca ETPD sa fie nevoit sa "cunoasca" detaliile implementarii legaturii fizice pe linie. Se observa ca in cazuri particulare, cele doua ETPD pot fi legate direct prin linii fizice cu cuplaj in curent continuu pe distanþe de ordinul zecilor de metri, caz in care circuitul de date degenereaza in aceasta linie. Citeva exemple tipice sunt: conectarea unui terminal de tip consola printr-o legatura serie cu un ?C sau conectarea serie a doua ?C aflate la o distanþa relativ mica.
Legatura de date include circuitul de date ºi unitaþile de comunicaþie serie. La nivelul acesteia, protocoalele de date asigura stabilirea, menþinerea, asigurarea corectitudinii mesajelor transmise ºi deconectarea legaturii intre doua staþii de date. Prelucrarile implicate de realizarea protocoalelor sunt de nivel logic ºi nu electric. In afara canalului principal de transmisie, poate exista ºi un canal secundar de intoarcere, utilizat pentru confirmari de recepþie.




Parmetrii legaturii de date in serie

Debitul binar (viteza de transmisie) = numarul maxim de simboluri binare transmise pe secunda:
D=1/T abiþi/si unde T este perioada de timp alocata transmisiei unui nivel logic 1 sau 0 (aºa numita perioada de "bit").
Viteza reala efectiva de transmisie a datelor este inferioara lui D deoarece:
- in afara informaþiei propriu-zise, exista porþiuni redundante ale mesajelor (identificatori, comenzi, biþi pentru detecþia ºi corecþia erorilor etc.)
- in mai multe cazuri transmisia este de tip asincron, caz in care in interiorul unui mesaj exista "pauze variabile" care nu poarta informaþie
- in cazul apariþiei erorilor se procedeaza de obicei (la nivelul legaturii de date) la retransmiterea mesajelor eronate, ceea ce conduce la micºorarea vitezei efective
Viteza de modulaþie = numarul de schimbari pe secunda a starii electrice la ieºirea modemului (inversul intervalului de modulaþie) ºi se masoara in bauds :

V(m)=1/* abaudsi

Relaþia intre D ºi V(m) este:

D=V(m) ? log2n abiþi/si

unde n este numarul starilor electrice utilizate in modem.
Vitezele ºi debitele standardizate pe plan internaþional sunt: 75,150, 300, 600, 1200, 2400, 4800, 9600, 19200. Vitezele mai mari pot ajunge la 14400, 28800, 38400, 57600, 96000, 115200.

Codurile utilizate in comunicaþii de date

In comunicaþia de date, informaþia se transmite sub forma de caracter, un caracter reprezentind litere, cifre, semn speciale, sau informaþii pentru comanda comunicaþiei (caractere neafiºabile). In funcþie de codul utilizat, un caracter se reprezinta prin 5 pina la 8 biþi.
Codurile mai utilizate sunt:
- codul Baudot (CCITT nr.2 sau AI nr.2), sau codul CCITT nr.2. Este utilizat pentru transmisiile telegrafice cu viteze mici pe reþelele telegrafice comutate (TELEX), avand 5 biþi/caracter (32-combinaþii)
- codul CCITT NR.5 (ASCII) cu 7 biþi/caracter (128-combinaþii)
- codul BCD cu lungimea de 7 biþi (6 biþi plus un bit pentru paritate). Acest cod permite obþinerea a 64 combinaþii de cod distincte pentru reprezentarea informaþiei vehiculate pe canal ºi a fost utilizat in sistemele de calcul de generaþia a 2-a
- codul EBCDIC cu 8 biþi/caracter, ce constituie o extindere a codului BCD, neavind control al paritaþii, oferind 256 de combinaþii
Blocul reprezinta un ansamblu de biþi, caractere sau cuvinte (cuvant este un octet - byte sau multioctet de date, in general egal ca dimensiune cu cuvintul de date al UCP).
Mesajul reprezinta o succesiune de unul sau mai multe blocuri, incadrate de delimitatori.

Detecþia ºi corecþia erorilor

Problema esenþiala in comunicaþia de date, detecþia ºi corecþia erorilor se face la nivelul funcþional al legaturii de date. Metoda general utilizata care permite detectarea erorilor este adaugarea la transmisie a informaþiei de control (redundanta), aflata in corespondenþa stricta cu conþinutul informaþional propriu-zis al mesajului. Acest lucru permite efctuarea la recepþie a unor verificari asupra corectitudinii elementului protejat (caracter, mesaj, bloc).
Metodele de protejare mai uzuale sunt urmatoarele :
- verificarea de tip vertical (VRC=Vertical Redundancy Check), in care fiecare caracter este prevazut la transmisie cu un bit suplimentar de paritate. Acesta asigura o anumita paritate fixata (para sau impara) a caracterului completat, verificabila la recepþie
- verificarea longitudinala (LRC=Longitudinal Redundancy Check) in care se adauga la sfirºitul unui bloc un caracter reprezentind suma modulo doi a tuturor caracterelor din bloc
- utilizarea codurilor detectoare ºi corectarea de erori. De obicei sunt utilizate coduri ciclice, cu polinoame generatoare standardizate (CRC-Cyclic Redundancy Check)
Corectarea erorilor detectate se poate face automat (daca codul utilizat este ºi corector) sau prin retransmiterea mesajului (blocului) eronat. Corecþia prin retransmitere este de trei tipuri :
- cu oprire ºi aºteptare ARQ-ACK (Automatic ReQuest for Repeat-ACKnowledge) in care transmitatorul transmite blocul n de informaþie ºi aºteapta apoi semnal de confirmare. In cazul confirmarii pozitive (ACK) se transmite blocul n*1 iar in caz contrar, se transmite blocul n
- cu transmisie continua (ARQ-NACK) - in care transmitatorul transmite continuu blocurile ...n, n*1, n*2,... fara a aºtepta semnalul de confirmare pozitiva (ACK). Daca se primeºte o confirmare negativa (NACK) de la receptor, atunci se reia transmisia incepind de la blocul recepþionat eronat de catre corespondent
- cu transmitere selectiva - asemanatoare cu ARQ-NACK, cu deosebire ca se retransmite doar blocul eronat.

Transmisia asincrona ºi transmisia sincrona

O legatura de date poate fi utilizata in trei moduri :
- simplex - transmisie intr-o singura direcþie
- semi-duplex - transmisie in ambele sensuri dar succesiv
- duplex - transmisie simultana in ambele sensuri.
Modul de utilizare depinde de implementarea fizica a circuitului de date ºi de protocolul de date folosit. Citirea ºi interpretarea corecta a datelor recepþionate de catre unitatea de comunicaþie serie presupune o sincronizare intre transmiþator ºi receptor. Exista doua tipuri de transmisii (referitor la sincronizare) : asincrona ºi sincrona.

Transmisia asincrona (START-STOP)

In transmisia asincrona, caracterele se transmit ca entitaþi distincte delimitate de bitul de START (nivel"0") ºi debitul (sau biþii) de STOP (nivel "1") ca in fig 1 :

fig 1 - caracter in transmisie seriala

Intervalul dintre doua caractere poate fi oarecare, linia fiind menþinuta in acest caz pe nivelul electric corespunzator situaþiei de repaus ("1" logic). Lungimea unui caracter variaza in funcþie de codul folosit, intre 5 ºi 8 biþi/caracter. Durata (minima) a STOP-ului este T, 2T sau 1,5T (valori standard).

Receptorul trebuie sa cunoasca: viteza de transmisie (1/T), numarul de biþi/caracter ºi daca exista sau nu bit de paritate ºi tipul acestuia, durata STOP-ului. Recepþia unui caracter este declanºata de frontul anterior negativ al bitului de START. Receptorul porneºte o baza de timp locala, decalata cu T/2 faþa de frontul de lucru negativ al START-ului ºi care furnizeaza momentele de eºantionare a biþilor caracterului. Recepþia unui caracter se termina dupa achiziþionarea tuturor biþilor acestuia. Procesul se repeta caracater cu caracter.
Transmisiunile de tip asincron se utilizeaza curent pentru viteze mici (* 1200 biþi/s), in legaturile de date prin modem-uri. Pentru legaturi directe, binare pe distanþe mici se pot utiliza ºi viteze mai mari: 2400, 4800, 9600 ºi valori foarte mari dar care nu sunt garantate ºi nici documentate: peste 9600: 19200, 28800, 38400, 57600, 115200.

Transmisia sincrona

Transmisia sincrona se utilizeaza pe legaturile de date de viteza mare, fiind preferata datorita eficienþei (majoritatea protocoalelor de date sunt construite pentru transmisii sincrone). Informaþia este transmisa sub forma de blocuri de caractere sau biþi (102-105 biþi) succesivi (fara biþi de START ºi STOP intre caractere), incadrate de caractere speciale de sincronizare, delimitare ºi comanda.
In receptorul sincron exista trei nivele de sincronizare:
- sincronizarea pe bit, obþinuta prin bucle cu calare de faza (PLL) pe baza tranziþiilor existente in semnalul recepþionat
- sincronizarea pe caracter realizata prin recunoaºterea a unul sau doua caractere de fazare (numite caractere SYN ). Receptorul sesizeaza caracterele SYN ºi iºi fazeaza logica sa recunoasca prin numararea biþilor, inceputul ºi sfarºitul fiecaruia dintre caracterele urmatoare. Pentru a asigura menþinerea sincronizarii, se insereaza caractere SYN suplimentare in mesajul transmis, la intervale de una sau doua secunde. Daca recptorul nu mai recepþioneaza corect SYN (intr-un interval limitat de timp), el rejecteaza mesajul ºi reincepe cautarea lui SYN
- sincronizarea de bloc sau mesaj dependenta de protocolul de date (DLC=Data Link Control) folosit

Numarul de staþii de date interconectate printr-un canal de telecomunicaþii poate fi de doua feluri (legaturi point-to-point) sau mai mult de doua (legaturi multipoint), acest numar avand implicaþii asupra procedurilor de exploatare (adresare, explorare).

Protocoale de date

Funcþiunile de baza ale unui protocol de date denumit pe scurt DLC (Data Link Control) sunt :
- stabilirea si intreruperea legaturii intre doua staþii
- asigurarea integritaþii mesajelor prin detecþia erorilor, cerere de retransmisie ºi confirmari de recepþie (pozitive sau negative)
- identificarea transmiþatorului ºi receptorului prin explorare ºi selecþie
- asigurarea umor funcþii de comanda speciale, cum ar fi : cererea transmiterii starii, resetarea unei staþii, confirmarea resetarii, start, confirmarea startului, deconectare
In cadrul modelului arhitectural al comunicaþiei de date, DLC se gaseste pe nivelul 2. Clasificarea protocoalelor de date se face in principal dupa modul cum raspund la sincronizare. Exista protocoale orientate pe caracter (BCP - Byte Control Protocols) ºi protocoale orienrate pe bit (BOP - Bit Oriented Protocol).

Protocolul BCP

Mesajul consta intr-or succesiune de octeti, delimitaþi printr-o secvenþa de sincronizare (doua sau mai multe caractere SYN). Mesajul propriu-zis estecompus din unul sau mai multe blocuri. Pentru funcþionarea corecta. a legaturii de sunt prevazute caractere de comanda care fac parte din codul utilizat (ASCII, EBCDIC, etc). Un bloc se compune dintr-un camp de comanda (header), un cimp de text ºi un cimp pentru detectarea erorilor (LRC sau CRC ). Exemple de caractere de comanda sunt : SOH (Start of Header), STX (Start of TeXt), ETB (End of Intemediate Transmission Block), ETX (End of TeXt), EOT (End Of Trasmission).

Protocolul BOP

In acest protocol unitatea de transmisie este cadrul, delimitat de doua flaguri (01111110). In interiorul unui cadru se gasesc : cimpurile de comanda, de informaþie, de detectare a erorilor. In aceste protocoale, mesajul propriu-zis este tratat ca o succesiune de biþi situata intre cele doua flaguri. Protocoalele BOP sunt mai flexibile decat BCP in asigurarea “transparenþei” (transparenþa=posibilitatea de a transmite ºi caractere de comanda in interiorul blocului de informaþie, fara ca acestea sa fie interpretate la recepþie drept comenzi ). Exemple de protocoale BOP : SDLC (Synchronous Data Link Control), HDLC (High Level Data Link Control-ISO), ADCCP (Advanced Data Communication Control Procedure-ANSII), etc.

Circuite specializate pentru comunicaþia serie

Comunicaþia serie in PC-uri este realizata de catre circuite programabile specializate, care comunica paralel cu UC ºi serie cu exteriorul. Circuitele specializate pentru comunicaþia serie (numite ºi intefeþe de comunicaþie serie) se intalnesc in practici in doua variante :
- circuite transmiþator-receptor asincron (UART=Universal Asincron Receiver/Transmitter) sau transmiþator/receptor asinancron (USART - permite ºi realizarea sincronizarii in cazul protocoalelor sincrone)
- circuite transmiþator/receptor ºi realizare a funcþiilor protocoalelor de date. Avantajul acestei specializari este eliberarea UC de efectuarea sarcinilor privitoare la protocolul de date.

Strutura unui transmiþator/receptor elementar (T/R)

Funcþiile de baza ale T/R sunt conversia serie/paralel la recepþie ºi paralel/serie la transmisie.
Transmiþatorul (T) conþine un registru paralel in care primeºte un cuvant in mod paralel de la UC. Codul paralel se transfera in registrul de deplasare pentru conversia paralel/serie, generandu-se semnalul serie pe o ieºire notata TxD, la momente de timp furnizate de un semnal de tact pentru transmisie notat TxC. Acest ceas poate fi primit din exterior (modem) sau este obþinut prin divizarea ceasului sistemului. In funcþie de modul de lucru, asincron sau sincron, logica de comanda adauga biþii de START, paritate, STOP (pentru asincron) sau caracterele de sincronizare, LRC, CRC, SYN (pentru sincron). Programarea transmiþatorului implica setarea regiºtrilor logicii de comanda (porturi), prin cuvinte de mod ºi comanda prin care se stabilesc caracteristicile funcþionale ale circuitului. Transmiþatorul poate fi controlat prin cuvantul de stare. Acesta este reprezentat. pe acest model de semnalele TxRDY (TxRDY=1, cand buferul de transmisie este vid, deci poate primi un nou caracter) ºi TxE (TxE=1, cand convertorul paralel - serie este vid deci s-a terminat transmisia efectiva a caracterului). Informaþiile datorate acestor biþi se pot obþine :

- citirea cuvantului de stare al transmiþatorului
- intreruperi generate de semnalele electrice asociate la TxRDY ºi TxE

Receptorul (R) conþine un caracter serie - paralel in care se achiziþioneaza in mod serie biþii semnalului pe intrarea RxD, la eºantionarea cu ceasul RxC. Dupa terminarea recepþiei unui caracter, acesta este transferat in buferul de recepþie. Acest lucru este reflectat prin setarea RxRDY=1. Se poate citi un cuvant de stare sau se genereaza o intrerupere. Cuvantul de stare poate conþine ºi alte informaþii legate de recepþie.De exemplu, pentru modul de lucru asincron, cuvantul de stare conþine in mod tipic urmatorii biþi indicatori : eroare de paritate, eroare de recepþionare a bitului de STOP (daca este un o in loc de 1), eroare de suprapunere (overrun), cand un caracter a fost recepþionat ºi transferat de receptor in buffer peste cel precedent.
Programarea receptorului (la fel ºi a transmiþatorului) se face prin scrierea in registrele logicii de comanda a cuvintelor de mod ºi de comanda corespunzatoare modului ºi parametrilor de lucru doriþi.

Porturi seriale intr-un PC

Intr-un PC se pot gasi pana la 4 porturi seriale, adresabile prin servicii BIOS sau DOS. Pentru BIOS primul port serial este 0, urmatorul este 1, etc. Pentru DOS primul port serial este COM1, al doilea este COM2, etc. In modul de funcþionare sincrona se presupune sincronizarea ca operaþie prealabila recepþionarii ºirului de caractere ce constitue mesajul. Circuitul intra in modul "cautare" (HUNT) in care biþii recepþionaþi pe linia RxD sunt inscriþi unul cate unul in tamponul datelor recepþionate. Dupa fiecare bit anscris are loc compararea intre conþinutul acestui tampon ºi conþinutul unui registru incarcat prin program cu caracterul de sincronizare. Cand cele doua registre au conþinuturi diferite, se aºteapta recepþionarea bitului urmator ºi operaþia continua astfel pana ce tamponul datelor recepþionate conþine caracterul SYN. Daca protocolul de comunicaþie prevede sincronizarea cu un singur SYN, circuitul iese din modul HUNT ºi SYNDET=1. Trebuie remarcata necesitatea ca cele doua caractere sa fie caractere succesive, fara biþi sau caractere straine intercalate intre ele. Intrarea in modul "cautare" se face in urma iniþializarii funcþionarii sau in urma conmenzii prin program a acestui regim. In modul asincron sunt adaugaþi biþii de START, de paritate (daca este cazul) ºi bitul (biþii) de STOP. In acest mod un semnal de 0 pe linia RxDpoate semnifica un bit de START. Daca linia este gasita in starea 0, se trece la recepþia caracterului, constand din biþi de paritate ºi bit (biþi) de STOP. Cand intreg caracterul a fost recepþionat, linia RxRDY indica disponibilitatea acestuia in tamponul datelor recepþionate.
In conformitate cu specificaþiile CCITT V.24 respectiv EIA RS 232-C nivele electrice corespunzand nivelelor logice pentru interfaþa seriala sunt :
- pentru "0" logic : +3 - +12V
- pentru “1” logic : -3 - -12V

Programarea interfeþei seriale

Interfata seriala poate fi programata in trei moduri :
- servicii DOS
- servicii BIOS
- programarea directa a interfeþei seriale prin controlul regiºtrilor

Programarea prin intermediul serviciilor DOS se face folosind funcþia 0x4b cu INT 21h. Programarea prin servicii BIOS permite o viteza maxima de 9600 bauds, dupa care se pot pierde caractere. Acest fapt se datoreaza modului cum se desfaºoara comunicaþia in PC (de exemplu, la afiºare se face ºi scroll al ecranului care consuma timp).

Serviciul 0, INT 14H

Acest serviciu seteaza parametrii de comunicaþie : viteza de transmisie, paritatea, numarul de biþi de stop ºi lungimea cuvantului. Paramatrii sunt introduºi in registrul AL :

Dupa execuþie intreruperea este dezactivata ºi registrul AX conþine informaþii ce vor fi descrise la serviciul 3.

Serviciul 1, INT 14H

Acest serviciu este utilizat pentru transmisia unui caracter. Caracterul ce urmeaza a fi transmis este incarcat in registrul AL, DX este incarcat cu numarul portului utilizat (este valabil pentru toate serviciile). Dupa transmisie, registrul AH conþine informaþii despre cum s-a transmis caracterul : daca bitul 7 este setat inseamna ca nu s-a putut transmite octetul. In caz contrar registrul conþine primii 7 biþi de stare (fara bitul de Time-out error).

Serviciul 2, INT 14H

Cu acest serviciu se face recepþia unui caracter in registrul AL. Daca bitul 7 al registrului AH este setat inseamna ca recepþia a eºuat. In caz contrar, biþii 4, 3, 2,1 sunt biþiicorespunzatori ai registrului de stare.

Serviciul 2, INT 14H

Acest serviciu returneaza starea portului serial. Registrul AH raporteaza starea liniei de comunicaþie, iar registrul AL starea modemului.

Registrul AH (comanda liniei) Registrul AL (comanda modemului) bit 7 = time-out error received line signal detect bit 6 = transmitter shift register empty ring indicator bit 5 = transmitter holding register empty data set ready bit 4 = break detect clear to send bit 3 = framing error delta receive line signal detect bit 2 = parity error trailer edge ring detector bit 1 = oevrrun error delta data set ready bit 0 = data ready delta clear to send

Programarea directa a interfeþei seriale

Interfaþa seriala este vazuta de programatori ca fiind compusa din 10 regiºtri accesibili ca porturi de intrare sau iesire. Regiºtrii sunt prezentaþi in continuare : nume abreviere adresa in/out transmitter holding register THR xF8h out receiver data register RDR xF8h in baud rate divisor (LSB) BRD (LSB) xF8h out baud rate divisor (MSB) BRD (MSB) xF9h out interrupt enable register IFR xF9h out interrupt ID register IIR xFAh in line control register LCR xFBh out modem control register MCR xFCh out line status register LSR xFDh in modem status register MSR xFEh in

Se observa ca prima litera de la adresa este notata cu x. Ea va fi inlocuita cu cifra corespunzatoare portului serial pe care se doreºte a se face comunicaþia. Astfel, daca se utilizeaza COM1, cifra va fi "3", iar daca se foloseºte COM2, cifra va fi "2". Adresa cartelei seriale se afla in zona de date BIOS la adresa 0040:0000H. La offseturile 0002H, 0004H ºi 0006H se afla adresele celor trei cartele ce pot exista in sistem. Recomandarea este ca dupa fiecare citire/scriere din/in port sa se faca o mica bucla de intarziere. Intreruperile hard generate la recepþia/transmisia unui caracter sunt : 0x0C pentru COM1 ºi 0x0B pentru COM2, respectiv IRQ4 ºi IRQ3.

Registrul THR (xF8h)

Conþine caracterul ce va fi transmis. Primul bit transmis este 0.

Registrul RDR (xF8h)

Este buferul in care se va regasi caracterul recepþionat

Registrul LSB (xF8h) ºi MSB (xF9h)

Pentru a accesa aceste registre trebuie ca bitul 7 al registrului LCR sa fie setat. Aceste registre folosesc la programarea ratei de divizare, deci a vitezei de transmisie.

viteza MSB (hexa) LSB (hexa)

50 09 00
75 06 00
110 04 17
134,5 03 59
150 01 00
300 00 80
600 00 C0
1200 00 60
2400 00 30
4800 00 18
9600 00 0C
14400 00 08
19200 00 06
28800 00 04
38400 00 03
57600 00 02
115200 00 01

Se observa ca multe din aceste rate nu sunt accesibile BIOS-ului.

Registrul IER (xF9h)

Controllerul I8259 permite ca numai patru intreruperi sa fie activate sau dezactivate in mod independent. Intreruperile ce pot fi setate respectiv resetate in acest registru sunt codate in primii patru biþi ai registrului.

Prin setarea bitului corespunzator se activeaza intreruperea, iar prin resetare se dezactiveaza. Pentru a avea acces la acest registru trebuie ca bitul 7 (DLAB) LCR sa fie resetat.

Registrul.IIR (xFAh)

Pot fi programate patru tipuri de intreruperi prin registrul IER. Daca mai mult decat una a fost activata, rutina de intrerupere trebuie sa ºtie datorita carei cauze s-a produs ºi sa acþioneze in consecinþa. Daca numai o singura intrerupere este activa, atunci acest lucru nu mai este necesar. Biþii 1 ºi 2 codeaza tipul de intrerupere pe baza de prioritate

bit 2 bit 1 nivel prioritate tipul intreruperii ºi cum se reseteaza
1 1 1 activata prin setarea bitului 2 din IER, semnifica eroare de overrun, paritate sau framing. Se reseteaza prin citirea LSR (xFDh)
1 0 2 activata prin setarea bitului 0 din IER. Semnifica caracter recepþionat. Se reseteaza prin citirea RDR
0 1 3 activata prin citirea bitului 1 din IER. Semnifica caracter recepþionat. Se reseteaza prin citirea RDR
0 0 4 activata prin setarea bitului 3 din IER. Semnifica starea modemului schimbata. Se reseteaza prin citirea RDR

Registrul LCR (xFBh)

Acest registru programeaza parametrii transmisiei

Registrul MCR (xFCh)

Acest registru permite setarea unui protocol de comunicaþie cu un dispozitiv extern (modem). Bitul 0 controleaza semnalul Dtata Terminal Ready (active pe 1). Bitul 1 controleaza semnalul Request To Send. Bitul 3 controleaza semnalul 2 de la ieºire (TxD). Acesta permite intreruperii generate de interfaþa sa fie plasata pe bus-ul sistem pentru a fi recepþionata de controllerul de intrerupere. Bitul 4 permite realizarea unei bucle de testare pentru verificarea corectitudinii unei porþiuni din programul de comunicaþie seriala. Iniþializarea obiºnuita a acestui registru arata astfel :

Registrul LSR (xFDh)

Acesta este registrul de stare. El conþine informaþii privitoare la transferul de date. Bitul 0 semnifica Data Ready, deci caracterul a fost recepþionat. Registrul este resetat prin citirea caracterului din portul xFBh. Bitul 1 este pentru eroare de overrun, bitul 2 pentru eroare de framing iar bitul 4 pentru eroare de intrerupere BREAK. Citirea registrului LSR reseteaza biþii de eroare. Bitul 5 arata ca registrul de transmisie este gata sa primeasca un nou caracter. Bitul 6 arata acelaºi lucru ºi suplimentar ca ºi registrul de deplasare este gol. Bitul 7 este nefolosit (=0).

Registrul MSR (xFEh)

Acest registru conþine informaþii cu privire la starea liniilor modemului. Patru din biþi sunt setaþi daca linia de intrare a interfeþei ºi-a schimbat starea de la ultima citire a registrului de stare.

Probleme

1. Analizaþi programele din fiºierul seriala.c. Primul program permite interconectare intre doua calculatoare pe seriala prin COM2, al doilea implementeaza protocolul XON-XOFF, al treilea corupe intreruperea de ceas, recepþie pe seriala ºi tastatura iar al patrulea permite comunicarea prin programarea directa a porturilor.
2. Construiþi un program mai amplu ce permite un transfer de fiºiere ºi programarea flexibila a serialei din meniu.


Colt dreapta
Creeaza cont
Comentarii:

Nu ai gasit ce cautai? Crezi ca ceva ne lipseste? Lasa-ti comentariul si incercam sa te ajutam.
Esti satisfacut de calitarea acestui document, eseu, cometariu? Apreciem aprecierile voastre.

Nume (obligatoriu):

Email (obligatoriu, nu va fi publicat):

Site URL (optional):


Comentariile tale: (NO HTML)


Noteaza documentul:
In prezent fisierul este notat cu: ? (media unui numar de ? de note primite).

2345678910

 
Copyright© 2005 - 2024 | Trimite document | Harta site | Adauga in favorite
Colt dreapta