• Nenhum resultado encontrado

O passo de Integração de Dispositivos de Hardware a Plataforma Base é responsável por possibilitar a integração e comunicação do controlador de transações com o barramento da plataforma base. Esta integração é realizada através de uma interface chamada BCI (bus controller interface), que realiza a conversão entre os diferentes protocolos possíveis do barramento e o previamente conhecido protocolo do controlador e vice-versa. O BCI não implementa qualquer das características extraídas de comunicação do sistema. Desta forma, havendo alteração do barramento da plataforma, o controlador não é alterado, apenas um novo BCI é instanciado para suportar o protocolo implementado pelo

novo barramento. O BCI se comunica com o controlador através de uma porta do controlador presente na camada BCI do mesmo.

A estrutura do BCI é composta de portas e funções de leitura e escrita. Ele possui duas portas, uma que liga esta interface ao barramento e outra que se conecta ao controlador de transações do dispositivo. As funções de leitura e escrita implementam a FSM apresentada na Figura 47, responsável por realizar a conversão entre o protocolo do barramento e o protocolo do controlador e garantir que os dados sejam trocados entre estes dois elementos da plataforma base.

Cada requisição recebida pelo BCI é decodificada como leitura ou escrita. Requisições de escrita são convertidas para o protocolo do controlador de transações, apresentado na seção 6.4.1.2, e enviadas a ele. Após o envio da requisição o BCI retorna ao barramento o status da requisição, que pode ser ok, busy ou error. O status ok é enviado quando a requisição foi aceita pelo controlador, enquanto o status busy significa que o controlador rejeitou a requisição por estar ocupado tratando de uma outra transação. O status de error é enviado quando o BCI não consegue enviar os dados para o controlador. Requisições de leitura são convertidas para o protocolo do controlador de transação e enviadas a ele, esperando o dado de resposta. O dado de resposta obtido é convertido para o protocolo do barramento e enviado ao mesmo. A Figura 46 apresenta um trecho do código do BCI para o sistema de segmentação de imagem. Neste trecho, o pacote de requisição utilizado pelo protocolo do controlador é montado de acordo com os dados recebidos e sua resposta é convertida para o formato suportado pelo barramento.

A camada BCI do controlador de transações do dispositivo além de possuir a interface de comunicação com o BCI, também realiza a conversão de dados do barramento para o tipo de dados suportado pelo dispositivo. Quando necessário, a camada BCI também empacota ou desempacota os dados recebidos, ou seja, transforma uma seqüência de dados do tipo int em uma matriz de int ou vice-versa. A Figura 48 apresenta um fragmento

seqüência de int recebidos em uma matriz bidimensional de int. Cada dado recebido é adicionado a matriz na ordem de recebimento. Quando finalizado o dispositivo tiver recebido todos os dados e as matrizes mahalanobis_dt1 e mahalanobis_dt2 geradas, o controlador de transações libera o registradores de execução e habilita a leitura de dados (mahalanobis_dt1_ok e mahalanobis_dt2_ok iguais a true). Para cada inteiro recebido, o controlador checa sua posição na matriz e o insere, atualizando a posição do próximo item da matriz, incrementando o número da linha e/ou da coluna.

Figura 46 Fragmento do código do BCI para o sistema de segmentação de imagem

Nessa camada os tipos de dados de entrada e de resultado e a quantidade de dados que compõe os dados de entrada e resultado são configurados. A quantidade de dados é a quantidade de dados que compõe um pacote de entrada ou de resultado, como um exemplo, para uma matriz bidimensional de inteiros de tamanho 30x30, a quantidade de dados é de 900. Os controladores de transações são integrados à plataforma através do BCI.

seqüência de int recebidos em uma matriz bidimensional de int. Cada dado recebido é adicionado a matriz na ordem de recebimento. Quando finalizado o dispositivo tiver recebido todos os dados e as matrizes mahalanobis_dt1 e mahalanobis_dt2 geradas, o controlador de transações libera o registradores de execução e habilita a leitura de dados (mahalanobis_dt1_ok e mahalanobis_dt2_ok iguais a true). Para cada inteiro recebido, o controlador checa sua posição na matriz e o insere, atualizando a posição do próximo item da matriz, incrementando o número da linha e/ou da coluna.

Figura 46 Fragmento do código do BCI para o sistema de segmentação de imagem

Nessa camada os tipos de dados de entrada e de resultado e a quantidade de dados que compõe os dados de entrada e resultado são configurados. A quantidade de dados é a quantidade de dados que compõe um pacote de entrada ou de resultado, como um exemplo, para uma matriz bidimensional de inteiros de tamanho 30x30, a quantidade de dados é de 900. Os controladores de transações são integrados à plataforma através do BCI.

seqüência de int recebidos em uma matriz bidimensional de int. Cada dado recebido é adicionado a matriz na ordem de recebimento. Quando finalizado o dispositivo tiver recebido todos os dados e as matrizes mahalanobis_dt1 e mahalanobis_dt2 geradas, o controlador de transações libera o registradores de execução e habilita a leitura de dados (mahalanobis_dt1_ok e mahalanobis_dt2_ok iguais a true). Para cada inteiro recebido, o controlador checa sua posição na matriz e o insere, atualizando a posição do próximo item da matriz, incrementando o número da linha e/ou da coluna.

Figura 46 Fragmento do código do BCI para o sistema de segmentação de imagem

Nessa camada os tipos de dados de entrada e de resultado e a quantidade de dados que compõe os dados de entrada e resultado são configurados. A quantidade de dados é a quantidade de dados que compõe um pacote de entrada ou de resultado, como um exemplo, para uma matriz bidimensional de inteiros de tamanho 30x30, a quantidade de dados é de 900. Os controladores de transações são integrados à plataforma através do BCI.

Documentos relacionados