Conectores USB tipos e protocolos
Há duas séries de conectores USB:
Série "A":
-Conector Tipo "A" Fêmea, encontrado no Host (PC), ou em portas Downstream de Hub;
-Conector Tipo "A" Macho, encontrado em um dos extremos do cabo USB, onde deve ser conectado ao Host/Root raiz, ou em portas Downstream de Hub.
Série "B":
-Conector Tipo "B" Fêmea, encontrado no dispositivo/função do cliente. Exemplos: impressoras, máquinas digitais, modem ADSL, etc;
-Conector Tipo "B" Macho, encontrado em um dos extremos do cabo USB, onde deve ser conectado a um dispositivo/função.
Figura 1 - Pinagem da USB (clique sobre a figura para ampliá-la) |
Estrutura elétrica e sinais do cabo USB
O cabo USB é composto por 4 fios e uma malha para eliminação de ruídos simples. Desses, 2 são fios que transportam energia para alimentar dispositivos. Essa energia é fornecida pela controladora e gerenciada pelo Driver do Controlador Host.
O Cabo USB usa cores padrão para os fios, sendo assim, o fio de cor vermelha é chamado Vbus (5v), ou seja, é o fio positivo de fornecimento de energia. O fio de cor preta é o GND (0v). Este é o pino negativo de energia do Bus.
O bus USB pode fornecer no máximo 5 Volt de tensão e 500mA de corrente elétrica, isso para cada porta do Root Hub do host. A quantidade de corrente que seu dispositivo irá precisar para funcionar pode ser configurada via software. Nos circuitos chipset da FTDI, a configuração de consumo de corrente será armazenada numa memória Flash tipo 95C56 (opcional aqui no nosso projeto).
Os outros dois fios D+(dado+) e D-(dado-) são usados pelo sistema USB para transferência de dados entre o Host, hub e dispositivos. Todos os sinais de dados trafegam apenas por esses dois fios usando a codificação NRZI (No Return to Zero Inverted). Ou seja, o bit 1 é codificado através de uma transição ocorrendo da maior voltagem para a menor, ou também o inverso, da menor para a maior. Já o bit 0 é codificado sem haver transição. Durante o intervalo de um bit a voltagem é constante.
Há dois tipos de interfaceamento em que um dispositivo USB pode trabalhar: Bus-powered e Self-powered. No Bus-powered o dispositivo é alimentado pelo próprio Bus USB através dos pinos Vbus e Gnd podendo fornecer no máximo 500mA direto de uma Porta do Root Hub (host) ou de uma Porta de um Hub comum que tenha sua própria fonte de alimentação. Se o Hub não tiver uma fonte de alimentação, os dispositivos conectados a ele só poderão consumir cada um, no máximo 100mA do Bus USB. Já o tipo self-powered não consome energia do Bus USB, mas deve ser alimentado com uma fonte externa para que o circuito possa funcionar.
Para que um dispositivo USB trabalhe no modo Bus-powered ou Self-powered, é necessário que o desenvolvedor configure o circuito eletricamente para que possa trabalhar da maneira desejada.
Dispositivos configurados para trabalhar no modo Bus-powered devem consumir no máximo 100mA, podendo retirar essa corrente diretamente da porta do Root hub, ou de qualquer tipo de Hub. Dispositivos Bus-powered que consomem 500mA devem ser conectados somente no Root Hub ou na porta de um Hub que disponha de sua própria fonte de alimentação.
Dispositivos Bus-powered são resetados/desligados involuntariamente quando o computador é ligado ou desligado. Já dispositivos eletricamente configurados como Self-powered mantém o circuito ligado mesmo que o computador seja resetado/desligado, isso porque são alimentados através de uma fonte externa. Esses tipos de interfaceamento devem ser levados em consideração quando criarem circuitos críticos, como alarmes, controles de abrir e fechar portas, portões e quaisquer outros dispositivos que, em hipóteses nenhuma, devam ser acionados involuntariamente. Para esses tipos de dispositivos a Self-powered é a ideal.
Protocolo USB
O protocolo é uma das partes mais importantes do funcionamento do sistema USB, é através dele que um ou mais dispositivos conversam e trocam informações com o Host. No Host a pilha do protocolo está disponível em forma de drivers de arquivos .sys, dll, drv, exe, etc. Já no dispositivo o protocolo pode ser encontrado dentro de um microcontrolador específico, como por exemplo um PIC que disponha de uma certa quantidade de memória. Nesse caso, o protocolo é escrito com base na norma USB, em uma linguagem específica com: C ou Assembly; depois é compilado e gravado na memória do microcontrolador através de um gravador de PIC. Esta é umas das maneiras mais complexas, trabalhosas e não muito produtiva. Há microcontroladores PIC como o 18F2450 e 18F4450 que internamente já dispõe do protocolo, tornando assim mais fácil o desenvolvimento de aplicações. Uma outra maneira é através de um chipset que carrega dentro de si toda a funcionalidade do protocolo USB, livrando o microcontrolador de todo o trabalho pesado.
Diferente da Porta Serial ou Paralela onde simplesmente através dos sinais elétricos dos pinos e um programa básico é possível se comunicar com um dispositivo. No USB isso só é possível se o dispositivo carregar o protocolo USB num chipset ou mesmo dentro de um microcontrolador. Assim, concluímos que o combustível do sistema USB é seu protocolo, sem ele, não há troca de informação entre os dispositivos.
O protocolo USB tem vários recursos como: CRC (Cyclic Redundancy Check), detecção e correção de erros, detecção de conexão e remoção de dispositivos, controle de fluxo de dados assegurando transmissões isossíncronas (trafego contínuo de dados), disponibilidade assegurada de largura de banda, entre outros.
Descritores
Todos os dispositivos USB têm uma hierarquia de descritores que informam ao Host o que o dispositivo é, ou seja, sua "personalidade", suas características de funcionamento, como; número de série do produto, identificação do fabricante, tipo do dispositivo (impressora, scanner, modem, mouse, etc.), número de configurações, número de Endpoint, tipo de transferência, tipo de interface, etc.
fonte estrutura usb
Nenhum comentário:
Postar um comentário