Sunteți pe pagina 1din 61

CAPITOLUL 7

COMANDA APLICATIILOR EXTERNE CU MICROCALCULATORUL PC

Conectarea diferitelor echipamente periferice la calculatorul PC, precum i monitorizarea, comanda i controlul unor aplicaii externe, industriale i domestice de catre PC se face utiliznd urmtoarele ci: interfaa paralel, interfaa serie, denumite n mod uzual porturile paralel i serie, interfaa USB precum i sloturile care permit conectarea direct pe magistralele de intrare / ieire, ISA i PCI. O scurt analiz comparativ a celor 4 soluii arat c: * portul paralel este foarte rspndit i asigur suficiente resurse pentru o gam larg de aplicaii, n sensul c ofer multe linii de date, comand i stare i vitez medie; mai are i avantajul c exist o mulime de plci cu aplicaii pentru portul paralel precum i software specific care pot fi folosite ca puncte de reper pentru crearea altor aplicaii; * portul serie este, de asemenea foarte rspndit, ofer mai puine resurse dect cel paralel (numr de linii mai mic, vitez mai mic) dar i pre de implementare mai mic i siguran n funcionare mare; mai are i avantajul c exist o mulime de plci cu aplicaii pentru portul serie precum i software specific care pot fi folosite ca puncte de reper pentru crearea altor aplicaii; * portul USB este relativ nou, ofer vitez mare i foarte mare, comparativ cu portul paralel, ofer posibilitatea de a conecta mai multe plci cu aplicaii pe acelai port al calculatorului dar protocolul USB este puin cunoscut i greu de implementat; * sloturile care permit conectarea direct pe magistralele de intrare / ieire, ISA i PCI, ofer vitez maxim, ntruct permit conectarea direct a plcilor cu aplicaii pe placa de baz a calculatorului dar aceast soluie cere deschiderea calculatorului i accesul direct pe placa de baz ceea ce impune o foarte bun cunoatere a plcii de baz, mai exact a magistralelor de intrare/ 'ieire iar, pe de alta parte, introduce un factor de risc n funcionarea calculatorului ntruct placa aplicaie poate afecta direct funcionarea acestuia Scopul acestui capitol este cunoaterea celor 4 ci prin care calculatorul PC poate comanda, controla i monitoriza aplicaii externe, ca urmare ele vor fi descrise n continuare.

7.1. Portul paralel


Acest subcapitol descrie portul paralel al calculatorului PC. Vor fi descrise i aplicaii cu portul paralel. Accentul va fi pus pe utilizarea portului paralel sub sistemul de operare DOS. Exist mai multe echipamente periferice care se conecteaz la portul paralel: imprimante, scannere, uniti CD-ROM etc. precum i o gam larg de aplicaii externe, de comand, monitorizare i control. Conectarea la portul paralel al PC-ului se face prin intermediul unei cuple standard, de tip D, mam, cu 25 pini, situat n partea posterioar a calculatorului.

7.1.1.Standardizarea portului paralel


Datorit intensei utilizri a portului paralel, datorit cerinelor mereu crescnde de performan pe care trebuie s le satisfac precum i datorit cerinelor productorilor de imprimante a aprut necesitatea standardizrii acestui port. Operaia a fost realizat de ctre standardul IEEE 1284, "Standard Signaling Method for a Bidirecional Parallel Interface for Personal Computer" care a aprut n martie 1994. Standardul descrie comunicarea de mare vitez, bidirecional, ntre un PC i un periferic, la o vitez de 50100 ori mai mare dect cea a portului paralel original, asigurnd totodat i compatibilitatea cu porturile paralele i imprimantele mai vechi, de dinainte de apariia standardului. Standardul IEEE 1284 definete n totalitate portul paralel al PC-ului. El prevede: * 5 moduri de transfer pentru date, * o metod pentru port i periferic pentru a determina modurile de transfer suportate precum i pentru a negocia, stabili, un anume mod, * caracteristicile interfeei fizice: cabluri, conectori, * caracteristicile interfeei electrice: amplificatoare de linie, receptoare, impedana liniei, terminatoare. Viteza mare oferit de porturile paralele conforme cu standardul 1284 nu era necesar atunci cnd la acest port erau conectate doar imprimante matriciale, echipamente lente i unidirecionale. Atunci, ns, cnd a fost necesar conectarea unor echipamente periferice mai rapide: imprimante laser, scannere, uniti CD-ROM, a devenit evident necesitatea unei viteze mai mari a portului. De asemenea, bidirecionalitatea cerut de unele echipamente periferice: scannere, uniti CD-ROM, precum i de multe aplicaii de comand i control a impus regndirea portului paralel. Aceste cerine au fost rezolvate de standardul IEEE 1284 n condiiile pstrrii compatibilitii totale cu porturile paralele i echipamentele periferice corespunztoare mai vechi.

7.1.2.Caracteristicile de baza ale portului paralel


Portul paralel const din interfaa paralel i conectorul de 25 pini, tip D, mam, situat pe panoul posterior al calculatorului. Interfaa paralel const din totalitatea circuitelor i registrelor de comand, date i stare care asigur legtura ntre un echipament periferic sau o aplicaie extern i magistralele ISA sau PCI ale calculatorului. Fizic, interfaa paralel se poate afla pe o plac de extensie, la PC-urile mai vechi, sau pe placa de baz. la PC-urile mai noi. Ea este implementat prin circuite distincte, la PC-urile mai vechi, sau inclus ntr-un controler de 1/ E, la PC-urile mai noi. | La nivelul conectorului, portul paralel este alctuit din 17 linii de semnal i 8 linii de mas. Liniile de semnal sunt mprite n 3 grupe: de date, 8 linii, de control, 4 linii i de stare, 5 linii. n varianta original a portului paralel, liniile de date au fost prevzute pentru a transfera date ctre imprimant, ca urmare erau unidirecionale. In variantele ulterioare, aceste linii au devenit bidirecionale. Liniile de control au fost prevzute pentru dialog i control al imprimantei iar liniile de stare au fost prevzute pentru dialog i indicare a strii imprimantei. La variantele ulterioare, liniile de stare au fost folosite i pentru a transmite date ctre port. 2

Tabelul 7.1 prezint plasarea semnalelor la conectorul de 25 pini, de tip D, al portului paralel. Dimensiunile semnalelor corespund modului original de lucru al portului paralel, denumit uzual SPP ("Standard Parallel Port"). La celelalte moduri de lucru, definite de standardul 1284, aceleai semnale vor primi alte denumiri.
Pin conector tip D 1 2 3 4 5 6 7 8 9 10

Semnal SPP

Direcie

Registru

Descriere

Inversare hardware

/Strobe DataO Datai Data2 Data3 Data4 Data5 Data6 Data7 /Ack

In/Out Out Out Out Out Out Out Out Out In

Control Data Data Data Data Data Data Data Data Stare

Activ la 0. Arat c pe liniile de date, datele sunt valide Linie de date Linie de date Linie de date Linie de date Linie de date Linie de date Linie de date Linia de date cea mai semnificativ Activ la 0. Arat c datele au fost preluate de periferic Activ la 1. Arat c imprimanta este ocupat i nu poate primi date Activ la 1. Arat lipsa hrtiei. Activ la 1. Arat c imprimanta este on line Activ la 0. Comand imprimanta s insereze automat un avans al hrtiei la fiecare revenire a capului de tiprire Activ la 0. Arata aparitia unei erori Activ la 0. Iniializeaz imprimanta Activ la 0. Indic imprimantei c este selectata Masa electric

Da

11 12 13

Busy PaperOut/ PaperEnd Select

In In In

Stare Stare Stare

Da

14

/Auto-Line feed

In/Out

Control

Da

15 16 17 18-25

/Error/ /Fault /Initialize /Select Printer/ /Select In Gnd

In In/Out In/Out -

Stare Control Control -

Da

Tabelul 7.1. Semnalele portului paralel "Inversare hardware" nseamn c interfaa portului inverseaz semnalul. Dac, ce exemplu, la intrarea Busy imprimanta plaseaz 1, atunci portul va citi semnalul ca find 0. n ceea ce privete semnalele de ieire inversate de hardware, ele trebuiesc negate prin program nainte de a fi trimise la port. 3

Standardul 1284 prevede 3 tipuri de conectori: de tip A, cel de 25 pini, cunoscut uzual sub numele de conector D, fig.7.1 ,a de tip B, un conector Centronics de 36 pini, existent la majoritatea imprimantelor cu jet sau laser, fig.7.1 .b, i de tip C, un conector tot. Centronics de 36 pini dar de dimensiuni mai mici dec: cel de tip B, fig.7.1 .c. a) de tip A (D) 13 1 14

25 b)de tip B

c) de tip C

Fig. 7.1. Conectorii prevzui de standardul IEEE 1284 Conectorul de tip C este cel recomandat pentru noile porturi paralele. Este mai mic ca celelalte tipuri, permite o prindere mai bun a cablului, are caracteristici electrice mai bune i, n plus, prevede 2 pini pentru 2 semnale suplimentare: Peripheral Logic High i Host Logic High. Totui, conectorul cel mai rspndit rmne, nc, cel de tip A. Acest conector se afl i pe panoul posterior al PC-ului. Semnalelor portului paralel le sunt asignate ranguri din registre din interfa. Toate modurile folosesc 3 registre, de baz, la care unele moduri adaug i altele Registrelor le corespund adrese de port din spaiul de 1/ E al PC-ului. Registrele sunt vzute de procesor ca blocuri contigue aflate la adrese succesive, pornind de la o adres de baz. BIOS-ul ("Basic Input/ Output System") sesizeaz existena ntr-un calculator a pn la 3 porturi paralele pe care le denumete LPT1, LPT2 i LPT3. Adresele de baz utilizate sunt: 3bch pentru portul paralel aflat pe plcile video, la PC-urile mai vechi sau, mai nou, pe plcile de baz, 378h pentru LPT1, n mod uzual i 278h pentru LPT2, n mod uzual. La pornirea calculatorului, BIOS-ul este cel care aloc porturilor paralele denumirile LPT. La nceput verific existena unui port paralel la adresa 3bch i dac il gsete i aloc denumirea LPT1. In continuare verific adresa 378h i dac gsete iacolo un port paralel atunci i aloc denumirea LPT2. Dac la adresa 3bch nu a gsit 4

un port paralel, atunci celui de la adresa 378h i aloc denumirea LPTl. Similar, este verificat i adresa 278h. Ca urmare, la adresa 3bch se poate afla doar portul paralel LPTl, la adresa 378h se pot afla LPT1 sau LPT2,iar la278h se pot afla LPT1,LPT2 sau LPT3. Exist ns i porturi paralele mai vechi la care pot fi setate denumirile LPTl, LPT2 sau LPT3 prin conexiuni. Intruct denumirile i adresele alocate porturilor paralele pot diferi de la un calculator la altul, este necesar stabilirea unor puncte de reper pentru utilizatori, adic pentru aceia care doresc s foloseasc portul paralel. Acestea sunt oferite de BIOS care ncarc, n RAM, adresele de baz alocate porturilor paralele la adrese fixe, tabelul 7.2.
Adres fix 0000:0408 0000:040a 0000:040c Semnificaie Adres de baz pentru LPTl Adres de baz pentru LPT2 Adres de baz pentru LPT3

Tabelul 7.2. Adresele de baz din RAM care conin adresele de baz ale porturilor paralele In continuare vor fi descrise registrele de baz folosite de modurile de lucru. La adresa de baz, notat pe scurt cu Baz se afl registrul de date, numit i Port de Date, figura 7.2. Este un port unidirecional n modurile de lucru "Compatibility", Nibble" i bidirecional n modurile de lucru "Byte", "EPP" i "ECP". 7
Data 7 Data6 Data 5 Data 4 Data 3 Data 2 Data 1

0
Data 0

Fig.7.2. Portul de Date La adresa Baz + 1 se afl registrul de stare, numit i Port de Stare, figura 7.3. Cinci ranguri corespund la 5 linii de intrare (pinii 10 - 15 ai conectorului), un rang corespunde unei ntreruperi i 2 ranguri sunt rezervate. Rangurile notate cu * corespund unor semnale inversate hardware. Dac n rangul 2 se citete 1, nseamn c nu s-a generat ntrerupere. Dac n rangul 7 se citete 1, nseamn c la pinul de la conector aloarea semnalului Busy este 0. Portul de Stare poate fi doar citit. 7
Busy* Ack PaperOut Selectln Error IRQ* Rez.

0
Rez.

Fig.7.3. Portul de Stare La adresa Baz +2 se afl registrul de control, numit i Port de Control, figura 7.4. Rangurile 7 i 6 sunt nefolosite. Rangurile 5 i 4 sunt ranguri de control intern. Rangul 4 va valida generarea unei ntreruperi iar rangul 5 va valida modul bidirecional care permite transferul n ambele sensuri a 8 bii de date. Porturile paralele vechi nu suport acest mod. Pentru ca un asemenea port s suporte totui acest mod, va fi necesar Intervenia la nivelul hardware-ului portului. Rangurile 3-0 corespund la 4 semnale de control: Select Printer, Initialize, Auto Linefeed i /Strobe. Cele notate cu * sunt inversate hardware. Exist i posibilitatea ca aceste linii, normal de ieire s fie folosite ca intrri. Aceasta rezult din schema rangurilor corespondente din Portul de Control, fig.7.5. Notaia OC nseamn "Open Colector".

7 Nefol. Nefol.

0 /Strobe*
Auto Line feed*

Initialize Printer Select Printer Enable Via Ack Line Enable Bi-Directional PortFig.7.4. Portul de Control Dup cum se observ din schem, ieirile acestor ranguri sunt cu colector n gol (exist, ns, i porturi la care aceste ieiri sunt TTL normale). Rezistena de tragere este de 4,7 k i poate fi pe placa portului, la periferic sau, mai rar, niciunde. n acest din urm caz va fi necesar plasarea n exteriorul portului a rezistenelor la +5 V, valoarea recomandat fiind de 4,7 k . Aceste rezistente nu vor afecta corecta funcionare a portului
Linia Date, ieire, la 1 logic (>2,4V) Date, ieire, la 1 logic (<0,4V) Control, iejre, la 0 logic (>2,4V) Control, ieire, la 0 logic (<0,4V) Port paralel normal 2,6 mA generat 24 mA absorbit 0,5 mA .generat 7 mA absorbit Port paralel IEEE 1284, nivel 2 14 mA generat 14 mA absorbit 14 mA absorbit

Tabelul 7.3. Curentul absorbit / generat la liniile portului paralel chiar dac exist alte rezistene de tragere sau chiar dac portul are ieire normal. In aceste situaii ele vor funciona ca ncrcri suplimentare de aproximativ 1 mA. Pentru a utiliza aceste linii ca intrri, va fi necesar ncrcarea n port a combinaiei xxxxOlOO ceea ce va fora 1 la ieirile porilor cu colector n gol. Nivelele de tensiune ale semnalelor de la portul paralel sunt TTL. Curentul absorbit / generat este dat n tabelul 7.3.

7.1.3. Cabluri i caracteristici electrice


Standardul 1284 prevede utilizarea a 3 tipuri de conectori. Tabelul 7.4 prezint poziionarea semnalelor la pinii conectorilor. Pornind de la acest tabel se pot construi diferite cabluri ntre diferiii conectori aflai la port, respectiv la periferic. Tabelul 7.5 prezint trei tipuri de cabluri. Fiecare linie de semnal este nsoit de o mas proprie. Fiecare a 2-a linie din tabelul 7.5 corespunde unei conexiuni de mas. Din punct de vedere electric, standardul IEEE 1284 delimiteaz 2 nivele de echipamente i cabluri: echipamente i cabluri de nivel 1 care nu dispun de vitez mare de transfer definit de standard ci doar de facilitatea de bidirecionalitate; echipamente i cabluri de nivel 2 care necesit i vitez mare de transfer. 6

+5V Tampon iesire Tampon intrare Tampon iesire Tampon intrare Tampon iesire Tampon intrare OC +5V Tampon iesire Tampon intrare OC / Select printer (pin 17) OC +5V / Initialize (pin 16) OC / Strobe(pin 1)

+5V

/Autolinefeed (pin 14)

Fig.7.5. Schema rangurilor de comand din Portul de Control


Pin pentru semnal Cectronics A(D) B 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 11 12 12 13 13 14 14 15 32 16 31 17 36 Pin pentru masa coresp. Cectronics C 15 6 7 8 9 10 11 12 13 3 1 5 2 17 4 14 16 18 36 A(D) 18 19 19 20 20 21 21 22 22 24 23 24 24 25 23 25 25 Cectronics B 19 20 21 22 23 24 25 26 27 28 29 28 28 30 29 30 30 Cectronics C 33 24 25 26 27 28 29 30 31 21 19 23 20 35 22 32 34

Tipuri de semnal Strobe Data 0 Data 1 Data 2 Data 3 Data 4 Data 5 Data 6 Data 7 /Ack Busy PaperOut/PaperEnd Select /AutoLinefeed /Error/ / Fault /Initialize /Select Printer/ Select In Host Logic High Peripheral Logic High

Tabelul 7.4. Poziionarea pinilor la conectorii acceptai de standardul IEEE 1284


Cablu A - B Cablu A - C Cablu B - C

Conector A 1 18 2 19 3 19 4 20 5 20 6 21 7 21 8 22 9 22 10 24 11 23 12 24 13 24 14 25 15 23 16 25 17 16

Conector B 1 19 2 20 3 21 4 22 5 23 6 24 7 25 8 26 9 27 10 28 11 29 12 28 13 28 14 30 32 29 31 30 36 30

Conector A 1 18 2 19 3 19 4 20 5 20 6 21 7 21 8 22 9 22 10 24 11 23 12 24 13 24 14 25 15 23 16 25 17 25

Conector C 5 33 6 24 7 25 8 26 9 27 10 28 11 29 12 30 13 31 3 21 1 19 5 23 2 20 17 35 4 22 14 32 16 34

Conector B 1 19 2 20 3 21 4 22 5 23 6 24 7 25 8 26 9 27 10 28 11 29 12 28 13 28 14 30 32 29 31 30 36 30

Conector C 5 33 6 24 7 25 8 26 9 27 10 28 11 29 12 30 13 31 3 21 1 19 5 23 2 20 17 35 4 22 14 32 16 34

Tabelul 7.5. Trei tipuri de cabluri paralele Echipamentele i cablurile de nivel 2 nu pot utiliza dect conectori de tip C. echipamentele care se conecteaz trebuie s aib amplificatoare i receptoare de linie conforme cu cerinele din standard iar impedana cablului trebuie s respecte, de asemenea, cerinele standardului. n aceste condiii, lungimea maxim permis a cablului este de 10m. Pentru echipamentele i cablurile de nivel 1 nu exist cerinele tehnice (amplificatoare de linie, receptoare de linie, impedana a cablului) existente pantru nivelul 2. Se recomand, doar ca fiecare fir de semnal s fie nsoit de un fir de Pot fi utilizai conectorii de tip A, B sau C. In aceste condiii, lungimea maxim permisa a cablului este de 3m.

4. Moduri de lucru
8

Standardul IEEE 1284 definete cinci moduri de lucru pentru interfaa paralel, nd transferul datelor n sens direct (PC ctre periferic), n sens invers (periferic PC) sau n ambele sensuri. Modurile definite sunt: - modul "Compatibility": este denumirea dat de standard pentru modul original, cunoscut sub numele Centronics, Standard sau SPP; - modul "Nibble": asigur transferul datelor n sens invers, prin intermediul liniilor de re, sub forma a 2 grupe de cte 4 bii; - modul "Byte": asigur transferul invers a 8 bii simultan, prin intermediul liniilor de date; mai este cunoscut i sub denumirea de mod octet sau bidirecional - EPP (Enhanced Parallel Port): asigur transfer bidirecional de mare vitez; a fost prevzut iniial pentru periferice ca: uniti de disc, uniti CD-ROM, adaptoare de etc; - ECP (Extended Capability Port): asigur transfer bidirecional de mare vitez; a fost prevzut iniial pentru imprimante cu jet i laser. Toate porturile paralele existente pot transfera date n ambele sensuri, lucrnd n modurile "Compatibility" sau "Nibble". Modul "Byte" poate fi utilizat de mai puine porturi, In toate aceste moduri, transferul se face prin program. Pentru fiecare octet de transferat, programul va trebui s poziioneze datele, s verifice starea imprimantei i s comande linia Scope. Ca urmare, rata de transfer a datelor va fi mic, fiind limitat la max.150 ko/s. Ultimele dou moduri sunt mult mai performante. Ele au fost implementate n contolerele de I/E aflate pe placa de baz a PC-ului. Dialogul nu se mai realizeaz prin Ram, ci prin hardware. Programul va transfera o dat printr-o singur intruciune Controlerul de I/E este cel care va asigura, n continuare, ntregul transfer.

Modul " Compatibility"


Este modul original de lucru al portului paralel, cunoscut i sub numele Centronics, Standard sau SPP ("Standard Paralel Port"). Este un mod unidirecional i asigur transferul datelor de la PC la periferic. A fost prevzut n standard pentru a pstra compatibilitatea cu numrul mare de porturi paralele vechi existente. Transferul unei date se face n conformitate cu diagrama din figura 7.6. min 500ns Date Date valide min 500ns min 500ns

/Strobe Busy /Ack

5 ms Fig.7.6. Diagrama de transfer a unei date n modul "Compatibility" Operaiile ce trebuiesc realizate de program sunt: 9

scrie data la Portul de Date; citete Portul de Stare, rangul Busy, pentru a vedea dac imprimanta este liber; dac imprimanta este liber, atunci scrie la Portul de Control i activeaz linia /Strobe; scrie la Portul de Control i dezactiveaz linia /Strobe. Linia Busy este activ atunci cnd perifericul preia o dat i o depune n tamponu". propriu sau atunci cnd perifericul nu poate primi o dat (de exemplu imprimanta tiprete sau este decuplat de la linie). Semnalul /Ack are rolul s comunice ncheierea transferului. Pentru a transfera o dat vor fi necesare 4 instruciuni de I/E i cel puin tot attea alte instruciuni. Efectul va fi o limitare a ratei de transfer la maximum 100 ko/s, rata uzuala fiind de doar 50ko/s,ceea ce este suficient pentru periferice mai vechi,de exemplu imprimante matriceale,dar insuficient pentru imprimante cu laser,scannere,etc. Pentru a asigura o cretere a ratei de transfer, n acest mod, a fost implementat n controlere de I/E o variant care definete un tampon FIFO n care programul scrie datele. Acestea sunt apoi preluate de controler i transferate ctre imprimant utiliznd un dialog realizat prin hardware conform cu figura 7.6. Modul este cunoscut i sub numele "Fast Centronics" sau "Parallel Port FIFO Mode" i asigur o cretere a ratei de transfer de pn la 500 ko/s. Nu este un mod definit de standardul IEEE 1284 ci acceptat doar ca o variant a unui mod definit. Dei, aa cum s-a artat, modul "Compatibility" este doar unidirecional, exist i posibilitatea de a citi date n acest mod. Pentru aceasta se folosesc 4 linii de stare i 4 linii de control la care se leag liniile de date ce trebuiesc citite. Trebuie avut grij ca n prealabil, nainte de a se realiza conexiunile, s se scrie la Portul de Control configuraia xxxxOlOO pentru a plasa ieirile portului, comandate de pori cu colector n gol, n 1 logic pentru a putea fi, apoi, comandate din exterior.

Modul "Nibble"
Este modul cel mai rspndit pentru a primi date de la periferic i se bazeaz pe
Pin conector tip D 1 2-9 10 11 12 13 14 15 16 17 18-25 Nume semnal SPP /Strobe DataO-7 /Ack Busy Paper End Select /Auto Linefeed /Error /Initialize /Select In Gnd Nume semnal "Nibble" /Strobe PtrClk PtrBusy AckDataReq Xflag HostBusy /Data Avail /Init 1284Active Gnd Direci e Out In In In In Out In Out Out Descriere Neutilizat la transferul invers Neutilizate la transferul invers Cnd este 0 indic o jumtate de octet valid i este pus la 1 ca rspuns la trecerea la 1 a lui HostBusy Data3, apoi Data7 Data2, apoi Data6 Data1, apoi Data5 Semnal de dialog. Este pus la 0 artnd c portul poate primi o jumtate de octet. Este pus la 1 artnd c jumtatea de octet a fost primit DataO, apoi Data4 Neutilizat la transferul invers Este la 1 atunci cnd portul este n un mod definit de IEEE 1284 Masa electrica

Tabelul 7.6.Semnalele modului "Nibble" faptul c la toate porturile paralele standard exist 5 linii prin care se poate citi starea imprimantei. Aceste linii pot fi folosite pentru a transfera un octet n 2 grupe de cte 4 bii. Pe linia /Ack nu se transfer dat pentru c este folosit la dialog. 10

Semnalele portului paralel primesc alte denumiri i semnificaii. Acestea sunt prezentate n tabelul 7.6, facndu-se i analogia cu denumirile din modul standard. Transferul unei date se face n conformitate cu diagrama din figura 7.7

HostBusy

PtrBusy AckDataReq Xflag /DataAvail PtrClk

Bitii 0-3

Bitii 4-7

Fig.7.7. Diagrama pentru transferul unui octet n modul "Nibble " Operaiile ce trebuiesc realizate de program sunt: * portul cere o jumtate de octet activnd la 0 HostBusy; * perifericul rspunde plasnd prima jumtate de octet pe linii i activnd la 0 PtrClk; * portul dezactiveaz pe HostBusy indicnd c a preluat prima jumtate de octet i nu poate nc prelua o alt dat; * perifericul dezactiveaz pe PtrClk ca rspuns la dezactivarea lui HostBusy; * toate operaiile se repet pentru a doua jumtate de octet; Modul "Nibble" are marele avantaj de a oferi transfer de la periferic la port n cazul porturilor mai vechi, neafectnd liniile de control. ntruct transferul este controlat tot prin program, care este i mai lung dect cel corespunztor modului standard, rata de transfer este limitat la max.50 ko/ sec, ceea ce nu este suficient pentru periferice performante: scannere, imprimante laser, etc.

Modul Byte
Este primul mod care permite transferul datelor n ambele sensuri pe liniile de date. n plus, spre deosebire de modul anterior n care transferul spre port al unei date de 8 bii se fcea n 2 faze, acum transferul spre port al unei date de 8 bii se face ntr-o singur faz. Modul mai este cunoscut i sub denumirea de mod bidirecional sau octet sau PS/2. Acest mod se bazeaz pe o modificare a schemei portului prin care registrele care transfer datele la pinii de date ai conectorului pot fi dezactivate, trecute n starea de nalt impedan, existnd posibilitatea de a citi liniile respective. Schema Portului de Date bidirecional original este prezentat n figura 7.8. Modificarea adus const n rolul pe care-1 primete rangul 5 din Portul de Control. La porturile unidirecionale, registrul 74LS374 avea intrarea I/O legat la mas, deci datele erau doar ieiri. La citirea acestui registru se primea data ultim care a fost trimis. La portul bidirecional, rangul 5 din Portul de Control comand intrarea l/O a registrului. Dac acest rang este programat la 1 atunci registrul trece n starea de nalt 11

impedan i liniile de date pot fi comandate din exterior. Rmne i posibilitatea de a scrie la Portul de Date, data va fs memorat n registru dar nu va apare pe liniile de date. Ea va apare pe aceste linii atunci cnd rangul 5 din Portul de Control este programat la 0. ISA D0-7 Di Qi

Bit 5 din Port de Control

Data 0-7 /OC CLK

IOW 74LS374

1Yi 1Ai 2Yi 2Ai IOR 1G 2G

Fig.7.8. Schema Portului de Date bidirecional original La porturile paralele mai noi aceast schem este nglobat ntr-un controler de I/E. La porturile mai vechi la care implementarea s-a fcut cu circuitele din figur, se poate interveni pentru modificarea schemei dac portul este doar unidirecional. Modificarea const n deconectarea intrrii /OC a registrului 74LS374 i conectarea sa la rangul 5 al Portului de Control i n conectarea circuitului 74LS244 ca n figur. Din pcate, exist diferene ntre porturile paralele ale diferiilor productori. La unele porturi paralele rangul 5 din Portul de Control este folosit doar pentru dezactivarea modului bidirecional iar pentru activarea sa, se folosete rangul 6 din Portul de Control. Se recomand msurarea portului paralel dac se dorete utilizarea sa n modul bidirecional. Tabelul 7.7 prezint denumirile i semnificaiile semnalelor utilizate facndu-se i analogia cu denumirile semnalelor n modul standard, iar figura 7.9 prezint diagrama pentru transferul unei date n modul "Byte". Operaiile executate sunt: portul arat c poate prelua o dat activnd la 0 pe HostBusy; perifericul rspunde plasnd data pe linii i apoi activeaz la 0 pe PtrClk; portul activeaz la 1 pe HostBusy indicnd c a primit data i nu este inca gata pentru un alt octet; perifericul activeaz la 1 pe PtrClk rspunznd portului; portul genereaz impulsul HostClk ca rspuns pentru periferic.

12

Pin conector tipD 1 2-9 10 11 12 13 14

Nume semnal SPP /Strobe Data0-7 /Ack Busy PaperEnd Select /AutoLinefeed

Nume semnal "Byte" HostClk Data0-7 PtrClk PtrBusy AckDataReq Xflag HostBusy

Direcie Out In/Out In In In In Out

Descriere Este un semnal de achitare, activat la 0 la sfritul transferului fiecrui octet Date, pot fi transferate bidirecional Este activat la 0 indicnd date valide pe linii i este activat la 1 ca rspuns la activarea la 1 a lui HostBusy Indic starea de ocupat a perifericului Aceeai valoare cu /DataAvail Neutilizat n modul "Byte" Este activat la 0 artnd c portul este gata pentru transferul unui octet.Este activat la 1 artnd c data a fost primit Este activat la 0 de ctre periferic indicnd c data trimis ctre port este disponibil Nefolosit. Este la 1 Este la 1 atunci cnd portul este n un mod definit de IEEE 1284 Masa electric

15 16 17 18-25

/Error /Initialize /Selectln Gnd

/DataAvail /Init 1284Active Gnd

In Out Out -

Tabelul 7.7. Semnalele modului "Byte"

Host Busy Data 0-7 Data valida

PtrClk

HostClk Fig.7.9. Diagrama de transfer a unui octet n modul "Byte' Pentru a verifica dac un port paralel existent suport modul bidirecional se poate folosi programul Debug din DOS sau se concepe un program propriu. Se scrie 1 n rangul 5 al Portului de Control ncercnd n acest fel plasarea portului n modul "Byte", sens invers. Apoi se scrie o valoare la Portul de Date i se citete Portul de Date. Dac portul suport mod "Byte" atunci ieirile registrului vor fi n a 3-a stare i valoarea citit nu coincide cu cea scris. Dac valoarea citit coincide cu cea scris 1 atunci portul este doar unidirecional.

Modul EPP ("Enhanced Parallel Port")


13

Modul EPP a fost dezvoltat i promovat de un grup de firme: Intel, Xircon, Zenith. Data Systems, interesate n creterea vitezei portului paralel i n asigurarea transferului bidirecional n scopul conectrii unor echipamente mai rapide dect cele existente n . momentul respectiv: scannere, imprimante laser rapide, uniti CD-ROM etc. Exist dou specificaii pentru portul EPP: EPP1.7 este o variant a modului EPP implementat la nivelul microprocesorului 386SL, n setul de cipuri al acestuia, nainte de apariia standardului IEEE 1284 i EPP1.9, varianta modului EPP care a fost definii de IEEE 1284. Exist o diferen ntre ele care va fi descris ulterior. Tabelul 7.8 prezint denumirile i semnificaiile semnalelor acestui mod facndus. i analogia cu denumirile semnalelor din modul standard. Modul EPP permite o rat de transfer de 0,5 - 2 Mo/ sec. Creterea ratei de transfer, raportat la celelalte moduri, s-a putut obine datorit faptului c dialogul pentru transferul unei date nu mai este realizat prin program ci de ctre hardware-ul portului, mai exact de controlerul de I/E care comand portul paralel. Modul EPP definete 4 tipuri de transfer: citire date i scriere date: n aceste cicluri se transfer date ntre port i periferic: citire adrese i scriere adrese: n aceste cicluri se transfer adrese i cuvinte comand i control.
Pin conector tip D 1 2-9 10 Nume sernnal SPP /Strobe Data 0-7 /Ack Nume semnal EPP /Write AD O-7 /Intr Direcie Out In/Out In Descriere Este activ la 0, indicnd o scriere. Este 1 la citire. Linii bidirecionale de adrese sau date Intrerupere de la periferic Este un semnal de dialog care atunci cnd este 0 arat c se poate ncepe un ciclu, adic semnalul de strobare a datelor sau adreselor poate fi activat iar atunci cnd este 1 arat c se poate ncheia un ciclu, adic semnalul de strobare poate fi dezactivat La dispoziia utilizatorului La dispoziia utilizatorului Semnal de strobare a datelor. Cnd este la 0 arat c se desfoar un ciclu de CitireDate sau ScriereDate La dispoziia utilizatorului Iniializare a perifericului (0) Semnal de strobare a adreselor. Cnd este la 0 arat c se desfoar un ciclu de CitireAdrese sau ScriereAdrese Masa electric

11

Busy

/Wait

In

12 13 14 15 16 17 18-25

PaperEnd Select /AutoLinefeed /Error /Initialize /Selectln Gnd

Liber Liber /DataStb Liber /Reset /AdrStb Gnd

In In Out In Out Out -

Tabelul 7.8. Semnalele modului EPP Toate transferurile se desfoar n conformitate cu anumite diagrame dar, spre deosebire de modurile anterioare, diagramele nu mai sunt implementate prin program ci de ctre hardware-ul (controlerul) portului. Programul nu va trebui dect s iniieze transferul ceea ce se va realiza prin intermediul unei singure instruciuni de intrare/ ieire pentru fiecare dat de transferat. Transferul de tip scriere date are loc n conformitate cu diagrama din fig. 7.10. Operaiile sunt urmtoarele: 14

programul scrie o dat la Portul de Date EPP prin intermediul unei instruciuni de ieire, mai exact prin intermediul unui ciclu de I/E de ieire; portul plaseaz datele pe linii i activeaz semnalul /Write; semnalul /Wait este la 0, ca urmare semnalul /DataStr va fi activat; portul ateapt rspunsul de la periferic, adic semnalul /Wait la 1; semnalul /DataStr este dezactivat i ciclul se ncheie. Semnalul /IOW este semnal de comand ISA. Din diagrama 7.9 se observ c ntregul transfer are loc n timpul unui ciclu ISA. Un nou transfer poate ncepe numai dup ncheierea ciclului ISA anterior i atunci cnd perifericul este pregtit, adic /Wait este la 0. Rata de transfer este n domeniul 0.5 - 2 Mo/ sec i este determinat de vitezele celor 1 porturi. Motivul este acela c pentru transferul unei date are loc un dialog, numit dialog cu interblocare, n care fiecrei tranziii a unui semnal de control i se rspunde prin tranziia unui semnal de control /IOW D0-7 Date valide

/Write /DataStr /Wait Fig.7.10. Diagrama ciclului Scriere date n modul EPP al celuilalt partener pn cnd se ajunge n stan iniial. La diagrama din fig. 7.10, la activarea lui /DataStr i se rspunde cu activan lui /Wait ceea ce va provoca, la rndul su, dezactivarea lui /Wait. Fig. 7.11 prezint ciclul de citire date. /IOR /Write /DataStr /Wait

D0-7

Data In Fig.7.11. Diagrama ciclului citire date n modul EPP

15

Ca i in cazul anterior, semnalul /IOR este un semnal ISA i apare n diagrama pentru a arta c transferul se desfoar ntr-un ciclu ISA. Operaiile sunt: programul citete data de la Portul de Date EPP, prin intermediul unei instrucii de intrare (/IOR activ), portul activeaz /DataStr cerndu-i perifericului o dat; /DataStr se activeaz doar dac perifericul este liber, adic /Wait este la 0, perifericul plaseaz datele pe linii i activeaz /Wait artnd c datele sunt valide portul preia datele cu frontul urctor al lui /DataStr i l dezactiveaz pe acesta, perifericul dezactiveaz /Wait i ia datele de pe linii. Dup ncheierea ciclului ISA i dup dezactivarea lui /Wait, poate ncepe un nou ciclu. Dup ncheierea ciclului ISA i dup dezactivarea lui /Wait, poate ncepe un nou ciclu. Figura 7.12 prezint un ciclu de scriere adrese. Operaiile executate sunt aceleai ca la ciclul de scriere de date cu excepia faptului c programul scrie la Portul de adres PP i nu la Portul de Date EPP iar semnalul de strobare este /AdrStr i nu /DataStr. /IOW A0-7 Adrese,comenzi

/Write /AdrStr /Wait

7.12. Diagrama ciclului scriere adrese n modul EPP Figura 7.13 prezint un ciclu de citire adrese. Operaiile executate sunt aceleai ca i la ciclul de citire date cu excepia faptului c programul citete de la Portul de Adres EPP i nu de la cel de date EPP iar semnalul de strobare utilizat este /AdrStr i un /DataStr. Descrierile prezentate corespund modului EPP 1.9. Varianta EPP 1.7, aprut nainte de standardul IEEE 1284, difer de EPP 1.9 prin aceea c semnalele /DataStr i /AdrStr se vor activa indiferent de starea liniei /Wait. Aceasta nseamn c perifericul nu poate mpiedica nceperea unui ciclu. Un periferic n modul EPP 1.9 va lucra corespunztor cu un port n modul EPP 1.7 dar un periferic n modul EPP 1.7 nu va /IOR putea lucra cu un port n modul EPP1.9. Marele avantaj al modului EPP este c transferul unei date are loc n timpul unui singur ciclu al magistralei de intrare / ieire a calculatorului. Transferul realizndu~se asincron, prin dialog cu interblocare, se obine vitez maxim, limitat doar de vitezele /Write celor 2 parteneri. Pentru transferul unei date este necesar o singur instruciune de OUT sau IN iar pentru transferul unui bloc de date se poate folosi o singur instruciune /AdrStr de I/E precedat de prefixul REP. /Wait 16 A0-7 Adrese,comenzi

Fig.7.13. Diagrama ciclului de citire adrese n modul EPP Un alt avantaj al modului EPP este acela c nu trebuiesc realizate operaii suplimentare pentru stabilirea sensului de transfer al datelor. Exist un semnal, care atunci cnd este 1 arat un ciclu de citire iar atunci cnd este 0 arat un ciclu de scriere. Semnalul este comandat de controlerul portului i nu este necesar vreun dialog cu perifericul pentru stabilirea sensului de transfer. Acest avantaj este important atunci cnd la transferul unui bloc trebuiesc realizate dese schimbri de sens. Tabelul 7.9 prezint registrele (porturile) utilizate n modul EPP. Dac programul folosete porturile aflate la adresele Baz, Baz + 1, Baz + 2 comportarea portului paralel n mod EPP va fi identic cu cea din modul SPP i la aceleai performane. Dac, ns, programul execut o instruciune de OUT/ IN la/ de la porturile aflate la adresele Baz + 4, Baz + 5 atunci portul paralel va lucra n conformitate cu diagramele prezentate n fig. 7.10 - 7.13, la performanele maxime asigurate de modul EPP.
Nume port Port de Date Port de Stare Port de Control Port de adrese EPP Port de Date EPP Nedefinit( 16/32 bii) Nedefinit (32 bii) Nedefinit (32 bii) Adres Baz Baz+1 Baz+2 Baz+3 Baz+4 Baz+5 Baz+6 Baz+7 Utilizare SPP Da Da Da Nu Nu Nu Nu Nu Direcie Ieire Intrare Intrare/ Ieire Intrare/ Ieire Intrare/ Ieire Intrare/ Ieire Intrare/ Ieire Intrare/ Ieire

Tabelul 7.9. Registrele (porturile) modului EPP Porturile aflate la adresele Baz + 5, Baz + 6, Baz + 7 sunt la dispoziia utilizatorului. Ele pot fi folosite ca porturi de configurare sau pentru transferuri pe 16 sau 32 bii. Pot rmne i neutilizate. Dac de exemplu, portul paralel are doar 8 linii de date pot fi implementate transferuri cu date pe 32 bii n modul EPP. n acest scop, controlerul de I/E va prelua data de 32 bii n 4 cicluri n fiecare transfernd cte 8 bii. Acetia vor fi depui, succesiv, n porturile de date aflate Ia adresele Baz + 4 - Baz + 7. Aceste 4 cicluri sunt transparente pentru program, ele sunt implementate la nivelul controlerului, i transferul unei date pe 32 bii, n aceast form, dureaz mai puin dect 4 cicluri de transfer pe 8 bii de sine stttoare. Dei s-a pstrat compatibilitatea cu modurile anterioare a aprut, totui, o modificare la bitul 0 al Portului de Stare. Acest rang era rezervat n modul standard iar n modul EPP are semnificaie de Time Out. Este activat atunci cnd linia /Wait nu este activat la 0 dup aproximativ 10 us, depinznd i de port, dup activarea liniilor /IOR 17

sau /IOW. Se reamintete c liniile /IOR i /IOW sunt liniile pentru semnalele de comand pentru transferurile cu periferia ale magistralei ISA. Justificarea prezenei acestui rang deriv din faptul c modul EPP este dependent de caracteristicile de timp ale ciclurilor de pe magistrala ISA. De exemplu, ntr-un ciclu de citire, portul trebuie s asigure dialogul pentru transfer i s preia data n acelai ciclu ISA. Pentru a asigura timpul necesar, portul va folosi linia IOCHRDY("I/O Channel Ready") a magistralei ISA pentru a o introduce n stri de ateptare pn la ncheierea transferului (rspunsul perifericului). Dac, ns, un asemenea ciclu este pornit tar a fi conectat un periferic, sau dac a aprut o defeciune la nivelul perifericului sau al cablului, atunci portul nu va primi rspunsul /Wait i va introduce stri de ateptare la nesfrit, blocnd astfel magistrala ISA, adic ntregul calculator. Ieirea din aceast situaie este asigurat de un mecanism de tip watchdog care va asigura deblocarea ciclului i va anuna starea de Time Out dup aproximativ 10 us de la activarea unuia din semnalele de comand pentru periferie ale magistralei ISA. Inainte de a lansa n execuie modul EPP, portul paralel trebuie configurat. In stare inactiv, un port EPP trebuie s aib semnalele /AdrStr, /DataStr, /Write i /Reset inactive, adic la 1. Dac este necesar setarea acestor linii se va scrie configuraia xxxxOlOO la Portul de Control. La unele porturi nu se poate realiza un ciclu de scriere, dac portul a fost configurat n sens invers. Ca urmare se recomand stabilirea sensului direct, prin punerea la 0 a rangului 5 din Portul de Control. De asemenea este necesar ca naintea fiecrui transfer rangul de Time Out s fie 0. Dac nu exist aceast siguran, atunci este necesar tergerea sa prin program.

Modul ECP ("Extended Capabilities Port")


Modul ECP a fost dezvoltat i promovat de firmele Hewlett-Packard i Microsoft n scopul definirii unui mod performant de comunicare cu periferice rapide: imprimante laser, scannere. ntocmai ca i modul EPP, modul ECP asigur transfer rapid i bidirecional. Dialogul este implementat tot prin hardware, la nivelul controlerului de intrare / ieire. Un dezavantaj fa de modul EPP este acela c pentru instalarea modului de transfer invers este necesar, n prealabil, un dialog ntre port i periferic, operaie care este consumatoare de timp. Dup stabilirea sensului, transferurile se realizeaz cu vitez mai mare ca n cazul modului EPP. Ca urmare, modul ECP se recomand atunci cnd schimbrile de sens sunt puine. La modul ECP apar cteva trsturi care permit creterea ratei de transfer i anume: compresia datelor, adresarea de canal, tampoane FIFO pentru transferul n ambele sensuri i accesul la canalele DMA. Compresia datelor este realizat prin metoda numit RLE ("Run Length Encoding") i este util atunci cnd se transfer date repetitive. Dac de exemplu este necesar transferul a 30 de caractere "a" atunci se va transfera un numr RLE egal cu 29 i un singur caracter "a". Perifericul va repeta caracterul a de attea ori ct i arat numrul RLE. Pentru a identifica numrul RLE i pentru a-1 distinge de celelalte date, el va fi trimis ca o comand la Portul de adrese ECP, cu bitul cel mai semnificativ la 0 spre a-1 deosebi de o adres de canal care se trimite la acelai port dar cu rangul cel mai semnificativ la 1. Compresia este util atunci cnd se trimit informaii grafice, ntruct n acest caz, se ntlnesc uzual caractere care se repet. Conceptul de adresare de canal difer de adresarea de port uzual. El este util la adresarea mai multor echipamente logice aflate ntr-un singur echipament fizic.Un 18

exemplu n acest sens este un echipament multifuncional de tip fax/modem/ imprimant. Un singur echipament fizic, cu un singur port paralel, cuprinde un fax, un modem i o imprimant. Fiecare din acestea poate fi vzut ca un echipament logic separat. Utiliznd adresarea de canal a modului ECP, este posibil transferarea de date cu fax-ul n timp ce imprimanta este ocupat. In modul standard, dac imprimanta era ocupat nu era posibil nici un transfer cu echipamentul fizic deci cu nici unul din echipamentele logice. In modul ECP, ns, programul va modifica adresa de canal i transferul va putea s aib loc. Tabelul 7.10 prezint denumirile i semnificaiile semnalelor din acest mod facndu-se i analogia cu denumirile semnalelor din modul standard.
Pin conector tipD 1 2-9 10 Nume semnal SPP /Strobe DataO-7 /Ack Nume semnal ECP HostClk DataO-7 PeriphClk Direcie Descriere Semnal de dialog folosit mpreun cu PeriphAck pentru a transfera date sau adrese n sens direct Linii bidirecionale de date Semnal de dialog folosit mpreun cu HostAck pentru a transfera date n sens invers Semnal de dialog folosit mpreun cu HostClk pentru a transfera date sau adrese n sens direct. La transferul n sens invers distinge ntre date i comenzi Este rspunsul la cererea /Reverse Request. Este activ la 0 Indicator de extensie Semnal de dialog folosit mpreun cu PeriphClk pentru a transfera date n sens invers. La transferul n sens direct distinge ntre date i comenzi Este activat la 0 de ctre periferic indicnd disponibilitatea datelor inverse Cerere, activ la 0, pentru instalarea modului de transfer invers Este 1 cnd portul este ntr-un mod compatibil 1284 Masa electric

Out In/Out In

11

Busy

PeriphAck

In

12 13 14

PaperEnd Select /AutoLinefeed

/AckReverse Xflag HostAck / PeriphReque st / ReverseRequ est 1284Active Gnd

In In Out

15 16 17 18-25

/Error /Initialize /Selectln Gnd

In Out Out -

Tabelul 7.10. Semnalele modului ECP Figura 7.14 arat diagrama transferului de la port la periferic. Operaiile executate sunt: portul plaseaz datele pe linii i arat ce tip de ciclu va executa: transfer de date (HostAck=l) sau transfer de comenzi (HostAck=0), portul activeaz semnalul HostClk indicnd perifericului c datele sunt valide, perifericul rspunde cu activarea la 1 a lui PeriphAck, D0-7 Data valida 1 Data valida 2 portul rspunde cu dezactivarea lui HostAck; se recomand utilizarea acestui from pentru preluarea datelor de ctre periferic, perifericul rspunde cu dezactivarea lui PeriphAck i un nou ciclu poate ncepe. Comanda HostAc Data k HostClk PeriphAck 19

Fig. 7.14. Diagrama transferului de la port la periferic Separarea ntre ciclurile n care se transfer date de cele n care se transfer comenzi se face prin linia HostAck, comandat de ctre port. Dac HostAck este 1 atunci se vor transfera date iar dac HostAck este 0 atunci se vor transfera comenzi. Exist 2 tipuri de comenzi. Dac rangul 8 este 0 atunci celelalte ranguri reprezint un numr RLE, cu valori de la 0 la 127. Dac rangul 8 este 1, atunci celelalte ranguri reprezint o adres de canal. /ReverseRequest /AckReverse /D0-7 Data valida 1 Data Data valida 2 Comanda

PeriphAck

PeriphClk HostAck

Fig. 7.15 Diagrama transferului de la periferic la port Figura 7.15 prezint diagrama transferului de la periferic la port. Operaiile care se execut sunt: portul cere transfer n sens invers activnd linia /ReverseRequest, perifericul rspunde c accept cererea, activnd linia /AckReverse, perifericul plaseaz datele pe linii i arat ce se va transfera: date (PeriphAck=l) sau comenzi (PeriphAck=0), perifericul activeaz PeriphClk la 0 indicnd c datele sunt valide, portul rspunde activnd la 1 linia HostAck, perifericul rspunde dezactivnd pe PeriphClk; se recomand utilizarea acestui front pentru ncrcarea datelor n port, portul rspunde dezactivnd pe HostAck i comunicnd astfel c este gata pentru un nou ciclu. 20

Din ultima diagram se observ i o diferen important ntre modurile EPP i ECP, amintit deja. Dac la modul EPP pot fi amestecate ciclurile cu transfer n oricedirecie, far dialog suplimentar, la modul ECP este necesar un dialog pentru a stabili sensul invers. Portul trebuie s cear sensul invers prin activarea lui /ReverseRequest i s atepte rspunsul de acceptare al perifericului prin activarea liniei /AckReverse. Doar apoi poate s nceap transferul. Setul de registre folosit n modul ECP este mai complex dect cel folosit n celelalte moduri. Tabelul 7.11 prezint registrele utilizate n modul ECP.
Nume port Portul de Date Portul ECP de adrese FIFO Portul de Stare Portul de Control Portul de Date FIFO Portul de Date FIFO Portul de test FIFO Registrul de configurare A Registrul de configurare B Registrul de control extins (ECR) Adres Baz Baz Baz+1 Baz+2 Baz+400h Baz+400h Baz+400h Baz+400h Baz+401h Baz+402h Mod n care este folosit (*) 0,1 4 0-7 0-7 4 3 6 7 7 0-7 Utilizare SPP Da Nu Da Da Nu Nu Nu Nu Nu Nu Direcie Ieire Intrare/Ieire Intrare Intrare/Ieire Intrare /Ieire Intrare/Ieire Intrare/Ieire Intrare Intrare /Ieire Intrare/Ieire

*Semnificaiile numerelor din aceast coloan sunt prezentate n tab. 1.12. Tabelul 7.11. Registrele (porturile) modului ECP Exist mai multe moduri n care poate lucra un port ECP. Acestea sunt prezentate n tabelul 7.12.
Nume mod ECP Standard Byte Port paralel FIFO ECP FIFO EPP Numr 0 1 2 3 4 Descriere Portul ECP va lucra ca i un port standard. Portul ECP va lucra ca un port bidirecional. Atunci cnd programul scrie o dat la Portul de Date FIFO, aceasta va fi trimis la periferic, utiliznd dialogul de tip SPP. Se obine vitez mai mare ca n modul standard pentru c dialogul este generat prin hardware i se folosesc tampoane de tip FIFO. Dialogul, ns nu este de tip ECP, ci de tip SPP. Mod tipic ECP. Transferul se realizeaz prin dialog de tip ECP, generat prin hardware. Portul va lucra ca i n modul EPP. Nu este disponibil la toate controlerele de I/E. Acolo unde nu este, modul este rezervat. Atunci cnd programul scrie o dat la Portul de test FIFO, aceasta va fi trimis n tamponul FIFO. Orice citire din Portul de test FIFO se va realiza din tamponul FIFO mpreun cu rangurile de stare FIFO Plin/Gol, acest mod este util pentru a afla dimensiunea tampoanelor FIFO implementate pe portul paralel. Este un mod folosit pentru configurarea portului paralel, prin intermediul registrelor de configurare A i B.

Test FIFO

Configurare

Tabelul 7.12. Modurile de lucru ale unui port ECP Pentru instalarea modurilor descrise mai sus se folosete Registrul de Control Extins (ECR). Structura lui este dat n figura 7.16. Rangurile 7-5 din ECR fixeaz modul de lucru. Dac unui port ECP i se cere modul Standard el va lucra ca un port paralel original. Dac i se cere modul Byte va lucra n sens invers. Urmtoarele dou moduri, Port paralel FIFO i ECP FIFO, utilizeaz hardware-ul pentru a genera dialogul necesar 21

transferului, diferena ntre ele fiind aceea c modul Port paralel FIFO genereaz dialog de tip Standard, pe cnd modul ECP FIFO genereaz dialog de tip ECP. Modul Test FIFO este folosit pentru a verifica dimensiunea tampoanelor FIFO. Dac portul este n acest mod, orice octet scris la Portul de test FIFO, adresa Baz+400h, va fi ncrcat n tamponul FIFO i orice port citit de la acest port va fi citit de la tamponul FIFO. Utiliznd i rangurile FIFO Plin i FIFO Gol, se poate determina dimensiunea tampoanelor FIFO care n mod uzual este de 16 octei.

FIFO Gol FIFO Plin Service ECP Validare DMA Intrerupere ECP Mod de lucru: 000-Standard 001-Byte 010-Port Paralel FIFO 011-ECP FIFO 100-EPP 101-Rezervat 110-Test FIFO 111-Configurare Fig. 7.16. Structura Registrului de control extins Rangul 4 din ECR, ntrerupere ECP, are rolul s valideze sau nu utilizarea ntreruperilor. Rangul 3, Validare DMA, valideaz sau nu utilizarea DMA iar rangul 2, Service ECP, indic, dac este setat la 1, apariia unei cereri de ntrerupere. Resetarea lui se face n mod diferit, n funcie de controlerul de I/E existent. La unele porturi, resetarea acestui rang se face scriind 0 la el, prin program, n timp ce la alte porturi resetarea se realizeaz doar prin citirea registrului. Rangurile 1, FIFO Plin i 0, FIFO Gol, indic starea tampoanelor FIFO. Dac FIFO Plin este setat, atunci tamponul este plin. Dac FIFO Gol este setat, atunci tamponul este gol. Dac nici unul nu este setat atunci exist date n tampon dar nu este plin. Pentru instalarea unui mod de de lucru se configureaz registrul ECR, conform modului dorit i apoi se pot scrie i citi date la/de la adresa de port corespunztoare. Modul ECP dispune de dou registre de configurare care ofer informaii suplimentare despre funcionarea portului n modul ECP. Acestea sunt disponibile doar dac portul este n modul de configurare, la adresele Baz+400h pentru registrul A i Baz+401h pentru registrul B. Fig. 7.17 prezint structura registrului de configurare A. Rangul cel mai semnificativ arat dac ntreruperile sunt active pe nivel sau pe front, aceasta depinznd de magistrala existent pe placa portului. Urmtoarele 3 raguri arat dimensiunea magistralei de pe placa portului: 8, 16 sau 32 bii. Acesta informaie este util driverului pentru portul paralel pentru a seta dimensiunea cuvntului care se transfer n conformitate cu dimensiunea magistralei portului. Transferul poate avea loc 22

i dac dimensiunea cuvntului i a magistralei portului nu coicid dar eficien maxim se poate obine dac ele coincid.

Octei rmai n FIFO: 00 - ntregul cuvnt 01-1 octet 10-2 octei 11-3 octei 0-octetul ce ateapt s fie trimis nu afecteaz rangul FIFO Plin 1-octetul ce ateapt s fie trimis afecteaz rangul FIFO Plin Rezervat 000 - cuvinte de 16 bii 001 - cuvinte de 8 bii 010-cuvinte de 32 bii ntreruperi active pe nivel intreruperi active pe front Fig. 7.17. Structura registrului de configurare A Urmtoarele 3 ranguri folosesc la revenirea dintr-o eroare. Programul trebuie s tie ci octei au rmas n tamponul FIFO. La unele porturi rangul FIFO Plin se refer i la octetul care ateapt s fie transmis iar la alte porturi acest octet nu influeneaz rangul FIFO Plin. Apoi, portul paralel are doar 8 bii de date i dac se transfer la por un cuvnt de 16 sau 32 bii, este necesar ca programul care asigur revenirea din tratarea unei erori s tie ci octei au mai rmas de transferat. Figura 7.18 prezint structura registrului de configurare B. El ofer informaii despre configurarea portului la nivelul ntreruperilor i al canalelor DMA. Unele porturi pot fi configurate prin program, altele prin BIOS iar altele prin conexiuni. In ultimele dou cazuri, registrul de configurare B este doar cu citire. Rangul 7 selecteaz sau nu comprimarea datelor de ctre port, prin metoda RLE. Dac este 1, se realizeaz comprimarea. Rangul 6 indic starea liniei de ntrerupere IRQ. Informaia poate fi folosit la diagnosticarea de conflicte, atunci cnd aceast linie este folosit i de alte resurse. Rangurile 5-3 asigneaz sau afieaz liniile de ntrerupere alocate portului paralel, iar rangurile 2-0 asigneaz sau afieaz canalul DMA folosit de portul paralel.Instalarea unuia din modurile de lucru descrise se face prin intermediul BlOSului. Exist i posibilitatea ca un program utilizator s realizeze aceste configuraii, acionnd asupra unor registre, dar nu se recomand acest lucru din cel puin 2 motive: nu exist setri standard pentru aceste registre, ca urmare este posibil ca programul utilizator s nu fie portabil i dac sistemul este multitasking, modificarea acestor registre de un task va putea afecta funcionarea celorlalte taskuri.

23

Starea curenta a liniei IRQ

1 - transfer cu compresie RLE 0 - transfer far compresie RLE

Selecteaz sau afieaz starea canalului DMA folosit: 000 - folosete canal DMA pe 8 bii setat prin conexiuni 001 - canal 1 DMA 010-canal 2 DMA 011 -canal 3 DMA 100 - folosete canal DMA pe 16 bii setat prin conexiuni 101-canal 5 DMA 110-canal 6 DMA 111 - canal 7 DMA Selecteaz sau afieaz starea liniei IRQ 000 - ntrerupere selectat cu conexiuni 001-IRQ7 010-IRQ9 011-IRQ10 100-IRQ11 101-IRQ14 110-IRQ15 111-IRQ5

Fig. 7.18. Structura registrului de configurare B

7.1.5 Intreruperile la portul paralel


ntreruperile nu sunt utilizate la transferul cu imprimanta nici sub DOS i nici sub Windows. Ele pot fi, ns, utile atunci cnd portul paralel este folosit n aplicaii de timp real, de exemplu monitorizarea unui proces. Dac n timpul monitorizrii, la apariia unui eveniment, trebuie ca portul s ia o decizie, s execute o anumit comand, de exemplu, atunci va fi folosit o intrare a portului paralel pe care va sosi o cerere de ntrerupere. Procesul va trata aceast cerere n concordana cu cerinele aplicaiei respective. In mod uzual, liniile de ntrerupere alocate portului paralel sunt IRQ7 pentru LPT1 i IRQ5 pentru LPT2. Dac nu exist LPT2, IRQ5 va fi alocat pentru placa de sunet. Exist posibilitatea ca o linie de ntrerupere s fie alocat la mai multe resurse. De exemplu 1RQ5 poate fi alocat plcii de sunet i portului LPT2. Este sarcina rutinei de tratare a cererii de ntrerupere s identifice, n aceast situaie, resursa care a cerut ntreruperea. Dac portul ste folosit doar pentru tiprire, atunci este posibil ca ntreruperile s fie invalidate. Pentru vizualizarea corespondenei dintre resurse i liniile de ntrerupere, n Windows 95/98 se folosete calea System > Device > Manager > Properties. Pentru ca cererea de ntrerupere s ajung la procesor, este necesar validarea liniei de ntrerupere, la nivelul controlerului de ntreruperi. Considernd c IRQ7 este 24

linia alocat portului paralel, validarea acestei linii se va face scriind 0 n rangul 7 al portului de la adresa 21 h, IMR ("Interrupt Mask Register). ntruct dup acceptarea unei cereri de ntrerupere, sistemul de ntrerupei va fi dezactivat, este necesar reactivarea sa, dup tratarea cererii. Aceasta se poate realiza prin setarea rangului ICR ("Interrupt Control Port"), adresa 20h, de obicei nainte de a iei din rutina de tratare a cererii. La nivelul portului paralel, ntreruperile pot fi validate sau invalidate prin intermediul rangului 4 din Portul de Control, Enable IRQ Via AckLine. Dac ntreruperile sunt validate, atunci o ntrerupere va fi generat la tranziia 1 - 0 a semnalului /Ack. Exist i porturi la care ntreruperea este generat la tranziia 0 > a semnalului /Ack. Se recomand ca, nainte de utilizarea acestei intrri, s se verifice tranziia de pe linia /Ack care va determina generarea unei cereri de ntrerupere.

7.1.6. Utilizarea portului paralel prin intermediul BIOS ului


Portul paralel poate fi folosit i prin intermediul rutinelor din BIOS. Accesul la rutina din BIOS care corespunde portului paralel se face prin instruciunea INT 17H. Funciile care pot fi realizate depind de configuraia ncrcat n registrul AH nainte de lansarea instruciunii i sunt prezentate n tab. 7.13.
Nume funcie Combinaie n AH Descriere Se trimite la portul paralel caracterul aflat n registrul AL. n DX se afl numrul perifericului referit (0 n varianta standard). La ieirea din rutin, dac transferul nu a reuit, n AH se afl configuraia corespunztoare funciei Citire stare periferic, cu rangul 0, eroare de "time-out" la 1. Pentru transfer reuit rangul 0 este 0. In DX se ncarc numrul perifericului referit. La ieirea din rutin, n AH se afl starea perifericului. La ieirea din rutin, n AH se obine starea perifericului. Semnificaiile rangurilor din AH: bit 7-periferic disponibil; bit 6exist imprimant; bit 5-lips hrtie; bit 4-imprimant selectat; bit 3-eroare de transfer; bii 2,1 - neutilizati; bit 0-eroare de "time-out"

Tiprire caracter Iniializare periferic

00H 01H

Citire stare periferic

02H

Tabelul 7.13. Funciile BIOS pentru portul paralel

7.2. Portul serie


Portul serie a aprut o dat cu PC-ul, nc din 1981, i este alternativa la portul paralel pentru comunicarea PC-ului cu exteriorul. Conectarea la portul serie se realizeaz prin intermediul unei cuple de tip D cu 25 pini sau 9 pini, la calculatoarele mai noi, de tip tat. Portul serie este folosit pentru conectarea PC-ului cu echipamente aflate la distan (peste 3 m). Utilizarea sa cea mai rspndit const n conectarea PC-ului la sistemul de comunicaii prin linii telefonice, folosind n acest scop un echipament special numit MODEM. Utilizarea portului serie este mai dificil dect cea a portului paralel din dou motive: informaia vehiculat este n format serie i de multe ori va fi necesar conversia / re-conversia ei n format paralel; 25

portul serie dispune de mai multe registre, ca urmare programarea sa este mai dificil. Totui, exist cteva motive care susin utilizarea portului serie: cablurile seriale pot fi mai lungi dect cele paralele, ntruct transferul serie este mai rezistent la perturbaii dect cel paralel. Aceasta rezult din nivelele de tensiune alocate nivelelor logice: 0 V i 5 V la transferul paralel i -25 V -f -3 V i +3 V -f +25 V la transferul serie. Ca urmare distana dintre cele 2 nivele logice este de max. 5 V la transferul paralel i min. 6 V, dar poate ajunge pn la 50 V, la transferul serie. cablurile seriale au mai puine fire dect cele paralele: un cablu serial poate avea doar 3 fire n timp ce unul paralel are minim 11 fire. In condiiile n care cele 2 echipamente care se conecteaz prin intermediul cablului serial, se afl la distan una fa de cealalt, aceast trstur duce la creterea i mai mult a rezistenei fa de perturbaii ct i la scderea preului de cost; n ultima perioad se dezvolt intens transferurile tar cablu, adic n infrarou, radio sau chiar laser. Acestea nu se pot face dect serial ca urmare ele au nevoie de portul serial; rspndirea microcontrolerelor este din ce n ce mai accentuat. Acestea dispun de interfa serie care poate fi direct conectat la portul serie al unui PC. Dei n majoritatea cazurilor microcontrolerele se folosesc n "embedded systems", adic sisteme orientate pe o aplicaie sau grup de aplicaii, toate instrumentele de punere n funciune, verificare i depanare a sistemelor cu microcontrolere presupun utilizarea PCului. De asemenea toate mediile de dezvoltare a programelor pentru microcontrolere presupun utilizarea PC-ului. In plus exist i aplicaii n care PC-ul este conectat la unul sau mai multe sisteme cu microcontrolere.

7.2.1. Bazele comunicrii serie a datelor


Comunicarea serie a datelor const n transferul datelor ntre dou echipamente sub forma bit dup bit, deci pe o singur linie fizic. Prin linie nelegem un conductor pe care pot transfera datele, care poate fi implementat n form material (fir de cupru, de ex.) sau n alte forme: optic, radiant (infrarou, radio, laser). Transferul serie este recomandat atunci cnd exist distane mari (peste 3 m) ntre echipamentele care comunic. Aici trebuie fcut o observaie legat de transferul paralel. In capitolul 1 s-a afirmat c, n anumite condiii, se poate face transfer paralel i dac echipamentele se afl la o distan de pn la 10 m. Dar era necesar ca echipamentele s fie conforme cu standardul IEEE 1284 i, mai ales, cablul s respecte toate cerinele electrice ale standardului 1284. Aceste condiii nu sunt uor de ndeplinit ntruct dei echipamentele care au interfee paralele conforme cu standardul 1284 sunt din ce n ce mai rspndite, exist nc foarte multe echipamente care nu respect acest standard. In plus, un cablu paralel conform standardului 1284 este scump. Ca urmare, n majoritatea cazurilor n care echipamentele se afl la peste 3 m, se recomand conectarea serial. Exist dou motive care susin aceast recomandare: costul i rezistena la perturbaii. Modul n care este influenat costul a fost descris. Transferul serie are o rezistent mai mare la perturbaii dect cel paralel din dou motive: posibilitatea de perturbare a liniilor scade dac numrul acestora este mai mic; distana dintre nivelele de tensiune este mai mare dect la transferul paralel. Nivelele de tensiune care circul pe linia serial nu sunt TTL ci EIA i au urmtoarele valori: -25 V-f-3 V pentru "1" logic i 26

+3 V 4- +25 V pentru "0" logic. Intruct circuitele specializate pentru interfeele seriale lucreaz cu nivelele TTL, sunt necesare circuitele de conversie ntre acestea i linii. Exist circuite integrate care realizeaz acest lucru. La calculatoarele mai vechi se folosesc circuitele integrate, figura 7.31: ROB 1488 pentru conversia TTL -> EIA; ROB 1489 pentru conversia EIA-> TTL. Dezavantajul lor const n faptul c necesit mai multe tensiuni de alimentare. Vcc C1+ V+ C1C2+ C2VTR2OUT RE2IN 8 9 1 16 Vcc GND 10uF
+

2 4 5 13 8

9 10uF 9
+

V+ C2+ C2-

C1+ C1V-

1 3 6 9

9 10uF

M A X 2 3 2

TR1OUT RE1IN RE1OUT TR1IN TR2IN RE2OUT

12 9 9 10 11 TTL,CMOS

10uF

RS232

7 14

Fig. 7.31. Circuitul de translatare MAX232 Datorit faptului c transferul unui octet se efectueaz bit dup bit, viteza de transfer este mic. Exist dou uniti de msur a vitezei transferului: bit pe secund (bps) i baud. Un baud se definete ca o tranziie electric a liniei. Dac transferul ntre cele dou echipamente, de exemplu dou calculatoare, se desfoar sub form digital,adic cele dou echipamente sunt legate la liniile seriale direct, fr MODEM, atunci 1 bps = 1 baud. Dac, ns, transferul se desfoar sub form analogic, pe linii telefonice ntre dou MODEM-uri, de exemplu, atunci lbps 1 baud. Relaia ntre ele depinde de metoda de codificare a datelor pe linii folosit de MODEM-uri. Un baud poate fi egal cu 4 bps sau cu 6 bps etc. Se obinuiete s se lucreze cu anumite viteze. Treptele de vitez mai utilizate sunt: 300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 mai rar 230400, 460800 bps. La calculatoarele mai noi se folosesc doar treptele de vitez mai mari. Pe lng aceste trepte de vitez se ntlnesc n practic i alte trepte, de exemplu 14400, 28800, 33600 bps. Acestea sunt viteze de transfer pe liniile seriale, ntre dou MODEMuri i difer de viteza ntre calculator i MODEM. Ele apar ca urmare a existenei unei faciliti a MODEM-ului i anume cea de compresie a datelor. Considernd, de exemplu, o rat de compresie uzual pentru un modem de 4 la 1, atunci dac transferul ntre calculator i MODEM are loc la viteza de 115200 bps, cea de pe linia serial va fi de 115200: 4 = 28800 bps. Transferul serial nu se desfoar n mod continuu, la aceeai rat, ci exist perioade de transfer, la diferite rate, urmate de perioade de repaus. Ca urmare este 27

necesar o sincronizare ntre transmitor i receptor. Exist dou tehnici pentru a asigura aceast sincronizare: transferul asincron i transferul sincron. In cadrul unui transfer asincron, numit i transfer pe caracter, fig. 7.32, un caracter poate.fi transmis n orice moment. Cnd nu se transmite vreo dat, linia este inactiv, adic la 1 logic. Atunci cnd transmitorul dorete s emit un caracter, va activa linia la 0 logic, o durat corespunztoare unui bit. Acest bit poart denumirea de bit de START i servete la sincronizarea cu receptorul. Orice receptor serie dispune de un mecanism de rejecie a impulsurilor de START false, de fapt a perturbaiilor. Receptorul testeaz permanent linia i, dup sesizarea nceputului impulsului de START mai realizeaz un test dup un timp egal cu jumtatea duratei impulsului. Dac regsete nivelul de 0 logic nseamn c pe linie exist un impuls de START, n caz contrar consider c pe linie a aprut o perturbaie i reia testarea liniei seriale n vederea detectrii impulsului de START. Dac receptorul a gsit impulsul de START, va citi din nou linia dup un timp egal cu durata unui bit astfel nct receptorul citete linia la jumtatea duratei unui bit emis, figura 7.32, minimiznd astfel riscul desincronizrii transmitorului cu receptorul care duce la pierderea informaiei. 1 logic linie inactiv a

bit bit bit de cel mai cel mai paritate semnificati putin v semnificati v unui caracter transferat serial n mod asincron Fig. 7.32. Structura

linie inactiv a

START

STOP

Pentru ca receptorul s cunoasc durata unui bit emis este necesar ca att transmitorul ct i receptorul s fie programate cu aceeai vitez de transfer. Dup rangul de START, transmitorul plaseaz rangurile utile ale caracterului ncepnd cu bitul cel mai puin semnificativ. Un caracter poate fi codificat pe 5, 6, 7 sau 8 bii. Ele sunt urmate de un bit opional de paritate care are rolul de a asigura detectarea unei erori singulare sau a unui numr impar de erori. Controlul prin paritate cere ca fiecrui octet util emis s i se ataeze un bit de paritate, calculat dup o anume regul. La primirea octetului util, receptorul calculeaz i el bitul de paritate, utiliznd aceeai regul ca cea a transmitorului i l compar cu bitul de paritate primit. In caz de necoinciden s-a detectat o eroare la nivelul unui rang sau a unui numr impar de ranguri. Tehnica nu permite detectarea unui numr par de erori, dar s-a constatat, statistic, c majoritatea erorilor la transferurile serie, sunt singulare. Exist patru reguli de obinere a bitului de paritate: paritatea par: bitul de paritate se calculeaz astfel nct numrul total de l-uri din octetul util plus bitul de paritate, s fie par; de exemplu dac octetul util este 01110000 atunci bitul de paritate ataat va fi 1 iar dac octetul util este 11110000 atunci bitul de paritate va fi 0; paritatea impar: similar cu paritatea par doar c numrul de l-uri din octetul util plus bitul de paritate, s fie impar; de exemplu dac octetul util este 01110000 atunci bitul de paritate ataat va fi 0 iar dac octetul util este 11110000, atunci bitul de paritate va fi 1; paritatea 1: bitul de paritate este ntotdeauna ; paritatea 0: bitul de paritate este ntotdeauna 0. 28

Dup bitul de paritate, urmeaz 1, 1 Vi sau 2 bii de STOP (1 logic) care au rolul de a ncheia transferul. Acetia au fost prevzui pentru a permite circuitului specializat pentru interfaa serie i procesorului s prelucreze caracterul primit i pentru a asigura o separare minim ntre 2 caractere consecutive. Dei s-au luat toate msurile, exist, totui, posibilitatea desincronizrii ntre transmitor i receptor. Cele dou echipamente lucreaz sub controlul unor tacturi diferite i, dei sunt programate s lucreze cu aceeai vitez serial, defazajul ntre tacturi face ca receptorul s nu poat citi bitul emis exact la jumtatea duratei sale ci decalat. Acest decalaj se cumuleaz i, dac este prea mare, apare riscul ca ultimul sau ultimii bii s nu mai fie citii. Riscul de pierdere a informaiei este minimizat pe dou ci: biii sunt citii la mijlocul duratei lor ceea ce ofer o marj de siguran; \ cumularea se face doar pn la nivelul unui singur caracter, adic a maxim 12 bii, ntruct la urmtorul caracter transmitorul i receptorul se resincronizeaz i cumularea anterioar dispare; este puin probabil ca pe durata unui caracter cumularea s fie att de mare nct s se piard vreun bit. In modul asincron exist avantajul c transmitorul poate transmite un caracter oricnd dorete dar dezavantajul c se transfer i informaie care nu este util, de date. Aceasta se numete de cadrare i este alctuit din bitul de START, de paritate i bitul sau biii de STOP. Astfel pentru transferul unui caracter util pe 8 bii se mai ataeaz cel puin 2 bii, 1 START i 1 STOP, deci informaia de cadrare va ocupa cel puin 20% din cea care se transfer pe linii, ducnd la o scdere a vitezei de transfer. Exist o notaie consacrat pentru formatul datelor n transfer asincron. De exemplu 8n2 nseamn transfer asincron cu 8 bii de date, fr paritate i cu 2 bii de STOP, 7el nseamn transfer cu 7 bii de date, paritate par i cu 1 bit de STOP etc. Litera e indic paritate par ("even") iar pentru paritatea impar ("odd") se va folosi litera o. In cadrul transferului sincron, numit i transfer pe bloc, transferul se face la nivel de bloc sau de mesaj. Transmitorul poate ncepe oricnd dorete transmisia unui bloc dar, odat nceput, trebuie s transmit toate caracterele care-1 alctuiesc. Un bloc ncepe cu unul pn ia cinci caractere speciale, care au rol de sincronizare. Receptorul testeaz permanent linia, asambleaz datele primite i le compar cu caracterele de sincronizare. Din faza de programare, receptorul cunoate cte caractere de sincronizare folosete transmitorul i care sunt acestea. Dac s-a detectat apariia acestora, urmeaz asamblarea biilor caracterelor care alctuiesc mesajul transmis. Dac la transferul asincron exist o sincronizare la nivel de caracter, realizat prin bitul de START, aici exist o sincronizare la nivel de bit. Fiecare bit este transmis la momente de timp bine determinate fixate de un tact, comandat de transmitor. Deci, n acest caz, pe lng linia de date este necesar i o linie de tact care servete i la preluarea bitului de pe linie de ctre receptor. Exist, ns, i tehnici care permit combinarea datelor i a tactului pe aceeai linie. Transferul sincron se folosete atunci cnd se dorete o vitez mai mare de transfer, fiind mai eficient datorit faptului c elimin biii de cadrare pentru fiecare caracter. Totui, sunt necesare caractere de sincronizare deci dac blocul este scurt, sub 8 caractere, modul sincron nu mai este eficient. Informaia alfanumeric se transfer sub form de caractere. Acestea sunt codificate, astfel nct pentru fiecare caracter se transfer un octet. Printre primele coduri folosite a fost codul BAUDOT dar acesta avea dezavantajul c folosea doar 5 bii pentru codificarea unui caracter, ceea ce a limitat la 32 numrul de caractere ce puteau fi transferate. Actualmente codul cel mai folosit este ASCII ("American Standard Code for Information Interchange"), 96 de octei corespund la litere, numere sau caractere speciale, iar 32 de octei corespund la caractere de comand. Codul ASCII este folosit uzual la transferul datelor att pe linie serial ct i pe linii paralele. Tab. 7.17 prezint codificarea dat de codul ASCII. Valorile numerice sunt n cod hexazecimal. 29

Caractere de comanda

Caracter e speciale 10 DLE 11 DC1 12 DC2 13 DC3 14 DC4 15 NAK 16 SYN 17 ETB 18 CAN 19 EM 1A SUB 1B ESC 1C FS 1D GS 1E RS 1F VS 20 SP 21 ! 22 23 = 24 $ 25 % 26 & 27 28 ( 29 ) 2A * 2B + 2C , 2D 2E . 2F /

Numere si Litere caractere mari speciale 30 0 31 1 32 2 33 3 34 4 35 5 36 6 37 7 38 8 39 9 3A : 3B ; 3C < 3D = 3E > 3F ? 40 @ 41 A 42 B 43 C 44 D 45 E 46 F 47 G 48 H 49 I 4A J 4B K 4C L 4D M 4E N 4F O

00 NULL 01 SOH 02 STX 03 ETX 04 EOT 05 ENG 06 ACK 07 BEL 08 BS 09 HT 0A LF 0B VT 0C FF 0D CR 0E SO 0F SI

Litere mari si caractere speciale 50 P 51 Q 52 R 53 S 54 T 55 U 56 V 57 W 58 X 59 Y 5A Z 5B [ 5C \ 5D ] 5E ^ 5F #

Litere mici

Litere mici si caractere speciale 70 p 71 q 72 r 73 s 74 t 75 u 76 v 77 w 78 x 79 y 7A z 7B { 7C | 7D } 7E ~ 7F DEL

60 . 61 a 62 b 63 c 64 d 65 e 66 f 67 g 68 h 69 i 6A j 6B k 6C l 6D m 6E n 6F o

Tabelul 7.17.Codul ASCII Pentru asigurarea transferului serie fr erori sau pierderi este necesar o soluie la problema controlului fluxului. Mai exact, trebuie gsit o soluie la urmtoarea problem: cum afl transmitorul c receptorul nu mai poate prelua caractere (din diferite motive, de exemplu: tamponul su este plin, este deconectat de la linie etc), ca urmare nu mai are rost s le trimit fiindc n caz contrar, acestea se pierd. Exist trei soluii la aceast problem: fr control; cu control software ("software handshaking"); cu control hardware (" hardware handshaking"). Prima soluie se poate aplica atunci cnd transmitorul i receptorul lucreaz la aceeai vitez, mic i receptorul are timp s transmit caracterele primite ctre unitatea sa central. Se poate folosi la transferuri asincrone. A doua soluie presupune utilizarea a dou caractere de control: XON avnd codul DCI (llh) i XOFF avnd codul DC3 (13h). Atunci cnd receptorul dorete transfer va trimite ctre transmitor caracterul XON iar atunci cnd nu mai poate prelua caractere va trimite caracterul XOFF. A treia soluie realizeaz un dialog ntre transmitor i receptor prin intermediul a dou semnale. Atunci cnd transmitorul dorete s transfere ceva, activeaz linia RTS. Dac receptorul poate primi informaia, va rspunde prin activarea liniei CTS iar cnd nu mai poate primi informaie va dezactiva linia CTS. Aceast soluie este mai rapid dect cea dinainte dar cere un cablu cu 2 fire n plus. Pentru realizarea fizic a transferului exist dou metode: transferul n curent, sau prin bucl de curent: metoda s-a folosit la nceputurile realizrii transferurilor serie i const din stabilirea pe linie a unui curent cu o anumit valoare (20 mA); prezena acestui curent pe linie nseamn un nivel logic iar absena curentului nseamn cellalt nivel logic; 30

transferul prin nivele de tensiune: este soluia folosit azi i const n alocarea nivelelor de tensiune EIA, nivelelor logice. In timpul transferului serie pot apare erori. Acestea sunt de 4 tipuri: de cadrare ("Frame Error"), de paritate ("Parity Error"), de ritm ("Overrun Error") i de oprire ("Break"). Eroarea de cadrare nseamn c circuitul specializat pentru transferurile serie nu detecteaz numrul de bii de STOP programat. Eroarea de paritate nseamn c bitul de paritate calculat de receptor nu coincide cu cel primit de la transmitor. Eroarea de ritm se manifest atunci cnd exist o desincronizare ntre circuitul specializat pentru transferurile serie i unitatea central. Eroarea de ritm la recepie apare n urmtoarea situaie: receptorul asambleaz biii primii de pe linia serie i n momentul cnd a asamblat un octet anun unitatea central c poate s i-1 predea. Dac circuitul specializat are tampon la recepie, de tip FTFO, atunci anunul ctre unitatea central va fi fcut conform programrii circuitului: dup fiecare octet recepionat, dup ce tamponul de la recepie este plin sau parial plin. Circuitele specializate care nu au tampoane Ia recepie, au totui un dublu registru. Asamblarea biilor de pe linie se face n unul din cele dou registre i dup asamblare, octetul se transfer n cellalt registru i se anun procesorul. Anunul ctre procesor se face fie cu un terminal specializat fie printr-un rang din octetul de stare al circuitului. Din momentul activrii anunului, procesorul are timp s citeasc octetul pn cnd n cellalt registru se asambleaz un alt octet de pe linie. Dac procesorul nu citete n acest timp primul octet asamblat, urmtorul se va suprapune peste primul ceea ce nseamn c acesta se pierde. Circuitul specializat detecteaz eroare de ritm i activeaz un rang n unul din octeii si de stare. Eroarea de ritm la transmisie apare atunci cnd circuitul specializat a terminat de serializat i de transmis un octet pe linie i, dei a cerut altul de la unitatea central n momentul cnd a nceput serializarea, nu 1-a primit. De remarcat c eroarea de ritm la recepie este distructiv (se pierde cel puin un octet) n timp ce cea de la transmisie nu este distructiv, ea micoreaz doar viteza de transfer. In cazul tuturor erorilor, circuitul specializat nu oprete transferul ci l anun doar prin activarea unor ranguri din octetul sau octeii si de stare. Este sarcina software-ului s trateze aceste situaii, de exemplu cernd retransmisia octeilor. Condiia de oprire ("Break") nu este propriu zis o eroare ci, mai degrab, o situaie deosebit creat n mod voit de transmittor. In mod normal, dac linia este inactiv, ea este la 1 logic. Condiia de Break este forat de transmittor care trece linia la 0 logic pentru o perioad relativ lung, 0,25 - 0,5 sec. i este sesizat de receptor. Condiia de Break poate fi folosit, de exemplu, atunci cnd se dorete o iniializare a liniilor seriale sau cnd se dorete schimbarea caracteristicilor transferului. Transferurile serie au fost standardizate. Organizaia cunoscut azi sub numele Electronic Industries Association (EIA) a dezvoltat mai multe standarde pentru transferurile serie. Cel mai vechi, dar i cel mai rspndit este RS 232C. RS nseamn "Recommanded Standards", iar litera de dup cifre indic versiunea standardului. Versiunea de azi este RS 232E. Un alt organism care a emis i emite standarde pentru transferurile serie este International Telegraph and Telephone Consultative Communitee (CCITT) care i-a schimbat denumirea n International Telecommunications Union (ITU). Standardul V24 este similar standardului EIA RS232. Alte standarde rspndite sunt RS422 i RS485. n continuare var fi descrise aceste standarde. La calculatoarele PC, transferurile serie sunt doar asincrone, conform standardului RS232.

7.2.2. Standardul RS232

31

Standardul RS232 definete cerinele logice, electrice i mecanice pentru transferul serie al informaiilor n form digital. Transferul se face n nivele de tensiune raportate la mas. Dei standardul RS232 se refer i la transferurile sincrone i la cele asincrone, este folosit azi n majoritatea cazurilor doar pentru transferul asincron. Standardul RS232 definete 2 tipuri de echipamente ntre care se poate desfura transfer serie: DTE ("Data Terminal Equipment") i DCE ("Data Communications Equipment''). Calculatorul, imprimanta sunt echipamente de tip DTE iar modemul este echipament de tip DCE. Transferurile serie au aprut din necesitatea de a asigura transferul ntre echipamente aflate la distan mare. Soluia cea mai ieftin i suficient de sigur pentru mediul de transfer au fost liniile telefonice. ntruct transferul datelor pe aceste linii se fcea sub form analogic, a fost necesar un echipament care s fac transformarea ntre cele dou forme de reprezentare a informaiilor: digital i analogic. Acest echipament se numete MODEM i asigur conectarea unui calculator la linii telefonice. Un transfer serial ntre 2 calculatoare aflate la distan presupune realizarea urmtoarei ci, figura 7.33. cupla D tata cupla D mama Modem linie telefonica Modem

Calculator

Calculator

cablu Fig. 7.33. Calea de comunicare serial ntre 2 calculatoare aflate la distan Standardul RS232 definete i conectorii ce pot fi folosii. Astfel un echipament de tip DTE necesit un conector de tip D, tat, cu 25 pini iar unul de tip DCE necesit un conector de tip D, mam, cu 25 pini. Dei nu este specificat n standard, la calculatorul PC s-a impus, din motive de spaiu i de cost, conectorul de tip D, tat cu 9 pini. Tabelul 7.18 prezint semnalele folosite n transferul serie i pinii folosii la cei doi conectori.
Semnal Frame Ground Transmit Data Receive Data Request to Send Clear to Send Data Set Ready Logic Ground Data Carrier Detect Data Terminal Ready Ring Indicator Notaie FG TxD RxD RTS CTS DSR GND DCD DTR RI Direcie DTE -> DCE DTE <- DCE DTE -> DCE DTE <- DCE DTE ^-DCE DTE <- DCE DTE -> DCE DTE - DCE Pin la conectorul D25 1 2 3 4 5 6 7 8 20 22 Pin la conectorul D9 3 2 7 8 6 5 1 4 9

Tabelul 7.18. Semnalele portului serie Semnificaiile semnalelor sunt urmtoarele: FG - Frame Ground: este numit i mas de protecie i, atunci cnd este folosit, este conectat la asiul echipamentului. Astfel, asiurile celor 2 echipamente care comunic se vor afla la acelai potenial 32

TxD - Transmit Data: este semnalul prin care se transmit datele seriale de la DTE la DCE. Dac DTE nu are date de transmis, va ine aceast linie la 1 logic. RxD - Receive Data: este semnalul prin care se primesc date de ctre DTE de la DCE. Dac nu sunt date de recepionat atunci linia va fi la 1. RTS - Request to Send : este semnal de dialog ntre DTE i DCE. Atunci cnd DTE dorete s transmit date ctre DCE, va activa, la 0 logic, semnalul RTS. CTS - Clear to Send: este rspunsul la semnalul RTS. Dac DCE sesizeaz c DTE dorete s-i transmit date (prin activarea lui RTS) pentru a le trimite pe linie, i va rspunde prin linia CTS. Atunci cnd poate primi date de Ia DTE va activa, la 0 logic, semnalul CTS iar dac nu va mai putea primi date, de obicei datorit faptului c tamponul este plin, va dezactiva, la 1 logic, semnalul CTS. DSR - Data Set Ready: prin acest semnal DCE comunic spre DTE, activndu-1 la 0 logic, c este conectat la linie i gata de lucru. GND - Logic Ground: este masa electric a semnalelor DCD - Data Carrier Detect: este un semnal prin care DCE (MODEM) comunic spre DTE c a stabilit conexiunea cu cellalt DCE (MODEM) aflat la cellalt capt al liniei. DTR - Data Terminal Ready: este un semnal prin care DTE comunic spre DCE, activndu-1 la 0 logic, c dorete nceperea comunicrii. DCE va rspunde, atunci cnd este gata, prin DSR. Dac DTR este dezactivat, comunicarea se va ncheia i DCE se va decupla de la linie. RI - Ring Indicator: DCE va activa, la 0 logic, acest semnal, ctre DTE, atunci cnd va primi un apel de pe linia telefonic. Standardul RS232 definete semnale i pentru restul pinilor din conectorul de tip D de 25 pini dar acestea sunt mult mai rar folosite, ca urmare nu vor fi descrise aici. Standardul RS232 definete aceleai semnale i aceleai terminale la conectori att pentru DTE ct i pentru DCE. Totui, innd seama de faptul c atunci cnd DTE este conectat la DCE, semnalul TxD, de exemplu, pleac de la DTE i trebuie s fie primit de DCE pentru a-1 trimite pe linie, se obinuiete modificarea denumirilor semnalelor la nivelul DCE-ului. Astfel denumirile modificate, la nivelul DCE-ului, sunt: RxD la pinul 2, TxD la pinul 3, CTS la pinul 4 i RTS la pinul 5. Standardul RS232 definete nivelele de tensiune ca fiind de tip EIA. La PC, nivelele de tensiune pentru transferurile serie sunt de 12V. Dialogul ntre transmitor i receptor poate s nu existe, s fie de tip software sau de tip hardware. Dac exist MODEM, acesta are comenzi prin intermediul creia se alege una din cele 3 variante. Dac nu exist MODEM, atunci este sarcina software-ului s aleag varianta de dialog. Viteza transferului a fost prevzut iniial la 20000 bps dar, azi ajunge pn la 115200 bps, chiar mai mult. Se recomand transferurile conforme cu acest standard atunci cnd distana ntre echipamente nu este mai mare dect 30 m. Pentru transferurile la distane mai mari este necesar transmiterea semnalelor pe linii difereniale, transfer definit prin standardele RS422 i RS485.

7.2.3. Standardele RS422 i RS485


Transfer nediferential i transfer diferenial Aa cum s-a artat, standardul RS232 definete un transfer serial, de tip punct la punct, ntre un transmitor i un receptor, n care nivelelor logice li se asociaz tensiuni raportate la mas. Figura 7.34 prezint un asemenea transfer considernd 4 linii, pe fiecare linie existnd un emitor i un receptor. Avantajul unui asemenea transfer este acela c dac exist mai multe linii, va fi necesar o singur linie de mas, ca urmare cablul va fi mai ieftin iar conectorii mai mici, 33

rezultnd spaiu folosit mai restrns i cost mai redus. Dezavantajul, ns, al unei asemenea conexiuni este imunitate limitat la zgomote. Marginile de zgomot, impuse de nivelele de tensiune folosite sunt reduse, ca urmare nu se recomand acest tip de conexiune n medii cu zgomot ridicat i la distane peste 30 m. Sursele zgomotului sunt: zgomot indus, influena liniilor alturate i diferena ntre potenialele de mas ale echipamentelor implicate n comunicare. Alternativa o constituie transferul diferenial. Pentru fiecare semnal sunt acum necesare 2 fire plus firul de mas, care poate fi comun pentru toate semnalele. Firele de semnal se numesc A i B. Nivelele logice nu mai reprezint tensiuni fa de mas ci diferene de tensiune ntre linia A i linia B. Fig. 7.35 prezint un asemenea transfer. Dac potenialul de pe linia A este negativ fa de cel de pe linia B, atunci semnalul are nivel logic 1 iar dac potenialul de pe linia A este pozitiv fa de cel de pe linia B, atunci semnalul are nivel logic 0. Diferena de potenial ntre cele 2 linii trebuie s fie mai mare, n modul, dect 200 mV. E R

Fig.7.34. Transfer serie cu tensiuni raportate la masa E R E R Fig. 7.35. Transfer diferenial Acest tip de transfer ofer imunitate mult mai mare la zgomote dect cel nediferenial. Cauza o constituie tocmai caracterul diferenial al reprezentrii datelor pe linii. Zgomotele vor afecta ambele linii de semnal, A i B, dar la receptor, componentele datorate zgomotelor se vor anula reciproc (prin scderea tensiunilor de pe liniile A i B). 34 R E R E

Un alt avantaj este acela c nu conteaz eventualele diferene ntre potenialele maselor echipamentelor care comunic ntruct tensiunile alocate nivelelor logice nu se raporteaz la mas. Acesta este un mare avantaj n sistemele n care comunic mai multe echipamente. Dezavantajul transferului diferenial const n cost. Att la transmitor ct i la receptor trebuie s existe circuite difereniale iar cablul va avea mai multe fire dect cel pentru transferul nediferenial. De asemenea, pentru fiecare semnal sunt necesare terminatoare pentru a evita reflexiile. Calculul terminatoarelor este o problem dificil atunci cnd echipamentele care comunic se schimb. Transferul diferenial se recomand n mediul industrial, acolo unde probabilitatea de perturbaii este mai mare, la distane mai mari i cu viteze mai mari. Astfel cu acest tip de transfer se pot realiza transferuri cu viteza de pn la 10 Mb/ s i la distane de pn la 1200 m. Exist mai multe standarde care utilizeaz transferul diferenial pentru comunicaii seriale, dou dintre acestea fiind mai rspndite: RS422 i RS485. Ambele standarde folosesc reprezentarea nivelelor logice prin tensiuni difereniale, diferena ntre ele fiind aceea c RS422 se refer la un transfer punct la punct pe cnd RS485 se refer la un transfer multipunct. In ambele cazuri trebuie s existe pe fiecare linie emitori i receptori difereniali. Apare o diferen la nivelul emitorilor: cei din sistemele conforme standardului RS485 trebuie s aib intrare de validare pe cnd cei din sistemele conforme standardului RS422 nu trebuie s aib aceast intrare. Justificarea const n aceea c sistemele RS485 pot avea mai multe echipamente cu rol de MASTER.

RS422
Este un standard pentru transferurile serie de tip punct la punct, cu reprezentare n tensiune diferenial a nivelelor logice, pe linii. Pe fiecare linie exist un emitor i un receptor. Fig. 7.36 prezint o conexiune de tip punct la punct. E R

Fig. 7.36. Conexiune RS422 de tip punct la punct Standardul permite i o conexiune multipunct particular, cu un transmitor i maxim 10 receptoare, fig. 7.37 Conexiunea de tip RS422 prezint avantajele c necesit un software mai simplu ca cel ce corespunde unei conexiuni de tip RS485 i terminatorul este unic i simplu de calculat. Dezavantajele sale, fa de RS485, sunt: este punct la punct, n cel mai bun caz multipunct limitat i necesit mai multe fire ntruct pentru fiecare semnal sunt necesare dou fire. Este un standard pentru transferurile serie de tip multipunct, cu reprezentare in tensiune diferenial a nivelelor logice, pe linii. El permite conectarea a cel mult 32 transmitoare i 32 receptoare. Exist dou variante ale standardului RS485: cu 2 fire i cu 4 fire. In prima variant, toate echipamentele sunt legate la aceleai 2 fire (plus firul de mas care trebuie s fie comun). Transferul este de tip semi-duplex. La toate echipamentele circuitele de conectare la linii trebuie s aib facilitatea de a 3-a stare pentru a se putea 35

decupla de la linii. Software-ul trebuie s evite transmisia pe linii de ctre mai mult de 1 echipament, la un moment dat.

R10

R9

R1

Fig. 7.37. Conexiune RS422 de tip multipunct

RS 485
A doua variant este util n aplicaii de tip Master / Slave. O pereche de fire est alocat Master-ului. Acesta va transmite pe aceast pereche de fire, ca urmare circuitele de cuplare nu au nevoie de facilitatea de a treia stare. Cealalt pereche este alocat echipamentelor de tip Slave, Doar Slave-ul a crui adres a fost trimis de Mater va putea transfera informaii pe aceste linii. In asemenea sisteme, doar Master-ul este cel care poate iniia un transfer. El citete periodic starea Slave-ului i atunci cnd dorete un transfer trimite adresa Slave-ului care va fi implicat n transfer. Transferul poate fi duplex. Varianta a doua asigur vitez mai mare de transfer dar este mai scump ntruct necesit mai multe fire. Circuitul de conectare al Master-ului, ns, poate fi mai simplu, ntruct nu necesit facilitatea de a treia stare. Dei standardul RS485 prevede conectarea a doar maxim 32 transmitoare i 32 receptoare, a fost extins numrul lor la 128 transmitoare i 128 receptoare. Pentru aceasta, la emisie s-au folosit circuite receptoare de putere iar la recepie au fost folosite circuite cu impedan de intrare mai mare dect cea prevzut n standard. Fig. 7.38 prezint o conexiune RS 485 cu 2 fire iar fig. 7.39 prezint o conexiune RS485 cu 4 fire. Dat fiind larga rspndire a interfeei serie RS232 i dat fiind faptul c pentru aplicaii industriale se recomand interfeele RS422 sau RS485, exist convertoare ntre cele 2 tipuri de interfee. Figura 7.40 prezint conectarea a 2 interfee RS232 la linii conforme cu standardul RS422 iar figura 7.41 prezint modalitatea de conectare a mai multor echipamente cu interfee RS232 ia linii conforme cu standardul RS485.

36

E Validare R

R Validare E

masa protectie

masa electrica

E Validare R Validare

Fie. 7.38. Conexiune RS485 cu 2 fire Master E Validare R R Validare Slave

Slave R Validare

Slave R Validare

Fig. 7.39. Conexiune RS485 cu 4 fire 37

RxD

R+

T+ T-

TxD

Convertor
RS232 TxD

R-

Convertor
RS232

RS232-RS422 T+
T-

R+ RS422-RS232 R-

Fig. 7.41. Conectarea interfeelor RS232 prin interfa RS485


RxD

RxD

TxD

Convertor
RS232 TxD

Convertor
RS232 RxD

RS232-RS485 -

- RS485-RS232

RxD

RxD

Convertor
RS232 TxD

+ RS232 TxD

Convertor

RS232-RS485 -

RS232-RS485 -

Fig.7.41 Conectarea interfeelor RS232 prin interfa RS485

7.2.4. Cabluri i conectori


Standardul RS232, varianta C, impune o lungime a cablului de 16,5 m. Varianta E extinde aceast lungime la 30 m. Lungimea cablului care permite un transfer cu efect minim al perturbaiilor depinde de calitatea acestuia (de exemplu dac are sau nu tres de mas) i de rata de transfer. Tab. 7.19 d o imagine orientativ a lungimii cablului.
Cablu cu tres de mas [m] 1650 1330 950 650 165 82,5 Cablu fr tres de mas [m] 330 330 165 165 82,5 33 Rat de transfer [bps] 110 300 1200 2400 4800 9600

Tabelul 7.19. Valori orientative pentru lungimea cablului innd seama c la calculatoarele PC mai noi, conectorul pentru portul serie este doar de 9 pini este util un adaptor de la 9 la 25 pini i invers. Tabelul 7.20 prezint un astfel de adaptor. O soluie rapid i eficient pentru testarea portului serie a unui PC (i a altui calculator) o constituie plasarea unui conector de test (aa numitul "Loopback tester" pe conectorul de pe carcasa calculatorului. Conectorul portului serie al PC-ului este de tip tat ca urmare conectorul de test va fi de tip mam. Tab. 7.21 prezint legturile ce trebuiesc fcute la conectorul de test. 38

Conector D9 1 2 3 4 5 6 7 8 9

Conector D25 8 3 2 20 7 6 4 5 22

Semnal DCD RxD TxD DTR GND DSR RTS CTS RI

Tabelul 7.20. Adaptor D9 - D25


Conectorul D25 2 3 4 5 07 6 i 8 Conectorul D9 3 2 7 8 4 1 i 6 Semnale legate TxD RxD RTS CTS DTR DSR i DCD

Tabelul 7.21. Legturile dintr-un "Loopback tester" Programul de test va emite un caracter i apoi l va recepiona. Caracterul recepionat trebuie s fie cel emis, n caz contrar exist o defeciune la portul serie. Aa cum s-a artat, pentru conectarea PC-ului la o linie telefonic este necesar un MODEM. Acesta poate fi intern calculatorului, sub forma unei plci de extensie sau poate fi extern calculatorului, sub forma unui echipament de sine stttor. In acest al doilea caz este necesar un cablu PC - MODEM. Cablul se obine legnd direct terminalele cu acelai numr. In funcie de software, cablul poate avea 9 sau 8 fire (lipsete semnalul RI). Tabelul 7.22 prezint legturile ce trebuiesc realizate pentru un cablu PC - MODEM. Conectorul PC-ului poate fi cu 25 sau cu 9 terminale.
Conector PC D25* 2 3 4 5 6 7 8 20 22 Conector PC D9* 3 2 7 8 6 5 1 4 9 Conector MODEM 2 3 4 5 6 7 8 20 22 Semnal TxD RxD RTS CTS DSR GND DCD DTR RI

Doar una din aceste coloane trebuie considerat la un moment dat Tabelul 7.22. Cablu PC - MODEM, cu dialog hardware

Cablul din tabelul 7.22 trebuie folosit atunci cnd ntre cele 2 echipamente are loc un dialog hardware. Dac acest dialog nu este necesar, se poate folosi un cablu cu mai puine fire, tabelul 7.23. Legturile ntre semnalele de comand, la ambele capete, sunt necesare dac software-ul folosete dialog hardware. In caz contrar, acestea nu vor fi necesare.
Conector PC D25* 2 Conector PC D9* 3 Conector MODEM 2 Semnale TxD

39

3 4-----> 5 20----->6 i 8 7

2 7----->8 4----->1 i 6 5

7 20----->6 i 8

RxD RTS-----> CTS DTR----->DSR si DCD GND RTS-----> CTS DTR----->DSR si DCD

* Doar una din aceste coloane trebuie considerat la un moment dat. Tabelul 7.23. Cablu PC - MODEM, tar dialog hardware O cale de comunicare ntre dou PC-uri este prin legarea direct a celor dou porturi seriale. Tabelul 7.24 prezint legturile ce trebuiesc fcute pentru un cablu port serie PC - port serie PC, transferul avnd loc cu dialog hardware ntre calculatoare iar tabelul 7.25 prezint legturile ce trebuiesc fcute pentru un cablu port serie PC - port serie PC, transferul avnd loc fr dialog hardware ntre calculatoare (nu este necesar). Au fost meninute, totui, legturile ntre semnalele de comand, la ambele capete ale cablului pentru eventualitatea cnd software-ul folosete dialog hardware. Al doilea cablu este mai ieftin dar transferul permis de primul cablu este mai rapid.
Conector PC 1 D25 * 2 3 4 5 6 i 8 7 20 Conector PC 1 D9* 3 2 7 8 6 i 1 5 4 Conector D25 + 3 2 5 4 20 7 6 i 8 PC2 Conector PC2 D9 + 2 3 8 7 4 5 6 i 1 Semnale PCI PC2 TxD RxD RxD TxD RTS CTS CTS RTS DSR, DCD DTR GND GND DTR DSR, DCD

*Doar una din aceste coloane trebuie considerat la un moment dat +Doar una din aceste coloane trebuie considerat la un moment dat Tabelul 7.24. Cablu PC - PC, cu dialog hardware
Conector PCI D25* 2 3 4----->5 20----->6 i 8 7 Conector PCI D9* 3 2 7----->8 4------>1 i 6 5 Conector PC2 D25+ 3 2 Conector PC2 D9+ 2 3 Semnale PCI TxD RxD RTS----->CTS DTR---->DSR,DCD

PC2

7 4----->5 20----->6 8

5 7----->8 i 4----->1 i 6

RTS----->CTS DTR---->DSR,DCD

Doar una din aceste coloane trebuie considerat la un moment dat Tabelul 7.25. Cablu PC - PC, fr dialog hardware Cablurile port serie PC - port serie PC se mai numesc i cabluri "nuli modem". Un alt caz de conectare este acela n care un PC este legat la un terminal, de exemplu o imprimant serial. In acest caz intervin particularitile terminalului, de exemplu imprimantele seriale realizeaz dialog hardware prin intermediul semnalului DTR. Tabelul 7.26 prezint un cablu port serie PC - imprimant. 40

Conector PC D25 *

Conector D9* 3 2 8 i 6 4-----> 1 5

PC

Conector D25 3 2 20 7

imprimant Semnale PC TxD RxD CTS, DSR DTR----->DCD GND Imprimant RxD TxD DTR GND

3 5 i 6 20----->8 7

Doar una din aceste coloane trebuie considerat la un moment dat Tabelul 7.26 Cablu port serie PC - imprimant serial

7.2.5 Magistrala I2C Caracteristici i avantaje


Magistrala I2C a fost dezvoltat de firma PHILIPS n scopul asigurrii unei ci de comunicare comune pentru ct mai multe module (care pot fi i circuite), att de uz general (microcontroere, memorii), ct i specializate pe mai multe aplicaii. Denumirea de PC vine de la "Inter Integrated Circuits". Datorit numrului mare de circuite i module care au facilitatea de I 2C, peste 1000 de tipuri, la nivelul anului 1998, a devenit o magistral foarte rspndit n mediu industrial. Este foarte rspndit la nivelul microcontrolerelor. Magistrala I2C exist de 20 ani dar prima variant a specificaiilor a aprut n anul 1992 iar a 2-a, versiunea 2.0, a aprut n anul 1998. Principalele caracteristici ale acestei magistrale sunt: este o magistral serial, bidirecional, alctuit doar din 2 linii: SDA (Serial Data) i SCL (Serial Clock); un modul compatibil I2C are nglobat o interfa care i permite conectarea direct la cele 2 linii ale interfeei; astfel, la nivelul magistralei nu vor mai fi necesare nici un fel de circuite pentru funcionarea corect a sistemului; fiecare modul conectat la magistral este adresabil prin program printr-o singur adres; modulele pot fi transmitoare sau receptoare; relaia ntre module este de tip master-slave; este o magistral de tip multi-master, avnd posibilitatea de detectare a coliziunilor i de arbitrare pentru a preveni coruperea datelor, atunci cnd 2 sau mai multe module master iniiaz un transfer; numrul de module care poate fi conectat la magistrala I 2C este limitat doar de ncrcarea maxim capacitiv a magistralei, de 400 pF; viteza transferului de date este V de maxim 100 kbii/ sec n modul Standard, maxim 400 kbii/ sec n modul Fast sau maxim R R DD 3,4 Mbii/ sec n modul High-speed; oricare circuit sau modul compatibil cu PC dispune de posibilitatea de SDA a rejecta impulsurile false de pe magistral. Figura 7.42 prezint modalitatea de conectare a mai multor module la magistrala I 2C. SCL Rezistenele R asigur nivelul HIGH atunci cnd liniile SCL i SDA sunt inactive.

Modul

Modul 41 (microcontroler)

IC
(memorie)

IC

Modul

I2C
(modul LCD)

Fig.4.42.Conectarea mai multor module la magistrala I2C Cteva din avantajele magistralei I2C sunt: nu este necesar proiectarea interfeei la magistrala PC deoarece aceasta este inclus n modul; acelai tip de modul poate fi utilizat n mai multe aplicaii; nivelele pot fi conectate / deconectate la / de la magistral fr afectarea celorlalte module conectate la magistral; existenta a doar 2 linii minimizeaz numrul de conexiuni, ca urmare circuitele vor necesita mai puine terminale iar numrul de trasee de pe plac va fi mai mic; vor rezulta plci mai mici i mai ieftine; facilitatea de multi-master a magistralei permite testarea final rapid utiliznd conexiuni externe la o linie de testare. Principalul avantaj, ns, este acela c magistrala I 2C permite proiectantului construirea rapid a unui prototip pornind de la o diagram bloc funcional. Un sistem bazat pe magistrala I 2C poate fi uor modificat sau dezvoltat doar prin adugarea modulelor compatibile cu magistrala. De asemenea pot fi crescute rapid performanele unui echipament, de exemplu prin adugarea de memorie suplimentar sau prin nlocuirea circuitelor mai vechi cu altele, de acelai tip, dar mai performante, n acest fel pot fi produse rapid variante ale unui echipament, rezultnd o familie de echipamente bazate pe unul de baz.

Descrierea magistralei l2C


La magistrala I2C se pot conecta circuite, module, fabricate n mai multe tehnologii: bipolar, CMOS, NMOS etc. Exist doar 2 fire, SDA i SCL, pe care circul informaia. Fiecare modul are o adres unic i poate lucra ca master sau slave sau ca transmitor sau receptor. De exemplu un modul LCD este receptor dar o memorie sau un microcontroler pot fi att receptor ct i transmitor. Un master este modulul care iniializeaz transferul de date i genereaz semnalul de tact pentru realizarea transferului. Un slave nu poate iniia un transfer, el poate fi doar adresat. Magistrala I2C este de tip multi-master ceea ce nseamn c ea poate fi controlat de mai multe module. In acest caz este necesar arbitrarea. Arbitrarea se bazeaz pe facilitatea de a realiza conexiuni de tip AND cablat pe care o au toate interfeele compatibile I2C. Atunci cnd mai multe module master ncearc s trimit date pe magistral, primul care va plasa 1 (o tensiune la nivel ridicat) n timp ce celelalte vor plasa 0 (o tensiune la nivel cobort) va pierde. Semnalele de tact sunt generate doar de modulele master. Fiecare master genereaz propriul tact ia transferul datelor. Tactul unui master poate fi modificat doar de un slave mai lent care foreaz la 0 linia de tact sau de un alt master, n procesul de 42

sincronizare a semnalelor de tact, care se va realiza prin operaia AND cablat pe linia SCL. Din punct de vedere electric, liniile SDA i SCL sunt linii bidirecionale legate la o surs de tensiune pozitiv prin cte o surs de curent sau cte o rezisten. Nu este obligatoriu ca sursa de tensiune s fie unic pentru ntreg sistemul i dac exist mai multe surse de tensiune nu este obligatoriu s fie de aceeai valoare. Asta nseamn c la magistrala I2C pot fi conectate direct module (circuite) cu tensiuni de alimentare diferite. Cnd magistrala este liber, ambele linii sunt la nivel HIGH. Circuitele de ieire ale modulelor conectate la magistral trebuie s fie cu colector deschis sau cu drena deschis. Datorit varietii tehnologiilor n care sunt fabricate circuitele ce se pot conecta la magistrala I2C, nivelele de tensiune pentru 0 (LOW) i 1 (HIGH) nu sunt fixe c: depind de tensiunea de alimentare VDD. Transferul datelor pe magistrala PC este reprezentat n fig. 7.43. El se desfoar conform unui protocol. SCL 1 2 7 8 9 1 2 8 9

SDA
Bitul cel mai Faz semnificativ START Bitul de achitare Slave-ul cere semnifica stri de asteptare tiv Bitul de achitare semnifica tiv Faz STOP

Fig. 7.43. Transferul datelor pe magistrala I2C

Pentru fiecare bit transferat este necesar generarea unui impuls de tact. Data de pe linia SDA trebuie s fie stabil n timpul ct tactul este la nivel HIGH i se poate modifica doar atunci cnd tactul, de pe linia SCL, este la nivel LOW. Transferul ncepe cu faza de START. Aceasta este generat doar de un MASTER i nseamn o tranziie HIGH -> LOW pe linia SDA n timp ce linia SCL este la nivel HIGH. Dup faza START, magistrala este ocupat. Ea devine liber la nchiderea transferului, dup generarea, de ctre master a fazei STOR Faza STOP nseamn o tranziie LOW > HIGH pe linia SDA n timp ce linia SCL este la nivel HIGH. Exist i varianta START repetat, care poate fi generat tot de un MASTER i are acelai efect ca i START. Dup faza START, urmeaz transferul datelor pe magistral. Acestea vor circula doar sub form de octei. Numrul de octei ce poate fi transferat nu este limitat. Primul bit al unui octet care se transfer este cel semnificativ. Dac un slave nu poate transfera o dat ntruct este ocupat, de exemplu achit o ntrerupere intern, el va cere masterului s intre n stri de ateptare, fornd linia SCL n starea LOW. Slave-ul va debloca linia SCL atunci cnd va fi gata i transferul va continua. In unele cazuri, module compatibile CBUS, este permis un format diferit. Acest caz este mai rar i nu va fi tratat aici. Fiecare octet transferat trebuie s fie urmat de un bit de achitare. Impulsul de tact corespunztor bitului de achitare este generat de master. Transmitorul va trece linia SDA n HIGH n timpul impulsului de achitare ca urmare este sarcina receptorului s plaseze bitul de achitare: nivel LOW nseamn achitare iar nivel HIGH nseamn lipsa achitrii. Asta nseamn c slave-ul receptor a devenit ocupat, ca urmare master-ul va genera faza STOP pentru a opri transferul sau START repetat pentru a-1 reporni. Dac receptorul este master, negenerarea bitului de achitare nseamn semnalarea sfritului 43

transferului de date. Slave-ul transmitor va trebui s elibereze linia pentru a permite master-ului s genereze faza de STOP sau de START repetat. Intrucit magistrala I2C este de tip multi-master, este necesar operaia de arbitrare. Aceasta se desfoar pe ambele linii: SCL i SDA. Arbitrarea pe linia SCL se mai numete i sincronizare i ea va duce la obinerea unui tact unic, pe magistral, pornind de la tacturile modulelor de tip master. Sincronizarea tactului se realizeaz datorit conexiunii de tip AND cablat la linia SCL. Durata LOW a tactului este impus de modulul cu durata LOW a tactului propriu cea mai lung iar durata HIGH a tactului este impus de modulul cu durata HIGH a tactului propriu cea mai scurt, fig. 7.44. Arbitrarea datelor, pe linia SDA, are loc atunci cnd linia SCL este la nivel HIGH. Un master poate porni un transfer doar atunci cnd magistrala este liber. Exist posibilitatea ca dou sau mai multe master-uri s genereze condiia START. Dac 2 sau mai multe master-uri genereaz date, cel ce va genera nivel LOW va ctiga, fig. 7.45. CLK 1 CLK 2 SLK Fig. 7.44. Sincronizarea tactului Arbitrarea are loc n mai multe momente. Primul este cel al adreselor. Apoi, dac mai multe master-uri adreseaz acelai modul slave, arbitrarea va avea loc prin compararea biilor de date dac sunt master-transmitori sau a biilor de achitare dac sunt master-receptori. ntruct att adresele ct i datele care circul pe magistral sunt cele ale master-ului ctigtor, nu se pierde informaie n timpul operaiei de arbitrare. Dac un master care are i o funcie de slave pierde arbitrarea n timpul adresrii, va trebui s treac imediat n starea de slave ntruct este posibil ca master-ul ctigtor s ncerce s l adreseze. Fiecare modul conectat la magistrala I 2C are o adres proprie. Atunci cnd un MASTER dorete s comunice cu un SLAVE i va plasa adresa pe linia SDA, dup faza de START. Exist 3 tipuri de adrese: pe 7 bii, pe 10 bii i de tip "general call". SCL DATA1 DATA2 SDA faza START Fig. 7.45. Sincronizarea datelor Formatul pe 7 bii este cel mai vechi. Dup faza START, master-ul va trimite adresa slave-ului sub forma unui octet din care primii 7 bii sunt adresa efectiv iar al 8lea bit are semnificaia de direcie, R//W: 0 nseamn transmisie, /WR iar 1 nseamn o 44

citire, /RD. Figura 7.46 prezint formatul unui transfer, de la un master transmitor la un slave receptor, cu observaia c mai exist i alte formate posibile.

START *

Adres * slave

__ R/W * 0=scriere

Data *

Data *

__ A

STOP *

* Transfer de la master la slave

Transfer de la slave la master __ A achitare: A neachitare Fig. 7.46. Transfer de la un master transmitator la un slave receptor cu adres pe 7 bii Atunci cnd se trimite o adres, fiecare modul compar propria adres cu cea de pe linie i, dac o ntlnete, se consider adresat ca un slave receptor sau ca un slave transmitor. Alocarea adreselor este controlat de un comitet. Multe adrese sunt rezervate. Adresarea pe 10 bii a fost definit de versiunea 2.0 a specificaiilor magistralei PC i ea a aprut datorit creterii semnificative a circuitelor i modulelor compatibile PC dublat de faptul c din combinaiile de adrese pe 7 bii, 112 erau reinute sau folosite n cazuri particulare. Adresarea pe 10 bii este compatibil i poate fi combinat cu adresarea pe 7 bii. Module cu adrese pe 7 sau 10 bii pot coexista n acelai sistem. Adresarea pe 10 bii nu afecteaz adresele pe 7 bii alocate. Adresarea pe 10 bii folosete combinaia 1111 XXX pentru primii 7 bii ai octetului care urmeaz dup faza START sau START repetat. Mai exact, sunt folosite doar combinaiile de tipul 11110XX, restul de 4 combinaii fiind rezervate pentru mbuntiri ulterioare. Adresa pe 10 bii este format din primii 2 octei care urmeaz dup faza de START sau START repetat. Primii 7 bii ai primului octet sunt combinaia 11110XX din care ultimele 2 ranguri, XX, sunt rangurile cele mai semnificative din adresa pe 10 bii. Urmeaz rangul al 8-lea cu valoarea 0 i al doilea octet al adresei. n continuare, dac transferul este scriere de la master la slave, urmeaz datele iar dac transferul este citire de la slave la master urmeaz retrimiterea primului octet, n care al 8-lea bit va avea valoarea 1, dup care master-ul ateapt datele de la slave. Figura 7.47 arat formatul transferului de la un master transmitor la un slave receptor iar figura 7.48 arat formatul transferului de la un slave transmitor la un master receptor. Sunt posibile i formate combinate. Adresa de tip "general call" se folosete pentru a adresa, de ctre un master, Adres Adres toate celelalte module conectate la magistral. Exist facilitatea ca un modul STOP s ignore START R/W A1 A salve A 2 DATA A * slave acest tip de *adresare. Acestui* format deoctet adres i corespunde o anume combinaie din * * 2 cele definite de primii 7 bii de dup faza START sau START repetat i anume 0000000. * 0

* Transfer de la master la slave


Transfer de la slave la master A, A1, A2: achitare ; A: neachitare 45

Fig. 7.47. Transfer de la un master transmitor la un slave receptor cu adres pe 10 bii


Adres Adres Adres START START R/W slave R/W A 3 DATA A salve A 2 rep. A1 slave * * * octet 1 octet 2 octet 1 * * * * *

DATA A STOP * *

1 0 Fig. 7.48. Transfer de la un slave receptor la un master transmitor cu adres pe 10 bii

Dac un slave accept transferul cu acest format de adresare, el va emite o achitare i se va comporta ca un slave. Dac nu accept transferul, nu va emite achitarea. Al doilea octet al adresei de tip "general call" va indica operaia ce se va efectua n continuare. Dac slave-ul este cu adresare pe 10 bii, atunci dup primul octet de tip "general call", dac este acceptat, vor urma ali 2 octei care constituie adresa pe 10 bii i n continuare urmeaz transferul de date. Versiunea 2.0 a specificaiilor magistralei 1 2C definete 3 moduri de lucru: Standard, cu viteze de pn la 110 kbii/ sec, Fast, cu viteze de pn la 400 kbii/ sec i High-speed, cu viteze de pn la 3,4 Mbii/ sec. Viteza mai mare este asigurat de etajele de ieire, mai rapide la modurile Fast i High-speed. Restul, adic protocolul, formatul transferurilor, nivelele logice i ncrcarea maxim capacitiv admis pentru liniile SCL i SDA sunt aceleai la toate modurile. Noile module slave care pot lucra n modurile Fast i High-speed, admit ambele variante de adresare: cu 7 bii i cu 10 bii. Compatibilitatea este doar de sus n jos n sensul c un modul care poate lucra ntr-un mod mai rapid poate lucra i n modurile mai lente dar nu i invers. Exist posibilitatea ca n cadrul aceluiai sistem s fie conectate module care lucreaz n moduri diferite. Ca urmare, n diferite zone ale sistemului, transferurile se vor face cu viteze diferite. Intre zonele cu viteze diferite vor fi necesare aa numitele "poduri de interconectare" care separ prile din magistral care au viteze diferite i asigur transferurile ntre acestea. Magistrala I2C permite conectarea circuitelor realizate n diferite tehnologii. Acestea pot avea tensiuni de alimentare diferite. Pentru a permite conectarea lor la aceeai magistral I2C vor fi necesare circuitele cu rol de translatoare de nivel. Un asemenea circuit are dou roluri: protejeaz zona cu tensiune de alimentare mai mic fa de cea cu tensiune de alimentare mai mare i protejeaz o zon nealimentat de celelalte la care s-au aplicat tensiunile de alimentare. Translatoarele de nivel pot sau nu s coincid cu "podurile de interconectare", prezentate la sistemele cu viteze diferite, n funcie de complexitatea lor. Figura 7.49 prezint o magistral I2C n care exist zone cu tensiuni de alimentare diferite. 46

In acest fel magistrala I2C se adapteaz la circuitele mai noi, cu tensiuni de alimentare mai mici. VDD=3,3V SDA1 SCL1 Modul I2C 3,3V Modul I2C 3,3V R R TN TN Modul I2C 5V Modul I2C 5V R R VDD=5V SDA2 SCL2

TN: translator de nivel Fig. 7.49. Conectarea modulelor cu tensiuni de alimentare diferite la o magistral I2C

7.2.6. Portul serie al calculatorului PC


Portul serie al calculatorului PC este alctuit din circuitul specializat pentru comunicarea serial, circuitele translatoare de nivele de tensiune, conectorul aflat pe carcasa calculatorului, n spate, i rutinele de baz specifice. Transferul serie realizat de PC este de tip asincron, bidirecional, conform standardului RS232. Portul serie a aprut o dat cu apariia PC-ului, 1981, naintea portului paralel i, iniial, a fost folosit pentru cuplarea calculatorului cu terminale aflate la distan. Utilizarea portului serie s-a intensificat semnificativ la apariia i rspndirea Internetului. Pentru realizarea transferurilor s-au folosit liniile telefonice iar pentru conectarea unui port serie la liniile telefonice a fost necesar un echipament numit MODEM. Actualmente exist dou tipuri de MODEM-uri: interne i externe. Cele interne se afl pe o plac de extensie care se introduce n interiorul calculatorului i permit conectarea direct a calculatorului la liniile seriale. Cele externe sunt dispozitive de sinestttoarea care trebuiesc legate cu un cablu specific la conectorul portului serie al calculatorului. Cele mai rspndite sunt cele interne. Majoritatea MODEM-urilor au i funcie de fax. Exist i echipamente periferice care lucreaz pe linii seriale, de exemplu: mouse-ul, tastatura etc. Exist dou tipuri de circuite specializate pentru transferurile serie: de tip USART (Universal Synchronons Asynchronons Receiver Transmitter) i cele de tip UART. La PC, circuitul este de tip UART i face parte din aa numita familie a circuitului 8250. Circuitele pentru translatarea nivelelor de tensiune asigur translatarea nivelelor TTL, ale circuitului UART n nivele EIA, pe liniile seriale. Soluia cea mai rspndit este cea cu circuitul 232. Conectorul portului serie este de tip tat i se prezint n 2 variante: conector de tip D cu 25 pini i conector de tip D cu 9 pini. Conectorul cu 25 pini este conform cu standardul RS232 i a fost folosit la calculatoarele mai vechi. In ultima perioad se prefer conectorul cu 9 pini care este mai mic i mai ieftin dar se pot ntlni i calculatoare noi avnd conector cu 25 pini. Configuraia semnalelor la cei doi conectori a fost prezentat n tabelul 2.2. 47

Adresele de port i ntreruperile


Un calculator poate avea mai multe porturi seriale (maxim 4). Ele au fost denumite de BIOS, COM1, COM2, COM3 i COM4. Tab. 7.27 prezint adresele de port standard, la care pot fi gsite aceste porturi i ntreruperile utilizate.
Port serial COM1 COM2 COM3 COM4 Adres de baz 3F8H 2F8H 3E8H 2E8H Linie IRQ 4 3 4 3

Tabelul 7.27. Adresele de baz i ntreruperile porturilor serie Aceste caracteristici nu sunt respectate la varianta IBM PS/2 construit n jurul magistralei Microchannel. ntruct numrul de porturi seriale implementate la un PC variaz trebuie s existe o posibilitate de a afla cte sunt implementate i unde se afl. ntocmai ca i n cazul portului paralel, adresele de baz pentru porturile serie existente ale unui PC pot fi gsite n zona de date BIOS, la adresele indicate n tabelul 7.28.
Adres 0000: 0400 0000: 0402 0000: 0404 0000: 0406 Semnificaie Adres de baz port COM1 Adres de baz port COM2 Adres de baz port COM3 Adres de baz port COM4

Tabelul 7.28. Adresele unde se afl adresele de baz ale porturilor serie

Circuite UART
Circuitul UART este cel care determin performanele portului serie. De la apariia PC-urilor au fost folosite mai multe circuite UART din aa numita familie a circuitului 8250 i sunt compatibile cu variantele anterioare. La calculatoarele actuale exist circuite specializate pentru intrri / ieiri, puternice, cu un grad mare de integrare, care includ unul sau dou circuite UART, circuitul specializat pentru interfa paralel, circuitele specializate pentru discul flexibil i harddisk etc. Exist mai multe firme care produc asemenea circuite i pentru programarea lor se recomand studiul documentaiei tehnice specifice. Viteza maxim a majoritii UART-urilor folosite n PC este de 115200 bps, mai rar 230400 bps i i mai rar 460800 bps. Exist dou metode pentru a asigura comunicarea UC - UART: fie prin citirea strii circuitului UART ("polling"), fie prin ntreruperi. Prima soluie folosete intens procesorul care va citi, periodic, starea UART-ului i, din acest motiv, este mai lent. Viteza pn la care se poate folosi, fr a apare eroare de ritm, este dependent de procesor, de placa de baz (ct memorie cache exist) i de program. Orientativ, se poate afirma c metoda poate fi folosit pn la viteza de 38400 bps, fr erori de ritm, la nivelul unui procesor Pentium II. A doua metod permite lucrul la viteza maxim de 115200 bps chiar dac procesorul este mai puin performant. Circuitele UART folosite n PC-uri au fost: 48

8250: este primul circuit din familie i a fost folosit n varianta XT a PC-ului. Nu poate fi folosit la PC-urile de tip AT i urmtoarele, din motive de vitez. 8250B: este o variant mai lent a lui 8250 folosit tot la nivelul calculatorului PC - XT. 8250A: este o variant mai rapid a lui 8250. De asemenea, nu poate fi folosit n PCuri AT i urmtoarele. 16450: este un UART mai rapid, folosit n PC-urile de tip AT. Poate fi folosit i n PCurile de azi, la viteze, ns, mai mici. Poate fi gsit n multe PC-uri de azi. Programele de verificare a porturilor seriale nu pot face distincie ntre 16450 i 8250A. 16550: este un UART puin folosit. Este primul UART cu tampoane, cu dimensiunea de 16 octei, dar acestea nu au putut s fie folosite de partea de programe. 16550A: este circuitul UART cel mai rspndit. Are tampoane FIFO de 16 bii care pot fi folosite, poate transfera date n mod DMA i poate lucra la viteze mai mari dect variantele anterioare. Circuitul este compatibil, din punct de vedere al terminalelor, cu circuitul 8250A i 16450 ca urmare porturilor seriale mai vechi, bazate pe aceste circuite, li se pot mri performantele nlocuind UART-ul vechi cu UART-ul 16550A. Totui el introduce dou noi semnale, dar pe terminale nefolosite de 8250A i 16450, care au semnificaii la transferurile prin DMA. Exist dou variante ale transferului DMA: transfer singular sau transfer multiplu. 16650: este un circuit mai performant dect anteriorul: are tampoane pe 32 bii, control automat al fluxului i sistem de gestiune al consumului. Din pcate, circuitul nu este total compatibil cu 16550A, ca urmare o parte din programe nu pot fi folosite. Acest dezavantaj a limitat utilizarea sa. 16750: este un circuit UART, produs de Texas Instruments, performant, total compatibil cu 16550A dar semnificativ mai rapid dect acesta. Are tampoane FIFO pe 64 bii i control automat al fluxului.
D0 D1 D2 D3 D4 D5 D6 D7 RCLK SIN SOUT CS0 CS1 /CS2 /BAUDOUT XIN XOUT /WR WR VSS 1 40 VDD /RI /DCD /DSR /CTS MR /OUT1 /DTR /RTS /OUT2 INTR /RxRDY A0 A1 A2 /ADS /TxRDY DDIS RD /RD

16550A

Fig. 7.50. Configuraia terminalelor la circuitul 16550A

20

21

Toate circuitele UART lucreaz cu nivele TTL i au conectat un cuar cu frecvena de 1,8432 MHz, 7,3728 MHz sau 18,432 MHz. Figura 7.50 prezint configuraia terminalelor i schema bloc la circuitul UART 16550A, iar tabelul 7.29 prezint semnificaiile terminalelor. Figura 7.51 prezint modul de conectare al circuitului 16550A ntr-o structur minim.
Terminal 1-8 9 Semnal D0-D7 RCLR Semnificaie Magistrala de date Tact recepie. Frecvena semnalului la aceast intrare trebuies fie:

49

10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40

SIN SOUT CSO CS1 /CS2 /DAUDOUT XIN XOUT /WR WR Vss RD /RD DDIS /TxRDY /ADS A2 A1 A0 /RxRDY INTR /OUT2 /RTS /STR /OUT1 MR /CTS /DSR /DCD /RI Vdd

viteza de transfer pe linie x 16 Recepie date ("Serial Input") Transmisie date ("Serial Output") Chip select 0, activ la 1 Chip select 1, activ la 1 Chip select 2, activ la 0 Ieire a generatorului de vitez de transfer. Frecvena semnalului: viteza de transfer pe linie x 16 Intrare pentru cristalul de cuar Ieire la care se conecteaz cristalul de cuar Semnal de comand pentru scriere n circuit de la UC Idem ca la 18 dar semnalul este inversat Mas electric Idem ca la 22 dar semnalul este inversat Semnal de comand pentru citire de la circuit de ctre UC Dezactivare driver. Devine 0 atunci cnd UC citete de la UART. Poate fi folosit pentru a comanda circuite separatoare de pe magistrala de date (Bus Tranceivers) Semnal prin care UART cere date de la UC Address Strobe. Este folosit doar dac adresele nu sunt stabile n ciclurile de citire sau scriere Rang de adres Rang de adres Rang de adres Semnal prin care UART i comunic UC-ului c are date pentru el. Ieire pentru cerere de ntrerupere Ieire utilizator Request to Send Data Terminal Ready Ieire utilizator Master Reset Clear to Send Data Carrier Ready Data Carrier Detect Ring Indicator +5V

Tabelul 7.29. Semnificatiile terminalelor circuitului 16550A


Mag .de I/E 1
I I I I I I I

/CS

SOUT D0-7 CS1 SIN U /RTS CS0 /CS2 A /CTS A2 R /DTR A1 /DSR T /DCD A0 MR /RI /RD /BAUDOUT /WR RCLK XIN RD WR XOUT /ADS INTR /TxRDY /RxRDY

Circuite de translatare TTL< >EIA RS232

Fig. 7.51. Conectarea circuitului 16550A la magistrala de I/E

Registrele portului serie


50

Intreaga activitate a portului serie este controlat prin registre. Acestea se gsesc n cadrul UART-ului. Tabelul 7.30 prezint aceste registre.
Nume registru Transmitter Holding Register Receiver Register Divisor Latch Low Byte Interrupt Enable Register (IER) Divisor Latch High Byte Interrupt Identification Register (IIR) FIFO Control Register (FCR) Line Control Register (LCR) Modem Control Register (MCR) Line Status Register (LSR) Modem Status Register (MSR) Scratch Register Adresa de port Baz + 0 Baz + 0 Baz + 0 Baz + 1 Baz + 1 Baz + 2 Baz + 2 Baz + 3 Baz + 4 Baz + 5 Baz + 6 Baz + 7 DLAB 0 0 1 0 1 Directie Scriere Citire Citire / Scriere Citire / Scriere Citire / Scriere Citire Scriere Citire / Scriere Citire / Scriere Citire Citire Citire / Scriere

Tabelul 7.30. Registrele portului serie Dei exist 12 registre, ele utilizeaz doar 8 adrese de port. Aceasta este posibil prin intermediul rangului DLAB (''Divisor Latch Access Bit"), rang al registrului Line Control Register. Dac DLAB are valori diferite atunci unele adrese de port vor fi utilizate de cte dou registre. Astfel dac DLAB = 1 atunci vor fi disponibile 2 registre pentru a seta viteza de comunicare. Justificarea existenei lor va fi prezentat n continuare. Circuitul UART este conectat la un cuar cu frecvena de 1,8432 MHz, 7,3728 MHz sau 18,432 MHz. Aceste frecvene sunt divizate intern i rezult o vitez maxim de transfer. pentru UART, de 115 200 bps. Este o vitez relativ mare care nu este suportat de toate modemurile i alte echipamente i, ca urmare, circuitul UART dispune de un generator programabil de rat de transfer, controlabil prin intermediul a dou registre. Acestea vor memora constanta de divizare, la care se mparte rata maxim de 115200 bps. Constanta este o valoare pe 16 bii i, ntruct circuitul UART are o magistral de date doar de 8 bii, vor fi necesare 2 registre pentru a o memora. Ele se afl la adresele Baz + 0 i Baz + 1, atunci cnd DLAB = 1. Tabelul 7.31 prezint cteva rate de transfer uzuale i constantele de divizare corespunztoare.
Rat de Transfer 50 110 300 600 1200 2400 4800 9600 19200 38400 57600 115200 230400 460800 Constant de divizare (octet superior) 09H 04H 01H 00H 00H 00H 00H 00H 00H 00H 00H 00H * Constant de * divizare (octet inferior) 00H 17H 90H C0H 60H 30H 18H 0CH 06H 03H 02H 01H Constant divizare (zecimal) 2304 1047 384 192 96 48 24 12 6 3 2 1 de * Constant de + divizare (zecimal) 9216 4188 1536 768 384 192 96 48 24 12 8 4 2 1

*pentru cuar de 1,8432 MHz +pentru cuar de 7,3728 MHz Tabelul 7.31. Rate de transfer uzuale i constantele de divizare corespunztoare Transmitter Holding Register 51

Este alctuit din dou registre: Transmit Hold Register (THR) i Transmit Shift Register (TSR). Atunci cnd procesorul trimite o dat ctre UART aceasta se ncarc n THR. Dac TSR este liber, coninutul lui THR se transfer n TSR i se activeaz la 1 un rang n Line Status Register prin care UART cere o alt dat de la procesor. Data din TSR este serializat i trimis pe linie. Receiver Register Este registrul n care UART asambleaz data primit de pe linie. Atunci cnd registrul este plin, se activeaz, la 1, un rang din Line Status Register prin care UART anun procesorul c are o dat pentru el. Interrupt Enable Register (IER) Este un registru pentru validarea sau mascarea cererilor de ntrerupere precum i pentru comanda UART-ului 16750. Structura sa este: 7-6: rezervat 5: validare mod Low Power, la 16750 4: validare mod Sleep, la 16750 3: validare cerere de ntrerupere de la modem (Modem Status Register) 2: validare cerere de ntrerupere de stare care apar atunci cnd la recepie au aprut erori (Line Status Register) 1: validare cerere de ntrerupere atunci cnd tamponul la transmisie, sau doar registrul THR, este gol 0: validare cerere de ntrerupere la recepie, atunci cnd tamponul la recepie, sau doar Receiver Register, este plin. Validarea cererilor de ntrerupere este 1 n rangul respectiv iar mascarea lor, nseamn 0 n rangul respectiv. Interrupt Identification Register Acest registru, doar cu citire, permite citirea strii tampoanelor de tip FIFO precum i determinarea sursei de cerere de ntrerupere. UART prioritizeaz intern cererile de ntrerupere i indic doar cererea de ntrerupere activat cea mai prioritar. Rangul 0 arat dac mai sunt cereri de ntrerupere n ateptare, dup tratarea celei mai prioritare. Structura registrului este urmtoarea: 7 - 6: 00: nu sunt tampoane FIFO; 01: sunt tampoane FIFO dar nu pot fi utilizate; 11: sunt tampoane FIFO i pot fi utilizate; 5: sunt tampoane FIFO de 64 octei i pot fi utilizate (pentru 16750) 4: rezervat 3: Received Data TimeOut; are semnificaie doar cnd UART lucreaz n modul FIFO i se activeaz atunci cnd data nu se ncarc n tamponul FIFO cu rata programat 2 - 1: indic sursa cererii de ntrerupere cea mai prioritar, activ; 11: cerere de ntrerupere de stare (de la Line Status Register) 10: cerere de ntrerupere la recepie dac bit 3=0 sau cerere de ntrerupere la recepie Time Out dac bit 3 = 1 01: cerere de ntrerupere la transmisie 00: cerere de ntrerupere de la modem 0: 0: o cerere de ntrerupere este n ateptare 1: nu exist cerere de ntrerupere n ateptare FIFO Control Register 52

Acest registru, doar cu scriere, controleaz tampoanele FIFO din circuitele UART 16550 i cele care i-au urmat. Structura sa este urmtoarea: 7-6: seteaz nivelul la care se va genera o cerere de ntrerupere la recepie: 00: 1 octet 01: 4 octei 10: 8 octei 11:14 octei. Dac de exemplu nivelul este setat la 8 octei atunci se va genera o cerere de ntrerupere la recepie atunci cnd n tamponul FIFO s-au recepionat 8 octei. 5: valideaz tampoanele de 64 octei (doar la 16750) 4: rezervat 3: selecteaz modul DMA (la UART-urile la care exist) 2: terge tampoane FIFO la transmisie; atunci cnd este setat terge coninutul tamponului FIFO dar nu i ale registrului TSR 1: terge tampoane FIFO la recepie; rangurile 1 i 2 se autoreseteaz la sfritul operaiei. 0: validare/ invalidare a tampoanelor FIFO; dac se dorete validarea tampoanelor FIFO, aceasta trebuie setat naintea fixrii nivelului pentru cererea de ntrerupere la recepie. Dac UART-ul dispune de mod DMA, atunci rangul 3 seteaz modul de lucru: 0 sau 1. Mod 0 nseamn transfer singular i terminalele RxRDY i TxRDY se vor activa atunci cnd s-a primit un octet de pe linie, respectiv s-a transferat un octet pe linie. Mod 1 nseamn transfer multiplu, adic terminalul RxRDY se va activa atunci cnd s-a atins nivelul stabilit prin rangurile 6,7 sau cnd apare situaia de TimeOut iar terminalul TxRDY se va activa atunci cnd tamponul FIFO de transmisie are cel puin o locaie liber. Line Control Register Este registrul care selecteaz caracteristicile de baz ale transferului asincron. Structura sa este urmtoarea: 7: DLAB: 0: registre de lucru; 1: registre de divizare; 6: 0: transmisie normal 1: forare BREAK; 5-3: paritatea, dup cum urmeaz: x x 0 - far paritate; 0 0 1 - paritate impar; 0 1 1 - paritate par; 1 0 1 - paritate 1; 1 1 1 - paritate 0. 2: bii de STOP: 0: 1 bit de STOP 1: 2 bii de STOP pentru caracter pe 6, 7 sau 8 bii i 1,5 bii de STOP pentru caracter pe 1,5 bii. 1-0: lungimea caracterului: 00-5 bii; 01-6 bii; 10-7 bii; 11-8 bii. Modem Control Register Permite controlul transferului cu MODEM-ul sau cu un alt echipament, utiliznduse dialog hardware. 7-6: rezervate 5: validare control automat al fluxului (doar la 16750) 53

4: validare mod Loopback. In acest mod terminalul de transmisie date este la nivel 1 (inactiv) iar terminalul de recepie este dezactivat. Sunt dezactivate i DSR, CTS, R i DCD. Intern, transmisia date este conectat la recepie date iar DTR, RTS, OUT1 i OUT2 sunt conectate la intrrile de control ale modemului. Ca urmare, data care se trimite se i recepioneaz, la nivelul aceluiai circuit. Se pot folosi i ntreruperile. Modul folosete la verificarea circuitului UART, fr a fi necesar scoaterea sa din sistem. 3: OUT2: poate fi folosit la ntreruperi; dac este folosit, atunci: 1 - ntreruperile generate de UART sunt transferate la circuitul specializat pentru ntreruperi; 0 - linia de ntrerupere este trecut n a 3-a stare. 2: OUTl: poate fi folosit pentru validarea/invalidarea unui port n cazul unei plci seriale multiport; de obicei este nefolosit i programat la 1; 1: comand direct terminalul /RTS; 0: comand direct terminalul /DTR. Line Status Register Este un registru doar cu citire, util atunci cnd comunicarea UART - UC se face prin program ("polling") i pentru a detecta diferite erori ce pot apare n timpul transferului. Structura registrului este urmtoarea: 7: se activeaz dac a aprut cel puin o eroare de tip break, paritate sau cadrare la recepia unui octet n tamponul FIFO; 6: se activeaz atunci cnd Transmit Hold Register i Transmit Shift Register sunt goale; asta nseamn c linia este n stare inactiv; 5: se activeaz atunci cnd doar Transmit Hold Register este gol; pe linie se trimite caracterul din Transmit Shift Register; UC poate trimite o dat ctre UART cnd sesizeaz activarea oricruia din rangurile 5 sau 6 (5 se va activa naintea lui 6). 4: este activat atunci cnd receptorul a sesizat o eroare de break; 3: indic (atunci cnd estel) eroare de cadrare; 2: indic (atunci cnd este 1) eroare de paritate; 1: indic (atunci cnd estel) eroare de ritm; 0: comunic UC c are o dat sau date pentru el: 0: nu exist dat n Receiver Register sau FIFO; 1: exist o dat n Receiver Register sau date n FIFO. Modem Status Register Este un registru care indic starea liniilor folosite la comunicarea cu MODEM-ul. Structura sa este urmtoarea: 7: indic starea terminalului /DCD 6: indic starea terminalului /RI 5: indic starea terminalului /DSR 4: indic starea terminalului /CTS 3: se activeaz dac a aprut o modificare pe linia /DCD, de la ultima citire a registrului 2: se activeaz dac a aprut o tranziie LOW - HIGH pe linia /RI 1: se activeaz dac a aprut vreo modificare pe linia /DSR, de la ultima citire a registrului 0: se activeaz dac a aprut o modificare pe linia /CTS, de la ultima citire a registrului. Dac s-a setat modul LoopBack, atunci rangul 4 indic starea lui RTS, rangul 5 arat starea lui DTR, rangul 6 arat starea lui OUTl iar rangul 7 arat starea lui OUT2. Scratch Register Este un registru care nu intervine n comunicare i poate fi folosit de utilizator. El exist doar la UART-urile 16450 i urmtoarele, ca urmare poate fi folosit pentru a detecta dac UART-ul dintr-un calculator este de tip 8250/ 8250B, adic naintea lui 16450, sau de alt tip. 54

Exist aplicaii n care acest registru este folosit. Astfel n cazul unor adaptoare seriale pentru interfee RS232, RS422 i RS485 poate fi folosit la validarea unor separatoare de pe magistrala de date iar n cazul unor adaptoare seriale multiport, poate fi folosit la gestionarea cererilor de ntrerupere.

7.2.6.4. Utilizarea portului serie prin intermediul BlOS-ului


Accesul la portul serie prin intermediul BlOS-ului se poate face utiliznd ntrerupere software INT 14H. Tabelul 7.32 prezint funciile BIOS pentru portul serie.
Nume funcie Iniializare interfaa serial Combinaie n AH 00H Descriere Stabilete caracteristicile generale ale transferurilor. Registrul DX conine numrul interfeei seriale iar registrul AL conine codificarea caracteristicilor: biii 7-5: viteza de transmisie ' 000 - 110 bii/sec 001 - 150 bii/sec 010 - 300 bii/sec 011 - 600 bii/sec 100 - 1200 bii/sec 101 - 2400 bii/sec 110 - 4800 bii/sec 111 - 9600 bii/sec biii 4,3: paritate xO - fr paritate 01 - paritate impar 11 - paritate par bit 2: bii de STOP 0 - 1 bit de STOP 1 - 2 bii de STOP bii 1,0: lungime caracter 10-7 bii 11 -8 bii Transmite un caracter pe linia serial. Registrul DX conine numrul interfeei seriale iar registrul AL conine octetul care se transmite. Dac nu s-a putut face transmiterea caracterului, la revenirea din rutin, rangul 7 din AH va fi 1. Restul de ranguri din AH indic starea interfeei seriale nainte de transmiterea octetului. Structura lui AH este aceeai cu cea de la funcia 03H. Registrul DX conine numrul interfeei seriale utilizate. Dup execuia rutinei, n AL se va obine caracterul recepionat iar n AH se va indica modul n care s-a realizat transferul (dac au aprut sau nu erori). Structura lui AH este aceeai cu cea de la funcia 03H. Registrul DX conine numrul interfeei seriale utilizate. Dup execuia rutinei, AX va conine codificarea strii: bit 7: timeout bit 6: registrul de serializare (Transmit Shift Register) este liber bit 5: registrul pentru data de transmis (Transmit Hold Register) este liber bit 4: indic apariia unei erori de tip break bit 3: indic apariia unei erori de cadrare bit 2: indic apariia unei erori de paritate bit 1: indic apariia unei erori de ritm bit 0: s-a asamblat un caracter de pe linie i poate fi predat procesorului

Transmisie caracter

01H

Recepie caracter Citire stare

02H

03H

Tabelul 7.32. Funciile BIOS ale portului serial

55

7.3. Portul USB


USB ("Universal Serial Bus") este o interfa i magistral pentru conectarea periferiei la calculatorul PC. Ea urmrete nlocuirea porturilor serie i paralel precum i a interfeelor pentru tastatur, mouse i joystick i stabilirea unei interfee unice pentru conectarea periferiei la PC, inclusiv cea pentru comunicaii.

7.3.1. Stadiu! actual al conectrii periferiei Ia calculatorul PC


Modalitatea clasic de conectare a periferiei la PC corespunde arhitecturii originale IBM PC din 1981. Caracteristicile acestei conectri sunt: a) Fiecare interfa a unui periferic este mapat direct n spaiul de intrare/ ieire al procesorului, ocupnd un numr de adrese de port, o linie pentru cereri de ntrerupere, IRQ i eventual, un canal DMA. Datorit resurselor limitate ale calculatorului, aceast situaie poate duce la conflicte. Exist linii de ntrerupere folosite n comun de mai multe echipamente ceea ce poate duce la nefuncionarea calculatorului. b) Fiecare periferic are cuple care pot s difere de ale celorlalte periferice, rezultnd o diversitate de cuple i cabluri ceea ce nseamn cost ridicat la nivelul utilizatorului. c) n configuraia actual, fr USB, procesorul detecteaz periferia doar la pornirea sistemului. Dac un periferic este conectat dup pornirea sistemului el nu va fi recunoscut dect dac sistemul este repornit. Conectarea i recunoaterea periferiei, n timpul lucrului, dac este realizat, este doar la nivel de aplicaie. d) Fiecare periferic are un driver propriu. Dac sistemul de operare nu l conine, va fi necesar ncrcarea acestuia de pe un suport extern. e) Facilitatea Plug and Play a fost gndit tocmai pentru a elimina dezavantajul de mai sus, legat de gestionarea resurselor. Ea asigur doar o gestiune automat limitat, pstrnd dezavantajele datorate conectrii periferiei i a ncrcrii driverelor. f) Numrul de periferice ce poate fi conectat este mic. Porturile serie i paralel, conectorul pentru joystick, tastatura, mouse-ul precum i interfeele care se pot conecta deschiznd calculatorul i conectndu-le direct la sloturile ISA sau PCI constituie toate posibilitile de conectare. n concluzie, sistemul de intrare / ieire clasic al PC-uIui se caracterizeaz prin resurse limitate, genernd conflicte ntre periferice, nu permite conectare i gestionare n timpul lucrului, costul este ridicat i limea de band oferit pentru unele aplicaii, de exemplu comunicaii telefonice, nu este suficient.

7.3.2. Caracteristici generale ale USB


USB este o interfa (magistral) care este alternativa la sistemul de intrare/ieire descris anterior. Problemele care s-au avut n vedere la conceperea USB, au fost: conectare facil a ct mai multe periferice la PC; rate de transfer medii (pn la 12 Mb/ s) la un cost sczut; suport total pentru transferuri multimedia: voce, n timp real, audio i video; protocol flexibil pentru mai multe moduri de transfer; integrare facil n tehnologia echipamentelor periferice; standardizare. Printre avantajele pe care le asigur USB sunt: model unic pentru cabluri i conectori; 56

alocare automat de adrese ctre periferice; suport limi de band diferite de la civa kb/ s la civa Mb/ s; permite conectarea a pn la 127 periferice; permite conectarea perifericelor compuse (cu mai multe funcii); conectarea i deconectarea periferiei la calculator se poate face n timpul funcionrii cu recunoaterea automat a acesteia fr a fi necesar repornirea calculatorului; detecie i corecie de erori.

7.3.3. Caracteristici fizice ale USB


USB a fost introdus n 1996 i urmrete standardizarea conectrii periferiei la calculatorul PC. Diferite echipamente periferice se leag n acelai fel, cu aceleai cabluri i conectori, particularitile fiecruia fiind preluate de partea de software i de conectare la magistral. USB este o magistral serial. USB mparte echipamentele seriale conectabile n dou clase: hub-uri i funcii. Un hub are conexiuni, numite porturi, unde se pot conecta funcii. O funcie este un echipament periferic care realizeaz un tip de operaii. Exemple de funcii sunt: tastatur, mouse, modem, imprimant, scanner etc. USB nu este o conexiune de tip punct la punct ci o conexiune de tip magistral. Toate echipamentele conectate partajeaz aceleai semnale. Informaia circul pe magistral sub form de pachete, fiecare funcie primind fiecare pachet. PC-ul acceseaz o anume funcie, atand pachetelor care-i corespund, adresa. Un hub ofer porturi pentru conectarea la el a mai multe funcii. Este posibil conectarea la un port a unui alt hub, fiind astfel permise 5 nivele. Astfel USB-ul poate fi asemuit cu o retea de tip arbore,sau stea pe mai multe nivele,in centru fiind asa numitul host,figurile 7.52,7.53.
PC Host (Hub Rdcin)

Hub

Funcie

Hub

Fig.7.52. Topologie USB

Funcie

Hub

Funcie

Funcie

Funcie

Funcie

Fiecare sistem USB are un hub central, numit host. Dei specificaiile prevd unicitatea host-ului ntr-un sistem USB, se poate realiza un dispozitiv pentru conlucrarea a dou host-uri. Hostul este comandat de ctre un host controler aflat n PC. De la hubul prevzut host-ului, pornesc ramurile reelei USB. Host-ul are urmtoarele responsabiliti: 57

detecteaz conectarea i deconectarea echipamentelor USB; gestioneaz transferul datelor ntre PC i echipamentul USB; primete i preia informaie de stare de la echipamentele USB i furnizeaz alimentare echipamntelor USB conectate.

PC Host (Hub Rdcin)

Hub

Nivel 1

Hub

Funcie

Funcie

Nivel 2 Fig.7.53. Alt reprezentare pentru o topologie USB

Hub

Hub

Funcie

Nivel 3

Funcie

Funcie

Funcie

Nivel 4

Structura unui host este dat n fig. 7.54.

Client SW Ci pentru comunicaii logice USB system SW Fig. 7.54. Structura unui host USB

USB Host Controler

Cale pentru comunicaia fizic

USB System SW conine software-ul necesar pentru gestionarea magistralei. Acesta este coninut de sistemul de operare al calculatorului i este independent de echipamentele USB. 58

Client SW este software-ul executat la host care corespunde unui echipament USB. El este furnizat o dat cu sistemul de operare sau mpreun cu echipamentul USB, ca un driver USB al acestuia. In continuare, flexibilitatea este total. Pot fi conectate hub-uri n hub-uri i periferice n hub-uri fr vreo anume ordine. Softaware-ul va gestiona lanul de periferice. ntruct fiecrei funcii i se ataeaz o adres pe 7 bii, rezult un total de 127 periferice ce pot fi conectate la un host USB, una din cele 128 combinaii fiind rezervat. Exist i o limit de distan ntre un hub i o funcie i anume de 5 metri. Un hub regenereaz semnalele, ca urmare distana ntre 2 nivele poate fi de 5 metri. Conectarea ntr-un sistem USB nu poate fi eronat. Nu exist probleme de rutare ntruct toate semnalele merg la toate echipamentele. Exist doar 2 tipuri de conectori, unul pentru intrare i unul pentru ieire iar conectarea greit a cablurilor nu este mecanic posibil. Nu sunt necesare adaptoare sau alte elemente de conectare. Host controlerul este cel care gestioneaz ntreg sistemul USB. Periodic el interogheaz toate echipamentele din sistem pentru a afla cine sunt. Apoi construiete o hart n care localizeaz fiecare echipament prin hub i numr de porturi crend astfel cte o adres pentru fiecare echipament. USB cere suport software specific. Orice dispozitiv ce se poate lega la USB conine software-ul pentru implementarea protocolului. La nivelul PC-ului, sistemul de operare este cel ce conine software-ul specific. Este ntlnit ca o opiune pentru Windows 95 i n Windows 98, NT i 2000. Un sistem USB conine 4 variante de conectori, 2 montate pe carcase i 2 ataate la capetele cablurilor. Fiecare este de 2 tipuri: A i B. Hubs au conectori de tip A. La captul cablului care se introduce n cablu trebuie s fie conectorul pereche, tot de tip A. La nivelul echipamentelor i a cablurilor care se leag la echipamente, se afl conectorii de tip B. n acest fel nu exist posibilitare de a grei. Exist 2 tipuri de cablu: care are la un capt un conector de tip A i la cellalt un conector de tip B, cablul A -> B i care are la ambele capete conectori de tip A, cablul A > A. Nu este necesar existena tuturor celor 4 variante de conectori. Este posibil ca un echipament s aib cablul prins de el, ca urmare conectorii de tip B nu vor exista. Conectorii USB au 4 pini deoarece cablul USB este alctuit din 4 fire, fig. 7.55. Dou fire ale cablului transport data, sub forma unui semnal diferenial. In acest fel se asigur o rezisten mare la perturbaii. Celelalte 2 fire sunt alimentarea: +5 V DC i masa. n acest fel se ofer alimentare pentru toate echipamentele legate la cablu (pn la 0.5 W). In plus, acestea pot avea propria surs de tensiune.

V+ Data+ DataGrid Fig.7.55. Cablu USB

V+ Data+ DataGrid

Acest cablu permite transfer cu 2 viteze maxime: 1,5 Mb/ s i 12 Mb/ s. Cablul pentru rata de transfer mai mare cere protecie electromegnetic mai mare. Standardul prevede o anume culoare pentru fiecare fir. Firul +Data este verde, firul -Data este alb, +5 V DC este rou, iar masa este negru. Host-ul USB se leag, prin conectori i cabluri, la echipamentele USB. Fiecare echipament USB conine informaia pentru autoidentificare i configurare. Fiecare 59

echipament USB are o adres care i este alocat atunci cnd echipamentul este ataat i sesizat de un host controller. Fiecare echipament USB comunic cu host-ul prin intermediul unor canale, pentru comenzi, stri i date. Fig. 7.56 prezint structura unui echipament USB. USB Bus Interface asigur interfaa fizic la magistral. Include serializarea i deserializarea informaiei precum i caracteristicile electrice necesare pentru conectarea la magistral. USB Logical Device conine nivelul de software, la nivelul echipamentelor care implementeaz protocolul USB iar Funcia constituie nivelul software care implementeaz particularitile funciei.

Funcie Ci pentru comunicaii logice USB Local Device Fig. 7.56. Structura unui echipament USB

USB Bus Interface

Cale pentru comunicaia fizic

Fizic, echipamentele USB sunt hubs sau funcii. Figura 7.57 prezint un hub.

Port 3 Port 4 Port 5

Port 2

Port 1 Upstream port Port 7

Fig. 7.57. Un hub USB

Port 6

Hubs-urile simplific conectarea, din punctul de vedere al utilizatorului. Un hub este un concentrator care prin Upstream port se leag spre host iar prin porturi se leag la alte hub-uri sau la funcii. Un hub sesizeaz o conectare sau deconectare la porturile sale i distribuie alimentare. Fiecare port poate fi validat sau invalidat individual i poate lucra cu rat de transfer mare sau mic. Un hub separ porturile cu rat de transfer mare de cele cu rat de transfer mic. Un hub are 2 pri: un Hub Controller i un Hub Repeater. Hub Repeater-ul este de fapt, un comutator controlat printr-un protocol, ntre UpStream port i celelalte porturi (denumite downstream ports). Dispune i de suport hardware pentru reset i suspendare / continuare a transferului. Hub Controller conine setul de registre care asigur comunicarea cu host-ul. Exist comenzi specifice pentru control i stare prin care host-ul poate configura un hub i poate monitoriza i controla porturile sale. Figura 60

7.58 prezint un exemplu de structur USB n care se evideniaz poziia i rolul hubului. Cellalt tip de echipament USB este alctuit din funcii. Aceasta este capabil s trimit sau s primeasc informaii de date i control pe magistral. O funcie poate fi implementat printr-un periferic cu un cablu care se conecteaz ntr-un port al unui hub sau printr-un ansamblu care constituie un "embedded" hub mpreun cu mai multe periferice. "Embedded" hub-ul se leag cu un cablu la un alt hub. Acest ansamblu se numete periferic compus.
PC Host / Hub Rdcin

Hub Hub

Scanner Funcie Tastatur Hub / Funcie

Monitor Hub / Funcie

Fig. 7.58. Structur tipic USB

Camer TV Funcie

Microfon Funcie

Mouse Funcie

Difuzoare Funcie

Fiecare funcie conine informaie de configurare care descrie posibilitile sale i cerinele de resurse. nainte ca o funcie s fie utilizat, este necesar configurarea sa de ctre host. Configurarea const n alocarea de lime de band i selectarea unor funcii specifice.

61