You are on page 1of 5

Interfee de comunicaie la microcontroller-ul ATmega16

USART(Universal Synchronous and Asynchronous Receiver-Transmitter) Modulul USART este un dispozitiv flexibil de comunicaie serial denumit n acest caz i RS-232, cu utilizare la scar larg n domeniul microcontroller-elor, majoritatea dintre acestea din urm avnd incluse module de acest tip. Principalele caracteristici ale acestui modul de comunicaie sunt: Operaii Full-Duplex Operaii sincrone sau asincrone Operaii sincrone Master i Slave Mod de comunicaie multi-procesor Rezoluie nalt a generatorului frecvenei de transmisie Detecie depiri/erori Filtrarea zgomotelor prin detecia bitului de start fals i filtru digital trece-jos 3 ntreruperi separate: TX Complete, TX Data Register Empty, RX Complete Schema bloc a modulului USART( aa cum apare n foaia de catalog a microcontroller-ului Atmega16) este urmtoarea:

Dup cum se observ n figur, modulul USART este format din: Generator de clock Transmitter Receiver iar regitrii de control sunt aceiai pentru toate celelalte module. Octeii sunt transmii bit cu bit ntr-o manier secvenial. La destinaie, cellalt modul USART reasambleaz biii n octetul complet, remarcndu-se aadar existena unui registru de deplasare( Shift Register), aceasta fiind metoda cea mai rspndit de conversie ntre formele seriale i cele paralele. Transmisia serial printr-un singur fir este mai ieftin dect transmisia prin mai multe fire. Cuvntul transmis

Fiecare cuvnt conine: un bit de start n logic negat un numr configurabil de bii de date(5, 7 sau 8) un bit de paritate-opional unul sau mai muli bii de stop n logic direct pentru diferenierea cuvintelor Att transmitter-ul ct i receiver-ul trebuiesc setate la aceeai frecven, lungime a cuvntului transmis, paritate i bii de stop. n ceea ce privete generarea semnalului de clock, sunt suportate 4 moduri de operare: modul Normal Asynchronous modul Double Speed Asynchronous modul Master Asynchronous modul Slave Asynchronous n modul sincron, sursa semnalului de clock poate fi intern(Master) sau extern(Slave).

Bitul UMSEL din registrul UCSRC(USART Control and Status Register C) stabilete dac operaiile se vor executa sincron sau asincron.

SPI(Serial Peripheral Interface) Modulul SPI se bazeaz pe un standard de transmisie serial sincron de date introdus de Motorola. Acesta, n cazul Atmega16, permite un transfer sincron de mare vitez ntre microcontroller i dispozitive periferice sau ntre mai multe maini AVR. Principalele caracteristici ale acestui modul de comunicaie sunt: Operaii Full-Duplex Transfer sincron folosind 3 fire Operaii sincrone Master i Slave Transfer de date LSB First sau MSB First 7 frecvene programabile Schema bloc a interfeei SPI( aa cum apare n foaia de catalog a microcontroller-ului Atmega16) este urmtoarea:

Modulul SPI conine 4 semnale logice: SCLK- Serial Clock (de la Master) MOSI- Master Output Slave Input (de la Master) MISO- Master Input Slave Output (de la Slave) SS- Slave Select (activ pe low, de la Master) -asemntor cu Chip Select

Legtura dintre Master i Slave const n dou registre de deplasare(Shift Register) i un generator de clock(Master). Master-ul iniiaz ciclul de comunicaie cnd pune pe low semnalul Slave Select al Slave-ului dorit. Cele dou module introduc datele ce urmeaz a fi vehiculate n registrele de deplasare, iar Master-ul genereaz semnalele de clock necesare pe SCK pentru a se interschimba datele. Datele sunt shiftate de la Master ctre Slave pe linia MOSI( Master Out Slave In) i de la Slave ctre Master pe linia MISO( Master In Slave Out). Dup fiecare pachet de date, Master-ul va sincroniza Slave-ul punnd Slave Select-ul pe high. Sistemul are buffer simplu n direcia de transmisie i buffer dublu n direcia de recepionare. Astfel, octeii care trebuiesc transmii nu pot fi scrii n registrul de date nainte ca ntregul ciclu de shiftare s fie completat. Totui, cnd se recepioneaz date, un caracter recepionat trebuie citit din registrul de date nainte ca urmtorul caracter s fie complet shiftat. Altfel, primul octet se va pierde. n modul Slave, logica de control va eantiona semnalul de pe pin-ul SCK. Pentru o eantionare corect a semnalului de clock, perioadele high i low trebuie s fie mai mari dect 2 cicli de clock ai procesorului.

You might also like