Porta USB 1 - Introdução A necessidade de comunicação entre dispositivos externos sempre existiu nos sistemas computadorizados. No primeiro PC desenvolvido pela IBM nos anos 80 o chamado barramento ISA possibilitava o encaixe de placas de expansão que comunicavam com a placa principal chamada placa mão. A necessidade de comunicação com dispositivos externos levou ao desenvolvimento das primeiras portas de comunicação chamadas porta serial e porta paralela. Na década de 90 as portas seriais evoluíram para uma taxa de 115KBps e o padrão ECP em portas paralelas elevou a taxa de transmissão destas portas para 1,2MBps. Atualmente, com os novos dispositivos de armazenamentos e inúmeros periféricos (mouse, scanner, impressora, pen drive, teclados, etc.), além da necessidade de taxas de transmissão mais elevadas, tornou-se necessário um dispositivo de comunicação que permita a conexão de vários dispositivos simultaneamente. Além de permitir a comunicação com vários dispositivos em uma única porta, o padrão USB permite a conexão e remoção do periférico sem a necessidade de ligar e desligar o computador. Os controladores USB fornecem alimentação e reconhecem automaticamente o dispositivo conectado (pelo menos teoricamente). Uma porta USB permite através de HUBs a conexão de até 127 dispositivos que compartilham o canal de dados. A porta de comunicação USB foi definida a partir dos seguintes pontos: • • • • • Facilidade na adição de periféricos ao PC. Baixo custo, suportando taxas de transferência de até 12 Mbps. Suporte completo para dados de voz, áudio e vídeo em tempo real. Previsão de um padrão de interface capaz de espalhar-se rapidamente entre novos produtos. Possibilitar a criação de novas classes de dispositivos capazes de aumentar a capacidade dos computadores pessoais. 2 - A topologia USB A topologia USB prevê um único dispositivo Host que controla os periféricos. O host é ligado a um hub que permite a conexão de dispositivos ou outros hubs. Os hubs são cascateáveis e formam fisicamente uma estrutura estrela sendo cada hub o centro de cada estrela. Cada Host suporta até 127 periféricos. Como o canal é compartilhado entre os dispositivos, a utilização de vários dispositivos com transferência de dados simultâneas pode resultar em uma lentidão de resposta, algo muito prejudicial em reprodução de vídeos ou áudios. 3 – A interface física A transmissão dos dados é feita através de um cabo com par trançado e dois fios de alimentação. Os fios de alimentação permitem a utilização de dispositivos sem fonte. A própria porta os alimenta. O padrão é de 500mA por porta, porém deve ser analisada a capacidade de fornecimento quando se utiliza hubs. Não existe um valor determinado para o comprimento do cabo, normalmente não passam de 1m, porém podem ser utilizados cabos de boa qualidade de até 3 metros de comprimento. A tensão de alimentação é gerenciada pelo host podendo ser desligada pelo software de gerenciamento. 4 – O Hub USB O Hub USB é um dispositivo que permite a conexão de vários outros dispositivos em uma mesma porta. A porta principal é conectada no host sendo as outras portas disponibilizadas para outros dispositivos ou outros hubs. Um hub não é simplesmente uma emenda de fios, ele possui circuitos de gerenciamento de dispositivos e circuitos de comunicação com o host. Um hub USB é capaz de identificar a conexão de um dispositivo, reiniciar e interromper a transmissão de sinais. O maior problema na utilização de hubs USB está associado à alimentação dos dispositivos. Uma porta USB pode fornecer até 500mA de corrente. Quando um hub divide a corrente elétrica entre os dispositivos o consumo total pode ultrapassar este valor e provocar o desligamento da porta. A solução para este problema é a utilização de hubs USB com alimentação própria. Estes hubs USB com fonte de alimentação fornecem 500mA em cada porta de saída. Além de garantirem o suprimento de corrente podem ser usados como repetidores de sinais permitindo conexões USBs à distâncias de até 5 metros. 5 – O protocolo de comunicação USB Ao contrário das portas serial e paralela, onde os pinos com sinais elétricos podem ser controlados por software, uma porta USB se comunica através de protocolos de comunicação. Sem utilizar o protocolo não é possível se comunicar com um dispositivo. Um protocolo USB utiliza: - Checagem, detecção e correção de erros. - Detecção de conexão - Detecção de remoção de dispositivo - Controle de fluxo de dados - outros recursos de controle de transmissão e hardware Todas as transmissões são baseadas no envio de pacotes e são assíncronas, ou seja, não possuem um sinal de clock para sincronizar a transmissão. O Host é quem inicia uma comunicação. Como exemplo vamos analisar a seguinte sequencia de dados: O Host envia um pacote chamado Token com a seguinte informação: Sync – São 8 bits quando em baixa velocidade e 32 bits quando em alta velocidade, servem para sincronizar os dados uma vez que a transmissão é assíncrona. PID – Identifica o tipo de pacote e pode conter o endereço do dispositivo de destino. O tipo pode ser, por exemplo, de host para dispositivo, de dispositivo para host, pacote de controle da porta, pacote de reconhecimento de dispositivo, etc. DATA – Contêm os dados transmitidos. CRC16 – São bits de dados que permitem checar se as informações foram recebidas corretamente. EOP – Sequencia de zeros indicando a finalização do pacote. 6 - O circuito integrado FT232B Uma vez que a porta USB não permite o controle direto de seus pinos, uma alternativa para controle de dispositivos externos é a utilização do circuito integrado FT232B da FTDI. Este circuito de um lado funciona como dispositivo de comunicação USB e do outro como uma porta de comunicação UART que estudaremos mais adiante nesse curso. Na prática podemos utilizar este componente em circuitos que podem ligar e desligar equipamentos, controlar motores e outros dispositivos elétricos ou eletrônicos. A quem interessar mais informações podem ser obtidas no site da FTDI. http://www.ftdichip.com/