280 likes | 358 Views
DESENVOLVIMENTO DO IP CORE DE UM HOST USB. Aluno: Diogo Rodrigues Maciel Orientadora : Prof ª Edna Barros. Roteiro. Introdução USB Host Arquitetura OHCI IpProcess Disciplinas Fases Resultados obtidos Conclusão Referencias. Introduçao.
E N D
DESENVOLVIMENTO DO IP CORE DE UM HOST USB Aluno: Diogo Rodrigues Maciel Orientadora: Profª Edna Barros
Roteiro • Introdução • USB Host • Arquitetura • OHCI • IpProcess • Disciplinas • Fases • Resultados obtidos • Conclusão • Referencias
Introduçao • Computadores pessoais cada vez mais sofisticados • Varios de dispositivos também se sofisticaram • Necessidade de uma maneira mais eficiente de se conectar a PC’s • Uma boa solução para isso é o Barramento Serial Universal (USB).
Introdução • Escopo • Desenvolvimento de um controlador de USB Host • IP SOC • Driver • Utilização do ipPROCESS como metodologia de desenvolvimento.
Introdução • Equipe: • 9 Alunos de IC: • Adelmário Douglas • Antonyus Pyetro • Diego Alves • Diogo Maciel • Hudson Veloso • Luciano de Moura • Marcelo Lucena • Renata Bezerra • Renata Garcia • Doutorado: • Edson Lisboa
USB Host • Só existe um host em um sistema USB • Varios dispositivos ou hubs podem ser interconectados ao Host • A interface USB com o computador Host é chamada de Host Controller • Um Root Hub é integrado ao sistema para prover um ou mais attachment points
USB Host Arquitetura • O sistema USB tem duas camadas distintas (hardware e software) e uma terceira intermediária responsável pela comunicação entre elas. • A camada de software • composta pelo driver do sistema operacional (USB System Software) e o HCD (Host Controller Driver). • A camada de hardware • composta pelo HC (Host Controller) que através do Root Hub se conecta ao dispositivo pela interface elétrica.
USB Host OHCI • Open Host Controller Interface • Especifica a interface entre o Host Controler Driver e o Host Controller
USB Host (OHCI) Transmissão • Se dá através de canais chamados “pipes” • ligam o Client Software a um Endpoint no dispositivo • Há quatro tipos de transmissão na comunicação entre o host e o dispositivo. • Control • Isochonus • Bulk • Interrupt
USB Host (OHCI) Transmissão • Cada tipo determina os parâmetros da transmissão. • Control • Transferência de controle, não periódica, usada geralmente para que o software cliente possa controlar, configurar e checar o status do dispositivo. • Isochronus • Transferência periódica de dados. Os dados são enviados continuamente a uma taxa de transmissão constante. • Bulk • Transferência não periódica usada para transmitir grandes amontoados de dados. • Interrupt • Transferência periódica usada para transmitir pequenos pacotes de informação sobre o dispositivo para o software cliente.
USB Host (OHCI) Transmissão • Duas unidades básicas são responsáveis por armazenar as informações necessárias para a transmissão de dados. • Endpoint Descriptor (ED) e o Transfer Descriptor (TD). • Endpoint Descriptor - ED • contêm as informações como o tamanho máximo do pacote, a direção da transmissão, o tipo de transmissão e o endereço do endpoint. • Transfer Descriptor - TD • descreve como os pacotes devem ser transmitidos e carrega informações como o endereço do pacote, e o seu formato.
USB Host (OHCI) Transmissão • Há uma lista circular de EDs para cada tipo de transmissão. Cada ED possui uma fila de TDs.
USB Host (OHCI) Transmissão • O tempo de transmissão é dividido em frames de 1ms cada • O frame começa quando o HC envia um pacote SOF (Start Of Frame) e dentro desse tempo, a lista de EDs é percorrida e um TD de cada um é servido até que o tempo se esgote. • Para cada tipo de transmissão corresponde uma parte do frame como mostra a figura abaixo:
USB Host (OHCI) Comunicação Hardware – Software • O OpenHCI provê a comunicação entre as camadas de Hardware e Software do Sistema USB. • O OHCI é composto de um conjunto de registradores, chamados Registradores Operacionais, que podem se dividir em quatro tipos. • Controle geral – Registradores com informações sobre o reset, interrupções de hardware, estado do sistema USB, etc. • Gerenciamento de tempo - contém informações sobre os frames e o tempo das transmissões. • Controle do Root Hub - Mantém informações sobre os dispositivos conectados a USB. • Acesso ao HCCA (o HCCA vai ser apresentado mais adiante).
USB Host (OHCI) Comunicação Hardware – Software • O OHCI também possui uma estrutura de 256 bytes chamada de HCCA (Host Controller Communications Area) • Informações sobre a transmissão, os dados, os ponteiros para as filas de Eds. • Área usada pelo software do sistema para enviar e receber dados de controle e de estado a partir do HC
IpProcess Metodologia utilizada
IpProcess • Processo para guiar o desenvolvimento • Iterativo • Incremental • Conceitos • Fases • Disciplinas • Fluxo de trabalho • Atividades • Artefatos • Iterações • Papéis
Concepção Objetivos: Elicitar os requisitos Funcionais e Não Funcionais Definir o escopo do projeto Atividades: Captar o contexto e os mais importantes requisitos Preparar o ambiente de desenvolvimento organização, ferramentas Artefatos gerados Glossário Documento de Requisitos Especificação Funcional IpProcess (Fases)
IpProcess (Fases) 2. Arquitetura Objetivos: • Criar a arquitetura básica do IP core • provê uma base estável para uma implementação eficiente e organizada Atividades: • Identificação dos componentes e suas interfaces • Definição da interface externa do IP core • refinamento dos componentes da arquitetura baseando-se na especificação funcional • Planejamento da integração dos componentes (RTL e FPGA) • Verificação funcional Artefatos gerados • Documento de Projeto • Plano de Testes e Verificação • Plano de Integração
IpProcess (Fases) 3. Implementação do RTL Objetivos: • Implementar componentes e suas interfaces em código RTL • Testá-los para assegurar que são sintetizáveis Atividades: • Implementação do código • Verificação funcional e a correção dos erros encontrados Artefatos gerados • Modelo de simulação RTL • Estruturas de teste e de verificação
IpProcess (Fases) 4. Prototipação Física Objetivos: • Criar um protótipo físico para ser testado • Certificar de que o IP core pode ser distribuído aos usuários finais Atividades: • Sintetizar os componentes • Integrar os componentes para criar o protótipo físico • Testar o sistema integrado Artefatos gerados • IP core • Estruturas de teste em FPGA
Resultados obtidos • O projeto se encontra da fase de implementação do RTL • O IpProcess tornou mais fácil a correção de erros, a manutenção e o entendimento do projeto por parte dos desenvolvedores. • O uso de práticas da Engenharia de Software tornou a implementação mais organizada. • Horas trabalhadas (desde julho de 2006) • 130 dias e 17 horas • Número de reuniões • Cerca de 43 • Artefatos • 36 documentos • 14 módulos implementados
Proximas atividades • Termino da verificação funcional • Início da fase de prototipação onde a equipe trabalhará para sintetizar os componentes e testa-los no protótipo físico (FPGA).
Conclusão • A demanda por dispositivos que usam o Brramento Serial Universal (USB) vem crescendo nos últimos anos e há perspectiva de que continue dessa maneira. • Motivação • O IP core de um Host USB em desenvolvimento pelo projeto Brazil-IP • Metodologia utilizada: IpProcess • A utilização de um processo de desenvolvimento baseado na Engenharia de Software contribuiu bastante para a organização, eficiência da implementação e manutenabilidade do projeto.
Referências • [1] Compaq, Hewlett-Packard, Intel, Lucent, Microsoft, NEC. Philips. Universal Serial Bus Specification Revision 2.0; 2000; • [2] Compaq,Microsoft, National Semiconductor. Open Host Controller Interface Specification • [3] ipProcess; http://www.brazilip.org.br/ipprocess2/index.php?q=overview • [4] Brazil-IP; http://www.brazilip.org.br