Prévia do material em texto
PROJETO DE SISTEMAS MICROPROCESSADOS AULA 2 Prof. Charles Way Hun Fung 2 CONVERSA INICIAL Nesta aula iremos estudar sobre os protocolos que os microprocessadores utilizam para se comunicar com os periféricos. Esta comunicação obedece a diversos padrões, os quais possuem características que devem ser obedecidas para ocorrer a troca de dados. A seguir serão apresentados os conceitos básicos, as formas de comunicação e os protocolos de comunicação. TEMA 1 – CONCEITOS BÁSICOS Canal de comunicação É o caminho pelo qual a informação irá trafegar; por exemplo: fio, ar etc. Nestes canais trafegam bits de dados individuais que são encapsulados em bytes. Um conjunto de bytes transmitidos é conhecido como frame. Mensagem Todo dado transmitido em um canal de comunicação é chamado de mensagem, ou seja, todo byte transmitido é considerado uma mensagem. Protocolo É um conjunto de princípios, regras e técnicas usados para viabilizar a comunicação. Este conceito pode ser aplicado às diversas formas de comunicação que temos. Por exemplo: uma pessoa fala português e outra fala japonês: estas duas pessoas não irão se entender, pois suas linguagens são diferentes. Porém, mesmo se falarem a mesma língua, mas não estruturarem as frases de forma correta, não haverá total compreensão entre os falantes. Por isso, para uma comunicação ser estabelecida, deve-se seguir as mesmas regras de linguagem, sintaxe e formato. Os protocolos devem, portanto, possuir as seguintes características: Existência de transmissor e receptor; Handshake (estabelecimento de conexão); Características de uma conexão: taxa, topologia, número de periféricos; Inicialização e finalização de mensagens; 3 Formato das mensagens; Tratamento de mensagens com erros; Tempo de espera, tratamento de exceções; Término de sessão ou conexão. Canal simplex De acordo com Canzian (2015), é um canal no qual a direção da transmissão é inalterada. Por exemplo: a estação de rádio sempre transmite o sinal para os ouvintes. Canal half-duplex É semelhante ao canal simplex, entretanto a direção do sinal pode ser invertida, porém, só um transmissor pode enviar o sinal por vez, como ocorre em uma chamada telefônica: enquanto uma pessoa fala, a outra escuta. Se as duas tentarem falar ao mesmo tempo, a comunicação não ocorrerá. Canal full-duplex É um canal que permite a transmissão e recepção simultâneas; pode-se entender como o uso de um canal simplex para transmissão e outro para a recepção dos dados. Um exemplo disso é o telefone: é possível falar e escutar simultaneamente. Taxa de transferência (baud rate) É a velocidade com que os dados são transmitidos pelo canal; sua unidade é o baud. Como ocorre uma transição de sinal por bit, a taxa de transferência é equivalente à taxa de bit (bit rate). Por exemplo: uma das taxas da serial é de 9600 bauds, ou de 9600 bits/s. Comunicação síncrona Cada bloco de informação é transmitido e recebido em um instante de tempo bem definido e conhecido por todos os dispositivos presentes no canal de comunicação. Os dispositivos devem estar sincronizados para manter este padrão de comunicação; isto é feito segundo algum sinal padronizado e periódico – normalmente, o clock. 4 Comunicação assíncrona Segundo Axelson (1998), é uma forma de comunicação que não é organizada pelo clock, ou seja, cada bloco de informação contém a informação de controle (flag), para que se saiba exatamente onde começa e termina o bloco de comunicação de dados e qual sua posição na sequência de informação transmitida. Para fazer uma analogia, imagine que a informação é como bolas colocadas em um tubo. No caso da comunicação assíncrona, as bolas seriam numeradas para identificação de ordem, enquanto que na síncrona a ordem de chegada das bolas diria qual é a ordem. TEMA 2 – PROTOCOLO SERIAL O conceito da comunicação serial é simples: a porta serial envia e recebe dados um bit por vez. Embora esta comunicação seja mais lenta que a paralela, a qual consegue enviar um byte ou até mais bits por vez. É mais utilizada por ser mais simples e consegue alcançar maiores distâncias. A serial normalmente transmite dados ASCII; a comunicação é realizada por pelo menos três fios: terra (GND), transmissão (TX) e recepção (RX). Como a serial é assíncrona, pode transmitir e receber dados simultaneamente. As características mais importantes da serial são: taxa de transmissão (baud rate), bits de dados (data bits), bits de parada (stop bit) e paridade. A figura 1 apresenta o formato da serial (NATIONAL INSTRUMENTS, s/d). Figura 1: Formato típico da serial Fonte: . 5 Bit de dados (Data bits) São os bits de dados que são transmitidos em um pacote de serial; os valores padrões para dados são 5, 7 e 8 bits. Dependo da configuração feita e dos dados a serem transmitidos, os dados que são transmitidos podem, por exemplo, estar em formato ASCII, seguindo os dados da tabela da Figura 2. O formato de 7 bits é capaz de transmitir dados de 0 a 127 ou 8 bits valores de 0 a 255, como o extended ASCII. O pacote refere-se a transmissão de um único byte, considerando bits de início e fim, bit de dados e paridade. (NATIONAL INSTRUMENTS) Figura 2: Tabela ASCII Fonte:. 6 Bit de parada É usado para sinalizar o fim da comunicação para um único pacote. Os valores típicos são 1, 1.5 e 2 bits (Axelson, 1998). Os sistemas que usam a comunicação serial nem sempre estão sincronizados; uma das razões pode ser a diferença de clock ou tempos diferentes. Este bit provê uma margem de erro para compreensão do pacote. Bit de paridade Ruídos e distorções elétricas podem causar mudança nos dados, de forma que se o receptor falhar na detecção deste erro a mensagem recebida será considerada incorreta (Axelson, 1998). De forma a prevenir estes erros são colocados bits de redundância ou paridade para esta detecção. O método empregado é o de paridade par: neste método o número de bits 1 + o bit de paridade é par. Assim quando o hardware receptor computar o número de bits 1, fará uma comparação. Caso sejam diferentes é verificado o erro. Caso um número par de bits forem modificados, a mensagem errada será validada, porém, estatisticamente a chance de dois ou mais bits serem modificados é muito pequena. RS-232: recommended standard (“padrão recomendado”) O protocolo RS-232 está na norma ANSI/EIA-232 é a conexão serial encontrada nos PCs compatíveis com IBM. É utilizado para diversos propósitos, como conectar mouse, modem, impressora e instrumentos industriais. O RS-232 é limitado em distância de aproximadamente 16 metros, segundo a norma. A figura a seguir apresenta a pinagem. Figura 3: Pinagem da serial no conector DB9 7 A tabela 1 descreve os pinos mais utilizados pelo protocolo RS-232. Tabela 1: Descrição dos pinos da serial RS-232 no conector DB9 Fonte: . A serial tem uns termos normalmente utilizados em documentos técnicos: USRT – Universal Synchronous Receiver/Transmitter; UART – Universal Asynchronous Receiver/Transmitter; USART – Universal Synchronous/Asynchronous Receiver/Transmitter. O protocolo RS-232 estabelece regras para comunicação entre uma fonte e um ou dois equipamentos. DTE (Data Terminal Equipment) – equipamento que faz o processamento do sinal: transmissão e recepção dos dados. DCE (Data Communication Equipment) – É o equipamento que realiza a conexão e faz a conversão do sinal para o circuito de comunicação. As figuras 4 e 5 apresentam a arquiteturada comunicação RS-232, DTE com DCE e DTE com DTE. Figura 4: Arquitetura RS-232 conexão DTE com DCE Fonte: . 8 Figura 5: Arquitetura RS-232 conexão DTE com DTE Fonte: . Para fazer um controle de velocidade, no caso de dispositivos mais lentos, foi implementado um controle de fluxo. Este pode ser realizado de duas formas: por software ou por hardware. Por hardware: são utilizados os pinos RTS e CTS para controle de recepção e transmissão dos dados. RTS indica que o dispositivo está pronto para receber um dado, enquanto que CTS indica que está pronto para transmitir um dado. Por software: usa dois caracteres ASCII para representar que o transmissor pode enviar dados para XON e parar a transmissão para XOFF. XON é representado por ASCII 17, e XOFF é representado por ASCII 19. Neste caso, não poderá ser feito o uso destes caracteres na transmissão/recepção. RS-485 É uma melhoria do protocolo RS-232 que aumenta o número de dispositivos que podem ser conectados de 10 para 32 e define tensões de sinais adequados para carga máxima. Com esta capacidade reforçada é possível criar uma rede de dispositivos conectada a uma única porta RS-485. O hardware para comunicação serial pode chegar a uma distância 1,2 Km de cabos. A tabela 2 apresenta a pinagem da RS-485. (NATIONAL INSTRUMENTS) Tabela 2: Descrição dos pinos da serial RS-485 no conector DB9. 9 TEMA 3 – PROTOCOLO SPI (SERIAL PERIPHERAL INTERFACE) SPI é um protocolo mestre/escravo que é utilizado para conectar dispositivos e chips de forma que consigam trocar informações entre si. Inicialmente foi utilizado para conectar computadores a periféricos, como impressora, scanner, câmeras etc. Porém, o crescimento da USB (Universal Serial Bus) fez com que o protocolo SPI ficasse sendo usado apenas para comunicação entre circuitos integrados e chips, sendo um importante método usado extensivamente para interfaceamento com memórias EEPROM, FLASH, controladores LCD, conversores de sinal etc. O modo de funcionamento é full-duplex, ou seja, seus periféricos conseguem transmitir e receber dados simultaneamente. Porém não é um protocolo padronizado, por isso há possibilidade de encontrar algumas variações dependendo do fabricante. O funcionamento do SPI é baseado em 4 fios: SCLK, MOSI ou DO, MISO ou DI, e SS ou CS. Este pinos são descritos na tabela 3. Tabela 3: Descrição dos pinos usados no protocolo SPI Pino Nome Descrição SCLK Serial clock É o clock gerado pelo mestre (os escravos apenas leem este sinal) utilizado para fazer a sincronização dos dados. MOSI ou DO Master output, slave input ou data output É o pino reservado para enviar dados seja o chip mestre, seja o escravo. MISO ou DI Master input, slave output ou data input É o pino reservado para receber dados tanto do chip mestre como ou escravo. SS ou CS Slave select ou select device ou chip select Geralmente é ativo baixa, e indica no barramento qual dispositivo escravo tem permissão para enviar/receber dados no barramento de dados. Este fio é opcional em um sistema com um único escravo. Fonte: . O dispositivo mestre controla toda a comunicação; por meio do clock, o dispositivo decide quando o dado é enviado para o periférico ou recebe o dado vindo de algum periférico. Pelo fato de a comunicação ser full-duplex, é possível o mestre enviar dados para um periférico e simultaneamente receber dados deste mesmo dispositivo ou de algum outro. Usando o sinal SS é possível 10 selecionar o periférico que será acessado. A figura a seguir apresenta um diagrama de uma conexão mestre e escravo. Figura 6: Comunicação entre mestre e escravo. A figura 6 demonstra que na comunicação há um buffer que armazena os dados transmitidos e recebidos; pode-se notar que o pino MOSI é usado para transmissão dos dados mestre para o escravo. Da mesma forma, o pino MISO é usado para enviar os dados do escravo para o mestre. Um exemplo de arquitetura SPI é apresentado na Figura a seguir: Figura 7: Arquitetura de uma comunicação SPI com três periféricos Como mostrado na Figura 7, os pinos SCLK, MOSI e MISO são compartilhados por todos os escravos, e definem a sincronização e o envio e recebimento dos dados. Para a seleção dos escravos, basta o mestre selecionar o pino SS respectivo do periférico que deseja comunicar. O protocolo possui 4 métodos de transmissão e sincronização de dados entre transmissor e receptor usando o clock, o qual pode ter sua fase e 11 polaridade configuradas de acordo com o modo de transmissão que será usado. A polaridade é usada pelo sinal CPOL e a fase por CPHA. A tabela 4 mostra a definição dos modos de transmissão. (PINHEIRO, s/d) Tabela 4: Modos de transmissão do SPI Modo CPOL CPHA 0 0 0 1 0 1 2 1 0 3 1 1 Figura 8: Diagrama temporal dos modos de transmissão do SPI A figura 8 ilustra a diferença dos modos de transmissão pelo diagrama temporal. CPOL indica se o padrão do clock para nível baixo é zero (CPOL=0) ou nível lógico alto (CPOL=1). Quando CPHA é igual a zero, os dados são lidos na borda de subida do clock. Logo quando CPHA é 1, a referência é invertida, ou seja, os dados são lidos na borda de descida do clock. Estes modos fazem o protocolo trabalhar com uma diferença de fase de 180°. TEMA 4 – PROTOCOLO I2C (INTER-INTEGRATED CIRCUIT) Este é um barramento serial criado pela Philips na década de 1980 para comunicação em baixa velocidade entre dispositivos e o computador ou microcontrolador. Para a interface com este protocolo funcionar, o dispositivo que se deseja que faça interface deve possuir algum hardware ou circuitos adaptados para este tipo de comunicação. Também é possível usar um circuito 12 integrado como SC16IS750, que disponibiliza e faz adaptação dos níveis lógicos para trabalhar com o I2C. Outra abordagem é adaptar dois pinos e por software obedecer às linhas de tempo do protocolo. Este método é chamado de bit-bang. O funcionamento do I2C é baseado em dois fios: SDA e SCL. Possui também a alimentação típica de 3,3 V ou 5 V. Ambos os pinos de comunicação devem possuir resistores de pull-up para manter o nível padrão em alto; a Figura a seguir ilustra o barramento I2C: Figura 9: Barramento I2C Fonte: . A quantidade de dispositivos em um único barramento pode variar de acordo com a versão do I2C utilizado, podendo ser de 7 bits, 10 bits ou 16 bits. Porém, a maior limitação é o comprimento máximo dos fios, que é de poucos metros, pois se ultrapassar a capacitância total máxima pode passar um valor limite (400pf), o que impediria a comunicação. De acordo com Faria (2010), a velocidade da comunicação evolui com o tempo, e com o passar dos anos foram criados 4 grupos bem definidos de velocidade: Standard-mode (Sm): bit rate de até 100 kbit/s; Fast-mode (Fm): bit rate de até 400 kbit/s; Fast-mode plus (Fm+): bit rate de até 1 Mbit/s; High-Speed mode (HS-mode): bit rate de até 3,4 Mbit/s. 13 Há dois tipos de dispositivos neste barramento: mestre e escravo. O primeiro é aquele que organiza e coordena todos os periféricos, enquanto que o escravo são todos os periféricos que estão ligados ao barramento. O pino SCL é responsável pelo clock do barramento e o pino SDA pela transmissão de dados. Por padrão e pelos resistores de pull-up nos dois pinos, o nível do barramento é alto; para iniciar uma comunicação, o SDA é colocado em nível lógico baixo pelo mestre. A escrita no barramento se faz para cada pulso produzidoem SCL, ou seja, para cada pulso de clock é feita a leitura de um bit no pino SDA. O dado lido em SDA começa pelo bit mais significativo – MSB (most significant bit). A figura a seguir demonstra o início e final do envio de dados. Figura 10: Sequências de início e fim de envio de dados Após a sequência de inicialização, o mestre deve enviar o endereço do periférico que vai comunicar, por exemplo: 0x20; caso o dispositivo exista, haverá uma resposta em formato de ACK (acknowledge), que será um pulso na linha SCL. A seguir começará a transferência de dados. O mestre escreve o endereço do registrador no escravo que ele deseja ler ou escrever e o executa em sequência, podendo ler/escrever um ou mais registradores. A figura 11 apresenta um exemplo de como a escrita/leitura funcionam no barramento. Figura 11: Funcionamento do barramento I2C 14 Em casos que o periférico não consiga tratar o dado que o mestre enviou, o escravo pode forçar o nível de SCL para baixo, informando assim o mestre que deve entrar em modo de espera. Assim, quando a linha estiver livre o envio de dados recomeça. Após qualquer escrita ou leitura de um byte no barramento, o dispositivo receptor envia um bit de reconhecimento ACK. Este reconhecimento é obrigatório para uma boa fluência da comunicação. A sequência de envios e recebimentos da linha SDA é mostrada na figura a seguir: Figura 12: Sequência de comandos no barramento I2C Fonte: . Conforme Fonseca (2016), o formato padrão do endereço é constituído por 7 bits de endereço; dentre estes bits, os primeiros 4 especificam o tipo do dispositivo escravo a ser acessado. Os outros 3 bits especificam de um até oito dispositivos daquele tipo, a ser acessado. O bit R/W indica que quando estiver em 1, é uma leitura e em 0, uma escrita. TEMA 5 – OUTROS PROTOCOLOS USADOS COM MICROCONTROLADORES Os protocolos mais utilizados para comunicação entre dispositivos são serial (RS-232), I2C e SPI. No entanto, não são os únicos: para diversos casos o uso de algum destes protocolos não é indicado. Por exemplo: em comunicações mais lentas, é possível usar apenas um fio e o terra (One Wire), ou em aplicações automotivas; é importante existir uma comunicação entre os dispositivos que não faça uso do microcontrolador (CAN); neste tema, iremos abordar estes protocolos. 15 One wire (1-Wire) Protocolo desenvolvido pela Dallas Semiconductors (Maxim), segue uma ideia semelhante ao I2C, porém, não usa o pino SCL, ou seja, só um fio e o terra. Este fio pode ser usado para alimentação dos periféricos, por isso, é recomendado o uso de um resistor de pull-up. Nessa configuração é possível colocar diversos dispositivos em rede, a qual é chamada de MicroLan. A figura a seguir apresenta a ligação com um dispositivo. Figura 13: Conexão 1-Wire com um dispositivo Figura 14: Rede MicroLan A transmissão dos dados é bit sequencial, com a transmissão do bit menos significativo primeiro, e suporta duas velocidades de comunicação: standard, com taxa de 15,4kbps e Overdrive, de 125 kbps. Os dispositivos recebem de fábrica um endereço padrão de 64 bits, chamado id, que será usado para a comunicação com este dispositivo pelo mestre. Os 8 bits menos significativos representam o tipo do dispositivo e 8 bits mais significativos é padrão do One Wire com 8 bits de CRC. A comunicação é inicializada com um pulso de reset do dispositivo master. Este pulso é feito colocando o barramento em nível baixo por pelo menos 480 µs. Depois disto, o dispositivo escravo responde colocando o barramento em nível baixo em um tempo entre 60 µs a 240 µs. A figura 15 ilustra este evento: 16 Figura 15: Inicialização da comunicação no protocolo One Wire Fonte: . Na comunicação, o tempo de duração do pulso determina se o bit transmitido é 1 ou 0. Um pulso curto de no máximo 15 µs equivale ao bit 1, enquanto que o bit 0 é um pulso longo que no mínimo é 60 µs, e no máximo 120 µs. A figura 16 ilustra os bits no barramento. Figura 16: Bit 0 e bit 1 no barramento One Wire. Fonte:. Protocolo CAN (Controller Area Network) O protocolo CAN foi desenvolvido pela Bosch em 1986 com o intuito de diminuir a quantidade e o tamanho dos cabos na indústria automobilística. O objetivo era usar a rede CAN para interconexão de componentes de controle em veículos. A rede CAN é padronizada mundialmente pela resolução ISO 11898, gerada pela International Society of Organization (Miranda, 2010). Devido às 17 suas excelentes características, as redes CAN vêm sendo utilizadas em aplicações industriais, com alto índice de sucesso. O protocolo CAN possui as seguintes características: Protocolo digital e comunicação serial síncrona; Detecção de colisões; Priorização de mensagens; Grande flexibilidade de configuração; Recepção multicast; Garantia de consistência dos dados; Detecção/sinalização de erros; Retransmissão automática de mensagens corrompidas. (CAMPOS; SIMONE; AFFONSO, 2005) Segundo Guimarães (2003), o protocolo CAN é dividido em duas camadas, segundo o modelo ISO/OSI: data link layer (camada de enlace) e physical layer (camada física). A camada física é responsável pela codificação e decodificação dos bits, temporização de bit e sincronização. Possui duas velocidades definidas por norma: ISO11898: Alta velocidade de transmissão de 125kbps a 1Mpbs. ISO11519-2: Baixa velocidade de transmissão – 10kbps a 125kbps. A velocidade de transmissão também pode variar com a distância, segundo a tabela a seguir: Tabela 5: Taxa de transmissão pela distância Taxa Kbit/s Distância máxima (m) 1000 40 500 130 250 270 125 530 100 620 50 1300 20 3300 10 6700 5 10000 18 A camada de enlace possui um controle lógico (LLC – logical link control) e um controle de acesso (MAC – medium acesses control). O LLC é responsável por recepção, filtragem, notificação de overload e gerenciamento de recuperação. O MAC é responsável por: encapsulamento/desencapsulamento dos dados, codificação dos quadros, gerenciamento de acesso ao meio, detecção e sinalização de erros, reconhecimento, serialização/desserialização. O barramento CAN utiliza 4 tipos de quadros para controlar a transferência de mensagens: Quadro de dados (data frame): mensagem que enviada à rede para informações sobre o sistema e transmissão de dados. Por exemplo: o status da temperatura no sistema. Quadro remoto (remote frame): solicitação de informações para o sistema. Por exemplo: uma solicitação pelo sistema de para-brisa para verificação se há água no reservatório. Quadro de erro (error frame): serve para indicar que está ocorrendo alguma falha. Quadro de sobrecarga (overload frame): serve para indicar que o dispositivo está ocupado ou que não pode responder no momento. (MIRANDA; LACERDA, 2005). O barramento CAN é formado por dois fios paralelos no formato de par trançado. Estes fios formam uma linha de transmissão com impedância de 120Ω. Para possibilitar uma alta taxa de transferência, a linha utiliza resistores de carga nas pontas evitando sinais refletidos e distorções. A figura 17 ilustra o barramento CAN: Figura 17: Barramento CAN 19 Cada dispositivo no barramento pode ser um mestre, ou seja, é possível ter diversos dispositivos mestres no mesmo barramento. Os CAN nodes podem ser quaisquer dispositivos: sensor, atuador, central de controle etc. Cada node precisa dos seguintes itens: Unidade central de processamento: É o microprocessador que interpreta os dados recebidos e decide o queirá transmitir. Também faz controle dos sensores, atuadores e periféricos. Controlador CAN: Periférico que faz a comunicação com o barramento, tem a responsabilidade de verificar a disponibilidade do barramento e enviar os dados serialmente. Transceptor: Converte os dados a serem enviados em níveis de tensão adequados ao barramento, fazendo o processo inverso na recepção (Rennó, 2015). SÍNTESE Nesta aula aprendemos sobre os protocolos de comunicação mais utilizados pelos sistemas microcontrolados. A comunicação com os mais diversos periféricos existentes é essencial para a elaboração de projetos eletrônicos, mas para isto devemos conhecer os diversos conceitos que devem ser levados em conta para um interfaceamento adequado. Conhecimento do protocolo, taxa de transferência, forma de comunicação (digital ou analógica) etc. São critérios que devemos ter em mente para elaborar uma solução. REFERÊNCIAS AXELSON, J. Serial port complete. Chicago: Lakeview Research, 1998. CAMPOS C. F.; SIMONE, D.; AFFONSO, L. Protocolo CAN: Controller Area Network. Disponível em: . Acesso em: 9 maio 2017. CANZIAN, E. Comunicação Serial – RS232 (Minicurso). 2015. Disponível em . Acesso em: 9 maio 2017. CONCEITOS gerais de comunicação serial. National Instruments. Disponível em: . Acesso em: 9 maio 2017. 20 DANTAS, M. Tecnologia de redes de comunicação e computadores. Rio de Janeiro: Axcel Books, 2002. FARIA, R. A. Interfaces seriais. Disponível em: . Acesso em: 9 maio 2017. FLOYD, T. L. Sistemas digitais: fundamentos e aplicações. 9. ed. Porto Alegre: Bookman, 2007. FONSECA, U. Protocolo I2C. Sistema Embutido, 28 set. 2016. Disponível em: . Acesso em: 9 maio 2017. GUIMARÃES, A. de A. Análise da norma ISO 11783 e sua utilização na implementação do barramento do implemento de um monitor de semeadora. Dissertação (Mestrado em Engenharia de Computação) – Universidade de São Paulo. São Paulo, 2003. Disponível em: . Acesso em: 9 maio 2017. MIRANDA, M. A. P.; LACERDA, V. R. L. Redes CAN (Controller Area Network). 2005. Disponível em: . Acesso em: 9 maio 2017. PINHEIRO, A. P. Comunicação SPI. Univ. Federal de Uberlândia. Disponível em: . Acesso: 9 maio 2017. PROTOCOLO I2C. I2C Bus. Disponível em: . Acesso em: 9 maio 2017. RENNÓ, D. O protocolo 1-Wire e CAN. Disponível em: . Acesso em: 9 maio 2017. TANENBAUM, A. Organização estruturada de computadores. São Paulo: LTC, 2001 TOCCI, R. J.; WIDMER, N. S.; MOSS, G. L. Sistemas digitais: princípios e aplicações. 11. ed. São Paulo: Pearson, 2011.