UNIVERSIDADE DO ESTADO DO RIO DE JANEIRO FEN-DETEL - DEPARTAMENTO DE ELETRÔNICA E TELECOMUNICAÇÕES A Interface Serial e o Padrão RS-232 Prof. 1
A Interface Serial e o Padrão RS-232 Objetivo: apresentar a comunicação serial assíncrona e o padrão de interface física RS-232 2
Interface Serial e o Padrão RS-232 A Interface Serial O padrão RS-232 Exemplos / Laboratório 3
A Interface Serial 4
Interface Paralela/Serial Os PCs e a maioria dos dispositivos possui um barramento paralelo interno que interliga a CPU aos outros periféricos internos (RAM, ULA, Registradores, EEPROM,...) A comunicação serial é predominante nos padrões de interface (LANs, RS-232, 485, wireless, etc) Os dispositivos utilizam uma UART (Universal Asyncronous Receiver Transmitter) para conversão serial / paralela. Há também as USART (Universal Synchronous Asyncronous Receiver Transmitter), capazes de comunicação síncrona 0 1 0 1 1 1 0 0 PC UART UART 0 1 0 1 1 1 0 0 CLP UART UART 0 1 0 1 1 1 0 0 5
Arquitetura de uma UART Uma UART implementa a Camada Física e algumas funções da Camada de Enlace da comunicação A mais famosa UART em uso em PCs era o Chip 8250, que, foi melhorado, com acréscimo de buffers e outras facilidades resultando na UART 16550, que é embutida nem chipsets usada em PCs Atualmente, existem conversores USB/RS232 e Ethernet/RS232 UART 6
Arquitetura de um Microcontrolador Em destaque UART Timer / Counter EEPROM I/O Comparador analógico PWM 7
A Interface Serial Assíncrona 8
A Interface Serial Assíncrona Parâmetros Data bits: 7 ou 8 Paridade: Não, Par ou Impar Stop Bits: 1 ou 2 Velocidade (Baud Rate): 110, 300, 600, 1200, 4800, 9600, 19200, 38400 bits/s 9
A Interface Serial Síncrona Sincronismo a cada bit enviado Dois sinais: DATA: dados enviados CLOCK: sincronismo de relógio Sinal de relógio pode ser enviado como: Sinal a parte Embutido junto com os dados 10
Diferenças Assíncrona x Síncrona Assíncrona Baixo custo Baixo rendimento (< 80%) Baixa taxas de transmissão (da ordem de 10 5 bits por segundo) Para seqüências pequenas de bits (até 8 bits por frame da UART) Síncrona Mais cara Alto rendimento (> 90%) Altas taxas de transmissão (da ordem de 10 8 bits por segundo) Capaz de lidar com frames de milhares de bits sem erros 11
O Padrão RS-232 12
O Padrão RS-232 Padrão de Camada Física (modelo ISO/OSI) Interface serial, ponto a ponto (2 nós), de baixa velocidade (até 115 kbps) Criado no final dos anos 1950, para interligar modems à terminais de mainframes O padrão suporta os modos síncrono e assíncrono. Porém, o modo síncrono raramente é utilizado Para atender ao modo síncrono, há sinais de relógio previstos na interface 13
O Padrão RS-232 O padrão RS-232 define Especificações Elétricas Interface Mecânica (conectores) Descrição Funcional A EIA é responsável pelo padrão RS- 232 e emite periodicamente novas revisões, atualmente está na revisão E O equivalente europeu ao RS-232 são os padrões CCITT (ITU) V.24 e V.28 14
DTE x DCE DTE (Data Terminal Equipment) Equipamento de Terminação de Dados, dispositivo gerador ou consumidor de dados (ex.: PC, servidor, terminal, etc) DCE (Data Communication Equipment) Quaisquer Equipamentos de Comunicação de Dados, dispositivos componentes de uma rede (modem, repetidor, switch, roteador, etc) DTE Cabo RS-232 DCE 15
Especificações Elétricas do RS-232 Os níveis lógicos são representados por tensões: -3 V a -15V como Marca = 1 = OFF +3V a +15V como Espaço = 0 = ON (Pronto) Tensões entre -3 V e +3 V são indefinidas O circuitos RS-232 são robustos (por norma), podendo ser curto-circuitados, invertidos, deixados abertos, etc. 1 0 Nível Lógico OFF Marca INDEFINIDO ON Espaço -15-3 +3 +15 Nível de Controle Nome RS-232 Tensão (Volts) 16
Especificações Mecânicas A especificação mecânica da norma RS-232 é muito vaga: O conector deve ser de 25 pinos (o tipo de conector não é especificado) Porém, por default são usados os conectores DB- 9 e o DB-25 A distância máxima não é definida, mas, a capacitância do cabo deve ser menor que 2500 pf. Para cabos de 50 pf/pé, isso equivale a cabo de 50 pés (15 m) 17
Especificações Mecânicas A cada circuito é atribuído um nome e sentido do sinal Sublinhado: saída do DTE (entrada do DTE) Não sublinhado: entrada do DTE (saída do DCE) Conector DB-25 Macho (DTE) Secondary Transmitted Data - Tx. Sig. Elem. Timing DCE Source - Secondary Received Data - Rx. Sig. Elem. Timing DCE Source - Local Loopback - Secondary RTS - Data Terminal Ready - Remote Loopback - Ring Indicator - Data Signal Rate Selector- Tx. Sig. Elem. Timing DCE Source - Test Mode - 14 15 16 17 18 19 20 21 22 23 24 25 1-2 - 3-4 - 5-6 - 7-8 - 9-10 - 11-12 - 13 - Shield Transmitted Data Received Data Request to Send Clear to Send Data Set Ready Signal Ground Received Line Signal Detector Reserved (Modem Test) Reserved (Modem Test) Unassigned Secondary RX Line Sig. Det. Secondary Clear to Send 18
Especificações Mecânicas Na maioria das aplicações, quase todos os 25 pinos são desnecessários então o conector DB-9 se tornou um padrão de fato Sublinhado: saída do DTE (entrada do DCE) Não sublinhado: entrada do DTE Conector DB-9 Macho (DTE) Data Set Ready - Request to Send - Clear to Send - Ring Indicator - 6 7 8 9 1 - Received Line Signal Detector 2 - Received Data 3 - Transmitted Data 4 - Data Terminal Ready 5 - Signal Ground 19
Especificações Funcionais Os sinais RS-232 são divididos em quatro categorias de circuitos. As características funcionais de cada sinal (circuito) também são definidas na norma Circuitos de Aterramento 1 - Protective Ground 7 - Signal Ground Circuitos de Dados 2 - Transmitted Data 3 - Received Data 14 - Secondary Transmitted Data 16 - Secondary Received Data Circuitos de Temporização Circuitos de Controle - Request to Send - Clear to Send - Data Set Ready - Data Terminal Ready - Ring Indicator - Received Line Signal Detector - Signal Quality Detector - Data Signal Rate Selector - Secondary Request to Send 15 - Rx. Signal Elem. Timing (DTE) 13 - Secondary Clear to Send 17 - Tx. Signal Elem. Timing (DCE) 12 - Sec. Tx. Sig. Rcvd Line Detector 24 - Tx. Signal Elem. Timing (DTE) 20 4 5 6 20 22 8 21 23 19
Exemplo: Especificação Funcional Circuit AA Protective Ground This conductor shall be electrically bonded to the machine or equipment frame. It may be further connected to external grounds as required by applicable regulations Circuit BA Transmitted Data (to DCE) Signals on this circuit are generated by the DTE and are transferred to the local transmitting signal converter for transmission of data to remote data equipment The DTE shall hold Transmitted Data in marking condition during intervals between characters or words, and all times when no data are being transmitted In all conditions DTE shall not transmit data unless an ON condition is present on all of the following four circuits, where implemented 1. Request to Send 2. Clear to Send 3. Data Set Ready 4. Data Terminal Ready 21
Principais Sinais do RS-232 A maioria dos sinais do padrão não são utilizados. Aplicações industriais usam no máximo 9 ou 10 pinos PINOS (DB25) PINOS (DB9) SINAL DESCRIÇÃO Sublinhado - saída do DTE 2 3 TD Transmit Data (Dados Transmitidos) 3 2 RD Receive Data (Dados Recebidos) 4 7 RTS Request To Send (Requisição para Enviar) 5 8 CTS Clear To Send (Pronto para Enviar) 6 6 DSR Data Set Ready (Dispositivo de Dados Pronto) 7 5 SG Signal Ground (Terra de Sinal) 8 1 CD Carrier Detect (Detecção de Portadora) 20 4 DTR Data Terminal Ready (Terminal de Dados Pronto) 22 9 RI Ring Indicator (Indicador de Chamada - Campainha) 22
Request To Send (RTS) Nome do Circuito (Padrão RS): CA Direção: DTE -> DCE Nome do Circuito (ANSI/ISO): 105 Habilita os circuitos de transmissão O DTE utiliza este sinal quando deseja enviar para o DCE Um nível lógico 0 neste sinal mantém o DCE em transmissão O DCE recebe os dados do DTE e transmite ao enlace de comunicação 23
Clear To Send (CTS) Nome do Circuito (padrão RS): CB Direção: DTE <- DCE Nome do Circuito (padrão ANSI/ISO): 106 Sinal de resposta ao DTE Quando este sinal está ativo (ON), o DCE avisa ao DTE que pode iniciar a transmissão neste instante (no circuito Transmitted Data). Quando este sinal está "On" e RTS, DSR e DTR estão todos "On", o DTE está assegurado que os dados serão enviados ao elnlace de comunicação. Quando "Off", indica ao DTE que o DCE não está pronto, e portanto, os dados não podem ser enviados Quando os sinais DSR e DTR não são utilizados, numa conexão local, quando não é necessária uma conexão telefônica, os sinais CTS e RTS são suficientes para efetuar o controle de fluxo 24
Conexão DTE x DCE Quando o segundo DTE foi configurado como um DCE, a conexão segue o padrão RS-232, como a ligação de um DTE a um modem (DCE) Como o cabo não possui cruzamentos também é chamado de Cabo Direto ou sem cruzamentos Abaixo uma conexão DTE-DCE com controle de fluxo Cabo Direto (com controle de fluxo) DCE DTE DTE 25
Conexões DTE x DTE A conexões de dois DTE é feita de modo que um DTE pense estar falando com um DCE Utiliza-se uma conexão chamada Cabo Modem Nulo, pois não existem modems envolvidos. O Cabo Modem Nulo também é chamado de Cabo Cruzado devido ao cruzamento dos circuitos de dados e de controle Abaixo uma conexão DTE-DTE com controle de fluxo. Como não existem modems envolvidos são utilizados apenas os sinais de controle RTS e CTS Cabo Modem Nulo (com controle de fluxo) DTE DTE 26
Conexões DTE x DTE Outra opção de conexão (com menos fios) Nesse caso, o controle de fluxo deve ser realizado por software (Camada de Enlace) Cabo Modem Nulo (sem controle de fluxo) DTE GIL DTEPINHEIRO 27
Resolução de Problemas RS-232 1. Determinar se cada dispositivo é um DTE ou DCE DTE x DCE Cabo Direto DTE x DTE ou DCE x DCE Cabo Cruzado 2. Determinar se é necessário controle de fluxo Sim interligar pinos 7, 8 e 5 entre conectores de acordo com item 1 Não juntar pinos 1-6-4 e pinos 7-8 em cada conector 3. Utilizar Break-Out Box ou um testador RS-232 para monitorar sinais e verificar inversões Break-Out Box Testador RS-232 28
Resolução de Problemas RS-232 Outra facilidade de diagnóstico é o Loopback, que consiste na interligação dos circuitos de dados de um DTE ou DCE para verificar basicamente a integridade de um enlace físico (Camada Física) Necessita de um conector especial chamado Conector Loopback O conector consiste na interligação dos sinais dos circuitos de dados e de controle: TD-RD, CTS-RTS, CD-DSR-DTR Conector Loopback 29
Limitações do RS-232 A velocidade está limitada a 115 kbps em distâncias pequenas A distância é limitada pela capacitância do cabo (Cuidado: cabo mais grosso possui R menor e C maior) RS-232 é uma interface não balanceada (todos os sinais tem o mesmo Signal Ground), é mais susceptível a ruídos, que os padrões RS-422 e RS-485 É necessário que o potencial de terra dos sistemas interligados seja o mesmo. Soluções: isoladores óticos, fibra óptica Driver RS-232 Receptor RS-232 Sinal TTL Potencial Diferença de Aterramentos Sinal TTL 30
Programando a Porta Serial Uma porta serial requer as seguintes etapas na programação: 1. Criar a porta (criar o objeto) 2. Parametrizar a porta 3. Abrir a porta 4. Enviar e/ou receber dados 5. Fechar a porta 31
Programando a Porta Serial No uso contínuo, a etapa 4 pode ser repetida sem necessidade de fechar a porta serial As etapas 1 e 2 podem ser feitas conjuntamente A recepção pode ser feita até que: uma quantidade pré-definida de bytes seja recebida, ou um tempo máximo de espera seja excedido A mensagem é enviada e recebida pela UART no formato binário 32
Programando a Porta Serial Camadas do Programa Programa Aplicativo (Python) Biblioteca Serial (Python) Sistema Operacional (Windows, Linux) Porta RS-232 (Física ou Virtual) Camada do Modelo ISO/OSI 7 2 1 33
Etapas do Programa Loopback #------------------------------------------------------------------------------------------------------------- # Universidade do Estado do Rio de Janeiro # FEN/DETEL - Departamento de Engenharia Eletrônica e Telecomunicações # Disciplina: Redes de Comunicação #------------------------------------------------------------------------------------------------------------ # Programa: loopback_serial.py # Objetivo: Teste de comunicação utilizando a porta serial RS232 # Autor: Prof. Gil Pinheiro # Data: Setembro/2009 #------------------------------------------------------------------------------------------------------------ # Biblioteca de acesso a porta serial import serial # 1 - Cria e parametriza uma porta serial para uso do programa port = serial.serial() port.port = 'COM7' port.baudrate = 115000 port.bytesize = serial.eightbits port.parity = serial.parity_none port.stopbits = serial.stopbits_one port.timeout = 10 # Tempo máximo, em segundos, para receber resposta port.xonxoff = 0 port.rtscts = 0 # 2 - Inicializa a porta serial try: port.open() except serial.serialexception: pass # Inicializou a porta serial sem erros print('abriu porta RS232: %s' % port.portstr) 34
Etapas do Programa Loopback # 3 - Cria mensagem a ser enviada, texto texto = '01234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ' # 4 - Codifica a mensagem em bytes snd_msg = texto.encode() # 5 - Envia a mensagem pela porta serial RS232 port.write( snd_msg ) # 6 - Aguarda e recebe a mensagem de resposta (loopback) buf_size = len( snd_msg ) m = port.read( buf_size ) # 7 - Testa se foi recebido caractere estranho, quando há time-out) if not m.isalnum(): else: print( 'Tempo expirado - Mensagem não chegou' ) # Mostra a mensagem recebida print('recebeu frame: ', m.decode() ) # Compara a mensagem recebida com a enviada if m.decode() == texto: print( 'Mensagem recebida sem erros' ) # 8 - Encerra a porta serial port.close() 35
Topologias Alternativas O padrão RS-232 foi feito para conexões tipo ponto a ponto Não é usual, mas podem ser realizadas outras topologias usando o RS-232: Anel: compondo várias conexões ponto a ponto Estrela: compondo um hub e várias conexões ponto a ponto 36
Rede em Anel com RS-232 Rede em anel de 4 nós (computadores) Pino Tx (3) de um nó conectado ao Rx (2) do próximo nó (seqüência: A-B-C-D-A...) Pinos GND (5) conectados 37