Vous êtes sur la page 1sur 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 Projeto. ..........................................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 controladora. ......................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 Kit. ...................................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
LISTA DE SÍMBOLOS

- ohm
MHz - Mega Hertz.
Hz - Hertz.
V - Volts
11
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.

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 anti-reflexiva) 3. Camada ITO


2. Película de Poliester 4. Contatos de prata

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

1. Contatos de prata 3. Camada


ITO(Transparent
Conducting Oxide)
2. Pontos espaçadores 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.

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 e da Placa Controladora

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


controladora.

Figura 6 – Pinos do Touch-Screen


(Adaptado do site elotouch.com)
A Figura 7 mostra o conector da placa controladora e as respectivas pinagens.

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.

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 Red Video (75 ohm, 0.7 V p-p)
2 GREEN Green Video (75 ohm, 0.7 V p-p)
3 BLUE Blue Video (75 ohm, 0.7 V p-p)
4 ID2 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 Monitor ID Bit 0
12 ID1 or DAS Monitor ID Bit 1
13 HSYNC or CSYNC Horizontal Sync (or Composite Sync)
14 VSYNC Vertical Sync
15 ID3 or SCL 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.

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

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..0], a ordem é o button da
esquerda é o mais significativo e o mais de direita o menos signigicativo.

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)

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.

Figura 12 – Modulo de displays de 7 segmentos Figura 13 – Index de um display


(DE2_UserManual.pdf, encontrado no cd do kit) (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

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.

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

A Tabela 20 mostra 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.

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

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

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

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.
Taxa de dados 5600(bps).
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

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

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.

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 do Kit DE2.
PC
Os 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.

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.

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

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

Figura 30 – Estrutura em C para representar o prompt

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

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.

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.

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

Vous aimerez peut-être aussi