UART-RS232-18F4520

20
Comunica~Io Serial UART via RS-232 UART(Universa1 Asynchronous Receiver Transmiter) e um protocolo de comunica$%o serial assincrono desenvolvido na decada de 1960 para permitir a comunica@o ponto a ponto entre computadores mainframes e computadores terminais remotos. A UART tornou-se tAo popular que e amplamente utilizada ate hoje em muitas aplicaqbes. Uma tjnica linha de transrnissrio e suficiente para imple- mentar uma comunica~30 serial assincrona, como mostra a Figura 22.1. A transmiss30 dos dados e feita bit a bit e n3o necessita de um sinal de clock para sincronizar o envio dos bits, como acontece com os protocolos 12CTM e SPITM. Para que haja a sincroniza@o entre o transmissor e o receptor cada bit deve se manter na linha de transmissilo durante um intervalo de tempo denominado periodo do bit, tambem conhecido como tempo de saida do bit ou time bit. 0 periodo do bit define a taxa de transfergncia utilizada na transmissio, dada em bits por segundo (bps). Receptor 10101101 Figura 22.1: Comunica@o serial assincrona. Quando nrio existe nenhuma transmissrio em andamento, a linha de transrnissrio se encontra em um estado chamado de meio ocioso, representado pelo nivel16gico '1' presente na linha. Uma transmiss30 tem inicio com o start bit que 6 uma transi@o do nivel IQico '1' para o nivel logico '0' estando o meio ocioso. 0 start bite a sinaliza$%o para o receptor de que uma transmissrio esta sendo iniciada. Apos o envio do start bit, que tem a d u r a ~ i o de um periodo do bit, srio enviados os bits de dados que podem ser 4, 5, 6, 7 ou 8 bits, os quais silo colocados na linha de transmiss30 come~ando pelo bit menos significativo (LSb). Cada bit se mantem na linha de transmissilo por um intervalo de tempo igual ao do start bit, ou seja, durante o periodo do bit. Ap6s a transmiss30 dos bits de dados o transmissor coloca na linha de transmissrio o stop bite finaliza a transmissio. 0 stop bit pode ser de uma, uma e meia ou duas vezes o periodo do bit. A Figura 22.2 apresenta os niveis logicos que estarilo presentes na linha de transmissrio para a transmissrio de 8 bits de dados e 1 stop bit. Meio doso 4 1 Meio oc i m Is2:1110111 Bit0 Bit I Bit 2 Bit3 Bit 4 Bit 5 Bit 6 Bit 7 Figura 22.2: Transmisslo de 8 bits de dados e um stop bit. 1 380 1 Microcontroladores PIC18 corn Linguagem C

description

ideia proposta pelo professor zamith frança neto.

Transcript of UART-RS232-18F4520

  • Comunica~Io Serial UART via RS-232

    UART(Universa1 Asynchronous Receiver Transmiter) e um protocolo de comunica$%o serial assincrono desenvolvido na decada de 1960 para permitir a comunica@o ponto a ponto entre computadores mainframes e computadores terminais remotos. A UART tornou-se tAo popular que e amplamente utilizada ate hoje em muitas aplicaqbes. Uma tjnica linha de transrnissrio e suficiente para imple- mentar uma comunica~30 serial assincrona, como mostra a Figura 22.1. A transmiss30 dos dados e feita bit a bit e n3o necessita de um sinal de clock para sincronizar o envio dos bits, como acontece com os protocolos 12CTM e SPITM. Para que haja a sincroniza@o entre o transmissor e o receptor cada bit deve se manter na linha de transmissilo durante um intervalo de tempo denominado periodo do bit, tambem conhecido como tempo de saida do bit ou time bit. 0 periodo do bit define a taxa de transfergncia utilizada na transmissio, dada em bits por segundo (bps).

    Receptor 10101101

    Figura 22.1: Comunica@o serial assincrona.

    Quando nrio existe nenhuma transmissrio em andamento, a linha de transrnissrio se encontra em um estado chamado de meio ocioso, representado pelo nivel16gico '1' presente na linha. Uma transmiss30 tem inicio com o start bit que 6 uma transi@o do nivel IQico '1' para o nivel logico '0' estando o meio ocioso. 0 start bite a sinaliza$%o para o receptor de que uma transmissrio esta sendo iniciada. Apos o envio do start bit, que tem a du ra~ io de um periodo do bit, srio enviados os bits de dados que podem ser 4, 5, 6, 7 ou 8 bits, os quais silo colocados na linha de transmiss30 come~ando pelo bit menos significativo (LSb). Cada bit se mantem na linha de transmissilo por um intervalo de tempo igual ao do start bit, ou seja, durante o periodo do bit. Ap6s a transmiss30 dos bits de dados o transmissor coloca na linha de transmissrio o stop bi te finaliza a transmissio. 0 stop bit pode ser de uma, uma e meia ou duas vezes o periodo do bit. A Figura 22.2 apresenta os niveis logicos que estarilo presentes na linha de transmissrio para a transmissrio de 8 bits de dados e 1 stop bit.

    Meio d o s o 4 1 Meio ocim

    Is2:1110111 Bit0 Bit I Bit 2 Bit3 Bit 4 Bit 5 Bit 6 Bit 7

    Figura 22.2: Transmisslo de 8 bits de dados e um stop bit.

    1 380 1 Microcontroladores PIC18 corn Linguagem C

  • 22.1. Bit de paridade Um bit opcional pode ser transmitido a p b o envio dos bits de dados, o qua1 se chama bit de paridade. Sua funqilo e detectar possiveis erros de transmissilo. A paridade pode ser par, impar, marca (mark) ou espaGo (space).

    Paridade par: a soma dos bits de dados iguais a 1 mais o bit de paridade tem de ser par. Paridade impar: a soma dos bits de dados iguais a 1 mais o bit de paridade tem de ser impar. Marca: o bit de paridade e sempre 1.

    + Espaqo: o bit de paridade 6 sempre 0. A verdade e que o bit de paridade caiu em desuso devido ao fato de existirem hoje formas mais eficientes de detecgo de erros. Mas tenha em mente que esse e um recurso a sua disposiq20. Ap6s a transrnissilo do bit de paridade, que 6 opcional, e transmitido o stop bit. A taxa de transferencia, o numero de bits de dados, a inclus2o ou n8o do bit de paridade e o tamanho do stop bif devem ser configurados antes do inicio da transmiss20 e t4m de ser os mesmos tanto para o transmissor quanto para o receptor.

    22.2. Taxa de transferencia ou baud rate Para implementar uma comunica@o UART 6 precis0 configurar os parAmetros da transmissilo. S io eles o numero de bits, o tamanho do stop bit, inclusAo ou nilo do bit de paridade e o mais importante, a taxa de transfer6ncia utilizada na transmissilo. 0 baud rate define o periodo do bit, tambem chamado de interval0 de sinalizaqio. 0 periodo do bit, como ja foi dito, 4 o tempo em que o bit permanece na linha de transmissilo. 0 baud rate 6 a quantidade maxima de bits que pode ser transmitida por segundo (bps). Para calcular o periodo do bit basta dividir 1 pelo baud rate, ou seja, o periodo do bit e o inverso do baud rate. Existern alguns valores padr2o de baud rate que sAo utilizados na maioria das aplicaws, os quais dados em bps silo: 110,300, 1.200,2.400,4.800,9.600, 19.200,38.400,57.600 e 11 5.200.

    22.3. Controle de fluxo importante observar que embora apenas uma linha de transmissio seja suficiente para a comuni-

    ca~ i lo UART, 6 muito mais comum a utilizaflo de um canal para cada sentido de transmiss20. Esses canais silo denominados de TX e RX, respectivamente linhas de transmissio e de recep~ilo de dados. A utilizaqilo de canais diferentes para transmissilo e recepq2o permite que dados sejam transmitidos e recebidos simultaneamente, um tipo de comunica@o conhecida como fullduplex. Quando urn transmissor envia dados para um receptor, ele suptie que o receptor esteja apt0 para receber os dados que Ihe foram enviados. A verdade 6 que n i o e a todo instante que o receptor esta apto para receber dados. Sendo assim, um sistema de controle de fluxo pode ser implementado para que o transmissor nilo envie dados para o receptor em uma hora impropria, correndo o risco de que dados sejam perdidos. 0 controle de fluxo pode ser implementado de duas formas diferentes: 4 Controle de fluxo por hardware (out-of-band);

    Controle de fluxo por software (in-band).

    Capitulo 22: Comunicaqb Serial UARTvia RS-232 ( 381 1

  • 0 controle de fluxo por hardware consiste em associar as linhas TX e RX linhas que deverao sinalizar para o transmissor se o receptor esta ou n%o apto a receber dados e vice-versa. As linhas de controle de fluxo rnais utilizadas s%o RTS e CTS. 0 controle de fluxo por soffware consiste no envio de caracteres especiais que tern o objetivo de inforrnar ao transrnissor se o receptor estA ou n%o apto a receber dados no rnomento. Urn protocolo de controle de fluxo muito conhecido e o XONIXOFF. 0s caracteres enviados s%o DC1 (XON) e DC3 (XOFF), representados, respectivamente, no codigo ASCII pelos valores I l h e 13h. 0 receptor envia urn caractere XOFF se ele desejar urna pausa na transmiss80. Da rnesma forma, o receptor envia um caractere XON se ele desejar que a transmiss%o recornece.

    22.4. EUSART Praticarnente todos os rnicrocontroladores da s6rie PIC18 v6rn integrados corn pelo menos um modulo de transmiss%o e recep~8o de dados serial. 0 PIC18F4520 possui um modulo de cornunica$%o serial chamado de EUSART (Enhanced Universal Syncrhonous Asynchronous Receiver Transmiter). A principal evolugo da EUSART e a capacidade de detectar automaticarnente a taxa de transferdncia, urn recurso chamado de auto-baud rate detect. Essa caracteristica esta disponivel somente no mod0 de transmiss80 assincrono. Ernbora a EUSART possa transmitir e receber dados tanto da forma assincrona quanto da forrna sincrona, a abordagem feita neste capitulo descreve o funcionarnento da EUSART operando apenas no mod0 assincrono. A opera$%o em rnodo sincrono da EUSART foi abordada corn detalhes no livro PIC16F628N648A - Urna abordagem pratica e objetiva, indicado na bibliografia. A EUSART pode ser configurada corno urn sisterna assincrono full-duplex. A transmissao assincrona fullduplex permite ao microcontrolador se cornunicar com cornputadores pessoais, modems etc. A EUSART utiliza tr6s registradores para a configurago e controle da cornunica$%o serial. SBo eles o TXSTA, o RCSTA e o BAUDCON. A seguir sdo apresentados os bits desses registradores usados no controle da EUSART operando no mod0 assincrono. 0 TXSTA 6 o registrador de controle do modulo transrnissor da EUSART. Vejamos a fungo de cada urn dos seus bits na transmiss80 assincrona.

    22.4.1. TXSTA

    Bit 7: CSRC: bit de selego da origem do clock utilizado na transrniss%o Na transrniss%o assincrona esse bit n%o tern fun$%o.

    Registrador TXSTA

    Bit 6: TX9: habilita transrniss%o do 9Q bit (9-bit)

    Bit 7 RNV-0 CSRC

    Endere~o FACh

    1 = transmiss80 tera 9 bits

    Bii3 W W - 0 SENDB

    0 = transmiss40 tera 8 bits

    Bit 6 R/W-0 TX9

    1 382 ( Microcontroladores PIC18 com Linguagem C

    Bit2 W W - 0 BRGH

    Bit 5 RfW-0 TXEN

    Bit4 RIW-0 SYNC

    B i i l R - I TRMT

    Bit0 W-0 TX9D

  • Bit 5: TXEN: habilita transmissio 1 = transmiss90 habilitada 0 = transmissio desabilitada

    Bit 4: SYNC: seleciona mod0 de transmissio 1 = transmissio sincrona 0 = transmissio assincrona

    Bit 3: SENDB: bit Send Caracter Break Na transmissio assincrona 1 = Send Caracter Break na proxima transmissio (apagado pelo hardware apos a conclusio) 0 = transmissio do Send Break completa

    Bit 2: BRGH: bit de seleqio de alto baud rate (taxa de transferencia) Na transmissao assincrona 1 = alta velocidade 0 = baixa velocidade

    Bit 1 : TRMT:. stafus do registrador de deslocamento utilizado na transmiss20 (TSR) 1 = TSR vazio 0 = TSR cheio

    Bit 0: TX9D: nono bit de dados. Pode ser utilizado como bit de paridade. 0 RCSTA e o registrador de controle do modulo receptor da EUSART. Veja em seguida a funqio de cada um dos seus bits na recepqio assincrona.

    22.4.2. RCSTA

    Bit 7: SPEN: habilita porta serial (configura RX e TX fazendo os bits TRISCc7:6> = 1) 1 = habilita a porta serial 0 = desabilita a porta serial

    Bit 6: RX9: habilita receppo do 99 bit 1 = habilita receppo de 9 bits 0 = habilita recepqio de 8 bits

    Registrador RCSTA

    Capitulo 22: CornunicaqZio Serial UART via RS-232 ( 383 1

    Enderqo FABh Bit 3

    W - 0 ADDEN

    Bit 7 W - 0 SPEN

    Bit 5 RIW-0 SREN

    Bit 6 W - 0 RX9

    Bit 4 W - 0 CREN

    Bit 2 R - 0 FERR

    Bii 1 R-0 OERR

    Bit 0 R - x RX9D

  • Bit 5: SREN: habilita recepqilo h i c a Na transmissiio assincrona esse bit niio tem fun~iio

    Bit 4: CREN: habilita recepq%o continua Na transmissiio assincrona 1 = habilita recepcjio 0 = desabilita recepq%o

    Bit 3: ADDEN: habilita detecqao de endereqo. Na transmissiio assincrona mod0 9-bit (RX9=1) 1 = habilita detecqao de endereqo (so carrega o dado recebido no registrador RCREG se o

    nono bit for igual a 1, ou seja, byte recebido e urn endere~o). 0 = desabilita detecqilo de endereqo (todos os bytes s%o recebidos e o nono bit pode ser

    utilizado como paridade). Na transmissiio assincrona mod0 &bit (RX9=0) N%o utilizado nesse modo.

    Bit 2: FERR: indica err0 de Frame 1 = err0 de Frame, ou seja, o stop bit foi lido como 0 0 = n%o ocorreu err0 de Frame

    Bit 1: OERR: bit de err0 de transbordo 1 = houve transbordo (pode ser resetado apagando o bit CREN) 0 = nao houve transbordo

    Bit 0: RX9D: nono bit de dados 0 BAUDCON 6 o registrador de controle da EUSART. Veja, em seguida, a funq%o de cada urn dos seus bits na comunicaq%o assincrona.

    22.4.3. BAUDCON

    Bit 7: ABDOVF: bit de sinalizaqilo de rolloveA1) na detecqao de taxa de transferencia 1 = ocorreu rollover durante detewo da taxa de transferencia (precisa ser apagado por somare) 0 = nao ocorreu rollover

    Bit 6: RCIDL: bit de sinaliza~ilo de operagio de recepgo ociosa 1 = operagio de recepq%o esta ociosa 0 = opera@o de recepqio esth ativa

    1 384 1 Microcontroladores PIC18 corn Linguagem C

    Registrador BAUDCON Bii 7

    RNV-0 ABDOVF

    Endereqo FD8h Bit 3

    W - 0 BRG16

    Bit 6 R - I RClDL

    Bit 2 U - 0

    -

    Bit 5 RPN-0 RXDTP

    Bit 4 RNV-0 TXCKP

    Bit 1 RIW-0 WUE

    BiiO W - 0 ABDEN

  • Bit 5: RXDTP: bit de selego de polaridade do receptor de dados 1 = linha RX esta invertida (ativa em nivel baixo) 0 = linha RX n%o esta invertida (ativa em nivel alto)

    Bit 4: TXCKP: bit de sele~ao de polariza$%o de clock e dados 1 = estado ocioso para transmitir (TX) 6 o nivel baixo 0 = estado ocioso para transmitir (TX) e o nivel alto

    Bit 3: BGR16: bit de habilitago do registrador de baud rate de 16 bits 1 = gerador de baud rate de 16 bits - SPBRGH:SPBRG 0 = gerador de baud rate de 8 bits - SPBRG

    Bit 2: N%o utilizado. Lido como '0'.

    Bit 1: WUE: bit de habilita~io de wake-up 1 = EUSART continua a amostrar a linha RX - interrupgo gerada na borda de descida; bit apagado por hardware na borda de subida seguinte. 0 = linha RX n%o monitorada ou borda de subida detectada

    Bit 0: ABDEN: bit de habilitaqio de detecqao do baud rate 1 = baud rate sera medido na chegada do proximo caractere 0 = mediflo do baud rate desabilitada ou completada

    Nota: (1) - Urn rollover ocorre quando o registrador sofre urn oveflow, ou seja, quando o seu conteudo vai de FFFFh para 0000h.

    22.5. Gerador de baud rate 0 baud rate define a quantidade maxima de bits que pode ser transmitida por segundo (bps). 0 PIC18F4520 possui um circuit0 gerador de baud rate (BRG) cujo valor para a transmiss20 assincrona 6 calculado a partir das formulas mostradas a seguir, fomecidas pelo fabricante. 0 valor do baud rate dependente da Fosc, do bit BRGH e do valor armazenado nos registradores SPBRGH:SPBRG. 0 bit BRG16 (BAUDCON) define se o ciilculo sera efetuado com 8 ou 16 bits. Se o calculo for para 8 bits, o conteido do SPBRGH 6 ignorado, A Tabela 22.1 apresenta a formula que deve ser utilizada para os diferentes modos de configurago para comunica@o serial assincrona. 0 valor a ser armazenado no par de registradores SPBRGH:SPBRG deve ser aquele que provocar o menor erro de baud rate.

    Tabla 22.1: Sele~iio da fhrmula utilizada no chlculo do baud rate.

    Capitulo 22: Comunica@o Serial UART via RS-232 1 385 1

    Bits de configuraflo Modo BRGlEUSART

    8 bits 8 bits 16 bits 16 bits

    SYNC 0 0 0 0

    F6rmula do baud rate

    Fosc I [64x(SPBRG + I)] Fosc I [16x(SPBRG + I)] Fosc I [16x(SPBRG:SPBRG + I)] Fosc/[4x(SPBRG:SPBRG + I)]

    BRG16 0 0 1 1

    BRGH 0 1 0 1

  • Exem plo Qual valor deve ser escrito no par de registradores SPBRGH:SPBRG para uma transmiss80 assincrona, um baud rate de 19200bps e uma Fosc de 8MHz? Deduzindo SPBRG na formula para 8 bits, temos:

    SPBRGH = Fosc - 1 M x Baud Rate

    + M = 64 para BRGH = 0 + M=16paraBRGH=I Sendo assim:

    Observe que o resultado e um valor fracionario em ambos os casos. lsso significa que o resultado deve ser o valor inteiro mais proximo. Aproximando os resultados, temos:

    Se BRGH = 0 SPBRG = [Fosc l(64 x Baud Rate)] - I SPBRG = [8 x 106 1 (64 x 192OO)l-1 SPBRG = 5,51

    Se BRGH = 1 SPBRG = [Fosc 1 (16 x Baud Rate)] - 1 SPBRG = [8 x lo6 1 (16 x 19200)l-1 SPBRG = 25,04

    A aproximaq20 fara com que o baud rate n8o seja de 19.200bps. Essa diferen~a 6 chamada de ERRO de baud rate e sera calculada em percentagem.

    Se BRGH = 0 SPBRG = 6

    Se BRGH = I SPBRG = 25

    ERRO de baud rate = (1 7857,14 -1 9200)/19200) x 100 ERRO de baud rate = -6,9% (BRGH = 0)

    ERRO de baud rate = (1 9230,76 -1 9200)/19200) x 100 ERRO de baud rate = 0,16% (BRGH = 1)

    Deduzindo SPBRGH:SPBRG na formula para 16 bits, temos:

    Se BRGH = 0 baudrate=8x 1061[64x(6+1)] baud rate = 17857,14bps

    SPBRGH : SPBRG = Fosc - 1 M x Baud Rate

    Se BRGH = 1 baudrate=8 x 10~1 [16x (25+ I ) ] baud rate = 19230,76bps

    + M=16paraBRGH=O + M = 4 para BRGH = 1

    1 386 1 Microcontroladores PIC18 corn Linguagem C

  • Sendo assim:

    Observe que o resultado n2o 6 um valor inteiro em ambos os casos. lsso significa que 6 preciso levar o resultado ao valor inteiro mais proximo. Aproximando os resultados, temos:

    Se BRGH = 0 SPBRGHSPBRG = [Fosc / ( I 6 x Baud Rate)] - 1 SPBRG:SPBRG = [8 x l o6 l(16 x 19200)l-1 SPBRG:SPBRG = 25,04

    Se BRGH = 1 SPBRGSPBRG = [Fosc l ( 4 x Baud Rate)] - 1 SPBRGSPBRG = [8 x lo6 l ( 4 x 19200)l-1 SPBRG:SPBRG = 103,l

    A aproxima~30 fara com que o baud rate n3o seja de 19.200bps. 0 ERRO de baud rafe nesse caso sera:

    Se BRGH = 0 SPBRGSPBRG = 25

    Se BRGH = I SPBRGSPBRG = 103

    ERRO de baud rate = (1 9230,76 -1 9200) 1 19200) x 100

    Se BRGH = 0 Baud Rate = 8 x l o6 1 [I6 x (25 + I ) ] Baud Rate = 19.230,76bps

    ERRO de baud rate = 0,16% (BRGH = I ) Veja que, ao utilizar 16 bib para calcular o contelido dos registradores SPBRGH:SPBRG, o ERRO de baud rafe foi o mesmo para BRGH = 1 e BRGH = 0, da ordem de 0,16%.

    Se BRGH = 1 Baud Rate = 8 x 106 1 [4 x (103 + I) ] Baud Rate = 19230,76bps

    Observe os ERROs de baud rafe gerados para o dlculo em 8 bits e 16 bits. preciso escolher dentre os valores obtidos a melhor opqio para o baud rafe, ou seja, aquele que oferecer o menor erro. 0 ERRO de baud rafe fara com que o period0 do bit seja ligeiramente diferente daquele para um baud rate de 19.200bps. A diferenqa, no entanto, n20 6 significativa e n30 causa problemas na transrnissio. A Tabela 22.2 mostra os parAmetros da transmissio assincrona para uma frequbncia de clock de 8MHz. Observe os valores que devem ser armazenados no par de registradores SPBRGH:SPBRG para a respectiva taxa de transferbncia, assim como o ERRO de baud rate associado aqueles valores.

    Tabela 22.2: Parimetros de uma transmissHo assincrona para uma Fosc = 8MHz.

    Capitulo 22: Comunicaflo Serial UART via RS-232 1 387 1

  • Tabela 22.2 (continuado) I Transmiss20 Asslncrona oara Fosc = 8MHz

    22.6. EUSART em mod0 assincrono

    SYNC = 0, BRGH = 0, BRGIG = 1 Baud Rate I Baud Rate I % ( SPBRG

    Nesse mod0 de funcionamento a EUSART pode receber e transmitir dados simultaneamente de 8 ou 9 bits e um stop bif. 0 s modulos transmissor e receptor s%o funcionalmente independentes, porem precisam utilizar o mesmo formato de dados e o mesmo baud rate. 0 bit de paridade, embora n%o seja suportado pelo hardware, pode ser implementado por software, sendo transmitido como o nono bit. 0 mod0 assincrono B selecionado quando 6 apagado o bit SYNC (TXSTA) e e iniciada quando o dado a ser transmitido e carregado no registrador TXREG. Uma vez no TXREG, o dado e automaticamente transferido para o registrador TSR, sendo no mesmo instante o bit TXlF (PIR1) setado indicando que o TXREG esta vazio. Depois de transferido para o registrador TSR o dado a ser transmitido vai sendo colocado, bit a bit, no pino TX durante o tempo que nos denominamos anteriormente como period0 do bit. 0 bit TRMT(TXSTA) indica o status do registrador TSR, sendo ele setado quando o TSR estiver vazio. Observe que o registrador TSR n%o esta mapeado na memoria RAM. Sendo assim, o usuario n%o tem acesso direto a ele, a n%o ser por uma escrita no registrador TXREG. Quando a transmissao for de 9 bits, e necessario setar o bit TX9(TXSTA) e escrever o nono bit em TXDg(TXSTA) antes de carregar os outros 8 bits no registrador TXREG. lsso evita que o nono bit seja transmitido erradamente caso o TXREG seja transferido imediatamente para o TSR. Se o bit TXEN for apagado antes de a transmissao ter sido completada, ela sera abortada e o modulo transmissor sera resetado, sendo o pino TX colocado em alta impedincia. A Figura 22.3 mostra o diagrama em blocos do mbdulo transmissor da EUSART. Caso a interrupqilo do modulo transmissor da EUSART esteja habilitada, ela ocorre no momento em que o dado for transferido para o registrador TSR. lsso acontece um ciclo de instrug20 apos o dado ter sido carregado no registrador TXREG. Ao ocorrer a interrup@o, o programa sera desviado para o vetor de interrup@o, no qua1 a interrup@o deve ser tratada. 0 bit TXIF(PIR1) indica que a interrupgo ocorreu, porem ele n%o pode ser apagado pelo software. 0 bit TXlF so sera apagado quando um novo dado for carregado no registrador TXREG.

    1 388 1 Microcontroladores PIC18 corn Linguagem C

  • 1 Barramento de dados I

    r.-..---.-.-. 11 ----------- I Msb Lsb Buffer e

    controle do ~ i n o

    I f I Baud Rate Ct-K 0

    -&-------------

    m b : ' s P B R G H 1 SPBRG I I 1 ,._________________, Gerador de Baud Rate TX9D

    Flgura 22.3: Diagrama em blocos do modulo transmissor.

    A interrupqilo do modulo transmissor e habilitada sem os modos de prioridade ativados quando 6 ligada a chave individual de interrup@o do m6dulo transmissor, setando-se o bit TXIE(PIE14>); habilitada a interrup@o de perifericos, setando-se o bit PEIE(INTCON); e ligada a chave geral de interrup@o, setando-se o bit GIE(INTCON). Veja, a seguir, os passos para a implementa@o de uma transmiss80 serial assincrona: + lnicializar o registrador SPBRGHSPBRG para o baud rate desejado.

    Configurar os pinos RC7:RC6 como entrada. Habilitar a porta de comunicaqilo serial apagando o bit SYNC e setando o bit SPEN.

    + Habilitar a intempq80 se for desejado. . + Setar o bit RX9 se a recepqilo for de 9 bits. + Habilitar o transmissor setando o bit TXEN, o qua1 setara tambem o bit TXIF. 6 Se a transmissilo for de 9 bits, escrever o nono bit no bit TXD9.

    Carregar o dado a ser transmitido no registrador TXREG (a transmiss80 tera inicio). + A transrnissao estara finalizada quando o bit TRMT for setado pelo hardware. 0 bloco de codigo a seguir inicializa a EUSART para uma taxa de transferdncia de 2400bps e transmite o caractere 'A' em um sistema no qua1 Fosc = 8MHz. E importante observar que a maioria das comunicaqbes seriais utiliza o cbdigo alfanumerico ASCII. Sendo assim, sera utilizado o ASCII na transmiss80 serial, ou seja, o valor transmitido sera 41 h, valor numeric0 que representa o caractere 'A' no cbdigo ASCII.

    Ihnicializa USART TRISCbits.TRISC7 = 1; TRISCbits.TRISC6 = I; SPBRG = 207; TXSTA = Ob00100100;

    RCSTA = Ob10010000;

    BAUDCON = Ob00000000;

    Ilconfigura pino RX como entrada Ilconfigura pino TX como entrada 112400bps lltransrnisslo habilitada~9 lltransmissao assincrona4> lltransrniss~o em alta velocidade llporta serial habilitada Ilrecepqtio continua habilitada4> IITX ocioso em nivel alto4>

    Capitulo 22: Comunica@o Serial UART via RS-232 1 389 1

  • Ilgerador de baud rate de 8 bits6>

    lltransmite o caractere 'A' TXREG = 'A'; llinicia a transmiss0 while(!TXSTAbits.TRMT); llaguarda transmissao teminar , ~ m t ~ W m m ) * t ~ M h h n * m h m n m m t t H ~ t t n n * * *

    22.6.2. Receptor assincrono 0 modulo receptor da EUSART recebe o dado por meio do pino RX. Logo apos o receptor ter recebido o stop bit, o dado e transferido para o registrador RCREG, sendo no mesmo instante o bit RClF (PIR1) setado. A Figura 22.4 mostra o diagrarna em blocos do receptor assincrono da EUSART. A EUSART pode receber at6 dois bytes sem necessidade de leitura do registrador RCREG. Cada vez que urn novo byte chega pela EUSART ele 6 armazenado primeiramente em urn registrador n i o acessivel pelo sobare chamado RSR. Do registrador RSR o dado 6 transferido autornaticamente para o registrador RCREG, o qua1 possui dois niveis de pilha do tip0 FlFO (primeiro dado a entrar e o primeiro a sair). lsso significa que e possivel ter dois bytes arrnazenados no RCREG e um terceiro byte pode comepr a chegar no RSR. Porem, se o stop bif do terceiro byte chegar antes do RCREG ter sido lido, o byte que acabou de chegar sera perdido e o bit OERR sera estado, informando que houve um transbordo. 0 registrador RCREG deve ser lido logo apos a chegada de um novo byte para evitar o risco de ocorrhncia de transbordo. lsso pode ser facilrnente conseguido se a interrup@o de recepgo da EUSART estiver habilitada. Uma vez que tenha ocorrido a interrup@o do modulo receptor da EUSART, o programa deve imediatamente efetuar a leitura do registrador RCREG dentro da rotina de interrup@o. Uma vez que tenha ocorrido um transbordo (bit OERR=I), a transferhncia de dados do RSR para o RCREG estari inibida, tendo o usuiirio de apagar o bit OERR para que a EUSART possa voltar a receber dados. lsso n io pode ser feito diretamente, tendo o usuario de apagaro bit CREN (RCSTA4>).

    Figura 22.4: Diagrama em blocos do mbdulo receptor.

    1 1

    1 390 1 Micmwntroladores PIC18 corn Linguagem C

    -

    RClE Banamento de d a b

    FlFO R 9 D R9XD

    Registrador RCREG Regisbador RCREG

  • Outro tipo de err0 que pode ser detectado pelo modulo receptor da EUSART 6 o stop bit recebido como '0'. Se isso acontecer, o bit FERR(RCSTA) sera setado indicando que ocorreu um err0 de transmissio. Como uma leitura no registrador RCREG atualiza os bits FERR e RXSD, recomenda-se efetuar a leitura desses dois bits antes de ler o RCREG para que eles n i o sejam perdidos. A interrupq20 do mcidulo receptor da EUSART 6 sinalizada pelo bit RCIF(PlRI), n i o podendo ele ser apagado pelo usuario. Uma vez que a interrupqio do modulo receptor esteja habilitada e o dado recem-chegado pela EUSART for carregado no registrador RCREG, a interrupqio acontecera e o programa sera desviado para o vetor de interrupgo, onde ela deve ser tratada. 0 bit RClF 6 automaticamente apagado pelo hardware quando o registrador RCREG estiver vazio. Se a pilha do RCREG estiver cheia, o registrador RCREG tera de ser lido duas vezes para que o bit RClF seja apagado. A interrupqio do modulo receptor da USART 6 habilitada sem os modos de prioridade ativados quando e ligada a chave individual de interrupqio do modulo receptor, setando-se o bit RCIE(PIE1); habilitada a interrupq2o de perifkricos, setando-se o bit PEIE(INTCON); e ligada a chave geral de interrupq20, setando-se o bit GIE(INTCON). Veja a seguir os passos para a implementaMo de uma recepqio serial assincrona: + lnicializar o registrador SPBRG para o baud rate desejado. + Configurar os bits RC7:RC6 como entrada. + Habilitar'a porta de comunicaqio serial apagando o bit SYNC e setando o bit SPEN. + Habilitar a interrupqao se for desejado. + Setar o bit RX9 se a recepgo for de 9 bits. + Habilitar a recepqio setando o bit CREN. + 0 flag de sinalizago de interrupq20, o bit RCIF, sera setado quando uma recepqio estiver

    completa e uma interrupqio sera gerada se ela estiver habilitada. + Ler o registrador RCSTA para obter o nono bit (RXSD) ou para verificar se houve urn err0 durante

    a recepqio (FERR e OERR). + Ler os 8 bits de dados que se encontram no registrador RCREG. + Se ocorreu algum erro, apagar e setar o bit CREN para que novos dados possam ser recebidos. A fun$%o Recebe-Dado-USART(), apresentada a seguir, mostra como configurar a EUSART para receber um byte de dados no mod0 assincrono, com um baud rate de 2400bps, em um sistema em que Fosc = 8MHz. Apos a funqio configurar a porta serial ela aguarda a chegada de um novo byte. Apos a chegada do dado e verificado se ocorreu um erro de transmissio. Se o byte foi recebido com sucesso a funqBo retomara o byte recem-chegado. Caso seja detectado o erro a porta serial sera desabilitada e a funqio retornara o valor -1. / / * ~ * * * h h m t * m , n H h n n * m * * t * * H m t * W n * * m * m + m ~ m *

    lhniciaiiza USART para recep@o unsigned char Recebe-Dado-UART (void)

    TRISCbits.RC7 = I; llconfigura pino RX como entrada TRISCbits.RC6 = I; llconfigura pino TX como entrada SPBRG = 207; 112400bps TXSTA = Ob00100100; Iltransmiss2lo habilitada~5z

    Iltransmiss%o assincrona

  • RCSTA = Ob10010000;

    BAUDCON = Ob00000000:

    llrecebe um caractere whiie(!PIRI bits.RCiF); if (RCSTAbits.FERR) I

    RCSTAbitsCREN = 0; retum -1;

    1 else retum RCREG;

    );****t*Hmm*-mt**mttmtW

    Ilporta serial habilitadaQ> Ilrecep@o continua habilitada4> llTX odoso em nivel alto4> Ilgerador de baud rate de 8 bitsB>

    llaguarda chegar um novo byte lhouve e m de transmisslo?

    Ilsim, desabilita receppo llretoma -1

    Iln80, retorna dado H*tn***hnnt**-Me****

    0 RS-232 b um padrio de jure de nivel fisico cuja primeira versio foi publicada no inicio da decada de 1960 pelo 6rg%o EIA (Electronic Industries Association). 0 padrio RS-232, cujo nome foi redefinido para EIA-232, define caracteristicas mechicas, eletricas e funcionais para a comunicago serial de dados entre um Equipamento de Dados Terminal (computador, impressora etc.) e um Equipamento de Comunicaqiio de Dados, como, por exemplo, um modem. 0 equipamento de dados terminal (Data Terminal Equipment) e identificado pelo acr6nimo DTE. 0 equipamento de comunicaq%o de dados (Data Communication Equipmenf) 6 identificado pelo acrbnimo DCE. A Figura 22.5 mostra uma tipica comunica~io serial envolvendo a interface RS-232.

    DTE DCE DCE DTE

    Interface RS-232 Interface RS-232

    Terminal ou computador

    Figura 22.5: Cornunica$lo serial RS-232.

    Modem ' 1

    0 comprimento maximo do cab0 que interliga o DTE ao DCE nio e definido pelo padr2o RS-232, mas a capaciuncia maxima da linha 6 limitada a 2500pF, com uma impedhncia de carga que pode variar entre 3kQ e 7kQ. Estas duas caracteristicas limitam, no entanto, o comprimento do cab0 em 20 metros. 0 padrio RS-232 n i o define o protocolo de comunicago utilizado, porem tanto a comunicaqio serial sincrona quanto a comunicaq20 serial assincrona s io suportadas. A comunicaqio serial assincrona universal (UART) 6 a mais utilizada pelo padrio RS-232 por n%o precisar de um sinal de clock para sincronizar a transmissio, como acontece na comunicaqio sincrona, podendo ainda a comunicagio assincrona ser iniciada a qualquer momento.

    0 padrio RS-232 define um conector de 25 pinos conhecido como DB-25 e utiliza 22 pinos de sinais e terra. S%o especificados tambem um conector macho para o DTE e um conector f6mea para o DCE. Contudo, o conector de nove pinos (DB9), definido pela especificaqio EIA-574, e mais frequentemente

    r \

    1 392 1 Microcontroladores PIC18 corn Linguagem C

    f - Terminal ou cornputador

    Linha telefanica

  • utilizado nas comunicaq6es seriais via RS-232. importante ressaltar que o conector DB-9 so deve ser utilizado em comunicaq6es assincronas. Caso se deseje implementar uma cornunicaqBo sincrona, deve ser utilizado o conector DB25 porque, de acordo com a especificaqio, no conector DB-9 so estio presentes os sinais utilizados na comunicaqio assincrona. A Figura 22.6 mostra um conector DB9 macho, enquanto a Tabela 22.3 apresenta a funqio dos pinos do ponto de vista do DTE. Esse conector 6 encontrado na parte traseira da maioria dos PCs, o que lhes permite trocar inforrnaqbes corn ele via RS-232 utilizando o protocolo UART.

    Tabela 22.3: Fun~Bo dos pinos do conector DB9.

    Figura 22.6: Conector DB9 macho.

    0 s pinos do conector DB-9 s i o divididos em dois grupos. SBo eles os pinos de dados e pinos de controle. 0 s pinos de dados sBo apenas dois, os pinos TD e RD, responsaveis respectivarnente pela transmissio e pela recepqBo de dados. 0 s outros pinos s io utilizados no controle de fluxo de dados e no status de funcionamento. Veja a seguir a funqBo dos pinos de controle do conector DB-9, lembrando que todos os sinais de controle sBo ativados em nivel Iogico 0. + DTR (saida): indica para o DCE que o DTE esta pronto para a transferhcia de dados. + RTS (saida): DTE solicita autorizaq%o ao DCE para enviar dados. + CTS (entrada): DCE autoriza DTE enviar dados. + DSR (entrada): DCE esta pronto para a cornunicaMo. + DCD (entrada): indica para o DTE que o DCE esta recebendo urn sinal de portadora da linha

    telefdnica, ou seja, o link de comunicaqio esta em processo. + RI (entrada): indica para o DTE que o DCE esta recebendo uma chamada telefdnica. + Gnd (terra): o padrBo RS-232 utiliza transrnissio n i o balanceada que significa que os terminais

    de terra de ambos DTE e DCE devem estar conectados. A Figura 22.7 mostra uma conexio padrBo RS-232 entre um DTE e urn DCE. Observe que a conex80 e feita pino a pino diretamente aos sinais de mesmo norne. 0 s pinos, entretanto, t6m funq6es diferentes em ambos os lados. 0 pino TD, por exempb, que e de saida de dados no DTE, funciona como pino de entrada de dados no DCE. 0 CTS e um pino de entrada no DTE e de saida no DCE. Esse cab0 6 utilizado para a conexio de modems, impressoras ou qualquer outro dispositivo DCE que use o conector DB-9.

    Capitulo 22: Comunicagto Serial UART via RS232 1 393 1

  • DTE DCE I TD 1 3 3 4 TD I

    CTS DSR DSR Gnd Gnd

    Figura 22.7: Conexio entre urn DTE e urn DCE.

    22.7.2. Conexgo RS-232 Null modem 0 padrdo RS-232 foi inicialmente desenvolvido para permitir a comunicaMo entre computadores conectados a um modem. muito comum, no entanto, a necessidade de comunica@o entre computadores que estejam fisicamente prbximos. Nesse caso, ndo sera necessdria a utiliza@o de um modem, mas isso ngo impede a conex80 dos computadores via RS-232.0 problema e que esta e uma comunicaq80 direta entre dois DTEs e fere a norma de utilizapo do padr8o RS-232, desenvolvida para a comunica$io entre um DTE e um DCE. Para resolver o problema foi criado um tipo de conexdo chamado Null modem (sem modem). A Figura 22.8 mostra uma conexgo Null modem. Uma conexgo Null modem e direta entre dois DTEs e existem varias maneiras de fazer isso. A Figura 22.9 mostra uma conexilo RS-232 entre dois DTEs. Observe que os dois conectores do cab0 sao f6meas porque o padr8o RS-232 especifica urn conector macho para o DTE.

    DTE DTE

    Interface RS-232

    Terminal ou cornputador

    Interface RS-232 Figura 22.8: Conexlio Null modem.

    - f

    DTE , DTE TD3 \ / 3 E

    Null Modern

    Figura 22.9: Conexio entre dois DTEs.

    RD RTS CTS DSR Gnd ! x D DTR

    Como a conexgo Null modem foge ao padrio RS-232 ela pode ser efetuada de varias maneiras diferentes para atender a uma determinada aplicaqilo. A conexdo pode depender, por exemplo, do tipo de controle de fluxo que serh utilizado pelos DTEs, lsso significa que nem todos os pinos podem estar conectados, o que pode fazer com que certo cab0 Null modem funcione em determinadas aplica~des e n i o funcione em outras. Este deve ser um cuidado tomado na utilizaqgo de cabos Null modem.

    '

    Z

    22.7.3, Conex50 RS-232 entre o microcontrolador e o PC

    4' A 2+ .

    4' 'b Terminal ou cornputador

    A maioria dos computadores atuais possui pelo menos uma porta de comunica~%o serial assincrona universal (UART), mais comumente chamada de porta COM. Esses computadores possuem na parte

    RD RTS CTS

    1 394 1 Microcontroladores PIC18 com Linguagem C

    6 DSR ';l Gnd 4 ' !

    4 DTR -

  • traseira do gabinete um conector DB-9 macho que permite que eles troquem informaqoes com outros dispositivos DTE ou DCE via RS-232. Um microcontrolador (MCU) pode trocar informa~des com urn PC utilizando a porta COM do com- putador. A comunica$Bo MCU e PC e feita com o protocolo de comunica~20 UART e e viabilizada quando definimos os parimetros da comunicaflo. SBo eles: 4 Taxa de transferencia (bps)

    Ndmero de bits de dados Bit de paridade

    Tamanho do sfop bit Controle de fluxo

    A Tabela 22.4 mostra os parAmetros minimos e maximos de uma comunicaqtlo serial UART que podem ser configurados tanto para o PIC18F4520 quanto para a porta COM do PC. Para que a comunicaqtlo seja efetuada com sucesso ambos os lados devem ser configurados com os mesmos parimetros.

    Tabela 22.4: Parimetros minimos e mhximos da UART.

    A Figura 22.10 mostra uma opqBo para a conex20 entre o MCU e o PC. Nesse caso, a conex30 sera feita apenas entre os pinos RD, TD e o Gnd que tem de ser comum entre as partes.

    Taxa de transferencia Numero de bits Bit de paridade Stop bit Controle de fluxo

    DTE Porta COM do PC

    DTE PIC18F4520

    PIC1 8F4520 110 a 1.250.000 bps 8 ou 9 Niio suporta 1 NBo suporta

    Porta COM do PC 110 a 921.600 bps 4 a 8 Par, impar, rnarca ou espap 1,1,5ou2 Hardware, XONIXOFF ou nenhum

    Figura 22.10: Conexao entre dois DTEs sem controle de fluxo.

    0 padrBo RS-232 define uma faixa de tensBo que dever ser identificada pelos terminais como niveis ldgicos '0' e '1'. 0 nivel lbgico '1' 6 representado pela faixa de tens20 de -3V a -15V. Da mesma forrna, o nivel logico 'O' e identificado pela faixa de tens20 de 3V a 15V. A faixa de tensilo de -3V a +3V 6 uma regiBo de transi~20, sendo, portanto, de nivel logico indefinido.

    TD RD RTS CTS DSR Gnd DCD DTR

    TD RD RTS CTS DSR Grxl DCD DTR

    Embora os niveis de tens20 -3V e +3V sejam reconhecidos, respectivamente, como niveis Ibgicos 'I ' e 'O', 6 recornendado que o transmissor nBo aplique em nenhum dos pinos uma tens30 menor que +5V para representar o nivel Iogico 'O', assim como ele nBo deve aplicar nenhuma tens30 menor que -5V para representar nivel Iogico '1'. Essa diferen~a de 2V funciona como uma margem de seguranqa

    ' 3 d2 2b

    7 '8 8, '6 4

    5

    *1

    Capitulo 22: Comunlca@o Serial UART via RS-232 1 395 1

  • contra ruidos na linha. Seguindo esse mesmo raciocinio, vale a pena ressaltar que o padr2o RS-232 impbe um limite maximo para a tens20 em cada um dos seus pinos de +25V e -25V, sendo a diferen~a (25V - 15V = 10V) utilizada como margem de seguranp. Tendo em vista a faixa de tens20 especificada pelo padrio RS-232 para a representa~ao dos niveis litgicos '0' e 'l', n2o se pode conectar os pinos do DB-9 diretamente aos pinos do microcontrolador, uma vez que os niveis de tens40 fornecidos por este ultimo n2o s2o compativeis com os do padr2o RS-232. Para resolver o problema e precis0 efetuar uma convers20 de tens20 correspondente aos respectivos niveis Iogicos utilizados pelo padr2o RS-232 e pelo microcontrolador.

    Varias empresas fabricam urn circuit0 integrado que permite ao microcontrolador interfacear com o padr2o RS-232. 0 que esse CI faz 6 converter os niveis de tens40 correspondentes a logica TTL no padr2o RS-232 e vice-versa. A Tabela 22.5 mostra os niveis de tens20 correspondentes aos niveis Iogicos '0' e '1' que trafegam no padr2o RS-232 e os niveis Iogicos correspondentes fornecidos pelo PIC1 8F4520.

    Tabela 22.5: RS-232 versus TTL

    Figura 22.11: MAX232 - converser TTL - RS-232

    -J-c1+ 3

    A Figura 22.1 1 mostra o CI MAX232N. 0 interfacea- A mento dele 6 facil e necessita apenas de quatro capa- 5 citores de IFF conectados externamente a alguns LTIIN dos seus pinos. 0 MAX232N possui dois canais de convers20 TTL em RS-232 para cada sentido de rn [F fluxo, totalizando quatro canais.

    A Figura 22.12 exibe uma proposta para a conex20 MCU * PC via RS-232. Veja que est2o sendo utilizados dois canais do MAX232NI um para TX e o outro para RX. Foi utilizado um conector f6mea para possibilitar a utiliza@o de um cab0 com conex20 direta pino a pino. Nenhum controle de fluxo por hardware foi utilizado, ficando essa tarefa, caso seja necess8ri0, por conta do programa. A proposta de conex20 apresentada na Figura 22.12, no entanto, difere da proposta anterior para a conex20 entre dois DTEs. Em vez de um conector macho, como especifica o padr2o RS-232, foi utilizado um conector f6mea. A vantagem desse tipo de conex20 6 que pode ser utilizado um cab0 com ligaqio direta pino a pino, como aquele utilizado para interligar um DTE a um DCE.

    1 396 1 Microcontroladores PIC18 corn Linguagem C

    151

    vcc

    c1- vs+ c2+ c2-

    D TIOUT&

    ::uG;) R20UTGnd R21N

    -

    2

    v s - 6

    RS-232

    -4-

  • - -

    Figura 22.12: Interface do PIC18F4520 corn o MAX232N.

    Depois que o MCU foi conectado fisicamente ao PC via RS-232 6 hora de testar a comunica@o entre as partes. Antes de fazer o teste de comunica@o, entretanto, e precis0 verificar se existe uma porta serial COM ativa no PC. Vemos a seguir como 6 feita essa verifica@o no Windows XP. A verificaMo 6 feita clicando no bo@o IniciarlPainel de ControlelHardwarelGerenciador de DispositivoslPortas (COM & LPT), de acordo com a Figura 22.13.

    Figura 22.13: Gerenciador de dispositivos do Windows XP.

    Capitulo 22: Comunica* Serial UART via RS-232 1 397 1

  • Caso nilo exista nenhuma porta COM ativada, certifiquese de que o PC que esti sendo utilizado para efetuar o teste possui uma porta COM. lsso e feito consultando o manual da placa-m3e ou simplesmente confirmando a exist6ncia de urn conector DB-9 macho na parte traseira do gabinete. Caso a placa-mile possua uma porta COM, consulte no manual da placa o procedimento utilizado para ativa-la. Para fazer o teste de comunicaqio da porta serial e necessario utilizar um sohare de comunicapo serial. N6s optamos por utilizar o software ComDebug que pode ser baixado gratuitamente da Internet do site http:l/www.windmill.co.uk. Depois de instalar o programa seguindo as opq6es default execute-o clicando no menu lniciarlProgramasMlindmillcomDebug. Aparece a tela mostrada na Figura 22.14.

    Flgura 22.14: Tela inicial do software CornDebug.

    Ao abrir a tela inicial, clique no botiio Use the program as a Terminal utility. Aparecem duas telas sirnultAneas. A primeira, mostrada na Figura 22.15, permite wnfigurar os parAmetros da wmunicapo. Selecione a porta COM utilizada, escolha o baud rate (ou bps) que sera utilizado na wmunicapo e o numero de bits de dados (7 ou 8). No item Parity escolha a oppo None e configure o tamanho do stop bit (I ou 2) no item Stop Bits. Selecione o tipo de controle de fluxo que ser4 utilizado, se for utilizado algum; caso mntririo, selecione a op@o None. Pressionando o botiio OK, a janela da Figura 22.15 desaparece, pois os padmetros da wmunicapo ja estiio wnfigurados.

    Figura 22.15: Parhetros da comunica@io.

    1 398 ( Microcontroladores PIC18 corn Linguagem C

  • A Figura 22.16 mostra a tela que permite enviar e receber dados pela porta COM. Para enviar dados, basta digitar os caracteres que sera0 enviados na coluna da esquerda (Prompt) e pressionar o boHo Send. A coluna do meio (Reply) exibe os dados recebidos.

    Figura 22.16: Tela principal do soffware do ComDebug.

    Clicando no menu. Edit ou pressionando as teclas Alt+E, aparece urn submenu corn as seguintes opfles: Clear Grid, Delet Row e Insert Row, conforme a Figura 22.17.

    Figura 22.17: Menu Edit. .

    A op@o Clear Grid apaga todos os caracteres que foram digitados no grid de envio de dados. A op@o Delete Row permite retirar um caractere previamente digitado do grid de envio de dados. Para deletar urn caractere, basta seleciona-lo e clicar no menu Delete Row. A op@o Insert Row permite inserir um caractere entre outros que ja foram digitados no grid de envio. Para alterar as configuracbes da porta COM, clique no menu Comm Port ou pressione as teclas Alt + C.