1 DESENVOLVIMENTO DO IP CORE DE UM HOST USB Aluno: Diogo Rodrigues Maciel Orientadora: Profª Edna Barros
2 Roteiro Introdução USB Host Arquitetura OHCI IpProcess Disciplinas Fases Resultados obtidos Conclusão Referencias
3 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).
4 Introdução Escopo –Desenvolvimento de um controlador de USB Host IP SOC Driver –Utilização do ipPROCESS como metodologia de desenvolvimento.
5 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
6 USB Host
7 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
8 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.
9 USB Host (Arquitetura)
10 USB Host OHCI Open Host Controller Interface Especifica a interface entre o Host Controler Driver e o Host Controller
11 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
12 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.
13 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.
14 USB Host (OHCI) Transmissão Há uma lista circular de EDs para cada tipo de transmissão. Cada ED possui uma fila de TDs.
15 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:
16 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).
17 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
18 IpProcess Metodologia utilizada
19 IpProcess Processo para guiar o desenvolvimento –Iterativo –Incremental Conceitos –Fases –Disciplinas Fluxo de trabalho Atividades Artefatos –Iterações –Papéis
20 IpProcess (Fases) 1.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
21 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
22 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
23 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
24 Resultados Obtidos
25 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
26 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).
27 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.
28 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; [4] Brazil-IP;