10
Comunicação Serial
A família 8051 oferece uma porta de comunicação serial que permite efetuar comunicações entre outros dispositivos que possuem comunicação serial. A porta serial do microcontrolador possibilita transmitir e receber dados simultaneamente (full-duplex) e permite comunicação síncrona e assíncrona. A recepção é feita pelo pino P3.0 (RxD) e a transmissão pelo pino P3.1 (TxD).
Os registradores de transmissão/recepção da porta serial são ambos acessíveis através de um registrador de função especial denominado SBUF (Serial Buffer). Toda vez que o circuito recebe um Byte, ele o apresenta no registrador SBUF e todo Byte escrito no SBUF é imediatamente transmitido para a porta serial. Fisicamente existem dois registradores SBUF dentro do 8051, um para a transmissão e outro para a recepção, mas para o software só existe um SBUF. Dependendo da instrução de programa utilizada, leitura ou escrita, a CPU sabe qual SBUF deve ser usado naquele momento.
A recepção serial é bufferizada, o que permite a recepção de um segundo Byte antes que o Byte recebido anteriormente tenha sido lido no registrador de recepção (entretanto, se o primeiro Byte não tiver sido lido até a recepção do segundo Byte, um dos dois Bytes poderá ser perdido).
A porta serial pode operar de quatro modos:
MODO 0: Síncrono. Recebe o nome de registrador de deslocamento, pois os dados entram e saem pelo pino RxD, e o pino TxD neste modo tem a função de gerar o clock. São sempre transmitidos e recebidos 8 Bits de dados e o baud rate é fixo em 1/12 da freqüência do cristal.
MODO 1: Assíncrono. Neste modo é possível programar a taxa de transmissão (baud rate). Dez bits são transmitidos (TxD) e recebidos (RxD): um bit de início (start bit, em nível lógico zero), 8 bits de dados (do LSB para o MSB, nesta ordem) e um bit de parada (stop bit, nível lógico 1).
MODO 2: Assíncrono. A porta serial transmite nesse modo 11 bits para cada Byte transmitido com taxa de transmissão fixa em 1/32 ou 1/64 da freqüência do cristal oscilador: um bit de início (start bit, nível lógico zero), 8 bits de dados ( do LSB para o MSB, nessa ordem), um nono bit programável e um bit de parada (stop bit, nível lógico 1). Esse nono bit pode ser usado para transmitir ou receber o bit de paridade. Na transmissão esse nono bit é copiado do TB8 do registrador especial SCON. Na recepção o nono bit é recebido e armazenado em RB8 do registrador SCON.
MODO 3: Assíncrono. De fato, o modo 3 é semelhante ao modo 2, exceto pela taxa de transmissão (baud rate) que é programável.
Composição do dado serial
Para receber um Byte o sinal é iniciado com o Start bit e em seguida são recebidos os 8 bits (1 Byte), armazenados em SBUF e depois a transmissão do Byte é finalizada com um Stop bit.
Ao identificar o Stop bit, o 8051 seta o registrador RI (RI=1) para gerar uma interrupção serial, informando ao microcontrolador que o registrador SBUF já recebeu o Byte serial. A seguir temos a ilustração da recepção de l Byte via porta serial.
Figura 10.1 – Forma de onda em RxD.
Compartilhe com seus amigos: |