• Nenhum resultado encontrado

SSC Projeto e Implementação de Sistemas Embarcados I

N/A
N/A
Protected

Academic year: 2021

Share "SSC Projeto e Implementação de Sistemas Embarcados I"

Copied!
18
0
0

Texto

(1)

Projeto Final

Responsáveis: Prof. Dr. Eduardo Marques e Prof. Dr. Vanderlei Bonato

Estagiário PAE: Bruno Franciscon Mazzotti

Guilherme G. Cola - 5656129

Raphael Philipe M. da Silva - 5696763

Douglas Salles Viroel - 5452567

São Carlos

dezembro de 2009

SSC 741 - Projeto e

Implementação de Sistemas

Embarcados I

INSTITUTO DE CIÊNCIAS MATEMÁTICAS E DE COMPUTAÇÃO – ICMC

UNIVERSIDADE DE SÃO PAULO - USP

(2)

Conteúdo

Resumo ... 3

1. Introdução ... 4

2. Materiais utilizados e funcionamento ... 7

2.1 DE2-70 ... 7 2.2 Painel de controle... 9 2.3 Captura de vídeo ... 10 2.4 LCD ... 11 3. Desenvolvimento ... 12 4. Dificuldades encontradas ... 15 5. Lições aprendidas ... 16 6. Créditos ... 17 7. Referências bibliográficas ... 18

(3)

Resumo

Este relatório descreve o desenvolvimento do projeto prático feito para a disciplina de Projeto e Implementação de Sistemas Embarcados I – SSC 741, feito sob orientação do prof. Dr. Eduardo Marques utilizando o KIT de desenvolvimento DE2-70 da TERASIC, composto por uma placa de desenvolvimento, um display de LCD touch screen e uma câmera digital de 5 megapixels. O projeto consistia inicialmente no desenvolvimento de uma nova câmera digital touch screen com funções de aplicação de molduras sobre as fotos tiradas, bem como alguns filtros de imagem, como sépia e preto e branco. Ao decorrer do desenvolvimento do projeto, foram encontradas diversas dificuldades, inviabilizando o desenvolvimento daquilo que havia sido proposto inicialmente. Ao fim, foi desenvolvido um sistema de menus touch screen para aplicação dos filtros sépia e preto e branco, totalmente feito com pré-processamento em hardware. Pode-se verificar a grande flexibilidade e poder do kit de desenvolvimento utilizado.

(4)

1. Introdução

A disciplina de Projeto e Implementação de Sistemas Embarcados I consistiu em fazermos um projeto utilizando o kit DE2-70 da Altera, uma câmera d5m, e um display de LCD ltm. Este projeto, basicamente, consiste em desenvolver uma funcionalidade para esta câmera, e consequentemente aprimorar nossos conhecimentos em plataformas embarcadas, linguagem VHDL e Verilog, além de entender melhor a parte de integração entre hardware e software.

Verilog é uma linguagem de descrição de hardware utilizada para modelagem de sistemas eletrônicos. Com kits de implementação é possível descarregar o código em matrizes de portas conhecidas como FPGA’s.

Existem vários estágios entre a descrição da linguagem Verilog até prototipagem da FPGA, entre eles destacam-se: especificação, projeto em alto e baixo nível , codificação RTL, simulação, síntese, roteamento e validação.

(5)

Durante a especificação são definidos parâmetros importantes como tamanho da palavra ou se o reset deverá ser síncrono. O design em alto e baixo nível é onde são definidos diversos blocos do projeto, como eles se comunicam e são implementados.

Em seguida é feita a conversão do projeto em baixo nível para o código Verilog utilizando construtores da linguagem. A simulação se encarregada de verificar o funcionamento dos modelos em qualquer nível de abstração utilizando simuladores e testando os códigos RTL.

A síntese é o processo de transformação do RTL em Verilog em entradas e mapeia o RTL para as primitivas da tecnologia alvo.

Figura 2: Síntese

Por fim os blocos são posicionados e roteados gerando um arquivo GDS que é usado na indústria para fabricação, testado e validado antes de ser liberado no mercado.

Figura 3: Implementação em silício.

O projeto inicial do grupo visou a utilização do kit DE2-70 com LCD e câmera integrados para criar um produto final com diversas funcionalidades.

(6)

As funcionalidades da câmera incluíam: tirar fotos, aplicação de tons de cinza e sépia nas imagens, zoom, gravação de vídeos e vídeos em câmera lenta e aplicação de molduras nas fotos. Também foi proposto um menu utilizando o touch screen do LCD para controlar as funcionalidades da câmera.

O objetivo do projeto foi desenvolver uma câmera digital com diversas funcionalidades utilizando o kit DE2-70 com câmera e LCD integrados.

Inicialmente as funções a serem desenvolvidas para a câmera digital compreendiam em tirar fotos, aplicação de filtros (Greyscale e Sépia), zoom, diferentes tipos de molduras para as fotos, menus de controle touch screen e finalmente gravação de vídeos.

O projeto teve inicio com estudos nos códigos dos exemplos existentes no kit, utilizando para isso o software NIOS II IDE. Diante da grande complexidade do software não foi possível dar continuidade a implementação em software do projeto.

O passo seguinte foi desenvolver o projeto em hardware, como integração do LCD com a câmera. A conquista encaminhou o projeto para um novo caminho sendo este então implementado totalmente em hardware.

A dificuldade encontrada durante o desenvolvimento do projeto e o atraso em relação ao estudo do software do kit fez necessária a redução da proposta inicial do projeto para outro mais simples.

A nova proposta para o projeto incluía as funções básicas como tirar foto e aplicação dos filtros nas imagens, posteriormente foi mantida também a proposta do menu no LCD com botões sensíveis ao toque.

O grande desafio do projeto passou a ser então a integração dos módulos de escrita no LCD e do touch screen apresentados nos exemplos do kit.

Por fim o resultado foi uma câmera controlada pelo touch screen do LCD, com as funções de filtros nas imagens e tirar foto.

Para realizar o projeto foram incluídos três módulos no projeto já existente do kit. Dois módulos responsáveis pela captura do touch screen e outro módulo criado para tratar a imagens e os comandos. O módulo relacionado ao menu da câmera envia os pixels diretamente para as duas SDRAMs.

Uma descrição mais detalha do desenvolvimento é tratada no tópico três. No segundo tópico é apresentado o kit da Altera DE2-70 e nos demais é citada as dificuldades encontradas e as lições aprendidas.

(7)

2. Materiais utilizados e funcionamento

2.1 DE2-70

O kit DE2-70 contém todos os componentes necessários para rodar a placa DE2-70 com um computador que rode o Microsoft Windows.

Figura 4: Kit DE2-70

O kit inclui:

 Placa DE2-70

 Cabo USB para programação e controle da FPGA

 CD com documentação da placa

 Fonte de 12V DC

Na figura 5, possui uma foto da placa DE2-70 e indica o lugar dos conectores e componentes chaves.

(8)

Figura 5: Foto da placa DE2-70

A placa é composta principalmente, pelos seguintes componentes de hardware:

 Altera Cyclone® II 2C70 FPGA

 Dispositivo de configuração serial Altera – EPCS16

 USB Blaster para programação

 2Mbyte SSRAM  2 SDRAM de 32Mbytes  Flash 8Mbytes  4 botões  18 pinos  18 LEDs vermelhos  9 LEDs verdes

 Oscilador de 50MHz e 28,63Mhz para fontes de clock

 2 decodificadores de TV e conector TV-in

 Controlador USB

 Transmissor receptor RS-232

 Suporte a interface I/O

 Controlador Ethernet 10/100

(9)

Na figura 6, tem-se o diagrama de blocos da placa DE2-70. Para facilitar o uso, todas as conexões são feitas através da FPGA Cyclone II.

Figura 6: Diagrama de blocos da placa DE2-70

2.2 Painel de controle

A placa vem junto com um painel de controle que faz com que o usuário possa acessar diversos componentes da placa através do computador pela USB.

O painel de controle da DE2-70 pode ser usado para acender os LEDs, modificar os valores no display de sete segmentos, mudar o valor do LCD, ler/escrever nas memórias SDRAM/SSRAM/FLASH, entre outros.

Para que o painel de controle possa implementar funções, é necessário o download de códigos específicos de controle. São os códigos responsáveis pela comunicação entre a placa e o painel de controle.

(10)

Figura 7: Comunicação entre o painel de controle e a placa.

2.3 Captura de vídeo

O kit oferece também um utilitário de vídeo, onde é possível entre outras coisas fazer a captura de uma imagem da fonte de vídeo (no nosso caso, a câmera D5M através da expansão).

O utilitário de vídeo é baseado no sistema NIOS II rodando na Cyclone II com a SDRAM ou SSRAM. A parte de software é implementada em código C e a parte de hardware implementada em Verilog com o SOPC builder, o que torna possível fazer algumas modificações nas funcionalidades do utilitário.

Na figura 8, mostra o diagrama de blocos do utilitário de vídeo.

(11)

Para um processo de captura da imagem, o computador envia o sinal de captura para o processador Nios II. Este, interpreta o comando, e faz com que a controladora de vídeo capture a imagem para a SSRAM. Depois de capturada, a imagem é copiada para a SDRAM-U2. O computador lê a imagem bruta da SDRAM-U2, converte em uma imagem RGB e mostra no display.

2.4 LCD

O kit LCD LTM (LCD Touch Panel Module) é composto pelo display, cabo IDE de 40 pinos e CD com código fonte e documentação.

O display possui formato de 4x3, com área ativa de (93.6x56.16) mm e 16 milhões de cores. Como pode ser visto na figura 9, o LTM é composto por basicamente 3 componentes: o módulo do painel touchscreen do LCD, um conversor AD, e o expansion header de 40 pinos. O módulo LCD e do painel touch, controlam os sinais provenientes da FPGA como sinal de entrada e mostram as imagens no LCD. O conversor AD é responsável por converter as coordenadas do ponto de toque para o dado digital correspondente e enviar para a FPGA pela expansion header.

(12)

3. Desenvolvimento

Como ponto de partida foram utilizados o projeto CD-ROM DE 3 in 1 (FPGA, Camera e LCD), disponibilizado na página da disciplina e DE2_70_LTM_Ephoto, presente no cd do LCD LTM.

O desenvolvimento do projeto final foi feito da seguinte maneira: foram inseridos três módulos ao projeto disponibilizado no site da disciplina para a inclusão de menus e aplicação de filtros, captura de coordenadas touch screen e verificação de comandos. O diagrama de blocos e a máquina de estados, gerado pelo Quartus II, podem ser observados nas figuras abaixo:

Figura 10: Diagrama de Blocos

(13)

Os componentes inseridos de outros projetos foram o “Conversor A/D para SPI” e o “Touch

Point Detector” sendo que o último foi modificado para a verificação de novas áreas de varredura

para geração de outros comandos.

O componente “Menu” é responsável por desenhar os botões no LCD para que o usuário possa aplicar os efeitos nas imagens. O componente realiza a alteração nas imagens provenientes do componente “RAW2RGB” de acordo com o filtro escolhido e em seguida envia os pixels diretamente as duas SDRAMs. As informações das coordenadas do módulo “Touch Point Detector” são recebidas pelo “Menu” que interpreta qual botão foi pressionado pelo usuário.

As ligações entre os componentes no diagrama RTL pode ser observada na figura a seguir:

Figura 12: Diagrama RTL

É possível observar através da figura acima como os componentes estão ligados entre si e terminam enviando as informações a SDRAM.

Como resultado final, foi obtido um sistema de aplicação de filtros (sépia e preto e branco) aplicados por comandos enviados por toques no LCD. A tela do LCD pode ser observada na figura abaixo:

(14)

Figura 13: Projeto final. Display da câmera mostrando os botões do menu.

Os botões da esquerda selecionam os filtros desejados na imagem (RGB, Greyscale e Sépia) e os da direita são responsáveis por tirar a foto e voltar ao modo de captura (branco e azul respectivamente).

(15)

4. Dificuldades encontradas

Durante o desenvolvimento do projeto, foram encontradas algumas dificuldades para o desenvolvimento. As dificuldades iniciais podem ser observadas abaixo:

1. Pouca familiaridade com o projeto de sistemas embarcados e com a arquitetura do kit da Altera;

2. Pouco entendimento sobre a relação hardware/software utilizando o NIOS II; 3. O projeto foi proposto antes de se conhecer as limitações da placa.

Com o desenvolvimento do projeto, pode-se focar no desenvolvimento de uma aplicação funcional, utilizando somente o projeto de hardware, novamente foram encontradas dificuldades:

1. Pouco conhecimento sobre a linguagem Verilog;

2. Utilização de código confuso proveniente da documentação;

3. Incompatibilidade entre o módulo de flash para sdram com o projeto desenvolvido. Na figura 7 pode-se observar o módulo incompatível que pretendia se utilizar para recuperar imagens gravadas na flash da placa DE2-70. A incompatibilidade deu-se pelo fato de não se saber as coordenadas X e Y das figuras guardadas.

(16)

5. Lições aprendidas

Durante o desenvolvimento do trabalho, foram aprendidas algumas lições sobre o projeto e implementação de sistemas embarcados.

Primeiramente deve-se levar em conta que é difícil propor um projeto sem conhecimento preciso sobre a arquitetura sobre o qual este vai ser implementado. Assim poderiam ter sido evitadas decisões erradas de projeto.

Também foi possível perceber que se pode ter várias opções sobre a implementação de uma determinada funcionalidade e nem sempre a opção mais óbvia, como a modificação de um componente pronto, é a mais fácil. Isso foi verificado pela criação do componente “Menus” ai invés da modificação do componente “RAW2RGB”.

(17)

6. Créditos

A seguir serão descritos os créditos de participação que cada integrante teve durante o desenvolvimento deste projeto:

Guilherme Cola: Desenvolvimento do relatório e auxílio na implementação de alguns módulos;

Raphael Philipe Mendes da Silva: implementação do componente “Menus” e inclusão do componente “AD2SPI” de outro projeto;

(18)

7. Referências bibliográficas

[1] Manual DE2-70, Altera. Disponível em: <www.altera.com>. [2] Woorimt&i.

Disponível em: <www.woorimtni.co.kr/terasic/terasic_fpga_01_view.jsp>. [3] Fórum, Universidade La Sierra. Disponível em:

<faculty.lasierra.edu/~ehwang/digitaldesign/webpages/projects.html>

Referências

Documentos relacionados

Local de realização da avaliação: Centro de Aperfeiçoamento dos Profissionais da Educação - EAPE , endereço : SGAS 907 - Brasília/DF. Estamos à disposição

Promovido pelo Sindifisco Nacio- nal em parceria com o Mosap (Mo- vimento Nacional de Aposentados e Pensionistas), o Encontro ocorreu no dia 20 de março, data em que também

Eu considero a duplicação como o coração de um sistema para multinível porque se ela não acontecer, você não se beneficiará daquilo que mais nos seduz: a possibilidade de

Vários trabalhos têm demonstrado que a mortali- dade por síndrome ascítica é maior nos machos do que nas fêmeas, acreditando-se que este fato esteja relacionado com a maior

Em cada ambiente realizou-se o experimento simulando três níveis de situações estressantes para os espécimes: a aproximação do observador em direção ao recinto, a preensão do

a exploração das propriedades constitutivas das TDIC permite a reconstrução do currículo na prática pedagógica, por meio da.. expressão de ideias; a interação

Nesta perspectiva, a escola não seria o centro do conhecimento e do saber, mas segundo Orozco-Gómez (2011), ela conservará sua função de instituição educativa

Não Não Min./horas Baixa Semi- persistente Min./horas Min./horas Não Não Horas/dias Média Circulativa Min./horas Min./horas Horas/dias Não Dias/semanas Alta Propagativa