1 desenvolvimento do ip core de um host usb aluno: diogo rodrigues maciel orientadora: profª edna...
TRANSCRIPT
1
DESENVOLVIMENTO DO IP CORE DE UM HOST USBAluno: Diogo Rodrigues MacielOrientadora: 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
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
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
IpProcessMetodologia 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çãoObjetivos:• 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. ArquiteturaObjetivos:• 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 RTLObjetivos:• 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ísicaObjetivos:• 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; http://www.brazilip.org.br/ipprocess2/index.php?q=overview
• [4] Brazil-IP; http://www.brazilip.org.br