11
C  ROGER OM  Curso USB – www.rog ercom.com   Aula 11  Módulo-USB / Página 91 Introdução a Porta Serial  A partir desta aula iremos começar nossos estudos sobre a comunicação serial, especificamente o padrão RS232 que tem mais de 40 anos de existência, mas ainda é muito usado em vários dispositivos atuais, como computadores Modems, Mouses, Microcontroladores, Impressoras etc. Como objetivo principal pretendo deixar informações suficientes para que possam compreender o funcionamento da porta serial e, a partir dessa compreensão, tornarem-se capacitados a criar, tanto software de controle como o hardware, e assim implementar seus novos projetos.  A comunicação serial teve início com a invenção do telégrafo. Depois teve um grande desenvolvimento com a invenção do Teletype (teletipo) pelo Francês Jean Maurice Émile Baudot, em 1871. Baudot, além de criar toda a mecânica e elétrica do Teletype, criou também um código para a transferência serial assíncrona de informações, de forma totalmente digital. No código de Baudot havia dois subconjuntos de códigos. Um era os das letras, chamado por ele de LTRS, abreviatura da palavra LETRAS, e o outro era chamado de FIGS, que significa FIGURAS. Os LTRS eram para codificar as letras, e os FIGS para os dígitos de 0-9 e alguns símbolos e sinais de pontuação. Esse código utilizava um sistema de 5 dígitos binários para representar um caracter. O dígito 1 era chamado de Mark (Marca) e o zero (0) de Space (Espaço). O aparelho de Teletype recebia um caracter de forma assíncrona e o imprimia numa fita de papel, onde a Marca era representada por um furo e o Espaço pela ausência do mesmo. Na transmissão dos caracteres através da linha telegráfica, o sinal de Marca era representado pela presença de corrente elétrica, e o Espaço pela ausência desta corrente. Para que o Teletype conseguisse distinguir o início e o final de um caracter, o mesmo era precedido com um sinal Espaço e finalizado com um sinal de Marca. Entenda que o estado da linha ociosa (sem transmissão de dados) era o sinal de Marca (presença de corrente elétrica). Foi baseado nesse sistema que o padrão de transmissão RS232 evoluiu e se tornou no padrão atual, usado na maioria dos computadores e equipamentos digitais diversos.  A finalidade de se escrever aqui, sobre o trabalho de Baudot, é mostrar a relação de seu invento com o padrão serial RS232 atual. Alguns termos ainda usados como: BAUD (Baudot), Mark, Space, Start bit, Stop bit com intervalo de 1,5

Aula 11 Modulo Usb

Embed Size (px)

Citation preview

  • 5/27/2018 Aula 11 Modulo Usb

    1/10

    C ROGER OM Curso USB www.rogercom.com

    Aula 11 Mdulo-USB / Pgina 91

    Introduo a Porta Serial

    A partir desta aula iremos comear nossos estudos sobre a comunicao serial,especificamente o padro RS232 que tem mais de 40 anos de existncia, mas ainda

    muito usado em vrios dispositivos atuais, como computadores Modems, Mouses,Microcontroladores, Impressoras etc. Como objetivo principal pretendo deixarinformaes suficientes para que possam compreender o funcionamento da portaserial e, a partir dessa compreenso, tornarem-se capacitados a criar, tanto softwarede controle como o hardware, e assim implementar seus novos projetos.

    A comunicao serial teve incio com a inveno do telgrafo. Depois teve umgrande desenvolvimento com a inveno do Teletype (teletipo) pelo Francs JeanMaurice mile Baudot, em 1871. Baudot, alm de criar toda a mecnica e eltrica doTeletype, criou tambm um cdigo para a transferncia serial assncrona deinformaes, de forma totalmente digital.

    No cdigo de Baudot havia dois subconjuntos de cdigos. Um era os das letras,chamado por ele de LTRS, abreviatura da palavra LETRAS, e o outro era chamadode FIGS, que significa FIGURAS. Os LTRS eram para codificar as letras, e os FIGSpara os dgitos de 0-9 e alguns smbolos e sinais de pontuao. Esse cdigoutilizava um sistema de 5 dgitos binrios para representar um caracter. O dgito 1era chamado de Mark (Marca) e o zero (0) de Space (Espao). O aparelho deTeletype recebia um caracter de forma assncrona e o imprimia numa fita de papel,onde a Marca era representada por um furo e o Espao pela ausncia do mesmo.

    Na transmisso dos caracteres atravs da linha telegrfica, o sinal de Marca erarepresentado pela presena de corrente eltrica, e o Espao pela ausncia desta

    corrente. Para que o Teletype conseguisse distinguir o incio e o final de um caracter,o mesmo era precedido com um sinal Espao e finalizado com um sinal de Marca.Entenda que o estado da linha ociosa (sem transmisso de dados) era o sinal deMarca (presena de corrente eltrica). Foi baseado nesse sistema que o padro detransmisso RS232 evoluiu e se tornou no padro atual, usado na maioria doscomputadores e equipamentos digitais diversos.

    A finalidade de se escrever aqui, sobre o trabalho de Baudot, mostrar arelao de seu invento com o padro serial RS232 atual. Alguns termos aindausados como: BAUD (Baudot), Mark, Space, Start bit, Stop bit com intervalo de 1,5

  • 5/27/2018 Aula 11 Modulo Usb

    2/10

    ROGERC

    Jean Maurice mileBaudot (1845-1903)

    BITS DECIMAL LTRS FIGS

    00011 3 A -

    11001 25 B ?

    01110 14 C :

    01001 9 D $

    00001 1 E 3

    01101 13 F !

    .

    .

    .

    .

    .

    .

    .

    .

    .

    .

    .

    .

    01000 8 CR CR

    00010 2 LF LF

    00100 4 SP SP

    11111 31 LTRSLTRS

    11011 27 FIGS FIGS

    Receptor BaudotColeo de imagens

    Fons Vanden Berghen.

    OM Curso USB www.rogercom.com

    Aula 11 Mdulo-USB / Pgina 92

    bit, tamanho dos dados de 5 bits, entre outras similaridades, iremos compreendernesta aula.

    Tabela 1 - Tabela parcial do cdigo de Baudot

    Para explicar como eram transmitidos os caracteres codificados no sistema deBaudot, segue abaixo um exemplo de como enviar a palavra FADA!

    LTRS F A D A FIGS !

    11111 01101 00011 01001 00011 11011 01101

    No exemplo acima, as letras da palavra FADA esto dispostas na primeiracoluna (LTRS) da tabela de cdigos de Baudot. Portanto, para que o sistemareceptor de teletype entenda, o transmissor ter que inform-lo previamente atravsdo envio de um comando LTRS (11111), alertando que, os prximos caracteresenviados sero letras. Para enviar o caracter "!", antes, se envia o cdigo FIGS paraavisar ao receptor que interprete os cdigos conforme os da segunda coluna (FIGS).

    Na verdade, os cdigos especiais LTRS e FIGS servem para combinar, eportanto, enviar qualquer um dos caracteres da tabela de cdigos de Baudot (Letras,

    dgitos, sinais de pontuao e smbolos) num total de 64, incluindo os prprios LTRSe FIGS.

    Para assimilarmos o conceito dos cdigos LTRS e FIGS no sistema de Baudot,podemos comparar, grosso modo, com um teclado de computador onde o cdigo decada tecla transmitido serialmente e, para alternar entre letras maisculas eminsculas, pressiona-se a tecla CapsLock.

  • 5/27/2018 Aula 11 Modulo Usb

    3/10

    C ROGER OM Curso USB www.rogercom.com

    Aula 11 Mdulo-USB / Pgina 93

    Figura 1 - Sinal eltrico para o caracter 'P' (10110) no cdigo de Baudot

    Na figura acima temos a representao grfica de um caracter de 5 bits docdigo Baudot, na relao corrente/tempo. Quando a linha est ociosa (nenhumdado fluindo), a mesma fica no estado Marca (presena de corrente eltrica).

    Como exemplo, para se transmitir o caracter 'P' (10110), primeiro envia-se umSTART (ausncia de corrente na linha - Espao) por um determinado intervalo detempo (t). Depois se envia os impulsos representando as Marcas e os Espaos docdigo do caracter. Aps isso, envia-se um STOP (A linha levada ao estadoMarca), e fica assim indeterminadamente at que um novo caracter seja enviado.

    Figura 2 - Fita de papel com impresso do cdigo de Baudot

    A figura acima mostra uma fita de papel com impresses dos cdigos deBaudot. O bit 1 (Marca) associado a um furinho, e o bit 0 (Espao), a ausncia domesmo, ou seja, um espao.

    Modos de transmisso serial

    O modo da transmisso pode ser classificado em Simplex, Half-duplex e Full-duplex. Ou seja, a informao pode fluir num nico sentido, nos dois sentidos sendoque somente um transmitindo a cada vez, ou nos dois sentidos simultaneamente.

  • 5/27/2018 Aula 11 Modulo Usb

    4/10

    C ROGER OM Curso USB www.rogercom.com

    Aula 11 Mdulo-USB / Pgina 94

    Os sistemas de comunicaes como: telefonia, satlite, Redes, sistemaswireless, teleprocessamento, etc., usam um desses modos de transmisso. Aescolha de qual modo usar depende do que se pretende transmitir.

    SIMPLEXNo modo Simplex, o fluxo de transmisso flui somente em um sentido, ou seja,

    um dispositivo s envia os dados e o outro s recebe. Como exemplo, podemos citaruma emissora de Rdio, onde ela s transmite.

    Figura 3 - Modo SIMPLEX

    HALF-DUPLEXNo modo Half-duplex ambos os dispositivos transmitem nos dois sentidos, mas,

    no simultaneamente. Ou seja, um transmite enquanto o outro espera e vise versa.Esse modo usa um nico canal bidirecional. Como exemplos, podemos citar umrdio Walk-Talk, onde ambas as pessoas podem falar e escutar, mas no ao mesmotempo.

    Figura 4 - HALF-DUPLEX

    FULL-DUPLEXNo modo de transmisso Full-duplex, h duas linhas independentes, onde uma

    usada para transmitir e a outra para receber os dados. Ambos os dispositivostaransmitem simultaneamente. Como exemplo, podemos citar uma auto-estrada deduas vias onde os veculos rodam nos dois sentidos.

    A porta Serial RS232 trabalha em modo Full-duplex, atravs das duas linhas TX-RX.

    Figura 5 - FULL-DUPLEX

  • 5/27/2018 Aula 11 Modulo Usb

    5/10

    C ROGER OM Curso USB www.rogercom.com

    Aula 11 Mdulo-USB / Pgina 95

    DTE / DCE

    Diferente da porta USB, onde o Host sempre um PC e um dispositivo no podese conectar com outro dispositivo diretamente (a no ser que um deles use

    tecnologia OTG). No padro RS232, um DTE (Data Terminal Equipment), ou seja,um PC, pode ser conectado a um outro PC (DTE), ou a um DCE (Data Circuit-Terminating Equipment), que pode ser um Modem ou qualquer outro dispositivoserial RS232. possvel tambm um DCE estabelecer comunicao com outroDCE. Como exemplo, posso citar dois dispositivos microcontrolados que disponhamde perifricos UART para estabelecer comunicao serial.

    Figura 6 - Terminais DTE-DCE

    A interface RS232 foi criada com o propsito inicial de conectar Equipamento deTerminais de Dados (DTE), a aparelhos de Modem (DCE - Equipamentos de

    Comunicao de Dados). Com o passar dos anos e a evoluo da tecnologia,surgiram novos equipamentos. Atualmente o RS232 usado para conectar umagrande variedade de dispositivos eletrnicos ao computador, como mouses,dispositivos de telemetria, PDVs, balanas digitais, cdigos de barra, impressoras,Nobreaks, dispositivos microcontrolados em geral entre outros.

    Quando estivermos estudando os sinais dos conectores RS232, iremosperceber que os pinos so nomeados com termos tcnicos referente as linhas de umModem.

    Tipos de transmisso

    Numa transmisso serial preciso que o DTE entre em sincronismo como oDCE para que os bits possam ser enviados pela linha. Dispositivos seriais podemtransmitir de forma sncrona ou assncrona. O receptor, atravs de seus circuitosdedicados, monitora o sinal enviado pelo transmissor e, dessa forma, obtm os bitsque esto sendo transmitidos, no mesmo intervalo de tempo.

    SncronaNo tipo de transmisso sncrona, o DTE fica constantemente enviando sinais

    para o DCE, com o objetivo de manter a sincronizao da comunicao. Esse tipo

  • 5/27/2018 Aula 11 Modulo Usb

    6/10

    C ROGER OM Curso USB www.rogercom.com

    Aula 11 Mdulo-USB / Pgina 96

    de transmisso mais rpido que a assncrona, porque no necessita enviar sinaisde controle para cada byte transmitido, como, Start bit e Stop bits.

    Na transmisso sncrona, envia-se um ou mais bytes de sincronismo antes do

    incio dos pacotes de dados, e depois, alguns bytes para indicar o final dos mesmos.Aps a transferncia dos pacotes, o DTE continua enviando bytes de controle paramanter o sincronismo com o DCE.

    Figura 7 - Exemplo didtico de uma transmisso Sncrona

    A figura acima mostra uma transmisso sncrona em nvel fsico (de hardware).Observe que o DTE quem envia o sinal de clock para manter o DCE emsincronismo. Os bits dos pacotes so enviados um-a-um atravs da linha de Dadosa cada mudana do sinal de clock.

    Como exemplo, vamos imaginar a transferncia do pacote de dados: "CursoUSB/Serial". Veja:

    sinc sinc sinc... INICIO_BLOCO"Curso USB/Serial" FIM_BLOCOsinc sinc sinc...

    Muitos chips de memria usam a transmisso sncrona para ler e gravar dados.

    AssncronaNo tipo de transmisso assncrona, o relgio do DTE e DCE so configurados

    para oscilarem na mesma freqncia (velocidade de transmisso).

    Numa transmisso assncrona os dados so divididos em pequenos pacotes dedados de tamanho entre 5 a 8 bits, para minimizar o risco do oscilador dotransmissor e do receptor variar. Se os dados no fossem divididos em pacotes

    menores, os relgios iriam gradativamente perder o sincronismo, conforme fossepassando o tempo, isso porque o temporizador (relgio) do DTE independente doque h no DCE. por isso que na transmisso serial RS232 utiliza-se um bit deincio (Start bit), e alguns bits de parada (Stop bit), para garantir o sincronismo.

    Figura 8 - Exemplo didtico de uma transmisso Assncrona

  • 5/27/2018 Aula 11 Modulo Usb

    7/10

    C ROGER OM Curso USB www.rogercom.com

    Aula 11 Mdulo-USB / Pgina 97

    A figura acima mostra uma transmisso assncrona; DTE e DCE teem relgiosde temporizao independentes; so configurados com a mesma velocidade (Baud);mas para garantir a sincronizao ideal, os dados teem tamanho mximo de 8 bits (9quando utiliz-se o bit de paridade), e so precedidos e finalizados com bits de

    sincronismos, respectivamente (Start bit e Stop bit).

    A figura abaixo mostra a formatao de um Frame (quadro) de 11 bits deextenso, para envio numa transmisso assncrona.

    Figura 9 - Formatao de um Frame (Quadro) de 11 bits

    Na figura acima temos um Frame de 11 bits formatado da seguinte forma: 1bit

    de Start (incio); 8bits de dado representado no exemplo como o caracter "A"; 1bitpara a paridade e 1bit de Stop (parada).

    Quando a linha est ociosa (inativa, idle ou inoperante) ela permanece noestado Marca ou "1" lgico, ou seja, com nveis de tenses entre -3v a -25v.

    Para transmitir um caracter pela linha serial, o transmissor primeiramente enviaum 1 bit de Start com o objetivo de zerar e inicializar o temporizador do receptor,avisando que um novo caracter est a caminho. Aps os bits de dados e a paridade(opcional) terem sido enviados, logo 1 Stop bit transmitido para avisar ao receptoro final do Frame, e manter a linha no estado inativa novamente.

    Observe tambm na figura acima, o tempo de 1 bit (104uS). Ou seja, o intervalode tempo que o receptor ter para identificar o estado do sinal Marca (1) ou Espao(0). Esse tempo tambm o mesmo usado pelo transmissor enviar um bit.

    No exemplo da figura acima estamos usando uma taxa de transferncia de 9600Baud. Sendo assim, a cada 104uS um sinal alternado, ou seja, passa de umestado para outro.

    Para saber o tempo de cada bit, divida o nmero 1 pela taxa de baud: 1/9600 =104uS (arredondado). Este o tempo de um bit.

  • 5/27/2018 Aula 11 Modulo Usb

    8/10

    C ROGER OM Curso USB www.rogercom.com

    Aula 11 Mdulo-USB / Pgina 98

    Figura 10 - Exemplo de uma transmisso serial

    A figura acima mostra a animao de uma transmisso serial bit-a-bit (DTE-->DCE), usando como exemplo o caracter "A".

    Bit de Paridade

    O bit de paridade utilizado numa transmisso serial assncrona, como umasoluo primria em nvel de hardware para detectar a ocorrncia de erros natransmisso de dados. A cada byte enviado, o receptor verifica se os bits do mesmono foram modificados. O hardware receptor verifica isso somando todos os bits "1"que h no byte, mais o valor do bit de paridade. O resultado dessa soma dever serPar ou mpar. Se a paridade na configurao do DTE e DCE foi definida, porexemplo, como PAR, a soma dos bits "1" do dado, mais o valor do bit de paridaderecebido tem que ser PAR para um dado correto. Se por acaso o resultado dermpar, isso indica que o dado recebido sofreu alguma modificao em algummomento da transmisso, ou seja, houve um erro.

    Se a transmisso no for usar bit de paridade, isso deve ser avisado naconfigurao do DTE e DCE.

    Os tipos de paridades que podem ser usadas para configurar os terminais so:Nenhuma, mpar, Par, Marca ou Espao. As paridades Marca e Espao no somais usadas, e ainda constam nas configuraes para manter compatibilidade comos antigos sistemas de transmisso serial.

    Figura 11 - Exemplo 1 - paridade PAR

  • 5/27/2018 Aula 11 Modulo Usb

    9/10

    C ROGER OM Curso USB www.rogercom.com

    Aula 11 Mdulo-USB / Pgina 99

    A figura acima demonstra o uso da paridade PAR. Temos um dado de 8 bits00110100 (com um total de 3 bits "1", resultando em um nmero mpar). Para que asoma dos bits de dado+paridade seja Par, o circuito transmissor adiciona o valor "1"ao bit de paridade. Assim, a soma dos bits de dados+paridade fica igual a 4 (PAR).

    Aps isso, o transmissor envia o Frame ao receptor. Por sua vez, ao receber oFrame, o receptor verifica se a soma dos bits de dado+paridade um resultadotambm PAR, confirmando o sucesso. Caso contrrio, detectado um erro detransmisso.

    A demonstrao abaixo segue o mesmo princpio da anterior, para adicionar obit de paridade pelo transmissor e a verificao pelo receptor, levando em contatambm a paridade PAR. A diferena abaixo que a soma dos bits do dado j umresultado Par. Nesse caso, o hardware do transmissor adiciona um valor "0" ao bitde paridade, para que o resultado da soma dos bits dado+paridade seja umresultado PAR.

    Figura 12 - Exemplo 2 - paridade PAR

    Interface RS232

    O padro RS232 foi criado em 1962 para conectar diretamente dois dispositivos.Foi padronizado pela Associao de Indstria de Eletrnica (EIA). Originalmente erausado para conectar dispositivos de teletipo que utilizavam o cdigo ASCII paratransmitir dados de forma assncrona. As letras "RS" quer dizer RecomendedStandard (padro recomendado) e 232, a verso. O padro RS232 foi criado com

    o objetivo de definir as caractersticas eltricas, temporizao, mecnicas e funesdos sinais da interface serial, para conectar dispositivos ponto-a-ponto.

    Com o passar dos anos o padro evoluiu e teve a terceira reviso em 1969 (RS-232C) verso "C". EIA-232D e EIA-232E foram atualizadas respectivamente em1987 e 1991.

    Por volta de 1984 o nico padro de comunicao serial em computadorespessoais IBM-PC era o RS232C. Mais tarde surgiram o irDA (Infra-vermelho), USBentre outros.

  • 5/27/2018 Aula 11 Modulo Usb

    10/10

    ROGER OM Curso USB www.rogercom.com

    Aula 11 Mdulo-USB / Pgina 100

    C

    Sinais eltricos

    O grfico abaixo mostra as tenses eltricas para representar os sinais lgicosusados no padro RS232. Observe que h uma regio de transio do sinal onde a

    tenso utilizada para representar o "0" e o "1" lgico. Veja tambm que o "0" lgico associado a faixa de tenso positiva e o "1" a faixa de tenso negativa.

    Figura 13 - Sinal eltrico do padro RS232

    As tenses mximas que a interface RS232 suporta 25v. Um Espao ou zero

    (0) lgico, representado por tenses positivas, entre +3v a +25v. Uma Marca ou oum (1) lgico, representado por tenses entre -3v -25v. J a faixa de tensesentre -3v e +3v conhecida como uma regio de transio, sendo consideradaindefinida. Ou seja, esta regio no representa nenhum estado lgico vlido nopadro RS232.

    Algumas interfaces RS232 nos computadores atuais fornecem -12v e +12v, massuportam mnimas de -25v e mximas de +25v.