Lucrare de laborator nr.2
TRANSMISIE SINCRON_
Scopul lucr_rii
Cunoa_terea _i exersarea transmisiei sincrone utilizând circuitul SIO-Z80.
Considera_ii teoretice
Circuitul SIO-Z80 poate opera în trei moduri de sincronizare:
- cu un caracter d 343g617d e sincronizare
- cu doua caractere se sincronizare
- sau cu sincronizare extern_.
În toate modurile sincrone de func_ionare se folose_te ceasul 1X, SIO testeaz_ liniile de intrare pe RxC cresc_tor _i schimb_ ie_irile pe TxC sc_z_tor.
Formatul datelor în cele trei moduri este urm_torul:
ÎNCEPUT SFÂR_IT |
|||
SYNC |
ZON_ DE DATE |
CRC1 |
CRC2 |
7 |
8 |
0 |
Pentru un caracter de sincronizare
ÎNCEPUT SFÂR_IT |
||||
SYNC |
SYNC |
ZON_ DE DATE |
CRC1 |
CRC2 |
7 |
7 |
8 |
0 |
Pentru dou_ caractere de sincronizare
ÎNCEPUT SFÂR_IT |
||
ZON_ DE DATE |
CRC1 |
CRC2 |
8 |
0 |
Pentru sincronizare extern_
În modurile cu unul sau dou_ caractere de sincronizare caracterele primite sunt comparate cu con_inutul registrilor WR6 respectiv WR6 _i WR7 _i se activeaz_ pinul SYNC (care este ie_ire) dac_ sunt detectate caracterele de sincronizare. La modul de sincronizare extern_ un circuit exterior informeaz_ SIO prin pinul SYNC (care este în acest caz intrare) pentru c_ a avut loc sincronizarea. Circuitul exterior trebuie s_ _in_ intrara SYNC în stare activ_ 2 perioade de ceas, ca recep_ia s_ înceap_ pe RxC cresc_tor care urmeaz_ dup_ SYNC c_z_tor!
Dup_ RESET receptorul trece întotdeauna în starea HUNT de detectare caractere de sincronizare. Procesul de detec_ie începe dup_ validarea receptorului iar recep_ia începe dup_ introducerea sincroniz_rii. Dup_ sincronizare prin pozi_ionarea bitului D4 din WR3 faza HUNT se poate activa din nou.
La emisie se transmite totdeauna secven_a de sincronizare 1 sau 2 octe_i din WR6 respectiv WR6 _i WR7 în func_ie de modul de func_ionare ales.
La toate modurile de func_ionare recep_ia început_ continu_ pân_ când sose_te comanda de reset, de înhibare recep_ie (DCD la validare automat_) sau de repornire a sincroniz_rii.
Sunt prezentate secven_ele tipice de programare pentru transmisie sincron_ cu 2 caractere de sincronizare, semiduplex.
A. Emisie
1. Stabilire condi_ii ini_iale
WR0 reset canal SIO _i CRC
WR0 pointer 2
WR2 vector intrerupere
WR0 pointer 3
WR3 validare automat_ a transmisiei
WR0 pointer 4
WR4 setare mod bisync, paritate, tact x1
WR0 pointer 6
WR6 SYNC1
WR0 pointer 7
WR7 SYNC2
WR0 pointer 1
WR1 întreruperile modific_ starea, urm_rire CTS _i DCD
WR0 pointer 5
WR5 lungime caracter, alegere CRC, RTS
Se trimite primul caracter de sincronizare
Stare de a_teptare pentru întrerupere sau urm_rirea semnalului WAIT/READY
2. Rutina transmisie _i urm_rirea st_rii prin întreruperi
Includere sau nu a datelor în calculul CRC
Trimiterea unei date la SIO
Refacere condi_ii întrerupere în CPU
RETI
3. Rutina tratare erori
Citire registru RR0, ac_iuni conforme cu eroarea detectat_
RETI
4. Incheierea transmisiei
Invalidarea emisiei prin RTS
B. Recep_ie
1. Stabilire condi_ii ini_iale
WR0 reset canal SIO _i CRC
WR0 pointer 2
WR2 vector întrerupere
WR0 pointer 3
WR3 eliminare caractere SYNC,validare CRC _i recep_ie
WR0 pointer 4
WR4 setare mod bisync, paritate, tact x1
WR0 pointer 6
WR6 SYNC1
WR0 pointer 7
WR7 SYNC2
WR0 pointer 1
WR1 întreruperile modific_astarea, urm_rire CTS _i DCD
WR0 pointer 3
WR3 lungime caracter, alegere CRC, trecere în stare HUNT
Stare de a_teptare pentru întrerupere sau urm_rirea semnalului WAIT/READY
1. Recep_ia primului caracter
Citirea primului caracter în CPU
Programare DMA
Validare DMA
RETI
2. Recep_ia ultimului caracter
Citire registru RR1
Pozi_ionare flag ACKsau NAK func_ie de rezultat CRC
RETI
3. Terminare
Redefinirea întreruperi, invalidare recep_ie
OBSERVA_IE: modurile sincrone prezentate sunt orientate pe mesaje formate din caractere. Un mesaj trebuie transmis continuu, la emisie trebuie s_ fie tot timpul câte un caracter preg_tit pentru a fi emis. Din acest motiv se folose_te modul de lucru prin întreruperi sau DMA atât la recep_ie cât _i la emisie. La recep_ie caracterele de sincronizare sunt eliminate din mesaj în mod automat. Verificarea corectitudinii transmisiei se face prin polinomul CRC ales.
4. Mersul lucr_rii
Se vor scrie rutinele de emisie _i recep_ie mesaje.
|