• Nenhum resultado encontrado

4 SISTEMA EMBARCADO PARA EXTRAÇÃO E RECONHECIMENTO DE

5.3 Sistema sobre plataforma embarcada

5.3.4 Consolidação do sistema

Tendo ambos os blocos de hardware e software sido implementados e validados de forma independente, duas tarefas ainda eram necessárias para a conclusão da versão embarcada dos sistema de extração e reconhecimento de caracteres. A primeira delas consistia na agregação do bloco de hardware à plataforma embarcada, enquanto a segunda no interfaceamento entre os blocos em si.

No que diz respeito à conexão do bloco de hardware à plataforma embarcada, a mesma foi efetuada com auxílio de duas ferramentas distintas: XPS e ISE. Num primeiro momento foi utilizado o assistente de criação e importação de periféricos disponibilizado pela ferramenta XPS para a criação de modelos HDL compatíveis com a interface de periférico utilizada pelo EDK. Durante este processo faz-se necessária a seleção de várias características pertinentes ao periférico, como o tipo de barramento ao qual ele será conectado, os serviços disponibilizados ao mesmo, bem como as configurações de cada um deles.

Dentre os tipos de barramentos, dois são os principais a serem empregados no caso de um processador PowerPC:

• OPB: consiste num modelo de barramento projetado para a conexão simplificada de dispositivos de baixo desempenho implementados em chip, cujo propósito não é o de conexão direta ao núcleo do processador. O núcleo do processador acessa os periféricos conectados a esse tipo de barramento por meio de uma ponte OPB (IBM, 2007a);

• PLB: consiste num modelo de barramento projetado para conexão direta com núcleo do processador. Geralmente é utilizado na conexão de elementos que necessitam grandes larguras de banda como memórias externas e controladores DMA (IBM, 2007b).

Entretanto, como a interface de tais barramentos é um tanto quanto complexa, o ambiente EDK emprega um modelo que simplifica a conexão dos periféricos aos mesmos. Tal modelo, ilustrado na Figura 5.40, denomina-se Intellectual Property Interconnect (IPIC) e consiste num módulo que permite a conexão entre o núcleo do periférico (User Logic) e o bloco Intellectual Property Interface (IPIF), encarregado de conectar o núcleo ao barramento OPB ou PLB. Mais do que a simples conexão, o bloco IPIF disponibiliza serviços requeridos pela maioria dos periféricos, como decodificação de endereços, registradores endereçáveis, gerenciamento de interrupções, etc. (XILINX, 2006b). Desta forma, a conexão do periférico

ao barramento é simplificada, haja vista a complexidade da conexão é resolvida pelo bloco IPIF.

Figura 5.40 – Diagrama ilustrativo da composição e forma de conexão do modelo IPIC.

Na prática, ao final do processo de criação de periférico são gerados dois arquivos HDL, bem como um arquivo de cabeçalho contendo as chamadas a todos os serviços implementados para que os mesmos possam ser acessados por software. Em relação aos arquivos HDL um deles se referente ao módulo IPIF, enquanto o outro ao módulo IPIC. Neste sentido, o próximo passo consistiu na instanciação do núcleo do periférico no módulo IPIC, bem como a conexão do mesmo com o módulo IPIF. Essa tarefa foi realizada com o auxílio da ferramenta ISE, sendo que para este caso a comunicação do periférico com o software embarcado foi realizada por intermédio de registradores, via barramento OPB. Estando o periférico compatível com o modelo IPIC, a última etapa da conexão do mesmo à plataforma embarcada consistiu na sua importação, por intermédio do mesmo assistente utilizado na sua criação.

Como última tarefa a ser realizada no processo de construção do sistema embarcado, a conexão entre o bloco de hardware, agora agregado ao sistema, e o bloco de software se deu pela por intermédio da escrita e leitura de registradores. Neste sentido, durante a etapa anterior foram disponibilizados três registrados de 32 bits cada, tendo os mesmos sido conectados às portas do bloco de hardware conforme ilustrado no Quadro 5.1. No caso das portas cujo comprimento é inferior ao da faixa do registrador disponibilizada para as mesmas, os bits sobressalentes (sempre os mais significativos além do comprimento da porta) são ignorados.

Registrador Porta no bloco de hardware

Nome Faixa Nome Comprimento

Portas de entrada no bloco de hardware

7:0 uart_dbin 8

15:8 uart_rda 1

23:11 uart_td 1

REG0

31:24 ram_nobj_addra 6

Portas de saída no bloco de hardware

7:0 uart_dbout 8 15:8 uart_rd 1 23:11 uart_wr 1 REG1 31:24 status_reg 4 REG2 31:0 ram_nobj_douta 32

Quadro 5.1– Mapeamento realizado entre os registradores acessíveis por software e as portas do bloco de hardware.

A partir de tal mapeamento dos registradores e do arquivo de cabeçalho disponibilizado na etapa anterior, o software responsável pela execução do processo de reconhecimento de caracteres foi modificado e integrado ao bloco de hardware. Neste sentido, os bytes recebidos pela interface serial atrelada ao sistema embarcado são repassados ao módulo de hardware por intermédio da escrita dos mesmos nas respectivas faixas do registrador REG0. Já as respostas fornecidas pelo bloco de hardware para envio pela interface serial são obtidas a partir da leitura das respectivas faixas do registrador REG1. No caso do recebimento de um comando de execução do processo de extração, a camada de software identifica o mesmo antes de repassá-lo ao bloco de hardware e na seqüência inicia o monitoramento da porta status_reg (REG1(31:24)). Quando o término do processo de extração é detectado, os objetos normalizados são lidos da memória de objetos normalizados por intermédio das portas ram_nobj_addra (REG0(31:24)) e ram_nobj_douta (REG2). Conforme cada objeto normalizado é lido o mesmo é identificado pelo bloco de software (RNA) e armazenado num vetor temporário, cujo conteúdo é retornado via serial ao aplicativo de validação sobre plataforma x86 ao término do processo.

No próximo capítulo é apresentada a metodologia empregada na apuração dos resultados de ambas as versões do sistema, bem como uma comparação de desempenho entre as mesmas.

6

RESULTADOS

6.1Introdução

Findada a implementação de ambas as versões sobre plataforma x86 e embarcada do sistema, partiu-se então para a apuração dos resultados proporcionados pelas mesmas. Tais resultados contemplam tanto a capacidade de identificação das placas de licenciamento veicular, como o tempo demandado para a execução da tarefa.

Entretanto, anterior à apuração de tais dados foi realizada a implementação da opção que permitiu a automatização do processo, haja vista o volume de dados de entrada e saída.

Desta forma, inicialmente é apresentado o método e as considerações envolvidas na tarefa de apuração dos resultados, sendo estes últimos discutidos na seqüência.