In mod uzual, pentru implementarea unei interfete seriale se foloseste un circuit (controlor) specializat care indeplineste functiile de baza ale interfetei : serializarea datelor de iesire, generarea informatiilor de control (biti de start, stop, paritate la transmisia pe caracter sau cimuri de control la transmisia pe cadre), deserializarea datelor receptionate, generarea semnalelor de control conform standardului utilizat, pastrarea temporara a datelor receptionate si acelor ce urmeaza a fi transmise, si altele. Procesorul are acces la canalul serial de comunicatie prin intermediul registrelor de date, control si stare ale controlorului. In tabelul de mai jos se prezinta registrele interfetei seriale a unui calculator compatibil IBM PC-AT. In mod uzual un calculator compatibil IBM PC contine doua canale seriale plasate incepind de la adresele 2F8 si 3F8. In faza de initializare a sistemului se testeaza prezenta interfetelor seriale, si in caz afirmativ adresele canalelor detectate se inscriu in memoria RAM, incepind de la adresa 40: 00. Sistemul de operare va asigna nume logice COM1 si COM2 adreselor de canale seriale in ordinea in care ele sunt prezente la adresa 40: 00. Un transfer serial se poate realiza prin controlul direct al programului sau prin intreruperi. In continuare sunt descrise in pseudocod algoritmii de transmisie si respectiv de receptie seriala pentru primul mod de transfer (transfer prin program). { Citire reg stare; contor=0; while (stare reg transmisie ! =gol SAU stare linie==blocat) SI contor < val max) {Citire reg stare; contor++ ; } if (contor>=val max) {eroare; return ; } else Scriere reg transmisie (Buf[i]) ;} Proc Receptie seriala (Buf, Nr oct) { Initializare canal; For (i=0 ; I=val max) {eroare; return ; } else Buf[i]= Citire reg date; } } In algoritmii prezentati s-au folosit urmatoarele apeluri de rutine : Initializare canal efecueaza programarea controlorului serial la parametri ceruti de transmisie ; se programeaza : frecventa de transmisie, numar de biti de date pe un caracter, numarul de biti de stop (1 sau 2), tip paritate (fara paritate, paritate indiferenta, paritate para sau inpara), etc. Citire reg stare realizeaza citirea registrului de stare linie si stare modem si pozitioneaza corespunzator variabilele de stare (stare reg receptie, stare reg transmisie, stare linie) Citire reg date citeste registrul de receptie al controlorului Scriere reg date scrie caracter nou in registrul de transmisie - eroare semnalizarea unei erori de transfer Variabila contor se utilizeaza cu scopul de a limita timpul de asteptare la transmisia sau receptia unui caracter, datorita neindepliniri conditiilor de transmisie. Algoritmii prezentati nu contin ...
Ne pare rau, pe moment serviciile de acces la documente sunt suspendate.