1 desenvolvimento do ip core de um host usb aluno: diogo rodrigues maciel orientadora: profª edna...

28
1 DESENVOLVIMENTO DO IP CORE DE UM HOST USB Aluno: Diogo Rodrigues Maciel Orientadora: Profª Edna Barros

Upload: rayssa-salazar-castelo

Post on 07-Apr-2016

216 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: 1 DESENVOLVIMENTO DO IP CORE DE UM HOST USB Aluno: Diogo Rodrigues Maciel Orientadora: Profª Edna Barros

1

DESENVOLVIMENTO DO IP CORE DE UM HOST USBAluno: Diogo Rodrigues MacielOrientadora: Profª Edna Barros

Page 2: 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

Page 3: 1 DESENVOLVIMENTO DO IP CORE DE UM HOST USB Aluno: Diogo Rodrigues Maciel Orientadora: Profª Edna Barros

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).

Page 4: 1 DESENVOLVIMENTO DO IP CORE DE UM HOST USB Aluno: Diogo Rodrigues Maciel Orientadora: Profª Edna Barros

4

Introdução

• Escopo– Desenvolvimento de um controlador de USB Host

• IP SOC• Driver

– Utilização do ipPROCESS como metodologia de desenvolvimento.

Page 5: 1 DESENVOLVIMENTO DO IP CORE DE UM HOST USB Aluno: Diogo Rodrigues Maciel Orientadora: Profª Edna Barros

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

Page 6: 1 DESENVOLVIMENTO DO IP CORE DE UM HOST USB Aluno: Diogo Rodrigues Maciel Orientadora: Profª Edna Barros

6

USB Host

Page 7: 1 DESENVOLVIMENTO DO IP CORE DE UM HOST USB Aluno: Diogo Rodrigues Maciel Orientadora: Profª Edna Barros

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

Page 8: 1 DESENVOLVIMENTO DO IP CORE DE UM HOST USB Aluno: Diogo Rodrigues Maciel Orientadora: Profª Edna Barros

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.

Page 9: 1 DESENVOLVIMENTO DO IP CORE DE UM HOST USB Aluno: Diogo Rodrigues Maciel Orientadora: Profª Edna Barros

9

USB Host (Arquitetura)

Page 10: 1 DESENVOLVIMENTO DO IP CORE DE UM HOST USB Aluno: Diogo Rodrigues Maciel Orientadora: Profª Edna Barros

10

USB Host

OHCI

• Open Host Controller Interface

• Especifica a interface entre o Host Controler Driver e o Host Controller

Page 11: 1 DESENVOLVIMENTO DO IP CORE DE UM HOST USB Aluno: Diogo Rodrigues Maciel Orientadora: Profª Edna Barros

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

Page 12: 1 DESENVOLVIMENTO DO IP CORE DE UM HOST USB Aluno: Diogo Rodrigues Maciel Orientadora: Profª Edna Barros

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.

Page 13: 1 DESENVOLVIMENTO DO IP CORE DE UM HOST USB Aluno: Diogo Rodrigues Maciel Orientadora: Profª Edna Barros

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.

Page 14: 1 DESENVOLVIMENTO DO IP CORE DE UM HOST USB Aluno: Diogo Rodrigues Maciel Orientadora: Profª Edna Barros

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.

Page 15: 1 DESENVOLVIMENTO DO IP CORE DE UM HOST USB Aluno: Diogo Rodrigues Maciel Orientadora: Profª Edna Barros

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:

Page 16: 1 DESENVOLVIMENTO DO IP CORE DE UM HOST USB Aluno: Diogo Rodrigues Maciel Orientadora: Profª Edna Barros

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).

Page 17: 1 DESENVOLVIMENTO DO IP CORE DE UM HOST USB Aluno: Diogo Rodrigues Maciel Orientadora: Profª Edna Barros

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

Page 18: 1 DESENVOLVIMENTO DO IP CORE DE UM HOST USB Aluno: Diogo Rodrigues Maciel Orientadora: Profª Edna Barros

18

IpProcessMetodologia utilizada

Page 19: 1 DESENVOLVIMENTO DO IP CORE DE UM HOST USB Aluno: Diogo Rodrigues Maciel Orientadora: Profª Edna Barros

19

IpProcess

• Processo para guiar o desenvolvimento– Iterativo – Incremental

• Conceitos– Fases– Disciplinas

• Fluxo de trabalho• Atividades• Artefatos

– Iterações– Papéis

Page 20: 1 DESENVOLVIMENTO DO IP CORE DE UM HOST USB Aluno: Diogo Rodrigues Maciel Orientadora: Profª Edna Barros

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

Page 21: 1 DESENVOLVIMENTO DO IP CORE DE UM HOST USB Aluno: Diogo Rodrigues Maciel Orientadora: Profª Edna Barros

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

Page 22: 1 DESENVOLVIMENTO DO IP CORE DE UM HOST USB Aluno: Diogo Rodrigues Maciel Orientadora: Profª Edna Barros

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

Page 23: 1 DESENVOLVIMENTO DO IP CORE DE UM HOST USB Aluno: Diogo Rodrigues Maciel Orientadora: Profª Edna Barros

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

Page 24: 1 DESENVOLVIMENTO DO IP CORE DE UM HOST USB Aluno: Diogo Rodrigues Maciel Orientadora: Profª Edna Barros

24

Resultados Obtidos

Page 25: 1 DESENVOLVIMENTO DO IP CORE DE UM HOST USB Aluno: Diogo Rodrigues Maciel Orientadora: Profª Edna Barros

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

Page 26: 1 DESENVOLVIMENTO DO IP CORE DE UM HOST USB Aluno: Diogo Rodrigues Maciel Orientadora: Profª Edna Barros

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).

Page 27: 1 DESENVOLVIMENTO DO IP CORE DE UM HOST USB Aluno: Diogo Rodrigues Maciel Orientadora: Profª Edna Barros

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.

Page 28: 1 DESENVOLVIMENTO DO IP CORE DE UM HOST USB Aluno: Diogo Rodrigues Maciel Orientadora: Profª Edna Barros

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