Echipamente si protocoale de comunicatie
1. Obiectivul lucrarii
Lucrarea isi propune, pe de o parte,
familiarizarea cu setul de comenzi AT folosite de catre modemurile compatibile
Hayes, iar, pe de alta parte, studiul celor mai utilizate protocoale de comunicatie
Internet.
2. Introducere teoretica
2.1. Modemuri
In trecut, in cadrul modemurilor existau
echipamente care ofereau comunicatii seriale transparente utilizatorilor, asa
numitele modemuri dumb, acestea fiind
ideale pentru linii dedicate. In prezent, aceste modemuri au intrat in
categoria modemurilor inteligente (smart),
prin faptul ca ofera doua moduri de operare:
·
modul de comanda: accepta secvente de control de la calculator;
·
modul de transmisie (on-line):
se comporta transparent.
Initial, toate modemurile foloseau tehnologii
analogice, dar, in ultima perioada, chiar si modemurile clasice pot utiliza
tehnologii digitale pentru obtinerea unor rate de transfer imbunatatite (este
vorba de tehnologiile V.90 si V.92).
In afara de modemurile pentru linii telefonice
clasice, notiunea de modem a
trecut granita telefoniei, existand atat modemuri pentru cablu coaxial (cable modem), modemuri in tehnologie
digitala care folosesc tot linii telefonice – tehnologia xDSL (modem ADSL,
SDSL), cat si modemuri radio.
2.2. Modemuri inteligente
Modemurile inteligente sau, cum mai sunt denumite,
modemurile compatibile Hayes – dupa firma care a introdus acest tip de modem –
permit atat comunicatii de date in mod transparent, cat si receptia si raspunsul
la comenzi date de utilizator.
Un modem inteligent accepta comenzi prin aceeasi interfata prin care se realizeaza si schimbul de date. Unul dintre primele modemuri introduse pe piata a fost Smartmodem 1200, produs de Hayes Microcalculator Products Inc. Comenzile sunt in format ASCII, iar modemul poate raspunde prin aceeasi interfata cu coduri de stare sau cu mesaje.
Exemplu. Comanda ATDP0219494 cere modemului sa deschida
linia, sa astepte tonul (modemul, in modul de dialog de tip dial-up, poate fi programat sa formeze
numarul corespondentului imediat dupa deschiderea liniei, fara a verifica daca
are ton) si, in cazul in care are ton, va forma numarul 0219494 in puls. In
functie de ceea ce se intampla la celalalt capat al liniei, modemul va intoarce
diferite informatii, cum sunt:
·
no dial tone (daca nu exista ton);
·
busy (daca numarul apelat este ocupat);
·
no carrier (daca nu s-a reusit conectarea cu modemul
partener);
·
connect 9600 (daca s-a reusit conectarea la viteza de 9600
bps).
2.3. Descrierea modemului ZyXEL U90-E
Fig. 1. Panoul
frontal al modemului ZyXEL U90-E.
Modemul care poate fi folosit in cadrul aplicatiei de laborator este un modem inteligent, dintre facilitatile sale putand enumera:
·
detectarea automata a tipului de apel voce/date;
·
mod de transmisie sincron si asincron (maxim 33,6 Kbps in mod sincron);
·
reantrenare rapida cu posibilitate de fall-forward
si fall-back, permitand modemului sa
reduca viteza cand comunicatia se face cu un modem mai putin rapid sau cand
apar probleme datorate liniei telefonice;
·
tonuri de apel diferite in functie de tipul apelului (necesita software
special);
·
posibilitate de configurare de la distanta;
·
memoria flash EPROM permite
actualizarea simpla prin noi versiuni de firmware,
oferind acces la noi facilitati.
Tabelul
1 prezinta semnificatia LED-urilor de pe panoul frontal al modemului.
LED |
Descriere |
HS |
High
Speed indica faptul ca modemul este in modul V.34 sau
V.90; cand este in mod handshake,
se aprinde intermitent. |
AA |
Auto-Answer
este aprins cand modemul preia automat apelurile
primite si se aprinde intermitent cand este apelat. In modul de corectie a
erorilor, se aprinde intermitent cand retransmite date. |
CD |
Carrier
Detect se aprinde atunci cand este detectata o purtatoare
valida pe linie. |
OH |
Off-Hook se aprinde cand modemul este in modul date sau linia este deschisa, si
este stins atunci cand modemul este in mod comunicare sau linia este inchisa. |
DTR |
Data
Terminal Ready se aprinde atunci cand DTE-ul sau calculatorul indica faptul ca este pregatit pentru a incepe
comunicarea si este stins atunci cand DTE-ul
nu poate trimite date. |
DSR |
Data
Set Ready se aprinde cand modemul este pregatit pentru
comunicatie si este stins cand modemul nu este pregatit. |
CTS |
Clear
To Send este aprins atunci cand modemul poate accepta
date pentru transmisie. Indica starea semnalului RS-232 CTS. |
RTS |
Request
To Send indica starea semnalului RS-232 de la DTE. RTS este folosit pentru controlul fluxului de date hardware in
modul asincron de transmisie a datelor. |
TXD |
Transmit
– transmisie. |
RXD |
Receive – receptie. |
SQ |
Signal
Quality – calitatea
semnalului. |
TST |
Test – testare. |
Apasarea butonului A/O va seta modemul in modul initiator, iar eliberarea acestuia va
trece modemul in mod raspuns. Butonul D/V
comuta intre modul date si modul voce, fiind util cand se conecteaza un telefon
la modem.
2.4. Comenzile AT
Setul de comenzi consta dintr-un numar de comenzi
de baza si din extensii ale acestora. Comenzile sunt initiate prin transmiterea
unui cod de atentionare, urmat de o comanda sau un set de comenzi si parametrii
acestora. Codul de atentionare este reprezentat de secventa AT (prescurtare de
la ATtention).
Dupa ce modemul se conecteaza cu succes la un alt
modem, acesta va trece din modul de comanda in modul de transmisie de date. In
acest mod, toate informatiile primite vor fi considerate ca fiind date si sunt
trimise catre celalalt modem. Pentru a putea, totusi, trimite comenzi, se poate
specifica o secventa de caractere escape
dupa care, atunci cand va fi intalnita de catre modem, acesta va interpreta
caracterele care ii urmeaza la fel ca in modul de comanda. Secventa escape implicita este +++. Aceasta poate
fi modificata prin intermediul unui registru al modemului.
Formatul de baza al unei comenzi este:
AT comanda [parametrii] [comanda] [parametri] […] <CR>
Setul comenzilor AT de baza este prezentat in
tabelul 2.
Tabelul 2
Setul
de baza al comenzilor AT pentru modemuri
Comanda
|
Descriere
|
A |
raspunde la apel
|
A/ |
repeta ultima comanda |
B |
selecteaza metoda de
modulatie a modemului |
C |
porneste sau opreste
putatoarea modemului |
D |
formeaza un numar de
telefon |
E |
permite sau inhiba
ecoul caracterelor trimise catre modem |
F |
comuta intre modurile full duplex si half duplex |
H |
inchide sau deschide
linia |
I |
solicita codul de
identificare sau suma de control |
L |
selecteaza volumul
difuzorului |
M |
porneste sau opreste
difuzorul |
N |
negociaza optiunile de
handshake |
O |
pune modemul on line |
P |
apel de tip puls |
Q |
solicita modemului sa
permita transmisia unui cod de stare |
R |
comuta modemul in
modul "numai initiere" |
S |
scrie sau citeste continutul
unor registre ale modemului |
T |
apel de tip ton |
V |
trimite codurile de
stare ca numere sau ca mesaje |
W |
selecteaza mesajul de
negociere a legaturii |
X |
selecteaza setul de
baza sau setul extins de coduri de stare |
Z |
reinitializeaza
modemul |
Exemple: In este comanda pentru afisarea
diferitelor informatii despre modem si starea sa, I0 afiseaza un cod numeric al
produsului, I1 afiseaza informatii despre produs si suma de control a memoriei
ROM interne etc.
Anumiti parametri ai modemurilor pot fi setati
folosind registrele. Modemurile moderne pot oferi un numar foarte mare de
registre (peste 100), dar cele mai importante sunt primele 13 registre, oferite
de toate modemurile compatibile Hayes.
In tabelul 3 sunt prezentate cele 13 registre,
valorile implicite si domeniul in care acestea pot lua valori
Registru |
Functie |
Valoare implicita |
Domeniu |
S0 |
numar apeluri auto-raspuns |
|
0–255 |
S1 |
numar apeluri |
0 |
0–255 |
S2 |
caracter escape |
ASCII 43 |
ASCII 0–127 |
S3 |
caracter Carriage
Return |
ASCII 13 |
ASCII 0–127 |
S4 |
caracter Line
Feed |
ASCII 10 |
ASCII 0–127 |
S5 |
caracter Backspace |
ASCII 8 |
ASCII 0–127 |
S6 |
timp asteptare ton apel (s) |
2 |
2–255 |
S7 |
timp asteptare purtatoare (s) |
30 |
1–255 |
S8 |
lungime pauza de virgula (s) |
2 |
0–255 |
S9 |
timp de raspuns fata de detectia purtatoarei (×0,1 s) |
6 |
1–255 |
S10 |
intarzierea dintre pierderea purtatoarei si inchiderea
liniei (×0,1 s) |
7 |
1–255 |
S11 |
durata tonurilor si a pauzelor (ms) |
70 |
50–255 |
S12 |
timp de garda al secventelor Escape (×20
ms) |
50 |
0–255 |
Comanda pentru citirea valorii registrului n are formatul ATSn?.
Comanda pentru setarea registrului n la valoarea x are formatul ATSn=x.
Exemplu. Daca se doreste
citirea valorii registrului 6, se va trimite modemului comanda: ATS6? Modemul
va raspunde printr-o valoare cuprinsa intre 2 si 255, care indica timpul de asteptare
a tonului de catre modem, exprimat in secunde. Daca se doreste sa se modifice
durata de asteptare la 4 secunde, atunci va trebui trimisa catre modem urmatoarea
comanda: ATS6=4
2.6. Comenzi AT extinse
La comenzile deja prezentate, se adauga si
comenzile extinse. Comenzile extinse sunt precedate de simbolul &. Exista, in
functie de producatorul modemului, si alte seturi de comenzi extinse care sunt
delimitate de alte caractere, cum sunt caracterele * sau \.
Una dintre comenzile extinse comune este comanda
&T. Aceasta comanda cere modemului sa efectueze anumite teste pentru
diagnosticare.
In tabelul 4 se prezinta pe scurt functiile
asociate seriei de comenzi AT extinse &T.
Tabelul 4
Comenzile
extinse posibile pentru &T
Comanda
|
Functie
|
&T0 |
termina testul curent |
&T1 |
initiaza bucla locala analogica |
&T2 |
initiaza bucla locala digitala |
&T6 |
initiaza bucla digitala la distanta |
&T7 |
initiaza bucla locala digitala cu auto-test |
&T8 |
initiaza bucla locala analogica cu auto-test |
In afara comenzilor &T, exista numeroase alte
comenzi extinse, dar deoarece aceste comenzi au fost adaugate setului initial
de comenzi de baza AT nu au intotdeauna aceleasi specificatii la diferiti
producatori. In plus, unele dintre comenzi pot lipsi la anumite modele, facilitatile
comenzilor extinse fiind date strict de producator.
2.7. Auto-testarea modemurilor
Majoritatea modemurilor isi pot executa un auto-test pentru verificarea functionarii corecte. Modul in care se realizeaza auto-testarea este urmatorul. Dupa initializarea auto-testului, emitatorul modemului este legat la receptor, taindu-se orice legatura anterioara la o linie de comunicatie. Datele emise sunt demodulate de catre receptor si trimise catre un comparator de sabloane, care include o memorie ROM continand aceeasi secventa de date care a fost emisa de generatorul de sabloane. Comparatorul de sabloane va compara datele si va intoarce OK sau O daca datele sunt corecte, respectiv ERROR (ER) daca nu s-a receptionat acelasi lucru. Schema bloc a unui modem in timpul auto-testului este prezentata in figura 2.
Fig. 2. Schema
bloc a unui modem compatibil Hayes cu auto-test.
3. Descrierea aplicatiei
3.1. Aplicatia Server
Aceasta parte a lucrarii se refera la studiul
comenzilor AT pentru modemuri compatibile Hayes. Pentru ca programul CSClient sa functioneze corect, in
cadrul retelei trebuie sa existe cel putin o statie care sa ruleze programul CSServer.
Programul trebuie pornit inainte ca statiile sa se
conecteze la calculatoarele care dispun de modem. Programul accepta conexiuni
cu statiile din retea si asigura atat interfata dintre acestea si modem, cat si
simularea unui modem in cazul in care acesta nu este disponibil. Programul
poate accepta ca parametru numele portului serial la care este legat modemul,
pentru cazul in care se foloseste un modem. Statiile care dispun de modem vor
avea posibilitatea de a alege intre pornirea cu sau fara utilizarea modemului,
prin selectarea shortcut-ului
corespunzator de pe desktop:
·
CSServer – nu se doreste folosirea modemului;
·
CSServer COM1 – modemul se afla conectat la primul port
serial,
·
CSServer COM2 – modemul se afla conectat la al
doilea port serial.
Deoarece partea de server este implementata pentru
a fi transparenta utilizatorului, programul ruleaza in mod consola si ofera in
special informatii legate de statiile care se conecteaza si se deconecteaza,
dupa cum se observa in figura 3.
Fig. 3. Exemplu de rulare al aplicatiei CSServer.
3.2. Aplicatia Client
Se lanseaza programul CSClient, care asigura comunicatia intre statia de lucru si
calculatorul care contine programul CSServer,
unde poate exista un modem la care se trimit comenzi. In cazul in care modemul
nu este disponibil sau nu se doreste folosirea sa, raspunsurile modemului vor
fi simulate. Un exemplu de utilizare a programului CSClient este
reprezentat in figura 4.
Fig. 4. Exemplu
de rulare al aplicatiei CSClient.
Meniul ofera acces la urmatoarele functii:
·
Meniu
o Despre: ofera
informatii suplimentare despre CSClient;
o Iesire: permite terminarea lucrului cu programul
CSClient;
·
Actiuni: este functional doar dupa stabilirea legaturii cu modulul CSServer. Pentru executarea comenzilor
trebuie aleasa destinatia dorita, prin intermediul butoanelor Simulator sau Modem. Atentie: unele comenzi au sens numai in
cazul prezentei a doua modemuri in cadrul retelei.
o Initializare
modem: modifica textul campului
Comanda cu un sir corespunzator
comenzilor de initializare standard (ATZ S11=50);
o Descriere
modem: modifica textul campului
Comanda pentru a obtine informatii de
la modem cu privire la producator (ATI1);
o Resetare
modem: modifica textul campului
Comanda corespunzator comenzii de
resetare modem (ATZ);
o Initiere
apel: modifica textul campului
Comanda pentru a face posibila initierea
unei conexiuni cu un alt modem (ATD);
o Preluare
apel: modifica textul campului
Comanda pentru a face posibil raspunsul
la un apel initiat de un alt modem (ATA);
·
Ajutor – Comenzi AT: prezinta o lista in care se regasesc atat
comenzile AT de baza, registrele S, cat si comenzile AT extinse, fiecare cu o
scurta descriere.
Conectarea se poate realiza fie prin introducerea
numelui asignat statiei (de exemplu: Nt_1, Nt_2 s.a.m.d.), fie prin
introducerea adresei IP (de
exemplu: 141.85.107.xx) a statiei, in campul Adresa server, pe care ruleaza programul CSServer, dupa care se apasa butonul Conectare. Daca s-a realizat o conexiune, butonul Conectare isi modifica textul in Deconectare.
Dupa conectarea la o statie care ruleaza programul
CSServer si confirmarea conectarii,
se poate incepe trimiterea de comenzi. In cazul existentei unui modem conectat
la statie, se pot trimite comenzi atat modemului (fizic) prin intermediul
butonului Modem, cat si simulatorului
prin intermediul butonului Simulator.
Comenzile vor fi introduse in campul marcat Comenzi.
In cazul trimiterii de comenzi catre simulator, acesta analizeaza comenzile
corecte si prezinta o scurta descriere a acestora pentru o mai usoara intelegere.
Daca se doreste resetarea zonei de prezentare a comenzilor si raspunsurilor, se
va apasa butonul marcat X.
In partea de jos, se afla o zona unde sunt
prezentate atat comenzile introduse, cat si raspunsurile obtinute de la modem
sau de la simulator.
4. Desfasurarea lucrarii
1. Pentru familiarizarea cu comenzile AT, initial
toate comenzile sunt recomandate a fi trimise doar Simulatorului.
Se va incepe cu comenzi simple AT din cadrul comenzilor de baza, se va
continua cu controlul si afisarea parametrilor prin intermediul Registrelor S, iar in final se vor testa
comenzile AT extinse.
·
Comenzi AT
baza:
o identificarea parametrilor modemului;
o controlul difuzorului si al volumului
difuzorului;
o prezentarea codurilor raportate la
conectare.
·
Registre S:
o modificarea caracterelor de control escape, backspace, CR, LF;
o modificarea timpului de asteptare a
apelului;
o numarul de apeluri pana la auto-raspuns.
·
Comenzi AT
extinse:
o modul de lucru: pe linie inchiriata sau pe
linie telefonica;
o testarea modemului;
o tipurile de legaturi efectuate.
2. Dupa
familiarizarea cu comenzile AT, o parte din comenzi se vor trimite modemului
pentru a observa raspunsul acestuia. Comenzile alese se vor orienta catre
modificarea registrelor S si autotestare.
3. In final, se poate
realiza conectarea intre modemuri, prin intermediul “liniei telefonice”.
Pentru aceasta, trebuie sa existe doua statii cu modemuri, avand programul CSServer
deja lansat. Inainte de realizarea conexiunii, mai trebuie initializat modul de
lucru de tip linie inchiriata (AT&L1), deoarece modemurile sunt conectate
direct prin intermediul unui cablu telefonic si nu prin reteaua telefonica, in
acest caz nefiind necesara identificarea lor (din cauza conexiunii
punct-la-punct). De la oricare statie se poate trimite unuia dintre modemuri
comanda de preluare automata apel (ATA),
iar oricare alta statie poate trimite celuilalt modem comanda de formare a numarului
(ATD). Observatie. Este posibil
ca ambele actiuni sa fie efectuate de la aceeasi statie, cu conditia de a lansa
doua instante ale programului CSClient.
3. In cea de-a doua
parte a lucrarii, se parcurge prezentarea interactiva de tip html a echipamentelor si
protocoalelor de comunicatie Internet,
realizata sub forma unei pagini web
off-line. Sunt prezentate echipamente folosite in comunicatii: repetoare, hub-uri, switch-uri, punti, router-e,
placi de retea, cat si detalii asupra comunicatiilor internet: modelul OSI si modelului TCP/IP.
5. Intrebari
1. Precizati alte tipuri de modemuri decat cele strict analogice.
2. Cum poate dobandi modemul noi facilitati, in
afara de cele implicite, de exemplu V.92?
3. Care registru memoreaza caracterul ASCII backspace?
4. Prezentati (la alegere) o comanda extinsa si
semnificatia ei.
5. Din care categorie face parte comanda pentru
auto-testare, AT&T0?
6. Deoarece comanda D este folosita pentru efectuare de apel, de ce nu se specifica
un numar in cadrul conexiunii modem-modem?
7. Comanda ATZ&L1 este corecta? Daca da, din
care categorie face parte?
8. Comanda ATC este corecta? Daca da, ce realizeaza?
9. Care comenzi sunt trimise pentru initializarea
modemului (din aplicatia CSClient) si care sunt semnificatiile acestora?
10. Care mod de lucru trebuie sa fie ales inainte
de efectuarea conectari celor doua modemuri din retea?
11. Care sunt conditiile care trebuie indeplinite inainte
de conectarea celor doua modemuri din retea?
12. Timpul de asteptare al tonului de apel se
poate modifica? Printr-o comanda AT de baza sau prin una extinsa?