Você está na página 1de 56

CENTRO UNIVERSITÁRIO POSITIVO NÚCLEO DE CIÊNCIAS EXATAS E TECNOLÓGICAS ENGENHARIA DA COMPUTAÇÃO

INTERFACE TOUCHSCREEN

Hildeberto Lopes Filho

Monografia apresentada à disciplina de Projeto Final como requisito parcial à conclusão do Curso de Engenharia da Computação, orientada pelo Prof. Valfredo Pilla Junior.

UNICENP/NCET

Curitiba

2007

TERMO DE APROVAÇÃO

Hildeberto Lopes Filho

Interface TouchScreen

Monografia aprovada como requisito parcial à conclusão do curso de Engenharia da Computação do Centro Universitário Positivo, pela seguinte banca examinadora:

Prof. Valfredo Pilla Junior

Prof. Alessandro Zimmer

Prof. José Carlos da Cunha

Curitiba, 11 de Dezembro de 2007.

AGRADECIMENTOS

Primeiramente, agradeço a Deus que me proporcionou a oportunidade e vontade de chegar até aqui, realizar este projeto e concluir mais uma etapa na minha vida.

Aos meus pais, Hildeberto Lopes Filho e Naria Maria Martins Lopes, pelo esforço que fizeram para que hoje eu pudesse estar concluindo este curso de graduação e principalmente pelo amor, valores e o apoio em todos os momentos dessa caminhada.

À minha noiva Ghiovandra que sempre acreditou no meu trabalho e a agradeço por ter agüentado meu mau humor e stress durante todo o curso, e também nunca me deixou desistir.

Ao meu orientador professor e amigo Valfredo Pilla Junior, pela idéia do projeto, por acreditar e sempre estar disposto a ajudar, não apenas nesse projeto, mas em outras pesquisas acadêmicas. Agradeço

E aos professores do curso de Engenharia da Computação da Unicenp, responsáveis diretos pela minha formação profissional.

RESUMO

Com o avanço tecnológico dos dispositivos reconfiguráveis, principalmente as FPGAs, a

realização de updates em hardware foi extremamente facilitada. Desta maneira não há a

necessidade de intervenção física facilitando, principalmente, o trabalho de projetistas.

A evolução do mundo é constante, também podemos evoluir constantemente os sistemas

através do uso das FPGAs, correções e alterações podem ser feitas, simuladas em software,

configuradas e testadas em laboratório e imediatamente após serem enviadas para campo e

implantados nos sistemas em funcionamento, sem interrupções longas e/ou trabalhosas.

E com essas facilidades de reconfigurar o hardware, desenvolveu-se um controle sobre uma

interface Touch-Screen e sua comunicação com a FPGA para permitir que o usuário mude as

características de uma determinada imagem (Interface de Vidro) no monitor através do toque,

todo o controle entre os blocos lógicos e funcionais é realizado pelo processador NIOS II.

Palavras chave: FPGA, TOUCH_ -SCREEN, NIOS II, INTERFACE DE VIDRO.

TOUCH-SCREEN INTERFACE

ABSTRACT

With the technological advance of reconfigurable devices, especially FPGAs, the accomplishment of hardware updates was extremely facilitated. This way isn't necessary physical intervention facilitating the work of designers. The evolution of the world is constant, also we can constantly evolve the systems through the use of the FPGAs, corrections and alterations can be made, be simulated in software, be configured and be tested in laboratory and immediately after to be sent for field and implanted in the systems in functioning, without long and/or laborious interruptions. And with these reconfigurable facilities of the hardware it was developed a Touch-Screen interface controller end its communication with the FPGA to allow that the user changes the characteristics of one definitive image(GLASS INTERFACE) in the monitor through the touch, all the control between the logical blocks and functional it is carried by NIOS II processor.

Key words: FPGA, TOUCH_SCREEN, NIOS II, GLASS INTERFACE

SUMÁRIO

CAPÍTULO 1 - INTRODUÇÃO

12

CAPÍTULO 2 – FUNDAMENTAÇÃO TEÓRICA

14

2.1-Touch Screen

14

2.1.1 Placa e chip da Controladora do Touch-Screen

16

2.1.2 Pinagens e descrição do Touch-Screen e da Placa Controladora

17

 

2.2-Video

18

2.3-Kit Altera Development & Education Board 1 (Kit DE2)

20

2.3.1-Layout e Componentes

20

2.3.2 Diagrama de Blocos do Kit DE2

21

2.3.3 Endereço das Pinagens dos Componentes usados no

24

2.3.3.1 PushButtons

24

2.3.3.2 Modulo dos Displays de 7 Segmentos

25

2.3.3.3 VGA

27

CAPÍTULO 3 – ESPECIFICAÇÃO TECNICA

29

3.1

Descrição de Software

29

3.1.2

Diagrama de Blocos do Software

29

3.1.2

Modulo do PC

30

3.2

Descrição de Hardware

30

3.2.1 Modulo

Touch-Screen

30

3.2.2 Modulo FPGA

30

3.2.2.1 O Processador NIOS II

31

3.2.2.2 Firmware para o NIOS II

31

3.2.3 Configuração da FPGA via JTAG

31

3.2.4 Comunicação entre FPGA e o Touch-Screen

32

3.3

Especificação de Validação

32

3.3.1 Validação de Hardware

32

3.3.2 Validação de Software

33

3.4 Recursos Necessários

34

3.5 Viabilidade Técnico-Econômica

35

3.6 Cronograma do Projeto

35

CAPÍTULO 4 – ESPECIFICAÇÃO TECNICA

36

4.1

Requisitos Mínimos

36

4.2

Projeto de Hardware

36

4.2.1 Funcão do Touch-Screen

37

4.2.2 Monitor e VGA

37

4.2.3 Comunicação serial

38

4.2.4 Comunicação USB-Blaster

39

4.3.5 Memória SDRAM

39

4.2.6 Memória FLASH

39

4.3

Software

39

4.3.1

Software (Firmware)

39

4.3.2

Objetivos

39

4.3.2

Funções

40

4.4

Validação e Testes

40

CAPÍTULO 5 – VALIDAÇÃO E RESULTADOS

43

5.1

Interface Grafica Final

49

5.1.1

Descrição do editor de texto

49

5.2 Prompt e o Teclado

50

5.3 Controle da Interface Touch-Screen

52

CAPÍTULO 6 - CONCLUSÃO

53

CAPÍTULO 7 - REFERÊNCIAS BIBLIOGRÁFICAS

55

LISTA DE FIGURAS

Figura 1 – Touch-Screen final

14

Figura 2 – Mascara

15

Figura 3 – Vidro

15

Figura 4 – Chip COACh IIs

16

Figura 5 – Placa Controladora

17

Figura 6 – Pinos do Touch-Screen

17

Figura 7 –Conector para o touch da placa controladora

 

17

Figura 8 – Conector VGA femea do kit DE2

18

Figura 9 – O kit DE2

20

Figura 10 – Diagrama de Blocos do KIT DE2

21

Figura 11 – Os 4 PushButtons do DE2Key[3

0]

24

Figura 12 – Modulo de displays de 7 segmentos

 

25

Figura 13 – Index de um display

25

Figura 14 – Temporização horizontal da VGA

27

Figura 15 - Módulos do projeto

29

Figura 16 – Conector da interface serial do kit DE2

32

Figura 17 - Tela para a validação dos testes com as bibliotecas gráficas do componente

VGA.

.34

Figura 18 – Representação em blocos do hardware do NIOS II

37

Figura 19 – Tela do monitor

38

Figura 20 - Cumdump.exe, programa de debug da porta serial

41

Figura 21 - Teste baisco do funcionamento do componente VGA do kit DE2

42

Figura 22 – Menu básico do editor de texto

43

Figura 23 - Estrutura em C para representar um botão

43

Figura 24 - Declaração dos botões do menu

44

Figura 25 – Método drawButtonUp

45

Figura 26 – Método que escreve o caption de cada botão

46

Figura 27 – Método que desenha o botão pressionado

47

Figura 28 – Efeito do botão de menu apertado

48

Figura 29 – Interface final touch-screen do usuário

49

Figura 30 – Estrutura em C para representar o prompt

50

Figura 31 – Método que desenha o prompt

50

Figura 32 - Teste do prompt e o teclado

51

Figura 33 – Funcionamento do controle da interface Touch-Screen

52

LISTA DE TABELAS

Tabela 1 – Características da placa controladora

16

Tabela 2 – Pinagem do conector que faz interface entre o touch e a

18

Tabela 3 – Descrição dos pinos da VGA

18

Tabela 4 – Lista dos componentes do Kit DE2 (DE2_UserManual.pdf, contrado no cd do kit)

20

Tabela 5 – Detalhes do FPGA Cyclone II

22

Tabela 6 - Descrição das configurações que são feitas através da Serial e Usb-Blaster

22

Tabela 7 – Descrição do Bloco da SRAM

22

Tabela 8 - Descrição do Bloco da SDRAM

22

Tabela 9 – Descrição da Memoria Flash

23

Tabela 10 - Descrição do SD card socket

23

Tabela 11 - PushButton switches

23

Tabela 12 - Descrição das entradas de Clocks

23

Tabela 13 - Descrição do Áudio CODEC

23

Tabela 14 – Descrição da saída VGA DAC

24

Tabela 15 – Descrição da Serial Port e PS2

24

Tabela 16 – Descrição dos conectores de expansão de 40 pinos

24

Tabela 17 – Pinos da FPGA referentes a cada PushButton

25

Tabela 18 – Pinos da FPGA referentes a cada segmento dos Displays do modulo

26

Tabela 19 – Especificação da temporização horizontal da VGA

27

Tabela 20 – Especificação da temporização vertical da VGA

27

Tabela 21 – Pinos da FPGA referentes a saída do Conector VGA do

28

Tabela 22 – Módulos dos componentes e suas descrições

31

Tabela 23 – Pinos da FPGA referente à pinagem da interface Serial

32

Tabela 24 - Ferramentas de Desenvolvimentos e Ambientes

34

Tabela 25 – Linguagens de programação utilizadas

35

Tabela 26 – Relação dos Custos

35

Tabela 27 – Cronograma de datas e entregas do projeto

35

Tabela 28 – Funções do sistema / firmware

40

LISTA DE SIGLAS

CRT - Catodic Ray tube DE2 - Development & Educations 1 E/S - Entrada/Saída EAB - Embedded Array Block FIFO - First-In First-Out FPGA - Field-Programmable Gate Array ITO - Transparent Conducting Oxide JTAG - Joint Test Action Group LAB - Logic Array Block LE - Logic Element LUT - Look-up-table LVDS - Low Voltage Differential Signal LVTTL - Low Voltage Transistor Transistor Level NCET - Núcleo de Ciências Exatas e Tecnológicas PC - Personal Computer PDA - Personal Digital Assistant PLL - Pulse Logic Loop SDRAM - Static Dinamic Randomic Acess Memory TTL - Transistor-transistor Logic UNICENP - Centro Universitário Positivo USB - Universal Serial Bus USP - Universidade de São Paulo VGA - Vídeo Graphics Array VHDL - Very high speed integrated circuits Hardware Descripton Language OEM - Original Equipment Manufacturer COACh IIs - Controller On A Chip, second generation

- ohm MHz - Mega Hertz. Hz - Hertz. V - Volts

- ohm MHz - Mega Hertz. Hz - Hertz. V - Volts LISTA DE SÍMBOLOS

LISTA DE SÍMBOLOS

CAPÍTULO 1 - INTRODUÇÃO

A computação reconfigurável vem sendo utilizada em larga escala para projetos de

hardware que necessitem de um grande poder de processamento. Neste campo um dispositivo muito utilizado é a FPGA (Field-Programmable Gate Array). As FPGA’s são circuitos de hardware que podem ser modificados praticamente em qualquer momento durante o uso. As FPGA’s consistem em array de blocos lógicos configuráveis, que implementam funções lógicas AND, NAND, OR, NOR e XOR.

Muitas vantagens podem ser vistas no uso de FPGA como a possibilidade de desenvolver unidades funcionais dedicadas a resolver problemas especiais e mudanças rápidas no hardware. Em microprocessadores de uso geral, se tem um hardware que não pode ser modificado, fixo, mas no FPGA essa mudança é bastante simples e rápida, feita via software. Este projeto teve sua proposta lançada a partir da idéia concedida pelo Prof. Valfredo Pilla Junior, de interface Touch-Screen.

O projeto é sobre o controle de uma interface com uma película Touch-Screen onde é

possível que o usuário ao tocar uma película sensível ao toque o sistema desenvolvido possa realizar algum tipo de alteração na imagem apresentada em um monitor que se dispõe atrás do Touch-Screen.

O objetivo foi desenvolver um sistema capaz de receber e manipular a aquisição dos dados

gerados pela placa controladora através toque na película Touch-Screen que estará na frente da

tela de um monitor, converter estes dados, realizar uma alteração na tela inicialmente apresentada e disponibilizar o resultado da alteração atualizando a tela do monitor.

O hardware do sistema é basicamente composto, na parte da aquisição, por uma película

Touch-Screen e uma placa controladora da própria película, recepção e processamentos feitos no Kit DE2 (Development & Education 1) Board que enviara o resultado através da saída VGA (Vídeo Graphics Array), para um monitor CRT (Catodic Ray tube). Este sistema é justificado, pois as interfaces intuitivas com telas Touch-Screen são utilizadas em uma ampla gama de mercados. Por exemplo:

Comércio: Realizar um atendimento de forma rápida e fácil é objetivo da automação comercial, tanto para o vendedor quanto para os clientes. Os sistemas de quiosques e pontos de vendas (POS) mais bem sucedidos possuem sistema Touch-Screen. Industrial: A tecnologia touch simplifica a interface usuário/máquina de grandes complexos equipamentos devido à eliminação do teclado, do mouse e de outros periféricos de um ambiente industrial evitando distrações em um ambientes geralmente muito agressivo

12

Medicina: Os sistemas que usam touch simplificam os sofisticados sistemas médicos, reduzem as possibilidades de erros e proporcionam um mecanismo de entrada de dados mais eficiente que qualquer outro periférico. Educação: Hoje o touch esta se tornando a interface de treinamento mais popular em todas as

fases do aprendizado desde a pré escola, jardim de infância e preparação profissional, eliminando

a frustrações de crianças ao utilizar o mouse ou teclado. E aplicações com o objetivo de diminuir o tempo de resposta, aumentar a produtividade, proporcionar produtos e serviços de maior qualidade e aumentar os lucros. Por exemplo, realizar um atendimento de forma rápida e fácil é objetivo da automação comercial, tanto para o vendedor quanto para os clientes. Os sistemas de quiosques e pontos de vendas mais bem sucedidos possuem sistema Touch-Screen. Os serviços intuitivos e interativos de uma interface Touch proporcionam confiabilidade ao cliente que é exatamente o que o seu negócio precisa para

o crescimento e o sucesso em longo prazo (elotouch, 2007). Este projeto no futuro poderá ser integrado com outro projeto formando assim um sistema parecido com um PDA (Personal Digital Assistant).

13

CAPÍTULO 2 – FUNDAMENTAÇÃO TEÓRICA

2.1-Touch Screen

Um Touch-Screen que em portugues quer dizer “tela sensivel ao toque” estão disponíveis para uma grande variedade de uso, desde pontos de vendas até quiosques, equipamentos médicos

e industriais e sistemas de jogos. As vantagens das soluções touch incluem precisão,

transparência, e facilidade de uso e instalação. O Touch-Screen usado neste projeto é o modelo de quatro fios resistivos AT4 da empresa Elo TouchSystem (www.elotouch.com.br). A tecnologia resistiva touch de quatro fios consta de uma tela de vidro coberto uniformemente por camadas eletricamente condutivas e resistivas. Uma lâmina de poliester é hermeticamente estendida sobre a parte superior do vidro e separada por minúsculos espaçadores

(pontos) transparentes e isolantes. A parte externa dessa lâmina é uma película durável e firme; a parte interna contém uma camada condutiva. Durante seu funcionamento, uma corrente elétrica

se propaga através do touchscreen. Ativada por um mínimo toque, a película condutiva faz o contato com a camada de vidro, registrando esse ponto de contato. A figura 1 mostra uma imagem real da tela touch-screen e as figuras 2 e 3 mostram as imagems e descrição das camadas que compoem o Touch-Screen.

e descrição das camadas que compoem o Touch-Screen . Figura 1 – Touch-Screen final (Adaptado com

Figura 1 – Touch-Screen final (Adaptado com as dimensões da aplicação do editor de texto para validar este projeto)

14

Figura 2 – Mascara (Adaptado do site elotouch.com.br) 1. Camada sólida resistente a riscos (tipo
Figura 2 – Mascara (Adaptado do site elotouch.com.br) 1. Camada sólida resistente a riscos (tipo

Figura 2 – Mascara (Adaptado do site elotouch.com.br)

1. Camada sólida resistente a riscos (tipo anti-reflexiva)

2. Película de Poliester

3. Camada ITO

4. Contatos de prata

Película de Poliester 3. Camada ITO 4. Contatos de prata Figura 3 – Vidro (Adaptado do
Película de Poliester 3. Camada ITO 4. Contatos de prata Figura 3 – Vidro (Adaptado do

Figura 3 – Vidro (Adaptado do site elotouch.com.br)

1. Contatos de prata

2. Pontos espaçadores

3. Camada ITO(Transparent Conducting Oxide)

4. Camada de Vidro

O circuito da controladora aplica uma tensão através da superfície do vidro. As tensões no

ponto de contato constituem a representação analógica da superfície de toque. A controladora

traduz essas tensões e transmite-os para o computador para processá-los.

15

2.1.1 Placa e chip da Controladora do Touch-Screen

O COACh IIs (Controller On A Chip, second generation) é compacto, econômico chip

controlador para as aplicações com o Touch-Screen AT4 de 4 fios resistivos. Opera em 3.3V e

em 5V. O tamanho compacto, baixa voltagem para operar e comsumo de energia é a melhor

solução para OEM’s (original equipment manufacturer), pois pode contar com estabilidade

confiabilidade e desempenho de componentes com touch para aplicações embarcadas ou

aplicações portáveis[elotouch.com]. A Figura 4 ilustra o chip.

portáveis[elotouch.com]. A Figura 4 ilustra o chip. Figura 4 – Chip COACh IIs (Adaptado do site

Figura 4 – Chip COACh IIs (Adaptado do site elotouch.com)

A placa controladora que integra o touch-screen em outros módulos possui as características

descritas na Tabela 1 e a Figura 5 ilustra a placa controladora.

Tabela 1 – Características da placa controladora

Alimentação

5 VDC, nominal (4,5)

 

Interface-Serial

(Serial RS-232), Full Duplex

 

Parâmetros de Comunicação

Baud Rate 9600 and 19200, 8 Bits de dados, 1 bit de parada.

Interface USB

Quando estiver comunicando via USB a Serial estará desabilitada. E a placa não é alimentada pela USB

Resolução de toque

4096x4096,

independente

do

tamanho

da

película touch-screen

 

Tempo de conversão do toque

10ms

16

Figura 5 – Placa Controladora (Adaptado do site elotouch.com) 2.1.2 Pinagens e descrição do Touch-Screen

Figura 5 – Placa Controladora (Adaptado do site elotouch.com)

2.1.2 Pinagens e descrição do Touch-Screen e da Placa Controladora

A Figura 6, ilusta os pinos do Touch-Screen que são ligados ao conector da placa

controladora.

que são ligados ao conector da placa controladora. Figura 6 – Pinos do Touch-Screen (Adaptado do

Figura 6 – Pinos do Touch-Screen (Adaptado do site elotouch.com)

A Figura 7 mostra o conector da placa controladora e as respectivas pinagens.

o conector da placa controladora e as respectivas pinagens. Figura 7 –Conector para o touch da

Figura 7 –Conector para o touch da placa controladora (Adaptado do site elotouch.com)

17

A Tabela 2 descreve os pinos do conector para o touch da placa controladora.

Tabela 2 – Pinagem do conector que faz interface entre o touch e a controladora.

Pino

Nome do Sinal

Descição do sinal

1

X+

Entrada de tensão positiva referente ao eixo X da tela

2

Y+

Entrada de tensão positiva referente ao eixo Y da tela

3

X-

Entrada de tensão negativa referente ao eixo X da tela

4

Y-

Entrada de tensão negativa referente ao eixo Y da tela

2.2-Video

 

É usado um monitor CRT convencional o qual apresentará uma imagem criada através as bibliotecas graficas proprietarias da ALTERA esta imagem representa um menu com botoes e e

que atravez da manipulação dos metodos das bibliotecas os resultados são disponibilizados na saida VGA do kit, dependendo do botão da imagem que for tocada atravez do touch alguma ação de alteração na imagem será atulalizada na saida vga.

A

Figura 8 ilustra o conector (fêmea) da saída VGA do kit DE2.

8 ilustra o conector (fêmea) da saída VGA do kit DE2. Figura 8 – Conector VGA

Figura 8 – Conector VGA femea do kit DE2

E

na Tabela 3 a descrição de cada pino bem como sua direção.

Tabela 3 – Descrição dos pinos da VGA

Pin

Name

 

Dir

Description

1

RED

1 RED Red Video (75 ohm, 0.7 V p-p)

Red Video (75 ohm, 0.7 V p-p)

2

GREEN

2 GREEN Green Video (75 ohm, 0.7 V p-p)

Green Video (75 ohm, 0.7 V p-p)

3

BLUE

3 BLUE Blue Video (75 ohm, 0.7 V p-p)

Blue Video (75 ohm, 0.7 V p-p)

4

ID2

4 ID2 Monitor ID Bit 2

Monitor ID Bit 2

5

GND

 

Ground

6

RGND

 

Red Ground

7

GGND

 

Green Ground

8

BGND

 

Blue Ground

18

9

KEY

-

Key (No pin)

10

SGND

 

Sync Ground

11

ID0

11 ID0 Monitor ID Bit 0

Monitor ID Bit 0

12

ID1 or DAS

12 ID1 or DAS Monitor ID Bit 1

Monitor ID Bit 1

13

HSYNC or CSYNC

13 HSYNC or CSYNC Horizontal Sync (or Composite Sync)

Horizontal Sync (or Composite Sync)

14

VSYNC

14 VSYNC Vertical Sync

Vertical Sync

15

ID3 or SCL

15 ID3 or SCL Monitor ID Bit 3

Monitor ID Bit 3

19

2.3-Kit Altera Development & Education Board 1 (Kit DE2)

2.3.1-Layout e Componentes

Uma fotografia do Kit DE2 é mostrado na Figura 9, onde se ve a aparencia do kit e as

indicações das localização dos componentes e conectores.

indicações das localização dos componentes e conectores. Figura 9 – O kit DE2 (DE2_UserManual.pdf, encontrado nos

Figura 9 – O kit DE2 (DE2_UserManual.pdf, encontrado nos cds do Kit)

O Kit DE2 tem muintas funcionalidades que permite o desenvolvedor implementar uma

infinadades de circuitos, e varios projetos de multimidia.

Na Tabela 4 é listado os componentes fornecidos na placa do Kit DE2.

Tabela 4 – Lista dos componentes do Kit DE2 (DE2_UserManual.pdf, contrado no cd do kit)

1

Altera Serial Configuration device – EPCS4

 

USB Blaster (on board) for programming and user API control; both JTAG and Active

2

Serial

3

(AS) programming modes are supported

4

512-Kbyte SRAM

5

8-Mbyte SDRAM

6

4-Mbyte Flash memory

7

SD Card socket

8

4

pushbutton switches

9

10

toggle switches

10

10

red user LEDs

11

8

reen user LEDs

20

12

50-MHz oscillator and 27-MHz oscillator for clock sources

13

24-bit CD-quality audio CODEC with line-in, line-out, and microphone-in jacks

14

VGA DAC (4-bit resistor network) with VGA-out connector

15

RS-232 transceiver and 9-pin connector

16

PS/2 mouse/keyboard connector

17

Two 40-pin Expansion Headers with diode protection

18

Powered by either a 7.5V DC adapter or a USB cable

2.3.2 Diagrama de Blocos do Kit DE2

adapter or a USB cable 2.3.2 Diagrama de Blocos do Kit DE2 Figura 10 – Diagrama

Figura 10 – Diagrama de Blocos do KIT DE2 (DE2_UserManual.pdf, contrado no cd do kit)

21

A Tabela 5 mostra a informação detalhada do Bloco Cyclone II FPGA 2C20 mostrado na

Figura 10.

Tabela 5 – Detalhes do FPGA Cyclone II

 

FPGA Cyclone II 2C35

18.752 LE’s

52

M4K RAM blocks

240K total RAM bits

26

embedded multipliers

4 PLL’s

315 user I/O pin’s

FineLine BGA 484-pin package

A Tabela 6 mostra a informação detalhada do Bloco do dispositivo de configuração Serial e

circuito Usb-Blaster.

Tabela 6 - Descrição das configurações que são feitas através da Serial e Usb-Blaster

Configuração do dispositivo Serial e do Circuito Usb-Blaster

Configuração do dispositivo serial Altera EPCS4

On-Board Usb-Blaster para Controle de API de usuário e programação

JTAG e AS são os modos do programação suportados

A Tabela 7 mostra a descrição do Bloco da SRAM.

Tabela 7 – Descrição do Bloco da SRAM

SRAM

512-Kbyte Static RAM memory chip

Organizado em 256K x 16 bits

Acessível como memória para o processador Nios II e pelo painel de controle do DE2

A Tabela 8 mostra a descrição do Bloco da SDRAM.

Tabela 8 - Descrição do Bloco da SDRAM

SDRAM

8-Mbyte Single Data Rate Synchronous Dynamic RAM memory chip

Organizado em 1M x 16 bits x 4 Banks

Acessível como memória para o processador Nios II e pelo painel de controle do DE2

22

A Tabela 9 mostra a descrição do Bloco Memory Flash.

Tabela 9 – Descrição da Memoria Flash

Memory Flash

4-Mbyte NAND Flash memory

8-bit data bus

Acessível como memória para o processador Nios II e pelo painel de controle do DE2

A Tabela 10 mostra a descrição do Bloco SD card socket.

Tabela 10 - Descrição do SD card socket

SD card socket

Fornece o modo SPI para o acesso ao cartão SD

Acessível como memória para o processador Nios II e pelo painel de controle do DE2

A Tabela 11 mostra a descrição do Bloco PushButtons.

Tabela 11 - PushButton switches

PushButton switches

10 Switches de entradas para o usuario

Um Switch esta em 0 quando esta para baixo e 1 quando esta para cima (Olhar no Kit)

Acessível como memória para o processador Nios II e pelo painel de controle do DE2

A Tabela 12 mostra a descrição dos Clock inputs.

Tabela 12 - Descrição das entradas de Clocks

Clock inputs

Oscilador de 50 Mhz

Oscilador 27 Mhz

Entrada para clock externo

A Tabela 13 mostra a descrição do Áudio CODEC.

Tabela 13 - Descrição do Áudio CODEC

Áudio CODEC

4-Mbyte NAND Flash memory

8-bit data bus

Acessível como memória para o processador Nios II e pelo painel de controle do DE2

23

A Tabela 14 mostra a descrição do Bloco VGA DAC.

Tabela 14 – Descrição da saída VGA DAC

VGA DAC

Usa 4 bits DAC para cada cor (RGB)

Com 15 pinos no conector VGA convencional (fêmea)

Suporta uma resolução de 640 x 480 com um refresh de até 100Hz

Pode ser usando com o FPGA Cyclone II para implementar um Encoder para TV

A Tabela 15 mostra a descrição do Bloco Serial Ports & PS2.

Tabela 15 – Descrição da Serial Port e PS2

Serial Ports & PS2

Uma porta RS-232

Uma posta PS/2

Um conector Serial para a porta do RS-232

Conector PS/2 para conectar um mouse ou teclado ao DE2

A Tabela 16 mostra a descrição do Bloco dos Two 40 - pin expansion headers.

Tabela 16 – Descrição dos conectores de expansão de 40 pinos

Two 40 - pin expansion headers

72 pinos de I/O do Clyclone II bem como 8 power e ground’s são trazidos aos 2 conectores de expansão de 40 pinos cada.

Os conectores de 40 pinos também aceitam os cabos IDE de 40 pinos

Proteção resistiva é fornecida

2.3.3 Endereço das Pinagens dos Componentes usados no Projeto.

2.3.3.1 PushButtons

A Figura 11 mostra uma foto dos PushButtons do kit, Key[3

esquerda é o mais significativo e o mais de direita o menos signigicativo.

0],

a ordem é o button da

direita o menos signigicativo. 0], a ordem é o button da Figura 11 – Os 4

Figura 11 – Os 4 PushButtons do DE2Key[3 0] (DE2_UserManual.pdf, contrado no cd do kit)

24

A Tabela 17 mostra os pinos da FPGA aos PushButtons.

Tabela 17 – Pinos da FPGA referentes a cada PushButton (DE2_UserManual.pdf, contrado no cd do kit)

PushButton (DE2_UserManual.pdf, contrado no cd do kit) 2.3.3.2 Modulo dos Displays de 7 Segmentos A Figura

2.3.3.2 Modulo dos Displays de 7 Segmentos

A Figura 12 mostra a foto do modulo de displays de 7 segmentos do kit DE2 e a Figura 13 mostra o index de cada segmento de um display.

a Figura 13 mostra o index de cada segmento de um display . Figura 12 –

Figura 12 – Modulo de displays de 7 segmentos (DE2_UserManual.pdf, encontrado no cd do kit)

de 7 segmentos (DE2_UserManual.pdf, encontrado no cd do kit) Figura 13 – Index de um display

Figura 13 – Index de um display (DE2_UserManual.pdf, encontrado no cd do kit)

25

A Tabela 18 mostra os pinos da FPGA referente a cada segmento dos displays de 7 segmentos do modulo.

Tabela 18 – Pinos da FPGA referentes a cada segmento dos Displays do modulo

displays de 7 segmentos do modulo. Tabela 18 – Pinos da FPGA referentes a cada segmento

26

2.3.3.3 VGA

A Figura 14 esta em forma de onda da temporização horizontal e vertical da VGA do Kit

DE2.

da temporização horizontal e vertical da VGA do Kit DE2. Figura 14 – Temporização horizontal da

Figura 14 – Temporização horizontal da VGA

A Tabela 19 mostra a especificação da temporização horizontal da VGA

Tabela 19 – Especificação da temporização horizontal da VGA

19 – Especificação da temporização horizontal da VGA A Tabela 20 mostra a especificação da temporização

A Tabela 20 mostra a especificação da temporização vertical da VGA.

Tabela 20 – Especificação da temporização vertical da VGA

a especificação da temporização vertical da VGA. Tabela 20 – Especificação da temporização vertical da VGA

27

A Tabela 21 mostra os pinos da FPGA referente a cada pino de saida do conector VGA do Kit DE2.

Tabela 21 – Pinos da FPGA referentes a saída do Conector VGA do Kit.

cada pino de saida do conector VGA do Kit DE2. Tabela 21 – Pinos da FPGA

28

CAPÍTULO 3 – ESPECIFICAÇÃO TECNICA

Nesse capítulo tem-se uma descrição dos principais módulos do projeto. São eles: Software, Firmware e Hardware. Inicialmente é apresentada a visão geral do sistema e a descrição funcional de cada módulo. A Figura 15 apresenta o diagrama em blocos do sistema

A Figura 15 apresenta o diagrama em blocos do sistema Figura 15 - Módulos do projeto

Figura 15 - Módulos do projeto

3.1 Descrição de Software

O Software é uma das interfaces com o usuário.

3.1.2 Diagrama de Blocos do Software

3.1 Descrição de Software O Software é uma das interfaces com o usuário. 3.1.2 Diagrama de

29

3.1.2

Modulo do PC

Neste modulo é onde se encontrar as ferramentas utilizadas para o desenvolvimento do hardware e software deste projeto.

O

Software Quartus II utilizado para fazer o desenvolvimento do hardware.

O

Software SOPC, utilizado para configurar o processador NIOS II e duas interfaces de

controles dos dispositivos externos.

O Software NIOS IDE, utilizado para desenvolver firmware do processador NIOS II.

3.2 Descrição de Hardware

3.2.1 Modulo Touch-Screen

O usuário, ao tocar o Touch-Screen (AT4 touch-screen resistivo de 4 fios) ocorre uma

mudança nas tensões do eixo X e do eixo Y devido a resistência gerada pelo ao toque do usuário

em uma determinada região da tela, essa mudança de tensão é interpretada pela placa controladora COACh IIs do Touch-Screen, e enviada via serial para o Kit DE2 que interpretará

os dados e fará o devido processamento.

3.2.2 Modulo FPGA

O Hardware corresponde tanto aos componentes físicos presentes no kit de desenvolvimento

quanto aos componentes que serão configurados na FPGA. São diversos componentes escritos em linguagem de descrição de hardware. No um dos principais componentes de hardware utilizado modulo é o processador NIOS II, para se ter uma idéia o processador NIOS II é capaz gerenciar os dispositivos externos a FPGA utilizando controladores de memórias, controladores de VGA entre outros. E também é possível

o próprio usuário criar seu componente para ser controlado através do processador NIOS II(Altera, 2007).

30

3.2.2.1

O Processador NIOS II

Através do software SOPC da ALTERA foi possível montar a arquitetura de hardware do processador NIOS II bem como especificar as interfaces que ele irá controlar através do firmwar feito no NIOS II IDE. Na Tabela 22 é no campo Module Name onde estão os módulos que foram usados para definir o processador NIOS II e os componentes externos que ele irá controlar e no campo Description esta a descrição do nome de cada modulo.

Tabela 22 – Módulos dos componentes e suas descrições

Tabela 22 – Módulos dos componentes e suas descrições 3.2.2.2 Firmware para o NIOS II O

3.2.2.2 Firmware para o NIOS II

O Firmware foi feito utilizando a linguagem C utilizando a ferramenta NIOS II IDE. Através

do firmware é possível desenvolver rotinas para utilizar o NIO II de acordo com a necessidade deste projeto, rotinas para utilizar a controladora da VGA, LEDS, BUTTONS, MEMORIA etc.

O Firmware esta preparado utilizar as bibliotecas gráficas para controlar a vga e serial, e

USB-BLASTER é encarregado em enviar todo o desenvolvimento do projeto para o Kit DE2

3.2.3 Configuração da FPGA via JTAG

Depois de configurado o hardware do processador NIOS II é preciso fazer o load do NIOS para a FPGA e para que isso aconteça é necessário que através do software Quartus II da ALTERA utilizando a interface JTAG, utilizando o cabo USB-BLASTER.

31

3.2.4

Comunicação entre FPGA e o Touch-Screen

Para comunicação entre dos dois hardwares Touch-Screen e o FPGA, é utilizando uma interface serial RS-232.

A configuração da interface é a seguinte

Bits de dados: 8.serial RS-232. A configuração da interface é a seguinte Taxa de dados 5600(bps). A Tabela 23

Taxa de dados 5600(bps).configuração da interface é a seguinte Bits de dados: 8. A Tabela 23 mostra a relação

A Tabela 23 mostra a relação dos pinos da porta serial com os pinos da FPGA.

Tabela 23 – Pinos da FPGA referente à pinagem da interface Serial

– Pinos da FPGA referente à pinagem da interface Serial E a Figura 16 mostra o

E a Figura 16 mostra o desenho correspondente da interface serial.

16 mostra o desenho correspondente da interface serial. Figura 16 – Conector da interface serial do

Figura 16 – Conector da interface serial do kit DE2

3.3 Especificação de Validação

3.3.1 Validação de Hardware

A validade do hardware se faz com a análise de todos os módulos envolvidos.

As necessidades são estudadas, os componentes externos ao FPGA são selecionados de acordo, o processador nios e os controladores dos módulos externos como VGA e SERIAL são enviados ao modulo FPGA. Os resultados obtidos na tela do monitor e a recepção dos dados pela serial, comprovam o funcionamento do modulo de comunicação da serial e vga.

32

3.3.2 Validação de Software

A validação do controle da interface touch-screen faz-se a partir dos resultados obtidos das

funções escritas na linguagem C especificas para cada componente externos ao FPGA, essas funções tornam possíveis que o processador NIOS na FPGA tenha total controle sobre os módulos externos, como a VGA e a SERIAL. As funções que são utilizadas para validar o funcionamento do software são, para a VGA os métodos de controle (alt_up_vga_draw_char_1b( char, int x, int y)) e (alt_up_vga_draw_pixel( color, x, y)). O método (alt_up_vga_draw_char_1b( char, int x, int y)) tem a funcionalidade de escrever

caracteres na tela do monitor, e a descrição da sua assinatura “parâmetros” é a seguinte, char é o caractere que é escrito em alguma posição na tela, int x é a posição x da tela do monitor e int y é a posição y da tela do monitor, sendo que a resolução utilizada é de 80x60, ou seja x não pode passar de 80 e y não pode passar de 60.

O método (alt_up_vga_draw_pixel( color, int x, int y)) tem a funcionalidade de “pintar” o

fundo da tela do monitor, o método de imprimir caracteres tem preferência sobre este método, ou seja os caracteres sempre ficam sob a área pintada ou seja o caractere sempre ficara em cima da área pintada, a descrição da assinatura deste método é a seguinte, color é a valor da cor, que pode ser um valor inteiro ou em hexadecimal para definir uma cor de alguma posição da tela definidos pelos parâmetros x e y. As funções que são utilizadas para validar o funcionamento do software são, para a Serial os métodos de controle de transmissão (fread( packet, sizeof(*packet), 1, serial_fp )), a função fread é utilizada para a leitura via interrupção dos pacotes que a controladora envia para o kit DE2, as assinaturas do método fread tem a seguinte composição, packet é a estrutura do pacote

que será recebido, o sizeof(*packet) é o diz qual é o tamanho exato da estrutura criada, e o serial_fp é o handle da porta serial. Uma observação muito importante, é que para o total funcionamento é necessário com se copie os arquivos *.c e *.h que acompanham os componentes para dentro da pasta principal do projeto do firmware do nios. Neste projeto foram copiados os arquivos rs232.h e rs232.c onde estão os métodos de controle da SERIAL e alt_up_vga.h, alt_up_vga.c onde estão os métodos de controle para a VGA. Para tornar estes métodos acessíveis é preciso fazer os includes dos arquivos *.h no projeto da NIOS IDE.

A figura 17 mostra a utilização dos métodos (alt_up_vga_draw_pixel( color, int x, int y))

para pintar o fundo da tela com as cores preta e azul, e (alt_up_vga_draw_char_1b( char, int x,

33

int y)) utlizado para escrever os caracteres ‘a’ e ‘b’ dentro de um grupo de pixel previamente

pintado, a (alt_up_vga_draw_pixel( color, int x, int y)) não pinta um pixel de cada vez, e sim

um bloco de 8x8 pixels.

pinta um pixel de cada vez, e sim um bloco de 8x8 pixels. Figura 17 -

Figura 17 - Tela para a validação dos testes com as bibliotecas gráficas do componente VGA.

3.4 Recursos Necessários

A Tabela 24 apresenta os ambientes de desenvolvimento e ferramentas de software utilizadas

e na Tabela 25 as linguagens necessárias. Estas ferramentas foram utilizadas em ambiente

Windows Xp.

Tabela 24 - Ferramentas de Desenvolvimentos e Ambientes

Software

Para que foi Utilizado

Quartus II

Para a definição de qual o modelo de FPGA utilizado, compilação e simulação e envio Load do NIOS para FPGA.

SOPC

Para definição da do processador NIOS II e com quais componentes externos ele ira interagir através dos controladores dos respectivos componentes.

NIOS II IDE

Para implementação do firmware do processador NIOS II, utilizando a linguagem em C.

34

Borland C++ Builder

Para desenvolvimento de ima interface de comunicação via caboUSB- BLASTER, para o envio de imagem para o kit

Tabela 25 – Linguagens de programação utilizadas

Linguagem

Ferramenta

C++

Borland C++ Builder

Verilog/VHDL

Quartus II

C

NIOS II IDE

3.5 Viabilidade Técnico-Econômica

O valor do projeto esta descrito na Tabela 26.

Tabela 26 – Relação dos Custos

DESCRIÇÃO

CUSTO APROXIMADO (R$)

COMPONENTES ELETRÔNICOS

500,00

1 Kit DE2 Cyclone II

350,00

1 Monitor de Computador

350,00

HORAS TRABALHADAS (400 horas)

7500,00

CUSTO TOTAL APROXIMADO (R$)

8700,00

3.6 Cronograma do Projeto

A tabela 27 contem as informações do cronograma do projeto.

Tabela 27 – Cronograma de datas e entregas do projeto

Data

Atividade a ser apresentada

05/03/07

Entrega das propostas de projeto para avaliação do colegiado

02/04/07

Entrega das especificações técnicas do projeto aprovado

11/06/07

Entrega do projeto (monografia) e dos testes preliminares do mesmo.

06/08/07

Apresentação prévia da implementação do projeto especificado.

01/10/07

Apresentação do projeto implementado Qualificação para a fase final

29/10/07

Segunda apresentação do projeto implementado, para os que não o fizeram no dia 01/10/06, com decréscimo da nota; Qualificação para a fase final.

05/11/07

Entrega da documentação completa em espiral para a banca examinadora, em 3 vias, contendo a monografia, manual técnico, manual do usuário e artigo científico.

26/11/07

Defesa formal dos projetos, com apresentação oral para a banca examinadora.

10/12/07

Entrega da documentação completa, revisada e corrigida, encadernada no padrão da biblioteca (capa dura) em duas vias, contendo a monografia, manual técnico, manual do usuário e artigo científico; Entrega do CD contendo, no formato WEB, todo o conteúdo dos manuais.

35

CAPÍTULO 4 – ESPECIFICAÇÃO TECNICA

4.1 Requisitos Mínimos

Os

requisitos mínimos de Hardware são:

Funcionamento das interfaces Serial e USB- Blaster

Funcionamento das interfaces Serial e USB-Blaster

Funcionamento do Kit DE2.
Funcionamento do Kit DE2.

Funcionamento do Kit DE2.

PC

Os

requisitos mínimos de Software

requisitos mínimos de Software
requisitos mínimos de Software
requisitos mínimos de Software
requisitos mínimos de Software

Windows Xp

Quartus II

SOPC

NIOS II IDE

4.2 Projeto de Hardware

O hardware utilizado nesse projeto inclui componentes presentes na Placa de Desenvolvimento Nios II - edição DE2 Cyclone II EP2C35 e principalmente o hardware que será configurado na FPGA, escrito em linguagem de descrição de hardware (HDL).

O um dos principais blocos de hardware é o processador NIOS II o Avalon Bus e os

controladores de componentes externos a FPGA e de comunicação presentes no Kit.

36

O software embarcado (firmware) estará rodando nessa arquitetura. É uma arquitetura completa, construída com a ferramenta SOPC Builder da Altera. A Figura 18 representa em blocos os principais componentes dessa arquitetura.

em blocos os principais componentes dessa arquitetura. Figura 18 – Representação em blocos do hardware do

Figura 18 – Representação em blocos do hardware do NIOS II

4.2.1 Funcão do Touch-Screen

Outro bloco importante é o do Touch-Screen, esta tela sensível ao toque, pois como esta tela

trabalha com resistência, ao ser tocado em uma determinada região, uma resistência é gerada e a tensão de saída é modificada, a alimentação desta placa é proveniente de sua placa controladora

a

mesma placa que recebe a tensão de saída modificada de acordo com a região tocada na tela. Para verificar as características detalhadas do Touch-Screen e sua placa controlador favor ver

o

Capitulo 2.

4.2.2 Monitor e VGA

O Monitor inicialmente tem apenas o desenho de um botão, que ao ser tocado via touch, mudara a cor de toda a tela. A imagem exibida no monitor tem uma resolução de

37

Protótipo das telas para os testes esta na Figura 19, a tela verde quando a touch não é tocando na região do botão de OK, quando o botão de OK for tocado a tela do monitor mudara de cor ficando azul.

OK for tocado a tela do monitor mudara de cor ficando azul. Figura 19 – Tela

Figura 19 – Tela do monitor

No Capitulo 2, estão todas as características da pinagem e do conector VGA.

4.2.3 Comunicação serial

Entre a placa controladora do Touch-Screen e o FPGA existe uma comunicação serial. Sendo que a placa controladora do touch apenas envia dados para a para a interface serial do kit DE2, e o kit tem a responsabilidade de interpretar estes dados para a manipulação da imagem que é mostrada no monitor. No capitulo 2 estão das descrições dos pinos e do conector da comunicação Serial. O pacote serial que é transmitido pela placa controladora do touch-screen possui 10 bytes de comprimento e segue a seguinte seqüência de envio:

[55] [54] [##] [##] [##] [##] [##] [##] [##] [##]

Seqüência dos bytes:

Os dois primeiros bytes identificam o Header do pacote

Os dois primeiros bytes identificam o Header do pacote

O terceiro byte é uma flag de status, onde o numero 1 identifica que a

O

terceiro byte é uma flag de status, onde o numero 1 identifica que a tela foi tocada,

o numero 2 identifica que a tela continua pressionada, e a flag de numero 4 identifica

que o toque terminou.

O quarto e quinto byte correspondem à posição do eixo x onde a tela foi

O

quarto e quinto byte correspondem à posição do eixo x onde a tela foi tocada.

O sexto e o sétimo byte correspondem a posição do eixo y onde a tele

O

sexto e o sétimo byte correspondem a posição do eixo y onde a tele foi tocada

O restante os bytes identificam o tail do pacote recepcionado pelo kit DE2.

O

restante os bytes identificam o tail do pacote recepcionado pelo kit DE2.

38

4.2.4

Comunicação USB-Blaster

Essencial para envio do projeto desenvolvido para o kit DE2, também muito utilizado para o debug deste projeto.

4.3.5 Memória SDRAM

A memória utilizada para armazenar grandes quantidades de dados é a SDRAM (ver detalhes

no Capitulo 2). Essa memória é muito rápida serviu muito bem para armazenar o firmware deste projeto, pois tem o tempo acesso ideal para ler as instruções que utilizaram a VGA e também é rápida o suficiente para fazer a leitura dos dados e disponibilizar na saída VGA do kit.

4.2.6 Memória FLASH

É onde será armazenado o firmware, possui espaço suficiente para isso 4MB, e uma memória

mais lenta e por isso não foi usada para armazenar dados para serem jogados na vga do Kit.

4.3 Software

4.3.1 Software (Firmware)

O software tem de função de utilizar as bibliotecas das controladoras dos componentes

externos a fim de controlar estes componentes de acordo com o necessário para atender o objetivo do projeto. Ou seja, uma tela inicial é apresentada e o usuário ao tocar na nela o kit recebe um pacote via serial e interpreta a posição da tela em que foi tocado, e logo em seguida envia o resultado deste toque para o monitor.

4.3.2 Objetivos

O usuário ao tocar no touch-screen, o kit DE2 recebe da placa controladora do touch um

pacote com 10 bytes e interpreta o pacote e realiza uma ação de acordo com a posição da tela tocada, alterando assim a imagem anterior com o resultado do toque. Interpretar o toque de usuário na tela touch-screen, recepção do pacote via serial da placa controladora do touch-screen, tratamento do pacote e interpretação das coordenadas x e y do

39

toque. Realização de alguma ação que resultara na alteração da imagem da tela atual de acordo

com a função em que as coordenadas foram previamente definidas para o que deve ser feito.

4.3.2 Funções

A Tabela 28 tem as principais funções que foram implementadas para o sistema.

Tabela 28 – Funções do sistema / firmware

FUNÇÕES

Tela de um pequeno editor de texto

Tratamento do sinal recebido da serial devido a um toque na tela

Interpretação do pacote serial, e transfomação para coordenadas x e y

Transformação das posições do toque na tela em alguma ação enviando o resultado para a VGA

Imagem final disponibilizada ao usuário, de acordo com o toque que foi dado na tela.

Controlar dispositivos, cada dispositivo pode ser controlado pelo seu respectivo contrador através de seu endereço base, VGA, SERIAL, USB-BLASTER, I/O(Leds, Switches, etc) do Kit

DE2

O Firmware do processador NIOS II é que realizará a integração entre hardware com

hardware. Com o firmware controlando o NIOS II é possível interagir com os dispositivos

externos a FPGA. Tornando possível a integração da FPGA com a película touch-screen e um

monitor sem a ajuda de um PC, a única ajuda do pc seria para enviar dados de uma imagem para

o Kit DE2.

4.4 Validação e Testes

Inicialmente, os módulos da VGA e comunicação SERIAL não estavam funicionando,

apenas o devido à fraca documentação sobre o kit DE2, foi possível apenas fazer testes com o

Processador NIOS II, pois sobre este existem bastantes documentos e exemplos que podem ser

utilizados.

Nesta primeira parte foi possível testar o NIOS II para controlar o display, botões e switchs

do kit DE2.

Com o NIOS II funcionando completamente, foi necessário porta-lo para o kit DE2, o que foi

simples, pois como sabemos esses kits são portáveis entre si, apenas mudando a pinagem e a

capacidade da FPGA.

Com o Kit DE2 foi possível fazer os testes necessários com a comunicação serial,

inicialmente testada via terminal conversando diretamente com o kit, foi possível fazer o

seguinte teste, os caracteres que eram entrados via teclado chegavam ao kit via serial e o o

40

caractere era impresso no display de 7 segmentos. Tendo feito este modulo funcionar, foi preciso entender como era o pacote transmitido pela placa controladora do touch-screen. Os pacotes de 10 bytes transmitidos serialmente pela placa controladora seguem na seguinte ordem:

[55] [54] [##] [##] [##] [##] [##] [##] [##] [##]

A figura 20 mostra o programa comdump.exe, que é facilmente encontrado pelas ferramentas

de pesquisa da web, e também existem vario outros programas como este, e o comdump é utilizado para debug da porta serial do pc conectado diretamente na placa controladora do touch- screen, e foi a peça chave para o entendimento do pacote enviado pela placa controladora.

o entendimento do pacote enviado pela placa controladora. Figura 20 - Cumdump.exe, programa de debug da

Figura 20 - Cumdump.exe, programa de debug da porta serial

A explicação de cada byte do pacote esta explicado no item 4.2.3.

Apos o entendimento completo da transmissão serial, era preciso fazer o modulo VGA

funcionar, foi complicado, pois antes de mudar para o kit DE2, foram feitas varias tentativas de fazer funcionar no kit DE2 e obteve-se apenas um funcionamento parcial da VGA, não tendo o controle sobre a cor de fundo da tela que ficava toda colorida, e os caracteres estranhos.

O modulo VGA no kit DE2 foi o mais trabalhoso de fazer funcionar, até o momento em que

foi testado os métodos proprietários da Altera para fazer a VGA funcionar, os métodos esses

implementados em C.

A figura 21, onde contem o teste básico feito que foi a chave principal para o sucesso deste

projeto.

41

Como dito no item 3.3.2 do projeto, foram utilizados as funções da controladora VGA, esses métodos possuem o seguinte formato, (alt_up_vga_draw_pixel( color, int x, int y)) para pintar o fundo da tela com as cores preta e azul, e (alt_up_vga_draw_char_1b( char, int x, int y)) para escrever os caracteres sobre os pixels previamente pintados. Para pintar um grupo de 8x8 pixels é utilizado o método alt_up_vga_draw_pixel( color, int x, int y), onde color é a cor do bloco de pixels, e x e y são as coordenadas da tela onde o bloco que será pintado. Para escrever um caractere sobre um bloco de pixels pintado é utilizado a função alt_up_vga_draw_char_1b( char, int x, int y) onde char é o caractere a ser impresso, e x e y são as coordenadas da tela onde os o caractere é impresso.

são as coordenadas da tela onde os o caractere é impresso. Figura 21 - Teste baisco

Figura 21 - Teste baisco do funcionamento do componente VGA do kit DE2

42

CAPÍTULO 5 – VALIDAÇÃO E RESULTADOS

Os resultados foram os melhores possíveis, pois com a utilização dos IP CORE “controladoras” dos componentes externos como VGA e SERIAL e seus métodos de para controle, é possível controlar facilmente esses módulos através do firmware desenvolvido para o processador NIOS, que consegue realizar operações transparentes acessando dos métodos de controle dos módulos. Apos os testes básicos comentados no capitulo 4, foi realizado testes mais elaborados, com o objetivo de mostrar a funcionalidade do controle sobre a interface touch-screen, fazendo um aplicativo básico de editor de texto. A figura 22 mostra um teste utilizando os métodos de controle disponíveis para o IP CORE da VGA para primeiramente fazer o menu da aplicação, desenvolvido em na linguagem C.

fazer o menu da aplicação, desenvolvido em na linguagem C. Figura 22 – Menu básico do

Figura 22 – Menu básico do editor de texto

Para desenhar o menu da figura acima, foi utilizado os métodos proprietários de controle da VGA citados no capitulo 4 e também estruturas de repetição para que a tela fosse varrida e os pixels desenhados nos respectivos lugares da tela, bem como os caracteres. Na figura 23 é definida a seguinte estrutura em C para representar de um botão.

definida a seguinte estrutura em C para representar de um botão. Figura 23 - Estrutura em

Figura 23 - Estrutura em C para representar um botão

43

A figura 24 é a declaração dos botões que serão utilizados pelo aplicativo editor de texto para comprovar o funcionamento do controle da interface touch-screen. Apenas o que esta dentro da marcação quadrada representa os botões do menu da figura 23, e o restante são os botões do teclado do editor de texto.

da figura 23, e o restante são os botões do teclado do editor de texto. Figura

Figura 24 - Declaração dos botões do menu.

44

A figura 25 representa o método drawnButtonUp responsável por desenhar os botões na tela, de acordo com as posições em que foram declarados, os botões deste método são desenhados para parecerem que estão “levantados” e não pressionados. Note que foram utilizados os métodos proprietários de controle da VGA alt_up_vga_draw_pixel pra pitar os pixels e alt_up_vga_draw_char_b1 para desenhar caracteres, como já foi especificado no item 4.4 do projeto.

para desenhar caracteres, como já foi especificado no item 4.4 do projeto. Figura 25 – Método

Figura 25 – Método drawButtonUp

45

O método que desenha o caption do botão se chama drawButtonText, desenha os caracteres

em cima dos botões, não importa se o botão esta pressionado ou não.

A figura 26 mostra como este método foi implementado, e ele é chamado no final de cada

método onde algum tipo de botão é desenhado, quando o método que desenha o botão normal quanto o pressionado, e até mesmo o do teclado.

normal quanto o pressionado, e até mesmo o do teclado. Figura 26 – Método que escreve

Figura 26 – Método que escreve o caption de cada botão

46

A figura 27 mostra o método drawButtonDown que desenha o botão pressionado, ou seja, quando o usuário pressiona a região correspondente a um botão do menu no touch-screen o mesmo redesenhará o botão parecendo um efeito de botão afundado, note que no final do método novamente é chamado o método drawButtonText, que reescreverá o caption do botão como mostra o método da figura 26 e esta ilustrado na figura 28.

mostra o método da figura 26 e esta ilustrado na figura 28. Figura 27 – Método

Figura 27 – Método que desenha o botão pressionado.

47

Dependendo da área do menu que o usuário pressionar no touch-screen causar o efeito de pressionado como mostra a figura 28.

causar o efeito de pressionado como mostra a figura 28. Figura 28 – Efeito do botão

Figura 28 – Efeito do botão de menu apertado.

Na figura 29 é a representação de quando a área correspondente ao botão “amarelo” é pressionada. Apos estes testes básicos comprovando o funcionamento da interface gráfica para o usuário, foi definido o restante dos componentes da tela, que é constituído de um prompt e um teclado qwerty, que foi essencial para comprovar o perfeito funcionamento do controle da interface touch-screen.

48

5.1 Interface Grafica Final

A figura 29 mostra a interface final que o usuário terá para poder verificar o funcionamento

do controle da interface touch-screen.

o funcionamento do controle da interface touch-screen . Figura 29 – Interface final touch-screen do usuário.

Figura 29 – Interface final touch-screen do usuário.

Na figura 28 temos o menu, o prompt e o teclado qwerty, todos esses item combinados mostram perfeitamente e validam o projeto que tem por objetivo controlar uma corretamente uma interface touch-screen.

5.1.1 Descrição do editor de texto

O menu possui 4 botoes, cada um com sua respectiva funcionalidade, quando o usuario

pressiona a area do botão “apagar” uma vez, então um carectere do prompt é apagado. Quando é precionado a area correspondente ao botão “Reset”, todo o conteudo do prompt será apagado e o plano de fundo retornará a cor branca. Quando o botão “amarelo” é pressionado, o fundo da tela passa a ser amarelo, e o mesmo acontece se o usuario precionar o botão verde, tornando o cor de fundo verde.

49

O teclado possui 29 teclas, sendo duas delas que equivalem ao ENTRA “ENT”, e ao SPACE, “SPC”. Quando o usuario pressiona a area correspondente a algum botão do teclado o mesmo muda sua cor para azul e o seu caractere é disponibilizado no prompt. Essas funcionalidades nada mais são do que um bom exemplo de como funciona corretamente o controle da interface touch-screen.

5.2 Prompt e o Teclado

A estrutura feita na linguagem C que define o prompt da figura 28, esta representado na

figura 30.

o prompt da figura 28, esta representado na figura 30. Figura 30 – Estrutura em C

Figura 30 – Estrutura em C para representar o prompt

A figura 31, mostra o metodo drawPrompt utilizado para desenhar na tela o prompt.

31, mostra o metodo drawPrompt utilizado para desenhar na tela o prompt. Figura 31 – Método

Figura 31 – Método que desenha o prompt

50

A estrutura do teclado é a mesma utilizada pela figura 23, e tambem é criado são

inicializados na figura 24.

O restante as implementações estão disponiveis no cd deste documento.

Quando algum botão do teclado é pressionado sua cor muda para azul e sua letra correspondente é escrita o prompt.

A figura 32 ilustra quando o usuário aperta a letra ‘t’ na película touch-screen.

ilustra quando o usuário aperta a letra ‘t’ na película touch-screen . Figura 32 - Teste

Figura 32 - Teste do prompt e o teclado.

51

5.3 Controle da Interface Touch-Screen

Depois do todos os testes, com o processador NIOS, e a integração do mesmo com os módulos externos como a porta SERIAL e a saída VGA, é possível utilizando o touch-screen, criar uma interface amigável e fácil de usar para o usuário, utilizando um firmware capaz de interpretar os sinais via serial vindo da controladora do touch ao detectar que um toque, foi dado pelo usuário e realizar algumas ações que neste caso se comportam como um editor de texto básico. A figura 33, mostra como foi validado este projeto e seus módulos, controlando uma interface touch-screen para chegar no resultado abaixo digitado pelo usuário, comprovando o funcionamento e viabilidade deste projeto.

comprovando o funcionamento e viabilidade deste projeto. Figura 33 – Funcionamento do controle da interface

Figura 33 – Funcionamento do controle da interface Touch-Screen

O Controle da interface touch-screen, mostrou-se totalmente funcional, e por ter sido feito para o KIT DE2, aceita facilmente mudanças, podendo ser alterado rapidamente o tipo de aplicação, ou integrado rapidamente com outro projeto.

52

CAPÍTULO 6 - CONCLUSÃO

Uma das principais dificuldades no desenvolvimento deste projeto foi fazer o levantamento da documentação, sobre o processador NIOS, e os módulos externos a FPGA do Kit DE2. Como não foi feito algum projeto antes que utilizasse a interface VGA e a SERIAL do Kit DE2, levou- se muito tempo até conseguir adquirir e ordenar o conhecimento que foi sendo adquirido até conseguir dar os primeiros passos e realizar os primeiros testes com a VGA e a SERIAL. Outro grande obstáculo foi ter de descobrir que para que o NIOS controlasse os módulos externos a FGPA fosse necessário copiar os arquivos *.c e *.h dos respectivos componente para dentro do projeto. Mas depois de todos os problemas com os módulos externos solucionados, cada modulo do

projeto foi sendo desenvolvido separadamente até seu total funcionamento. Não tive dificuldades com a linguagem da programação, pois o Firmware do processador NIOS é o C, a qual mais tive contato na faculdade. Outro desafio foi fazer a película touch-screen e sua controladora funcionarem, pois a primeira tela que comprei veio embalada errada o que danificou o cabo flat, fazendo com que a película não se comunicasse direito com a controlada, entrei em contato com a empresa Elotouch

e se prontificou a trocar na hora a tela com defeito. Assim que chegou a nova tela foi possível

começar a fazer os testes necessários para prosseguir com o projeto, aprender como o a película identifica um toque e manda este sinal para a controladora e a controladora transforma este sinal em um sinal serial, que é recepcionado pela serial do kit DE2 controlado pelo processador NIOS,

o mesmo pega o sinal interpreta as coordenadas do toque e desenha na tela do monitor as ações

que as coordenadas já estão previamente calibradas no firmware para fazer, bem como mudar de cor a tela, fazer o efeito de um botão subindo e descendo, etc Varias vezes o projeto parou de funcionar, então tive que voltar alguma vezes os backups que fiz ao decorrer de cada progresso. Este projeto por ter sido feito com o Kit DE2 que possui uma FPGA poderosa e uma gama muito boa de componentes externos como, VGA, SERIAL, memória abundante etc, uma das facilidades é a fácil alteração do projeto, podendo ser integrado a outro ou até mesmo alterado para realizar outros tipos de ações com o touch-screen. Existem vários melhoramentos que podem ser executados no projeto, um deles é tentar interpretar de uma maneira diferente os valores do eixo y, pois do jeito que esta a resolução do eixo y esta muito baixa dificultando o reconhecimento de toques em áreas pequenas. Talvez a inclusão de mais alguns bytes no pacote de leitura da serial resolva o problema.

53

Uma idéia para um próximo projeto que use a interface touch-screen, poderia ser a integração com o projeto do nosso colega Roberto Junqueira, ou a desenvolvimento de uma placa controladora para o touch-screen. Este trabalho é uma modesta contribuição para o uso de FPGAs e do processador embarcado NIOS implementado em VHDL pela Altera, que acredito que vai abrir vários caminhos, pois com este projeto alguns caminhos ficaram mais fáceis de percorrer daqui para a frente.

54

CAPÍTULO 7 - REFERÊNCIAS BIBLIOGRÁFICAS

AMORE, Roberto d’. VHDL: Descrição e Sintese de Circuitos. Rio de Janeiro: ed. LTC,

2005.

Elotouch, Touch-Screen e Controladora. Descrição do funcionamento e descrição tecnologia Touch-Screen. <http://www.elotouch.com.br>. Acesso em fevereiro de 2007.

ALTERA, University Program IP Cores. Instalação de IP Cores e referencias sobre os componentes dos kits DE1 e DE2. Disponivel em: <http://www.altera.com/education/univ/ip- cores/unv-ip-cores.html> . Acesso em: abril de 2007

ALTERA, NIOS II. Documentação sobre o pprocessador embracado NIO II. Disponivel em: <http://www.altera.com/products/ip/processors/ipm-index.jsp>. Acesso em: Abril de 2007.

ALTERA, Development & Education Board 2 (DE2). Manual do usuario. Disponivel no de que acompanha o Kit DE2, <\DE2_user_manual\DE2_UserManual.pdf>. Acesso em fevereiro de 2007

55