Eletrônica Digital: Parte 5
Transcrição
Eletrônica Digital: Parte 5
Interfaceamento • • • • sinais (dados) dados micro instrumento • instrumento analógico: interface controle controle conversor A/D (voltagem ou corrente) conversor D/A entrada de sinais lógicos (sensores ópticos, portas lógicas) saída de sinais lógicos (acionamento de dispositivos) Interfaceamento controle micro interface dados interface instrumento • instrumento com interface digital: • interfaces: paralelas seriais • interfaceamento: síncrono (com a CPU) assíncrono 1 Interfaces Paralelas • bits transferidos simultaneamente por diferentes linhas • 8 bits = 8 linhas de transmissão de dados • linhas de controle • Centronics: - 8 bits paralelos - 2 linhas de “handshaking” - linhas para sinais de controle - linhas para detecção de erro (impressora) - pode ser bidirecional • IEEE 488: - HPIB: Hewlett Packard Interface Bus - GPIB: General Purpose Interface Bus - 8 bits, sinal TTL - transmissão até 1Mbyte/s - 3 linhas de “handshaking” - 5 linhas de controle - conexão de até 15 dispositivos (seleção por hardware) Interfaces Paralelas • porta do usuário: - PPI 8255 - 3 portas de 8 bits de entrada e/ou saída de dados • interfaces multi-tarefas: - PCL-711/811/812 - saída digital (16) - entrada digital (16) - conversor A/D (8 entradas) - conversor D/A 2 Slot de Expansão - ISA GND RESET DRV +5 V IRQ2 -5 V DRQ2 -12 V reserved +12 V GND -MEMW -MEMR -IOW -IOR -DACK3 DRQ3 -DACK1 DRQ1 -DACK0 CLOCK IRQ7 IRQ6 IRQ5 IRQ4 IRQ3 -DACK2 T/C ALE +5 V OSC GND -I/O CH CK D7 D6 D5 D4 D3 D2 D1 D0 I/O CH RDY AEN A19 A18 A17 A16 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 B1 A5 B10 A15 B20 A25 B30 • conector de 62 vias • barramento de dados de 8 bits • barramento de endereços de 20 bits Interface Programável 8255 CS • • • • LATCH A0 A1 LATCH reset porta A porta B LATCH read write BUFFER barramento de dados LÓGICA DE CONTROLE portas E/S porta C 4 registradores de 8 bits: 1 registrador controla 3 portas I/O programação: portas A-C I/O, sem handshaking; portas A-B I/O, com handshaking (C) inicialização: reset = LO (ligado direto ao micro) acesso: chip select (CS) ; linhas de endereço (A0 e A1); read e write (8255 responde se uma delas em LO) 3 Conexões da Porta 8255 Slot de expansão + 5V B3 D0 A9 34 D1 A8 33 D2 A7 32 D3 A6 31 D4 A5 30 D5 A4 29 D6 A3 28 D7 A2 27 IOR B14 5 IOW B13 36 A0 A31 9 A1 A30 8 RST B2 35 6 AEN A11 Vcc D0 PA0 D1 PA1 D2 PA2 D3 PA3 D4 PA4 D5 PA5 D6 PA6 D7 PA7 PB0 RD PB1 8 2 5 5 A WR A0 A1 RST CS PB2 PB3 PB4 PB5 PB6 PB7 PC0 74LS32 A4 A27 A9 A8 A7 A6 A5 A3 DB fêmea 25 pinos 26 A22 PC1 PC2 74LS32 A23 A24 PC3 A25 PC4 A26 PC5 A28 74LS30 PC6 + 5V PC7 GND + 5V 4 6 3 5 2 entrada e saída de dados 1 40 39 38 3 2 1 14 37 15 18 17 STR 18 ACK 19 20 21 22 23 24 25 14 15 16 17 13 12 11 10 74LS32 7 GND B1 4 21+16 GND Endereçamento da 8255 • endereçamento: CS = LO • decodificação: A3 - A9, com NAND (74LS30) e OR (74LS32) • CS = 0: (A3 + A5-A9) = 1 e A4 = 0 • endereço: 3E8h - 3EFh = 1000 - 1007 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 X X 1 1 1 1 0 1 X X X X X X X X X X X 1 1 0 • endereço válido: AEN = 0 • • • • • IOW = 0: dados copiados do bus para o registrador IOR = 0: dados copiados do registrador para o bus IOW = IOR = 1: 8255 não opera IOW = IOR = 0: erro! A0 e A1: acesso às portas (registros) - 002: porta A (1000) - 012: porta B (1001) - 102: porta C (1002) - 112: acesso à 8255 (1003) 4 Programação da 8255 7 6 5 4 3 2 1 0 1 1 X X X 0 0 1 • porta A: entrada e saída de dados, com handshaking • porta B: saída de dados • porta C: 5 bits de controle e PC0 - PC2 = entrada • byte de controle: 193 porta C (lower): 1 = in 0 = out porta B: 1 = in 0 = out B mode: 0 = mode 0 1 = mode 1 porta C (upper): 1 = in 0 = out porta A: 1 = in 0 = out A mode selection: 00 = mode 0 01 = mode 1 1X = mode 2 mode set flag: 1 = active Modo 2 e Modo 0 da 8255 • modo 2 e modo 0: bits da porta C respondem às transições nas linhas de controle PCx (PC4 e PC6) PC3 PA7 - PA0 PC7 INTR 8 bits OBF RD PC6 ACK WR PC4 STB PC5 IBF PC2 - PC0 I/O PB7 - PB0 8 bits 5 Modo 2 e Modo 0 da 8255 • saída de dados através de PA: OBF (output buffer full): LO se a CPU escreveu na porta A ACK (acknowledge): LO habilita saída de dados pela porta A • entrada de dados pela porta A: STB (strobe input): LO carrega dados no latch de entrada IBF (input buffer full): HI inidica que os dados foram carregados no latch de entrada Saída de Dados com handshaking • saída de dados: OUT 1003, 193 ‘ configura 8255 OUT 1001, 3 ‘ PB0 = HI, ACK para PC6 OUT 1000, dado% ‘ coloca dado no bus (OBF = LO) OUT 1001, 2 ‘ PB0 = LO STR: OUT 1001, 3 ‘ PB0 = HI WHILE (INP(1002) AND 128) = 0: WEND ‘ espera ACK em PC6 RETURN • ACK em PC6: OBF = PC7 = HI (dados enviados) 6 Entrada de Dados com handshaking • entrada de dados: OUT 1003, 193 ‘ configura 8255 OUT 1001, 5 ‘ PB0 = HI, ACK para PC4 OUT 1001, 4 ‘ PB0 = LO STR: OUT 1001, 5 ‘ PB0 = HI WHILE (INP(1002) AND 32) = 0: WEND ‘ espera ACK em PC4 dado% = INP(1000) ‘ lê e armazena dado em dado% RETURN • ACK em PC4: IBF = PC5 = HI (dados disponíveis) Decodificação de Endereços 10 K +5 V CI 4069 ACK +5 V CI 4013 14 7 CLK D1 Q1 Q1 SET RST 3 5 2 1 4 6 STR CI 4068 CI 4001 10 K +5 V 11 b a r r a m e n t o LSB 3 d e 4 d a d o s 8 MSB 1 LE OE 14 7 4 L S 3 7 17 3 7 13 2 LSB 6 9 12 20 +5 V 10 10 K 15 16 19 MSB 18 A/D 5 +5 V latch output (254) latch output D/A (253) latch input (251) input A/D (247) 7 Saída de Dados Digitais bit 0 = 254 11 b a r r a m e n t o LSB 3 LE 4 d e d a d o s 7 8 13 14 17 + 12 V 1 2 LSB OE 5 7 4 L S 3 7 3 6 válvula solenóide 9 12 15 16 MSB 18 19 MSB 20 1N4007 TIP 121 10 K 10 +5 V Saída de Dados Digitais endereço dado (out) STR ACK OUT 1003, 193 . . OUT 1001, 3 OUT 1000, ender% OUT 1001, 2 OUT 1001, 3 WHILE (INP(1002) OUT 1000, dado% OUT 1001, 2 OUT 1001, 3 WHILE (INP(1002) RETURN ‘ configura 8255 ‘ PB0 = HI, ACK para PC6 ‘ coloca endereço no bus (OBF = LO) ‘ PB0 = LO STR: ‘ PB0 = HI AND 128) = 0: WEND ‘ espera ACK em PC6 ‘ coloca dado no bus (OBF = LO) ‘ PB0 = LO STR: ‘ PB0 = HI AND 128) = 0: WEND ‘ espera ACK em PC6 • ACK em PC6: OBF = PC7 = HI (endereço/dado enviados) 8 Entrada de Dados Digitais bit 2 = 251 +5 V 1 b a r r a m e n t o 11 LSB 2 OE LE d e 5 d a d o s 9 3 LSB +5 V 4 7 4 L S 3 7 3 6 12 15 16 7 8 12 K +5 V 1,2 K 13 14 PCST 2103 17 MSB 19 18 MSB 10 20 +5 V Entrada de Dados Digitais endereço dado (in) STR ACK OUT 1003, 193 ‘ configura 8255 . . OUT 1001, 3 ‘ PB0 = HI, ACK para PC6 OUT 1000, ender% ‘ coloca endereço no bus (OBF = LO) OUT 1001, 2 ‘ PB0 = LO STR: OUT 1001, 3 ‘ PB0 = HI WHILE (INP(1002) AND 128) = 0: WEND ‘ espera ACK em PC6 OUT 1001, 5 ‘ PB0 = HI OUT 1001, 4 ‘ PB0 = LO WHILE (INP(1002) AND 32) = 0: WEND ‘ espera ACK em PC4 dado% = INP(1000) ‘ lê dado e armazena em dado% OUT 1001,5 ‘ PB0 = HI RETURN • ACK em PC6: OBF = PC7 = HI (endereço enviado) • ACK em PC4: IBF = PC5 = HI (dados disponíveis) 9 Entrada de Dados - A/D +5 V d e 17 2 RD WR 16 BUSY 15 14 ZN448 b a r r a m e n t o LSB 18 2 3 5 B 1 bit 3 = 247 d a d 13 o 12 s MSB 11 4528 4 7 Q1 1 12 7 8 9 390 R ACK 8 4 A1 Q2 9 B2 A2 15 14 13 11 16 +5 V +5 V 4,7 F 10 +5 V -5 V 5 Vin 1 82 K Saída de Dados - D/A bit 1 = 253 d e d a d o s 1 16 15 14 4 enable 5 6 ZN428 b a r r a m e n t o LSB 2 Vout 390 R +5 V 4,7 F 3 7 13 10 12 8 MSB 11 9 +5 V 10 Interfaces Seriais • bits transferidos sequencialmente por uma única linha • 8 bits = 1 linha de transmissão • linhas de controle (podem ser usadas ou não) RS232C • poucos cabos: unidirecional: 2 linhas (dado + gnd) bidirecional: 3 linhas (2 dados + gnd) • longas distâncias: 15 m ou mais • velocidade: até 20 kbyte s-1 • assíncrona: UART (universal asynchronous receiver and transmitter) interconverte serial - paralelo • transmissão: caracter (e não byte) • níveis: ±3 V a ± 25 V (não é TTL ou CMOS) nível 0: + V nível 1: - V RS232 duração do bit +V b0 1 b6 0 0 1 nível 0 0 1 1 -V nível 1 start bit bits do dado stop bits bit de paridade 11 RS232 • transmissão: - start bit - bits do dado: 5, 6, 7 ou 8 - bit de paridade: par, ímpar ou nenhum - stop bit: 1; 1,5 ou 2 • baud rate: velocidade de transmissão (bits s-1) 110, 150, 300, 600, 1200, 2400 3600, 4800, 9600, 19200 • caracter: ASCII (American Standard Code for Information Interchange) The American Standard Code for Information Interchange dec 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 hex character name dec hex 00 NUL null character 33 21 01 SOH start of heading 34 22 02 STX start text 35 23 03 ETX end text 36 24 04 EOT end of transmission 37 25 05 ENQ enquiry 38 26 06 ACK acknowledge 39 27 07 BEL ring bell 40 28 08 BS backspace 41 29 09 HT horizontal tab 42 2A 0A LF linefeed 43 2B 0B VT vertical tab 44 2C 0C FF formfeed 45 2D 0D CR carriage return 46 2E 0E SO shift out 47 2F 0F SI shift in 48 30 10 DLE data link escape 49 31 11 DC1 device control #1 50 32 12 DC2 device control #2 51 33 13 DC3 device control #3 52 34 14 DC4 device control #4 53 35 15 NAK negative acknowledge 54 36 16 SYN synchronous idle 55 37 17 ETB end transmission block 56 38 18 CAN cancel 57 39 19 EM end medium 58 3A 1A SUB substitute 59 3B 1B ESC escape 60 3C 1C FS file separator 61 3D 1D GS group separator 62 3E 1E RS record separator 63 3F 1F US unit separator 64 40 20 SP space chr ! “ # $ % & ‘ ( ) * + , . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ dec 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 hex 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F 60 chr A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` dec 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 hex 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F chr a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~ del 12 Conexão da RS232C padrão “ Este padrão é aplicável à interconexão de um terminal de dados (DTE: data terminal equipment) e um equipamento de comunicação de dados (DCE: data communication equipment), empregando uma troca de dados binários seriais” terminal modem modem terminal DTE DCE DCE DTE RS232 RS232 Conexão da RS232C padrão pino 1 2 3 4 5 6 7 8 20 1 13 14 25 direção (p/) abreviação nome GND protective ground DCE TxD transmitted data DTE RxD received data DCE RTS request-to-send DTE CTS clear-to-send DTE DSR data set ready GND logic ground DTE DCD carrier detect DCE DTR data terminal ready 13 Transferência de Dados • tipo: - simplex: uma única direção - half-duplex: uma direção de cada vez - full-duplex: 2 direções simultâneas • etapas: 1. terminal (DTE) e modem (DCE) concordam que a transferência de dados pode ocorrer 2. transferência de dados ocorre 3. DTE e DCE concordam que a transferência terminou • comunicação só ocorre quando: - DTE verifica que DSR = HI (data set ready = true) - DCE verifica que DTR = HI (data terminal ready = true) Transferência de Dados • half-duplex: DTE enviando dado ao DCE - DTE: RTS = HI (request to send) / quer enviar dado - DCE: verifica se DCD = LO (carrier detect) / se não está enviando dado - DCE: CTS = HI (clear to send) / pronto para receber dado - DTE: verifica CTS , se HI, envia dado e mantem RTS = HI , se LO, coloca RTS = LO e volta ao início - DTE: coloca RTS = LO / final da transmissão se DCE quer enviar dado, coloca DCD = HI • full-duplex: RTS = CTS = DCD = HI 14 Conexões entre RS232 • dispositivo pode ser terminal ou modem - terminal: transmite pelo pino 2 recebe pelo pino 3 - modem: transmite pelo pino 3 recebe pelo pino 2 GND TxD RxD 1 2 3 1 2 3 GND TxD RxD RTS CTS 4 5 4 5 RTS CTS DSR GND 6 7 6 7 DSR GND DCD DTR 8 20 8 20 DCD DTR terminal modem GND T xD R xD RTS CTS DCD GND D SR 1 2 3 4 5 8 7 6 DTR 20 terminal 1 2 3 4 5 8 7 6 GND T xD R xD RTS CTS DCD GND DSR 20 DTR terminal Conexões entre RS232 sinal TxD RxD RTS CTS DSR GND DCD DTR RI DB 25 pinos 2 3 4 5 6 7 8 20 22 DB 9 pinos 3 2 7 8 6 5 1 4 9 • porta serial RS232 do micro: - terminal (DTE) - assíncrona - 2 portas controladas simultaneamente: COM1 COM2 - half-duplex ou full-duplex 15 Protocolo de Comunicação • QuickBasic: OPEN “COMX: baud, paridade, bits, stop bits” AS #y baud rate: 75, 110, 300, 600, 1200, 1800, 2400 e 9600 paridade: N (desabilitada), O (ímpar), E (par) bits: 5, 6, 7 ou 8 stop bits: 1, 1,5 ou 2 OPEN “COM1: 9600, N, 8, 1 AS #5 PRINT #5, dado$ ‘ envia dado INPUT #5, dado$ ‘ lê dado OPEN “COM1: 9600, N, 8, 1 AS #5, RS, CS0, DS0 AS #5 RS: RTS não é usado CS0: ignora CTS DS0: ignora DST USB - Universal Serial Bus • motivação: conexão do PC a telefone facilidade de uso expansão de portas • interface de comunicação serial • transmissão de até 12 Mbps (1,5 Mbps no modo baixa velocidade) • conexão de impressoras, mouses, teclados, vídeos, joystick, discos flexíveis, cameras, modems, scanners e outros dispositivos • conexão pode ser feita com o micro ligado • micro normalmente possui 4 portas USB • conexão de até 127 dispositivos (teoricamente), com uso de hubs • hubs podem ser alimentados externamente ou não • cabos de até 5 m de comprimento 16 Conexão: USB - Universal Serial Bus Protocolo do barramento: • computador (host controller) inicia qualquer transferência de dados • transação envolve a transmissão de 3 pacotes - pacote de sinalização (token packet): tipo e direção da transação endereço do dispositivo USB - fonte da transação envia pacote de dados - destino responde com um pacote de handshaking Conectores - USB 17