Transmiterea paralelă a datelor - învățați cum să abur!

Transferul paralel de date între controler și UV este, prin organizarea sa, cea mai ușoară cale de schimb. Pentru organizarea transferului paralel de date, în plus față de magistrala de date, numărul de linii în care este egal cu numărul de biți de date transmiși simultan, se utilizează numărul minim de semnale de control.







Într-un controler simplu, care asigură transferul de date de la un dispozitiv extern la un dispozitiv extern (Figura 3.5), numai două semnale de comandă sunt utilizate în magistrala de comunicație cu UV: "Date de ieșire gata" și "Date primite".

Fig. 3.5. Un controler de ieșire paralel simplu.

Prin preluarea unui octet de date, unitatea de control șterge registrul de stare a controlerului cu semnalul de comandă "Datele primite". În această formă semnalul de interfață sistem de control „Slave Ready“, semn și sclav disponibilitatea pentru schimbul, transmis procesorului de una dintre liniile de date de interfață bus de sistem printr-o operațiune de intrare standard, atunci când punerea în aplicare a programului asincron.

Luați în considerare, de exemplu, modul în care controlerul unității montate pe vehicul transmite o transmisie paralelă de date către UV, sub controlul programului de schimb asincron. Algoritmul de schimb asincron în acest caz este simplu.

1. Procesorul microcalculatorului verifică disponibilitatea UV a datelor.

2. Dacă unitatea montată pe vehicul este pregătită să primească date (în acest caz este logică 0 în cifra zero a registrului A2), datele sunt transferate de la magistrala de date a interfeței de sistem către registrul de date A1 al controlerului și apoi la UV. În caz contrar, repetăm ​​pasul 1.

Exemplul 2.1. Un fragment al programului pentru transferul octetului de date în modul asincron utilizând controlerul paralel al UV (figura 3.5). Pentru a scrie programul pentru transferul asincron, utilizați comenzile procesorului 8086.

Conținutul registrului AX este transferat la portul A1

Comanda din a treia linie duce la următoarele acțiuni. Procesorul verifică valoarea bitului corespunzător al datelor recepționate. Zero în acest bit indică o lipsă de pregătire pentru a primi UV de date și, prin urmare, necesitatea de a reveni la verificarea conținutului A2, t. E. Procesorul efectuează primele trei echipe, se așteaptă ca disponibilitatea de sclav pentru a primi date. O unitate din această categorie confirmă disponibilitatea UV și, prin urmare, posibilitatea de a transmite un octet de date.







O schemă bloc a unui controler simplu al UV care asigură recepția de date octet-byte de la UV este prezentată în fig. 3.6. În acest controler, atunci când interacționează cu un dispozitiv extern, se folosesc și două semnale de control: "Datele de la UV sunt gata" și "Datele primite".

Fig. 3.6. Controler de intrare paralel simplu

Dispozitivul extern scrie următoarea octet de date în registrul de date al controlerului A1, iar semnalul de comandă "Date de la UI pregătit" reglează registrul de stare și control A2 la unul.

În acest caz: se formează semnalul de control al interfeței de sistem "Pregătirea UI"; indicarea disponibilității schimbului de schimb, transferată procesorului prin una dintre liniile busului de date al interfeței sistemului prin operația de intrare la implementarea programului de schimb asincron.

Astfel, controlorul notifică procesorului că datele sunt gata în registrul A1. Procesorul, care execută programul de schimb asincron, citește un octet de date din registrul de date al controlerului și șterge registrul de stare și control A2. În acest caz, semnalul de control "Data recepție" este generat în magistrala de comunicație cu dispozitivul extern.

Logica de control a controlerului și transceiver-ele de magistrală de sistem realizează aceleași funcții ca la controlerul de ieșire (vezi Figura 3.5),

Luați în considerare funcționarea unei interfețe de intrare paralelă atunci când implementați un program de schimb asincron. Algoritmul de intrare asincron este la fel de simplu ca și ieșirea asincronă.

1. Procesorul verifică disponibilitatea datelor în registrul de date al controlerului A1.

2. Dacă datele sunt gata (logică 1 în registrul A2), acestea sunt transferate din registrul de date A1 în magistrala de date a interfeței de sistem și apoi în registrul procesorului sau în memoria microcalculatorului. În caz contrar, repetăm ​​pasul 1.

Exemplul 2.2. Fragmentul programului pentru recepționarea octelor de date în modul asincron folosind o interfață paralelă (controler VU, Figura 3.6):

A treia linie verifică conținutul registrului A2, adică un semn al prezenței datelor în registrul de date A1. Comanda este executată exact ca în exemplul 2.1. O unitate cu cifră zero (conținutul registrului A2) confirmă că datele din UV sunt scrise în registrul de date al controlorului și trebuie trimise la magistrala de date. Un zero într-o cifră semnată indică indisponibilitatea datelor de la UV și, prin urmare, necesitatea revenirii la verificarea disponibilității.

Așa cum se poate vedea din exemplele considerate, pentru a primi sau a transmite un octet de date, procesorul trebuie să execute doar câteva comenzi, timpul de execuție a acestora determinând rata maximă posibilă de transmisie paralelă. Astfel, în cazul transmisiei paralele, este prevăzută o rată de transmisie destul de ridicată, care este limitată numai de viteza UI.

Articole corelate







Articole similare

Trimiteți-le prietenilor: