CENTRO UNIVERSITAacuteRIO POSITIVO
NUacuteCLEO DE CIEcircNCIAS EXATAS E TECNOLOacuteGICAS
ENGENHARIA DA COMPUTACcedilAtildeO
INTERFACE TOUCHSCREEN
Hildeberto Lopes Filho
Monografia apresentada agrave disciplina de Projeto Final como requisito parcial agrave
conclusatildeo do Curso de Engenharia da Computaccedilatildeo orientada pelo Prof
Valfredo Pilla Junior
UNICENPNCET
Curitiba
2007
TERMO DE APROVACcedilAtildeO
Hildeberto Lopes Filho
Interface TouchScreen
Monografia aprovada como requisito parcial agrave conclusatildeo do curso de Engenharia da
Computaccedilatildeo do Centro Universitaacuterio Positivo pela seguinte banca examinadora
Prof Valfredo Pilla Junior
Prof Alessandro Zimmer
Prof Joseacute Carlos da Cunha
Curitiba 11 de Dezembro de 2007
AGRADECIMENTOS
Primeiramente agradeccedilo a Deus que me proporcionou a oportunidade e vontade de chegar
ateacute aqui realizar este projeto e concluir mais uma etapa na minha vida
Aos meus pais Hildeberto Lopes Filho e Naria Maria Martins Lopes pelo esforccedilo que
fizeram para que hoje eu pudesse estar concluindo este curso de graduaccedilatildeo e principalmente pelo
amor valores e o apoio em todos os momentos dessa caminhada
Agrave minha noiva Ghiovandra que sempre acreditou no meu trabalho e a agradeccedilo por ter
aguumlentado meu mau humor e stress durante todo o curso e tambeacutem nunca me deixou desistir
Ao meu orientador professor e amigo Valfredo Pilla Junior pela ideacuteia do projeto por
acreditar e sempre estar disposto a ajudar natildeo apenas nesse projeto mas em outras pesquisas
acadecircmicas Agradeccedilo
E aos professores do curso de Engenharia da Computaccedilatildeo da Unicenp responsaacuteveis diretos
pela minha formaccedilatildeo profissional
RESUMO
Com o avanccedilo tecnoloacutegico dos dispositivos reconfiguraacuteveis principalmente as FPGAs a
realizaccedilatildeo de updates em hardware foi extremamente facilitada Desta maneira natildeo haacute a
necessidade de intervenccedilatildeo fiacutesica facilitando principalmente o trabalho de projetistas
A evoluccedilatildeo do mundo eacute constante tambeacutem podemos evoluir constantemente os sistemas
atraveacutes do uso das FPGAs correccedilotildees e alteraccedilotildees podem ser feitas simuladas em software
configuradas e testadas em laboratoacuterio e imediatamente apoacutes serem enviadas para campo e
implantados nos sistemas em funcionamento sem interrupccedilotildees longas eou trabalhosas
E com essas facilidades de reconfigurar o hardware desenvolveu-se um controle sobre uma
interface Touch-Screen e sua comunicaccedilatildeo com a FPGA para permitir que o usuaacuterio mude as
caracteriacutesticas de uma determinada imagem (Interface de Vidro) no monitor atraveacutes do toque
todo o controle entre os blocos loacutegicos e funcionais eacute 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 isnt 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 andor 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
SUMAacuteRIO
CAPIacuteTULO 1 - INTRODUCcedilAtildeO 12
CAPIacuteTULO 2 ndash FUNDAMENTACcedilAtildeO TEOacuteRICA 14
21-Touch Screen 14
211 Placa e chip da Controladora do Touch-Screen 16
212 Pinagens e descriccedilatildeo do Touch-Screen e da Placa Controladora 17
22-Video 18
23-Kit Altera Development amp Education Board 1 (Kit DE2) 20
231-Layout e Componentes 20
232 Diagrama de Blocos do Kit DE2 21
233 Endereccedilo das Pinagens dos Componentes usados no Projeto 24
2331 PushButtons 24
2332 Modulo dos Displays de 7 Segmentos 25
2333 VGA 27
CAPIacuteTULO 3 ndash ESPECIFICACcedilAtildeO TECNICA 29
31 Descriccedilatildeo de Software 29
312 Diagrama de Blocos do Software 29
312 Modulo do PC 30
32 Descriccedilatildeo de Hardware 30
321 Modulo Touch-Screen 30
322 Modulo FPGA 30
3221 O Processador NIOS II 31
3222 Firmware para o NIOS II 31
323 Configuraccedilatildeo da FPGA via JTAG 31
324 Comunicaccedilatildeo entre FPGA e o Touch-Screen 32
33 Especificaccedilatildeo de Validaccedilatildeo 32
331 Validaccedilatildeo de Hardware 32
332 Validaccedilatildeo de Software 33
34 Recursos Necessaacuterios 34
35 Viabilidade Teacutecnico-Econocircmica 35
36 Cronograma do Projeto 35
CAPIacuteTULO 4 ndash ESPECIFICACcedilAtildeO TECNICA 36
41 Requisitos Miacutenimos 36
42 Projeto de Hardware 36
421 Funcatildeo do Touch-Screen 37
422 Monitor e VGA 37
423 Comunicaccedilatildeo serial 38
424 Comunicaccedilatildeo USB-Blaster 39
435 Memoacuteria SDRAM 39
426 Memoacuteria FLASH 39
43 Software 39
431 Software (Firmware) 39
432 Objetivos 39
432 Funccedilotildees 40
44 Validaccedilatildeo e Testes 40
CAPIacuteTULO 5 ndash VALIDACcedilAtildeO E RESULTADOS 43
51 Interface Grafica Final 49
511 Descriccedilatildeo do editor de texto 49
52 Prompt e o Teclado 50
53 Controle da Interface Touch-Screen 52
CAPIacuteTULO 6 - CONCLUSAtildeO 53
CAPIacuteTULO 7 - REFEREcircNCIAS BIBLIOGRAacuteFICAS 55
LISTA DE FIGURAS
Figura 1 ndash Touch-Screen final 14 Figura 2 ndash Mascara 15 Figura 3 ndash Vidro 15 Figura 4 ndash Chip COACh IIs 16 Figura 5 ndash Placa Controladora 17 Figura 6 ndash Pinos do Touch-Screen 17 Figura 7 ndashConector para o touch da placa controladora 17 Figura 8 ndash Conector VGA femea do kit DE2 18 Figura 9 ndash O kit DE2 20 Figura 10 ndash Diagrama de Blocos do KIT DE2 21 Figura 11 ndash Os 4 PushButtons do DE2Key[30] 24 Figura 12 ndash Modulo de displays de 7 segmentos 25 Figura 13 ndash Index de um display 25 Figura 14 ndash Temporizaccedilatildeo horizontal da VGA 27 Figura 15 - Moacutedulos do projeto 29 Figura 16 ndash Conector da interface serial do kit DE2 32 Figura 17 - Tela para a validaccedilatildeo dos testes com as bibliotecas graacuteficas do componente VGA 34 Figura 18 ndash Representaccedilatildeo em blocos do hardware do NIOS II 37 Figura 19 ndash Tela do monitor 38 Figura 20 - Cumdumpexe programa de debug da porta serial 41 Figura 21 - Teste baisco do funcionamento do componente VGA do kit DE2 42 Figura 22 ndash Menu baacutesico do editor de texto 43 Figura 23 - Estrutura em C para representar um botatildeo 43 Figura 24 - Declaraccedilatildeo dos bototildees do menu 44 Figura 25 ndash Meacutetodo drawButtonUp 45 Figura 26 ndash Meacutetodo que escreve o caption de cada botatildeo 46 Figura 27 ndash Meacutetodo que desenha o botatildeo pressionado 47 Figura 28 ndash Efeito do botatildeo de menu apertado 48 Figura 29 ndash Interface final touch-screen do usuaacuterio 49 Figura 30 ndash Estrutura em C para representar o prompt 50 Figura 31 ndash Meacutetodo que desenha o prompt 50 Figura 32 - Teste do prompt e o teclado 51 Figura 33 ndash Funcionamento do controle da interface Touch-Screen 52
LISTA DE TABELAS
Tabela 1 ndash Caracteriacutesticas da placa controladora 16 Tabela 2 ndash Pinagem do conector que faz interface entre o touch e a controladora 18 Tabela 3 ndash Descriccedilatildeo dos pinos da VGA 18 Tabela 4 ndash Lista dos componentes do Kit DE2 (DE2_UserManualpdf contrado no cd do kit) 20 Tabela 5 ndash Detalhes do FPGA Cyclone II 22 Tabela 6 - Descriccedilatildeo das configuraccedilotildees que satildeo feitas atraveacutes da Serial e Usb-Blaster 22 Tabela 7 ndash Descriccedilatildeo do Bloco da SRAM 22 Tabela 8 - Descriccedilatildeo do Bloco da SDRAM 22 Tabela 9 ndash Descriccedilatildeo da Memoria Flash 23 Tabela 10 - Descriccedilatildeo do SD card socket 23 Tabela 11 - PushButton switches 23 Tabela 12 - Descriccedilatildeo das entradas de Clocks 23 Tabela 13 - Descriccedilatildeo do Aacuteudio CODEC 23 Tabela 14 ndash Descriccedilatildeo da saiacuteda VGA DAC 24 Tabela 15 ndash Descriccedilatildeo da Serial Port e PS2 24 Tabela 16 ndash Descriccedilatildeo dos conectores de expansatildeo de 40 pinos 24 Tabela 17 ndash Pinos da FPGA referentes a cada PushButton 25 Tabela 18 ndash Pinos da FPGA referentes a cada segmento dos Displays do modulo 26 Tabela 19 ndash Especificaccedilatildeo da temporizaccedilatildeo horizontal da VGA 27 Tabela 20 ndash Especificaccedilatildeo da temporizaccedilatildeo vertical da VGA 27 Tabela 21 ndash Pinos da FPGA referentes a saiacuteda do Conector VGA do Kit 28 Tabela 22 ndash Moacutedulos dos componentes e suas descriccedilotildees 31 Tabela 23 ndash Pinos da FPGA referente agrave pinagem da interface Serial 32 Tabela 24 - Ferramentas de Desenvolvimentos e Ambientes 34 Tabela 25 ndash Linguagens de programaccedilatildeo utilizadas 35 Tabela 26 ndash Relaccedilatildeo dos Custos 35 Tabela 27 ndash Cronograma de datas e entregas do projeto 35 Tabela 28 ndash Funccedilotildees do sistema firmware 40
LISTA DE SIGLAS
CRT - Catodic Ray tube
DE2 - Development amp Educations 1
ES - EntradaSaiacuteda
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 - Nuacutecleo de Ciecircncias Exatas e Tecnoloacutegicas
PC - Personal Computer
PDA - Personal Digital Assistant
PLL - Pulse Logic Loop
SDRAM - Static Dinamic Randomic Acess Memory
TTL - Transistor-transistor Logic
UNICENP - Centro Universitaacuterio Positivo
USB - Universal Serial Bus
USP - Universidade de Satildeo Paulo
VGA - Viacutedeo 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 SIacuteMBOLOS
- ohm
MHz - Mega Hertz
Hz - Hertz
V - Volts
11
12
CAPIacuteTULO 1 - INTRODUCcedilAtildeO
A computaccedilatildeo reconfiguraacutevel vem sendo utilizada em larga escala para projetos de
hardware que necessitem de um grande poder de processamento Neste campo um dispositivo
muito utilizado eacute a FPGA (Field-Programmable Gate Array)
As FPGArsquos satildeo circuitos de hardware que podem ser modificados praticamente em
qualquer momento durante o uso As FPGArsquos consistem em array de blocos loacutegicos
configuraacuteveis que implementam funccedilotildees loacutegicas 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 mudanccedilas raacutepidas no hardware
Em microprocessadores de uso geral se tem um hardware que natildeo pode ser modificado fixo
mas no FPGA essa mudanccedila eacute bastante simples e raacutepida feita via software
Este projeto teve sua proposta lanccedilada a partir da ideacuteia concedida pelo Prof Valfredo Pilla
Junior de interface Touch-Screen
O projeto eacute sobre o controle de uma interface com uma peliacutecula Touch-Screen onde eacute
possiacutevel que o usuaacuterio ao tocar uma peliacutecula sensiacutevel ao toque o sistema desenvolvido possa
realizar algum tipo de alteraccedilatildeo na imagem apresentada em um monitor que se dispotildee atraacutes do
Touch-Screen
O objetivo foi desenvolver um sistema capaz de receber e manipular a aquisiccedilatildeo dos dados
gerados pela placa controladora atraveacutes toque na peliacutecula Touch-Screen que estaraacute na frente da
tela de um monitor converter estes dados realizar uma alteraccedilatildeo na tela inicialmente
apresentada e disponibilizar o resultado da alteraccedilatildeo atualizando a tela do monitor
O hardware do sistema eacute basicamente composto na parte da aquisiccedilatildeo por uma peliacutecula
Touch-Screen e uma placa controladora da proacutepria peliacutecula recepccedilatildeo e processamentos feitos no
Kit DE2 (Development amp Education 1) Board que enviara o resultado atraveacutes da saiacuteda VGA
(Viacutedeo Graphics Array) para um monitor CRT (Catodic Ray tube)
Este sistema eacute justificado pois as interfaces intuitivas com telas Touch-Screen satildeo
utilizadas em uma ampla gama de mercados
Por exemplo
Comeacutercio Realizar um atendimento de forma raacutepida e faacutecil eacute objetivo da automaccedilatildeo 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 usuaacuteriomaacutequina de grandes complexos
equipamentos devido agrave eliminaccedilatildeo do teclado do mouse e de outros perifeacutericos de um ambiente
industrial evitando distraccedilotildees em um ambientes geralmente muito agressivo
13
Medicina Os sistemas que usam touch simplificam os sofisticados sistemas meacutedicos reduzem as
possibilidades de erros e proporcionam um mecanismo de entrada de dados mais eficiente que
qualquer outro perifeacuterico
Educaccedilatildeo Hoje o touch esta se tornando a interface de treinamento mais popular em todas as
fases do aprendizado desde a preacute escola jardim de infacircncia e preparaccedilatildeo profissional eliminando
a frustraccedilotildees de crianccedilas ao utilizar o mouse ou teclado
E aplicaccedilotildees com o objetivo de diminuir o tempo de resposta aumentar a produtividade
proporcionar produtos e serviccedilos de maior qualidade e aumentar os lucros Por exemplo realizar
um atendimento de forma raacutepida e faacutecil eacute objetivo da automaccedilatildeo 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 serviccedilos intuitivos e interativos de uma interface
Touch proporcionam confiabilidade ao cliente que eacute exatamente o que o seu negoacutecio precisa para
o crescimento e o sucesso em longo prazo (elotouch 2007)
Este projeto no futuro poderaacute ser integrado com outro projeto formando assim um sistema
parecido com um PDA (Personal Digital Assistant)
14
CAPIacuteTULO 2 ndash FUNDAMENTACcedilAtildeO TEOacuteRICA
21-Touch Screen
Um Touch-Screen que em portugues quer dizer ldquotela sensivel ao toquerdquo estatildeo disponiacuteveis
para uma grande variedade de uso desde pontos de vendas ateacute quiosques equipamentos meacutedicos
e industriais e sistemas de jogos As vantagens das soluccedilotildees touch incluem precisatildeo
transparecircncia e facilidade de uso e instalaccedilatildeo
O Touch-Screen usado neste projeto eacute o modelo de quatro fios resistivos AT4 da empresa
Elo TouchSystem (wwwelotouchcombr)
A tecnologia resistiva touch de quatro fios consta de uma tela de vidro coberto
uniformemente por camadas eletricamente condutivas e resistivas Uma lacircmina de poliester eacute
hermeticamente estendida sobre a parte superior do vidro e separada por minuacutesculos espaccediladores
(pontos) transparentes e isolantes A parte externa dessa lacircmina eacute uma peliacutecula duraacutevel e firme a
parte interna conteacutem uma camada condutiva Durante seu funcionamento uma corrente eleacutetrica
se propaga atraveacutes do touchscreen Ativada por um miacutenimo toque a peliacutecula 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 descriccedilatildeo das
camadas que compoem o Touch-Screen
Figura 1 ndash Touch-Screen final (Adaptado com as dimensotildees da aplicaccedilatildeo do editor de texto para validar este projeto)
15
Figura 2 ndash Mascara
(Adaptado do site elotouchcombr)
1 Camada soacutelida resistente a riscos (tipo anti-reflexiva) 3 Camada ITO
2 Peliacutecula de Poliester 4 Contatos de prata
Figura 3 ndash Vidro (Adaptado do site elotouchcombr)
1 Contatos de prata 3 Camada ITO(Transparent Conducting Oxide)
2 Pontos espaccediladores 4 Camada de Vidro
O circuito da controladora aplica uma tensatildeo atraveacutes da superfiacutecie do vidro As tensotildees no
ponto de contato constituem a representaccedilatildeo analoacutegica da superfiacutecie de toque A controladora
traduz essas tensotildees e transmite-os para o computador para processaacute-los
16
211 Placa e chip da Controladora do Touch-Screen
O COACh IIs (Controller On A Chip second generation) eacute compacto econocircmico chip
controlador para as aplicaccedilotildees com o Touch-Screen AT4 de 4 fios resistivos Opera em 33V e
em 5V O tamanho compacto baixa voltagem para operar e comsumo de energia eacute a melhor
soluccedilatildeo para OEMrsquos (original equipment manufacturer) pois pode contar com estabilidade
confiabilidade e desempenho de componentes com touch para aplicaccedilotildees embarcadas ou
aplicaccedilotildees portaacuteveis[elotouchcom] A Figura 4 ilustra o chip
Figura 4 ndash Chip COACh IIs (Adaptado do site elotouchcom)
A placa controladora que integra o touch-screen em outros moacutedulos possui as caracteriacutesticas
descritas na Tabela 1 e a Figura 5 ilustra a placa controladora
Tabela 1 ndash Caracteriacutesticas da placa controladora
Alimentaccedilatildeo 5 VDC nominal (45)
Interface-Serial (Serial RS-232) Full Duplex
Paracircmetros de Comunicaccedilatildeo Baud Rate 9600 and 19200 8 Bits de dados 1 bit de parada
Interface USB Quando estiver comunicando via USB a Serial estaraacute desabilitada E a placa natildeo eacute alimentada pela USB
Resoluccedilatildeo de toque 4096x4096 independente do tamanho da peliacutecula touch-screen
Tempo de conversatildeo do toque 10ms
17
Figura 5 ndash Placa Controladora (Adaptado do site elotouchcom)
212 Pinagens e descriccedilatildeo do Touch-Screen e da Placa Controladora
A Figura 6 ilusta os pinos do Touch-Screen que satildeo ligados ao conector da placa
controladora
Figura 6 ndash Pinos do Touch-Screen (Adaptado do site elotouchcom)
A Figura 7 mostra o conector da placa controladora e as respectivas pinagens
Figura 7 ndashConector para o touch da placa controladora (Adaptado do site elotouchcom)
18
A Tabela 2 descreve os pinos do conector para o touch da placa controladora
Tabela 2 ndash Pinagem do conector que faz interface entre o touch e a controladora
Pino
Nome do Sinal Desciccedilatildeo do sinal
1 X+ Entrada de tensatildeo positiva referente ao eixo X da tela 2 Y+ Entrada de tensatildeo positiva referente ao eixo Y da tela 3 X- Entrada de tensatildeo negativa referente ao eixo X da tela 4 Y- Entrada de tensatildeo negativa referente ao eixo Y da tela
22-Video
Eacute usado um monitor CRT convencional o qual apresentaraacute uma imagem criada atraveacutes as
bibliotecas graficas proprietarias da ALTERA esta imagem representa um menu com botoes e e
que atravez da manipulaccedilatildeo dos metodos das bibliotecas os resultados satildeo disponibilizados na
saida VGA do kit dependendo do botatildeo da imagem que for tocada atravez do touch alguma accedilatildeo
de alteraccedilatildeo na imagem seraacute atulalizada na saida vga
A Figura 8 ilustra o conector (fecircmea) da saiacuteda VGA do kit DE2
Figura 8 ndash Conector VGA femea do kit DE2
E na Tabela 3 a descriccedilatildeo de cada pino bem como sua direccedilatildeo
Tabela 3 ndash Descriccedilatildeo dos pinos da VGA
Pin
Name Dir Description
1 RED
Red Video (75 ohm 07 V p-p)
2 GREEN
Green Video (75 ohm 07 V p-p)
3 BLUE
Blue Video (75 ohm 07 V p-p)
4 ID2
Monitor ID Bit 2
5 GND
Ground
6 RGND
Red Ground
7 GGND
Green Ground
8 BGND
Blue Ground
19
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
20
23-Kit Altera Development amp Education Board 1 (Kit DE2)
231-Layout e Componentes
Uma fotografia do Kit DE2 eacute mostrado na Figura 9 onde se ve a aparencia do kit e as
indicaccedilotildees das localizaccedilatildeo dos componentes e conectores
Figura 9 ndash O kit DE2 (DE2_UserManualpdf 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 eacute listado os componentes fornecidos na placa do Kit DE2
Tabela 4 ndash Lista dos componentes do Kit DE2 (DE2_UserManualpdf contrado no cd do kit)
1 Altera Serial Configuration device ndash EPCS4
2 USB Blaster (on board) for programming and user API control both JTAG and Active 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
21
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
PS2 mousekeyboard connector
17
Two 40-pin Expansion Headers with diode protection
18
Powered by either a 75V DC adapter or a USB cable
232 Diagrama de Blocos do Kit DE2
Figura 10 ndash Diagrama de Blocos do KIT DE2 (DE2_UserManualpdf contrado no cd do kit)
22
A Tabela 5 mostra a informaccedilatildeo detalhada do Bloco Cyclone II FPGA 2C20 mostrado na
Figura 10
Tabela 5 ndash Detalhes do FPGA Cyclone II
FPGA Cyclone II 2C35
18752 LErsquos
52 M4K RAM blocks 240K total RAM bits 26 embedded multipliers 4 PLLrsquos 315 user IO pinrsquos FineLine BGA 484-pin package
A Tabela 6 mostra a informaccedilatildeo detalhada do Bloco do dispositivo de configuraccedilatildeo Serial e
circuito Usb-Blaster
Tabela 6 - Descriccedilatildeo das configuraccedilotildees que satildeo feitas atraveacutes da Serial e Usb-Blaster
Configuraccedilatildeo do dispositivo Serial e do Circuito Usb-Blaster Configuraccedilatildeo do dispositivo serial Altera EPCS4 On-Board Usb-Blaster
para Controle de API de usuaacuterio e programaccedilatildeo
JTAG e AS satildeo os modos do programaccedilatildeo suportados
A Tabela 7 mostra a descriccedilatildeo do Bloco da SRAM
Tabela 7 ndash Descriccedilatildeo do Bloco da SRAM
SRAM 512-Kbyte Static RAM memory chip Organizado em 256K x 16 bits Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 8 mostra a descriccedilatildeo do Bloco da SDRAM
Tabela 8 - Descriccedilatildeo do Bloco da SDRAM
SDRAM 8-Mbyte Single Data Rate Synchronous Dynamic RAM memory chip Organizado em 1M x 16 bits x 4 Banks Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
23
A Tabela 9 mostra a descriccedilatildeo do Bloco Memory Flash
Tabela 9 ndash Descriccedilatildeo da Memoria Flash
Memory Flash
4-Mbyte NAND Flash memory 8-bit data bus Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 10 mostra a descriccedilatildeo do Bloco SD card socket
Tabela 10 - Descriccedilatildeo do SD card socket
SD card socket Fornece o modo SPI para o acesso ao cartatildeo SD Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 11 mostra a descriccedilatildeo 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) Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 12 mostra a descriccedilatildeo dos Clock inputs
Tabela 12 - Descriccedilatildeo das entradas de Clocks
Clock inputs Oscilador de 50 Mhz Oscilador 27 Mhz Entrada para clock
externo
A Tabela 13 mostra a descriccedilatildeo do Aacuteudio CODEC
Tabela 13 - Descriccedilatildeo do Aacuteudio CODEC
Aacuteudio CODEC 4-Mbyte NAND Flash memory 8-bit data bus Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
24
A Tabela 14 mostra a descriccedilatildeo do Bloco VGA DAC
Tabela 14 ndash Descriccedilatildeo da saiacuteda VGA DAC
VGA
DAC
Usa 4 bits DAC para cada cor (RGB) Com 15 pinos no conector VGA convencional (fecircmea) Suporta uma resoluccedilatildeo de 640 x 480 com um refresh de ateacute 100Hz Pode ser usando com o FPGA Cyclone II para implementar um Encoder para TV
A Tabela 15 mostra a descriccedilatildeo do Bloco Serial Ports amp PS2
Tabela 15 ndash Descriccedilatildeo da Serial Port e PS2
Serial Ports amp PS2 Uma porta RS-232
Uma posta PS2 Um conector Serial para a porta do RS-232 Conector PS2 para conectar um mouse ou teclado ao DE2
A Tabela 16 mostra a descriccedilatildeo do Bloco dos Two 40 - pin expansion headers
Tabela 16 ndash Descriccedilatildeo dos conectores de expansatildeo de 40 pinos
Two 40 - pin expansion headers 72 pinos de IO do Clyclone II bem como 8 power e groundrsquos satildeo trazidos aos 2 conectores de expansatildeo de 40 pinos cada Os conectores de 40 pinos tambeacutem aceitam os cabos IDE de 40 pinos Proteccedilatildeo resistiva eacute fornecida
233 Endereccedilo das Pinagens dos Componentes usados no Projeto
2331 PushButtons
A Figura 11 mostra uma foto dos PushButtons do kit Key[30] a ordem eacute o button da
esquerda eacute o mais significativo e o mais de direita o menos signigicativo
Figura 11 ndash Os 4 PushButtons do DE2Key[30] (DE2_UserManualpdf contrado no cd do kit)
25
A Tabela 17 mostra os pinos da FPGA aos PushButtons
Tabela 17 ndash Pinos da FPGA referentes a cada PushButton (DE2_UserManualpdf contrado no cd do kit)
2332 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 ndash Modulo de displays de 7 segmentos (DE2_UserManualpdf encontrado no cd do kit)
Figura 13 ndash Index de um display (DE2_UserManualpdf encontrado no cd do
kit)
26
A Tabela 18 mostra os pinos da FPGA referente a cada segmento dos displays de 7
segmentos do modulo
Tabela 18 ndash Pinos da FPGA referentes a cada segmento dos Displays do modulo
27
2333 VGA
A Figura 14 esta em forma de onda da temporizaccedilatildeo horizontal e vertical da VGA do Kit
DE2
Figura 14 ndash Temporizaccedilatildeo horizontal da VGA
A Tabela 19 mostra a especificaccedilatildeo da temporizaccedilatildeo horizontal da VGA
Tabela 19 ndash Especificaccedilatildeo da temporizaccedilatildeo horizontal da VGA
A Tabela 20 mostra a especificaccedilatildeo da temporizaccedilatildeo vertical da VGA
Tabela 20 ndash Especificaccedilatildeo da temporizaccedilatildeo vertical da VGA
28
A Tabela 21 mostra os pinos da FPGA referente a cada pino de saida do conector VGA do
Kit DE2
Tabela 21 ndash Pinos da FPGA referentes a saiacuteda do Conector VGA do Kit
29
CAPIacuteTULO 3 ndash ESPECIFICACcedilAtildeO TECNICA
Nesse capiacutetulo tem-se uma descriccedilatildeo dos principais moacutedulos do projeto Satildeo eles Software
Firmware e Hardware
Inicialmente eacute apresentada a visatildeo geral do sistema e a descriccedilatildeo funcional de cada moacutedulo
A Figura 15 apresenta o diagrama em blocos do sistema
Figura 15 - Moacutedulos do projeto
31 Descriccedilatildeo de Software
O Software eacute uma das interfaces com o usuaacuterio
312 Diagrama de Blocos do Software
30
312 Modulo do PC
Neste modulo eacute 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
32 Descriccedilatildeo de Hardware
321 Modulo Touch-Screen
O usuaacuterio ao tocar o Touch-Screen (AT4 touch-screen resistivo de 4 fios) ocorre uma
mudanccedila nas tensotildees do eixo X e do eixo Y devido a resistecircncia gerada pelo ao toque do usuaacuterio
em uma determinada regiatildeo da tela essa mudanccedila de tensatildeo eacute interpretada pela placa
controladora COACh IIs do Touch-Screen e enviada via serial para o Kit DE2 que interpretaraacute
os dados e faraacute o devido processamento
322 Modulo FPGA
O Hardware corresponde tanto aos componentes fiacutesicos presentes no kit de desenvolvimento
quanto aos componentes que seratildeo configurados na FPGA Satildeo diversos componentes escritos
em linguagem de descriccedilatildeo de hardware
No um dos principais componentes de hardware utilizado modulo eacute o processador NIOS II
para se ter uma ideacuteia o processador NIOS II eacute capaz gerenciar os dispositivos externos a FPGA
utilizando controladores de memoacuterias controladores de VGA entre outros E tambeacutem eacute possiacutevel
o proacuteprio usuaacuterio criar seu componente para ser controlado atraveacutes do processador NIOS
II(Altera 2007)
31
3221 O Processador NIOS II
Atraveacutes do software SOPC da ALTERA foi possiacutevel montar a arquitetura de hardware do
processador NIOS II bem como especificar as interfaces que ele iraacute controlar atraveacutes do firmwar
feito no NIOS II IDE
Na Tabela 22 eacute no campo Module Name onde estatildeo os moacutedulos que foram usados para
definir o processador NIOS II e os componentes externos que ele iraacute controlar e no campo
Description esta a descriccedilatildeo do nome de cada modulo
Tabela 22 ndash Moacutedulos dos componentes e suas descriccedilotildees
3222 Firmware para o NIOS II
O Firmware foi feito utilizando a linguagem C utilizando a ferramenta NIOS II IDE Atraveacutes
do firmware eacute possiacutevel 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 graacuteficas para controlar a vga e serial e
USB-BLASTER eacute encarregado em enviar todo o desenvolvimento do projeto para o Kit DE2
323 Configuraccedilatildeo da FPGA via JTAG
Depois de configurado o hardware do processador NIOS II eacute preciso fazer o load do NIOS
para a FPGA e para que isso aconteccedila eacute necessaacuterio que atraveacutes do software Quartus II da
ALTERA utilizando a interface JTAG utilizando o cabo USB-BLASTER
32
324 Comunicaccedilatildeo entre FPGA e o Touch-Screen
Para comunicaccedilatildeo entre dos dois hardwares Touch-Screen e o FPGA eacute utilizando uma
interface serial RS-232
A configuraccedilatildeo da interface eacute a seguinte
Bits de dados 8
Taxa de dados 5600(bps)
A Tabela 23 mostra a relaccedilatildeo dos pinos da porta serial com os pinos da FPGA
Tabela 23 ndash Pinos da FPGA referente agrave pinagem da interface Serial
E a Figura 16 mostra o desenho correspondente da interface serial
Figura 16 ndash Conector da interface serial do kit DE2
33 Especificaccedilatildeo de Validaccedilatildeo
331 Validaccedilatildeo de Hardware
A validade do hardware se faz com a anaacutelise de todos os moacutedulos envolvidos
As necessidades satildeo estudadas os componentes externos ao FPGA satildeo selecionados de
acordo o processador nios e os controladores dos moacutedulos externos como VGA e SERIAL satildeo
enviados ao modulo FPGA
Os resultados obtidos na tela do monitor e a recepccedilatildeo dos dados pela serial comprovam o
funcionamento do modulo de comunicaccedilatildeo da serial e vga
33
332 Validaccedilatildeo de Software
A validaccedilatildeo do controle da interface touch-screen faz-se a partir dos resultados obtidos das
funccedilotildees escritas na linguagem C especificas para cada componente externos ao FPGA essas
funccedilotildees tornam possiacuteveis que o processador NIOS na FPGA tenha total controle sobre os
moacutedulos externos como a VGA e a SERIAL
As funccedilotildees que satildeo utilizadas para validar o funcionamento do software satildeo para a VGA os
meacutetodos de controle (alt_up_vga_draw_char_1b( char int x int y)) e (alt_up_vga_draw_pixel(
color x y))
O meacutetodo (alt_up_vga_draw_char_1b( char int x int y)) tem a funcionalidade de escrever
caracteres na tela do monitor e a descriccedilatildeo da sua assinatura ldquoparacircmetrosrdquo eacute a seguinte char eacute o
caractere que eacute escrito em alguma posiccedilatildeo na tela int x eacute a posiccedilatildeo x da tela do monitor e int y eacute
a posiccedilatildeo y da tela do monitor sendo que a resoluccedilatildeo utilizada eacute de 80x60 ou seja x natildeo pode
passar de 80 e y natildeo pode passar de 60
O meacutetodo (alt_up_vga_draw_pixel( color int x int y)) tem a funcionalidade de ldquopintarrdquo o
fundo da tela do monitor o meacutetodo de imprimir caracteres tem preferecircncia sobre este meacutetodo ou
seja os caracteres sempre ficam sob a aacuterea pintada ou seja o caractere sempre ficara em cima da
aacuterea pintada a descriccedilatildeo da assinatura deste meacutetodo eacute a seguinte color eacute a valor da cor que pode
ser um valor inteiro ou em hexadecimal para definir uma cor de alguma posiccedilatildeo da tela definidos
pelos paracircmetros x e y
As funccedilotildees que satildeo utilizadas para validar o funcionamento do software satildeo para a Serial os
meacutetodos de controle de transmissatildeo (fread( packet sizeof(packet) 1 serial_fp )) a funccedilatildeo
fread eacute utilizada para a leitura via interrupccedilatildeo dos pacotes que a controladora envia para o kit
DE2 as assinaturas do meacutetodo fread tem a seguinte composiccedilatildeo packet eacute a estrutura do pacote
que seraacute recebido o sizeof(packet) eacute o diz qual eacute o tamanho exato da estrutura criada e o
serial_fp eacute o handle da porta serial
Uma observaccedilatildeo muito importante eacute que para o total funcionamento eacute necessaacuterio 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 rs232h e rs232c onde estatildeo os meacutetodos de
controle da SERIAL e alt_up_vgah alt_up_vgac onde estatildeo os meacutetodos de controle para a
VGA Para tornar estes meacutetodos acessiacuteveis eacute preciso fazer os includes dos arquivos h no
projeto da NIOS IDE
A figura 17 mostra a utilizaccedilatildeo dos meacutetodos (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
34
int y)) utlizado para escrever os caracteres lsquoarsquo e lsquobrsquo dentro de um grupo de pixel previamente
pintado a (alt_up_vga_draw_pixel( color int x int y)) natildeo pinta um pixel de cada vez e sim
um bloco de 8x8 pixels
Figura 17 - Tela para a validaccedilatildeo dos testes com as bibliotecas graacuteficas do componente VGA
34 Recursos Necessaacuterios
A Tabela 24 apresenta os ambientes de desenvolvimento e ferramentas de software utilizadas
e na Tabela 25 as linguagens necessaacuterias Estas ferramentas foram utilizadas em ambiente
Windows Xp
Tabela 24 - Ferramentas de Desenvolvimentos e Ambientes
Software Para que foi Utilizado
Quartus II Para a definiccedilatildeo de qual o modelo de FPGA utilizado compilaccedilatildeo e simulaccedilatildeo e envio Load do NIOS para FPGA
SOPC Para definiccedilatildeo da do processador NIOS II e com quais componentes externos ele ira interagir atraveacutes dos controladores dos respectivos componentes
NIOS II IDE Para implementaccedilatildeo do firmware do processador NIOS II utilizando a linguagem em C
35
Borland C++ Builder Para desenvolvimento de ima interface de comunicaccedilatildeo via caboUSB-
BLASTER para o envio de imagem para o kit
Tabela 25 ndash Linguagens de programaccedilatildeo utilizadas
Linguagem Ferramenta C++ Borland C++ Builder VerilogVHDL Quartus II C NIOS II IDE
35 Viabilidade Teacutecnico-Econocircmica
O valor do projeto esta descrito na Tabela 26
Tabela 26 ndash Relaccedilatildeo dos Custos
DESCRICcedilAtildeO CUSTO APROXIMADO (R$) COMPONENTES ELETROcircNICOS 50000 1 Kit DE2 Cyclone II 35000 1 Monitor de Computador 35000 HORAS TRABALHADAS (400 horas) 750000 CUSTO TOTAL APROXIMADO (R$) 870000
36 Cronograma do Projeto
A tabela 27 contem as informaccedilotildees do cronograma do projeto
Tabela 27 ndash Cronograma de datas e entregas do projeto
Data Atividade a ser apresentada 050307 Entrega das propostas de projeto para avaliaccedilatildeo do colegiado 020407 Entrega das especificaccedilotildees teacutecnicas do projeto aprovado 110607 Entrega do projeto (monografia) e dos testes preliminares do mesmo 060807 Apresentaccedilatildeo preacutevia da implementaccedilatildeo do projeto especificado 011007 Apresentaccedilatildeo do projeto implementado
Qualificaccedilatildeo para a fase final 291007 Segunda apresentaccedilatildeo do projeto implementado para os que natildeo o fizeram no
dia 011006 com decreacutescimo da nota Qualificaccedilatildeo para a fase final
051107 Entrega da documentaccedilatildeo completa em espiral para a banca examinadora em 3 vias contendo a monografia manual teacutecnico manual do usuaacuterio e artigo cientiacutefico
261107 Defesa formal dos projetos com apresentaccedilatildeo oral para a banca examinadora 101207 Entrega da documentaccedilatildeo completa revisada e corrigida encadernada no
padratildeo da biblioteca (capa dura) em duas vias contendo a monografia manual teacutecnico manual do usuaacuterio e artigo cientiacutefico Entrega do CD contendo no formato WEB todo o conteuacutedo dos manuais
36
CAPIacuteTULO 4 ndash ESPECIFICACcedilAtildeO TECNICA
41 Requisitos Miacutenimos
Os requisitos miacutenimos de Hardware satildeo
Funcionamento das interfaces Serial e USB-Blaster
Funcionamento do Kit DE2
PC
Os requisitos miacutenimos de Software
Windows Xp
Quartus II
SOPC
NIOS II IDE
42 Projeto de Hardware
O hardware utilizado nesse projeto inclui componentes presentes na Placa de
Desenvolvimento Nios II - ediccedilatildeo DE2 Cyclone II EP2C35 e principalmente o hardware que seraacute
configurado na FPGA escrito em linguagem de descriccedilatildeo de hardware (HDL)
O um dos principais blocos de hardware eacute o processador NIOS II o Avalon Bus e os
controladores de componentes externos a FPGA e de comunicaccedilatildeo presentes no Kit
37
O software embarcado (firmware) estaraacute rodando nessa arquitetura Eacute uma arquitetura
completa construiacuteda com a ferramenta SOPC Builder da Altera A Figura 18 representa em
blocos os principais componentes dessa arquitetura
Figura 18 ndash Representaccedilatildeo em blocos do hardware do NIOS II
421 Funcatildeo do Touch-Screen
Outro bloco importante eacute o do Touch-Screen esta tela sensiacutevel ao toque pois como esta tela
trabalha com resistecircncia ao ser tocado em uma determinada regiatildeo uma resistecircncia eacute gerada e a
tensatildeo de saiacuteda eacute modificada a alimentaccedilatildeo desta placa eacute proveniente de sua placa controladora
a mesma placa que recebe a tensatildeo de saiacuteda modificada de acordo com a regiatildeo tocada na tela
Para verificar as caracteriacutesticas detalhadas do Touch-Screen e sua placa controlador favor ver
o Capitulo 2
422 Monitor e VGA
O Monitor inicialmente tem apenas o desenho de um botatildeo que ao ser tocado via touch
mudara a cor de toda a tela A imagem exibida no monitor tem uma resoluccedilatildeo de
38
Protoacutetipo das telas para os testes esta na Figura 19 a tela verde quando a touch natildeo eacute tocando
na regiatildeo do botatildeo de OK quando o botatildeo de OK for tocado a tela do monitor mudara de cor
ficando azul
Figura 19 ndash Tela do monitor
No Capitulo 2 estatildeo todas as caracteriacutesticas da pinagem e do conector VGA
423 Comunicaccedilatildeo serial
Entre a placa controladora do Touch-Screen e o FPGA existe uma comunicaccedilatildeo 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 manipulaccedilatildeo da imagem que eacute
mostrada no monitor
No capitulo 2 estatildeo das descriccedilotildees dos pinos e do conector da comunicaccedilatildeo Serial
O pacote serial que eacute transmitido pela placa controladora do touch-screen possui 10 bytes de
comprimento e segue a seguinte sequumlecircncia de envio
[55] [54] [] [] [] [] [] [] [] []
Sequumlecircncia dos bytes
Os dois primeiros bytes identificam o Header do pacote
O terceiro byte eacute 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 agrave posiccedilatildeo do eixo x onde a tela foi tocada
O sexto e o seacutetimo byte correspondem a posiccedilatildeo do eixo y onde a tele foi tocada
O restante os bytes identificam o tail do pacote recepcionado pelo kit DE2
39
424 Comunicaccedilatildeo USB-Blaster
Essencial para envio do projeto desenvolvido para o kit DE2 tambeacutem muito utilizado para o
debug deste projeto
435 Memoacuteria SDRAM
A memoacuteria utilizada para armazenar grandes quantidades de dados eacute a SDRAM (ver detalhes
no Capitulo 2)
Essa memoacuteria eacute muito raacutepida serviu muito bem para armazenar o firmware deste projeto
pois tem o tempo acesso ideal para ler as instruccedilotildees que utilizaram a VGA e tambeacutem eacute raacutepida o
suficiente para fazer a leitura dos dados e disponibilizar na saiacuteda VGA do kit
426 Memoacuteria FLASH
Eacute onde seraacute armazenado o firmware possui espaccedilo suficiente para isso 4MB e uma memoacuteria
mais lenta e por isso natildeo foi usada para armazenar dados para serem jogados na vga do Kit
43 Software
431 Software (Firmware)
O software tem de funccedilatildeo de utilizar as bibliotecas das controladoras dos componentes
externos a fim de controlar estes componentes de acordo com o necessaacuterio para atender o
objetivo do projeto
Ou seja uma tela inicial eacute apresentada e o usuaacuterio ao tocar na nela o kit recebe um pacote via
serial e interpreta a posiccedilatildeo da tela em que foi tocado e logo em seguida envia o resultado deste
toque para o monitor
432 Objetivos
O usuaacuterio 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 accedilatildeo de acordo com a posiccedilatildeo da tela
tocada alterando assim a imagem anterior com o resultado do toque
Interpretar o toque de usuaacuterio na tela touch-screen recepccedilatildeo do pacote via serial da placa
controladora do touch-screen tratamento do pacote e interpretaccedilatildeo das coordenadas x e y do
40
toque Realizaccedilatildeo de alguma accedilatildeo que resultara na alteraccedilatildeo da imagem da tela atual de acordo
com a funccedilatildeo em que as coordenadas foram previamente definidas para o que deve ser feito
432 Funccedilotildees
A Tabela 28 tem as principais funccedilotildees que foram implementadas para o sistema
Tabela 28 ndash Funccedilotildees do sistema firmware
FUNCcedilOtildeES Tela de um pequeno editor de texto Tratamento do sinal recebido da serial devido a um toque na tela Interpretaccedilatildeo do pacote serial e transfomaccedilatildeo para coordenadas x e y Transformaccedilatildeo das posiccedilotildees do toque na tela em alguma accedilatildeo enviando o resultado para a VGA Imagem final disponibilizada ao usuaacuterio de acordo com o toque que foi dado na tela Controlar dispositivos cada dispositivo pode ser controlado pelo seu respectivo contrador atraveacutes de seu endereccedilo base VGA SERIAL USB-BLASTER IO(Leds Switches etc) do Kit DE2
O Firmware do processador NIOS II eacute que realizaraacute a integraccedilatildeo entre hardware com
hardware Com o firmware controlando o NIOS II eacute possiacutevel interagir com os dispositivos
externos a FPGA Tornando possiacutevel a integraccedilatildeo da FPGA com a peliacutecula touch-screen e um
monitor sem a ajuda de um PC a uacutenica ajuda do pc seria para enviar dados de uma imagem para
o Kit DE2
44 Validaccedilatildeo e Testes
Inicialmente os moacutedulos da VGA e comunicaccedilatildeo SERIAL natildeo estavam funicionando
apenas o devido agrave fraca documentaccedilatildeo sobre o kit DE2 foi possiacutevel apenas fazer testes com o
Processador NIOS II pois sobre este existem bastantes documentos e exemplos que podem ser
utilizados
Nesta primeira parte foi possiacutevel testar o NIOS II para controlar o display bototildees e switchs
do kit DE2
Com o NIOS II funcionando completamente foi necessaacuterio porta-lo para o kit DE2 o que foi
simples pois como sabemos esses kits satildeo portaacuteveis entre si apenas mudando a pinagem e a
capacidade da FPGA
Com o Kit DE2 foi possiacutevel fazer os testes necessaacuterios com a comunicaccedilatildeo serial
inicialmente testada via terminal conversando diretamente com o kit foi possiacutevel fazer o
seguinte teste os caracteres que eram entrados via teclado chegavam ao kit via serial e o o
41
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 comdumpexe que eacute facilmente encontrado pelas ferramentas
de pesquisa da web e tambeacutem existem vario outros programas como este e o comdump eacute
utilizado para debug da porta serial do pc conectado diretamente na placa controladora do touch-
screen e foi a peccedila chave para o entendimento do pacote enviado pela placa controladora
Figura 20 - Cumdumpexe programa de debug da porta serial
A explicaccedilatildeo de cada byte do pacote esta explicado no item 423
Apos o entendimento completo da transmissatildeo 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 natildeo 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 ateacute o momento em que
foi testado os meacutetodos proprietaacuterios da Altera para fazer a VGA funcionar os meacutetodos esses
implementados em C
A figura 21 onde contem o teste baacutesico feito que foi a chave principal para o sucesso deste
projeto
42
Como dito no item 332 do projeto foram utilizados as funccedilotildees da controladora VGA esses
meacutetodos 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 eacute utilizado o meacutetodo alt_up_vga_draw_pixel( color int
x int y) onde color eacute a cor do bloco de pixels e x e y satildeo as coordenadas da tela onde o bloco
que seraacute pintado
Para escrever um caractere sobre um bloco de pixels pintado eacute utilizado a funccedilatildeo
alt_up_vga_draw_char_1b( char int x int y) onde char eacute o caractere a ser impresso e x e y satildeo
as coordenadas da tela onde os o caractere eacute impresso
Figura 21 - Teste baisco do funcionamento do componente VGA do kit DE2
43
CAPIacuteTULO 5 ndash VALIDACcedilAtildeO E RESULTADOS
Os resultados foram os melhores possiacuteveis pois com a utilizaccedilatildeo dos IP CORE
ldquocontroladorasrdquo dos componentes externos como VGA e SERIAL e seus meacutetodos de para
controle eacute possiacutevel controlar facilmente esses moacutedulos atraveacutes do firmware desenvolvido para o
processador NIOS que consegue realizar operaccedilotildees transparentes acessando dos meacutetodos de
controle dos moacutedulos
Apos os testes baacutesicos 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 baacutesico de editor de texto
A figura 22 mostra um teste utilizando os meacutetodos de controle disponiacuteveis para o IP CORE
da VGA para primeiramente fazer o menu da aplicaccedilatildeo desenvolvido em na linguagem C
Figura 22 ndash Menu baacutesico do editor de texto
Para desenhar o menu da figura acima foi utilizado os meacutetodos proprietaacuterios de controle da
VGA citados no capitulo 4 e tambeacutem estruturas de repeticcedilatildeo para que a tela fosse varrida e os
pixels desenhados nos respectivos lugares da tela bem como os caracteres
Na figura 23 eacute definida a seguinte estrutura em C para representar de um botatildeo
Figura 23 - Estrutura em C para representar um botatildeo
44
A figura 24 eacute a declaraccedilatildeo dos bototildees que seratildeo utilizados pelo aplicativo editor de texto
para comprovar o funcionamento do controle da interface touch-screen
Apenas o que esta dentro da marcaccedilatildeo quadrada representa os bototildees do menu da figura 23
e o restante satildeo os bototildees do teclado do editor de texto
Figura 24 - Declaraccedilatildeo dos bototildees do menu
45
A figura 25 representa o meacutetodo drawnButtonUp responsaacutevel por desenhar os bototildees na tela
de acordo com as posiccedilotildees em que foram declarados os bototildees deste meacutetodo satildeo desenhados
para parecerem que estatildeo ldquolevantadosrdquo e natildeo pressionados
Note que foram utilizados os meacutetodos proprietaacuterios de controle da VGA
alt_up_vga_draw_pixel pra pitar os pixels e alt_up_vga_draw_char_b1 para desenhar caracteres
como jaacute foi especificado no item 44 do projeto
Figura 25 ndash Meacutetodo drawButtonUp
46
O meacutetodo que desenha o caption do botatildeo se chama drawButtonText desenha os caracteres
em cima dos bototildees natildeo importa se o botatildeo esta pressionado ou natildeo
A figura 26 mostra como este meacutetodo foi implementado e ele eacute chamado no final de cada
meacutetodo onde algum tipo de botatildeo eacute desenhado quando o meacutetodo que desenha o botatildeo normal
quanto o pressionado e ateacute mesmo o do teclado
Figura 26 ndash Meacutetodo que escreve o caption de cada botatildeo
47
A figura 27 mostra o meacutetodo drawButtonDown que desenha o botatildeo pressionado ou seja
quando o usuaacuterio pressiona a regiatildeo correspondente a um botatildeo do menu no touch-screen o
mesmo redesenharaacute o botatildeo parecendo um efeito de botatildeo afundado note que no final do
meacutetodo novamente eacute chamado o meacutetodo drawButtonText que reescreveraacute o caption do botatildeo
como mostra o meacutetodo da figura 26 e esta ilustrado na figura 28
Figura 27 ndash Meacutetodo que desenha o botatildeo pressionado
48
Dependendo da aacuterea do menu que o usuaacuterio pressionar no touch-screen causar o efeito de
pressionado como mostra a figura 28
Figura 28 ndash Efeito do botatildeo de menu apertado
Na figura 29 eacute a representaccedilatildeo de quando a aacuterea correspondente ao botatildeo ldquoamarelordquo eacute
pressionada
Apos estes testes baacutesicos comprovando o funcionamento da interface graacutefica para o usuaacuterio
foi definido o restante dos componentes da tela que eacute constituiacutedo de um prompt e um teclado
qwerty que foi essencial para comprovar o perfeito funcionamento do controle da interface
touch-screen
49
51 Interface Grafica Final
A figura 29 mostra a interface final que o usuaacuterio teraacute para poder verificar o funcionamento
do controle da interface touch-screen
Figura 29 ndash Interface final touch-screen do usuaacuterio
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
511 Descriccedilatildeo do editor de texto
O menu possui 4 botoes cada um com sua respectiva funcionalidade quando o usuario
pressiona a area do botatildeo ldquoapagarrdquo uma vez entatildeo um carectere do prompt eacute apagado Quando eacute
precionado a area correspondente ao botatildeo ldquoResetrdquo todo o conteudo do prompt seraacute apagado e o
plano de fundo retornaraacute a cor branca Quando o botatildeo ldquoamarelordquo eacute pressionado o fundo da tela
passa a ser amarelo e o mesmo acontece se o usuario precionar o botatildeo verde tornando o cor de
fundo verde
50
O teclado possui 29 teclas sendo duas delas que equivalem ao ENTRA ldquoENTrdquo e ao
SPACE ldquoSPCrdquo Quando o usuario pressiona a area correspondente a algum botatildeo do teclado o
mesmo muda sua cor para azul e o seu caractere eacute disponibilizado no prompt
Essas funcionalidades nada mais satildeo do que um bom exemplo de como funciona
corretamente o controle da interface touch-screen
52 Prompt e o Teclado
A estrutura feita na linguagem C que define o prompt da figura 28 esta representado na
figura 30
Figura 30 ndash Estrutura em C para representar o prompt
A figura 31 mostra o metodo drawPrompt utilizado para desenhar na tela o prompt
Figura 31 ndash Meacutetodo que desenha o prompt
51
A estrutura do teclado eacute a mesma utilizada pela figura 23 e tambem eacute criado satildeo
inicializados na figura 24
O restante as implementaccedilotildees estatildeo disponiveis no cd deste documento
Quando algum botatildeo do teclado eacute pressionado sua cor muda para azul e sua letra
correspondente eacute escrita o prompt
A figura 32 ilustra quando o usuaacuterio aperta a letra lsquotrsquo na peliacutecula touch-screen
Figura 32 - Teste do prompt e o teclado
52
53 Controle da Interface Touch-Screen
Depois do todos os testes com o processador NIOS e a integraccedilatildeo do mesmo com os
moacutedulos externos como a porta SERIAL e a saiacuteda VGA eacute possiacutevel utilizando o touch-screen
criar uma interface amigaacutevel e faacutecil de usar para o usuaacuterio utilizando um firmware capaz de
interpretar os sinais via serial vindo da controladora do touch ao detectar que um toque foi dado
pelo usuaacuterio e realizar algumas accedilotildees que neste caso se comportam como um editor de texto
baacutesico
A figura 33 mostra como foi validado este projeto e seus moacutedulos controlando uma
interface touch-screen para chegar no resultado abaixo digitado pelo usuaacuterio comprovando o
funcionamento e viabilidade deste projeto
Figura 33 ndash 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 mudanccedilas podendo ser alterado rapidamente o tipo de
aplicaccedilatildeo ou integrado rapidamente com outro projeto
53
CAPIacuteTULO 6 - CONCLUSAtildeO
Uma das principais dificuldades no desenvolvimento deste projeto foi fazer o levantamento
da documentaccedilatildeo sobre o processador NIOS e os moacutedulos externos a FPGA do Kit DE2 Como
natildeo foi feito algum projeto antes que utilizasse a interface VGA e a SERIAL do Kit DE2 levou-
se muito tempo ateacute conseguir adquirir e ordenar o conhecimento que foi sendo adquirido ateacute
conseguir dar os primeiros passos e realizar os primeiros testes com a VGA e a SERIAL Outro
grande obstaacuteculo foi ter de descobrir que para que o NIOS controlasse os moacutedulos externos a
FGPA fosse necessaacuterio copiar os arquivos c e h dos respectivos componente para dentro do
projeto
Mas depois de todos os problemas com os moacutedulos externos solucionados cada modulo do
projeto foi sendo desenvolvido separadamente ateacute seu total funcionamento Natildeo tive dificuldades
com a linguagem da programaccedilatildeo pois o Firmware do processador NIOS eacute o C a qual mais tive
contato na faculdade
Outro desafio foi fazer a peliacutecula 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
peliacutecula natildeo 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 possiacutevel
comeccedilar a fazer os testes necessaacuterios para prosseguir com o projeto aprender como o a peliacutecula
identifica um toque e manda este sinal para a controladora e a controladora transforma este sinal
em um sinal serial que eacute 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 accedilotildees
que as coordenadas jaacute estatildeo previamente calibradas no firmware para fazer bem como mudar de
cor a tela fazer o efeito de um botatildeo subindo e descendo etc
Varias vezes o projeto parou de funcionar entatildeo 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 memoacuteria abundante etc uma das
facilidades eacute a faacutecil alteraccedilatildeo do projeto podendo ser integrado a outro ou ateacute mesmo alterado
para realizar outros tipos de accedilotildees com o touch-screen
Existem vaacuterios melhoramentos que podem ser executados no projeto um deles eacute tentar
interpretar de uma maneira diferente os valores do eixo y pois do jeito que esta a resoluccedilatildeo do
eixo y esta muito baixa dificultando o reconhecimento de toques em aacutereas pequenas Talvez a
inclusatildeo de mais alguns bytes no pacote de leitura da serial resolva o problema
54
Uma ideacuteia para um proacuteximo projeto que use a interface touch-screen poderia ser a
integraccedilatildeo com o projeto do nosso colega Roberto Junqueira ou a desenvolvimento de uma
placa controladora para o touch-screen
Este trabalho eacute uma modesta contribuiccedilatildeo para o uso de FPGAs e do processador embarcado
NIOS implementado em VHDL pela Altera que acredito que vai abrir vaacuterios caminhos pois
com este projeto alguns caminhos ficaram mais faacuteceis de percorrer daqui para a frente
55
CAPIacuteTULO 7 - REFEREcircNCIAS BIBLIOGRAacuteFICAS
AMORE Roberto drsquo VHDL Descriccedilatildeo e Sintese de Circuitos Rio de Janeiro ed LTC
2005
Elotouch Touch-Screen e Controladora Descriccedilatildeo do funcionamento e descriccedilatildeo
tecnologia Touch-Screen lthttpwwwelotouchcombrgt Acesso em fevereiro de 2007
ALTERA University Program IP Cores Instalaccedilatildeo de IP Cores e referencias sobre os
componentes dos kits DE1 e DE2 Disponivel em lthttpwwwalteracomeducationunivip-
coresunv-ip-coreshtmlgt Acesso em abril de 2007
ALTERA NIOS II Documentaccedilatildeo sobre o pprocessador embracado NIO II Disponivel
em lthttpwwwalteracomproductsipprocessorsipm-indexjspgt Acesso em Abril de 2007
ALTERA Development amp Education Board 2 (DE2) Manual do usuario Disponivel no
de que acompanha o Kit DE2 ltDE2_user_manualDE2_UserManualpdfgt Acesso em
fevereiro de 2007
TERMO DE APROVACcedilAtildeO
Hildeberto Lopes Filho
Interface TouchScreen
Monografia aprovada como requisito parcial agrave conclusatildeo do curso de Engenharia da
Computaccedilatildeo do Centro Universitaacuterio Positivo pela seguinte banca examinadora
Prof Valfredo Pilla Junior
Prof Alessandro Zimmer
Prof Joseacute Carlos da Cunha
Curitiba 11 de Dezembro de 2007
AGRADECIMENTOS
Primeiramente agradeccedilo a Deus que me proporcionou a oportunidade e vontade de chegar
ateacute aqui realizar este projeto e concluir mais uma etapa na minha vida
Aos meus pais Hildeberto Lopes Filho e Naria Maria Martins Lopes pelo esforccedilo que
fizeram para que hoje eu pudesse estar concluindo este curso de graduaccedilatildeo e principalmente pelo
amor valores e o apoio em todos os momentos dessa caminhada
Agrave minha noiva Ghiovandra que sempre acreditou no meu trabalho e a agradeccedilo por ter
aguumlentado meu mau humor e stress durante todo o curso e tambeacutem nunca me deixou desistir
Ao meu orientador professor e amigo Valfredo Pilla Junior pela ideacuteia do projeto por
acreditar e sempre estar disposto a ajudar natildeo apenas nesse projeto mas em outras pesquisas
acadecircmicas Agradeccedilo
E aos professores do curso de Engenharia da Computaccedilatildeo da Unicenp responsaacuteveis diretos
pela minha formaccedilatildeo profissional
RESUMO
Com o avanccedilo tecnoloacutegico dos dispositivos reconfiguraacuteveis principalmente as FPGAs a
realizaccedilatildeo de updates em hardware foi extremamente facilitada Desta maneira natildeo haacute a
necessidade de intervenccedilatildeo fiacutesica facilitando principalmente o trabalho de projetistas
A evoluccedilatildeo do mundo eacute constante tambeacutem podemos evoluir constantemente os sistemas
atraveacutes do uso das FPGAs correccedilotildees e alteraccedilotildees podem ser feitas simuladas em software
configuradas e testadas em laboratoacuterio e imediatamente apoacutes serem enviadas para campo e
implantados nos sistemas em funcionamento sem interrupccedilotildees longas eou trabalhosas
E com essas facilidades de reconfigurar o hardware desenvolveu-se um controle sobre uma
interface Touch-Screen e sua comunicaccedilatildeo com a FPGA para permitir que o usuaacuterio mude as
caracteriacutesticas de uma determinada imagem (Interface de Vidro) no monitor atraveacutes do toque
todo o controle entre os blocos loacutegicos e funcionais eacute 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 isnt 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 andor 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
SUMAacuteRIO
CAPIacuteTULO 1 - INTRODUCcedilAtildeO 12
CAPIacuteTULO 2 ndash FUNDAMENTACcedilAtildeO TEOacuteRICA 14
21-Touch Screen 14
211 Placa e chip da Controladora do Touch-Screen 16
212 Pinagens e descriccedilatildeo do Touch-Screen e da Placa Controladora 17
22-Video 18
23-Kit Altera Development amp Education Board 1 (Kit DE2) 20
231-Layout e Componentes 20
232 Diagrama de Blocos do Kit DE2 21
233 Endereccedilo das Pinagens dos Componentes usados no Projeto 24
2331 PushButtons 24
2332 Modulo dos Displays de 7 Segmentos 25
2333 VGA 27
CAPIacuteTULO 3 ndash ESPECIFICACcedilAtildeO TECNICA 29
31 Descriccedilatildeo de Software 29
312 Diagrama de Blocos do Software 29
312 Modulo do PC 30
32 Descriccedilatildeo de Hardware 30
321 Modulo Touch-Screen 30
322 Modulo FPGA 30
3221 O Processador NIOS II 31
3222 Firmware para o NIOS II 31
323 Configuraccedilatildeo da FPGA via JTAG 31
324 Comunicaccedilatildeo entre FPGA e o Touch-Screen 32
33 Especificaccedilatildeo de Validaccedilatildeo 32
331 Validaccedilatildeo de Hardware 32
332 Validaccedilatildeo de Software 33
34 Recursos Necessaacuterios 34
35 Viabilidade Teacutecnico-Econocircmica 35
36 Cronograma do Projeto 35
CAPIacuteTULO 4 ndash ESPECIFICACcedilAtildeO TECNICA 36
41 Requisitos Miacutenimos 36
42 Projeto de Hardware 36
421 Funcatildeo do Touch-Screen 37
422 Monitor e VGA 37
423 Comunicaccedilatildeo serial 38
424 Comunicaccedilatildeo USB-Blaster 39
435 Memoacuteria SDRAM 39
426 Memoacuteria FLASH 39
43 Software 39
431 Software (Firmware) 39
432 Objetivos 39
432 Funccedilotildees 40
44 Validaccedilatildeo e Testes 40
CAPIacuteTULO 5 ndash VALIDACcedilAtildeO E RESULTADOS 43
51 Interface Grafica Final 49
511 Descriccedilatildeo do editor de texto 49
52 Prompt e o Teclado 50
53 Controle da Interface Touch-Screen 52
CAPIacuteTULO 6 - CONCLUSAtildeO 53
CAPIacuteTULO 7 - REFEREcircNCIAS BIBLIOGRAacuteFICAS 55
LISTA DE FIGURAS
Figura 1 ndash Touch-Screen final 14 Figura 2 ndash Mascara 15 Figura 3 ndash Vidro 15 Figura 4 ndash Chip COACh IIs 16 Figura 5 ndash Placa Controladora 17 Figura 6 ndash Pinos do Touch-Screen 17 Figura 7 ndashConector para o touch da placa controladora 17 Figura 8 ndash Conector VGA femea do kit DE2 18 Figura 9 ndash O kit DE2 20 Figura 10 ndash Diagrama de Blocos do KIT DE2 21 Figura 11 ndash Os 4 PushButtons do DE2Key[30] 24 Figura 12 ndash Modulo de displays de 7 segmentos 25 Figura 13 ndash Index de um display 25 Figura 14 ndash Temporizaccedilatildeo horizontal da VGA 27 Figura 15 - Moacutedulos do projeto 29 Figura 16 ndash Conector da interface serial do kit DE2 32 Figura 17 - Tela para a validaccedilatildeo dos testes com as bibliotecas graacuteficas do componente VGA 34 Figura 18 ndash Representaccedilatildeo em blocos do hardware do NIOS II 37 Figura 19 ndash Tela do monitor 38 Figura 20 - Cumdumpexe programa de debug da porta serial 41 Figura 21 - Teste baisco do funcionamento do componente VGA do kit DE2 42 Figura 22 ndash Menu baacutesico do editor de texto 43 Figura 23 - Estrutura em C para representar um botatildeo 43 Figura 24 - Declaraccedilatildeo dos bototildees do menu 44 Figura 25 ndash Meacutetodo drawButtonUp 45 Figura 26 ndash Meacutetodo que escreve o caption de cada botatildeo 46 Figura 27 ndash Meacutetodo que desenha o botatildeo pressionado 47 Figura 28 ndash Efeito do botatildeo de menu apertado 48 Figura 29 ndash Interface final touch-screen do usuaacuterio 49 Figura 30 ndash Estrutura em C para representar o prompt 50 Figura 31 ndash Meacutetodo que desenha o prompt 50 Figura 32 - Teste do prompt e o teclado 51 Figura 33 ndash Funcionamento do controle da interface Touch-Screen 52
LISTA DE TABELAS
Tabela 1 ndash Caracteriacutesticas da placa controladora 16 Tabela 2 ndash Pinagem do conector que faz interface entre o touch e a controladora 18 Tabela 3 ndash Descriccedilatildeo dos pinos da VGA 18 Tabela 4 ndash Lista dos componentes do Kit DE2 (DE2_UserManualpdf contrado no cd do kit) 20 Tabela 5 ndash Detalhes do FPGA Cyclone II 22 Tabela 6 - Descriccedilatildeo das configuraccedilotildees que satildeo feitas atraveacutes da Serial e Usb-Blaster 22 Tabela 7 ndash Descriccedilatildeo do Bloco da SRAM 22 Tabela 8 - Descriccedilatildeo do Bloco da SDRAM 22 Tabela 9 ndash Descriccedilatildeo da Memoria Flash 23 Tabela 10 - Descriccedilatildeo do SD card socket 23 Tabela 11 - PushButton switches 23 Tabela 12 - Descriccedilatildeo das entradas de Clocks 23 Tabela 13 - Descriccedilatildeo do Aacuteudio CODEC 23 Tabela 14 ndash Descriccedilatildeo da saiacuteda VGA DAC 24 Tabela 15 ndash Descriccedilatildeo da Serial Port e PS2 24 Tabela 16 ndash Descriccedilatildeo dos conectores de expansatildeo de 40 pinos 24 Tabela 17 ndash Pinos da FPGA referentes a cada PushButton 25 Tabela 18 ndash Pinos da FPGA referentes a cada segmento dos Displays do modulo 26 Tabela 19 ndash Especificaccedilatildeo da temporizaccedilatildeo horizontal da VGA 27 Tabela 20 ndash Especificaccedilatildeo da temporizaccedilatildeo vertical da VGA 27 Tabela 21 ndash Pinos da FPGA referentes a saiacuteda do Conector VGA do Kit 28 Tabela 22 ndash Moacutedulos dos componentes e suas descriccedilotildees 31 Tabela 23 ndash Pinos da FPGA referente agrave pinagem da interface Serial 32 Tabela 24 - Ferramentas de Desenvolvimentos e Ambientes 34 Tabela 25 ndash Linguagens de programaccedilatildeo utilizadas 35 Tabela 26 ndash Relaccedilatildeo dos Custos 35 Tabela 27 ndash Cronograma de datas e entregas do projeto 35 Tabela 28 ndash Funccedilotildees do sistema firmware 40
LISTA DE SIGLAS
CRT - Catodic Ray tube
DE2 - Development amp Educations 1
ES - EntradaSaiacuteda
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 - Nuacutecleo de Ciecircncias Exatas e Tecnoloacutegicas
PC - Personal Computer
PDA - Personal Digital Assistant
PLL - Pulse Logic Loop
SDRAM - Static Dinamic Randomic Acess Memory
TTL - Transistor-transistor Logic
UNICENP - Centro Universitaacuterio Positivo
USB - Universal Serial Bus
USP - Universidade de Satildeo Paulo
VGA - Viacutedeo 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 SIacuteMBOLOS
- ohm
MHz - Mega Hertz
Hz - Hertz
V - Volts
11
12
CAPIacuteTULO 1 - INTRODUCcedilAtildeO
A computaccedilatildeo reconfiguraacutevel vem sendo utilizada em larga escala para projetos de
hardware que necessitem de um grande poder de processamento Neste campo um dispositivo
muito utilizado eacute a FPGA (Field-Programmable Gate Array)
As FPGArsquos satildeo circuitos de hardware que podem ser modificados praticamente em
qualquer momento durante o uso As FPGArsquos consistem em array de blocos loacutegicos
configuraacuteveis que implementam funccedilotildees loacutegicas 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 mudanccedilas raacutepidas no hardware
Em microprocessadores de uso geral se tem um hardware que natildeo pode ser modificado fixo
mas no FPGA essa mudanccedila eacute bastante simples e raacutepida feita via software
Este projeto teve sua proposta lanccedilada a partir da ideacuteia concedida pelo Prof Valfredo Pilla
Junior de interface Touch-Screen
O projeto eacute sobre o controle de uma interface com uma peliacutecula Touch-Screen onde eacute
possiacutevel que o usuaacuterio ao tocar uma peliacutecula sensiacutevel ao toque o sistema desenvolvido possa
realizar algum tipo de alteraccedilatildeo na imagem apresentada em um monitor que se dispotildee atraacutes do
Touch-Screen
O objetivo foi desenvolver um sistema capaz de receber e manipular a aquisiccedilatildeo dos dados
gerados pela placa controladora atraveacutes toque na peliacutecula Touch-Screen que estaraacute na frente da
tela de um monitor converter estes dados realizar uma alteraccedilatildeo na tela inicialmente
apresentada e disponibilizar o resultado da alteraccedilatildeo atualizando a tela do monitor
O hardware do sistema eacute basicamente composto na parte da aquisiccedilatildeo por uma peliacutecula
Touch-Screen e uma placa controladora da proacutepria peliacutecula recepccedilatildeo e processamentos feitos no
Kit DE2 (Development amp Education 1) Board que enviara o resultado atraveacutes da saiacuteda VGA
(Viacutedeo Graphics Array) para um monitor CRT (Catodic Ray tube)
Este sistema eacute justificado pois as interfaces intuitivas com telas Touch-Screen satildeo
utilizadas em uma ampla gama de mercados
Por exemplo
Comeacutercio Realizar um atendimento de forma raacutepida e faacutecil eacute objetivo da automaccedilatildeo 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 usuaacuteriomaacutequina de grandes complexos
equipamentos devido agrave eliminaccedilatildeo do teclado do mouse e de outros perifeacutericos de um ambiente
industrial evitando distraccedilotildees em um ambientes geralmente muito agressivo
13
Medicina Os sistemas que usam touch simplificam os sofisticados sistemas meacutedicos reduzem as
possibilidades de erros e proporcionam um mecanismo de entrada de dados mais eficiente que
qualquer outro perifeacuterico
Educaccedilatildeo Hoje o touch esta se tornando a interface de treinamento mais popular em todas as
fases do aprendizado desde a preacute escola jardim de infacircncia e preparaccedilatildeo profissional eliminando
a frustraccedilotildees de crianccedilas ao utilizar o mouse ou teclado
E aplicaccedilotildees com o objetivo de diminuir o tempo de resposta aumentar a produtividade
proporcionar produtos e serviccedilos de maior qualidade e aumentar os lucros Por exemplo realizar
um atendimento de forma raacutepida e faacutecil eacute objetivo da automaccedilatildeo 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 serviccedilos intuitivos e interativos de uma interface
Touch proporcionam confiabilidade ao cliente que eacute exatamente o que o seu negoacutecio precisa para
o crescimento e o sucesso em longo prazo (elotouch 2007)
Este projeto no futuro poderaacute ser integrado com outro projeto formando assim um sistema
parecido com um PDA (Personal Digital Assistant)
14
CAPIacuteTULO 2 ndash FUNDAMENTACcedilAtildeO TEOacuteRICA
21-Touch Screen
Um Touch-Screen que em portugues quer dizer ldquotela sensivel ao toquerdquo estatildeo disponiacuteveis
para uma grande variedade de uso desde pontos de vendas ateacute quiosques equipamentos meacutedicos
e industriais e sistemas de jogos As vantagens das soluccedilotildees touch incluem precisatildeo
transparecircncia e facilidade de uso e instalaccedilatildeo
O Touch-Screen usado neste projeto eacute o modelo de quatro fios resistivos AT4 da empresa
Elo TouchSystem (wwwelotouchcombr)
A tecnologia resistiva touch de quatro fios consta de uma tela de vidro coberto
uniformemente por camadas eletricamente condutivas e resistivas Uma lacircmina de poliester eacute
hermeticamente estendida sobre a parte superior do vidro e separada por minuacutesculos espaccediladores
(pontos) transparentes e isolantes A parte externa dessa lacircmina eacute uma peliacutecula duraacutevel e firme a
parte interna conteacutem uma camada condutiva Durante seu funcionamento uma corrente eleacutetrica
se propaga atraveacutes do touchscreen Ativada por um miacutenimo toque a peliacutecula 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 descriccedilatildeo das
camadas que compoem o Touch-Screen
Figura 1 ndash Touch-Screen final (Adaptado com as dimensotildees da aplicaccedilatildeo do editor de texto para validar este projeto)
15
Figura 2 ndash Mascara
(Adaptado do site elotouchcombr)
1 Camada soacutelida resistente a riscos (tipo anti-reflexiva) 3 Camada ITO
2 Peliacutecula de Poliester 4 Contatos de prata
Figura 3 ndash Vidro (Adaptado do site elotouchcombr)
1 Contatos de prata 3 Camada ITO(Transparent Conducting Oxide)
2 Pontos espaccediladores 4 Camada de Vidro
O circuito da controladora aplica uma tensatildeo atraveacutes da superfiacutecie do vidro As tensotildees no
ponto de contato constituem a representaccedilatildeo analoacutegica da superfiacutecie de toque A controladora
traduz essas tensotildees e transmite-os para o computador para processaacute-los
16
211 Placa e chip da Controladora do Touch-Screen
O COACh IIs (Controller On A Chip second generation) eacute compacto econocircmico chip
controlador para as aplicaccedilotildees com o Touch-Screen AT4 de 4 fios resistivos Opera em 33V e
em 5V O tamanho compacto baixa voltagem para operar e comsumo de energia eacute a melhor
soluccedilatildeo para OEMrsquos (original equipment manufacturer) pois pode contar com estabilidade
confiabilidade e desempenho de componentes com touch para aplicaccedilotildees embarcadas ou
aplicaccedilotildees portaacuteveis[elotouchcom] A Figura 4 ilustra o chip
Figura 4 ndash Chip COACh IIs (Adaptado do site elotouchcom)
A placa controladora que integra o touch-screen em outros moacutedulos possui as caracteriacutesticas
descritas na Tabela 1 e a Figura 5 ilustra a placa controladora
Tabela 1 ndash Caracteriacutesticas da placa controladora
Alimentaccedilatildeo 5 VDC nominal (45)
Interface-Serial (Serial RS-232) Full Duplex
Paracircmetros de Comunicaccedilatildeo Baud Rate 9600 and 19200 8 Bits de dados 1 bit de parada
Interface USB Quando estiver comunicando via USB a Serial estaraacute desabilitada E a placa natildeo eacute alimentada pela USB
Resoluccedilatildeo de toque 4096x4096 independente do tamanho da peliacutecula touch-screen
Tempo de conversatildeo do toque 10ms
17
Figura 5 ndash Placa Controladora (Adaptado do site elotouchcom)
212 Pinagens e descriccedilatildeo do Touch-Screen e da Placa Controladora
A Figura 6 ilusta os pinos do Touch-Screen que satildeo ligados ao conector da placa
controladora
Figura 6 ndash Pinos do Touch-Screen (Adaptado do site elotouchcom)
A Figura 7 mostra o conector da placa controladora e as respectivas pinagens
Figura 7 ndashConector para o touch da placa controladora (Adaptado do site elotouchcom)
18
A Tabela 2 descreve os pinos do conector para o touch da placa controladora
Tabela 2 ndash Pinagem do conector que faz interface entre o touch e a controladora
Pino
Nome do Sinal Desciccedilatildeo do sinal
1 X+ Entrada de tensatildeo positiva referente ao eixo X da tela 2 Y+ Entrada de tensatildeo positiva referente ao eixo Y da tela 3 X- Entrada de tensatildeo negativa referente ao eixo X da tela 4 Y- Entrada de tensatildeo negativa referente ao eixo Y da tela
22-Video
Eacute usado um monitor CRT convencional o qual apresentaraacute uma imagem criada atraveacutes as
bibliotecas graficas proprietarias da ALTERA esta imagem representa um menu com botoes e e
que atravez da manipulaccedilatildeo dos metodos das bibliotecas os resultados satildeo disponibilizados na
saida VGA do kit dependendo do botatildeo da imagem que for tocada atravez do touch alguma accedilatildeo
de alteraccedilatildeo na imagem seraacute atulalizada na saida vga
A Figura 8 ilustra o conector (fecircmea) da saiacuteda VGA do kit DE2
Figura 8 ndash Conector VGA femea do kit DE2
E na Tabela 3 a descriccedilatildeo de cada pino bem como sua direccedilatildeo
Tabela 3 ndash Descriccedilatildeo dos pinos da VGA
Pin
Name Dir Description
1 RED
Red Video (75 ohm 07 V p-p)
2 GREEN
Green Video (75 ohm 07 V p-p)
3 BLUE
Blue Video (75 ohm 07 V p-p)
4 ID2
Monitor ID Bit 2
5 GND
Ground
6 RGND
Red Ground
7 GGND
Green Ground
8 BGND
Blue Ground
19
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
20
23-Kit Altera Development amp Education Board 1 (Kit DE2)
231-Layout e Componentes
Uma fotografia do Kit DE2 eacute mostrado na Figura 9 onde se ve a aparencia do kit e as
indicaccedilotildees das localizaccedilatildeo dos componentes e conectores
Figura 9 ndash O kit DE2 (DE2_UserManualpdf 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 eacute listado os componentes fornecidos na placa do Kit DE2
Tabela 4 ndash Lista dos componentes do Kit DE2 (DE2_UserManualpdf contrado no cd do kit)
1 Altera Serial Configuration device ndash EPCS4
2 USB Blaster (on board) for programming and user API control both JTAG and Active 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
21
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
PS2 mousekeyboard connector
17
Two 40-pin Expansion Headers with diode protection
18
Powered by either a 75V DC adapter or a USB cable
232 Diagrama de Blocos do Kit DE2
Figura 10 ndash Diagrama de Blocos do KIT DE2 (DE2_UserManualpdf contrado no cd do kit)
22
A Tabela 5 mostra a informaccedilatildeo detalhada do Bloco Cyclone II FPGA 2C20 mostrado na
Figura 10
Tabela 5 ndash Detalhes do FPGA Cyclone II
FPGA Cyclone II 2C35
18752 LErsquos
52 M4K RAM blocks 240K total RAM bits 26 embedded multipliers 4 PLLrsquos 315 user IO pinrsquos FineLine BGA 484-pin package
A Tabela 6 mostra a informaccedilatildeo detalhada do Bloco do dispositivo de configuraccedilatildeo Serial e
circuito Usb-Blaster
Tabela 6 - Descriccedilatildeo das configuraccedilotildees que satildeo feitas atraveacutes da Serial e Usb-Blaster
Configuraccedilatildeo do dispositivo Serial e do Circuito Usb-Blaster Configuraccedilatildeo do dispositivo serial Altera EPCS4 On-Board Usb-Blaster
para Controle de API de usuaacuterio e programaccedilatildeo
JTAG e AS satildeo os modos do programaccedilatildeo suportados
A Tabela 7 mostra a descriccedilatildeo do Bloco da SRAM
Tabela 7 ndash Descriccedilatildeo do Bloco da SRAM
SRAM 512-Kbyte Static RAM memory chip Organizado em 256K x 16 bits Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 8 mostra a descriccedilatildeo do Bloco da SDRAM
Tabela 8 - Descriccedilatildeo do Bloco da SDRAM
SDRAM 8-Mbyte Single Data Rate Synchronous Dynamic RAM memory chip Organizado em 1M x 16 bits x 4 Banks Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
23
A Tabela 9 mostra a descriccedilatildeo do Bloco Memory Flash
Tabela 9 ndash Descriccedilatildeo da Memoria Flash
Memory Flash
4-Mbyte NAND Flash memory 8-bit data bus Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 10 mostra a descriccedilatildeo do Bloco SD card socket
Tabela 10 - Descriccedilatildeo do SD card socket
SD card socket Fornece o modo SPI para o acesso ao cartatildeo SD Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 11 mostra a descriccedilatildeo 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) Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 12 mostra a descriccedilatildeo dos Clock inputs
Tabela 12 - Descriccedilatildeo das entradas de Clocks
Clock inputs Oscilador de 50 Mhz Oscilador 27 Mhz Entrada para clock
externo
A Tabela 13 mostra a descriccedilatildeo do Aacuteudio CODEC
Tabela 13 - Descriccedilatildeo do Aacuteudio CODEC
Aacuteudio CODEC 4-Mbyte NAND Flash memory 8-bit data bus Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
24
A Tabela 14 mostra a descriccedilatildeo do Bloco VGA DAC
Tabela 14 ndash Descriccedilatildeo da saiacuteda VGA DAC
VGA
DAC
Usa 4 bits DAC para cada cor (RGB) Com 15 pinos no conector VGA convencional (fecircmea) Suporta uma resoluccedilatildeo de 640 x 480 com um refresh de ateacute 100Hz Pode ser usando com o FPGA Cyclone II para implementar um Encoder para TV
A Tabela 15 mostra a descriccedilatildeo do Bloco Serial Ports amp PS2
Tabela 15 ndash Descriccedilatildeo da Serial Port e PS2
Serial Ports amp PS2 Uma porta RS-232
Uma posta PS2 Um conector Serial para a porta do RS-232 Conector PS2 para conectar um mouse ou teclado ao DE2
A Tabela 16 mostra a descriccedilatildeo do Bloco dos Two 40 - pin expansion headers
Tabela 16 ndash Descriccedilatildeo dos conectores de expansatildeo de 40 pinos
Two 40 - pin expansion headers 72 pinos de IO do Clyclone II bem como 8 power e groundrsquos satildeo trazidos aos 2 conectores de expansatildeo de 40 pinos cada Os conectores de 40 pinos tambeacutem aceitam os cabos IDE de 40 pinos Proteccedilatildeo resistiva eacute fornecida
233 Endereccedilo das Pinagens dos Componentes usados no Projeto
2331 PushButtons
A Figura 11 mostra uma foto dos PushButtons do kit Key[30] a ordem eacute o button da
esquerda eacute o mais significativo e o mais de direita o menos signigicativo
Figura 11 ndash Os 4 PushButtons do DE2Key[30] (DE2_UserManualpdf contrado no cd do kit)
25
A Tabela 17 mostra os pinos da FPGA aos PushButtons
Tabela 17 ndash Pinos da FPGA referentes a cada PushButton (DE2_UserManualpdf contrado no cd do kit)
2332 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 ndash Modulo de displays de 7 segmentos (DE2_UserManualpdf encontrado no cd do kit)
Figura 13 ndash Index de um display (DE2_UserManualpdf encontrado no cd do
kit)
26
A Tabela 18 mostra os pinos da FPGA referente a cada segmento dos displays de 7
segmentos do modulo
Tabela 18 ndash Pinos da FPGA referentes a cada segmento dos Displays do modulo
27
2333 VGA
A Figura 14 esta em forma de onda da temporizaccedilatildeo horizontal e vertical da VGA do Kit
DE2
Figura 14 ndash Temporizaccedilatildeo horizontal da VGA
A Tabela 19 mostra a especificaccedilatildeo da temporizaccedilatildeo horizontal da VGA
Tabela 19 ndash Especificaccedilatildeo da temporizaccedilatildeo horizontal da VGA
A Tabela 20 mostra a especificaccedilatildeo da temporizaccedilatildeo vertical da VGA
Tabela 20 ndash Especificaccedilatildeo da temporizaccedilatildeo vertical da VGA
28
A Tabela 21 mostra os pinos da FPGA referente a cada pino de saida do conector VGA do
Kit DE2
Tabela 21 ndash Pinos da FPGA referentes a saiacuteda do Conector VGA do Kit
29
CAPIacuteTULO 3 ndash ESPECIFICACcedilAtildeO TECNICA
Nesse capiacutetulo tem-se uma descriccedilatildeo dos principais moacutedulos do projeto Satildeo eles Software
Firmware e Hardware
Inicialmente eacute apresentada a visatildeo geral do sistema e a descriccedilatildeo funcional de cada moacutedulo
A Figura 15 apresenta o diagrama em blocos do sistema
Figura 15 - Moacutedulos do projeto
31 Descriccedilatildeo de Software
O Software eacute uma das interfaces com o usuaacuterio
312 Diagrama de Blocos do Software
30
312 Modulo do PC
Neste modulo eacute 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
32 Descriccedilatildeo de Hardware
321 Modulo Touch-Screen
O usuaacuterio ao tocar o Touch-Screen (AT4 touch-screen resistivo de 4 fios) ocorre uma
mudanccedila nas tensotildees do eixo X e do eixo Y devido a resistecircncia gerada pelo ao toque do usuaacuterio
em uma determinada regiatildeo da tela essa mudanccedila de tensatildeo eacute interpretada pela placa
controladora COACh IIs do Touch-Screen e enviada via serial para o Kit DE2 que interpretaraacute
os dados e faraacute o devido processamento
322 Modulo FPGA
O Hardware corresponde tanto aos componentes fiacutesicos presentes no kit de desenvolvimento
quanto aos componentes que seratildeo configurados na FPGA Satildeo diversos componentes escritos
em linguagem de descriccedilatildeo de hardware
No um dos principais componentes de hardware utilizado modulo eacute o processador NIOS II
para se ter uma ideacuteia o processador NIOS II eacute capaz gerenciar os dispositivos externos a FPGA
utilizando controladores de memoacuterias controladores de VGA entre outros E tambeacutem eacute possiacutevel
o proacuteprio usuaacuterio criar seu componente para ser controlado atraveacutes do processador NIOS
II(Altera 2007)
31
3221 O Processador NIOS II
Atraveacutes do software SOPC da ALTERA foi possiacutevel montar a arquitetura de hardware do
processador NIOS II bem como especificar as interfaces que ele iraacute controlar atraveacutes do firmwar
feito no NIOS II IDE
Na Tabela 22 eacute no campo Module Name onde estatildeo os moacutedulos que foram usados para
definir o processador NIOS II e os componentes externos que ele iraacute controlar e no campo
Description esta a descriccedilatildeo do nome de cada modulo
Tabela 22 ndash Moacutedulos dos componentes e suas descriccedilotildees
3222 Firmware para o NIOS II
O Firmware foi feito utilizando a linguagem C utilizando a ferramenta NIOS II IDE Atraveacutes
do firmware eacute possiacutevel 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 graacuteficas para controlar a vga e serial e
USB-BLASTER eacute encarregado em enviar todo o desenvolvimento do projeto para o Kit DE2
323 Configuraccedilatildeo da FPGA via JTAG
Depois de configurado o hardware do processador NIOS II eacute preciso fazer o load do NIOS
para a FPGA e para que isso aconteccedila eacute necessaacuterio que atraveacutes do software Quartus II da
ALTERA utilizando a interface JTAG utilizando o cabo USB-BLASTER
32
324 Comunicaccedilatildeo entre FPGA e o Touch-Screen
Para comunicaccedilatildeo entre dos dois hardwares Touch-Screen e o FPGA eacute utilizando uma
interface serial RS-232
A configuraccedilatildeo da interface eacute a seguinte
Bits de dados 8
Taxa de dados 5600(bps)
A Tabela 23 mostra a relaccedilatildeo dos pinos da porta serial com os pinos da FPGA
Tabela 23 ndash Pinos da FPGA referente agrave pinagem da interface Serial
E a Figura 16 mostra o desenho correspondente da interface serial
Figura 16 ndash Conector da interface serial do kit DE2
33 Especificaccedilatildeo de Validaccedilatildeo
331 Validaccedilatildeo de Hardware
A validade do hardware se faz com a anaacutelise de todos os moacutedulos envolvidos
As necessidades satildeo estudadas os componentes externos ao FPGA satildeo selecionados de
acordo o processador nios e os controladores dos moacutedulos externos como VGA e SERIAL satildeo
enviados ao modulo FPGA
Os resultados obtidos na tela do monitor e a recepccedilatildeo dos dados pela serial comprovam o
funcionamento do modulo de comunicaccedilatildeo da serial e vga
33
332 Validaccedilatildeo de Software
A validaccedilatildeo do controle da interface touch-screen faz-se a partir dos resultados obtidos das
funccedilotildees escritas na linguagem C especificas para cada componente externos ao FPGA essas
funccedilotildees tornam possiacuteveis que o processador NIOS na FPGA tenha total controle sobre os
moacutedulos externos como a VGA e a SERIAL
As funccedilotildees que satildeo utilizadas para validar o funcionamento do software satildeo para a VGA os
meacutetodos de controle (alt_up_vga_draw_char_1b( char int x int y)) e (alt_up_vga_draw_pixel(
color x y))
O meacutetodo (alt_up_vga_draw_char_1b( char int x int y)) tem a funcionalidade de escrever
caracteres na tela do monitor e a descriccedilatildeo da sua assinatura ldquoparacircmetrosrdquo eacute a seguinte char eacute o
caractere que eacute escrito em alguma posiccedilatildeo na tela int x eacute a posiccedilatildeo x da tela do monitor e int y eacute
a posiccedilatildeo y da tela do monitor sendo que a resoluccedilatildeo utilizada eacute de 80x60 ou seja x natildeo pode
passar de 80 e y natildeo pode passar de 60
O meacutetodo (alt_up_vga_draw_pixel( color int x int y)) tem a funcionalidade de ldquopintarrdquo o
fundo da tela do monitor o meacutetodo de imprimir caracteres tem preferecircncia sobre este meacutetodo ou
seja os caracteres sempre ficam sob a aacuterea pintada ou seja o caractere sempre ficara em cima da
aacuterea pintada a descriccedilatildeo da assinatura deste meacutetodo eacute a seguinte color eacute a valor da cor que pode
ser um valor inteiro ou em hexadecimal para definir uma cor de alguma posiccedilatildeo da tela definidos
pelos paracircmetros x e y
As funccedilotildees que satildeo utilizadas para validar o funcionamento do software satildeo para a Serial os
meacutetodos de controle de transmissatildeo (fread( packet sizeof(packet) 1 serial_fp )) a funccedilatildeo
fread eacute utilizada para a leitura via interrupccedilatildeo dos pacotes que a controladora envia para o kit
DE2 as assinaturas do meacutetodo fread tem a seguinte composiccedilatildeo packet eacute a estrutura do pacote
que seraacute recebido o sizeof(packet) eacute o diz qual eacute o tamanho exato da estrutura criada e o
serial_fp eacute o handle da porta serial
Uma observaccedilatildeo muito importante eacute que para o total funcionamento eacute necessaacuterio 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 rs232h e rs232c onde estatildeo os meacutetodos de
controle da SERIAL e alt_up_vgah alt_up_vgac onde estatildeo os meacutetodos de controle para a
VGA Para tornar estes meacutetodos acessiacuteveis eacute preciso fazer os includes dos arquivos h no
projeto da NIOS IDE
A figura 17 mostra a utilizaccedilatildeo dos meacutetodos (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
34
int y)) utlizado para escrever os caracteres lsquoarsquo e lsquobrsquo dentro de um grupo de pixel previamente
pintado a (alt_up_vga_draw_pixel( color int x int y)) natildeo pinta um pixel de cada vez e sim
um bloco de 8x8 pixels
Figura 17 - Tela para a validaccedilatildeo dos testes com as bibliotecas graacuteficas do componente VGA
34 Recursos Necessaacuterios
A Tabela 24 apresenta os ambientes de desenvolvimento e ferramentas de software utilizadas
e na Tabela 25 as linguagens necessaacuterias Estas ferramentas foram utilizadas em ambiente
Windows Xp
Tabela 24 - Ferramentas de Desenvolvimentos e Ambientes
Software Para que foi Utilizado
Quartus II Para a definiccedilatildeo de qual o modelo de FPGA utilizado compilaccedilatildeo e simulaccedilatildeo e envio Load do NIOS para FPGA
SOPC Para definiccedilatildeo da do processador NIOS II e com quais componentes externos ele ira interagir atraveacutes dos controladores dos respectivos componentes
NIOS II IDE Para implementaccedilatildeo do firmware do processador NIOS II utilizando a linguagem em C
35
Borland C++ Builder Para desenvolvimento de ima interface de comunicaccedilatildeo via caboUSB-
BLASTER para o envio de imagem para o kit
Tabela 25 ndash Linguagens de programaccedilatildeo utilizadas
Linguagem Ferramenta C++ Borland C++ Builder VerilogVHDL Quartus II C NIOS II IDE
35 Viabilidade Teacutecnico-Econocircmica
O valor do projeto esta descrito na Tabela 26
Tabela 26 ndash Relaccedilatildeo dos Custos
DESCRICcedilAtildeO CUSTO APROXIMADO (R$) COMPONENTES ELETROcircNICOS 50000 1 Kit DE2 Cyclone II 35000 1 Monitor de Computador 35000 HORAS TRABALHADAS (400 horas) 750000 CUSTO TOTAL APROXIMADO (R$) 870000
36 Cronograma do Projeto
A tabela 27 contem as informaccedilotildees do cronograma do projeto
Tabela 27 ndash Cronograma de datas e entregas do projeto
Data Atividade a ser apresentada 050307 Entrega das propostas de projeto para avaliaccedilatildeo do colegiado 020407 Entrega das especificaccedilotildees teacutecnicas do projeto aprovado 110607 Entrega do projeto (monografia) e dos testes preliminares do mesmo 060807 Apresentaccedilatildeo preacutevia da implementaccedilatildeo do projeto especificado 011007 Apresentaccedilatildeo do projeto implementado
Qualificaccedilatildeo para a fase final 291007 Segunda apresentaccedilatildeo do projeto implementado para os que natildeo o fizeram no
dia 011006 com decreacutescimo da nota Qualificaccedilatildeo para a fase final
051107 Entrega da documentaccedilatildeo completa em espiral para a banca examinadora em 3 vias contendo a monografia manual teacutecnico manual do usuaacuterio e artigo cientiacutefico
261107 Defesa formal dos projetos com apresentaccedilatildeo oral para a banca examinadora 101207 Entrega da documentaccedilatildeo completa revisada e corrigida encadernada no
padratildeo da biblioteca (capa dura) em duas vias contendo a monografia manual teacutecnico manual do usuaacuterio e artigo cientiacutefico Entrega do CD contendo no formato WEB todo o conteuacutedo dos manuais
36
CAPIacuteTULO 4 ndash ESPECIFICACcedilAtildeO TECNICA
41 Requisitos Miacutenimos
Os requisitos miacutenimos de Hardware satildeo
Funcionamento das interfaces Serial e USB-Blaster
Funcionamento do Kit DE2
PC
Os requisitos miacutenimos de Software
Windows Xp
Quartus II
SOPC
NIOS II IDE
42 Projeto de Hardware
O hardware utilizado nesse projeto inclui componentes presentes na Placa de
Desenvolvimento Nios II - ediccedilatildeo DE2 Cyclone II EP2C35 e principalmente o hardware que seraacute
configurado na FPGA escrito em linguagem de descriccedilatildeo de hardware (HDL)
O um dos principais blocos de hardware eacute o processador NIOS II o Avalon Bus e os
controladores de componentes externos a FPGA e de comunicaccedilatildeo presentes no Kit
37
O software embarcado (firmware) estaraacute rodando nessa arquitetura Eacute uma arquitetura
completa construiacuteda com a ferramenta SOPC Builder da Altera A Figura 18 representa em
blocos os principais componentes dessa arquitetura
Figura 18 ndash Representaccedilatildeo em blocos do hardware do NIOS II
421 Funcatildeo do Touch-Screen
Outro bloco importante eacute o do Touch-Screen esta tela sensiacutevel ao toque pois como esta tela
trabalha com resistecircncia ao ser tocado em uma determinada regiatildeo uma resistecircncia eacute gerada e a
tensatildeo de saiacuteda eacute modificada a alimentaccedilatildeo desta placa eacute proveniente de sua placa controladora
a mesma placa que recebe a tensatildeo de saiacuteda modificada de acordo com a regiatildeo tocada na tela
Para verificar as caracteriacutesticas detalhadas do Touch-Screen e sua placa controlador favor ver
o Capitulo 2
422 Monitor e VGA
O Monitor inicialmente tem apenas o desenho de um botatildeo que ao ser tocado via touch
mudara a cor de toda a tela A imagem exibida no monitor tem uma resoluccedilatildeo de
38
Protoacutetipo das telas para os testes esta na Figura 19 a tela verde quando a touch natildeo eacute tocando
na regiatildeo do botatildeo de OK quando o botatildeo de OK for tocado a tela do monitor mudara de cor
ficando azul
Figura 19 ndash Tela do monitor
No Capitulo 2 estatildeo todas as caracteriacutesticas da pinagem e do conector VGA
423 Comunicaccedilatildeo serial
Entre a placa controladora do Touch-Screen e o FPGA existe uma comunicaccedilatildeo 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 manipulaccedilatildeo da imagem que eacute
mostrada no monitor
No capitulo 2 estatildeo das descriccedilotildees dos pinos e do conector da comunicaccedilatildeo Serial
O pacote serial que eacute transmitido pela placa controladora do touch-screen possui 10 bytes de
comprimento e segue a seguinte sequumlecircncia de envio
[55] [54] [] [] [] [] [] [] [] []
Sequumlecircncia dos bytes
Os dois primeiros bytes identificam o Header do pacote
O terceiro byte eacute 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 agrave posiccedilatildeo do eixo x onde a tela foi tocada
O sexto e o seacutetimo byte correspondem a posiccedilatildeo do eixo y onde a tele foi tocada
O restante os bytes identificam o tail do pacote recepcionado pelo kit DE2
39
424 Comunicaccedilatildeo USB-Blaster
Essencial para envio do projeto desenvolvido para o kit DE2 tambeacutem muito utilizado para o
debug deste projeto
435 Memoacuteria SDRAM
A memoacuteria utilizada para armazenar grandes quantidades de dados eacute a SDRAM (ver detalhes
no Capitulo 2)
Essa memoacuteria eacute muito raacutepida serviu muito bem para armazenar o firmware deste projeto
pois tem o tempo acesso ideal para ler as instruccedilotildees que utilizaram a VGA e tambeacutem eacute raacutepida o
suficiente para fazer a leitura dos dados e disponibilizar na saiacuteda VGA do kit
426 Memoacuteria FLASH
Eacute onde seraacute armazenado o firmware possui espaccedilo suficiente para isso 4MB e uma memoacuteria
mais lenta e por isso natildeo foi usada para armazenar dados para serem jogados na vga do Kit
43 Software
431 Software (Firmware)
O software tem de funccedilatildeo de utilizar as bibliotecas das controladoras dos componentes
externos a fim de controlar estes componentes de acordo com o necessaacuterio para atender o
objetivo do projeto
Ou seja uma tela inicial eacute apresentada e o usuaacuterio ao tocar na nela o kit recebe um pacote via
serial e interpreta a posiccedilatildeo da tela em que foi tocado e logo em seguida envia o resultado deste
toque para o monitor
432 Objetivos
O usuaacuterio 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 accedilatildeo de acordo com a posiccedilatildeo da tela
tocada alterando assim a imagem anterior com o resultado do toque
Interpretar o toque de usuaacuterio na tela touch-screen recepccedilatildeo do pacote via serial da placa
controladora do touch-screen tratamento do pacote e interpretaccedilatildeo das coordenadas x e y do
40
toque Realizaccedilatildeo de alguma accedilatildeo que resultara na alteraccedilatildeo da imagem da tela atual de acordo
com a funccedilatildeo em que as coordenadas foram previamente definidas para o que deve ser feito
432 Funccedilotildees
A Tabela 28 tem as principais funccedilotildees que foram implementadas para o sistema
Tabela 28 ndash Funccedilotildees do sistema firmware
FUNCcedilOtildeES Tela de um pequeno editor de texto Tratamento do sinal recebido da serial devido a um toque na tela Interpretaccedilatildeo do pacote serial e transfomaccedilatildeo para coordenadas x e y Transformaccedilatildeo das posiccedilotildees do toque na tela em alguma accedilatildeo enviando o resultado para a VGA Imagem final disponibilizada ao usuaacuterio de acordo com o toque que foi dado na tela Controlar dispositivos cada dispositivo pode ser controlado pelo seu respectivo contrador atraveacutes de seu endereccedilo base VGA SERIAL USB-BLASTER IO(Leds Switches etc) do Kit DE2
O Firmware do processador NIOS II eacute que realizaraacute a integraccedilatildeo entre hardware com
hardware Com o firmware controlando o NIOS II eacute possiacutevel interagir com os dispositivos
externos a FPGA Tornando possiacutevel a integraccedilatildeo da FPGA com a peliacutecula touch-screen e um
monitor sem a ajuda de um PC a uacutenica ajuda do pc seria para enviar dados de uma imagem para
o Kit DE2
44 Validaccedilatildeo e Testes
Inicialmente os moacutedulos da VGA e comunicaccedilatildeo SERIAL natildeo estavam funicionando
apenas o devido agrave fraca documentaccedilatildeo sobre o kit DE2 foi possiacutevel apenas fazer testes com o
Processador NIOS II pois sobre este existem bastantes documentos e exemplos que podem ser
utilizados
Nesta primeira parte foi possiacutevel testar o NIOS II para controlar o display bototildees e switchs
do kit DE2
Com o NIOS II funcionando completamente foi necessaacuterio porta-lo para o kit DE2 o que foi
simples pois como sabemos esses kits satildeo portaacuteveis entre si apenas mudando a pinagem e a
capacidade da FPGA
Com o Kit DE2 foi possiacutevel fazer os testes necessaacuterios com a comunicaccedilatildeo serial
inicialmente testada via terminal conversando diretamente com o kit foi possiacutevel fazer o
seguinte teste os caracteres que eram entrados via teclado chegavam ao kit via serial e o o
41
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 comdumpexe que eacute facilmente encontrado pelas ferramentas
de pesquisa da web e tambeacutem existem vario outros programas como este e o comdump eacute
utilizado para debug da porta serial do pc conectado diretamente na placa controladora do touch-
screen e foi a peccedila chave para o entendimento do pacote enviado pela placa controladora
Figura 20 - Cumdumpexe programa de debug da porta serial
A explicaccedilatildeo de cada byte do pacote esta explicado no item 423
Apos o entendimento completo da transmissatildeo 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 natildeo 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 ateacute o momento em que
foi testado os meacutetodos proprietaacuterios da Altera para fazer a VGA funcionar os meacutetodos esses
implementados em C
A figura 21 onde contem o teste baacutesico feito que foi a chave principal para o sucesso deste
projeto
42
Como dito no item 332 do projeto foram utilizados as funccedilotildees da controladora VGA esses
meacutetodos 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 eacute utilizado o meacutetodo alt_up_vga_draw_pixel( color int
x int y) onde color eacute a cor do bloco de pixels e x e y satildeo as coordenadas da tela onde o bloco
que seraacute pintado
Para escrever um caractere sobre um bloco de pixels pintado eacute utilizado a funccedilatildeo
alt_up_vga_draw_char_1b( char int x int y) onde char eacute o caractere a ser impresso e x e y satildeo
as coordenadas da tela onde os o caractere eacute impresso
Figura 21 - Teste baisco do funcionamento do componente VGA do kit DE2
43
CAPIacuteTULO 5 ndash VALIDACcedilAtildeO E RESULTADOS
Os resultados foram os melhores possiacuteveis pois com a utilizaccedilatildeo dos IP CORE
ldquocontroladorasrdquo dos componentes externos como VGA e SERIAL e seus meacutetodos de para
controle eacute possiacutevel controlar facilmente esses moacutedulos atraveacutes do firmware desenvolvido para o
processador NIOS que consegue realizar operaccedilotildees transparentes acessando dos meacutetodos de
controle dos moacutedulos
Apos os testes baacutesicos 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 baacutesico de editor de texto
A figura 22 mostra um teste utilizando os meacutetodos de controle disponiacuteveis para o IP CORE
da VGA para primeiramente fazer o menu da aplicaccedilatildeo desenvolvido em na linguagem C
Figura 22 ndash Menu baacutesico do editor de texto
Para desenhar o menu da figura acima foi utilizado os meacutetodos proprietaacuterios de controle da
VGA citados no capitulo 4 e tambeacutem estruturas de repeticcedilatildeo para que a tela fosse varrida e os
pixels desenhados nos respectivos lugares da tela bem como os caracteres
Na figura 23 eacute definida a seguinte estrutura em C para representar de um botatildeo
Figura 23 - Estrutura em C para representar um botatildeo
44
A figura 24 eacute a declaraccedilatildeo dos bototildees que seratildeo utilizados pelo aplicativo editor de texto
para comprovar o funcionamento do controle da interface touch-screen
Apenas o que esta dentro da marcaccedilatildeo quadrada representa os bototildees do menu da figura 23
e o restante satildeo os bototildees do teclado do editor de texto
Figura 24 - Declaraccedilatildeo dos bototildees do menu
45
A figura 25 representa o meacutetodo drawnButtonUp responsaacutevel por desenhar os bototildees na tela
de acordo com as posiccedilotildees em que foram declarados os bototildees deste meacutetodo satildeo desenhados
para parecerem que estatildeo ldquolevantadosrdquo e natildeo pressionados
Note que foram utilizados os meacutetodos proprietaacuterios de controle da VGA
alt_up_vga_draw_pixel pra pitar os pixels e alt_up_vga_draw_char_b1 para desenhar caracteres
como jaacute foi especificado no item 44 do projeto
Figura 25 ndash Meacutetodo drawButtonUp
46
O meacutetodo que desenha o caption do botatildeo se chama drawButtonText desenha os caracteres
em cima dos bototildees natildeo importa se o botatildeo esta pressionado ou natildeo
A figura 26 mostra como este meacutetodo foi implementado e ele eacute chamado no final de cada
meacutetodo onde algum tipo de botatildeo eacute desenhado quando o meacutetodo que desenha o botatildeo normal
quanto o pressionado e ateacute mesmo o do teclado
Figura 26 ndash Meacutetodo que escreve o caption de cada botatildeo
47
A figura 27 mostra o meacutetodo drawButtonDown que desenha o botatildeo pressionado ou seja
quando o usuaacuterio pressiona a regiatildeo correspondente a um botatildeo do menu no touch-screen o
mesmo redesenharaacute o botatildeo parecendo um efeito de botatildeo afundado note que no final do
meacutetodo novamente eacute chamado o meacutetodo drawButtonText que reescreveraacute o caption do botatildeo
como mostra o meacutetodo da figura 26 e esta ilustrado na figura 28
Figura 27 ndash Meacutetodo que desenha o botatildeo pressionado
48
Dependendo da aacuterea do menu que o usuaacuterio pressionar no touch-screen causar o efeito de
pressionado como mostra a figura 28
Figura 28 ndash Efeito do botatildeo de menu apertado
Na figura 29 eacute a representaccedilatildeo de quando a aacuterea correspondente ao botatildeo ldquoamarelordquo eacute
pressionada
Apos estes testes baacutesicos comprovando o funcionamento da interface graacutefica para o usuaacuterio
foi definido o restante dos componentes da tela que eacute constituiacutedo de um prompt e um teclado
qwerty que foi essencial para comprovar o perfeito funcionamento do controle da interface
touch-screen
49
51 Interface Grafica Final
A figura 29 mostra a interface final que o usuaacuterio teraacute para poder verificar o funcionamento
do controle da interface touch-screen
Figura 29 ndash Interface final touch-screen do usuaacuterio
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
511 Descriccedilatildeo do editor de texto
O menu possui 4 botoes cada um com sua respectiva funcionalidade quando o usuario
pressiona a area do botatildeo ldquoapagarrdquo uma vez entatildeo um carectere do prompt eacute apagado Quando eacute
precionado a area correspondente ao botatildeo ldquoResetrdquo todo o conteudo do prompt seraacute apagado e o
plano de fundo retornaraacute a cor branca Quando o botatildeo ldquoamarelordquo eacute pressionado o fundo da tela
passa a ser amarelo e o mesmo acontece se o usuario precionar o botatildeo verde tornando o cor de
fundo verde
50
O teclado possui 29 teclas sendo duas delas que equivalem ao ENTRA ldquoENTrdquo e ao
SPACE ldquoSPCrdquo Quando o usuario pressiona a area correspondente a algum botatildeo do teclado o
mesmo muda sua cor para azul e o seu caractere eacute disponibilizado no prompt
Essas funcionalidades nada mais satildeo do que um bom exemplo de como funciona
corretamente o controle da interface touch-screen
52 Prompt e o Teclado
A estrutura feita na linguagem C que define o prompt da figura 28 esta representado na
figura 30
Figura 30 ndash Estrutura em C para representar o prompt
A figura 31 mostra o metodo drawPrompt utilizado para desenhar na tela o prompt
Figura 31 ndash Meacutetodo que desenha o prompt
51
A estrutura do teclado eacute a mesma utilizada pela figura 23 e tambem eacute criado satildeo
inicializados na figura 24
O restante as implementaccedilotildees estatildeo disponiveis no cd deste documento
Quando algum botatildeo do teclado eacute pressionado sua cor muda para azul e sua letra
correspondente eacute escrita o prompt
A figura 32 ilustra quando o usuaacuterio aperta a letra lsquotrsquo na peliacutecula touch-screen
Figura 32 - Teste do prompt e o teclado
52
53 Controle da Interface Touch-Screen
Depois do todos os testes com o processador NIOS e a integraccedilatildeo do mesmo com os
moacutedulos externos como a porta SERIAL e a saiacuteda VGA eacute possiacutevel utilizando o touch-screen
criar uma interface amigaacutevel e faacutecil de usar para o usuaacuterio utilizando um firmware capaz de
interpretar os sinais via serial vindo da controladora do touch ao detectar que um toque foi dado
pelo usuaacuterio e realizar algumas accedilotildees que neste caso se comportam como um editor de texto
baacutesico
A figura 33 mostra como foi validado este projeto e seus moacutedulos controlando uma
interface touch-screen para chegar no resultado abaixo digitado pelo usuaacuterio comprovando o
funcionamento e viabilidade deste projeto
Figura 33 ndash 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 mudanccedilas podendo ser alterado rapidamente o tipo de
aplicaccedilatildeo ou integrado rapidamente com outro projeto
53
CAPIacuteTULO 6 - CONCLUSAtildeO
Uma das principais dificuldades no desenvolvimento deste projeto foi fazer o levantamento
da documentaccedilatildeo sobre o processador NIOS e os moacutedulos externos a FPGA do Kit DE2 Como
natildeo foi feito algum projeto antes que utilizasse a interface VGA e a SERIAL do Kit DE2 levou-
se muito tempo ateacute conseguir adquirir e ordenar o conhecimento que foi sendo adquirido ateacute
conseguir dar os primeiros passos e realizar os primeiros testes com a VGA e a SERIAL Outro
grande obstaacuteculo foi ter de descobrir que para que o NIOS controlasse os moacutedulos externos a
FGPA fosse necessaacuterio copiar os arquivos c e h dos respectivos componente para dentro do
projeto
Mas depois de todos os problemas com os moacutedulos externos solucionados cada modulo do
projeto foi sendo desenvolvido separadamente ateacute seu total funcionamento Natildeo tive dificuldades
com a linguagem da programaccedilatildeo pois o Firmware do processador NIOS eacute o C a qual mais tive
contato na faculdade
Outro desafio foi fazer a peliacutecula 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
peliacutecula natildeo 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 possiacutevel
comeccedilar a fazer os testes necessaacuterios para prosseguir com o projeto aprender como o a peliacutecula
identifica um toque e manda este sinal para a controladora e a controladora transforma este sinal
em um sinal serial que eacute 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 accedilotildees
que as coordenadas jaacute estatildeo previamente calibradas no firmware para fazer bem como mudar de
cor a tela fazer o efeito de um botatildeo subindo e descendo etc
Varias vezes o projeto parou de funcionar entatildeo 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 memoacuteria abundante etc uma das
facilidades eacute a faacutecil alteraccedilatildeo do projeto podendo ser integrado a outro ou ateacute mesmo alterado
para realizar outros tipos de accedilotildees com o touch-screen
Existem vaacuterios melhoramentos que podem ser executados no projeto um deles eacute tentar
interpretar de uma maneira diferente os valores do eixo y pois do jeito que esta a resoluccedilatildeo do
eixo y esta muito baixa dificultando o reconhecimento de toques em aacutereas pequenas Talvez a
inclusatildeo de mais alguns bytes no pacote de leitura da serial resolva o problema
54
Uma ideacuteia para um proacuteximo projeto que use a interface touch-screen poderia ser a
integraccedilatildeo com o projeto do nosso colega Roberto Junqueira ou a desenvolvimento de uma
placa controladora para o touch-screen
Este trabalho eacute uma modesta contribuiccedilatildeo para o uso de FPGAs e do processador embarcado
NIOS implementado em VHDL pela Altera que acredito que vai abrir vaacuterios caminhos pois
com este projeto alguns caminhos ficaram mais faacuteceis de percorrer daqui para a frente
55
CAPIacuteTULO 7 - REFEREcircNCIAS BIBLIOGRAacuteFICAS
AMORE Roberto drsquo VHDL Descriccedilatildeo e Sintese de Circuitos Rio de Janeiro ed LTC
2005
Elotouch Touch-Screen e Controladora Descriccedilatildeo do funcionamento e descriccedilatildeo
tecnologia Touch-Screen lthttpwwwelotouchcombrgt Acesso em fevereiro de 2007
ALTERA University Program IP Cores Instalaccedilatildeo de IP Cores e referencias sobre os
componentes dos kits DE1 e DE2 Disponivel em lthttpwwwalteracomeducationunivip-
coresunv-ip-coreshtmlgt Acesso em abril de 2007
ALTERA NIOS II Documentaccedilatildeo sobre o pprocessador embracado NIO II Disponivel
em lthttpwwwalteracomproductsipprocessorsipm-indexjspgt Acesso em Abril de 2007
ALTERA Development amp Education Board 2 (DE2) Manual do usuario Disponivel no
de que acompanha o Kit DE2 ltDE2_user_manualDE2_UserManualpdfgt Acesso em
fevereiro de 2007
AGRADECIMENTOS
Primeiramente agradeccedilo a Deus que me proporcionou a oportunidade e vontade de chegar
ateacute aqui realizar este projeto e concluir mais uma etapa na minha vida
Aos meus pais Hildeberto Lopes Filho e Naria Maria Martins Lopes pelo esforccedilo que
fizeram para que hoje eu pudesse estar concluindo este curso de graduaccedilatildeo e principalmente pelo
amor valores e o apoio em todos os momentos dessa caminhada
Agrave minha noiva Ghiovandra que sempre acreditou no meu trabalho e a agradeccedilo por ter
aguumlentado meu mau humor e stress durante todo o curso e tambeacutem nunca me deixou desistir
Ao meu orientador professor e amigo Valfredo Pilla Junior pela ideacuteia do projeto por
acreditar e sempre estar disposto a ajudar natildeo apenas nesse projeto mas em outras pesquisas
acadecircmicas Agradeccedilo
E aos professores do curso de Engenharia da Computaccedilatildeo da Unicenp responsaacuteveis diretos
pela minha formaccedilatildeo profissional
RESUMO
Com o avanccedilo tecnoloacutegico dos dispositivos reconfiguraacuteveis principalmente as FPGAs a
realizaccedilatildeo de updates em hardware foi extremamente facilitada Desta maneira natildeo haacute a
necessidade de intervenccedilatildeo fiacutesica facilitando principalmente o trabalho de projetistas
A evoluccedilatildeo do mundo eacute constante tambeacutem podemos evoluir constantemente os sistemas
atraveacutes do uso das FPGAs correccedilotildees e alteraccedilotildees podem ser feitas simuladas em software
configuradas e testadas em laboratoacuterio e imediatamente apoacutes serem enviadas para campo e
implantados nos sistemas em funcionamento sem interrupccedilotildees longas eou trabalhosas
E com essas facilidades de reconfigurar o hardware desenvolveu-se um controle sobre uma
interface Touch-Screen e sua comunicaccedilatildeo com a FPGA para permitir que o usuaacuterio mude as
caracteriacutesticas de uma determinada imagem (Interface de Vidro) no monitor atraveacutes do toque
todo o controle entre os blocos loacutegicos e funcionais eacute 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 isnt 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 andor 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
SUMAacuteRIO
CAPIacuteTULO 1 - INTRODUCcedilAtildeO 12
CAPIacuteTULO 2 ndash FUNDAMENTACcedilAtildeO TEOacuteRICA 14
21-Touch Screen 14
211 Placa e chip da Controladora do Touch-Screen 16
212 Pinagens e descriccedilatildeo do Touch-Screen e da Placa Controladora 17
22-Video 18
23-Kit Altera Development amp Education Board 1 (Kit DE2) 20
231-Layout e Componentes 20
232 Diagrama de Blocos do Kit DE2 21
233 Endereccedilo das Pinagens dos Componentes usados no Projeto 24
2331 PushButtons 24
2332 Modulo dos Displays de 7 Segmentos 25
2333 VGA 27
CAPIacuteTULO 3 ndash ESPECIFICACcedilAtildeO TECNICA 29
31 Descriccedilatildeo de Software 29
312 Diagrama de Blocos do Software 29
312 Modulo do PC 30
32 Descriccedilatildeo de Hardware 30
321 Modulo Touch-Screen 30
322 Modulo FPGA 30
3221 O Processador NIOS II 31
3222 Firmware para o NIOS II 31
323 Configuraccedilatildeo da FPGA via JTAG 31
324 Comunicaccedilatildeo entre FPGA e o Touch-Screen 32
33 Especificaccedilatildeo de Validaccedilatildeo 32
331 Validaccedilatildeo de Hardware 32
332 Validaccedilatildeo de Software 33
34 Recursos Necessaacuterios 34
35 Viabilidade Teacutecnico-Econocircmica 35
36 Cronograma do Projeto 35
CAPIacuteTULO 4 ndash ESPECIFICACcedilAtildeO TECNICA 36
41 Requisitos Miacutenimos 36
42 Projeto de Hardware 36
421 Funcatildeo do Touch-Screen 37
422 Monitor e VGA 37
423 Comunicaccedilatildeo serial 38
424 Comunicaccedilatildeo USB-Blaster 39
435 Memoacuteria SDRAM 39
426 Memoacuteria FLASH 39
43 Software 39
431 Software (Firmware) 39
432 Objetivos 39
432 Funccedilotildees 40
44 Validaccedilatildeo e Testes 40
CAPIacuteTULO 5 ndash VALIDACcedilAtildeO E RESULTADOS 43
51 Interface Grafica Final 49
511 Descriccedilatildeo do editor de texto 49
52 Prompt e o Teclado 50
53 Controle da Interface Touch-Screen 52
CAPIacuteTULO 6 - CONCLUSAtildeO 53
CAPIacuteTULO 7 - REFEREcircNCIAS BIBLIOGRAacuteFICAS 55
LISTA DE FIGURAS
Figura 1 ndash Touch-Screen final 14 Figura 2 ndash Mascara 15 Figura 3 ndash Vidro 15 Figura 4 ndash Chip COACh IIs 16 Figura 5 ndash Placa Controladora 17 Figura 6 ndash Pinos do Touch-Screen 17 Figura 7 ndashConector para o touch da placa controladora 17 Figura 8 ndash Conector VGA femea do kit DE2 18 Figura 9 ndash O kit DE2 20 Figura 10 ndash Diagrama de Blocos do KIT DE2 21 Figura 11 ndash Os 4 PushButtons do DE2Key[30] 24 Figura 12 ndash Modulo de displays de 7 segmentos 25 Figura 13 ndash Index de um display 25 Figura 14 ndash Temporizaccedilatildeo horizontal da VGA 27 Figura 15 - Moacutedulos do projeto 29 Figura 16 ndash Conector da interface serial do kit DE2 32 Figura 17 - Tela para a validaccedilatildeo dos testes com as bibliotecas graacuteficas do componente VGA 34 Figura 18 ndash Representaccedilatildeo em blocos do hardware do NIOS II 37 Figura 19 ndash Tela do monitor 38 Figura 20 - Cumdumpexe programa de debug da porta serial 41 Figura 21 - Teste baisco do funcionamento do componente VGA do kit DE2 42 Figura 22 ndash Menu baacutesico do editor de texto 43 Figura 23 - Estrutura em C para representar um botatildeo 43 Figura 24 - Declaraccedilatildeo dos bototildees do menu 44 Figura 25 ndash Meacutetodo drawButtonUp 45 Figura 26 ndash Meacutetodo que escreve o caption de cada botatildeo 46 Figura 27 ndash Meacutetodo que desenha o botatildeo pressionado 47 Figura 28 ndash Efeito do botatildeo de menu apertado 48 Figura 29 ndash Interface final touch-screen do usuaacuterio 49 Figura 30 ndash Estrutura em C para representar o prompt 50 Figura 31 ndash Meacutetodo que desenha o prompt 50 Figura 32 - Teste do prompt e o teclado 51 Figura 33 ndash Funcionamento do controle da interface Touch-Screen 52
LISTA DE TABELAS
Tabela 1 ndash Caracteriacutesticas da placa controladora 16 Tabela 2 ndash Pinagem do conector que faz interface entre o touch e a controladora 18 Tabela 3 ndash Descriccedilatildeo dos pinos da VGA 18 Tabela 4 ndash Lista dos componentes do Kit DE2 (DE2_UserManualpdf contrado no cd do kit) 20 Tabela 5 ndash Detalhes do FPGA Cyclone II 22 Tabela 6 - Descriccedilatildeo das configuraccedilotildees que satildeo feitas atraveacutes da Serial e Usb-Blaster 22 Tabela 7 ndash Descriccedilatildeo do Bloco da SRAM 22 Tabela 8 - Descriccedilatildeo do Bloco da SDRAM 22 Tabela 9 ndash Descriccedilatildeo da Memoria Flash 23 Tabela 10 - Descriccedilatildeo do SD card socket 23 Tabela 11 - PushButton switches 23 Tabela 12 - Descriccedilatildeo das entradas de Clocks 23 Tabela 13 - Descriccedilatildeo do Aacuteudio CODEC 23 Tabela 14 ndash Descriccedilatildeo da saiacuteda VGA DAC 24 Tabela 15 ndash Descriccedilatildeo da Serial Port e PS2 24 Tabela 16 ndash Descriccedilatildeo dos conectores de expansatildeo de 40 pinos 24 Tabela 17 ndash Pinos da FPGA referentes a cada PushButton 25 Tabela 18 ndash Pinos da FPGA referentes a cada segmento dos Displays do modulo 26 Tabela 19 ndash Especificaccedilatildeo da temporizaccedilatildeo horizontal da VGA 27 Tabela 20 ndash Especificaccedilatildeo da temporizaccedilatildeo vertical da VGA 27 Tabela 21 ndash Pinos da FPGA referentes a saiacuteda do Conector VGA do Kit 28 Tabela 22 ndash Moacutedulos dos componentes e suas descriccedilotildees 31 Tabela 23 ndash Pinos da FPGA referente agrave pinagem da interface Serial 32 Tabela 24 - Ferramentas de Desenvolvimentos e Ambientes 34 Tabela 25 ndash Linguagens de programaccedilatildeo utilizadas 35 Tabela 26 ndash Relaccedilatildeo dos Custos 35 Tabela 27 ndash Cronograma de datas e entregas do projeto 35 Tabela 28 ndash Funccedilotildees do sistema firmware 40
LISTA DE SIGLAS
CRT - Catodic Ray tube
DE2 - Development amp Educations 1
ES - EntradaSaiacuteda
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 - Nuacutecleo de Ciecircncias Exatas e Tecnoloacutegicas
PC - Personal Computer
PDA - Personal Digital Assistant
PLL - Pulse Logic Loop
SDRAM - Static Dinamic Randomic Acess Memory
TTL - Transistor-transistor Logic
UNICENP - Centro Universitaacuterio Positivo
USB - Universal Serial Bus
USP - Universidade de Satildeo Paulo
VGA - Viacutedeo 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 SIacuteMBOLOS
- ohm
MHz - Mega Hertz
Hz - Hertz
V - Volts
11
12
CAPIacuteTULO 1 - INTRODUCcedilAtildeO
A computaccedilatildeo reconfiguraacutevel vem sendo utilizada em larga escala para projetos de
hardware que necessitem de um grande poder de processamento Neste campo um dispositivo
muito utilizado eacute a FPGA (Field-Programmable Gate Array)
As FPGArsquos satildeo circuitos de hardware que podem ser modificados praticamente em
qualquer momento durante o uso As FPGArsquos consistem em array de blocos loacutegicos
configuraacuteveis que implementam funccedilotildees loacutegicas 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 mudanccedilas raacutepidas no hardware
Em microprocessadores de uso geral se tem um hardware que natildeo pode ser modificado fixo
mas no FPGA essa mudanccedila eacute bastante simples e raacutepida feita via software
Este projeto teve sua proposta lanccedilada a partir da ideacuteia concedida pelo Prof Valfredo Pilla
Junior de interface Touch-Screen
O projeto eacute sobre o controle de uma interface com uma peliacutecula Touch-Screen onde eacute
possiacutevel que o usuaacuterio ao tocar uma peliacutecula sensiacutevel ao toque o sistema desenvolvido possa
realizar algum tipo de alteraccedilatildeo na imagem apresentada em um monitor que se dispotildee atraacutes do
Touch-Screen
O objetivo foi desenvolver um sistema capaz de receber e manipular a aquisiccedilatildeo dos dados
gerados pela placa controladora atraveacutes toque na peliacutecula Touch-Screen que estaraacute na frente da
tela de um monitor converter estes dados realizar uma alteraccedilatildeo na tela inicialmente
apresentada e disponibilizar o resultado da alteraccedilatildeo atualizando a tela do monitor
O hardware do sistema eacute basicamente composto na parte da aquisiccedilatildeo por uma peliacutecula
Touch-Screen e uma placa controladora da proacutepria peliacutecula recepccedilatildeo e processamentos feitos no
Kit DE2 (Development amp Education 1) Board que enviara o resultado atraveacutes da saiacuteda VGA
(Viacutedeo Graphics Array) para um monitor CRT (Catodic Ray tube)
Este sistema eacute justificado pois as interfaces intuitivas com telas Touch-Screen satildeo
utilizadas em uma ampla gama de mercados
Por exemplo
Comeacutercio Realizar um atendimento de forma raacutepida e faacutecil eacute objetivo da automaccedilatildeo 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 usuaacuteriomaacutequina de grandes complexos
equipamentos devido agrave eliminaccedilatildeo do teclado do mouse e de outros perifeacutericos de um ambiente
industrial evitando distraccedilotildees em um ambientes geralmente muito agressivo
13
Medicina Os sistemas que usam touch simplificam os sofisticados sistemas meacutedicos reduzem as
possibilidades de erros e proporcionam um mecanismo de entrada de dados mais eficiente que
qualquer outro perifeacuterico
Educaccedilatildeo Hoje o touch esta se tornando a interface de treinamento mais popular em todas as
fases do aprendizado desde a preacute escola jardim de infacircncia e preparaccedilatildeo profissional eliminando
a frustraccedilotildees de crianccedilas ao utilizar o mouse ou teclado
E aplicaccedilotildees com o objetivo de diminuir o tempo de resposta aumentar a produtividade
proporcionar produtos e serviccedilos de maior qualidade e aumentar os lucros Por exemplo realizar
um atendimento de forma raacutepida e faacutecil eacute objetivo da automaccedilatildeo 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 serviccedilos intuitivos e interativos de uma interface
Touch proporcionam confiabilidade ao cliente que eacute exatamente o que o seu negoacutecio precisa para
o crescimento e o sucesso em longo prazo (elotouch 2007)
Este projeto no futuro poderaacute ser integrado com outro projeto formando assim um sistema
parecido com um PDA (Personal Digital Assistant)
14
CAPIacuteTULO 2 ndash FUNDAMENTACcedilAtildeO TEOacuteRICA
21-Touch Screen
Um Touch-Screen que em portugues quer dizer ldquotela sensivel ao toquerdquo estatildeo disponiacuteveis
para uma grande variedade de uso desde pontos de vendas ateacute quiosques equipamentos meacutedicos
e industriais e sistemas de jogos As vantagens das soluccedilotildees touch incluem precisatildeo
transparecircncia e facilidade de uso e instalaccedilatildeo
O Touch-Screen usado neste projeto eacute o modelo de quatro fios resistivos AT4 da empresa
Elo TouchSystem (wwwelotouchcombr)
A tecnologia resistiva touch de quatro fios consta de uma tela de vidro coberto
uniformemente por camadas eletricamente condutivas e resistivas Uma lacircmina de poliester eacute
hermeticamente estendida sobre a parte superior do vidro e separada por minuacutesculos espaccediladores
(pontos) transparentes e isolantes A parte externa dessa lacircmina eacute uma peliacutecula duraacutevel e firme a
parte interna conteacutem uma camada condutiva Durante seu funcionamento uma corrente eleacutetrica
se propaga atraveacutes do touchscreen Ativada por um miacutenimo toque a peliacutecula 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 descriccedilatildeo das
camadas que compoem o Touch-Screen
Figura 1 ndash Touch-Screen final (Adaptado com as dimensotildees da aplicaccedilatildeo do editor de texto para validar este projeto)
15
Figura 2 ndash Mascara
(Adaptado do site elotouchcombr)
1 Camada soacutelida resistente a riscos (tipo anti-reflexiva) 3 Camada ITO
2 Peliacutecula de Poliester 4 Contatos de prata
Figura 3 ndash Vidro (Adaptado do site elotouchcombr)
1 Contatos de prata 3 Camada ITO(Transparent Conducting Oxide)
2 Pontos espaccediladores 4 Camada de Vidro
O circuito da controladora aplica uma tensatildeo atraveacutes da superfiacutecie do vidro As tensotildees no
ponto de contato constituem a representaccedilatildeo analoacutegica da superfiacutecie de toque A controladora
traduz essas tensotildees e transmite-os para o computador para processaacute-los
16
211 Placa e chip da Controladora do Touch-Screen
O COACh IIs (Controller On A Chip second generation) eacute compacto econocircmico chip
controlador para as aplicaccedilotildees com o Touch-Screen AT4 de 4 fios resistivos Opera em 33V e
em 5V O tamanho compacto baixa voltagem para operar e comsumo de energia eacute a melhor
soluccedilatildeo para OEMrsquos (original equipment manufacturer) pois pode contar com estabilidade
confiabilidade e desempenho de componentes com touch para aplicaccedilotildees embarcadas ou
aplicaccedilotildees portaacuteveis[elotouchcom] A Figura 4 ilustra o chip
Figura 4 ndash Chip COACh IIs (Adaptado do site elotouchcom)
A placa controladora que integra o touch-screen em outros moacutedulos possui as caracteriacutesticas
descritas na Tabela 1 e a Figura 5 ilustra a placa controladora
Tabela 1 ndash Caracteriacutesticas da placa controladora
Alimentaccedilatildeo 5 VDC nominal (45)
Interface-Serial (Serial RS-232) Full Duplex
Paracircmetros de Comunicaccedilatildeo Baud Rate 9600 and 19200 8 Bits de dados 1 bit de parada
Interface USB Quando estiver comunicando via USB a Serial estaraacute desabilitada E a placa natildeo eacute alimentada pela USB
Resoluccedilatildeo de toque 4096x4096 independente do tamanho da peliacutecula touch-screen
Tempo de conversatildeo do toque 10ms
17
Figura 5 ndash Placa Controladora (Adaptado do site elotouchcom)
212 Pinagens e descriccedilatildeo do Touch-Screen e da Placa Controladora
A Figura 6 ilusta os pinos do Touch-Screen que satildeo ligados ao conector da placa
controladora
Figura 6 ndash Pinos do Touch-Screen (Adaptado do site elotouchcom)
A Figura 7 mostra o conector da placa controladora e as respectivas pinagens
Figura 7 ndashConector para o touch da placa controladora (Adaptado do site elotouchcom)
18
A Tabela 2 descreve os pinos do conector para o touch da placa controladora
Tabela 2 ndash Pinagem do conector que faz interface entre o touch e a controladora
Pino
Nome do Sinal Desciccedilatildeo do sinal
1 X+ Entrada de tensatildeo positiva referente ao eixo X da tela 2 Y+ Entrada de tensatildeo positiva referente ao eixo Y da tela 3 X- Entrada de tensatildeo negativa referente ao eixo X da tela 4 Y- Entrada de tensatildeo negativa referente ao eixo Y da tela
22-Video
Eacute usado um monitor CRT convencional o qual apresentaraacute uma imagem criada atraveacutes as
bibliotecas graficas proprietarias da ALTERA esta imagem representa um menu com botoes e e
que atravez da manipulaccedilatildeo dos metodos das bibliotecas os resultados satildeo disponibilizados na
saida VGA do kit dependendo do botatildeo da imagem que for tocada atravez do touch alguma accedilatildeo
de alteraccedilatildeo na imagem seraacute atulalizada na saida vga
A Figura 8 ilustra o conector (fecircmea) da saiacuteda VGA do kit DE2
Figura 8 ndash Conector VGA femea do kit DE2
E na Tabela 3 a descriccedilatildeo de cada pino bem como sua direccedilatildeo
Tabela 3 ndash Descriccedilatildeo dos pinos da VGA
Pin
Name Dir Description
1 RED
Red Video (75 ohm 07 V p-p)
2 GREEN
Green Video (75 ohm 07 V p-p)
3 BLUE
Blue Video (75 ohm 07 V p-p)
4 ID2
Monitor ID Bit 2
5 GND
Ground
6 RGND
Red Ground
7 GGND
Green Ground
8 BGND
Blue Ground
19
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
20
23-Kit Altera Development amp Education Board 1 (Kit DE2)
231-Layout e Componentes
Uma fotografia do Kit DE2 eacute mostrado na Figura 9 onde se ve a aparencia do kit e as
indicaccedilotildees das localizaccedilatildeo dos componentes e conectores
Figura 9 ndash O kit DE2 (DE2_UserManualpdf 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 eacute listado os componentes fornecidos na placa do Kit DE2
Tabela 4 ndash Lista dos componentes do Kit DE2 (DE2_UserManualpdf contrado no cd do kit)
1 Altera Serial Configuration device ndash EPCS4
2 USB Blaster (on board) for programming and user API control both JTAG and Active 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
21
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
PS2 mousekeyboard connector
17
Two 40-pin Expansion Headers with diode protection
18
Powered by either a 75V DC adapter or a USB cable
232 Diagrama de Blocos do Kit DE2
Figura 10 ndash Diagrama de Blocos do KIT DE2 (DE2_UserManualpdf contrado no cd do kit)
22
A Tabela 5 mostra a informaccedilatildeo detalhada do Bloco Cyclone II FPGA 2C20 mostrado na
Figura 10
Tabela 5 ndash Detalhes do FPGA Cyclone II
FPGA Cyclone II 2C35
18752 LErsquos
52 M4K RAM blocks 240K total RAM bits 26 embedded multipliers 4 PLLrsquos 315 user IO pinrsquos FineLine BGA 484-pin package
A Tabela 6 mostra a informaccedilatildeo detalhada do Bloco do dispositivo de configuraccedilatildeo Serial e
circuito Usb-Blaster
Tabela 6 - Descriccedilatildeo das configuraccedilotildees que satildeo feitas atraveacutes da Serial e Usb-Blaster
Configuraccedilatildeo do dispositivo Serial e do Circuito Usb-Blaster Configuraccedilatildeo do dispositivo serial Altera EPCS4 On-Board Usb-Blaster
para Controle de API de usuaacuterio e programaccedilatildeo
JTAG e AS satildeo os modos do programaccedilatildeo suportados
A Tabela 7 mostra a descriccedilatildeo do Bloco da SRAM
Tabela 7 ndash Descriccedilatildeo do Bloco da SRAM
SRAM 512-Kbyte Static RAM memory chip Organizado em 256K x 16 bits Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 8 mostra a descriccedilatildeo do Bloco da SDRAM
Tabela 8 - Descriccedilatildeo do Bloco da SDRAM
SDRAM 8-Mbyte Single Data Rate Synchronous Dynamic RAM memory chip Organizado em 1M x 16 bits x 4 Banks Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
23
A Tabela 9 mostra a descriccedilatildeo do Bloco Memory Flash
Tabela 9 ndash Descriccedilatildeo da Memoria Flash
Memory Flash
4-Mbyte NAND Flash memory 8-bit data bus Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 10 mostra a descriccedilatildeo do Bloco SD card socket
Tabela 10 - Descriccedilatildeo do SD card socket
SD card socket Fornece o modo SPI para o acesso ao cartatildeo SD Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 11 mostra a descriccedilatildeo 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) Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 12 mostra a descriccedilatildeo dos Clock inputs
Tabela 12 - Descriccedilatildeo das entradas de Clocks
Clock inputs Oscilador de 50 Mhz Oscilador 27 Mhz Entrada para clock
externo
A Tabela 13 mostra a descriccedilatildeo do Aacuteudio CODEC
Tabela 13 - Descriccedilatildeo do Aacuteudio CODEC
Aacuteudio CODEC 4-Mbyte NAND Flash memory 8-bit data bus Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
24
A Tabela 14 mostra a descriccedilatildeo do Bloco VGA DAC
Tabela 14 ndash Descriccedilatildeo da saiacuteda VGA DAC
VGA
DAC
Usa 4 bits DAC para cada cor (RGB) Com 15 pinos no conector VGA convencional (fecircmea) Suporta uma resoluccedilatildeo de 640 x 480 com um refresh de ateacute 100Hz Pode ser usando com o FPGA Cyclone II para implementar um Encoder para TV
A Tabela 15 mostra a descriccedilatildeo do Bloco Serial Ports amp PS2
Tabela 15 ndash Descriccedilatildeo da Serial Port e PS2
Serial Ports amp PS2 Uma porta RS-232
Uma posta PS2 Um conector Serial para a porta do RS-232 Conector PS2 para conectar um mouse ou teclado ao DE2
A Tabela 16 mostra a descriccedilatildeo do Bloco dos Two 40 - pin expansion headers
Tabela 16 ndash Descriccedilatildeo dos conectores de expansatildeo de 40 pinos
Two 40 - pin expansion headers 72 pinos de IO do Clyclone II bem como 8 power e groundrsquos satildeo trazidos aos 2 conectores de expansatildeo de 40 pinos cada Os conectores de 40 pinos tambeacutem aceitam os cabos IDE de 40 pinos Proteccedilatildeo resistiva eacute fornecida
233 Endereccedilo das Pinagens dos Componentes usados no Projeto
2331 PushButtons
A Figura 11 mostra uma foto dos PushButtons do kit Key[30] a ordem eacute o button da
esquerda eacute o mais significativo e o mais de direita o menos signigicativo
Figura 11 ndash Os 4 PushButtons do DE2Key[30] (DE2_UserManualpdf contrado no cd do kit)
25
A Tabela 17 mostra os pinos da FPGA aos PushButtons
Tabela 17 ndash Pinos da FPGA referentes a cada PushButton (DE2_UserManualpdf contrado no cd do kit)
2332 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 ndash Modulo de displays de 7 segmentos (DE2_UserManualpdf encontrado no cd do kit)
Figura 13 ndash Index de um display (DE2_UserManualpdf encontrado no cd do
kit)
26
A Tabela 18 mostra os pinos da FPGA referente a cada segmento dos displays de 7
segmentos do modulo
Tabela 18 ndash Pinos da FPGA referentes a cada segmento dos Displays do modulo
27
2333 VGA
A Figura 14 esta em forma de onda da temporizaccedilatildeo horizontal e vertical da VGA do Kit
DE2
Figura 14 ndash Temporizaccedilatildeo horizontal da VGA
A Tabela 19 mostra a especificaccedilatildeo da temporizaccedilatildeo horizontal da VGA
Tabela 19 ndash Especificaccedilatildeo da temporizaccedilatildeo horizontal da VGA
A Tabela 20 mostra a especificaccedilatildeo da temporizaccedilatildeo vertical da VGA
Tabela 20 ndash Especificaccedilatildeo da temporizaccedilatildeo vertical da VGA
28
A Tabela 21 mostra os pinos da FPGA referente a cada pino de saida do conector VGA do
Kit DE2
Tabela 21 ndash Pinos da FPGA referentes a saiacuteda do Conector VGA do Kit
29
CAPIacuteTULO 3 ndash ESPECIFICACcedilAtildeO TECNICA
Nesse capiacutetulo tem-se uma descriccedilatildeo dos principais moacutedulos do projeto Satildeo eles Software
Firmware e Hardware
Inicialmente eacute apresentada a visatildeo geral do sistema e a descriccedilatildeo funcional de cada moacutedulo
A Figura 15 apresenta o diagrama em blocos do sistema
Figura 15 - Moacutedulos do projeto
31 Descriccedilatildeo de Software
O Software eacute uma das interfaces com o usuaacuterio
312 Diagrama de Blocos do Software
30
312 Modulo do PC
Neste modulo eacute 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
32 Descriccedilatildeo de Hardware
321 Modulo Touch-Screen
O usuaacuterio ao tocar o Touch-Screen (AT4 touch-screen resistivo de 4 fios) ocorre uma
mudanccedila nas tensotildees do eixo X e do eixo Y devido a resistecircncia gerada pelo ao toque do usuaacuterio
em uma determinada regiatildeo da tela essa mudanccedila de tensatildeo eacute interpretada pela placa
controladora COACh IIs do Touch-Screen e enviada via serial para o Kit DE2 que interpretaraacute
os dados e faraacute o devido processamento
322 Modulo FPGA
O Hardware corresponde tanto aos componentes fiacutesicos presentes no kit de desenvolvimento
quanto aos componentes que seratildeo configurados na FPGA Satildeo diversos componentes escritos
em linguagem de descriccedilatildeo de hardware
No um dos principais componentes de hardware utilizado modulo eacute o processador NIOS II
para se ter uma ideacuteia o processador NIOS II eacute capaz gerenciar os dispositivos externos a FPGA
utilizando controladores de memoacuterias controladores de VGA entre outros E tambeacutem eacute possiacutevel
o proacuteprio usuaacuterio criar seu componente para ser controlado atraveacutes do processador NIOS
II(Altera 2007)
31
3221 O Processador NIOS II
Atraveacutes do software SOPC da ALTERA foi possiacutevel montar a arquitetura de hardware do
processador NIOS II bem como especificar as interfaces que ele iraacute controlar atraveacutes do firmwar
feito no NIOS II IDE
Na Tabela 22 eacute no campo Module Name onde estatildeo os moacutedulos que foram usados para
definir o processador NIOS II e os componentes externos que ele iraacute controlar e no campo
Description esta a descriccedilatildeo do nome de cada modulo
Tabela 22 ndash Moacutedulos dos componentes e suas descriccedilotildees
3222 Firmware para o NIOS II
O Firmware foi feito utilizando a linguagem C utilizando a ferramenta NIOS II IDE Atraveacutes
do firmware eacute possiacutevel 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 graacuteficas para controlar a vga e serial e
USB-BLASTER eacute encarregado em enviar todo o desenvolvimento do projeto para o Kit DE2
323 Configuraccedilatildeo da FPGA via JTAG
Depois de configurado o hardware do processador NIOS II eacute preciso fazer o load do NIOS
para a FPGA e para que isso aconteccedila eacute necessaacuterio que atraveacutes do software Quartus II da
ALTERA utilizando a interface JTAG utilizando o cabo USB-BLASTER
32
324 Comunicaccedilatildeo entre FPGA e o Touch-Screen
Para comunicaccedilatildeo entre dos dois hardwares Touch-Screen e o FPGA eacute utilizando uma
interface serial RS-232
A configuraccedilatildeo da interface eacute a seguinte
Bits de dados 8
Taxa de dados 5600(bps)
A Tabela 23 mostra a relaccedilatildeo dos pinos da porta serial com os pinos da FPGA
Tabela 23 ndash Pinos da FPGA referente agrave pinagem da interface Serial
E a Figura 16 mostra o desenho correspondente da interface serial
Figura 16 ndash Conector da interface serial do kit DE2
33 Especificaccedilatildeo de Validaccedilatildeo
331 Validaccedilatildeo de Hardware
A validade do hardware se faz com a anaacutelise de todos os moacutedulos envolvidos
As necessidades satildeo estudadas os componentes externos ao FPGA satildeo selecionados de
acordo o processador nios e os controladores dos moacutedulos externos como VGA e SERIAL satildeo
enviados ao modulo FPGA
Os resultados obtidos na tela do monitor e a recepccedilatildeo dos dados pela serial comprovam o
funcionamento do modulo de comunicaccedilatildeo da serial e vga
33
332 Validaccedilatildeo de Software
A validaccedilatildeo do controle da interface touch-screen faz-se a partir dos resultados obtidos das
funccedilotildees escritas na linguagem C especificas para cada componente externos ao FPGA essas
funccedilotildees tornam possiacuteveis que o processador NIOS na FPGA tenha total controle sobre os
moacutedulos externos como a VGA e a SERIAL
As funccedilotildees que satildeo utilizadas para validar o funcionamento do software satildeo para a VGA os
meacutetodos de controle (alt_up_vga_draw_char_1b( char int x int y)) e (alt_up_vga_draw_pixel(
color x y))
O meacutetodo (alt_up_vga_draw_char_1b( char int x int y)) tem a funcionalidade de escrever
caracteres na tela do monitor e a descriccedilatildeo da sua assinatura ldquoparacircmetrosrdquo eacute a seguinte char eacute o
caractere que eacute escrito em alguma posiccedilatildeo na tela int x eacute a posiccedilatildeo x da tela do monitor e int y eacute
a posiccedilatildeo y da tela do monitor sendo que a resoluccedilatildeo utilizada eacute de 80x60 ou seja x natildeo pode
passar de 80 e y natildeo pode passar de 60
O meacutetodo (alt_up_vga_draw_pixel( color int x int y)) tem a funcionalidade de ldquopintarrdquo o
fundo da tela do monitor o meacutetodo de imprimir caracteres tem preferecircncia sobre este meacutetodo ou
seja os caracteres sempre ficam sob a aacuterea pintada ou seja o caractere sempre ficara em cima da
aacuterea pintada a descriccedilatildeo da assinatura deste meacutetodo eacute a seguinte color eacute a valor da cor que pode
ser um valor inteiro ou em hexadecimal para definir uma cor de alguma posiccedilatildeo da tela definidos
pelos paracircmetros x e y
As funccedilotildees que satildeo utilizadas para validar o funcionamento do software satildeo para a Serial os
meacutetodos de controle de transmissatildeo (fread( packet sizeof(packet) 1 serial_fp )) a funccedilatildeo
fread eacute utilizada para a leitura via interrupccedilatildeo dos pacotes que a controladora envia para o kit
DE2 as assinaturas do meacutetodo fread tem a seguinte composiccedilatildeo packet eacute a estrutura do pacote
que seraacute recebido o sizeof(packet) eacute o diz qual eacute o tamanho exato da estrutura criada e o
serial_fp eacute o handle da porta serial
Uma observaccedilatildeo muito importante eacute que para o total funcionamento eacute necessaacuterio 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 rs232h e rs232c onde estatildeo os meacutetodos de
controle da SERIAL e alt_up_vgah alt_up_vgac onde estatildeo os meacutetodos de controle para a
VGA Para tornar estes meacutetodos acessiacuteveis eacute preciso fazer os includes dos arquivos h no
projeto da NIOS IDE
A figura 17 mostra a utilizaccedilatildeo dos meacutetodos (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
34
int y)) utlizado para escrever os caracteres lsquoarsquo e lsquobrsquo dentro de um grupo de pixel previamente
pintado a (alt_up_vga_draw_pixel( color int x int y)) natildeo pinta um pixel de cada vez e sim
um bloco de 8x8 pixels
Figura 17 - Tela para a validaccedilatildeo dos testes com as bibliotecas graacuteficas do componente VGA
34 Recursos Necessaacuterios
A Tabela 24 apresenta os ambientes de desenvolvimento e ferramentas de software utilizadas
e na Tabela 25 as linguagens necessaacuterias Estas ferramentas foram utilizadas em ambiente
Windows Xp
Tabela 24 - Ferramentas de Desenvolvimentos e Ambientes
Software Para que foi Utilizado
Quartus II Para a definiccedilatildeo de qual o modelo de FPGA utilizado compilaccedilatildeo e simulaccedilatildeo e envio Load do NIOS para FPGA
SOPC Para definiccedilatildeo da do processador NIOS II e com quais componentes externos ele ira interagir atraveacutes dos controladores dos respectivos componentes
NIOS II IDE Para implementaccedilatildeo do firmware do processador NIOS II utilizando a linguagem em C
35
Borland C++ Builder Para desenvolvimento de ima interface de comunicaccedilatildeo via caboUSB-
BLASTER para o envio de imagem para o kit
Tabela 25 ndash Linguagens de programaccedilatildeo utilizadas
Linguagem Ferramenta C++ Borland C++ Builder VerilogVHDL Quartus II C NIOS II IDE
35 Viabilidade Teacutecnico-Econocircmica
O valor do projeto esta descrito na Tabela 26
Tabela 26 ndash Relaccedilatildeo dos Custos
DESCRICcedilAtildeO CUSTO APROXIMADO (R$) COMPONENTES ELETROcircNICOS 50000 1 Kit DE2 Cyclone II 35000 1 Monitor de Computador 35000 HORAS TRABALHADAS (400 horas) 750000 CUSTO TOTAL APROXIMADO (R$) 870000
36 Cronograma do Projeto
A tabela 27 contem as informaccedilotildees do cronograma do projeto
Tabela 27 ndash Cronograma de datas e entregas do projeto
Data Atividade a ser apresentada 050307 Entrega das propostas de projeto para avaliaccedilatildeo do colegiado 020407 Entrega das especificaccedilotildees teacutecnicas do projeto aprovado 110607 Entrega do projeto (monografia) e dos testes preliminares do mesmo 060807 Apresentaccedilatildeo preacutevia da implementaccedilatildeo do projeto especificado 011007 Apresentaccedilatildeo do projeto implementado
Qualificaccedilatildeo para a fase final 291007 Segunda apresentaccedilatildeo do projeto implementado para os que natildeo o fizeram no
dia 011006 com decreacutescimo da nota Qualificaccedilatildeo para a fase final
051107 Entrega da documentaccedilatildeo completa em espiral para a banca examinadora em 3 vias contendo a monografia manual teacutecnico manual do usuaacuterio e artigo cientiacutefico
261107 Defesa formal dos projetos com apresentaccedilatildeo oral para a banca examinadora 101207 Entrega da documentaccedilatildeo completa revisada e corrigida encadernada no
padratildeo da biblioteca (capa dura) em duas vias contendo a monografia manual teacutecnico manual do usuaacuterio e artigo cientiacutefico Entrega do CD contendo no formato WEB todo o conteuacutedo dos manuais
36
CAPIacuteTULO 4 ndash ESPECIFICACcedilAtildeO TECNICA
41 Requisitos Miacutenimos
Os requisitos miacutenimos de Hardware satildeo
Funcionamento das interfaces Serial e USB-Blaster
Funcionamento do Kit DE2
PC
Os requisitos miacutenimos de Software
Windows Xp
Quartus II
SOPC
NIOS II IDE
42 Projeto de Hardware
O hardware utilizado nesse projeto inclui componentes presentes na Placa de
Desenvolvimento Nios II - ediccedilatildeo DE2 Cyclone II EP2C35 e principalmente o hardware que seraacute
configurado na FPGA escrito em linguagem de descriccedilatildeo de hardware (HDL)
O um dos principais blocos de hardware eacute o processador NIOS II o Avalon Bus e os
controladores de componentes externos a FPGA e de comunicaccedilatildeo presentes no Kit
37
O software embarcado (firmware) estaraacute rodando nessa arquitetura Eacute uma arquitetura
completa construiacuteda com a ferramenta SOPC Builder da Altera A Figura 18 representa em
blocos os principais componentes dessa arquitetura
Figura 18 ndash Representaccedilatildeo em blocos do hardware do NIOS II
421 Funcatildeo do Touch-Screen
Outro bloco importante eacute o do Touch-Screen esta tela sensiacutevel ao toque pois como esta tela
trabalha com resistecircncia ao ser tocado em uma determinada regiatildeo uma resistecircncia eacute gerada e a
tensatildeo de saiacuteda eacute modificada a alimentaccedilatildeo desta placa eacute proveniente de sua placa controladora
a mesma placa que recebe a tensatildeo de saiacuteda modificada de acordo com a regiatildeo tocada na tela
Para verificar as caracteriacutesticas detalhadas do Touch-Screen e sua placa controlador favor ver
o Capitulo 2
422 Monitor e VGA
O Monitor inicialmente tem apenas o desenho de um botatildeo que ao ser tocado via touch
mudara a cor de toda a tela A imagem exibida no monitor tem uma resoluccedilatildeo de
38
Protoacutetipo das telas para os testes esta na Figura 19 a tela verde quando a touch natildeo eacute tocando
na regiatildeo do botatildeo de OK quando o botatildeo de OK for tocado a tela do monitor mudara de cor
ficando azul
Figura 19 ndash Tela do monitor
No Capitulo 2 estatildeo todas as caracteriacutesticas da pinagem e do conector VGA
423 Comunicaccedilatildeo serial
Entre a placa controladora do Touch-Screen e o FPGA existe uma comunicaccedilatildeo 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 manipulaccedilatildeo da imagem que eacute
mostrada no monitor
No capitulo 2 estatildeo das descriccedilotildees dos pinos e do conector da comunicaccedilatildeo Serial
O pacote serial que eacute transmitido pela placa controladora do touch-screen possui 10 bytes de
comprimento e segue a seguinte sequumlecircncia de envio
[55] [54] [] [] [] [] [] [] [] []
Sequumlecircncia dos bytes
Os dois primeiros bytes identificam o Header do pacote
O terceiro byte eacute 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 agrave posiccedilatildeo do eixo x onde a tela foi tocada
O sexto e o seacutetimo byte correspondem a posiccedilatildeo do eixo y onde a tele foi tocada
O restante os bytes identificam o tail do pacote recepcionado pelo kit DE2
39
424 Comunicaccedilatildeo USB-Blaster
Essencial para envio do projeto desenvolvido para o kit DE2 tambeacutem muito utilizado para o
debug deste projeto
435 Memoacuteria SDRAM
A memoacuteria utilizada para armazenar grandes quantidades de dados eacute a SDRAM (ver detalhes
no Capitulo 2)
Essa memoacuteria eacute muito raacutepida serviu muito bem para armazenar o firmware deste projeto
pois tem o tempo acesso ideal para ler as instruccedilotildees que utilizaram a VGA e tambeacutem eacute raacutepida o
suficiente para fazer a leitura dos dados e disponibilizar na saiacuteda VGA do kit
426 Memoacuteria FLASH
Eacute onde seraacute armazenado o firmware possui espaccedilo suficiente para isso 4MB e uma memoacuteria
mais lenta e por isso natildeo foi usada para armazenar dados para serem jogados na vga do Kit
43 Software
431 Software (Firmware)
O software tem de funccedilatildeo de utilizar as bibliotecas das controladoras dos componentes
externos a fim de controlar estes componentes de acordo com o necessaacuterio para atender o
objetivo do projeto
Ou seja uma tela inicial eacute apresentada e o usuaacuterio ao tocar na nela o kit recebe um pacote via
serial e interpreta a posiccedilatildeo da tela em que foi tocado e logo em seguida envia o resultado deste
toque para o monitor
432 Objetivos
O usuaacuterio 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 accedilatildeo de acordo com a posiccedilatildeo da tela
tocada alterando assim a imagem anterior com o resultado do toque
Interpretar o toque de usuaacuterio na tela touch-screen recepccedilatildeo do pacote via serial da placa
controladora do touch-screen tratamento do pacote e interpretaccedilatildeo das coordenadas x e y do
40
toque Realizaccedilatildeo de alguma accedilatildeo que resultara na alteraccedilatildeo da imagem da tela atual de acordo
com a funccedilatildeo em que as coordenadas foram previamente definidas para o que deve ser feito
432 Funccedilotildees
A Tabela 28 tem as principais funccedilotildees que foram implementadas para o sistema
Tabela 28 ndash Funccedilotildees do sistema firmware
FUNCcedilOtildeES Tela de um pequeno editor de texto Tratamento do sinal recebido da serial devido a um toque na tela Interpretaccedilatildeo do pacote serial e transfomaccedilatildeo para coordenadas x e y Transformaccedilatildeo das posiccedilotildees do toque na tela em alguma accedilatildeo enviando o resultado para a VGA Imagem final disponibilizada ao usuaacuterio de acordo com o toque que foi dado na tela Controlar dispositivos cada dispositivo pode ser controlado pelo seu respectivo contrador atraveacutes de seu endereccedilo base VGA SERIAL USB-BLASTER IO(Leds Switches etc) do Kit DE2
O Firmware do processador NIOS II eacute que realizaraacute a integraccedilatildeo entre hardware com
hardware Com o firmware controlando o NIOS II eacute possiacutevel interagir com os dispositivos
externos a FPGA Tornando possiacutevel a integraccedilatildeo da FPGA com a peliacutecula touch-screen e um
monitor sem a ajuda de um PC a uacutenica ajuda do pc seria para enviar dados de uma imagem para
o Kit DE2
44 Validaccedilatildeo e Testes
Inicialmente os moacutedulos da VGA e comunicaccedilatildeo SERIAL natildeo estavam funicionando
apenas o devido agrave fraca documentaccedilatildeo sobre o kit DE2 foi possiacutevel apenas fazer testes com o
Processador NIOS II pois sobre este existem bastantes documentos e exemplos que podem ser
utilizados
Nesta primeira parte foi possiacutevel testar o NIOS II para controlar o display bototildees e switchs
do kit DE2
Com o NIOS II funcionando completamente foi necessaacuterio porta-lo para o kit DE2 o que foi
simples pois como sabemos esses kits satildeo portaacuteveis entre si apenas mudando a pinagem e a
capacidade da FPGA
Com o Kit DE2 foi possiacutevel fazer os testes necessaacuterios com a comunicaccedilatildeo serial
inicialmente testada via terminal conversando diretamente com o kit foi possiacutevel fazer o
seguinte teste os caracteres que eram entrados via teclado chegavam ao kit via serial e o o
41
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 comdumpexe que eacute facilmente encontrado pelas ferramentas
de pesquisa da web e tambeacutem existem vario outros programas como este e o comdump eacute
utilizado para debug da porta serial do pc conectado diretamente na placa controladora do touch-
screen e foi a peccedila chave para o entendimento do pacote enviado pela placa controladora
Figura 20 - Cumdumpexe programa de debug da porta serial
A explicaccedilatildeo de cada byte do pacote esta explicado no item 423
Apos o entendimento completo da transmissatildeo 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 natildeo 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 ateacute o momento em que
foi testado os meacutetodos proprietaacuterios da Altera para fazer a VGA funcionar os meacutetodos esses
implementados em C
A figura 21 onde contem o teste baacutesico feito que foi a chave principal para o sucesso deste
projeto
42
Como dito no item 332 do projeto foram utilizados as funccedilotildees da controladora VGA esses
meacutetodos 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 eacute utilizado o meacutetodo alt_up_vga_draw_pixel( color int
x int y) onde color eacute a cor do bloco de pixels e x e y satildeo as coordenadas da tela onde o bloco
que seraacute pintado
Para escrever um caractere sobre um bloco de pixels pintado eacute utilizado a funccedilatildeo
alt_up_vga_draw_char_1b( char int x int y) onde char eacute o caractere a ser impresso e x e y satildeo
as coordenadas da tela onde os o caractere eacute impresso
Figura 21 - Teste baisco do funcionamento do componente VGA do kit DE2
43
CAPIacuteTULO 5 ndash VALIDACcedilAtildeO E RESULTADOS
Os resultados foram os melhores possiacuteveis pois com a utilizaccedilatildeo dos IP CORE
ldquocontroladorasrdquo dos componentes externos como VGA e SERIAL e seus meacutetodos de para
controle eacute possiacutevel controlar facilmente esses moacutedulos atraveacutes do firmware desenvolvido para o
processador NIOS que consegue realizar operaccedilotildees transparentes acessando dos meacutetodos de
controle dos moacutedulos
Apos os testes baacutesicos 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 baacutesico de editor de texto
A figura 22 mostra um teste utilizando os meacutetodos de controle disponiacuteveis para o IP CORE
da VGA para primeiramente fazer o menu da aplicaccedilatildeo desenvolvido em na linguagem C
Figura 22 ndash Menu baacutesico do editor de texto
Para desenhar o menu da figura acima foi utilizado os meacutetodos proprietaacuterios de controle da
VGA citados no capitulo 4 e tambeacutem estruturas de repeticcedilatildeo para que a tela fosse varrida e os
pixels desenhados nos respectivos lugares da tela bem como os caracteres
Na figura 23 eacute definida a seguinte estrutura em C para representar de um botatildeo
Figura 23 - Estrutura em C para representar um botatildeo
44
A figura 24 eacute a declaraccedilatildeo dos bototildees que seratildeo utilizados pelo aplicativo editor de texto
para comprovar o funcionamento do controle da interface touch-screen
Apenas o que esta dentro da marcaccedilatildeo quadrada representa os bototildees do menu da figura 23
e o restante satildeo os bototildees do teclado do editor de texto
Figura 24 - Declaraccedilatildeo dos bototildees do menu
45
A figura 25 representa o meacutetodo drawnButtonUp responsaacutevel por desenhar os bototildees na tela
de acordo com as posiccedilotildees em que foram declarados os bototildees deste meacutetodo satildeo desenhados
para parecerem que estatildeo ldquolevantadosrdquo e natildeo pressionados
Note que foram utilizados os meacutetodos proprietaacuterios de controle da VGA
alt_up_vga_draw_pixel pra pitar os pixels e alt_up_vga_draw_char_b1 para desenhar caracteres
como jaacute foi especificado no item 44 do projeto
Figura 25 ndash Meacutetodo drawButtonUp
46
O meacutetodo que desenha o caption do botatildeo se chama drawButtonText desenha os caracteres
em cima dos bototildees natildeo importa se o botatildeo esta pressionado ou natildeo
A figura 26 mostra como este meacutetodo foi implementado e ele eacute chamado no final de cada
meacutetodo onde algum tipo de botatildeo eacute desenhado quando o meacutetodo que desenha o botatildeo normal
quanto o pressionado e ateacute mesmo o do teclado
Figura 26 ndash Meacutetodo que escreve o caption de cada botatildeo
47
A figura 27 mostra o meacutetodo drawButtonDown que desenha o botatildeo pressionado ou seja
quando o usuaacuterio pressiona a regiatildeo correspondente a um botatildeo do menu no touch-screen o
mesmo redesenharaacute o botatildeo parecendo um efeito de botatildeo afundado note que no final do
meacutetodo novamente eacute chamado o meacutetodo drawButtonText que reescreveraacute o caption do botatildeo
como mostra o meacutetodo da figura 26 e esta ilustrado na figura 28
Figura 27 ndash Meacutetodo que desenha o botatildeo pressionado
48
Dependendo da aacuterea do menu que o usuaacuterio pressionar no touch-screen causar o efeito de
pressionado como mostra a figura 28
Figura 28 ndash Efeito do botatildeo de menu apertado
Na figura 29 eacute a representaccedilatildeo de quando a aacuterea correspondente ao botatildeo ldquoamarelordquo eacute
pressionada
Apos estes testes baacutesicos comprovando o funcionamento da interface graacutefica para o usuaacuterio
foi definido o restante dos componentes da tela que eacute constituiacutedo de um prompt e um teclado
qwerty que foi essencial para comprovar o perfeito funcionamento do controle da interface
touch-screen
49
51 Interface Grafica Final
A figura 29 mostra a interface final que o usuaacuterio teraacute para poder verificar o funcionamento
do controle da interface touch-screen
Figura 29 ndash Interface final touch-screen do usuaacuterio
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
511 Descriccedilatildeo do editor de texto
O menu possui 4 botoes cada um com sua respectiva funcionalidade quando o usuario
pressiona a area do botatildeo ldquoapagarrdquo uma vez entatildeo um carectere do prompt eacute apagado Quando eacute
precionado a area correspondente ao botatildeo ldquoResetrdquo todo o conteudo do prompt seraacute apagado e o
plano de fundo retornaraacute a cor branca Quando o botatildeo ldquoamarelordquo eacute pressionado o fundo da tela
passa a ser amarelo e o mesmo acontece se o usuario precionar o botatildeo verde tornando o cor de
fundo verde
50
O teclado possui 29 teclas sendo duas delas que equivalem ao ENTRA ldquoENTrdquo e ao
SPACE ldquoSPCrdquo Quando o usuario pressiona a area correspondente a algum botatildeo do teclado o
mesmo muda sua cor para azul e o seu caractere eacute disponibilizado no prompt
Essas funcionalidades nada mais satildeo do que um bom exemplo de como funciona
corretamente o controle da interface touch-screen
52 Prompt e o Teclado
A estrutura feita na linguagem C que define o prompt da figura 28 esta representado na
figura 30
Figura 30 ndash Estrutura em C para representar o prompt
A figura 31 mostra o metodo drawPrompt utilizado para desenhar na tela o prompt
Figura 31 ndash Meacutetodo que desenha o prompt
51
A estrutura do teclado eacute a mesma utilizada pela figura 23 e tambem eacute criado satildeo
inicializados na figura 24
O restante as implementaccedilotildees estatildeo disponiveis no cd deste documento
Quando algum botatildeo do teclado eacute pressionado sua cor muda para azul e sua letra
correspondente eacute escrita o prompt
A figura 32 ilustra quando o usuaacuterio aperta a letra lsquotrsquo na peliacutecula touch-screen
Figura 32 - Teste do prompt e o teclado
52
53 Controle da Interface Touch-Screen
Depois do todos os testes com o processador NIOS e a integraccedilatildeo do mesmo com os
moacutedulos externos como a porta SERIAL e a saiacuteda VGA eacute possiacutevel utilizando o touch-screen
criar uma interface amigaacutevel e faacutecil de usar para o usuaacuterio utilizando um firmware capaz de
interpretar os sinais via serial vindo da controladora do touch ao detectar que um toque foi dado
pelo usuaacuterio e realizar algumas accedilotildees que neste caso se comportam como um editor de texto
baacutesico
A figura 33 mostra como foi validado este projeto e seus moacutedulos controlando uma
interface touch-screen para chegar no resultado abaixo digitado pelo usuaacuterio comprovando o
funcionamento e viabilidade deste projeto
Figura 33 ndash 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 mudanccedilas podendo ser alterado rapidamente o tipo de
aplicaccedilatildeo ou integrado rapidamente com outro projeto
53
CAPIacuteTULO 6 - CONCLUSAtildeO
Uma das principais dificuldades no desenvolvimento deste projeto foi fazer o levantamento
da documentaccedilatildeo sobre o processador NIOS e os moacutedulos externos a FPGA do Kit DE2 Como
natildeo foi feito algum projeto antes que utilizasse a interface VGA e a SERIAL do Kit DE2 levou-
se muito tempo ateacute conseguir adquirir e ordenar o conhecimento que foi sendo adquirido ateacute
conseguir dar os primeiros passos e realizar os primeiros testes com a VGA e a SERIAL Outro
grande obstaacuteculo foi ter de descobrir que para que o NIOS controlasse os moacutedulos externos a
FGPA fosse necessaacuterio copiar os arquivos c e h dos respectivos componente para dentro do
projeto
Mas depois de todos os problemas com os moacutedulos externos solucionados cada modulo do
projeto foi sendo desenvolvido separadamente ateacute seu total funcionamento Natildeo tive dificuldades
com a linguagem da programaccedilatildeo pois o Firmware do processador NIOS eacute o C a qual mais tive
contato na faculdade
Outro desafio foi fazer a peliacutecula 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
peliacutecula natildeo 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 possiacutevel
comeccedilar a fazer os testes necessaacuterios para prosseguir com o projeto aprender como o a peliacutecula
identifica um toque e manda este sinal para a controladora e a controladora transforma este sinal
em um sinal serial que eacute 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 accedilotildees
que as coordenadas jaacute estatildeo previamente calibradas no firmware para fazer bem como mudar de
cor a tela fazer o efeito de um botatildeo subindo e descendo etc
Varias vezes o projeto parou de funcionar entatildeo 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 memoacuteria abundante etc uma das
facilidades eacute a faacutecil alteraccedilatildeo do projeto podendo ser integrado a outro ou ateacute mesmo alterado
para realizar outros tipos de accedilotildees com o touch-screen
Existem vaacuterios melhoramentos que podem ser executados no projeto um deles eacute tentar
interpretar de uma maneira diferente os valores do eixo y pois do jeito que esta a resoluccedilatildeo do
eixo y esta muito baixa dificultando o reconhecimento de toques em aacutereas pequenas Talvez a
inclusatildeo de mais alguns bytes no pacote de leitura da serial resolva o problema
54
Uma ideacuteia para um proacuteximo projeto que use a interface touch-screen poderia ser a
integraccedilatildeo com o projeto do nosso colega Roberto Junqueira ou a desenvolvimento de uma
placa controladora para o touch-screen
Este trabalho eacute uma modesta contribuiccedilatildeo para o uso de FPGAs e do processador embarcado
NIOS implementado em VHDL pela Altera que acredito que vai abrir vaacuterios caminhos pois
com este projeto alguns caminhos ficaram mais faacuteceis de percorrer daqui para a frente
55
CAPIacuteTULO 7 - REFEREcircNCIAS BIBLIOGRAacuteFICAS
AMORE Roberto drsquo VHDL Descriccedilatildeo e Sintese de Circuitos Rio de Janeiro ed LTC
2005
Elotouch Touch-Screen e Controladora Descriccedilatildeo do funcionamento e descriccedilatildeo
tecnologia Touch-Screen lthttpwwwelotouchcombrgt Acesso em fevereiro de 2007
ALTERA University Program IP Cores Instalaccedilatildeo de IP Cores e referencias sobre os
componentes dos kits DE1 e DE2 Disponivel em lthttpwwwalteracomeducationunivip-
coresunv-ip-coreshtmlgt Acesso em abril de 2007
ALTERA NIOS II Documentaccedilatildeo sobre o pprocessador embracado NIO II Disponivel
em lthttpwwwalteracomproductsipprocessorsipm-indexjspgt Acesso em Abril de 2007
ALTERA Development amp Education Board 2 (DE2) Manual do usuario Disponivel no
de que acompanha o Kit DE2 ltDE2_user_manualDE2_UserManualpdfgt Acesso em
fevereiro de 2007
RESUMO
Com o avanccedilo tecnoloacutegico dos dispositivos reconfiguraacuteveis principalmente as FPGAs a
realizaccedilatildeo de updates em hardware foi extremamente facilitada Desta maneira natildeo haacute a
necessidade de intervenccedilatildeo fiacutesica facilitando principalmente o trabalho de projetistas
A evoluccedilatildeo do mundo eacute constante tambeacutem podemos evoluir constantemente os sistemas
atraveacutes do uso das FPGAs correccedilotildees e alteraccedilotildees podem ser feitas simuladas em software
configuradas e testadas em laboratoacuterio e imediatamente apoacutes serem enviadas para campo e
implantados nos sistemas em funcionamento sem interrupccedilotildees longas eou trabalhosas
E com essas facilidades de reconfigurar o hardware desenvolveu-se um controle sobre uma
interface Touch-Screen e sua comunicaccedilatildeo com a FPGA para permitir que o usuaacuterio mude as
caracteriacutesticas de uma determinada imagem (Interface de Vidro) no monitor atraveacutes do toque
todo o controle entre os blocos loacutegicos e funcionais eacute 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 isnt 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 andor 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
SUMAacuteRIO
CAPIacuteTULO 1 - INTRODUCcedilAtildeO 12
CAPIacuteTULO 2 ndash FUNDAMENTACcedilAtildeO TEOacuteRICA 14
21-Touch Screen 14
211 Placa e chip da Controladora do Touch-Screen 16
212 Pinagens e descriccedilatildeo do Touch-Screen e da Placa Controladora 17
22-Video 18
23-Kit Altera Development amp Education Board 1 (Kit DE2) 20
231-Layout e Componentes 20
232 Diagrama de Blocos do Kit DE2 21
233 Endereccedilo das Pinagens dos Componentes usados no Projeto 24
2331 PushButtons 24
2332 Modulo dos Displays de 7 Segmentos 25
2333 VGA 27
CAPIacuteTULO 3 ndash ESPECIFICACcedilAtildeO TECNICA 29
31 Descriccedilatildeo de Software 29
312 Diagrama de Blocos do Software 29
312 Modulo do PC 30
32 Descriccedilatildeo de Hardware 30
321 Modulo Touch-Screen 30
322 Modulo FPGA 30
3221 O Processador NIOS II 31
3222 Firmware para o NIOS II 31
323 Configuraccedilatildeo da FPGA via JTAG 31
324 Comunicaccedilatildeo entre FPGA e o Touch-Screen 32
33 Especificaccedilatildeo de Validaccedilatildeo 32
331 Validaccedilatildeo de Hardware 32
332 Validaccedilatildeo de Software 33
34 Recursos Necessaacuterios 34
35 Viabilidade Teacutecnico-Econocircmica 35
36 Cronograma do Projeto 35
CAPIacuteTULO 4 ndash ESPECIFICACcedilAtildeO TECNICA 36
41 Requisitos Miacutenimos 36
42 Projeto de Hardware 36
421 Funcatildeo do Touch-Screen 37
422 Monitor e VGA 37
423 Comunicaccedilatildeo serial 38
424 Comunicaccedilatildeo USB-Blaster 39
435 Memoacuteria SDRAM 39
426 Memoacuteria FLASH 39
43 Software 39
431 Software (Firmware) 39
432 Objetivos 39
432 Funccedilotildees 40
44 Validaccedilatildeo e Testes 40
CAPIacuteTULO 5 ndash VALIDACcedilAtildeO E RESULTADOS 43
51 Interface Grafica Final 49
511 Descriccedilatildeo do editor de texto 49
52 Prompt e o Teclado 50
53 Controle da Interface Touch-Screen 52
CAPIacuteTULO 6 - CONCLUSAtildeO 53
CAPIacuteTULO 7 - REFEREcircNCIAS BIBLIOGRAacuteFICAS 55
LISTA DE FIGURAS
Figura 1 ndash Touch-Screen final 14 Figura 2 ndash Mascara 15 Figura 3 ndash Vidro 15 Figura 4 ndash Chip COACh IIs 16 Figura 5 ndash Placa Controladora 17 Figura 6 ndash Pinos do Touch-Screen 17 Figura 7 ndashConector para o touch da placa controladora 17 Figura 8 ndash Conector VGA femea do kit DE2 18 Figura 9 ndash O kit DE2 20 Figura 10 ndash Diagrama de Blocos do KIT DE2 21 Figura 11 ndash Os 4 PushButtons do DE2Key[30] 24 Figura 12 ndash Modulo de displays de 7 segmentos 25 Figura 13 ndash Index de um display 25 Figura 14 ndash Temporizaccedilatildeo horizontal da VGA 27 Figura 15 - Moacutedulos do projeto 29 Figura 16 ndash Conector da interface serial do kit DE2 32 Figura 17 - Tela para a validaccedilatildeo dos testes com as bibliotecas graacuteficas do componente VGA 34 Figura 18 ndash Representaccedilatildeo em blocos do hardware do NIOS II 37 Figura 19 ndash Tela do monitor 38 Figura 20 - Cumdumpexe programa de debug da porta serial 41 Figura 21 - Teste baisco do funcionamento do componente VGA do kit DE2 42 Figura 22 ndash Menu baacutesico do editor de texto 43 Figura 23 - Estrutura em C para representar um botatildeo 43 Figura 24 - Declaraccedilatildeo dos bototildees do menu 44 Figura 25 ndash Meacutetodo drawButtonUp 45 Figura 26 ndash Meacutetodo que escreve o caption de cada botatildeo 46 Figura 27 ndash Meacutetodo que desenha o botatildeo pressionado 47 Figura 28 ndash Efeito do botatildeo de menu apertado 48 Figura 29 ndash Interface final touch-screen do usuaacuterio 49 Figura 30 ndash Estrutura em C para representar o prompt 50 Figura 31 ndash Meacutetodo que desenha o prompt 50 Figura 32 - Teste do prompt e o teclado 51 Figura 33 ndash Funcionamento do controle da interface Touch-Screen 52
LISTA DE TABELAS
Tabela 1 ndash Caracteriacutesticas da placa controladora 16 Tabela 2 ndash Pinagem do conector que faz interface entre o touch e a controladora 18 Tabela 3 ndash Descriccedilatildeo dos pinos da VGA 18 Tabela 4 ndash Lista dos componentes do Kit DE2 (DE2_UserManualpdf contrado no cd do kit) 20 Tabela 5 ndash Detalhes do FPGA Cyclone II 22 Tabela 6 - Descriccedilatildeo das configuraccedilotildees que satildeo feitas atraveacutes da Serial e Usb-Blaster 22 Tabela 7 ndash Descriccedilatildeo do Bloco da SRAM 22 Tabela 8 - Descriccedilatildeo do Bloco da SDRAM 22 Tabela 9 ndash Descriccedilatildeo da Memoria Flash 23 Tabela 10 - Descriccedilatildeo do SD card socket 23 Tabela 11 - PushButton switches 23 Tabela 12 - Descriccedilatildeo das entradas de Clocks 23 Tabela 13 - Descriccedilatildeo do Aacuteudio CODEC 23 Tabela 14 ndash Descriccedilatildeo da saiacuteda VGA DAC 24 Tabela 15 ndash Descriccedilatildeo da Serial Port e PS2 24 Tabela 16 ndash Descriccedilatildeo dos conectores de expansatildeo de 40 pinos 24 Tabela 17 ndash Pinos da FPGA referentes a cada PushButton 25 Tabela 18 ndash Pinos da FPGA referentes a cada segmento dos Displays do modulo 26 Tabela 19 ndash Especificaccedilatildeo da temporizaccedilatildeo horizontal da VGA 27 Tabela 20 ndash Especificaccedilatildeo da temporizaccedilatildeo vertical da VGA 27 Tabela 21 ndash Pinos da FPGA referentes a saiacuteda do Conector VGA do Kit 28 Tabela 22 ndash Moacutedulos dos componentes e suas descriccedilotildees 31 Tabela 23 ndash Pinos da FPGA referente agrave pinagem da interface Serial 32 Tabela 24 - Ferramentas de Desenvolvimentos e Ambientes 34 Tabela 25 ndash Linguagens de programaccedilatildeo utilizadas 35 Tabela 26 ndash Relaccedilatildeo dos Custos 35 Tabela 27 ndash Cronograma de datas e entregas do projeto 35 Tabela 28 ndash Funccedilotildees do sistema firmware 40
LISTA DE SIGLAS
CRT - Catodic Ray tube
DE2 - Development amp Educations 1
ES - EntradaSaiacuteda
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 - Nuacutecleo de Ciecircncias Exatas e Tecnoloacutegicas
PC - Personal Computer
PDA - Personal Digital Assistant
PLL - Pulse Logic Loop
SDRAM - Static Dinamic Randomic Acess Memory
TTL - Transistor-transistor Logic
UNICENP - Centro Universitaacuterio Positivo
USB - Universal Serial Bus
USP - Universidade de Satildeo Paulo
VGA - Viacutedeo 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 SIacuteMBOLOS
- ohm
MHz - Mega Hertz
Hz - Hertz
V - Volts
11
12
CAPIacuteTULO 1 - INTRODUCcedilAtildeO
A computaccedilatildeo reconfiguraacutevel vem sendo utilizada em larga escala para projetos de
hardware que necessitem de um grande poder de processamento Neste campo um dispositivo
muito utilizado eacute a FPGA (Field-Programmable Gate Array)
As FPGArsquos satildeo circuitos de hardware que podem ser modificados praticamente em
qualquer momento durante o uso As FPGArsquos consistem em array de blocos loacutegicos
configuraacuteveis que implementam funccedilotildees loacutegicas 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 mudanccedilas raacutepidas no hardware
Em microprocessadores de uso geral se tem um hardware que natildeo pode ser modificado fixo
mas no FPGA essa mudanccedila eacute bastante simples e raacutepida feita via software
Este projeto teve sua proposta lanccedilada a partir da ideacuteia concedida pelo Prof Valfredo Pilla
Junior de interface Touch-Screen
O projeto eacute sobre o controle de uma interface com uma peliacutecula Touch-Screen onde eacute
possiacutevel que o usuaacuterio ao tocar uma peliacutecula sensiacutevel ao toque o sistema desenvolvido possa
realizar algum tipo de alteraccedilatildeo na imagem apresentada em um monitor que se dispotildee atraacutes do
Touch-Screen
O objetivo foi desenvolver um sistema capaz de receber e manipular a aquisiccedilatildeo dos dados
gerados pela placa controladora atraveacutes toque na peliacutecula Touch-Screen que estaraacute na frente da
tela de um monitor converter estes dados realizar uma alteraccedilatildeo na tela inicialmente
apresentada e disponibilizar o resultado da alteraccedilatildeo atualizando a tela do monitor
O hardware do sistema eacute basicamente composto na parte da aquisiccedilatildeo por uma peliacutecula
Touch-Screen e uma placa controladora da proacutepria peliacutecula recepccedilatildeo e processamentos feitos no
Kit DE2 (Development amp Education 1) Board que enviara o resultado atraveacutes da saiacuteda VGA
(Viacutedeo Graphics Array) para um monitor CRT (Catodic Ray tube)
Este sistema eacute justificado pois as interfaces intuitivas com telas Touch-Screen satildeo
utilizadas em uma ampla gama de mercados
Por exemplo
Comeacutercio Realizar um atendimento de forma raacutepida e faacutecil eacute objetivo da automaccedilatildeo 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 usuaacuteriomaacutequina de grandes complexos
equipamentos devido agrave eliminaccedilatildeo do teclado do mouse e de outros perifeacutericos de um ambiente
industrial evitando distraccedilotildees em um ambientes geralmente muito agressivo
13
Medicina Os sistemas que usam touch simplificam os sofisticados sistemas meacutedicos reduzem as
possibilidades de erros e proporcionam um mecanismo de entrada de dados mais eficiente que
qualquer outro perifeacuterico
Educaccedilatildeo Hoje o touch esta se tornando a interface de treinamento mais popular em todas as
fases do aprendizado desde a preacute escola jardim de infacircncia e preparaccedilatildeo profissional eliminando
a frustraccedilotildees de crianccedilas ao utilizar o mouse ou teclado
E aplicaccedilotildees com o objetivo de diminuir o tempo de resposta aumentar a produtividade
proporcionar produtos e serviccedilos de maior qualidade e aumentar os lucros Por exemplo realizar
um atendimento de forma raacutepida e faacutecil eacute objetivo da automaccedilatildeo 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 serviccedilos intuitivos e interativos de uma interface
Touch proporcionam confiabilidade ao cliente que eacute exatamente o que o seu negoacutecio precisa para
o crescimento e o sucesso em longo prazo (elotouch 2007)
Este projeto no futuro poderaacute ser integrado com outro projeto formando assim um sistema
parecido com um PDA (Personal Digital Assistant)
14
CAPIacuteTULO 2 ndash FUNDAMENTACcedilAtildeO TEOacuteRICA
21-Touch Screen
Um Touch-Screen que em portugues quer dizer ldquotela sensivel ao toquerdquo estatildeo disponiacuteveis
para uma grande variedade de uso desde pontos de vendas ateacute quiosques equipamentos meacutedicos
e industriais e sistemas de jogos As vantagens das soluccedilotildees touch incluem precisatildeo
transparecircncia e facilidade de uso e instalaccedilatildeo
O Touch-Screen usado neste projeto eacute o modelo de quatro fios resistivos AT4 da empresa
Elo TouchSystem (wwwelotouchcombr)
A tecnologia resistiva touch de quatro fios consta de uma tela de vidro coberto
uniformemente por camadas eletricamente condutivas e resistivas Uma lacircmina de poliester eacute
hermeticamente estendida sobre a parte superior do vidro e separada por minuacutesculos espaccediladores
(pontos) transparentes e isolantes A parte externa dessa lacircmina eacute uma peliacutecula duraacutevel e firme a
parte interna conteacutem uma camada condutiva Durante seu funcionamento uma corrente eleacutetrica
se propaga atraveacutes do touchscreen Ativada por um miacutenimo toque a peliacutecula 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 descriccedilatildeo das
camadas que compoem o Touch-Screen
Figura 1 ndash Touch-Screen final (Adaptado com as dimensotildees da aplicaccedilatildeo do editor de texto para validar este projeto)
15
Figura 2 ndash Mascara
(Adaptado do site elotouchcombr)
1 Camada soacutelida resistente a riscos (tipo anti-reflexiva) 3 Camada ITO
2 Peliacutecula de Poliester 4 Contatos de prata
Figura 3 ndash Vidro (Adaptado do site elotouchcombr)
1 Contatos de prata 3 Camada ITO(Transparent Conducting Oxide)
2 Pontos espaccediladores 4 Camada de Vidro
O circuito da controladora aplica uma tensatildeo atraveacutes da superfiacutecie do vidro As tensotildees no
ponto de contato constituem a representaccedilatildeo analoacutegica da superfiacutecie de toque A controladora
traduz essas tensotildees e transmite-os para o computador para processaacute-los
16
211 Placa e chip da Controladora do Touch-Screen
O COACh IIs (Controller On A Chip second generation) eacute compacto econocircmico chip
controlador para as aplicaccedilotildees com o Touch-Screen AT4 de 4 fios resistivos Opera em 33V e
em 5V O tamanho compacto baixa voltagem para operar e comsumo de energia eacute a melhor
soluccedilatildeo para OEMrsquos (original equipment manufacturer) pois pode contar com estabilidade
confiabilidade e desempenho de componentes com touch para aplicaccedilotildees embarcadas ou
aplicaccedilotildees portaacuteveis[elotouchcom] A Figura 4 ilustra o chip
Figura 4 ndash Chip COACh IIs (Adaptado do site elotouchcom)
A placa controladora que integra o touch-screen em outros moacutedulos possui as caracteriacutesticas
descritas na Tabela 1 e a Figura 5 ilustra a placa controladora
Tabela 1 ndash Caracteriacutesticas da placa controladora
Alimentaccedilatildeo 5 VDC nominal (45)
Interface-Serial (Serial RS-232) Full Duplex
Paracircmetros de Comunicaccedilatildeo Baud Rate 9600 and 19200 8 Bits de dados 1 bit de parada
Interface USB Quando estiver comunicando via USB a Serial estaraacute desabilitada E a placa natildeo eacute alimentada pela USB
Resoluccedilatildeo de toque 4096x4096 independente do tamanho da peliacutecula touch-screen
Tempo de conversatildeo do toque 10ms
17
Figura 5 ndash Placa Controladora (Adaptado do site elotouchcom)
212 Pinagens e descriccedilatildeo do Touch-Screen e da Placa Controladora
A Figura 6 ilusta os pinos do Touch-Screen que satildeo ligados ao conector da placa
controladora
Figura 6 ndash Pinos do Touch-Screen (Adaptado do site elotouchcom)
A Figura 7 mostra o conector da placa controladora e as respectivas pinagens
Figura 7 ndashConector para o touch da placa controladora (Adaptado do site elotouchcom)
18
A Tabela 2 descreve os pinos do conector para o touch da placa controladora
Tabela 2 ndash Pinagem do conector que faz interface entre o touch e a controladora
Pino
Nome do Sinal Desciccedilatildeo do sinal
1 X+ Entrada de tensatildeo positiva referente ao eixo X da tela 2 Y+ Entrada de tensatildeo positiva referente ao eixo Y da tela 3 X- Entrada de tensatildeo negativa referente ao eixo X da tela 4 Y- Entrada de tensatildeo negativa referente ao eixo Y da tela
22-Video
Eacute usado um monitor CRT convencional o qual apresentaraacute uma imagem criada atraveacutes as
bibliotecas graficas proprietarias da ALTERA esta imagem representa um menu com botoes e e
que atravez da manipulaccedilatildeo dos metodos das bibliotecas os resultados satildeo disponibilizados na
saida VGA do kit dependendo do botatildeo da imagem que for tocada atravez do touch alguma accedilatildeo
de alteraccedilatildeo na imagem seraacute atulalizada na saida vga
A Figura 8 ilustra o conector (fecircmea) da saiacuteda VGA do kit DE2
Figura 8 ndash Conector VGA femea do kit DE2
E na Tabela 3 a descriccedilatildeo de cada pino bem como sua direccedilatildeo
Tabela 3 ndash Descriccedilatildeo dos pinos da VGA
Pin
Name Dir Description
1 RED
Red Video (75 ohm 07 V p-p)
2 GREEN
Green Video (75 ohm 07 V p-p)
3 BLUE
Blue Video (75 ohm 07 V p-p)
4 ID2
Monitor ID Bit 2
5 GND
Ground
6 RGND
Red Ground
7 GGND
Green Ground
8 BGND
Blue Ground
19
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
20
23-Kit Altera Development amp Education Board 1 (Kit DE2)
231-Layout e Componentes
Uma fotografia do Kit DE2 eacute mostrado na Figura 9 onde se ve a aparencia do kit e as
indicaccedilotildees das localizaccedilatildeo dos componentes e conectores
Figura 9 ndash O kit DE2 (DE2_UserManualpdf 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 eacute listado os componentes fornecidos na placa do Kit DE2
Tabela 4 ndash Lista dos componentes do Kit DE2 (DE2_UserManualpdf contrado no cd do kit)
1 Altera Serial Configuration device ndash EPCS4
2 USB Blaster (on board) for programming and user API control both JTAG and Active 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
21
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
PS2 mousekeyboard connector
17
Two 40-pin Expansion Headers with diode protection
18
Powered by either a 75V DC adapter or a USB cable
232 Diagrama de Blocos do Kit DE2
Figura 10 ndash Diagrama de Blocos do KIT DE2 (DE2_UserManualpdf contrado no cd do kit)
22
A Tabela 5 mostra a informaccedilatildeo detalhada do Bloco Cyclone II FPGA 2C20 mostrado na
Figura 10
Tabela 5 ndash Detalhes do FPGA Cyclone II
FPGA Cyclone II 2C35
18752 LErsquos
52 M4K RAM blocks 240K total RAM bits 26 embedded multipliers 4 PLLrsquos 315 user IO pinrsquos FineLine BGA 484-pin package
A Tabela 6 mostra a informaccedilatildeo detalhada do Bloco do dispositivo de configuraccedilatildeo Serial e
circuito Usb-Blaster
Tabela 6 - Descriccedilatildeo das configuraccedilotildees que satildeo feitas atraveacutes da Serial e Usb-Blaster
Configuraccedilatildeo do dispositivo Serial e do Circuito Usb-Blaster Configuraccedilatildeo do dispositivo serial Altera EPCS4 On-Board Usb-Blaster
para Controle de API de usuaacuterio e programaccedilatildeo
JTAG e AS satildeo os modos do programaccedilatildeo suportados
A Tabela 7 mostra a descriccedilatildeo do Bloco da SRAM
Tabela 7 ndash Descriccedilatildeo do Bloco da SRAM
SRAM 512-Kbyte Static RAM memory chip Organizado em 256K x 16 bits Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 8 mostra a descriccedilatildeo do Bloco da SDRAM
Tabela 8 - Descriccedilatildeo do Bloco da SDRAM
SDRAM 8-Mbyte Single Data Rate Synchronous Dynamic RAM memory chip Organizado em 1M x 16 bits x 4 Banks Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
23
A Tabela 9 mostra a descriccedilatildeo do Bloco Memory Flash
Tabela 9 ndash Descriccedilatildeo da Memoria Flash
Memory Flash
4-Mbyte NAND Flash memory 8-bit data bus Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 10 mostra a descriccedilatildeo do Bloco SD card socket
Tabela 10 - Descriccedilatildeo do SD card socket
SD card socket Fornece o modo SPI para o acesso ao cartatildeo SD Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 11 mostra a descriccedilatildeo 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) Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 12 mostra a descriccedilatildeo dos Clock inputs
Tabela 12 - Descriccedilatildeo das entradas de Clocks
Clock inputs Oscilador de 50 Mhz Oscilador 27 Mhz Entrada para clock
externo
A Tabela 13 mostra a descriccedilatildeo do Aacuteudio CODEC
Tabela 13 - Descriccedilatildeo do Aacuteudio CODEC
Aacuteudio CODEC 4-Mbyte NAND Flash memory 8-bit data bus Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
24
A Tabela 14 mostra a descriccedilatildeo do Bloco VGA DAC
Tabela 14 ndash Descriccedilatildeo da saiacuteda VGA DAC
VGA
DAC
Usa 4 bits DAC para cada cor (RGB) Com 15 pinos no conector VGA convencional (fecircmea) Suporta uma resoluccedilatildeo de 640 x 480 com um refresh de ateacute 100Hz Pode ser usando com o FPGA Cyclone II para implementar um Encoder para TV
A Tabela 15 mostra a descriccedilatildeo do Bloco Serial Ports amp PS2
Tabela 15 ndash Descriccedilatildeo da Serial Port e PS2
Serial Ports amp PS2 Uma porta RS-232
Uma posta PS2 Um conector Serial para a porta do RS-232 Conector PS2 para conectar um mouse ou teclado ao DE2
A Tabela 16 mostra a descriccedilatildeo do Bloco dos Two 40 - pin expansion headers
Tabela 16 ndash Descriccedilatildeo dos conectores de expansatildeo de 40 pinos
Two 40 - pin expansion headers 72 pinos de IO do Clyclone II bem como 8 power e groundrsquos satildeo trazidos aos 2 conectores de expansatildeo de 40 pinos cada Os conectores de 40 pinos tambeacutem aceitam os cabos IDE de 40 pinos Proteccedilatildeo resistiva eacute fornecida
233 Endereccedilo das Pinagens dos Componentes usados no Projeto
2331 PushButtons
A Figura 11 mostra uma foto dos PushButtons do kit Key[30] a ordem eacute o button da
esquerda eacute o mais significativo e o mais de direita o menos signigicativo
Figura 11 ndash Os 4 PushButtons do DE2Key[30] (DE2_UserManualpdf contrado no cd do kit)
25
A Tabela 17 mostra os pinos da FPGA aos PushButtons
Tabela 17 ndash Pinos da FPGA referentes a cada PushButton (DE2_UserManualpdf contrado no cd do kit)
2332 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 ndash Modulo de displays de 7 segmentos (DE2_UserManualpdf encontrado no cd do kit)
Figura 13 ndash Index de um display (DE2_UserManualpdf encontrado no cd do
kit)
26
A Tabela 18 mostra os pinos da FPGA referente a cada segmento dos displays de 7
segmentos do modulo
Tabela 18 ndash Pinos da FPGA referentes a cada segmento dos Displays do modulo
27
2333 VGA
A Figura 14 esta em forma de onda da temporizaccedilatildeo horizontal e vertical da VGA do Kit
DE2
Figura 14 ndash Temporizaccedilatildeo horizontal da VGA
A Tabela 19 mostra a especificaccedilatildeo da temporizaccedilatildeo horizontal da VGA
Tabela 19 ndash Especificaccedilatildeo da temporizaccedilatildeo horizontal da VGA
A Tabela 20 mostra a especificaccedilatildeo da temporizaccedilatildeo vertical da VGA
Tabela 20 ndash Especificaccedilatildeo da temporizaccedilatildeo vertical da VGA
28
A Tabela 21 mostra os pinos da FPGA referente a cada pino de saida do conector VGA do
Kit DE2
Tabela 21 ndash Pinos da FPGA referentes a saiacuteda do Conector VGA do Kit
29
CAPIacuteTULO 3 ndash ESPECIFICACcedilAtildeO TECNICA
Nesse capiacutetulo tem-se uma descriccedilatildeo dos principais moacutedulos do projeto Satildeo eles Software
Firmware e Hardware
Inicialmente eacute apresentada a visatildeo geral do sistema e a descriccedilatildeo funcional de cada moacutedulo
A Figura 15 apresenta o diagrama em blocos do sistema
Figura 15 - Moacutedulos do projeto
31 Descriccedilatildeo de Software
O Software eacute uma das interfaces com o usuaacuterio
312 Diagrama de Blocos do Software
30
312 Modulo do PC
Neste modulo eacute 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
32 Descriccedilatildeo de Hardware
321 Modulo Touch-Screen
O usuaacuterio ao tocar o Touch-Screen (AT4 touch-screen resistivo de 4 fios) ocorre uma
mudanccedila nas tensotildees do eixo X e do eixo Y devido a resistecircncia gerada pelo ao toque do usuaacuterio
em uma determinada regiatildeo da tela essa mudanccedila de tensatildeo eacute interpretada pela placa
controladora COACh IIs do Touch-Screen e enviada via serial para o Kit DE2 que interpretaraacute
os dados e faraacute o devido processamento
322 Modulo FPGA
O Hardware corresponde tanto aos componentes fiacutesicos presentes no kit de desenvolvimento
quanto aos componentes que seratildeo configurados na FPGA Satildeo diversos componentes escritos
em linguagem de descriccedilatildeo de hardware
No um dos principais componentes de hardware utilizado modulo eacute o processador NIOS II
para se ter uma ideacuteia o processador NIOS II eacute capaz gerenciar os dispositivos externos a FPGA
utilizando controladores de memoacuterias controladores de VGA entre outros E tambeacutem eacute possiacutevel
o proacuteprio usuaacuterio criar seu componente para ser controlado atraveacutes do processador NIOS
II(Altera 2007)
31
3221 O Processador NIOS II
Atraveacutes do software SOPC da ALTERA foi possiacutevel montar a arquitetura de hardware do
processador NIOS II bem como especificar as interfaces que ele iraacute controlar atraveacutes do firmwar
feito no NIOS II IDE
Na Tabela 22 eacute no campo Module Name onde estatildeo os moacutedulos que foram usados para
definir o processador NIOS II e os componentes externos que ele iraacute controlar e no campo
Description esta a descriccedilatildeo do nome de cada modulo
Tabela 22 ndash Moacutedulos dos componentes e suas descriccedilotildees
3222 Firmware para o NIOS II
O Firmware foi feito utilizando a linguagem C utilizando a ferramenta NIOS II IDE Atraveacutes
do firmware eacute possiacutevel 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 graacuteficas para controlar a vga e serial e
USB-BLASTER eacute encarregado em enviar todo o desenvolvimento do projeto para o Kit DE2
323 Configuraccedilatildeo da FPGA via JTAG
Depois de configurado o hardware do processador NIOS II eacute preciso fazer o load do NIOS
para a FPGA e para que isso aconteccedila eacute necessaacuterio que atraveacutes do software Quartus II da
ALTERA utilizando a interface JTAG utilizando o cabo USB-BLASTER
32
324 Comunicaccedilatildeo entre FPGA e o Touch-Screen
Para comunicaccedilatildeo entre dos dois hardwares Touch-Screen e o FPGA eacute utilizando uma
interface serial RS-232
A configuraccedilatildeo da interface eacute a seguinte
Bits de dados 8
Taxa de dados 5600(bps)
A Tabela 23 mostra a relaccedilatildeo dos pinos da porta serial com os pinos da FPGA
Tabela 23 ndash Pinos da FPGA referente agrave pinagem da interface Serial
E a Figura 16 mostra o desenho correspondente da interface serial
Figura 16 ndash Conector da interface serial do kit DE2
33 Especificaccedilatildeo de Validaccedilatildeo
331 Validaccedilatildeo de Hardware
A validade do hardware se faz com a anaacutelise de todos os moacutedulos envolvidos
As necessidades satildeo estudadas os componentes externos ao FPGA satildeo selecionados de
acordo o processador nios e os controladores dos moacutedulos externos como VGA e SERIAL satildeo
enviados ao modulo FPGA
Os resultados obtidos na tela do monitor e a recepccedilatildeo dos dados pela serial comprovam o
funcionamento do modulo de comunicaccedilatildeo da serial e vga
33
332 Validaccedilatildeo de Software
A validaccedilatildeo do controle da interface touch-screen faz-se a partir dos resultados obtidos das
funccedilotildees escritas na linguagem C especificas para cada componente externos ao FPGA essas
funccedilotildees tornam possiacuteveis que o processador NIOS na FPGA tenha total controle sobre os
moacutedulos externos como a VGA e a SERIAL
As funccedilotildees que satildeo utilizadas para validar o funcionamento do software satildeo para a VGA os
meacutetodos de controle (alt_up_vga_draw_char_1b( char int x int y)) e (alt_up_vga_draw_pixel(
color x y))
O meacutetodo (alt_up_vga_draw_char_1b( char int x int y)) tem a funcionalidade de escrever
caracteres na tela do monitor e a descriccedilatildeo da sua assinatura ldquoparacircmetrosrdquo eacute a seguinte char eacute o
caractere que eacute escrito em alguma posiccedilatildeo na tela int x eacute a posiccedilatildeo x da tela do monitor e int y eacute
a posiccedilatildeo y da tela do monitor sendo que a resoluccedilatildeo utilizada eacute de 80x60 ou seja x natildeo pode
passar de 80 e y natildeo pode passar de 60
O meacutetodo (alt_up_vga_draw_pixel( color int x int y)) tem a funcionalidade de ldquopintarrdquo o
fundo da tela do monitor o meacutetodo de imprimir caracteres tem preferecircncia sobre este meacutetodo ou
seja os caracteres sempre ficam sob a aacuterea pintada ou seja o caractere sempre ficara em cima da
aacuterea pintada a descriccedilatildeo da assinatura deste meacutetodo eacute a seguinte color eacute a valor da cor que pode
ser um valor inteiro ou em hexadecimal para definir uma cor de alguma posiccedilatildeo da tela definidos
pelos paracircmetros x e y
As funccedilotildees que satildeo utilizadas para validar o funcionamento do software satildeo para a Serial os
meacutetodos de controle de transmissatildeo (fread( packet sizeof(packet) 1 serial_fp )) a funccedilatildeo
fread eacute utilizada para a leitura via interrupccedilatildeo dos pacotes que a controladora envia para o kit
DE2 as assinaturas do meacutetodo fread tem a seguinte composiccedilatildeo packet eacute a estrutura do pacote
que seraacute recebido o sizeof(packet) eacute o diz qual eacute o tamanho exato da estrutura criada e o
serial_fp eacute o handle da porta serial
Uma observaccedilatildeo muito importante eacute que para o total funcionamento eacute necessaacuterio 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 rs232h e rs232c onde estatildeo os meacutetodos de
controle da SERIAL e alt_up_vgah alt_up_vgac onde estatildeo os meacutetodos de controle para a
VGA Para tornar estes meacutetodos acessiacuteveis eacute preciso fazer os includes dos arquivos h no
projeto da NIOS IDE
A figura 17 mostra a utilizaccedilatildeo dos meacutetodos (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
34
int y)) utlizado para escrever os caracteres lsquoarsquo e lsquobrsquo dentro de um grupo de pixel previamente
pintado a (alt_up_vga_draw_pixel( color int x int y)) natildeo pinta um pixel de cada vez e sim
um bloco de 8x8 pixels
Figura 17 - Tela para a validaccedilatildeo dos testes com as bibliotecas graacuteficas do componente VGA
34 Recursos Necessaacuterios
A Tabela 24 apresenta os ambientes de desenvolvimento e ferramentas de software utilizadas
e na Tabela 25 as linguagens necessaacuterias Estas ferramentas foram utilizadas em ambiente
Windows Xp
Tabela 24 - Ferramentas de Desenvolvimentos e Ambientes
Software Para que foi Utilizado
Quartus II Para a definiccedilatildeo de qual o modelo de FPGA utilizado compilaccedilatildeo e simulaccedilatildeo e envio Load do NIOS para FPGA
SOPC Para definiccedilatildeo da do processador NIOS II e com quais componentes externos ele ira interagir atraveacutes dos controladores dos respectivos componentes
NIOS II IDE Para implementaccedilatildeo do firmware do processador NIOS II utilizando a linguagem em C
35
Borland C++ Builder Para desenvolvimento de ima interface de comunicaccedilatildeo via caboUSB-
BLASTER para o envio de imagem para o kit
Tabela 25 ndash Linguagens de programaccedilatildeo utilizadas
Linguagem Ferramenta C++ Borland C++ Builder VerilogVHDL Quartus II C NIOS II IDE
35 Viabilidade Teacutecnico-Econocircmica
O valor do projeto esta descrito na Tabela 26
Tabela 26 ndash Relaccedilatildeo dos Custos
DESCRICcedilAtildeO CUSTO APROXIMADO (R$) COMPONENTES ELETROcircNICOS 50000 1 Kit DE2 Cyclone II 35000 1 Monitor de Computador 35000 HORAS TRABALHADAS (400 horas) 750000 CUSTO TOTAL APROXIMADO (R$) 870000
36 Cronograma do Projeto
A tabela 27 contem as informaccedilotildees do cronograma do projeto
Tabela 27 ndash Cronograma de datas e entregas do projeto
Data Atividade a ser apresentada 050307 Entrega das propostas de projeto para avaliaccedilatildeo do colegiado 020407 Entrega das especificaccedilotildees teacutecnicas do projeto aprovado 110607 Entrega do projeto (monografia) e dos testes preliminares do mesmo 060807 Apresentaccedilatildeo preacutevia da implementaccedilatildeo do projeto especificado 011007 Apresentaccedilatildeo do projeto implementado
Qualificaccedilatildeo para a fase final 291007 Segunda apresentaccedilatildeo do projeto implementado para os que natildeo o fizeram no
dia 011006 com decreacutescimo da nota Qualificaccedilatildeo para a fase final
051107 Entrega da documentaccedilatildeo completa em espiral para a banca examinadora em 3 vias contendo a monografia manual teacutecnico manual do usuaacuterio e artigo cientiacutefico
261107 Defesa formal dos projetos com apresentaccedilatildeo oral para a banca examinadora 101207 Entrega da documentaccedilatildeo completa revisada e corrigida encadernada no
padratildeo da biblioteca (capa dura) em duas vias contendo a monografia manual teacutecnico manual do usuaacuterio e artigo cientiacutefico Entrega do CD contendo no formato WEB todo o conteuacutedo dos manuais
36
CAPIacuteTULO 4 ndash ESPECIFICACcedilAtildeO TECNICA
41 Requisitos Miacutenimos
Os requisitos miacutenimos de Hardware satildeo
Funcionamento das interfaces Serial e USB-Blaster
Funcionamento do Kit DE2
PC
Os requisitos miacutenimos de Software
Windows Xp
Quartus II
SOPC
NIOS II IDE
42 Projeto de Hardware
O hardware utilizado nesse projeto inclui componentes presentes na Placa de
Desenvolvimento Nios II - ediccedilatildeo DE2 Cyclone II EP2C35 e principalmente o hardware que seraacute
configurado na FPGA escrito em linguagem de descriccedilatildeo de hardware (HDL)
O um dos principais blocos de hardware eacute o processador NIOS II o Avalon Bus e os
controladores de componentes externos a FPGA e de comunicaccedilatildeo presentes no Kit
37
O software embarcado (firmware) estaraacute rodando nessa arquitetura Eacute uma arquitetura
completa construiacuteda com a ferramenta SOPC Builder da Altera A Figura 18 representa em
blocos os principais componentes dessa arquitetura
Figura 18 ndash Representaccedilatildeo em blocos do hardware do NIOS II
421 Funcatildeo do Touch-Screen
Outro bloco importante eacute o do Touch-Screen esta tela sensiacutevel ao toque pois como esta tela
trabalha com resistecircncia ao ser tocado em uma determinada regiatildeo uma resistecircncia eacute gerada e a
tensatildeo de saiacuteda eacute modificada a alimentaccedilatildeo desta placa eacute proveniente de sua placa controladora
a mesma placa que recebe a tensatildeo de saiacuteda modificada de acordo com a regiatildeo tocada na tela
Para verificar as caracteriacutesticas detalhadas do Touch-Screen e sua placa controlador favor ver
o Capitulo 2
422 Monitor e VGA
O Monitor inicialmente tem apenas o desenho de um botatildeo que ao ser tocado via touch
mudara a cor de toda a tela A imagem exibida no monitor tem uma resoluccedilatildeo de
38
Protoacutetipo das telas para os testes esta na Figura 19 a tela verde quando a touch natildeo eacute tocando
na regiatildeo do botatildeo de OK quando o botatildeo de OK for tocado a tela do monitor mudara de cor
ficando azul
Figura 19 ndash Tela do monitor
No Capitulo 2 estatildeo todas as caracteriacutesticas da pinagem e do conector VGA
423 Comunicaccedilatildeo serial
Entre a placa controladora do Touch-Screen e o FPGA existe uma comunicaccedilatildeo 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 manipulaccedilatildeo da imagem que eacute
mostrada no monitor
No capitulo 2 estatildeo das descriccedilotildees dos pinos e do conector da comunicaccedilatildeo Serial
O pacote serial que eacute transmitido pela placa controladora do touch-screen possui 10 bytes de
comprimento e segue a seguinte sequumlecircncia de envio
[55] [54] [] [] [] [] [] [] [] []
Sequumlecircncia dos bytes
Os dois primeiros bytes identificam o Header do pacote
O terceiro byte eacute 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 agrave posiccedilatildeo do eixo x onde a tela foi tocada
O sexto e o seacutetimo byte correspondem a posiccedilatildeo do eixo y onde a tele foi tocada
O restante os bytes identificam o tail do pacote recepcionado pelo kit DE2
39
424 Comunicaccedilatildeo USB-Blaster
Essencial para envio do projeto desenvolvido para o kit DE2 tambeacutem muito utilizado para o
debug deste projeto
435 Memoacuteria SDRAM
A memoacuteria utilizada para armazenar grandes quantidades de dados eacute a SDRAM (ver detalhes
no Capitulo 2)
Essa memoacuteria eacute muito raacutepida serviu muito bem para armazenar o firmware deste projeto
pois tem o tempo acesso ideal para ler as instruccedilotildees que utilizaram a VGA e tambeacutem eacute raacutepida o
suficiente para fazer a leitura dos dados e disponibilizar na saiacuteda VGA do kit
426 Memoacuteria FLASH
Eacute onde seraacute armazenado o firmware possui espaccedilo suficiente para isso 4MB e uma memoacuteria
mais lenta e por isso natildeo foi usada para armazenar dados para serem jogados na vga do Kit
43 Software
431 Software (Firmware)
O software tem de funccedilatildeo de utilizar as bibliotecas das controladoras dos componentes
externos a fim de controlar estes componentes de acordo com o necessaacuterio para atender o
objetivo do projeto
Ou seja uma tela inicial eacute apresentada e o usuaacuterio ao tocar na nela o kit recebe um pacote via
serial e interpreta a posiccedilatildeo da tela em que foi tocado e logo em seguida envia o resultado deste
toque para o monitor
432 Objetivos
O usuaacuterio 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 accedilatildeo de acordo com a posiccedilatildeo da tela
tocada alterando assim a imagem anterior com o resultado do toque
Interpretar o toque de usuaacuterio na tela touch-screen recepccedilatildeo do pacote via serial da placa
controladora do touch-screen tratamento do pacote e interpretaccedilatildeo das coordenadas x e y do
40
toque Realizaccedilatildeo de alguma accedilatildeo que resultara na alteraccedilatildeo da imagem da tela atual de acordo
com a funccedilatildeo em que as coordenadas foram previamente definidas para o que deve ser feito
432 Funccedilotildees
A Tabela 28 tem as principais funccedilotildees que foram implementadas para o sistema
Tabela 28 ndash Funccedilotildees do sistema firmware
FUNCcedilOtildeES Tela de um pequeno editor de texto Tratamento do sinal recebido da serial devido a um toque na tela Interpretaccedilatildeo do pacote serial e transfomaccedilatildeo para coordenadas x e y Transformaccedilatildeo das posiccedilotildees do toque na tela em alguma accedilatildeo enviando o resultado para a VGA Imagem final disponibilizada ao usuaacuterio de acordo com o toque que foi dado na tela Controlar dispositivos cada dispositivo pode ser controlado pelo seu respectivo contrador atraveacutes de seu endereccedilo base VGA SERIAL USB-BLASTER IO(Leds Switches etc) do Kit DE2
O Firmware do processador NIOS II eacute que realizaraacute a integraccedilatildeo entre hardware com
hardware Com o firmware controlando o NIOS II eacute possiacutevel interagir com os dispositivos
externos a FPGA Tornando possiacutevel a integraccedilatildeo da FPGA com a peliacutecula touch-screen e um
monitor sem a ajuda de um PC a uacutenica ajuda do pc seria para enviar dados de uma imagem para
o Kit DE2
44 Validaccedilatildeo e Testes
Inicialmente os moacutedulos da VGA e comunicaccedilatildeo SERIAL natildeo estavam funicionando
apenas o devido agrave fraca documentaccedilatildeo sobre o kit DE2 foi possiacutevel apenas fazer testes com o
Processador NIOS II pois sobre este existem bastantes documentos e exemplos que podem ser
utilizados
Nesta primeira parte foi possiacutevel testar o NIOS II para controlar o display bototildees e switchs
do kit DE2
Com o NIOS II funcionando completamente foi necessaacuterio porta-lo para o kit DE2 o que foi
simples pois como sabemos esses kits satildeo portaacuteveis entre si apenas mudando a pinagem e a
capacidade da FPGA
Com o Kit DE2 foi possiacutevel fazer os testes necessaacuterios com a comunicaccedilatildeo serial
inicialmente testada via terminal conversando diretamente com o kit foi possiacutevel fazer o
seguinte teste os caracteres que eram entrados via teclado chegavam ao kit via serial e o o
41
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 comdumpexe que eacute facilmente encontrado pelas ferramentas
de pesquisa da web e tambeacutem existem vario outros programas como este e o comdump eacute
utilizado para debug da porta serial do pc conectado diretamente na placa controladora do touch-
screen e foi a peccedila chave para o entendimento do pacote enviado pela placa controladora
Figura 20 - Cumdumpexe programa de debug da porta serial
A explicaccedilatildeo de cada byte do pacote esta explicado no item 423
Apos o entendimento completo da transmissatildeo 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 natildeo 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 ateacute o momento em que
foi testado os meacutetodos proprietaacuterios da Altera para fazer a VGA funcionar os meacutetodos esses
implementados em C
A figura 21 onde contem o teste baacutesico feito que foi a chave principal para o sucesso deste
projeto
42
Como dito no item 332 do projeto foram utilizados as funccedilotildees da controladora VGA esses
meacutetodos 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 eacute utilizado o meacutetodo alt_up_vga_draw_pixel( color int
x int y) onde color eacute a cor do bloco de pixels e x e y satildeo as coordenadas da tela onde o bloco
que seraacute pintado
Para escrever um caractere sobre um bloco de pixels pintado eacute utilizado a funccedilatildeo
alt_up_vga_draw_char_1b( char int x int y) onde char eacute o caractere a ser impresso e x e y satildeo
as coordenadas da tela onde os o caractere eacute impresso
Figura 21 - Teste baisco do funcionamento do componente VGA do kit DE2
43
CAPIacuteTULO 5 ndash VALIDACcedilAtildeO E RESULTADOS
Os resultados foram os melhores possiacuteveis pois com a utilizaccedilatildeo dos IP CORE
ldquocontroladorasrdquo dos componentes externos como VGA e SERIAL e seus meacutetodos de para
controle eacute possiacutevel controlar facilmente esses moacutedulos atraveacutes do firmware desenvolvido para o
processador NIOS que consegue realizar operaccedilotildees transparentes acessando dos meacutetodos de
controle dos moacutedulos
Apos os testes baacutesicos 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 baacutesico de editor de texto
A figura 22 mostra um teste utilizando os meacutetodos de controle disponiacuteveis para o IP CORE
da VGA para primeiramente fazer o menu da aplicaccedilatildeo desenvolvido em na linguagem C
Figura 22 ndash Menu baacutesico do editor de texto
Para desenhar o menu da figura acima foi utilizado os meacutetodos proprietaacuterios de controle da
VGA citados no capitulo 4 e tambeacutem estruturas de repeticcedilatildeo para que a tela fosse varrida e os
pixels desenhados nos respectivos lugares da tela bem como os caracteres
Na figura 23 eacute definida a seguinte estrutura em C para representar de um botatildeo
Figura 23 - Estrutura em C para representar um botatildeo
44
A figura 24 eacute a declaraccedilatildeo dos bototildees que seratildeo utilizados pelo aplicativo editor de texto
para comprovar o funcionamento do controle da interface touch-screen
Apenas o que esta dentro da marcaccedilatildeo quadrada representa os bototildees do menu da figura 23
e o restante satildeo os bototildees do teclado do editor de texto
Figura 24 - Declaraccedilatildeo dos bototildees do menu
45
A figura 25 representa o meacutetodo drawnButtonUp responsaacutevel por desenhar os bototildees na tela
de acordo com as posiccedilotildees em que foram declarados os bototildees deste meacutetodo satildeo desenhados
para parecerem que estatildeo ldquolevantadosrdquo e natildeo pressionados
Note que foram utilizados os meacutetodos proprietaacuterios de controle da VGA
alt_up_vga_draw_pixel pra pitar os pixels e alt_up_vga_draw_char_b1 para desenhar caracteres
como jaacute foi especificado no item 44 do projeto
Figura 25 ndash Meacutetodo drawButtonUp
46
O meacutetodo que desenha o caption do botatildeo se chama drawButtonText desenha os caracteres
em cima dos bototildees natildeo importa se o botatildeo esta pressionado ou natildeo
A figura 26 mostra como este meacutetodo foi implementado e ele eacute chamado no final de cada
meacutetodo onde algum tipo de botatildeo eacute desenhado quando o meacutetodo que desenha o botatildeo normal
quanto o pressionado e ateacute mesmo o do teclado
Figura 26 ndash Meacutetodo que escreve o caption de cada botatildeo
47
A figura 27 mostra o meacutetodo drawButtonDown que desenha o botatildeo pressionado ou seja
quando o usuaacuterio pressiona a regiatildeo correspondente a um botatildeo do menu no touch-screen o
mesmo redesenharaacute o botatildeo parecendo um efeito de botatildeo afundado note que no final do
meacutetodo novamente eacute chamado o meacutetodo drawButtonText que reescreveraacute o caption do botatildeo
como mostra o meacutetodo da figura 26 e esta ilustrado na figura 28
Figura 27 ndash Meacutetodo que desenha o botatildeo pressionado
48
Dependendo da aacuterea do menu que o usuaacuterio pressionar no touch-screen causar o efeito de
pressionado como mostra a figura 28
Figura 28 ndash Efeito do botatildeo de menu apertado
Na figura 29 eacute a representaccedilatildeo de quando a aacuterea correspondente ao botatildeo ldquoamarelordquo eacute
pressionada
Apos estes testes baacutesicos comprovando o funcionamento da interface graacutefica para o usuaacuterio
foi definido o restante dos componentes da tela que eacute constituiacutedo de um prompt e um teclado
qwerty que foi essencial para comprovar o perfeito funcionamento do controle da interface
touch-screen
49
51 Interface Grafica Final
A figura 29 mostra a interface final que o usuaacuterio teraacute para poder verificar o funcionamento
do controle da interface touch-screen
Figura 29 ndash Interface final touch-screen do usuaacuterio
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
511 Descriccedilatildeo do editor de texto
O menu possui 4 botoes cada um com sua respectiva funcionalidade quando o usuario
pressiona a area do botatildeo ldquoapagarrdquo uma vez entatildeo um carectere do prompt eacute apagado Quando eacute
precionado a area correspondente ao botatildeo ldquoResetrdquo todo o conteudo do prompt seraacute apagado e o
plano de fundo retornaraacute a cor branca Quando o botatildeo ldquoamarelordquo eacute pressionado o fundo da tela
passa a ser amarelo e o mesmo acontece se o usuario precionar o botatildeo verde tornando o cor de
fundo verde
50
O teclado possui 29 teclas sendo duas delas que equivalem ao ENTRA ldquoENTrdquo e ao
SPACE ldquoSPCrdquo Quando o usuario pressiona a area correspondente a algum botatildeo do teclado o
mesmo muda sua cor para azul e o seu caractere eacute disponibilizado no prompt
Essas funcionalidades nada mais satildeo do que um bom exemplo de como funciona
corretamente o controle da interface touch-screen
52 Prompt e o Teclado
A estrutura feita na linguagem C que define o prompt da figura 28 esta representado na
figura 30
Figura 30 ndash Estrutura em C para representar o prompt
A figura 31 mostra o metodo drawPrompt utilizado para desenhar na tela o prompt
Figura 31 ndash Meacutetodo que desenha o prompt
51
A estrutura do teclado eacute a mesma utilizada pela figura 23 e tambem eacute criado satildeo
inicializados na figura 24
O restante as implementaccedilotildees estatildeo disponiveis no cd deste documento
Quando algum botatildeo do teclado eacute pressionado sua cor muda para azul e sua letra
correspondente eacute escrita o prompt
A figura 32 ilustra quando o usuaacuterio aperta a letra lsquotrsquo na peliacutecula touch-screen
Figura 32 - Teste do prompt e o teclado
52
53 Controle da Interface Touch-Screen
Depois do todos os testes com o processador NIOS e a integraccedilatildeo do mesmo com os
moacutedulos externos como a porta SERIAL e a saiacuteda VGA eacute possiacutevel utilizando o touch-screen
criar uma interface amigaacutevel e faacutecil de usar para o usuaacuterio utilizando um firmware capaz de
interpretar os sinais via serial vindo da controladora do touch ao detectar que um toque foi dado
pelo usuaacuterio e realizar algumas accedilotildees que neste caso se comportam como um editor de texto
baacutesico
A figura 33 mostra como foi validado este projeto e seus moacutedulos controlando uma
interface touch-screen para chegar no resultado abaixo digitado pelo usuaacuterio comprovando o
funcionamento e viabilidade deste projeto
Figura 33 ndash 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 mudanccedilas podendo ser alterado rapidamente o tipo de
aplicaccedilatildeo ou integrado rapidamente com outro projeto
53
CAPIacuteTULO 6 - CONCLUSAtildeO
Uma das principais dificuldades no desenvolvimento deste projeto foi fazer o levantamento
da documentaccedilatildeo sobre o processador NIOS e os moacutedulos externos a FPGA do Kit DE2 Como
natildeo foi feito algum projeto antes que utilizasse a interface VGA e a SERIAL do Kit DE2 levou-
se muito tempo ateacute conseguir adquirir e ordenar o conhecimento que foi sendo adquirido ateacute
conseguir dar os primeiros passos e realizar os primeiros testes com a VGA e a SERIAL Outro
grande obstaacuteculo foi ter de descobrir que para que o NIOS controlasse os moacutedulos externos a
FGPA fosse necessaacuterio copiar os arquivos c e h dos respectivos componente para dentro do
projeto
Mas depois de todos os problemas com os moacutedulos externos solucionados cada modulo do
projeto foi sendo desenvolvido separadamente ateacute seu total funcionamento Natildeo tive dificuldades
com a linguagem da programaccedilatildeo pois o Firmware do processador NIOS eacute o C a qual mais tive
contato na faculdade
Outro desafio foi fazer a peliacutecula 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
peliacutecula natildeo 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 possiacutevel
comeccedilar a fazer os testes necessaacuterios para prosseguir com o projeto aprender como o a peliacutecula
identifica um toque e manda este sinal para a controladora e a controladora transforma este sinal
em um sinal serial que eacute 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 accedilotildees
que as coordenadas jaacute estatildeo previamente calibradas no firmware para fazer bem como mudar de
cor a tela fazer o efeito de um botatildeo subindo e descendo etc
Varias vezes o projeto parou de funcionar entatildeo 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 memoacuteria abundante etc uma das
facilidades eacute a faacutecil alteraccedilatildeo do projeto podendo ser integrado a outro ou ateacute mesmo alterado
para realizar outros tipos de accedilotildees com o touch-screen
Existem vaacuterios melhoramentos que podem ser executados no projeto um deles eacute tentar
interpretar de uma maneira diferente os valores do eixo y pois do jeito que esta a resoluccedilatildeo do
eixo y esta muito baixa dificultando o reconhecimento de toques em aacutereas pequenas Talvez a
inclusatildeo de mais alguns bytes no pacote de leitura da serial resolva o problema
54
Uma ideacuteia para um proacuteximo projeto que use a interface touch-screen poderia ser a
integraccedilatildeo com o projeto do nosso colega Roberto Junqueira ou a desenvolvimento de uma
placa controladora para o touch-screen
Este trabalho eacute uma modesta contribuiccedilatildeo para o uso de FPGAs e do processador embarcado
NIOS implementado em VHDL pela Altera que acredito que vai abrir vaacuterios caminhos pois
com este projeto alguns caminhos ficaram mais faacuteceis de percorrer daqui para a frente
55
CAPIacuteTULO 7 - REFEREcircNCIAS BIBLIOGRAacuteFICAS
AMORE Roberto drsquo VHDL Descriccedilatildeo e Sintese de Circuitos Rio de Janeiro ed LTC
2005
Elotouch Touch-Screen e Controladora Descriccedilatildeo do funcionamento e descriccedilatildeo
tecnologia Touch-Screen lthttpwwwelotouchcombrgt Acesso em fevereiro de 2007
ALTERA University Program IP Cores Instalaccedilatildeo de IP Cores e referencias sobre os
componentes dos kits DE1 e DE2 Disponivel em lthttpwwwalteracomeducationunivip-
coresunv-ip-coreshtmlgt Acesso em abril de 2007
ALTERA NIOS II Documentaccedilatildeo sobre o pprocessador embracado NIO II Disponivel
em lthttpwwwalteracomproductsipprocessorsipm-indexjspgt Acesso em Abril de 2007
ALTERA Development amp Education Board 2 (DE2) Manual do usuario Disponivel no
de que acompanha o Kit DE2 ltDE2_user_manualDE2_UserManualpdfgt Acesso em
fevereiro de 2007
TOUCH-SCREEN INTERFACE
ABSTRACT
With the technological advance of reconfigurable devices especially FPGAs the
accomplishment of hardware updates was extremely facilitated This way isnt 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 andor 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
SUMAacuteRIO
CAPIacuteTULO 1 - INTRODUCcedilAtildeO 12
CAPIacuteTULO 2 ndash FUNDAMENTACcedilAtildeO TEOacuteRICA 14
21-Touch Screen 14
211 Placa e chip da Controladora do Touch-Screen 16
212 Pinagens e descriccedilatildeo do Touch-Screen e da Placa Controladora 17
22-Video 18
23-Kit Altera Development amp Education Board 1 (Kit DE2) 20
231-Layout e Componentes 20
232 Diagrama de Blocos do Kit DE2 21
233 Endereccedilo das Pinagens dos Componentes usados no Projeto 24
2331 PushButtons 24
2332 Modulo dos Displays de 7 Segmentos 25
2333 VGA 27
CAPIacuteTULO 3 ndash ESPECIFICACcedilAtildeO TECNICA 29
31 Descriccedilatildeo de Software 29
312 Diagrama de Blocos do Software 29
312 Modulo do PC 30
32 Descriccedilatildeo de Hardware 30
321 Modulo Touch-Screen 30
322 Modulo FPGA 30
3221 O Processador NIOS II 31
3222 Firmware para o NIOS II 31
323 Configuraccedilatildeo da FPGA via JTAG 31
324 Comunicaccedilatildeo entre FPGA e o Touch-Screen 32
33 Especificaccedilatildeo de Validaccedilatildeo 32
331 Validaccedilatildeo de Hardware 32
332 Validaccedilatildeo de Software 33
34 Recursos Necessaacuterios 34
35 Viabilidade Teacutecnico-Econocircmica 35
36 Cronograma do Projeto 35
CAPIacuteTULO 4 ndash ESPECIFICACcedilAtildeO TECNICA 36
41 Requisitos Miacutenimos 36
42 Projeto de Hardware 36
421 Funcatildeo do Touch-Screen 37
422 Monitor e VGA 37
423 Comunicaccedilatildeo serial 38
424 Comunicaccedilatildeo USB-Blaster 39
435 Memoacuteria SDRAM 39
426 Memoacuteria FLASH 39
43 Software 39
431 Software (Firmware) 39
432 Objetivos 39
432 Funccedilotildees 40
44 Validaccedilatildeo e Testes 40
CAPIacuteTULO 5 ndash VALIDACcedilAtildeO E RESULTADOS 43
51 Interface Grafica Final 49
511 Descriccedilatildeo do editor de texto 49
52 Prompt e o Teclado 50
53 Controle da Interface Touch-Screen 52
CAPIacuteTULO 6 - CONCLUSAtildeO 53
CAPIacuteTULO 7 - REFEREcircNCIAS BIBLIOGRAacuteFICAS 55
LISTA DE FIGURAS
Figura 1 ndash Touch-Screen final 14 Figura 2 ndash Mascara 15 Figura 3 ndash Vidro 15 Figura 4 ndash Chip COACh IIs 16 Figura 5 ndash Placa Controladora 17 Figura 6 ndash Pinos do Touch-Screen 17 Figura 7 ndashConector para o touch da placa controladora 17 Figura 8 ndash Conector VGA femea do kit DE2 18 Figura 9 ndash O kit DE2 20 Figura 10 ndash Diagrama de Blocos do KIT DE2 21 Figura 11 ndash Os 4 PushButtons do DE2Key[30] 24 Figura 12 ndash Modulo de displays de 7 segmentos 25 Figura 13 ndash Index de um display 25 Figura 14 ndash Temporizaccedilatildeo horizontal da VGA 27 Figura 15 - Moacutedulos do projeto 29 Figura 16 ndash Conector da interface serial do kit DE2 32 Figura 17 - Tela para a validaccedilatildeo dos testes com as bibliotecas graacuteficas do componente VGA 34 Figura 18 ndash Representaccedilatildeo em blocos do hardware do NIOS II 37 Figura 19 ndash Tela do monitor 38 Figura 20 - Cumdumpexe programa de debug da porta serial 41 Figura 21 - Teste baisco do funcionamento do componente VGA do kit DE2 42 Figura 22 ndash Menu baacutesico do editor de texto 43 Figura 23 - Estrutura em C para representar um botatildeo 43 Figura 24 - Declaraccedilatildeo dos bototildees do menu 44 Figura 25 ndash Meacutetodo drawButtonUp 45 Figura 26 ndash Meacutetodo que escreve o caption de cada botatildeo 46 Figura 27 ndash Meacutetodo que desenha o botatildeo pressionado 47 Figura 28 ndash Efeito do botatildeo de menu apertado 48 Figura 29 ndash Interface final touch-screen do usuaacuterio 49 Figura 30 ndash Estrutura em C para representar o prompt 50 Figura 31 ndash Meacutetodo que desenha o prompt 50 Figura 32 - Teste do prompt e o teclado 51 Figura 33 ndash Funcionamento do controle da interface Touch-Screen 52
LISTA DE TABELAS
Tabela 1 ndash Caracteriacutesticas da placa controladora 16 Tabela 2 ndash Pinagem do conector que faz interface entre o touch e a controladora 18 Tabela 3 ndash Descriccedilatildeo dos pinos da VGA 18 Tabela 4 ndash Lista dos componentes do Kit DE2 (DE2_UserManualpdf contrado no cd do kit) 20 Tabela 5 ndash Detalhes do FPGA Cyclone II 22 Tabela 6 - Descriccedilatildeo das configuraccedilotildees que satildeo feitas atraveacutes da Serial e Usb-Blaster 22 Tabela 7 ndash Descriccedilatildeo do Bloco da SRAM 22 Tabela 8 - Descriccedilatildeo do Bloco da SDRAM 22 Tabela 9 ndash Descriccedilatildeo da Memoria Flash 23 Tabela 10 - Descriccedilatildeo do SD card socket 23 Tabela 11 - PushButton switches 23 Tabela 12 - Descriccedilatildeo das entradas de Clocks 23 Tabela 13 - Descriccedilatildeo do Aacuteudio CODEC 23 Tabela 14 ndash Descriccedilatildeo da saiacuteda VGA DAC 24 Tabela 15 ndash Descriccedilatildeo da Serial Port e PS2 24 Tabela 16 ndash Descriccedilatildeo dos conectores de expansatildeo de 40 pinos 24 Tabela 17 ndash Pinos da FPGA referentes a cada PushButton 25 Tabela 18 ndash Pinos da FPGA referentes a cada segmento dos Displays do modulo 26 Tabela 19 ndash Especificaccedilatildeo da temporizaccedilatildeo horizontal da VGA 27 Tabela 20 ndash Especificaccedilatildeo da temporizaccedilatildeo vertical da VGA 27 Tabela 21 ndash Pinos da FPGA referentes a saiacuteda do Conector VGA do Kit 28 Tabela 22 ndash Moacutedulos dos componentes e suas descriccedilotildees 31 Tabela 23 ndash Pinos da FPGA referente agrave pinagem da interface Serial 32 Tabela 24 - Ferramentas de Desenvolvimentos e Ambientes 34 Tabela 25 ndash Linguagens de programaccedilatildeo utilizadas 35 Tabela 26 ndash Relaccedilatildeo dos Custos 35 Tabela 27 ndash Cronograma de datas e entregas do projeto 35 Tabela 28 ndash Funccedilotildees do sistema firmware 40
LISTA DE SIGLAS
CRT - Catodic Ray tube
DE2 - Development amp Educations 1
ES - EntradaSaiacuteda
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 - Nuacutecleo de Ciecircncias Exatas e Tecnoloacutegicas
PC - Personal Computer
PDA - Personal Digital Assistant
PLL - Pulse Logic Loop
SDRAM - Static Dinamic Randomic Acess Memory
TTL - Transistor-transistor Logic
UNICENP - Centro Universitaacuterio Positivo
USB - Universal Serial Bus
USP - Universidade de Satildeo Paulo
VGA - Viacutedeo 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 SIacuteMBOLOS
- ohm
MHz - Mega Hertz
Hz - Hertz
V - Volts
11
12
CAPIacuteTULO 1 - INTRODUCcedilAtildeO
A computaccedilatildeo reconfiguraacutevel vem sendo utilizada em larga escala para projetos de
hardware que necessitem de um grande poder de processamento Neste campo um dispositivo
muito utilizado eacute a FPGA (Field-Programmable Gate Array)
As FPGArsquos satildeo circuitos de hardware que podem ser modificados praticamente em
qualquer momento durante o uso As FPGArsquos consistem em array de blocos loacutegicos
configuraacuteveis que implementam funccedilotildees loacutegicas 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 mudanccedilas raacutepidas no hardware
Em microprocessadores de uso geral se tem um hardware que natildeo pode ser modificado fixo
mas no FPGA essa mudanccedila eacute bastante simples e raacutepida feita via software
Este projeto teve sua proposta lanccedilada a partir da ideacuteia concedida pelo Prof Valfredo Pilla
Junior de interface Touch-Screen
O projeto eacute sobre o controle de uma interface com uma peliacutecula Touch-Screen onde eacute
possiacutevel que o usuaacuterio ao tocar uma peliacutecula sensiacutevel ao toque o sistema desenvolvido possa
realizar algum tipo de alteraccedilatildeo na imagem apresentada em um monitor que se dispotildee atraacutes do
Touch-Screen
O objetivo foi desenvolver um sistema capaz de receber e manipular a aquisiccedilatildeo dos dados
gerados pela placa controladora atraveacutes toque na peliacutecula Touch-Screen que estaraacute na frente da
tela de um monitor converter estes dados realizar uma alteraccedilatildeo na tela inicialmente
apresentada e disponibilizar o resultado da alteraccedilatildeo atualizando a tela do monitor
O hardware do sistema eacute basicamente composto na parte da aquisiccedilatildeo por uma peliacutecula
Touch-Screen e uma placa controladora da proacutepria peliacutecula recepccedilatildeo e processamentos feitos no
Kit DE2 (Development amp Education 1) Board que enviara o resultado atraveacutes da saiacuteda VGA
(Viacutedeo Graphics Array) para um monitor CRT (Catodic Ray tube)
Este sistema eacute justificado pois as interfaces intuitivas com telas Touch-Screen satildeo
utilizadas em uma ampla gama de mercados
Por exemplo
Comeacutercio Realizar um atendimento de forma raacutepida e faacutecil eacute objetivo da automaccedilatildeo 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 usuaacuteriomaacutequina de grandes complexos
equipamentos devido agrave eliminaccedilatildeo do teclado do mouse e de outros perifeacutericos de um ambiente
industrial evitando distraccedilotildees em um ambientes geralmente muito agressivo
13
Medicina Os sistemas que usam touch simplificam os sofisticados sistemas meacutedicos reduzem as
possibilidades de erros e proporcionam um mecanismo de entrada de dados mais eficiente que
qualquer outro perifeacuterico
Educaccedilatildeo Hoje o touch esta se tornando a interface de treinamento mais popular em todas as
fases do aprendizado desde a preacute escola jardim de infacircncia e preparaccedilatildeo profissional eliminando
a frustraccedilotildees de crianccedilas ao utilizar o mouse ou teclado
E aplicaccedilotildees com o objetivo de diminuir o tempo de resposta aumentar a produtividade
proporcionar produtos e serviccedilos de maior qualidade e aumentar os lucros Por exemplo realizar
um atendimento de forma raacutepida e faacutecil eacute objetivo da automaccedilatildeo 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 serviccedilos intuitivos e interativos de uma interface
Touch proporcionam confiabilidade ao cliente que eacute exatamente o que o seu negoacutecio precisa para
o crescimento e o sucesso em longo prazo (elotouch 2007)
Este projeto no futuro poderaacute ser integrado com outro projeto formando assim um sistema
parecido com um PDA (Personal Digital Assistant)
14
CAPIacuteTULO 2 ndash FUNDAMENTACcedilAtildeO TEOacuteRICA
21-Touch Screen
Um Touch-Screen que em portugues quer dizer ldquotela sensivel ao toquerdquo estatildeo disponiacuteveis
para uma grande variedade de uso desde pontos de vendas ateacute quiosques equipamentos meacutedicos
e industriais e sistemas de jogos As vantagens das soluccedilotildees touch incluem precisatildeo
transparecircncia e facilidade de uso e instalaccedilatildeo
O Touch-Screen usado neste projeto eacute o modelo de quatro fios resistivos AT4 da empresa
Elo TouchSystem (wwwelotouchcombr)
A tecnologia resistiva touch de quatro fios consta de uma tela de vidro coberto
uniformemente por camadas eletricamente condutivas e resistivas Uma lacircmina de poliester eacute
hermeticamente estendida sobre a parte superior do vidro e separada por minuacutesculos espaccediladores
(pontos) transparentes e isolantes A parte externa dessa lacircmina eacute uma peliacutecula duraacutevel e firme a
parte interna conteacutem uma camada condutiva Durante seu funcionamento uma corrente eleacutetrica
se propaga atraveacutes do touchscreen Ativada por um miacutenimo toque a peliacutecula 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 descriccedilatildeo das
camadas que compoem o Touch-Screen
Figura 1 ndash Touch-Screen final (Adaptado com as dimensotildees da aplicaccedilatildeo do editor de texto para validar este projeto)
15
Figura 2 ndash Mascara
(Adaptado do site elotouchcombr)
1 Camada soacutelida resistente a riscos (tipo anti-reflexiva) 3 Camada ITO
2 Peliacutecula de Poliester 4 Contatos de prata
Figura 3 ndash Vidro (Adaptado do site elotouchcombr)
1 Contatos de prata 3 Camada ITO(Transparent Conducting Oxide)
2 Pontos espaccediladores 4 Camada de Vidro
O circuito da controladora aplica uma tensatildeo atraveacutes da superfiacutecie do vidro As tensotildees no
ponto de contato constituem a representaccedilatildeo analoacutegica da superfiacutecie de toque A controladora
traduz essas tensotildees e transmite-os para o computador para processaacute-los
16
211 Placa e chip da Controladora do Touch-Screen
O COACh IIs (Controller On A Chip second generation) eacute compacto econocircmico chip
controlador para as aplicaccedilotildees com o Touch-Screen AT4 de 4 fios resistivos Opera em 33V e
em 5V O tamanho compacto baixa voltagem para operar e comsumo de energia eacute a melhor
soluccedilatildeo para OEMrsquos (original equipment manufacturer) pois pode contar com estabilidade
confiabilidade e desempenho de componentes com touch para aplicaccedilotildees embarcadas ou
aplicaccedilotildees portaacuteveis[elotouchcom] A Figura 4 ilustra o chip
Figura 4 ndash Chip COACh IIs (Adaptado do site elotouchcom)
A placa controladora que integra o touch-screen em outros moacutedulos possui as caracteriacutesticas
descritas na Tabela 1 e a Figura 5 ilustra a placa controladora
Tabela 1 ndash Caracteriacutesticas da placa controladora
Alimentaccedilatildeo 5 VDC nominal (45)
Interface-Serial (Serial RS-232) Full Duplex
Paracircmetros de Comunicaccedilatildeo Baud Rate 9600 and 19200 8 Bits de dados 1 bit de parada
Interface USB Quando estiver comunicando via USB a Serial estaraacute desabilitada E a placa natildeo eacute alimentada pela USB
Resoluccedilatildeo de toque 4096x4096 independente do tamanho da peliacutecula touch-screen
Tempo de conversatildeo do toque 10ms
17
Figura 5 ndash Placa Controladora (Adaptado do site elotouchcom)
212 Pinagens e descriccedilatildeo do Touch-Screen e da Placa Controladora
A Figura 6 ilusta os pinos do Touch-Screen que satildeo ligados ao conector da placa
controladora
Figura 6 ndash Pinos do Touch-Screen (Adaptado do site elotouchcom)
A Figura 7 mostra o conector da placa controladora e as respectivas pinagens
Figura 7 ndashConector para o touch da placa controladora (Adaptado do site elotouchcom)
18
A Tabela 2 descreve os pinos do conector para o touch da placa controladora
Tabela 2 ndash Pinagem do conector que faz interface entre o touch e a controladora
Pino
Nome do Sinal Desciccedilatildeo do sinal
1 X+ Entrada de tensatildeo positiva referente ao eixo X da tela 2 Y+ Entrada de tensatildeo positiva referente ao eixo Y da tela 3 X- Entrada de tensatildeo negativa referente ao eixo X da tela 4 Y- Entrada de tensatildeo negativa referente ao eixo Y da tela
22-Video
Eacute usado um monitor CRT convencional o qual apresentaraacute uma imagem criada atraveacutes as
bibliotecas graficas proprietarias da ALTERA esta imagem representa um menu com botoes e e
que atravez da manipulaccedilatildeo dos metodos das bibliotecas os resultados satildeo disponibilizados na
saida VGA do kit dependendo do botatildeo da imagem que for tocada atravez do touch alguma accedilatildeo
de alteraccedilatildeo na imagem seraacute atulalizada na saida vga
A Figura 8 ilustra o conector (fecircmea) da saiacuteda VGA do kit DE2
Figura 8 ndash Conector VGA femea do kit DE2
E na Tabela 3 a descriccedilatildeo de cada pino bem como sua direccedilatildeo
Tabela 3 ndash Descriccedilatildeo dos pinos da VGA
Pin
Name Dir Description
1 RED
Red Video (75 ohm 07 V p-p)
2 GREEN
Green Video (75 ohm 07 V p-p)
3 BLUE
Blue Video (75 ohm 07 V p-p)
4 ID2
Monitor ID Bit 2
5 GND
Ground
6 RGND
Red Ground
7 GGND
Green Ground
8 BGND
Blue Ground
19
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
20
23-Kit Altera Development amp Education Board 1 (Kit DE2)
231-Layout e Componentes
Uma fotografia do Kit DE2 eacute mostrado na Figura 9 onde se ve a aparencia do kit e as
indicaccedilotildees das localizaccedilatildeo dos componentes e conectores
Figura 9 ndash O kit DE2 (DE2_UserManualpdf 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 eacute listado os componentes fornecidos na placa do Kit DE2
Tabela 4 ndash Lista dos componentes do Kit DE2 (DE2_UserManualpdf contrado no cd do kit)
1 Altera Serial Configuration device ndash EPCS4
2 USB Blaster (on board) for programming and user API control both JTAG and Active 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
21
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
PS2 mousekeyboard connector
17
Two 40-pin Expansion Headers with diode protection
18
Powered by either a 75V DC adapter or a USB cable
232 Diagrama de Blocos do Kit DE2
Figura 10 ndash Diagrama de Blocos do KIT DE2 (DE2_UserManualpdf contrado no cd do kit)
22
A Tabela 5 mostra a informaccedilatildeo detalhada do Bloco Cyclone II FPGA 2C20 mostrado na
Figura 10
Tabela 5 ndash Detalhes do FPGA Cyclone II
FPGA Cyclone II 2C35
18752 LErsquos
52 M4K RAM blocks 240K total RAM bits 26 embedded multipliers 4 PLLrsquos 315 user IO pinrsquos FineLine BGA 484-pin package
A Tabela 6 mostra a informaccedilatildeo detalhada do Bloco do dispositivo de configuraccedilatildeo Serial e
circuito Usb-Blaster
Tabela 6 - Descriccedilatildeo das configuraccedilotildees que satildeo feitas atraveacutes da Serial e Usb-Blaster
Configuraccedilatildeo do dispositivo Serial e do Circuito Usb-Blaster Configuraccedilatildeo do dispositivo serial Altera EPCS4 On-Board Usb-Blaster
para Controle de API de usuaacuterio e programaccedilatildeo
JTAG e AS satildeo os modos do programaccedilatildeo suportados
A Tabela 7 mostra a descriccedilatildeo do Bloco da SRAM
Tabela 7 ndash Descriccedilatildeo do Bloco da SRAM
SRAM 512-Kbyte Static RAM memory chip Organizado em 256K x 16 bits Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 8 mostra a descriccedilatildeo do Bloco da SDRAM
Tabela 8 - Descriccedilatildeo do Bloco da SDRAM
SDRAM 8-Mbyte Single Data Rate Synchronous Dynamic RAM memory chip Organizado em 1M x 16 bits x 4 Banks Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
23
A Tabela 9 mostra a descriccedilatildeo do Bloco Memory Flash
Tabela 9 ndash Descriccedilatildeo da Memoria Flash
Memory Flash
4-Mbyte NAND Flash memory 8-bit data bus Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 10 mostra a descriccedilatildeo do Bloco SD card socket
Tabela 10 - Descriccedilatildeo do SD card socket
SD card socket Fornece o modo SPI para o acesso ao cartatildeo SD Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 11 mostra a descriccedilatildeo 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) Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 12 mostra a descriccedilatildeo dos Clock inputs
Tabela 12 - Descriccedilatildeo das entradas de Clocks
Clock inputs Oscilador de 50 Mhz Oscilador 27 Mhz Entrada para clock
externo
A Tabela 13 mostra a descriccedilatildeo do Aacuteudio CODEC
Tabela 13 - Descriccedilatildeo do Aacuteudio CODEC
Aacuteudio CODEC 4-Mbyte NAND Flash memory 8-bit data bus Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
24
A Tabela 14 mostra a descriccedilatildeo do Bloco VGA DAC
Tabela 14 ndash Descriccedilatildeo da saiacuteda VGA DAC
VGA
DAC
Usa 4 bits DAC para cada cor (RGB) Com 15 pinos no conector VGA convencional (fecircmea) Suporta uma resoluccedilatildeo de 640 x 480 com um refresh de ateacute 100Hz Pode ser usando com o FPGA Cyclone II para implementar um Encoder para TV
A Tabela 15 mostra a descriccedilatildeo do Bloco Serial Ports amp PS2
Tabela 15 ndash Descriccedilatildeo da Serial Port e PS2
Serial Ports amp PS2 Uma porta RS-232
Uma posta PS2 Um conector Serial para a porta do RS-232 Conector PS2 para conectar um mouse ou teclado ao DE2
A Tabela 16 mostra a descriccedilatildeo do Bloco dos Two 40 - pin expansion headers
Tabela 16 ndash Descriccedilatildeo dos conectores de expansatildeo de 40 pinos
Two 40 - pin expansion headers 72 pinos de IO do Clyclone II bem como 8 power e groundrsquos satildeo trazidos aos 2 conectores de expansatildeo de 40 pinos cada Os conectores de 40 pinos tambeacutem aceitam os cabos IDE de 40 pinos Proteccedilatildeo resistiva eacute fornecida
233 Endereccedilo das Pinagens dos Componentes usados no Projeto
2331 PushButtons
A Figura 11 mostra uma foto dos PushButtons do kit Key[30] a ordem eacute o button da
esquerda eacute o mais significativo e o mais de direita o menos signigicativo
Figura 11 ndash Os 4 PushButtons do DE2Key[30] (DE2_UserManualpdf contrado no cd do kit)
25
A Tabela 17 mostra os pinos da FPGA aos PushButtons
Tabela 17 ndash Pinos da FPGA referentes a cada PushButton (DE2_UserManualpdf contrado no cd do kit)
2332 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 ndash Modulo de displays de 7 segmentos (DE2_UserManualpdf encontrado no cd do kit)
Figura 13 ndash Index de um display (DE2_UserManualpdf encontrado no cd do
kit)
26
A Tabela 18 mostra os pinos da FPGA referente a cada segmento dos displays de 7
segmentos do modulo
Tabela 18 ndash Pinos da FPGA referentes a cada segmento dos Displays do modulo
27
2333 VGA
A Figura 14 esta em forma de onda da temporizaccedilatildeo horizontal e vertical da VGA do Kit
DE2
Figura 14 ndash Temporizaccedilatildeo horizontal da VGA
A Tabela 19 mostra a especificaccedilatildeo da temporizaccedilatildeo horizontal da VGA
Tabela 19 ndash Especificaccedilatildeo da temporizaccedilatildeo horizontal da VGA
A Tabela 20 mostra a especificaccedilatildeo da temporizaccedilatildeo vertical da VGA
Tabela 20 ndash Especificaccedilatildeo da temporizaccedilatildeo vertical da VGA
28
A Tabela 21 mostra os pinos da FPGA referente a cada pino de saida do conector VGA do
Kit DE2
Tabela 21 ndash Pinos da FPGA referentes a saiacuteda do Conector VGA do Kit
29
CAPIacuteTULO 3 ndash ESPECIFICACcedilAtildeO TECNICA
Nesse capiacutetulo tem-se uma descriccedilatildeo dos principais moacutedulos do projeto Satildeo eles Software
Firmware e Hardware
Inicialmente eacute apresentada a visatildeo geral do sistema e a descriccedilatildeo funcional de cada moacutedulo
A Figura 15 apresenta o diagrama em blocos do sistema
Figura 15 - Moacutedulos do projeto
31 Descriccedilatildeo de Software
O Software eacute uma das interfaces com o usuaacuterio
312 Diagrama de Blocos do Software
30
312 Modulo do PC
Neste modulo eacute 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
32 Descriccedilatildeo de Hardware
321 Modulo Touch-Screen
O usuaacuterio ao tocar o Touch-Screen (AT4 touch-screen resistivo de 4 fios) ocorre uma
mudanccedila nas tensotildees do eixo X e do eixo Y devido a resistecircncia gerada pelo ao toque do usuaacuterio
em uma determinada regiatildeo da tela essa mudanccedila de tensatildeo eacute interpretada pela placa
controladora COACh IIs do Touch-Screen e enviada via serial para o Kit DE2 que interpretaraacute
os dados e faraacute o devido processamento
322 Modulo FPGA
O Hardware corresponde tanto aos componentes fiacutesicos presentes no kit de desenvolvimento
quanto aos componentes que seratildeo configurados na FPGA Satildeo diversos componentes escritos
em linguagem de descriccedilatildeo de hardware
No um dos principais componentes de hardware utilizado modulo eacute o processador NIOS II
para se ter uma ideacuteia o processador NIOS II eacute capaz gerenciar os dispositivos externos a FPGA
utilizando controladores de memoacuterias controladores de VGA entre outros E tambeacutem eacute possiacutevel
o proacuteprio usuaacuterio criar seu componente para ser controlado atraveacutes do processador NIOS
II(Altera 2007)
31
3221 O Processador NIOS II
Atraveacutes do software SOPC da ALTERA foi possiacutevel montar a arquitetura de hardware do
processador NIOS II bem como especificar as interfaces que ele iraacute controlar atraveacutes do firmwar
feito no NIOS II IDE
Na Tabela 22 eacute no campo Module Name onde estatildeo os moacutedulos que foram usados para
definir o processador NIOS II e os componentes externos que ele iraacute controlar e no campo
Description esta a descriccedilatildeo do nome de cada modulo
Tabela 22 ndash Moacutedulos dos componentes e suas descriccedilotildees
3222 Firmware para o NIOS II
O Firmware foi feito utilizando a linguagem C utilizando a ferramenta NIOS II IDE Atraveacutes
do firmware eacute possiacutevel 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 graacuteficas para controlar a vga e serial e
USB-BLASTER eacute encarregado em enviar todo o desenvolvimento do projeto para o Kit DE2
323 Configuraccedilatildeo da FPGA via JTAG
Depois de configurado o hardware do processador NIOS II eacute preciso fazer o load do NIOS
para a FPGA e para que isso aconteccedila eacute necessaacuterio que atraveacutes do software Quartus II da
ALTERA utilizando a interface JTAG utilizando o cabo USB-BLASTER
32
324 Comunicaccedilatildeo entre FPGA e o Touch-Screen
Para comunicaccedilatildeo entre dos dois hardwares Touch-Screen e o FPGA eacute utilizando uma
interface serial RS-232
A configuraccedilatildeo da interface eacute a seguinte
Bits de dados 8
Taxa de dados 5600(bps)
A Tabela 23 mostra a relaccedilatildeo dos pinos da porta serial com os pinos da FPGA
Tabela 23 ndash Pinos da FPGA referente agrave pinagem da interface Serial
E a Figura 16 mostra o desenho correspondente da interface serial
Figura 16 ndash Conector da interface serial do kit DE2
33 Especificaccedilatildeo de Validaccedilatildeo
331 Validaccedilatildeo de Hardware
A validade do hardware se faz com a anaacutelise de todos os moacutedulos envolvidos
As necessidades satildeo estudadas os componentes externos ao FPGA satildeo selecionados de
acordo o processador nios e os controladores dos moacutedulos externos como VGA e SERIAL satildeo
enviados ao modulo FPGA
Os resultados obtidos na tela do monitor e a recepccedilatildeo dos dados pela serial comprovam o
funcionamento do modulo de comunicaccedilatildeo da serial e vga
33
332 Validaccedilatildeo de Software
A validaccedilatildeo do controle da interface touch-screen faz-se a partir dos resultados obtidos das
funccedilotildees escritas na linguagem C especificas para cada componente externos ao FPGA essas
funccedilotildees tornam possiacuteveis que o processador NIOS na FPGA tenha total controle sobre os
moacutedulos externos como a VGA e a SERIAL
As funccedilotildees que satildeo utilizadas para validar o funcionamento do software satildeo para a VGA os
meacutetodos de controle (alt_up_vga_draw_char_1b( char int x int y)) e (alt_up_vga_draw_pixel(
color x y))
O meacutetodo (alt_up_vga_draw_char_1b( char int x int y)) tem a funcionalidade de escrever
caracteres na tela do monitor e a descriccedilatildeo da sua assinatura ldquoparacircmetrosrdquo eacute a seguinte char eacute o
caractere que eacute escrito em alguma posiccedilatildeo na tela int x eacute a posiccedilatildeo x da tela do monitor e int y eacute
a posiccedilatildeo y da tela do monitor sendo que a resoluccedilatildeo utilizada eacute de 80x60 ou seja x natildeo pode
passar de 80 e y natildeo pode passar de 60
O meacutetodo (alt_up_vga_draw_pixel( color int x int y)) tem a funcionalidade de ldquopintarrdquo o
fundo da tela do monitor o meacutetodo de imprimir caracteres tem preferecircncia sobre este meacutetodo ou
seja os caracteres sempre ficam sob a aacuterea pintada ou seja o caractere sempre ficara em cima da
aacuterea pintada a descriccedilatildeo da assinatura deste meacutetodo eacute a seguinte color eacute a valor da cor que pode
ser um valor inteiro ou em hexadecimal para definir uma cor de alguma posiccedilatildeo da tela definidos
pelos paracircmetros x e y
As funccedilotildees que satildeo utilizadas para validar o funcionamento do software satildeo para a Serial os
meacutetodos de controle de transmissatildeo (fread( packet sizeof(packet) 1 serial_fp )) a funccedilatildeo
fread eacute utilizada para a leitura via interrupccedilatildeo dos pacotes que a controladora envia para o kit
DE2 as assinaturas do meacutetodo fread tem a seguinte composiccedilatildeo packet eacute a estrutura do pacote
que seraacute recebido o sizeof(packet) eacute o diz qual eacute o tamanho exato da estrutura criada e o
serial_fp eacute o handle da porta serial
Uma observaccedilatildeo muito importante eacute que para o total funcionamento eacute necessaacuterio 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 rs232h e rs232c onde estatildeo os meacutetodos de
controle da SERIAL e alt_up_vgah alt_up_vgac onde estatildeo os meacutetodos de controle para a
VGA Para tornar estes meacutetodos acessiacuteveis eacute preciso fazer os includes dos arquivos h no
projeto da NIOS IDE
A figura 17 mostra a utilizaccedilatildeo dos meacutetodos (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
34
int y)) utlizado para escrever os caracteres lsquoarsquo e lsquobrsquo dentro de um grupo de pixel previamente
pintado a (alt_up_vga_draw_pixel( color int x int y)) natildeo pinta um pixel de cada vez e sim
um bloco de 8x8 pixels
Figura 17 - Tela para a validaccedilatildeo dos testes com as bibliotecas graacuteficas do componente VGA
34 Recursos Necessaacuterios
A Tabela 24 apresenta os ambientes de desenvolvimento e ferramentas de software utilizadas
e na Tabela 25 as linguagens necessaacuterias Estas ferramentas foram utilizadas em ambiente
Windows Xp
Tabela 24 - Ferramentas de Desenvolvimentos e Ambientes
Software Para que foi Utilizado
Quartus II Para a definiccedilatildeo de qual o modelo de FPGA utilizado compilaccedilatildeo e simulaccedilatildeo e envio Load do NIOS para FPGA
SOPC Para definiccedilatildeo da do processador NIOS II e com quais componentes externos ele ira interagir atraveacutes dos controladores dos respectivos componentes
NIOS II IDE Para implementaccedilatildeo do firmware do processador NIOS II utilizando a linguagem em C
35
Borland C++ Builder Para desenvolvimento de ima interface de comunicaccedilatildeo via caboUSB-
BLASTER para o envio de imagem para o kit
Tabela 25 ndash Linguagens de programaccedilatildeo utilizadas
Linguagem Ferramenta C++ Borland C++ Builder VerilogVHDL Quartus II C NIOS II IDE
35 Viabilidade Teacutecnico-Econocircmica
O valor do projeto esta descrito na Tabela 26
Tabela 26 ndash Relaccedilatildeo dos Custos
DESCRICcedilAtildeO CUSTO APROXIMADO (R$) COMPONENTES ELETROcircNICOS 50000 1 Kit DE2 Cyclone II 35000 1 Monitor de Computador 35000 HORAS TRABALHADAS (400 horas) 750000 CUSTO TOTAL APROXIMADO (R$) 870000
36 Cronograma do Projeto
A tabela 27 contem as informaccedilotildees do cronograma do projeto
Tabela 27 ndash Cronograma de datas e entregas do projeto
Data Atividade a ser apresentada 050307 Entrega das propostas de projeto para avaliaccedilatildeo do colegiado 020407 Entrega das especificaccedilotildees teacutecnicas do projeto aprovado 110607 Entrega do projeto (monografia) e dos testes preliminares do mesmo 060807 Apresentaccedilatildeo preacutevia da implementaccedilatildeo do projeto especificado 011007 Apresentaccedilatildeo do projeto implementado
Qualificaccedilatildeo para a fase final 291007 Segunda apresentaccedilatildeo do projeto implementado para os que natildeo o fizeram no
dia 011006 com decreacutescimo da nota Qualificaccedilatildeo para a fase final
051107 Entrega da documentaccedilatildeo completa em espiral para a banca examinadora em 3 vias contendo a monografia manual teacutecnico manual do usuaacuterio e artigo cientiacutefico
261107 Defesa formal dos projetos com apresentaccedilatildeo oral para a banca examinadora 101207 Entrega da documentaccedilatildeo completa revisada e corrigida encadernada no
padratildeo da biblioteca (capa dura) em duas vias contendo a monografia manual teacutecnico manual do usuaacuterio e artigo cientiacutefico Entrega do CD contendo no formato WEB todo o conteuacutedo dos manuais
36
CAPIacuteTULO 4 ndash ESPECIFICACcedilAtildeO TECNICA
41 Requisitos Miacutenimos
Os requisitos miacutenimos de Hardware satildeo
Funcionamento das interfaces Serial e USB-Blaster
Funcionamento do Kit DE2
PC
Os requisitos miacutenimos de Software
Windows Xp
Quartus II
SOPC
NIOS II IDE
42 Projeto de Hardware
O hardware utilizado nesse projeto inclui componentes presentes na Placa de
Desenvolvimento Nios II - ediccedilatildeo DE2 Cyclone II EP2C35 e principalmente o hardware que seraacute
configurado na FPGA escrito em linguagem de descriccedilatildeo de hardware (HDL)
O um dos principais blocos de hardware eacute o processador NIOS II o Avalon Bus e os
controladores de componentes externos a FPGA e de comunicaccedilatildeo presentes no Kit
37
O software embarcado (firmware) estaraacute rodando nessa arquitetura Eacute uma arquitetura
completa construiacuteda com a ferramenta SOPC Builder da Altera A Figura 18 representa em
blocos os principais componentes dessa arquitetura
Figura 18 ndash Representaccedilatildeo em blocos do hardware do NIOS II
421 Funcatildeo do Touch-Screen
Outro bloco importante eacute o do Touch-Screen esta tela sensiacutevel ao toque pois como esta tela
trabalha com resistecircncia ao ser tocado em uma determinada regiatildeo uma resistecircncia eacute gerada e a
tensatildeo de saiacuteda eacute modificada a alimentaccedilatildeo desta placa eacute proveniente de sua placa controladora
a mesma placa que recebe a tensatildeo de saiacuteda modificada de acordo com a regiatildeo tocada na tela
Para verificar as caracteriacutesticas detalhadas do Touch-Screen e sua placa controlador favor ver
o Capitulo 2
422 Monitor e VGA
O Monitor inicialmente tem apenas o desenho de um botatildeo que ao ser tocado via touch
mudara a cor de toda a tela A imagem exibida no monitor tem uma resoluccedilatildeo de
38
Protoacutetipo das telas para os testes esta na Figura 19 a tela verde quando a touch natildeo eacute tocando
na regiatildeo do botatildeo de OK quando o botatildeo de OK for tocado a tela do monitor mudara de cor
ficando azul
Figura 19 ndash Tela do monitor
No Capitulo 2 estatildeo todas as caracteriacutesticas da pinagem e do conector VGA
423 Comunicaccedilatildeo serial
Entre a placa controladora do Touch-Screen e o FPGA existe uma comunicaccedilatildeo 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 manipulaccedilatildeo da imagem que eacute
mostrada no monitor
No capitulo 2 estatildeo das descriccedilotildees dos pinos e do conector da comunicaccedilatildeo Serial
O pacote serial que eacute transmitido pela placa controladora do touch-screen possui 10 bytes de
comprimento e segue a seguinte sequumlecircncia de envio
[55] [54] [] [] [] [] [] [] [] []
Sequumlecircncia dos bytes
Os dois primeiros bytes identificam o Header do pacote
O terceiro byte eacute 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 agrave posiccedilatildeo do eixo x onde a tela foi tocada
O sexto e o seacutetimo byte correspondem a posiccedilatildeo do eixo y onde a tele foi tocada
O restante os bytes identificam o tail do pacote recepcionado pelo kit DE2
39
424 Comunicaccedilatildeo USB-Blaster
Essencial para envio do projeto desenvolvido para o kit DE2 tambeacutem muito utilizado para o
debug deste projeto
435 Memoacuteria SDRAM
A memoacuteria utilizada para armazenar grandes quantidades de dados eacute a SDRAM (ver detalhes
no Capitulo 2)
Essa memoacuteria eacute muito raacutepida serviu muito bem para armazenar o firmware deste projeto
pois tem o tempo acesso ideal para ler as instruccedilotildees que utilizaram a VGA e tambeacutem eacute raacutepida o
suficiente para fazer a leitura dos dados e disponibilizar na saiacuteda VGA do kit
426 Memoacuteria FLASH
Eacute onde seraacute armazenado o firmware possui espaccedilo suficiente para isso 4MB e uma memoacuteria
mais lenta e por isso natildeo foi usada para armazenar dados para serem jogados na vga do Kit
43 Software
431 Software (Firmware)
O software tem de funccedilatildeo de utilizar as bibliotecas das controladoras dos componentes
externos a fim de controlar estes componentes de acordo com o necessaacuterio para atender o
objetivo do projeto
Ou seja uma tela inicial eacute apresentada e o usuaacuterio ao tocar na nela o kit recebe um pacote via
serial e interpreta a posiccedilatildeo da tela em que foi tocado e logo em seguida envia o resultado deste
toque para o monitor
432 Objetivos
O usuaacuterio 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 accedilatildeo de acordo com a posiccedilatildeo da tela
tocada alterando assim a imagem anterior com o resultado do toque
Interpretar o toque de usuaacuterio na tela touch-screen recepccedilatildeo do pacote via serial da placa
controladora do touch-screen tratamento do pacote e interpretaccedilatildeo das coordenadas x e y do
40
toque Realizaccedilatildeo de alguma accedilatildeo que resultara na alteraccedilatildeo da imagem da tela atual de acordo
com a funccedilatildeo em que as coordenadas foram previamente definidas para o que deve ser feito
432 Funccedilotildees
A Tabela 28 tem as principais funccedilotildees que foram implementadas para o sistema
Tabela 28 ndash Funccedilotildees do sistema firmware
FUNCcedilOtildeES Tela de um pequeno editor de texto Tratamento do sinal recebido da serial devido a um toque na tela Interpretaccedilatildeo do pacote serial e transfomaccedilatildeo para coordenadas x e y Transformaccedilatildeo das posiccedilotildees do toque na tela em alguma accedilatildeo enviando o resultado para a VGA Imagem final disponibilizada ao usuaacuterio de acordo com o toque que foi dado na tela Controlar dispositivos cada dispositivo pode ser controlado pelo seu respectivo contrador atraveacutes de seu endereccedilo base VGA SERIAL USB-BLASTER IO(Leds Switches etc) do Kit DE2
O Firmware do processador NIOS II eacute que realizaraacute a integraccedilatildeo entre hardware com
hardware Com o firmware controlando o NIOS II eacute possiacutevel interagir com os dispositivos
externos a FPGA Tornando possiacutevel a integraccedilatildeo da FPGA com a peliacutecula touch-screen e um
monitor sem a ajuda de um PC a uacutenica ajuda do pc seria para enviar dados de uma imagem para
o Kit DE2
44 Validaccedilatildeo e Testes
Inicialmente os moacutedulos da VGA e comunicaccedilatildeo SERIAL natildeo estavam funicionando
apenas o devido agrave fraca documentaccedilatildeo sobre o kit DE2 foi possiacutevel apenas fazer testes com o
Processador NIOS II pois sobre este existem bastantes documentos e exemplos que podem ser
utilizados
Nesta primeira parte foi possiacutevel testar o NIOS II para controlar o display bototildees e switchs
do kit DE2
Com o NIOS II funcionando completamente foi necessaacuterio porta-lo para o kit DE2 o que foi
simples pois como sabemos esses kits satildeo portaacuteveis entre si apenas mudando a pinagem e a
capacidade da FPGA
Com o Kit DE2 foi possiacutevel fazer os testes necessaacuterios com a comunicaccedilatildeo serial
inicialmente testada via terminal conversando diretamente com o kit foi possiacutevel fazer o
seguinte teste os caracteres que eram entrados via teclado chegavam ao kit via serial e o o
41
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 comdumpexe que eacute facilmente encontrado pelas ferramentas
de pesquisa da web e tambeacutem existem vario outros programas como este e o comdump eacute
utilizado para debug da porta serial do pc conectado diretamente na placa controladora do touch-
screen e foi a peccedila chave para o entendimento do pacote enviado pela placa controladora
Figura 20 - Cumdumpexe programa de debug da porta serial
A explicaccedilatildeo de cada byte do pacote esta explicado no item 423
Apos o entendimento completo da transmissatildeo 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 natildeo 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 ateacute o momento em que
foi testado os meacutetodos proprietaacuterios da Altera para fazer a VGA funcionar os meacutetodos esses
implementados em C
A figura 21 onde contem o teste baacutesico feito que foi a chave principal para o sucesso deste
projeto
42
Como dito no item 332 do projeto foram utilizados as funccedilotildees da controladora VGA esses
meacutetodos 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 eacute utilizado o meacutetodo alt_up_vga_draw_pixel( color int
x int y) onde color eacute a cor do bloco de pixels e x e y satildeo as coordenadas da tela onde o bloco
que seraacute pintado
Para escrever um caractere sobre um bloco de pixels pintado eacute utilizado a funccedilatildeo
alt_up_vga_draw_char_1b( char int x int y) onde char eacute o caractere a ser impresso e x e y satildeo
as coordenadas da tela onde os o caractere eacute impresso
Figura 21 - Teste baisco do funcionamento do componente VGA do kit DE2
43
CAPIacuteTULO 5 ndash VALIDACcedilAtildeO E RESULTADOS
Os resultados foram os melhores possiacuteveis pois com a utilizaccedilatildeo dos IP CORE
ldquocontroladorasrdquo dos componentes externos como VGA e SERIAL e seus meacutetodos de para
controle eacute possiacutevel controlar facilmente esses moacutedulos atraveacutes do firmware desenvolvido para o
processador NIOS que consegue realizar operaccedilotildees transparentes acessando dos meacutetodos de
controle dos moacutedulos
Apos os testes baacutesicos 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 baacutesico de editor de texto
A figura 22 mostra um teste utilizando os meacutetodos de controle disponiacuteveis para o IP CORE
da VGA para primeiramente fazer o menu da aplicaccedilatildeo desenvolvido em na linguagem C
Figura 22 ndash Menu baacutesico do editor de texto
Para desenhar o menu da figura acima foi utilizado os meacutetodos proprietaacuterios de controle da
VGA citados no capitulo 4 e tambeacutem estruturas de repeticcedilatildeo para que a tela fosse varrida e os
pixels desenhados nos respectivos lugares da tela bem como os caracteres
Na figura 23 eacute definida a seguinte estrutura em C para representar de um botatildeo
Figura 23 - Estrutura em C para representar um botatildeo
44
A figura 24 eacute a declaraccedilatildeo dos bototildees que seratildeo utilizados pelo aplicativo editor de texto
para comprovar o funcionamento do controle da interface touch-screen
Apenas o que esta dentro da marcaccedilatildeo quadrada representa os bototildees do menu da figura 23
e o restante satildeo os bototildees do teclado do editor de texto
Figura 24 - Declaraccedilatildeo dos bototildees do menu
45
A figura 25 representa o meacutetodo drawnButtonUp responsaacutevel por desenhar os bototildees na tela
de acordo com as posiccedilotildees em que foram declarados os bototildees deste meacutetodo satildeo desenhados
para parecerem que estatildeo ldquolevantadosrdquo e natildeo pressionados
Note que foram utilizados os meacutetodos proprietaacuterios de controle da VGA
alt_up_vga_draw_pixel pra pitar os pixels e alt_up_vga_draw_char_b1 para desenhar caracteres
como jaacute foi especificado no item 44 do projeto
Figura 25 ndash Meacutetodo drawButtonUp
46
O meacutetodo que desenha o caption do botatildeo se chama drawButtonText desenha os caracteres
em cima dos bototildees natildeo importa se o botatildeo esta pressionado ou natildeo
A figura 26 mostra como este meacutetodo foi implementado e ele eacute chamado no final de cada
meacutetodo onde algum tipo de botatildeo eacute desenhado quando o meacutetodo que desenha o botatildeo normal
quanto o pressionado e ateacute mesmo o do teclado
Figura 26 ndash Meacutetodo que escreve o caption de cada botatildeo
47
A figura 27 mostra o meacutetodo drawButtonDown que desenha o botatildeo pressionado ou seja
quando o usuaacuterio pressiona a regiatildeo correspondente a um botatildeo do menu no touch-screen o
mesmo redesenharaacute o botatildeo parecendo um efeito de botatildeo afundado note que no final do
meacutetodo novamente eacute chamado o meacutetodo drawButtonText que reescreveraacute o caption do botatildeo
como mostra o meacutetodo da figura 26 e esta ilustrado na figura 28
Figura 27 ndash Meacutetodo que desenha o botatildeo pressionado
48
Dependendo da aacuterea do menu que o usuaacuterio pressionar no touch-screen causar o efeito de
pressionado como mostra a figura 28
Figura 28 ndash Efeito do botatildeo de menu apertado
Na figura 29 eacute a representaccedilatildeo de quando a aacuterea correspondente ao botatildeo ldquoamarelordquo eacute
pressionada
Apos estes testes baacutesicos comprovando o funcionamento da interface graacutefica para o usuaacuterio
foi definido o restante dos componentes da tela que eacute constituiacutedo de um prompt e um teclado
qwerty que foi essencial para comprovar o perfeito funcionamento do controle da interface
touch-screen
49
51 Interface Grafica Final
A figura 29 mostra a interface final que o usuaacuterio teraacute para poder verificar o funcionamento
do controle da interface touch-screen
Figura 29 ndash Interface final touch-screen do usuaacuterio
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
511 Descriccedilatildeo do editor de texto
O menu possui 4 botoes cada um com sua respectiva funcionalidade quando o usuario
pressiona a area do botatildeo ldquoapagarrdquo uma vez entatildeo um carectere do prompt eacute apagado Quando eacute
precionado a area correspondente ao botatildeo ldquoResetrdquo todo o conteudo do prompt seraacute apagado e o
plano de fundo retornaraacute a cor branca Quando o botatildeo ldquoamarelordquo eacute pressionado o fundo da tela
passa a ser amarelo e o mesmo acontece se o usuario precionar o botatildeo verde tornando o cor de
fundo verde
50
O teclado possui 29 teclas sendo duas delas que equivalem ao ENTRA ldquoENTrdquo e ao
SPACE ldquoSPCrdquo Quando o usuario pressiona a area correspondente a algum botatildeo do teclado o
mesmo muda sua cor para azul e o seu caractere eacute disponibilizado no prompt
Essas funcionalidades nada mais satildeo do que um bom exemplo de como funciona
corretamente o controle da interface touch-screen
52 Prompt e o Teclado
A estrutura feita na linguagem C que define o prompt da figura 28 esta representado na
figura 30
Figura 30 ndash Estrutura em C para representar o prompt
A figura 31 mostra o metodo drawPrompt utilizado para desenhar na tela o prompt
Figura 31 ndash Meacutetodo que desenha o prompt
51
A estrutura do teclado eacute a mesma utilizada pela figura 23 e tambem eacute criado satildeo
inicializados na figura 24
O restante as implementaccedilotildees estatildeo disponiveis no cd deste documento
Quando algum botatildeo do teclado eacute pressionado sua cor muda para azul e sua letra
correspondente eacute escrita o prompt
A figura 32 ilustra quando o usuaacuterio aperta a letra lsquotrsquo na peliacutecula touch-screen
Figura 32 - Teste do prompt e o teclado
52
53 Controle da Interface Touch-Screen
Depois do todos os testes com o processador NIOS e a integraccedilatildeo do mesmo com os
moacutedulos externos como a porta SERIAL e a saiacuteda VGA eacute possiacutevel utilizando o touch-screen
criar uma interface amigaacutevel e faacutecil de usar para o usuaacuterio utilizando um firmware capaz de
interpretar os sinais via serial vindo da controladora do touch ao detectar que um toque foi dado
pelo usuaacuterio e realizar algumas accedilotildees que neste caso se comportam como um editor de texto
baacutesico
A figura 33 mostra como foi validado este projeto e seus moacutedulos controlando uma
interface touch-screen para chegar no resultado abaixo digitado pelo usuaacuterio comprovando o
funcionamento e viabilidade deste projeto
Figura 33 ndash 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 mudanccedilas podendo ser alterado rapidamente o tipo de
aplicaccedilatildeo ou integrado rapidamente com outro projeto
53
CAPIacuteTULO 6 - CONCLUSAtildeO
Uma das principais dificuldades no desenvolvimento deste projeto foi fazer o levantamento
da documentaccedilatildeo sobre o processador NIOS e os moacutedulos externos a FPGA do Kit DE2 Como
natildeo foi feito algum projeto antes que utilizasse a interface VGA e a SERIAL do Kit DE2 levou-
se muito tempo ateacute conseguir adquirir e ordenar o conhecimento que foi sendo adquirido ateacute
conseguir dar os primeiros passos e realizar os primeiros testes com a VGA e a SERIAL Outro
grande obstaacuteculo foi ter de descobrir que para que o NIOS controlasse os moacutedulos externos a
FGPA fosse necessaacuterio copiar os arquivos c e h dos respectivos componente para dentro do
projeto
Mas depois de todos os problemas com os moacutedulos externos solucionados cada modulo do
projeto foi sendo desenvolvido separadamente ateacute seu total funcionamento Natildeo tive dificuldades
com a linguagem da programaccedilatildeo pois o Firmware do processador NIOS eacute o C a qual mais tive
contato na faculdade
Outro desafio foi fazer a peliacutecula 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
peliacutecula natildeo 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 possiacutevel
comeccedilar a fazer os testes necessaacuterios para prosseguir com o projeto aprender como o a peliacutecula
identifica um toque e manda este sinal para a controladora e a controladora transforma este sinal
em um sinal serial que eacute 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 accedilotildees
que as coordenadas jaacute estatildeo previamente calibradas no firmware para fazer bem como mudar de
cor a tela fazer o efeito de um botatildeo subindo e descendo etc
Varias vezes o projeto parou de funcionar entatildeo 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 memoacuteria abundante etc uma das
facilidades eacute a faacutecil alteraccedilatildeo do projeto podendo ser integrado a outro ou ateacute mesmo alterado
para realizar outros tipos de accedilotildees com o touch-screen
Existem vaacuterios melhoramentos que podem ser executados no projeto um deles eacute tentar
interpretar de uma maneira diferente os valores do eixo y pois do jeito que esta a resoluccedilatildeo do
eixo y esta muito baixa dificultando o reconhecimento de toques em aacutereas pequenas Talvez a
inclusatildeo de mais alguns bytes no pacote de leitura da serial resolva o problema
54
Uma ideacuteia para um proacuteximo projeto que use a interface touch-screen poderia ser a
integraccedilatildeo com o projeto do nosso colega Roberto Junqueira ou a desenvolvimento de uma
placa controladora para o touch-screen
Este trabalho eacute uma modesta contribuiccedilatildeo para o uso de FPGAs e do processador embarcado
NIOS implementado em VHDL pela Altera que acredito que vai abrir vaacuterios caminhos pois
com este projeto alguns caminhos ficaram mais faacuteceis de percorrer daqui para a frente
55
CAPIacuteTULO 7 - REFEREcircNCIAS BIBLIOGRAacuteFICAS
AMORE Roberto drsquo VHDL Descriccedilatildeo e Sintese de Circuitos Rio de Janeiro ed LTC
2005
Elotouch Touch-Screen e Controladora Descriccedilatildeo do funcionamento e descriccedilatildeo
tecnologia Touch-Screen lthttpwwwelotouchcombrgt Acesso em fevereiro de 2007
ALTERA University Program IP Cores Instalaccedilatildeo de IP Cores e referencias sobre os
componentes dos kits DE1 e DE2 Disponivel em lthttpwwwalteracomeducationunivip-
coresunv-ip-coreshtmlgt Acesso em abril de 2007
ALTERA NIOS II Documentaccedilatildeo sobre o pprocessador embracado NIO II Disponivel
em lthttpwwwalteracomproductsipprocessorsipm-indexjspgt Acesso em Abril de 2007
ALTERA Development amp Education Board 2 (DE2) Manual do usuario Disponivel no
de que acompanha o Kit DE2 ltDE2_user_manualDE2_UserManualpdfgt Acesso em
fevereiro de 2007
SUMAacuteRIO
CAPIacuteTULO 1 - INTRODUCcedilAtildeO 12
CAPIacuteTULO 2 ndash FUNDAMENTACcedilAtildeO TEOacuteRICA 14
21-Touch Screen 14
211 Placa e chip da Controladora do Touch-Screen 16
212 Pinagens e descriccedilatildeo do Touch-Screen e da Placa Controladora 17
22-Video 18
23-Kit Altera Development amp Education Board 1 (Kit DE2) 20
231-Layout e Componentes 20
232 Diagrama de Blocos do Kit DE2 21
233 Endereccedilo das Pinagens dos Componentes usados no Projeto 24
2331 PushButtons 24
2332 Modulo dos Displays de 7 Segmentos 25
2333 VGA 27
CAPIacuteTULO 3 ndash ESPECIFICACcedilAtildeO TECNICA 29
31 Descriccedilatildeo de Software 29
312 Diagrama de Blocos do Software 29
312 Modulo do PC 30
32 Descriccedilatildeo de Hardware 30
321 Modulo Touch-Screen 30
322 Modulo FPGA 30
3221 O Processador NIOS II 31
3222 Firmware para o NIOS II 31
323 Configuraccedilatildeo da FPGA via JTAG 31
324 Comunicaccedilatildeo entre FPGA e o Touch-Screen 32
33 Especificaccedilatildeo de Validaccedilatildeo 32
331 Validaccedilatildeo de Hardware 32
332 Validaccedilatildeo de Software 33
34 Recursos Necessaacuterios 34
35 Viabilidade Teacutecnico-Econocircmica 35
36 Cronograma do Projeto 35
CAPIacuteTULO 4 ndash ESPECIFICACcedilAtildeO TECNICA 36
41 Requisitos Miacutenimos 36
42 Projeto de Hardware 36
421 Funcatildeo do Touch-Screen 37
422 Monitor e VGA 37
423 Comunicaccedilatildeo serial 38
424 Comunicaccedilatildeo USB-Blaster 39
435 Memoacuteria SDRAM 39
426 Memoacuteria FLASH 39
43 Software 39
431 Software (Firmware) 39
432 Objetivos 39
432 Funccedilotildees 40
44 Validaccedilatildeo e Testes 40
CAPIacuteTULO 5 ndash VALIDACcedilAtildeO E RESULTADOS 43
51 Interface Grafica Final 49
511 Descriccedilatildeo do editor de texto 49
52 Prompt e o Teclado 50
53 Controle da Interface Touch-Screen 52
CAPIacuteTULO 6 - CONCLUSAtildeO 53
CAPIacuteTULO 7 - REFEREcircNCIAS BIBLIOGRAacuteFICAS 55
LISTA DE FIGURAS
Figura 1 ndash Touch-Screen final 14 Figura 2 ndash Mascara 15 Figura 3 ndash Vidro 15 Figura 4 ndash Chip COACh IIs 16 Figura 5 ndash Placa Controladora 17 Figura 6 ndash Pinos do Touch-Screen 17 Figura 7 ndashConector para o touch da placa controladora 17 Figura 8 ndash Conector VGA femea do kit DE2 18 Figura 9 ndash O kit DE2 20 Figura 10 ndash Diagrama de Blocos do KIT DE2 21 Figura 11 ndash Os 4 PushButtons do DE2Key[30] 24 Figura 12 ndash Modulo de displays de 7 segmentos 25 Figura 13 ndash Index de um display 25 Figura 14 ndash Temporizaccedilatildeo horizontal da VGA 27 Figura 15 - Moacutedulos do projeto 29 Figura 16 ndash Conector da interface serial do kit DE2 32 Figura 17 - Tela para a validaccedilatildeo dos testes com as bibliotecas graacuteficas do componente VGA 34 Figura 18 ndash Representaccedilatildeo em blocos do hardware do NIOS II 37 Figura 19 ndash Tela do monitor 38 Figura 20 - Cumdumpexe programa de debug da porta serial 41 Figura 21 - Teste baisco do funcionamento do componente VGA do kit DE2 42 Figura 22 ndash Menu baacutesico do editor de texto 43 Figura 23 - Estrutura em C para representar um botatildeo 43 Figura 24 - Declaraccedilatildeo dos bototildees do menu 44 Figura 25 ndash Meacutetodo drawButtonUp 45 Figura 26 ndash Meacutetodo que escreve o caption de cada botatildeo 46 Figura 27 ndash Meacutetodo que desenha o botatildeo pressionado 47 Figura 28 ndash Efeito do botatildeo de menu apertado 48 Figura 29 ndash Interface final touch-screen do usuaacuterio 49 Figura 30 ndash Estrutura em C para representar o prompt 50 Figura 31 ndash Meacutetodo que desenha o prompt 50 Figura 32 - Teste do prompt e o teclado 51 Figura 33 ndash Funcionamento do controle da interface Touch-Screen 52
LISTA DE TABELAS
Tabela 1 ndash Caracteriacutesticas da placa controladora 16 Tabela 2 ndash Pinagem do conector que faz interface entre o touch e a controladora 18 Tabela 3 ndash Descriccedilatildeo dos pinos da VGA 18 Tabela 4 ndash Lista dos componentes do Kit DE2 (DE2_UserManualpdf contrado no cd do kit) 20 Tabela 5 ndash Detalhes do FPGA Cyclone II 22 Tabela 6 - Descriccedilatildeo das configuraccedilotildees que satildeo feitas atraveacutes da Serial e Usb-Blaster 22 Tabela 7 ndash Descriccedilatildeo do Bloco da SRAM 22 Tabela 8 - Descriccedilatildeo do Bloco da SDRAM 22 Tabela 9 ndash Descriccedilatildeo da Memoria Flash 23 Tabela 10 - Descriccedilatildeo do SD card socket 23 Tabela 11 - PushButton switches 23 Tabela 12 - Descriccedilatildeo das entradas de Clocks 23 Tabela 13 - Descriccedilatildeo do Aacuteudio CODEC 23 Tabela 14 ndash Descriccedilatildeo da saiacuteda VGA DAC 24 Tabela 15 ndash Descriccedilatildeo da Serial Port e PS2 24 Tabela 16 ndash Descriccedilatildeo dos conectores de expansatildeo de 40 pinos 24 Tabela 17 ndash Pinos da FPGA referentes a cada PushButton 25 Tabela 18 ndash Pinos da FPGA referentes a cada segmento dos Displays do modulo 26 Tabela 19 ndash Especificaccedilatildeo da temporizaccedilatildeo horizontal da VGA 27 Tabela 20 ndash Especificaccedilatildeo da temporizaccedilatildeo vertical da VGA 27 Tabela 21 ndash Pinos da FPGA referentes a saiacuteda do Conector VGA do Kit 28 Tabela 22 ndash Moacutedulos dos componentes e suas descriccedilotildees 31 Tabela 23 ndash Pinos da FPGA referente agrave pinagem da interface Serial 32 Tabela 24 - Ferramentas de Desenvolvimentos e Ambientes 34 Tabela 25 ndash Linguagens de programaccedilatildeo utilizadas 35 Tabela 26 ndash Relaccedilatildeo dos Custos 35 Tabela 27 ndash Cronograma de datas e entregas do projeto 35 Tabela 28 ndash Funccedilotildees do sistema firmware 40
LISTA DE SIGLAS
CRT - Catodic Ray tube
DE2 - Development amp Educations 1
ES - EntradaSaiacuteda
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 - Nuacutecleo de Ciecircncias Exatas e Tecnoloacutegicas
PC - Personal Computer
PDA - Personal Digital Assistant
PLL - Pulse Logic Loop
SDRAM - Static Dinamic Randomic Acess Memory
TTL - Transistor-transistor Logic
UNICENP - Centro Universitaacuterio Positivo
USB - Universal Serial Bus
USP - Universidade de Satildeo Paulo
VGA - Viacutedeo 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 SIacuteMBOLOS
- ohm
MHz - Mega Hertz
Hz - Hertz
V - Volts
11
12
CAPIacuteTULO 1 - INTRODUCcedilAtildeO
A computaccedilatildeo reconfiguraacutevel vem sendo utilizada em larga escala para projetos de
hardware que necessitem de um grande poder de processamento Neste campo um dispositivo
muito utilizado eacute a FPGA (Field-Programmable Gate Array)
As FPGArsquos satildeo circuitos de hardware que podem ser modificados praticamente em
qualquer momento durante o uso As FPGArsquos consistem em array de blocos loacutegicos
configuraacuteveis que implementam funccedilotildees loacutegicas 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 mudanccedilas raacutepidas no hardware
Em microprocessadores de uso geral se tem um hardware que natildeo pode ser modificado fixo
mas no FPGA essa mudanccedila eacute bastante simples e raacutepida feita via software
Este projeto teve sua proposta lanccedilada a partir da ideacuteia concedida pelo Prof Valfredo Pilla
Junior de interface Touch-Screen
O projeto eacute sobre o controle de uma interface com uma peliacutecula Touch-Screen onde eacute
possiacutevel que o usuaacuterio ao tocar uma peliacutecula sensiacutevel ao toque o sistema desenvolvido possa
realizar algum tipo de alteraccedilatildeo na imagem apresentada em um monitor que se dispotildee atraacutes do
Touch-Screen
O objetivo foi desenvolver um sistema capaz de receber e manipular a aquisiccedilatildeo dos dados
gerados pela placa controladora atraveacutes toque na peliacutecula Touch-Screen que estaraacute na frente da
tela de um monitor converter estes dados realizar uma alteraccedilatildeo na tela inicialmente
apresentada e disponibilizar o resultado da alteraccedilatildeo atualizando a tela do monitor
O hardware do sistema eacute basicamente composto na parte da aquisiccedilatildeo por uma peliacutecula
Touch-Screen e uma placa controladora da proacutepria peliacutecula recepccedilatildeo e processamentos feitos no
Kit DE2 (Development amp Education 1) Board que enviara o resultado atraveacutes da saiacuteda VGA
(Viacutedeo Graphics Array) para um monitor CRT (Catodic Ray tube)
Este sistema eacute justificado pois as interfaces intuitivas com telas Touch-Screen satildeo
utilizadas em uma ampla gama de mercados
Por exemplo
Comeacutercio Realizar um atendimento de forma raacutepida e faacutecil eacute objetivo da automaccedilatildeo 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 usuaacuteriomaacutequina de grandes complexos
equipamentos devido agrave eliminaccedilatildeo do teclado do mouse e de outros perifeacutericos de um ambiente
industrial evitando distraccedilotildees em um ambientes geralmente muito agressivo
13
Medicina Os sistemas que usam touch simplificam os sofisticados sistemas meacutedicos reduzem as
possibilidades de erros e proporcionam um mecanismo de entrada de dados mais eficiente que
qualquer outro perifeacuterico
Educaccedilatildeo Hoje o touch esta se tornando a interface de treinamento mais popular em todas as
fases do aprendizado desde a preacute escola jardim de infacircncia e preparaccedilatildeo profissional eliminando
a frustraccedilotildees de crianccedilas ao utilizar o mouse ou teclado
E aplicaccedilotildees com o objetivo de diminuir o tempo de resposta aumentar a produtividade
proporcionar produtos e serviccedilos de maior qualidade e aumentar os lucros Por exemplo realizar
um atendimento de forma raacutepida e faacutecil eacute objetivo da automaccedilatildeo 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 serviccedilos intuitivos e interativos de uma interface
Touch proporcionam confiabilidade ao cliente que eacute exatamente o que o seu negoacutecio precisa para
o crescimento e o sucesso em longo prazo (elotouch 2007)
Este projeto no futuro poderaacute ser integrado com outro projeto formando assim um sistema
parecido com um PDA (Personal Digital Assistant)
14
CAPIacuteTULO 2 ndash FUNDAMENTACcedilAtildeO TEOacuteRICA
21-Touch Screen
Um Touch-Screen que em portugues quer dizer ldquotela sensivel ao toquerdquo estatildeo disponiacuteveis
para uma grande variedade de uso desde pontos de vendas ateacute quiosques equipamentos meacutedicos
e industriais e sistemas de jogos As vantagens das soluccedilotildees touch incluem precisatildeo
transparecircncia e facilidade de uso e instalaccedilatildeo
O Touch-Screen usado neste projeto eacute o modelo de quatro fios resistivos AT4 da empresa
Elo TouchSystem (wwwelotouchcombr)
A tecnologia resistiva touch de quatro fios consta de uma tela de vidro coberto
uniformemente por camadas eletricamente condutivas e resistivas Uma lacircmina de poliester eacute
hermeticamente estendida sobre a parte superior do vidro e separada por minuacutesculos espaccediladores
(pontos) transparentes e isolantes A parte externa dessa lacircmina eacute uma peliacutecula duraacutevel e firme a
parte interna conteacutem uma camada condutiva Durante seu funcionamento uma corrente eleacutetrica
se propaga atraveacutes do touchscreen Ativada por um miacutenimo toque a peliacutecula 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 descriccedilatildeo das
camadas que compoem o Touch-Screen
Figura 1 ndash Touch-Screen final (Adaptado com as dimensotildees da aplicaccedilatildeo do editor de texto para validar este projeto)
15
Figura 2 ndash Mascara
(Adaptado do site elotouchcombr)
1 Camada soacutelida resistente a riscos (tipo anti-reflexiva) 3 Camada ITO
2 Peliacutecula de Poliester 4 Contatos de prata
Figura 3 ndash Vidro (Adaptado do site elotouchcombr)
1 Contatos de prata 3 Camada ITO(Transparent Conducting Oxide)
2 Pontos espaccediladores 4 Camada de Vidro
O circuito da controladora aplica uma tensatildeo atraveacutes da superfiacutecie do vidro As tensotildees no
ponto de contato constituem a representaccedilatildeo analoacutegica da superfiacutecie de toque A controladora
traduz essas tensotildees e transmite-os para o computador para processaacute-los
16
211 Placa e chip da Controladora do Touch-Screen
O COACh IIs (Controller On A Chip second generation) eacute compacto econocircmico chip
controlador para as aplicaccedilotildees com o Touch-Screen AT4 de 4 fios resistivos Opera em 33V e
em 5V O tamanho compacto baixa voltagem para operar e comsumo de energia eacute a melhor
soluccedilatildeo para OEMrsquos (original equipment manufacturer) pois pode contar com estabilidade
confiabilidade e desempenho de componentes com touch para aplicaccedilotildees embarcadas ou
aplicaccedilotildees portaacuteveis[elotouchcom] A Figura 4 ilustra o chip
Figura 4 ndash Chip COACh IIs (Adaptado do site elotouchcom)
A placa controladora que integra o touch-screen em outros moacutedulos possui as caracteriacutesticas
descritas na Tabela 1 e a Figura 5 ilustra a placa controladora
Tabela 1 ndash Caracteriacutesticas da placa controladora
Alimentaccedilatildeo 5 VDC nominal (45)
Interface-Serial (Serial RS-232) Full Duplex
Paracircmetros de Comunicaccedilatildeo Baud Rate 9600 and 19200 8 Bits de dados 1 bit de parada
Interface USB Quando estiver comunicando via USB a Serial estaraacute desabilitada E a placa natildeo eacute alimentada pela USB
Resoluccedilatildeo de toque 4096x4096 independente do tamanho da peliacutecula touch-screen
Tempo de conversatildeo do toque 10ms
17
Figura 5 ndash Placa Controladora (Adaptado do site elotouchcom)
212 Pinagens e descriccedilatildeo do Touch-Screen e da Placa Controladora
A Figura 6 ilusta os pinos do Touch-Screen que satildeo ligados ao conector da placa
controladora
Figura 6 ndash Pinos do Touch-Screen (Adaptado do site elotouchcom)
A Figura 7 mostra o conector da placa controladora e as respectivas pinagens
Figura 7 ndashConector para o touch da placa controladora (Adaptado do site elotouchcom)
18
A Tabela 2 descreve os pinos do conector para o touch da placa controladora
Tabela 2 ndash Pinagem do conector que faz interface entre o touch e a controladora
Pino
Nome do Sinal Desciccedilatildeo do sinal
1 X+ Entrada de tensatildeo positiva referente ao eixo X da tela 2 Y+ Entrada de tensatildeo positiva referente ao eixo Y da tela 3 X- Entrada de tensatildeo negativa referente ao eixo X da tela 4 Y- Entrada de tensatildeo negativa referente ao eixo Y da tela
22-Video
Eacute usado um monitor CRT convencional o qual apresentaraacute uma imagem criada atraveacutes as
bibliotecas graficas proprietarias da ALTERA esta imagem representa um menu com botoes e e
que atravez da manipulaccedilatildeo dos metodos das bibliotecas os resultados satildeo disponibilizados na
saida VGA do kit dependendo do botatildeo da imagem que for tocada atravez do touch alguma accedilatildeo
de alteraccedilatildeo na imagem seraacute atulalizada na saida vga
A Figura 8 ilustra o conector (fecircmea) da saiacuteda VGA do kit DE2
Figura 8 ndash Conector VGA femea do kit DE2
E na Tabela 3 a descriccedilatildeo de cada pino bem como sua direccedilatildeo
Tabela 3 ndash Descriccedilatildeo dos pinos da VGA
Pin
Name Dir Description
1 RED
Red Video (75 ohm 07 V p-p)
2 GREEN
Green Video (75 ohm 07 V p-p)
3 BLUE
Blue Video (75 ohm 07 V p-p)
4 ID2
Monitor ID Bit 2
5 GND
Ground
6 RGND
Red Ground
7 GGND
Green Ground
8 BGND
Blue Ground
19
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
20
23-Kit Altera Development amp Education Board 1 (Kit DE2)
231-Layout e Componentes
Uma fotografia do Kit DE2 eacute mostrado na Figura 9 onde se ve a aparencia do kit e as
indicaccedilotildees das localizaccedilatildeo dos componentes e conectores
Figura 9 ndash O kit DE2 (DE2_UserManualpdf 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 eacute listado os componentes fornecidos na placa do Kit DE2
Tabela 4 ndash Lista dos componentes do Kit DE2 (DE2_UserManualpdf contrado no cd do kit)
1 Altera Serial Configuration device ndash EPCS4
2 USB Blaster (on board) for programming and user API control both JTAG and Active 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
21
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
PS2 mousekeyboard connector
17
Two 40-pin Expansion Headers with diode protection
18
Powered by either a 75V DC adapter or a USB cable
232 Diagrama de Blocos do Kit DE2
Figura 10 ndash Diagrama de Blocos do KIT DE2 (DE2_UserManualpdf contrado no cd do kit)
22
A Tabela 5 mostra a informaccedilatildeo detalhada do Bloco Cyclone II FPGA 2C20 mostrado na
Figura 10
Tabela 5 ndash Detalhes do FPGA Cyclone II
FPGA Cyclone II 2C35
18752 LErsquos
52 M4K RAM blocks 240K total RAM bits 26 embedded multipliers 4 PLLrsquos 315 user IO pinrsquos FineLine BGA 484-pin package
A Tabela 6 mostra a informaccedilatildeo detalhada do Bloco do dispositivo de configuraccedilatildeo Serial e
circuito Usb-Blaster
Tabela 6 - Descriccedilatildeo das configuraccedilotildees que satildeo feitas atraveacutes da Serial e Usb-Blaster
Configuraccedilatildeo do dispositivo Serial e do Circuito Usb-Blaster Configuraccedilatildeo do dispositivo serial Altera EPCS4 On-Board Usb-Blaster
para Controle de API de usuaacuterio e programaccedilatildeo
JTAG e AS satildeo os modos do programaccedilatildeo suportados
A Tabela 7 mostra a descriccedilatildeo do Bloco da SRAM
Tabela 7 ndash Descriccedilatildeo do Bloco da SRAM
SRAM 512-Kbyte Static RAM memory chip Organizado em 256K x 16 bits Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 8 mostra a descriccedilatildeo do Bloco da SDRAM
Tabela 8 - Descriccedilatildeo do Bloco da SDRAM
SDRAM 8-Mbyte Single Data Rate Synchronous Dynamic RAM memory chip Organizado em 1M x 16 bits x 4 Banks Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
23
A Tabela 9 mostra a descriccedilatildeo do Bloco Memory Flash
Tabela 9 ndash Descriccedilatildeo da Memoria Flash
Memory Flash
4-Mbyte NAND Flash memory 8-bit data bus Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 10 mostra a descriccedilatildeo do Bloco SD card socket
Tabela 10 - Descriccedilatildeo do SD card socket
SD card socket Fornece o modo SPI para o acesso ao cartatildeo SD Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 11 mostra a descriccedilatildeo 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) Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 12 mostra a descriccedilatildeo dos Clock inputs
Tabela 12 - Descriccedilatildeo das entradas de Clocks
Clock inputs Oscilador de 50 Mhz Oscilador 27 Mhz Entrada para clock
externo
A Tabela 13 mostra a descriccedilatildeo do Aacuteudio CODEC
Tabela 13 - Descriccedilatildeo do Aacuteudio CODEC
Aacuteudio CODEC 4-Mbyte NAND Flash memory 8-bit data bus Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
24
A Tabela 14 mostra a descriccedilatildeo do Bloco VGA DAC
Tabela 14 ndash Descriccedilatildeo da saiacuteda VGA DAC
VGA
DAC
Usa 4 bits DAC para cada cor (RGB) Com 15 pinos no conector VGA convencional (fecircmea) Suporta uma resoluccedilatildeo de 640 x 480 com um refresh de ateacute 100Hz Pode ser usando com o FPGA Cyclone II para implementar um Encoder para TV
A Tabela 15 mostra a descriccedilatildeo do Bloco Serial Ports amp PS2
Tabela 15 ndash Descriccedilatildeo da Serial Port e PS2
Serial Ports amp PS2 Uma porta RS-232
Uma posta PS2 Um conector Serial para a porta do RS-232 Conector PS2 para conectar um mouse ou teclado ao DE2
A Tabela 16 mostra a descriccedilatildeo do Bloco dos Two 40 - pin expansion headers
Tabela 16 ndash Descriccedilatildeo dos conectores de expansatildeo de 40 pinos
Two 40 - pin expansion headers 72 pinos de IO do Clyclone II bem como 8 power e groundrsquos satildeo trazidos aos 2 conectores de expansatildeo de 40 pinos cada Os conectores de 40 pinos tambeacutem aceitam os cabos IDE de 40 pinos Proteccedilatildeo resistiva eacute fornecida
233 Endereccedilo das Pinagens dos Componentes usados no Projeto
2331 PushButtons
A Figura 11 mostra uma foto dos PushButtons do kit Key[30] a ordem eacute o button da
esquerda eacute o mais significativo e o mais de direita o menos signigicativo
Figura 11 ndash Os 4 PushButtons do DE2Key[30] (DE2_UserManualpdf contrado no cd do kit)
25
A Tabela 17 mostra os pinos da FPGA aos PushButtons
Tabela 17 ndash Pinos da FPGA referentes a cada PushButton (DE2_UserManualpdf contrado no cd do kit)
2332 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 ndash Modulo de displays de 7 segmentos (DE2_UserManualpdf encontrado no cd do kit)
Figura 13 ndash Index de um display (DE2_UserManualpdf encontrado no cd do
kit)
26
A Tabela 18 mostra os pinos da FPGA referente a cada segmento dos displays de 7
segmentos do modulo
Tabela 18 ndash Pinos da FPGA referentes a cada segmento dos Displays do modulo
27
2333 VGA
A Figura 14 esta em forma de onda da temporizaccedilatildeo horizontal e vertical da VGA do Kit
DE2
Figura 14 ndash Temporizaccedilatildeo horizontal da VGA
A Tabela 19 mostra a especificaccedilatildeo da temporizaccedilatildeo horizontal da VGA
Tabela 19 ndash Especificaccedilatildeo da temporizaccedilatildeo horizontal da VGA
A Tabela 20 mostra a especificaccedilatildeo da temporizaccedilatildeo vertical da VGA
Tabela 20 ndash Especificaccedilatildeo da temporizaccedilatildeo vertical da VGA
28
A Tabela 21 mostra os pinos da FPGA referente a cada pino de saida do conector VGA do
Kit DE2
Tabela 21 ndash Pinos da FPGA referentes a saiacuteda do Conector VGA do Kit
29
CAPIacuteTULO 3 ndash ESPECIFICACcedilAtildeO TECNICA
Nesse capiacutetulo tem-se uma descriccedilatildeo dos principais moacutedulos do projeto Satildeo eles Software
Firmware e Hardware
Inicialmente eacute apresentada a visatildeo geral do sistema e a descriccedilatildeo funcional de cada moacutedulo
A Figura 15 apresenta o diagrama em blocos do sistema
Figura 15 - Moacutedulos do projeto
31 Descriccedilatildeo de Software
O Software eacute uma das interfaces com o usuaacuterio
312 Diagrama de Blocos do Software
30
312 Modulo do PC
Neste modulo eacute 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
32 Descriccedilatildeo de Hardware
321 Modulo Touch-Screen
O usuaacuterio ao tocar o Touch-Screen (AT4 touch-screen resistivo de 4 fios) ocorre uma
mudanccedila nas tensotildees do eixo X e do eixo Y devido a resistecircncia gerada pelo ao toque do usuaacuterio
em uma determinada regiatildeo da tela essa mudanccedila de tensatildeo eacute interpretada pela placa
controladora COACh IIs do Touch-Screen e enviada via serial para o Kit DE2 que interpretaraacute
os dados e faraacute o devido processamento
322 Modulo FPGA
O Hardware corresponde tanto aos componentes fiacutesicos presentes no kit de desenvolvimento
quanto aos componentes que seratildeo configurados na FPGA Satildeo diversos componentes escritos
em linguagem de descriccedilatildeo de hardware
No um dos principais componentes de hardware utilizado modulo eacute o processador NIOS II
para se ter uma ideacuteia o processador NIOS II eacute capaz gerenciar os dispositivos externos a FPGA
utilizando controladores de memoacuterias controladores de VGA entre outros E tambeacutem eacute possiacutevel
o proacuteprio usuaacuterio criar seu componente para ser controlado atraveacutes do processador NIOS
II(Altera 2007)
31
3221 O Processador NIOS II
Atraveacutes do software SOPC da ALTERA foi possiacutevel montar a arquitetura de hardware do
processador NIOS II bem como especificar as interfaces que ele iraacute controlar atraveacutes do firmwar
feito no NIOS II IDE
Na Tabela 22 eacute no campo Module Name onde estatildeo os moacutedulos que foram usados para
definir o processador NIOS II e os componentes externos que ele iraacute controlar e no campo
Description esta a descriccedilatildeo do nome de cada modulo
Tabela 22 ndash Moacutedulos dos componentes e suas descriccedilotildees
3222 Firmware para o NIOS II
O Firmware foi feito utilizando a linguagem C utilizando a ferramenta NIOS II IDE Atraveacutes
do firmware eacute possiacutevel 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 graacuteficas para controlar a vga e serial e
USB-BLASTER eacute encarregado em enviar todo o desenvolvimento do projeto para o Kit DE2
323 Configuraccedilatildeo da FPGA via JTAG
Depois de configurado o hardware do processador NIOS II eacute preciso fazer o load do NIOS
para a FPGA e para que isso aconteccedila eacute necessaacuterio que atraveacutes do software Quartus II da
ALTERA utilizando a interface JTAG utilizando o cabo USB-BLASTER
32
324 Comunicaccedilatildeo entre FPGA e o Touch-Screen
Para comunicaccedilatildeo entre dos dois hardwares Touch-Screen e o FPGA eacute utilizando uma
interface serial RS-232
A configuraccedilatildeo da interface eacute a seguinte
Bits de dados 8
Taxa de dados 5600(bps)
A Tabela 23 mostra a relaccedilatildeo dos pinos da porta serial com os pinos da FPGA
Tabela 23 ndash Pinos da FPGA referente agrave pinagem da interface Serial
E a Figura 16 mostra o desenho correspondente da interface serial
Figura 16 ndash Conector da interface serial do kit DE2
33 Especificaccedilatildeo de Validaccedilatildeo
331 Validaccedilatildeo de Hardware
A validade do hardware se faz com a anaacutelise de todos os moacutedulos envolvidos
As necessidades satildeo estudadas os componentes externos ao FPGA satildeo selecionados de
acordo o processador nios e os controladores dos moacutedulos externos como VGA e SERIAL satildeo
enviados ao modulo FPGA
Os resultados obtidos na tela do monitor e a recepccedilatildeo dos dados pela serial comprovam o
funcionamento do modulo de comunicaccedilatildeo da serial e vga
33
332 Validaccedilatildeo de Software
A validaccedilatildeo do controle da interface touch-screen faz-se a partir dos resultados obtidos das
funccedilotildees escritas na linguagem C especificas para cada componente externos ao FPGA essas
funccedilotildees tornam possiacuteveis que o processador NIOS na FPGA tenha total controle sobre os
moacutedulos externos como a VGA e a SERIAL
As funccedilotildees que satildeo utilizadas para validar o funcionamento do software satildeo para a VGA os
meacutetodos de controle (alt_up_vga_draw_char_1b( char int x int y)) e (alt_up_vga_draw_pixel(
color x y))
O meacutetodo (alt_up_vga_draw_char_1b( char int x int y)) tem a funcionalidade de escrever
caracteres na tela do monitor e a descriccedilatildeo da sua assinatura ldquoparacircmetrosrdquo eacute a seguinte char eacute o
caractere que eacute escrito em alguma posiccedilatildeo na tela int x eacute a posiccedilatildeo x da tela do monitor e int y eacute
a posiccedilatildeo y da tela do monitor sendo que a resoluccedilatildeo utilizada eacute de 80x60 ou seja x natildeo pode
passar de 80 e y natildeo pode passar de 60
O meacutetodo (alt_up_vga_draw_pixel( color int x int y)) tem a funcionalidade de ldquopintarrdquo o
fundo da tela do monitor o meacutetodo de imprimir caracteres tem preferecircncia sobre este meacutetodo ou
seja os caracteres sempre ficam sob a aacuterea pintada ou seja o caractere sempre ficara em cima da
aacuterea pintada a descriccedilatildeo da assinatura deste meacutetodo eacute a seguinte color eacute a valor da cor que pode
ser um valor inteiro ou em hexadecimal para definir uma cor de alguma posiccedilatildeo da tela definidos
pelos paracircmetros x e y
As funccedilotildees que satildeo utilizadas para validar o funcionamento do software satildeo para a Serial os
meacutetodos de controle de transmissatildeo (fread( packet sizeof(packet) 1 serial_fp )) a funccedilatildeo
fread eacute utilizada para a leitura via interrupccedilatildeo dos pacotes que a controladora envia para o kit
DE2 as assinaturas do meacutetodo fread tem a seguinte composiccedilatildeo packet eacute a estrutura do pacote
que seraacute recebido o sizeof(packet) eacute o diz qual eacute o tamanho exato da estrutura criada e o
serial_fp eacute o handle da porta serial
Uma observaccedilatildeo muito importante eacute que para o total funcionamento eacute necessaacuterio 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 rs232h e rs232c onde estatildeo os meacutetodos de
controle da SERIAL e alt_up_vgah alt_up_vgac onde estatildeo os meacutetodos de controle para a
VGA Para tornar estes meacutetodos acessiacuteveis eacute preciso fazer os includes dos arquivos h no
projeto da NIOS IDE
A figura 17 mostra a utilizaccedilatildeo dos meacutetodos (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
34
int y)) utlizado para escrever os caracteres lsquoarsquo e lsquobrsquo dentro de um grupo de pixel previamente
pintado a (alt_up_vga_draw_pixel( color int x int y)) natildeo pinta um pixel de cada vez e sim
um bloco de 8x8 pixels
Figura 17 - Tela para a validaccedilatildeo dos testes com as bibliotecas graacuteficas do componente VGA
34 Recursos Necessaacuterios
A Tabela 24 apresenta os ambientes de desenvolvimento e ferramentas de software utilizadas
e na Tabela 25 as linguagens necessaacuterias Estas ferramentas foram utilizadas em ambiente
Windows Xp
Tabela 24 - Ferramentas de Desenvolvimentos e Ambientes
Software Para que foi Utilizado
Quartus II Para a definiccedilatildeo de qual o modelo de FPGA utilizado compilaccedilatildeo e simulaccedilatildeo e envio Load do NIOS para FPGA
SOPC Para definiccedilatildeo da do processador NIOS II e com quais componentes externos ele ira interagir atraveacutes dos controladores dos respectivos componentes
NIOS II IDE Para implementaccedilatildeo do firmware do processador NIOS II utilizando a linguagem em C
35
Borland C++ Builder Para desenvolvimento de ima interface de comunicaccedilatildeo via caboUSB-
BLASTER para o envio de imagem para o kit
Tabela 25 ndash Linguagens de programaccedilatildeo utilizadas
Linguagem Ferramenta C++ Borland C++ Builder VerilogVHDL Quartus II C NIOS II IDE
35 Viabilidade Teacutecnico-Econocircmica
O valor do projeto esta descrito na Tabela 26
Tabela 26 ndash Relaccedilatildeo dos Custos
DESCRICcedilAtildeO CUSTO APROXIMADO (R$) COMPONENTES ELETROcircNICOS 50000 1 Kit DE2 Cyclone II 35000 1 Monitor de Computador 35000 HORAS TRABALHADAS (400 horas) 750000 CUSTO TOTAL APROXIMADO (R$) 870000
36 Cronograma do Projeto
A tabela 27 contem as informaccedilotildees do cronograma do projeto
Tabela 27 ndash Cronograma de datas e entregas do projeto
Data Atividade a ser apresentada 050307 Entrega das propostas de projeto para avaliaccedilatildeo do colegiado 020407 Entrega das especificaccedilotildees teacutecnicas do projeto aprovado 110607 Entrega do projeto (monografia) e dos testes preliminares do mesmo 060807 Apresentaccedilatildeo preacutevia da implementaccedilatildeo do projeto especificado 011007 Apresentaccedilatildeo do projeto implementado
Qualificaccedilatildeo para a fase final 291007 Segunda apresentaccedilatildeo do projeto implementado para os que natildeo o fizeram no
dia 011006 com decreacutescimo da nota Qualificaccedilatildeo para a fase final
051107 Entrega da documentaccedilatildeo completa em espiral para a banca examinadora em 3 vias contendo a monografia manual teacutecnico manual do usuaacuterio e artigo cientiacutefico
261107 Defesa formal dos projetos com apresentaccedilatildeo oral para a banca examinadora 101207 Entrega da documentaccedilatildeo completa revisada e corrigida encadernada no
padratildeo da biblioteca (capa dura) em duas vias contendo a monografia manual teacutecnico manual do usuaacuterio e artigo cientiacutefico Entrega do CD contendo no formato WEB todo o conteuacutedo dos manuais
36
CAPIacuteTULO 4 ndash ESPECIFICACcedilAtildeO TECNICA
41 Requisitos Miacutenimos
Os requisitos miacutenimos de Hardware satildeo
Funcionamento das interfaces Serial e USB-Blaster
Funcionamento do Kit DE2
PC
Os requisitos miacutenimos de Software
Windows Xp
Quartus II
SOPC
NIOS II IDE
42 Projeto de Hardware
O hardware utilizado nesse projeto inclui componentes presentes na Placa de
Desenvolvimento Nios II - ediccedilatildeo DE2 Cyclone II EP2C35 e principalmente o hardware que seraacute
configurado na FPGA escrito em linguagem de descriccedilatildeo de hardware (HDL)
O um dos principais blocos de hardware eacute o processador NIOS II o Avalon Bus e os
controladores de componentes externos a FPGA e de comunicaccedilatildeo presentes no Kit
37
O software embarcado (firmware) estaraacute rodando nessa arquitetura Eacute uma arquitetura
completa construiacuteda com a ferramenta SOPC Builder da Altera A Figura 18 representa em
blocos os principais componentes dessa arquitetura
Figura 18 ndash Representaccedilatildeo em blocos do hardware do NIOS II
421 Funcatildeo do Touch-Screen
Outro bloco importante eacute o do Touch-Screen esta tela sensiacutevel ao toque pois como esta tela
trabalha com resistecircncia ao ser tocado em uma determinada regiatildeo uma resistecircncia eacute gerada e a
tensatildeo de saiacuteda eacute modificada a alimentaccedilatildeo desta placa eacute proveniente de sua placa controladora
a mesma placa que recebe a tensatildeo de saiacuteda modificada de acordo com a regiatildeo tocada na tela
Para verificar as caracteriacutesticas detalhadas do Touch-Screen e sua placa controlador favor ver
o Capitulo 2
422 Monitor e VGA
O Monitor inicialmente tem apenas o desenho de um botatildeo que ao ser tocado via touch
mudara a cor de toda a tela A imagem exibida no monitor tem uma resoluccedilatildeo de
38
Protoacutetipo das telas para os testes esta na Figura 19 a tela verde quando a touch natildeo eacute tocando
na regiatildeo do botatildeo de OK quando o botatildeo de OK for tocado a tela do monitor mudara de cor
ficando azul
Figura 19 ndash Tela do monitor
No Capitulo 2 estatildeo todas as caracteriacutesticas da pinagem e do conector VGA
423 Comunicaccedilatildeo serial
Entre a placa controladora do Touch-Screen e o FPGA existe uma comunicaccedilatildeo 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 manipulaccedilatildeo da imagem que eacute
mostrada no monitor
No capitulo 2 estatildeo das descriccedilotildees dos pinos e do conector da comunicaccedilatildeo Serial
O pacote serial que eacute transmitido pela placa controladora do touch-screen possui 10 bytes de
comprimento e segue a seguinte sequumlecircncia de envio
[55] [54] [] [] [] [] [] [] [] []
Sequumlecircncia dos bytes
Os dois primeiros bytes identificam o Header do pacote
O terceiro byte eacute 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 agrave posiccedilatildeo do eixo x onde a tela foi tocada
O sexto e o seacutetimo byte correspondem a posiccedilatildeo do eixo y onde a tele foi tocada
O restante os bytes identificam o tail do pacote recepcionado pelo kit DE2
39
424 Comunicaccedilatildeo USB-Blaster
Essencial para envio do projeto desenvolvido para o kit DE2 tambeacutem muito utilizado para o
debug deste projeto
435 Memoacuteria SDRAM
A memoacuteria utilizada para armazenar grandes quantidades de dados eacute a SDRAM (ver detalhes
no Capitulo 2)
Essa memoacuteria eacute muito raacutepida serviu muito bem para armazenar o firmware deste projeto
pois tem o tempo acesso ideal para ler as instruccedilotildees que utilizaram a VGA e tambeacutem eacute raacutepida o
suficiente para fazer a leitura dos dados e disponibilizar na saiacuteda VGA do kit
426 Memoacuteria FLASH
Eacute onde seraacute armazenado o firmware possui espaccedilo suficiente para isso 4MB e uma memoacuteria
mais lenta e por isso natildeo foi usada para armazenar dados para serem jogados na vga do Kit
43 Software
431 Software (Firmware)
O software tem de funccedilatildeo de utilizar as bibliotecas das controladoras dos componentes
externos a fim de controlar estes componentes de acordo com o necessaacuterio para atender o
objetivo do projeto
Ou seja uma tela inicial eacute apresentada e o usuaacuterio ao tocar na nela o kit recebe um pacote via
serial e interpreta a posiccedilatildeo da tela em que foi tocado e logo em seguida envia o resultado deste
toque para o monitor
432 Objetivos
O usuaacuterio 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 accedilatildeo de acordo com a posiccedilatildeo da tela
tocada alterando assim a imagem anterior com o resultado do toque
Interpretar o toque de usuaacuterio na tela touch-screen recepccedilatildeo do pacote via serial da placa
controladora do touch-screen tratamento do pacote e interpretaccedilatildeo das coordenadas x e y do
40
toque Realizaccedilatildeo de alguma accedilatildeo que resultara na alteraccedilatildeo da imagem da tela atual de acordo
com a funccedilatildeo em que as coordenadas foram previamente definidas para o que deve ser feito
432 Funccedilotildees
A Tabela 28 tem as principais funccedilotildees que foram implementadas para o sistema
Tabela 28 ndash Funccedilotildees do sistema firmware
FUNCcedilOtildeES Tela de um pequeno editor de texto Tratamento do sinal recebido da serial devido a um toque na tela Interpretaccedilatildeo do pacote serial e transfomaccedilatildeo para coordenadas x e y Transformaccedilatildeo das posiccedilotildees do toque na tela em alguma accedilatildeo enviando o resultado para a VGA Imagem final disponibilizada ao usuaacuterio de acordo com o toque que foi dado na tela Controlar dispositivos cada dispositivo pode ser controlado pelo seu respectivo contrador atraveacutes de seu endereccedilo base VGA SERIAL USB-BLASTER IO(Leds Switches etc) do Kit DE2
O Firmware do processador NIOS II eacute que realizaraacute a integraccedilatildeo entre hardware com
hardware Com o firmware controlando o NIOS II eacute possiacutevel interagir com os dispositivos
externos a FPGA Tornando possiacutevel a integraccedilatildeo da FPGA com a peliacutecula touch-screen e um
monitor sem a ajuda de um PC a uacutenica ajuda do pc seria para enviar dados de uma imagem para
o Kit DE2
44 Validaccedilatildeo e Testes
Inicialmente os moacutedulos da VGA e comunicaccedilatildeo SERIAL natildeo estavam funicionando
apenas o devido agrave fraca documentaccedilatildeo sobre o kit DE2 foi possiacutevel apenas fazer testes com o
Processador NIOS II pois sobre este existem bastantes documentos e exemplos que podem ser
utilizados
Nesta primeira parte foi possiacutevel testar o NIOS II para controlar o display bototildees e switchs
do kit DE2
Com o NIOS II funcionando completamente foi necessaacuterio porta-lo para o kit DE2 o que foi
simples pois como sabemos esses kits satildeo portaacuteveis entre si apenas mudando a pinagem e a
capacidade da FPGA
Com o Kit DE2 foi possiacutevel fazer os testes necessaacuterios com a comunicaccedilatildeo serial
inicialmente testada via terminal conversando diretamente com o kit foi possiacutevel fazer o
seguinte teste os caracteres que eram entrados via teclado chegavam ao kit via serial e o o
41
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 comdumpexe que eacute facilmente encontrado pelas ferramentas
de pesquisa da web e tambeacutem existem vario outros programas como este e o comdump eacute
utilizado para debug da porta serial do pc conectado diretamente na placa controladora do touch-
screen e foi a peccedila chave para o entendimento do pacote enviado pela placa controladora
Figura 20 - Cumdumpexe programa de debug da porta serial
A explicaccedilatildeo de cada byte do pacote esta explicado no item 423
Apos o entendimento completo da transmissatildeo 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 natildeo 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 ateacute o momento em que
foi testado os meacutetodos proprietaacuterios da Altera para fazer a VGA funcionar os meacutetodos esses
implementados em C
A figura 21 onde contem o teste baacutesico feito que foi a chave principal para o sucesso deste
projeto
42
Como dito no item 332 do projeto foram utilizados as funccedilotildees da controladora VGA esses
meacutetodos 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 eacute utilizado o meacutetodo alt_up_vga_draw_pixel( color int
x int y) onde color eacute a cor do bloco de pixels e x e y satildeo as coordenadas da tela onde o bloco
que seraacute pintado
Para escrever um caractere sobre um bloco de pixels pintado eacute utilizado a funccedilatildeo
alt_up_vga_draw_char_1b( char int x int y) onde char eacute o caractere a ser impresso e x e y satildeo
as coordenadas da tela onde os o caractere eacute impresso
Figura 21 - Teste baisco do funcionamento do componente VGA do kit DE2
43
CAPIacuteTULO 5 ndash VALIDACcedilAtildeO E RESULTADOS
Os resultados foram os melhores possiacuteveis pois com a utilizaccedilatildeo dos IP CORE
ldquocontroladorasrdquo dos componentes externos como VGA e SERIAL e seus meacutetodos de para
controle eacute possiacutevel controlar facilmente esses moacutedulos atraveacutes do firmware desenvolvido para o
processador NIOS que consegue realizar operaccedilotildees transparentes acessando dos meacutetodos de
controle dos moacutedulos
Apos os testes baacutesicos 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 baacutesico de editor de texto
A figura 22 mostra um teste utilizando os meacutetodos de controle disponiacuteveis para o IP CORE
da VGA para primeiramente fazer o menu da aplicaccedilatildeo desenvolvido em na linguagem C
Figura 22 ndash Menu baacutesico do editor de texto
Para desenhar o menu da figura acima foi utilizado os meacutetodos proprietaacuterios de controle da
VGA citados no capitulo 4 e tambeacutem estruturas de repeticcedilatildeo para que a tela fosse varrida e os
pixels desenhados nos respectivos lugares da tela bem como os caracteres
Na figura 23 eacute definida a seguinte estrutura em C para representar de um botatildeo
Figura 23 - Estrutura em C para representar um botatildeo
44
A figura 24 eacute a declaraccedilatildeo dos bototildees que seratildeo utilizados pelo aplicativo editor de texto
para comprovar o funcionamento do controle da interface touch-screen
Apenas o que esta dentro da marcaccedilatildeo quadrada representa os bototildees do menu da figura 23
e o restante satildeo os bototildees do teclado do editor de texto
Figura 24 - Declaraccedilatildeo dos bototildees do menu
45
A figura 25 representa o meacutetodo drawnButtonUp responsaacutevel por desenhar os bototildees na tela
de acordo com as posiccedilotildees em que foram declarados os bototildees deste meacutetodo satildeo desenhados
para parecerem que estatildeo ldquolevantadosrdquo e natildeo pressionados
Note que foram utilizados os meacutetodos proprietaacuterios de controle da VGA
alt_up_vga_draw_pixel pra pitar os pixels e alt_up_vga_draw_char_b1 para desenhar caracteres
como jaacute foi especificado no item 44 do projeto
Figura 25 ndash Meacutetodo drawButtonUp
46
O meacutetodo que desenha o caption do botatildeo se chama drawButtonText desenha os caracteres
em cima dos bototildees natildeo importa se o botatildeo esta pressionado ou natildeo
A figura 26 mostra como este meacutetodo foi implementado e ele eacute chamado no final de cada
meacutetodo onde algum tipo de botatildeo eacute desenhado quando o meacutetodo que desenha o botatildeo normal
quanto o pressionado e ateacute mesmo o do teclado
Figura 26 ndash Meacutetodo que escreve o caption de cada botatildeo
47
A figura 27 mostra o meacutetodo drawButtonDown que desenha o botatildeo pressionado ou seja
quando o usuaacuterio pressiona a regiatildeo correspondente a um botatildeo do menu no touch-screen o
mesmo redesenharaacute o botatildeo parecendo um efeito de botatildeo afundado note que no final do
meacutetodo novamente eacute chamado o meacutetodo drawButtonText que reescreveraacute o caption do botatildeo
como mostra o meacutetodo da figura 26 e esta ilustrado na figura 28
Figura 27 ndash Meacutetodo que desenha o botatildeo pressionado
48
Dependendo da aacuterea do menu que o usuaacuterio pressionar no touch-screen causar o efeito de
pressionado como mostra a figura 28
Figura 28 ndash Efeito do botatildeo de menu apertado
Na figura 29 eacute a representaccedilatildeo de quando a aacuterea correspondente ao botatildeo ldquoamarelordquo eacute
pressionada
Apos estes testes baacutesicos comprovando o funcionamento da interface graacutefica para o usuaacuterio
foi definido o restante dos componentes da tela que eacute constituiacutedo de um prompt e um teclado
qwerty que foi essencial para comprovar o perfeito funcionamento do controle da interface
touch-screen
49
51 Interface Grafica Final
A figura 29 mostra a interface final que o usuaacuterio teraacute para poder verificar o funcionamento
do controle da interface touch-screen
Figura 29 ndash Interface final touch-screen do usuaacuterio
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
511 Descriccedilatildeo do editor de texto
O menu possui 4 botoes cada um com sua respectiva funcionalidade quando o usuario
pressiona a area do botatildeo ldquoapagarrdquo uma vez entatildeo um carectere do prompt eacute apagado Quando eacute
precionado a area correspondente ao botatildeo ldquoResetrdquo todo o conteudo do prompt seraacute apagado e o
plano de fundo retornaraacute a cor branca Quando o botatildeo ldquoamarelordquo eacute pressionado o fundo da tela
passa a ser amarelo e o mesmo acontece se o usuario precionar o botatildeo verde tornando o cor de
fundo verde
50
O teclado possui 29 teclas sendo duas delas que equivalem ao ENTRA ldquoENTrdquo e ao
SPACE ldquoSPCrdquo Quando o usuario pressiona a area correspondente a algum botatildeo do teclado o
mesmo muda sua cor para azul e o seu caractere eacute disponibilizado no prompt
Essas funcionalidades nada mais satildeo do que um bom exemplo de como funciona
corretamente o controle da interface touch-screen
52 Prompt e o Teclado
A estrutura feita na linguagem C que define o prompt da figura 28 esta representado na
figura 30
Figura 30 ndash Estrutura em C para representar o prompt
A figura 31 mostra o metodo drawPrompt utilizado para desenhar na tela o prompt
Figura 31 ndash Meacutetodo que desenha o prompt
51
A estrutura do teclado eacute a mesma utilizada pela figura 23 e tambem eacute criado satildeo
inicializados na figura 24
O restante as implementaccedilotildees estatildeo disponiveis no cd deste documento
Quando algum botatildeo do teclado eacute pressionado sua cor muda para azul e sua letra
correspondente eacute escrita o prompt
A figura 32 ilustra quando o usuaacuterio aperta a letra lsquotrsquo na peliacutecula touch-screen
Figura 32 - Teste do prompt e o teclado
52
53 Controle da Interface Touch-Screen
Depois do todos os testes com o processador NIOS e a integraccedilatildeo do mesmo com os
moacutedulos externos como a porta SERIAL e a saiacuteda VGA eacute possiacutevel utilizando o touch-screen
criar uma interface amigaacutevel e faacutecil de usar para o usuaacuterio utilizando um firmware capaz de
interpretar os sinais via serial vindo da controladora do touch ao detectar que um toque foi dado
pelo usuaacuterio e realizar algumas accedilotildees que neste caso se comportam como um editor de texto
baacutesico
A figura 33 mostra como foi validado este projeto e seus moacutedulos controlando uma
interface touch-screen para chegar no resultado abaixo digitado pelo usuaacuterio comprovando o
funcionamento e viabilidade deste projeto
Figura 33 ndash 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 mudanccedilas podendo ser alterado rapidamente o tipo de
aplicaccedilatildeo ou integrado rapidamente com outro projeto
53
CAPIacuteTULO 6 - CONCLUSAtildeO
Uma das principais dificuldades no desenvolvimento deste projeto foi fazer o levantamento
da documentaccedilatildeo sobre o processador NIOS e os moacutedulos externos a FPGA do Kit DE2 Como
natildeo foi feito algum projeto antes que utilizasse a interface VGA e a SERIAL do Kit DE2 levou-
se muito tempo ateacute conseguir adquirir e ordenar o conhecimento que foi sendo adquirido ateacute
conseguir dar os primeiros passos e realizar os primeiros testes com a VGA e a SERIAL Outro
grande obstaacuteculo foi ter de descobrir que para que o NIOS controlasse os moacutedulos externos a
FGPA fosse necessaacuterio copiar os arquivos c e h dos respectivos componente para dentro do
projeto
Mas depois de todos os problemas com os moacutedulos externos solucionados cada modulo do
projeto foi sendo desenvolvido separadamente ateacute seu total funcionamento Natildeo tive dificuldades
com a linguagem da programaccedilatildeo pois o Firmware do processador NIOS eacute o C a qual mais tive
contato na faculdade
Outro desafio foi fazer a peliacutecula 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
peliacutecula natildeo 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 possiacutevel
comeccedilar a fazer os testes necessaacuterios para prosseguir com o projeto aprender como o a peliacutecula
identifica um toque e manda este sinal para a controladora e a controladora transforma este sinal
em um sinal serial que eacute 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 accedilotildees
que as coordenadas jaacute estatildeo previamente calibradas no firmware para fazer bem como mudar de
cor a tela fazer o efeito de um botatildeo subindo e descendo etc
Varias vezes o projeto parou de funcionar entatildeo 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 memoacuteria abundante etc uma das
facilidades eacute a faacutecil alteraccedilatildeo do projeto podendo ser integrado a outro ou ateacute mesmo alterado
para realizar outros tipos de accedilotildees com o touch-screen
Existem vaacuterios melhoramentos que podem ser executados no projeto um deles eacute tentar
interpretar de uma maneira diferente os valores do eixo y pois do jeito que esta a resoluccedilatildeo do
eixo y esta muito baixa dificultando o reconhecimento de toques em aacutereas pequenas Talvez a
inclusatildeo de mais alguns bytes no pacote de leitura da serial resolva o problema
54
Uma ideacuteia para um proacuteximo projeto que use a interface touch-screen poderia ser a
integraccedilatildeo com o projeto do nosso colega Roberto Junqueira ou a desenvolvimento de uma
placa controladora para o touch-screen
Este trabalho eacute uma modesta contribuiccedilatildeo para o uso de FPGAs e do processador embarcado
NIOS implementado em VHDL pela Altera que acredito que vai abrir vaacuterios caminhos pois
com este projeto alguns caminhos ficaram mais faacuteceis de percorrer daqui para a frente
55
CAPIacuteTULO 7 - REFEREcircNCIAS BIBLIOGRAacuteFICAS
AMORE Roberto drsquo VHDL Descriccedilatildeo e Sintese de Circuitos Rio de Janeiro ed LTC
2005
Elotouch Touch-Screen e Controladora Descriccedilatildeo do funcionamento e descriccedilatildeo
tecnologia Touch-Screen lthttpwwwelotouchcombrgt Acesso em fevereiro de 2007
ALTERA University Program IP Cores Instalaccedilatildeo de IP Cores e referencias sobre os
componentes dos kits DE1 e DE2 Disponivel em lthttpwwwalteracomeducationunivip-
coresunv-ip-coreshtmlgt Acesso em abril de 2007
ALTERA NIOS II Documentaccedilatildeo sobre o pprocessador embracado NIO II Disponivel
em lthttpwwwalteracomproductsipprocessorsipm-indexjspgt Acesso em Abril de 2007
ALTERA Development amp Education Board 2 (DE2) Manual do usuario Disponivel no
de que acompanha o Kit DE2 ltDE2_user_manualDE2_UserManualpdfgt Acesso em
fevereiro de 2007
41 Requisitos Miacutenimos 36
42 Projeto de Hardware 36
421 Funcatildeo do Touch-Screen 37
422 Monitor e VGA 37
423 Comunicaccedilatildeo serial 38
424 Comunicaccedilatildeo USB-Blaster 39
435 Memoacuteria SDRAM 39
426 Memoacuteria FLASH 39
43 Software 39
431 Software (Firmware) 39
432 Objetivos 39
432 Funccedilotildees 40
44 Validaccedilatildeo e Testes 40
CAPIacuteTULO 5 ndash VALIDACcedilAtildeO E RESULTADOS 43
51 Interface Grafica Final 49
511 Descriccedilatildeo do editor de texto 49
52 Prompt e o Teclado 50
53 Controle da Interface Touch-Screen 52
CAPIacuteTULO 6 - CONCLUSAtildeO 53
CAPIacuteTULO 7 - REFEREcircNCIAS BIBLIOGRAacuteFICAS 55
LISTA DE FIGURAS
Figura 1 ndash Touch-Screen final 14 Figura 2 ndash Mascara 15 Figura 3 ndash Vidro 15 Figura 4 ndash Chip COACh IIs 16 Figura 5 ndash Placa Controladora 17 Figura 6 ndash Pinos do Touch-Screen 17 Figura 7 ndashConector para o touch da placa controladora 17 Figura 8 ndash Conector VGA femea do kit DE2 18 Figura 9 ndash O kit DE2 20 Figura 10 ndash Diagrama de Blocos do KIT DE2 21 Figura 11 ndash Os 4 PushButtons do DE2Key[30] 24 Figura 12 ndash Modulo de displays de 7 segmentos 25 Figura 13 ndash Index de um display 25 Figura 14 ndash Temporizaccedilatildeo horizontal da VGA 27 Figura 15 - Moacutedulos do projeto 29 Figura 16 ndash Conector da interface serial do kit DE2 32 Figura 17 - Tela para a validaccedilatildeo dos testes com as bibliotecas graacuteficas do componente VGA 34 Figura 18 ndash Representaccedilatildeo em blocos do hardware do NIOS II 37 Figura 19 ndash Tela do monitor 38 Figura 20 - Cumdumpexe programa de debug da porta serial 41 Figura 21 - Teste baisco do funcionamento do componente VGA do kit DE2 42 Figura 22 ndash Menu baacutesico do editor de texto 43 Figura 23 - Estrutura em C para representar um botatildeo 43 Figura 24 - Declaraccedilatildeo dos bototildees do menu 44 Figura 25 ndash Meacutetodo drawButtonUp 45 Figura 26 ndash Meacutetodo que escreve o caption de cada botatildeo 46 Figura 27 ndash Meacutetodo que desenha o botatildeo pressionado 47 Figura 28 ndash Efeito do botatildeo de menu apertado 48 Figura 29 ndash Interface final touch-screen do usuaacuterio 49 Figura 30 ndash Estrutura em C para representar o prompt 50 Figura 31 ndash Meacutetodo que desenha o prompt 50 Figura 32 - Teste do prompt e o teclado 51 Figura 33 ndash Funcionamento do controle da interface Touch-Screen 52
LISTA DE TABELAS
Tabela 1 ndash Caracteriacutesticas da placa controladora 16 Tabela 2 ndash Pinagem do conector que faz interface entre o touch e a controladora 18 Tabela 3 ndash Descriccedilatildeo dos pinos da VGA 18 Tabela 4 ndash Lista dos componentes do Kit DE2 (DE2_UserManualpdf contrado no cd do kit) 20 Tabela 5 ndash Detalhes do FPGA Cyclone II 22 Tabela 6 - Descriccedilatildeo das configuraccedilotildees que satildeo feitas atraveacutes da Serial e Usb-Blaster 22 Tabela 7 ndash Descriccedilatildeo do Bloco da SRAM 22 Tabela 8 - Descriccedilatildeo do Bloco da SDRAM 22 Tabela 9 ndash Descriccedilatildeo da Memoria Flash 23 Tabela 10 - Descriccedilatildeo do SD card socket 23 Tabela 11 - PushButton switches 23 Tabela 12 - Descriccedilatildeo das entradas de Clocks 23 Tabela 13 - Descriccedilatildeo do Aacuteudio CODEC 23 Tabela 14 ndash Descriccedilatildeo da saiacuteda VGA DAC 24 Tabela 15 ndash Descriccedilatildeo da Serial Port e PS2 24 Tabela 16 ndash Descriccedilatildeo dos conectores de expansatildeo de 40 pinos 24 Tabela 17 ndash Pinos da FPGA referentes a cada PushButton 25 Tabela 18 ndash Pinos da FPGA referentes a cada segmento dos Displays do modulo 26 Tabela 19 ndash Especificaccedilatildeo da temporizaccedilatildeo horizontal da VGA 27 Tabela 20 ndash Especificaccedilatildeo da temporizaccedilatildeo vertical da VGA 27 Tabela 21 ndash Pinos da FPGA referentes a saiacuteda do Conector VGA do Kit 28 Tabela 22 ndash Moacutedulos dos componentes e suas descriccedilotildees 31 Tabela 23 ndash Pinos da FPGA referente agrave pinagem da interface Serial 32 Tabela 24 - Ferramentas de Desenvolvimentos e Ambientes 34 Tabela 25 ndash Linguagens de programaccedilatildeo utilizadas 35 Tabela 26 ndash Relaccedilatildeo dos Custos 35 Tabela 27 ndash Cronograma de datas e entregas do projeto 35 Tabela 28 ndash Funccedilotildees do sistema firmware 40
LISTA DE SIGLAS
CRT - Catodic Ray tube
DE2 - Development amp Educations 1
ES - EntradaSaiacuteda
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 - Nuacutecleo de Ciecircncias Exatas e Tecnoloacutegicas
PC - Personal Computer
PDA - Personal Digital Assistant
PLL - Pulse Logic Loop
SDRAM - Static Dinamic Randomic Acess Memory
TTL - Transistor-transistor Logic
UNICENP - Centro Universitaacuterio Positivo
USB - Universal Serial Bus
USP - Universidade de Satildeo Paulo
VGA - Viacutedeo 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 SIacuteMBOLOS
- ohm
MHz - Mega Hertz
Hz - Hertz
V - Volts
11
12
CAPIacuteTULO 1 - INTRODUCcedilAtildeO
A computaccedilatildeo reconfiguraacutevel vem sendo utilizada em larga escala para projetos de
hardware que necessitem de um grande poder de processamento Neste campo um dispositivo
muito utilizado eacute a FPGA (Field-Programmable Gate Array)
As FPGArsquos satildeo circuitos de hardware que podem ser modificados praticamente em
qualquer momento durante o uso As FPGArsquos consistem em array de blocos loacutegicos
configuraacuteveis que implementam funccedilotildees loacutegicas 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 mudanccedilas raacutepidas no hardware
Em microprocessadores de uso geral se tem um hardware que natildeo pode ser modificado fixo
mas no FPGA essa mudanccedila eacute bastante simples e raacutepida feita via software
Este projeto teve sua proposta lanccedilada a partir da ideacuteia concedida pelo Prof Valfredo Pilla
Junior de interface Touch-Screen
O projeto eacute sobre o controle de uma interface com uma peliacutecula Touch-Screen onde eacute
possiacutevel que o usuaacuterio ao tocar uma peliacutecula sensiacutevel ao toque o sistema desenvolvido possa
realizar algum tipo de alteraccedilatildeo na imagem apresentada em um monitor que se dispotildee atraacutes do
Touch-Screen
O objetivo foi desenvolver um sistema capaz de receber e manipular a aquisiccedilatildeo dos dados
gerados pela placa controladora atraveacutes toque na peliacutecula Touch-Screen que estaraacute na frente da
tela de um monitor converter estes dados realizar uma alteraccedilatildeo na tela inicialmente
apresentada e disponibilizar o resultado da alteraccedilatildeo atualizando a tela do monitor
O hardware do sistema eacute basicamente composto na parte da aquisiccedilatildeo por uma peliacutecula
Touch-Screen e uma placa controladora da proacutepria peliacutecula recepccedilatildeo e processamentos feitos no
Kit DE2 (Development amp Education 1) Board que enviara o resultado atraveacutes da saiacuteda VGA
(Viacutedeo Graphics Array) para um monitor CRT (Catodic Ray tube)
Este sistema eacute justificado pois as interfaces intuitivas com telas Touch-Screen satildeo
utilizadas em uma ampla gama de mercados
Por exemplo
Comeacutercio Realizar um atendimento de forma raacutepida e faacutecil eacute objetivo da automaccedilatildeo 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 usuaacuteriomaacutequina de grandes complexos
equipamentos devido agrave eliminaccedilatildeo do teclado do mouse e de outros perifeacutericos de um ambiente
industrial evitando distraccedilotildees em um ambientes geralmente muito agressivo
13
Medicina Os sistemas que usam touch simplificam os sofisticados sistemas meacutedicos reduzem as
possibilidades de erros e proporcionam um mecanismo de entrada de dados mais eficiente que
qualquer outro perifeacuterico
Educaccedilatildeo Hoje o touch esta se tornando a interface de treinamento mais popular em todas as
fases do aprendizado desde a preacute escola jardim de infacircncia e preparaccedilatildeo profissional eliminando
a frustraccedilotildees de crianccedilas ao utilizar o mouse ou teclado
E aplicaccedilotildees com o objetivo de diminuir o tempo de resposta aumentar a produtividade
proporcionar produtos e serviccedilos de maior qualidade e aumentar os lucros Por exemplo realizar
um atendimento de forma raacutepida e faacutecil eacute objetivo da automaccedilatildeo 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 serviccedilos intuitivos e interativos de uma interface
Touch proporcionam confiabilidade ao cliente que eacute exatamente o que o seu negoacutecio precisa para
o crescimento e o sucesso em longo prazo (elotouch 2007)
Este projeto no futuro poderaacute ser integrado com outro projeto formando assim um sistema
parecido com um PDA (Personal Digital Assistant)
14
CAPIacuteTULO 2 ndash FUNDAMENTACcedilAtildeO TEOacuteRICA
21-Touch Screen
Um Touch-Screen que em portugues quer dizer ldquotela sensivel ao toquerdquo estatildeo disponiacuteveis
para uma grande variedade de uso desde pontos de vendas ateacute quiosques equipamentos meacutedicos
e industriais e sistemas de jogos As vantagens das soluccedilotildees touch incluem precisatildeo
transparecircncia e facilidade de uso e instalaccedilatildeo
O Touch-Screen usado neste projeto eacute o modelo de quatro fios resistivos AT4 da empresa
Elo TouchSystem (wwwelotouchcombr)
A tecnologia resistiva touch de quatro fios consta de uma tela de vidro coberto
uniformemente por camadas eletricamente condutivas e resistivas Uma lacircmina de poliester eacute
hermeticamente estendida sobre a parte superior do vidro e separada por minuacutesculos espaccediladores
(pontos) transparentes e isolantes A parte externa dessa lacircmina eacute uma peliacutecula duraacutevel e firme a
parte interna conteacutem uma camada condutiva Durante seu funcionamento uma corrente eleacutetrica
se propaga atraveacutes do touchscreen Ativada por um miacutenimo toque a peliacutecula 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 descriccedilatildeo das
camadas que compoem o Touch-Screen
Figura 1 ndash Touch-Screen final (Adaptado com as dimensotildees da aplicaccedilatildeo do editor de texto para validar este projeto)
15
Figura 2 ndash Mascara
(Adaptado do site elotouchcombr)
1 Camada soacutelida resistente a riscos (tipo anti-reflexiva) 3 Camada ITO
2 Peliacutecula de Poliester 4 Contatos de prata
Figura 3 ndash Vidro (Adaptado do site elotouchcombr)
1 Contatos de prata 3 Camada ITO(Transparent Conducting Oxide)
2 Pontos espaccediladores 4 Camada de Vidro
O circuito da controladora aplica uma tensatildeo atraveacutes da superfiacutecie do vidro As tensotildees no
ponto de contato constituem a representaccedilatildeo analoacutegica da superfiacutecie de toque A controladora
traduz essas tensotildees e transmite-os para o computador para processaacute-los
16
211 Placa e chip da Controladora do Touch-Screen
O COACh IIs (Controller On A Chip second generation) eacute compacto econocircmico chip
controlador para as aplicaccedilotildees com o Touch-Screen AT4 de 4 fios resistivos Opera em 33V e
em 5V O tamanho compacto baixa voltagem para operar e comsumo de energia eacute a melhor
soluccedilatildeo para OEMrsquos (original equipment manufacturer) pois pode contar com estabilidade
confiabilidade e desempenho de componentes com touch para aplicaccedilotildees embarcadas ou
aplicaccedilotildees portaacuteveis[elotouchcom] A Figura 4 ilustra o chip
Figura 4 ndash Chip COACh IIs (Adaptado do site elotouchcom)
A placa controladora que integra o touch-screen em outros moacutedulos possui as caracteriacutesticas
descritas na Tabela 1 e a Figura 5 ilustra a placa controladora
Tabela 1 ndash Caracteriacutesticas da placa controladora
Alimentaccedilatildeo 5 VDC nominal (45)
Interface-Serial (Serial RS-232) Full Duplex
Paracircmetros de Comunicaccedilatildeo Baud Rate 9600 and 19200 8 Bits de dados 1 bit de parada
Interface USB Quando estiver comunicando via USB a Serial estaraacute desabilitada E a placa natildeo eacute alimentada pela USB
Resoluccedilatildeo de toque 4096x4096 independente do tamanho da peliacutecula touch-screen
Tempo de conversatildeo do toque 10ms
17
Figura 5 ndash Placa Controladora (Adaptado do site elotouchcom)
212 Pinagens e descriccedilatildeo do Touch-Screen e da Placa Controladora
A Figura 6 ilusta os pinos do Touch-Screen que satildeo ligados ao conector da placa
controladora
Figura 6 ndash Pinos do Touch-Screen (Adaptado do site elotouchcom)
A Figura 7 mostra o conector da placa controladora e as respectivas pinagens
Figura 7 ndashConector para o touch da placa controladora (Adaptado do site elotouchcom)
18
A Tabela 2 descreve os pinos do conector para o touch da placa controladora
Tabela 2 ndash Pinagem do conector que faz interface entre o touch e a controladora
Pino
Nome do Sinal Desciccedilatildeo do sinal
1 X+ Entrada de tensatildeo positiva referente ao eixo X da tela 2 Y+ Entrada de tensatildeo positiva referente ao eixo Y da tela 3 X- Entrada de tensatildeo negativa referente ao eixo X da tela 4 Y- Entrada de tensatildeo negativa referente ao eixo Y da tela
22-Video
Eacute usado um monitor CRT convencional o qual apresentaraacute uma imagem criada atraveacutes as
bibliotecas graficas proprietarias da ALTERA esta imagem representa um menu com botoes e e
que atravez da manipulaccedilatildeo dos metodos das bibliotecas os resultados satildeo disponibilizados na
saida VGA do kit dependendo do botatildeo da imagem que for tocada atravez do touch alguma accedilatildeo
de alteraccedilatildeo na imagem seraacute atulalizada na saida vga
A Figura 8 ilustra o conector (fecircmea) da saiacuteda VGA do kit DE2
Figura 8 ndash Conector VGA femea do kit DE2
E na Tabela 3 a descriccedilatildeo de cada pino bem como sua direccedilatildeo
Tabela 3 ndash Descriccedilatildeo dos pinos da VGA
Pin
Name Dir Description
1 RED
Red Video (75 ohm 07 V p-p)
2 GREEN
Green Video (75 ohm 07 V p-p)
3 BLUE
Blue Video (75 ohm 07 V p-p)
4 ID2
Monitor ID Bit 2
5 GND
Ground
6 RGND
Red Ground
7 GGND
Green Ground
8 BGND
Blue Ground
19
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
20
23-Kit Altera Development amp Education Board 1 (Kit DE2)
231-Layout e Componentes
Uma fotografia do Kit DE2 eacute mostrado na Figura 9 onde se ve a aparencia do kit e as
indicaccedilotildees das localizaccedilatildeo dos componentes e conectores
Figura 9 ndash O kit DE2 (DE2_UserManualpdf 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 eacute listado os componentes fornecidos na placa do Kit DE2
Tabela 4 ndash Lista dos componentes do Kit DE2 (DE2_UserManualpdf contrado no cd do kit)
1 Altera Serial Configuration device ndash EPCS4
2 USB Blaster (on board) for programming and user API control both JTAG and Active 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
21
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
PS2 mousekeyboard connector
17
Two 40-pin Expansion Headers with diode protection
18
Powered by either a 75V DC adapter or a USB cable
232 Diagrama de Blocos do Kit DE2
Figura 10 ndash Diagrama de Blocos do KIT DE2 (DE2_UserManualpdf contrado no cd do kit)
22
A Tabela 5 mostra a informaccedilatildeo detalhada do Bloco Cyclone II FPGA 2C20 mostrado na
Figura 10
Tabela 5 ndash Detalhes do FPGA Cyclone II
FPGA Cyclone II 2C35
18752 LErsquos
52 M4K RAM blocks 240K total RAM bits 26 embedded multipliers 4 PLLrsquos 315 user IO pinrsquos FineLine BGA 484-pin package
A Tabela 6 mostra a informaccedilatildeo detalhada do Bloco do dispositivo de configuraccedilatildeo Serial e
circuito Usb-Blaster
Tabela 6 - Descriccedilatildeo das configuraccedilotildees que satildeo feitas atraveacutes da Serial e Usb-Blaster
Configuraccedilatildeo do dispositivo Serial e do Circuito Usb-Blaster Configuraccedilatildeo do dispositivo serial Altera EPCS4 On-Board Usb-Blaster
para Controle de API de usuaacuterio e programaccedilatildeo
JTAG e AS satildeo os modos do programaccedilatildeo suportados
A Tabela 7 mostra a descriccedilatildeo do Bloco da SRAM
Tabela 7 ndash Descriccedilatildeo do Bloco da SRAM
SRAM 512-Kbyte Static RAM memory chip Organizado em 256K x 16 bits Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 8 mostra a descriccedilatildeo do Bloco da SDRAM
Tabela 8 - Descriccedilatildeo do Bloco da SDRAM
SDRAM 8-Mbyte Single Data Rate Synchronous Dynamic RAM memory chip Organizado em 1M x 16 bits x 4 Banks Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
23
A Tabela 9 mostra a descriccedilatildeo do Bloco Memory Flash
Tabela 9 ndash Descriccedilatildeo da Memoria Flash
Memory Flash
4-Mbyte NAND Flash memory 8-bit data bus Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 10 mostra a descriccedilatildeo do Bloco SD card socket
Tabela 10 - Descriccedilatildeo do SD card socket
SD card socket Fornece o modo SPI para o acesso ao cartatildeo SD Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 11 mostra a descriccedilatildeo 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) Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 12 mostra a descriccedilatildeo dos Clock inputs
Tabela 12 - Descriccedilatildeo das entradas de Clocks
Clock inputs Oscilador de 50 Mhz Oscilador 27 Mhz Entrada para clock
externo
A Tabela 13 mostra a descriccedilatildeo do Aacuteudio CODEC
Tabela 13 - Descriccedilatildeo do Aacuteudio CODEC
Aacuteudio CODEC 4-Mbyte NAND Flash memory 8-bit data bus Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
24
A Tabela 14 mostra a descriccedilatildeo do Bloco VGA DAC
Tabela 14 ndash Descriccedilatildeo da saiacuteda VGA DAC
VGA
DAC
Usa 4 bits DAC para cada cor (RGB) Com 15 pinos no conector VGA convencional (fecircmea) Suporta uma resoluccedilatildeo de 640 x 480 com um refresh de ateacute 100Hz Pode ser usando com o FPGA Cyclone II para implementar um Encoder para TV
A Tabela 15 mostra a descriccedilatildeo do Bloco Serial Ports amp PS2
Tabela 15 ndash Descriccedilatildeo da Serial Port e PS2
Serial Ports amp PS2 Uma porta RS-232
Uma posta PS2 Um conector Serial para a porta do RS-232 Conector PS2 para conectar um mouse ou teclado ao DE2
A Tabela 16 mostra a descriccedilatildeo do Bloco dos Two 40 - pin expansion headers
Tabela 16 ndash Descriccedilatildeo dos conectores de expansatildeo de 40 pinos
Two 40 - pin expansion headers 72 pinos de IO do Clyclone II bem como 8 power e groundrsquos satildeo trazidos aos 2 conectores de expansatildeo de 40 pinos cada Os conectores de 40 pinos tambeacutem aceitam os cabos IDE de 40 pinos Proteccedilatildeo resistiva eacute fornecida
233 Endereccedilo das Pinagens dos Componentes usados no Projeto
2331 PushButtons
A Figura 11 mostra uma foto dos PushButtons do kit Key[30] a ordem eacute o button da
esquerda eacute o mais significativo e o mais de direita o menos signigicativo
Figura 11 ndash Os 4 PushButtons do DE2Key[30] (DE2_UserManualpdf contrado no cd do kit)
25
A Tabela 17 mostra os pinos da FPGA aos PushButtons
Tabela 17 ndash Pinos da FPGA referentes a cada PushButton (DE2_UserManualpdf contrado no cd do kit)
2332 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 ndash Modulo de displays de 7 segmentos (DE2_UserManualpdf encontrado no cd do kit)
Figura 13 ndash Index de um display (DE2_UserManualpdf encontrado no cd do
kit)
26
A Tabela 18 mostra os pinos da FPGA referente a cada segmento dos displays de 7
segmentos do modulo
Tabela 18 ndash Pinos da FPGA referentes a cada segmento dos Displays do modulo
27
2333 VGA
A Figura 14 esta em forma de onda da temporizaccedilatildeo horizontal e vertical da VGA do Kit
DE2
Figura 14 ndash Temporizaccedilatildeo horizontal da VGA
A Tabela 19 mostra a especificaccedilatildeo da temporizaccedilatildeo horizontal da VGA
Tabela 19 ndash Especificaccedilatildeo da temporizaccedilatildeo horizontal da VGA
A Tabela 20 mostra a especificaccedilatildeo da temporizaccedilatildeo vertical da VGA
Tabela 20 ndash Especificaccedilatildeo da temporizaccedilatildeo vertical da VGA
28
A Tabela 21 mostra os pinos da FPGA referente a cada pino de saida do conector VGA do
Kit DE2
Tabela 21 ndash Pinos da FPGA referentes a saiacuteda do Conector VGA do Kit
29
CAPIacuteTULO 3 ndash ESPECIFICACcedilAtildeO TECNICA
Nesse capiacutetulo tem-se uma descriccedilatildeo dos principais moacutedulos do projeto Satildeo eles Software
Firmware e Hardware
Inicialmente eacute apresentada a visatildeo geral do sistema e a descriccedilatildeo funcional de cada moacutedulo
A Figura 15 apresenta o diagrama em blocos do sistema
Figura 15 - Moacutedulos do projeto
31 Descriccedilatildeo de Software
O Software eacute uma das interfaces com o usuaacuterio
312 Diagrama de Blocos do Software
30
312 Modulo do PC
Neste modulo eacute 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
32 Descriccedilatildeo de Hardware
321 Modulo Touch-Screen
O usuaacuterio ao tocar o Touch-Screen (AT4 touch-screen resistivo de 4 fios) ocorre uma
mudanccedila nas tensotildees do eixo X e do eixo Y devido a resistecircncia gerada pelo ao toque do usuaacuterio
em uma determinada regiatildeo da tela essa mudanccedila de tensatildeo eacute interpretada pela placa
controladora COACh IIs do Touch-Screen e enviada via serial para o Kit DE2 que interpretaraacute
os dados e faraacute o devido processamento
322 Modulo FPGA
O Hardware corresponde tanto aos componentes fiacutesicos presentes no kit de desenvolvimento
quanto aos componentes que seratildeo configurados na FPGA Satildeo diversos componentes escritos
em linguagem de descriccedilatildeo de hardware
No um dos principais componentes de hardware utilizado modulo eacute o processador NIOS II
para se ter uma ideacuteia o processador NIOS II eacute capaz gerenciar os dispositivos externos a FPGA
utilizando controladores de memoacuterias controladores de VGA entre outros E tambeacutem eacute possiacutevel
o proacuteprio usuaacuterio criar seu componente para ser controlado atraveacutes do processador NIOS
II(Altera 2007)
31
3221 O Processador NIOS II
Atraveacutes do software SOPC da ALTERA foi possiacutevel montar a arquitetura de hardware do
processador NIOS II bem como especificar as interfaces que ele iraacute controlar atraveacutes do firmwar
feito no NIOS II IDE
Na Tabela 22 eacute no campo Module Name onde estatildeo os moacutedulos que foram usados para
definir o processador NIOS II e os componentes externos que ele iraacute controlar e no campo
Description esta a descriccedilatildeo do nome de cada modulo
Tabela 22 ndash Moacutedulos dos componentes e suas descriccedilotildees
3222 Firmware para o NIOS II
O Firmware foi feito utilizando a linguagem C utilizando a ferramenta NIOS II IDE Atraveacutes
do firmware eacute possiacutevel 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 graacuteficas para controlar a vga e serial e
USB-BLASTER eacute encarregado em enviar todo o desenvolvimento do projeto para o Kit DE2
323 Configuraccedilatildeo da FPGA via JTAG
Depois de configurado o hardware do processador NIOS II eacute preciso fazer o load do NIOS
para a FPGA e para que isso aconteccedila eacute necessaacuterio que atraveacutes do software Quartus II da
ALTERA utilizando a interface JTAG utilizando o cabo USB-BLASTER
32
324 Comunicaccedilatildeo entre FPGA e o Touch-Screen
Para comunicaccedilatildeo entre dos dois hardwares Touch-Screen e o FPGA eacute utilizando uma
interface serial RS-232
A configuraccedilatildeo da interface eacute a seguinte
Bits de dados 8
Taxa de dados 5600(bps)
A Tabela 23 mostra a relaccedilatildeo dos pinos da porta serial com os pinos da FPGA
Tabela 23 ndash Pinos da FPGA referente agrave pinagem da interface Serial
E a Figura 16 mostra o desenho correspondente da interface serial
Figura 16 ndash Conector da interface serial do kit DE2
33 Especificaccedilatildeo de Validaccedilatildeo
331 Validaccedilatildeo de Hardware
A validade do hardware se faz com a anaacutelise de todos os moacutedulos envolvidos
As necessidades satildeo estudadas os componentes externos ao FPGA satildeo selecionados de
acordo o processador nios e os controladores dos moacutedulos externos como VGA e SERIAL satildeo
enviados ao modulo FPGA
Os resultados obtidos na tela do monitor e a recepccedilatildeo dos dados pela serial comprovam o
funcionamento do modulo de comunicaccedilatildeo da serial e vga
33
332 Validaccedilatildeo de Software
A validaccedilatildeo do controle da interface touch-screen faz-se a partir dos resultados obtidos das
funccedilotildees escritas na linguagem C especificas para cada componente externos ao FPGA essas
funccedilotildees tornam possiacuteveis que o processador NIOS na FPGA tenha total controle sobre os
moacutedulos externos como a VGA e a SERIAL
As funccedilotildees que satildeo utilizadas para validar o funcionamento do software satildeo para a VGA os
meacutetodos de controle (alt_up_vga_draw_char_1b( char int x int y)) e (alt_up_vga_draw_pixel(
color x y))
O meacutetodo (alt_up_vga_draw_char_1b( char int x int y)) tem a funcionalidade de escrever
caracteres na tela do monitor e a descriccedilatildeo da sua assinatura ldquoparacircmetrosrdquo eacute a seguinte char eacute o
caractere que eacute escrito em alguma posiccedilatildeo na tela int x eacute a posiccedilatildeo x da tela do monitor e int y eacute
a posiccedilatildeo y da tela do monitor sendo que a resoluccedilatildeo utilizada eacute de 80x60 ou seja x natildeo pode
passar de 80 e y natildeo pode passar de 60
O meacutetodo (alt_up_vga_draw_pixel( color int x int y)) tem a funcionalidade de ldquopintarrdquo o
fundo da tela do monitor o meacutetodo de imprimir caracteres tem preferecircncia sobre este meacutetodo ou
seja os caracteres sempre ficam sob a aacuterea pintada ou seja o caractere sempre ficara em cima da
aacuterea pintada a descriccedilatildeo da assinatura deste meacutetodo eacute a seguinte color eacute a valor da cor que pode
ser um valor inteiro ou em hexadecimal para definir uma cor de alguma posiccedilatildeo da tela definidos
pelos paracircmetros x e y
As funccedilotildees que satildeo utilizadas para validar o funcionamento do software satildeo para a Serial os
meacutetodos de controle de transmissatildeo (fread( packet sizeof(packet) 1 serial_fp )) a funccedilatildeo
fread eacute utilizada para a leitura via interrupccedilatildeo dos pacotes que a controladora envia para o kit
DE2 as assinaturas do meacutetodo fread tem a seguinte composiccedilatildeo packet eacute a estrutura do pacote
que seraacute recebido o sizeof(packet) eacute o diz qual eacute o tamanho exato da estrutura criada e o
serial_fp eacute o handle da porta serial
Uma observaccedilatildeo muito importante eacute que para o total funcionamento eacute necessaacuterio 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 rs232h e rs232c onde estatildeo os meacutetodos de
controle da SERIAL e alt_up_vgah alt_up_vgac onde estatildeo os meacutetodos de controle para a
VGA Para tornar estes meacutetodos acessiacuteveis eacute preciso fazer os includes dos arquivos h no
projeto da NIOS IDE
A figura 17 mostra a utilizaccedilatildeo dos meacutetodos (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
34
int y)) utlizado para escrever os caracteres lsquoarsquo e lsquobrsquo dentro de um grupo de pixel previamente
pintado a (alt_up_vga_draw_pixel( color int x int y)) natildeo pinta um pixel de cada vez e sim
um bloco de 8x8 pixels
Figura 17 - Tela para a validaccedilatildeo dos testes com as bibliotecas graacuteficas do componente VGA
34 Recursos Necessaacuterios
A Tabela 24 apresenta os ambientes de desenvolvimento e ferramentas de software utilizadas
e na Tabela 25 as linguagens necessaacuterias Estas ferramentas foram utilizadas em ambiente
Windows Xp
Tabela 24 - Ferramentas de Desenvolvimentos e Ambientes
Software Para que foi Utilizado
Quartus II Para a definiccedilatildeo de qual o modelo de FPGA utilizado compilaccedilatildeo e simulaccedilatildeo e envio Load do NIOS para FPGA
SOPC Para definiccedilatildeo da do processador NIOS II e com quais componentes externos ele ira interagir atraveacutes dos controladores dos respectivos componentes
NIOS II IDE Para implementaccedilatildeo do firmware do processador NIOS II utilizando a linguagem em C
35
Borland C++ Builder Para desenvolvimento de ima interface de comunicaccedilatildeo via caboUSB-
BLASTER para o envio de imagem para o kit
Tabela 25 ndash Linguagens de programaccedilatildeo utilizadas
Linguagem Ferramenta C++ Borland C++ Builder VerilogVHDL Quartus II C NIOS II IDE
35 Viabilidade Teacutecnico-Econocircmica
O valor do projeto esta descrito na Tabela 26
Tabela 26 ndash Relaccedilatildeo dos Custos
DESCRICcedilAtildeO CUSTO APROXIMADO (R$) COMPONENTES ELETROcircNICOS 50000 1 Kit DE2 Cyclone II 35000 1 Monitor de Computador 35000 HORAS TRABALHADAS (400 horas) 750000 CUSTO TOTAL APROXIMADO (R$) 870000
36 Cronograma do Projeto
A tabela 27 contem as informaccedilotildees do cronograma do projeto
Tabela 27 ndash Cronograma de datas e entregas do projeto
Data Atividade a ser apresentada 050307 Entrega das propostas de projeto para avaliaccedilatildeo do colegiado 020407 Entrega das especificaccedilotildees teacutecnicas do projeto aprovado 110607 Entrega do projeto (monografia) e dos testes preliminares do mesmo 060807 Apresentaccedilatildeo preacutevia da implementaccedilatildeo do projeto especificado 011007 Apresentaccedilatildeo do projeto implementado
Qualificaccedilatildeo para a fase final 291007 Segunda apresentaccedilatildeo do projeto implementado para os que natildeo o fizeram no
dia 011006 com decreacutescimo da nota Qualificaccedilatildeo para a fase final
051107 Entrega da documentaccedilatildeo completa em espiral para a banca examinadora em 3 vias contendo a monografia manual teacutecnico manual do usuaacuterio e artigo cientiacutefico
261107 Defesa formal dos projetos com apresentaccedilatildeo oral para a banca examinadora 101207 Entrega da documentaccedilatildeo completa revisada e corrigida encadernada no
padratildeo da biblioteca (capa dura) em duas vias contendo a monografia manual teacutecnico manual do usuaacuterio e artigo cientiacutefico Entrega do CD contendo no formato WEB todo o conteuacutedo dos manuais
36
CAPIacuteTULO 4 ndash ESPECIFICACcedilAtildeO TECNICA
41 Requisitos Miacutenimos
Os requisitos miacutenimos de Hardware satildeo
Funcionamento das interfaces Serial e USB-Blaster
Funcionamento do Kit DE2
PC
Os requisitos miacutenimos de Software
Windows Xp
Quartus II
SOPC
NIOS II IDE
42 Projeto de Hardware
O hardware utilizado nesse projeto inclui componentes presentes na Placa de
Desenvolvimento Nios II - ediccedilatildeo DE2 Cyclone II EP2C35 e principalmente o hardware que seraacute
configurado na FPGA escrito em linguagem de descriccedilatildeo de hardware (HDL)
O um dos principais blocos de hardware eacute o processador NIOS II o Avalon Bus e os
controladores de componentes externos a FPGA e de comunicaccedilatildeo presentes no Kit
37
O software embarcado (firmware) estaraacute rodando nessa arquitetura Eacute uma arquitetura
completa construiacuteda com a ferramenta SOPC Builder da Altera A Figura 18 representa em
blocos os principais componentes dessa arquitetura
Figura 18 ndash Representaccedilatildeo em blocos do hardware do NIOS II
421 Funcatildeo do Touch-Screen
Outro bloco importante eacute o do Touch-Screen esta tela sensiacutevel ao toque pois como esta tela
trabalha com resistecircncia ao ser tocado em uma determinada regiatildeo uma resistecircncia eacute gerada e a
tensatildeo de saiacuteda eacute modificada a alimentaccedilatildeo desta placa eacute proveniente de sua placa controladora
a mesma placa que recebe a tensatildeo de saiacuteda modificada de acordo com a regiatildeo tocada na tela
Para verificar as caracteriacutesticas detalhadas do Touch-Screen e sua placa controlador favor ver
o Capitulo 2
422 Monitor e VGA
O Monitor inicialmente tem apenas o desenho de um botatildeo que ao ser tocado via touch
mudara a cor de toda a tela A imagem exibida no monitor tem uma resoluccedilatildeo de
38
Protoacutetipo das telas para os testes esta na Figura 19 a tela verde quando a touch natildeo eacute tocando
na regiatildeo do botatildeo de OK quando o botatildeo de OK for tocado a tela do monitor mudara de cor
ficando azul
Figura 19 ndash Tela do monitor
No Capitulo 2 estatildeo todas as caracteriacutesticas da pinagem e do conector VGA
423 Comunicaccedilatildeo serial
Entre a placa controladora do Touch-Screen e o FPGA existe uma comunicaccedilatildeo 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 manipulaccedilatildeo da imagem que eacute
mostrada no monitor
No capitulo 2 estatildeo das descriccedilotildees dos pinos e do conector da comunicaccedilatildeo Serial
O pacote serial que eacute transmitido pela placa controladora do touch-screen possui 10 bytes de
comprimento e segue a seguinte sequumlecircncia de envio
[55] [54] [] [] [] [] [] [] [] []
Sequumlecircncia dos bytes
Os dois primeiros bytes identificam o Header do pacote
O terceiro byte eacute 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 agrave posiccedilatildeo do eixo x onde a tela foi tocada
O sexto e o seacutetimo byte correspondem a posiccedilatildeo do eixo y onde a tele foi tocada
O restante os bytes identificam o tail do pacote recepcionado pelo kit DE2
39
424 Comunicaccedilatildeo USB-Blaster
Essencial para envio do projeto desenvolvido para o kit DE2 tambeacutem muito utilizado para o
debug deste projeto
435 Memoacuteria SDRAM
A memoacuteria utilizada para armazenar grandes quantidades de dados eacute a SDRAM (ver detalhes
no Capitulo 2)
Essa memoacuteria eacute muito raacutepida serviu muito bem para armazenar o firmware deste projeto
pois tem o tempo acesso ideal para ler as instruccedilotildees que utilizaram a VGA e tambeacutem eacute raacutepida o
suficiente para fazer a leitura dos dados e disponibilizar na saiacuteda VGA do kit
426 Memoacuteria FLASH
Eacute onde seraacute armazenado o firmware possui espaccedilo suficiente para isso 4MB e uma memoacuteria
mais lenta e por isso natildeo foi usada para armazenar dados para serem jogados na vga do Kit
43 Software
431 Software (Firmware)
O software tem de funccedilatildeo de utilizar as bibliotecas das controladoras dos componentes
externos a fim de controlar estes componentes de acordo com o necessaacuterio para atender o
objetivo do projeto
Ou seja uma tela inicial eacute apresentada e o usuaacuterio ao tocar na nela o kit recebe um pacote via
serial e interpreta a posiccedilatildeo da tela em que foi tocado e logo em seguida envia o resultado deste
toque para o monitor
432 Objetivos
O usuaacuterio 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 accedilatildeo de acordo com a posiccedilatildeo da tela
tocada alterando assim a imagem anterior com o resultado do toque
Interpretar o toque de usuaacuterio na tela touch-screen recepccedilatildeo do pacote via serial da placa
controladora do touch-screen tratamento do pacote e interpretaccedilatildeo das coordenadas x e y do
40
toque Realizaccedilatildeo de alguma accedilatildeo que resultara na alteraccedilatildeo da imagem da tela atual de acordo
com a funccedilatildeo em que as coordenadas foram previamente definidas para o que deve ser feito
432 Funccedilotildees
A Tabela 28 tem as principais funccedilotildees que foram implementadas para o sistema
Tabela 28 ndash Funccedilotildees do sistema firmware
FUNCcedilOtildeES Tela de um pequeno editor de texto Tratamento do sinal recebido da serial devido a um toque na tela Interpretaccedilatildeo do pacote serial e transfomaccedilatildeo para coordenadas x e y Transformaccedilatildeo das posiccedilotildees do toque na tela em alguma accedilatildeo enviando o resultado para a VGA Imagem final disponibilizada ao usuaacuterio de acordo com o toque que foi dado na tela Controlar dispositivos cada dispositivo pode ser controlado pelo seu respectivo contrador atraveacutes de seu endereccedilo base VGA SERIAL USB-BLASTER IO(Leds Switches etc) do Kit DE2
O Firmware do processador NIOS II eacute que realizaraacute a integraccedilatildeo entre hardware com
hardware Com o firmware controlando o NIOS II eacute possiacutevel interagir com os dispositivos
externos a FPGA Tornando possiacutevel a integraccedilatildeo da FPGA com a peliacutecula touch-screen e um
monitor sem a ajuda de um PC a uacutenica ajuda do pc seria para enviar dados de uma imagem para
o Kit DE2
44 Validaccedilatildeo e Testes
Inicialmente os moacutedulos da VGA e comunicaccedilatildeo SERIAL natildeo estavam funicionando
apenas o devido agrave fraca documentaccedilatildeo sobre o kit DE2 foi possiacutevel apenas fazer testes com o
Processador NIOS II pois sobre este existem bastantes documentos e exemplos que podem ser
utilizados
Nesta primeira parte foi possiacutevel testar o NIOS II para controlar o display bototildees e switchs
do kit DE2
Com o NIOS II funcionando completamente foi necessaacuterio porta-lo para o kit DE2 o que foi
simples pois como sabemos esses kits satildeo portaacuteveis entre si apenas mudando a pinagem e a
capacidade da FPGA
Com o Kit DE2 foi possiacutevel fazer os testes necessaacuterios com a comunicaccedilatildeo serial
inicialmente testada via terminal conversando diretamente com o kit foi possiacutevel fazer o
seguinte teste os caracteres que eram entrados via teclado chegavam ao kit via serial e o o
41
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 comdumpexe que eacute facilmente encontrado pelas ferramentas
de pesquisa da web e tambeacutem existem vario outros programas como este e o comdump eacute
utilizado para debug da porta serial do pc conectado diretamente na placa controladora do touch-
screen e foi a peccedila chave para o entendimento do pacote enviado pela placa controladora
Figura 20 - Cumdumpexe programa de debug da porta serial
A explicaccedilatildeo de cada byte do pacote esta explicado no item 423
Apos o entendimento completo da transmissatildeo 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 natildeo 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 ateacute o momento em que
foi testado os meacutetodos proprietaacuterios da Altera para fazer a VGA funcionar os meacutetodos esses
implementados em C
A figura 21 onde contem o teste baacutesico feito que foi a chave principal para o sucesso deste
projeto
42
Como dito no item 332 do projeto foram utilizados as funccedilotildees da controladora VGA esses
meacutetodos 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 eacute utilizado o meacutetodo alt_up_vga_draw_pixel( color int
x int y) onde color eacute a cor do bloco de pixels e x e y satildeo as coordenadas da tela onde o bloco
que seraacute pintado
Para escrever um caractere sobre um bloco de pixels pintado eacute utilizado a funccedilatildeo
alt_up_vga_draw_char_1b( char int x int y) onde char eacute o caractere a ser impresso e x e y satildeo
as coordenadas da tela onde os o caractere eacute impresso
Figura 21 - Teste baisco do funcionamento do componente VGA do kit DE2
43
CAPIacuteTULO 5 ndash VALIDACcedilAtildeO E RESULTADOS
Os resultados foram os melhores possiacuteveis pois com a utilizaccedilatildeo dos IP CORE
ldquocontroladorasrdquo dos componentes externos como VGA e SERIAL e seus meacutetodos de para
controle eacute possiacutevel controlar facilmente esses moacutedulos atraveacutes do firmware desenvolvido para o
processador NIOS que consegue realizar operaccedilotildees transparentes acessando dos meacutetodos de
controle dos moacutedulos
Apos os testes baacutesicos 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 baacutesico de editor de texto
A figura 22 mostra um teste utilizando os meacutetodos de controle disponiacuteveis para o IP CORE
da VGA para primeiramente fazer o menu da aplicaccedilatildeo desenvolvido em na linguagem C
Figura 22 ndash Menu baacutesico do editor de texto
Para desenhar o menu da figura acima foi utilizado os meacutetodos proprietaacuterios de controle da
VGA citados no capitulo 4 e tambeacutem estruturas de repeticcedilatildeo para que a tela fosse varrida e os
pixels desenhados nos respectivos lugares da tela bem como os caracteres
Na figura 23 eacute definida a seguinte estrutura em C para representar de um botatildeo
Figura 23 - Estrutura em C para representar um botatildeo
44
A figura 24 eacute a declaraccedilatildeo dos bototildees que seratildeo utilizados pelo aplicativo editor de texto
para comprovar o funcionamento do controle da interface touch-screen
Apenas o que esta dentro da marcaccedilatildeo quadrada representa os bototildees do menu da figura 23
e o restante satildeo os bototildees do teclado do editor de texto
Figura 24 - Declaraccedilatildeo dos bototildees do menu
45
A figura 25 representa o meacutetodo drawnButtonUp responsaacutevel por desenhar os bototildees na tela
de acordo com as posiccedilotildees em que foram declarados os bototildees deste meacutetodo satildeo desenhados
para parecerem que estatildeo ldquolevantadosrdquo e natildeo pressionados
Note que foram utilizados os meacutetodos proprietaacuterios de controle da VGA
alt_up_vga_draw_pixel pra pitar os pixels e alt_up_vga_draw_char_b1 para desenhar caracteres
como jaacute foi especificado no item 44 do projeto
Figura 25 ndash Meacutetodo drawButtonUp
46
O meacutetodo que desenha o caption do botatildeo se chama drawButtonText desenha os caracteres
em cima dos bototildees natildeo importa se o botatildeo esta pressionado ou natildeo
A figura 26 mostra como este meacutetodo foi implementado e ele eacute chamado no final de cada
meacutetodo onde algum tipo de botatildeo eacute desenhado quando o meacutetodo que desenha o botatildeo normal
quanto o pressionado e ateacute mesmo o do teclado
Figura 26 ndash Meacutetodo que escreve o caption de cada botatildeo
47
A figura 27 mostra o meacutetodo drawButtonDown que desenha o botatildeo pressionado ou seja
quando o usuaacuterio pressiona a regiatildeo correspondente a um botatildeo do menu no touch-screen o
mesmo redesenharaacute o botatildeo parecendo um efeito de botatildeo afundado note que no final do
meacutetodo novamente eacute chamado o meacutetodo drawButtonText que reescreveraacute o caption do botatildeo
como mostra o meacutetodo da figura 26 e esta ilustrado na figura 28
Figura 27 ndash Meacutetodo que desenha o botatildeo pressionado
48
Dependendo da aacuterea do menu que o usuaacuterio pressionar no touch-screen causar o efeito de
pressionado como mostra a figura 28
Figura 28 ndash Efeito do botatildeo de menu apertado
Na figura 29 eacute a representaccedilatildeo de quando a aacuterea correspondente ao botatildeo ldquoamarelordquo eacute
pressionada
Apos estes testes baacutesicos comprovando o funcionamento da interface graacutefica para o usuaacuterio
foi definido o restante dos componentes da tela que eacute constituiacutedo de um prompt e um teclado
qwerty que foi essencial para comprovar o perfeito funcionamento do controle da interface
touch-screen
49
51 Interface Grafica Final
A figura 29 mostra a interface final que o usuaacuterio teraacute para poder verificar o funcionamento
do controle da interface touch-screen
Figura 29 ndash Interface final touch-screen do usuaacuterio
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
511 Descriccedilatildeo do editor de texto
O menu possui 4 botoes cada um com sua respectiva funcionalidade quando o usuario
pressiona a area do botatildeo ldquoapagarrdquo uma vez entatildeo um carectere do prompt eacute apagado Quando eacute
precionado a area correspondente ao botatildeo ldquoResetrdquo todo o conteudo do prompt seraacute apagado e o
plano de fundo retornaraacute a cor branca Quando o botatildeo ldquoamarelordquo eacute pressionado o fundo da tela
passa a ser amarelo e o mesmo acontece se o usuario precionar o botatildeo verde tornando o cor de
fundo verde
50
O teclado possui 29 teclas sendo duas delas que equivalem ao ENTRA ldquoENTrdquo e ao
SPACE ldquoSPCrdquo Quando o usuario pressiona a area correspondente a algum botatildeo do teclado o
mesmo muda sua cor para azul e o seu caractere eacute disponibilizado no prompt
Essas funcionalidades nada mais satildeo do que um bom exemplo de como funciona
corretamente o controle da interface touch-screen
52 Prompt e o Teclado
A estrutura feita na linguagem C que define o prompt da figura 28 esta representado na
figura 30
Figura 30 ndash Estrutura em C para representar o prompt
A figura 31 mostra o metodo drawPrompt utilizado para desenhar na tela o prompt
Figura 31 ndash Meacutetodo que desenha o prompt
51
A estrutura do teclado eacute a mesma utilizada pela figura 23 e tambem eacute criado satildeo
inicializados na figura 24
O restante as implementaccedilotildees estatildeo disponiveis no cd deste documento
Quando algum botatildeo do teclado eacute pressionado sua cor muda para azul e sua letra
correspondente eacute escrita o prompt
A figura 32 ilustra quando o usuaacuterio aperta a letra lsquotrsquo na peliacutecula touch-screen
Figura 32 - Teste do prompt e o teclado
52
53 Controle da Interface Touch-Screen
Depois do todos os testes com o processador NIOS e a integraccedilatildeo do mesmo com os
moacutedulos externos como a porta SERIAL e a saiacuteda VGA eacute possiacutevel utilizando o touch-screen
criar uma interface amigaacutevel e faacutecil de usar para o usuaacuterio utilizando um firmware capaz de
interpretar os sinais via serial vindo da controladora do touch ao detectar que um toque foi dado
pelo usuaacuterio e realizar algumas accedilotildees que neste caso se comportam como um editor de texto
baacutesico
A figura 33 mostra como foi validado este projeto e seus moacutedulos controlando uma
interface touch-screen para chegar no resultado abaixo digitado pelo usuaacuterio comprovando o
funcionamento e viabilidade deste projeto
Figura 33 ndash 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 mudanccedilas podendo ser alterado rapidamente o tipo de
aplicaccedilatildeo ou integrado rapidamente com outro projeto
53
CAPIacuteTULO 6 - CONCLUSAtildeO
Uma das principais dificuldades no desenvolvimento deste projeto foi fazer o levantamento
da documentaccedilatildeo sobre o processador NIOS e os moacutedulos externos a FPGA do Kit DE2 Como
natildeo foi feito algum projeto antes que utilizasse a interface VGA e a SERIAL do Kit DE2 levou-
se muito tempo ateacute conseguir adquirir e ordenar o conhecimento que foi sendo adquirido ateacute
conseguir dar os primeiros passos e realizar os primeiros testes com a VGA e a SERIAL Outro
grande obstaacuteculo foi ter de descobrir que para que o NIOS controlasse os moacutedulos externos a
FGPA fosse necessaacuterio copiar os arquivos c e h dos respectivos componente para dentro do
projeto
Mas depois de todos os problemas com os moacutedulos externos solucionados cada modulo do
projeto foi sendo desenvolvido separadamente ateacute seu total funcionamento Natildeo tive dificuldades
com a linguagem da programaccedilatildeo pois o Firmware do processador NIOS eacute o C a qual mais tive
contato na faculdade
Outro desafio foi fazer a peliacutecula 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
peliacutecula natildeo 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 possiacutevel
comeccedilar a fazer os testes necessaacuterios para prosseguir com o projeto aprender como o a peliacutecula
identifica um toque e manda este sinal para a controladora e a controladora transforma este sinal
em um sinal serial que eacute 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 accedilotildees
que as coordenadas jaacute estatildeo previamente calibradas no firmware para fazer bem como mudar de
cor a tela fazer o efeito de um botatildeo subindo e descendo etc
Varias vezes o projeto parou de funcionar entatildeo 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 memoacuteria abundante etc uma das
facilidades eacute a faacutecil alteraccedilatildeo do projeto podendo ser integrado a outro ou ateacute mesmo alterado
para realizar outros tipos de accedilotildees com o touch-screen
Existem vaacuterios melhoramentos que podem ser executados no projeto um deles eacute tentar
interpretar de uma maneira diferente os valores do eixo y pois do jeito que esta a resoluccedilatildeo do
eixo y esta muito baixa dificultando o reconhecimento de toques em aacutereas pequenas Talvez a
inclusatildeo de mais alguns bytes no pacote de leitura da serial resolva o problema
54
Uma ideacuteia para um proacuteximo projeto que use a interface touch-screen poderia ser a
integraccedilatildeo com o projeto do nosso colega Roberto Junqueira ou a desenvolvimento de uma
placa controladora para o touch-screen
Este trabalho eacute uma modesta contribuiccedilatildeo para o uso de FPGAs e do processador embarcado
NIOS implementado em VHDL pela Altera que acredito que vai abrir vaacuterios caminhos pois
com este projeto alguns caminhos ficaram mais faacuteceis de percorrer daqui para a frente
55
CAPIacuteTULO 7 - REFEREcircNCIAS BIBLIOGRAacuteFICAS
AMORE Roberto drsquo VHDL Descriccedilatildeo e Sintese de Circuitos Rio de Janeiro ed LTC
2005
Elotouch Touch-Screen e Controladora Descriccedilatildeo do funcionamento e descriccedilatildeo
tecnologia Touch-Screen lthttpwwwelotouchcombrgt Acesso em fevereiro de 2007
ALTERA University Program IP Cores Instalaccedilatildeo de IP Cores e referencias sobre os
componentes dos kits DE1 e DE2 Disponivel em lthttpwwwalteracomeducationunivip-
coresunv-ip-coreshtmlgt Acesso em abril de 2007
ALTERA NIOS II Documentaccedilatildeo sobre o pprocessador embracado NIO II Disponivel
em lthttpwwwalteracomproductsipprocessorsipm-indexjspgt Acesso em Abril de 2007
ALTERA Development amp Education Board 2 (DE2) Manual do usuario Disponivel no
de que acompanha o Kit DE2 ltDE2_user_manualDE2_UserManualpdfgt Acesso em
fevereiro de 2007
LISTA DE FIGURAS
Figura 1 ndash Touch-Screen final 14 Figura 2 ndash Mascara 15 Figura 3 ndash Vidro 15 Figura 4 ndash Chip COACh IIs 16 Figura 5 ndash Placa Controladora 17 Figura 6 ndash Pinos do Touch-Screen 17 Figura 7 ndashConector para o touch da placa controladora 17 Figura 8 ndash Conector VGA femea do kit DE2 18 Figura 9 ndash O kit DE2 20 Figura 10 ndash Diagrama de Blocos do KIT DE2 21 Figura 11 ndash Os 4 PushButtons do DE2Key[30] 24 Figura 12 ndash Modulo de displays de 7 segmentos 25 Figura 13 ndash Index de um display 25 Figura 14 ndash Temporizaccedilatildeo horizontal da VGA 27 Figura 15 - Moacutedulos do projeto 29 Figura 16 ndash Conector da interface serial do kit DE2 32 Figura 17 - Tela para a validaccedilatildeo dos testes com as bibliotecas graacuteficas do componente VGA 34 Figura 18 ndash Representaccedilatildeo em blocos do hardware do NIOS II 37 Figura 19 ndash Tela do monitor 38 Figura 20 - Cumdumpexe programa de debug da porta serial 41 Figura 21 - Teste baisco do funcionamento do componente VGA do kit DE2 42 Figura 22 ndash Menu baacutesico do editor de texto 43 Figura 23 - Estrutura em C para representar um botatildeo 43 Figura 24 - Declaraccedilatildeo dos bototildees do menu 44 Figura 25 ndash Meacutetodo drawButtonUp 45 Figura 26 ndash Meacutetodo que escreve o caption de cada botatildeo 46 Figura 27 ndash Meacutetodo que desenha o botatildeo pressionado 47 Figura 28 ndash Efeito do botatildeo de menu apertado 48 Figura 29 ndash Interface final touch-screen do usuaacuterio 49 Figura 30 ndash Estrutura em C para representar o prompt 50 Figura 31 ndash Meacutetodo que desenha o prompt 50 Figura 32 - Teste do prompt e o teclado 51 Figura 33 ndash Funcionamento do controle da interface Touch-Screen 52
LISTA DE TABELAS
Tabela 1 ndash Caracteriacutesticas da placa controladora 16 Tabela 2 ndash Pinagem do conector que faz interface entre o touch e a controladora 18 Tabela 3 ndash Descriccedilatildeo dos pinos da VGA 18 Tabela 4 ndash Lista dos componentes do Kit DE2 (DE2_UserManualpdf contrado no cd do kit) 20 Tabela 5 ndash Detalhes do FPGA Cyclone II 22 Tabela 6 - Descriccedilatildeo das configuraccedilotildees que satildeo feitas atraveacutes da Serial e Usb-Blaster 22 Tabela 7 ndash Descriccedilatildeo do Bloco da SRAM 22 Tabela 8 - Descriccedilatildeo do Bloco da SDRAM 22 Tabela 9 ndash Descriccedilatildeo da Memoria Flash 23 Tabela 10 - Descriccedilatildeo do SD card socket 23 Tabela 11 - PushButton switches 23 Tabela 12 - Descriccedilatildeo das entradas de Clocks 23 Tabela 13 - Descriccedilatildeo do Aacuteudio CODEC 23 Tabela 14 ndash Descriccedilatildeo da saiacuteda VGA DAC 24 Tabela 15 ndash Descriccedilatildeo da Serial Port e PS2 24 Tabela 16 ndash Descriccedilatildeo dos conectores de expansatildeo de 40 pinos 24 Tabela 17 ndash Pinos da FPGA referentes a cada PushButton 25 Tabela 18 ndash Pinos da FPGA referentes a cada segmento dos Displays do modulo 26 Tabela 19 ndash Especificaccedilatildeo da temporizaccedilatildeo horizontal da VGA 27 Tabela 20 ndash Especificaccedilatildeo da temporizaccedilatildeo vertical da VGA 27 Tabela 21 ndash Pinos da FPGA referentes a saiacuteda do Conector VGA do Kit 28 Tabela 22 ndash Moacutedulos dos componentes e suas descriccedilotildees 31 Tabela 23 ndash Pinos da FPGA referente agrave pinagem da interface Serial 32 Tabela 24 - Ferramentas de Desenvolvimentos e Ambientes 34 Tabela 25 ndash Linguagens de programaccedilatildeo utilizadas 35 Tabela 26 ndash Relaccedilatildeo dos Custos 35 Tabela 27 ndash Cronograma de datas e entregas do projeto 35 Tabela 28 ndash Funccedilotildees do sistema firmware 40
LISTA DE SIGLAS
CRT - Catodic Ray tube
DE2 - Development amp Educations 1
ES - EntradaSaiacuteda
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 - Nuacutecleo de Ciecircncias Exatas e Tecnoloacutegicas
PC - Personal Computer
PDA - Personal Digital Assistant
PLL - Pulse Logic Loop
SDRAM - Static Dinamic Randomic Acess Memory
TTL - Transistor-transistor Logic
UNICENP - Centro Universitaacuterio Positivo
USB - Universal Serial Bus
USP - Universidade de Satildeo Paulo
VGA - Viacutedeo 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 SIacuteMBOLOS
- ohm
MHz - Mega Hertz
Hz - Hertz
V - Volts
11
12
CAPIacuteTULO 1 - INTRODUCcedilAtildeO
A computaccedilatildeo reconfiguraacutevel vem sendo utilizada em larga escala para projetos de
hardware que necessitem de um grande poder de processamento Neste campo um dispositivo
muito utilizado eacute a FPGA (Field-Programmable Gate Array)
As FPGArsquos satildeo circuitos de hardware que podem ser modificados praticamente em
qualquer momento durante o uso As FPGArsquos consistem em array de blocos loacutegicos
configuraacuteveis que implementam funccedilotildees loacutegicas 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 mudanccedilas raacutepidas no hardware
Em microprocessadores de uso geral se tem um hardware que natildeo pode ser modificado fixo
mas no FPGA essa mudanccedila eacute bastante simples e raacutepida feita via software
Este projeto teve sua proposta lanccedilada a partir da ideacuteia concedida pelo Prof Valfredo Pilla
Junior de interface Touch-Screen
O projeto eacute sobre o controle de uma interface com uma peliacutecula Touch-Screen onde eacute
possiacutevel que o usuaacuterio ao tocar uma peliacutecula sensiacutevel ao toque o sistema desenvolvido possa
realizar algum tipo de alteraccedilatildeo na imagem apresentada em um monitor que se dispotildee atraacutes do
Touch-Screen
O objetivo foi desenvolver um sistema capaz de receber e manipular a aquisiccedilatildeo dos dados
gerados pela placa controladora atraveacutes toque na peliacutecula Touch-Screen que estaraacute na frente da
tela de um monitor converter estes dados realizar uma alteraccedilatildeo na tela inicialmente
apresentada e disponibilizar o resultado da alteraccedilatildeo atualizando a tela do monitor
O hardware do sistema eacute basicamente composto na parte da aquisiccedilatildeo por uma peliacutecula
Touch-Screen e uma placa controladora da proacutepria peliacutecula recepccedilatildeo e processamentos feitos no
Kit DE2 (Development amp Education 1) Board que enviara o resultado atraveacutes da saiacuteda VGA
(Viacutedeo Graphics Array) para um monitor CRT (Catodic Ray tube)
Este sistema eacute justificado pois as interfaces intuitivas com telas Touch-Screen satildeo
utilizadas em uma ampla gama de mercados
Por exemplo
Comeacutercio Realizar um atendimento de forma raacutepida e faacutecil eacute objetivo da automaccedilatildeo 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 usuaacuteriomaacutequina de grandes complexos
equipamentos devido agrave eliminaccedilatildeo do teclado do mouse e de outros perifeacutericos de um ambiente
industrial evitando distraccedilotildees em um ambientes geralmente muito agressivo
13
Medicina Os sistemas que usam touch simplificam os sofisticados sistemas meacutedicos reduzem as
possibilidades de erros e proporcionam um mecanismo de entrada de dados mais eficiente que
qualquer outro perifeacuterico
Educaccedilatildeo Hoje o touch esta se tornando a interface de treinamento mais popular em todas as
fases do aprendizado desde a preacute escola jardim de infacircncia e preparaccedilatildeo profissional eliminando
a frustraccedilotildees de crianccedilas ao utilizar o mouse ou teclado
E aplicaccedilotildees com o objetivo de diminuir o tempo de resposta aumentar a produtividade
proporcionar produtos e serviccedilos de maior qualidade e aumentar os lucros Por exemplo realizar
um atendimento de forma raacutepida e faacutecil eacute objetivo da automaccedilatildeo 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 serviccedilos intuitivos e interativos de uma interface
Touch proporcionam confiabilidade ao cliente que eacute exatamente o que o seu negoacutecio precisa para
o crescimento e o sucesso em longo prazo (elotouch 2007)
Este projeto no futuro poderaacute ser integrado com outro projeto formando assim um sistema
parecido com um PDA (Personal Digital Assistant)
14
CAPIacuteTULO 2 ndash FUNDAMENTACcedilAtildeO TEOacuteRICA
21-Touch Screen
Um Touch-Screen que em portugues quer dizer ldquotela sensivel ao toquerdquo estatildeo disponiacuteveis
para uma grande variedade de uso desde pontos de vendas ateacute quiosques equipamentos meacutedicos
e industriais e sistemas de jogos As vantagens das soluccedilotildees touch incluem precisatildeo
transparecircncia e facilidade de uso e instalaccedilatildeo
O Touch-Screen usado neste projeto eacute o modelo de quatro fios resistivos AT4 da empresa
Elo TouchSystem (wwwelotouchcombr)
A tecnologia resistiva touch de quatro fios consta de uma tela de vidro coberto
uniformemente por camadas eletricamente condutivas e resistivas Uma lacircmina de poliester eacute
hermeticamente estendida sobre a parte superior do vidro e separada por minuacutesculos espaccediladores
(pontos) transparentes e isolantes A parte externa dessa lacircmina eacute uma peliacutecula duraacutevel e firme a
parte interna conteacutem uma camada condutiva Durante seu funcionamento uma corrente eleacutetrica
se propaga atraveacutes do touchscreen Ativada por um miacutenimo toque a peliacutecula 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 descriccedilatildeo das
camadas que compoem o Touch-Screen
Figura 1 ndash Touch-Screen final (Adaptado com as dimensotildees da aplicaccedilatildeo do editor de texto para validar este projeto)
15
Figura 2 ndash Mascara
(Adaptado do site elotouchcombr)
1 Camada soacutelida resistente a riscos (tipo anti-reflexiva) 3 Camada ITO
2 Peliacutecula de Poliester 4 Contatos de prata
Figura 3 ndash Vidro (Adaptado do site elotouchcombr)
1 Contatos de prata 3 Camada ITO(Transparent Conducting Oxide)
2 Pontos espaccediladores 4 Camada de Vidro
O circuito da controladora aplica uma tensatildeo atraveacutes da superfiacutecie do vidro As tensotildees no
ponto de contato constituem a representaccedilatildeo analoacutegica da superfiacutecie de toque A controladora
traduz essas tensotildees e transmite-os para o computador para processaacute-los
16
211 Placa e chip da Controladora do Touch-Screen
O COACh IIs (Controller On A Chip second generation) eacute compacto econocircmico chip
controlador para as aplicaccedilotildees com o Touch-Screen AT4 de 4 fios resistivos Opera em 33V e
em 5V O tamanho compacto baixa voltagem para operar e comsumo de energia eacute a melhor
soluccedilatildeo para OEMrsquos (original equipment manufacturer) pois pode contar com estabilidade
confiabilidade e desempenho de componentes com touch para aplicaccedilotildees embarcadas ou
aplicaccedilotildees portaacuteveis[elotouchcom] A Figura 4 ilustra o chip
Figura 4 ndash Chip COACh IIs (Adaptado do site elotouchcom)
A placa controladora que integra o touch-screen em outros moacutedulos possui as caracteriacutesticas
descritas na Tabela 1 e a Figura 5 ilustra a placa controladora
Tabela 1 ndash Caracteriacutesticas da placa controladora
Alimentaccedilatildeo 5 VDC nominal (45)
Interface-Serial (Serial RS-232) Full Duplex
Paracircmetros de Comunicaccedilatildeo Baud Rate 9600 and 19200 8 Bits de dados 1 bit de parada
Interface USB Quando estiver comunicando via USB a Serial estaraacute desabilitada E a placa natildeo eacute alimentada pela USB
Resoluccedilatildeo de toque 4096x4096 independente do tamanho da peliacutecula touch-screen
Tempo de conversatildeo do toque 10ms
17
Figura 5 ndash Placa Controladora (Adaptado do site elotouchcom)
212 Pinagens e descriccedilatildeo do Touch-Screen e da Placa Controladora
A Figura 6 ilusta os pinos do Touch-Screen que satildeo ligados ao conector da placa
controladora
Figura 6 ndash Pinos do Touch-Screen (Adaptado do site elotouchcom)
A Figura 7 mostra o conector da placa controladora e as respectivas pinagens
Figura 7 ndashConector para o touch da placa controladora (Adaptado do site elotouchcom)
18
A Tabela 2 descreve os pinos do conector para o touch da placa controladora
Tabela 2 ndash Pinagem do conector que faz interface entre o touch e a controladora
Pino
Nome do Sinal Desciccedilatildeo do sinal
1 X+ Entrada de tensatildeo positiva referente ao eixo X da tela 2 Y+ Entrada de tensatildeo positiva referente ao eixo Y da tela 3 X- Entrada de tensatildeo negativa referente ao eixo X da tela 4 Y- Entrada de tensatildeo negativa referente ao eixo Y da tela
22-Video
Eacute usado um monitor CRT convencional o qual apresentaraacute uma imagem criada atraveacutes as
bibliotecas graficas proprietarias da ALTERA esta imagem representa um menu com botoes e e
que atravez da manipulaccedilatildeo dos metodos das bibliotecas os resultados satildeo disponibilizados na
saida VGA do kit dependendo do botatildeo da imagem que for tocada atravez do touch alguma accedilatildeo
de alteraccedilatildeo na imagem seraacute atulalizada na saida vga
A Figura 8 ilustra o conector (fecircmea) da saiacuteda VGA do kit DE2
Figura 8 ndash Conector VGA femea do kit DE2
E na Tabela 3 a descriccedilatildeo de cada pino bem como sua direccedilatildeo
Tabela 3 ndash Descriccedilatildeo dos pinos da VGA
Pin
Name Dir Description
1 RED
Red Video (75 ohm 07 V p-p)
2 GREEN
Green Video (75 ohm 07 V p-p)
3 BLUE
Blue Video (75 ohm 07 V p-p)
4 ID2
Monitor ID Bit 2
5 GND
Ground
6 RGND
Red Ground
7 GGND
Green Ground
8 BGND
Blue Ground
19
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
20
23-Kit Altera Development amp Education Board 1 (Kit DE2)
231-Layout e Componentes
Uma fotografia do Kit DE2 eacute mostrado na Figura 9 onde se ve a aparencia do kit e as
indicaccedilotildees das localizaccedilatildeo dos componentes e conectores
Figura 9 ndash O kit DE2 (DE2_UserManualpdf 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 eacute listado os componentes fornecidos na placa do Kit DE2
Tabela 4 ndash Lista dos componentes do Kit DE2 (DE2_UserManualpdf contrado no cd do kit)
1 Altera Serial Configuration device ndash EPCS4
2 USB Blaster (on board) for programming and user API control both JTAG and Active 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
21
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
PS2 mousekeyboard connector
17
Two 40-pin Expansion Headers with diode protection
18
Powered by either a 75V DC adapter or a USB cable
232 Diagrama de Blocos do Kit DE2
Figura 10 ndash Diagrama de Blocos do KIT DE2 (DE2_UserManualpdf contrado no cd do kit)
22
A Tabela 5 mostra a informaccedilatildeo detalhada do Bloco Cyclone II FPGA 2C20 mostrado na
Figura 10
Tabela 5 ndash Detalhes do FPGA Cyclone II
FPGA Cyclone II 2C35
18752 LErsquos
52 M4K RAM blocks 240K total RAM bits 26 embedded multipliers 4 PLLrsquos 315 user IO pinrsquos FineLine BGA 484-pin package
A Tabela 6 mostra a informaccedilatildeo detalhada do Bloco do dispositivo de configuraccedilatildeo Serial e
circuito Usb-Blaster
Tabela 6 - Descriccedilatildeo das configuraccedilotildees que satildeo feitas atraveacutes da Serial e Usb-Blaster
Configuraccedilatildeo do dispositivo Serial e do Circuito Usb-Blaster Configuraccedilatildeo do dispositivo serial Altera EPCS4 On-Board Usb-Blaster
para Controle de API de usuaacuterio e programaccedilatildeo
JTAG e AS satildeo os modos do programaccedilatildeo suportados
A Tabela 7 mostra a descriccedilatildeo do Bloco da SRAM
Tabela 7 ndash Descriccedilatildeo do Bloco da SRAM
SRAM 512-Kbyte Static RAM memory chip Organizado em 256K x 16 bits Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 8 mostra a descriccedilatildeo do Bloco da SDRAM
Tabela 8 - Descriccedilatildeo do Bloco da SDRAM
SDRAM 8-Mbyte Single Data Rate Synchronous Dynamic RAM memory chip Organizado em 1M x 16 bits x 4 Banks Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
23
A Tabela 9 mostra a descriccedilatildeo do Bloco Memory Flash
Tabela 9 ndash Descriccedilatildeo da Memoria Flash
Memory Flash
4-Mbyte NAND Flash memory 8-bit data bus Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 10 mostra a descriccedilatildeo do Bloco SD card socket
Tabela 10 - Descriccedilatildeo do SD card socket
SD card socket Fornece o modo SPI para o acesso ao cartatildeo SD Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 11 mostra a descriccedilatildeo 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) Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 12 mostra a descriccedilatildeo dos Clock inputs
Tabela 12 - Descriccedilatildeo das entradas de Clocks
Clock inputs Oscilador de 50 Mhz Oscilador 27 Mhz Entrada para clock
externo
A Tabela 13 mostra a descriccedilatildeo do Aacuteudio CODEC
Tabela 13 - Descriccedilatildeo do Aacuteudio CODEC
Aacuteudio CODEC 4-Mbyte NAND Flash memory 8-bit data bus Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
24
A Tabela 14 mostra a descriccedilatildeo do Bloco VGA DAC
Tabela 14 ndash Descriccedilatildeo da saiacuteda VGA DAC
VGA
DAC
Usa 4 bits DAC para cada cor (RGB) Com 15 pinos no conector VGA convencional (fecircmea) Suporta uma resoluccedilatildeo de 640 x 480 com um refresh de ateacute 100Hz Pode ser usando com o FPGA Cyclone II para implementar um Encoder para TV
A Tabela 15 mostra a descriccedilatildeo do Bloco Serial Ports amp PS2
Tabela 15 ndash Descriccedilatildeo da Serial Port e PS2
Serial Ports amp PS2 Uma porta RS-232
Uma posta PS2 Um conector Serial para a porta do RS-232 Conector PS2 para conectar um mouse ou teclado ao DE2
A Tabela 16 mostra a descriccedilatildeo do Bloco dos Two 40 - pin expansion headers
Tabela 16 ndash Descriccedilatildeo dos conectores de expansatildeo de 40 pinos
Two 40 - pin expansion headers 72 pinos de IO do Clyclone II bem como 8 power e groundrsquos satildeo trazidos aos 2 conectores de expansatildeo de 40 pinos cada Os conectores de 40 pinos tambeacutem aceitam os cabos IDE de 40 pinos Proteccedilatildeo resistiva eacute fornecida
233 Endereccedilo das Pinagens dos Componentes usados no Projeto
2331 PushButtons
A Figura 11 mostra uma foto dos PushButtons do kit Key[30] a ordem eacute o button da
esquerda eacute o mais significativo e o mais de direita o menos signigicativo
Figura 11 ndash Os 4 PushButtons do DE2Key[30] (DE2_UserManualpdf contrado no cd do kit)
25
A Tabela 17 mostra os pinos da FPGA aos PushButtons
Tabela 17 ndash Pinos da FPGA referentes a cada PushButton (DE2_UserManualpdf contrado no cd do kit)
2332 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 ndash Modulo de displays de 7 segmentos (DE2_UserManualpdf encontrado no cd do kit)
Figura 13 ndash Index de um display (DE2_UserManualpdf encontrado no cd do
kit)
26
A Tabela 18 mostra os pinos da FPGA referente a cada segmento dos displays de 7
segmentos do modulo
Tabela 18 ndash Pinos da FPGA referentes a cada segmento dos Displays do modulo
27
2333 VGA
A Figura 14 esta em forma de onda da temporizaccedilatildeo horizontal e vertical da VGA do Kit
DE2
Figura 14 ndash Temporizaccedilatildeo horizontal da VGA
A Tabela 19 mostra a especificaccedilatildeo da temporizaccedilatildeo horizontal da VGA
Tabela 19 ndash Especificaccedilatildeo da temporizaccedilatildeo horizontal da VGA
A Tabela 20 mostra a especificaccedilatildeo da temporizaccedilatildeo vertical da VGA
Tabela 20 ndash Especificaccedilatildeo da temporizaccedilatildeo vertical da VGA
28
A Tabela 21 mostra os pinos da FPGA referente a cada pino de saida do conector VGA do
Kit DE2
Tabela 21 ndash Pinos da FPGA referentes a saiacuteda do Conector VGA do Kit
29
CAPIacuteTULO 3 ndash ESPECIFICACcedilAtildeO TECNICA
Nesse capiacutetulo tem-se uma descriccedilatildeo dos principais moacutedulos do projeto Satildeo eles Software
Firmware e Hardware
Inicialmente eacute apresentada a visatildeo geral do sistema e a descriccedilatildeo funcional de cada moacutedulo
A Figura 15 apresenta o diagrama em blocos do sistema
Figura 15 - Moacutedulos do projeto
31 Descriccedilatildeo de Software
O Software eacute uma das interfaces com o usuaacuterio
312 Diagrama de Blocos do Software
30
312 Modulo do PC
Neste modulo eacute 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
32 Descriccedilatildeo de Hardware
321 Modulo Touch-Screen
O usuaacuterio ao tocar o Touch-Screen (AT4 touch-screen resistivo de 4 fios) ocorre uma
mudanccedila nas tensotildees do eixo X e do eixo Y devido a resistecircncia gerada pelo ao toque do usuaacuterio
em uma determinada regiatildeo da tela essa mudanccedila de tensatildeo eacute interpretada pela placa
controladora COACh IIs do Touch-Screen e enviada via serial para o Kit DE2 que interpretaraacute
os dados e faraacute o devido processamento
322 Modulo FPGA
O Hardware corresponde tanto aos componentes fiacutesicos presentes no kit de desenvolvimento
quanto aos componentes que seratildeo configurados na FPGA Satildeo diversos componentes escritos
em linguagem de descriccedilatildeo de hardware
No um dos principais componentes de hardware utilizado modulo eacute o processador NIOS II
para se ter uma ideacuteia o processador NIOS II eacute capaz gerenciar os dispositivos externos a FPGA
utilizando controladores de memoacuterias controladores de VGA entre outros E tambeacutem eacute possiacutevel
o proacuteprio usuaacuterio criar seu componente para ser controlado atraveacutes do processador NIOS
II(Altera 2007)
31
3221 O Processador NIOS II
Atraveacutes do software SOPC da ALTERA foi possiacutevel montar a arquitetura de hardware do
processador NIOS II bem como especificar as interfaces que ele iraacute controlar atraveacutes do firmwar
feito no NIOS II IDE
Na Tabela 22 eacute no campo Module Name onde estatildeo os moacutedulos que foram usados para
definir o processador NIOS II e os componentes externos que ele iraacute controlar e no campo
Description esta a descriccedilatildeo do nome de cada modulo
Tabela 22 ndash Moacutedulos dos componentes e suas descriccedilotildees
3222 Firmware para o NIOS II
O Firmware foi feito utilizando a linguagem C utilizando a ferramenta NIOS II IDE Atraveacutes
do firmware eacute possiacutevel 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 graacuteficas para controlar a vga e serial e
USB-BLASTER eacute encarregado em enviar todo o desenvolvimento do projeto para o Kit DE2
323 Configuraccedilatildeo da FPGA via JTAG
Depois de configurado o hardware do processador NIOS II eacute preciso fazer o load do NIOS
para a FPGA e para que isso aconteccedila eacute necessaacuterio que atraveacutes do software Quartus II da
ALTERA utilizando a interface JTAG utilizando o cabo USB-BLASTER
32
324 Comunicaccedilatildeo entre FPGA e o Touch-Screen
Para comunicaccedilatildeo entre dos dois hardwares Touch-Screen e o FPGA eacute utilizando uma
interface serial RS-232
A configuraccedilatildeo da interface eacute a seguinte
Bits de dados 8
Taxa de dados 5600(bps)
A Tabela 23 mostra a relaccedilatildeo dos pinos da porta serial com os pinos da FPGA
Tabela 23 ndash Pinos da FPGA referente agrave pinagem da interface Serial
E a Figura 16 mostra o desenho correspondente da interface serial
Figura 16 ndash Conector da interface serial do kit DE2
33 Especificaccedilatildeo de Validaccedilatildeo
331 Validaccedilatildeo de Hardware
A validade do hardware se faz com a anaacutelise de todos os moacutedulos envolvidos
As necessidades satildeo estudadas os componentes externos ao FPGA satildeo selecionados de
acordo o processador nios e os controladores dos moacutedulos externos como VGA e SERIAL satildeo
enviados ao modulo FPGA
Os resultados obtidos na tela do monitor e a recepccedilatildeo dos dados pela serial comprovam o
funcionamento do modulo de comunicaccedilatildeo da serial e vga
33
332 Validaccedilatildeo de Software
A validaccedilatildeo do controle da interface touch-screen faz-se a partir dos resultados obtidos das
funccedilotildees escritas na linguagem C especificas para cada componente externos ao FPGA essas
funccedilotildees tornam possiacuteveis que o processador NIOS na FPGA tenha total controle sobre os
moacutedulos externos como a VGA e a SERIAL
As funccedilotildees que satildeo utilizadas para validar o funcionamento do software satildeo para a VGA os
meacutetodos de controle (alt_up_vga_draw_char_1b( char int x int y)) e (alt_up_vga_draw_pixel(
color x y))
O meacutetodo (alt_up_vga_draw_char_1b( char int x int y)) tem a funcionalidade de escrever
caracteres na tela do monitor e a descriccedilatildeo da sua assinatura ldquoparacircmetrosrdquo eacute a seguinte char eacute o
caractere que eacute escrito em alguma posiccedilatildeo na tela int x eacute a posiccedilatildeo x da tela do monitor e int y eacute
a posiccedilatildeo y da tela do monitor sendo que a resoluccedilatildeo utilizada eacute de 80x60 ou seja x natildeo pode
passar de 80 e y natildeo pode passar de 60
O meacutetodo (alt_up_vga_draw_pixel( color int x int y)) tem a funcionalidade de ldquopintarrdquo o
fundo da tela do monitor o meacutetodo de imprimir caracteres tem preferecircncia sobre este meacutetodo ou
seja os caracteres sempre ficam sob a aacuterea pintada ou seja o caractere sempre ficara em cima da
aacuterea pintada a descriccedilatildeo da assinatura deste meacutetodo eacute a seguinte color eacute a valor da cor que pode
ser um valor inteiro ou em hexadecimal para definir uma cor de alguma posiccedilatildeo da tela definidos
pelos paracircmetros x e y
As funccedilotildees que satildeo utilizadas para validar o funcionamento do software satildeo para a Serial os
meacutetodos de controle de transmissatildeo (fread( packet sizeof(packet) 1 serial_fp )) a funccedilatildeo
fread eacute utilizada para a leitura via interrupccedilatildeo dos pacotes que a controladora envia para o kit
DE2 as assinaturas do meacutetodo fread tem a seguinte composiccedilatildeo packet eacute a estrutura do pacote
que seraacute recebido o sizeof(packet) eacute o diz qual eacute o tamanho exato da estrutura criada e o
serial_fp eacute o handle da porta serial
Uma observaccedilatildeo muito importante eacute que para o total funcionamento eacute necessaacuterio 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 rs232h e rs232c onde estatildeo os meacutetodos de
controle da SERIAL e alt_up_vgah alt_up_vgac onde estatildeo os meacutetodos de controle para a
VGA Para tornar estes meacutetodos acessiacuteveis eacute preciso fazer os includes dos arquivos h no
projeto da NIOS IDE
A figura 17 mostra a utilizaccedilatildeo dos meacutetodos (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
34
int y)) utlizado para escrever os caracteres lsquoarsquo e lsquobrsquo dentro de um grupo de pixel previamente
pintado a (alt_up_vga_draw_pixel( color int x int y)) natildeo pinta um pixel de cada vez e sim
um bloco de 8x8 pixels
Figura 17 - Tela para a validaccedilatildeo dos testes com as bibliotecas graacuteficas do componente VGA
34 Recursos Necessaacuterios
A Tabela 24 apresenta os ambientes de desenvolvimento e ferramentas de software utilizadas
e na Tabela 25 as linguagens necessaacuterias Estas ferramentas foram utilizadas em ambiente
Windows Xp
Tabela 24 - Ferramentas de Desenvolvimentos e Ambientes
Software Para que foi Utilizado
Quartus II Para a definiccedilatildeo de qual o modelo de FPGA utilizado compilaccedilatildeo e simulaccedilatildeo e envio Load do NIOS para FPGA
SOPC Para definiccedilatildeo da do processador NIOS II e com quais componentes externos ele ira interagir atraveacutes dos controladores dos respectivos componentes
NIOS II IDE Para implementaccedilatildeo do firmware do processador NIOS II utilizando a linguagem em C
35
Borland C++ Builder Para desenvolvimento de ima interface de comunicaccedilatildeo via caboUSB-
BLASTER para o envio de imagem para o kit
Tabela 25 ndash Linguagens de programaccedilatildeo utilizadas
Linguagem Ferramenta C++ Borland C++ Builder VerilogVHDL Quartus II C NIOS II IDE
35 Viabilidade Teacutecnico-Econocircmica
O valor do projeto esta descrito na Tabela 26
Tabela 26 ndash Relaccedilatildeo dos Custos
DESCRICcedilAtildeO CUSTO APROXIMADO (R$) COMPONENTES ELETROcircNICOS 50000 1 Kit DE2 Cyclone II 35000 1 Monitor de Computador 35000 HORAS TRABALHADAS (400 horas) 750000 CUSTO TOTAL APROXIMADO (R$) 870000
36 Cronograma do Projeto
A tabela 27 contem as informaccedilotildees do cronograma do projeto
Tabela 27 ndash Cronograma de datas e entregas do projeto
Data Atividade a ser apresentada 050307 Entrega das propostas de projeto para avaliaccedilatildeo do colegiado 020407 Entrega das especificaccedilotildees teacutecnicas do projeto aprovado 110607 Entrega do projeto (monografia) e dos testes preliminares do mesmo 060807 Apresentaccedilatildeo preacutevia da implementaccedilatildeo do projeto especificado 011007 Apresentaccedilatildeo do projeto implementado
Qualificaccedilatildeo para a fase final 291007 Segunda apresentaccedilatildeo do projeto implementado para os que natildeo o fizeram no
dia 011006 com decreacutescimo da nota Qualificaccedilatildeo para a fase final
051107 Entrega da documentaccedilatildeo completa em espiral para a banca examinadora em 3 vias contendo a monografia manual teacutecnico manual do usuaacuterio e artigo cientiacutefico
261107 Defesa formal dos projetos com apresentaccedilatildeo oral para a banca examinadora 101207 Entrega da documentaccedilatildeo completa revisada e corrigida encadernada no
padratildeo da biblioteca (capa dura) em duas vias contendo a monografia manual teacutecnico manual do usuaacuterio e artigo cientiacutefico Entrega do CD contendo no formato WEB todo o conteuacutedo dos manuais
36
CAPIacuteTULO 4 ndash ESPECIFICACcedilAtildeO TECNICA
41 Requisitos Miacutenimos
Os requisitos miacutenimos de Hardware satildeo
Funcionamento das interfaces Serial e USB-Blaster
Funcionamento do Kit DE2
PC
Os requisitos miacutenimos de Software
Windows Xp
Quartus II
SOPC
NIOS II IDE
42 Projeto de Hardware
O hardware utilizado nesse projeto inclui componentes presentes na Placa de
Desenvolvimento Nios II - ediccedilatildeo DE2 Cyclone II EP2C35 e principalmente o hardware que seraacute
configurado na FPGA escrito em linguagem de descriccedilatildeo de hardware (HDL)
O um dos principais blocos de hardware eacute o processador NIOS II o Avalon Bus e os
controladores de componentes externos a FPGA e de comunicaccedilatildeo presentes no Kit
37
O software embarcado (firmware) estaraacute rodando nessa arquitetura Eacute uma arquitetura
completa construiacuteda com a ferramenta SOPC Builder da Altera A Figura 18 representa em
blocos os principais componentes dessa arquitetura
Figura 18 ndash Representaccedilatildeo em blocos do hardware do NIOS II
421 Funcatildeo do Touch-Screen
Outro bloco importante eacute o do Touch-Screen esta tela sensiacutevel ao toque pois como esta tela
trabalha com resistecircncia ao ser tocado em uma determinada regiatildeo uma resistecircncia eacute gerada e a
tensatildeo de saiacuteda eacute modificada a alimentaccedilatildeo desta placa eacute proveniente de sua placa controladora
a mesma placa que recebe a tensatildeo de saiacuteda modificada de acordo com a regiatildeo tocada na tela
Para verificar as caracteriacutesticas detalhadas do Touch-Screen e sua placa controlador favor ver
o Capitulo 2
422 Monitor e VGA
O Monitor inicialmente tem apenas o desenho de um botatildeo que ao ser tocado via touch
mudara a cor de toda a tela A imagem exibida no monitor tem uma resoluccedilatildeo de
38
Protoacutetipo das telas para os testes esta na Figura 19 a tela verde quando a touch natildeo eacute tocando
na regiatildeo do botatildeo de OK quando o botatildeo de OK for tocado a tela do monitor mudara de cor
ficando azul
Figura 19 ndash Tela do monitor
No Capitulo 2 estatildeo todas as caracteriacutesticas da pinagem e do conector VGA
423 Comunicaccedilatildeo serial
Entre a placa controladora do Touch-Screen e o FPGA existe uma comunicaccedilatildeo 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 manipulaccedilatildeo da imagem que eacute
mostrada no monitor
No capitulo 2 estatildeo das descriccedilotildees dos pinos e do conector da comunicaccedilatildeo Serial
O pacote serial que eacute transmitido pela placa controladora do touch-screen possui 10 bytes de
comprimento e segue a seguinte sequumlecircncia de envio
[55] [54] [] [] [] [] [] [] [] []
Sequumlecircncia dos bytes
Os dois primeiros bytes identificam o Header do pacote
O terceiro byte eacute 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 agrave posiccedilatildeo do eixo x onde a tela foi tocada
O sexto e o seacutetimo byte correspondem a posiccedilatildeo do eixo y onde a tele foi tocada
O restante os bytes identificam o tail do pacote recepcionado pelo kit DE2
39
424 Comunicaccedilatildeo USB-Blaster
Essencial para envio do projeto desenvolvido para o kit DE2 tambeacutem muito utilizado para o
debug deste projeto
435 Memoacuteria SDRAM
A memoacuteria utilizada para armazenar grandes quantidades de dados eacute a SDRAM (ver detalhes
no Capitulo 2)
Essa memoacuteria eacute muito raacutepida serviu muito bem para armazenar o firmware deste projeto
pois tem o tempo acesso ideal para ler as instruccedilotildees que utilizaram a VGA e tambeacutem eacute raacutepida o
suficiente para fazer a leitura dos dados e disponibilizar na saiacuteda VGA do kit
426 Memoacuteria FLASH
Eacute onde seraacute armazenado o firmware possui espaccedilo suficiente para isso 4MB e uma memoacuteria
mais lenta e por isso natildeo foi usada para armazenar dados para serem jogados na vga do Kit
43 Software
431 Software (Firmware)
O software tem de funccedilatildeo de utilizar as bibliotecas das controladoras dos componentes
externos a fim de controlar estes componentes de acordo com o necessaacuterio para atender o
objetivo do projeto
Ou seja uma tela inicial eacute apresentada e o usuaacuterio ao tocar na nela o kit recebe um pacote via
serial e interpreta a posiccedilatildeo da tela em que foi tocado e logo em seguida envia o resultado deste
toque para o monitor
432 Objetivos
O usuaacuterio 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 accedilatildeo de acordo com a posiccedilatildeo da tela
tocada alterando assim a imagem anterior com o resultado do toque
Interpretar o toque de usuaacuterio na tela touch-screen recepccedilatildeo do pacote via serial da placa
controladora do touch-screen tratamento do pacote e interpretaccedilatildeo das coordenadas x e y do
40
toque Realizaccedilatildeo de alguma accedilatildeo que resultara na alteraccedilatildeo da imagem da tela atual de acordo
com a funccedilatildeo em que as coordenadas foram previamente definidas para o que deve ser feito
432 Funccedilotildees
A Tabela 28 tem as principais funccedilotildees que foram implementadas para o sistema
Tabela 28 ndash Funccedilotildees do sistema firmware
FUNCcedilOtildeES Tela de um pequeno editor de texto Tratamento do sinal recebido da serial devido a um toque na tela Interpretaccedilatildeo do pacote serial e transfomaccedilatildeo para coordenadas x e y Transformaccedilatildeo das posiccedilotildees do toque na tela em alguma accedilatildeo enviando o resultado para a VGA Imagem final disponibilizada ao usuaacuterio de acordo com o toque que foi dado na tela Controlar dispositivos cada dispositivo pode ser controlado pelo seu respectivo contrador atraveacutes de seu endereccedilo base VGA SERIAL USB-BLASTER IO(Leds Switches etc) do Kit DE2
O Firmware do processador NIOS II eacute que realizaraacute a integraccedilatildeo entre hardware com
hardware Com o firmware controlando o NIOS II eacute possiacutevel interagir com os dispositivos
externos a FPGA Tornando possiacutevel a integraccedilatildeo da FPGA com a peliacutecula touch-screen e um
monitor sem a ajuda de um PC a uacutenica ajuda do pc seria para enviar dados de uma imagem para
o Kit DE2
44 Validaccedilatildeo e Testes
Inicialmente os moacutedulos da VGA e comunicaccedilatildeo SERIAL natildeo estavam funicionando
apenas o devido agrave fraca documentaccedilatildeo sobre o kit DE2 foi possiacutevel apenas fazer testes com o
Processador NIOS II pois sobre este existem bastantes documentos e exemplos que podem ser
utilizados
Nesta primeira parte foi possiacutevel testar o NIOS II para controlar o display bototildees e switchs
do kit DE2
Com o NIOS II funcionando completamente foi necessaacuterio porta-lo para o kit DE2 o que foi
simples pois como sabemos esses kits satildeo portaacuteveis entre si apenas mudando a pinagem e a
capacidade da FPGA
Com o Kit DE2 foi possiacutevel fazer os testes necessaacuterios com a comunicaccedilatildeo serial
inicialmente testada via terminal conversando diretamente com o kit foi possiacutevel fazer o
seguinte teste os caracteres que eram entrados via teclado chegavam ao kit via serial e o o
41
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 comdumpexe que eacute facilmente encontrado pelas ferramentas
de pesquisa da web e tambeacutem existem vario outros programas como este e o comdump eacute
utilizado para debug da porta serial do pc conectado diretamente na placa controladora do touch-
screen e foi a peccedila chave para o entendimento do pacote enviado pela placa controladora
Figura 20 - Cumdumpexe programa de debug da porta serial
A explicaccedilatildeo de cada byte do pacote esta explicado no item 423
Apos o entendimento completo da transmissatildeo 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 natildeo 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 ateacute o momento em que
foi testado os meacutetodos proprietaacuterios da Altera para fazer a VGA funcionar os meacutetodos esses
implementados em C
A figura 21 onde contem o teste baacutesico feito que foi a chave principal para o sucesso deste
projeto
42
Como dito no item 332 do projeto foram utilizados as funccedilotildees da controladora VGA esses
meacutetodos 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 eacute utilizado o meacutetodo alt_up_vga_draw_pixel( color int
x int y) onde color eacute a cor do bloco de pixels e x e y satildeo as coordenadas da tela onde o bloco
que seraacute pintado
Para escrever um caractere sobre um bloco de pixels pintado eacute utilizado a funccedilatildeo
alt_up_vga_draw_char_1b( char int x int y) onde char eacute o caractere a ser impresso e x e y satildeo
as coordenadas da tela onde os o caractere eacute impresso
Figura 21 - Teste baisco do funcionamento do componente VGA do kit DE2
43
CAPIacuteTULO 5 ndash VALIDACcedilAtildeO E RESULTADOS
Os resultados foram os melhores possiacuteveis pois com a utilizaccedilatildeo dos IP CORE
ldquocontroladorasrdquo dos componentes externos como VGA e SERIAL e seus meacutetodos de para
controle eacute possiacutevel controlar facilmente esses moacutedulos atraveacutes do firmware desenvolvido para o
processador NIOS que consegue realizar operaccedilotildees transparentes acessando dos meacutetodos de
controle dos moacutedulos
Apos os testes baacutesicos 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 baacutesico de editor de texto
A figura 22 mostra um teste utilizando os meacutetodos de controle disponiacuteveis para o IP CORE
da VGA para primeiramente fazer o menu da aplicaccedilatildeo desenvolvido em na linguagem C
Figura 22 ndash Menu baacutesico do editor de texto
Para desenhar o menu da figura acima foi utilizado os meacutetodos proprietaacuterios de controle da
VGA citados no capitulo 4 e tambeacutem estruturas de repeticcedilatildeo para que a tela fosse varrida e os
pixels desenhados nos respectivos lugares da tela bem como os caracteres
Na figura 23 eacute definida a seguinte estrutura em C para representar de um botatildeo
Figura 23 - Estrutura em C para representar um botatildeo
44
A figura 24 eacute a declaraccedilatildeo dos bototildees que seratildeo utilizados pelo aplicativo editor de texto
para comprovar o funcionamento do controle da interface touch-screen
Apenas o que esta dentro da marcaccedilatildeo quadrada representa os bototildees do menu da figura 23
e o restante satildeo os bototildees do teclado do editor de texto
Figura 24 - Declaraccedilatildeo dos bototildees do menu
45
A figura 25 representa o meacutetodo drawnButtonUp responsaacutevel por desenhar os bototildees na tela
de acordo com as posiccedilotildees em que foram declarados os bototildees deste meacutetodo satildeo desenhados
para parecerem que estatildeo ldquolevantadosrdquo e natildeo pressionados
Note que foram utilizados os meacutetodos proprietaacuterios de controle da VGA
alt_up_vga_draw_pixel pra pitar os pixels e alt_up_vga_draw_char_b1 para desenhar caracteres
como jaacute foi especificado no item 44 do projeto
Figura 25 ndash Meacutetodo drawButtonUp
46
O meacutetodo que desenha o caption do botatildeo se chama drawButtonText desenha os caracteres
em cima dos bototildees natildeo importa se o botatildeo esta pressionado ou natildeo
A figura 26 mostra como este meacutetodo foi implementado e ele eacute chamado no final de cada
meacutetodo onde algum tipo de botatildeo eacute desenhado quando o meacutetodo que desenha o botatildeo normal
quanto o pressionado e ateacute mesmo o do teclado
Figura 26 ndash Meacutetodo que escreve o caption de cada botatildeo
47
A figura 27 mostra o meacutetodo drawButtonDown que desenha o botatildeo pressionado ou seja
quando o usuaacuterio pressiona a regiatildeo correspondente a um botatildeo do menu no touch-screen o
mesmo redesenharaacute o botatildeo parecendo um efeito de botatildeo afundado note que no final do
meacutetodo novamente eacute chamado o meacutetodo drawButtonText que reescreveraacute o caption do botatildeo
como mostra o meacutetodo da figura 26 e esta ilustrado na figura 28
Figura 27 ndash Meacutetodo que desenha o botatildeo pressionado
48
Dependendo da aacuterea do menu que o usuaacuterio pressionar no touch-screen causar o efeito de
pressionado como mostra a figura 28
Figura 28 ndash Efeito do botatildeo de menu apertado
Na figura 29 eacute a representaccedilatildeo de quando a aacuterea correspondente ao botatildeo ldquoamarelordquo eacute
pressionada
Apos estes testes baacutesicos comprovando o funcionamento da interface graacutefica para o usuaacuterio
foi definido o restante dos componentes da tela que eacute constituiacutedo de um prompt e um teclado
qwerty que foi essencial para comprovar o perfeito funcionamento do controle da interface
touch-screen
49
51 Interface Grafica Final
A figura 29 mostra a interface final que o usuaacuterio teraacute para poder verificar o funcionamento
do controle da interface touch-screen
Figura 29 ndash Interface final touch-screen do usuaacuterio
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
511 Descriccedilatildeo do editor de texto
O menu possui 4 botoes cada um com sua respectiva funcionalidade quando o usuario
pressiona a area do botatildeo ldquoapagarrdquo uma vez entatildeo um carectere do prompt eacute apagado Quando eacute
precionado a area correspondente ao botatildeo ldquoResetrdquo todo o conteudo do prompt seraacute apagado e o
plano de fundo retornaraacute a cor branca Quando o botatildeo ldquoamarelordquo eacute pressionado o fundo da tela
passa a ser amarelo e o mesmo acontece se o usuario precionar o botatildeo verde tornando o cor de
fundo verde
50
O teclado possui 29 teclas sendo duas delas que equivalem ao ENTRA ldquoENTrdquo e ao
SPACE ldquoSPCrdquo Quando o usuario pressiona a area correspondente a algum botatildeo do teclado o
mesmo muda sua cor para azul e o seu caractere eacute disponibilizado no prompt
Essas funcionalidades nada mais satildeo do que um bom exemplo de como funciona
corretamente o controle da interface touch-screen
52 Prompt e o Teclado
A estrutura feita na linguagem C que define o prompt da figura 28 esta representado na
figura 30
Figura 30 ndash Estrutura em C para representar o prompt
A figura 31 mostra o metodo drawPrompt utilizado para desenhar na tela o prompt
Figura 31 ndash Meacutetodo que desenha o prompt
51
A estrutura do teclado eacute a mesma utilizada pela figura 23 e tambem eacute criado satildeo
inicializados na figura 24
O restante as implementaccedilotildees estatildeo disponiveis no cd deste documento
Quando algum botatildeo do teclado eacute pressionado sua cor muda para azul e sua letra
correspondente eacute escrita o prompt
A figura 32 ilustra quando o usuaacuterio aperta a letra lsquotrsquo na peliacutecula touch-screen
Figura 32 - Teste do prompt e o teclado
52
53 Controle da Interface Touch-Screen
Depois do todos os testes com o processador NIOS e a integraccedilatildeo do mesmo com os
moacutedulos externos como a porta SERIAL e a saiacuteda VGA eacute possiacutevel utilizando o touch-screen
criar uma interface amigaacutevel e faacutecil de usar para o usuaacuterio utilizando um firmware capaz de
interpretar os sinais via serial vindo da controladora do touch ao detectar que um toque foi dado
pelo usuaacuterio e realizar algumas accedilotildees que neste caso se comportam como um editor de texto
baacutesico
A figura 33 mostra como foi validado este projeto e seus moacutedulos controlando uma
interface touch-screen para chegar no resultado abaixo digitado pelo usuaacuterio comprovando o
funcionamento e viabilidade deste projeto
Figura 33 ndash 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 mudanccedilas podendo ser alterado rapidamente o tipo de
aplicaccedilatildeo ou integrado rapidamente com outro projeto
53
CAPIacuteTULO 6 - CONCLUSAtildeO
Uma das principais dificuldades no desenvolvimento deste projeto foi fazer o levantamento
da documentaccedilatildeo sobre o processador NIOS e os moacutedulos externos a FPGA do Kit DE2 Como
natildeo foi feito algum projeto antes que utilizasse a interface VGA e a SERIAL do Kit DE2 levou-
se muito tempo ateacute conseguir adquirir e ordenar o conhecimento que foi sendo adquirido ateacute
conseguir dar os primeiros passos e realizar os primeiros testes com a VGA e a SERIAL Outro
grande obstaacuteculo foi ter de descobrir que para que o NIOS controlasse os moacutedulos externos a
FGPA fosse necessaacuterio copiar os arquivos c e h dos respectivos componente para dentro do
projeto
Mas depois de todos os problemas com os moacutedulos externos solucionados cada modulo do
projeto foi sendo desenvolvido separadamente ateacute seu total funcionamento Natildeo tive dificuldades
com a linguagem da programaccedilatildeo pois o Firmware do processador NIOS eacute o C a qual mais tive
contato na faculdade
Outro desafio foi fazer a peliacutecula 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
peliacutecula natildeo 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 possiacutevel
comeccedilar a fazer os testes necessaacuterios para prosseguir com o projeto aprender como o a peliacutecula
identifica um toque e manda este sinal para a controladora e a controladora transforma este sinal
em um sinal serial que eacute 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 accedilotildees
que as coordenadas jaacute estatildeo previamente calibradas no firmware para fazer bem como mudar de
cor a tela fazer o efeito de um botatildeo subindo e descendo etc
Varias vezes o projeto parou de funcionar entatildeo 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 memoacuteria abundante etc uma das
facilidades eacute a faacutecil alteraccedilatildeo do projeto podendo ser integrado a outro ou ateacute mesmo alterado
para realizar outros tipos de accedilotildees com o touch-screen
Existem vaacuterios melhoramentos que podem ser executados no projeto um deles eacute tentar
interpretar de uma maneira diferente os valores do eixo y pois do jeito que esta a resoluccedilatildeo do
eixo y esta muito baixa dificultando o reconhecimento de toques em aacutereas pequenas Talvez a
inclusatildeo de mais alguns bytes no pacote de leitura da serial resolva o problema
54
Uma ideacuteia para um proacuteximo projeto que use a interface touch-screen poderia ser a
integraccedilatildeo com o projeto do nosso colega Roberto Junqueira ou a desenvolvimento de uma
placa controladora para o touch-screen
Este trabalho eacute uma modesta contribuiccedilatildeo para o uso de FPGAs e do processador embarcado
NIOS implementado em VHDL pela Altera que acredito que vai abrir vaacuterios caminhos pois
com este projeto alguns caminhos ficaram mais faacuteceis de percorrer daqui para a frente
55
CAPIacuteTULO 7 - REFEREcircNCIAS BIBLIOGRAacuteFICAS
AMORE Roberto drsquo VHDL Descriccedilatildeo e Sintese de Circuitos Rio de Janeiro ed LTC
2005
Elotouch Touch-Screen e Controladora Descriccedilatildeo do funcionamento e descriccedilatildeo
tecnologia Touch-Screen lthttpwwwelotouchcombrgt Acesso em fevereiro de 2007
ALTERA University Program IP Cores Instalaccedilatildeo de IP Cores e referencias sobre os
componentes dos kits DE1 e DE2 Disponivel em lthttpwwwalteracomeducationunivip-
coresunv-ip-coreshtmlgt Acesso em abril de 2007
ALTERA NIOS II Documentaccedilatildeo sobre o pprocessador embracado NIO II Disponivel
em lthttpwwwalteracomproductsipprocessorsipm-indexjspgt Acesso em Abril de 2007
ALTERA Development amp Education Board 2 (DE2) Manual do usuario Disponivel no
de que acompanha o Kit DE2 ltDE2_user_manualDE2_UserManualpdfgt Acesso em
fevereiro de 2007
LISTA DE TABELAS
Tabela 1 ndash Caracteriacutesticas da placa controladora 16 Tabela 2 ndash Pinagem do conector que faz interface entre o touch e a controladora 18 Tabela 3 ndash Descriccedilatildeo dos pinos da VGA 18 Tabela 4 ndash Lista dos componentes do Kit DE2 (DE2_UserManualpdf contrado no cd do kit) 20 Tabela 5 ndash Detalhes do FPGA Cyclone II 22 Tabela 6 - Descriccedilatildeo das configuraccedilotildees que satildeo feitas atraveacutes da Serial e Usb-Blaster 22 Tabela 7 ndash Descriccedilatildeo do Bloco da SRAM 22 Tabela 8 - Descriccedilatildeo do Bloco da SDRAM 22 Tabela 9 ndash Descriccedilatildeo da Memoria Flash 23 Tabela 10 - Descriccedilatildeo do SD card socket 23 Tabela 11 - PushButton switches 23 Tabela 12 - Descriccedilatildeo das entradas de Clocks 23 Tabela 13 - Descriccedilatildeo do Aacuteudio CODEC 23 Tabela 14 ndash Descriccedilatildeo da saiacuteda VGA DAC 24 Tabela 15 ndash Descriccedilatildeo da Serial Port e PS2 24 Tabela 16 ndash Descriccedilatildeo dos conectores de expansatildeo de 40 pinos 24 Tabela 17 ndash Pinos da FPGA referentes a cada PushButton 25 Tabela 18 ndash Pinos da FPGA referentes a cada segmento dos Displays do modulo 26 Tabela 19 ndash Especificaccedilatildeo da temporizaccedilatildeo horizontal da VGA 27 Tabela 20 ndash Especificaccedilatildeo da temporizaccedilatildeo vertical da VGA 27 Tabela 21 ndash Pinos da FPGA referentes a saiacuteda do Conector VGA do Kit 28 Tabela 22 ndash Moacutedulos dos componentes e suas descriccedilotildees 31 Tabela 23 ndash Pinos da FPGA referente agrave pinagem da interface Serial 32 Tabela 24 - Ferramentas de Desenvolvimentos e Ambientes 34 Tabela 25 ndash Linguagens de programaccedilatildeo utilizadas 35 Tabela 26 ndash Relaccedilatildeo dos Custos 35 Tabela 27 ndash Cronograma de datas e entregas do projeto 35 Tabela 28 ndash Funccedilotildees do sistema firmware 40
LISTA DE SIGLAS
CRT - Catodic Ray tube
DE2 - Development amp Educations 1
ES - EntradaSaiacuteda
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 - Nuacutecleo de Ciecircncias Exatas e Tecnoloacutegicas
PC - Personal Computer
PDA - Personal Digital Assistant
PLL - Pulse Logic Loop
SDRAM - Static Dinamic Randomic Acess Memory
TTL - Transistor-transistor Logic
UNICENP - Centro Universitaacuterio Positivo
USB - Universal Serial Bus
USP - Universidade de Satildeo Paulo
VGA - Viacutedeo 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 SIacuteMBOLOS
- ohm
MHz - Mega Hertz
Hz - Hertz
V - Volts
11
12
CAPIacuteTULO 1 - INTRODUCcedilAtildeO
A computaccedilatildeo reconfiguraacutevel vem sendo utilizada em larga escala para projetos de
hardware que necessitem de um grande poder de processamento Neste campo um dispositivo
muito utilizado eacute a FPGA (Field-Programmable Gate Array)
As FPGArsquos satildeo circuitos de hardware que podem ser modificados praticamente em
qualquer momento durante o uso As FPGArsquos consistem em array de blocos loacutegicos
configuraacuteveis que implementam funccedilotildees loacutegicas 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 mudanccedilas raacutepidas no hardware
Em microprocessadores de uso geral se tem um hardware que natildeo pode ser modificado fixo
mas no FPGA essa mudanccedila eacute bastante simples e raacutepida feita via software
Este projeto teve sua proposta lanccedilada a partir da ideacuteia concedida pelo Prof Valfredo Pilla
Junior de interface Touch-Screen
O projeto eacute sobre o controle de uma interface com uma peliacutecula Touch-Screen onde eacute
possiacutevel que o usuaacuterio ao tocar uma peliacutecula sensiacutevel ao toque o sistema desenvolvido possa
realizar algum tipo de alteraccedilatildeo na imagem apresentada em um monitor que se dispotildee atraacutes do
Touch-Screen
O objetivo foi desenvolver um sistema capaz de receber e manipular a aquisiccedilatildeo dos dados
gerados pela placa controladora atraveacutes toque na peliacutecula Touch-Screen que estaraacute na frente da
tela de um monitor converter estes dados realizar uma alteraccedilatildeo na tela inicialmente
apresentada e disponibilizar o resultado da alteraccedilatildeo atualizando a tela do monitor
O hardware do sistema eacute basicamente composto na parte da aquisiccedilatildeo por uma peliacutecula
Touch-Screen e uma placa controladora da proacutepria peliacutecula recepccedilatildeo e processamentos feitos no
Kit DE2 (Development amp Education 1) Board que enviara o resultado atraveacutes da saiacuteda VGA
(Viacutedeo Graphics Array) para um monitor CRT (Catodic Ray tube)
Este sistema eacute justificado pois as interfaces intuitivas com telas Touch-Screen satildeo
utilizadas em uma ampla gama de mercados
Por exemplo
Comeacutercio Realizar um atendimento de forma raacutepida e faacutecil eacute objetivo da automaccedilatildeo 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 usuaacuteriomaacutequina de grandes complexos
equipamentos devido agrave eliminaccedilatildeo do teclado do mouse e de outros perifeacutericos de um ambiente
industrial evitando distraccedilotildees em um ambientes geralmente muito agressivo
13
Medicina Os sistemas que usam touch simplificam os sofisticados sistemas meacutedicos reduzem as
possibilidades de erros e proporcionam um mecanismo de entrada de dados mais eficiente que
qualquer outro perifeacuterico
Educaccedilatildeo Hoje o touch esta se tornando a interface de treinamento mais popular em todas as
fases do aprendizado desde a preacute escola jardim de infacircncia e preparaccedilatildeo profissional eliminando
a frustraccedilotildees de crianccedilas ao utilizar o mouse ou teclado
E aplicaccedilotildees com o objetivo de diminuir o tempo de resposta aumentar a produtividade
proporcionar produtos e serviccedilos de maior qualidade e aumentar os lucros Por exemplo realizar
um atendimento de forma raacutepida e faacutecil eacute objetivo da automaccedilatildeo 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 serviccedilos intuitivos e interativos de uma interface
Touch proporcionam confiabilidade ao cliente que eacute exatamente o que o seu negoacutecio precisa para
o crescimento e o sucesso em longo prazo (elotouch 2007)
Este projeto no futuro poderaacute ser integrado com outro projeto formando assim um sistema
parecido com um PDA (Personal Digital Assistant)
14
CAPIacuteTULO 2 ndash FUNDAMENTACcedilAtildeO TEOacuteRICA
21-Touch Screen
Um Touch-Screen que em portugues quer dizer ldquotela sensivel ao toquerdquo estatildeo disponiacuteveis
para uma grande variedade de uso desde pontos de vendas ateacute quiosques equipamentos meacutedicos
e industriais e sistemas de jogos As vantagens das soluccedilotildees touch incluem precisatildeo
transparecircncia e facilidade de uso e instalaccedilatildeo
O Touch-Screen usado neste projeto eacute o modelo de quatro fios resistivos AT4 da empresa
Elo TouchSystem (wwwelotouchcombr)
A tecnologia resistiva touch de quatro fios consta de uma tela de vidro coberto
uniformemente por camadas eletricamente condutivas e resistivas Uma lacircmina de poliester eacute
hermeticamente estendida sobre a parte superior do vidro e separada por minuacutesculos espaccediladores
(pontos) transparentes e isolantes A parte externa dessa lacircmina eacute uma peliacutecula duraacutevel e firme a
parte interna conteacutem uma camada condutiva Durante seu funcionamento uma corrente eleacutetrica
se propaga atraveacutes do touchscreen Ativada por um miacutenimo toque a peliacutecula 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 descriccedilatildeo das
camadas que compoem o Touch-Screen
Figura 1 ndash Touch-Screen final (Adaptado com as dimensotildees da aplicaccedilatildeo do editor de texto para validar este projeto)
15
Figura 2 ndash Mascara
(Adaptado do site elotouchcombr)
1 Camada soacutelida resistente a riscos (tipo anti-reflexiva) 3 Camada ITO
2 Peliacutecula de Poliester 4 Contatos de prata
Figura 3 ndash Vidro (Adaptado do site elotouchcombr)
1 Contatos de prata 3 Camada ITO(Transparent Conducting Oxide)
2 Pontos espaccediladores 4 Camada de Vidro
O circuito da controladora aplica uma tensatildeo atraveacutes da superfiacutecie do vidro As tensotildees no
ponto de contato constituem a representaccedilatildeo analoacutegica da superfiacutecie de toque A controladora
traduz essas tensotildees e transmite-os para o computador para processaacute-los
16
211 Placa e chip da Controladora do Touch-Screen
O COACh IIs (Controller On A Chip second generation) eacute compacto econocircmico chip
controlador para as aplicaccedilotildees com o Touch-Screen AT4 de 4 fios resistivos Opera em 33V e
em 5V O tamanho compacto baixa voltagem para operar e comsumo de energia eacute a melhor
soluccedilatildeo para OEMrsquos (original equipment manufacturer) pois pode contar com estabilidade
confiabilidade e desempenho de componentes com touch para aplicaccedilotildees embarcadas ou
aplicaccedilotildees portaacuteveis[elotouchcom] A Figura 4 ilustra o chip
Figura 4 ndash Chip COACh IIs (Adaptado do site elotouchcom)
A placa controladora que integra o touch-screen em outros moacutedulos possui as caracteriacutesticas
descritas na Tabela 1 e a Figura 5 ilustra a placa controladora
Tabela 1 ndash Caracteriacutesticas da placa controladora
Alimentaccedilatildeo 5 VDC nominal (45)
Interface-Serial (Serial RS-232) Full Duplex
Paracircmetros de Comunicaccedilatildeo Baud Rate 9600 and 19200 8 Bits de dados 1 bit de parada
Interface USB Quando estiver comunicando via USB a Serial estaraacute desabilitada E a placa natildeo eacute alimentada pela USB
Resoluccedilatildeo de toque 4096x4096 independente do tamanho da peliacutecula touch-screen
Tempo de conversatildeo do toque 10ms
17
Figura 5 ndash Placa Controladora (Adaptado do site elotouchcom)
212 Pinagens e descriccedilatildeo do Touch-Screen e da Placa Controladora
A Figura 6 ilusta os pinos do Touch-Screen que satildeo ligados ao conector da placa
controladora
Figura 6 ndash Pinos do Touch-Screen (Adaptado do site elotouchcom)
A Figura 7 mostra o conector da placa controladora e as respectivas pinagens
Figura 7 ndashConector para o touch da placa controladora (Adaptado do site elotouchcom)
18
A Tabela 2 descreve os pinos do conector para o touch da placa controladora
Tabela 2 ndash Pinagem do conector que faz interface entre o touch e a controladora
Pino
Nome do Sinal Desciccedilatildeo do sinal
1 X+ Entrada de tensatildeo positiva referente ao eixo X da tela 2 Y+ Entrada de tensatildeo positiva referente ao eixo Y da tela 3 X- Entrada de tensatildeo negativa referente ao eixo X da tela 4 Y- Entrada de tensatildeo negativa referente ao eixo Y da tela
22-Video
Eacute usado um monitor CRT convencional o qual apresentaraacute uma imagem criada atraveacutes as
bibliotecas graficas proprietarias da ALTERA esta imagem representa um menu com botoes e e
que atravez da manipulaccedilatildeo dos metodos das bibliotecas os resultados satildeo disponibilizados na
saida VGA do kit dependendo do botatildeo da imagem que for tocada atravez do touch alguma accedilatildeo
de alteraccedilatildeo na imagem seraacute atulalizada na saida vga
A Figura 8 ilustra o conector (fecircmea) da saiacuteda VGA do kit DE2
Figura 8 ndash Conector VGA femea do kit DE2
E na Tabela 3 a descriccedilatildeo de cada pino bem como sua direccedilatildeo
Tabela 3 ndash Descriccedilatildeo dos pinos da VGA
Pin
Name Dir Description
1 RED
Red Video (75 ohm 07 V p-p)
2 GREEN
Green Video (75 ohm 07 V p-p)
3 BLUE
Blue Video (75 ohm 07 V p-p)
4 ID2
Monitor ID Bit 2
5 GND
Ground
6 RGND
Red Ground
7 GGND
Green Ground
8 BGND
Blue Ground
19
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
20
23-Kit Altera Development amp Education Board 1 (Kit DE2)
231-Layout e Componentes
Uma fotografia do Kit DE2 eacute mostrado na Figura 9 onde se ve a aparencia do kit e as
indicaccedilotildees das localizaccedilatildeo dos componentes e conectores
Figura 9 ndash O kit DE2 (DE2_UserManualpdf 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 eacute listado os componentes fornecidos na placa do Kit DE2
Tabela 4 ndash Lista dos componentes do Kit DE2 (DE2_UserManualpdf contrado no cd do kit)
1 Altera Serial Configuration device ndash EPCS4
2 USB Blaster (on board) for programming and user API control both JTAG and Active 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
21
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
PS2 mousekeyboard connector
17
Two 40-pin Expansion Headers with diode protection
18
Powered by either a 75V DC adapter or a USB cable
232 Diagrama de Blocos do Kit DE2
Figura 10 ndash Diagrama de Blocos do KIT DE2 (DE2_UserManualpdf contrado no cd do kit)
22
A Tabela 5 mostra a informaccedilatildeo detalhada do Bloco Cyclone II FPGA 2C20 mostrado na
Figura 10
Tabela 5 ndash Detalhes do FPGA Cyclone II
FPGA Cyclone II 2C35
18752 LErsquos
52 M4K RAM blocks 240K total RAM bits 26 embedded multipliers 4 PLLrsquos 315 user IO pinrsquos FineLine BGA 484-pin package
A Tabela 6 mostra a informaccedilatildeo detalhada do Bloco do dispositivo de configuraccedilatildeo Serial e
circuito Usb-Blaster
Tabela 6 - Descriccedilatildeo das configuraccedilotildees que satildeo feitas atraveacutes da Serial e Usb-Blaster
Configuraccedilatildeo do dispositivo Serial e do Circuito Usb-Blaster Configuraccedilatildeo do dispositivo serial Altera EPCS4 On-Board Usb-Blaster
para Controle de API de usuaacuterio e programaccedilatildeo
JTAG e AS satildeo os modos do programaccedilatildeo suportados
A Tabela 7 mostra a descriccedilatildeo do Bloco da SRAM
Tabela 7 ndash Descriccedilatildeo do Bloco da SRAM
SRAM 512-Kbyte Static RAM memory chip Organizado em 256K x 16 bits Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 8 mostra a descriccedilatildeo do Bloco da SDRAM
Tabela 8 - Descriccedilatildeo do Bloco da SDRAM
SDRAM 8-Mbyte Single Data Rate Synchronous Dynamic RAM memory chip Organizado em 1M x 16 bits x 4 Banks Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
23
A Tabela 9 mostra a descriccedilatildeo do Bloco Memory Flash
Tabela 9 ndash Descriccedilatildeo da Memoria Flash
Memory Flash
4-Mbyte NAND Flash memory 8-bit data bus Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 10 mostra a descriccedilatildeo do Bloco SD card socket
Tabela 10 - Descriccedilatildeo do SD card socket
SD card socket Fornece o modo SPI para o acesso ao cartatildeo SD Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 11 mostra a descriccedilatildeo 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) Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 12 mostra a descriccedilatildeo dos Clock inputs
Tabela 12 - Descriccedilatildeo das entradas de Clocks
Clock inputs Oscilador de 50 Mhz Oscilador 27 Mhz Entrada para clock
externo
A Tabela 13 mostra a descriccedilatildeo do Aacuteudio CODEC
Tabela 13 - Descriccedilatildeo do Aacuteudio CODEC
Aacuteudio CODEC 4-Mbyte NAND Flash memory 8-bit data bus Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
24
A Tabela 14 mostra a descriccedilatildeo do Bloco VGA DAC
Tabela 14 ndash Descriccedilatildeo da saiacuteda VGA DAC
VGA
DAC
Usa 4 bits DAC para cada cor (RGB) Com 15 pinos no conector VGA convencional (fecircmea) Suporta uma resoluccedilatildeo de 640 x 480 com um refresh de ateacute 100Hz Pode ser usando com o FPGA Cyclone II para implementar um Encoder para TV
A Tabela 15 mostra a descriccedilatildeo do Bloco Serial Ports amp PS2
Tabela 15 ndash Descriccedilatildeo da Serial Port e PS2
Serial Ports amp PS2 Uma porta RS-232
Uma posta PS2 Um conector Serial para a porta do RS-232 Conector PS2 para conectar um mouse ou teclado ao DE2
A Tabela 16 mostra a descriccedilatildeo do Bloco dos Two 40 - pin expansion headers
Tabela 16 ndash Descriccedilatildeo dos conectores de expansatildeo de 40 pinos
Two 40 - pin expansion headers 72 pinos de IO do Clyclone II bem como 8 power e groundrsquos satildeo trazidos aos 2 conectores de expansatildeo de 40 pinos cada Os conectores de 40 pinos tambeacutem aceitam os cabos IDE de 40 pinos Proteccedilatildeo resistiva eacute fornecida
233 Endereccedilo das Pinagens dos Componentes usados no Projeto
2331 PushButtons
A Figura 11 mostra uma foto dos PushButtons do kit Key[30] a ordem eacute o button da
esquerda eacute o mais significativo e o mais de direita o menos signigicativo
Figura 11 ndash Os 4 PushButtons do DE2Key[30] (DE2_UserManualpdf contrado no cd do kit)
25
A Tabela 17 mostra os pinos da FPGA aos PushButtons
Tabela 17 ndash Pinos da FPGA referentes a cada PushButton (DE2_UserManualpdf contrado no cd do kit)
2332 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 ndash Modulo de displays de 7 segmentos (DE2_UserManualpdf encontrado no cd do kit)
Figura 13 ndash Index de um display (DE2_UserManualpdf encontrado no cd do
kit)
26
A Tabela 18 mostra os pinos da FPGA referente a cada segmento dos displays de 7
segmentos do modulo
Tabela 18 ndash Pinos da FPGA referentes a cada segmento dos Displays do modulo
27
2333 VGA
A Figura 14 esta em forma de onda da temporizaccedilatildeo horizontal e vertical da VGA do Kit
DE2
Figura 14 ndash Temporizaccedilatildeo horizontal da VGA
A Tabela 19 mostra a especificaccedilatildeo da temporizaccedilatildeo horizontal da VGA
Tabela 19 ndash Especificaccedilatildeo da temporizaccedilatildeo horizontal da VGA
A Tabela 20 mostra a especificaccedilatildeo da temporizaccedilatildeo vertical da VGA
Tabela 20 ndash Especificaccedilatildeo da temporizaccedilatildeo vertical da VGA
28
A Tabela 21 mostra os pinos da FPGA referente a cada pino de saida do conector VGA do
Kit DE2
Tabela 21 ndash Pinos da FPGA referentes a saiacuteda do Conector VGA do Kit
29
CAPIacuteTULO 3 ndash ESPECIFICACcedilAtildeO TECNICA
Nesse capiacutetulo tem-se uma descriccedilatildeo dos principais moacutedulos do projeto Satildeo eles Software
Firmware e Hardware
Inicialmente eacute apresentada a visatildeo geral do sistema e a descriccedilatildeo funcional de cada moacutedulo
A Figura 15 apresenta o diagrama em blocos do sistema
Figura 15 - Moacutedulos do projeto
31 Descriccedilatildeo de Software
O Software eacute uma das interfaces com o usuaacuterio
312 Diagrama de Blocos do Software
30
312 Modulo do PC
Neste modulo eacute 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
32 Descriccedilatildeo de Hardware
321 Modulo Touch-Screen
O usuaacuterio ao tocar o Touch-Screen (AT4 touch-screen resistivo de 4 fios) ocorre uma
mudanccedila nas tensotildees do eixo X e do eixo Y devido a resistecircncia gerada pelo ao toque do usuaacuterio
em uma determinada regiatildeo da tela essa mudanccedila de tensatildeo eacute interpretada pela placa
controladora COACh IIs do Touch-Screen e enviada via serial para o Kit DE2 que interpretaraacute
os dados e faraacute o devido processamento
322 Modulo FPGA
O Hardware corresponde tanto aos componentes fiacutesicos presentes no kit de desenvolvimento
quanto aos componentes que seratildeo configurados na FPGA Satildeo diversos componentes escritos
em linguagem de descriccedilatildeo de hardware
No um dos principais componentes de hardware utilizado modulo eacute o processador NIOS II
para se ter uma ideacuteia o processador NIOS II eacute capaz gerenciar os dispositivos externos a FPGA
utilizando controladores de memoacuterias controladores de VGA entre outros E tambeacutem eacute possiacutevel
o proacuteprio usuaacuterio criar seu componente para ser controlado atraveacutes do processador NIOS
II(Altera 2007)
31
3221 O Processador NIOS II
Atraveacutes do software SOPC da ALTERA foi possiacutevel montar a arquitetura de hardware do
processador NIOS II bem como especificar as interfaces que ele iraacute controlar atraveacutes do firmwar
feito no NIOS II IDE
Na Tabela 22 eacute no campo Module Name onde estatildeo os moacutedulos que foram usados para
definir o processador NIOS II e os componentes externos que ele iraacute controlar e no campo
Description esta a descriccedilatildeo do nome de cada modulo
Tabela 22 ndash Moacutedulos dos componentes e suas descriccedilotildees
3222 Firmware para o NIOS II
O Firmware foi feito utilizando a linguagem C utilizando a ferramenta NIOS II IDE Atraveacutes
do firmware eacute possiacutevel 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 graacuteficas para controlar a vga e serial e
USB-BLASTER eacute encarregado em enviar todo o desenvolvimento do projeto para o Kit DE2
323 Configuraccedilatildeo da FPGA via JTAG
Depois de configurado o hardware do processador NIOS II eacute preciso fazer o load do NIOS
para a FPGA e para que isso aconteccedila eacute necessaacuterio que atraveacutes do software Quartus II da
ALTERA utilizando a interface JTAG utilizando o cabo USB-BLASTER
32
324 Comunicaccedilatildeo entre FPGA e o Touch-Screen
Para comunicaccedilatildeo entre dos dois hardwares Touch-Screen e o FPGA eacute utilizando uma
interface serial RS-232
A configuraccedilatildeo da interface eacute a seguinte
Bits de dados 8
Taxa de dados 5600(bps)
A Tabela 23 mostra a relaccedilatildeo dos pinos da porta serial com os pinos da FPGA
Tabela 23 ndash Pinos da FPGA referente agrave pinagem da interface Serial
E a Figura 16 mostra o desenho correspondente da interface serial
Figura 16 ndash Conector da interface serial do kit DE2
33 Especificaccedilatildeo de Validaccedilatildeo
331 Validaccedilatildeo de Hardware
A validade do hardware se faz com a anaacutelise de todos os moacutedulos envolvidos
As necessidades satildeo estudadas os componentes externos ao FPGA satildeo selecionados de
acordo o processador nios e os controladores dos moacutedulos externos como VGA e SERIAL satildeo
enviados ao modulo FPGA
Os resultados obtidos na tela do monitor e a recepccedilatildeo dos dados pela serial comprovam o
funcionamento do modulo de comunicaccedilatildeo da serial e vga
33
332 Validaccedilatildeo de Software
A validaccedilatildeo do controle da interface touch-screen faz-se a partir dos resultados obtidos das
funccedilotildees escritas na linguagem C especificas para cada componente externos ao FPGA essas
funccedilotildees tornam possiacuteveis que o processador NIOS na FPGA tenha total controle sobre os
moacutedulos externos como a VGA e a SERIAL
As funccedilotildees que satildeo utilizadas para validar o funcionamento do software satildeo para a VGA os
meacutetodos de controle (alt_up_vga_draw_char_1b( char int x int y)) e (alt_up_vga_draw_pixel(
color x y))
O meacutetodo (alt_up_vga_draw_char_1b( char int x int y)) tem a funcionalidade de escrever
caracteres na tela do monitor e a descriccedilatildeo da sua assinatura ldquoparacircmetrosrdquo eacute a seguinte char eacute o
caractere que eacute escrito em alguma posiccedilatildeo na tela int x eacute a posiccedilatildeo x da tela do monitor e int y eacute
a posiccedilatildeo y da tela do monitor sendo que a resoluccedilatildeo utilizada eacute de 80x60 ou seja x natildeo pode
passar de 80 e y natildeo pode passar de 60
O meacutetodo (alt_up_vga_draw_pixel( color int x int y)) tem a funcionalidade de ldquopintarrdquo o
fundo da tela do monitor o meacutetodo de imprimir caracteres tem preferecircncia sobre este meacutetodo ou
seja os caracteres sempre ficam sob a aacuterea pintada ou seja o caractere sempre ficara em cima da
aacuterea pintada a descriccedilatildeo da assinatura deste meacutetodo eacute a seguinte color eacute a valor da cor que pode
ser um valor inteiro ou em hexadecimal para definir uma cor de alguma posiccedilatildeo da tela definidos
pelos paracircmetros x e y
As funccedilotildees que satildeo utilizadas para validar o funcionamento do software satildeo para a Serial os
meacutetodos de controle de transmissatildeo (fread( packet sizeof(packet) 1 serial_fp )) a funccedilatildeo
fread eacute utilizada para a leitura via interrupccedilatildeo dos pacotes que a controladora envia para o kit
DE2 as assinaturas do meacutetodo fread tem a seguinte composiccedilatildeo packet eacute a estrutura do pacote
que seraacute recebido o sizeof(packet) eacute o diz qual eacute o tamanho exato da estrutura criada e o
serial_fp eacute o handle da porta serial
Uma observaccedilatildeo muito importante eacute que para o total funcionamento eacute necessaacuterio 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 rs232h e rs232c onde estatildeo os meacutetodos de
controle da SERIAL e alt_up_vgah alt_up_vgac onde estatildeo os meacutetodos de controle para a
VGA Para tornar estes meacutetodos acessiacuteveis eacute preciso fazer os includes dos arquivos h no
projeto da NIOS IDE
A figura 17 mostra a utilizaccedilatildeo dos meacutetodos (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
34
int y)) utlizado para escrever os caracteres lsquoarsquo e lsquobrsquo dentro de um grupo de pixel previamente
pintado a (alt_up_vga_draw_pixel( color int x int y)) natildeo pinta um pixel de cada vez e sim
um bloco de 8x8 pixels
Figura 17 - Tela para a validaccedilatildeo dos testes com as bibliotecas graacuteficas do componente VGA
34 Recursos Necessaacuterios
A Tabela 24 apresenta os ambientes de desenvolvimento e ferramentas de software utilizadas
e na Tabela 25 as linguagens necessaacuterias Estas ferramentas foram utilizadas em ambiente
Windows Xp
Tabela 24 - Ferramentas de Desenvolvimentos e Ambientes
Software Para que foi Utilizado
Quartus II Para a definiccedilatildeo de qual o modelo de FPGA utilizado compilaccedilatildeo e simulaccedilatildeo e envio Load do NIOS para FPGA
SOPC Para definiccedilatildeo da do processador NIOS II e com quais componentes externos ele ira interagir atraveacutes dos controladores dos respectivos componentes
NIOS II IDE Para implementaccedilatildeo do firmware do processador NIOS II utilizando a linguagem em C
35
Borland C++ Builder Para desenvolvimento de ima interface de comunicaccedilatildeo via caboUSB-
BLASTER para o envio de imagem para o kit
Tabela 25 ndash Linguagens de programaccedilatildeo utilizadas
Linguagem Ferramenta C++ Borland C++ Builder VerilogVHDL Quartus II C NIOS II IDE
35 Viabilidade Teacutecnico-Econocircmica
O valor do projeto esta descrito na Tabela 26
Tabela 26 ndash Relaccedilatildeo dos Custos
DESCRICcedilAtildeO CUSTO APROXIMADO (R$) COMPONENTES ELETROcircNICOS 50000 1 Kit DE2 Cyclone II 35000 1 Monitor de Computador 35000 HORAS TRABALHADAS (400 horas) 750000 CUSTO TOTAL APROXIMADO (R$) 870000
36 Cronograma do Projeto
A tabela 27 contem as informaccedilotildees do cronograma do projeto
Tabela 27 ndash Cronograma de datas e entregas do projeto
Data Atividade a ser apresentada 050307 Entrega das propostas de projeto para avaliaccedilatildeo do colegiado 020407 Entrega das especificaccedilotildees teacutecnicas do projeto aprovado 110607 Entrega do projeto (monografia) e dos testes preliminares do mesmo 060807 Apresentaccedilatildeo preacutevia da implementaccedilatildeo do projeto especificado 011007 Apresentaccedilatildeo do projeto implementado
Qualificaccedilatildeo para a fase final 291007 Segunda apresentaccedilatildeo do projeto implementado para os que natildeo o fizeram no
dia 011006 com decreacutescimo da nota Qualificaccedilatildeo para a fase final
051107 Entrega da documentaccedilatildeo completa em espiral para a banca examinadora em 3 vias contendo a monografia manual teacutecnico manual do usuaacuterio e artigo cientiacutefico
261107 Defesa formal dos projetos com apresentaccedilatildeo oral para a banca examinadora 101207 Entrega da documentaccedilatildeo completa revisada e corrigida encadernada no
padratildeo da biblioteca (capa dura) em duas vias contendo a monografia manual teacutecnico manual do usuaacuterio e artigo cientiacutefico Entrega do CD contendo no formato WEB todo o conteuacutedo dos manuais
36
CAPIacuteTULO 4 ndash ESPECIFICACcedilAtildeO TECNICA
41 Requisitos Miacutenimos
Os requisitos miacutenimos de Hardware satildeo
Funcionamento das interfaces Serial e USB-Blaster
Funcionamento do Kit DE2
PC
Os requisitos miacutenimos de Software
Windows Xp
Quartus II
SOPC
NIOS II IDE
42 Projeto de Hardware
O hardware utilizado nesse projeto inclui componentes presentes na Placa de
Desenvolvimento Nios II - ediccedilatildeo DE2 Cyclone II EP2C35 e principalmente o hardware que seraacute
configurado na FPGA escrito em linguagem de descriccedilatildeo de hardware (HDL)
O um dos principais blocos de hardware eacute o processador NIOS II o Avalon Bus e os
controladores de componentes externos a FPGA e de comunicaccedilatildeo presentes no Kit
37
O software embarcado (firmware) estaraacute rodando nessa arquitetura Eacute uma arquitetura
completa construiacuteda com a ferramenta SOPC Builder da Altera A Figura 18 representa em
blocos os principais componentes dessa arquitetura
Figura 18 ndash Representaccedilatildeo em blocos do hardware do NIOS II
421 Funcatildeo do Touch-Screen
Outro bloco importante eacute o do Touch-Screen esta tela sensiacutevel ao toque pois como esta tela
trabalha com resistecircncia ao ser tocado em uma determinada regiatildeo uma resistecircncia eacute gerada e a
tensatildeo de saiacuteda eacute modificada a alimentaccedilatildeo desta placa eacute proveniente de sua placa controladora
a mesma placa que recebe a tensatildeo de saiacuteda modificada de acordo com a regiatildeo tocada na tela
Para verificar as caracteriacutesticas detalhadas do Touch-Screen e sua placa controlador favor ver
o Capitulo 2
422 Monitor e VGA
O Monitor inicialmente tem apenas o desenho de um botatildeo que ao ser tocado via touch
mudara a cor de toda a tela A imagem exibida no monitor tem uma resoluccedilatildeo de
38
Protoacutetipo das telas para os testes esta na Figura 19 a tela verde quando a touch natildeo eacute tocando
na regiatildeo do botatildeo de OK quando o botatildeo de OK for tocado a tela do monitor mudara de cor
ficando azul
Figura 19 ndash Tela do monitor
No Capitulo 2 estatildeo todas as caracteriacutesticas da pinagem e do conector VGA
423 Comunicaccedilatildeo serial
Entre a placa controladora do Touch-Screen e o FPGA existe uma comunicaccedilatildeo 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 manipulaccedilatildeo da imagem que eacute
mostrada no monitor
No capitulo 2 estatildeo das descriccedilotildees dos pinos e do conector da comunicaccedilatildeo Serial
O pacote serial que eacute transmitido pela placa controladora do touch-screen possui 10 bytes de
comprimento e segue a seguinte sequumlecircncia de envio
[55] [54] [] [] [] [] [] [] [] []
Sequumlecircncia dos bytes
Os dois primeiros bytes identificam o Header do pacote
O terceiro byte eacute 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 agrave posiccedilatildeo do eixo x onde a tela foi tocada
O sexto e o seacutetimo byte correspondem a posiccedilatildeo do eixo y onde a tele foi tocada
O restante os bytes identificam o tail do pacote recepcionado pelo kit DE2
39
424 Comunicaccedilatildeo USB-Blaster
Essencial para envio do projeto desenvolvido para o kit DE2 tambeacutem muito utilizado para o
debug deste projeto
435 Memoacuteria SDRAM
A memoacuteria utilizada para armazenar grandes quantidades de dados eacute a SDRAM (ver detalhes
no Capitulo 2)
Essa memoacuteria eacute muito raacutepida serviu muito bem para armazenar o firmware deste projeto
pois tem o tempo acesso ideal para ler as instruccedilotildees que utilizaram a VGA e tambeacutem eacute raacutepida o
suficiente para fazer a leitura dos dados e disponibilizar na saiacuteda VGA do kit
426 Memoacuteria FLASH
Eacute onde seraacute armazenado o firmware possui espaccedilo suficiente para isso 4MB e uma memoacuteria
mais lenta e por isso natildeo foi usada para armazenar dados para serem jogados na vga do Kit
43 Software
431 Software (Firmware)
O software tem de funccedilatildeo de utilizar as bibliotecas das controladoras dos componentes
externos a fim de controlar estes componentes de acordo com o necessaacuterio para atender o
objetivo do projeto
Ou seja uma tela inicial eacute apresentada e o usuaacuterio ao tocar na nela o kit recebe um pacote via
serial e interpreta a posiccedilatildeo da tela em que foi tocado e logo em seguida envia o resultado deste
toque para o monitor
432 Objetivos
O usuaacuterio 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 accedilatildeo de acordo com a posiccedilatildeo da tela
tocada alterando assim a imagem anterior com o resultado do toque
Interpretar o toque de usuaacuterio na tela touch-screen recepccedilatildeo do pacote via serial da placa
controladora do touch-screen tratamento do pacote e interpretaccedilatildeo das coordenadas x e y do
40
toque Realizaccedilatildeo de alguma accedilatildeo que resultara na alteraccedilatildeo da imagem da tela atual de acordo
com a funccedilatildeo em que as coordenadas foram previamente definidas para o que deve ser feito
432 Funccedilotildees
A Tabela 28 tem as principais funccedilotildees que foram implementadas para o sistema
Tabela 28 ndash Funccedilotildees do sistema firmware
FUNCcedilOtildeES Tela de um pequeno editor de texto Tratamento do sinal recebido da serial devido a um toque na tela Interpretaccedilatildeo do pacote serial e transfomaccedilatildeo para coordenadas x e y Transformaccedilatildeo das posiccedilotildees do toque na tela em alguma accedilatildeo enviando o resultado para a VGA Imagem final disponibilizada ao usuaacuterio de acordo com o toque que foi dado na tela Controlar dispositivos cada dispositivo pode ser controlado pelo seu respectivo contrador atraveacutes de seu endereccedilo base VGA SERIAL USB-BLASTER IO(Leds Switches etc) do Kit DE2
O Firmware do processador NIOS II eacute que realizaraacute a integraccedilatildeo entre hardware com
hardware Com o firmware controlando o NIOS II eacute possiacutevel interagir com os dispositivos
externos a FPGA Tornando possiacutevel a integraccedilatildeo da FPGA com a peliacutecula touch-screen e um
monitor sem a ajuda de um PC a uacutenica ajuda do pc seria para enviar dados de uma imagem para
o Kit DE2
44 Validaccedilatildeo e Testes
Inicialmente os moacutedulos da VGA e comunicaccedilatildeo SERIAL natildeo estavam funicionando
apenas o devido agrave fraca documentaccedilatildeo sobre o kit DE2 foi possiacutevel apenas fazer testes com o
Processador NIOS II pois sobre este existem bastantes documentos e exemplos que podem ser
utilizados
Nesta primeira parte foi possiacutevel testar o NIOS II para controlar o display bototildees e switchs
do kit DE2
Com o NIOS II funcionando completamente foi necessaacuterio porta-lo para o kit DE2 o que foi
simples pois como sabemos esses kits satildeo portaacuteveis entre si apenas mudando a pinagem e a
capacidade da FPGA
Com o Kit DE2 foi possiacutevel fazer os testes necessaacuterios com a comunicaccedilatildeo serial
inicialmente testada via terminal conversando diretamente com o kit foi possiacutevel fazer o
seguinte teste os caracteres que eram entrados via teclado chegavam ao kit via serial e o o
41
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 comdumpexe que eacute facilmente encontrado pelas ferramentas
de pesquisa da web e tambeacutem existem vario outros programas como este e o comdump eacute
utilizado para debug da porta serial do pc conectado diretamente na placa controladora do touch-
screen e foi a peccedila chave para o entendimento do pacote enviado pela placa controladora
Figura 20 - Cumdumpexe programa de debug da porta serial
A explicaccedilatildeo de cada byte do pacote esta explicado no item 423
Apos o entendimento completo da transmissatildeo 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 natildeo 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 ateacute o momento em que
foi testado os meacutetodos proprietaacuterios da Altera para fazer a VGA funcionar os meacutetodos esses
implementados em C
A figura 21 onde contem o teste baacutesico feito que foi a chave principal para o sucesso deste
projeto
42
Como dito no item 332 do projeto foram utilizados as funccedilotildees da controladora VGA esses
meacutetodos 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 eacute utilizado o meacutetodo alt_up_vga_draw_pixel( color int
x int y) onde color eacute a cor do bloco de pixels e x e y satildeo as coordenadas da tela onde o bloco
que seraacute pintado
Para escrever um caractere sobre um bloco de pixels pintado eacute utilizado a funccedilatildeo
alt_up_vga_draw_char_1b( char int x int y) onde char eacute o caractere a ser impresso e x e y satildeo
as coordenadas da tela onde os o caractere eacute impresso
Figura 21 - Teste baisco do funcionamento do componente VGA do kit DE2
43
CAPIacuteTULO 5 ndash VALIDACcedilAtildeO E RESULTADOS
Os resultados foram os melhores possiacuteveis pois com a utilizaccedilatildeo dos IP CORE
ldquocontroladorasrdquo dos componentes externos como VGA e SERIAL e seus meacutetodos de para
controle eacute possiacutevel controlar facilmente esses moacutedulos atraveacutes do firmware desenvolvido para o
processador NIOS que consegue realizar operaccedilotildees transparentes acessando dos meacutetodos de
controle dos moacutedulos
Apos os testes baacutesicos 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 baacutesico de editor de texto
A figura 22 mostra um teste utilizando os meacutetodos de controle disponiacuteveis para o IP CORE
da VGA para primeiramente fazer o menu da aplicaccedilatildeo desenvolvido em na linguagem C
Figura 22 ndash Menu baacutesico do editor de texto
Para desenhar o menu da figura acima foi utilizado os meacutetodos proprietaacuterios de controle da
VGA citados no capitulo 4 e tambeacutem estruturas de repeticcedilatildeo para que a tela fosse varrida e os
pixels desenhados nos respectivos lugares da tela bem como os caracteres
Na figura 23 eacute definida a seguinte estrutura em C para representar de um botatildeo
Figura 23 - Estrutura em C para representar um botatildeo
44
A figura 24 eacute a declaraccedilatildeo dos bototildees que seratildeo utilizados pelo aplicativo editor de texto
para comprovar o funcionamento do controle da interface touch-screen
Apenas o que esta dentro da marcaccedilatildeo quadrada representa os bototildees do menu da figura 23
e o restante satildeo os bototildees do teclado do editor de texto
Figura 24 - Declaraccedilatildeo dos bototildees do menu
45
A figura 25 representa o meacutetodo drawnButtonUp responsaacutevel por desenhar os bototildees na tela
de acordo com as posiccedilotildees em que foram declarados os bototildees deste meacutetodo satildeo desenhados
para parecerem que estatildeo ldquolevantadosrdquo e natildeo pressionados
Note que foram utilizados os meacutetodos proprietaacuterios de controle da VGA
alt_up_vga_draw_pixel pra pitar os pixels e alt_up_vga_draw_char_b1 para desenhar caracteres
como jaacute foi especificado no item 44 do projeto
Figura 25 ndash Meacutetodo drawButtonUp
46
O meacutetodo que desenha o caption do botatildeo se chama drawButtonText desenha os caracteres
em cima dos bototildees natildeo importa se o botatildeo esta pressionado ou natildeo
A figura 26 mostra como este meacutetodo foi implementado e ele eacute chamado no final de cada
meacutetodo onde algum tipo de botatildeo eacute desenhado quando o meacutetodo que desenha o botatildeo normal
quanto o pressionado e ateacute mesmo o do teclado
Figura 26 ndash Meacutetodo que escreve o caption de cada botatildeo
47
A figura 27 mostra o meacutetodo drawButtonDown que desenha o botatildeo pressionado ou seja
quando o usuaacuterio pressiona a regiatildeo correspondente a um botatildeo do menu no touch-screen o
mesmo redesenharaacute o botatildeo parecendo um efeito de botatildeo afundado note que no final do
meacutetodo novamente eacute chamado o meacutetodo drawButtonText que reescreveraacute o caption do botatildeo
como mostra o meacutetodo da figura 26 e esta ilustrado na figura 28
Figura 27 ndash Meacutetodo que desenha o botatildeo pressionado
48
Dependendo da aacuterea do menu que o usuaacuterio pressionar no touch-screen causar o efeito de
pressionado como mostra a figura 28
Figura 28 ndash Efeito do botatildeo de menu apertado
Na figura 29 eacute a representaccedilatildeo de quando a aacuterea correspondente ao botatildeo ldquoamarelordquo eacute
pressionada
Apos estes testes baacutesicos comprovando o funcionamento da interface graacutefica para o usuaacuterio
foi definido o restante dos componentes da tela que eacute constituiacutedo de um prompt e um teclado
qwerty que foi essencial para comprovar o perfeito funcionamento do controle da interface
touch-screen
49
51 Interface Grafica Final
A figura 29 mostra a interface final que o usuaacuterio teraacute para poder verificar o funcionamento
do controle da interface touch-screen
Figura 29 ndash Interface final touch-screen do usuaacuterio
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
511 Descriccedilatildeo do editor de texto
O menu possui 4 botoes cada um com sua respectiva funcionalidade quando o usuario
pressiona a area do botatildeo ldquoapagarrdquo uma vez entatildeo um carectere do prompt eacute apagado Quando eacute
precionado a area correspondente ao botatildeo ldquoResetrdquo todo o conteudo do prompt seraacute apagado e o
plano de fundo retornaraacute a cor branca Quando o botatildeo ldquoamarelordquo eacute pressionado o fundo da tela
passa a ser amarelo e o mesmo acontece se o usuario precionar o botatildeo verde tornando o cor de
fundo verde
50
O teclado possui 29 teclas sendo duas delas que equivalem ao ENTRA ldquoENTrdquo e ao
SPACE ldquoSPCrdquo Quando o usuario pressiona a area correspondente a algum botatildeo do teclado o
mesmo muda sua cor para azul e o seu caractere eacute disponibilizado no prompt
Essas funcionalidades nada mais satildeo do que um bom exemplo de como funciona
corretamente o controle da interface touch-screen
52 Prompt e o Teclado
A estrutura feita na linguagem C que define o prompt da figura 28 esta representado na
figura 30
Figura 30 ndash Estrutura em C para representar o prompt
A figura 31 mostra o metodo drawPrompt utilizado para desenhar na tela o prompt
Figura 31 ndash Meacutetodo que desenha o prompt
51
A estrutura do teclado eacute a mesma utilizada pela figura 23 e tambem eacute criado satildeo
inicializados na figura 24
O restante as implementaccedilotildees estatildeo disponiveis no cd deste documento
Quando algum botatildeo do teclado eacute pressionado sua cor muda para azul e sua letra
correspondente eacute escrita o prompt
A figura 32 ilustra quando o usuaacuterio aperta a letra lsquotrsquo na peliacutecula touch-screen
Figura 32 - Teste do prompt e o teclado
52
53 Controle da Interface Touch-Screen
Depois do todos os testes com o processador NIOS e a integraccedilatildeo do mesmo com os
moacutedulos externos como a porta SERIAL e a saiacuteda VGA eacute possiacutevel utilizando o touch-screen
criar uma interface amigaacutevel e faacutecil de usar para o usuaacuterio utilizando um firmware capaz de
interpretar os sinais via serial vindo da controladora do touch ao detectar que um toque foi dado
pelo usuaacuterio e realizar algumas accedilotildees que neste caso se comportam como um editor de texto
baacutesico
A figura 33 mostra como foi validado este projeto e seus moacutedulos controlando uma
interface touch-screen para chegar no resultado abaixo digitado pelo usuaacuterio comprovando o
funcionamento e viabilidade deste projeto
Figura 33 ndash 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 mudanccedilas podendo ser alterado rapidamente o tipo de
aplicaccedilatildeo ou integrado rapidamente com outro projeto
53
CAPIacuteTULO 6 - CONCLUSAtildeO
Uma das principais dificuldades no desenvolvimento deste projeto foi fazer o levantamento
da documentaccedilatildeo sobre o processador NIOS e os moacutedulos externos a FPGA do Kit DE2 Como
natildeo foi feito algum projeto antes que utilizasse a interface VGA e a SERIAL do Kit DE2 levou-
se muito tempo ateacute conseguir adquirir e ordenar o conhecimento que foi sendo adquirido ateacute
conseguir dar os primeiros passos e realizar os primeiros testes com a VGA e a SERIAL Outro
grande obstaacuteculo foi ter de descobrir que para que o NIOS controlasse os moacutedulos externos a
FGPA fosse necessaacuterio copiar os arquivos c e h dos respectivos componente para dentro do
projeto
Mas depois de todos os problemas com os moacutedulos externos solucionados cada modulo do
projeto foi sendo desenvolvido separadamente ateacute seu total funcionamento Natildeo tive dificuldades
com a linguagem da programaccedilatildeo pois o Firmware do processador NIOS eacute o C a qual mais tive
contato na faculdade
Outro desafio foi fazer a peliacutecula 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
peliacutecula natildeo 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 possiacutevel
comeccedilar a fazer os testes necessaacuterios para prosseguir com o projeto aprender como o a peliacutecula
identifica um toque e manda este sinal para a controladora e a controladora transforma este sinal
em um sinal serial que eacute 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 accedilotildees
que as coordenadas jaacute estatildeo previamente calibradas no firmware para fazer bem como mudar de
cor a tela fazer o efeito de um botatildeo subindo e descendo etc
Varias vezes o projeto parou de funcionar entatildeo 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 memoacuteria abundante etc uma das
facilidades eacute a faacutecil alteraccedilatildeo do projeto podendo ser integrado a outro ou ateacute mesmo alterado
para realizar outros tipos de accedilotildees com o touch-screen
Existem vaacuterios melhoramentos que podem ser executados no projeto um deles eacute tentar
interpretar de uma maneira diferente os valores do eixo y pois do jeito que esta a resoluccedilatildeo do
eixo y esta muito baixa dificultando o reconhecimento de toques em aacutereas pequenas Talvez a
inclusatildeo de mais alguns bytes no pacote de leitura da serial resolva o problema
54
Uma ideacuteia para um proacuteximo projeto que use a interface touch-screen poderia ser a
integraccedilatildeo com o projeto do nosso colega Roberto Junqueira ou a desenvolvimento de uma
placa controladora para o touch-screen
Este trabalho eacute uma modesta contribuiccedilatildeo para o uso de FPGAs e do processador embarcado
NIOS implementado em VHDL pela Altera que acredito que vai abrir vaacuterios caminhos pois
com este projeto alguns caminhos ficaram mais faacuteceis de percorrer daqui para a frente
55
CAPIacuteTULO 7 - REFEREcircNCIAS BIBLIOGRAacuteFICAS
AMORE Roberto drsquo VHDL Descriccedilatildeo e Sintese de Circuitos Rio de Janeiro ed LTC
2005
Elotouch Touch-Screen e Controladora Descriccedilatildeo do funcionamento e descriccedilatildeo
tecnologia Touch-Screen lthttpwwwelotouchcombrgt Acesso em fevereiro de 2007
ALTERA University Program IP Cores Instalaccedilatildeo de IP Cores e referencias sobre os
componentes dos kits DE1 e DE2 Disponivel em lthttpwwwalteracomeducationunivip-
coresunv-ip-coreshtmlgt Acesso em abril de 2007
ALTERA NIOS II Documentaccedilatildeo sobre o pprocessador embracado NIO II Disponivel
em lthttpwwwalteracomproductsipprocessorsipm-indexjspgt Acesso em Abril de 2007
ALTERA Development amp Education Board 2 (DE2) Manual do usuario Disponivel no
de que acompanha o Kit DE2 ltDE2_user_manualDE2_UserManualpdfgt Acesso em
fevereiro de 2007
LISTA DE SIGLAS
CRT - Catodic Ray tube
DE2 - Development amp Educations 1
ES - EntradaSaiacuteda
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 - Nuacutecleo de Ciecircncias Exatas e Tecnoloacutegicas
PC - Personal Computer
PDA - Personal Digital Assistant
PLL - Pulse Logic Loop
SDRAM - Static Dinamic Randomic Acess Memory
TTL - Transistor-transistor Logic
UNICENP - Centro Universitaacuterio Positivo
USB - Universal Serial Bus
USP - Universidade de Satildeo Paulo
VGA - Viacutedeo 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 SIacuteMBOLOS
- ohm
MHz - Mega Hertz
Hz - Hertz
V - Volts
11
12
CAPIacuteTULO 1 - INTRODUCcedilAtildeO
A computaccedilatildeo reconfiguraacutevel vem sendo utilizada em larga escala para projetos de
hardware que necessitem de um grande poder de processamento Neste campo um dispositivo
muito utilizado eacute a FPGA (Field-Programmable Gate Array)
As FPGArsquos satildeo circuitos de hardware que podem ser modificados praticamente em
qualquer momento durante o uso As FPGArsquos consistem em array de blocos loacutegicos
configuraacuteveis que implementam funccedilotildees loacutegicas 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 mudanccedilas raacutepidas no hardware
Em microprocessadores de uso geral se tem um hardware que natildeo pode ser modificado fixo
mas no FPGA essa mudanccedila eacute bastante simples e raacutepida feita via software
Este projeto teve sua proposta lanccedilada a partir da ideacuteia concedida pelo Prof Valfredo Pilla
Junior de interface Touch-Screen
O projeto eacute sobre o controle de uma interface com uma peliacutecula Touch-Screen onde eacute
possiacutevel que o usuaacuterio ao tocar uma peliacutecula sensiacutevel ao toque o sistema desenvolvido possa
realizar algum tipo de alteraccedilatildeo na imagem apresentada em um monitor que se dispotildee atraacutes do
Touch-Screen
O objetivo foi desenvolver um sistema capaz de receber e manipular a aquisiccedilatildeo dos dados
gerados pela placa controladora atraveacutes toque na peliacutecula Touch-Screen que estaraacute na frente da
tela de um monitor converter estes dados realizar uma alteraccedilatildeo na tela inicialmente
apresentada e disponibilizar o resultado da alteraccedilatildeo atualizando a tela do monitor
O hardware do sistema eacute basicamente composto na parte da aquisiccedilatildeo por uma peliacutecula
Touch-Screen e uma placa controladora da proacutepria peliacutecula recepccedilatildeo e processamentos feitos no
Kit DE2 (Development amp Education 1) Board que enviara o resultado atraveacutes da saiacuteda VGA
(Viacutedeo Graphics Array) para um monitor CRT (Catodic Ray tube)
Este sistema eacute justificado pois as interfaces intuitivas com telas Touch-Screen satildeo
utilizadas em uma ampla gama de mercados
Por exemplo
Comeacutercio Realizar um atendimento de forma raacutepida e faacutecil eacute objetivo da automaccedilatildeo 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 usuaacuteriomaacutequina de grandes complexos
equipamentos devido agrave eliminaccedilatildeo do teclado do mouse e de outros perifeacutericos de um ambiente
industrial evitando distraccedilotildees em um ambientes geralmente muito agressivo
13
Medicina Os sistemas que usam touch simplificam os sofisticados sistemas meacutedicos reduzem as
possibilidades de erros e proporcionam um mecanismo de entrada de dados mais eficiente que
qualquer outro perifeacuterico
Educaccedilatildeo Hoje o touch esta se tornando a interface de treinamento mais popular em todas as
fases do aprendizado desde a preacute escola jardim de infacircncia e preparaccedilatildeo profissional eliminando
a frustraccedilotildees de crianccedilas ao utilizar o mouse ou teclado
E aplicaccedilotildees com o objetivo de diminuir o tempo de resposta aumentar a produtividade
proporcionar produtos e serviccedilos de maior qualidade e aumentar os lucros Por exemplo realizar
um atendimento de forma raacutepida e faacutecil eacute objetivo da automaccedilatildeo 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 serviccedilos intuitivos e interativos de uma interface
Touch proporcionam confiabilidade ao cliente que eacute exatamente o que o seu negoacutecio precisa para
o crescimento e o sucesso em longo prazo (elotouch 2007)
Este projeto no futuro poderaacute ser integrado com outro projeto formando assim um sistema
parecido com um PDA (Personal Digital Assistant)
14
CAPIacuteTULO 2 ndash FUNDAMENTACcedilAtildeO TEOacuteRICA
21-Touch Screen
Um Touch-Screen que em portugues quer dizer ldquotela sensivel ao toquerdquo estatildeo disponiacuteveis
para uma grande variedade de uso desde pontos de vendas ateacute quiosques equipamentos meacutedicos
e industriais e sistemas de jogos As vantagens das soluccedilotildees touch incluem precisatildeo
transparecircncia e facilidade de uso e instalaccedilatildeo
O Touch-Screen usado neste projeto eacute o modelo de quatro fios resistivos AT4 da empresa
Elo TouchSystem (wwwelotouchcombr)
A tecnologia resistiva touch de quatro fios consta de uma tela de vidro coberto
uniformemente por camadas eletricamente condutivas e resistivas Uma lacircmina de poliester eacute
hermeticamente estendida sobre a parte superior do vidro e separada por minuacutesculos espaccediladores
(pontos) transparentes e isolantes A parte externa dessa lacircmina eacute uma peliacutecula duraacutevel e firme a
parte interna conteacutem uma camada condutiva Durante seu funcionamento uma corrente eleacutetrica
se propaga atraveacutes do touchscreen Ativada por um miacutenimo toque a peliacutecula 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 descriccedilatildeo das
camadas que compoem o Touch-Screen
Figura 1 ndash Touch-Screen final (Adaptado com as dimensotildees da aplicaccedilatildeo do editor de texto para validar este projeto)
15
Figura 2 ndash Mascara
(Adaptado do site elotouchcombr)
1 Camada soacutelida resistente a riscos (tipo anti-reflexiva) 3 Camada ITO
2 Peliacutecula de Poliester 4 Contatos de prata
Figura 3 ndash Vidro (Adaptado do site elotouchcombr)
1 Contatos de prata 3 Camada ITO(Transparent Conducting Oxide)
2 Pontos espaccediladores 4 Camada de Vidro
O circuito da controladora aplica uma tensatildeo atraveacutes da superfiacutecie do vidro As tensotildees no
ponto de contato constituem a representaccedilatildeo analoacutegica da superfiacutecie de toque A controladora
traduz essas tensotildees e transmite-os para o computador para processaacute-los
16
211 Placa e chip da Controladora do Touch-Screen
O COACh IIs (Controller On A Chip second generation) eacute compacto econocircmico chip
controlador para as aplicaccedilotildees com o Touch-Screen AT4 de 4 fios resistivos Opera em 33V e
em 5V O tamanho compacto baixa voltagem para operar e comsumo de energia eacute a melhor
soluccedilatildeo para OEMrsquos (original equipment manufacturer) pois pode contar com estabilidade
confiabilidade e desempenho de componentes com touch para aplicaccedilotildees embarcadas ou
aplicaccedilotildees portaacuteveis[elotouchcom] A Figura 4 ilustra o chip
Figura 4 ndash Chip COACh IIs (Adaptado do site elotouchcom)
A placa controladora que integra o touch-screen em outros moacutedulos possui as caracteriacutesticas
descritas na Tabela 1 e a Figura 5 ilustra a placa controladora
Tabela 1 ndash Caracteriacutesticas da placa controladora
Alimentaccedilatildeo 5 VDC nominal (45)
Interface-Serial (Serial RS-232) Full Duplex
Paracircmetros de Comunicaccedilatildeo Baud Rate 9600 and 19200 8 Bits de dados 1 bit de parada
Interface USB Quando estiver comunicando via USB a Serial estaraacute desabilitada E a placa natildeo eacute alimentada pela USB
Resoluccedilatildeo de toque 4096x4096 independente do tamanho da peliacutecula touch-screen
Tempo de conversatildeo do toque 10ms
17
Figura 5 ndash Placa Controladora (Adaptado do site elotouchcom)
212 Pinagens e descriccedilatildeo do Touch-Screen e da Placa Controladora
A Figura 6 ilusta os pinos do Touch-Screen que satildeo ligados ao conector da placa
controladora
Figura 6 ndash Pinos do Touch-Screen (Adaptado do site elotouchcom)
A Figura 7 mostra o conector da placa controladora e as respectivas pinagens
Figura 7 ndashConector para o touch da placa controladora (Adaptado do site elotouchcom)
18
A Tabela 2 descreve os pinos do conector para o touch da placa controladora
Tabela 2 ndash Pinagem do conector que faz interface entre o touch e a controladora
Pino
Nome do Sinal Desciccedilatildeo do sinal
1 X+ Entrada de tensatildeo positiva referente ao eixo X da tela 2 Y+ Entrada de tensatildeo positiva referente ao eixo Y da tela 3 X- Entrada de tensatildeo negativa referente ao eixo X da tela 4 Y- Entrada de tensatildeo negativa referente ao eixo Y da tela
22-Video
Eacute usado um monitor CRT convencional o qual apresentaraacute uma imagem criada atraveacutes as
bibliotecas graficas proprietarias da ALTERA esta imagem representa um menu com botoes e e
que atravez da manipulaccedilatildeo dos metodos das bibliotecas os resultados satildeo disponibilizados na
saida VGA do kit dependendo do botatildeo da imagem que for tocada atravez do touch alguma accedilatildeo
de alteraccedilatildeo na imagem seraacute atulalizada na saida vga
A Figura 8 ilustra o conector (fecircmea) da saiacuteda VGA do kit DE2
Figura 8 ndash Conector VGA femea do kit DE2
E na Tabela 3 a descriccedilatildeo de cada pino bem como sua direccedilatildeo
Tabela 3 ndash Descriccedilatildeo dos pinos da VGA
Pin
Name Dir Description
1 RED
Red Video (75 ohm 07 V p-p)
2 GREEN
Green Video (75 ohm 07 V p-p)
3 BLUE
Blue Video (75 ohm 07 V p-p)
4 ID2
Monitor ID Bit 2
5 GND
Ground
6 RGND
Red Ground
7 GGND
Green Ground
8 BGND
Blue Ground
19
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
20
23-Kit Altera Development amp Education Board 1 (Kit DE2)
231-Layout e Componentes
Uma fotografia do Kit DE2 eacute mostrado na Figura 9 onde se ve a aparencia do kit e as
indicaccedilotildees das localizaccedilatildeo dos componentes e conectores
Figura 9 ndash O kit DE2 (DE2_UserManualpdf 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 eacute listado os componentes fornecidos na placa do Kit DE2
Tabela 4 ndash Lista dos componentes do Kit DE2 (DE2_UserManualpdf contrado no cd do kit)
1 Altera Serial Configuration device ndash EPCS4
2 USB Blaster (on board) for programming and user API control both JTAG and Active 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
21
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
PS2 mousekeyboard connector
17
Two 40-pin Expansion Headers with diode protection
18
Powered by either a 75V DC adapter or a USB cable
232 Diagrama de Blocos do Kit DE2
Figura 10 ndash Diagrama de Blocos do KIT DE2 (DE2_UserManualpdf contrado no cd do kit)
22
A Tabela 5 mostra a informaccedilatildeo detalhada do Bloco Cyclone II FPGA 2C20 mostrado na
Figura 10
Tabela 5 ndash Detalhes do FPGA Cyclone II
FPGA Cyclone II 2C35
18752 LErsquos
52 M4K RAM blocks 240K total RAM bits 26 embedded multipliers 4 PLLrsquos 315 user IO pinrsquos FineLine BGA 484-pin package
A Tabela 6 mostra a informaccedilatildeo detalhada do Bloco do dispositivo de configuraccedilatildeo Serial e
circuito Usb-Blaster
Tabela 6 - Descriccedilatildeo das configuraccedilotildees que satildeo feitas atraveacutes da Serial e Usb-Blaster
Configuraccedilatildeo do dispositivo Serial e do Circuito Usb-Blaster Configuraccedilatildeo do dispositivo serial Altera EPCS4 On-Board Usb-Blaster
para Controle de API de usuaacuterio e programaccedilatildeo
JTAG e AS satildeo os modos do programaccedilatildeo suportados
A Tabela 7 mostra a descriccedilatildeo do Bloco da SRAM
Tabela 7 ndash Descriccedilatildeo do Bloco da SRAM
SRAM 512-Kbyte Static RAM memory chip Organizado em 256K x 16 bits Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 8 mostra a descriccedilatildeo do Bloco da SDRAM
Tabela 8 - Descriccedilatildeo do Bloco da SDRAM
SDRAM 8-Mbyte Single Data Rate Synchronous Dynamic RAM memory chip Organizado em 1M x 16 bits x 4 Banks Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
23
A Tabela 9 mostra a descriccedilatildeo do Bloco Memory Flash
Tabela 9 ndash Descriccedilatildeo da Memoria Flash
Memory Flash
4-Mbyte NAND Flash memory 8-bit data bus Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 10 mostra a descriccedilatildeo do Bloco SD card socket
Tabela 10 - Descriccedilatildeo do SD card socket
SD card socket Fornece o modo SPI para o acesso ao cartatildeo SD Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 11 mostra a descriccedilatildeo 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) Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 12 mostra a descriccedilatildeo dos Clock inputs
Tabela 12 - Descriccedilatildeo das entradas de Clocks
Clock inputs Oscilador de 50 Mhz Oscilador 27 Mhz Entrada para clock
externo
A Tabela 13 mostra a descriccedilatildeo do Aacuteudio CODEC
Tabela 13 - Descriccedilatildeo do Aacuteudio CODEC
Aacuteudio CODEC 4-Mbyte NAND Flash memory 8-bit data bus Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
24
A Tabela 14 mostra a descriccedilatildeo do Bloco VGA DAC
Tabela 14 ndash Descriccedilatildeo da saiacuteda VGA DAC
VGA
DAC
Usa 4 bits DAC para cada cor (RGB) Com 15 pinos no conector VGA convencional (fecircmea) Suporta uma resoluccedilatildeo de 640 x 480 com um refresh de ateacute 100Hz Pode ser usando com o FPGA Cyclone II para implementar um Encoder para TV
A Tabela 15 mostra a descriccedilatildeo do Bloco Serial Ports amp PS2
Tabela 15 ndash Descriccedilatildeo da Serial Port e PS2
Serial Ports amp PS2 Uma porta RS-232
Uma posta PS2 Um conector Serial para a porta do RS-232 Conector PS2 para conectar um mouse ou teclado ao DE2
A Tabela 16 mostra a descriccedilatildeo do Bloco dos Two 40 - pin expansion headers
Tabela 16 ndash Descriccedilatildeo dos conectores de expansatildeo de 40 pinos
Two 40 - pin expansion headers 72 pinos de IO do Clyclone II bem como 8 power e groundrsquos satildeo trazidos aos 2 conectores de expansatildeo de 40 pinos cada Os conectores de 40 pinos tambeacutem aceitam os cabos IDE de 40 pinos Proteccedilatildeo resistiva eacute fornecida
233 Endereccedilo das Pinagens dos Componentes usados no Projeto
2331 PushButtons
A Figura 11 mostra uma foto dos PushButtons do kit Key[30] a ordem eacute o button da
esquerda eacute o mais significativo e o mais de direita o menos signigicativo
Figura 11 ndash Os 4 PushButtons do DE2Key[30] (DE2_UserManualpdf contrado no cd do kit)
25
A Tabela 17 mostra os pinos da FPGA aos PushButtons
Tabela 17 ndash Pinos da FPGA referentes a cada PushButton (DE2_UserManualpdf contrado no cd do kit)
2332 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 ndash Modulo de displays de 7 segmentos (DE2_UserManualpdf encontrado no cd do kit)
Figura 13 ndash Index de um display (DE2_UserManualpdf encontrado no cd do
kit)
26
A Tabela 18 mostra os pinos da FPGA referente a cada segmento dos displays de 7
segmentos do modulo
Tabela 18 ndash Pinos da FPGA referentes a cada segmento dos Displays do modulo
27
2333 VGA
A Figura 14 esta em forma de onda da temporizaccedilatildeo horizontal e vertical da VGA do Kit
DE2
Figura 14 ndash Temporizaccedilatildeo horizontal da VGA
A Tabela 19 mostra a especificaccedilatildeo da temporizaccedilatildeo horizontal da VGA
Tabela 19 ndash Especificaccedilatildeo da temporizaccedilatildeo horizontal da VGA
A Tabela 20 mostra a especificaccedilatildeo da temporizaccedilatildeo vertical da VGA
Tabela 20 ndash Especificaccedilatildeo da temporizaccedilatildeo vertical da VGA
28
A Tabela 21 mostra os pinos da FPGA referente a cada pino de saida do conector VGA do
Kit DE2
Tabela 21 ndash Pinos da FPGA referentes a saiacuteda do Conector VGA do Kit
29
CAPIacuteTULO 3 ndash ESPECIFICACcedilAtildeO TECNICA
Nesse capiacutetulo tem-se uma descriccedilatildeo dos principais moacutedulos do projeto Satildeo eles Software
Firmware e Hardware
Inicialmente eacute apresentada a visatildeo geral do sistema e a descriccedilatildeo funcional de cada moacutedulo
A Figura 15 apresenta o diagrama em blocos do sistema
Figura 15 - Moacutedulos do projeto
31 Descriccedilatildeo de Software
O Software eacute uma das interfaces com o usuaacuterio
312 Diagrama de Blocos do Software
30
312 Modulo do PC
Neste modulo eacute 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
32 Descriccedilatildeo de Hardware
321 Modulo Touch-Screen
O usuaacuterio ao tocar o Touch-Screen (AT4 touch-screen resistivo de 4 fios) ocorre uma
mudanccedila nas tensotildees do eixo X e do eixo Y devido a resistecircncia gerada pelo ao toque do usuaacuterio
em uma determinada regiatildeo da tela essa mudanccedila de tensatildeo eacute interpretada pela placa
controladora COACh IIs do Touch-Screen e enviada via serial para o Kit DE2 que interpretaraacute
os dados e faraacute o devido processamento
322 Modulo FPGA
O Hardware corresponde tanto aos componentes fiacutesicos presentes no kit de desenvolvimento
quanto aos componentes que seratildeo configurados na FPGA Satildeo diversos componentes escritos
em linguagem de descriccedilatildeo de hardware
No um dos principais componentes de hardware utilizado modulo eacute o processador NIOS II
para se ter uma ideacuteia o processador NIOS II eacute capaz gerenciar os dispositivos externos a FPGA
utilizando controladores de memoacuterias controladores de VGA entre outros E tambeacutem eacute possiacutevel
o proacuteprio usuaacuterio criar seu componente para ser controlado atraveacutes do processador NIOS
II(Altera 2007)
31
3221 O Processador NIOS II
Atraveacutes do software SOPC da ALTERA foi possiacutevel montar a arquitetura de hardware do
processador NIOS II bem como especificar as interfaces que ele iraacute controlar atraveacutes do firmwar
feito no NIOS II IDE
Na Tabela 22 eacute no campo Module Name onde estatildeo os moacutedulos que foram usados para
definir o processador NIOS II e os componentes externos que ele iraacute controlar e no campo
Description esta a descriccedilatildeo do nome de cada modulo
Tabela 22 ndash Moacutedulos dos componentes e suas descriccedilotildees
3222 Firmware para o NIOS II
O Firmware foi feito utilizando a linguagem C utilizando a ferramenta NIOS II IDE Atraveacutes
do firmware eacute possiacutevel 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 graacuteficas para controlar a vga e serial e
USB-BLASTER eacute encarregado em enviar todo o desenvolvimento do projeto para o Kit DE2
323 Configuraccedilatildeo da FPGA via JTAG
Depois de configurado o hardware do processador NIOS II eacute preciso fazer o load do NIOS
para a FPGA e para que isso aconteccedila eacute necessaacuterio que atraveacutes do software Quartus II da
ALTERA utilizando a interface JTAG utilizando o cabo USB-BLASTER
32
324 Comunicaccedilatildeo entre FPGA e o Touch-Screen
Para comunicaccedilatildeo entre dos dois hardwares Touch-Screen e o FPGA eacute utilizando uma
interface serial RS-232
A configuraccedilatildeo da interface eacute a seguinte
Bits de dados 8
Taxa de dados 5600(bps)
A Tabela 23 mostra a relaccedilatildeo dos pinos da porta serial com os pinos da FPGA
Tabela 23 ndash Pinos da FPGA referente agrave pinagem da interface Serial
E a Figura 16 mostra o desenho correspondente da interface serial
Figura 16 ndash Conector da interface serial do kit DE2
33 Especificaccedilatildeo de Validaccedilatildeo
331 Validaccedilatildeo de Hardware
A validade do hardware se faz com a anaacutelise de todos os moacutedulos envolvidos
As necessidades satildeo estudadas os componentes externos ao FPGA satildeo selecionados de
acordo o processador nios e os controladores dos moacutedulos externos como VGA e SERIAL satildeo
enviados ao modulo FPGA
Os resultados obtidos na tela do monitor e a recepccedilatildeo dos dados pela serial comprovam o
funcionamento do modulo de comunicaccedilatildeo da serial e vga
33
332 Validaccedilatildeo de Software
A validaccedilatildeo do controle da interface touch-screen faz-se a partir dos resultados obtidos das
funccedilotildees escritas na linguagem C especificas para cada componente externos ao FPGA essas
funccedilotildees tornam possiacuteveis que o processador NIOS na FPGA tenha total controle sobre os
moacutedulos externos como a VGA e a SERIAL
As funccedilotildees que satildeo utilizadas para validar o funcionamento do software satildeo para a VGA os
meacutetodos de controle (alt_up_vga_draw_char_1b( char int x int y)) e (alt_up_vga_draw_pixel(
color x y))
O meacutetodo (alt_up_vga_draw_char_1b( char int x int y)) tem a funcionalidade de escrever
caracteres na tela do monitor e a descriccedilatildeo da sua assinatura ldquoparacircmetrosrdquo eacute a seguinte char eacute o
caractere que eacute escrito em alguma posiccedilatildeo na tela int x eacute a posiccedilatildeo x da tela do monitor e int y eacute
a posiccedilatildeo y da tela do monitor sendo que a resoluccedilatildeo utilizada eacute de 80x60 ou seja x natildeo pode
passar de 80 e y natildeo pode passar de 60
O meacutetodo (alt_up_vga_draw_pixel( color int x int y)) tem a funcionalidade de ldquopintarrdquo o
fundo da tela do monitor o meacutetodo de imprimir caracteres tem preferecircncia sobre este meacutetodo ou
seja os caracteres sempre ficam sob a aacuterea pintada ou seja o caractere sempre ficara em cima da
aacuterea pintada a descriccedilatildeo da assinatura deste meacutetodo eacute a seguinte color eacute a valor da cor que pode
ser um valor inteiro ou em hexadecimal para definir uma cor de alguma posiccedilatildeo da tela definidos
pelos paracircmetros x e y
As funccedilotildees que satildeo utilizadas para validar o funcionamento do software satildeo para a Serial os
meacutetodos de controle de transmissatildeo (fread( packet sizeof(packet) 1 serial_fp )) a funccedilatildeo
fread eacute utilizada para a leitura via interrupccedilatildeo dos pacotes que a controladora envia para o kit
DE2 as assinaturas do meacutetodo fread tem a seguinte composiccedilatildeo packet eacute a estrutura do pacote
que seraacute recebido o sizeof(packet) eacute o diz qual eacute o tamanho exato da estrutura criada e o
serial_fp eacute o handle da porta serial
Uma observaccedilatildeo muito importante eacute que para o total funcionamento eacute necessaacuterio 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 rs232h e rs232c onde estatildeo os meacutetodos de
controle da SERIAL e alt_up_vgah alt_up_vgac onde estatildeo os meacutetodos de controle para a
VGA Para tornar estes meacutetodos acessiacuteveis eacute preciso fazer os includes dos arquivos h no
projeto da NIOS IDE
A figura 17 mostra a utilizaccedilatildeo dos meacutetodos (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
34
int y)) utlizado para escrever os caracteres lsquoarsquo e lsquobrsquo dentro de um grupo de pixel previamente
pintado a (alt_up_vga_draw_pixel( color int x int y)) natildeo pinta um pixel de cada vez e sim
um bloco de 8x8 pixels
Figura 17 - Tela para a validaccedilatildeo dos testes com as bibliotecas graacuteficas do componente VGA
34 Recursos Necessaacuterios
A Tabela 24 apresenta os ambientes de desenvolvimento e ferramentas de software utilizadas
e na Tabela 25 as linguagens necessaacuterias Estas ferramentas foram utilizadas em ambiente
Windows Xp
Tabela 24 - Ferramentas de Desenvolvimentos e Ambientes
Software Para que foi Utilizado
Quartus II Para a definiccedilatildeo de qual o modelo de FPGA utilizado compilaccedilatildeo e simulaccedilatildeo e envio Load do NIOS para FPGA
SOPC Para definiccedilatildeo da do processador NIOS II e com quais componentes externos ele ira interagir atraveacutes dos controladores dos respectivos componentes
NIOS II IDE Para implementaccedilatildeo do firmware do processador NIOS II utilizando a linguagem em C
35
Borland C++ Builder Para desenvolvimento de ima interface de comunicaccedilatildeo via caboUSB-
BLASTER para o envio de imagem para o kit
Tabela 25 ndash Linguagens de programaccedilatildeo utilizadas
Linguagem Ferramenta C++ Borland C++ Builder VerilogVHDL Quartus II C NIOS II IDE
35 Viabilidade Teacutecnico-Econocircmica
O valor do projeto esta descrito na Tabela 26
Tabela 26 ndash Relaccedilatildeo dos Custos
DESCRICcedilAtildeO CUSTO APROXIMADO (R$) COMPONENTES ELETROcircNICOS 50000 1 Kit DE2 Cyclone II 35000 1 Monitor de Computador 35000 HORAS TRABALHADAS (400 horas) 750000 CUSTO TOTAL APROXIMADO (R$) 870000
36 Cronograma do Projeto
A tabela 27 contem as informaccedilotildees do cronograma do projeto
Tabela 27 ndash Cronograma de datas e entregas do projeto
Data Atividade a ser apresentada 050307 Entrega das propostas de projeto para avaliaccedilatildeo do colegiado 020407 Entrega das especificaccedilotildees teacutecnicas do projeto aprovado 110607 Entrega do projeto (monografia) e dos testes preliminares do mesmo 060807 Apresentaccedilatildeo preacutevia da implementaccedilatildeo do projeto especificado 011007 Apresentaccedilatildeo do projeto implementado
Qualificaccedilatildeo para a fase final 291007 Segunda apresentaccedilatildeo do projeto implementado para os que natildeo o fizeram no
dia 011006 com decreacutescimo da nota Qualificaccedilatildeo para a fase final
051107 Entrega da documentaccedilatildeo completa em espiral para a banca examinadora em 3 vias contendo a monografia manual teacutecnico manual do usuaacuterio e artigo cientiacutefico
261107 Defesa formal dos projetos com apresentaccedilatildeo oral para a banca examinadora 101207 Entrega da documentaccedilatildeo completa revisada e corrigida encadernada no
padratildeo da biblioteca (capa dura) em duas vias contendo a monografia manual teacutecnico manual do usuaacuterio e artigo cientiacutefico Entrega do CD contendo no formato WEB todo o conteuacutedo dos manuais
36
CAPIacuteTULO 4 ndash ESPECIFICACcedilAtildeO TECNICA
41 Requisitos Miacutenimos
Os requisitos miacutenimos de Hardware satildeo
Funcionamento das interfaces Serial e USB-Blaster
Funcionamento do Kit DE2
PC
Os requisitos miacutenimos de Software
Windows Xp
Quartus II
SOPC
NIOS II IDE
42 Projeto de Hardware
O hardware utilizado nesse projeto inclui componentes presentes na Placa de
Desenvolvimento Nios II - ediccedilatildeo DE2 Cyclone II EP2C35 e principalmente o hardware que seraacute
configurado na FPGA escrito em linguagem de descriccedilatildeo de hardware (HDL)
O um dos principais blocos de hardware eacute o processador NIOS II o Avalon Bus e os
controladores de componentes externos a FPGA e de comunicaccedilatildeo presentes no Kit
37
O software embarcado (firmware) estaraacute rodando nessa arquitetura Eacute uma arquitetura
completa construiacuteda com a ferramenta SOPC Builder da Altera A Figura 18 representa em
blocos os principais componentes dessa arquitetura
Figura 18 ndash Representaccedilatildeo em blocos do hardware do NIOS II
421 Funcatildeo do Touch-Screen
Outro bloco importante eacute o do Touch-Screen esta tela sensiacutevel ao toque pois como esta tela
trabalha com resistecircncia ao ser tocado em uma determinada regiatildeo uma resistecircncia eacute gerada e a
tensatildeo de saiacuteda eacute modificada a alimentaccedilatildeo desta placa eacute proveniente de sua placa controladora
a mesma placa que recebe a tensatildeo de saiacuteda modificada de acordo com a regiatildeo tocada na tela
Para verificar as caracteriacutesticas detalhadas do Touch-Screen e sua placa controlador favor ver
o Capitulo 2
422 Monitor e VGA
O Monitor inicialmente tem apenas o desenho de um botatildeo que ao ser tocado via touch
mudara a cor de toda a tela A imagem exibida no monitor tem uma resoluccedilatildeo de
38
Protoacutetipo das telas para os testes esta na Figura 19 a tela verde quando a touch natildeo eacute tocando
na regiatildeo do botatildeo de OK quando o botatildeo de OK for tocado a tela do monitor mudara de cor
ficando azul
Figura 19 ndash Tela do monitor
No Capitulo 2 estatildeo todas as caracteriacutesticas da pinagem e do conector VGA
423 Comunicaccedilatildeo serial
Entre a placa controladora do Touch-Screen e o FPGA existe uma comunicaccedilatildeo 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 manipulaccedilatildeo da imagem que eacute
mostrada no monitor
No capitulo 2 estatildeo das descriccedilotildees dos pinos e do conector da comunicaccedilatildeo Serial
O pacote serial que eacute transmitido pela placa controladora do touch-screen possui 10 bytes de
comprimento e segue a seguinte sequumlecircncia de envio
[55] [54] [] [] [] [] [] [] [] []
Sequumlecircncia dos bytes
Os dois primeiros bytes identificam o Header do pacote
O terceiro byte eacute 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 agrave posiccedilatildeo do eixo x onde a tela foi tocada
O sexto e o seacutetimo byte correspondem a posiccedilatildeo do eixo y onde a tele foi tocada
O restante os bytes identificam o tail do pacote recepcionado pelo kit DE2
39
424 Comunicaccedilatildeo USB-Blaster
Essencial para envio do projeto desenvolvido para o kit DE2 tambeacutem muito utilizado para o
debug deste projeto
435 Memoacuteria SDRAM
A memoacuteria utilizada para armazenar grandes quantidades de dados eacute a SDRAM (ver detalhes
no Capitulo 2)
Essa memoacuteria eacute muito raacutepida serviu muito bem para armazenar o firmware deste projeto
pois tem o tempo acesso ideal para ler as instruccedilotildees que utilizaram a VGA e tambeacutem eacute raacutepida o
suficiente para fazer a leitura dos dados e disponibilizar na saiacuteda VGA do kit
426 Memoacuteria FLASH
Eacute onde seraacute armazenado o firmware possui espaccedilo suficiente para isso 4MB e uma memoacuteria
mais lenta e por isso natildeo foi usada para armazenar dados para serem jogados na vga do Kit
43 Software
431 Software (Firmware)
O software tem de funccedilatildeo de utilizar as bibliotecas das controladoras dos componentes
externos a fim de controlar estes componentes de acordo com o necessaacuterio para atender o
objetivo do projeto
Ou seja uma tela inicial eacute apresentada e o usuaacuterio ao tocar na nela o kit recebe um pacote via
serial e interpreta a posiccedilatildeo da tela em que foi tocado e logo em seguida envia o resultado deste
toque para o monitor
432 Objetivos
O usuaacuterio 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 accedilatildeo de acordo com a posiccedilatildeo da tela
tocada alterando assim a imagem anterior com o resultado do toque
Interpretar o toque de usuaacuterio na tela touch-screen recepccedilatildeo do pacote via serial da placa
controladora do touch-screen tratamento do pacote e interpretaccedilatildeo das coordenadas x e y do
40
toque Realizaccedilatildeo de alguma accedilatildeo que resultara na alteraccedilatildeo da imagem da tela atual de acordo
com a funccedilatildeo em que as coordenadas foram previamente definidas para o que deve ser feito
432 Funccedilotildees
A Tabela 28 tem as principais funccedilotildees que foram implementadas para o sistema
Tabela 28 ndash Funccedilotildees do sistema firmware
FUNCcedilOtildeES Tela de um pequeno editor de texto Tratamento do sinal recebido da serial devido a um toque na tela Interpretaccedilatildeo do pacote serial e transfomaccedilatildeo para coordenadas x e y Transformaccedilatildeo das posiccedilotildees do toque na tela em alguma accedilatildeo enviando o resultado para a VGA Imagem final disponibilizada ao usuaacuterio de acordo com o toque que foi dado na tela Controlar dispositivos cada dispositivo pode ser controlado pelo seu respectivo contrador atraveacutes de seu endereccedilo base VGA SERIAL USB-BLASTER IO(Leds Switches etc) do Kit DE2
O Firmware do processador NIOS II eacute que realizaraacute a integraccedilatildeo entre hardware com
hardware Com o firmware controlando o NIOS II eacute possiacutevel interagir com os dispositivos
externos a FPGA Tornando possiacutevel a integraccedilatildeo da FPGA com a peliacutecula touch-screen e um
monitor sem a ajuda de um PC a uacutenica ajuda do pc seria para enviar dados de uma imagem para
o Kit DE2
44 Validaccedilatildeo e Testes
Inicialmente os moacutedulos da VGA e comunicaccedilatildeo SERIAL natildeo estavam funicionando
apenas o devido agrave fraca documentaccedilatildeo sobre o kit DE2 foi possiacutevel apenas fazer testes com o
Processador NIOS II pois sobre este existem bastantes documentos e exemplos que podem ser
utilizados
Nesta primeira parte foi possiacutevel testar o NIOS II para controlar o display bototildees e switchs
do kit DE2
Com o NIOS II funcionando completamente foi necessaacuterio porta-lo para o kit DE2 o que foi
simples pois como sabemos esses kits satildeo portaacuteveis entre si apenas mudando a pinagem e a
capacidade da FPGA
Com o Kit DE2 foi possiacutevel fazer os testes necessaacuterios com a comunicaccedilatildeo serial
inicialmente testada via terminal conversando diretamente com o kit foi possiacutevel fazer o
seguinte teste os caracteres que eram entrados via teclado chegavam ao kit via serial e o o
41
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 comdumpexe que eacute facilmente encontrado pelas ferramentas
de pesquisa da web e tambeacutem existem vario outros programas como este e o comdump eacute
utilizado para debug da porta serial do pc conectado diretamente na placa controladora do touch-
screen e foi a peccedila chave para o entendimento do pacote enviado pela placa controladora
Figura 20 - Cumdumpexe programa de debug da porta serial
A explicaccedilatildeo de cada byte do pacote esta explicado no item 423
Apos o entendimento completo da transmissatildeo 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 natildeo 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 ateacute o momento em que
foi testado os meacutetodos proprietaacuterios da Altera para fazer a VGA funcionar os meacutetodos esses
implementados em C
A figura 21 onde contem o teste baacutesico feito que foi a chave principal para o sucesso deste
projeto
42
Como dito no item 332 do projeto foram utilizados as funccedilotildees da controladora VGA esses
meacutetodos 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 eacute utilizado o meacutetodo alt_up_vga_draw_pixel( color int
x int y) onde color eacute a cor do bloco de pixels e x e y satildeo as coordenadas da tela onde o bloco
que seraacute pintado
Para escrever um caractere sobre um bloco de pixels pintado eacute utilizado a funccedilatildeo
alt_up_vga_draw_char_1b( char int x int y) onde char eacute o caractere a ser impresso e x e y satildeo
as coordenadas da tela onde os o caractere eacute impresso
Figura 21 - Teste baisco do funcionamento do componente VGA do kit DE2
43
CAPIacuteTULO 5 ndash VALIDACcedilAtildeO E RESULTADOS
Os resultados foram os melhores possiacuteveis pois com a utilizaccedilatildeo dos IP CORE
ldquocontroladorasrdquo dos componentes externos como VGA e SERIAL e seus meacutetodos de para
controle eacute possiacutevel controlar facilmente esses moacutedulos atraveacutes do firmware desenvolvido para o
processador NIOS que consegue realizar operaccedilotildees transparentes acessando dos meacutetodos de
controle dos moacutedulos
Apos os testes baacutesicos 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 baacutesico de editor de texto
A figura 22 mostra um teste utilizando os meacutetodos de controle disponiacuteveis para o IP CORE
da VGA para primeiramente fazer o menu da aplicaccedilatildeo desenvolvido em na linguagem C
Figura 22 ndash Menu baacutesico do editor de texto
Para desenhar o menu da figura acima foi utilizado os meacutetodos proprietaacuterios de controle da
VGA citados no capitulo 4 e tambeacutem estruturas de repeticcedilatildeo para que a tela fosse varrida e os
pixels desenhados nos respectivos lugares da tela bem como os caracteres
Na figura 23 eacute definida a seguinte estrutura em C para representar de um botatildeo
Figura 23 - Estrutura em C para representar um botatildeo
44
A figura 24 eacute a declaraccedilatildeo dos bototildees que seratildeo utilizados pelo aplicativo editor de texto
para comprovar o funcionamento do controle da interface touch-screen
Apenas o que esta dentro da marcaccedilatildeo quadrada representa os bototildees do menu da figura 23
e o restante satildeo os bototildees do teclado do editor de texto
Figura 24 - Declaraccedilatildeo dos bototildees do menu
45
A figura 25 representa o meacutetodo drawnButtonUp responsaacutevel por desenhar os bototildees na tela
de acordo com as posiccedilotildees em que foram declarados os bototildees deste meacutetodo satildeo desenhados
para parecerem que estatildeo ldquolevantadosrdquo e natildeo pressionados
Note que foram utilizados os meacutetodos proprietaacuterios de controle da VGA
alt_up_vga_draw_pixel pra pitar os pixels e alt_up_vga_draw_char_b1 para desenhar caracteres
como jaacute foi especificado no item 44 do projeto
Figura 25 ndash Meacutetodo drawButtonUp
46
O meacutetodo que desenha o caption do botatildeo se chama drawButtonText desenha os caracteres
em cima dos bototildees natildeo importa se o botatildeo esta pressionado ou natildeo
A figura 26 mostra como este meacutetodo foi implementado e ele eacute chamado no final de cada
meacutetodo onde algum tipo de botatildeo eacute desenhado quando o meacutetodo que desenha o botatildeo normal
quanto o pressionado e ateacute mesmo o do teclado
Figura 26 ndash Meacutetodo que escreve o caption de cada botatildeo
47
A figura 27 mostra o meacutetodo drawButtonDown que desenha o botatildeo pressionado ou seja
quando o usuaacuterio pressiona a regiatildeo correspondente a um botatildeo do menu no touch-screen o
mesmo redesenharaacute o botatildeo parecendo um efeito de botatildeo afundado note que no final do
meacutetodo novamente eacute chamado o meacutetodo drawButtonText que reescreveraacute o caption do botatildeo
como mostra o meacutetodo da figura 26 e esta ilustrado na figura 28
Figura 27 ndash Meacutetodo que desenha o botatildeo pressionado
48
Dependendo da aacuterea do menu que o usuaacuterio pressionar no touch-screen causar o efeito de
pressionado como mostra a figura 28
Figura 28 ndash Efeito do botatildeo de menu apertado
Na figura 29 eacute a representaccedilatildeo de quando a aacuterea correspondente ao botatildeo ldquoamarelordquo eacute
pressionada
Apos estes testes baacutesicos comprovando o funcionamento da interface graacutefica para o usuaacuterio
foi definido o restante dos componentes da tela que eacute constituiacutedo de um prompt e um teclado
qwerty que foi essencial para comprovar o perfeito funcionamento do controle da interface
touch-screen
49
51 Interface Grafica Final
A figura 29 mostra a interface final que o usuaacuterio teraacute para poder verificar o funcionamento
do controle da interface touch-screen
Figura 29 ndash Interface final touch-screen do usuaacuterio
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
511 Descriccedilatildeo do editor de texto
O menu possui 4 botoes cada um com sua respectiva funcionalidade quando o usuario
pressiona a area do botatildeo ldquoapagarrdquo uma vez entatildeo um carectere do prompt eacute apagado Quando eacute
precionado a area correspondente ao botatildeo ldquoResetrdquo todo o conteudo do prompt seraacute apagado e o
plano de fundo retornaraacute a cor branca Quando o botatildeo ldquoamarelordquo eacute pressionado o fundo da tela
passa a ser amarelo e o mesmo acontece se o usuario precionar o botatildeo verde tornando o cor de
fundo verde
50
O teclado possui 29 teclas sendo duas delas que equivalem ao ENTRA ldquoENTrdquo e ao
SPACE ldquoSPCrdquo Quando o usuario pressiona a area correspondente a algum botatildeo do teclado o
mesmo muda sua cor para azul e o seu caractere eacute disponibilizado no prompt
Essas funcionalidades nada mais satildeo do que um bom exemplo de como funciona
corretamente o controle da interface touch-screen
52 Prompt e o Teclado
A estrutura feita na linguagem C que define o prompt da figura 28 esta representado na
figura 30
Figura 30 ndash Estrutura em C para representar o prompt
A figura 31 mostra o metodo drawPrompt utilizado para desenhar na tela o prompt
Figura 31 ndash Meacutetodo que desenha o prompt
51
A estrutura do teclado eacute a mesma utilizada pela figura 23 e tambem eacute criado satildeo
inicializados na figura 24
O restante as implementaccedilotildees estatildeo disponiveis no cd deste documento
Quando algum botatildeo do teclado eacute pressionado sua cor muda para azul e sua letra
correspondente eacute escrita o prompt
A figura 32 ilustra quando o usuaacuterio aperta a letra lsquotrsquo na peliacutecula touch-screen
Figura 32 - Teste do prompt e o teclado
52
53 Controle da Interface Touch-Screen
Depois do todos os testes com o processador NIOS e a integraccedilatildeo do mesmo com os
moacutedulos externos como a porta SERIAL e a saiacuteda VGA eacute possiacutevel utilizando o touch-screen
criar uma interface amigaacutevel e faacutecil de usar para o usuaacuterio utilizando um firmware capaz de
interpretar os sinais via serial vindo da controladora do touch ao detectar que um toque foi dado
pelo usuaacuterio e realizar algumas accedilotildees que neste caso se comportam como um editor de texto
baacutesico
A figura 33 mostra como foi validado este projeto e seus moacutedulos controlando uma
interface touch-screen para chegar no resultado abaixo digitado pelo usuaacuterio comprovando o
funcionamento e viabilidade deste projeto
Figura 33 ndash 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 mudanccedilas podendo ser alterado rapidamente o tipo de
aplicaccedilatildeo ou integrado rapidamente com outro projeto
53
CAPIacuteTULO 6 - CONCLUSAtildeO
Uma das principais dificuldades no desenvolvimento deste projeto foi fazer o levantamento
da documentaccedilatildeo sobre o processador NIOS e os moacutedulos externos a FPGA do Kit DE2 Como
natildeo foi feito algum projeto antes que utilizasse a interface VGA e a SERIAL do Kit DE2 levou-
se muito tempo ateacute conseguir adquirir e ordenar o conhecimento que foi sendo adquirido ateacute
conseguir dar os primeiros passos e realizar os primeiros testes com a VGA e a SERIAL Outro
grande obstaacuteculo foi ter de descobrir que para que o NIOS controlasse os moacutedulos externos a
FGPA fosse necessaacuterio copiar os arquivos c e h dos respectivos componente para dentro do
projeto
Mas depois de todos os problemas com os moacutedulos externos solucionados cada modulo do
projeto foi sendo desenvolvido separadamente ateacute seu total funcionamento Natildeo tive dificuldades
com a linguagem da programaccedilatildeo pois o Firmware do processador NIOS eacute o C a qual mais tive
contato na faculdade
Outro desafio foi fazer a peliacutecula 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
peliacutecula natildeo 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 possiacutevel
comeccedilar a fazer os testes necessaacuterios para prosseguir com o projeto aprender como o a peliacutecula
identifica um toque e manda este sinal para a controladora e a controladora transforma este sinal
em um sinal serial que eacute 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 accedilotildees
que as coordenadas jaacute estatildeo previamente calibradas no firmware para fazer bem como mudar de
cor a tela fazer o efeito de um botatildeo subindo e descendo etc
Varias vezes o projeto parou de funcionar entatildeo 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 memoacuteria abundante etc uma das
facilidades eacute a faacutecil alteraccedilatildeo do projeto podendo ser integrado a outro ou ateacute mesmo alterado
para realizar outros tipos de accedilotildees com o touch-screen
Existem vaacuterios melhoramentos que podem ser executados no projeto um deles eacute tentar
interpretar de uma maneira diferente os valores do eixo y pois do jeito que esta a resoluccedilatildeo do
eixo y esta muito baixa dificultando o reconhecimento de toques em aacutereas pequenas Talvez a
inclusatildeo de mais alguns bytes no pacote de leitura da serial resolva o problema
54
Uma ideacuteia para um proacuteximo projeto que use a interface touch-screen poderia ser a
integraccedilatildeo com o projeto do nosso colega Roberto Junqueira ou a desenvolvimento de uma
placa controladora para o touch-screen
Este trabalho eacute uma modesta contribuiccedilatildeo para o uso de FPGAs e do processador embarcado
NIOS implementado em VHDL pela Altera que acredito que vai abrir vaacuterios caminhos pois
com este projeto alguns caminhos ficaram mais faacuteceis de percorrer daqui para a frente
55
CAPIacuteTULO 7 - REFEREcircNCIAS BIBLIOGRAacuteFICAS
AMORE Roberto drsquo VHDL Descriccedilatildeo e Sintese de Circuitos Rio de Janeiro ed LTC
2005
Elotouch Touch-Screen e Controladora Descriccedilatildeo do funcionamento e descriccedilatildeo
tecnologia Touch-Screen lthttpwwwelotouchcombrgt Acesso em fevereiro de 2007
ALTERA University Program IP Cores Instalaccedilatildeo de IP Cores e referencias sobre os
componentes dos kits DE1 e DE2 Disponivel em lthttpwwwalteracomeducationunivip-
coresunv-ip-coreshtmlgt Acesso em abril de 2007
ALTERA NIOS II Documentaccedilatildeo sobre o pprocessador embracado NIO II Disponivel
em lthttpwwwalteracomproductsipprocessorsipm-indexjspgt Acesso em Abril de 2007
ALTERA Development amp Education Board 2 (DE2) Manual do usuario Disponivel no
de que acompanha o Kit DE2 ltDE2_user_manualDE2_UserManualpdfgt Acesso em
fevereiro de 2007
LISTA DE SIacuteMBOLOS
- ohm
MHz - Mega Hertz
Hz - Hertz
V - Volts
11
12
CAPIacuteTULO 1 - INTRODUCcedilAtildeO
A computaccedilatildeo reconfiguraacutevel vem sendo utilizada em larga escala para projetos de
hardware que necessitem de um grande poder de processamento Neste campo um dispositivo
muito utilizado eacute a FPGA (Field-Programmable Gate Array)
As FPGArsquos satildeo circuitos de hardware que podem ser modificados praticamente em
qualquer momento durante o uso As FPGArsquos consistem em array de blocos loacutegicos
configuraacuteveis que implementam funccedilotildees loacutegicas 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 mudanccedilas raacutepidas no hardware
Em microprocessadores de uso geral se tem um hardware que natildeo pode ser modificado fixo
mas no FPGA essa mudanccedila eacute bastante simples e raacutepida feita via software
Este projeto teve sua proposta lanccedilada a partir da ideacuteia concedida pelo Prof Valfredo Pilla
Junior de interface Touch-Screen
O projeto eacute sobre o controle de uma interface com uma peliacutecula Touch-Screen onde eacute
possiacutevel que o usuaacuterio ao tocar uma peliacutecula sensiacutevel ao toque o sistema desenvolvido possa
realizar algum tipo de alteraccedilatildeo na imagem apresentada em um monitor que se dispotildee atraacutes do
Touch-Screen
O objetivo foi desenvolver um sistema capaz de receber e manipular a aquisiccedilatildeo dos dados
gerados pela placa controladora atraveacutes toque na peliacutecula Touch-Screen que estaraacute na frente da
tela de um monitor converter estes dados realizar uma alteraccedilatildeo na tela inicialmente
apresentada e disponibilizar o resultado da alteraccedilatildeo atualizando a tela do monitor
O hardware do sistema eacute basicamente composto na parte da aquisiccedilatildeo por uma peliacutecula
Touch-Screen e uma placa controladora da proacutepria peliacutecula recepccedilatildeo e processamentos feitos no
Kit DE2 (Development amp Education 1) Board que enviara o resultado atraveacutes da saiacuteda VGA
(Viacutedeo Graphics Array) para um monitor CRT (Catodic Ray tube)
Este sistema eacute justificado pois as interfaces intuitivas com telas Touch-Screen satildeo
utilizadas em uma ampla gama de mercados
Por exemplo
Comeacutercio Realizar um atendimento de forma raacutepida e faacutecil eacute objetivo da automaccedilatildeo 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 usuaacuteriomaacutequina de grandes complexos
equipamentos devido agrave eliminaccedilatildeo do teclado do mouse e de outros perifeacutericos de um ambiente
industrial evitando distraccedilotildees em um ambientes geralmente muito agressivo
13
Medicina Os sistemas que usam touch simplificam os sofisticados sistemas meacutedicos reduzem as
possibilidades de erros e proporcionam um mecanismo de entrada de dados mais eficiente que
qualquer outro perifeacuterico
Educaccedilatildeo Hoje o touch esta se tornando a interface de treinamento mais popular em todas as
fases do aprendizado desde a preacute escola jardim de infacircncia e preparaccedilatildeo profissional eliminando
a frustraccedilotildees de crianccedilas ao utilizar o mouse ou teclado
E aplicaccedilotildees com o objetivo de diminuir o tempo de resposta aumentar a produtividade
proporcionar produtos e serviccedilos de maior qualidade e aumentar os lucros Por exemplo realizar
um atendimento de forma raacutepida e faacutecil eacute objetivo da automaccedilatildeo 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 serviccedilos intuitivos e interativos de uma interface
Touch proporcionam confiabilidade ao cliente que eacute exatamente o que o seu negoacutecio precisa para
o crescimento e o sucesso em longo prazo (elotouch 2007)
Este projeto no futuro poderaacute ser integrado com outro projeto formando assim um sistema
parecido com um PDA (Personal Digital Assistant)
14
CAPIacuteTULO 2 ndash FUNDAMENTACcedilAtildeO TEOacuteRICA
21-Touch Screen
Um Touch-Screen que em portugues quer dizer ldquotela sensivel ao toquerdquo estatildeo disponiacuteveis
para uma grande variedade de uso desde pontos de vendas ateacute quiosques equipamentos meacutedicos
e industriais e sistemas de jogos As vantagens das soluccedilotildees touch incluem precisatildeo
transparecircncia e facilidade de uso e instalaccedilatildeo
O Touch-Screen usado neste projeto eacute o modelo de quatro fios resistivos AT4 da empresa
Elo TouchSystem (wwwelotouchcombr)
A tecnologia resistiva touch de quatro fios consta de uma tela de vidro coberto
uniformemente por camadas eletricamente condutivas e resistivas Uma lacircmina de poliester eacute
hermeticamente estendida sobre a parte superior do vidro e separada por minuacutesculos espaccediladores
(pontos) transparentes e isolantes A parte externa dessa lacircmina eacute uma peliacutecula duraacutevel e firme a
parte interna conteacutem uma camada condutiva Durante seu funcionamento uma corrente eleacutetrica
se propaga atraveacutes do touchscreen Ativada por um miacutenimo toque a peliacutecula 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 descriccedilatildeo das
camadas que compoem o Touch-Screen
Figura 1 ndash Touch-Screen final (Adaptado com as dimensotildees da aplicaccedilatildeo do editor de texto para validar este projeto)
15
Figura 2 ndash Mascara
(Adaptado do site elotouchcombr)
1 Camada soacutelida resistente a riscos (tipo anti-reflexiva) 3 Camada ITO
2 Peliacutecula de Poliester 4 Contatos de prata
Figura 3 ndash Vidro (Adaptado do site elotouchcombr)
1 Contatos de prata 3 Camada ITO(Transparent Conducting Oxide)
2 Pontos espaccediladores 4 Camada de Vidro
O circuito da controladora aplica uma tensatildeo atraveacutes da superfiacutecie do vidro As tensotildees no
ponto de contato constituem a representaccedilatildeo analoacutegica da superfiacutecie de toque A controladora
traduz essas tensotildees e transmite-os para o computador para processaacute-los
16
211 Placa e chip da Controladora do Touch-Screen
O COACh IIs (Controller On A Chip second generation) eacute compacto econocircmico chip
controlador para as aplicaccedilotildees com o Touch-Screen AT4 de 4 fios resistivos Opera em 33V e
em 5V O tamanho compacto baixa voltagem para operar e comsumo de energia eacute a melhor
soluccedilatildeo para OEMrsquos (original equipment manufacturer) pois pode contar com estabilidade
confiabilidade e desempenho de componentes com touch para aplicaccedilotildees embarcadas ou
aplicaccedilotildees portaacuteveis[elotouchcom] A Figura 4 ilustra o chip
Figura 4 ndash Chip COACh IIs (Adaptado do site elotouchcom)
A placa controladora que integra o touch-screen em outros moacutedulos possui as caracteriacutesticas
descritas na Tabela 1 e a Figura 5 ilustra a placa controladora
Tabela 1 ndash Caracteriacutesticas da placa controladora
Alimentaccedilatildeo 5 VDC nominal (45)
Interface-Serial (Serial RS-232) Full Duplex
Paracircmetros de Comunicaccedilatildeo Baud Rate 9600 and 19200 8 Bits de dados 1 bit de parada
Interface USB Quando estiver comunicando via USB a Serial estaraacute desabilitada E a placa natildeo eacute alimentada pela USB
Resoluccedilatildeo de toque 4096x4096 independente do tamanho da peliacutecula touch-screen
Tempo de conversatildeo do toque 10ms
17
Figura 5 ndash Placa Controladora (Adaptado do site elotouchcom)
212 Pinagens e descriccedilatildeo do Touch-Screen e da Placa Controladora
A Figura 6 ilusta os pinos do Touch-Screen que satildeo ligados ao conector da placa
controladora
Figura 6 ndash Pinos do Touch-Screen (Adaptado do site elotouchcom)
A Figura 7 mostra o conector da placa controladora e as respectivas pinagens
Figura 7 ndashConector para o touch da placa controladora (Adaptado do site elotouchcom)
18
A Tabela 2 descreve os pinos do conector para o touch da placa controladora
Tabela 2 ndash Pinagem do conector que faz interface entre o touch e a controladora
Pino
Nome do Sinal Desciccedilatildeo do sinal
1 X+ Entrada de tensatildeo positiva referente ao eixo X da tela 2 Y+ Entrada de tensatildeo positiva referente ao eixo Y da tela 3 X- Entrada de tensatildeo negativa referente ao eixo X da tela 4 Y- Entrada de tensatildeo negativa referente ao eixo Y da tela
22-Video
Eacute usado um monitor CRT convencional o qual apresentaraacute uma imagem criada atraveacutes as
bibliotecas graficas proprietarias da ALTERA esta imagem representa um menu com botoes e e
que atravez da manipulaccedilatildeo dos metodos das bibliotecas os resultados satildeo disponibilizados na
saida VGA do kit dependendo do botatildeo da imagem que for tocada atravez do touch alguma accedilatildeo
de alteraccedilatildeo na imagem seraacute atulalizada na saida vga
A Figura 8 ilustra o conector (fecircmea) da saiacuteda VGA do kit DE2
Figura 8 ndash Conector VGA femea do kit DE2
E na Tabela 3 a descriccedilatildeo de cada pino bem como sua direccedilatildeo
Tabela 3 ndash Descriccedilatildeo dos pinos da VGA
Pin
Name Dir Description
1 RED
Red Video (75 ohm 07 V p-p)
2 GREEN
Green Video (75 ohm 07 V p-p)
3 BLUE
Blue Video (75 ohm 07 V p-p)
4 ID2
Monitor ID Bit 2
5 GND
Ground
6 RGND
Red Ground
7 GGND
Green Ground
8 BGND
Blue Ground
19
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
20
23-Kit Altera Development amp Education Board 1 (Kit DE2)
231-Layout e Componentes
Uma fotografia do Kit DE2 eacute mostrado na Figura 9 onde se ve a aparencia do kit e as
indicaccedilotildees das localizaccedilatildeo dos componentes e conectores
Figura 9 ndash O kit DE2 (DE2_UserManualpdf 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 eacute listado os componentes fornecidos na placa do Kit DE2
Tabela 4 ndash Lista dos componentes do Kit DE2 (DE2_UserManualpdf contrado no cd do kit)
1 Altera Serial Configuration device ndash EPCS4
2 USB Blaster (on board) for programming and user API control both JTAG and Active 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
21
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
PS2 mousekeyboard connector
17
Two 40-pin Expansion Headers with diode protection
18
Powered by either a 75V DC adapter or a USB cable
232 Diagrama de Blocos do Kit DE2
Figura 10 ndash Diagrama de Blocos do KIT DE2 (DE2_UserManualpdf contrado no cd do kit)
22
A Tabela 5 mostra a informaccedilatildeo detalhada do Bloco Cyclone II FPGA 2C20 mostrado na
Figura 10
Tabela 5 ndash Detalhes do FPGA Cyclone II
FPGA Cyclone II 2C35
18752 LErsquos
52 M4K RAM blocks 240K total RAM bits 26 embedded multipliers 4 PLLrsquos 315 user IO pinrsquos FineLine BGA 484-pin package
A Tabela 6 mostra a informaccedilatildeo detalhada do Bloco do dispositivo de configuraccedilatildeo Serial e
circuito Usb-Blaster
Tabela 6 - Descriccedilatildeo das configuraccedilotildees que satildeo feitas atraveacutes da Serial e Usb-Blaster
Configuraccedilatildeo do dispositivo Serial e do Circuito Usb-Blaster Configuraccedilatildeo do dispositivo serial Altera EPCS4 On-Board Usb-Blaster
para Controle de API de usuaacuterio e programaccedilatildeo
JTAG e AS satildeo os modos do programaccedilatildeo suportados
A Tabela 7 mostra a descriccedilatildeo do Bloco da SRAM
Tabela 7 ndash Descriccedilatildeo do Bloco da SRAM
SRAM 512-Kbyte Static RAM memory chip Organizado em 256K x 16 bits Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 8 mostra a descriccedilatildeo do Bloco da SDRAM
Tabela 8 - Descriccedilatildeo do Bloco da SDRAM
SDRAM 8-Mbyte Single Data Rate Synchronous Dynamic RAM memory chip Organizado em 1M x 16 bits x 4 Banks Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
23
A Tabela 9 mostra a descriccedilatildeo do Bloco Memory Flash
Tabela 9 ndash Descriccedilatildeo da Memoria Flash
Memory Flash
4-Mbyte NAND Flash memory 8-bit data bus Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 10 mostra a descriccedilatildeo do Bloco SD card socket
Tabela 10 - Descriccedilatildeo do SD card socket
SD card socket Fornece o modo SPI para o acesso ao cartatildeo SD Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 11 mostra a descriccedilatildeo 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) Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 12 mostra a descriccedilatildeo dos Clock inputs
Tabela 12 - Descriccedilatildeo das entradas de Clocks
Clock inputs Oscilador de 50 Mhz Oscilador 27 Mhz Entrada para clock
externo
A Tabela 13 mostra a descriccedilatildeo do Aacuteudio CODEC
Tabela 13 - Descriccedilatildeo do Aacuteudio CODEC
Aacuteudio CODEC 4-Mbyte NAND Flash memory 8-bit data bus Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
24
A Tabela 14 mostra a descriccedilatildeo do Bloco VGA DAC
Tabela 14 ndash Descriccedilatildeo da saiacuteda VGA DAC
VGA
DAC
Usa 4 bits DAC para cada cor (RGB) Com 15 pinos no conector VGA convencional (fecircmea) Suporta uma resoluccedilatildeo de 640 x 480 com um refresh de ateacute 100Hz Pode ser usando com o FPGA Cyclone II para implementar um Encoder para TV
A Tabela 15 mostra a descriccedilatildeo do Bloco Serial Ports amp PS2
Tabela 15 ndash Descriccedilatildeo da Serial Port e PS2
Serial Ports amp PS2 Uma porta RS-232
Uma posta PS2 Um conector Serial para a porta do RS-232 Conector PS2 para conectar um mouse ou teclado ao DE2
A Tabela 16 mostra a descriccedilatildeo do Bloco dos Two 40 - pin expansion headers
Tabela 16 ndash Descriccedilatildeo dos conectores de expansatildeo de 40 pinos
Two 40 - pin expansion headers 72 pinos de IO do Clyclone II bem como 8 power e groundrsquos satildeo trazidos aos 2 conectores de expansatildeo de 40 pinos cada Os conectores de 40 pinos tambeacutem aceitam os cabos IDE de 40 pinos Proteccedilatildeo resistiva eacute fornecida
233 Endereccedilo das Pinagens dos Componentes usados no Projeto
2331 PushButtons
A Figura 11 mostra uma foto dos PushButtons do kit Key[30] a ordem eacute o button da
esquerda eacute o mais significativo e o mais de direita o menos signigicativo
Figura 11 ndash Os 4 PushButtons do DE2Key[30] (DE2_UserManualpdf contrado no cd do kit)
25
A Tabela 17 mostra os pinos da FPGA aos PushButtons
Tabela 17 ndash Pinos da FPGA referentes a cada PushButton (DE2_UserManualpdf contrado no cd do kit)
2332 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 ndash Modulo de displays de 7 segmentos (DE2_UserManualpdf encontrado no cd do kit)
Figura 13 ndash Index de um display (DE2_UserManualpdf encontrado no cd do
kit)
26
A Tabela 18 mostra os pinos da FPGA referente a cada segmento dos displays de 7
segmentos do modulo
Tabela 18 ndash Pinos da FPGA referentes a cada segmento dos Displays do modulo
27
2333 VGA
A Figura 14 esta em forma de onda da temporizaccedilatildeo horizontal e vertical da VGA do Kit
DE2
Figura 14 ndash Temporizaccedilatildeo horizontal da VGA
A Tabela 19 mostra a especificaccedilatildeo da temporizaccedilatildeo horizontal da VGA
Tabela 19 ndash Especificaccedilatildeo da temporizaccedilatildeo horizontal da VGA
A Tabela 20 mostra a especificaccedilatildeo da temporizaccedilatildeo vertical da VGA
Tabela 20 ndash Especificaccedilatildeo da temporizaccedilatildeo vertical da VGA
28
A Tabela 21 mostra os pinos da FPGA referente a cada pino de saida do conector VGA do
Kit DE2
Tabela 21 ndash Pinos da FPGA referentes a saiacuteda do Conector VGA do Kit
29
CAPIacuteTULO 3 ndash ESPECIFICACcedilAtildeO TECNICA
Nesse capiacutetulo tem-se uma descriccedilatildeo dos principais moacutedulos do projeto Satildeo eles Software
Firmware e Hardware
Inicialmente eacute apresentada a visatildeo geral do sistema e a descriccedilatildeo funcional de cada moacutedulo
A Figura 15 apresenta o diagrama em blocos do sistema
Figura 15 - Moacutedulos do projeto
31 Descriccedilatildeo de Software
O Software eacute uma das interfaces com o usuaacuterio
312 Diagrama de Blocos do Software
30
312 Modulo do PC
Neste modulo eacute 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
32 Descriccedilatildeo de Hardware
321 Modulo Touch-Screen
O usuaacuterio ao tocar o Touch-Screen (AT4 touch-screen resistivo de 4 fios) ocorre uma
mudanccedila nas tensotildees do eixo X e do eixo Y devido a resistecircncia gerada pelo ao toque do usuaacuterio
em uma determinada regiatildeo da tela essa mudanccedila de tensatildeo eacute interpretada pela placa
controladora COACh IIs do Touch-Screen e enviada via serial para o Kit DE2 que interpretaraacute
os dados e faraacute o devido processamento
322 Modulo FPGA
O Hardware corresponde tanto aos componentes fiacutesicos presentes no kit de desenvolvimento
quanto aos componentes que seratildeo configurados na FPGA Satildeo diversos componentes escritos
em linguagem de descriccedilatildeo de hardware
No um dos principais componentes de hardware utilizado modulo eacute o processador NIOS II
para se ter uma ideacuteia o processador NIOS II eacute capaz gerenciar os dispositivos externos a FPGA
utilizando controladores de memoacuterias controladores de VGA entre outros E tambeacutem eacute possiacutevel
o proacuteprio usuaacuterio criar seu componente para ser controlado atraveacutes do processador NIOS
II(Altera 2007)
31
3221 O Processador NIOS II
Atraveacutes do software SOPC da ALTERA foi possiacutevel montar a arquitetura de hardware do
processador NIOS II bem como especificar as interfaces que ele iraacute controlar atraveacutes do firmwar
feito no NIOS II IDE
Na Tabela 22 eacute no campo Module Name onde estatildeo os moacutedulos que foram usados para
definir o processador NIOS II e os componentes externos que ele iraacute controlar e no campo
Description esta a descriccedilatildeo do nome de cada modulo
Tabela 22 ndash Moacutedulos dos componentes e suas descriccedilotildees
3222 Firmware para o NIOS II
O Firmware foi feito utilizando a linguagem C utilizando a ferramenta NIOS II IDE Atraveacutes
do firmware eacute possiacutevel 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 graacuteficas para controlar a vga e serial e
USB-BLASTER eacute encarregado em enviar todo o desenvolvimento do projeto para o Kit DE2
323 Configuraccedilatildeo da FPGA via JTAG
Depois de configurado o hardware do processador NIOS II eacute preciso fazer o load do NIOS
para a FPGA e para que isso aconteccedila eacute necessaacuterio que atraveacutes do software Quartus II da
ALTERA utilizando a interface JTAG utilizando o cabo USB-BLASTER
32
324 Comunicaccedilatildeo entre FPGA e o Touch-Screen
Para comunicaccedilatildeo entre dos dois hardwares Touch-Screen e o FPGA eacute utilizando uma
interface serial RS-232
A configuraccedilatildeo da interface eacute a seguinte
Bits de dados 8
Taxa de dados 5600(bps)
A Tabela 23 mostra a relaccedilatildeo dos pinos da porta serial com os pinos da FPGA
Tabela 23 ndash Pinos da FPGA referente agrave pinagem da interface Serial
E a Figura 16 mostra o desenho correspondente da interface serial
Figura 16 ndash Conector da interface serial do kit DE2
33 Especificaccedilatildeo de Validaccedilatildeo
331 Validaccedilatildeo de Hardware
A validade do hardware se faz com a anaacutelise de todos os moacutedulos envolvidos
As necessidades satildeo estudadas os componentes externos ao FPGA satildeo selecionados de
acordo o processador nios e os controladores dos moacutedulos externos como VGA e SERIAL satildeo
enviados ao modulo FPGA
Os resultados obtidos na tela do monitor e a recepccedilatildeo dos dados pela serial comprovam o
funcionamento do modulo de comunicaccedilatildeo da serial e vga
33
332 Validaccedilatildeo de Software
A validaccedilatildeo do controle da interface touch-screen faz-se a partir dos resultados obtidos das
funccedilotildees escritas na linguagem C especificas para cada componente externos ao FPGA essas
funccedilotildees tornam possiacuteveis que o processador NIOS na FPGA tenha total controle sobre os
moacutedulos externos como a VGA e a SERIAL
As funccedilotildees que satildeo utilizadas para validar o funcionamento do software satildeo para a VGA os
meacutetodos de controle (alt_up_vga_draw_char_1b( char int x int y)) e (alt_up_vga_draw_pixel(
color x y))
O meacutetodo (alt_up_vga_draw_char_1b( char int x int y)) tem a funcionalidade de escrever
caracteres na tela do monitor e a descriccedilatildeo da sua assinatura ldquoparacircmetrosrdquo eacute a seguinte char eacute o
caractere que eacute escrito em alguma posiccedilatildeo na tela int x eacute a posiccedilatildeo x da tela do monitor e int y eacute
a posiccedilatildeo y da tela do monitor sendo que a resoluccedilatildeo utilizada eacute de 80x60 ou seja x natildeo pode
passar de 80 e y natildeo pode passar de 60
O meacutetodo (alt_up_vga_draw_pixel( color int x int y)) tem a funcionalidade de ldquopintarrdquo o
fundo da tela do monitor o meacutetodo de imprimir caracteres tem preferecircncia sobre este meacutetodo ou
seja os caracteres sempre ficam sob a aacuterea pintada ou seja o caractere sempre ficara em cima da
aacuterea pintada a descriccedilatildeo da assinatura deste meacutetodo eacute a seguinte color eacute a valor da cor que pode
ser um valor inteiro ou em hexadecimal para definir uma cor de alguma posiccedilatildeo da tela definidos
pelos paracircmetros x e y
As funccedilotildees que satildeo utilizadas para validar o funcionamento do software satildeo para a Serial os
meacutetodos de controle de transmissatildeo (fread( packet sizeof(packet) 1 serial_fp )) a funccedilatildeo
fread eacute utilizada para a leitura via interrupccedilatildeo dos pacotes que a controladora envia para o kit
DE2 as assinaturas do meacutetodo fread tem a seguinte composiccedilatildeo packet eacute a estrutura do pacote
que seraacute recebido o sizeof(packet) eacute o diz qual eacute o tamanho exato da estrutura criada e o
serial_fp eacute o handle da porta serial
Uma observaccedilatildeo muito importante eacute que para o total funcionamento eacute necessaacuterio 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 rs232h e rs232c onde estatildeo os meacutetodos de
controle da SERIAL e alt_up_vgah alt_up_vgac onde estatildeo os meacutetodos de controle para a
VGA Para tornar estes meacutetodos acessiacuteveis eacute preciso fazer os includes dos arquivos h no
projeto da NIOS IDE
A figura 17 mostra a utilizaccedilatildeo dos meacutetodos (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
34
int y)) utlizado para escrever os caracteres lsquoarsquo e lsquobrsquo dentro de um grupo de pixel previamente
pintado a (alt_up_vga_draw_pixel( color int x int y)) natildeo pinta um pixel de cada vez e sim
um bloco de 8x8 pixels
Figura 17 - Tela para a validaccedilatildeo dos testes com as bibliotecas graacuteficas do componente VGA
34 Recursos Necessaacuterios
A Tabela 24 apresenta os ambientes de desenvolvimento e ferramentas de software utilizadas
e na Tabela 25 as linguagens necessaacuterias Estas ferramentas foram utilizadas em ambiente
Windows Xp
Tabela 24 - Ferramentas de Desenvolvimentos e Ambientes
Software Para que foi Utilizado
Quartus II Para a definiccedilatildeo de qual o modelo de FPGA utilizado compilaccedilatildeo e simulaccedilatildeo e envio Load do NIOS para FPGA
SOPC Para definiccedilatildeo da do processador NIOS II e com quais componentes externos ele ira interagir atraveacutes dos controladores dos respectivos componentes
NIOS II IDE Para implementaccedilatildeo do firmware do processador NIOS II utilizando a linguagem em C
35
Borland C++ Builder Para desenvolvimento de ima interface de comunicaccedilatildeo via caboUSB-
BLASTER para o envio de imagem para o kit
Tabela 25 ndash Linguagens de programaccedilatildeo utilizadas
Linguagem Ferramenta C++ Borland C++ Builder VerilogVHDL Quartus II C NIOS II IDE
35 Viabilidade Teacutecnico-Econocircmica
O valor do projeto esta descrito na Tabela 26
Tabela 26 ndash Relaccedilatildeo dos Custos
DESCRICcedilAtildeO CUSTO APROXIMADO (R$) COMPONENTES ELETROcircNICOS 50000 1 Kit DE2 Cyclone II 35000 1 Monitor de Computador 35000 HORAS TRABALHADAS (400 horas) 750000 CUSTO TOTAL APROXIMADO (R$) 870000
36 Cronograma do Projeto
A tabela 27 contem as informaccedilotildees do cronograma do projeto
Tabela 27 ndash Cronograma de datas e entregas do projeto
Data Atividade a ser apresentada 050307 Entrega das propostas de projeto para avaliaccedilatildeo do colegiado 020407 Entrega das especificaccedilotildees teacutecnicas do projeto aprovado 110607 Entrega do projeto (monografia) e dos testes preliminares do mesmo 060807 Apresentaccedilatildeo preacutevia da implementaccedilatildeo do projeto especificado 011007 Apresentaccedilatildeo do projeto implementado
Qualificaccedilatildeo para a fase final 291007 Segunda apresentaccedilatildeo do projeto implementado para os que natildeo o fizeram no
dia 011006 com decreacutescimo da nota Qualificaccedilatildeo para a fase final
051107 Entrega da documentaccedilatildeo completa em espiral para a banca examinadora em 3 vias contendo a monografia manual teacutecnico manual do usuaacuterio e artigo cientiacutefico
261107 Defesa formal dos projetos com apresentaccedilatildeo oral para a banca examinadora 101207 Entrega da documentaccedilatildeo completa revisada e corrigida encadernada no
padratildeo da biblioteca (capa dura) em duas vias contendo a monografia manual teacutecnico manual do usuaacuterio e artigo cientiacutefico Entrega do CD contendo no formato WEB todo o conteuacutedo dos manuais
36
CAPIacuteTULO 4 ndash ESPECIFICACcedilAtildeO TECNICA
41 Requisitos Miacutenimos
Os requisitos miacutenimos de Hardware satildeo
Funcionamento das interfaces Serial e USB-Blaster
Funcionamento do Kit DE2
PC
Os requisitos miacutenimos de Software
Windows Xp
Quartus II
SOPC
NIOS II IDE
42 Projeto de Hardware
O hardware utilizado nesse projeto inclui componentes presentes na Placa de
Desenvolvimento Nios II - ediccedilatildeo DE2 Cyclone II EP2C35 e principalmente o hardware que seraacute
configurado na FPGA escrito em linguagem de descriccedilatildeo de hardware (HDL)
O um dos principais blocos de hardware eacute o processador NIOS II o Avalon Bus e os
controladores de componentes externos a FPGA e de comunicaccedilatildeo presentes no Kit
37
O software embarcado (firmware) estaraacute rodando nessa arquitetura Eacute uma arquitetura
completa construiacuteda com a ferramenta SOPC Builder da Altera A Figura 18 representa em
blocos os principais componentes dessa arquitetura
Figura 18 ndash Representaccedilatildeo em blocos do hardware do NIOS II
421 Funcatildeo do Touch-Screen
Outro bloco importante eacute o do Touch-Screen esta tela sensiacutevel ao toque pois como esta tela
trabalha com resistecircncia ao ser tocado em uma determinada regiatildeo uma resistecircncia eacute gerada e a
tensatildeo de saiacuteda eacute modificada a alimentaccedilatildeo desta placa eacute proveniente de sua placa controladora
a mesma placa que recebe a tensatildeo de saiacuteda modificada de acordo com a regiatildeo tocada na tela
Para verificar as caracteriacutesticas detalhadas do Touch-Screen e sua placa controlador favor ver
o Capitulo 2
422 Monitor e VGA
O Monitor inicialmente tem apenas o desenho de um botatildeo que ao ser tocado via touch
mudara a cor de toda a tela A imagem exibida no monitor tem uma resoluccedilatildeo de
38
Protoacutetipo das telas para os testes esta na Figura 19 a tela verde quando a touch natildeo eacute tocando
na regiatildeo do botatildeo de OK quando o botatildeo de OK for tocado a tela do monitor mudara de cor
ficando azul
Figura 19 ndash Tela do monitor
No Capitulo 2 estatildeo todas as caracteriacutesticas da pinagem e do conector VGA
423 Comunicaccedilatildeo serial
Entre a placa controladora do Touch-Screen e o FPGA existe uma comunicaccedilatildeo 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 manipulaccedilatildeo da imagem que eacute
mostrada no monitor
No capitulo 2 estatildeo das descriccedilotildees dos pinos e do conector da comunicaccedilatildeo Serial
O pacote serial que eacute transmitido pela placa controladora do touch-screen possui 10 bytes de
comprimento e segue a seguinte sequumlecircncia de envio
[55] [54] [] [] [] [] [] [] [] []
Sequumlecircncia dos bytes
Os dois primeiros bytes identificam o Header do pacote
O terceiro byte eacute 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 agrave posiccedilatildeo do eixo x onde a tela foi tocada
O sexto e o seacutetimo byte correspondem a posiccedilatildeo do eixo y onde a tele foi tocada
O restante os bytes identificam o tail do pacote recepcionado pelo kit DE2
39
424 Comunicaccedilatildeo USB-Blaster
Essencial para envio do projeto desenvolvido para o kit DE2 tambeacutem muito utilizado para o
debug deste projeto
435 Memoacuteria SDRAM
A memoacuteria utilizada para armazenar grandes quantidades de dados eacute a SDRAM (ver detalhes
no Capitulo 2)
Essa memoacuteria eacute muito raacutepida serviu muito bem para armazenar o firmware deste projeto
pois tem o tempo acesso ideal para ler as instruccedilotildees que utilizaram a VGA e tambeacutem eacute raacutepida o
suficiente para fazer a leitura dos dados e disponibilizar na saiacuteda VGA do kit
426 Memoacuteria FLASH
Eacute onde seraacute armazenado o firmware possui espaccedilo suficiente para isso 4MB e uma memoacuteria
mais lenta e por isso natildeo foi usada para armazenar dados para serem jogados na vga do Kit
43 Software
431 Software (Firmware)
O software tem de funccedilatildeo de utilizar as bibliotecas das controladoras dos componentes
externos a fim de controlar estes componentes de acordo com o necessaacuterio para atender o
objetivo do projeto
Ou seja uma tela inicial eacute apresentada e o usuaacuterio ao tocar na nela o kit recebe um pacote via
serial e interpreta a posiccedilatildeo da tela em que foi tocado e logo em seguida envia o resultado deste
toque para o monitor
432 Objetivos
O usuaacuterio 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 accedilatildeo de acordo com a posiccedilatildeo da tela
tocada alterando assim a imagem anterior com o resultado do toque
Interpretar o toque de usuaacuterio na tela touch-screen recepccedilatildeo do pacote via serial da placa
controladora do touch-screen tratamento do pacote e interpretaccedilatildeo das coordenadas x e y do
40
toque Realizaccedilatildeo de alguma accedilatildeo que resultara na alteraccedilatildeo da imagem da tela atual de acordo
com a funccedilatildeo em que as coordenadas foram previamente definidas para o que deve ser feito
432 Funccedilotildees
A Tabela 28 tem as principais funccedilotildees que foram implementadas para o sistema
Tabela 28 ndash Funccedilotildees do sistema firmware
FUNCcedilOtildeES Tela de um pequeno editor de texto Tratamento do sinal recebido da serial devido a um toque na tela Interpretaccedilatildeo do pacote serial e transfomaccedilatildeo para coordenadas x e y Transformaccedilatildeo das posiccedilotildees do toque na tela em alguma accedilatildeo enviando o resultado para a VGA Imagem final disponibilizada ao usuaacuterio de acordo com o toque que foi dado na tela Controlar dispositivos cada dispositivo pode ser controlado pelo seu respectivo contrador atraveacutes de seu endereccedilo base VGA SERIAL USB-BLASTER IO(Leds Switches etc) do Kit DE2
O Firmware do processador NIOS II eacute que realizaraacute a integraccedilatildeo entre hardware com
hardware Com o firmware controlando o NIOS II eacute possiacutevel interagir com os dispositivos
externos a FPGA Tornando possiacutevel a integraccedilatildeo da FPGA com a peliacutecula touch-screen e um
monitor sem a ajuda de um PC a uacutenica ajuda do pc seria para enviar dados de uma imagem para
o Kit DE2
44 Validaccedilatildeo e Testes
Inicialmente os moacutedulos da VGA e comunicaccedilatildeo SERIAL natildeo estavam funicionando
apenas o devido agrave fraca documentaccedilatildeo sobre o kit DE2 foi possiacutevel apenas fazer testes com o
Processador NIOS II pois sobre este existem bastantes documentos e exemplos que podem ser
utilizados
Nesta primeira parte foi possiacutevel testar o NIOS II para controlar o display bototildees e switchs
do kit DE2
Com o NIOS II funcionando completamente foi necessaacuterio porta-lo para o kit DE2 o que foi
simples pois como sabemos esses kits satildeo portaacuteveis entre si apenas mudando a pinagem e a
capacidade da FPGA
Com o Kit DE2 foi possiacutevel fazer os testes necessaacuterios com a comunicaccedilatildeo serial
inicialmente testada via terminal conversando diretamente com o kit foi possiacutevel fazer o
seguinte teste os caracteres que eram entrados via teclado chegavam ao kit via serial e o o
41
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 comdumpexe que eacute facilmente encontrado pelas ferramentas
de pesquisa da web e tambeacutem existem vario outros programas como este e o comdump eacute
utilizado para debug da porta serial do pc conectado diretamente na placa controladora do touch-
screen e foi a peccedila chave para o entendimento do pacote enviado pela placa controladora
Figura 20 - Cumdumpexe programa de debug da porta serial
A explicaccedilatildeo de cada byte do pacote esta explicado no item 423
Apos o entendimento completo da transmissatildeo 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 natildeo 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 ateacute o momento em que
foi testado os meacutetodos proprietaacuterios da Altera para fazer a VGA funcionar os meacutetodos esses
implementados em C
A figura 21 onde contem o teste baacutesico feito que foi a chave principal para o sucesso deste
projeto
42
Como dito no item 332 do projeto foram utilizados as funccedilotildees da controladora VGA esses
meacutetodos 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 eacute utilizado o meacutetodo alt_up_vga_draw_pixel( color int
x int y) onde color eacute a cor do bloco de pixels e x e y satildeo as coordenadas da tela onde o bloco
que seraacute pintado
Para escrever um caractere sobre um bloco de pixels pintado eacute utilizado a funccedilatildeo
alt_up_vga_draw_char_1b( char int x int y) onde char eacute o caractere a ser impresso e x e y satildeo
as coordenadas da tela onde os o caractere eacute impresso
Figura 21 - Teste baisco do funcionamento do componente VGA do kit DE2
43
CAPIacuteTULO 5 ndash VALIDACcedilAtildeO E RESULTADOS
Os resultados foram os melhores possiacuteveis pois com a utilizaccedilatildeo dos IP CORE
ldquocontroladorasrdquo dos componentes externos como VGA e SERIAL e seus meacutetodos de para
controle eacute possiacutevel controlar facilmente esses moacutedulos atraveacutes do firmware desenvolvido para o
processador NIOS que consegue realizar operaccedilotildees transparentes acessando dos meacutetodos de
controle dos moacutedulos
Apos os testes baacutesicos 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 baacutesico de editor de texto
A figura 22 mostra um teste utilizando os meacutetodos de controle disponiacuteveis para o IP CORE
da VGA para primeiramente fazer o menu da aplicaccedilatildeo desenvolvido em na linguagem C
Figura 22 ndash Menu baacutesico do editor de texto
Para desenhar o menu da figura acima foi utilizado os meacutetodos proprietaacuterios de controle da
VGA citados no capitulo 4 e tambeacutem estruturas de repeticcedilatildeo para que a tela fosse varrida e os
pixels desenhados nos respectivos lugares da tela bem como os caracteres
Na figura 23 eacute definida a seguinte estrutura em C para representar de um botatildeo
Figura 23 - Estrutura em C para representar um botatildeo
44
A figura 24 eacute a declaraccedilatildeo dos bototildees que seratildeo utilizados pelo aplicativo editor de texto
para comprovar o funcionamento do controle da interface touch-screen
Apenas o que esta dentro da marcaccedilatildeo quadrada representa os bototildees do menu da figura 23
e o restante satildeo os bototildees do teclado do editor de texto
Figura 24 - Declaraccedilatildeo dos bototildees do menu
45
A figura 25 representa o meacutetodo drawnButtonUp responsaacutevel por desenhar os bototildees na tela
de acordo com as posiccedilotildees em que foram declarados os bototildees deste meacutetodo satildeo desenhados
para parecerem que estatildeo ldquolevantadosrdquo e natildeo pressionados
Note que foram utilizados os meacutetodos proprietaacuterios de controle da VGA
alt_up_vga_draw_pixel pra pitar os pixels e alt_up_vga_draw_char_b1 para desenhar caracteres
como jaacute foi especificado no item 44 do projeto
Figura 25 ndash Meacutetodo drawButtonUp
46
O meacutetodo que desenha o caption do botatildeo se chama drawButtonText desenha os caracteres
em cima dos bototildees natildeo importa se o botatildeo esta pressionado ou natildeo
A figura 26 mostra como este meacutetodo foi implementado e ele eacute chamado no final de cada
meacutetodo onde algum tipo de botatildeo eacute desenhado quando o meacutetodo que desenha o botatildeo normal
quanto o pressionado e ateacute mesmo o do teclado
Figura 26 ndash Meacutetodo que escreve o caption de cada botatildeo
47
A figura 27 mostra o meacutetodo drawButtonDown que desenha o botatildeo pressionado ou seja
quando o usuaacuterio pressiona a regiatildeo correspondente a um botatildeo do menu no touch-screen o
mesmo redesenharaacute o botatildeo parecendo um efeito de botatildeo afundado note que no final do
meacutetodo novamente eacute chamado o meacutetodo drawButtonText que reescreveraacute o caption do botatildeo
como mostra o meacutetodo da figura 26 e esta ilustrado na figura 28
Figura 27 ndash Meacutetodo que desenha o botatildeo pressionado
48
Dependendo da aacuterea do menu que o usuaacuterio pressionar no touch-screen causar o efeito de
pressionado como mostra a figura 28
Figura 28 ndash Efeito do botatildeo de menu apertado
Na figura 29 eacute a representaccedilatildeo de quando a aacuterea correspondente ao botatildeo ldquoamarelordquo eacute
pressionada
Apos estes testes baacutesicos comprovando o funcionamento da interface graacutefica para o usuaacuterio
foi definido o restante dos componentes da tela que eacute constituiacutedo de um prompt e um teclado
qwerty que foi essencial para comprovar o perfeito funcionamento do controle da interface
touch-screen
49
51 Interface Grafica Final
A figura 29 mostra a interface final que o usuaacuterio teraacute para poder verificar o funcionamento
do controle da interface touch-screen
Figura 29 ndash Interface final touch-screen do usuaacuterio
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
511 Descriccedilatildeo do editor de texto
O menu possui 4 botoes cada um com sua respectiva funcionalidade quando o usuario
pressiona a area do botatildeo ldquoapagarrdquo uma vez entatildeo um carectere do prompt eacute apagado Quando eacute
precionado a area correspondente ao botatildeo ldquoResetrdquo todo o conteudo do prompt seraacute apagado e o
plano de fundo retornaraacute a cor branca Quando o botatildeo ldquoamarelordquo eacute pressionado o fundo da tela
passa a ser amarelo e o mesmo acontece se o usuario precionar o botatildeo verde tornando o cor de
fundo verde
50
O teclado possui 29 teclas sendo duas delas que equivalem ao ENTRA ldquoENTrdquo e ao
SPACE ldquoSPCrdquo Quando o usuario pressiona a area correspondente a algum botatildeo do teclado o
mesmo muda sua cor para azul e o seu caractere eacute disponibilizado no prompt
Essas funcionalidades nada mais satildeo do que um bom exemplo de como funciona
corretamente o controle da interface touch-screen
52 Prompt e o Teclado
A estrutura feita na linguagem C que define o prompt da figura 28 esta representado na
figura 30
Figura 30 ndash Estrutura em C para representar o prompt
A figura 31 mostra o metodo drawPrompt utilizado para desenhar na tela o prompt
Figura 31 ndash Meacutetodo que desenha o prompt
51
A estrutura do teclado eacute a mesma utilizada pela figura 23 e tambem eacute criado satildeo
inicializados na figura 24
O restante as implementaccedilotildees estatildeo disponiveis no cd deste documento
Quando algum botatildeo do teclado eacute pressionado sua cor muda para azul e sua letra
correspondente eacute escrita o prompt
A figura 32 ilustra quando o usuaacuterio aperta a letra lsquotrsquo na peliacutecula touch-screen
Figura 32 - Teste do prompt e o teclado
52
53 Controle da Interface Touch-Screen
Depois do todos os testes com o processador NIOS e a integraccedilatildeo do mesmo com os
moacutedulos externos como a porta SERIAL e a saiacuteda VGA eacute possiacutevel utilizando o touch-screen
criar uma interface amigaacutevel e faacutecil de usar para o usuaacuterio utilizando um firmware capaz de
interpretar os sinais via serial vindo da controladora do touch ao detectar que um toque foi dado
pelo usuaacuterio e realizar algumas accedilotildees que neste caso se comportam como um editor de texto
baacutesico
A figura 33 mostra como foi validado este projeto e seus moacutedulos controlando uma
interface touch-screen para chegar no resultado abaixo digitado pelo usuaacuterio comprovando o
funcionamento e viabilidade deste projeto
Figura 33 ndash 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 mudanccedilas podendo ser alterado rapidamente o tipo de
aplicaccedilatildeo ou integrado rapidamente com outro projeto
53
CAPIacuteTULO 6 - CONCLUSAtildeO
Uma das principais dificuldades no desenvolvimento deste projeto foi fazer o levantamento
da documentaccedilatildeo sobre o processador NIOS e os moacutedulos externos a FPGA do Kit DE2 Como
natildeo foi feito algum projeto antes que utilizasse a interface VGA e a SERIAL do Kit DE2 levou-
se muito tempo ateacute conseguir adquirir e ordenar o conhecimento que foi sendo adquirido ateacute
conseguir dar os primeiros passos e realizar os primeiros testes com a VGA e a SERIAL Outro
grande obstaacuteculo foi ter de descobrir que para que o NIOS controlasse os moacutedulos externos a
FGPA fosse necessaacuterio copiar os arquivos c e h dos respectivos componente para dentro do
projeto
Mas depois de todos os problemas com os moacutedulos externos solucionados cada modulo do
projeto foi sendo desenvolvido separadamente ateacute seu total funcionamento Natildeo tive dificuldades
com a linguagem da programaccedilatildeo pois o Firmware do processador NIOS eacute o C a qual mais tive
contato na faculdade
Outro desafio foi fazer a peliacutecula 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
peliacutecula natildeo 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 possiacutevel
comeccedilar a fazer os testes necessaacuterios para prosseguir com o projeto aprender como o a peliacutecula
identifica um toque e manda este sinal para a controladora e a controladora transforma este sinal
em um sinal serial que eacute 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 accedilotildees
que as coordenadas jaacute estatildeo previamente calibradas no firmware para fazer bem como mudar de
cor a tela fazer o efeito de um botatildeo subindo e descendo etc
Varias vezes o projeto parou de funcionar entatildeo 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 memoacuteria abundante etc uma das
facilidades eacute a faacutecil alteraccedilatildeo do projeto podendo ser integrado a outro ou ateacute mesmo alterado
para realizar outros tipos de accedilotildees com o touch-screen
Existem vaacuterios melhoramentos que podem ser executados no projeto um deles eacute tentar
interpretar de uma maneira diferente os valores do eixo y pois do jeito que esta a resoluccedilatildeo do
eixo y esta muito baixa dificultando o reconhecimento de toques em aacutereas pequenas Talvez a
inclusatildeo de mais alguns bytes no pacote de leitura da serial resolva o problema
54
Uma ideacuteia para um proacuteximo projeto que use a interface touch-screen poderia ser a
integraccedilatildeo com o projeto do nosso colega Roberto Junqueira ou a desenvolvimento de uma
placa controladora para o touch-screen
Este trabalho eacute uma modesta contribuiccedilatildeo para o uso de FPGAs e do processador embarcado
NIOS implementado em VHDL pela Altera que acredito que vai abrir vaacuterios caminhos pois
com este projeto alguns caminhos ficaram mais faacuteceis de percorrer daqui para a frente
55
CAPIacuteTULO 7 - REFEREcircNCIAS BIBLIOGRAacuteFICAS
AMORE Roberto drsquo VHDL Descriccedilatildeo e Sintese de Circuitos Rio de Janeiro ed LTC
2005
Elotouch Touch-Screen e Controladora Descriccedilatildeo do funcionamento e descriccedilatildeo
tecnologia Touch-Screen lthttpwwwelotouchcombrgt Acesso em fevereiro de 2007
ALTERA University Program IP Cores Instalaccedilatildeo de IP Cores e referencias sobre os
componentes dos kits DE1 e DE2 Disponivel em lthttpwwwalteracomeducationunivip-
coresunv-ip-coreshtmlgt Acesso em abril de 2007
ALTERA NIOS II Documentaccedilatildeo sobre o pprocessador embracado NIO II Disponivel
em lthttpwwwalteracomproductsipprocessorsipm-indexjspgt Acesso em Abril de 2007
ALTERA Development amp Education Board 2 (DE2) Manual do usuario Disponivel no
de que acompanha o Kit DE2 ltDE2_user_manualDE2_UserManualpdfgt Acesso em
fevereiro de 2007
11
12
CAPIacuteTULO 1 - INTRODUCcedilAtildeO
A computaccedilatildeo reconfiguraacutevel vem sendo utilizada em larga escala para projetos de
hardware que necessitem de um grande poder de processamento Neste campo um dispositivo
muito utilizado eacute a FPGA (Field-Programmable Gate Array)
As FPGArsquos satildeo circuitos de hardware que podem ser modificados praticamente em
qualquer momento durante o uso As FPGArsquos consistem em array de blocos loacutegicos
configuraacuteveis que implementam funccedilotildees loacutegicas 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 mudanccedilas raacutepidas no hardware
Em microprocessadores de uso geral se tem um hardware que natildeo pode ser modificado fixo
mas no FPGA essa mudanccedila eacute bastante simples e raacutepida feita via software
Este projeto teve sua proposta lanccedilada a partir da ideacuteia concedida pelo Prof Valfredo Pilla
Junior de interface Touch-Screen
O projeto eacute sobre o controle de uma interface com uma peliacutecula Touch-Screen onde eacute
possiacutevel que o usuaacuterio ao tocar uma peliacutecula sensiacutevel ao toque o sistema desenvolvido possa
realizar algum tipo de alteraccedilatildeo na imagem apresentada em um monitor que se dispotildee atraacutes do
Touch-Screen
O objetivo foi desenvolver um sistema capaz de receber e manipular a aquisiccedilatildeo dos dados
gerados pela placa controladora atraveacutes toque na peliacutecula Touch-Screen que estaraacute na frente da
tela de um monitor converter estes dados realizar uma alteraccedilatildeo na tela inicialmente
apresentada e disponibilizar o resultado da alteraccedilatildeo atualizando a tela do monitor
O hardware do sistema eacute basicamente composto na parte da aquisiccedilatildeo por uma peliacutecula
Touch-Screen e uma placa controladora da proacutepria peliacutecula recepccedilatildeo e processamentos feitos no
Kit DE2 (Development amp Education 1) Board que enviara o resultado atraveacutes da saiacuteda VGA
(Viacutedeo Graphics Array) para um monitor CRT (Catodic Ray tube)
Este sistema eacute justificado pois as interfaces intuitivas com telas Touch-Screen satildeo
utilizadas em uma ampla gama de mercados
Por exemplo
Comeacutercio Realizar um atendimento de forma raacutepida e faacutecil eacute objetivo da automaccedilatildeo 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 usuaacuteriomaacutequina de grandes complexos
equipamentos devido agrave eliminaccedilatildeo do teclado do mouse e de outros perifeacutericos de um ambiente
industrial evitando distraccedilotildees em um ambientes geralmente muito agressivo
13
Medicina Os sistemas que usam touch simplificam os sofisticados sistemas meacutedicos reduzem as
possibilidades de erros e proporcionam um mecanismo de entrada de dados mais eficiente que
qualquer outro perifeacuterico
Educaccedilatildeo Hoje o touch esta se tornando a interface de treinamento mais popular em todas as
fases do aprendizado desde a preacute escola jardim de infacircncia e preparaccedilatildeo profissional eliminando
a frustraccedilotildees de crianccedilas ao utilizar o mouse ou teclado
E aplicaccedilotildees com o objetivo de diminuir o tempo de resposta aumentar a produtividade
proporcionar produtos e serviccedilos de maior qualidade e aumentar os lucros Por exemplo realizar
um atendimento de forma raacutepida e faacutecil eacute objetivo da automaccedilatildeo 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 serviccedilos intuitivos e interativos de uma interface
Touch proporcionam confiabilidade ao cliente que eacute exatamente o que o seu negoacutecio precisa para
o crescimento e o sucesso em longo prazo (elotouch 2007)
Este projeto no futuro poderaacute ser integrado com outro projeto formando assim um sistema
parecido com um PDA (Personal Digital Assistant)
14
CAPIacuteTULO 2 ndash FUNDAMENTACcedilAtildeO TEOacuteRICA
21-Touch Screen
Um Touch-Screen que em portugues quer dizer ldquotela sensivel ao toquerdquo estatildeo disponiacuteveis
para uma grande variedade de uso desde pontos de vendas ateacute quiosques equipamentos meacutedicos
e industriais e sistemas de jogos As vantagens das soluccedilotildees touch incluem precisatildeo
transparecircncia e facilidade de uso e instalaccedilatildeo
O Touch-Screen usado neste projeto eacute o modelo de quatro fios resistivos AT4 da empresa
Elo TouchSystem (wwwelotouchcombr)
A tecnologia resistiva touch de quatro fios consta de uma tela de vidro coberto
uniformemente por camadas eletricamente condutivas e resistivas Uma lacircmina de poliester eacute
hermeticamente estendida sobre a parte superior do vidro e separada por minuacutesculos espaccediladores
(pontos) transparentes e isolantes A parte externa dessa lacircmina eacute uma peliacutecula duraacutevel e firme a
parte interna conteacutem uma camada condutiva Durante seu funcionamento uma corrente eleacutetrica
se propaga atraveacutes do touchscreen Ativada por um miacutenimo toque a peliacutecula 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 descriccedilatildeo das
camadas que compoem o Touch-Screen
Figura 1 ndash Touch-Screen final (Adaptado com as dimensotildees da aplicaccedilatildeo do editor de texto para validar este projeto)
15
Figura 2 ndash Mascara
(Adaptado do site elotouchcombr)
1 Camada soacutelida resistente a riscos (tipo anti-reflexiva) 3 Camada ITO
2 Peliacutecula de Poliester 4 Contatos de prata
Figura 3 ndash Vidro (Adaptado do site elotouchcombr)
1 Contatos de prata 3 Camada ITO(Transparent Conducting Oxide)
2 Pontos espaccediladores 4 Camada de Vidro
O circuito da controladora aplica uma tensatildeo atraveacutes da superfiacutecie do vidro As tensotildees no
ponto de contato constituem a representaccedilatildeo analoacutegica da superfiacutecie de toque A controladora
traduz essas tensotildees e transmite-os para o computador para processaacute-los
16
211 Placa e chip da Controladora do Touch-Screen
O COACh IIs (Controller On A Chip second generation) eacute compacto econocircmico chip
controlador para as aplicaccedilotildees com o Touch-Screen AT4 de 4 fios resistivos Opera em 33V e
em 5V O tamanho compacto baixa voltagem para operar e comsumo de energia eacute a melhor
soluccedilatildeo para OEMrsquos (original equipment manufacturer) pois pode contar com estabilidade
confiabilidade e desempenho de componentes com touch para aplicaccedilotildees embarcadas ou
aplicaccedilotildees portaacuteveis[elotouchcom] A Figura 4 ilustra o chip
Figura 4 ndash Chip COACh IIs (Adaptado do site elotouchcom)
A placa controladora que integra o touch-screen em outros moacutedulos possui as caracteriacutesticas
descritas na Tabela 1 e a Figura 5 ilustra a placa controladora
Tabela 1 ndash Caracteriacutesticas da placa controladora
Alimentaccedilatildeo 5 VDC nominal (45)
Interface-Serial (Serial RS-232) Full Duplex
Paracircmetros de Comunicaccedilatildeo Baud Rate 9600 and 19200 8 Bits de dados 1 bit de parada
Interface USB Quando estiver comunicando via USB a Serial estaraacute desabilitada E a placa natildeo eacute alimentada pela USB
Resoluccedilatildeo de toque 4096x4096 independente do tamanho da peliacutecula touch-screen
Tempo de conversatildeo do toque 10ms
17
Figura 5 ndash Placa Controladora (Adaptado do site elotouchcom)
212 Pinagens e descriccedilatildeo do Touch-Screen e da Placa Controladora
A Figura 6 ilusta os pinos do Touch-Screen que satildeo ligados ao conector da placa
controladora
Figura 6 ndash Pinos do Touch-Screen (Adaptado do site elotouchcom)
A Figura 7 mostra o conector da placa controladora e as respectivas pinagens
Figura 7 ndashConector para o touch da placa controladora (Adaptado do site elotouchcom)
18
A Tabela 2 descreve os pinos do conector para o touch da placa controladora
Tabela 2 ndash Pinagem do conector que faz interface entre o touch e a controladora
Pino
Nome do Sinal Desciccedilatildeo do sinal
1 X+ Entrada de tensatildeo positiva referente ao eixo X da tela 2 Y+ Entrada de tensatildeo positiva referente ao eixo Y da tela 3 X- Entrada de tensatildeo negativa referente ao eixo X da tela 4 Y- Entrada de tensatildeo negativa referente ao eixo Y da tela
22-Video
Eacute usado um monitor CRT convencional o qual apresentaraacute uma imagem criada atraveacutes as
bibliotecas graficas proprietarias da ALTERA esta imagem representa um menu com botoes e e
que atravez da manipulaccedilatildeo dos metodos das bibliotecas os resultados satildeo disponibilizados na
saida VGA do kit dependendo do botatildeo da imagem que for tocada atravez do touch alguma accedilatildeo
de alteraccedilatildeo na imagem seraacute atulalizada na saida vga
A Figura 8 ilustra o conector (fecircmea) da saiacuteda VGA do kit DE2
Figura 8 ndash Conector VGA femea do kit DE2
E na Tabela 3 a descriccedilatildeo de cada pino bem como sua direccedilatildeo
Tabela 3 ndash Descriccedilatildeo dos pinos da VGA
Pin
Name Dir Description
1 RED
Red Video (75 ohm 07 V p-p)
2 GREEN
Green Video (75 ohm 07 V p-p)
3 BLUE
Blue Video (75 ohm 07 V p-p)
4 ID2
Monitor ID Bit 2
5 GND
Ground
6 RGND
Red Ground
7 GGND
Green Ground
8 BGND
Blue Ground
19
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
20
23-Kit Altera Development amp Education Board 1 (Kit DE2)
231-Layout e Componentes
Uma fotografia do Kit DE2 eacute mostrado na Figura 9 onde se ve a aparencia do kit e as
indicaccedilotildees das localizaccedilatildeo dos componentes e conectores
Figura 9 ndash O kit DE2 (DE2_UserManualpdf 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 eacute listado os componentes fornecidos na placa do Kit DE2
Tabela 4 ndash Lista dos componentes do Kit DE2 (DE2_UserManualpdf contrado no cd do kit)
1 Altera Serial Configuration device ndash EPCS4
2 USB Blaster (on board) for programming and user API control both JTAG and Active 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
21
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
PS2 mousekeyboard connector
17
Two 40-pin Expansion Headers with diode protection
18
Powered by either a 75V DC adapter or a USB cable
232 Diagrama de Blocos do Kit DE2
Figura 10 ndash Diagrama de Blocos do KIT DE2 (DE2_UserManualpdf contrado no cd do kit)
22
A Tabela 5 mostra a informaccedilatildeo detalhada do Bloco Cyclone II FPGA 2C20 mostrado na
Figura 10
Tabela 5 ndash Detalhes do FPGA Cyclone II
FPGA Cyclone II 2C35
18752 LErsquos
52 M4K RAM blocks 240K total RAM bits 26 embedded multipliers 4 PLLrsquos 315 user IO pinrsquos FineLine BGA 484-pin package
A Tabela 6 mostra a informaccedilatildeo detalhada do Bloco do dispositivo de configuraccedilatildeo Serial e
circuito Usb-Blaster
Tabela 6 - Descriccedilatildeo das configuraccedilotildees que satildeo feitas atraveacutes da Serial e Usb-Blaster
Configuraccedilatildeo do dispositivo Serial e do Circuito Usb-Blaster Configuraccedilatildeo do dispositivo serial Altera EPCS4 On-Board Usb-Blaster
para Controle de API de usuaacuterio e programaccedilatildeo
JTAG e AS satildeo os modos do programaccedilatildeo suportados
A Tabela 7 mostra a descriccedilatildeo do Bloco da SRAM
Tabela 7 ndash Descriccedilatildeo do Bloco da SRAM
SRAM 512-Kbyte Static RAM memory chip Organizado em 256K x 16 bits Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 8 mostra a descriccedilatildeo do Bloco da SDRAM
Tabela 8 - Descriccedilatildeo do Bloco da SDRAM
SDRAM 8-Mbyte Single Data Rate Synchronous Dynamic RAM memory chip Organizado em 1M x 16 bits x 4 Banks Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
23
A Tabela 9 mostra a descriccedilatildeo do Bloco Memory Flash
Tabela 9 ndash Descriccedilatildeo da Memoria Flash
Memory Flash
4-Mbyte NAND Flash memory 8-bit data bus Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 10 mostra a descriccedilatildeo do Bloco SD card socket
Tabela 10 - Descriccedilatildeo do SD card socket
SD card socket Fornece o modo SPI para o acesso ao cartatildeo SD Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 11 mostra a descriccedilatildeo 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) Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 12 mostra a descriccedilatildeo dos Clock inputs
Tabela 12 - Descriccedilatildeo das entradas de Clocks
Clock inputs Oscilador de 50 Mhz Oscilador 27 Mhz Entrada para clock
externo
A Tabela 13 mostra a descriccedilatildeo do Aacuteudio CODEC
Tabela 13 - Descriccedilatildeo do Aacuteudio CODEC
Aacuteudio CODEC 4-Mbyte NAND Flash memory 8-bit data bus Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
24
A Tabela 14 mostra a descriccedilatildeo do Bloco VGA DAC
Tabela 14 ndash Descriccedilatildeo da saiacuteda VGA DAC
VGA
DAC
Usa 4 bits DAC para cada cor (RGB) Com 15 pinos no conector VGA convencional (fecircmea) Suporta uma resoluccedilatildeo de 640 x 480 com um refresh de ateacute 100Hz Pode ser usando com o FPGA Cyclone II para implementar um Encoder para TV
A Tabela 15 mostra a descriccedilatildeo do Bloco Serial Ports amp PS2
Tabela 15 ndash Descriccedilatildeo da Serial Port e PS2
Serial Ports amp PS2 Uma porta RS-232
Uma posta PS2 Um conector Serial para a porta do RS-232 Conector PS2 para conectar um mouse ou teclado ao DE2
A Tabela 16 mostra a descriccedilatildeo do Bloco dos Two 40 - pin expansion headers
Tabela 16 ndash Descriccedilatildeo dos conectores de expansatildeo de 40 pinos
Two 40 - pin expansion headers 72 pinos de IO do Clyclone II bem como 8 power e groundrsquos satildeo trazidos aos 2 conectores de expansatildeo de 40 pinos cada Os conectores de 40 pinos tambeacutem aceitam os cabos IDE de 40 pinos Proteccedilatildeo resistiva eacute fornecida
233 Endereccedilo das Pinagens dos Componentes usados no Projeto
2331 PushButtons
A Figura 11 mostra uma foto dos PushButtons do kit Key[30] a ordem eacute o button da
esquerda eacute o mais significativo e o mais de direita o menos signigicativo
Figura 11 ndash Os 4 PushButtons do DE2Key[30] (DE2_UserManualpdf contrado no cd do kit)
25
A Tabela 17 mostra os pinos da FPGA aos PushButtons
Tabela 17 ndash Pinos da FPGA referentes a cada PushButton (DE2_UserManualpdf contrado no cd do kit)
2332 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 ndash Modulo de displays de 7 segmentos (DE2_UserManualpdf encontrado no cd do kit)
Figura 13 ndash Index de um display (DE2_UserManualpdf encontrado no cd do
kit)
26
A Tabela 18 mostra os pinos da FPGA referente a cada segmento dos displays de 7
segmentos do modulo
Tabela 18 ndash Pinos da FPGA referentes a cada segmento dos Displays do modulo
27
2333 VGA
A Figura 14 esta em forma de onda da temporizaccedilatildeo horizontal e vertical da VGA do Kit
DE2
Figura 14 ndash Temporizaccedilatildeo horizontal da VGA
A Tabela 19 mostra a especificaccedilatildeo da temporizaccedilatildeo horizontal da VGA
Tabela 19 ndash Especificaccedilatildeo da temporizaccedilatildeo horizontal da VGA
A Tabela 20 mostra a especificaccedilatildeo da temporizaccedilatildeo vertical da VGA
Tabela 20 ndash Especificaccedilatildeo da temporizaccedilatildeo vertical da VGA
28
A Tabela 21 mostra os pinos da FPGA referente a cada pino de saida do conector VGA do
Kit DE2
Tabela 21 ndash Pinos da FPGA referentes a saiacuteda do Conector VGA do Kit
29
CAPIacuteTULO 3 ndash ESPECIFICACcedilAtildeO TECNICA
Nesse capiacutetulo tem-se uma descriccedilatildeo dos principais moacutedulos do projeto Satildeo eles Software
Firmware e Hardware
Inicialmente eacute apresentada a visatildeo geral do sistema e a descriccedilatildeo funcional de cada moacutedulo
A Figura 15 apresenta o diagrama em blocos do sistema
Figura 15 - Moacutedulos do projeto
31 Descriccedilatildeo de Software
O Software eacute uma das interfaces com o usuaacuterio
312 Diagrama de Blocos do Software
30
312 Modulo do PC
Neste modulo eacute 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
32 Descriccedilatildeo de Hardware
321 Modulo Touch-Screen
O usuaacuterio ao tocar o Touch-Screen (AT4 touch-screen resistivo de 4 fios) ocorre uma
mudanccedila nas tensotildees do eixo X e do eixo Y devido a resistecircncia gerada pelo ao toque do usuaacuterio
em uma determinada regiatildeo da tela essa mudanccedila de tensatildeo eacute interpretada pela placa
controladora COACh IIs do Touch-Screen e enviada via serial para o Kit DE2 que interpretaraacute
os dados e faraacute o devido processamento
322 Modulo FPGA
O Hardware corresponde tanto aos componentes fiacutesicos presentes no kit de desenvolvimento
quanto aos componentes que seratildeo configurados na FPGA Satildeo diversos componentes escritos
em linguagem de descriccedilatildeo de hardware
No um dos principais componentes de hardware utilizado modulo eacute o processador NIOS II
para se ter uma ideacuteia o processador NIOS II eacute capaz gerenciar os dispositivos externos a FPGA
utilizando controladores de memoacuterias controladores de VGA entre outros E tambeacutem eacute possiacutevel
o proacuteprio usuaacuterio criar seu componente para ser controlado atraveacutes do processador NIOS
II(Altera 2007)
31
3221 O Processador NIOS II
Atraveacutes do software SOPC da ALTERA foi possiacutevel montar a arquitetura de hardware do
processador NIOS II bem como especificar as interfaces que ele iraacute controlar atraveacutes do firmwar
feito no NIOS II IDE
Na Tabela 22 eacute no campo Module Name onde estatildeo os moacutedulos que foram usados para
definir o processador NIOS II e os componentes externos que ele iraacute controlar e no campo
Description esta a descriccedilatildeo do nome de cada modulo
Tabela 22 ndash Moacutedulos dos componentes e suas descriccedilotildees
3222 Firmware para o NIOS II
O Firmware foi feito utilizando a linguagem C utilizando a ferramenta NIOS II IDE Atraveacutes
do firmware eacute possiacutevel 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 graacuteficas para controlar a vga e serial e
USB-BLASTER eacute encarregado em enviar todo o desenvolvimento do projeto para o Kit DE2
323 Configuraccedilatildeo da FPGA via JTAG
Depois de configurado o hardware do processador NIOS II eacute preciso fazer o load do NIOS
para a FPGA e para que isso aconteccedila eacute necessaacuterio que atraveacutes do software Quartus II da
ALTERA utilizando a interface JTAG utilizando o cabo USB-BLASTER
32
324 Comunicaccedilatildeo entre FPGA e o Touch-Screen
Para comunicaccedilatildeo entre dos dois hardwares Touch-Screen e o FPGA eacute utilizando uma
interface serial RS-232
A configuraccedilatildeo da interface eacute a seguinte
Bits de dados 8
Taxa de dados 5600(bps)
A Tabela 23 mostra a relaccedilatildeo dos pinos da porta serial com os pinos da FPGA
Tabela 23 ndash Pinos da FPGA referente agrave pinagem da interface Serial
E a Figura 16 mostra o desenho correspondente da interface serial
Figura 16 ndash Conector da interface serial do kit DE2
33 Especificaccedilatildeo de Validaccedilatildeo
331 Validaccedilatildeo de Hardware
A validade do hardware se faz com a anaacutelise de todos os moacutedulos envolvidos
As necessidades satildeo estudadas os componentes externos ao FPGA satildeo selecionados de
acordo o processador nios e os controladores dos moacutedulos externos como VGA e SERIAL satildeo
enviados ao modulo FPGA
Os resultados obtidos na tela do monitor e a recepccedilatildeo dos dados pela serial comprovam o
funcionamento do modulo de comunicaccedilatildeo da serial e vga
33
332 Validaccedilatildeo de Software
A validaccedilatildeo do controle da interface touch-screen faz-se a partir dos resultados obtidos das
funccedilotildees escritas na linguagem C especificas para cada componente externos ao FPGA essas
funccedilotildees tornam possiacuteveis que o processador NIOS na FPGA tenha total controle sobre os
moacutedulos externos como a VGA e a SERIAL
As funccedilotildees que satildeo utilizadas para validar o funcionamento do software satildeo para a VGA os
meacutetodos de controle (alt_up_vga_draw_char_1b( char int x int y)) e (alt_up_vga_draw_pixel(
color x y))
O meacutetodo (alt_up_vga_draw_char_1b( char int x int y)) tem a funcionalidade de escrever
caracteres na tela do monitor e a descriccedilatildeo da sua assinatura ldquoparacircmetrosrdquo eacute a seguinte char eacute o
caractere que eacute escrito em alguma posiccedilatildeo na tela int x eacute a posiccedilatildeo x da tela do monitor e int y eacute
a posiccedilatildeo y da tela do monitor sendo que a resoluccedilatildeo utilizada eacute de 80x60 ou seja x natildeo pode
passar de 80 e y natildeo pode passar de 60
O meacutetodo (alt_up_vga_draw_pixel( color int x int y)) tem a funcionalidade de ldquopintarrdquo o
fundo da tela do monitor o meacutetodo de imprimir caracteres tem preferecircncia sobre este meacutetodo ou
seja os caracteres sempre ficam sob a aacuterea pintada ou seja o caractere sempre ficara em cima da
aacuterea pintada a descriccedilatildeo da assinatura deste meacutetodo eacute a seguinte color eacute a valor da cor que pode
ser um valor inteiro ou em hexadecimal para definir uma cor de alguma posiccedilatildeo da tela definidos
pelos paracircmetros x e y
As funccedilotildees que satildeo utilizadas para validar o funcionamento do software satildeo para a Serial os
meacutetodos de controle de transmissatildeo (fread( packet sizeof(packet) 1 serial_fp )) a funccedilatildeo
fread eacute utilizada para a leitura via interrupccedilatildeo dos pacotes que a controladora envia para o kit
DE2 as assinaturas do meacutetodo fread tem a seguinte composiccedilatildeo packet eacute a estrutura do pacote
que seraacute recebido o sizeof(packet) eacute o diz qual eacute o tamanho exato da estrutura criada e o
serial_fp eacute o handle da porta serial
Uma observaccedilatildeo muito importante eacute que para o total funcionamento eacute necessaacuterio 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 rs232h e rs232c onde estatildeo os meacutetodos de
controle da SERIAL e alt_up_vgah alt_up_vgac onde estatildeo os meacutetodos de controle para a
VGA Para tornar estes meacutetodos acessiacuteveis eacute preciso fazer os includes dos arquivos h no
projeto da NIOS IDE
A figura 17 mostra a utilizaccedilatildeo dos meacutetodos (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
34
int y)) utlizado para escrever os caracteres lsquoarsquo e lsquobrsquo dentro de um grupo de pixel previamente
pintado a (alt_up_vga_draw_pixel( color int x int y)) natildeo pinta um pixel de cada vez e sim
um bloco de 8x8 pixels
Figura 17 - Tela para a validaccedilatildeo dos testes com as bibliotecas graacuteficas do componente VGA
34 Recursos Necessaacuterios
A Tabela 24 apresenta os ambientes de desenvolvimento e ferramentas de software utilizadas
e na Tabela 25 as linguagens necessaacuterias Estas ferramentas foram utilizadas em ambiente
Windows Xp
Tabela 24 - Ferramentas de Desenvolvimentos e Ambientes
Software Para que foi Utilizado
Quartus II Para a definiccedilatildeo de qual o modelo de FPGA utilizado compilaccedilatildeo e simulaccedilatildeo e envio Load do NIOS para FPGA
SOPC Para definiccedilatildeo da do processador NIOS II e com quais componentes externos ele ira interagir atraveacutes dos controladores dos respectivos componentes
NIOS II IDE Para implementaccedilatildeo do firmware do processador NIOS II utilizando a linguagem em C
35
Borland C++ Builder Para desenvolvimento de ima interface de comunicaccedilatildeo via caboUSB-
BLASTER para o envio de imagem para o kit
Tabela 25 ndash Linguagens de programaccedilatildeo utilizadas
Linguagem Ferramenta C++ Borland C++ Builder VerilogVHDL Quartus II C NIOS II IDE
35 Viabilidade Teacutecnico-Econocircmica
O valor do projeto esta descrito na Tabela 26
Tabela 26 ndash Relaccedilatildeo dos Custos
DESCRICcedilAtildeO CUSTO APROXIMADO (R$) COMPONENTES ELETROcircNICOS 50000 1 Kit DE2 Cyclone II 35000 1 Monitor de Computador 35000 HORAS TRABALHADAS (400 horas) 750000 CUSTO TOTAL APROXIMADO (R$) 870000
36 Cronograma do Projeto
A tabela 27 contem as informaccedilotildees do cronograma do projeto
Tabela 27 ndash Cronograma de datas e entregas do projeto
Data Atividade a ser apresentada 050307 Entrega das propostas de projeto para avaliaccedilatildeo do colegiado 020407 Entrega das especificaccedilotildees teacutecnicas do projeto aprovado 110607 Entrega do projeto (monografia) e dos testes preliminares do mesmo 060807 Apresentaccedilatildeo preacutevia da implementaccedilatildeo do projeto especificado 011007 Apresentaccedilatildeo do projeto implementado
Qualificaccedilatildeo para a fase final 291007 Segunda apresentaccedilatildeo do projeto implementado para os que natildeo o fizeram no
dia 011006 com decreacutescimo da nota Qualificaccedilatildeo para a fase final
051107 Entrega da documentaccedilatildeo completa em espiral para a banca examinadora em 3 vias contendo a monografia manual teacutecnico manual do usuaacuterio e artigo cientiacutefico
261107 Defesa formal dos projetos com apresentaccedilatildeo oral para a banca examinadora 101207 Entrega da documentaccedilatildeo completa revisada e corrigida encadernada no
padratildeo da biblioteca (capa dura) em duas vias contendo a monografia manual teacutecnico manual do usuaacuterio e artigo cientiacutefico Entrega do CD contendo no formato WEB todo o conteuacutedo dos manuais
36
CAPIacuteTULO 4 ndash ESPECIFICACcedilAtildeO TECNICA
41 Requisitos Miacutenimos
Os requisitos miacutenimos de Hardware satildeo
Funcionamento das interfaces Serial e USB-Blaster
Funcionamento do Kit DE2
PC
Os requisitos miacutenimos de Software
Windows Xp
Quartus II
SOPC
NIOS II IDE
42 Projeto de Hardware
O hardware utilizado nesse projeto inclui componentes presentes na Placa de
Desenvolvimento Nios II - ediccedilatildeo DE2 Cyclone II EP2C35 e principalmente o hardware que seraacute
configurado na FPGA escrito em linguagem de descriccedilatildeo de hardware (HDL)
O um dos principais blocos de hardware eacute o processador NIOS II o Avalon Bus e os
controladores de componentes externos a FPGA e de comunicaccedilatildeo presentes no Kit
37
O software embarcado (firmware) estaraacute rodando nessa arquitetura Eacute uma arquitetura
completa construiacuteda com a ferramenta SOPC Builder da Altera A Figura 18 representa em
blocos os principais componentes dessa arquitetura
Figura 18 ndash Representaccedilatildeo em blocos do hardware do NIOS II
421 Funcatildeo do Touch-Screen
Outro bloco importante eacute o do Touch-Screen esta tela sensiacutevel ao toque pois como esta tela
trabalha com resistecircncia ao ser tocado em uma determinada regiatildeo uma resistecircncia eacute gerada e a
tensatildeo de saiacuteda eacute modificada a alimentaccedilatildeo desta placa eacute proveniente de sua placa controladora
a mesma placa que recebe a tensatildeo de saiacuteda modificada de acordo com a regiatildeo tocada na tela
Para verificar as caracteriacutesticas detalhadas do Touch-Screen e sua placa controlador favor ver
o Capitulo 2
422 Monitor e VGA
O Monitor inicialmente tem apenas o desenho de um botatildeo que ao ser tocado via touch
mudara a cor de toda a tela A imagem exibida no monitor tem uma resoluccedilatildeo de
38
Protoacutetipo das telas para os testes esta na Figura 19 a tela verde quando a touch natildeo eacute tocando
na regiatildeo do botatildeo de OK quando o botatildeo de OK for tocado a tela do monitor mudara de cor
ficando azul
Figura 19 ndash Tela do monitor
No Capitulo 2 estatildeo todas as caracteriacutesticas da pinagem e do conector VGA
423 Comunicaccedilatildeo serial
Entre a placa controladora do Touch-Screen e o FPGA existe uma comunicaccedilatildeo 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 manipulaccedilatildeo da imagem que eacute
mostrada no monitor
No capitulo 2 estatildeo das descriccedilotildees dos pinos e do conector da comunicaccedilatildeo Serial
O pacote serial que eacute transmitido pela placa controladora do touch-screen possui 10 bytes de
comprimento e segue a seguinte sequumlecircncia de envio
[55] [54] [] [] [] [] [] [] [] []
Sequumlecircncia dos bytes
Os dois primeiros bytes identificam o Header do pacote
O terceiro byte eacute 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 agrave posiccedilatildeo do eixo x onde a tela foi tocada
O sexto e o seacutetimo byte correspondem a posiccedilatildeo do eixo y onde a tele foi tocada
O restante os bytes identificam o tail do pacote recepcionado pelo kit DE2
39
424 Comunicaccedilatildeo USB-Blaster
Essencial para envio do projeto desenvolvido para o kit DE2 tambeacutem muito utilizado para o
debug deste projeto
435 Memoacuteria SDRAM
A memoacuteria utilizada para armazenar grandes quantidades de dados eacute a SDRAM (ver detalhes
no Capitulo 2)
Essa memoacuteria eacute muito raacutepida serviu muito bem para armazenar o firmware deste projeto
pois tem o tempo acesso ideal para ler as instruccedilotildees que utilizaram a VGA e tambeacutem eacute raacutepida o
suficiente para fazer a leitura dos dados e disponibilizar na saiacuteda VGA do kit
426 Memoacuteria FLASH
Eacute onde seraacute armazenado o firmware possui espaccedilo suficiente para isso 4MB e uma memoacuteria
mais lenta e por isso natildeo foi usada para armazenar dados para serem jogados na vga do Kit
43 Software
431 Software (Firmware)
O software tem de funccedilatildeo de utilizar as bibliotecas das controladoras dos componentes
externos a fim de controlar estes componentes de acordo com o necessaacuterio para atender o
objetivo do projeto
Ou seja uma tela inicial eacute apresentada e o usuaacuterio ao tocar na nela o kit recebe um pacote via
serial e interpreta a posiccedilatildeo da tela em que foi tocado e logo em seguida envia o resultado deste
toque para o monitor
432 Objetivos
O usuaacuterio 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 accedilatildeo de acordo com a posiccedilatildeo da tela
tocada alterando assim a imagem anterior com o resultado do toque
Interpretar o toque de usuaacuterio na tela touch-screen recepccedilatildeo do pacote via serial da placa
controladora do touch-screen tratamento do pacote e interpretaccedilatildeo das coordenadas x e y do
40
toque Realizaccedilatildeo de alguma accedilatildeo que resultara na alteraccedilatildeo da imagem da tela atual de acordo
com a funccedilatildeo em que as coordenadas foram previamente definidas para o que deve ser feito
432 Funccedilotildees
A Tabela 28 tem as principais funccedilotildees que foram implementadas para o sistema
Tabela 28 ndash Funccedilotildees do sistema firmware
FUNCcedilOtildeES Tela de um pequeno editor de texto Tratamento do sinal recebido da serial devido a um toque na tela Interpretaccedilatildeo do pacote serial e transfomaccedilatildeo para coordenadas x e y Transformaccedilatildeo das posiccedilotildees do toque na tela em alguma accedilatildeo enviando o resultado para a VGA Imagem final disponibilizada ao usuaacuterio de acordo com o toque que foi dado na tela Controlar dispositivos cada dispositivo pode ser controlado pelo seu respectivo contrador atraveacutes de seu endereccedilo base VGA SERIAL USB-BLASTER IO(Leds Switches etc) do Kit DE2
O Firmware do processador NIOS II eacute que realizaraacute a integraccedilatildeo entre hardware com
hardware Com o firmware controlando o NIOS II eacute possiacutevel interagir com os dispositivos
externos a FPGA Tornando possiacutevel a integraccedilatildeo da FPGA com a peliacutecula touch-screen e um
monitor sem a ajuda de um PC a uacutenica ajuda do pc seria para enviar dados de uma imagem para
o Kit DE2
44 Validaccedilatildeo e Testes
Inicialmente os moacutedulos da VGA e comunicaccedilatildeo SERIAL natildeo estavam funicionando
apenas o devido agrave fraca documentaccedilatildeo sobre o kit DE2 foi possiacutevel apenas fazer testes com o
Processador NIOS II pois sobre este existem bastantes documentos e exemplos que podem ser
utilizados
Nesta primeira parte foi possiacutevel testar o NIOS II para controlar o display bototildees e switchs
do kit DE2
Com o NIOS II funcionando completamente foi necessaacuterio porta-lo para o kit DE2 o que foi
simples pois como sabemos esses kits satildeo portaacuteveis entre si apenas mudando a pinagem e a
capacidade da FPGA
Com o Kit DE2 foi possiacutevel fazer os testes necessaacuterios com a comunicaccedilatildeo serial
inicialmente testada via terminal conversando diretamente com o kit foi possiacutevel fazer o
seguinte teste os caracteres que eram entrados via teclado chegavam ao kit via serial e o o
41
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 comdumpexe que eacute facilmente encontrado pelas ferramentas
de pesquisa da web e tambeacutem existem vario outros programas como este e o comdump eacute
utilizado para debug da porta serial do pc conectado diretamente na placa controladora do touch-
screen e foi a peccedila chave para o entendimento do pacote enviado pela placa controladora
Figura 20 - Cumdumpexe programa de debug da porta serial
A explicaccedilatildeo de cada byte do pacote esta explicado no item 423
Apos o entendimento completo da transmissatildeo 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 natildeo 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 ateacute o momento em que
foi testado os meacutetodos proprietaacuterios da Altera para fazer a VGA funcionar os meacutetodos esses
implementados em C
A figura 21 onde contem o teste baacutesico feito que foi a chave principal para o sucesso deste
projeto
42
Como dito no item 332 do projeto foram utilizados as funccedilotildees da controladora VGA esses
meacutetodos 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 eacute utilizado o meacutetodo alt_up_vga_draw_pixel( color int
x int y) onde color eacute a cor do bloco de pixels e x e y satildeo as coordenadas da tela onde o bloco
que seraacute pintado
Para escrever um caractere sobre um bloco de pixels pintado eacute utilizado a funccedilatildeo
alt_up_vga_draw_char_1b( char int x int y) onde char eacute o caractere a ser impresso e x e y satildeo
as coordenadas da tela onde os o caractere eacute impresso
Figura 21 - Teste baisco do funcionamento do componente VGA do kit DE2
43
CAPIacuteTULO 5 ndash VALIDACcedilAtildeO E RESULTADOS
Os resultados foram os melhores possiacuteveis pois com a utilizaccedilatildeo dos IP CORE
ldquocontroladorasrdquo dos componentes externos como VGA e SERIAL e seus meacutetodos de para
controle eacute possiacutevel controlar facilmente esses moacutedulos atraveacutes do firmware desenvolvido para o
processador NIOS que consegue realizar operaccedilotildees transparentes acessando dos meacutetodos de
controle dos moacutedulos
Apos os testes baacutesicos 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 baacutesico de editor de texto
A figura 22 mostra um teste utilizando os meacutetodos de controle disponiacuteveis para o IP CORE
da VGA para primeiramente fazer o menu da aplicaccedilatildeo desenvolvido em na linguagem C
Figura 22 ndash Menu baacutesico do editor de texto
Para desenhar o menu da figura acima foi utilizado os meacutetodos proprietaacuterios de controle da
VGA citados no capitulo 4 e tambeacutem estruturas de repeticcedilatildeo para que a tela fosse varrida e os
pixels desenhados nos respectivos lugares da tela bem como os caracteres
Na figura 23 eacute definida a seguinte estrutura em C para representar de um botatildeo
Figura 23 - Estrutura em C para representar um botatildeo
44
A figura 24 eacute a declaraccedilatildeo dos bototildees que seratildeo utilizados pelo aplicativo editor de texto
para comprovar o funcionamento do controle da interface touch-screen
Apenas o que esta dentro da marcaccedilatildeo quadrada representa os bototildees do menu da figura 23
e o restante satildeo os bototildees do teclado do editor de texto
Figura 24 - Declaraccedilatildeo dos bototildees do menu
45
A figura 25 representa o meacutetodo drawnButtonUp responsaacutevel por desenhar os bototildees na tela
de acordo com as posiccedilotildees em que foram declarados os bototildees deste meacutetodo satildeo desenhados
para parecerem que estatildeo ldquolevantadosrdquo e natildeo pressionados
Note que foram utilizados os meacutetodos proprietaacuterios de controle da VGA
alt_up_vga_draw_pixel pra pitar os pixels e alt_up_vga_draw_char_b1 para desenhar caracteres
como jaacute foi especificado no item 44 do projeto
Figura 25 ndash Meacutetodo drawButtonUp
46
O meacutetodo que desenha o caption do botatildeo se chama drawButtonText desenha os caracteres
em cima dos bototildees natildeo importa se o botatildeo esta pressionado ou natildeo
A figura 26 mostra como este meacutetodo foi implementado e ele eacute chamado no final de cada
meacutetodo onde algum tipo de botatildeo eacute desenhado quando o meacutetodo que desenha o botatildeo normal
quanto o pressionado e ateacute mesmo o do teclado
Figura 26 ndash Meacutetodo que escreve o caption de cada botatildeo
47
A figura 27 mostra o meacutetodo drawButtonDown que desenha o botatildeo pressionado ou seja
quando o usuaacuterio pressiona a regiatildeo correspondente a um botatildeo do menu no touch-screen o
mesmo redesenharaacute o botatildeo parecendo um efeito de botatildeo afundado note que no final do
meacutetodo novamente eacute chamado o meacutetodo drawButtonText que reescreveraacute o caption do botatildeo
como mostra o meacutetodo da figura 26 e esta ilustrado na figura 28
Figura 27 ndash Meacutetodo que desenha o botatildeo pressionado
48
Dependendo da aacuterea do menu que o usuaacuterio pressionar no touch-screen causar o efeito de
pressionado como mostra a figura 28
Figura 28 ndash Efeito do botatildeo de menu apertado
Na figura 29 eacute a representaccedilatildeo de quando a aacuterea correspondente ao botatildeo ldquoamarelordquo eacute
pressionada
Apos estes testes baacutesicos comprovando o funcionamento da interface graacutefica para o usuaacuterio
foi definido o restante dos componentes da tela que eacute constituiacutedo de um prompt e um teclado
qwerty que foi essencial para comprovar o perfeito funcionamento do controle da interface
touch-screen
49
51 Interface Grafica Final
A figura 29 mostra a interface final que o usuaacuterio teraacute para poder verificar o funcionamento
do controle da interface touch-screen
Figura 29 ndash Interface final touch-screen do usuaacuterio
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
511 Descriccedilatildeo do editor de texto
O menu possui 4 botoes cada um com sua respectiva funcionalidade quando o usuario
pressiona a area do botatildeo ldquoapagarrdquo uma vez entatildeo um carectere do prompt eacute apagado Quando eacute
precionado a area correspondente ao botatildeo ldquoResetrdquo todo o conteudo do prompt seraacute apagado e o
plano de fundo retornaraacute a cor branca Quando o botatildeo ldquoamarelordquo eacute pressionado o fundo da tela
passa a ser amarelo e o mesmo acontece se o usuario precionar o botatildeo verde tornando o cor de
fundo verde
50
O teclado possui 29 teclas sendo duas delas que equivalem ao ENTRA ldquoENTrdquo e ao
SPACE ldquoSPCrdquo Quando o usuario pressiona a area correspondente a algum botatildeo do teclado o
mesmo muda sua cor para azul e o seu caractere eacute disponibilizado no prompt
Essas funcionalidades nada mais satildeo do que um bom exemplo de como funciona
corretamente o controle da interface touch-screen
52 Prompt e o Teclado
A estrutura feita na linguagem C que define o prompt da figura 28 esta representado na
figura 30
Figura 30 ndash Estrutura em C para representar o prompt
A figura 31 mostra o metodo drawPrompt utilizado para desenhar na tela o prompt
Figura 31 ndash Meacutetodo que desenha o prompt
51
A estrutura do teclado eacute a mesma utilizada pela figura 23 e tambem eacute criado satildeo
inicializados na figura 24
O restante as implementaccedilotildees estatildeo disponiveis no cd deste documento
Quando algum botatildeo do teclado eacute pressionado sua cor muda para azul e sua letra
correspondente eacute escrita o prompt
A figura 32 ilustra quando o usuaacuterio aperta a letra lsquotrsquo na peliacutecula touch-screen
Figura 32 - Teste do prompt e o teclado
52
53 Controle da Interface Touch-Screen
Depois do todos os testes com o processador NIOS e a integraccedilatildeo do mesmo com os
moacutedulos externos como a porta SERIAL e a saiacuteda VGA eacute possiacutevel utilizando o touch-screen
criar uma interface amigaacutevel e faacutecil de usar para o usuaacuterio utilizando um firmware capaz de
interpretar os sinais via serial vindo da controladora do touch ao detectar que um toque foi dado
pelo usuaacuterio e realizar algumas accedilotildees que neste caso se comportam como um editor de texto
baacutesico
A figura 33 mostra como foi validado este projeto e seus moacutedulos controlando uma
interface touch-screen para chegar no resultado abaixo digitado pelo usuaacuterio comprovando o
funcionamento e viabilidade deste projeto
Figura 33 ndash 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 mudanccedilas podendo ser alterado rapidamente o tipo de
aplicaccedilatildeo ou integrado rapidamente com outro projeto
53
CAPIacuteTULO 6 - CONCLUSAtildeO
Uma das principais dificuldades no desenvolvimento deste projeto foi fazer o levantamento
da documentaccedilatildeo sobre o processador NIOS e os moacutedulos externos a FPGA do Kit DE2 Como
natildeo foi feito algum projeto antes que utilizasse a interface VGA e a SERIAL do Kit DE2 levou-
se muito tempo ateacute conseguir adquirir e ordenar o conhecimento que foi sendo adquirido ateacute
conseguir dar os primeiros passos e realizar os primeiros testes com a VGA e a SERIAL Outro
grande obstaacuteculo foi ter de descobrir que para que o NIOS controlasse os moacutedulos externos a
FGPA fosse necessaacuterio copiar os arquivos c e h dos respectivos componente para dentro do
projeto
Mas depois de todos os problemas com os moacutedulos externos solucionados cada modulo do
projeto foi sendo desenvolvido separadamente ateacute seu total funcionamento Natildeo tive dificuldades
com a linguagem da programaccedilatildeo pois o Firmware do processador NIOS eacute o C a qual mais tive
contato na faculdade
Outro desafio foi fazer a peliacutecula 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
peliacutecula natildeo 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 possiacutevel
comeccedilar a fazer os testes necessaacuterios para prosseguir com o projeto aprender como o a peliacutecula
identifica um toque e manda este sinal para a controladora e a controladora transforma este sinal
em um sinal serial que eacute 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 accedilotildees
que as coordenadas jaacute estatildeo previamente calibradas no firmware para fazer bem como mudar de
cor a tela fazer o efeito de um botatildeo subindo e descendo etc
Varias vezes o projeto parou de funcionar entatildeo 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 memoacuteria abundante etc uma das
facilidades eacute a faacutecil alteraccedilatildeo do projeto podendo ser integrado a outro ou ateacute mesmo alterado
para realizar outros tipos de accedilotildees com o touch-screen
Existem vaacuterios melhoramentos que podem ser executados no projeto um deles eacute tentar
interpretar de uma maneira diferente os valores do eixo y pois do jeito que esta a resoluccedilatildeo do
eixo y esta muito baixa dificultando o reconhecimento de toques em aacutereas pequenas Talvez a
inclusatildeo de mais alguns bytes no pacote de leitura da serial resolva o problema
54
Uma ideacuteia para um proacuteximo projeto que use a interface touch-screen poderia ser a
integraccedilatildeo com o projeto do nosso colega Roberto Junqueira ou a desenvolvimento de uma
placa controladora para o touch-screen
Este trabalho eacute uma modesta contribuiccedilatildeo para o uso de FPGAs e do processador embarcado
NIOS implementado em VHDL pela Altera que acredito que vai abrir vaacuterios caminhos pois
com este projeto alguns caminhos ficaram mais faacuteceis de percorrer daqui para a frente
55
CAPIacuteTULO 7 - REFEREcircNCIAS BIBLIOGRAacuteFICAS
AMORE Roberto drsquo VHDL Descriccedilatildeo e Sintese de Circuitos Rio de Janeiro ed LTC
2005
Elotouch Touch-Screen e Controladora Descriccedilatildeo do funcionamento e descriccedilatildeo
tecnologia Touch-Screen lthttpwwwelotouchcombrgt Acesso em fevereiro de 2007
ALTERA University Program IP Cores Instalaccedilatildeo de IP Cores e referencias sobre os
componentes dos kits DE1 e DE2 Disponivel em lthttpwwwalteracomeducationunivip-
coresunv-ip-coreshtmlgt Acesso em abril de 2007
ALTERA NIOS II Documentaccedilatildeo sobre o pprocessador embracado NIO II Disponivel
em lthttpwwwalteracomproductsipprocessorsipm-indexjspgt Acesso em Abril de 2007
ALTERA Development amp Education Board 2 (DE2) Manual do usuario Disponivel no
de que acompanha o Kit DE2 ltDE2_user_manualDE2_UserManualpdfgt Acesso em
fevereiro de 2007
12
CAPIacuteTULO 1 - INTRODUCcedilAtildeO
A computaccedilatildeo reconfiguraacutevel vem sendo utilizada em larga escala para projetos de
hardware que necessitem de um grande poder de processamento Neste campo um dispositivo
muito utilizado eacute a FPGA (Field-Programmable Gate Array)
As FPGArsquos satildeo circuitos de hardware que podem ser modificados praticamente em
qualquer momento durante o uso As FPGArsquos consistem em array de blocos loacutegicos
configuraacuteveis que implementam funccedilotildees loacutegicas 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 mudanccedilas raacutepidas no hardware
Em microprocessadores de uso geral se tem um hardware que natildeo pode ser modificado fixo
mas no FPGA essa mudanccedila eacute bastante simples e raacutepida feita via software
Este projeto teve sua proposta lanccedilada a partir da ideacuteia concedida pelo Prof Valfredo Pilla
Junior de interface Touch-Screen
O projeto eacute sobre o controle de uma interface com uma peliacutecula Touch-Screen onde eacute
possiacutevel que o usuaacuterio ao tocar uma peliacutecula sensiacutevel ao toque o sistema desenvolvido possa
realizar algum tipo de alteraccedilatildeo na imagem apresentada em um monitor que se dispotildee atraacutes do
Touch-Screen
O objetivo foi desenvolver um sistema capaz de receber e manipular a aquisiccedilatildeo dos dados
gerados pela placa controladora atraveacutes toque na peliacutecula Touch-Screen que estaraacute na frente da
tela de um monitor converter estes dados realizar uma alteraccedilatildeo na tela inicialmente
apresentada e disponibilizar o resultado da alteraccedilatildeo atualizando a tela do monitor
O hardware do sistema eacute basicamente composto na parte da aquisiccedilatildeo por uma peliacutecula
Touch-Screen e uma placa controladora da proacutepria peliacutecula recepccedilatildeo e processamentos feitos no
Kit DE2 (Development amp Education 1) Board que enviara o resultado atraveacutes da saiacuteda VGA
(Viacutedeo Graphics Array) para um monitor CRT (Catodic Ray tube)
Este sistema eacute justificado pois as interfaces intuitivas com telas Touch-Screen satildeo
utilizadas em uma ampla gama de mercados
Por exemplo
Comeacutercio Realizar um atendimento de forma raacutepida e faacutecil eacute objetivo da automaccedilatildeo 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 usuaacuteriomaacutequina de grandes complexos
equipamentos devido agrave eliminaccedilatildeo do teclado do mouse e de outros perifeacutericos de um ambiente
industrial evitando distraccedilotildees em um ambientes geralmente muito agressivo
13
Medicina Os sistemas que usam touch simplificam os sofisticados sistemas meacutedicos reduzem as
possibilidades de erros e proporcionam um mecanismo de entrada de dados mais eficiente que
qualquer outro perifeacuterico
Educaccedilatildeo Hoje o touch esta se tornando a interface de treinamento mais popular em todas as
fases do aprendizado desde a preacute escola jardim de infacircncia e preparaccedilatildeo profissional eliminando
a frustraccedilotildees de crianccedilas ao utilizar o mouse ou teclado
E aplicaccedilotildees com o objetivo de diminuir o tempo de resposta aumentar a produtividade
proporcionar produtos e serviccedilos de maior qualidade e aumentar os lucros Por exemplo realizar
um atendimento de forma raacutepida e faacutecil eacute objetivo da automaccedilatildeo 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 serviccedilos intuitivos e interativos de uma interface
Touch proporcionam confiabilidade ao cliente que eacute exatamente o que o seu negoacutecio precisa para
o crescimento e o sucesso em longo prazo (elotouch 2007)
Este projeto no futuro poderaacute ser integrado com outro projeto formando assim um sistema
parecido com um PDA (Personal Digital Assistant)
14
CAPIacuteTULO 2 ndash FUNDAMENTACcedilAtildeO TEOacuteRICA
21-Touch Screen
Um Touch-Screen que em portugues quer dizer ldquotela sensivel ao toquerdquo estatildeo disponiacuteveis
para uma grande variedade de uso desde pontos de vendas ateacute quiosques equipamentos meacutedicos
e industriais e sistemas de jogos As vantagens das soluccedilotildees touch incluem precisatildeo
transparecircncia e facilidade de uso e instalaccedilatildeo
O Touch-Screen usado neste projeto eacute o modelo de quatro fios resistivos AT4 da empresa
Elo TouchSystem (wwwelotouchcombr)
A tecnologia resistiva touch de quatro fios consta de uma tela de vidro coberto
uniformemente por camadas eletricamente condutivas e resistivas Uma lacircmina de poliester eacute
hermeticamente estendida sobre a parte superior do vidro e separada por minuacutesculos espaccediladores
(pontos) transparentes e isolantes A parte externa dessa lacircmina eacute uma peliacutecula duraacutevel e firme a
parte interna conteacutem uma camada condutiva Durante seu funcionamento uma corrente eleacutetrica
se propaga atraveacutes do touchscreen Ativada por um miacutenimo toque a peliacutecula 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 descriccedilatildeo das
camadas que compoem o Touch-Screen
Figura 1 ndash Touch-Screen final (Adaptado com as dimensotildees da aplicaccedilatildeo do editor de texto para validar este projeto)
15
Figura 2 ndash Mascara
(Adaptado do site elotouchcombr)
1 Camada soacutelida resistente a riscos (tipo anti-reflexiva) 3 Camada ITO
2 Peliacutecula de Poliester 4 Contatos de prata
Figura 3 ndash Vidro (Adaptado do site elotouchcombr)
1 Contatos de prata 3 Camada ITO(Transparent Conducting Oxide)
2 Pontos espaccediladores 4 Camada de Vidro
O circuito da controladora aplica uma tensatildeo atraveacutes da superfiacutecie do vidro As tensotildees no
ponto de contato constituem a representaccedilatildeo analoacutegica da superfiacutecie de toque A controladora
traduz essas tensotildees e transmite-os para o computador para processaacute-los
16
211 Placa e chip da Controladora do Touch-Screen
O COACh IIs (Controller On A Chip second generation) eacute compacto econocircmico chip
controlador para as aplicaccedilotildees com o Touch-Screen AT4 de 4 fios resistivos Opera em 33V e
em 5V O tamanho compacto baixa voltagem para operar e comsumo de energia eacute a melhor
soluccedilatildeo para OEMrsquos (original equipment manufacturer) pois pode contar com estabilidade
confiabilidade e desempenho de componentes com touch para aplicaccedilotildees embarcadas ou
aplicaccedilotildees portaacuteveis[elotouchcom] A Figura 4 ilustra o chip
Figura 4 ndash Chip COACh IIs (Adaptado do site elotouchcom)
A placa controladora que integra o touch-screen em outros moacutedulos possui as caracteriacutesticas
descritas na Tabela 1 e a Figura 5 ilustra a placa controladora
Tabela 1 ndash Caracteriacutesticas da placa controladora
Alimentaccedilatildeo 5 VDC nominal (45)
Interface-Serial (Serial RS-232) Full Duplex
Paracircmetros de Comunicaccedilatildeo Baud Rate 9600 and 19200 8 Bits de dados 1 bit de parada
Interface USB Quando estiver comunicando via USB a Serial estaraacute desabilitada E a placa natildeo eacute alimentada pela USB
Resoluccedilatildeo de toque 4096x4096 independente do tamanho da peliacutecula touch-screen
Tempo de conversatildeo do toque 10ms
17
Figura 5 ndash Placa Controladora (Adaptado do site elotouchcom)
212 Pinagens e descriccedilatildeo do Touch-Screen e da Placa Controladora
A Figura 6 ilusta os pinos do Touch-Screen que satildeo ligados ao conector da placa
controladora
Figura 6 ndash Pinos do Touch-Screen (Adaptado do site elotouchcom)
A Figura 7 mostra o conector da placa controladora e as respectivas pinagens
Figura 7 ndashConector para o touch da placa controladora (Adaptado do site elotouchcom)
18
A Tabela 2 descreve os pinos do conector para o touch da placa controladora
Tabela 2 ndash Pinagem do conector que faz interface entre o touch e a controladora
Pino
Nome do Sinal Desciccedilatildeo do sinal
1 X+ Entrada de tensatildeo positiva referente ao eixo X da tela 2 Y+ Entrada de tensatildeo positiva referente ao eixo Y da tela 3 X- Entrada de tensatildeo negativa referente ao eixo X da tela 4 Y- Entrada de tensatildeo negativa referente ao eixo Y da tela
22-Video
Eacute usado um monitor CRT convencional o qual apresentaraacute uma imagem criada atraveacutes as
bibliotecas graficas proprietarias da ALTERA esta imagem representa um menu com botoes e e
que atravez da manipulaccedilatildeo dos metodos das bibliotecas os resultados satildeo disponibilizados na
saida VGA do kit dependendo do botatildeo da imagem que for tocada atravez do touch alguma accedilatildeo
de alteraccedilatildeo na imagem seraacute atulalizada na saida vga
A Figura 8 ilustra o conector (fecircmea) da saiacuteda VGA do kit DE2
Figura 8 ndash Conector VGA femea do kit DE2
E na Tabela 3 a descriccedilatildeo de cada pino bem como sua direccedilatildeo
Tabela 3 ndash Descriccedilatildeo dos pinos da VGA
Pin
Name Dir Description
1 RED
Red Video (75 ohm 07 V p-p)
2 GREEN
Green Video (75 ohm 07 V p-p)
3 BLUE
Blue Video (75 ohm 07 V p-p)
4 ID2
Monitor ID Bit 2
5 GND
Ground
6 RGND
Red Ground
7 GGND
Green Ground
8 BGND
Blue Ground
19
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
20
23-Kit Altera Development amp Education Board 1 (Kit DE2)
231-Layout e Componentes
Uma fotografia do Kit DE2 eacute mostrado na Figura 9 onde se ve a aparencia do kit e as
indicaccedilotildees das localizaccedilatildeo dos componentes e conectores
Figura 9 ndash O kit DE2 (DE2_UserManualpdf 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 eacute listado os componentes fornecidos na placa do Kit DE2
Tabela 4 ndash Lista dos componentes do Kit DE2 (DE2_UserManualpdf contrado no cd do kit)
1 Altera Serial Configuration device ndash EPCS4
2 USB Blaster (on board) for programming and user API control both JTAG and Active 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
21
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
PS2 mousekeyboard connector
17
Two 40-pin Expansion Headers with diode protection
18
Powered by either a 75V DC adapter or a USB cable
232 Diagrama de Blocos do Kit DE2
Figura 10 ndash Diagrama de Blocos do KIT DE2 (DE2_UserManualpdf contrado no cd do kit)
22
A Tabela 5 mostra a informaccedilatildeo detalhada do Bloco Cyclone II FPGA 2C20 mostrado na
Figura 10
Tabela 5 ndash Detalhes do FPGA Cyclone II
FPGA Cyclone II 2C35
18752 LErsquos
52 M4K RAM blocks 240K total RAM bits 26 embedded multipliers 4 PLLrsquos 315 user IO pinrsquos FineLine BGA 484-pin package
A Tabela 6 mostra a informaccedilatildeo detalhada do Bloco do dispositivo de configuraccedilatildeo Serial e
circuito Usb-Blaster
Tabela 6 - Descriccedilatildeo das configuraccedilotildees que satildeo feitas atraveacutes da Serial e Usb-Blaster
Configuraccedilatildeo do dispositivo Serial e do Circuito Usb-Blaster Configuraccedilatildeo do dispositivo serial Altera EPCS4 On-Board Usb-Blaster
para Controle de API de usuaacuterio e programaccedilatildeo
JTAG e AS satildeo os modos do programaccedilatildeo suportados
A Tabela 7 mostra a descriccedilatildeo do Bloco da SRAM
Tabela 7 ndash Descriccedilatildeo do Bloco da SRAM
SRAM 512-Kbyte Static RAM memory chip Organizado em 256K x 16 bits Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 8 mostra a descriccedilatildeo do Bloco da SDRAM
Tabela 8 - Descriccedilatildeo do Bloco da SDRAM
SDRAM 8-Mbyte Single Data Rate Synchronous Dynamic RAM memory chip Organizado em 1M x 16 bits x 4 Banks Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
23
A Tabela 9 mostra a descriccedilatildeo do Bloco Memory Flash
Tabela 9 ndash Descriccedilatildeo da Memoria Flash
Memory Flash
4-Mbyte NAND Flash memory 8-bit data bus Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 10 mostra a descriccedilatildeo do Bloco SD card socket
Tabela 10 - Descriccedilatildeo do SD card socket
SD card socket Fornece o modo SPI para o acesso ao cartatildeo SD Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 11 mostra a descriccedilatildeo 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) Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 12 mostra a descriccedilatildeo dos Clock inputs
Tabela 12 - Descriccedilatildeo das entradas de Clocks
Clock inputs Oscilador de 50 Mhz Oscilador 27 Mhz Entrada para clock
externo
A Tabela 13 mostra a descriccedilatildeo do Aacuteudio CODEC
Tabela 13 - Descriccedilatildeo do Aacuteudio CODEC
Aacuteudio CODEC 4-Mbyte NAND Flash memory 8-bit data bus Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
24
A Tabela 14 mostra a descriccedilatildeo do Bloco VGA DAC
Tabela 14 ndash Descriccedilatildeo da saiacuteda VGA DAC
VGA
DAC
Usa 4 bits DAC para cada cor (RGB) Com 15 pinos no conector VGA convencional (fecircmea) Suporta uma resoluccedilatildeo de 640 x 480 com um refresh de ateacute 100Hz Pode ser usando com o FPGA Cyclone II para implementar um Encoder para TV
A Tabela 15 mostra a descriccedilatildeo do Bloco Serial Ports amp PS2
Tabela 15 ndash Descriccedilatildeo da Serial Port e PS2
Serial Ports amp PS2 Uma porta RS-232
Uma posta PS2 Um conector Serial para a porta do RS-232 Conector PS2 para conectar um mouse ou teclado ao DE2
A Tabela 16 mostra a descriccedilatildeo do Bloco dos Two 40 - pin expansion headers
Tabela 16 ndash Descriccedilatildeo dos conectores de expansatildeo de 40 pinos
Two 40 - pin expansion headers 72 pinos de IO do Clyclone II bem como 8 power e groundrsquos satildeo trazidos aos 2 conectores de expansatildeo de 40 pinos cada Os conectores de 40 pinos tambeacutem aceitam os cabos IDE de 40 pinos Proteccedilatildeo resistiva eacute fornecida
233 Endereccedilo das Pinagens dos Componentes usados no Projeto
2331 PushButtons
A Figura 11 mostra uma foto dos PushButtons do kit Key[30] a ordem eacute o button da
esquerda eacute o mais significativo e o mais de direita o menos signigicativo
Figura 11 ndash Os 4 PushButtons do DE2Key[30] (DE2_UserManualpdf contrado no cd do kit)
25
A Tabela 17 mostra os pinos da FPGA aos PushButtons
Tabela 17 ndash Pinos da FPGA referentes a cada PushButton (DE2_UserManualpdf contrado no cd do kit)
2332 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 ndash Modulo de displays de 7 segmentos (DE2_UserManualpdf encontrado no cd do kit)
Figura 13 ndash Index de um display (DE2_UserManualpdf encontrado no cd do
kit)
26
A Tabela 18 mostra os pinos da FPGA referente a cada segmento dos displays de 7
segmentos do modulo
Tabela 18 ndash Pinos da FPGA referentes a cada segmento dos Displays do modulo
27
2333 VGA
A Figura 14 esta em forma de onda da temporizaccedilatildeo horizontal e vertical da VGA do Kit
DE2
Figura 14 ndash Temporizaccedilatildeo horizontal da VGA
A Tabela 19 mostra a especificaccedilatildeo da temporizaccedilatildeo horizontal da VGA
Tabela 19 ndash Especificaccedilatildeo da temporizaccedilatildeo horizontal da VGA
A Tabela 20 mostra a especificaccedilatildeo da temporizaccedilatildeo vertical da VGA
Tabela 20 ndash Especificaccedilatildeo da temporizaccedilatildeo vertical da VGA
28
A Tabela 21 mostra os pinos da FPGA referente a cada pino de saida do conector VGA do
Kit DE2
Tabela 21 ndash Pinos da FPGA referentes a saiacuteda do Conector VGA do Kit
29
CAPIacuteTULO 3 ndash ESPECIFICACcedilAtildeO TECNICA
Nesse capiacutetulo tem-se uma descriccedilatildeo dos principais moacutedulos do projeto Satildeo eles Software
Firmware e Hardware
Inicialmente eacute apresentada a visatildeo geral do sistema e a descriccedilatildeo funcional de cada moacutedulo
A Figura 15 apresenta o diagrama em blocos do sistema
Figura 15 - Moacutedulos do projeto
31 Descriccedilatildeo de Software
O Software eacute uma das interfaces com o usuaacuterio
312 Diagrama de Blocos do Software
30
312 Modulo do PC
Neste modulo eacute 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
32 Descriccedilatildeo de Hardware
321 Modulo Touch-Screen
O usuaacuterio ao tocar o Touch-Screen (AT4 touch-screen resistivo de 4 fios) ocorre uma
mudanccedila nas tensotildees do eixo X e do eixo Y devido a resistecircncia gerada pelo ao toque do usuaacuterio
em uma determinada regiatildeo da tela essa mudanccedila de tensatildeo eacute interpretada pela placa
controladora COACh IIs do Touch-Screen e enviada via serial para o Kit DE2 que interpretaraacute
os dados e faraacute o devido processamento
322 Modulo FPGA
O Hardware corresponde tanto aos componentes fiacutesicos presentes no kit de desenvolvimento
quanto aos componentes que seratildeo configurados na FPGA Satildeo diversos componentes escritos
em linguagem de descriccedilatildeo de hardware
No um dos principais componentes de hardware utilizado modulo eacute o processador NIOS II
para se ter uma ideacuteia o processador NIOS II eacute capaz gerenciar os dispositivos externos a FPGA
utilizando controladores de memoacuterias controladores de VGA entre outros E tambeacutem eacute possiacutevel
o proacuteprio usuaacuterio criar seu componente para ser controlado atraveacutes do processador NIOS
II(Altera 2007)
31
3221 O Processador NIOS II
Atraveacutes do software SOPC da ALTERA foi possiacutevel montar a arquitetura de hardware do
processador NIOS II bem como especificar as interfaces que ele iraacute controlar atraveacutes do firmwar
feito no NIOS II IDE
Na Tabela 22 eacute no campo Module Name onde estatildeo os moacutedulos que foram usados para
definir o processador NIOS II e os componentes externos que ele iraacute controlar e no campo
Description esta a descriccedilatildeo do nome de cada modulo
Tabela 22 ndash Moacutedulos dos componentes e suas descriccedilotildees
3222 Firmware para o NIOS II
O Firmware foi feito utilizando a linguagem C utilizando a ferramenta NIOS II IDE Atraveacutes
do firmware eacute possiacutevel 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 graacuteficas para controlar a vga e serial e
USB-BLASTER eacute encarregado em enviar todo o desenvolvimento do projeto para o Kit DE2
323 Configuraccedilatildeo da FPGA via JTAG
Depois de configurado o hardware do processador NIOS II eacute preciso fazer o load do NIOS
para a FPGA e para que isso aconteccedila eacute necessaacuterio que atraveacutes do software Quartus II da
ALTERA utilizando a interface JTAG utilizando o cabo USB-BLASTER
32
324 Comunicaccedilatildeo entre FPGA e o Touch-Screen
Para comunicaccedilatildeo entre dos dois hardwares Touch-Screen e o FPGA eacute utilizando uma
interface serial RS-232
A configuraccedilatildeo da interface eacute a seguinte
Bits de dados 8
Taxa de dados 5600(bps)
A Tabela 23 mostra a relaccedilatildeo dos pinos da porta serial com os pinos da FPGA
Tabela 23 ndash Pinos da FPGA referente agrave pinagem da interface Serial
E a Figura 16 mostra o desenho correspondente da interface serial
Figura 16 ndash Conector da interface serial do kit DE2
33 Especificaccedilatildeo de Validaccedilatildeo
331 Validaccedilatildeo de Hardware
A validade do hardware se faz com a anaacutelise de todos os moacutedulos envolvidos
As necessidades satildeo estudadas os componentes externos ao FPGA satildeo selecionados de
acordo o processador nios e os controladores dos moacutedulos externos como VGA e SERIAL satildeo
enviados ao modulo FPGA
Os resultados obtidos na tela do monitor e a recepccedilatildeo dos dados pela serial comprovam o
funcionamento do modulo de comunicaccedilatildeo da serial e vga
33
332 Validaccedilatildeo de Software
A validaccedilatildeo do controle da interface touch-screen faz-se a partir dos resultados obtidos das
funccedilotildees escritas na linguagem C especificas para cada componente externos ao FPGA essas
funccedilotildees tornam possiacuteveis que o processador NIOS na FPGA tenha total controle sobre os
moacutedulos externos como a VGA e a SERIAL
As funccedilotildees que satildeo utilizadas para validar o funcionamento do software satildeo para a VGA os
meacutetodos de controle (alt_up_vga_draw_char_1b( char int x int y)) e (alt_up_vga_draw_pixel(
color x y))
O meacutetodo (alt_up_vga_draw_char_1b( char int x int y)) tem a funcionalidade de escrever
caracteres na tela do monitor e a descriccedilatildeo da sua assinatura ldquoparacircmetrosrdquo eacute a seguinte char eacute o
caractere que eacute escrito em alguma posiccedilatildeo na tela int x eacute a posiccedilatildeo x da tela do monitor e int y eacute
a posiccedilatildeo y da tela do monitor sendo que a resoluccedilatildeo utilizada eacute de 80x60 ou seja x natildeo pode
passar de 80 e y natildeo pode passar de 60
O meacutetodo (alt_up_vga_draw_pixel( color int x int y)) tem a funcionalidade de ldquopintarrdquo o
fundo da tela do monitor o meacutetodo de imprimir caracteres tem preferecircncia sobre este meacutetodo ou
seja os caracteres sempre ficam sob a aacuterea pintada ou seja o caractere sempre ficara em cima da
aacuterea pintada a descriccedilatildeo da assinatura deste meacutetodo eacute a seguinte color eacute a valor da cor que pode
ser um valor inteiro ou em hexadecimal para definir uma cor de alguma posiccedilatildeo da tela definidos
pelos paracircmetros x e y
As funccedilotildees que satildeo utilizadas para validar o funcionamento do software satildeo para a Serial os
meacutetodos de controle de transmissatildeo (fread( packet sizeof(packet) 1 serial_fp )) a funccedilatildeo
fread eacute utilizada para a leitura via interrupccedilatildeo dos pacotes que a controladora envia para o kit
DE2 as assinaturas do meacutetodo fread tem a seguinte composiccedilatildeo packet eacute a estrutura do pacote
que seraacute recebido o sizeof(packet) eacute o diz qual eacute o tamanho exato da estrutura criada e o
serial_fp eacute o handle da porta serial
Uma observaccedilatildeo muito importante eacute que para o total funcionamento eacute necessaacuterio 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 rs232h e rs232c onde estatildeo os meacutetodos de
controle da SERIAL e alt_up_vgah alt_up_vgac onde estatildeo os meacutetodos de controle para a
VGA Para tornar estes meacutetodos acessiacuteveis eacute preciso fazer os includes dos arquivos h no
projeto da NIOS IDE
A figura 17 mostra a utilizaccedilatildeo dos meacutetodos (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
34
int y)) utlizado para escrever os caracteres lsquoarsquo e lsquobrsquo dentro de um grupo de pixel previamente
pintado a (alt_up_vga_draw_pixel( color int x int y)) natildeo pinta um pixel de cada vez e sim
um bloco de 8x8 pixels
Figura 17 - Tela para a validaccedilatildeo dos testes com as bibliotecas graacuteficas do componente VGA
34 Recursos Necessaacuterios
A Tabela 24 apresenta os ambientes de desenvolvimento e ferramentas de software utilizadas
e na Tabela 25 as linguagens necessaacuterias Estas ferramentas foram utilizadas em ambiente
Windows Xp
Tabela 24 - Ferramentas de Desenvolvimentos e Ambientes
Software Para que foi Utilizado
Quartus II Para a definiccedilatildeo de qual o modelo de FPGA utilizado compilaccedilatildeo e simulaccedilatildeo e envio Load do NIOS para FPGA
SOPC Para definiccedilatildeo da do processador NIOS II e com quais componentes externos ele ira interagir atraveacutes dos controladores dos respectivos componentes
NIOS II IDE Para implementaccedilatildeo do firmware do processador NIOS II utilizando a linguagem em C
35
Borland C++ Builder Para desenvolvimento de ima interface de comunicaccedilatildeo via caboUSB-
BLASTER para o envio de imagem para o kit
Tabela 25 ndash Linguagens de programaccedilatildeo utilizadas
Linguagem Ferramenta C++ Borland C++ Builder VerilogVHDL Quartus II C NIOS II IDE
35 Viabilidade Teacutecnico-Econocircmica
O valor do projeto esta descrito na Tabela 26
Tabela 26 ndash Relaccedilatildeo dos Custos
DESCRICcedilAtildeO CUSTO APROXIMADO (R$) COMPONENTES ELETROcircNICOS 50000 1 Kit DE2 Cyclone II 35000 1 Monitor de Computador 35000 HORAS TRABALHADAS (400 horas) 750000 CUSTO TOTAL APROXIMADO (R$) 870000
36 Cronograma do Projeto
A tabela 27 contem as informaccedilotildees do cronograma do projeto
Tabela 27 ndash Cronograma de datas e entregas do projeto
Data Atividade a ser apresentada 050307 Entrega das propostas de projeto para avaliaccedilatildeo do colegiado 020407 Entrega das especificaccedilotildees teacutecnicas do projeto aprovado 110607 Entrega do projeto (monografia) e dos testes preliminares do mesmo 060807 Apresentaccedilatildeo preacutevia da implementaccedilatildeo do projeto especificado 011007 Apresentaccedilatildeo do projeto implementado
Qualificaccedilatildeo para a fase final 291007 Segunda apresentaccedilatildeo do projeto implementado para os que natildeo o fizeram no
dia 011006 com decreacutescimo da nota Qualificaccedilatildeo para a fase final
051107 Entrega da documentaccedilatildeo completa em espiral para a banca examinadora em 3 vias contendo a monografia manual teacutecnico manual do usuaacuterio e artigo cientiacutefico
261107 Defesa formal dos projetos com apresentaccedilatildeo oral para a banca examinadora 101207 Entrega da documentaccedilatildeo completa revisada e corrigida encadernada no
padratildeo da biblioteca (capa dura) em duas vias contendo a monografia manual teacutecnico manual do usuaacuterio e artigo cientiacutefico Entrega do CD contendo no formato WEB todo o conteuacutedo dos manuais
36
CAPIacuteTULO 4 ndash ESPECIFICACcedilAtildeO TECNICA
41 Requisitos Miacutenimos
Os requisitos miacutenimos de Hardware satildeo
Funcionamento das interfaces Serial e USB-Blaster
Funcionamento do Kit DE2
PC
Os requisitos miacutenimos de Software
Windows Xp
Quartus II
SOPC
NIOS II IDE
42 Projeto de Hardware
O hardware utilizado nesse projeto inclui componentes presentes na Placa de
Desenvolvimento Nios II - ediccedilatildeo DE2 Cyclone II EP2C35 e principalmente o hardware que seraacute
configurado na FPGA escrito em linguagem de descriccedilatildeo de hardware (HDL)
O um dos principais blocos de hardware eacute o processador NIOS II o Avalon Bus e os
controladores de componentes externos a FPGA e de comunicaccedilatildeo presentes no Kit
37
O software embarcado (firmware) estaraacute rodando nessa arquitetura Eacute uma arquitetura
completa construiacuteda com a ferramenta SOPC Builder da Altera A Figura 18 representa em
blocos os principais componentes dessa arquitetura
Figura 18 ndash Representaccedilatildeo em blocos do hardware do NIOS II
421 Funcatildeo do Touch-Screen
Outro bloco importante eacute o do Touch-Screen esta tela sensiacutevel ao toque pois como esta tela
trabalha com resistecircncia ao ser tocado em uma determinada regiatildeo uma resistecircncia eacute gerada e a
tensatildeo de saiacuteda eacute modificada a alimentaccedilatildeo desta placa eacute proveniente de sua placa controladora
a mesma placa que recebe a tensatildeo de saiacuteda modificada de acordo com a regiatildeo tocada na tela
Para verificar as caracteriacutesticas detalhadas do Touch-Screen e sua placa controlador favor ver
o Capitulo 2
422 Monitor e VGA
O Monitor inicialmente tem apenas o desenho de um botatildeo que ao ser tocado via touch
mudara a cor de toda a tela A imagem exibida no monitor tem uma resoluccedilatildeo de
38
Protoacutetipo das telas para os testes esta na Figura 19 a tela verde quando a touch natildeo eacute tocando
na regiatildeo do botatildeo de OK quando o botatildeo de OK for tocado a tela do monitor mudara de cor
ficando azul
Figura 19 ndash Tela do monitor
No Capitulo 2 estatildeo todas as caracteriacutesticas da pinagem e do conector VGA
423 Comunicaccedilatildeo serial
Entre a placa controladora do Touch-Screen e o FPGA existe uma comunicaccedilatildeo 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 manipulaccedilatildeo da imagem que eacute
mostrada no monitor
No capitulo 2 estatildeo das descriccedilotildees dos pinos e do conector da comunicaccedilatildeo Serial
O pacote serial que eacute transmitido pela placa controladora do touch-screen possui 10 bytes de
comprimento e segue a seguinte sequumlecircncia de envio
[55] [54] [] [] [] [] [] [] [] []
Sequumlecircncia dos bytes
Os dois primeiros bytes identificam o Header do pacote
O terceiro byte eacute 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 agrave posiccedilatildeo do eixo x onde a tela foi tocada
O sexto e o seacutetimo byte correspondem a posiccedilatildeo do eixo y onde a tele foi tocada
O restante os bytes identificam o tail do pacote recepcionado pelo kit DE2
39
424 Comunicaccedilatildeo USB-Blaster
Essencial para envio do projeto desenvolvido para o kit DE2 tambeacutem muito utilizado para o
debug deste projeto
435 Memoacuteria SDRAM
A memoacuteria utilizada para armazenar grandes quantidades de dados eacute a SDRAM (ver detalhes
no Capitulo 2)
Essa memoacuteria eacute muito raacutepida serviu muito bem para armazenar o firmware deste projeto
pois tem o tempo acesso ideal para ler as instruccedilotildees que utilizaram a VGA e tambeacutem eacute raacutepida o
suficiente para fazer a leitura dos dados e disponibilizar na saiacuteda VGA do kit
426 Memoacuteria FLASH
Eacute onde seraacute armazenado o firmware possui espaccedilo suficiente para isso 4MB e uma memoacuteria
mais lenta e por isso natildeo foi usada para armazenar dados para serem jogados na vga do Kit
43 Software
431 Software (Firmware)
O software tem de funccedilatildeo de utilizar as bibliotecas das controladoras dos componentes
externos a fim de controlar estes componentes de acordo com o necessaacuterio para atender o
objetivo do projeto
Ou seja uma tela inicial eacute apresentada e o usuaacuterio ao tocar na nela o kit recebe um pacote via
serial e interpreta a posiccedilatildeo da tela em que foi tocado e logo em seguida envia o resultado deste
toque para o monitor
432 Objetivos
O usuaacuterio 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 accedilatildeo de acordo com a posiccedilatildeo da tela
tocada alterando assim a imagem anterior com o resultado do toque
Interpretar o toque de usuaacuterio na tela touch-screen recepccedilatildeo do pacote via serial da placa
controladora do touch-screen tratamento do pacote e interpretaccedilatildeo das coordenadas x e y do
40
toque Realizaccedilatildeo de alguma accedilatildeo que resultara na alteraccedilatildeo da imagem da tela atual de acordo
com a funccedilatildeo em que as coordenadas foram previamente definidas para o que deve ser feito
432 Funccedilotildees
A Tabela 28 tem as principais funccedilotildees que foram implementadas para o sistema
Tabela 28 ndash Funccedilotildees do sistema firmware
FUNCcedilOtildeES Tela de um pequeno editor de texto Tratamento do sinal recebido da serial devido a um toque na tela Interpretaccedilatildeo do pacote serial e transfomaccedilatildeo para coordenadas x e y Transformaccedilatildeo das posiccedilotildees do toque na tela em alguma accedilatildeo enviando o resultado para a VGA Imagem final disponibilizada ao usuaacuterio de acordo com o toque que foi dado na tela Controlar dispositivos cada dispositivo pode ser controlado pelo seu respectivo contrador atraveacutes de seu endereccedilo base VGA SERIAL USB-BLASTER IO(Leds Switches etc) do Kit DE2
O Firmware do processador NIOS II eacute que realizaraacute a integraccedilatildeo entre hardware com
hardware Com o firmware controlando o NIOS II eacute possiacutevel interagir com os dispositivos
externos a FPGA Tornando possiacutevel a integraccedilatildeo da FPGA com a peliacutecula touch-screen e um
monitor sem a ajuda de um PC a uacutenica ajuda do pc seria para enviar dados de uma imagem para
o Kit DE2
44 Validaccedilatildeo e Testes
Inicialmente os moacutedulos da VGA e comunicaccedilatildeo SERIAL natildeo estavam funicionando
apenas o devido agrave fraca documentaccedilatildeo sobre o kit DE2 foi possiacutevel apenas fazer testes com o
Processador NIOS II pois sobre este existem bastantes documentos e exemplos que podem ser
utilizados
Nesta primeira parte foi possiacutevel testar o NIOS II para controlar o display bototildees e switchs
do kit DE2
Com o NIOS II funcionando completamente foi necessaacuterio porta-lo para o kit DE2 o que foi
simples pois como sabemos esses kits satildeo portaacuteveis entre si apenas mudando a pinagem e a
capacidade da FPGA
Com o Kit DE2 foi possiacutevel fazer os testes necessaacuterios com a comunicaccedilatildeo serial
inicialmente testada via terminal conversando diretamente com o kit foi possiacutevel fazer o
seguinte teste os caracteres que eram entrados via teclado chegavam ao kit via serial e o o
41
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 comdumpexe que eacute facilmente encontrado pelas ferramentas
de pesquisa da web e tambeacutem existem vario outros programas como este e o comdump eacute
utilizado para debug da porta serial do pc conectado diretamente na placa controladora do touch-
screen e foi a peccedila chave para o entendimento do pacote enviado pela placa controladora
Figura 20 - Cumdumpexe programa de debug da porta serial
A explicaccedilatildeo de cada byte do pacote esta explicado no item 423
Apos o entendimento completo da transmissatildeo 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 natildeo 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 ateacute o momento em que
foi testado os meacutetodos proprietaacuterios da Altera para fazer a VGA funcionar os meacutetodos esses
implementados em C
A figura 21 onde contem o teste baacutesico feito que foi a chave principal para o sucesso deste
projeto
42
Como dito no item 332 do projeto foram utilizados as funccedilotildees da controladora VGA esses
meacutetodos 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 eacute utilizado o meacutetodo alt_up_vga_draw_pixel( color int
x int y) onde color eacute a cor do bloco de pixels e x e y satildeo as coordenadas da tela onde o bloco
que seraacute pintado
Para escrever um caractere sobre um bloco de pixels pintado eacute utilizado a funccedilatildeo
alt_up_vga_draw_char_1b( char int x int y) onde char eacute o caractere a ser impresso e x e y satildeo
as coordenadas da tela onde os o caractere eacute impresso
Figura 21 - Teste baisco do funcionamento do componente VGA do kit DE2
43
CAPIacuteTULO 5 ndash VALIDACcedilAtildeO E RESULTADOS
Os resultados foram os melhores possiacuteveis pois com a utilizaccedilatildeo dos IP CORE
ldquocontroladorasrdquo dos componentes externos como VGA e SERIAL e seus meacutetodos de para
controle eacute possiacutevel controlar facilmente esses moacutedulos atraveacutes do firmware desenvolvido para o
processador NIOS que consegue realizar operaccedilotildees transparentes acessando dos meacutetodos de
controle dos moacutedulos
Apos os testes baacutesicos 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 baacutesico de editor de texto
A figura 22 mostra um teste utilizando os meacutetodos de controle disponiacuteveis para o IP CORE
da VGA para primeiramente fazer o menu da aplicaccedilatildeo desenvolvido em na linguagem C
Figura 22 ndash Menu baacutesico do editor de texto
Para desenhar o menu da figura acima foi utilizado os meacutetodos proprietaacuterios de controle da
VGA citados no capitulo 4 e tambeacutem estruturas de repeticcedilatildeo para que a tela fosse varrida e os
pixels desenhados nos respectivos lugares da tela bem como os caracteres
Na figura 23 eacute definida a seguinte estrutura em C para representar de um botatildeo
Figura 23 - Estrutura em C para representar um botatildeo
44
A figura 24 eacute a declaraccedilatildeo dos bototildees que seratildeo utilizados pelo aplicativo editor de texto
para comprovar o funcionamento do controle da interface touch-screen
Apenas o que esta dentro da marcaccedilatildeo quadrada representa os bototildees do menu da figura 23
e o restante satildeo os bototildees do teclado do editor de texto
Figura 24 - Declaraccedilatildeo dos bototildees do menu
45
A figura 25 representa o meacutetodo drawnButtonUp responsaacutevel por desenhar os bototildees na tela
de acordo com as posiccedilotildees em que foram declarados os bototildees deste meacutetodo satildeo desenhados
para parecerem que estatildeo ldquolevantadosrdquo e natildeo pressionados
Note que foram utilizados os meacutetodos proprietaacuterios de controle da VGA
alt_up_vga_draw_pixel pra pitar os pixels e alt_up_vga_draw_char_b1 para desenhar caracteres
como jaacute foi especificado no item 44 do projeto
Figura 25 ndash Meacutetodo drawButtonUp
46
O meacutetodo que desenha o caption do botatildeo se chama drawButtonText desenha os caracteres
em cima dos bototildees natildeo importa se o botatildeo esta pressionado ou natildeo
A figura 26 mostra como este meacutetodo foi implementado e ele eacute chamado no final de cada
meacutetodo onde algum tipo de botatildeo eacute desenhado quando o meacutetodo que desenha o botatildeo normal
quanto o pressionado e ateacute mesmo o do teclado
Figura 26 ndash Meacutetodo que escreve o caption de cada botatildeo
47
A figura 27 mostra o meacutetodo drawButtonDown que desenha o botatildeo pressionado ou seja
quando o usuaacuterio pressiona a regiatildeo correspondente a um botatildeo do menu no touch-screen o
mesmo redesenharaacute o botatildeo parecendo um efeito de botatildeo afundado note que no final do
meacutetodo novamente eacute chamado o meacutetodo drawButtonText que reescreveraacute o caption do botatildeo
como mostra o meacutetodo da figura 26 e esta ilustrado na figura 28
Figura 27 ndash Meacutetodo que desenha o botatildeo pressionado
48
Dependendo da aacuterea do menu que o usuaacuterio pressionar no touch-screen causar o efeito de
pressionado como mostra a figura 28
Figura 28 ndash Efeito do botatildeo de menu apertado
Na figura 29 eacute a representaccedilatildeo de quando a aacuterea correspondente ao botatildeo ldquoamarelordquo eacute
pressionada
Apos estes testes baacutesicos comprovando o funcionamento da interface graacutefica para o usuaacuterio
foi definido o restante dos componentes da tela que eacute constituiacutedo de um prompt e um teclado
qwerty que foi essencial para comprovar o perfeito funcionamento do controle da interface
touch-screen
49
51 Interface Grafica Final
A figura 29 mostra a interface final que o usuaacuterio teraacute para poder verificar o funcionamento
do controle da interface touch-screen
Figura 29 ndash Interface final touch-screen do usuaacuterio
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
511 Descriccedilatildeo do editor de texto
O menu possui 4 botoes cada um com sua respectiva funcionalidade quando o usuario
pressiona a area do botatildeo ldquoapagarrdquo uma vez entatildeo um carectere do prompt eacute apagado Quando eacute
precionado a area correspondente ao botatildeo ldquoResetrdquo todo o conteudo do prompt seraacute apagado e o
plano de fundo retornaraacute a cor branca Quando o botatildeo ldquoamarelordquo eacute pressionado o fundo da tela
passa a ser amarelo e o mesmo acontece se o usuario precionar o botatildeo verde tornando o cor de
fundo verde
50
O teclado possui 29 teclas sendo duas delas que equivalem ao ENTRA ldquoENTrdquo e ao
SPACE ldquoSPCrdquo Quando o usuario pressiona a area correspondente a algum botatildeo do teclado o
mesmo muda sua cor para azul e o seu caractere eacute disponibilizado no prompt
Essas funcionalidades nada mais satildeo do que um bom exemplo de como funciona
corretamente o controle da interface touch-screen
52 Prompt e o Teclado
A estrutura feita na linguagem C que define o prompt da figura 28 esta representado na
figura 30
Figura 30 ndash Estrutura em C para representar o prompt
A figura 31 mostra o metodo drawPrompt utilizado para desenhar na tela o prompt
Figura 31 ndash Meacutetodo que desenha o prompt
51
A estrutura do teclado eacute a mesma utilizada pela figura 23 e tambem eacute criado satildeo
inicializados na figura 24
O restante as implementaccedilotildees estatildeo disponiveis no cd deste documento
Quando algum botatildeo do teclado eacute pressionado sua cor muda para azul e sua letra
correspondente eacute escrita o prompt
A figura 32 ilustra quando o usuaacuterio aperta a letra lsquotrsquo na peliacutecula touch-screen
Figura 32 - Teste do prompt e o teclado
52
53 Controle da Interface Touch-Screen
Depois do todos os testes com o processador NIOS e a integraccedilatildeo do mesmo com os
moacutedulos externos como a porta SERIAL e a saiacuteda VGA eacute possiacutevel utilizando o touch-screen
criar uma interface amigaacutevel e faacutecil de usar para o usuaacuterio utilizando um firmware capaz de
interpretar os sinais via serial vindo da controladora do touch ao detectar que um toque foi dado
pelo usuaacuterio e realizar algumas accedilotildees que neste caso se comportam como um editor de texto
baacutesico
A figura 33 mostra como foi validado este projeto e seus moacutedulos controlando uma
interface touch-screen para chegar no resultado abaixo digitado pelo usuaacuterio comprovando o
funcionamento e viabilidade deste projeto
Figura 33 ndash 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 mudanccedilas podendo ser alterado rapidamente o tipo de
aplicaccedilatildeo ou integrado rapidamente com outro projeto
53
CAPIacuteTULO 6 - CONCLUSAtildeO
Uma das principais dificuldades no desenvolvimento deste projeto foi fazer o levantamento
da documentaccedilatildeo sobre o processador NIOS e os moacutedulos externos a FPGA do Kit DE2 Como
natildeo foi feito algum projeto antes que utilizasse a interface VGA e a SERIAL do Kit DE2 levou-
se muito tempo ateacute conseguir adquirir e ordenar o conhecimento que foi sendo adquirido ateacute
conseguir dar os primeiros passos e realizar os primeiros testes com a VGA e a SERIAL Outro
grande obstaacuteculo foi ter de descobrir que para que o NIOS controlasse os moacutedulos externos a
FGPA fosse necessaacuterio copiar os arquivos c e h dos respectivos componente para dentro do
projeto
Mas depois de todos os problemas com os moacutedulos externos solucionados cada modulo do
projeto foi sendo desenvolvido separadamente ateacute seu total funcionamento Natildeo tive dificuldades
com a linguagem da programaccedilatildeo pois o Firmware do processador NIOS eacute o C a qual mais tive
contato na faculdade
Outro desafio foi fazer a peliacutecula 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
peliacutecula natildeo 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 possiacutevel
comeccedilar a fazer os testes necessaacuterios para prosseguir com o projeto aprender como o a peliacutecula
identifica um toque e manda este sinal para a controladora e a controladora transforma este sinal
em um sinal serial que eacute 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 accedilotildees
que as coordenadas jaacute estatildeo previamente calibradas no firmware para fazer bem como mudar de
cor a tela fazer o efeito de um botatildeo subindo e descendo etc
Varias vezes o projeto parou de funcionar entatildeo 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 memoacuteria abundante etc uma das
facilidades eacute a faacutecil alteraccedilatildeo do projeto podendo ser integrado a outro ou ateacute mesmo alterado
para realizar outros tipos de accedilotildees com o touch-screen
Existem vaacuterios melhoramentos que podem ser executados no projeto um deles eacute tentar
interpretar de uma maneira diferente os valores do eixo y pois do jeito que esta a resoluccedilatildeo do
eixo y esta muito baixa dificultando o reconhecimento de toques em aacutereas pequenas Talvez a
inclusatildeo de mais alguns bytes no pacote de leitura da serial resolva o problema
54
Uma ideacuteia para um proacuteximo projeto que use a interface touch-screen poderia ser a
integraccedilatildeo com o projeto do nosso colega Roberto Junqueira ou a desenvolvimento de uma
placa controladora para o touch-screen
Este trabalho eacute uma modesta contribuiccedilatildeo para o uso de FPGAs e do processador embarcado
NIOS implementado em VHDL pela Altera que acredito que vai abrir vaacuterios caminhos pois
com este projeto alguns caminhos ficaram mais faacuteceis de percorrer daqui para a frente
55
CAPIacuteTULO 7 - REFEREcircNCIAS BIBLIOGRAacuteFICAS
AMORE Roberto drsquo VHDL Descriccedilatildeo e Sintese de Circuitos Rio de Janeiro ed LTC
2005
Elotouch Touch-Screen e Controladora Descriccedilatildeo do funcionamento e descriccedilatildeo
tecnologia Touch-Screen lthttpwwwelotouchcombrgt Acesso em fevereiro de 2007
ALTERA University Program IP Cores Instalaccedilatildeo de IP Cores e referencias sobre os
componentes dos kits DE1 e DE2 Disponivel em lthttpwwwalteracomeducationunivip-
coresunv-ip-coreshtmlgt Acesso em abril de 2007
ALTERA NIOS II Documentaccedilatildeo sobre o pprocessador embracado NIO II Disponivel
em lthttpwwwalteracomproductsipprocessorsipm-indexjspgt Acesso em Abril de 2007
ALTERA Development amp Education Board 2 (DE2) Manual do usuario Disponivel no
de que acompanha o Kit DE2 ltDE2_user_manualDE2_UserManualpdfgt Acesso em
fevereiro de 2007
13
Medicina Os sistemas que usam touch simplificam os sofisticados sistemas meacutedicos reduzem as
possibilidades de erros e proporcionam um mecanismo de entrada de dados mais eficiente que
qualquer outro perifeacuterico
Educaccedilatildeo Hoje o touch esta se tornando a interface de treinamento mais popular em todas as
fases do aprendizado desde a preacute escola jardim de infacircncia e preparaccedilatildeo profissional eliminando
a frustraccedilotildees de crianccedilas ao utilizar o mouse ou teclado
E aplicaccedilotildees com o objetivo de diminuir o tempo de resposta aumentar a produtividade
proporcionar produtos e serviccedilos de maior qualidade e aumentar os lucros Por exemplo realizar
um atendimento de forma raacutepida e faacutecil eacute objetivo da automaccedilatildeo 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 serviccedilos intuitivos e interativos de uma interface
Touch proporcionam confiabilidade ao cliente que eacute exatamente o que o seu negoacutecio precisa para
o crescimento e o sucesso em longo prazo (elotouch 2007)
Este projeto no futuro poderaacute ser integrado com outro projeto formando assim um sistema
parecido com um PDA (Personal Digital Assistant)
14
CAPIacuteTULO 2 ndash FUNDAMENTACcedilAtildeO TEOacuteRICA
21-Touch Screen
Um Touch-Screen que em portugues quer dizer ldquotela sensivel ao toquerdquo estatildeo disponiacuteveis
para uma grande variedade de uso desde pontos de vendas ateacute quiosques equipamentos meacutedicos
e industriais e sistemas de jogos As vantagens das soluccedilotildees touch incluem precisatildeo
transparecircncia e facilidade de uso e instalaccedilatildeo
O Touch-Screen usado neste projeto eacute o modelo de quatro fios resistivos AT4 da empresa
Elo TouchSystem (wwwelotouchcombr)
A tecnologia resistiva touch de quatro fios consta de uma tela de vidro coberto
uniformemente por camadas eletricamente condutivas e resistivas Uma lacircmina de poliester eacute
hermeticamente estendida sobre a parte superior do vidro e separada por minuacutesculos espaccediladores
(pontos) transparentes e isolantes A parte externa dessa lacircmina eacute uma peliacutecula duraacutevel e firme a
parte interna conteacutem uma camada condutiva Durante seu funcionamento uma corrente eleacutetrica
se propaga atraveacutes do touchscreen Ativada por um miacutenimo toque a peliacutecula 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 descriccedilatildeo das
camadas que compoem o Touch-Screen
Figura 1 ndash Touch-Screen final (Adaptado com as dimensotildees da aplicaccedilatildeo do editor de texto para validar este projeto)
15
Figura 2 ndash Mascara
(Adaptado do site elotouchcombr)
1 Camada soacutelida resistente a riscos (tipo anti-reflexiva) 3 Camada ITO
2 Peliacutecula de Poliester 4 Contatos de prata
Figura 3 ndash Vidro (Adaptado do site elotouchcombr)
1 Contatos de prata 3 Camada ITO(Transparent Conducting Oxide)
2 Pontos espaccediladores 4 Camada de Vidro
O circuito da controladora aplica uma tensatildeo atraveacutes da superfiacutecie do vidro As tensotildees no
ponto de contato constituem a representaccedilatildeo analoacutegica da superfiacutecie de toque A controladora
traduz essas tensotildees e transmite-os para o computador para processaacute-los
16
211 Placa e chip da Controladora do Touch-Screen
O COACh IIs (Controller On A Chip second generation) eacute compacto econocircmico chip
controlador para as aplicaccedilotildees com o Touch-Screen AT4 de 4 fios resistivos Opera em 33V e
em 5V O tamanho compacto baixa voltagem para operar e comsumo de energia eacute a melhor
soluccedilatildeo para OEMrsquos (original equipment manufacturer) pois pode contar com estabilidade
confiabilidade e desempenho de componentes com touch para aplicaccedilotildees embarcadas ou
aplicaccedilotildees portaacuteveis[elotouchcom] A Figura 4 ilustra o chip
Figura 4 ndash Chip COACh IIs (Adaptado do site elotouchcom)
A placa controladora que integra o touch-screen em outros moacutedulos possui as caracteriacutesticas
descritas na Tabela 1 e a Figura 5 ilustra a placa controladora
Tabela 1 ndash Caracteriacutesticas da placa controladora
Alimentaccedilatildeo 5 VDC nominal (45)
Interface-Serial (Serial RS-232) Full Duplex
Paracircmetros de Comunicaccedilatildeo Baud Rate 9600 and 19200 8 Bits de dados 1 bit de parada
Interface USB Quando estiver comunicando via USB a Serial estaraacute desabilitada E a placa natildeo eacute alimentada pela USB
Resoluccedilatildeo de toque 4096x4096 independente do tamanho da peliacutecula touch-screen
Tempo de conversatildeo do toque 10ms
17
Figura 5 ndash Placa Controladora (Adaptado do site elotouchcom)
212 Pinagens e descriccedilatildeo do Touch-Screen e da Placa Controladora
A Figura 6 ilusta os pinos do Touch-Screen que satildeo ligados ao conector da placa
controladora
Figura 6 ndash Pinos do Touch-Screen (Adaptado do site elotouchcom)
A Figura 7 mostra o conector da placa controladora e as respectivas pinagens
Figura 7 ndashConector para o touch da placa controladora (Adaptado do site elotouchcom)
18
A Tabela 2 descreve os pinos do conector para o touch da placa controladora
Tabela 2 ndash Pinagem do conector que faz interface entre o touch e a controladora
Pino
Nome do Sinal Desciccedilatildeo do sinal
1 X+ Entrada de tensatildeo positiva referente ao eixo X da tela 2 Y+ Entrada de tensatildeo positiva referente ao eixo Y da tela 3 X- Entrada de tensatildeo negativa referente ao eixo X da tela 4 Y- Entrada de tensatildeo negativa referente ao eixo Y da tela
22-Video
Eacute usado um monitor CRT convencional o qual apresentaraacute uma imagem criada atraveacutes as
bibliotecas graficas proprietarias da ALTERA esta imagem representa um menu com botoes e e
que atravez da manipulaccedilatildeo dos metodos das bibliotecas os resultados satildeo disponibilizados na
saida VGA do kit dependendo do botatildeo da imagem que for tocada atravez do touch alguma accedilatildeo
de alteraccedilatildeo na imagem seraacute atulalizada na saida vga
A Figura 8 ilustra o conector (fecircmea) da saiacuteda VGA do kit DE2
Figura 8 ndash Conector VGA femea do kit DE2
E na Tabela 3 a descriccedilatildeo de cada pino bem como sua direccedilatildeo
Tabela 3 ndash Descriccedilatildeo dos pinos da VGA
Pin
Name Dir Description
1 RED
Red Video (75 ohm 07 V p-p)
2 GREEN
Green Video (75 ohm 07 V p-p)
3 BLUE
Blue Video (75 ohm 07 V p-p)
4 ID2
Monitor ID Bit 2
5 GND
Ground
6 RGND
Red Ground
7 GGND
Green Ground
8 BGND
Blue Ground
19
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
20
23-Kit Altera Development amp Education Board 1 (Kit DE2)
231-Layout e Componentes
Uma fotografia do Kit DE2 eacute mostrado na Figura 9 onde se ve a aparencia do kit e as
indicaccedilotildees das localizaccedilatildeo dos componentes e conectores
Figura 9 ndash O kit DE2 (DE2_UserManualpdf 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 eacute listado os componentes fornecidos na placa do Kit DE2
Tabela 4 ndash Lista dos componentes do Kit DE2 (DE2_UserManualpdf contrado no cd do kit)
1 Altera Serial Configuration device ndash EPCS4
2 USB Blaster (on board) for programming and user API control both JTAG and Active 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
21
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
PS2 mousekeyboard connector
17
Two 40-pin Expansion Headers with diode protection
18
Powered by either a 75V DC adapter or a USB cable
232 Diagrama de Blocos do Kit DE2
Figura 10 ndash Diagrama de Blocos do KIT DE2 (DE2_UserManualpdf contrado no cd do kit)
22
A Tabela 5 mostra a informaccedilatildeo detalhada do Bloco Cyclone II FPGA 2C20 mostrado na
Figura 10
Tabela 5 ndash Detalhes do FPGA Cyclone II
FPGA Cyclone II 2C35
18752 LErsquos
52 M4K RAM blocks 240K total RAM bits 26 embedded multipliers 4 PLLrsquos 315 user IO pinrsquos FineLine BGA 484-pin package
A Tabela 6 mostra a informaccedilatildeo detalhada do Bloco do dispositivo de configuraccedilatildeo Serial e
circuito Usb-Blaster
Tabela 6 - Descriccedilatildeo das configuraccedilotildees que satildeo feitas atraveacutes da Serial e Usb-Blaster
Configuraccedilatildeo do dispositivo Serial e do Circuito Usb-Blaster Configuraccedilatildeo do dispositivo serial Altera EPCS4 On-Board Usb-Blaster
para Controle de API de usuaacuterio e programaccedilatildeo
JTAG e AS satildeo os modos do programaccedilatildeo suportados
A Tabela 7 mostra a descriccedilatildeo do Bloco da SRAM
Tabela 7 ndash Descriccedilatildeo do Bloco da SRAM
SRAM 512-Kbyte Static RAM memory chip Organizado em 256K x 16 bits Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 8 mostra a descriccedilatildeo do Bloco da SDRAM
Tabela 8 - Descriccedilatildeo do Bloco da SDRAM
SDRAM 8-Mbyte Single Data Rate Synchronous Dynamic RAM memory chip Organizado em 1M x 16 bits x 4 Banks Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
23
A Tabela 9 mostra a descriccedilatildeo do Bloco Memory Flash
Tabela 9 ndash Descriccedilatildeo da Memoria Flash
Memory Flash
4-Mbyte NAND Flash memory 8-bit data bus Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 10 mostra a descriccedilatildeo do Bloco SD card socket
Tabela 10 - Descriccedilatildeo do SD card socket
SD card socket Fornece o modo SPI para o acesso ao cartatildeo SD Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 11 mostra a descriccedilatildeo 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) Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 12 mostra a descriccedilatildeo dos Clock inputs
Tabela 12 - Descriccedilatildeo das entradas de Clocks
Clock inputs Oscilador de 50 Mhz Oscilador 27 Mhz Entrada para clock
externo
A Tabela 13 mostra a descriccedilatildeo do Aacuteudio CODEC
Tabela 13 - Descriccedilatildeo do Aacuteudio CODEC
Aacuteudio CODEC 4-Mbyte NAND Flash memory 8-bit data bus Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
24
A Tabela 14 mostra a descriccedilatildeo do Bloco VGA DAC
Tabela 14 ndash Descriccedilatildeo da saiacuteda VGA DAC
VGA
DAC
Usa 4 bits DAC para cada cor (RGB) Com 15 pinos no conector VGA convencional (fecircmea) Suporta uma resoluccedilatildeo de 640 x 480 com um refresh de ateacute 100Hz Pode ser usando com o FPGA Cyclone II para implementar um Encoder para TV
A Tabela 15 mostra a descriccedilatildeo do Bloco Serial Ports amp PS2
Tabela 15 ndash Descriccedilatildeo da Serial Port e PS2
Serial Ports amp PS2 Uma porta RS-232
Uma posta PS2 Um conector Serial para a porta do RS-232 Conector PS2 para conectar um mouse ou teclado ao DE2
A Tabela 16 mostra a descriccedilatildeo do Bloco dos Two 40 - pin expansion headers
Tabela 16 ndash Descriccedilatildeo dos conectores de expansatildeo de 40 pinos
Two 40 - pin expansion headers 72 pinos de IO do Clyclone II bem como 8 power e groundrsquos satildeo trazidos aos 2 conectores de expansatildeo de 40 pinos cada Os conectores de 40 pinos tambeacutem aceitam os cabos IDE de 40 pinos Proteccedilatildeo resistiva eacute fornecida
233 Endereccedilo das Pinagens dos Componentes usados no Projeto
2331 PushButtons
A Figura 11 mostra uma foto dos PushButtons do kit Key[30] a ordem eacute o button da
esquerda eacute o mais significativo e o mais de direita o menos signigicativo
Figura 11 ndash Os 4 PushButtons do DE2Key[30] (DE2_UserManualpdf contrado no cd do kit)
25
A Tabela 17 mostra os pinos da FPGA aos PushButtons
Tabela 17 ndash Pinos da FPGA referentes a cada PushButton (DE2_UserManualpdf contrado no cd do kit)
2332 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 ndash Modulo de displays de 7 segmentos (DE2_UserManualpdf encontrado no cd do kit)
Figura 13 ndash Index de um display (DE2_UserManualpdf encontrado no cd do
kit)
26
A Tabela 18 mostra os pinos da FPGA referente a cada segmento dos displays de 7
segmentos do modulo
Tabela 18 ndash Pinos da FPGA referentes a cada segmento dos Displays do modulo
27
2333 VGA
A Figura 14 esta em forma de onda da temporizaccedilatildeo horizontal e vertical da VGA do Kit
DE2
Figura 14 ndash Temporizaccedilatildeo horizontal da VGA
A Tabela 19 mostra a especificaccedilatildeo da temporizaccedilatildeo horizontal da VGA
Tabela 19 ndash Especificaccedilatildeo da temporizaccedilatildeo horizontal da VGA
A Tabela 20 mostra a especificaccedilatildeo da temporizaccedilatildeo vertical da VGA
Tabela 20 ndash Especificaccedilatildeo da temporizaccedilatildeo vertical da VGA
28
A Tabela 21 mostra os pinos da FPGA referente a cada pino de saida do conector VGA do
Kit DE2
Tabela 21 ndash Pinos da FPGA referentes a saiacuteda do Conector VGA do Kit
29
CAPIacuteTULO 3 ndash ESPECIFICACcedilAtildeO TECNICA
Nesse capiacutetulo tem-se uma descriccedilatildeo dos principais moacutedulos do projeto Satildeo eles Software
Firmware e Hardware
Inicialmente eacute apresentada a visatildeo geral do sistema e a descriccedilatildeo funcional de cada moacutedulo
A Figura 15 apresenta o diagrama em blocos do sistema
Figura 15 - Moacutedulos do projeto
31 Descriccedilatildeo de Software
O Software eacute uma das interfaces com o usuaacuterio
312 Diagrama de Blocos do Software
30
312 Modulo do PC
Neste modulo eacute 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
32 Descriccedilatildeo de Hardware
321 Modulo Touch-Screen
O usuaacuterio ao tocar o Touch-Screen (AT4 touch-screen resistivo de 4 fios) ocorre uma
mudanccedila nas tensotildees do eixo X e do eixo Y devido a resistecircncia gerada pelo ao toque do usuaacuterio
em uma determinada regiatildeo da tela essa mudanccedila de tensatildeo eacute interpretada pela placa
controladora COACh IIs do Touch-Screen e enviada via serial para o Kit DE2 que interpretaraacute
os dados e faraacute o devido processamento
322 Modulo FPGA
O Hardware corresponde tanto aos componentes fiacutesicos presentes no kit de desenvolvimento
quanto aos componentes que seratildeo configurados na FPGA Satildeo diversos componentes escritos
em linguagem de descriccedilatildeo de hardware
No um dos principais componentes de hardware utilizado modulo eacute o processador NIOS II
para se ter uma ideacuteia o processador NIOS II eacute capaz gerenciar os dispositivos externos a FPGA
utilizando controladores de memoacuterias controladores de VGA entre outros E tambeacutem eacute possiacutevel
o proacuteprio usuaacuterio criar seu componente para ser controlado atraveacutes do processador NIOS
II(Altera 2007)
31
3221 O Processador NIOS II
Atraveacutes do software SOPC da ALTERA foi possiacutevel montar a arquitetura de hardware do
processador NIOS II bem como especificar as interfaces que ele iraacute controlar atraveacutes do firmwar
feito no NIOS II IDE
Na Tabela 22 eacute no campo Module Name onde estatildeo os moacutedulos que foram usados para
definir o processador NIOS II e os componentes externos que ele iraacute controlar e no campo
Description esta a descriccedilatildeo do nome de cada modulo
Tabela 22 ndash Moacutedulos dos componentes e suas descriccedilotildees
3222 Firmware para o NIOS II
O Firmware foi feito utilizando a linguagem C utilizando a ferramenta NIOS II IDE Atraveacutes
do firmware eacute possiacutevel 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 graacuteficas para controlar a vga e serial e
USB-BLASTER eacute encarregado em enviar todo o desenvolvimento do projeto para o Kit DE2
323 Configuraccedilatildeo da FPGA via JTAG
Depois de configurado o hardware do processador NIOS II eacute preciso fazer o load do NIOS
para a FPGA e para que isso aconteccedila eacute necessaacuterio que atraveacutes do software Quartus II da
ALTERA utilizando a interface JTAG utilizando o cabo USB-BLASTER
32
324 Comunicaccedilatildeo entre FPGA e o Touch-Screen
Para comunicaccedilatildeo entre dos dois hardwares Touch-Screen e o FPGA eacute utilizando uma
interface serial RS-232
A configuraccedilatildeo da interface eacute a seguinte
Bits de dados 8
Taxa de dados 5600(bps)
A Tabela 23 mostra a relaccedilatildeo dos pinos da porta serial com os pinos da FPGA
Tabela 23 ndash Pinos da FPGA referente agrave pinagem da interface Serial
E a Figura 16 mostra o desenho correspondente da interface serial
Figura 16 ndash Conector da interface serial do kit DE2
33 Especificaccedilatildeo de Validaccedilatildeo
331 Validaccedilatildeo de Hardware
A validade do hardware se faz com a anaacutelise de todos os moacutedulos envolvidos
As necessidades satildeo estudadas os componentes externos ao FPGA satildeo selecionados de
acordo o processador nios e os controladores dos moacutedulos externos como VGA e SERIAL satildeo
enviados ao modulo FPGA
Os resultados obtidos na tela do monitor e a recepccedilatildeo dos dados pela serial comprovam o
funcionamento do modulo de comunicaccedilatildeo da serial e vga
33
332 Validaccedilatildeo de Software
A validaccedilatildeo do controle da interface touch-screen faz-se a partir dos resultados obtidos das
funccedilotildees escritas na linguagem C especificas para cada componente externos ao FPGA essas
funccedilotildees tornam possiacuteveis que o processador NIOS na FPGA tenha total controle sobre os
moacutedulos externos como a VGA e a SERIAL
As funccedilotildees que satildeo utilizadas para validar o funcionamento do software satildeo para a VGA os
meacutetodos de controle (alt_up_vga_draw_char_1b( char int x int y)) e (alt_up_vga_draw_pixel(
color x y))
O meacutetodo (alt_up_vga_draw_char_1b( char int x int y)) tem a funcionalidade de escrever
caracteres na tela do monitor e a descriccedilatildeo da sua assinatura ldquoparacircmetrosrdquo eacute a seguinte char eacute o
caractere que eacute escrito em alguma posiccedilatildeo na tela int x eacute a posiccedilatildeo x da tela do monitor e int y eacute
a posiccedilatildeo y da tela do monitor sendo que a resoluccedilatildeo utilizada eacute de 80x60 ou seja x natildeo pode
passar de 80 e y natildeo pode passar de 60
O meacutetodo (alt_up_vga_draw_pixel( color int x int y)) tem a funcionalidade de ldquopintarrdquo o
fundo da tela do monitor o meacutetodo de imprimir caracteres tem preferecircncia sobre este meacutetodo ou
seja os caracteres sempre ficam sob a aacuterea pintada ou seja o caractere sempre ficara em cima da
aacuterea pintada a descriccedilatildeo da assinatura deste meacutetodo eacute a seguinte color eacute a valor da cor que pode
ser um valor inteiro ou em hexadecimal para definir uma cor de alguma posiccedilatildeo da tela definidos
pelos paracircmetros x e y
As funccedilotildees que satildeo utilizadas para validar o funcionamento do software satildeo para a Serial os
meacutetodos de controle de transmissatildeo (fread( packet sizeof(packet) 1 serial_fp )) a funccedilatildeo
fread eacute utilizada para a leitura via interrupccedilatildeo dos pacotes que a controladora envia para o kit
DE2 as assinaturas do meacutetodo fread tem a seguinte composiccedilatildeo packet eacute a estrutura do pacote
que seraacute recebido o sizeof(packet) eacute o diz qual eacute o tamanho exato da estrutura criada e o
serial_fp eacute o handle da porta serial
Uma observaccedilatildeo muito importante eacute que para o total funcionamento eacute necessaacuterio 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 rs232h e rs232c onde estatildeo os meacutetodos de
controle da SERIAL e alt_up_vgah alt_up_vgac onde estatildeo os meacutetodos de controle para a
VGA Para tornar estes meacutetodos acessiacuteveis eacute preciso fazer os includes dos arquivos h no
projeto da NIOS IDE
A figura 17 mostra a utilizaccedilatildeo dos meacutetodos (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
34
int y)) utlizado para escrever os caracteres lsquoarsquo e lsquobrsquo dentro de um grupo de pixel previamente
pintado a (alt_up_vga_draw_pixel( color int x int y)) natildeo pinta um pixel de cada vez e sim
um bloco de 8x8 pixels
Figura 17 - Tela para a validaccedilatildeo dos testes com as bibliotecas graacuteficas do componente VGA
34 Recursos Necessaacuterios
A Tabela 24 apresenta os ambientes de desenvolvimento e ferramentas de software utilizadas
e na Tabela 25 as linguagens necessaacuterias Estas ferramentas foram utilizadas em ambiente
Windows Xp
Tabela 24 - Ferramentas de Desenvolvimentos e Ambientes
Software Para que foi Utilizado
Quartus II Para a definiccedilatildeo de qual o modelo de FPGA utilizado compilaccedilatildeo e simulaccedilatildeo e envio Load do NIOS para FPGA
SOPC Para definiccedilatildeo da do processador NIOS II e com quais componentes externos ele ira interagir atraveacutes dos controladores dos respectivos componentes
NIOS II IDE Para implementaccedilatildeo do firmware do processador NIOS II utilizando a linguagem em C
35
Borland C++ Builder Para desenvolvimento de ima interface de comunicaccedilatildeo via caboUSB-
BLASTER para o envio de imagem para o kit
Tabela 25 ndash Linguagens de programaccedilatildeo utilizadas
Linguagem Ferramenta C++ Borland C++ Builder VerilogVHDL Quartus II C NIOS II IDE
35 Viabilidade Teacutecnico-Econocircmica
O valor do projeto esta descrito na Tabela 26
Tabela 26 ndash Relaccedilatildeo dos Custos
DESCRICcedilAtildeO CUSTO APROXIMADO (R$) COMPONENTES ELETROcircNICOS 50000 1 Kit DE2 Cyclone II 35000 1 Monitor de Computador 35000 HORAS TRABALHADAS (400 horas) 750000 CUSTO TOTAL APROXIMADO (R$) 870000
36 Cronograma do Projeto
A tabela 27 contem as informaccedilotildees do cronograma do projeto
Tabela 27 ndash Cronograma de datas e entregas do projeto
Data Atividade a ser apresentada 050307 Entrega das propostas de projeto para avaliaccedilatildeo do colegiado 020407 Entrega das especificaccedilotildees teacutecnicas do projeto aprovado 110607 Entrega do projeto (monografia) e dos testes preliminares do mesmo 060807 Apresentaccedilatildeo preacutevia da implementaccedilatildeo do projeto especificado 011007 Apresentaccedilatildeo do projeto implementado
Qualificaccedilatildeo para a fase final 291007 Segunda apresentaccedilatildeo do projeto implementado para os que natildeo o fizeram no
dia 011006 com decreacutescimo da nota Qualificaccedilatildeo para a fase final
051107 Entrega da documentaccedilatildeo completa em espiral para a banca examinadora em 3 vias contendo a monografia manual teacutecnico manual do usuaacuterio e artigo cientiacutefico
261107 Defesa formal dos projetos com apresentaccedilatildeo oral para a banca examinadora 101207 Entrega da documentaccedilatildeo completa revisada e corrigida encadernada no
padratildeo da biblioteca (capa dura) em duas vias contendo a monografia manual teacutecnico manual do usuaacuterio e artigo cientiacutefico Entrega do CD contendo no formato WEB todo o conteuacutedo dos manuais
36
CAPIacuteTULO 4 ndash ESPECIFICACcedilAtildeO TECNICA
41 Requisitos Miacutenimos
Os requisitos miacutenimos de Hardware satildeo
Funcionamento das interfaces Serial e USB-Blaster
Funcionamento do Kit DE2
PC
Os requisitos miacutenimos de Software
Windows Xp
Quartus II
SOPC
NIOS II IDE
42 Projeto de Hardware
O hardware utilizado nesse projeto inclui componentes presentes na Placa de
Desenvolvimento Nios II - ediccedilatildeo DE2 Cyclone II EP2C35 e principalmente o hardware que seraacute
configurado na FPGA escrito em linguagem de descriccedilatildeo de hardware (HDL)
O um dos principais blocos de hardware eacute o processador NIOS II o Avalon Bus e os
controladores de componentes externos a FPGA e de comunicaccedilatildeo presentes no Kit
37
O software embarcado (firmware) estaraacute rodando nessa arquitetura Eacute uma arquitetura
completa construiacuteda com a ferramenta SOPC Builder da Altera A Figura 18 representa em
blocos os principais componentes dessa arquitetura
Figura 18 ndash Representaccedilatildeo em blocos do hardware do NIOS II
421 Funcatildeo do Touch-Screen
Outro bloco importante eacute o do Touch-Screen esta tela sensiacutevel ao toque pois como esta tela
trabalha com resistecircncia ao ser tocado em uma determinada regiatildeo uma resistecircncia eacute gerada e a
tensatildeo de saiacuteda eacute modificada a alimentaccedilatildeo desta placa eacute proveniente de sua placa controladora
a mesma placa que recebe a tensatildeo de saiacuteda modificada de acordo com a regiatildeo tocada na tela
Para verificar as caracteriacutesticas detalhadas do Touch-Screen e sua placa controlador favor ver
o Capitulo 2
422 Monitor e VGA
O Monitor inicialmente tem apenas o desenho de um botatildeo que ao ser tocado via touch
mudara a cor de toda a tela A imagem exibida no monitor tem uma resoluccedilatildeo de
38
Protoacutetipo das telas para os testes esta na Figura 19 a tela verde quando a touch natildeo eacute tocando
na regiatildeo do botatildeo de OK quando o botatildeo de OK for tocado a tela do monitor mudara de cor
ficando azul
Figura 19 ndash Tela do monitor
No Capitulo 2 estatildeo todas as caracteriacutesticas da pinagem e do conector VGA
423 Comunicaccedilatildeo serial
Entre a placa controladora do Touch-Screen e o FPGA existe uma comunicaccedilatildeo 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 manipulaccedilatildeo da imagem que eacute
mostrada no monitor
No capitulo 2 estatildeo das descriccedilotildees dos pinos e do conector da comunicaccedilatildeo Serial
O pacote serial que eacute transmitido pela placa controladora do touch-screen possui 10 bytes de
comprimento e segue a seguinte sequumlecircncia de envio
[55] [54] [] [] [] [] [] [] [] []
Sequumlecircncia dos bytes
Os dois primeiros bytes identificam o Header do pacote
O terceiro byte eacute 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 agrave posiccedilatildeo do eixo x onde a tela foi tocada
O sexto e o seacutetimo byte correspondem a posiccedilatildeo do eixo y onde a tele foi tocada
O restante os bytes identificam o tail do pacote recepcionado pelo kit DE2
39
424 Comunicaccedilatildeo USB-Blaster
Essencial para envio do projeto desenvolvido para o kit DE2 tambeacutem muito utilizado para o
debug deste projeto
435 Memoacuteria SDRAM
A memoacuteria utilizada para armazenar grandes quantidades de dados eacute a SDRAM (ver detalhes
no Capitulo 2)
Essa memoacuteria eacute muito raacutepida serviu muito bem para armazenar o firmware deste projeto
pois tem o tempo acesso ideal para ler as instruccedilotildees que utilizaram a VGA e tambeacutem eacute raacutepida o
suficiente para fazer a leitura dos dados e disponibilizar na saiacuteda VGA do kit
426 Memoacuteria FLASH
Eacute onde seraacute armazenado o firmware possui espaccedilo suficiente para isso 4MB e uma memoacuteria
mais lenta e por isso natildeo foi usada para armazenar dados para serem jogados na vga do Kit
43 Software
431 Software (Firmware)
O software tem de funccedilatildeo de utilizar as bibliotecas das controladoras dos componentes
externos a fim de controlar estes componentes de acordo com o necessaacuterio para atender o
objetivo do projeto
Ou seja uma tela inicial eacute apresentada e o usuaacuterio ao tocar na nela o kit recebe um pacote via
serial e interpreta a posiccedilatildeo da tela em que foi tocado e logo em seguida envia o resultado deste
toque para o monitor
432 Objetivos
O usuaacuterio 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 accedilatildeo de acordo com a posiccedilatildeo da tela
tocada alterando assim a imagem anterior com o resultado do toque
Interpretar o toque de usuaacuterio na tela touch-screen recepccedilatildeo do pacote via serial da placa
controladora do touch-screen tratamento do pacote e interpretaccedilatildeo das coordenadas x e y do
40
toque Realizaccedilatildeo de alguma accedilatildeo que resultara na alteraccedilatildeo da imagem da tela atual de acordo
com a funccedilatildeo em que as coordenadas foram previamente definidas para o que deve ser feito
432 Funccedilotildees
A Tabela 28 tem as principais funccedilotildees que foram implementadas para o sistema
Tabela 28 ndash Funccedilotildees do sistema firmware
FUNCcedilOtildeES Tela de um pequeno editor de texto Tratamento do sinal recebido da serial devido a um toque na tela Interpretaccedilatildeo do pacote serial e transfomaccedilatildeo para coordenadas x e y Transformaccedilatildeo das posiccedilotildees do toque na tela em alguma accedilatildeo enviando o resultado para a VGA Imagem final disponibilizada ao usuaacuterio de acordo com o toque que foi dado na tela Controlar dispositivos cada dispositivo pode ser controlado pelo seu respectivo contrador atraveacutes de seu endereccedilo base VGA SERIAL USB-BLASTER IO(Leds Switches etc) do Kit DE2
O Firmware do processador NIOS II eacute que realizaraacute a integraccedilatildeo entre hardware com
hardware Com o firmware controlando o NIOS II eacute possiacutevel interagir com os dispositivos
externos a FPGA Tornando possiacutevel a integraccedilatildeo da FPGA com a peliacutecula touch-screen e um
monitor sem a ajuda de um PC a uacutenica ajuda do pc seria para enviar dados de uma imagem para
o Kit DE2
44 Validaccedilatildeo e Testes
Inicialmente os moacutedulos da VGA e comunicaccedilatildeo SERIAL natildeo estavam funicionando
apenas o devido agrave fraca documentaccedilatildeo sobre o kit DE2 foi possiacutevel apenas fazer testes com o
Processador NIOS II pois sobre este existem bastantes documentos e exemplos que podem ser
utilizados
Nesta primeira parte foi possiacutevel testar o NIOS II para controlar o display bototildees e switchs
do kit DE2
Com o NIOS II funcionando completamente foi necessaacuterio porta-lo para o kit DE2 o que foi
simples pois como sabemos esses kits satildeo portaacuteveis entre si apenas mudando a pinagem e a
capacidade da FPGA
Com o Kit DE2 foi possiacutevel fazer os testes necessaacuterios com a comunicaccedilatildeo serial
inicialmente testada via terminal conversando diretamente com o kit foi possiacutevel fazer o
seguinte teste os caracteres que eram entrados via teclado chegavam ao kit via serial e o o
41
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 comdumpexe que eacute facilmente encontrado pelas ferramentas
de pesquisa da web e tambeacutem existem vario outros programas como este e o comdump eacute
utilizado para debug da porta serial do pc conectado diretamente na placa controladora do touch-
screen e foi a peccedila chave para o entendimento do pacote enviado pela placa controladora
Figura 20 - Cumdumpexe programa de debug da porta serial
A explicaccedilatildeo de cada byte do pacote esta explicado no item 423
Apos o entendimento completo da transmissatildeo 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 natildeo 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 ateacute o momento em que
foi testado os meacutetodos proprietaacuterios da Altera para fazer a VGA funcionar os meacutetodos esses
implementados em C
A figura 21 onde contem o teste baacutesico feito que foi a chave principal para o sucesso deste
projeto
42
Como dito no item 332 do projeto foram utilizados as funccedilotildees da controladora VGA esses
meacutetodos 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 eacute utilizado o meacutetodo alt_up_vga_draw_pixel( color int
x int y) onde color eacute a cor do bloco de pixels e x e y satildeo as coordenadas da tela onde o bloco
que seraacute pintado
Para escrever um caractere sobre um bloco de pixels pintado eacute utilizado a funccedilatildeo
alt_up_vga_draw_char_1b( char int x int y) onde char eacute o caractere a ser impresso e x e y satildeo
as coordenadas da tela onde os o caractere eacute impresso
Figura 21 - Teste baisco do funcionamento do componente VGA do kit DE2
43
CAPIacuteTULO 5 ndash VALIDACcedilAtildeO E RESULTADOS
Os resultados foram os melhores possiacuteveis pois com a utilizaccedilatildeo dos IP CORE
ldquocontroladorasrdquo dos componentes externos como VGA e SERIAL e seus meacutetodos de para
controle eacute possiacutevel controlar facilmente esses moacutedulos atraveacutes do firmware desenvolvido para o
processador NIOS que consegue realizar operaccedilotildees transparentes acessando dos meacutetodos de
controle dos moacutedulos
Apos os testes baacutesicos 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 baacutesico de editor de texto
A figura 22 mostra um teste utilizando os meacutetodos de controle disponiacuteveis para o IP CORE
da VGA para primeiramente fazer o menu da aplicaccedilatildeo desenvolvido em na linguagem C
Figura 22 ndash Menu baacutesico do editor de texto
Para desenhar o menu da figura acima foi utilizado os meacutetodos proprietaacuterios de controle da
VGA citados no capitulo 4 e tambeacutem estruturas de repeticcedilatildeo para que a tela fosse varrida e os
pixels desenhados nos respectivos lugares da tela bem como os caracteres
Na figura 23 eacute definida a seguinte estrutura em C para representar de um botatildeo
Figura 23 - Estrutura em C para representar um botatildeo
44
A figura 24 eacute a declaraccedilatildeo dos bototildees que seratildeo utilizados pelo aplicativo editor de texto
para comprovar o funcionamento do controle da interface touch-screen
Apenas o que esta dentro da marcaccedilatildeo quadrada representa os bototildees do menu da figura 23
e o restante satildeo os bototildees do teclado do editor de texto
Figura 24 - Declaraccedilatildeo dos bototildees do menu
45
A figura 25 representa o meacutetodo drawnButtonUp responsaacutevel por desenhar os bototildees na tela
de acordo com as posiccedilotildees em que foram declarados os bototildees deste meacutetodo satildeo desenhados
para parecerem que estatildeo ldquolevantadosrdquo e natildeo pressionados
Note que foram utilizados os meacutetodos proprietaacuterios de controle da VGA
alt_up_vga_draw_pixel pra pitar os pixels e alt_up_vga_draw_char_b1 para desenhar caracteres
como jaacute foi especificado no item 44 do projeto
Figura 25 ndash Meacutetodo drawButtonUp
46
O meacutetodo que desenha o caption do botatildeo se chama drawButtonText desenha os caracteres
em cima dos bototildees natildeo importa se o botatildeo esta pressionado ou natildeo
A figura 26 mostra como este meacutetodo foi implementado e ele eacute chamado no final de cada
meacutetodo onde algum tipo de botatildeo eacute desenhado quando o meacutetodo que desenha o botatildeo normal
quanto o pressionado e ateacute mesmo o do teclado
Figura 26 ndash Meacutetodo que escreve o caption de cada botatildeo
47
A figura 27 mostra o meacutetodo drawButtonDown que desenha o botatildeo pressionado ou seja
quando o usuaacuterio pressiona a regiatildeo correspondente a um botatildeo do menu no touch-screen o
mesmo redesenharaacute o botatildeo parecendo um efeito de botatildeo afundado note que no final do
meacutetodo novamente eacute chamado o meacutetodo drawButtonText que reescreveraacute o caption do botatildeo
como mostra o meacutetodo da figura 26 e esta ilustrado na figura 28
Figura 27 ndash Meacutetodo que desenha o botatildeo pressionado
48
Dependendo da aacuterea do menu que o usuaacuterio pressionar no touch-screen causar o efeito de
pressionado como mostra a figura 28
Figura 28 ndash Efeito do botatildeo de menu apertado
Na figura 29 eacute a representaccedilatildeo de quando a aacuterea correspondente ao botatildeo ldquoamarelordquo eacute
pressionada
Apos estes testes baacutesicos comprovando o funcionamento da interface graacutefica para o usuaacuterio
foi definido o restante dos componentes da tela que eacute constituiacutedo de um prompt e um teclado
qwerty que foi essencial para comprovar o perfeito funcionamento do controle da interface
touch-screen
49
51 Interface Grafica Final
A figura 29 mostra a interface final que o usuaacuterio teraacute para poder verificar o funcionamento
do controle da interface touch-screen
Figura 29 ndash Interface final touch-screen do usuaacuterio
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
511 Descriccedilatildeo do editor de texto
O menu possui 4 botoes cada um com sua respectiva funcionalidade quando o usuario
pressiona a area do botatildeo ldquoapagarrdquo uma vez entatildeo um carectere do prompt eacute apagado Quando eacute
precionado a area correspondente ao botatildeo ldquoResetrdquo todo o conteudo do prompt seraacute apagado e o
plano de fundo retornaraacute a cor branca Quando o botatildeo ldquoamarelordquo eacute pressionado o fundo da tela
passa a ser amarelo e o mesmo acontece se o usuario precionar o botatildeo verde tornando o cor de
fundo verde
50
O teclado possui 29 teclas sendo duas delas que equivalem ao ENTRA ldquoENTrdquo e ao
SPACE ldquoSPCrdquo Quando o usuario pressiona a area correspondente a algum botatildeo do teclado o
mesmo muda sua cor para azul e o seu caractere eacute disponibilizado no prompt
Essas funcionalidades nada mais satildeo do que um bom exemplo de como funciona
corretamente o controle da interface touch-screen
52 Prompt e o Teclado
A estrutura feita na linguagem C que define o prompt da figura 28 esta representado na
figura 30
Figura 30 ndash Estrutura em C para representar o prompt
A figura 31 mostra o metodo drawPrompt utilizado para desenhar na tela o prompt
Figura 31 ndash Meacutetodo que desenha o prompt
51
A estrutura do teclado eacute a mesma utilizada pela figura 23 e tambem eacute criado satildeo
inicializados na figura 24
O restante as implementaccedilotildees estatildeo disponiveis no cd deste documento
Quando algum botatildeo do teclado eacute pressionado sua cor muda para azul e sua letra
correspondente eacute escrita o prompt
A figura 32 ilustra quando o usuaacuterio aperta a letra lsquotrsquo na peliacutecula touch-screen
Figura 32 - Teste do prompt e o teclado
52
53 Controle da Interface Touch-Screen
Depois do todos os testes com o processador NIOS e a integraccedilatildeo do mesmo com os
moacutedulos externos como a porta SERIAL e a saiacuteda VGA eacute possiacutevel utilizando o touch-screen
criar uma interface amigaacutevel e faacutecil de usar para o usuaacuterio utilizando um firmware capaz de
interpretar os sinais via serial vindo da controladora do touch ao detectar que um toque foi dado
pelo usuaacuterio e realizar algumas accedilotildees que neste caso se comportam como um editor de texto
baacutesico
A figura 33 mostra como foi validado este projeto e seus moacutedulos controlando uma
interface touch-screen para chegar no resultado abaixo digitado pelo usuaacuterio comprovando o
funcionamento e viabilidade deste projeto
Figura 33 ndash 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 mudanccedilas podendo ser alterado rapidamente o tipo de
aplicaccedilatildeo ou integrado rapidamente com outro projeto
53
CAPIacuteTULO 6 - CONCLUSAtildeO
Uma das principais dificuldades no desenvolvimento deste projeto foi fazer o levantamento
da documentaccedilatildeo sobre o processador NIOS e os moacutedulos externos a FPGA do Kit DE2 Como
natildeo foi feito algum projeto antes que utilizasse a interface VGA e a SERIAL do Kit DE2 levou-
se muito tempo ateacute conseguir adquirir e ordenar o conhecimento que foi sendo adquirido ateacute
conseguir dar os primeiros passos e realizar os primeiros testes com a VGA e a SERIAL Outro
grande obstaacuteculo foi ter de descobrir que para que o NIOS controlasse os moacutedulos externos a
FGPA fosse necessaacuterio copiar os arquivos c e h dos respectivos componente para dentro do
projeto
Mas depois de todos os problemas com os moacutedulos externos solucionados cada modulo do
projeto foi sendo desenvolvido separadamente ateacute seu total funcionamento Natildeo tive dificuldades
com a linguagem da programaccedilatildeo pois o Firmware do processador NIOS eacute o C a qual mais tive
contato na faculdade
Outro desafio foi fazer a peliacutecula 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
peliacutecula natildeo 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 possiacutevel
comeccedilar a fazer os testes necessaacuterios para prosseguir com o projeto aprender como o a peliacutecula
identifica um toque e manda este sinal para a controladora e a controladora transforma este sinal
em um sinal serial que eacute 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 accedilotildees
que as coordenadas jaacute estatildeo previamente calibradas no firmware para fazer bem como mudar de
cor a tela fazer o efeito de um botatildeo subindo e descendo etc
Varias vezes o projeto parou de funcionar entatildeo 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 memoacuteria abundante etc uma das
facilidades eacute a faacutecil alteraccedilatildeo do projeto podendo ser integrado a outro ou ateacute mesmo alterado
para realizar outros tipos de accedilotildees com o touch-screen
Existem vaacuterios melhoramentos que podem ser executados no projeto um deles eacute tentar
interpretar de uma maneira diferente os valores do eixo y pois do jeito que esta a resoluccedilatildeo do
eixo y esta muito baixa dificultando o reconhecimento de toques em aacutereas pequenas Talvez a
inclusatildeo de mais alguns bytes no pacote de leitura da serial resolva o problema
54
Uma ideacuteia para um proacuteximo projeto que use a interface touch-screen poderia ser a
integraccedilatildeo com o projeto do nosso colega Roberto Junqueira ou a desenvolvimento de uma
placa controladora para o touch-screen
Este trabalho eacute uma modesta contribuiccedilatildeo para o uso de FPGAs e do processador embarcado
NIOS implementado em VHDL pela Altera que acredito que vai abrir vaacuterios caminhos pois
com este projeto alguns caminhos ficaram mais faacuteceis de percorrer daqui para a frente
55
CAPIacuteTULO 7 - REFEREcircNCIAS BIBLIOGRAacuteFICAS
AMORE Roberto drsquo VHDL Descriccedilatildeo e Sintese de Circuitos Rio de Janeiro ed LTC
2005
Elotouch Touch-Screen e Controladora Descriccedilatildeo do funcionamento e descriccedilatildeo
tecnologia Touch-Screen lthttpwwwelotouchcombrgt Acesso em fevereiro de 2007
ALTERA University Program IP Cores Instalaccedilatildeo de IP Cores e referencias sobre os
componentes dos kits DE1 e DE2 Disponivel em lthttpwwwalteracomeducationunivip-
coresunv-ip-coreshtmlgt Acesso em abril de 2007
ALTERA NIOS II Documentaccedilatildeo sobre o pprocessador embracado NIO II Disponivel
em lthttpwwwalteracomproductsipprocessorsipm-indexjspgt Acesso em Abril de 2007
ALTERA Development amp Education Board 2 (DE2) Manual do usuario Disponivel no
de que acompanha o Kit DE2 ltDE2_user_manualDE2_UserManualpdfgt Acesso em
fevereiro de 2007
14
CAPIacuteTULO 2 ndash FUNDAMENTACcedilAtildeO TEOacuteRICA
21-Touch Screen
Um Touch-Screen que em portugues quer dizer ldquotela sensivel ao toquerdquo estatildeo disponiacuteveis
para uma grande variedade de uso desde pontos de vendas ateacute quiosques equipamentos meacutedicos
e industriais e sistemas de jogos As vantagens das soluccedilotildees touch incluem precisatildeo
transparecircncia e facilidade de uso e instalaccedilatildeo
O Touch-Screen usado neste projeto eacute o modelo de quatro fios resistivos AT4 da empresa
Elo TouchSystem (wwwelotouchcombr)
A tecnologia resistiva touch de quatro fios consta de uma tela de vidro coberto
uniformemente por camadas eletricamente condutivas e resistivas Uma lacircmina de poliester eacute
hermeticamente estendida sobre a parte superior do vidro e separada por minuacutesculos espaccediladores
(pontos) transparentes e isolantes A parte externa dessa lacircmina eacute uma peliacutecula duraacutevel e firme a
parte interna conteacutem uma camada condutiva Durante seu funcionamento uma corrente eleacutetrica
se propaga atraveacutes do touchscreen Ativada por um miacutenimo toque a peliacutecula 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 descriccedilatildeo das
camadas que compoem o Touch-Screen
Figura 1 ndash Touch-Screen final (Adaptado com as dimensotildees da aplicaccedilatildeo do editor de texto para validar este projeto)
15
Figura 2 ndash Mascara
(Adaptado do site elotouchcombr)
1 Camada soacutelida resistente a riscos (tipo anti-reflexiva) 3 Camada ITO
2 Peliacutecula de Poliester 4 Contatos de prata
Figura 3 ndash Vidro (Adaptado do site elotouchcombr)
1 Contatos de prata 3 Camada ITO(Transparent Conducting Oxide)
2 Pontos espaccediladores 4 Camada de Vidro
O circuito da controladora aplica uma tensatildeo atraveacutes da superfiacutecie do vidro As tensotildees no
ponto de contato constituem a representaccedilatildeo analoacutegica da superfiacutecie de toque A controladora
traduz essas tensotildees e transmite-os para o computador para processaacute-los
16
211 Placa e chip da Controladora do Touch-Screen
O COACh IIs (Controller On A Chip second generation) eacute compacto econocircmico chip
controlador para as aplicaccedilotildees com o Touch-Screen AT4 de 4 fios resistivos Opera em 33V e
em 5V O tamanho compacto baixa voltagem para operar e comsumo de energia eacute a melhor
soluccedilatildeo para OEMrsquos (original equipment manufacturer) pois pode contar com estabilidade
confiabilidade e desempenho de componentes com touch para aplicaccedilotildees embarcadas ou
aplicaccedilotildees portaacuteveis[elotouchcom] A Figura 4 ilustra o chip
Figura 4 ndash Chip COACh IIs (Adaptado do site elotouchcom)
A placa controladora que integra o touch-screen em outros moacutedulos possui as caracteriacutesticas
descritas na Tabela 1 e a Figura 5 ilustra a placa controladora
Tabela 1 ndash Caracteriacutesticas da placa controladora
Alimentaccedilatildeo 5 VDC nominal (45)
Interface-Serial (Serial RS-232) Full Duplex
Paracircmetros de Comunicaccedilatildeo Baud Rate 9600 and 19200 8 Bits de dados 1 bit de parada
Interface USB Quando estiver comunicando via USB a Serial estaraacute desabilitada E a placa natildeo eacute alimentada pela USB
Resoluccedilatildeo de toque 4096x4096 independente do tamanho da peliacutecula touch-screen
Tempo de conversatildeo do toque 10ms
17
Figura 5 ndash Placa Controladora (Adaptado do site elotouchcom)
212 Pinagens e descriccedilatildeo do Touch-Screen e da Placa Controladora
A Figura 6 ilusta os pinos do Touch-Screen que satildeo ligados ao conector da placa
controladora
Figura 6 ndash Pinos do Touch-Screen (Adaptado do site elotouchcom)
A Figura 7 mostra o conector da placa controladora e as respectivas pinagens
Figura 7 ndashConector para o touch da placa controladora (Adaptado do site elotouchcom)
18
A Tabela 2 descreve os pinos do conector para o touch da placa controladora
Tabela 2 ndash Pinagem do conector que faz interface entre o touch e a controladora
Pino
Nome do Sinal Desciccedilatildeo do sinal
1 X+ Entrada de tensatildeo positiva referente ao eixo X da tela 2 Y+ Entrada de tensatildeo positiva referente ao eixo Y da tela 3 X- Entrada de tensatildeo negativa referente ao eixo X da tela 4 Y- Entrada de tensatildeo negativa referente ao eixo Y da tela
22-Video
Eacute usado um monitor CRT convencional o qual apresentaraacute uma imagem criada atraveacutes as
bibliotecas graficas proprietarias da ALTERA esta imagem representa um menu com botoes e e
que atravez da manipulaccedilatildeo dos metodos das bibliotecas os resultados satildeo disponibilizados na
saida VGA do kit dependendo do botatildeo da imagem que for tocada atravez do touch alguma accedilatildeo
de alteraccedilatildeo na imagem seraacute atulalizada na saida vga
A Figura 8 ilustra o conector (fecircmea) da saiacuteda VGA do kit DE2
Figura 8 ndash Conector VGA femea do kit DE2
E na Tabela 3 a descriccedilatildeo de cada pino bem como sua direccedilatildeo
Tabela 3 ndash Descriccedilatildeo dos pinos da VGA
Pin
Name Dir Description
1 RED
Red Video (75 ohm 07 V p-p)
2 GREEN
Green Video (75 ohm 07 V p-p)
3 BLUE
Blue Video (75 ohm 07 V p-p)
4 ID2
Monitor ID Bit 2
5 GND
Ground
6 RGND
Red Ground
7 GGND
Green Ground
8 BGND
Blue Ground
19
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
20
23-Kit Altera Development amp Education Board 1 (Kit DE2)
231-Layout e Componentes
Uma fotografia do Kit DE2 eacute mostrado na Figura 9 onde se ve a aparencia do kit e as
indicaccedilotildees das localizaccedilatildeo dos componentes e conectores
Figura 9 ndash O kit DE2 (DE2_UserManualpdf 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 eacute listado os componentes fornecidos na placa do Kit DE2
Tabela 4 ndash Lista dos componentes do Kit DE2 (DE2_UserManualpdf contrado no cd do kit)
1 Altera Serial Configuration device ndash EPCS4
2 USB Blaster (on board) for programming and user API control both JTAG and Active 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
21
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
PS2 mousekeyboard connector
17
Two 40-pin Expansion Headers with diode protection
18
Powered by either a 75V DC adapter or a USB cable
232 Diagrama de Blocos do Kit DE2
Figura 10 ndash Diagrama de Blocos do KIT DE2 (DE2_UserManualpdf contrado no cd do kit)
22
A Tabela 5 mostra a informaccedilatildeo detalhada do Bloco Cyclone II FPGA 2C20 mostrado na
Figura 10
Tabela 5 ndash Detalhes do FPGA Cyclone II
FPGA Cyclone II 2C35
18752 LErsquos
52 M4K RAM blocks 240K total RAM bits 26 embedded multipliers 4 PLLrsquos 315 user IO pinrsquos FineLine BGA 484-pin package
A Tabela 6 mostra a informaccedilatildeo detalhada do Bloco do dispositivo de configuraccedilatildeo Serial e
circuito Usb-Blaster
Tabela 6 - Descriccedilatildeo das configuraccedilotildees que satildeo feitas atraveacutes da Serial e Usb-Blaster
Configuraccedilatildeo do dispositivo Serial e do Circuito Usb-Blaster Configuraccedilatildeo do dispositivo serial Altera EPCS4 On-Board Usb-Blaster
para Controle de API de usuaacuterio e programaccedilatildeo
JTAG e AS satildeo os modos do programaccedilatildeo suportados
A Tabela 7 mostra a descriccedilatildeo do Bloco da SRAM
Tabela 7 ndash Descriccedilatildeo do Bloco da SRAM
SRAM 512-Kbyte Static RAM memory chip Organizado em 256K x 16 bits Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 8 mostra a descriccedilatildeo do Bloco da SDRAM
Tabela 8 - Descriccedilatildeo do Bloco da SDRAM
SDRAM 8-Mbyte Single Data Rate Synchronous Dynamic RAM memory chip Organizado em 1M x 16 bits x 4 Banks Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
23
A Tabela 9 mostra a descriccedilatildeo do Bloco Memory Flash
Tabela 9 ndash Descriccedilatildeo da Memoria Flash
Memory Flash
4-Mbyte NAND Flash memory 8-bit data bus Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 10 mostra a descriccedilatildeo do Bloco SD card socket
Tabela 10 - Descriccedilatildeo do SD card socket
SD card socket Fornece o modo SPI para o acesso ao cartatildeo SD Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 11 mostra a descriccedilatildeo 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) Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 12 mostra a descriccedilatildeo dos Clock inputs
Tabela 12 - Descriccedilatildeo das entradas de Clocks
Clock inputs Oscilador de 50 Mhz Oscilador 27 Mhz Entrada para clock
externo
A Tabela 13 mostra a descriccedilatildeo do Aacuteudio CODEC
Tabela 13 - Descriccedilatildeo do Aacuteudio CODEC
Aacuteudio CODEC 4-Mbyte NAND Flash memory 8-bit data bus Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
24
A Tabela 14 mostra a descriccedilatildeo do Bloco VGA DAC
Tabela 14 ndash Descriccedilatildeo da saiacuteda VGA DAC
VGA
DAC
Usa 4 bits DAC para cada cor (RGB) Com 15 pinos no conector VGA convencional (fecircmea) Suporta uma resoluccedilatildeo de 640 x 480 com um refresh de ateacute 100Hz Pode ser usando com o FPGA Cyclone II para implementar um Encoder para TV
A Tabela 15 mostra a descriccedilatildeo do Bloco Serial Ports amp PS2
Tabela 15 ndash Descriccedilatildeo da Serial Port e PS2
Serial Ports amp PS2 Uma porta RS-232
Uma posta PS2 Um conector Serial para a porta do RS-232 Conector PS2 para conectar um mouse ou teclado ao DE2
A Tabela 16 mostra a descriccedilatildeo do Bloco dos Two 40 - pin expansion headers
Tabela 16 ndash Descriccedilatildeo dos conectores de expansatildeo de 40 pinos
Two 40 - pin expansion headers 72 pinos de IO do Clyclone II bem como 8 power e groundrsquos satildeo trazidos aos 2 conectores de expansatildeo de 40 pinos cada Os conectores de 40 pinos tambeacutem aceitam os cabos IDE de 40 pinos Proteccedilatildeo resistiva eacute fornecida
233 Endereccedilo das Pinagens dos Componentes usados no Projeto
2331 PushButtons
A Figura 11 mostra uma foto dos PushButtons do kit Key[30] a ordem eacute o button da
esquerda eacute o mais significativo e o mais de direita o menos signigicativo
Figura 11 ndash Os 4 PushButtons do DE2Key[30] (DE2_UserManualpdf contrado no cd do kit)
25
A Tabela 17 mostra os pinos da FPGA aos PushButtons
Tabela 17 ndash Pinos da FPGA referentes a cada PushButton (DE2_UserManualpdf contrado no cd do kit)
2332 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 ndash Modulo de displays de 7 segmentos (DE2_UserManualpdf encontrado no cd do kit)
Figura 13 ndash Index de um display (DE2_UserManualpdf encontrado no cd do
kit)
26
A Tabela 18 mostra os pinos da FPGA referente a cada segmento dos displays de 7
segmentos do modulo
Tabela 18 ndash Pinos da FPGA referentes a cada segmento dos Displays do modulo
27
2333 VGA
A Figura 14 esta em forma de onda da temporizaccedilatildeo horizontal e vertical da VGA do Kit
DE2
Figura 14 ndash Temporizaccedilatildeo horizontal da VGA
A Tabela 19 mostra a especificaccedilatildeo da temporizaccedilatildeo horizontal da VGA
Tabela 19 ndash Especificaccedilatildeo da temporizaccedilatildeo horizontal da VGA
A Tabela 20 mostra a especificaccedilatildeo da temporizaccedilatildeo vertical da VGA
Tabela 20 ndash Especificaccedilatildeo da temporizaccedilatildeo vertical da VGA
28
A Tabela 21 mostra os pinos da FPGA referente a cada pino de saida do conector VGA do
Kit DE2
Tabela 21 ndash Pinos da FPGA referentes a saiacuteda do Conector VGA do Kit
29
CAPIacuteTULO 3 ndash ESPECIFICACcedilAtildeO TECNICA
Nesse capiacutetulo tem-se uma descriccedilatildeo dos principais moacutedulos do projeto Satildeo eles Software
Firmware e Hardware
Inicialmente eacute apresentada a visatildeo geral do sistema e a descriccedilatildeo funcional de cada moacutedulo
A Figura 15 apresenta o diagrama em blocos do sistema
Figura 15 - Moacutedulos do projeto
31 Descriccedilatildeo de Software
O Software eacute uma das interfaces com o usuaacuterio
312 Diagrama de Blocos do Software
30
312 Modulo do PC
Neste modulo eacute 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
32 Descriccedilatildeo de Hardware
321 Modulo Touch-Screen
O usuaacuterio ao tocar o Touch-Screen (AT4 touch-screen resistivo de 4 fios) ocorre uma
mudanccedila nas tensotildees do eixo X e do eixo Y devido a resistecircncia gerada pelo ao toque do usuaacuterio
em uma determinada regiatildeo da tela essa mudanccedila de tensatildeo eacute interpretada pela placa
controladora COACh IIs do Touch-Screen e enviada via serial para o Kit DE2 que interpretaraacute
os dados e faraacute o devido processamento
322 Modulo FPGA
O Hardware corresponde tanto aos componentes fiacutesicos presentes no kit de desenvolvimento
quanto aos componentes que seratildeo configurados na FPGA Satildeo diversos componentes escritos
em linguagem de descriccedilatildeo de hardware
No um dos principais componentes de hardware utilizado modulo eacute o processador NIOS II
para se ter uma ideacuteia o processador NIOS II eacute capaz gerenciar os dispositivos externos a FPGA
utilizando controladores de memoacuterias controladores de VGA entre outros E tambeacutem eacute possiacutevel
o proacuteprio usuaacuterio criar seu componente para ser controlado atraveacutes do processador NIOS
II(Altera 2007)
31
3221 O Processador NIOS II
Atraveacutes do software SOPC da ALTERA foi possiacutevel montar a arquitetura de hardware do
processador NIOS II bem como especificar as interfaces que ele iraacute controlar atraveacutes do firmwar
feito no NIOS II IDE
Na Tabela 22 eacute no campo Module Name onde estatildeo os moacutedulos que foram usados para
definir o processador NIOS II e os componentes externos que ele iraacute controlar e no campo
Description esta a descriccedilatildeo do nome de cada modulo
Tabela 22 ndash Moacutedulos dos componentes e suas descriccedilotildees
3222 Firmware para o NIOS II
O Firmware foi feito utilizando a linguagem C utilizando a ferramenta NIOS II IDE Atraveacutes
do firmware eacute possiacutevel 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 graacuteficas para controlar a vga e serial e
USB-BLASTER eacute encarregado em enviar todo o desenvolvimento do projeto para o Kit DE2
323 Configuraccedilatildeo da FPGA via JTAG
Depois de configurado o hardware do processador NIOS II eacute preciso fazer o load do NIOS
para a FPGA e para que isso aconteccedila eacute necessaacuterio que atraveacutes do software Quartus II da
ALTERA utilizando a interface JTAG utilizando o cabo USB-BLASTER
32
324 Comunicaccedilatildeo entre FPGA e o Touch-Screen
Para comunicaccedilatildeo entre dos dois hardwares Touch-Screen e o FPGA eacute utilizando uma
interface serial RS-232
A configuraccedilatildeo da interface eacute a seguinte
Bits de dados 8
Taxa de dados 5600(bps)
A Tabela 23 mostra a relaccedilatildeo dos pinos da porta serial com os pinos da FPGA
Tabela 23 ndash Pinos da FPGA referente agrave pinagem da interface Serial
E a Figura 16 mostra o desenho correspondente da interface serial
Figura 16 ndash Conector da interface serial do kit DE2
33 Especificaccedilatildeo de Validaccedilatildeo
331 Validaccedilatildeo de Hardware
A validade do hardware se faz com a anaacutelise de todos os moacutedulos envolvidos
As necessidades satildeo estudadas os componentes externos ao FPGA satildeo selecionados de
acordo o processador nios e os controladores dos moacutedulos externos como VGA e SERIAL satildeo
enviados ao modulo FPGA
Os resultados obtidos na tela do monitor e a recepccedilatildeo dos dados pela serial comprovam o
funcionamento do modulo de comunicaccedilatildeo da serial e vga
33
332 Validaccedilatildeo de Software
A validaccedilatildeo do controle da interface touch-screen faz-se a partir dos resultados obtidos das
funccedilotildees escritas na linguagem C especificas para cada componente externos ao FPGA essas
funccedilotildees tornam possiacuteveis que o processador NIOS na FPGA tenha total controle sobre os
moacutedulos externos como a VGA e a SERIAL
As funccedilotildees que satildeo utilizadas para validar o funcionamento do software satildeo para a VGA os
meacutetodos de controle (alt_up_vga_draw_char_1b( char int x int y)) e (alt_up_vga_draw_pixel(
color x y))
O meacutetodo (alt_up_vga_draw_char_1b( char int x int y)) tem a funcionalidade de escrever
caracteres na tela do monitor e a descriccedilatildeo da sua assinatura ldquoparacircmetrosrdquo eacute a seguinte char eacute o
caractere que eacute escrito em alguma posiccedilatildeo na tela int x eacute a posiccedilatildeo x da tela do monitor e int y eacute
a posiccedilatildeo y da tela do monitor sendo que a resoluccedilatildeo utilizada eacute de 80x60 ou seja x natildeo pode
passar de 80 e y natildeo pode passar de 60
O meacutetodo (alt_up_vga_draw_pixel( color int x int y)) tem a funcionalidade de ldquopintarrdquo o
fundo da tela do monitor o meacutetodo de imprimir caracteres tem preferecircncia sobre este meacutetodo ou
seja os caracteres sempre ficam sob a aacuterea pintada ou seja o caractere sempre ficara em cima da
aacuterea pintada a descriccedilatildeo da assinatura deste meacutetodo eacute a seguinte color eacute a valor da cor que pode
ser um valor inteiro ou em hexadecimal para definir uma cor de alguma posiccedilatildeo da tela definidos
pelos paracircmetros x e y
As funccedilotildees que satildeo utilizadas para validar o funcionamento do software satildeo para a Serial os
meacutetodos de controle de transmissatildeo (fread( packet sizeof(packet) 1 serial_fp )) a funccedilatildeo
fread eacute utilizada para a leitura via interrupccedilatildeo dos pacotes que a controladora envia para o kit
DE2 as assinaturas do meacutetodo fread tem a seguinte composiccedilatildeo packet eacute a estrutura do pacote
que seraacute recebido o sizeof(packet) eacute o diz qual eacute o tamanho exato da estrutura criada e o
serial_fp eacute o handle da porta serial
Uma observaccedilatildeo muito importante eacute que para o total funcionamento eacute necessaacuterio 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 rs232h e rs232c onde estatildeo os meacutetodos de
controle da SERIAL e alt_up_vgah alt_up_vgac onde estatildeo os meacutetodos de controle para a
VGA Para tornar estes meacutetodos acessiacuteveis eacute preciso fazer os includes dos arquivos h no
projeto da NIOS IDE
A figura 17 mostra a utilizaccedilatildeo dos meacutetodos (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
34
int y)) utlizado para escrever os caracteres lsquoarsquo e lsquobrsquo dentro de um grupo de pixel previamente
pintado a (alt_up_vga_draw_pixel( color int x int y)) natildeo pinta um pixel de cada vez e sim
um bloco de 8x8 pixels
Figura 17 - Tela para a validaccedilatildeo dos testes com as bibliotecas graacuteficas do componente VGA
34 Recursos Necessaacuterios
A Tabela 24 apresenta os ambientes de desenvolvimento e ferramentas de software utilizadas
e na Tabela 25 as linguagens necessaacuterias Estas ferramentas foram utilizadas em ambiente
Windows Xp
Tabela 24 - Ferramentas de Desenvolvimentos e Ambientes
Software Para que foi Utilizado
Quartus II Para a definiccedilatildeo de qual o modelo de FPGA utilizado compilaccedilatildeo e simulaccedilatildeo e envio Load do NIOS para FPGA
SOPC Para definiccedilatildeo da do processador NIOS II e com quais componentes externos ele ira interagir atraveacutes dos controladores dos respectivos componentes
NIOS II IDE Para implementaccedilatildeo do firmware do processador NIOS II utilizando a linguagem em C
35
Borland C++ Builder Para desenvolvimento de ima interface de comunicaccedilatildeo via caboUSB-
BLASTER para o envio de imagem para o kit
Tabela 25 ndash Linguagens de programaccedilatildeo utilizadas
Linguagem Ferramenta C++ Borland C++ Builder VerilogVHDL Quartus II C NIOS II IDE
35 Viabilidade Teacutecnico-Econocircmica
O valor do projeto esta descrito na Tabela 26
Tabela 26 ndash Relaccedilatildeo dos Custos
DESCRICcedilAtildeO CUSTO APROXIMADO (R$) COMPONENTES ELETROcircNICOS 50000 1 Kit DE2 Cyclone II 35000 1 Monitor de Computador 35000 HORAS TRABALHADAS (400 horas) 750000 CUSTO TOTAL APROXIMADO (R$) 870000
36 Cronograma do Projeto
A tabela 27 contem as informaccedilotildees do cronograma do projeto
Tabela 27 ndash Cronograma de datas e entregas do projeto
Data Atividade a ser apresentada 050307 Entrega das propostas de projeto para avaliaccedilatildeo do colegiado 020407 Entrega das especificaccedilotildees teacutecnicas do projeto aprovado 110607 Entrega do projeto (monografia) e dos testes preliminares do mesmo 060807 Apresentaccedilatildeo preacutevia da implementaccedilatildeo do projeto especificado 011007 Apresentaccedilatildeo do projeto implementado
Qualificaccedilatildeo para a fase final 291007 Segunda apresentaccedilatildeo do projeto implementado para os que natildeo o fizeram no
dia 011006 com decreacutescimo da nota Qualificaccedilatildeo para a fase final
051107 Entrega da documentaccedilatildeo completa em espiral para a banca examinadora em 3 vias contendo a monografia manual teacutecnico manual do usuaacuterio e artigo cientiacutefico
261107 Defesa formal dos projetos com apresentaccedilatildeo oral para a banca examinadora 101207 Entrega da documentaccedilatildeo completa revisada e corrigida encadernada no
padratildeo da biblioteca (capa dura) em duas vias contendo a monografia manual teacutecnico manual do usuaacuterio e artigo cientiacutefico Entrega do CD contendo no formato WEB todo o conteuacutedo dos manuais
36
CAPIacuteTULO 4 ndash ESPECIFICACcedilAtildeO TECNICA
41 Requisitos Miacutenimos
Os requisitos miacutenimos de Hardware satildeo
Funcionamento das interfaces Serial e USB-Blaster
Funcionamento do Kit DE2
PC
Os requisitos miacutenimos de Software
Windows Xp
Quartus II
SOPC
NIOS II IDE
42 Projeto de Hardware
O hardware utilizado nesse projeto inclui componentes presentes na Placa de
Desenvolvimento Nios II - ediccedilatildeo DE2 Cyclone II EP2C35 e principalmente o hardware que seraacute
configurado na FPGA escrito em linguagem de descriccedilatildeo de hardware (HDL)
O um dos principais blocos de hardware eacute o processador NIOS II o Avalon Bus e os
controladores de componentes externos a FPGA e de comunicaccedilatildeo presentes no Kit
37
O software embarcado (firmware) estaraacute rodando nessa arquitetura Eacute uma arquitetura
completa construiacuteda com a ferramenta SOPC Builder da Altera A Figura 18 representa em
blocos os principais componentes dessa arquitetura
Figura 18 ndash Representaccedilatildeo em blocos do hardware do NIOS II
421 Funcatildeo do Touch-Screen
Outro bloco importante eacute o do Touch-Screen esta tela sensiacutevel ao toque pois como esta tela
trabalha com resistecircncia ao ser tocado em uma determinada regiatildeo uma resistecircncia eacute gerada e a
tensatildeo de saiacuteda eacute modificada a alimentaccedilatildeo desta placa eacute proveniente de sua placa controladora
a mesma placa que recebe a tensatildeo de saiacuteda modificada de acordo com a regiatildeo tocada na tela
Para verificar as caracteriacutesticas detalhadas do Touch-Screen e sua placa controlador favor ver
o Capitulo 2
422 Monitor e VGA
O Monitor inicialmente tem apenas o desenho de um botatildeo que ao ser tocado via touch
mudara a cor de toda a tela A imagem exibida no monitor tem uma resoluccedilatildeo de
38
Protoacutetipo das telas para os testes esta na Figura 19 a tela verde quando a touch natildeo eacute tocando
na regiatildeo do botatildeo de OK quando o botatildeo de OK for tocado a tela do monitor mudara de cor
ficando azul
Figura 19 ndash Tela do monitor
No Capitulo 2 estatildeo todas as caracteriacutesticas da pinagem e do conector VGA
423 Comunicaccedilatildeo serial
Entre a placa controladora do Touch-Screen e o FPGA existe uma comunicaccedilatildeo 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 manipulaccedilatildeo da imagem que eacute
mostrada no monitor
No capitulo 2 estatildeo das descriccedilotildees dos pinos e do conector da comunicaccedilatildeo Serial
O pacote serial que eacute transmitido pela placa controladora do touch-screen possui 10 bytes de
comprimento e segue a seguinte sequumlecircncia de envio
[55] [54] [] [] [] [] [] [] [] []
Sequumlecircncia dos bytes
Os dois primeiros bytes identificam o Header do pacote
O terceiro byte eacute 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 agrave posiccedilatildeo do eixo x onde a tela foi tocada
O sexto e o seacutetimo byte correspondem a posiccedilatildeo do eixo y onde a tele foi tocada
O restante os bytes identificam o tail do pacote recepcionado pelo kit DE2
39
424 Comunicaccedilatildeo USB-Blaster
Essencial para envio do projeto desenvolvido para o kit DE2 tambeacutem muito utilizado para o
debug deste projeto
435 Memoacuteria SDRAM
A memoacuteria utilizada para armazenar grandes quantidades de dados eacute a SDRAM (ver detalhes
no Capitulo 2)
Essa memoacuteria eacute muito raacutepida serviu muito bem para armazenar o firmware deste projeto
pois tem o tempo acesso ideal para ler as instruccedilotildees que utilizaram a VGA e tambeacutem eacute raacutepida o
suficiente para fazer a leitura dos dados e disponibilizar na saiacuteda VGA do kit
426 Memoacuteria FLASH
Eacute onde seraacute armazenado o firmware possui espaccedilo suficiente para isso 4MB e uma memoacuteria
mais lenta e por isso natildeo foi usada para armazenar dados para serem jogados na vga do Kit
43 Software
431 Software (Firmware)
O software tem de funccedilatildeo de utilizar as bibliotecas das controladoras dos componentes
externos a fim de controlar estes componentes de acordo com o necessaacuterio para atender o
objetivo do projeto
Ou seja uma tela inicial eacute apresentada e o usuaacuterio ao tocar na nela o kit recebe um pacote via
serial e interpreta a posiccedilatildeo da tela em que foi tocado e logo em seguida envia o resultado deste
toque para o monitor
432 Objetivos
O usuaacuterio 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 accedilatildeo de acordo com a posiccedilatildeo da tela
tocada alterando assim a imagem anterior com o resultado do toque
Interpretar o toque de usuaacuterio na tela touch-screen recepccedilatildeo do pacote via serial da placa
controladora do touch-screen tratamento do pacote e interpretaccedilatildeo das coordenadas x e y do
40
toque Realizaccedilatildeo de alguma accedilatildeo que resultara na alteraccedilatildeo da imagem da tela atual de acordo
com a funccedilatildeo em que as coordenadas foram previamente definidas para o que deve ser feito
432 Funccedilotildees
A Tabela 28 tem as principais funccedilotildees que foram implementadas para o sistema
Tabela 28 ndash Funccedilotildees do sistema firmware
FUNCcedilOtildeES Tela de um pequeno editor de texto Tratamento do sinal recebido da serial devido a um toque na tela Interpretaccedilatildeo do pacote serial e transfomaccedilatildeo para coordenadas x e y Transformaccedilatildeo das posiccedilotildees do toque na tela em alguma accedilatildeo enviando o resultado para a VGA Imagem final disponibilizada ao usuaacuterio de acordo com o toque que foi dado na tela Controlar dispositivos cada dispositivo pode ser controlado pelo seu respectivo contrador atraveacutes de seu endereccedilo base VGA SERIAL USB-BLASTER IO(Leds Switches etc) do Kit DE2
O Firmware do processador NIOS II eacute que realizaraacute a integraccedilatildeo entre hardware com
hardware Com o firmware controlando o NIOS II eacute possiacutevel interagir com os dispositivos
externos a FPGA Tornando possiacutevel a integraccedilatildeo da FPGA com a peliacutecula touch-screen e um
monitor sem a ajuda de um PC a uacutenica ajuda do pc seria para enviar dados de uma imagem para
o Kit DE2
44 Validaccedilatildeo e Testes
Inicialmente os moacutedulos da VGA e comunicaccedilatildeo SERIAL natildeo estavam funicionando
apenas o devido agrave fraca documentaccedilatildeo sobre o kit DE2 foi possiacutevel apenas fazer testes com o
Processador NIOS II pois sobre este existem bastantes documentos e exemplos que podem ser
utilizados
Nesta primeira parte foi possiacutevel testar o NIOS II para controlar o display bototildees e switchs
do kit DE2
Com o NIOS II funcionando completamente foi necessaacuterio porta-lo para o kit DE2 o que foi
simples pois como sabemos esses kits satildeo portaacuteveis entre si apenas mudando a pinagem e a
capacidade da FPGA
Com o Kit DE2 foi possiacutevel fazer os testes necessaacuterios com a comunicaccedilatildeo serial
inicialmente testada via terminal conversando diretamente com o kit foi possiacutevel fazer o
seguinte teste os caracteres que eram entrados via teclado chegavam ao kit via serial e o o
41
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 comdumpexe que eacute facilmente encontrado pelas ferramentas
de pesquisa da web e tambeacutem existem vario outros programas como este e o comdump eacute
utilizado para debug da porta serial do pc conectado diretamente na placa controladora do touch-
screen e foi a peccedila chave para o entendimento do pacote enviado pela placa controladora
Figura 20 - Cumdumpexe programa de debug da porta serial
A explicaccedilatildeo de cada byte do pacote esta explicado no item 423
Apos o entendimento completo da transmissatildeo 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 natildeo 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 ateacute o momento em que
foi testado os meacutetodos proprietaacuterios da Altera para fazer a VGA funcionar os meacutetodos esses
implementados em C
A figura 21 onde contem o teste baacutesico feito que foi a chave principal para o sucesso deste
projeto
42
Como dito no item 332 do projeto foram utilizados as funccedilotildees da controladora VGA esses
meacutetodos 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 eacute utilizado o meacutetodo alt_up_vga_draw_pixel( color int
x int y) onde color eacute a cor do bloco de pixels e x e y satildeo as coordenadas da tela onde o bloco
que seraacute pintado
Para escrever um caractere sobre um bloco de pixels pintado eacute utilizado a funccedilatildeo
alt_up_vga_draw_char_1b( char int x int y) onde char eacute o caractere a ser impresso e x e y satildeo
as coordenadas da tela onde os o caractere eacute impresso
Figura 21 - Teste baisco do funcionamento do componente VGA do kit DE2
43
CAPIacuteTULO 5 ndash VALIDACcedilAtildeO E RESULTADOS
Os resultados foram os melhores possiacuteveis pois com a utilizaccedilatildeo dos IP CORE
ldquocontroladorasrdquo dos componentes externos como VGA e SERIAL e seus meacutetodos de para
controle eacute possiacutevel controlar facilmente esses moacutedulos atraveacutes do firmware desenvolvido para o
processador NIOS que consegue realizar operaccedilotildees transparentes acessando dos meacutetodos de
controle dos moacutedulos
Apos os testes baacutesicos 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 baacutesico de editor de texto
A figura 22 mostra um teste utilizando os meacutetodos de controle disponiacuteveis para o IP CORE
da VGA para primeiramente fazer o menu da aplicaccedilatildeo desenvolvido em na linguagem C
Figura 22 ndash Menu baacutesico do editor de texto
Para desenhar o menu da figura acima foi utilizado os meacutetodos proprietaacuterios de controle da
VGA citados no capitulo 4 e tambeacutem estruturas de repeticcedilatildeo para que a tela fosse varrida e os
pixels desenhados nos respectivos lugares da tela bem como os caracteres
Na figura 23 eacute definida a seguinte estrutura em C para representar de um botatildeo
Figura 23 - Estrutura em C para representar um botatildeo
44
A figura 24 eacute a declaraccedilatildeo dos bototildees que seratildeo utilizados pelo aplicativo editor de texto
para comprovar o funcionamento do controle da interface touch-screen
Apenas o que esta dentro da marcaccedilatildeo quadrada representa os bototildees do menu da figura 23
e o restante satildeo os bototildees do teclado do editor de texto
Figura 24 - Declaraccedilatildeo dos bototildees do menu
45
A figura 25 representa o meacutetodo drawnButtonUp responsaacutevel por desenhar os bototildees na tela
de acordo com as posiccedilotildees em que foram declarados os bototildees deste meacutetodo satildeo desenhados
para parecerem que estatildeo ldquolevantadosrdquo e natildeo pressionados
Note que foram utilizados os meacutetodos proprietaacuterios de controle da VGA
alt_up_vga_draw_pixel pra pitar os pixels e alt_up_vga_draw_char_b1 para desenhar caracteres
como jaacute foi especificado no item 44 do projeto
Figura 25 ndash Meacutetodo drawButtonUp
46
O meacutetodo que desenha o caption do botatildeo se chama drawButtonText desenha os caracteres
em cima dos bototildees natildeo importa se o botatildeo esta pressionado ou natildeo
A figura 26 mostra como este meacutetodo foi implementado e ele eacute chamado no final de cada
meacutetodo onde algum tipo de botatildeo eacute desenhado quando o meacutetodo que desenha o botatildeo normal
quanto o pressionado e ateacute mesmo o do teclado
Figura 26 ndash Meacutetodo que escreve o caption de cada botatildeo
47
A figura 27 mostra o meacutetodo drawButtonDown que desenha o botatildeo pressionado ou seja
quando o usuaacuterio pressiona a regiatildeo correspondente a um botatildeo do menu no touch-screen o
mesmo redesenharaacute o botatildeo parecendo um efeito de botatildeo afundado note que no final do
meacutetodo novamente eacute chamado o meacutetodo drawButtonText que reescreveraacute o caption do botatildeo
como mostra o meacutetodo da figura 26 e esta ilustrado na figura 28
Figura 27 ndash Meacutetodo que desenha o botatildeo pressionado
48
Dependendo da aacuterea do menu que o usuaacuterio pressionar no touch-screen causar o efeito de
pressionado como mostra a figura 28
Figura 28 ndash Efeito do botatildeo de menu apertado
Na figura 29 eacute a representaccedilatildeo de quando a aacuterea correspondente ao botatildeo ldquoamarelordquo eacute
pressionada
Apos estes testes baacutesicos comprovando o funcionamento da interface graacutefica para o usuaacuterio
foi definido o restante dos componentes da tela que eacute constituiacutedo de um prompt e um teclado
qwerty que foi essencial para comprovar o perfeito funcionamento do controle da interface
touch-screen
49
51 Interface Grafica Final
A figura 29 mostra a interface final que o usuaacuterio teraacute para poder verificar o funcionamento
do controle da interface touch-screen
Figura 29 ndash Interface final touch-screen do usuaacuterio
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
511 Descriccedilatildeo do editor de texto
O menu possui 4 botoes cada um com sua respectiva funcionalidade quando o usuario
pressiona a area do botatildeo ldquoapagarrdquo uma vez entatildeo um carectere do prompt eacute apagado Quando eacute
precionado a area correspondente ao botatildeo ldquoResetrdquo todo o conteudo do prompt seraacute apagado e o
plano de fundo retornaraacute a cor branca Quando o botatildeo ldquoamarelordquo eacute pressionado o fundo da tela
passa a ser amarelo e o mesmo acontece se o usuario precionar o botatildeo verde tornando o cor de
fundo verde
50
O teclado possui 29 teclas sendo duas delas que equivalem ao ENTRA ldquoENTrdquo e ao
SPACE ldquoSPCrdquo Quando o usuario pressiona a area correspondente a algum botatildeo do teclado o
mesmo muda sua cor para azul e o seu caractere eacute disponibilizado no prompt
Essas funcionalidades nada mais satildeo do que um bom exemplo de como funciona
corretamente o controle da interface touch-screen
52 Prompt e o Teclado
A estrutura feita na linguagem C que define o prompt da figura 28 esta representado na
figura 30
Figura 30 ndash Estrutura em C para representar o prompt
A figura 31 mostra o metodo drawPrompt utilizado para desenhar na tela o prompt
Figura 31 ndash Meacutetodo que desenha o prompt
51
A estrutura do teclado eacute a mesma utilizada pela figura 23 e tambem eacute criado satildeo
inicializados na figura 24
O restante as implementaccedilotildees estatildeo disponiveis no cd deste documento
Quando algum botatildeo do teclado eacute pressionado sua cor muda para azul e sua letra
correspondente eacute escrita o prompt
A figura 32 ilustra quando o usuaacuterio aperta a letra lsquotrsquo na peliacutecula touch-screen
Figura 32 - Teste do prompt e o teclado
52
53 Controle da Interface Touch-Screen
Depois do todos os testes com o processador NIOS e a integraccedilatildeo do mesmo com os
moacutedulos externos como a porta SERIAL e a saiacuteda VGA eacute possiacutevel utilizando o touch-screen
criar uma interface amigaacutevel e faacutecil de usar para o usuaacuterio utilizando um firmware capaz de
interpretar os sinais via serial vindo da controladora do touch ao detectar que um toque foi dado
pelo usuaacuterio e realizar algumas accedilotildees que neste caso se comportam como um editor de texto
baacutesico
A figura 33 mostra como foi validado este projeto e seus moacutedulos controlando uma
interface touch-screen para chegar no resultado abaixo digitado pelo usuaacuterio comprovando o
funcionamento e viabilidade deste projeto
Figura 33 ndash 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 mudanccedilas podendo ser alterado rapidamente o tipo de
aplicaccedilatildeo ou integrado rapidamente com outro projeto
53
CAPIacuteTULO 6 - CONCLUSAtildeO
Uma das principais dificuldades no desenvolvimento deste projeto foi fazer o levantamento
da documentaccedilatildeo sobre o processador NIOS e os moacutedulos externos a FPGA do Kit DE2 Como
natildeo foi feito algum projeto antes que utilizasse a interface VGA e a SERIAL do Kit DE2 levou-
se muito tempo ateacute conseguir adquirir e ordenar o conhecimento que foi sendo adquirido ateacute
conseguir dar os primeiros passos e realizar os primeiros testes com a VGA e a SERIAL Outro
grande obstaacuteculo foi ter de descobrir que para que o NIOS controlasse os moacutedulos externos a
FGPA fosse necessaacuterio copiar os arquivos c e h dos respectivos componente para dentro do
projeto
Mas depois de todos os problemas com os moacutedulos externos solucionados cada modulo do
projeto foi sendo desenvolvido separadamente ateacute seu total funcionamento Natildeo tive dificuldades
com a linguagem da programaccedilatildeo pois o Firmware do processador NIOS eacute o C a qual mais tive
contato na faculdade
Outro desafio foi fazer a peliacutecula 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
peliacutecula natildeo 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 possiacutevel
comeccedilar a fazer os testes necessaacuterios para prosseguir com o projeto aprender como o a peliacutecula
identifica um toque e manda este sinal para a controladora e a controladora transforma este sinal
em um sinal serial que eacute 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 accedilotildees
que as coordenadas jaacute estatildeo previamente calibradas no firmware para fazer bem como mudar de
cor a tela fazer o efeito de um botatildeo subindo e descendo etc
Varias vezes o projeto parou de funcionar entatildeo 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 memoacuteria abundante etc uma das
facilidades eacute a faacutecil alteraccedilatildeo do projeto podendo ser integrado a outro ou ateacute mesmo alterado
para realizar outros tipos de accedilotildees com o touch-screen
Existem vaacuterios melhoramentos que podem ser executados no projeto um deles eacute tentar
interpretar de uma maneira diferente os valores do eixo y pois do jeito que esta a resoluccedilatildeo do
eixo y esta muito baixa dificultando o reconhecimento de toques em aacutereas pequenas Talvez a
inclusatildeo de mais alguns bytes no pacote de leitura da serial resolva o problema
54
Uma ideacuteia para um proacuteximo projeto que use a interface touch-screen poderia ser a
integraccedilatildeo com o projeto do nosso colega Roberto Junqueira ou a desenvolvimento de uma
placa controladora para o touch-screen
Este trabalho eacute uma modesta contribuiccedilatildeo para o uso de FPGAs e do processador embarcado
NIOS implementado em VHDL pela Altera que acredito que vai abrir vaacuterios caminhos pois
com este projeto alguns caminhos ficaram mais faacuteceis de percorrer daqui para a frente
55
CAPIacuteTULO 7 - REFEREcircNCIAS BIBLIOGRAacuteFICAS
AMORE Roberto drsquo VHDL Descriccedilatildeo e Sintese de Circuitos Rio de Janeiro ed LTC
2005
Elotouch Touch-Screen e Controladora Descriccedilatildeo do funcionamento e descriccedilatildeo
tecnologia Touch-Screen lthttpwwwelotouchcombrgt Acesso em fevereiro de 2007
ALTERA University Program IP Cores Instalaccedilatildeo de IP Cores e referencias sobre os
componentes dos kits DE1 e DE2 Disponivel em lthttpwwwalteracomeducationunivip-
coresunv-ip-coreshtmlgt Acesso em abril de 2007
ALTERA NIOS II Documentaccedilatildeo sobre o pprocessador embracado NIO II Disponivel
em lthttpwwwalteracomproductsipprocessorsipm-indexjspgt Acesso em Abril de 2007
ALTERA Development amp Education Board 2 (DE2) Manual do usuario Disponivel no
de que acompanha o Kit DE2 ltDE2_user_manualDE2_UserManualpdfgt Acesso em
fevereiro de 2007
15
Figura 2 ndash Mascara
(Adaptado do site elotouchcombr)
1 Camada soacutelida resistente a riscos (tipo anti-reflexiva) 3 Camada ITO
2 Peliacutecula de Poliester 4 Contatos de prata
Figura 3 ndash Vidro (Adaptado do site elotouchcombr)
1 Contatos de prata 3 Camada ITO(Transparent Conducting Oxide)
2 Pontos espaccediladores 4 Camada de Vidro
O circuito da controladora aplica uma tensatildeo atraveacutes da superfiacutecie do vidro As tensotildees no
ponto de contato constituem a representaccedilatildeo analoacutegica da superfiacutecie de toque A controladora
traduz essas tensotildees e transmite-os para o computador para processaacute-los
16
211 Placa e chip da Controladora do Touch-Screen
O COACh IIs (Controller On A Chip second generation) eacute compacto econocircmico chip
controlador para as aplicaccedilotildees com o Touch-Screen AT4 de 4 fios resistivos Opera em 33V e
em 5V O tamanho compacto baixa voltagem para operar e comsumo de energia eacute a melhor
soluccedilatildeo para OEMrsquos (original equipment manufacturer) pois pode contar com estabilidade
confiabilidade e desempenho de componentes com touch para aplicaccedilotildees embarcadas ou
aplicaccedilotildees portaacuteveis[elotouchcom] A Figura 4 ilustra o chip
Figura 4 ndash Chip COACh IIs (Adaptado do site elotouchcom)
A placa controladora que integra o touch-screen em outros moacutedulos possui as caracteriacutesticas
descritas na Tabela 1 e a Figura 5 ilustra a placa controladora
Tabela 1 ndash Caracteriacutesticas da placa controladora
Alimentaccedilatildeo 5 VDC nominal (45)
Interface-Serial (Serial RS-232) Full Duplex
Paracircmetros de Comunicaccedilatildeo Baud Rate 9600 and 19200 8 Bits de dados 1 bit de parada
Interface USB Quando estiver comunicando via USB a Serial estaraacute desabilitada E a placa natildeo eacute alimentada pela USB
Resoluccedilatildeo de toque 4096x4096 independente do tamanho da peliacutecula touch-screen
Tempo de conversatildeo do toque 10ms
17
Figura 5 ndash Placa Controladora (Adaptado do site elotouchcom)
212 Pinagens e descriccedilatildeo do Touch-Screen e da Placa Controladora
A Figura 6 ilusta os pinos do Touch-Screen que satildeo ligados ao conector da placa
controladora
Figura 6 ndash Pinos do Touch-Screen (Adaptado do site elotouchcom)
A Figura 7 mostra o conector da placa controladora e as respectivas pinagens
Figura 7 ndashConector para o touch da placa controladora (Adaptado do site elotouchcom)
18
A Tabela 2 descreve os pinos do conector para o touch da placa controladora
Tabela 2 ndash Pinagem do conector que faz interface entre o touch e a controladora
Pino
Nome do Sinal Desciccedilatildeo do sinal
1 X+ Entrada de tensatildeo positiva referente ao eixo X da tela 2 Y+ Entrada de tensatildeo positiva referente ao eixo Y da tela 3 X- Entrada de tensatildeo negativa referente ao eixo X da tela 4 Y- Entrada de tensatildeo negativa referente ao eixo Y da tela
22-Video
Eacute usado um monitor CRT convencional o qual apresentaraacute uma imagem criada atraveacutes as
bibliotecas graficas proprietarias da ALTERA esta imagem representa um menu com botoes e e
que atravez da manipulaccedilatildeo dos metodos das bibliotecas os resultados satildeo disponibilizados na
saida VGA do kit dependendo do botatildeo da imagem que for tocada atravez do touch alguma accedilatildeo
de alteraccedilatildeo na imagem seraacute atulalizada na saida vga
A Figura 8 ilustra o conector (fecircmea) da saiacuteda VGA do kit DE2
Figura 8 ndash Conector VGA femea do kit DE2
E na Tabela 3 a descriccedilatildeo de cada pino bem como sua direccedilatildeo
Tabela 3 ndash Descriccedilatildeo dos pinos da VGA
Pin
Name Dir Description
1 RED
Red Video (75 ohm 07 V p-p)
2 GREEN
Green Video (75 ohm 07 V p-p)
3 BLUE
Blue Video (75 ohm 07 V p-p)
4 ID2
Monitor ID Bit 2
5 GND
Ground
6 RGND
Red Ground
7 GGND
Green Ground
8 BGND
Blue Ground
19
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
20
23-Kit Altera Development amp Education Board 1 (Kit DE2)
231-Layout e Componentes
Uma fotografia do Kit DE2 eacute mostrado na Figura 9 onde se ve a aparencia do kit e as
indicaccedilotildees das localizaccedilatildeo dos componentes e conectores
Figura 9 ndash O kit DE2 (DE2_UserManualpdf 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 eacute listado os componentes fornecidos na placa do Kit DE2
Tabela 4 ndash Lista dos componentes do Kit DE2 (DE2_UserManualpdf contrado no cd do kit)
1 Altera Serial Configuration device ndash EPCS4
2 USB Blaster (on board) for programming and user API control both JTAG and Active 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
21
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
PS2 mousekeyboard connector
17
Two 40-pin Expansion Headers with diode protection
18
Powered by either a 75V DC adapter or a USB cable
232 Diagrama de Blocos do Kit DE2
Figura 10 ndash Diagrama de Blocos do KIT DE2 (DE2_UserManualpdf contrado no cd do kit)
22
A Tabela 5 mostra a informaccedilatildeo detalhada do Bloco Cyclone II FPGA 2C20 mostrado na
Figura 10
Tabela 5 ndash Detalhes do FPGA Cyclone II
FPGA Cyclone II 2C35
18752 LErsquos
52 M4K RAM blocks 240K total RAM bits 26 embedded multipliers 4 PLLrsquos 315 user IO pinrsquos FineLine BGA 484-pin package
A Tabela 6 mostra a informaccedilatildeo detalhada do Bloco do dispositivo de configuraccedilatildeo Serial e
circuito Usb-Blaster
Tabela 6 - Descriccedilatildeo das configuraccedilotildees que satildeo feitas atraveacutes da Serial e Usb-Blaster
Configuraccedilatildeo do dispositivo Serial e do Circuito Usb-Blaster Configuraccedilatildeo do dispositivo serial Altera EPCS4 On-Board Usb-Blaster
para Controle de API de usuaacuterio e programaccedilatildeo
JTAG e AS satildeo os modos do programaccedilatildeo suportados
A Tabela 7 mostra a descriccedilatildeo do Bloco da SRAM
Tabela 7 ndash Descriccedilatildeo do Bloco da SRAM
SRAM 512-Kbyte Static RAM memory chip Organizado em 256K x 16 bits Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 8 mostra a descriccedilatildeo do Bloco da SDRAM
Tabela 8 - Descriccedilatildeo do Bloco da SDRAM
SDRAM 8-Mbyte Single Data Rate Synchronous Dynamic RAM memory chip Organizado em 1M x 16 bits x 4 Banks Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
23
A Tabela 9 mostra a descriccedilatildeo do Bloco Memory Flash
Tabela 9 ndash Descriccedilatildeo da Memoria Flash
Memory Flash
4-Mbyte NAND Flash memory 8-bit data bus Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 10 mostra a descriccedilatildeo do Bloco SD card socket
Tabela 10 - Descriccedilatildeo do SD card socket
SD card socket Fornece o modo SPI para o acesso ao cartatildeo SD Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 11 mostra a descriccedilatildeo 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) Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 12 mostra a descriccedilatildeo dos Clock inputs
Tabela 12 - Descriccedilatildeo das entradas de Clocks
Clock inputs Oscilador de 50 Mhz Oscilador 27 Mhz Entrada para clock
externo
A Tabela 13 mostra a descriccedilatildeo do Aacuteudio CODEC
Tabela 13 - Descriccedilatildeo do Aacuteudio CODEC
Aacuteudio CODEC 4-Mbyte NAND Flash memory 8-bit data bus Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
24
A Tabela 14 mostra a descriccedilatildeo do Bloco VGA DAC
Tabela 14 ndash Descriccedilatildeo da saiacuteda VGA DAC
VGA
DAC
Usa 4 bits DAC para cada cor (RGB) Com 15 pinos no conector VGA convencional (fecircmea) Suporta uma resoluccedilatildeo de 640 x 480 com um refresh de ateacute 100Hz Pode ser usando com o FPGA Cyclone II para implementar um Encoder para TV
A Tabela 15 mostra a descriccedilatildeo do Bloco Serial Ports amp PS2
Tabela 15 ndash Descriccedilatildeo da Serial Port e PS2
Serial Ports amp PS2 Uma porta RS-232
Uma posta PS2 Um conector Serial para a porta do RS-232 Conector PS2 para conectar um mouse ou teclado ao DE2
A Tabela 16 mostra a descriccedilatildeo do Bloco dos Two 40 - pin expansion headers
Tabela 16 ndash Descriccedilatildeo dos conectores de expansatildeo de 40 pinos
Two 40 - pin expansion headers 72 pinos de IO do Clyclone II bem como 8 power e groundrsquos satildeo trazidos aos 2 conectores de expansatildeo de 40 pinos cada Os conectores de 40 pinos tambeacutem aceitam os cabos IDE de 40 pinos Proteccedilatildeo resistiva eacute fornecida
233 Endereccedilo das Pinagens dos Componentes usados no Projeto
2331 PushButtons
A Figura 11 mostra uma foto dos PushButtons do kit Key[30] a ordem eacute o button da
esquerda eacute o mais significativo e o mais de direita o menos signigicativo
Figura 11 ndash Os 4 PushButtons do DE2Key[30] (DE2_UserManualpdf contrado no cd do kit)
25
A Tabela 17 mostra os pinos da FPGA aos PushButtons
Tabela 17 ndash Pinos da FPGA referentes a cada PushButton (DE2_UserManualpdf contrado no cd do kit)
2332 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 ndash Modulo de displays de 7 segmentos (DE2_UserManualpdf encontrado no cd do kit)
Figura 13 ndash Index de um display (DE2_UserManualpdf encontrado no cd do
kit)
26
A Tabela 18 mostra os pinos da FPGA referente a cada segmento dos displays de 7
segmentos do modulo
Tabela 18 ndash Pinos da FPGA referentes a cada segmento dos Displays do modulo
27
2333 VGA
A Figura 14 esta em forma de onda da temporizaccedilatildeo horizontal e vertical da VGA do Kit
DE2
Figura 14 ndash Temporizaccedilatildeo horizontal da VGA
A Tabela 19 mostra a especificaccedilatildeo da temporizaccedilatildeo horizontal da VGA
Tabela 19 ndash Especificaccedilatildeo da temporizaccedilatildeo horizontal da VGA
A Tabela 20 mostra a especificaccedilatildeo da temporizaccedilatildeo vertical da VGA
Tabela 20 ndash Especificaccedilatildeo da temporizaccedilatildeo vertical da VGA
28
A Tabela 21 mostra os pinos da FPGA referente a cada pino de saida do conector VGA do
Kit DE2
Tabela 21 ndash Pinos da FPGA referentes a saiacuteda do Conector VGA do Kit
29
CAPIacuteTULO 3 ndash ESPECIFICACcedilAtildeO TECNICA
Nesse capiacutetulo tem-se uma descriccedilatildeo dos principais moacutedulos do projeto Satildeo eles Software
Firmware e Hardware
Inicialmente eacute apresentada a visatildeo geral do sistema e a descriccedilatildeo funcional de cada moacutedulo
A Figura 15 apresenta o diagrama em blocos do sistema
Figura 15 - Moacutedulos do projeto
31 Descriccedilatildeo de Software
O Software eacute uma das interfaces com o usuaacuterio
312 Diagrama de Blocos do Software
30
312 Modulo do PC
Neste modulo eacute 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
32 Descriccedilatildeo de Hardware
321 Modulo Touch-Screen
O usuaacuterio ao tocar o Touch-Screen (AT4 touch-screen resistivo de 4 fios) ocorre uma
mudanccedila nas tensotildees do eixo X e do eixo Y devido a resistecircncia gerada pelo ao toque do usuaacuterio
em uma determinada regiatildeo da tela essa mudanccedila de tensatildeo eacute interpretada pela placa
controladora COACh IIs do Touch-Screen e enviada via serial para o Kit DE2 que interpretaraacute
os dados e faraacute o devido processamento
322 Modulo FPGA
O Hardware corresponde tanto aos componentes fiacutesicos presentes no kit de desenvolvimento
quanto aos componentes que seratildeo configurados na FPGA Satildeo diversos componentes escritos
em linguagem de descriccedilatildeo de hardware
No um dos principais componentes de hardware utilizado modulo eacute o processador NIOS II
para se ter uma ideacuteia o processador NIOS II eacute capaz gerenciar os dispositivos externos a FPGA
utilizando controladores de memoacuterias controladores de VGA entre outros E tambeacutem eacute possiacutevel
o proacuteprio usuaacuterio criar seu componente para ser controlado atraveacutes do processador NIOS
II(Altera 2007)
31
3221 O Processador NIOS II
Atraveacutes do software SOPC da ALTERA foi possiacutevel montar a arquitetura de hardware do
processador NIOS II bem como especificar as interfaces que ele iraacute controlar atraveacutes do firmwar
feito no NIOS II IDE
Na Tabela 22 eacute no campo Module Name onde estatildeo os moacutedulos que foram usados para
definir o processador NIOS II e os componentes externos que ele iraacute controlar e no campo
Description esta a descriccedilatildeo do nome de cada modulo
Tabela 22 ndash Moacutedulos dos componentes e suas descriccedilotildees
3222 Firmware para o NIOS II
O Firmware foi feito utilizando a linguagem C utilizando a ferramenta NIOS II IDE Atraveacutes
do firmware eacute possiacutevel 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 graacuteficas para controlar a vga e serial e
USB-BLASTER eacute encarregado em enviar todo o desenvolvimento do projeto para o Kit DE2
323 Configuraccedilatildeo da FPGA via JTAG
Depois de configurado o hardware do processador NIOS II eacute preciso fazer o load do NIOS
para a FPGA e para que isso aconteccedila eacute necessaacuterio que atraveacutes do software Quartus II da
ALTERA utilizando a interface JTAG utilizando o cabo USB-BLASTER
32
324 Comunicaccedilatildeo entre FPGA e o Touch-Screen
Para comunicaccedilatildeo entre dos dois hardwares Touch-Screen e o FPGA eacute utilizando uma
interface serial RS-232
A configuraccedilatildeo da interface eacute a seguinte
Bits de dados 8
Taxa de dados 5600(bps)
A Tabela 23 mostra a relaccedilatildeo dos pinos da porta serial com os pinos da FPGA
Tabela 23 ndash Pinos da FPGA referente agrave pinagem da interface Serial
E a Figura 16 mostra o desenho correspondente da interface serial
Figura 16 ndash Conector da interface serial do kit DE2
33 Especificaccedilatildeo de Validaccedilatildeo
331 Validaccedilatildeo de Hardware
A validade do hardware se faz com a anaacutelise de todos os moacutedulos envolvidos
As necessidades satildeo estudadas os componentes externos ao FPGA satildeo selecionados de
acordo o processador nios e os controladores dos moacutedulos externos como VGA e SERIAL satildeo
enviados ao modulo FPGA
Os resultados obtidos na tela do monitor e a recepccedilatildeo dos dados pela serial comprovam o
funcionamento do modulo de comunicaccedilatildeo da serial e vga
33
332 Validaccedilatildeo de Software
A validaccedilatildeo do controle da interface touch-screen faz-se a partir dos resultados obtidos das
funccedilotildees escritas na linguagem C especificas para cada componente externos ao FPGA essas
funccedilotildees tornam possiacuteveis que o processador NIOS na FPGA tenha total controle sobre os
moacutedulos externos como a VGA e a SERIAL
As funccedilotildees que satildeo utilizadas para validar o funcionamento do software satildeo para a VGA os
meacutetodos de controle (alt_up_vga_draw_char_1b( char int x int y)) e (alt_up_vga_draw_pixel(
color x y))
O meacutetodo (alt_up_vga_draw_char_1b( char int x int y)) tem a funcionalidade de escrever
caracteres na tela do monitor e a descriccedilatildeo da sua assinatura ldquoparacircmetrosrdquo eacute a seguinte char eacute o
caractere que eacute escrito em alguma posiccedilatildeo na tela int x eacute a posiccedilatildeo x da tela do monitor e int y eacute
a posiccedilatildeo y da tela do monitor sendo que a resoluccedilatildeo utilizada eacute de 80x60 ou seja x natildeo pode
passar de 80 e y natildeo pode passar de 60
O meacutetodo (alt_up_vga_draw_pixel( color int x int y)) tem a funcionalidade de ldquopintarrdquo o
fundo da tela do monitor o meacutetodo de imprimir caracteres tem preferecircncia sobre este meacutetodo ou
seja os caracteres sempre ficam sob a aacuterea pintada ou seja o caractere sempre ficara em cima da
aacuterea pintada a descriccedilatildeo da assinatura deste meacutetodo eacute a seguinte color eacute a valor da cor que pode
ser um valor inteiro ou em hexadecimal para definir uma cor de alguma posiccedilatildeo da tela definidos
pelos paracircmetros x e y
As funccedilotildees que satildeo utilizadas para validar o funcionamento do software satildeo para a Serial os
meacutetodos de controle de transmissatildeo (fread( packet sizeof(packet) 1 serial_fp )) a funccedilatildeo
fread eacute utilizada para a leitura via interrupccedilatildeo dos pacotes que a controladora envia para o kit
DE2 as assinaturas do meacutetodo fread tem a seguinte composiccedilatildeo packet eacute a estrutura do pacote
que seraacute recebido o sizeof(packet) eacute o diz qual eacute o tamanho exato da estrutura criada e o
serial_fp eacute o handle da porta serial
Uma observaccedilatildeo muito importante eacute que para o total funcionamento eacute necessaacuterio 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 rs232h e rs232c onde estatildeo os meacutetodos de
controle da SERIAL e alt_up_vgah alt_up_vgac onde estatildeo os meacutetodos de controle para a
VGA Para tornar estes meacutetodos acessiacuteveis eacute preciso fazer os includes dos arquivos h no
projeto da NIOS IDE
A figura 17 mostra a utilizaccedilatildeo dos meacutetodos (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
34
int y)) utlizado para escrever os caracteres lsquoarsquo e lsquobrsquo dentro de um grupo de pixel previamente
pintado a (alt_up_vga_draw_pixel( color int x int y)) natildeo pinta um pixel de cada vez e sim
um bloco de 8x8 pixels
Figura 17 - Tela para a validaccedilatildeo dos testes com as bibliotecas graacuteficas do componente VGA
34 Recursos Necessaacuterios
A Tabela 24 apresenta os ambientes de desenvolvimento e ferramentas de software utilizadas
e na Tabela 25 as linguagens necessaacuterias Estas ferramentas foram utilizadas em ambiente
Windows Xp
Tabela 24 - Ferramentas de Desenvolvimentos e Ambientes
Software Para que foi Utilizado
Quartus II Para a definiccedilatildeo de qual o modelo de FPGA utilizado compilaccedilatildeo e simulaccedilatildeo e envio Load do NIOS para FPGA
SOPC Para definiccedilatildeo da do processador NIOS II e com quais componentes externos ele ira interagir atraveacutes dos controladores dos respectivos componentes
NIOS II IDE Para implementaccedilatildeo do firmware do processador NIOS II utilizando a linguagem em C
35
Borland C++ Builder Para desenvolvimento de ima interface de comunicaccedilatildeo via caboUSB-
BLASTER para o envio de imagem para o kit
Tabela 25 ndash Linguagens de programaccedilatildeo utilizadas
Linguagem Ferramenta C++ Borland C++ Builder VerilogVHDL Quartus II C NIOS II IDE
35 Viabilidade Teacutecnico-Econocircmica
O valor do projeto esta descrito na Tabela 26
Tabela 26 ndash Relaccedilatildeo dos Custos
DESCRICcedilAtildeO CUSTO APROXIMADO (R$) COMPONENTES ELETROcircNICOS 50000 1 Kit DE2 Cyclone II 35000 1 Monitor de Computador 35000 HORAS TRABALHADAS (400 horas) 750000 CUSTO TOTAL APROXIMADO (R$) 870000
36 Cronograma do Projeto
A tabela 27 contem as informaccedilotildees do cronograma do projeto
Tabela 27 ndash Cronograma de datas e entregas do projeto
Data Atividade a ser apresentada 050307 Entrega das propostas de projeto para avaliaccedilatildeo do colegiado 020407 Entrega das especificaccedilotildees teacutecnicas do projeto aprovado 110607 Entrega do projeto (monografia) e dos testes preliminares do mesmo 060807 Apresentaccedilatildeo preacutevia da implementaccedilatildeo do projeto especificado 011007 Apresentaccedilatildeo do projeto implementado
Qualificaccedilatildeo para a fase final 291007 Segunda apresentaccedilatildeo do projeto implementado para os que natildeo o fizeram no
dia 011006 com decreacutescimo da nota Qualificaccedilatildeo para a fase final
051107 Entrega da documentaccedilatildeo completa em espiral para a banca examinadora em 3 vias contendo a monografia manual teacutecnico manual do usuaacuterio e artigo cientiacutefico
261107 Defesa formal dos projetos com apresentaccedilatildeo oral para a banca examinadora 101207 Entrega da documentaccedilatildeo completa revisada e corrigida encadernada no
padratildeo da biblioteca (capa dura) em duas vias contendo a monografia manual teacutecnico manual do usuaacuterio e artigo cientiacutefico Entrega do CD contendo no formato WEB todo o conteuacutedo dos manuais
36
CAPIacuteTULO 4 ndash ESPECIFICACcedilAtildeO TECNICA
41 Requisitos Miacutenimos
Os requisitos miacutenimos de Hardware satildeo
Funcionamento das interfaces Serial e USB-Blaster
Funcionamento do Kit DE2
PC
Os requisitos miacutenimos de Software
Windows Xp
Quartus II
SOPC
NIOS II IDE
42 Projeto de Hardware
O hardware utilizado nesse projeto inclui componentes presentes na Placa de
Desenvolvimento Nios II - ediccedilatildeo DE2 Cyclone II EP2C35 e principalmente o hardware que seraacute
configurado na FPGA escrito em linguagem de descriccedilatildeo de hardware (HDL)
O um dos principais blocos de hardware eacute o processador NIOS II o Avalon Bus e os
controladores de componentes externos a FPGA e de comunicaccedilatildeo presentes no Kit
37
O software embarcado (firmware) estaraacute rodando nessa arquitetura Eacute uma arquitetura
completa construiacuteda com a ferramenta SOPC Builder da Altera A Figura 18 representa em
blocos os principais componentes dessa arquitetura
Figura 18 ndash Representaccedilatildeo em blocos do hardware do NIOS II
421 Funcatildeo do Touch-Screen
Outro bloco importante eacute o do Touch-Screen esta tela sensiacutevel ao toque pois como esta tela
trabalha com resistecircncia ao ser tocado em uma determinada regiatildeo uma resistecircncia eacute gerada e a
tensatildeo de saiacuteda eacute modificada a alimentaccedilatildeo desta placa eacute proveniente de sua placa controladora
a mesma placa que recebe a tensatildeo de saiacuteda modificada de acordo com a regiatildeo tocada na tela
Para verificar as caracteriacutesticas detalhadas do Touch-Screen e sua placa controlador favor ver
o Capitulo 2
422 Monitor e VGA
O Monitor inicialmente tem apenas o desenho de um botatildeo que ao ser tocado via touch
mudara a cor de toda a tela A imagem exibida no monitor tem uma resoluccedilatildeo de
38
Protoacutetipo das telas para os testes esta na Figura 19 a tela verde quando a touch natildeo eacute tocando
na regiatildeo do botatildeo de OK quando o botatildeo de OK for tocado a tela do monitor mudara de cor
ficando azul
Figura 19 ndash Tela do monitor
No Capitulo 2 estatildeo todas as caracteriacutesticas da pinagem e do conector VGA
423 Comunicaccedilatildeo serial
Entre a placa controladora do Touch-Screen e o FPGA existe uma comunicaccedilatildeo 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 manipulaccedilatildeo da imagem que eacute
mostrada no monitor
No capitulo 2 estatildeo das descriccedilotildees dos pinos e do conector da comunicaccedilatildeo Serial
O pacote serial que eacute transmitido pela placa controladora do touch-screen possui 10 bytes de
comprimento e segue a seguinte sequumlecircncia de envio
[55] [54] [] [] [] [] [] [] [] []
Sequumlecircncia dos bytes
Os dois primeiros bytes identificam o Header do pacote
O terceiro byte eacute 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 agrave posiccedilatildeo do eixo x onde a tela foi tocada
O sexto e o seacutetimo byte correspondem a posiccedilatildeo do eixo y onde a tele foi tocada
O restante os bytes identificam o tail do pacote recepcionado pelo kit DE2
39
424 Comunicaccedilatildeo USB-Blaster
Essencial para envio do projeto desenvolvido para o kit DE2 tambeacutem muito utilizado para o
debug deste projeto
435 Memoacuteria SDRAM
A memoacuteria utilizada para armazenar grandes quantidades de dados eacute a SDRAM (ver detalhes
no Capitulo 2)
Essa memoacuteria eacute muito raacutepida serviu muito bem para armazenar o firmware deste projeto
pois tem o tempo acesso ideal para ler as instruccedilotildees que utilizaram a VGA e tambeacutem eacute raacutepida o
suficiente para fazer a leitura dos dados e disponibilizar na saiacuteda VGA do kit
426 Memoacuteria FLASH
Eacute onde seraacute armazenado o firmware possui espaccedilo suficiente para isso 4MB e uma memoacuteria
mais lenta e por isso natildeo foi usada para armazenar dados para serem jogados na vga do Kit
43 Software
431 Software (Firmware)
O software tem de funccedilatildeo de utilizar as bibliotecas das controladoras dos componentes
externos a fim de controlar estes componentes de acordo com o necessaacuterio para atender o
objetivo do projeto
Ou seja uma tela inicial eacute apresentada e o usuaacuterio ao tocar na nela o kit recebe um pacote via
serial e interpreta a posiccedilatildeo da tela em que foi tocado e logo em seguida envia o resultado deste
toque para o monitor
432 Objetivos
O usuaacuterio 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 accedilatildeo de acordo com a posiccedilatildeo da tela
tocada alterando assim a imagem anterior com o resultado do toque
Interpretar o toque de usuaacuterio na tela touch-screen recepccedilatildeo do pacote via serial da placa
controladora do touch-screen tratamento do pacote e interpretaccedilatildeo das coordenadas x e y do
40
toque Realizaccedilatildeo de alguma accedilatildeo que resultara na alteraccedilatildeo da imagem da tela atual de acordo
com a funccedilatildeo em que as coordenadas foram previamente definidas para o que deve ser feito
432 Funccedilotildees
A Tabela 28 tem as principais funccedilotildees que foram implementadas para o sistema
Tabela 28 ndash Funccedilotildees do sistema firmware
FUNCcedilOtildeES Tela de um pequeno editor de texto Tratamento do sinal recebido da serial devido a um toque na tela Interpretaccedilatildeo do pacote serial e transfomaccedilatildeo para coordenadas x e y Transformaccedilatildeo das posiccedilotildees do toque na tela em alguma accedilatildeo enviando o resultado para a VGA Imagem final disponibilizada ao usuaacuterio de acordo com o toque que foi dado na tela Controlar dispositivos cada dispositivo pode ser controlado pelo seu respectivo contrador atraveacutes de seu endereccedilo base VGA SERIAL USB-BLASTER IO(Leds Switches etc) do Kit DE2
O Firmware do processador NIOS II eacute que realizaraacute a integraccedilatildeo entre hardware com
hardware Com o firmware controlando o NIOS II eacute possiacutevel interagir com os dispositivos
externos a FPGA Tornando possiacutevel a integraccedilatildeo da FPGA com a peliacutecula touch-screen e um
monitor sem a ajuda de um PC a uacutenica ajuda do pc seria para enviar dados de uma imagem para
o Kit DE2
44 Validaccedilatildeo e Testes
Inicialmente os moacutedulos da VGA e comunicaccedilatildeo SERIAL natildeo estavam funicionando
apenas o devido agrave fraca documentaccedilatildeo sobre o kit DE2 foi possiacutevel apenas fazer testes com o
Processador NIOS II pois sobre este existem bastantes documentos e exemplos que podem ser
utilizados
Nesta primeira parte foi possiacutevel testar o NIOS II para controlar o display bototildees e switchs
do kit DE2
Com o NIOS II funcionando completamente foi necessaacuterio porta-lo para o kit DE2 o que foi
simples pois como sabemos esses kits satildeo portaacuteveis entre si apenas mudando a pinagem e a
capacidade da FPGA
Com o Kit DE2 foi possiacutevel fazer os testes necessaacuterios com a comunicaccedilatildeo serial
inicialmente testada via terminal conversando diretamente com o kit foi possiacutevel fazer o
seguinte teste os caracteres que eram entrados via teclado chegavam ao kit via serial e o o
41
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 comdumpexe que eacute facilmente encontrado pelas ferramentas
de pesquisa da web e tambeacutem existem vario outros programas como este e o comdump eacute
utilizado para debug da porta serial do pc conectado diretamente na placa controladora do touch-
screen e foi a peccedila chave para o entendimento do pacote enviado pela placa controladora
Figura 20 - Cumdumpexe programa de debug da porta serial
A explicaccedilatildeo de cada byte do pacote esta explicado no item 423
Apos o entendimento completo da transmissatildeo 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 natildeo 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 ateacute o momento em que
foi testado os meacutetodos proprietaacuterios da Altera para fazer a VGA funcionar os meacutetodos esses
implementados em C
A figura 21 onde contem o teste baacutesico feito que foi a chave principal para o sucesso deste
projeto
42
Como dito no item 332 do projeto foram utilizados as funccedilotildees da controladora VGA esses
meacutetodos 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 eacute utilizado o meacutetodo alt_up_vga_draw_pixel( color int
x int y) onde color eacute a cor do bloco de pixels e x e y satildeo as coordenadas da tela onde o bloco
que seraacute pintado
Para escrever um caractere sobre um bloco de pixels pintado eacute utilizado a funccedilatildeo
alt_up_vga_draw_char_1b( char int x int y) onde char eacute o caractere a ser impresso e x e y satildeo
as coordenadas da tela onde os o caractere eacute impresso
Figura 21 - Teste baisco do funcionamento do componente VGA do kit DE2
43
CAPIacuteTULO 5 ndash VALIDACcedilAtildeO E RESULTADOS
Os resultados foram os melhores possiacuteveis pois com a utilizaccedilatildeo dos IP CORE
ldquocontroladorasrdquo dos componentes externos como VGA e SERIAL e seus meacutetodos de para
controle eacute possiacutevel controlar facilmente esses moacutedulos atraveacutes do firmware desenvolvido para o
processador NIOS que consegue realizar operaccedilotildees transparentes acessando dos meacutetodos de
controle dos moacutedulos
Apos os testes baacutesicos 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 baacutesico de editor de texto
A figura 22 mostra um teste utilizando os meacutetodos de controle disponiacuteveis para o IP CORE
da VGA para primeiramente fazer o menu da aplicaccedilatildeo desenvolvido em na linguagem C
Figura 22 ndash Menu baacutesico do editor de texto
Para desenhar o menu da figura acima foi utilizado os meacutetodos proprietaacuterios de controle da
VGA citados no capitulo 4 e tambeacutem estruturas de repeticcedilatildeo para que a tela fosse varrida e os
pixels desenhados nos respectivos lugares da tela bem como os caracteres
Na figura 23 eacute definida a seguinte estrutura em C para representar de um botatildeo
Figura 23 - Estrutura em C para representar um botatildeo
44
A figura 24 eacute a declaraccedilatildeo dos bototildees que seratildeo utilizados pelo aplicativo editor de texto
para comprovar o funcionamento do controle da interface touch-screen
Apenas o que esta dentro da marcaccedilatildeo quadrada representa os bototildees do menu da figura 23
e o restante satildeo os bototildees do teclado do editor de texto
Figura 24 - Declaraccedilatildeo dos bototildees do menu
45
A figura 25 representa o meacutetodo drawnButtonUp responsaacutevel por desenhar os bototildees na tela
de acordo com as posiccedilotildees em que foram declarados os bototildees deste meacutetodo satildeo desenhados
para parecerem que estatildeo ldquolevantadosrdquo e natildeo pressionados
Note que foram utilizados os meacutetodos proprietaacuterios de controle da VGA
alt_up_vga_draw_pixel pra pitar os pixels e alt_up_vga_draw_char_b1 para desenhar caracteres
como jaacute foi especificado no item 44 do projeto
Figura 25 ndash Meacutetodo drawButtonUp
46
O meacutetodo que desenha o caption do botatildeo se chama drawButtonText desenha os caracteres
em cima dos bototildees natildeo importa se o botatildeo esta pressionado ou natildeo
A figura 26 mostra como este meacutetodo foi implementado e ele eacute chamado no final de cada
meacutetodo onde algum tipo de botatildeo eacute desenhado quando o meacutetodo que desenha o botatildeo normal
quanto o pressionado e ateacute mesmo o do teclado
Figura 26 ndash Meacutetodo que escreve o caption de cada botatildeo
47
A figura 27 mostra o meacutetodo drawButtonDown que desenha o botatildeo pressionado ou seja
quando o usuaacuterio pressiona a regiatildeo correspondente a um botatildeo do menu no touch-screen o
mesmo redesenharaacute o botatildeo parecendo um efeito de botatildeo afundado note que no final do
meacutetodo novamente eacute chamado o meacutetodo drawButtonText que reescreveraacute o caption do botatildeo
como mostra o meacutetodo da figura 26 e esta ilustrado na figura 28
Figura 27 ndash Meacutetodo que desenha o botatildeo pressionado
48
Dependendo da aacuterea do menu que o usuaacuterio pressionar no touch-screen causar o efeito de
pressionado como mostra a figura 28
Figura 28 ndash Efeito do botatildeo de menu apertado
Na figura 29 eacute a representaccedilatildeo de quando a aacuterea correspondente ao botatildeo ldquoamarelordquo eacute
pressionada
Apos estes testes baacutesicos comprovando o funcionamento da interface graacutefica para o usuaacuterio
foi definido o restante dos componentes da tela que eacute constituiacutedo de um prompt e um teclado
qwerty que foi essencial para comprovar o perfeito funcionamento do controle da interface
touch-screen
49
51 Interface Grafica Final
A figura 29 mostra a interface final que o usuaacuterio teraacute para poder verificar o funcionamento
do controle da interface touch-screen
Figura 29 ndash Interface final touch-screen do usuaacuterio
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
511 Descriccedilatildeo do editor de texto
O menu possui 4 botoes cada um com sua respectiva funcionalidade quando o usuario
pressiona a area do botatildeo ldquoapagarrdquo uma vez entatildeo um carectere do prompt eacute apagado Quando eacute
precionado a area correspondente ao botatildeo ldquoResetrdquo todo o conteudo do prompt seraacute apagado e o
plano de fundo retornaraacute a cor branca Quando o botatildeo ldquoamarelordquo eacute pressionado o fundo da tela
passa a ser amarelo e o mesmo acontece se o usuario precionar o botatildeo verde tornando o cor de
fundo verde
50
O teclado possui 29 teclas sendo duas delas que equivalem ao ENTRA ldquoENTrdquo e ao
SPACE ldquoSPCrdquo Quando o usuario pressiona a area correspondente a algum botatildeo do teclado o
mesmo muda sua cor para azul e o seu caractere eacute disponibilizado no prompt
Essas funcionalidades nada mais satildeo do que um bom exemplo de como funciona
corretamente o controle da interface touch-screen
52 Prompt e o Teclado
A estrutura feita na linguagem C que define o prompt da figura 28 esta representado na
figura 30
Figura 30 ndash Estrutura em C para representar o prompt
A figura 31 mostra o metodo drawPrompt utilizado para desenhar na tela o prompt
Figura 31 ndash Meacutetodo que desenha o prompt
51
A estrutura do teclado eacute a mesma utilizada pela figura 23 e tambem eacute criado satildeo
inicializados na figura 24
O restante as implementaccedilotildees estatildeo disponiveis no cd deste documento
Quando algum botatildeo do teclado eacute pressionado sua cor muda para azul e sua letra
correspondente eacute escrita o prompt
A figura 32 ilustra quando o usuaacuterio aperta a letra lsquotrsquo na peliacutecula touch-screen
Figura 32 - Teste do prompt e o teclado
52
53 Controle da Interface Touch-Screen
Depois do todos os testes com o processador NIOS e a integraccedilatildeo do mesmo com os
moacutedulos externos como a porta SERIAL e a saiacuteda VGA eacute possiacutevel utilizando o touch-screen
criar uma interface amigaacutevel e faacutecil de usar para o usuaacuterio utilizando um firmware capaz de
interpretar os sinais via serial vindo da controladora do touch ao detectar que um toque foi dado
pelo usuaacuterio e realizar algumas accedilotildees que neste caso se comportam como um editor de texto
baacutesico
A figura 33 mostra como foi validado este projeto e seus moacutedulos controlando uma
interface touch-screen para chegar no resultado abaixo digitado pelo usuaacuterio comprovando o
funcionamento e viabilidade deste projeto
Figura 33 ndash 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 mudanccedilas podendo ser alterado rapidamente o tipo de
aplicaccedilatildeo ou integrado rapidamente com outro projeto
53
CAPIacuteTULO 6 - CONCLUSAtildeO
Uma das principais dificuldades no desenvolvimento deste projeto foi fazer o levantamento
da documentaccedilatildeo sobre o processador NIOS e os moacutedulos externos a FPGA do Kit DE2 Como
natildeo foi feito algum projeto antes que utilizasse a interface VGA e a SERIAL do Kit DE2 levou-
se muito tempo ateacute conseguir adquirir e ordenar o conhecimento que foi sendo adquirido ateacute
conseguir dar os primeiros passos e realizar os primeiros testes com a VGA e a SERIAL Outro
grande obstaacuteculo foi ter de descobrir que para que o NIOS controlasse os moacutedulos externos a
FGPA fosse necessaacuterio copiar os arquivos c e h dos respectivos componente para dentro do
projeto
Mas depois de todos os problemas com os moacutedulos externos solucionados cada modulo do
projeto foi sendo desenvolvido separadamente ateacute seu total funcionamento Natildeo tive dificuldades
com a linguagem da programaccedilatildeo pois o Firmware do processador NIOS eacute o C a qual mais tive
contato na faculdade
Outro desafio foi fazer a peliacutecula 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
peliacutecula natildeo 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 possiacutevel
comeccedilar a fazer os testes necessaacuterios para prosseguir com o projeto aprender como o a peliacutecula
identifica um toque e manda este sinal para a controladora e a controladora transforma este sinal
em um sinal serial que eacute 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 accedilotildees
que as coordenadas jaacute estatildeo previamente calibradas no firmware para fazer bem como mudar de
cor a tela fazer o efeito de um botatildeo subindo e descendo etc
Varias vezes o projeto parou de funcionar entatildeo 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 memoacuteria abundante etc uma das
facilidades eacute a faacutecil alteraccedilatildeo do projeto podendo ser integrado a outro ou ateacute mesmo alterado
para realizar outros tipos de accedilotildees com o touch-screen
Existem vaacuterios melhoramentos que podem ser executados no projeto um deles eacute tentar
interpretar de uma maneira diferente os valores do eixo y pois do jeito que esta a resoluccedilatildeo do
eixo y esta muito baixa dificultando o reconhecimento de toques em aacutereas pequenas Talvez a
inclusatildeo de mais alguns bytes no pacote de leitura da serial resolva o problema
54
Uma ideacuteia para um proacuteximo projeto que use a interface touch-screen poderia ser a
integraccedilatildeo com o projeto do nosso colega Roberto Junqueira ou a desenvolvimento de uma
placa controladora para o touch-screen
Este trabalho eacute uma modesta contribuiccedilatildeo para o uso de FPGAs e do processador embarcado
NIOS implementado em VHDL pela Altera que acredito que vai abrir vaacuterios caminhos pois
com este projeto alguns caminhos ficaram mais faacuteceis de percorrer daqui para a frente
55
CAPIacuteTULO 7 - REFEREcircNCIAS BIBLIOGRAacuteFICAS
AMORE Roberto drsquo VHDL Descriccedilatildeo e Sintese de Circuitos Rio de Janeiro ed LTC
2005
Elotouch Touch-Screen e Controladora Descriccedilatildeo do funcionamento e descriccedilatildeo
tecnologia Touch-Screen lthttpwwwelotouchcombrgt Acesso em fevereiro de 2007
ALTERA University Program IP Cores Instalaccedilatildeo de IP Cores e referencias sobre os
componentes dos kits DE1 e DE2 Disponivel em lthttpwwwalteracomeducationunivip-
coresunv-ip-coreshtmlgt Acesso em abril de 2007
ALTERA NIOS II Documentaccedilatildeo sobre o pprocessador embracado NIO II Disponivel
em lthttpwwwalteracomproductsipprocessorsipm-indexjspgt Acesso em Abril de 2007
ALTERA Development amp Education Board 2 (DE2) Manual do usuario Disponivel no
de que acompanha o Kit DE2 ltDE2_user_manualDE2_UserManualpdfgt Acesso em
fevereiro de 2007
16
211 Placa e chip da Controladora do Touch-Screen
O COACh IIs (Controller On A Chip second generation) eacute compacto econocircmico chip
controlador para as aplicaccedilotildees com o Touch-Screen AT4 de 4 fios resistivos Opera em 33V e
em 5V O tamanho compacto baixa voltagem para operar e comsumo de energia eacute a melhor
soluccedilatildeo para OEMrsquos (original equipment manufacturer) pois pode contar com estabilidade
confiabilidade e desempenho de componentes com touch para aplicaccedilotildees embarcadas ou
aplicaccedilotildees portaacuteveis[elotouchcom] A Figura 4 ilustra o chip
Figura 4 ndash Chip COACh IIs (Adaptado do site elotouchcom)
A placa controladora que integra o touch-screen em outros moacutedulos possui as caracteriacutesticas
descritas na Tabela 1 e a Figura 5 ilustra a placa controladora
Tabela 1 ndash Caracteriacutesticas da placa controladora
Alimentaccedilatildeo 5 VDC nominal (45)
Interface-Serial (Serial RS-232) Full Duplex
Paracircmetros de Comunicaccedilatildeo Baud Rate 9600 and 19200 8 Bits de dados 1 bit de parada
Interface USB Quando estiver comunicando via USB a Serial estaraacute desabilitada E a placa natildeo eacute alimentada pela USB
Resoluccedilatildeo de toque 4096x4096 independente do tamanho da peliacutecula touch-screen
Tempo de conversatildeo do toque 10ms
17
Figura 5 ndash Placa Controladora (Adaptado do site elotouchcom)
212 Pinagens e descriccedilatildeo do Touch-Screen e da Placa Controladora
A Figura 6 ilusta os pinos do Touch-Screen que satildeo ligados ao conector da placa
controladora
Figura 6 ndash Pinos do Touch-Screen (Adaptado do site elotouchcom)
A Figura 7 mostra o conector da placa controladora e as respectivas pinagens
Figura 7 ndashConector para o touch da placa controladora (Adaptado do site elotouchcom)
18
A Tabela 2 descreve os pinos do conector para o touch da placa controladora
Tabela 2 ndash Pinagem do conector que faz interface entre o touch e a controladora
Pino
Nome do Sinal Desciccedilatildeo do sinal
1 X+ Entrada de tensatildeo positiva referente ao eixo X da tela 2 Y+ Entrada de tensatildeo positiva referente ao eixo Y da tela 3 X- Entrada de tensatildeo negativa referente ao eixo X da tela 4 Y- Entrada de tensatildeo negativa referente ao eixo Y da tela
22-Video
Eacute usado um monitor CRT convencional o qual apresentaraacute uma imagem criada atraveacutes as
bibliotecas graficas proprietarias da ALTERA esta imagem representa um menu com botoes e e
que atravez da manipulaccedilatildeo dos metodos das bibliotecas os resultados satildeo disponibilizados na
saida VGA do kit dependendo do botatildeo da imagem que for tocada atravez do touch alguma accedilatildeo
de alteraccedilatildeo na imagem seraacute atulalizada na saida vga
A Figura 8 ilustra o conector (fecircmea) da saiacuteda VGA do kit DE2
Figura 8 ndash Conector VGA femea do kit DE2
E na Tabela 3 a descriccedilatildeo de cada pino bem como sua direccedilatildeo
Tabela 3 ndash Descriccedilatildeo dos pinos da VGA
Pin
Name Dir Description
1 RED
Red Video (75 ohm 07 V p-p)
2 GREEN
Green Video (75 ohm 07 V p-p)
3 BLUE
Blue Video (75 ohm 07 V p-p)
4 ID2
Monitor ID Bit 2
5 GND
Ground
6 RGND
Red Ground
7 GGND
Green Ground
8 BGND
Blue Ground
19
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
20
23-Kit Altera Development amp Education Board 1 (Kit DE2)
231-Layout e Componentes
Uma fotografia do Kit DE2 eacute mostrado na Figura 9 onde se ve a aparencia do kit e as
indicaccedilotildees das localizaccedilatildeo dos componentes e conectores
Figura 9 ndash O kit DE2 (DE2_UserManualpdf 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 eacute listado os componentes fornecidos na placa do Kit DE2
Tabela 4 ndash Lista dos componentes do Kit DE2 (DE2_UserManualpdf contrado no cd do kit)
1 Altera Serial Configuration device ndash EPCS4
2 USB Blaster (on board) for programming and user API control both JTAG and Active 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
21
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
PS2 mousekeyboard connector
17
Two 40-pin Expansion Headers with diode protection
18
Powered by either a 75V DC adapter or a USB cable
232 Diagrama de Blocos do Kit DE2
Figura 10 ndash Diagrama de Blocos do KIT DE2 (DE2_UserManualpdf contrado no cd do kit)
22
A Tabela 5 mostra a informaccedilatildeo detalhada do Bloco Cyclone II FPGA 2C20 mostrado na
Figura 10
Tabela 5 ndash Detalhes do FPGA Cyclone II
FPGA Cyclone II 2C35
18752 LErsquos
52 M4K RAM blocks 240K total RAM bits 26 embedded multipliers 4 PLLrsquos 315 user IO pinrsquos FineLine BGA 484-pin package
A Tabela 6 mostra a informaccedilatildeo detalhada do Bloco do dispositivo de configuraccedilatildeo Serial e
circuito Usb-Blaster
Tabela 6 - Descriccedilatildeo das configuraccedilotildees que satildeo feitas atraveacutes da Serial e Usb-Blaster
Configuraccedilatildeo do dispositivo Serial e do Circuito Usb-Blaster Configuraccedilatildeo do dispositivo serial Altera EPCS4 On-Board Usb-Blaster
para Controle de API de usuaacuterio e programaccedilatildeo
JTAG e AS satildeo os modos do programaccedilatildeo suportados
A Tabela 7 mostra a descriccedilatildeo do Bloco da SRAM
Tabela 7 ndash Descriccedilatildeo do Bloco da SRAM
SRAM 512-Kbyte Static RAM memory chip Organizado em 256K x 16 bits Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 8 mostra a descriccedilatildeo do Bloco da SDRAM
Tabela 8 - Descriccedilatildeo do Bloco da SDRAM
SDRAM 8-Mbyte Single Data Rate Synchronous Dynamic RAM memory chip Organizado em 1M x 16 bits x 4 Banks Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
23
A Tabela 9 mostra a descriccedilatildeo do Bloco Memory Flash
Tabela 9 ndash Descriccedilatildeo da Memoria Flash
Memory Flash
4-Mbyte NAND Flash memory 8-bit data bus Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 10 mostra a descriccedilatildeo do Bloco SD card socket
Tabela 10 - Descriccedilatildeo do SD card socket
SD card socket Fornece o modo SPI para o acesso ao cartatildeo SD Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 11 mostra a descriccedilatildeo 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) Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 12 mostra a descriccedilatildeo dos Clock inputs
Tabela 12 - Descriccedilatildeo das entradas de Clocks
Clock inputs Oscilador de 50 Mhz Oscilador 27 Mhz Entrada para clock
externo
A Tabela 13 mostra a descriccedilatildeo do Aacuteudio CODEC
Tabela 13 - Descriccedilatildeo do Aacuteudio CODEC
Aacuteudio CODEC 4-Mbyte NAND Flash memory 8-bit data bus Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
24
A Tabela 14 mostra a descriccedilatildeo do Bloco VGA DAC
Tabela 14 ndash Descriccedilatildeo da saiacuteda VGA DAC
VGA
DAC
Usa 4 bits DAC para cada cor (RGB) Com 15 pinos no conector VGA convencional (fecircmea) Suporta uma resoluccedilatildeo de 640 x 480 com um refresh de ateacute 100Hz Pode ser usando com o FPGA Cyclone II para implementar um Encoder para TV
A Tabela 15 mostra a descriccedilatildeo do Bloco Serial Ports amp PS2
Tabela 15 ndash Descriccedilatildeo da Serial Port e PS2
Serial Ports amp PS2 Uma porta RS-232
Uma posta PS2 Um conector Serial para a porta do RS-232 Conector PS2 para conectar um mouse ou teclado ao DE2
A Tabela 16 mostra a descriccedilatildeo do Bloco dos Two 40 - pin expansion headers
Tabela 16 ndash Descriccedilatildeo dos conectores de expansatildeo de 40 pinos
Two 40 - pin expansion headers 72 pinos de IO do Clyclone II bem como 8 power e groundrsquos satildeo trazidos aos 2 conectores de expansatildeo de 40 pinos cada Os conectores de 40 pinos tambeacutem aceitam os cabos IDE de 40 pinos Proteccedilatildeo resistiva eacute fornecida
233 Endereccedilo das Pinagens dos Componentes usados no Projeto
2331 PushButtons
A Figura 11 mostra uma foto dos PushButtons do kit Key[30] a ordem eacute o button da
esquerda eacute o mais significativo e o mais de direita o menos signigicativo
Figura 11 ndash Os 4 PushButtons do DE2Key[30] (DE2_UserManualpdf contrado no cd do kit)
25
A Tabela 17 mostra os pinos da FPGA aos PushButtons
Tabela 17 ndash Pinos da FPGA referentes a cada PushButton (DE2_UserManualpdf contrado no cd do kit)
2332 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 ndash Modulo de displays de 7 segmentos (DE2_UserManualpdf encontrado no cd do kit)
Figura 13 ndash Index de um display (DE2_UserManualpdf encontrado no cd do
kit)
26
A Tabela 18 mostra os pinos da FPGA referente a cada segmento dos displays de 7
segmentos do modulo
Tabela 18 ndash Pinos da FPGA referentes a cada segmento dos Displays do modulo
27
2333 VGA
A Figura 14 esta em forma de onda da temporizaccedilatildeo horizontal e vertical da VGA do Kit
DE2
Figura 14 ndash Temporizaccedilatildeo horizontal da VGA
A Tabela 19 mostra a especificaccedilatildeo da temporizaccedilatildeo horizontal da VGA
Tabela 19 ndash Especificaccedilatildeo da temporizaccedilatildeo horizontal da VGA
A Tabela 20 mostra a especificaccedilatildeo da temporizaccedilatildeo vertical da VGA
Tabela 20 ndash Especificaccedilatildeo da temporizaccedilatildeo vertical da VGA
28
A Tabela 21 mostra os pinos da FPGA referente a cada pino de saida do conector VGA do
Kit DE2
Tabela 21 ndash Pinos da FPGA referentes a saiacuteda do Conector VGA do Kit
29
CAPIacuteTULO 3 ndash ESPECIFICACcedilAtildeO TECNICA
Nesse capiacutetulo tem-se uma descriccedilatildeo dos principais moacutedulos do projeto Satildeo eles Software
Firmware e Hardware
Inicialmente eacute apresentada a visatildeo geral do sistema e a descriccedilatildeo funcional de cada moacutedulo
A Figura 15 apresenta o diagrama em blocos do sistema
Figura 15 - Moacutedulos do projeto
31 Descriccedilatildeo de Software
O Software eacute uma das interfaces com o usuaacuterio
312 Diagrama de Blocos do Software
30
312 Modulo do PC
Neste modulo eacute 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
32 Descriccedilatildeo de Hardware
321 Modulo Touch-Screen
O usuaacuterio ao tocar o Touch-Screen (AT4 touch-screen resistivo de 4 fios) ocorre uma
mudanccedila nas tensotildees do eixo X e do eixo Y devido a resistecircncia gerada pelo ao toque do usuaacuterio
em uma determinada regiatildeo da tela essa mudanccedila de tensatildeo eacute interpretada pela placa
controladora COACh IIs do Touch-Screen e enviada via serial para o Kit DE2 que interpretaraacute
os dados e faraacute o devido processamento
322 Modulo FPGA
O Hardware corresponde tanto aos componentes fiacutesicos presentes no kit de desenvolvimento
quanto aos componentes que seratildeo configurados na FPGA Satildeo diversos componentes escritos
em linguagem de descriccedilatildeo de hardware
No um dos principais componentes de hardware utilizado modulo eacute o processador NIOS II
para se ter uma ideacuteia o processador NIOS II eacute capaz gerenciar os dispositivos externos a FPGA
utilizando controladores de memoacuterias controladores de VGA entre outros E tambeacutem eacute possiacutevel
o proacuteprio usuaacuterio criar seu componente para ser controlado atraveacutes do processador NIOS
II(Altera 2007)
31
3221 O Processador NIOS II
Atraveacutes do software SOPC da ALTERA foi possiacutevel montar a arquitetura de hardware do
processador NIOS II bem como especificar as interfaces que ele iraacute controlar atraveacutes do firmwar
feito no NIOS II IDE
Na Tabela 22 eacute no campo Module Name onde estatildeo os moacutedulos que foram usados para
definir o processador NIOS II e os componentes externos que ele iraacute controlar e no campo
Description esta a descriccedilatildeo do nome de cada modulo
Tabela 22 ndash Moacutedulos dos componentes e suas descriccedilotildees
3222 Firmware para o NIOS II
O Firmware foi feito utilizando a linguagem C utilizando a ferramenta NIOS II IDE Atraveacutes
do firmware eacute possiacutevel 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 graacuteficas para controlar a vga e serial e
USB-BLASTER eacute encarregado em enviar todo o desenvolvimento do projeto para o Kit DE2
323 Configuraccedilatildeo da FPGA via JTAG
Depois de configurado o hardware do processador NIOS II eacute preciso fazer o load do NIOS
para a FPGA e para que isso aconteccedila eacute necessaacuterio que atraveacutes do software Quartus II da
ALTERA utilizando a interface JTAG utilizando o cabo USB-BLASTER
32
324 Comunicaccedilatildeo entre FPGA e o Touch-Screen
Para comunicaccedilatildeo entre dos dois hardwares Touch-Screen e o FPGA eacute utilizando uma
interface serial RS-232
A configuraccedilatildeo da interface eacute a seguinte
Bits de dados 8
Taxa de dados 5600(bps)
A Tabela 23 mostra a relaccedilatildeo dos pinos da porta serial com os pinos da FPGA
Tabela 23 ndash Pinos da FPGA referente agrave pinagem da interface Serial
E a Figura 16 mostra o desenho correspondente da interface serial
Figura 16 ndash Conector da interface serial do kit DE2
33 Especificaccedilatildeo de Validaccedilatildeo
331 Validaccedilatildeo de Hardware
A validade do hardware se faz com a anaacutelise de todos os moacutedulos envolvidos
As necessidades satildeo estudadas os componentes externos ao FPGA satildeo selecionados de
acordo o processador nios e os controladores dos moacutedulos externos como VGA e SERIAL satildeo
enviados ao modulo FPGA
Os resultados obtidos na tela do monitor e a recepccedilatildeo dos dados pela serial comprovam o
funcionamento do modulo de comunicaccedilatildeo da serial e vga
33
332 Validaccedilatildeo de Software
A validaccedilatildeo do controle da interface touch-screen faz-se a partir dos resultados obtidos das
funccedilotildees escritas na linguagem C especificas para cada componente externos ao FPGA essas
funccedilotildees tornam possiacuteveis que o processador NIOS na FPGA tenha total controle sobre os
moacutedulos externos como a VGA e a SERIAL
As funccedilotildees que satildeo utilizadas para validar o funcionamento do software satildeo para a VGA os
meacutetodos de controle (alt_up_vga_draw_char_1b( char int x int y)) e (alt_up_vga_draw_pixel(
color x y))
O meacutetodo (alt_up_vga_draw_char_1b( char int x int y)) tem a funcionalidade de escrever
caracteres na tela do monitor e a descriccedilatildeo da sua assinatura ldquoparacircmetrosrdquo eacute a seguinte char eacute o
caractere que eacute escrito em alguma posiccedilatildeo na tela int x eacute a posiccedilatildeo x da tela do monitor e int y eacute
a posiccedilatildeo y da tela do monitor sendo que a resoluccedilatildeo utilizada eacute de 80x60 ou seja x natildeo pode
passar de 80 e y natildeo pode passar de 60
O meacutetodo (alt_up_vga_draw_pixel( color int x int y)) tem a funcionalidade de ldquopintarrdquo o
fundo da tela do monitor o meacutetodo de imprimir caracteres tem preferecircncia sobre este meacutetodo ou
seja os caracteres sempre ficam sob a aacuterea pintada ou seja o caractere sempre ficara em cima da
aacuterea pintada a descriccedilatildeo da assinatura deste meacutetodo eacute a seguinte color eacute a valor da cor que pode
ser um valor inteiro ou em hexadecimal para definir uma cor de alguma posiccedilatildeo da tela definidos
pelos paracircmetros x e y
As funccedilotildees que satildeo utilizadas para validar o funcionamento do software satildeo para a Serial os
meacutetodos de controle de transmissatildeo (fread( packet sizeof(packet) 1 serial_fp )) a funccedilatildeo
fread eacute utilizada para a leitura via interrupccedilatildeo dos pacotes que a controladora envia para o kit
DE2 as assinaturas do meacutetodo fread tem a seguinte composiccedilatildeo packet eacute a estrutura do pacote
que seraacute recebido o sizeof(packet) eacute o diz qual eacute o tamanho exato da estrutura criada e o
serial_fp eacute o handle da porta serial
Uma observaccedilatildeo muito importante eacute que para o total funcionamento eacute necessaacuterio 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 rs232h e rs232c onde estatildeo os meacutetodos de
controle da SERIAL e alt_up_vgah alt_up_vgac onde estatildeo os meacutetodos de controle para a
VGA Para tornar estes meacutetodos acessiacuteveis eacute preciso fazer os includes dos arquivos h no
projeto da NIOS IDE
A figura 17 mostra a utilizaccedilatildeo dos meacutetodos (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
34
int y)) utlizado para escrever os caracteres lsquoarsquo e lsquobrsquo dentro de um grupo de pixel previamente
pintado a (alt_up_vga_draw_pixel( color int x int y)) natildeo pinta um pixel de cada vez e sim
um bloco de 8x8 pixels
Figura 17 - Tela para a validaccedilatildeo dos testes com as bibliotecas graacuteficas do componente VGA
34 Recursos Necessaacuterios
A Tabela 24 apresenta os ambientes de desenvolvimento e ferramentas de software utilizadas
e na Tabela 25 as linguagens necessaacuterias Estas ferramentas foram utilizadas em ambiente
Windows Xp
Tabela 24 - Ferramentas de Desenvolvimentos e Ambientes
Software Para que foi Utilizado
Quartus II Para a definiccedilatildeo de qual o modelo de FPGA utilizado compilaccedilatildeo e simulaccedilatildeo e envio Load do NIOS para FPGA
SOPC Para definiccedilatildeo da do processador NIOS II e com quais componentes externos ele ira interagir atraveacutes dos controladores dos respectivos componentes
NIOS II IDE Para implementaccedilatildeo do firmware do processador NIOS II utilizando a linguagem em C
35
Borland C++ Builder Para desenvolvimento de ima interface de comunicaccedilatildeo via caboUSB-
BLASTER para o envio de imagem para o kit
Tabela 25 ndash Linguagens de programaccedilatildeo utilizadas
Linguagem Ferramenta C++ Borland C++ Builder VerilogVHDL Quartus II C NIOS II IDE
35 Viabilidade Teacutecnico-Econocircmica
O valor do projeto esta descrito na Tabela 26
Tabela 26 ndash Relaccedilatildeo dos Custos
DESCRICcedilAtildeO CUSTO APROXIMADO (R$) COMPONENTES ELETROcircNICOS 50000 1 Kit DE2 Cyclone II 35000 1 Monitor de Computador 35000 HORAS TRABALHADAS (400 horas) 750000 CUSTO TOTAL APROXIMADO (R$) 870000
36 Cronograma do Projeto
A tabela 27 contem as informaccedilotildees do cronograma do projeto
Tabela 27 ndash Cronograma de datas e entregas do projeto
Data Atividade a ser apresentada 050307 Entrega das propostas de projeto para avaliaccedilatildeo do colegiado 020407 Entrega das especificaccedilotildees teacutecnicas do projeto aprovado 110607 Entrega do projeto (monografia) e dos testes preliminares do mesmo 060807 Apresentaccedilatildeo preacutevia da implementaccedilatildeo do projeto especificado 011007 Apresentaccedilatildeo do projeto implementado
Qualificaccedilatildeo para a fase final 291007 Segunda apresentaccedilatildeo do projeto implementado para os que natildeo o fizeram no
dia 011006 com decreacutescimo da nota Qualificaccedilatildeo para a fase final
051107 Entrega da documentaccedilatildeo completa em espiral para a banca examinadora em 3 vias contendo a monografia manual teacutecnico manual do usuaacuterio e artigo cientiacutefico
261107 Defesa formal dos projetos com apresentaccedilatildeo oral para a banca examinadora 101207 Entrega da documentaccedilatildeo completa revisada e corrigida encadernada no
padratildeo da biblioteca (capa dura) em duas vias contendo a monografia manual teacutecnico manual do usuaacuterio e artigo cientiacutefico Entrega do CD contendo no formato WEB todo o conteuacutedo dos manuais
36
CAPIacuteTULO 4 ndash ESPECIFICACcedilAtildeO TECNICA
41 Requisitos Miacutenimos
Os requisitos miacutenimos de Hardware satildeo
Funcionamento das interfaces Serial e USB-Blaster
Funcionamento do Kit DE2
PC
Os requisitos miacutenimos de Software
Windows Xp
Quartus II
SOPC
NIOS II IDE
42 Projeto de Hardware
O hardware utilizado nesse projeto inclui componentes presentes na Placa de
Desenvolvimento Nios II - ediccedilatildeo DE2 Cyclone II EP2C35 e principalmente o hardware que seraacute
configurado na FPGA escrito em linguagem de descriccedilatildeo de hardware (HDL)
O um dos principais blocos de hardware eacute o processador NIOS II o Avalon Bus e os
controladores de componentes externos a FPGA e de comunicaccedilatildeo presentes no Kit
37
O software embarcado (firmware) estaraacute rodando nessa arquitetura Eacute uma arquitetura
completa construiacuteda com a ferramenta SOPC Builder da Altera A Figura 18 representa em
blocos os principais componentes dessa arquitetura
Figura 18 ndash Representaccedilatildeo em blocos do hardware do NIOS II
421 Funcatildeo do Touch-Screen
Outro bloco importante eacute o do Touch-Screen esta tela sensiacutevel ao toque pois como esta tela
trabalha com resistecircncia ao ser tocado em uma determinada regiatildeo uma resistecircncia eacute gerada e a
tensatildeo de saiacuteda eacute modificada a alimentaccedilatildeo desta placa eacute proveniente de sua placa controladora
a mesma placa que recebe a tensatildeo de saiacuteda modificada de acordo com a regiatildeo tocada na tela
Para verificar as caracteriacutesticas detalhadas do Touch-Screen e sua placa controlador favor ver
o Capitulo 2
422 Monitor e VGA
O Monitor inicialmente tem apenas o desenho de um botatildeo que ao ser tocado via touch
mudara a cor de toda a tela A imagem exibida no monitor tem uma resoluccedilatildeo de
38
Protoacutetipo das telas para os testes esta na Figura 19 a tela verde quando a touch natildeo eacute tocando
na regiatildeo do botatildeo de OK quando o botatildeo de OK for tocado a tela do monitor mudara de cor
ficando azul
Figura 19 ndash Tela do monitor
No Capitulo 2 estatildeo todas as caracteriacutesticas da pinagem e do conector VGA
423 Comunicaccedilatildeo serial
Entre a placa controladora do Touch-Screen e o FPGA existe uma comunicaccedilatildeo 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 manipulaccedilatildeo da imagem que eacute
mostrada no monitor
No capitulo 2 estatildeo das descriccedilotildees dos pinos e do conector da comunicaccedilatildeo Serial
O pacote serial que eacute transmitido pela placa controladora do touch-screen possui 10 bytes de
comprimento e segue a seguinte sequumlecircncia de envio
[55] [54] [] [] [] [] [] [] [] []
Sequumlecircncia dos bytes
Os dois primeiros bytes identificam o Header do pacote
O terceiro byte eacute 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 agrave posiccedilatildeo do eixo x onde a tela foi tocada
O sexto e o seacutetimo byte correspondem a posiccedilatildeo do eixo y onde a tele foi tocada
O restante os bytes identificam o tail do pacote recepcionado pelo kit DE2
39
424 Comunicaccedilatildeo USB-Blaster
Essencial para envio do projeto desenvolvido para o kit DE2 tambeacutem muito utilizado para o
debug deste projeto
435 Memoacuteria SDRAM
A memoacuteria utilizada para armazenar grandes quantidades de dados eacute a SDRAM (ver detalhes
no Capitulo 2)
Essa memoacuteria eacute muito raacutepida serviu muito bem para armazenar o firmware deste projeto
pois tem o tempo acesso ideal para ler as instruccedilotildees que utilizaram a VGA e tambeacutem eacute raacutepida o
suficiente para fazer a leitura dos dados e disponibilizar na saiacuteda VGA do kit
426 Memoacuteria FLASH
Eacute onde seraacute armazenado o firmware possui espaccedilo suficiente para isso 4MB e uma memoacuteria
mais lenta e por isso natildeo foi usada para armazenar dados para serem jogados na vga do Kit
43 Software
431 Software (Firmware)
O software tem de funccedilatildeo de utilizar as bibliotecas das controladoras dos componentes
externos a fim de controlar estes componentes de acordo com o necessaacuterio para atender o
objetivo do projeto
Ou seja uma tela inicial eacute apresentada e o usuaacuterio ao tocar na nela o kit recebe um pacote via
serial e interpreta a posiccedilatildeo da tela em que foi tocado e logo em seguida envia o resultado deste
toque para o monitor
432 Objetivos
O usuaacuterio 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 accedilatildeo de acordo com a posiccedilatildeo da tela
tocada alterando assim a imagem anterior com o resultado do toque
Interpretar o toque de usuaacuterio na tela touch-screen recepccedilatildeo do pacote via serial da placa
controladora do touch-screen tratamento do pacote e interpretaccedilatildeo das coordenadas x e y do
40
toque Realizaccedilatildeo de alguma accedilatildeo que resultara na alteraccedilatildeo da imagem da tela atual de acordo
com a funccedilatildeo em que as coordenadas foram previamente definidas para o que deve ser feito
432 Funccedilotildees
A Tabela 28 tem as principais funccedilotildees que foram implementadas para o sistema
Tabela 28 ndash Funccedilotildees do sistema firmware
FUNCcedilOtildeES Tela de um pequeno editor de texto Tratamento do sinal recebido da serial devido a um toque na tela Interpretaccedilatildeo do pacote serial e transfomaccedilatildeo para coordenadas x e y Transformaccedilatildeo das posiccedilotildees do toque na tela em alguma accedilatildeo enviando o resultado para a VGA Imagem final disponibilizada ao usuaacuterio de acordo com o toque que foi dado na tela Controlar dispositivos cada dispositivo pode ser controlado pelo seu respectivo contrador atraveacutes de seu endereccedilo base VGA SERIAL USB-BLASTER IO(Leds Switches etc) do Kit DE2
O Firmware do processador NIOS II eacute que realizaraacute a integraccedilatildeo entre hardware com
hardware Com o firmware controlando o NIOS II eacute possiacutevel interagir com os dispositivos
externos a FPGA Tornando possiacutevel a integraccedilatildeo da FPGA com a peliacutecula touch-screen e um
monitor sem a ajuda de um PC a uacutenica ajuda do pc seria para enviar dados de uma imagem para
o Kit DE2
44 Validaccedilatildeo e Testes
Inicialmente os moacutedulos da VGA e comunicaccedilatildeo SERIAL natildeo estavam funicionando
apenas o devido agrave fraca documentaccedilatildeo sobre o kit DE2 foi possiacutevel apenas fazer testes com o
Processador NIOS II pois sobre este existem bastantes documentos e exemplos que podem ser
utilizados
Nesta primeira parte foi possiacutevel testar o NIOS II para controlar o display bototildees e switchs
do kit DE2
Com o NIOS II funcionando completamente foi necessaacuterio porta-lo para o kit DE2 o que foi
simples pois como sabemos esses kits satildeo portaacuteveis entre si apenas mudando a pinagem e a
capacidade da FPGA
Com o Kit DE2 foi possiacutevel fazer os testes necessaacuterios com a comunicaccedilatildeo serial
inicialmente testada via terminal conversando diretamente com o kit foi possiacutevel fazer o
seguinte teste os caracteres que eram entrados via teclado chegavam ao kit via serial e o o
41
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 comdumpexe que eacute facilmente encontrado pelas ferramentas
de pesquisa da web e tambeacutem existem vario outros programas como este e o comdump eacute
utilizado para debug da porta serial do pc conectado diretamente na placa controladora do touch-
screen e foi a peccedila chave para o entendimento do pacote enviado pela placa controladora
Figura 20 - Cumdumpexe programa de debug da porta serial
A explicaccedilatildeo de cada byte do pacote esta explicado no item 423
Apos o entendimento completo da transmissatildeo 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 natildeo 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 ateacute o momento em que
foi testado os meacutetodos proprietaacuterios da Altera para fazer a VGA funcionar os meacutetodos esses
implementados em C
A figura 21 onde contem o teste baacutesico feito que foi a chave principal para o sucesso deste
projeto
42
Como dito no item 332 do projeto foram utilizados as funccedilotildees da controladora VGA esses
meacutetodos 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 eacute utilizado o meacutetodo alt_up_vga_draw_pixel( color int
x int y) onde color eacute a cor do bloco de pixels e x e y satildeo as coordenadas da tela onde o bloco
que seraacute pintado
Para escrever um caractere sobre um bloco de pixels pintado eacute utilizado a funccedilatildeo
alt_up_vga_draw_char_1b( char int x int y) onde char eacute o caractere a ser impresso e x e y satildeo
as coordenadas da tela onde os o caractere eacute impresso
Figura 21 - Teste baisco do funcionamento do componente VGA do kit DE2
43
CAPIacuteTULO 5 ndash VALIDACcedilAtildeO E RESULTADOS
Os resultados foram os melhores possiacuteveis pois com a utilizaccedilatildeo dos IP CORE
ldquocontroladorasrdquo dos componentes externos como VGA e SERIAL e seus meacutetodos de para
controle eacute possiacutevel controlar facilmente esses moacutedulos atraveacutes do firmware desenvolvido para o
processador NIOS que consegue realizar operaccedilotildees transparentes acessando dos meacutetodos de
controle dos moacutedulos
Apos os testes baacutesicos 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 baacutesico de editor de texto
A figura 22 mostra um teste utilizando os meacutetodos de controle disponiacuteveis para o IP CORE
da VGA para primeiramente fazer o menu da aplicaccedilatildeo desenvolvido em na linguagem C
Figura 22 ndash Menu baacutesico do editor de texto
Para desenhar o menu da figura acima foi utilizado os meacutetodos proprietaacuterios de controle da
VGA citados no capitulo 4 e tambeacutem estruturas de repeticcedilatildeo para que a tela fosse varrida e os
pixels desenhados nos respectivos lugares da tela bem como os caracteres
Na figura 23 eacute definida a seguinte estrutura em C para representar de um botatildeo
Figura 23 - Estrutura em C para representar um botatildeo
44
A figura 24 eacute a declaraccedilatildeo dos bototildees que seratildeo utilizados pelo aplicativo editor de texto
para comprovar o funcionamento do controle da interface touch-screen
Apenas o que esta dentro da marcaccedilatildeo quadrada representa os bototildees do menu da figura 23
e o restante satildeo os bototildees do teclado do editor de texto
Figura 24 - Declaraccedilatildeo dos bototildees do menu
45
A figura 25 representa o meacutetodo drawnButtonUp responsaacutevel por desenhar os bototildees na tela
de acordo com as posiccedilotildees em que foram declarados os bototildees deste meacutetodo satildeo desenhados
para parecerem que estatildeo ldquolevantadosrdquo e natildeo pressionados
Note que foram utilizados os meacutetodos proprietaacuterios de controle da VGA
alt_up_vga_draw_pixel pra pitar os pixels e alt_up_vga_draw_char_b1 para desenhar caracteres
como jaacute foi especificado no item 44 do projeto
Figura 25 ndash Meacutetodo drawButtonUp
46
O meacutetodo que desenha o caption do botatildeo se chama drawButtonText desenha os caracteres
em cima dos bototildees natildeo importa se o botatildeo esta pressionado ou natildeo
A figura 26 mostra como este meacutetodo foi implementado e ele eacute chamado no final de cada
meacutetodo onde algum tipo de botatildeo eacute desenhado quando o meacutetodo que desenha o botatildeo normal
quanto o pressionado e ateacute mesmo o do teclado
Figura 26 ndash Meacutetodo que escreve o caption de cada botatildeo
47
A figura 27 mostra o meacutetodo drawButtonDown que desenha o botatildeo pressionado ou seja
quando o usuaacuterio pressiona a regiatildeo correspondente a um botatildeo do menu no touch-screen o
mesmo redesenharaacute o botatildeo parecendo um efeito de botatildeo afundado note que no final do
meacutetodo novamente eacute chamado o meacutetodo drawButtonText que reescreveraacute o caption do botatildeo
como mostra o meacutetodo da figura 26 e esta ilustrado na figura 28
Figura 27 ndash Meacutetodo que desenha o botatildeo pressionado
48
Dependendo da aacuterea do menu que o usuaacuterio pressionar no touch-screen causar o efeito de
pressionado como mostra a figura 28
Figura 28 ndash Efeito do botatildeo de menu apertado
Na figura 29 eacute a representaccedilatildeo de quando a aacuterea correspondente ao botatildeo ldquoamarelordquo eacute
pressionada
Apos estes testes baacutesicos comprovando o funcionamento da interface graacutefica para o usuaacuterio
foi definido o restante dos componentes da tela que eacute constituiacutedo de um prompt e um teclado
qwerty que foi essencial para comprovar o perfeito funcionamento do controle da interface
touch-screen
49
51 Interface Grafica Final
A figura 29 mostra a interface final que o usuaacuterio teraacute para poder verificar o funcionamento
do controle da interface touch-screen
Figura 29 ndash Interface final touch-screen do usuaacuterio
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
511 Descriccedilatildeo do editor de texto
O menu possui 4 botoes cada um com sua respectiva funcionalidade quando o usuario
pressiona a area do botatildeo ldquoapagarrdquo uma vez entatildeo um carectere do prompt eacute apagado Quando eacute
precionado a area correspondente ao botatildeo ldquoResetrdquo todo o conteudo do prompt seraacute apagado e o
plano de fundo retornaraacute a cor branca Quando o botatildeo ldquoamarelordquo eacute pressionado o fundo da tela
passa a ser amarelo e o mesmo acontece se o usuario precionar o botatildeo verde tornando o cor de
fundo verde
50
O teclado possui 29 teclas sendo duas delas que equivalem ao ENTRA ldquoENTrdquo e ao
SPACE ldquoSPCrdquo Quando o usuario pressiona a area correspondente a algum botatildeo do teclado o
mesmo muda sua cor para azul e o seu caractere eacute disponibilizado no prompt
Essas funcionalidades nada mais satildeo do que um bom exemplo de como funciona
corretamente o controle da interface touch-screen
52 Prompt e o Teclado
A estrutura feita na linguagem C que define o prompt da figura 28 esta representado na
figura 30
Figura 30 ndash Estrutura em C para representar o prompt
A figura 31 mostra o metodo drawPrompt utilizado para desenhar na tela o prompt
Figura 31 ndash Meacutetodo que desenha o prompt
51
A estrutura do teclado eacute a mesma utilizada pela figura 23 e tambem eacute criado satildeo
inicializados na figura 24
O restante as implementaccedilotildees estatildeo disponiveis no cd deste documento
Quando algum botatildeo do teclado eacute pressionado sua cor muda para azul e sua letra
correspondente eacute escrita o prompt
A figura 32 ilustra quando o usuaacuterio aperta a letra lsquotrsquo na peliacutecula touch-screen
Figura 32 - Teste do prompt e o teclado
52
53 Controle da Interface Touch-Screen
Depois do todos os testes com o processador NIOS e a integraccedilatildeo do mesmo com os
moacutedulos externos como a porta SERIAL e a saiacuteda VGA eacute possiacutevel utilizando o touch-screen
criar uma interface amigaacutevel e faacutecil de usar para o usuaacuterio utilizando um firmware capaz de
interpretar os sinais via serial vindo da controladora do touch ao detectar que um toque foi dado
pelo usuaacuterio e realizar algumas accedilotildees que neste caso se comportam como um editor de texto
baacutesico
A figura 33 mostra como foi validado este projeto e seus moacutedulos controlando uma
interface touch-screen para chegar no resultado abaixo digitado pelo usuaacuterio comprovando o
funcionamento e viabilidade deste projeto
Figura 33 ndash 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 mudanccedilas podendo ser alterado rapidamente o tipo de
aplicaccedilatildeo ou integrado rapidamente com outro projeto
53
CAPIacuteTULO 6 - CONCLUSAtildeO
Uma das principais dificuldades no desenvolvimento deste projeto foi fazer o levantamento
da documentaccedilatildeo sobre o processador NIOS e os moacutedulos externos a FPGA do Kit DE2 Como
natildeo foi feito algum projeto antes que utilizasse a interface VGA e a SERIAL do Kit DE2 levou-
se muito tempo ateacute conseguir adquirir e ordenar o conhecimento que foi sendo adquirido ateacute
conseguir dar os primeiros passos e realizar os primeiros testes com a VGA e a SERIAL Outro
grande obstaacuteculo foi ter de descobrir que para que o NIOS controlasse os moacutedulos externos a
FGPA fosse necessaacuterio copiar os arquivos c e h dos respectivos componente para dentro do
projeto
Mas depois de todos os problemas com os moacutedulos externos solucionados cada modulo do
projeto foi sendo desenvolvido separadamente ateacute seu total funcionamento Natildeo tive dificuldades
com a linguagem da programaccedilatildeo pois o Firmware do processador NIOS eacute o C a qual mais tive
contato na faculdade
Outro desafio foi fazer a peliacutecula 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
peliacutecula natildeo 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 possiacutevel
comeccedilar a fazer os testes necessaacuterios para prosseguir com o projeto aprender como o a peliacutecula
identifica um toque e manda este sinal para a controladora e a controladora transforma este sinal
em um sinal serial que eacute 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 accedilotildees
que as coordenadas jaacute estatildeo previamente calibradas no firmware para fazer bem como mudar de
cor a tela fazer o efeito de um botatildeo subindo e descendo etc
Varias vezes o projeto parou de funcionar entatildeo 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 memoacuteria abundante etc uma das
facilidades eacute a faacutecil alteraccedilatildeo do projeto podendo ser integrado a outro ou ateacute mesmo alterado
para realizar outros tipos de accedilotildees com o touch-screen
Existem vaacuterios melhoramentos que podem ser executados no projeto um deles eacute tentar
interpretar de uma maneira diferente os valores do eixo y pois do jeito que esta a resoluccedilatildeo do
eixo y esta muito baixa dificultando o reconhecimento de toques em aacutereas pequenas Talvez a
inclusatildeo de mais alguns bytes no pacote de leitura da serial resolva o problema
54
Uma ideacuteia para um proacuteximo projeto que use a interface touch-screen poderia ser a
integraccedilatildeo com o projeto do nosso colega Roberto Junqueira ou a desenvolvimento de uma
placa controladora para o touch-screen
Este trabalho eacute uma modesta contribuiccedilatildeo para o uso de FPGAs e do processador embarcado
NIOS implementado em VHDL pela Altera que acredito que vai abrir vaacuterios caminhos pois
com este projeto alguns caminhos ficaram mais faacuteceis de percorrer daqui para a frente
55
CAPIacuteTULO 7 - REFEREcircNCIAS BIBLIOGRAacuteFICAS
AMORE Roberto drsquo VHDL Descriccedilatildeo e Sintese de Circuitos Rio de Janeiro ed LTC
2005
Elotouch Touch-Screen e Controladora Descriccedilatildeo do funcionamento e descriccedilatildeo
tecnologia Touch-Screen lthttpwwwelotouchcombrgt Acesso em fevereiro de 2007
ALTERA University Program IP Cores Instalaccedilatildeo de IP Cores e referencias sobre os
componentes dos kits DE1 e DE2 Disponivel em lthttpwwwalteracomeducationunivip-
coresunv-ip-coreshtmlgt Acesso em abril de 2007
ALTERA NIOS II Documentaccedilatildeo sobre o pprocessador embracado NIO II Disponivel
em lthttpwwwalteracomproductsipprocessorsipm-indexjspgt Acesso em Abril de 2007
ALTERA Development amp Education Board 2 (DE2) Manual do usuario Disponivel no
de que acompanha o Kit DE2 ltDE2_user_manualDE2_UserManualpdfgt Acesso em
fevereiro de 2007
17
Figura 5 ndash Placa Controladora (Adaptado do site elotouchcom)
212 Pinagens e descriccedilatildeo do Touch-Screen e da Placa Controladora
A Figura 6 ilusta os pinos do Touch-Screen que satildeo ligados ao conector da placa
controladora
Figura 6 ndash Pinos do Touch-Screen (Adaptado do site elotouchcom)
A Figura 7 mostra o conector da placa controladora e as respectivas pinagens
Figura 7 ndashConector para o touch da placa controladora (Adaptado do site elotouchcom)
18
A Tabela 2 descreve os pinos do conector para o touch da placa controladora
Tabela 2 ndash Pinagem do conector que faz interface entre o touch e a controladora
Pino
Nome do Sinal Desciccedilatildeo do sinal
1 X+ Entrada de tensatildeo positiva referente ao eixo X da tela 2 Y+ Entrada de tensatildeo positiva referente ao eixo Y da tela 3 X- Entrada de tensatildeo negativa referente ao eixo X da tela 4 Y- Entrada de tensatildeo negativa referente ao eixo Y da tela
22-Video
Eacute usado um monitor CRT convencional o qual apresentaraacute uma imagem criada atraveacutes as
bibliotecas graficas proprietarias da ALTERA esta imagem representa um menu com botoes e e
que atravez da manipulaccedilatildeo dos metodos das bibliotecas os resultados satildeo disponibilizados na
saida VGA do kit dependendo do botatildeo da imagem que for tocada atravez do touch alguma accedilatildeo
de alteraccedilatildeo na imagem seraacute atulalizada na saida vga
A Figura 8 ilustra o conector (fecircmea) da saiacuteda VGA do kit DE2
Figura 8 ndash Conector VGA femea do kit DE2
E na Tabela 3 a descriccedilatildeo de cada pino bem como sua direccedilatildeo
Tabela 3 ndash Descriccedilatildeo dos pinos da VGA
Pin
Name Dir Description
1 RED
Red Video (75 ohm 07 V p-p)
2 GREEN
Green Video (75 ohm 07 V p-p)
3 BLUE
Blue Video (75 ohm 07 V p-p)
4 ID2
Monitor ID Bit 2
5 GND
Ground
6 RGND
Red Ground
7 GGND
Green Ground
8 BGND
Blue Ground
19
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
20
23-Kit Altera Development amp Education Board 1 (Kit DE2)
231-Layout e Componentes
Uma fotografia do Kit DE2 eacute mostrado na Figura 9 onde se ve a aparencia do kit e as
indicaccedilotildees das localizaccedilatildeo dos componentes e conectores
Figura 9 ndash O kit DE2 (DE2_UserManualpdf 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 eacute listado os componentes fornecidos na placa do Kit DE2
Tabela 4 ndash Lista dos componentes do Kit DE2 (DE2_UserManualpdf contrado no cd do kit)
1 Altera Serial Configuration device ndash EPCS4
2 USB Blaster (on board) for programming and user API control both JTAG and Active 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
21
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
PS2 mousekeyboard connector
17
Two 40-pin Expansion Headers with diode protection
18
Powered by either a 75V DC adapter or a USB cable
232 Diagrama de Blocos do Kit DE2
Figura 10 ndash Diagrama de Blocos do KIT DE2 (DE2_UserManualpdf contrado no cd do kit)
22
A Tabela 5 mostra a informaccedilatildeo detalhada do Bloco Cyclone II FPGA 2C20 mostrado na
Figura 10
Tabela 5 ndash Detalhes do FPGA Cyclone II
FPGA Cyclone II 2C35
18752 LErsquos
52 M4K RAM blocks 240K total RAM bits 26 embedded multipliers 4 PLLrsquos 315 user IO pinrsquos FineLine BGA 484-pin package
A Tabela 6 mostra a informaccedilatildeo detalhada do Bloco do dispositivo de configuraccedilatildeo Serial e
circuito Usb-Blaster
Tabela 6 - Descriccedilatildeo das configuraccedilotildees que satildeo feitas atraveacutes da Serial e Usb-Blaster
Configuraccedilatildeo do dispositivo Serial e do Circuito Usb-Blaster Configuraccedilatildeo do dispositivo serial Altera EPCS4 On-Board Usb-Blaster
para Controle de API de usuaacuterio e programaccedilatildeo
JTAG e AS satildeo os modos do programaccedilatildeo suportados
A Tabela 7 mostra a descriccedilatildeo do Bloco da SRAM
Tabela 7 ndash Descriccedilatildeo do Bloco da SRAM
SRAM 512-Kbyte Static RAM memory chip Organizado em 256K x 16 bits Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 8 mostra a descriccedilatildeo do Bloco da SDRAM
Tabela 8 - Descriccedilatildeo do Bloco da SDRAM
SDRAM 8-Mbyte Single Data Rate Synchronous Dynamic RAM memory chip Organizado em 1M x 16 bits x 4 Banks Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
23
A Tabela 9 mostra a descriccedilatildeo do Bloco Memory Flash
Tabela 9 ndash Descriccedilatildeo da Memoria Flash
Memory Flash
4-Mbyte NAND Flash memory 8-bit data bus Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 10 mostra a descriccedilatildeo do Bloco SD card socket
Tabela 10 - Descriccedilatildeo do SD card socket
SD card socket Fornece o modo SPI para o acesso ao cartatildeo SD Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 11 mostra a descriccedilatildeo 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) Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 12 mostra a descriccedilatildeo dos Clock inputs
Tabela 12 - Descriccedilatildeo das entradas de Clocks
Clock inputs Oscilador de 50 Mhz Oscilador 27 Mhz Entrada para clock
externo
A Tabela 13 mostra a descriccedilatildeo do Aacuteudio CODEC
Tabela 13 - Descriccedilatildeo do Aacuteudio CODEC
Aacuteudio CODEC 4-Mbyte NAND Flash memory 8-bit data bus Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
24
A Tabela 14 mostra a descriccedilatildeo do Bloco VGA DAC
Tabela 14 ndash Descriccedilatildeo da saiacuteda VGA DAC
VGA
DAC
Usa 4 bits DAC para cada cor (RGB) Com 15 pinos no conector VGA convencional (fecircmea) Suporta uma resoluccedilatildeo de 640 x 480 com um refresh de ateacute 100Hz Pode ser usando com o FPGA Cyclone II para implementar um Encoder para TV
A Tabela 15 mostra a descriccedilatildeo do Bloco Serial Ports amp PS2
Tabela 15 ndash Descriccedilatildeo da Serial Port e PS2
Serial Ports amp PS2 Uma porta RS-232
Uma posta PS2 Um conector Serial para a porta do RS-232 Conector PS2 para conectar um mouse ou teclado ao DE2
A Tabela 16 mostra a descriccedilatildeo do Bloco dos Two 40 - pin expansion headers
Tabela 16 ndash Descriccedilatildeo dos conectores de expansatildeo de 40 pinos
Two 40 - pin expansion headers 72 pinos de IO do Clyclone II bem como 8 power e groundrsquos satildeo trazidos aos 2 conectores de expansatildeo de 40 pinos cada Os conectores de 40 pinos tambeacutem aceitam os cabos IDE de 40 pinos Proteccedilatildeo resistiva eacute fornecida
233 Endereccedilo das Pinagens dos Componentes usados no Projeto
2331 PushButtons
A Figura 11 mostra uma foto dos PushButtons do kit Key[30] a ordem eacute o button da
esquerda eacute o mais significativo e o mais de direita o menos signigicativo
Figura 11 ndash Os 4 PushButtons do DE2Key[30] (DE2_UserManualpdf contrado no cd do kit)
25
A Tabela 17 mostra os pinos da FPGA aos PushButtons
Tabela 17 ndash Pinos da FPGA referentes a cada PushButton (DE2_UserManualpdf contrado no cd do kit)
2332 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 ndash Modulo de displays de 7 segmentos (DE2_UserManualpdf encontrado no cd do kit)
Figura 13 ndash Index de um display (DE2_UserManualpdf encontrado no cd do
kit)
26
A Tabela 18 mostra os pinos da FPGA referente a cada segmento dos displays de 7
segmentos do modulo
Tabela 18 ndash Pinos da FPGA referentes a cada segmento dos Displays do modulo
27
2333 VGA
A Figura 14 esta em forma de onda da temporizaccedilatildeo horizontal e vertical da VGA do Kit
DE2
Figura 14 ndash Temporizaccedilatildeo horizontal da VGA
A Tabela 19 mostra a especificaccedilatildeo da temporizaccedilatildeo horizontal da VGA
Tabela 19 ndash Especificaccedilatildeo da temporizaccedilatildeo horizontal da VGA
A Tabela 20 mostra a especificaccedilatildeo da temporizaccedilatildeo vertical da VGA
Tabela 20 ndash Especificaccedilatildeo da temporizaccedilatildeo vertical da VGA
28
A Tabela 21 mostra os pinos da FPGA referente a cada pino de saida do conector VGA do
Kit DE2
Tabela 21 ndash Pinos da FPGA referentes a saiacuteda do Conector VGA do Kit
29
CAPIacuteTULO 3 ndash ESPECIFICACcedilAtildeO TECNICA
Nesse capiacutetulo tem-se uma descriccedilatildeo dos principais moacutedulos do projeto Satildeo eles Software
Firmware e Hardware
Inicialmente eacute apresentada a visatildeo geral do sistema e a descriccedilatildeo funcional de cada moacutedulo
A Figura 15 apresenta o diagrama em blocos do sistema
Figura 15 - Moacutedulos do projeto
31 Descriccedilatildeo de Software
O Software eacute uma das interfaces com o usuaacuterio
312 Diagrama de Blocos do Software
30
312 Modulo do PC
Neste modulo eacute 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
32 Descriccedilatildeo de Hardware
321 Modulo Touch-Screen
O usuaacuterio ao tocar o Touch-Screen (AT4 touch-screen resistivo de 4 fios) ocorre uma
mudanccedila nas tensotildees do eixo X e do eixo Y devido a resistecircncia gerada pelo ao toque do usuaacuterio
em uma determinada regiatildeo da tela essa mudanccedila de tensatildeo eacute interpretada pela placa
controladora COACh IIs do Touch-Screen e enviada via serial para o Kit DE2 que interpretaraacute
os dados e faraacute o devido processamento
322 Modulo FPGA
O Hardware corresponde tanto aos componentes fiacutesicos presentes no kit de desenvolvimento
quanto aos componentes que seratildeo configurados na FPGA Satildeo diversos componentes escritos
em linguagem de descriccedilatildeo de hardware
No um dos principais componentes de hardware utilizado modulo eacute o processador NIOS II
para se ter uma ideacuteia o processador NIOS II eacute capaz gerenciar os dispositivos externos a FPGA
utilizando controladores de memoacuterias controladores de VGA entre outros E tambeacutem eacute possiacutevel
o proacuteprio usuaacuterio criar seu componente para ser controlado atraveacutes do processador NIOS
II(Altera 2007)
31
3221 O Processador NIOS II
Atraveacutes do software SOPC da ALTERA foi possiacutevel montar a arquitetura de hardware do
processador NIOS II bem como especificar as interfaces que ele iraacute controlar atraveacutes do firmwar
feito no NIOS II IDE
Na Tabela 22 eacute no campo Module Name onde estatildeo os moacutedulos que foram usados para
definir o processador NIOS II e os componentes externos que ele iraacute controlar e no campo
Description esta a descriccedilatildeo do nome de cada modulo
Tabela 22 ndash Moacutedulos dos componentes e suas descriccedilotildees
3222 Firmware para o NIOS II
O Firmware foi feito utilizando a linguagem C utilizando a ferramenta NIOS II IDE Atraveacutes
do firmware eacute possiacutevel 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 graacuteficas para controlar a vga e serial e
USB-BLASTER eacute encarregado em enviar todo o desenvolvimento do projeto para o Kit DE2
323 Configuraccedilatildeo da FPGA via JTAG
Depois de configurado o hardware do processador NIOS II eacute preciso fazer o load do NIOS
para a FPGA e para que isso aconteccedila eacute necessaacuterio que atraveacutes do software Quartus II da
ALTERA utilizando a interface JTAG utilizando o cabo USB-BLASTER
32
324 Comunicaccedilatildeo entre FPGA e o Touch-Screen
Para comunicaccedilatildeo entre dos dois hardwares Touch-Screen e o FPGA eacute utilizando uma
interface serial RS-232
A configuraccedilatildeo da interface eacute a seguinte
Bits de dados 8
Taxa de dados 5600(bps)
A Tabela 23 mostra a relaccedilatildeo dos pinos da porta serial com os pinos da FPGA
Tabela 23 ndash Pinos da FPGA referente agrave pinagem da interface Serial
E a Figura 16 mostra o desenho correspondente da interface serial
Figura 16 ndash Conector da interface serial do kit DE2
33 Especificaccedilatildeo de Validaccedilatildeo
331 Validaccedilatildeo de Hardware
A validade do hardware se faz com a anaacutelise de todos os moacutedulos envolvidos
As necessidades satildeo estudadas os componentes externos ao FPGA satildeo selecionados de
acordo o processador nios e os controladores dos moacutedulos externos como VGA e SERIAL satildeo
enviados ao modulo FPGA
Os resultados obtidos na tela do monitor e a recepccedilatildeo dos dados pela serial comprovam o
funcionamento do modulo de comunicaccedilatildeo da serial e vga
33
332 Validaccedilatildeo de Software
A validaccedilatildeo do controle da interface touch-screen faz-se a partir dos resultados obtidos das
funccedilotildees escritas na linguagem C especificas para cada componente externos ao FPGA essas
funccedilotildees tornam possiacuteveis que o processador NIOS na FPGA tenha total controle sobre os
moacutedulos externos como a VGA e a SERIAL
As funccedilotildees que satildeo utilizadas para validar o funcionamento do software satildeo para a VGA os
meacutetodos de controle (alt_up_vga_draw_char_1b( char int x int y)) e (alt_up_vga_draw_pixel(
color x y))
O meacutetodo (alt_up_vga_draw_char_1b( char int x int y)) tem a funcionalidade de escrever
caracteres na tela do monitor e a descriccedilatildeo da sua assinatura ldquoparacircmetrosrdquo eacute a seguinte char eacute o
caractere que eacute escrito em alguma posiccedilatildeo na tela int x eacute a posiccedilatildeo x da tela do monitor e int y eacute
a posiccedilatildeo y da tela do monitor sendo que a resoluccedilatildeo utilizada eacute de 80x60 ou seja x natildeo pode
passar de 80 e y natildeo pode passar de 60
O meacutetodo (alt_up_vga_draw_pixel( color int x int y)) tem a funcionalidade de ldquopintarrdquo o
fundo da tela do monitor o meacutetodo de imprimir caracteres tem preferecircncia sobre este meacutetodo ou
seja os caracteres sempre ficam sob a aacuterea pintada ou seja o caractere sempre ficara em cima da
aacuterea pintada a descriccedilatildeo da assinatura deste meacutetodo eacute a seguinte color eacute a valor da cor que pode
ser um valor inteiro ou em hexadecimal para definir uma cor de alguma posiccedilatildeo da tela definidos
pelos paracircmetros x e y
As funccedilotildees que satildeo utilizadas para validar o funcionamento do software satildeo para a Serial os
meacutetodos de controle de transmissatildeo (fread( packet sizeof(packet) 1 serial_fp )) a funccedilatildeo
fread eacute utilizada para a leitura via interrupccedilatildeo dos pacotes que a controladora envia para o kit
DE2 as assinaturas do meacutetodo fread tem a seguinte composiccedilatildeo packet eacute a estrutura do pacote
que seraacute recebido o sizeof(packet) eacute o diz qual eacute o tamanho exato da estrutura criada e o
serial_fp eacute o handle da porta serial
Uma observaccedilatildeo muito importante eacute que para o total funcionamento eacute necessaacuterio 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 rs232h e rs232c onde estatildeo os meacutetodos de
controle da SERIAL e alt_up_vgah alt_up_vgac onde estatildeo os meacutetodos de controle para a
VGA Para tornar estes meacutetodos acessiacuteveis eacute preciso fazer os includes dos arquivos h no
projeto da NIOS IDE
A figura 17 mostra a utilizaccedilatildeo dos meacutetodos (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
34
int y)) utlizado para escrever os caracteres lsquoarsquo e lsquobrsquo dentro de um grupo de pixel previamente
pintado a (alt_up_vga_draw_pixel( color int x int y)) natildeo pinta um pixel de cada vez e sim
um bloco de 8x8 pixels
Figura 17 - Tela para a validaccedilatildeo dos testes com as bibliotecas graacuteficas do componente VGA
34 Recursos Necessaacuterios
A Tabela 24 apresenta os ambientes de desenvolvimento e ferramentas de software utilizadas
e na Tabela 25 as linguagens necessaacuterias Estas ferramentas foram utilizadas em ambiente
Windows Xp
Tabela 24 - Ferramentas de Desenvolvimentos e Ambientes
Software Para que foi Utilizado
Quartus II Para a definiccedilatildeo de qual o modelo de FPGA utilizado compilaccedilatildeo e simulaccedilatildeo e envio Load do NIOS para FPGA
SOPC Para definiccedilatildeo da do processador NIOS II e com quais componentes externos ele ira interagir atraveacutes dos controladores dos respectivos componentes
NIOS II IDE Para implementaccedilatildeo do firmware do processador NIOS II utilizando a linguagem em C
35
Borland C++ Builder Para desenvolvimento de ima interface de comunicaccedilatildeo via caboUSB-
BLASTER para o envio de imagem para o kit
Tabela 25 ndash Linguagens de programaccedilatildeo utilizadas
Linguagem Ferramenta C++ Borland C++ Builder VerilogVHDL Quartus II C NIOS II IDE
35 Viabilidade Teacutecnico-Econocircmica
O valor do projeto esta descrito na Tabela 26
Tabela 26 ndash Relaccedilatildeo dos Custos
DESCRICcedilAtildeO CUSTO APROXIMADO (R$) COMPONENTES ELETROcircNICOS 50000 1 Kit DE2 Cyclone II 35000 1 Monitor de Computador 35000 HORAS TRABALHADAS (400 horas) 750000 CUSTO TOTAL APROXIMADO (R$) 870000
36 Cronograma do Projeto
A tabela 27 contem as informaccedilotildees do cronograma do projeto
Tabela 27 ndash Cronograma de datas e entregas do projeto
Data Atividade a ser apresentada 050307 Entrega das propostas de projeto para avaliaccedilatildeo do colegiado 020407 Entrega das especificaccedilotildees teacutecnicas do projeto aprovado 110607 Entrega do projeto (monografia) e dos testes preliminares do mesmo 060807 Apresentaccedilatildeo preacutevia da implementaccedilatildeo do projeto especificado 011007 Apresentaccedilatildeo do projeto implementado
Qualificaccedilatildeo para a fase final 291007 Segunda apresentaccedilatildeo do projeto implementado para os que natildeo o fizeram no
dia 011006 com decreacutescimo da nota Qualificaccedilatildeo para a fase final
051107 Entrega da documentaccedilatildeo completa em espiral para a banca examinadora em 3 vias contendo a monografia manual teacutecnico manual do usuaacuterio e artigo cientiacutefico
261107 Defesa formal dos projetos com apresentaccedilatildeo oral para a banca examinadora 101207 Entrega da documentaccedilatildeo completa revisada e corrigida encadernada no
padratildeo da biblioteca (capa dura) em duas vias contendo a monografia manual teacutecnico manual do usuaacuterio e artigo cientiacutefico Entrega do CD contendo no formato WEB todo o conteuacutedo dos manuais
36
CAPIacuteTULO 4 ndash ESPECIFICACcedilAtildeO TECNICA
41 Requisitos Miacutenimos
Os requisitos miacutenimos de Hardware satildeo
Funcionamento das interfaces Serial e USB-Blaster
Funcionamento do Kit DE2
PC
Os requisitos miacutenimos de Software
Windows Xp
Quartus II
SOPC
NIOS II IDE
42 Projeto de Hardware
O hardware utilizado nesse projeto inclui componentes presentes na Placa de
Desenvolvimento Nios II - ediccedilatildeo DE2 Cyclone II EP2C35 e principalmente o hardware que seraacute
configurado na FPGA escrito em linguagem de descriccedilatildeo de hardware (HDL)
O um dos principais blocos de hardware eacute o processador NIOS II o Avalon Bus e os
controladores de componentes externos a FPGA e de comunicaccedilatildeo presentes no Kit
37
O software embarcado (firmware) estaraacute rodando nessa arquitetura Eacute uma arquitetura
completa construiacuteda com a ferramenta SOPC Builder da Altera A Figura 18 representa em
blocos os principais componentes dessa arquitetura
Figura 18 ndash Representaccedilatildeo em blocos do hardware do NIOS II
421 Funcatildeo do Touch-Screen
Outro bloco importante eacute o do Touch-Screen esta tela sensiacutevel ao toque pois como esta tela
trabalha com resistecircncia ao ser tocado em uma determinada regiatildeo uma resistecircncia eacute gerada e a
tensatildeo de saiacuteda eacute modificada a alimentaccedilatildeo desta placa eacute proveniente de sua placa controladora
a mesma placa que recebe a tensatildeo de saiacuteda modificada de acordo com a regiatildeo tocada na tela
Para verificar as caracteriacutesticas detalhadas do Touch-Screen e sua placa controlador favor ver
o Capitulo 2
422 Monitor e VGA
O Monitor inicialmente tem apenas o desenho de um botatildeo que ao ser tocado via touch
mudara a cor de toda a tela A imagem exibida no monitor tem uma resoluccedilatildeo de
38
Protoacutetipo das telas para os testes esta na Figura 19 a tela verde quando a touch natildeo eacute tocando
na regiatildeo do botatildeo de OK quando o botatildeo de OK for tocado a tela do monitor mudara de cor
ficando azul
Figura 19 ndash Tela do monitor
No Capitulo 2 estatildeo todas as caracteriacutesticas da pinagem e do conector VGA
423 Comunicaccedilatildeo serial
Entre a placa controladora do Touch-Screen e o FPGA existe uma comunicaccedilatildeo 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 manipulaccedilatildeo da imagem que eacute
mostrada no monitor
No capitulo 2 estatildeo das descriccedilotildees dos pinos e do conector da comunicaccedilatildeo Serial
O pacote serial que eacute transmitido pela placa controladora do touch-screen possui 10 bytes de
comprimento e segue a seguinte sequumlecircncia de envio
[55] [54] [] [] [] [] [] [] [] []
Sequumlecircncia dos bytes
Os dois primeiros bytes identificam o Header do pacote
O terceiro byte eacute 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 agrave posiccedilatildeo do eixo x onde a tela foi tocada
O sexto e o seacutetimo byte correspondem a posiccedilatildeo do eixo y onde a tele foi tocada
O restante os bytes identificam o tail do pacote recepcionado pelo kit DE2
39
424 Comunicaccedilatildeo USB-Blaster
Essencial para envio do projeto desenvolvido para o kit DE2 tambeacutem muito utilizado para o
debug deste projeto
435 Memoacuteria SDRAM
A memoacuteria utilizada para armazenar grandes quantidades de dados eacute a SDRAM (ver detalhes
no Capitulo 2)
Essa memoacuteria eacute muito raacutepida serviu muito bem para armazenar o firmware deste projeto
pois tem o tempo acesso ideal para ler as instruccedilotildees que utilizaram a VGA e tambeacutem eacute raacutepida o
suficiente para fazer a leitura dos dados e disponibilizar na saiacuteda VGA do kit
426 Memoacuteria FLASH
Eacute onde seraacute armazenado o firmware possui espaccedilo suficiente para isso 4MB e uma memoacuteria
mais lenta e por isso natildeo foi usada para armazenar dados para serem jogados na vga do Kit
43 Software
431 Software (Firmware)
O software tem de funccedilatildeo de utilizar as bibliotecas das controladoras dos componentes
externos a fim de controlar estes componentes de acordo com o necessaacuterio para atender o
objetivo do projeto
Ou seja uma tela inicial eacute apresentada e o usuaacuterio ao tocar na nela o kit recebe um pacote via
serial e interpreta a posiccedilatildeo da tela em que foi tocado e logo em seguida envia o resultado deste
toque para o monitor
432 Objetivos
O usuaacuterio 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 accedilatildeo de acordo com a posiccedilatildeo da tela
tocada alterando assim a imagem anterior com o resultado do toque
Interpretar o toque de usuaacuterio na tela touch-screen recepccedilatildeo do pacote via serial da placa
controladora do touch-screen tratamento do pacote e interpretaccedilatildeo das coordenadas x e y do
40
toque Realizaccedilatildeo de alguma accedilatildeo que resultara na alteraccedilatildeo da imagem da tela atual de acordo
com a funccedilatildeo em que as coordenadas foram previamente definidas para o que deve ser feito
432 Funccedilotildees
A Tabela 28 tem as principais funccedilotildees que foram implementadas para o sistema
Tabela 28 ndash Funccedilotildees do sistema firmware
FUNCcedilOtildeES Tela de um pequeno editor de texto Tratamento do sinal recebido da serial devido a um toque na tela Interpretaccedilatildeo do pacote serial e transfomaccedilatildeo para coordenadas x e y Transformaccedilatildeo das posiccedilotildees do toque na tela em alguma accedilatildeo enviando o resultado para a VGA Imagem final disponibilizada ao usuaacuterio de acordo com o toque que foi dado na tela Controlar dispositivos cada dispositivo pode ser controlado pelo seu respectivo contrador atraveacutes de seu endereccedilo base VGA SERIAL USB-BLASTER IO(Leds Switches etc) do Kit DE2
O Firmware do processador NIOS II eacute que realizaraacute a integraccedilatildeo entre hardware com
hardware Com o firmware controlando o NIOS II eacute possiacutevel interagir com os dispositivos
externos a FPGA Tornando possiacutevel a integraccedilatildeo da FPGA com a peliacutecula touch-screen e um
monitor sem a ajuda de um PC a uacutenica ajuda do pc seria para enviar dados de uma imagem para
o Kit DE2
44 Validaccedilatildeo e Testes
Inicialmente os moacutedulos da VGA e comunicaccedilatildeo SERIAL natildeo estavam funicionando
apenas o devido agrave fraca documentaccedilatildeo sobre o kit DE2 foi possiacutevel apenas fazer testes com o
Processador NIOS II pois sobre este existem bastantes documentos e exemplos que podem ser
utilizados
Nesta primeira parte foi possiacutevel testar o NIOS II para controlar o display bototildees e switchs
do kit DE2
Com o NIOS II funcionando completamente foi necessaacuterio porta-lo para o kit DE2 o que foi
simples pois como sabemos esses kits satildeo portaacuteveis entre si apenas mudando a pinagem e a
capacidade da FPGA
Com o Kit DE2 foi possiacutevel fazer os testes necessaacuterios com a comunicaccedilatildeo serial
inicialmente testada via terminal conversando diretamente com o kit foi possiacutevel fazer o
seguinte teste os caracteres que eram entrados via teclado chegavam ao kit via serial e o o
41
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 comdumpexe que eacute facilmente encontrado pelas ferramentas
de pesquisa da web e tambeacutem existem vario outros programas como este e o comdump eacute
utilizado para debug da porta serial do pc conectado diretamente na placa controladora do touch-
screen e foi a peccedila chave para o entendimento do pacote enviado pela placa controladora
Figura 20 - Cumdumpexe programa de debug da porta serial
A explicaccedilatildeo de cada byte do pacote esta explicado no item 423
Apos o entendimento completo da transmissatildeo 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 natildeo 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 ateacute o momento em que
foi testado os meacutetodos proprietaacuterios da Altera para fazer a VGA funcionar os meacutetodos esses
implementados em C
A figura 21 onde contem o teste baacutesico feito que foi a chave principal para o sucesso deste
projeto
42
Como dito no item 332 do projeto foram utilizados as funccedilotildees da controladora VGA esses
meacutetodos 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 eacute utilizado o meacutetodo alt_up_vga_draw_pixel( color int
x int y) onde color eacute a cor do bloco de pixels e x e y satildeo as coordenadas da tela onde o bloco
que seraacute pintado
Para escrever um caractere sobre um bloco de pixels pintado eacute utilizado a funccedilatildeo
alt_up_vga_draw_char_1b( char int x int y) onde char eacute o caractere a ser impresso e x e y satildeo
as coordenadas da tela onde os o caractere eacute impresso
Figura 21 - Teste baisco do funcionamento do componente VGA do kit DE2
43
CAPIacuteTULO 5 ndash VALIDACcedilAtildeO E RESULTADOS
Os resultados foram os melhores possiacuteveis pois com a utilizaccedilatildeo dos IP CORE
ldquocontroladorasrdquo dos componentes externos como VGA e SERIAL e seus meacutetodos de para
controle eacute possiacutevel controlar facilmente esses moacutedulos atraveacutes do firmware desenvolvido para o
processador NIOS que consegue realizar operaccedilotildees transparentes acessando dos meacutetodos de
controle dos moacutedulos
Apos os testes baacutesicos 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 baacutesico de editor de texto
A figura 22 mostra um teste utilizando os meacutetodos de controle disponiacuteveis para o IP CORE
da VGA para primeiramente fazer o menu da aplicaccedilatildeo desenvolvido em na linguagem C
Figura 22 ndash Menu baacutesico do editor de texto
Para desenhar o menu da figura acima foi utilizado os meacutetodos proprietaacuterios de controle da
VGA citados no capitulo 4 e tambeacutem estruturas de repeticcedilatildeo para que a tela fosse varrida e os
pixels desenhados nos respectivos lugares da tela bem como os caracteres
Na figura 23 eacute definida a seguinte estrutura em C para representar de um botatildeo
Figura 23 - Estrutura em C para representar um botatildeo
44
A figura 24 eacute a declaraccedilatildeo dos bototildees que seratildeo utilizados pelo aplicativo editor de texto
para comprovar o funcionamento do controle da interface touch-screen
Apenas o que esta dentro da marcaccedilatildeo quadrada representa os bototildees do menu da figura 23
e o restante satildeo os bototildees do teclado do editor de texto
Figura 24 - Declaraccedilatildeo dos bototildees do menu
45
A figura 25 representa o meacutetodo drawnButtonUp responsaacutevel por desenhar os bototildees na tela
de acordo com as posiccedilotildees em que foram declarados os bototildees deste meacutetodo satildeo desenhados
para parecerem que estatildeo ldquolevantadosrdquo e natildeo pressionados
Note que foram utilizados os meacutetodos proprietaacuterios de controle da VGA
alt_up_vga_draw_pixel pra pitar os pixels e alt_up_vga_draw_char_b1 para desenhar caracteres
como jaacute foi especificado no item 44 do projeto
Figura 25 ndash Meacutetodo drawButtonUp
46
O meacutetodo que desenha o caption do botatildeo se chama drawButtonText desenha os caracteres
em cima dos bototildees natildeo importa se o botatildeo esta pressionado ou natildeo
A figura 26 mostra como este meacutetodo foi implementado e ele eacute chamado no final de cada
meacutetodo onde algum tipo de botatildeo eacute desenhado quando o meacutetodo que desenha o botatildeo normal
quanto o pressionado e ateacute mesmo o do teclado
Figura 26 ndash Meacutetodo que escreve o caption de cada botatildeo
47
A figura 27 mostra o meacutetodo drawButtonDown que desenha o botatildeo pressionado ou seja
quando o usuaacuterio pressiona a regiatildeo correspondente a um botatildeo do menu no touch-screen o
mesmo redesenharaacute o botatildeo parecendo um efeito de botatildeo afundado note que no final do
meacutetodo novamente eacute chamado o meacutetodo drawButtonText que reescreveraacute o caption do botatildeo
como mostra o meacutetodo da figura 26 e esta ilustrado na figura 28
Figura 27 ndash Meacutetodo que desenha o botatildeo pressionado
48
Dependendo da aacuterea do menu que o usuaacuterio pressionar no touch-screen causar o efeito de
pressionado como mostra a figura 28
Figura 28 ndash Efeito do botatildeo de menu apertado
Na figura 29 eacute a representaccedilatildeo de quando a aacuterea correspondente ao botatildeo ldquoamarelordquo eacute
pressionada
Apos estes testes baacutesicos comprovando o funcionamento da interface graacutefica para o usuaacuterio
foi definido o restante dos componentes da tela que eacute constituiacutedo de um prompt e um teclado
qwerty que foi essencial para comprovar o perfeito funcionamento do controle da interface
touch-screen
49
51 Interface Grafica Final
A figura 29 mostra a interface final que o usuaacuterio teraacute para poder verificar o funcionamento
do controle da interface touch-screen
Figura 29 ndash Interface final touch-screen do usuaacuterio
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
511 Descriccedilatildeo do editor de texto
O menu possui 4 botoes cada um com sua respectiva funcionalidade quando o usuario
pressiona a area do botatildeo ldquoapagarrdquo uma vez entatildeo um carectere do prompt eacute apagado Quando eacute
precionado a area correspondente ao botatildeo ldquoResetrdquo todo o conteudo do prompt seraacute apagado e o
plano de fundo retornaraacute a cor branca Quando o botatildeo ldquoamarelordquo eacute pressionado o fundo da tela
passa a ser amarelo e o mesmo acontece se o usuario precionar o botatildeo verde tornando o cor de
fundo verde
50
O teclado possui 29 teclas sendo duas delas que equivalem ao ENTRA ldquoENTrdquo e ao
SPACE ldquoSPCrdquo Quando o usuario pressiona a area correspondente a algum botatildeo do teclado o
mesmo muda sua cor para azul e o seu caractere eacute disponibilizado no prompt
Essas funcionalidades nada mais satildeo do que um bom exemplo de como funciona
corretamente o controle da interface touch-screen
52 Prompt e o Teclado
A estrutura feita na linguagem C que define o prompt da figura 28 esta representado na
figura 30
Figura 30 ndash Estrutura em C para representar o prompt
A figura 31 mostra o metodo drawPrompt utilizado para desenhar na tela o prompt
Figura 31 ndash Meacutetodo que desenha o prompt
51
A estrutura do teclado eacute a mesma utilizada pela figura 23 e tambem eacute criado satildeo
inicializados na figura 24
O restante as implementaccedilotildees estatildeo disponiveis no cd deste documento
Quando algum botatildeo do teclado eacute pressionado sua cor muda para azul e sua letra
correspondente eacute escrita o prompt
A figura 32 ilustra quando o usuaacuterio aperta a letra lsquotrsquo na peliacutecula touch-screen
Figura 32 - Teste do prompt e o teclado
52
53 Controle da Interface Touch-Screen
Depois do todos os testes com o processador NIOS e a integraccedilatildeo do mesmo com os
moacutedulos externos como a porta SERIAL e a saiacuteda VGA eacute possiacutevel utilizando o touch-screen
criar uma interface amigaacutevel e faacutecil de usar para o usuaacuterio utilizando um firmware capaz de
interpretar os sinais via serial vindo da controladora do touch ao detectar que um toque foi dado
pelo usuaacuterio e realizar algumas accedilotildees que neste caso se comportam como um editor de texto
baacutesico
A figura 33 mostra como foi validado este projeto e seus moacutedulos controlando uma
interface touch-screen para chegar no resultado abaixo digitado pelo usuaacuterio comprovando o
funcionamento e viabilidade deste projeto
Figura 33 ndash 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 mudanccedilas podendo ser alterado rapidamente o tipo de
aplicaccedilatildeo ou integrado rapidamente com outro projeto
53
CAPIacuteTULO 6 - CONCLUSAtildeO
Uma das principais dificuldades no desenvolvimento deste projeto foi fazer o levantamento
da documentaccedilatildeo sobre o processador NIOS e os moacutedulos externos a FPGA do Kit DE2 Como
natildeo foi feito algum projeto antes que utilizasse a interface VGA e a SERIAL do Kit DE2 levou-
se muito tempo ateacute conseguir adquirir e ordenar o conhecimento que foi sendo adquirido ateacute
conseguir dar os primeiros passos e realizar os primeiros testes com a VGA e a SERIAL Outro
grande obstaacuteculo foi ter de descobrir que para que o NIOS controlasse os moacutedulos externos a
FGPA fosse necessaacuterio copiar os arquivos c e h dos respectivos componente para dentro do
projeto
Mas depois de todos os problemas com os moacutedulos externos solucionados cada modulo do
projeto foi sendo desenvolvido separadamente ateacute seu total funcionamento Natildeo tive dificuldades
com a linguagem da programaccedilatildeo pois o Firmware do processador NIOS eacute o C a qual mais tive
contato na faculdade
Outro desafio foi fazer a peliacutecula 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
peliacutecula natildeo 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 possiacutevel
comeccedilar a fazer os testes necessaacuterios para prosseguir com o projeto aprender como o a peliacutecula
identifica um toque e manda este sinal para a controladora e a controladora transforma este sinal
em um sinal serial que eacute 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 accedilotildees
que as coordenadas jaacute estatildeo previamente calibradas no firmware para fazer bem como mudar de
cor a tela fazer o efeito de um botatildeo subindo e descendo etc
Varias vezes o projeto parou de funcionar entatildeo 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 memoacuteria abundante etc uma das
facilidades eacute a faacutecil alteraccedilatildeo do projeto podendo ser integrado a outro ou ateacute mesmo alterado
para realizar outros tipos de accedilotildees com o touch-screen
Existem vaacuterios melhoramentos que podem ser executados no projeto um deles eacute tentar
interpretar de uma maneira diferente os valores do eixo y pois do jeito que esta a resoluccedilatildeo do
eixo y esta muito baixa dificultando o reconhecimento de toques em aacutereas pequenas Talvez a
inclusatildeo de mais alguns bytes no pacote de leitura da serial resolva o problema
54
Uma ideacuteia para um proacuteximo projeto que use a interface touch-screen poderia ser a
integraccedilatildeo com o projeto do nosso colega Roberto Junqueira ou a desenvolvimento de uma
placa controladora para o touch-screen
Este trabalho eacute uma modesta contribuiccedilatildeo para o uso de FPGAs e do processador embarcado
NIOS implementado em VHDL pela Altera que acredito que vai abrir vaacuterios caminhos pois
com este projeto alguns caminhos ficaram mais faacuteceis de percorrer daqui para a frente
55
CAPIacuteTULO 7 - REFEREcircNCIAS BIBLIOGRAacuteFICAS
AMORE Roberto drsquo VHDL Descriccedilatildeo e Sintese de Circuitos Rio de Janeiro ed LTC
2005
Elotouch Touch-Screen e Controladora Descriccedilatildeo do funcionamento e descriccedilatildeo
tecnologia Touch-Screen lthttpwwwelotouchcombrgt Acesso em fevereiro de 2007
ALTERA University Program IP Cores Instalaccedilatildeo de IP Cores e referencias sobre os
componentes dos kits DE1 e DE2 Disponivel em lthttpwwwalteracomeducationunivip-
coresunv-ip-coreshtmlgt Acesso em abril de 2007
ALTERA NIOS II Documentaccedilatildeo sobre o pprocessador embracado NIO II Disponivel
em lthttpwwwalteracomproductsipprocessorsipm-indexjspgt Acesso em Abril de 2007
ALTERA Development amp Education Board 2 (DE2) Manual do usuario Disponivel no
de que acompanha o Kit DE2 ltDE2_user_manualDE2_UserManualpdfgt Acesso em
fevereiro de 2007
18
A Tabela 2 descreve os pinos do conector para o touch da placa controladora
Tabela 2 ndash Pinagem do conector que faz interface entre o touch e a controladora
Pino
Nome do Sinal Desciccedilatildeo do sinal
1 X+ Entrada de tensatildeo positiva referente ao eixo X da tela 2 Y+ Entrada de tensatildeo positiva referente ao eixo Y da tela 3 X- Entrada de tensatildeo negativa referente ao eixo X da tela 4 Y- Entrada de tensatildeo negativa referente ao eixo Y da tela
22-Video
Eacute usado um monitor CRT convencional o qual apresentaraacute uma imagem criada atraveacutes as
bibliotecas graficas proprietarias da ALTERA esta imagem representa um menu com botoes e e
que atravez da manipulaccedilatildeo dos metodos das bibliotecas os resultados satildeo disponibilizados na
saida VGA do kit dependendo do botatildeo da imagem que for tocada atravez do touch alguma accedilatildeo
de alteraccedilatildeo na imagem seraacute atulalizada na saida vga
A Figura 8 ilustra o conector (fecircmea) da saiacuteda VGA do kit DE2
Figura 8 ndash Conector VGA femea do kit DE2
E na Tabela 3 a descriccedilatildeo de cada pino bem como sua direccedilatildeo
Tabela 3 ndash Descriccedilatildeo dos pinos da VGA
Pin
Name Dir Description
1 RED
Red Video (75 ohm 07 V p-p)
2 GREEN
Green Video (75 ohm 07 V p-p)
3 BLUE
Blue Video (75 ohm 07 V p-p)
4 ID2
Monitor ID Bit 2
5 GND
Ground
6 RGND
Red Ground
7 GGND
Green Ground
8 BGND
Blue Ground
19
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
20
23-Kit Altera Development amp Education Board 1 (Kit DE2)
231-Layout e Componentes
Uma fotografia do Kit DE2 eacute mostrado na Figura 9 onde se ve a aparencia do kit e as
indicaccedilotildees das localizaccedilatildeo dos componentes e conectores
Figura 9 ndash O kit DE2 (DE2_UserManualpdf 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 eacute listado os componentes fornecidos na placa do Kit DE2
Tabela 4 ndash Lista dos componentes do Kit DE2 (DE2_UserManualpdf contrado no cd do kit)
1 Altera Serial Configuration device ndash EPCS4
2 USB Blaster (on board) for programming and user API control both JTAG and Active 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
21
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
PS2 mousekeyboard connector
17
Two 40-pin Expansion Headers with diode protection
18
Powered by either a 75V DC adapter or a USB cable
232 Diagrama de Blocos do Kit DE2
Figura 10 ndash Diagrama de Blocos do KIT DE2 (DE2_UserManualpdf contrado no cd do kit)
22
A Tabela 5 mostra a informaccedilatildeo detalhada do Bloco Cyclone II FPGA 2C20 mostrado na
Figura 10
Tabela 5 ndash Detalhes do FPGA Cyclone II
FPGA Cyclone II 2C35
18752 LErsquos
52 M4K RAM blocks 240K total RAM bits 26 embedded multipliers 4 PLLrsquos 315 user IO pinrsquos FineLine BGA 484-pin package
A Tabela 6 mostra a informaccedilatildeo detalhada do Bloco do dispositivo de configuraccedilatildeo Serial e
circuito Usb-Blaster
Tabela 6 - Descriccedilatildeo das configuraccedilotildees que satildeo feitas atraveacutes da Serial e Usb-Blaster
Configuraccedilatildeo do dispositivo Serial e do Circuito Usb-Blaster Configuraccedilatildeo do dispositivo serial Altera EPCS4 On-Board Usb-Blaster
para Controle de API de usuaacuterio e programaccedilatildeo
JTAG e AS satildeo os modos do programaccedilatildeo suportados
A Tabela 7 mostra a descriccedilatildeo do Bloco da SRAM
Tabela 7 ndash Descriccedilatildeo do Bloco da SRAM
SRAM 512-Kbyte Static RAM memory chip Organizado em 256K x 16 bits Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 8 mostra a descriccedilatildeo do Bloco da SDRAM
Tabela 8 - Descriccedilatildeo do Bloco da SDRAM
SDRAM 8-Mbyte Single Data Rate Synchronous Dynamic RAM memory chip Organizado em 1M x 16 bits x 4 Banks Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
23
A Tabela 9 mostra a descriccedilatildeo do Bloco Memory Flash
Tabela 9 ndash Descriccedilatildeo da Memoria Flash
Memory Flash
4-Mbyte NAND Flash memory 8-bit data bus Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 10 mostra a descriccedilatildeo do Bloco SD card socket
Tabela 10 - Descriccedilatildeo do SD card socket
SD card socket Fornece o modo SPI para o acesso ao cartatildeo SD Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 11 mostra a descriccedilatildeo 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) Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 12 mostra a descriccedilatildeo dos Clock inputs
Tabela 12 - Descriccedilatildeo das entradas de Clocks
Clock inputs Oscilador de 50 Mhz Oscilador 27 Mhz Entrada para clock
externo
A Tabela 13 mostra a descriccedilatildeo do Aacuteudio CODEC
Tabela 13 - Descriccedilatildeo do Aacuteudio CODEC
Aacuteudio CODEC 4-Mbyte NAND Flash memory 8-bit data bus Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
24
A Tabela 14 mostra a descriccedilatildeo do Bloco VGA DAC
Tabela 14 ndash Descriccedilatildeo da saiacuteda VGA DAC
VGA
DAC
Usa 4 bits DAC para cada cor (RGB) Com 15 pinos no conector VGA convencional (fecircmea) Suporta uma resoluccedilatildeo de 640 x 480 com um refresh de ateacute 100Hz Pode ser usando com o FPGA Cyclone II para implementar um Encoder para TV
A Tabela 15 mostra a descriccedilatildeo do Bloco Serial Ports amp PS2
Tabela 15 ndash Descriccedilatildeo da Serial Port e PS2
Serial Ports amp PS2 Uma porta RS-232
Uma posta PS2 Um conector Serial para a porta do RS-232 Conector PS2 para conectar um mouse ou teclado ao DE2
A Tabela 16 mostra a descriccedilatildeo do Bloco dos Two 40 - pin expansion headers
Tabela 16 ndash Descriccedilatildeo dos conectores de expansatildeo de 40 pinos
Two 40 - pin expansion headers 72 pinos de IO do Clyclone II bem como 8 power e groundrsquos satildeo trazidos aos 2 conectores de expansatildeo de 40 pinos cada Os conectores de 40 pinos tambeacutem aceitam os cabos IDE de 40 pinos Proteccedilatildeo resistiva eacute fornecida
233 Endereccedilo das Pinagens dos Componentes usados no Projeto
2331 PushButtons
A Figura 11 mostra uma foto dos PushButtons do kit Key[30] a ordem eacute o button da
esquerda eacute o mais significativo e o mais de direita o menos signigicativo
Figura 11 ndash Os 4 PushButtons do DE2Key[30] (DE2_UserManualpdf contrado no cd do kit)
25
A Tabela 17 mostra os pinos da FPGA aos PushButtons
Tabela 17 ndash Pinos da FPGA referentes a cada PushButton (DE2_UserManualpdf contrado no cd do kit)
2332 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 ndash Modulo de displays de 7 segmentos (DE2_UserManualpdf encontrado no cd do kit)
Figura 13 ndash Index de um display (DE2_UserManualpdf encontrado no cd do
kit)
26
A Tabela 18 mostra os pinos da FPGA referente a cada segmento dos displays de 7
segmentos do modulo
Tabela 18 ndash Pinos da FPGA referentes a cada segmento dos Displays do modulo
27
2333 VGA
A Figura 14 esta em forma de onda da temporizaccedilatildeo horizontal e vertical da VGA do Kit
DE2
Figura 14 ndash Temporizaccedilatildeo horizontal da VGA
A Tabela 19 mostra a especificaccedilatildeo da temporizaccedilatildeo horizontal da VGA
Tabela 19 ndash Especificaccedilatildeo da temporizaccedilatildeo horizontal da VGA
A Tabela 20 mostra a especificaccedilatildeo da temporizaccedilatildeo vertical da VGA
Tabela 20 ndash Especificaccedilatildeo da temporizaccedilatildeo vertical da VGA
28
A Tabela 21 mostra os pinos da FPGA referente a cada pino de saida do conector VGA do
Kit DE2
Tabela 21 ndash Pinos da FPGA referentes a saiacuteda do Conector VGA do Kit
29
CAPIacuteTULO 3 ndash ESPECIFICACcedilAtildeO TECNICA
Nesse capiacutetulo tem-se uma descriccedilatildeo dos principais moacutedulos do projeto Satildeo eles Software
Firmware e Hardware
Inicialmente eacute apresentada a visatildeo geral do sistema e a descriccedilatildeo funcional de cada moacutedulo
A Figura 15 apresenta o diagrama em blocos do sistema
Figura 15 - Moacutedulos do projeto
31 Descriccedilatildeo de Software
O Software eacute uma das interfaces com o usuaacuterio
312 Diagrama de Blocos do Software
30
312 Modulo do PC
Neste modulo eacute 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
32 Descriccedilatildeo de Hardware
321 Modulo Touch-Screen
O usuaacuterio ao tocar o Touch-Screen (AT4 touch-screen resistivo de 4 fios) ocorre uma
mudanccedila nas tensotildees do eixo X e do eixo Y devido a resistecircncia gerada pelo ao toque do usuaacuterio
em uma determinada regiatildeo da tela essa mudanccedila de tensatildeo eacute interpretada pela placa
controladora COACh IIs do Touch-Screen e enviada via serial para o Kit DE2 que interpretaraacute
os dados e faraacute o devido processamento
322 Modulo FPGA
O Hardware corresponde tanto aos componentes fiacutesicos presentes no kit de desenvolvimento
quanto aos componentes que seratildeo configurados na FPGA Satildeo diversos componentes escritos
em linguagem de descriccedilatildeo de hardware
No um dos principais componentes de hardware utilizado modulo eacute o processador NIOS II
para se ter uma ideacuteia o processador NIOS II eacute capaz gerenciar os dispositivos externos a FPGA
utilizando controladores de memoacuterias controladores de VGA entre outros E tambeacutem eacute possiacutevel
o proacuteprio usuaacuterio criar seu componente para ser controlado atraveacutes do processador NIOS
II(Altera 2007)
31
3221 O Processador NIOS II
Atraveacutes do software SOPC da ALTERA foi possiacutevel montar a arquitetura de hardware do
processador NIOS II bem como especificar as interfaces que ele iraacute controlar atraveacutes do firmwar
feito no NIOS II IDE
Na Tabela 22 eacute no campo Module Name onde estatildeo os moacutedulos que foram usados para
definir o processador NIOS II e os componentes externos que ele iraacute controlar e no campo
Description esta a descriccedilatildeo do nome de cada modulo
Tabela 22 ndash Moacutedulos dos componentes e suas descriccedilotildees
3222 Firmware para o NIOS II
O Firmware foi feito utilizando a linguagem C utilizando a ferramenta NIOS II IDE Atraveacutes
do firmware eacute possiacutevel 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 graacuteficas para controlar a vga e serial e
USB-BLASTER eacute encarregado em enviar todo o desenvolvimento do projeto para o Kit DE2
323 Configuraccedilatildeo da FPGA via JTAG
Depois de configurado o hardware do processador NIOS II eacute preciso fazer o load do NIOS
para a FPGA e para que isso aconteccedila eacute necessaacuterio que atraveacutes do software Quartus II da
ALTERA utilizando a interface JTAG utilizando o cabo USB-BLASTER
32
324 Comunicaccedilatildeo entre FPGA e o Touch-Screen
Para comunicaccedilatildeo entre dos dois hardwares Touch-Screen e o FPGA eacute utilizando uma
interface serial RS-232
A configuraccedilatildeo da interface eacute a seguinte
Bits de dados 8
Taxa de dados 5600(bps)
A Tabela 23 mostra a relaccedilatildeo dos pinos da porta serial com os pinos da FPGA
Tabela 23 ndash Pinos da FPGA referente agrave pinagem da interface Serial
E a Figura 16 mostra o desenho correspondente da interface serial
Figura 16 ndash Conector da interface serial do kit DE2
33 Especificaccedilatildeo de Validaccedilatildeo
331 Validaccedilatildeo de Hardware
A validade do hardware se faz com a anaacutelise de todos os moacutedulos envolvidos
As necessidades satildeo estudadas os componentes externos ao FPGA satildeo selecionados de
acordo o processador nios e os controladores dos moacutedulos externos como VGA e SERIAL satildeo
enviados ao modulo FPGA
Os resultados obtidos na tela do monitor e a recepccedilatildeo dos dados pela serial comprovam o
funcionamento do modulo de comunicaccedilatildeo da serial e vga
33
332 Validaccedilatildeo de Software
A validaccedilatildeo do controle da interface touch-screen faz-se a partir dos resultados obtidos das
funccedilotildees escritas na linguagem C especificas para cada componente externos ao FPGA essas
funccedilotildees tornam possiacuteveis que o processador NIOS na FPGA tenha total controle sobre os
moacutedulos externos como a VGA e a SERIAL
As funccedilotildees que satildeo utilizadas para validar o funcionamento do software satildeo para a VGA os
meacutetodos de controle (alt_up_vga_draw_char_1b( char int x int y)) e (alt_up_vga_draw_pixel(
color x y))
O meacutetodo (alt_up_vga_draw_char_1b( char int x int y)) tem a funcionalidade de escrever
caracteres na tela do monitor e a descriccedilatildeo da sua assinatura ldquoparacircmetrosrdquo eacute a seguinte char eacute o
caractere que eacute escrito em alguma posiccedilatildeo na tela int x eacute a posiccedilatildeo x da tela do monitor e int y eacute
a posiccedilatildeo y da tela do monitor sendo que a resoluccedilatildeo utilizada eacute de 80x60 ou seja x natildeo pode
passar de 80 e y natildeo pode passar de 60
O meacutetodo (alt_up_vga_draw_pixel( color int x int y)) tem a funcionalidade de ldquopintarrdquo o
fundo da tela do monitor o meacutetodo de imprimir caracteres tem preferecircncia sobre este meacutetodo ou
seja os caracteres sempre ficam sob a aacuterea pintada ou seja o caractere sempre ficara em cima da
aacuterea pintada a descriccedilatildeo da assinatura deste meacutetodo eacute a seguinte color eacute a valor da cor que pode
ser um valor inteiro ou em hexadecimal para definir uma cor de alguma posiccedilatildeo da tela definidos
pelos paracircmetros x e y
As funccedilotildees que satildeo utilizadas para validar o funcionamento do software satildeo para a Serial os
meacutetodos de controle de transmissatildeo (fread( packet sizeof(packet) 1 serial_fp )) a funccedilatildeo
fread eacute utilizada para a leitura via interrupccedilatildeo dos pacotes que a controladora envia para o kit
DE2 as assinaturas do meacutetodo fread tem a seguinte composiccedilatildeo packet eacute a estrutura do pacote
que seraacute recebido o sizeof(packet) eacute o diz qual eacute o tamanho exato da estrutura criada e o
serial_fp eacute o handle da porta serial
Uma observaccedilatildeo muito importante eacute que para o total funcionamento eacute necessaacuterio 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 rs232h e rs232c onde estatildeo os meacutetodos de
controle da SERIAL e alt_up_vgah alt_up_vgac onde estatildeo os meacutetodos de controle para a
VGA Para tornar estes meacutetodos acessiacuteveis eacute preciso fazer os includes dos arquivos h no
projeto da NIOS IDE
A figura 17 mostra a utilizaccedilatildeo dos meacutetodos (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
34
int y)) utlizado para escrever os caracteres lsquoarsquo e lsquobrsquo dentro de um grupo de pixel previamente
pintado a (alt_up_vga_draw_pixel( color int x int y)) natildeo pinta um pixel de cada vez e sim
um bloco de 8x8 pixels
Figura 17 - Tela para a validaccedilatildeo dos testes com as bibliotecas graacuteficas do componente VGA
34 Recursos Necessaacuterios
A Tabela 24 apresenta os ambientes de desenvolvimento e ferramentas de software utilizadas
e na Tabela 25 as linguagens necessaacuterias Estas ferramentas foram utilizadas em ambiente
Windows Xp
Tabela 24 - Ferramentas de Desenvolvimentos e Ambientes
Software Para que foi Utilizado
Quartus II Para a definiccedilatildeo de qual o modelo de FPGA utilizado compilaccedilatildeo e simulaccedilatildeo e envio Load do NIOS para FPGA
SOPC Para definiccedilatildeo da do processador NIOS II e com quais componentes externos ele ira interagir atraveacutes dos controladores dos respectivos componentes
NIOS II IDE Para implementaccedilatildeo do firmware do processador NIOS II utilizando a linguagem em C
35
Borland C++ Builder Para desenvolvimento de ima interface de comunicaccedilatildeo via caboUSB-
BLASTER para o envio de imagem para o kit
Tabela 25 ndash Linguagens de programaccedilatildeo utilizadas
Linguagem Ferramenta C++ Borland C++ Builder VerilogVHDL Quartus II C NIOS II IDE
35 Viabilidade Teacutecnico-Econocircmica
O valor do projeto esta descrito na Tabela 26
Tabela 26 ndash Relaccedilatildeo dos Custos
DESCRICcedilAtildeO CUSTO APROXIMADO (R$) COMPONENTES ELETROcircNICOS 50000 1 Kit DE2 Cyclone II 35000 1 Monitor de Computador 35000 HORAS TRABALHADAS (400 horas) 750000 CUSTO TOTAL APROXIMADO (R$) 870000
36 Cronograma do Projeto
A tabela 27 contem as informaccedilotildees do cronograma do projeto
Tabela 27 ndash Cronograma de datas e entregas do projeto
Data Atividade a ser apresentada 050307 Entrega das propostas de projeto para avaliaccedilatildeo do colegiado 020407 Entrega das especificaccedilotildees teacutecnicas do projeto aprovado 110607 Entrega do projeto (monografia) e dos testes preliminares do mesmo 060807 Apresentaccedilatildeo preacutevia da implementaccedilatildeo do projeto especificado 011007 Apresentaccedilatildeo do projeto implementado
Qualificaccedilatildeo para a fase final 291007 Segunda apresentaccedilatildeo do projeto implementado para os que natildeo o fizeram no
dia 011006 com decreacutescimo da nota Qualificaccedilatildeo para a fase final
051107 Entrega da documentaccedilatildeo completa em espiral para a banca examinadora em 3 vias contendo a monografia manual teacutecnico manual do usuaacuterio e artigo cientiacutefico
261107 Defesa formal dos projetos com apresentaccedilatildeo oral para a banca examinadora 101207 Entrega da documentaccedilatildeo completa revisada e corrigida encadernada no
padratildeo da biblioteca (capa dura) em duas vias contendo a monografia manual teacutecnico manual do usuaacuterio e artigo cientiacutefico Entrega do CD contendo no formato WEB todo o conteuacutedo dos manuais
36
CAPIacuteTULO 4 ndash ESPECIFICACcedilAtildeO TECNICA
41 Requisitos Miacutenimos
Os requisitos miacutenimos de Hardware satildeo
Funcionamento das interfaces Serial e USB-Blaster
Funcionamento do Kit DE2
PC
Os requisitos miacutenimos de Software
Windows Xp
Quartus II
SOPC
NIOS II IDE
42 Projeto de Hardware
O hardware utilizado nesse projeto inclui componentes presentes na Placa de
Desenvolvimento Nios II - ediccedilatildeo DE2 Cyclone II EP2C35 e principalmente o hardware que seraacute
configurado na FPGA escrito em linguagem de descriccedilatildeo de hardware (HDL)
O um dos principais blocos de hardware eacute o processador NIOS II o Avalon Bus e os
controladores de componentes externos a FPGA e de comunicaccedilatildeo presentes no Kit
37
O software embarcado (firmware) estaraacute rodando nessa arquitetura Eacute uma arquitetura
completa construiacuteda com a ferramenta SOPC Builder da Altera A Figura 18 representa em
blocos os principais componentes dessa arquitetura
Figura 18 ndash Representaccedilatildeo em blocos do hardware do NIOS II
421 Funcatildeo do Touch-Screen
Outro bloco importante eacute o do Touch-Screen esta tela sensiacutevel ao toque pois como esta tela
trabalha com resistecircncia ao ser tocado em uma determinada regiatildeo uma resistecircncia eacute gerada e a
tensatildeo de saiacuteda eacute modificada a alimentaccedilatildeo desta placa eacute proveniente de sua placa controladora
a mesma placa que recebe a tensatildeo de saiacuteda modificada de acordo com a regiatildeo tocada na tela
Para verificar as caracteriacutesticas detalhadas do Touch-Screen e sua placa controlador favor ver
o Capitulo 2
422 Monitor e VGA
O Monitor inicialmente tem apenas o desenho de um botatildeo que ao ser tocado via touch
mudara a cor de toda a tela A imagem exibida no monitor tem uma resoluccedilatildeo de
38
Protoacutetipo das telas para os testes esta na Figura 19 a tela verde quando a touch natildeo eacute tocando
na regiatildeo do botatildeo de OK quando o botatildeo de OK for tocado a tela do monitor mudara de cor
ficando azul
Figura 19 ndash Tela do monitor
No Capitulo 2 estatildeo todas as caracteriacutesticas da pinagem e do conector VGA
423 Comunicaccedilatildeo serial
Entre a placa controladora do Touch-Screen e o FPGA existe uma comunicaccedilatildeo 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 manipulaccedilatildeo da imagem que eacute
mostrada no monitor
No capitulo 2 estatildeo das descriccedilotildees dos pinos e do conector da comunicaccedilatildeo Serial
O pacote serial que eacute transmitido pela placa controladora do touch-screen possui 10 bytes de
comprimento e segue a seguinte sequumlecircncia de envio
[55] [54] [] [] [] [] [] [] [] []
Sequumlecircncia dos bytes
Os dois primeiros bytes identificam o Header do pacote
O terceiro byte eacute 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 agrave posiccedilatildeo do eixo x onde a tela foi tocada
O sexto e o seacutetimo byte correspondem a posiccedilatildeo do eixo y onde a tele foi tocada
O restante os bytes identificam o tail do pacote recepcionado pelo kit DE2
39
424 Comunicaccedilatildeo USB-Blaster
Essencial para envio do projeto desenvolvido para o kit DE2 tambeacutem muito utilizado para o
debug deste projeto
435 Memoacuteria SDRAM
A memoacuteria utilizada para armazenar grandes quantidades de dados eacute a SDRAM (ver detalhes
no Capitulo 2)
Essa memoacuteria eacute muito raacutepida serviu muito bem para armazenar o firmware deste projeto
pois tem o tempo acesso ideal para ler as instruccedilotildees que utilizaram a VGA e tambeacutem eacute raacutepida o
suficiente para fazer a leitura dos dados e disponibilizar na saiacuteda VGA do kit
426 Memoacuteria FLASH
Eacute onde seraacute armazenado o firmware possui espaccedilo suficiente para isso 4MB e uma memoacuteria
mais lenta e por isso natildeo foi usada para armazenar dados para serem jogados na vga do Kit
43 Software
431 Software (Firmware)
O software tem de funccedilatildeo de utilizar as bibliotecas das controladoras dos componentes
externos a fim de controlar estes componentes de acordo com o necessaacuterio para atender o
objetivo do projeto
Ou seja uma tela inicial eacute apresentada e o usuaacuterio ao tocar na nela o kit recebe um pacote via
serial e interpreta a posiccedilatildeo da tela em que foi tocado e logo em seguida envia o resultado deste
toque para o monitor
432 Objetivos
O usuaacuterio 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 accedilatildeo de acordo com a posiccedilatildeo da tela
tocada alterando assim a imagem anterior com o resultado do toque
Interpretar o toque de usuaacuterio na tela touch-screen recepccedilatildeo do pacote via serial da placa
controladora do touch-screen tratamento do pacote e interpretaccedilatildeo das coordenadas x e y do
40
toque Realizaccedilatildeo de alguma accedilatildeo que resultara na alteraccedilatildeo da imagem da tela atual de acordo
com a funccedilatildeo em que as coordenadas foram previamente definidas para o que deve ser feito
432 Funccedilotildees
A Tabela 28 tem as principais funccedilotildees que foram implementadas para o sistema
Tabela 28 ndash Funccedilotildees do sistema firmware
FUNCcedilOtildeES Tela de um pequeno editor de texto Tratamento do sinal recebido da serial devido a um toque na tela Interpretaccedilatildeo do pacote serial e transfomaccedilatildeo para coordenadas x e y Transformaccedilatildeo das posiccedilotildees do toque na tela em alguma accedilatildeo enviando o resultado para a VGA Imagem final disponibilizada ao usuaacuterio de acordo com o toque que foi dado na tela Controlar dispositivos cada dispositivo pode ser controlado pelo seu respectivo contrador atraveacutes de seu endereccedilo base VGA SERIAL USB-BLASTER IO(Leds Switches etc) do Kit DE2
O Firmware do processador NIOS II eacute que realizaraacute a integraccedilatildeo entre hardware com
hardware Com o firmware controlando o NIOS II eacute possiacutevel interagir com os dispositivos
externos a FPGA Tornando possiacutevel a integraccedilatildeo da FPGA com a peliacutecula touch-screen e um
monitor sem a ajuda de um PC a uacutenica ajuda do pc seria para enviar dados de uma imagem para
o Kit DE2
44 Validaccedilatildeo e Testes
Inicialmente os moacutedulos da VGA e comunicaccedilatildeo SERIAL natildeo estavam funicionando
apenas o devido agrave fraca documentaccedilatildeo sobre o kit DE2 foi possiacutevel apenas fazer testes com o
Processador NIOS II pois sobre este existem bastantes documentos e exemplos que podem ser
utilizados
Nesta primeira parte foi possiacutevel testar o NIOS II para controlar o display bototildees e switchs
do kit DE2
Com o NIOS II funcionando completamente foi necessaacuterio porta-lo para o kit DE2 o que foi
simples pois como sabemos esses kits satildeo portaacuteveis entre si apenas mudando a pinagem e a
capacidade da FPGA
Com o Kit DE2 foi possiacutevel fazer os testes necessaacuterios com a comunicaccedilatildeo serial
inicialmente testada via terminal conversando diretamente com o kit foi possiacutevel fazer o
seguinte teste os caracteres que eram entrados via teclado chegavam ao kit via serial e o o
41
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 comdumpexe que eacute facilmente encontrado pelas ferramentas
de pesquisa da web e tambeacutem existem vario outros programas como este e o comdump eacute
utilizado para debug da porta serial do pc conectado diretamente na placa controladora do touch-
screen e foi a peccedila chave para o entendimento do pacote enviado pela placa controladora
Figura 20 - Cumdumpexe programa de debug da porta serial
A explicaccedilatildeo de cada byte do pacote esta explicado no item 423
Apos o entendimento completo da transmissatildeo 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 natildeo 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 ateacute o momento em que
foi testado os meacutetodos proprietaacuterios da Altera para fazer a VGA funcionar os meacutetodos esses
implementados em C
A figura 21 onde contem o teste baacutesico feito que foi a chave principal para o sucesso deste
projeto
42
Como dito no item 332 do projeto foram utilizados as funccedilotildees da controladora VGA esses
meacutetodos 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 eacute utilizado o meacutetodo alt_up_vga_draw_pixel( color int
x int y) onde color eacute a cor do bloco de pixels e x e y satildeo as coordenadas da tela onde o bloco
que seraacute pintado
Para escrever um caractere sobre um bloco de pixels pintado eacute utilizado a funccedilatildeo
alt_up_vga_draw_char_1b( char int x int y) onde char eacute o caractere a ser impresso e x e y satildeo
as coordenadas da tela onde os o caractere eacute impresso
Figura 21 - Teste baisco do funcionamento do componente VGA do kit DE2
43
CAPIacuteTULO 5 ndash VALIDACcedilAtildeO E RESULTADOS
Os resultados foram os melhores possiacuteveis pois com a utilizaccedilatildeo dos IP CORE
ldquocontroladorasrdquo dos componentes externos como VGA e SERIAL e seus meacutetodos de para
controle eacute possiacutevel controlar facilmente esses moacutedulos atraveacutes do firmware desenvolvido para o
processador NIOS que consegue realizar operaccedilotildees transparentes acessando dos meacutetodos de
controle dos moacutedulos
Apos os testes baacutesicos 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 baacutesico de editor de texto
A figura 22 mostra um teste utilizando os meacutetodos de controle disponiacuteveis para o IP CORE
da VGA para primeiramente fazer o menu da aplicaccedilatildeo desenvolvido em na linguagem C
Figura 22 ndash Menu baacutesico do editor de texto
Para desenhar o menu da figura acima foi utilizado os meacutetodos proprietaacuterios de controle da
VGA citados no capitulo 4 e tambeacutem estruturas de repeticcedilatildeo para que a tela fosse varrida e os
pixels desenhados nos respectivos lugares da tela bem como os caracteres
Na figura 23 eacute definida a seguinte estrutura em C para representar de um botatildeo
Figura 23 - Estrutura em C para representar um botatildeo
44
A figura 24 eacute a declaraccedilatildeo dos bototildees que seratildeo utilizados pelo aplicativo editor de texto
para comprovar o funcionamento do controle da interface touch-screen
Apenas o que esta dentro da marcaccedilatildeo quadrada representa os bototildees do menu da figura 23
e o restante satildeo os bototildees do teclado do editor de texto
Figura 24 - Declaraccedilatildeo dos bototildees do menu
45
A figura 25 representa o meacutetodo drawnButtonUp responsaacutevel por desenhar os bototildees na tela
de acordo com as posiccedilotildees em que foram declarados os bototildees deste meacutetodo satildeo desenhados
para parecerem que estatildeo ldquolevantadosrdquo e natildeo pressionados
Note que foram utilizados os meacutetodos proprietaacuterios de controle da VGA
alt_up_vga_draw_pixel pra pitar os pixels e alt_up_vga_draw_char_b1 para desenhar caracteres
como jaacute foi especificado no item 44 do projeto
Figura 25 ndash Meacutetodo drawButtonUp
46
O meacutetodo que desenha o caption do botatildeo se chama drawButtonText desenha os caracteres
em cima dos bototildees natildeo importa se o botatildeo esta pressionado ou natildeo
A figura 26 mostra como este meacutetodo foi implementado e ele eacute chamado no final de cada
meacutetodo onde algum tipo de botatildeo eacute desenhado quando o meacutetodo que desenha o botatildeo normal
quanto o pressionado e ateacute mesmo o do teclado
Figura 26 ndash Meacutetodo que escreve o caption de cada botatildeo
47
A figura 27 mostra o meacutetodo drawButtonDown que desenha o botatildeo pressionado ou seja
quando o usuaacuterio pressiona a regiatildeo correspondente a um botatildeo do menu no touch-screen o
mesmo redesenharaacute o botatildeo parecendo um efeito de botatildeo afundado note que no final do
meacutetodo novamente eacute chamado o meacutetodo drawButtonText que reescreveraacute o caption do botatildeo
como mostra o meacutetodo da figura 26 e esta ilustrado na figura 28
Figura 27 ndash Meacutetodo que desenha o botatildeo pressionado
48
Dependendo da aacuterea do menu que o usuaacuterio pressionar no touch-screen causar o efeito de
pressionado como mostra a figura 28
Figura 28 ndash Efeito do botatildeo de menu apertado
Na figura 29 eacute a representaccedilatildeo de quando a aacuterea correspondente ao botatildeo ldquoamarelordquo eacute
pressionada
Apos estes testes baacutesicos comprovando o funcionamento da interface graacutefica para o usuaacuterio
foi definido o restante dos componentes da tela que eacute constituiacutedo de um prompt e um teclado
qwerty que foi essencial para comprovar o perfeito funcionamento do controle da interface
touch-screen
49
51 Interface Grafica Final
A figura 29 mostra a interface final que o usuaacuterio teraacute para poder verificar o funcionamento
do controle da interface touch-screen
Figura 29 ndash Interface final touch-screen do usuaacuterio
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
511 Descriccedilatildeo do editor de texto
O menu possui 4 botoes cada um com sua respectiva funcionalidade quando o usuario
pressiona a area do botatildeo ldquoapagarrdquo uma vez entatildeo um carectere do prompt eacute apagado Quando eacute
precionado a area correspondente ao botatildeo ldquoResetrdquo todo o conteudo do prompt seraacute apagado e o
plano de fundo retornaraacute a cor branca Quando o botatildeo ldquoamarelordquo eacute pressionado o fundo da tela
passa a ser amarelo e o mesmo acontece se o usuario precionar o botatildeo verde tornando o cor de
fundo verde
50
O teclado possui 29 teclas sendo duas delas que equivalem ao ENTRA ldquoENTrdquo e ao
SPACE ldquoSPCrdquo Quando o usuario pressiona a area correspondente a algum botatildeo do teclado o
mesmo muda sua cor para azul e o seu caractere eacute disponibilizado no prompt
Essas funcionalidades nada mais satildeo do que um bom exemplo de como funciona
corretamente o controle da interface touch-screen
52 Prompt e o Teclado
A estrutura feita na linguagem C que define o prompt da figura 28 esta representado na
figura 30
Figura 30 ndash Estrutura em C para representar o prompt
A figura 31 mostra o metodo drawPrompt utilizado para desenhar na tela o prompt
Figura 31 ndash Meacutetodo que desenha o prompt
51
A estrutura do teclado eacute a mesma utilizada pela figura 23 e tambem eacute criado satildeo
inicializados na figura 24
O restante as implementaccedilotildees estatildeo disponiveis no cd deste documento
Quando algum botatildeo do teclado eacute pressionado sua cor muda para azul e sua letra
correspondente eacute escrita o prompt
A figura 32 ilustra quando o usuaacuterio aperta a letra lsquotrsquo na peliacutecula touch-screen
Figura 32 - Teste do prompt e o teclado
52
53 Controle da Interface Touch-Screen
Depois do todos os testes com o processador NIOS e a integraccedilatildeo do mesmo com os
moacutedulos externos como a porta SERIAL e a saiacuteda VGA eacute possiacutevel utilizando o touch-screen
criar uma interface amigaacutevel e faacutecil de usar para o usuaacuterio utilizando um firmware capaz de
interpretar os sinais via serial vindo da controladora do touch ao detectar que um toque foi dado
pelo usuaacuterio e realizar algumas accedilotildees que neste caso se comportam como um editor de texto
baacutesico
A figura 33 mostra como foi validado este projeto e seus moacutedulos controlando uma
interface touch-screen para chegar no resultado abaixo digitado pelo usuaacuterio comprovando o
funcionamento e viabilidade deste projeto
Figura 33 ndash 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 mudanccedilas podendo ser alterado rapidamente o tipo de
aplicaccedilatildeo ou integrado rapidamente com outro projeto
53
CAPIacuteTULO 6 - CONCLUSAtildeO
Uma das principais dificuldades no desenvolvimento deste projeto foi fazer o levantamento
da documentaccedilatildeo sobre o processador NIOS e os moacutedulos externos a FPGA do Kit DE2 Como
natildeo foi feito algum projeto antes que utilizasse a interface VGA e a SERIAL do Kit DE2 levou-
se muito tempo ateacute conseguir adquirir e ordenar o conhecimento que foi sendo adquirido ateacute
conseguir dar os primeiros passos e realizar os primeiros testes com a VGA e a SERIAL Outro
grande obstaacuteculo foi ter de descobrir que para que o NIOS controlasse os moacutedulos externos a
FGPA fosse necessaacuterio copiar os arquivos c e h dos respectivos componente para dentro do
projeto
Mas depois de todos os problemas com os moacutedulos externos solucionados cada modulo do
projeto foi sendo desenvolvido separadamente ateacute seu total funcionamento Natildeo tive dificuldades
com a linguagem da programaccedilatildeo pois o Firmware do processador NIOS eacute o C a qual mais tive
contato na faculdade
Outro desafio foi fazer a peliacutecula 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
peliacutecula natildeo 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 possiacutevel
comeccedilar a fazer os testes necessaacuterios para prosseguir com o projeto aprender como o a peliacutecula
identifica um toque e manda este sinal para a controladora e a controladora transforma este sinal
em um sinal serial que eacute 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 accedilotildees
que as coordenadas jaacute estatildeo previamente calibradas no firmware para fazer bem como mudar de
cor a tela fazer o efeito de um botatildeo subindo e descendo etc
Varias vezes o projeto parou de funcionar entatildeo 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 memoacuteria abundante etc uma das
facilidades eacute a faacutecil alteraccedilatildeo do projeto podendo ser integrado a outro ou ateacute mesmo alterado
para realizar outros tipos de accedilotildees com o touch-screen
Existem vaacuterios melhoramentos que podem ser executados no projeto um deles eacute tentar
interpretar de uma maneira diferente os valores do eixo y pois do jeito que esta a resoluccedilatildeo do
eixo y esta muito baixa dificultando o reconhecimento de toques em aacutereas pequenas Talvez a
inclusatildeo de mais alguns bytes no pacote de leitura da serial resolva o problema
54
Uma ideacuteia para um proacuteximo projeto que use a interface touch-screen poderia ser a
integraccedilatildeo com o projeto do nosso colega Roberto Junqueira ou a desenvolvimento de uma
placa controladora para o touch-screen
Este trabalho eacute uma modesta contribuiccedilatildeo para o uso de FPGAs e do processador embarcado
NIOS implementado em VHDL pela Altera que acredito que vai abrir vaacuterios caminhos pois
com este projeto alguns caminhos ficaram mais faacuteceis de percorrer daqui para a frente
55
CAPIacuteTULO 7 - REFEREcircNCIAS BIBLIOGRAacuteFICAS
AMORE Roberto drsquo VHDL Descriccedilatildeo e Sintese de Circuitos Rio de Janeiro ed LTC
2005
Elotouch Touch-Screen e Controladora Descriccedilatildeo do funcionamento e descriccedilatildeo
tecnologia Touch-Screen lthttpwwwelotouchcombrgt Acesso em fevereiro de 2007
ALTERA University Program IP Cores Instalaccedilatildeo de IP Cores e referencias sobre os
componentes dos kits DE1 e DE2 Disponivel em lthttpwwwalteracomeducationunivip-
coresunv-ip-coreshtmlgt Acesso em abril de 2007
ALTERA NIOS II Documentaccedilatildeo sobre o pprocessador embracado NIO II Disponivel
em lthttpwwwalteracomproductsipprocessorsipm-indexjspgt Acesso em Abril de 2007
ALTERA Development amp Education Board 2 (DE2) Manual do usuario Disponivel no
de que acompanha o Kit DE2 ltDE2_user_manualDE2_UserManualpdfgt Acesso em
fevereiro de 2007
19
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
20
23-Kit Altera Development amp Education Board 1 (Kit DE2)
231-Layout e Componentes
Uma fotografia do Kit DE2 eacute mostrado na Figura 9 onde se ve a aparencia do kit e as
indicaccedilotildees das localizaccedilatildeo dos componentes e conectores
Figura 9 ndash O kit DE2 (DE2_UserManualpdf 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 eacute listado os componentes fornecidos na placa do Kit DE2
Tabela 4 ndash Lista dos componentes do Kit DE2 (DE2_UserManualpdf contrado no cd do kit)
1 Altera Serial Configuration device ndash EPCS4
2 USB Blaster (on board) for programming and user API control both JTAG and Active 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
21
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
PS2 mousekeyboard connector
17
Two 40-pin Expansion Headers with diode protection
18
Powered by either a 75V DC adapter or a USB cable
232 Diagrama de Blocos do Kit DE2
Figura 10 ndash Diagrama de Blocos do KIT DE2 (DE2_UserManualpdf contrado no cd do kit)
22
A Tabela 5 mostra a informaccedilatildeo detalhada do Bloco Cyclone II FPGA 2C20 mostrado na
Figura 10
Tabela 5 ndash Detalhes do FPGA Cyclone II
FPGA Cyclone II 2C35
18752 LErsquos
52 M4K RAM blocks 240K total RAM bits 26 embedded multipliers 4 PLLrsquos 315 user IO pinrsquos FineLine BGA 484-pin package
A Tabela 6 mostra a informaccedilatildeo detalhada do Bloco do dispositivo de configuraccedilatildeo Serial e
circuito Usb-Blaster
Tabela 6 - Descriccedilatildeo das configuraccedilotildees que satildeo feitas atraveacutes da Serial e Usb-Blaster
Configuraccedilatildeo do dispositivo Serial e do Circuito Usb-Blaster Configuraccedilatildeo do dispositivo serial Altera EPCS4 On-Board Usb-Blaster
para Controle de API de usuaacuterio e programaccedilatildeo
JTAG e AS satildeo os modos do programaccedilatildeo suportados
A Tabela 7 mostra a descriccedilatildeo do Bloco da SRAM
Tabela 7 ndash Descriccedilatildeo do Bloco da SRAM
SRAM 512-Kbyte Static RAM memory chip Organizado em 256K x 16 bits Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 8 mostra a descriccedilatildeo do Bloco da SDRAM
Tabela 8 - Descriccedilatildeo do Bloco da SDRAM
SDRAM 8-Mbyte Single Data Rate Synchronous Dynamic RAM memory chip Organizado em 1M x 16 bits x 4 Banks Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
23
A Tabela 9 mostra a descriccedilatildeo do Bloco Memory Flash
Tabela 9 ndash Descriccedilatildeo da Memoria Flash
Memory Flash
4-Mbyte NAND Flash memory 8-bit data bus Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 10 mostra a descriccedilatildeo do Bloco SD card socket
Tabela 10 - Descriccedilatildeo do SD card socket
SD card socket Fornece o modo SPI para o acesso ao cartatildeo SD Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 11 mostra a descriccedilatildeo 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) Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 12 mostra a descriccedilatildeo dos Clock inputs
Tabela 12 - Descriccedilatildeo das entradas de Clocks
Clock inputs Oscilador de 50 Mhz Oscilador 27 Mhz Entrada para clock
externo
A Tabela 13 mostra a descriccedilatildeo do Aacuteudio CODEC
Tabela 13 - Descriccedilatildeo do Aacuteudio CODEC
Aacuteudio CODEC 4-Mbyte NAND Flash memory 8-bit data bus Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
24
A Tabela 14 mostra a descriccedilatildeo do Bloco VGA DAC
Tabela 14 ndash Descriccedilatildeo da saiacuteda VGA DAC
VGA
DAC
Usa 4 bits DAC para cada cor (RGB) Com 15 pinos no conector VGA convencional (fecircmea) Suporta uma resoluccedilatildeo de 640 x 480 com um refresh de ateacute 100Hz Pode ser usando com o FPGA Cyclone II para implementar um Encoder para TV
A Tabela 15 mostra a descriccedilatildeo do Bloco Serial Ports amp PS2
Tabela 15 ndash Descriccedilatildeo da Serial Port e PS2
Serial Ports amp PS2 Uma porta RS-232
Uma posta PS2 Um conector Serial para a porta do RS-232 Conector PS2 para conectar um mouse ou teclado ao DE2
A Tabela 16 mostra a descriccedilatildeo do Bloco dos Two 40 - pin expansion headers
Tabela 16 ndash Descriccedilatildeo dos conectores de expansatildeo de 40 pinos
Two 40 - pin expansion headers 72 pinos de IO do Clyclone II bem como 8 power e groundrsquos satildeo trazidos aos 2 conectores de expansatildeo de 40 pinos cada Os conectores de 40 pinos tambeacutem aceitam os cabos IDE de 40 pinos Proteccedilatildeo resistiva eacute fornecida
233 Endereccedilo das Pinagens dos Componentes usados no Projeto
2331 PushButtons
A Figura 11 mostra uma foto dos PushButtons do kit Key[30] a ordem eacute o button da
esquerda eacute o mais significativo e o mais de direita o menos signigicativo
Figura 11 ndash Os 4 PushButtons do DE2Key[30] (DE2_UserManualpdf contrado no cd do kit)
25
A Tabela 17 mostra os pinos da FPGA aos PushButtons
Tabela 17 ndash Pinos da FPGA referentes a cada PushButton (DE2_UserManualpdf contrado no cd do kit)
2332 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 ndash Modulo de displays de 7 segmentos (DE2_UserManualpdf encontrado no cd do kit)
Figura 13 ndash Index de um display (DE2_UserManualpdf encontrado no cd do
kit)
26
A Tabela 18 mostra os pinos da FPGA referente a cada segmento dos displays de 7
segmentos do modulo
Tabela 18 ndash Pinos da FPGA referentes a cada segmento dos Displays do modulo
27
2333 VGA
A Figura 14 esta em forma de onda da temporizaccedilatildeo horizontal e vertical da VGA do Kit
DE2
Figura 14 ndash Temporizaccedilatildeo horizontal da VGA
A Tabela 19 mostra a especificaccedilatildeo da temporizaccedilatildeo horizontal da VGA
Tabela 19 ndash Especificaccedilatildeo da temporizaccedilatildeo horizontal da VGA
A Tabela 20 mostra a especificaccedilatildeo da temporizaccedilatildeo vertical da VGA
Tabela 20 ndash Especificaccedilatildeo da temporizaccedilatildeo vertical da VGA
28
A Tabela 21 mostra os pinos da FPGA referente a cada pino de saida do conector VGA do
Kit DE2
Tabela 21 ndash Pinos da FPGA referentes a saiacuteda do Conector VGA do Kit
29
CAPIacuteTULO 3 ndash ESPECIFICACcedilAtildeO TECNICA
Nesse capiacutetulo tem-se uma descriccedilatildeo dos principais moacutedulos do projeto Satildeo eles Software
Firmware e Hardware
Inicialmente eacute apresentada a visatildeo geral do sistema e a descriccedilatildeo funcional de cada moacutedulo
A Figura 15 apresenta o diagrama em blocos do sistema
Figura 15 - Moacutedulos do projeto
31 Descriccedilatildeo de Software
O Software eacute uma das interfaces com o usuaacuterio
312 Diagrama de Blocos do Software
30
312 Modulo do PC
Neste modulo eacute 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
32 Descriccedilatildeo de Hardware
321 Modulo Touch-Screen
O usuaacuterio ao tocar o Touch-Screen (AT4 touch-screen resistivo de 4 fios) ocorre uma
mudanccedila nas tensotildees do eixo X e do eixo Y devido a resistecircncia gerada pelo ao toque do usuaacuterio
em uma determinada regiatildeo da tela essa mudanccedila de tensatildeo eacute interpretada pela placa
controladora COACh IIs do Touch-Screen e enviada via serial para o Kit DE2 que interpretaraacute
os dados e faraacute o devido processamento
322 Modulo FPGA
O Hardware corresponde tanto aos componentes fiacutesicos presentes no kit de desenvolvimento
quanto aos componentes que seratildeo configurados na FPGA Satildeo diversos componentes escritos
em linguagem de descriccedilatildeo de hardware
No um dos principais componentes de hardware utilizado modulo eacute o processador NIOS II
para se ter uma ideacuteia o processador NIOS II eacute capaz gerenciar os dispositivos externos a FPGA
utilizando controladores de memoacuterias controladores de VGA entre outros E tambeacutem eacute possiacutevel
o proacuteprio usuaacuterio criar seu componente para ser controlado atraveacutes do processador NIOS
II(Altera 2007)
31
3221 O Processador NIOS II
Atraveacutes do software SOPC da ALTERA foi possiacutevel montar a arquitetura de hardware do
processador NIOS II bem como especificar as interfaces que ele iraacute controlar atraveacutes do firmwar
feito no NIOS II IDE
Na Tabela 22 eacute no campo Module Name onde estatildeo os moacutedulos que foram usados para
definir o processador NIOS II e os componentes externos que ele iraacute controlar e no campo
Description esta a descriccedilatildeo do nome de cada modulo
Tabela 22 ndash Moacutedulos dos componentes e suas descriccedilotildees
3222 Firmware para o NIOS II
O Firmware foi feito utilizando a linguagem C utilizando a ferramenta NIOS II IDE Atraveacutes
do firmware eacute possiacutevel 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 graacuteficas para controlar a vga e serial e
USB-BLASTER eacute encarregado em enviar todo o desenvolvimento do projeto para o Kit DE2
323 Configuraccedilatildeo da FPGA via JTAG
Depois de configurado o hardware do processador NIOS II eacute preciso fazer o load do NIOS
para a FPGA e para que isso aconteccedila eacute necessaacuterio que atraveacutes do software Quartus II da
ALTERA utilizando a interface JTAG utilizando o cabo USB-BLASTER
32
324 Comunicaccedilatildeo entre FPGA e o Touch-Screen
Para comunicaccedilatildeo entre dos dois hardwares Touch-Screen e o FPGA eacute utilizando uma
interface serial RS-232
A configuraccedilatildeo da interface eacute a seguinte
Bits de dados 8
Taxa de dados 5600(bps)
A Tabela 23 mostra a relaccedilatildeo dos pinos da porta serial com os pinos da FPGA
Tabela 23 ndash Pinos da FPGA referente agrave pinagem da interface Serial
E a Figura 16 mostra o desenho correspondente da interface serial
Figura 16 ndash Conector da interface serial do kit DE2
33 Especificaccedilatildeo de Validaccedilatildeo
331 Validaccedilatildeo de Hardware
A validade do hardware se faz com a anaacutelise de todos os moacutedulos envolvidos
As necessidades satildeo estudadas os componentes externos ao FPGA satildeo selecionados de
acordo o processador nios e os controladores dos moacutedulos externos como VGA e SERIAL satildeo
enviados ao modulo FPGA
Os resultados obtidos na tela do monitor e a recepccedilatildeo dos dados pela serial comprovam o
funcionamento do modulo de comunicaccedilatildeo da serial e vga
33
332 Validaccedilatildeo de Software
A validaccedilatildeo do controle da interface touch-screen faz-se a partir dos resultados obtidos das
funccedilotildees escritas na linguagem C especificas para cada componente externos ao FPGA essas
funccedilotildees tornam possiacuteveis que o processador NIOS na FPGA tenha total controle sobre os
moacutedulos externos como a VGA e a SERIAL
As funccedilotildees que satildeo utilizadas para validar o funcionamento do software satildeo para a VGA os
meacutetodos de controle (alt_up_vga_draw_char_1b( char int x int y)) e (alt_up_vga_draw_pixel(
color x y))
O meacutetodo (alt_up_vga_draw_char_1b( char int x int y)) tem a funcionalidade de escrever
caracteres na tela do monitor e a descriccedilatildeo da sua assinatura ldquoparacircmetrosrdquo eacute a seguinte char eacute o
caractere que eacute escrito em alguma posiccedilatildeo na tela int x eacute a posiccedilatildeo x da tela do monitor e int y eacute
a posiccedilatildeo y da tela do monitor sendo que a resoluccedilatildeo utilizada eacute de 80x60 ou seja x natildeo pode
passar de 80 e y natildeo pode passar de 60
O meacutetodo (alt_up_vga_draw_pixel( color int x int y)) tem a funcionalidade de ldquopintarrdquo o
fundo da tela do monitor o meacutetodo de imprimir caracteres tem preferecircncia sobre este meacutetodo ou
seja os caracteres sempre ficam sob a aacuterea pintada ou seja o caractere sempre ficara em cima da
aacuterea pintada a descriccedilatildeo da assinatura deste meacutetodo eacute a seguinte color eacute a valor da cor que pode
ser um valor inteiro ou em hexadecimal para definir uma cor de alguma posiccedilatildeo da tela definidos
pelos paracircmetros x e y
As funccedilotildees que satildeo utilizadas para validar o funcionamento do software satildeo para a Serial os
meacutetodos de controle de transmissatildeo (fread( packet sizeof(packet) 1 serial_fp )) a funccedilatildeo
fread eacute utilizada para a leitura via interrupccedilatildeo dos pacotes que a controladora envia para o kit
DE2 as assinaturas do meacutetodo fread tem a seguinte composiccedilatildeo packet eacute a estrutura do pacote
que seraacute recebido o sizeof(packet) eacute o diz qual eacute o tamanho exato da estrutura criada e o
serial_fp eacute o handle da porta serial
Uma observaccedilatildeo muito importante eacute que para o total funcionamento eacute necessaacuterio 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 rs232h e rs232c onde estatildeo os meacutetodos de
controle da SERIAL e alt_up_vgah alt_up_vgac onde estatildeo os meacutetodos de controle para a
VGA Para tornar estes meacutetodos acessiacuteveis eacute preciso fazer os includes dos arquivos h no
projeto da NIOS IDE
A figura 17 mostra a utilizaccedilatildeo dos meacutetodos (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
34
int y)) utlizado para escrever os caracteres lsquoarsquo e lsquobrsquo dentro de um grupo de pixel previamente
pintado a (alt_up_vga_draw_pixel( color int x int y)) natildeo pinta um pixel de cada vez e sim
um bloco de 8x8 pixels
Figura 17 - Tela para a validaccedilatildeo dos testes com as bibliotecas graacuteficas do componente VGA
34 Recursos Necessaacuterios
A Tabela 24 apresenta os ambientes de desenvolvimento e ferramentas de software utilizadas
e na Tabela 25 as linguagens necessaacuterias Estas ferramentas foram utilizadas em ambiente
Windows Xp
Tabela 24 - Ferramentas de Desenvolvimentos e Ambientes
Software Para que foi Utilizado
Quartus II Para a definiccedilatildeo de qual o modelo de FPGA utilizado compilaccedilatildeo e simulaccedilatildeo e envio Load do NIOS para FPGA
SOPC Para definiccedilatildeo da do processador NIOS II e com quais componentes externos ele ira interagir atraveacutes dos controladores dos respectivos componentes
NIOS II IDE Para implementaccedilatildeo do firmware do processador NIOS II utilizando a linguagem em C
35
Borland C++ Builder Para desenvolvimento de ima interface de comunicaccedilatildeo via caboUSB-
BLASTER para o envio de imagem para o kit
Tabela 25 ndash Linguagens de programaccedilatildeo utilizadas
Linguagem Ferramenta C++ Borland C++ Builder VerilogVHDL Quartus II C NIOS II IDE
35 Viabilidade Teacutecnico-Econocircmica
O valor do projeto esta descrito na Tabela 26
Tabela 26 ndash Relaccedilatildeo dos Custos
DESCRICcedilAtildeO CUSTO APROXIMADO (R$) COMPONENTES ELETROcircNICOS 50000 1 Kit DE2 Cyclone II 35000 1 Monitor de Computador 35000 HORAS TRABALHADAS (400 horas) 750000 CUSTO TOTAL APROXIMADO (R$) 870000
36 Cronograma do Projeto
A tabela 27 contem as informaccedilotildees do cronograma do projeto
Tabela 27 ndash Cronograma de datas e entregas do projeto
Data Atividade a ser apresentada 050307 Entrega das propostas de projeto para avaliaccedilatildeo do colegiado 020407 Entrega das especificaccedilotildees teacutecnicas do projeto aprovado 110607 Entrega do projeto (monografia) e dos testes preliminares do mesmo 060807 Apresentaccedilatildeo preacutevia da implementaccedilatildeo do projeto especificado 011007 Apresentaccedilatildeo do projeto implementado
Qualificaccedilatildeo para a fase final 291007 Segunda apresentaccedilatildeo do projeto implementado para os que natildeo o fizeram no
dia 011006 com decreacutescimo da nota Qualificaccedilatildeo para a fase final
051107 Entrega da documentaccedilatildeo completa em espiral para a banca examinadora em 3 vias contendo a monografia manual teacutecnico manual do usuaacuterio e artigo cientiacutefico
261107 Defesa formal dos projetos com apresentaccedilatildeo oral para a banca examinadora 101207 Entrega da documentaccedilatildeo completa revisada e corrigida encadernada no
padratildeo da biblioteca (capa dura) em duas vias contendo a monografia manual teacutecnico manual do usuaacuterio e artigo cientiacutefico Entrega do CD contendo no formato WEB todo o conteuacutedo dos manuais
36
CAPIacuteTULO 4 ndash ESPECIFICACcedilAtildeO TECNICA
41 Requisitos Miacutenimos
Os requisitos miacutenimos de Hardware satildeo
Funcionamento das interfaces Serial e USB-Blaster
Funcionamento do Kit DE2
PC
Os requisitos miacutenimos de Software
Windows Xp
Quartus II
SOPC
NIOS II IDE
42 Projeto de Hardware
O hardware utilizado nesse projeto inclui componentes presentes na Placa de
Desenvolvimento Nios II - ediccedilatildeo DE2 Cyclone II EP2C35 e principalmente o hardware que seraacute
configurado na FPGA escrito em linguagem de descriccedilatildeo de hardware (HDL)
O um dos principais blocos de hardware eacute o processador NIOS II o Avalon Bus e os
controladores de componentes externos a FPGA e de comunicaccedilatildeo presentes no Kit
37
O software embarcado (firmware) estaraacute rodando nessa arquitetura Eacute uma arquitetura
completa construiacuteda com a ferramenta SOPC Builder da Altera A Figura 18 representa em
blocos os principais componentes dessa arquitetura
Figura 18 ndash Representaccedilatildeo em blocos do hardware do NIOS II
421 Funcatildeo do Touch-Screen
Outro bloco importante eacute o do Touch-Screen esta tela sensiacutevel ao toque pois como esta tela
trabalha com resistecircncia ao ser tocado em uma determinada regiatildeo uma resistecircncia eacute gerada e a
tensatildeo de saiacuteda eacute modificada a alimentaccedilatildeo desta placa eacute proveniente de sua placa controladora
a mesma placa que recebe a tensatildeo de saiacuteda modificada de acordo com a regiatildeo tocada na tela
Para verificar as caracteriacutesticas detalhadas do Touch-Screen e sua placa controlador favor ver
o Capitulo 2
422 Monitor e VGA
O Monitor inicialmente tem apenas o desenho de um botatildeo que ao ser tocado via touch
mudara a cor de toda a tela A imagem exibida no monitor tem uma resoluccedilatildeo de
38
Protoacutetipo das telas para os testes esta na Figura 19 a tela verde quando a touch natildeo eacute tocando
na regiatildeo do botatildeo de OK quando o botatildeo de OK for tocado a tela do monitor mudara de cor
ficando azul
Figura 19 ndash Tela do monitor
No Capitulo 2 estatildeo todas as caracteriacutesticas da pinagem e do conector VGA
423 Comunicaccedilatildeo serial
Entre a placa controladora do Touch-Screen e o FPGA existe uma comunicaccedilatildeo 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 manipulaccedilatildeo da imagem que eacute
mostrada no monitor
No capitulo 2 estatildeo das descriccedilotildees dos pinos e do conector da comunicaccedilatildeo Serial
O pacote serial que eacute transmitido pela placa controladora do touch-screen possui 10 bytes de
comprimento e segue a seguinte sequumlecircncia de envio
[55] [54] [] [] [] [] [] [] [] []
Sequumlecircncia dos bytes
Os dois primeiros bytes identificam o Header do pacote
O terceiro byte eacute 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 agrave posiccedilatildeo do eixo x onde a tela foi tocada
O sexto e o seacutetimo byte correspondem a posiccedilatildeo do eixo y onde a tele foi tocada
O restante os bytes identificam o tail do pacote recepcionado pelo kit DE2
39
424 Comunicaccedilatildeo USB-Blaster
Essencial para envio do projeto desenvolvido para o kit DE2 tambeacutem muito utilizado para o
debug deste projeto
435 Memoacuteria SDRAM
A memoacuteria utilizada para armazenar grandes quantidades de dados eacute a SDRAM (ver detalhes
no Capitulo 2)
Essa memoacuteria eacute muito raacutepida serviu muito bem para armazenar o firmware deste projeto
pois tem o tempo acesso ideal para ler as instruccedilotildees que utilizaram a VGA e tambeacutem eacute raacutepida o
suficiente para fazer a leitura dos dados e disponibilizar na saiacuteda VGA do kit
426 Memoacuteria FLASH
Eacute onde seraacute armazenado o firmware possui espaccedilo suficiente para isso 4MB e uma memoacuteria
mais lenta e por isso natildeo foi usada para armazenar dados para serem jogados na vga do Kit
43 Software
431 Software (Firmware)
O software tem de funccedilatildeo de utilizar as bibliotecas das controladoras dos componentes
externos a fim de controlar estes componentes de acordo com o necessaacuterio para atender o
objetivo do projeto
Ou seja uma tela inicial eacute apresentada e o usuaacuterio ao tocar na nela o kit recebe um pacote via
serial e interpreta a posiccedilatildeo da tela em que foi tocado e logo em seguida envia o resultado deste
toque para o monitor
432 Objetivos
O usuaacuterio 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 accedilatildeo de acordo com a posiccedilatildeo da tela
tocada alterando assim a imagem anterior com o resultado do toque
Interpretar o toque de usuaacuterio na tela touch-screen recepccedilatildeo do pacote via serial da placa
controladora do touch-screen tratamento do pacote e interpretaccedilatildeo das coordenadas x e y do
40
toque Realizaccedilatildeo de alguma accedilatildeo que resultara na alteraccedilatildeo da imagem da tela atual de acordo
com a funccedilatildeo em que as coordenadas foram previamente definidas para o que deve ser feito
432 Funccedilotildees
A Tabela 28 tem as principais funccedilotildees que foram implementadas para o sistema
Tabela 28 ndash Funccedilotildees do sistema firmware
FUNCcedilOtildeES Tela de um pequeno editor de texto Tratamento do sinal recebido da serial devido a um toque na tela Interpretaccedilatildeo do pacote serial e transfomaccedilatildeo para coordenadas x e y Transformaccedilatildeo das posiccedilotildees do toque na tela em alguma accedilatildeo enviando o resultado para a VGA Imagem final disponibilizada ao usuaacuterio de acordo com o toque que foi dado na tela Controlar dispositivos cada dispositivo pode ser controlado pelo seu respectivo contrador atraveacutes de seu endereccedilo base VGA SERIAL USB-BLASTER IO(Leds Switches etc) do Kit DE2
O Firmware do processador NIOS II eacute que realizaraacute a integraccedilatildeo entre hardware com
hardware Com o firmware controlando o NIOS II eacute possiacutevel interagir com os dispositivos
externos a FPGA Tornando possiacutevel a integraccedilatildeo da FPGA com a peliacutecula touch-screen e um
monitor sem a ajuda de um PC a uacutenica ajuda do pc seria para enviar dados de uma imagem para
o Kit DE2
44 Validaccedilatildeo e Testes
Inicialmente os moacutedulos da VGA e comunicaccedilatildeo SERIAL natildeo estavam funicionando
apenas o devido agrave fraca documentaccedilatildeo sobre o kit DE2 foi possiacutevel apenas fazer testes com o
Processador NIOS II pois sobre este existem bastantes documentos e exemplos que podem ser
utilizados
Nesta primeira parte foi possiacutevel testar o NIOS II para controlar o display bototildees e switchs
do kit DE2
Com o NIOS II funcionando completamente foi necessaacuterio porta-lo para o kit DE2 o que foi
simples pois como sabemos esses kits satildeo portaacuteveis entre si apenas mudando a pinagem e a
capacidade da FPGA
Com o Kit DE2 foi possiacutevel fazer os testes necessaacuterios com a comunicaccedilatildeo serial
inicialmente testada via terminal conversando diretamente com o kit foi possiacutevel fazer o
seguinte teste os caracteres que eram entrados via teclado chegavam ao kit via serial e o o
41
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 comdumpexe que eacute facilmente encontrado pelas ferramentas
de pesquisa da web e tambeacutem existem vario outros programas como este e o comdump eacute
utilizado para debug da porta serial do pc conectado diretamente na placa controladora do touch-
screen e foi a peccedila chave para o entendimento do pacote enviado pela placa controladora
Figura 20 - Cumdumpexe programa de debug da porta serial
A explicaccedilatildeo de cada byte do pacote esta explicado no item 423
Apos o entendimento completo da transmissatildeo 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 natildeo 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 ateacute o momento em que
foi testado os meacutetodos proprietaacuterios da Altera para fazer a VGA funcionar os meacutetodos esses
implementados em C
A figura 21 onde contem o teste baacutesico feito que foi a chave principal para o sucesso deste
projeto
42
Como dito no item 332 do projeto foram utilizados as funccedilotildees da controladora VGA esses
meacutetodos 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 eacute utilizado o meacutetodo alt_up_vga_draw_pixel( color int
x int y) onde color eacute a cor do bloco de pixels e x e y satildeo as coordenadas da tela onde o bloco
que seraacute pintado
Para escrever um caractere sobre um bloco de pixels pintado eacute utilizado a funccedilatildeo
alt_up_vga_draw_char_1b( char int x int y) onde char eacute o caractere a ser impresso e x e y satildeo
as coordenadas da tela onde os o caractere eacute impresso
Figura 21 - Teste baisco do funcionamento do componente VGA do kit DE2
43
CAPIacuteTULO 5 ndash VALIDACcedilAtildeO E RESULTADOS
Os resultados foram os melhores possiacuteveis pois com a utilizaccedilatildeo dos IP CORE
ldquocontroladorasrdquo dos componentes externos como VGA e SERIAL e seus meacutetodos de para
controle eacute possiacutevel controlar facilmente esses moacutedulos atraveacutes do firmware desenvolvido para o
processador NIOS que consegue realizar operaccedilotildees transparentes acessando dos meacutetodos de
controle dos moacutedulos
Apos os testes baacutesicos 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 baacutesico de editor de texto
A figura 22 mostra um teste utilizando os meacutetodos de controle disponiacuteveis para o IP CORE
da VGA para primeiramente fazer o menu da aplicaccedilatildeo desenvolvido em na linguagem C
Figura 22 ndash Menu baacutesico do editor de texto
Para desenhar o menu da figura acima foi utilizado os meacutetodos proprietaacuterios de controle da
VGA citados no capitulo 4 e tambeacutem estruturas de repeticcedilatildeo para que a tela fosse varrida e os
pixels desenhados nos respectivos lugares da tela bem como os caracteres
Na figura 23 eacute definida a seguinte estrutura em C para representar de um botatildeo
Figura 23 - Estrutura em C para representar um botatildeo
44
A figura 24 eacute a declaraccedilatildeo dos bototildees que seratildeo utilizados pelo aplicativo editor de texto
para comprovar o funcionamento do controle da interface touch-screen
Apenas o que esta dentro da marcaccedilatildeo quadrada representa os bototildees do menu da figura 23
e o restante satildeo os bototildees do teclado do editor de texto
Figura 24 - Declaraccedilatildeo dos bototildees do menu
45
A figura 25 representa o meacutetodo drawnButtonUp responsaacutevel por desenhar os bototildees na tela
de acordo com as posiccedilotildees em que foram declarados os bototildees deste meacutetodo satildeo desenhados
para parecerem que estatildeo ldquolevantadosrdquo e natildeo pressionados
Note que foram utilizados os meacutetodos proprietaacuterios de controle da VGA
alt_up_vga_draw_pixel pra pitar os pixels e alt_up_vga_draw_char_b1 para desenhar caracteres
como jaacute foi especificado no item 44 do projeto
Figura 25 ndash Meacutetodo drawButtonUp
46
O meacutetodo que desenha o caption do botatildeo se chama drawButtonText desenha os caracteres
em cima dos bototildees natildeo importa se o botatildeo esta pressionado ou natildeo
A figura 26 mostra como este meacutetodo foi implementado e ele eacute chamado no final de cada
meacutetodo onde algum tipo de botatildeo eacute desenhado quando o meacutetodo que desenha o botatildeo normal
quanto o pressionado e ateacute mesmo o do teclado
Figura 26 ndash Meacutetodo que escreve o caption de cada botatildeo
47
A figura 27 mostra o meacutetodo drawButtonDown que desenha o botatildeo pressionado ou seja
quando o usuaacuterio pressiona a regiatildeo correspondente a um botatildeo do menu no touch-screen o
mesmo redesenharaacute o botatildeo parecendo um efeito de botatildeo afundado note que no final do
meacutetodo novamente eacute chamado o meacutetodo drawButtonText que reescreveraacute o caption do botatildeo
como mostra o meacutetodo da figura 26 e esta ilustrado na figura 28
Figura 27 ndash Meacutetodo que desenha o botatildeo pressionado
48
Dependendo da aacuterea do menu que o usuaacuterio pressionar no touch-screen causar o efeito de
pressionado como mostra a figura 28
Figura 28 ndash Efeito do botatildeo de menu apertado
Na figura 29 eacute a representaccedilatildeo de quando a aacuterea correspondente ao botatildeo ldquoamarelordquo eacute
pressionada
Apos estes testes baacutesicos comprovando o funcionamento da interface graacutefica para o usuaacuterio
foi definido o restante dos componentes da tela que eacute constituiacutedo de um prompt e um teclado
qwerty que foi essencial para comprovar o perfeito funcionamento do controle da interface
touch-screen
49
51 Interface Grafica Final
A figura 29 mostra a interface final que o usuaacuterio teraacute para poder verificar o funcionamento
do controle da interface touch-screen
Figura 29 ndash Interface final touch-screen do usuaacuterio
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
511 Descriccedilatildeo do editor de texto
O menu possui 4 botoes cada um com sua respectiva funcionalidade quando o usuario
pressiona a area do botatildeo ldquoapagarrdquo uma vez entatildeo um carectere do prompt eacute apagado Quando eacute
precionado a area correspondente ao botatildeo ldquoResetrdquo todo o conteudo do prompt seraacute apagado e o
plano de fundo retornaraacute a cor branca Quando o botatildeo ldquoamarelordquo eacute pressionado o fundo da tela
passa a ser amarelo e o mesmo acontece se o usuario precionar o botatildeo verde tornando o cor de
fundo verde
50
O teclado possui 29 teclas sendo duas delas que equivalem ao ENTRA ldquoENTrdquo e ao
SPACE ldquoSPCrdquo Quando o usuario pressiona a area correspondente a algum botatildeo do teclado o
mesmo muda sua cor para azul e o seu caractere eacute disponibilizado no prompt
Essas funcionalidades nada mais satildeo do que um bom exemplo de como funciona
corretamente o controle da interface touch-screen
52 Prompt e o Teclado
A estrutura feita na linguagem C que define o prompt da figura 28 esta representado na
figura 30
Figura 30 ndash Estrutura em C para representar o prompt
A figura 31 mostra o metodo drawPrompt utilizado para desenhar na tela o prompt
Figura 31 ndash Meacutetodo que desenha o prompt
51
A estrutura do teclado eacute a mesma utilizada pela figura 23 e tambem eacute criado satildeo
inicializados na figura 24
O restante as implementaccedilotildees estatildeo disponiveis no cd deste documento
Quando algum botatildeo do teclado eacute pressionado sua cor muda para azul e sua letra
correspondente eacute escrita o prompt
A figura 32 ilustra quando o usuaacuterio aperta a letra lsquotrsquo na peliacutecula touch-screen
Figura 32 - Teste do prompt e o teclado
52
53 Controle da Interface Touch-Screen
Depois do todos os testes com o processador NIOS e a integraccedilatildeo do mesmo com os
moacutedulos externos como a porta SERIAL e a saiacuteda VGA eacute possiacutevel utilizando o touch-screen
criar uma interface amigaacutevel e faacutecil de usar para o usuaacuterio utilizando um firmware capaz de
interpretar os sinais via serial vindo da controladora do touch ao detectar que um toque foi dado
pelo usuaacuterio e realizar algumas accedilotildees que neste caso se comportam como um editor de texto
baacutesico
A figura 33 mostra como foi validado este projeto e seus moacutedulos controlando uma
interface touch-screen para chegar no resultado abaixo digitado pelo usuaacuterio comprovando o
funcionamento e viabilidade deste projeto
Figura 33 ndash 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 mudanccedilas podendo ser alterado rapidamente o tipo de
aplicaccedilatildeo ou integrado rapidamente com outro projeto
53
CAPIacuteTULO 6 - CONCLUSAtildeO
Uma das principais dificuldades no desenvolvimento deste projeto foi fazer o levantamento
da documentaccedilatildeo sobre o processador NIOS e os moacutedulos externos a FPGA do Kit DE2 Como
natildeo foi feito algum projeto antes que utilizasse a interface VGA e a SERIAL do Kit DE2 levou-
se muito tempo ateacute conseguir adquirir e ordenar o conhecimento que foi sendo adquirido ateacute
conseguir dar os primeiros passos e realizar os primeiros testes com a VGA e a SERIAL Outro
grande obstaacuteculo foi ter de descobrir que para que o NIOS controlasse os moacutedulos externos a
FGPA fosse necessaacuterio copiar os arquivos c e h dos respectivos componente para dentro do
projeto
Mas depois de todos os problemas com os moacutedulos externos solucionados cada modulo do
projeto foi sendo desenvolvido separadamente ateacute seu total funcionamento Natildeo tive dificuldades
com a linguagem da programaccedilatildeo pois o Firmware do processador NIOS eacute o C a qual mais tive
contato na faculdade
Outro desafio foi fazer a peliacutecula 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
peliacutecula natildeo 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 possiacutevel
comeccedilar a fazer os testes necessaacuterios para prosseguir com o projeto aprender como o a peliacutecula
identifica um toque e manda este sinal para a controladora e a controladora transforma este sinal
em um sinal serial que eacute 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 accedilotildees
que as coordenadas jaacute estatildeo previamente calibradas no firmware para fazer bem como mudar de
cor a tela fazer o efeito de um botatildeo subindo e descendo etc
Varias vezes o projeto parou de funcionar entatildeo 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 memoacuteria abundante etc uma das
facilidades eacute a faacutecil alteraccedilatildeo do projeto podendo ser integrado a outro ou ateacute mesmo alterado
para realizar outros tipos de accedilotildees com o touch-screen
Existem vaacuterios melhoramentos que podem ser executados no projeto um deles eacute tentar
interpretar de uma maneira diferente os valores do eixo y pois do jeito que esta a resoluccedilatildeo do
eixo y esta muito baixa dificultando o reconhecimento de toques em aacutereas pequenas Talvez a
inclusatildeo de mais alguns bytes no pacote de leitura da serial resolva o problema
54
Uma ideacuteia para um proacuteximo projeto que use a interface touch-screen poderia ser a
integraccedilatildeo com o projeto do nosso colega Roberto Junqueira ou a desenvolvimento de uma
placa controladora para o touch-screen
Este trabalho eacute uma modesta contribuiccedilatildeo para o uso de FPGAs e do processador embarcado
NIOS implementado em VHDL pela Altera que acredito que vai abrir vaacuterios caminhos pois
com este projeto alguns caminhos ficaram mais faacuteceis de percorrer daqui para a frente
55
CAPIacuteTULO 7 - REFEREcircNCIAS BIBLIOGRAacuteFICAS
AMORE Roberto drsquo VHDL Descriccedilatildeo e Sintese de Circuitos Rio de Janeiro ed LTC
2005
Elotouch Touch-Screen e Controladora Descriccedilatildeo do funcionamento e descriccedilatildeo
tecnologia Touch-Screen lthttpwwwelotouchcombrgt Acesso em fevereiro de 2007
ALTERA University Program IP Cores Instalaccedilatildeo de IP Cores e referencias sobre os
componentes dos kits DE1 e DE2 Disponivel em lthttpwwwalteracomeducationunivip-
coresunv-ip-coreshtmlgt Acesso em abril de 2007
ALTERA NIOS II Documentaccedilatildeo sobre o pprocessador embracado NIO II Disponivel
em lthttpwwwalteracomproductsipprocessorsipm-indexjspgt Acesso em Abril de 2007
ALTERA Development amp Education Board 2 (DE2) Manual do usuario Disponivel no
de que acompanha o Kit DE2 ltDE2_user_manualDE2_UserManualpdfgt Acesso em
fevereiro de 2007
20
23-Kit Altera Development amp Education Board 1 (Kit DE2)
231-Layout e Componentes
Uma fotografia do Kit DE2 eacute mostrado na Figura 9 onde se ve a aparencia do kit e as
indicaccedilotildees das localizaccedilatildeo dos componentes e conectores
Figura 9 ndash O kit DE2 (DE2_UserManualpdf 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 eacute listado os componentes fornecidos na placa do Kit DE2
Tabela 4 ndash Lista dos componentes do Kit DE2 (DE2_UserManualpdf contrado no cd do kit)
1 Altera Serial Configuration device ndash EPCS4
2 USB Blaster (on board) for programming and user API control both JTAG and Active 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
21
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
PS2 mousekeyboard connector
17
Two 40-pin Expansion Headers with diode protection
18
Powered by either a 75V DC adapter or a USB cable
232 Diagrama de Blocos do Kit DE2
Figura 10 ndash Diagrama de Blocos do KIT DE2 (DE2_UserManualpdf contrado no cd do kit)
22
A Tabela 5 mostra a informaccedilatildeo detalhada do Bloco Cyclone II FPGA 2C20 mostrado na
Figura 10
Tabela 5 ndash Detalhes do FPGA Cyclone II
FPGA Cyclone II 2C35
18752 LErsquos
52 M4K RAM blocks 240K total RAM bits 26 embedded multipliers 4 PLLrsquos 315 user IO pinrsquos FineLine BGA 484-pin package
A Tabela 6 mostra a informaccedilatildeo detalhada do Bloco do dispositivo de configuraccedilatildeo Serial e
circuito Usb-Blaster
Tabela 6 - Descriccedilatildeo das configuraccedilotildees que satildeo feitas atraveacutes da Serial e Usb-Blaster
Configuraccedilatildeo do dispositivo Serial e do Circuito Usb-Blaster Configuraccedilatildeo do dispositivo serial Altera EPCS4 On-Board Usb-Blaster
para Controle de API de usuaacuterio e programaccedilatildeo
JTAG e AS satildeo os modos do programaccedilatildeo suportados
A Tabela 7 mostra a descriccedilatildeo do Bloco da SRAM
Tabela 7 ndash Descriccedilatildeo do Bloco da SRAM
SRAM 512-Kbyte Static RAM memory chip Organizado em 256K x 16 bits Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 8 mostra a descriccedilatildeo do Bloco da SDRAM
Tabela 8 - Descriccedilatildeo do Bloco da SDRAM
SDRAM 8-Mbyte Single Data Rate Synchronous Dynamic RAM memory chip Organizado em 1M x 16 bits x 4 Banks Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
23
A Tabela 9 mostra a descriccedilatildeo do Bloco Memory Flash
Tabela 9 ndash Descriccedilatildeo da Memoria Flash
Memory Flash
4-Mbyte NAND Flash memory 8-bit data bus Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 10 mostra a descriccedilatildeo do Bloco SD card socket
Tabela 10 - Descriccedilatildeo do SD card socket
SD card socket Fornece o modo SPI para o acesso ao cartatildeo SD Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 11 mostra a descriccedilatildeo 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) Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 12 mostra a descriccedilatildeo dos Clock inputs
Tabela 12 - Descriccedilatildeo das entradas de Clocks
Clock inputs Oscilador de 50 Mhz Oscilador 27 Mhz Entrada para clock
externo
A Tabela 13 mostra a descriccedilatildeo do Aacuteudio CODEC
Tabela 13 - Descriccedilatildeo do Aacuteudio CODEC
Aacuteudio CODEC 4-Mbyte NAND Flash memory 8-bit data bus Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
24
A Tabela 14 mostra a descriccedilatildeo do Bloco VGA DAC
Tabela 14 ndash Descriccedilatildeo da saiacuteda VGA DAC
VGA
DAC
Usa 4 bits DAC para cada cor (RGB) Com 15 pinos no conector VGA convencional (fecircmea) Suporta uma resoluccedilatildeo de 640 x 480 com um refresh de ateacute 100Hz Pode ser usando com o FPGA Cyclone II para implementar um Encoder para TV
A Tabela 15 mostra a descriccedilatildeo do Bloco Serial Ports amp PS2
Tabela 15 ndash Descriccedilatildeo da Serial Port e PS2
Serial Ports amp PS2 Uma porta RS-232
Uma posta PS2 Um conector Serial para a porta do RS-232 Conector PS2 para conectar um mouse ou teclado ao DE2
A Tabela 16 mostra a descriccedilatildeo do Bloco dos Two 40 - pin expansion headers
Tabela 16 ndash Descriccedilatildeo dos conectores de expansatildeo de 40 pinos
Two 40 - pin expansion headers 72 pinos de IO do Clyclone II bem como 8 power e groundrsquos satildeo trazidos aos 2 conectores de expansatildeo de 40 pinos cada Os conectores de 40 pinos tambeacutem aceitam os cabos IDE de 40 pinos Proteccedilatildeo resistiva eacute fornecida
233 Endereccedilo das Pinagens dos Componentes usados no Projeto
2331 PushButtons
A Figura 11 mostra uma foto dos PushButtons do kit Key[30] a ordem eacute o button da
esquerda eacute o mais significativo e o mais de direita o menos signigicativo
Figura 11 ndash Os 4 PushButtons do DE2Key[30] (DE2_UserManualpdf contrado no cd do kit)
25
A Tabela 17 mostra os pinos da FPGA aos PushButtons
Tabela 17 ndash Pinos da FPGA referentes a cada PushButton (DE2_UserManualpdf contrado no cd do kit)
2332 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 ndash Modulo de displays de 7 segmentos (DE2_UserManualpdf encontrado no cd do kit)
Figura 13 ndash Index de um display (DE2_UserManualpdf encontrado no cd do
kit)
26
A Tabela 18 mostra os pinos da FPGA referente a cada segmento dos displays de 7
segmentos do modulo
Tabela 18 ndash Pinos da FPGA referentes a cada segmento dos Displays do modulo
27
2333 VGA
A Figura 14 esta em forma de onda da temporizaccedilatildeo horizontal e vertical da VGA do Kit
DE2
Figura 14 ndash Temporizaccedilatildeo horizontal da VGA
A Tabela 19 mostra a especificaccedilatildeo da temporizaccedilatildeo horizontal da VGA
Tabela 19 ndash Especificaccedilatildeo da temporizaccedilatildeo horizontal da VGA
A Tabela 20 mostra a especificaccedilatildeo da temporizaccedilatildeo vertical da VGA
Tabela 20 ndash Especificaccedilatildeo da temporizaccedilatildeo vertical da VGA
28
A Tabela 21 mostra os pinos da FPGA referente a cada pino de saida do conector VGA do
Kit DE2
Tabela 21 ndash Pinos da FPGA referentes a saiacuteda do Conector VGA do Kit
29
CAPIacuteTULO 3 ndash ESPECIFICACcedilAtildeO TECNICA
Nesse capiacutetulo tem-se uma descriccedilatildeo dos principais moacutedulos do projeto Satildeo eles Software
Firmware e Hardware
Inicialmente eacute apresentada a visatildeo geral do sistema e a descriccedilatildeo funcional de cada moacutedulo
A Figura 15 apresenta o diagrama em blocos do sistema
Figura 15 - Moacutedulos do projeto
31 Descriccedilatildeo de Software
O Software eacute uma das interfaces com o usuaacuterio
312 Diagrama de Blocos do Software
30
312 Modulo do PC
Neste modulo eacute 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
32 Descriccedilatildeo de Hardware
321 Modulo Touch-Screen
O usuaacuterio ao tocar o Touch-Screen (AT4 touch-screen resistivo de 4 fios) ocorre uma
mudanccedila nas tensotildees do eixo X e do eixo Y devido a resistecircncia gerada pelo ao toque do usuaacuterio
em uma determinada regiatildeo da tela essa mudanccedila de tensatildeo eacute interpretada pela placa
controladora COACh IIs do Touch-Screen e enviada via serial para o Kit DE2 que interpretaraacute
os dados e faraacute o devido processamento
322 Modulo FPGA
O Hardware corresponde tanto aos componentes fiacutesicos presentes no kit de desenvolvimento
quanto aos componentes que seratildeo configurados na FPGA Satildeo diversos componentes escritos
em linguagem de descriccedilatildeo de hardware
No um dos principais componentes de hardware utilizado modulo eacute o processador NIOS II
para se ter uma ideacuteia o processador NIOS II eacute capaz gerenciar os dispositivos externos a FPGA
utilizando controladores de memoacuterias controladores de VGA entre outros E tambeacutem eacute possiacutevel
o proacuteprio usuaacuterio criar seu componente para ser controlado atraveacutes do processador NIOS
II(Altera 2007)
31
3221 O Processador NIOS II
Atraveacutes do software SOPC da ALTERA foi possiacutevel montar a arquitetura de hardware do
processador NIOS II bem como especificar as interfaces que ele iraacute controlar atraveacutes do firmwar
feito no NIOS II IDE
Na Tabela 22 eacute no campo Module Name onde estatildeo os moacutedulos que foram usados para
definir o processador NIOS II e os componentes externos que ele iraacute controlar e no campo
Description esta a descriccedilatildeo do nome de cada modulo
Tabela 22 ndash Moacutedulos dos componentes e suas descriccedilotildees
3222 Firmware para o NIOS II
O Firmware foi feito utilizando a linguagem C utilizando a ferramenta NIOS II IDE Atraveacutes
do firmware eacute possiacutevel 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 graacuteficas para controlar a vga e serial e
USB-BLASTER eacute encarregado em enviar todo o desenvolvimento do projeto para o Kit DE2
323 Configuraccedilatildeo da FPGA via JTAG
Depois de configurado o hardware do processador NIOS II eacute preciso fazer o load do NIOS
para a FPGA e para que isso aconteccedila eacute necessaacuterio que atraveacutes do software Quartus II da
ALTERA utilizando a interface JTAG utilizando o cabo USB-BLASTER
32
324 Comunicaccedilatildeo entre FPGA e o Touch-Screen
Para comunicaccedilatildeo entre dos dois hardwares Touch-Screen e o FPGA eacute utilizando uma
interface serial RS-232
A configuraccedilatildeo da interface eacute a seguinte
Bits de dados 8
Taxa de dados 5600(bps)
A Tabela 23 mostra a relaccedilatildeo dos pinos da porta serial com os pinos da FPGA
Tabela 23 ndash Pinos da FPGA referente agrave pinagem da interface Serial
E a Figura 16 mostra o desenho correspondente da interface serial
Figura 16 ndash Conector da interface serial do kit DE2
33 Especificaccedilatildeo de Validaccedilatildeo
331 Validaccedilatildeo de Hardware
A validade do hardware se faz com a anaacutelise de todos os moacutedulos envolvidos
As necessidades satildeo estudadas os componentes externos ao FPGA satildeo selecionados de
acordo o processador nios e os controladores dos moacutedulos externos como VGA e SERIAL satildeo
enviados ao modulo FPGA
Os resultados obtidos na tela do monitor e a recepccedilatildeo dos dados pela serial comprovam o
funcionamento do modulo de comunicaccedilatildeo da serial e vga
33
332 Validaccedilatildeo de Software
A validaccedilatildeo do controle da interface touch-screen faz-se a partir dos resultados obtidos das
funccedilotildees escritas na linguagem C especificas para cada componente externos ao FPGA essas
funccedilotildees tornam possiacuteveis que o processador NIOS na FPGA tenha total controle sobre os
moacutedulos externos como a VGA e a SERIAL
As funccedilotildees que satildeo utilizadas para validar o funcionamento do software satildeo para a VGA os
meacutetodos de controle (alt_up_vga_draw_char_1b( char int x int y)) e (alt_up_vga_draw_pixel(
color x y))
O meacutetodo (alt_up_vga_draw_char_1b( char int x int y)) tem a funcionalidade de escrever
caracteres na tela do monitor e a descriccedilatildeo da sua assinatura ldquoparacircmetrosrdquo eacute a seguinte char eacute o
caractere que eacute escrito em alguma posiccedilatildeo na tela int x eacute a posiccedilatildeo x da tela do monitor e int y eacute
a posiccedilatildeo y da tela do monitor sendo que a resoluccedilatildeo utilizada eacute de 80x60 ou seja x natildeo pode
passar de 80 e y natildeo pode passar de 60
O meacutetodo (alt_up_vga_draw_pixel( color int x int y)) tem a funcionalidade de ldquopintarrdquo o
fundo da tela do monitor o meacutetodo de imprimir caracteres tem preferecircncia sobre este meacutetodo ou
seja os caracteres sempre ficam sob a aacuterea pintada ou seja o caractere sempre ficara em cima da
aacuterea pintada a descriccedilatildeo da assinatura deste meacutetodo eacute a seguinte color eacute a valor da cor que pode
ser um valor inteiro ou em hexadecimal para definir uma cor de alguma posiccedilatildeo da tela definidos
pelos paracircmetros x e y
As funccedilotildees que satildeo utilizadas para validar o funcionamento do software satildeo para a Serial os
meacutetodos de controle de transmissatildeo (fread( packet sizeof(packet) 1 serial_fp )) a funccedilatildeo
fread eacute utilizada para a leitura via interrupccedilatildeo dos pacotes que a controladora envia para o kit
DE2 as assinaturas do meacutetodo fread tem a seguinte composiccedilatildeo packet eacute a estrutura do pacote
que seraacute recebido o sizeof(packet) eacute o diz qual eacute o tamanho exato da estrutura criada e o
serial_fp eacute o handle da porta serial
Uma observaccedilatildeo muito importante eacute que para o total funcionamento eacute necessaacuterio 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 rs232h e rs232c onde estatildeo os meacutetodos de
controle da SERIAL e alt_up_vgah alt_up_vgac onde estatildeo os meacutetodos de controle para a
VGA Para tornar estes meacutetodos acessiacuteveis eacute preciso fazer os includes dos arquivos h no
projeto da NIOS IDE
A figura 17 mostra a utilizaccedilatildeo dos meacutetodos (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
34
int y)) utlizado para escrever os caracteres lsquoarsquo e lsquobrsquo dentro de um grupo de pixel previamente
pintado a (alt_up_vga_draw_pixel( color int x int y)) natildeo pinta um pixel de cada vez e sim
um bloco de 8x8 pixels
Figura 17 - Tela para a validaccedilatildeo dos testes com as bibliotecas graacuteficas do componente VGA
34 Recursos Necessaacuterios
A Tabela 24 apresenta os ambientes de desenvolvimento e ferramentas de software utilizadas
e na Tabela 25 as linguagens necessaacuterias Estas ferramentas foram utilizadas em ambiente
Windows Xp
Tabela 24 - Ferramentas de Desenvolvimentos e Ambientes
Software Para que foi Utilizado
Quartus II Para a definiccedilatildeo de qual o modelo de FPGA utilizado compilaccedilatildeo e simulaccedilatildeo e envio Load do NIOS para FPGA
SOPC Para definiccedilatildeo da do processador NIOS II e com quais componentes externos ele ira interagir atraveacutes dos controladores dos respectivos componentes
NIOS II IDE Para implementaccedilatildeo do firmware do processador NIOS II utilizando a linguagem em C
35
Borland C++ Builder Para desenvolvimento de ima interface de comunicaccedilatildeo via caboUSB-
BLASTER para o envio de imagem para o kit
Tabela 25 ndash Linguagens de programaccedilatildeo utilizadas
Linguagem Ferramenta C++ Borland C++ Builder VerilogVHDL Quartus II C NIOS II IDE
35 Viabilidade Teacutecnico-Econocircmica
O valor do projeto esta descrito na Tabela 26
Tabela 26 ndash Relaccedilatildeo dos Custos
DESCRICcedilAtildeO CUSTO APROXIMADO (R$) COMPONENTES ELETROcircNICOS 50000 1 Kit DE2 Cyclone II 35000 1 Monitor de Computador 35000 HORAS TRABALHADAS (400 horas) 750000 CUSTO TOTAL APROXIMADO (R$) 870000
36 Cronograma do Projeto
A tabela 27 contem as informaccedilotildees do cronograma do projeto
Tabela 27 ndash Cronograma de datas e entregas do projeto
Data Atividade a ser apresentada 050307 Entrega das propostas de projeto para avaliaccedilatildeo do colegiado 020407 Entrega das especificaccedilotildees teacutecnicas do projeto aprovado 110607 Entrega do projeto (monografia) e dos testes preliminares do mesmo 060807 Apresentaccedilatildeo preacutevia da implementaccedilatildeo do projeto especificado 011007 Apresentaccedilatildeo do projeto implementado
Qualificaccedilatildeo para a fase final 291007 Segunda apresentaccedilatildeo do projeto implementado para os que natildeo o fizeram no
dia 011006 com decreacutescimo da nota Qualificaccedilatildeo para a fase final
051107 Entrega da documentaccedilatildeo completa em espiral para a banca examinadora em 3 vias contendo a monografia manual teacutecnico manual do usuaacuterio e artigo cientiacutefico
261107 Defesa formal dos projetos com apresentaccedilatildeo oral para a banca examinadora 101207 Entrega da documentaccedilatildeo completa revisada e corrigida encadernada no
padratildeo da biblioteca (capa dura) em duas vias contendo a monografia manual teacutecnico manual do usuaacuterio e artigo cientiacutefico Entrega do CD contendo no formato WEB todo o conteuacutedo dos manuais
36
CAPIacuteTULO 4 ndash ESPECIFICACcedilAtildeO TECNICA
41 Requisitos Miacutenimos
Os requisitos miacutenimos de Hardware satildeo
Funcionamento das interfaces Serial e USB-Blaster
Funcionamento do Kit DE2
PC
Os requisitos miacutenimos de Software
Windows Xp
Quartus II
SOPC
NIOS II IDE
42 Projeto de Hardware
O hardware utilizado nesse projeto inclui componentes presentes na Placa de
Desenvolvimento Nios II - ediccedilatildeo DE2 Cyclone II EP2C35 e principalmente o hardware que seraacute
configurado na FPGA escrito em linguagem de descriccedilatildeo de hardware (HDL)
O um dos principais blocos de hardware eacute o processador NIOS II o Avalon Bus e os
controladores de componentes externos a FPGA e de comunicaccedilatildeo presentes no Kit
37
O software embarcado (firmware) estaraacute rodando nessa arquitetura Eacute uma arquitetura
completa construiacuteda com a ferramenta SOPC Builder da Altera A Figura 18 representa em
blocos os principais componentes dessa arquitetura
Figura 18 ndash Representaccedilatildeo em blocos do hardware do NIOS II
421 Funcatildeo do Touch-Screen
Outro bloco importante eacute o do Touch-Screen esta tela sensiacutevel ao toque pois como esta tela
trabalha com resistecircncia ao ser tocado em uma determinada regiatildeo uma resistecircncia eacute gerada e a
tensatildeo de saiacuteda eacute modificada a alimentaccedilatildeo desta placa eacute proveniente de sua placa controladora
a mesma placa que recebe a tensatildeo de saiacuteda modificada de acordo com a regiatildeo tocada na tela
Para verificar as caracteriacutesticas detalhadas do Touch-Screen e sua placa controlador favor ver
o Capitulo 2
422 Monitor e VGA
O Monitor inicialmente tem apenas o desenho de um botatildeo que ao ser tocado via touch
mudara a cor de toda a tela A imagem exibida no monitor tem uma resoluccedilatildeo de
38
Protoacutetipo das telas para os testes esta na Figura 19 a tela verde quando a touch natildeo eacute tocando
na regiatildeo do botatildeo de OK quando o botatildeo de OK for tocado a tela do monitor mudara de cor
ficando azul
Figura 19 ndash Tela do monitor
No Capitulo 2 estatildeo todas as caracteriacutesticas da pinagem e do conector VGA
423 Comunicaccedilatildeo serial
Entre a placa controladora do Touch-Screen e o FPGA existe uma comunicaccedilatildeo 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 manipulaccedilatildeo da imagem que eacute
mostrada no monitor
No capitulo 2 estatildeo das descriccedilotildees dos pinos e do conector da comunicaccedilatildeo Serial
O pacote serial que eacute transmitido pela placa controladora do touch-screen possui 10 bytes de
comprimento e segue a seguinte sequumlecircncia de envio
[55] [54] [] [] [] [] [] [] [] []
Sequumlecircncia dos bytes
Os dois primeiros bytes identificam o Header do pacote
O terceiro byte eacute 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 agrave posiccedilatildeo do eixo x onde a tela foi tocada
O sexto e o seacutetimo byte correspondem a posiccedilatildeo do eixo y onde a tele foi tocada
O restante os bytes identificam o tail do pacote recepcionado pelo kit DE2
39
424 Comunicaccedilatildeo USB-Blaster
Essencial para envio do projeto desenvolvido para o kit DE2 tambeacutem muito utilizado para o
debug deste projeto
435 Memoacuteria SDRAM
A memoacuteria utilizada para armazenar grandes quantidades de dados eacute a SDRAM (ver detalhes
no Capitulo 2)
Essa memoacuteria eacute muito raacutepida serviu muito bem para armazenar o firmware deste projeto
pois tem o tempo acesso ideal para ler as instruccedilotildees que utilizaram a VGA e tambeacutem eacute raacutepida o
suficiente para fazer a leitura dos dados e disponibilizar na saiacuteda VGA do kit
426 Memoacuteria FLASH
Eacute onde seraacute armazenado o firmware possui espaccedilo suficiente para isso 4MB e uma memoacuteria
mais lenta e por isso natildeo foi usada para armazenar dados para serem jogados na vga do Kit
43 Software
431 Software (Firmware)
O software tem de funccedilatildeo de utilizar as bibliotecas das controladoras dos componentes
externos a fim de controlar estes componentes de acordo com o necessaacuterio para atender o
objetivo do projeto
Ou seja uma tela inicial eacute apresentada e o usuaacuterio ao tocar na nela o kit recebe um pacote via
serial e interpreta a posiccedilatildeo da tela em que foi tocado e logo em seguida envia o resultado deste
toque para o monitor
432 Objetivos
O usuaacuterio 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 accedilatildeo de acordo com a posiccedilatildeo da tela
tocada alterando assim a imagem anterior com o resultado do toque
Interpretar o toque de usuaacuterio na tela touch-screen recepccedilatildeo do pacote via serial da placa
controladora do touch-screen tratamento do pacote e interpretaccedilatildeo das coordenadas x e y do
40
toque Realizaccedilatildeo de alguma accedilatildeo que resultara na alteraccedilatildeo da imagem da tela atual de acordo
com a funccedilatildeo em que as coordenadas foram previamente definidas para o que deve ser feito
432 Funccedilotildees
A Tabela 28 tem as principais funccedilotildees que foram implementadas para o sistema
Tabela 28 ndash Funccedilotildees do sistema firmware
FUNCcedilOtildeES Tela de um pequeno editor de texto Tratamento do sinal recebido da serial devido a um toque na tela Interpretaccedilatildeo do pacote serial e transfomaccedilatildeo para coordenadas x e y Transformaccedilatildeo das posiccedilotildees do toque na tela em alguma accedilatildeo enviando o resultado para a VGA Imagem final disponibilizada ao usuaacuterio de acordo com o toque que foi dado na tela Controlar dispositivos cada dispositivo pode ser controlado pelo seu respectivo contrador atraveacutes de seu endereccedilo base VGA SERIAL USB-BLASTER IO(Leds Switches etc) do Kit DE2
O Firmware do processador NIOS II eacute que realizaraacute a integraccedilatildeo entre hardware com
hardware Com o firmware controlando o NIOS II eacute possiacutevel interagir com os dispositivos
externos a FPGA Tornando possiacutevel a integraccedilatildeo da FPGA com a peliacutecula touch-screen e um
monitor sem a ajuda de um PC a uacutenica ajuda do pc seria para enviar dados de uma imagem para
o Kit DE2
44 Validaccedilatildeo e Testes
Inicialmente os moacutedulos da VGA e comunicaccedilatildeo SERIAL natildeo estavam funicionando
apenas o devido agrave fraca documentaccedilatildeo sobre o kit DE2 foi possiacutevel apenas fazer testes com o
Processador NIOS II pois sobre este existem bastantes documentos e exemplos que podem ser
utilizados
Nesta primeira parte foi possiacutevel testar o NIOS II para controlar o display bototildees e switchs
do kit DE2
Com o NIOS II funcionando completamente foi necessaacuterio porta-lo para o kit DE2 o que foi
simples pois como sabemos esses kits satildeo portaacuteveis entre si apenas mudando a pinagem e a
capacidade da FPGA
Com o Kit DE2 foi possiacutevel fazer os testes necessaacuterios com a comunicaccedilatildeo serial
inicialmente testada via terminal conversando diretamente com o kit foi possiacutevel fazer o
seguinte teste os caracteres que eram entrados via teclado chegavam ao kit via serial e o o
41
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 comdumpexe que eacute facilmente encontrado pelas ferramentas
de pesquisa da web e tambeacutem existem vario outros programas como este e o comdump eacute
utilizado para debug da porta serial do pc conectado diretamente na placa controladora do touch-
screen e foi a peccedila chave para o entendimento do pacote enviado pela placa controladora
Figura 20 - Cumdumpexe programa de debug da porta serial
A explicaccedilatildeo de cada byte do pacote esta explicado no item 423
Apos o entendimento completo da transmissatildeo 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 natildeo 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 ateacute o momento em que
foi testado os meacutetodos proprietaacuterios da Altera para fazer a VGA funcionar os meacutetodos esses
implementados em C
A figura 21 onde contem o teste baacutesico feito que foi a chave principal para o sucesso deste
projeto
42
Como dito no item 332 do projeto foram utilizados as funccedilotildees da controladora VGA esses
meacutetodos 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 eacute utilizado o meacutetodo alt_up_vga_draw_pixel( color int
x int y) onde color eacute a cor do bloco de pixels e x e y satildeo as coordenadas da tela onde o bloco
que seraacute pintado
Para escrever um caractere sobre um bloco de pixels pintado eacute utilizado a funccedilatildeo
alt_up_vga_draw_char_1b( char int x int y) onde char eacute o caractere a ser impresso e x e y satildeo
as coordenadas da tela onde os o caractere eacute impresso
Figura 21 - Teste baisco do funcionamento do componente VGA do kit DE2
43
CAPIacuteTULO 5 ndash VALIDACcedilAtildeO E RESULTADOS
Os resultados foram os melhores possiacuteveis pois com a utilizaccedilatildeo dos IP CORE
ldquocontroladorasrdquo dos componentes externos como VGA e SERIAL e seus meacutetodos de para
controle eacute possiacutevel controlar facilmente esses moacutedulos atraveacutes do firmware desenvolvido para o
processador NIOS que consegue realizar operaccedilotildees transparentes acessando dos meacutetodos de
controle dos moacutedulos
Apos os testes baacutesicos 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 baacutesico de editor de texto
A figura 22 mostra um teste utilizando os meacutetodos de controle disponiacuteveis para o IP CORE
da VGA para primeiramente fazer o menu da aplicaccedilatildeo desenvolvido em na linguagem C
Figura 22 ndash Menu baacutesico do editor de texto
Para desenhar o menu da figura acima foi utilizado os meacutetodos proprietaacuterios de controle da
VGA citados no capitulo 4 e tambeacutem estruturas de repeticcedilatildeo para que a tela fosse varrida e os
pixels desenhados nos respectivos lugares da tela bem como os caracteres
Na figura 23 eacute definida a seguinte estrutura em C para representar de um botatildeo
Figura 23 - Estrutura em C para representar um botatildeo
44
A figura 24 eacute a declaraccedilatildeo dos bototildees que seratildeo utilizados pelo aplicativo editor de texto
para comprovar o funcionamento do controle da interface touch-screen
Apenas o que esta dentro da marcaccedilatildeo quadrada representa os bototildees do menu da figura 23
e o restante satildeo os bototildees do teclado do editor de texto
Figura 24 - Declaraccedilatildeo dos bototildees do menu
45
A figura 25 representa o meacutetodo drawnButtonUp responsaacutevel por desenhar os bototildees na tela
de acordo com as posiccedilotildees em que foram declarados os bototildees deste meacutetodo satildeo desenhados
para parecerem que estatildeo ldquolevantadosrdquo e natildeo pressionados
Note que foram utilizados os meacutetodos proprietaacuterios de controle da VGA
alt_up_vga_draw_pixel pra pitar os pixels e alt_up_vga_draw_char_b1 para desenhar caracteres
como jaacute foi especificado no item 44 do projeto
Figura 25 ndash Meacutetodo drawButtonUp
46
O meacutetodo que desenha o caption do botatildeo se chama drawButtonText desenha os caracteres
em cima dos bototildees natildeo importa se o botatildeo esta pressionado ou natildeo
A figura 26 mostra como este meacutetodo foi implementado e ele eacute chamado no final de cada
meacutetodo onde algum tipo de botatildeo eacute desenhado quando o meacutetodo que desenha o botatildeo normal
quanto o pressionado e ateacute mesmo o do teclado
Figura 26 ndash Meacutetodo que escreve o caption de cada botatildeo
47
A figura 27 mostra o meacutetodo drawButtonDown que desenha o botatildeo pressionado ou seja
quando o usuaacuterio pressiona a regiatildeo correspondente a um botatildeo do menu no touch-screen o
mesmo redesenharaacute o botatildeo parecendo um efeito de botatildeo afundado note que no final do
meacutetodo novamente eacute chamado o meacutetodo drawButtonText que reescreveraacute o caption do botatildeo
como mostra o meacutetodo da figura 26 e esta ilustrado na figura 28
Figura 27 ndash Meacutetodo que desenha o botatildeo pressionado
48
Dependendo da aacuterea do menu que o usuaacuterio pressionar no touch-screen causar o efeito de
pressionado como mostra a figura 28
Figura 28 ndash Efeito do botatildeo de menu apertado
Na figura 29 eacute a representaccedilatildeo de quando a aacuterea correspondente ao botatildeo ldquoamarelordquo eacute
pressionada
Apos estes testes baacutesicos comprovando o funcionamento da interface graacutefica para o usuaacuterio
foi definido o restante dos componentes da tela que eacute constituiacutedo de um prompt e um teclado
qwerty que foi essencial para comprovar o perfeito funcionamento do controle da interface
touch-screen
49
51 Interface Grafica Final
A figura 29 mostra a interface final que o usuaacuterio teraacute para poder verificar o funcionamento
do controle da interface touch-screen
Figura 29 ndash Interface final touch-screen do usuaacuterio
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
511 Descriccedilatildeo do editor de texto
O menu possui 4 botoes cada um com sua respectiva funcionalidade quando o usuario
pressiona a area do botatildeo ldquoapagarrdquo uma vez entatildeo um carectere do prompt eacute apagado Quando eacute
precionado a area correspondente ao botatildeo ldquoResetrdquo todo o conteudo do prompt seraacute apagado e o
plano de fundo retornaraacute a cor branca Quando o botatildeo ldquoamarelordquo eacute pressionado o fundo da tela
passa a ser amarelo e o mesmo acontece se o usuario precionar o botatildeo verde tornando o cor de
fundo verde
50
O teclado possui 29 teclas sendo duas delas que equivalem ao ENTRA ldquoENTrdquo e ao
SPACE ldquoSPCrdquo Quando o usuario pressiona a area correspondente a algum botatildeo do teclado o
mesmo muda sua cor para azul e o seu caractere eacute disponibilizado no prompt
Essas funcionalidades nada mais satildeo do que um bom exemplo de como funciona
corretamente o controle da interface touch-screen
52 Prompt e o Teclado
A estrutura feita na linguagem C que define o prompt da figura 28 esta representado na
figura 30
Figura 30 ndash Estrutura em C para representar o prompt
A figura 31 mostra o metodo drawPrompt utilizado para desenhar na tela o prompt
Figura 31 ndash Meacutetodo que desenha o prompt
51
A estrutura do teclado eacute a mesma utilizada pela figura 23 e tambem eacute criado satildeo
inicializados na figura 24
O restante as implementaccedilotildees estatildeo disponiveis no cd deste documento
Quando algum botatildeo do teclado eacute pressionado sua cor muda para azul e sua letra
correspondente eacute escrita o prompt
A figura 32 ilustra quando o usuaacuterio aperta a letra lsquotrsquo na peliacutecula touch-screen
Figura 32 - Teste do prompt e o teclado
52
53 Controle da Interface Touch-Screen
Depois do todos os testes com o processador NIOS e a integraccedilatildeo do mesmo com os
moacutedulos externos como a porta SERIAL e a saiacuteda VGA eacute possiacutevel utilizando o touch-screen
criar uma interface amigaacutevel e faacutecil de usar para o usuaacuterio utilizando um firmware capaz de
interpretar os sinais via serial vindo da controladora do touch ao detectar que um toque foi dado
pelo usuaacuterio e realizar algumas accedilotildees que neste caso se comportam como um editor de texto
baacutesico
A figura 33 mostra como foi validado este projeto e seus moacutedulos controlando uma
interface touch-screen para chegar no resultado abaixo digitado pelo usuaacuterio comprovando o
funcionamento e viabilidade deste projeto
Figura 33 ndash 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 mudanccedilas podendo ser alterado rapidamente o tipo de
aplicaccedilatildeo ou integrado rapidamente com outro projeto
53
CAPIacuteTULO 6 - CONCLUSAtildeO
Uma das principais dificuldades no desenvolvimento deste projeto foi fazer o levantamento
da documentaccedilatildeo sobre o processador NIOS e os moacutedulos externos a FPGA do Kit DE2 Como
natildeo foi feito algum projeto antes que utilizasse a interface VGA e a SERIAL do Kit DE2 levou-
se muito tempo ateacute conseguir adquirir e ordenar o conhecimento que foi sendo adquirido ateacute
conseguir dar os primeiros passos e realizar os primeiros testes com a VGA e a SERIAL Outro
grande obstaacuteculo foi ter de descobrir que para que o NIOS controlasse os moacutedulos externos a
FGPA fosse necessaacuterio copiar os arquivos c e h dos respectivos componente para dentro do
projeto
Mas depois de todos os problemas com os moacutedulos externos solucionados cada modulo do
projeto foi sendo desenvolvido separadamente ateacute seu total funcionamento Natildeo tive dificuldades
com a linguagem da programaccedilatildeo pois o Firmware do processador NIOS eacute o C a qual mais tive
contato na faculdade
Outro desafio foi fazer a peliacutecula 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
peliacutecula natildeo 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 possiacutevel
comeccedilar a fazer os testes necessaacuterios para prosseguir com o projeto aprender como o a peliacutecula
identifica um toque e manda este sinal para a controladora e a controladora transforma este sinal
em um sinal serial que eacute 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 accedilotildees
que as coordenadas jaacute estatildeo previamente calibradas no firmware para fazer bem como mudar de
cor a tela fazer o efeito de um botatildeo subindo e descendo etc
Varias vezes o projeto parou de funcionar entatildeo 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 memoacuteria abundante etc uma das
facilidades eacute a faacutecil alteraccedilatildeo do projeto podendo ser integrado a outro ou ateacute mesmo alterado
para realizar outros tipos de accedilotildees com o touch-screen
Existem vaacuterios melhoramentos que podem ser executados no projeto um deles eacute tentar
interpretar de uma maneira diferente os valores do eixo y pois do jeito que esta a resoluccedilatildeo do
eixo y esta muito baixa dificultando o reconhecimento de toques em aacutereas pequenas Talvez a
inclusatildeo de mais alguns bytes no pacote de leitura da serial resolva o problema
54
Uma ideacuteia para um proacuteximo projeto que use a interface touch-screen poderia ser a
integraccedilatildeo com o projeto do nosso colega Roberto Junqueira ou a desenvolvimento de uma
placa controladora para o touch-screen
Este trabalho eacute uma modesta contribuiccedilatildeo para o uso de FPGAs e do processador embarcado
NIOS implementado em VHDL pela Altera que acredito que vai abrir vaacuterios caminhos pois
com este projeto alguns caminhos ficaram mais faacuteceis de percorrer daqui para a frente
55
CAPIacuteTULO 7 - REFEREcircNCIAS BIBLIOGRAacuteFICAS
AMORE Roberto drsquo VHDL Descriccedilatildeo e Sintese de Circuitos Rio de Janeiro ed LTC
2005
Elotouch Touch-Screen e Controladora Descriccedilatildeo do funcionamento e descriccedilatildeo
tecnologia Touch-Screen lthttpwwwelotouchcombrgt Acesso em fevereiro de 2007
ALTERA University Program IP Cores Instalaccedilatildeo de IP Cores e referencias sobre os
componentes dos kits DE1 e DE2 Disponivel em lthttpwwwalteracomeducationunivip-
coresunv-ip-coreshtmlgt Acesso em abril de 2007
ALTERA NIOS II Documentaccedilatildeo sobre o pprocessador embracado NIO II Disponivel
em lthttpwwwalteracomproductsipprocessorsipm-indexjspgt Acesso em Abril de 2007
ALTERA Development amp Education Board 2 (DE2) Manual do usuario Disponivel no
de que acompanha o Kit DE2 ltDE2_user_manualDE2_UserManualpdfgt Acesso em
fevereiro de 2007
21
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
PS2 mousekeyboard connector
17
Two 40-pin Expansion Headers with diode protection
18
Powered by either a 75V DC adapter or a USB cable
232 Diagrama de Blocos do Kit DE2
Figura 10 ndash Diagrama de Blocos do KIT DE2 (DE2_UserManualpdf contrado no cd do kit)
22
A Tabela 5 mostra a informaccedilatildeo detalhada do Bloco Cyclone II FPGA 2C20 mostrado na
Figura 10
Tabela 5 ndash Detalhes do FPGA Cyclone II
FPGA Cyclone II 2C35
18752 LErsquos
52 M4K RAM blocks 240K total RAM bits 26 embedded multipliers 4 PLLrsquos 315 user IO pinrsquos FineLine BGA 484-pin package
A Tabela 6 mostra a informaccedilatildeo detalhada do Bloco do dispositivo de configuraccedilatildeo Serial e
circuito Usb-Blaster
Tabela 6 - Descriccedilatildeo das configuraccedilotildees que satildeo feitas atraveacutes da Serial e Usb-Blaster
Configuraccedilatildeo do dispositivo Serial e do Circuito Usb-Blaster Configuraccedilatildeo do dispositivo serial Altera EPCS4 On-Board Usb-Blaster
para Controle de API de usuaacuterio e programaccedilatildeo
JTAG e AS satildeo os modos do programaccedilatildeo suportados
A Tabela 7 mostra a descriccedilatildeo do Bloco da SRAM
Tabela 7 ndash Descriccedilatildeo do Bloco da SRAM
SRAM 512-Kbyte Static RAM memory chip Organizado em 256K x 16 bits Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 8 mostra a descriccedilatildeo do Bloco da SDRAM
Tabela 8 - Descriccedilatildeo do Bloco da SDRAM
SDRAM 8-Mbyte Single Data Rate Synchronous Dynamic RAM memory chip Organizado em 1M x 16 bits x 4 Banks Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
23
A Tabela 9 mostra a descriccedilatildeo do Bloco Memory Flash
Tabela 9 ndash Descriccedilatildeo da Memoria Flash
Memory Flash
4-Mbyte NAND Flash memory 8-bit data bus Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 10 mostra a descriccedilatildeo do Bloco SD card socket
Tabela 10 - Descriccedilatildeo do SD card socket
SD card socket Fornece o modo SPI para o acesso ao cartatildeo SD Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 11 mostra a descriccedilatildeo 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) Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 12 mostra a descriccedilatildeo dos Clock inputs
Tabela 12 - Descriccedilatildeo das entradas de Clocks
Clock inputs Oscilador de 50 Mhz Oscilador 27 Mhz Entrada para clock
externo
A Tabela 13 mostra a descriccedilatildeo do Aacuteudio CODEC
Tabela 13 - Descriccedilatildeo do Aacuteudio CODEC
Aacuteudio CODEC 4-Mbyte NAND Flash memory 8-bit data bus Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
24
A Tabela 14 mostra a descriccedilatildeo do Bloco VGA DAC
Tabela 14 ndash Descriccedilatildeo da saiacuteda VGA DAC
VGA
DAC
Usa 4 bits DAC para cada cor (RGB) Com 15 pinos no conector VGA convencional (fecircmea) Suporta uma resoluccedilatildeo de 640 x 480 com um refresh de ateacute 100Hz Pode ser usando com o FPGA Cyclone II para implementar um Encoder para TV
A Tabela 15 mostra a descriccedilatildeo do Bloco Serial Ports amp PS2
Tabela 15 ndash Descriccedilatildeo da Serial Port e PS2
Serial Ports amp PS2 Uma porta RS-232
Uma posta PS2 Um conector Serial para a porta do RS-232 Conector PS2 para conectar um mouse ou teclado ao DE2
A Tabela 16 mostra a descriccedilatildeo do Bloco dos Two 40 - pin expansion headers
Tabela 16 ndash Descriccedilatildeo dos conectores de expansatildeo de 40 pinos
Two 40 - pin expansion headers 72 pinos de IO do Clyclone II bem como 8 power e groundrsquos satildeo trazidos aos 2 conectores de expansatildeo de 40 pinos cada Os conectores de 40 pinos tambeacutem aceitam os cabos IDE de 40 pinos Proteccedilatildeo resistiva eacute fornecida
233 Endereccedilo das Pinagens dos Componentes usados no Projeto
2331 PushButtons
A Figura 11 mostra uma foto dos PushButtons do kit Key[30] a ordem eacute o button da
esquerda eacute o mais significativo e o mais de direita o menos signigicativo
Figura 11 ndash Os 4 PushButtons do DE2Key[30] (DE2_UserManualpdf contrado no cd do kit)
25
A Tabela 17 mostra os pinos da FPGA aos PushButtons
Tabela 17 ndash Pinos da FPGA referentes a cada PushButton (DE2_UserManualpdf contrado no cd do kit)
2332 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 ndash Modulo de displays de 7 segmentos (DE2_UserManualpdf encontrado no cd do kit)
Figura 13 ndash Index de um display (DE2_UserManualpdf encontrado no cd do
kit)
26
A Tabela 18 mostra os pinos da FPGA referente a cada segmento dos displays de 7
segmentos do modulo
Tabela 18 ndash Pinos da FPGA referentes a cada segmento dos Displays do modulo
27
2333 VGA
A Figura 14 esta em forma de onda da temporizaccedilatildeo horizontal e vertical da VGA do Kit
DE2
Figura 14 ndash Temporizaccedilatildeo horizontal da VGA
A Tabela 19 mostra a especificaccedilatildeo da temporizaccedilatildeo horizontal da VGA
Tabela 19 ndash Especificaccedilatildeo da temporizaccedilatildeo horizontal da VGA
A Tabela 20 mostra a especificaccedilatildeo da temporizaccedilatildeo vertical da VGA
Tabela 20 ndash Especificaccedilatildeo da temporizaccedilatildeo vertical da VGA
28
A Tabela 21 mostra os pinos da FPGA referente a cada pino de saida do conector VGA do
Kit DE2
Tabela 21 ndash Pinos da FPGA referentes a saiacuteda do Conector VGA do Kit
29
CAPIacuteTULO 3 ndash ESPECIFICACcedilAtildeO TECNICA
Nesse capiacutetulo tem-se uma descriccedilatildeo dos principais moacutedulos do projeto Satildeo eles Software
Firmware e Hardware
Inicialmente eacute apresentada a visatildeo geral do sistema e a descriccedilatildeo funcional de cada moacutedulo
A Figura 15 apresenta o diagrama em blocos do sistema
Figura 15 - Moacutedulos do projeto
31 Descriccedilatildeo de Software
O Software eacute uma das interfaces com o usuaacuterio
312 Diagrama de Blocos do Software
30
312 Modulo do PC
Neste modulo eacute 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
32 Descriccedilatildeo de Hardware
321 Modulo Touch-Screen
O usuaacuterio ao tocar o Touch-Screen (AT4 touch-screen resistivo de 4 fios) ocorre uma
mudanccedila nas tensotildees do eixo X e do eixo Y devido a resistecircncia gerada pelo ao toque do usuaacuterio
em uma determinada regiatildeo da tela essa mudanccedila de tensatildeo eacute interpretada pela placa
controladora COACh IIs do Touch-Screen e enviada via serial para o Kit DE2 que interpretaraacute
os dados e faraacute o devido processamento
322 Modulo FPGA
O Hardware corresponde tanto aos componentes fiacutesicos presentes no kit de desenvolvimento
quanto aos componentes que seratildeo configurados na FPGA Satildeo diversos componentes escritos
em linguagem de descriccedilatildeo de hardware
No um dos principais componentes de hardware utilizado modulo eacute o processador NIOS II
para se ter uma ideacuteia o processador NIOS II eacute capaz gerenciar os dispositivos externos a FPGA
utilizando controladores de memoacuterias controladores de VGA entre outros E tambeacutem eacute possiacutevel
o proacuteprio usuaacuterio criar seu componente para ser controlado atraveacutes do processador NIOS
II(Altera 2007)
31
3221 O Processador NIOS II
Atraveacutes do software SOPC da ALTERA foi possiacutevel montar a arquitetura de hardware do
processador NIOS II bem como especificar as interfaces que ele iraacute controlar atraveacutes do firmwar
feito no NIOS II IDE
Na Tabela 22 eacute no campo Module Name onde estatildeo os moacutedulos que foram usados para
definir o processador NIOS II e os componentes externos que ele iraacute controlar e no campo
Description esta a descriccedilatildeo do nome de cada modulo
Tabela 22 ndash Moacutedulos dos componentes e suas descriccedilotildees
3222 Firmware para o NIOS II
O Firmware foi feito utilizando a linguagem C utilizando a ferramenta NIOS II IDE Atraveacutes
do firmware eacute possiacutevel 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 graacuteficas para controlar a vga e serial e
USB-BLASTER eacute encarregado em enviar todo o desenvolvimento do projeto para o Kit DE2
323 Configuraccedilatildeo da FPGA via JTAG
Depois de configurado o hardware do processador NIOS II eacute preciso fazer o load do NIOS
para a FPGA e para que isso aconteccedila eacute necessaacuterio que atraveacutes do software Quartus II da
ALTERA utilizando a interface JTAG utilizando o cabo USB-BLASTER
32
324 Comunicaccedilatildeo entre FPGA e o Touch-Screen
Para comunicaccedilatildeo entre dos dois hardwares Touch-Screen e o FPGA eacute utilizando uma
interface serial RS-232
A configuraccedilatildeo da interface eacute a seguinte
Bits de dados 8
Taxa de dados 5600(bps)
A Tabela 23 mostra a relaccedilatildeo dos pinos da porta serial com os pinos da FPGA
Tabela 23 ndash Pinos da FPGA referente agrave pinagem da interface Serial
E a Figura 16 mostra o desenho correspondente da interface serial
Figura 16 ndash Conector da interface serial do kit DE2
33 Especificaccedilatildeo de Validaccedilatildeo
331 Validaccedilatildeo de Hardware
A validade do hardware se faz com a anaacutelise de todos os moacutedulos envolvidos
As necessidades satildeo estudadas os componentes externos ao FPGA satildeo selecionados de
acordo o processador nios e os controladores dos moacutedulos externos como VGA e SERIAL satildeo
enviados ao modulo FPGA
Os resultados obtidos na tela do monitor e a recepccedilatildeo dos dados pela serial comprovam o
funcionamento do modulo de comunicaccedilatildeo da serial e vga
33
332 Validaccedilatildeo de Software
A validaccedilatildeo do controle da interface touch-screen faz-se a partir dos resultados obtidos das
funccedilotildees escritas na linguagem C especificas para cada componente externos ao FPGA essas
funccedilotildees tornam possiacuteveis que o processador NIOS na FPGA tenha total controle sobre os
moacutedulos externos como a VGA e a SERIAL
As funccedilotildees que satildeo utilizadas para validar o funcionamento do software satildeo para a VGA os
meacutetodos de controle (alt_up_vga_draw_char_1b( char int x int y)) e (alt_up_vga_draw_pixel(
color x y))
O meacutetodo (alt_up_vga_draw_char_1b( char int x int y)) tem a funcionalidade de escrever
caracteres na tela do monitor e a descriccedilatildeo da sua assinatura ldquoparacircmetrosrdquo eacute a seguinte char eacute o
caractere que eacute escrito em alguma posiccedilatildeo na tela int x eacute a posiccedilatildeo x da tela do monitor e int y eacute
a posiccedilatildeo y da tela do monitor sendo que a resoluccedilatildeo utilizada eacute de 80x60 ou seja x natildeo pode
passar de 80 e y natildeo pode passar de 60
O meacutetodo (alt_up_vga_draw_pixel( color int x int y)) tem a funcionalidade de ldquopintarrdquo o
fundo da tela do monitor o meacutetodo de imprimir caracteres tem preferecircncia sobre este meacutetodo ou
seja os caracteres sempre ficam sob a aacuterea pintada ou seja o caractere sempre ficara em cima da
aacuterea pintada a descriccedilatildeo da assinatura deste meacutetodo eacute a seguinte color eacute a valor da cor que pode
ser um valor inteiro ou em hexadecimal para definir uma cor de alguma posiccedilatildeo da tela definidos
pelos paracircmetros x e y
As funccedilotildees que satildeo utilizadas para validar o funcionamento do software satildeo para a Serial os
meacutetodos de controle de transmissatildeo (fread( packet sizeof(packet) 1 serial_fp )) a funccedilatildeo
fread eacute utilizada para a leitura via interrupccedilatildeo dos pacotes que a controladora envia para o kit
DE2 as assinaturas do meacutetodo fread tem a seguinte composiccedilatildeo packet eacute a estrutura do pacote
que seraacute recebido o sizeof(packet) eacute o diz qual eacute o tamanho exato da estrutura criada e o
serial_fp eacute o handle da porta serial
Uma observaccedilatildeo muito importante eacute que para o total funcionamento eacute necessaacuterio 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 rs232h e rs232c onde estatildeo os meacutetodos de
controle da SERIAL e alt_up_vgah alt_up_vgac onde estatildeo os meacutetodos de controle para a
VGA Para tornar estes meacutetodos acessiacuteveis eacute preciso fazer os includes dos arquivos h no
projeto da NIOS IDE
A figura 17 mostra a utilizaccedilatildeo dos meacutetodos (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
34
int y)) utlizado para escrever os caracteres lsquoarsquo e lsquobrsquo dentro de um grupo de pixel previamente
pintado a (alt_up_vga_draw_pixel( color int x int y)) natildeo pinta um pixel de cada vez e sim
um bloco de 8x8 pixels
Figura 17 - Tela para a validaccedilatildeo dos testes com as bibliotecas graacuteficas do componente VGA
34 Recursos Necessaacuterios
A Tabela 24 apresenta os ambientes de desenvolvimento e ferramentas de software utilizadas
e na Tabela 25 as linguagens necessaacuterias Estas ferramentas foram utilizadas em ambiente
Windows Xp
Tabela 24 - Ferramentas de Desenvolvimentos e Ambientes
Software Para que foi Utilizado
Quartus II Para a definiccedilatildeo de qual o modelo de FPGA utilizado compilaccedilatildeo e simulaccedilatildeo e envio Load do NIOS para FPGA
SOPC Para definiccedilatildeo da do processador NIOS II e com quais componentes externos ele ira interagir atraveacutes dos controladores dos respectivos componentes
NIOS II IDE Para implementaccedilatildeo do firmware do processador NIOS II utilizando a linguagem em C
35
Borland C++ Builder Para desenvolvimento de ima interface de comunicaccedilatildeo via caboUSB-
BLASTER para o envio de imagem para o kit
Tabela 25 ndash Linguagens de programaccedilatildeo utilizadas
Linguagem Ferramenta C++ Borland C++ Builder VerilogVHDL Quartus II C NIOS II IDE
35 Viabilidade Teacutecnico-Econocircmica
O valor do projeto esta descrito na Tabela 26
Tabela 26 ndash Relaccedilatildeo dos Custos
DESCRICcedilAtildeO CUSTO APROXIMADO (R$) COMPONENTES ELETROcircNICOS 50000 1 Kit DE2 Cyclone II 35000 1 Monitor de Computador 35000 HORAS TRABALHADAS (400 horas) 750000 CUSTO TOTAL APROXIMADO (R$) 870000
36 Cronograma do Projeto
A tabela 27 contem as informaccedilotildees do cronograma do projeto
Tabela 27 ndash Cronograma de datas e entregas do projeto
Data Atividade a ser apresentada 050307 Entrega das propostas de projeto para avaliaccedilatildeo do colegiado 020407 Entrega das especificaccedilotildees teacutecnicas do projeto aprovado 110607 Entrega do projeto (monografia) e dos testes preliminares do mesmo 060807 Apresentaccedilatildeo preacutevia da implementaccedilatildeo do projeto especificado 011007 Apresentaccedilatildeo do projeto implementado
Qualificaccedilatildeo para a fase final 291007 Segunda apresentaccedilatildeo do projeto implementado para os que natildeo o fizeram no
dia 011006 com decreacutescimo da nota Qualificaccedilatildeo para a fase final
051107 Entrega da documentaccedilatildeo completa em espiral para a banca examinadora em 3 vias contendo a monografia manual teacutecnico manual do usuaacuterio e artigo cientiacutefico
261107 Defesa formal dos projetos com apresentaccedilatildeo oral para a banca examinadora 101207 Entrega da documentaccedilatildeo completa revisada e corrigida encadernada no
padratildeo da biblioteca (capa dura) em duas vias contendo a monografia manual teacutecnico manual do usuaacuterio e artigo cientiacutefico Entrega do CD contendo no formato WEB todo o conteuacutedo dos manuais
36
CAPIacuteTULO 4 ndash ESPECIFICACcedilAtildeO TECNICA
41 Requisitos Miacutenimos
Os requisitos miacutenimos de Hardware satildeo
Funcionamento das interfaces Serial e USB-Blaster
Funcionamento do Kit DE2
PC
Os requisitos miacutenimos de Software
Windows Xp
Quartus II
SOPC
NIOS II IDE
42 Projeto de Hardware
O hardware utilizado nesse projeto inclui componentes presentes na Placa de
Desenvolvimento Nios II - ediccedilatildeo DE2 Cyclone II EP2C35 e principalmente o hardware que seraacute
configurado na FPGA escrito em linguagem de descriccedilatildeo de hardware (HDL)
O um dos principais blocos de hardware eacute o processador NIOS II o Avalon Bus e os
controladores de componentes externos a FPGA e de comunicaccedilatildeo presentes no Kit
37
O software embarcado (firmware) estaraacute rodando nessa arquitetura Eacute uma arquitetura
completa construiacuteda com a ferramenta SOPC Builder da Altera A Figura 18 representa em
blocos os principais componentes dessa arquitetura
Figura 18 ndash Representaccedilatildeo em blocos do hardware do NIOS II
421 Funcatildeo do Touch-Screen
Outro bloco importante eacute o do Touch-Screen esta tela sensiacutevel ao toque pois como esta tela
trabalha com resistecircncia ao ser tocado em uma determinada regiatildeo uma resistecircncia eacute gerada e a
tensatildeo de saiacuteda eacute modificada a alimentaccedilatildeo desta placa eacute proveniente de sua placa controladora
a mesma placa que recebe a tensatildeo de saiacuteda modificada de acordo com a regiatildeo tocada na tela
Para verificar as caracteriacutesticas detalhadas do Touch-Screen e sua placa controlador favor ver
o Capitulo 2
422 Monitor e VGA
O Monitor inicialmente tem apenas o desenho de um botatildeo que ao ser tocado via touch
mudara a cor de toda a tela A imagem exibida no monitor tem uma resoluccedilatildeo de
38
Protoacutetipo das telas para os testes esta na Figura 19 a tela verde quando a touch natildeo eacute tocando
na regiatildeo do botatildeo de OK quando o botatildeo de OK for tocado a tela do monitor mudara de cor
ficando azul
Figura 19 ndash Tela do monitor
No Capitulo 2 estatildeo todas as caracteriacutesticas da pinagem e do conector VGA
423 Comunicaccedilatildeo serial
Entre a placa controladora do Touch-Screen e o FPGA existe uma comunicaccedilatildeo 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 manipulaccedilatildeo da imagem que eacute
mostrada no monitor
No capitulo 2 estatildeo das descriccedilotildees dos pinos e do conector da comunicaccedilatildeo Serial
O pacote serial que eacute transmitido pela placa controladora do touch-screen possui 10 bytes de
comprimento e segue a seguinte sequumlecircncia de envio
[55] [54] [] [] [] [] [] [] [] []
Sequumlecircncia dos bytes
Os dois primeiros bytes identificam o Header do pacote
O terceiro byte eacute 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 agrave posiccedilatildeo do eixo x onde a tela foi tocada
O sexto e o seacutetimo byte correspondem a posiccedilatildeo do eixo y onde a tele foi tocada
O restante os bytes identificam o tail do pacote recepcionado pelo kit DE2
39
424 Comunicaccedilatildeo USB-Blaster
Essencial para envio do projeto desenvolvido para o kit DE2 tambeacutem muito utilizado para o
debug deste projeto
435 Memoacuteria SDRAM
A memoacuteria utilizada para armazenar grandes quantidades de dados eacute a SDRAM (ver detalhes
no Capitulo 2)
Essa memoacuteria eacute muito raacutepida serviu muito bem para armazenar o firmware deste projeto
pois tem o tempo acesso ideal para ler as instruccedilotildees que utilizaram a VGA e tambeacutem eacute raacutepida o
suficiente para fazer a leitura dos dados e disponibilizar na saiacuteda VGA do kit
426 Memoacuteria FLASH
Eacute onde seraacute armazenado o firmware possui espaccedilo suficiente para isso 4MB e uma memoacuteria
mais lenta e por isso natildeo foi usada para armazenar dados para serem jogados na vga do Kit
43 Software
431 Software (Firmware)
O software tem de funccedilatildeo de utilizar as bibliotecas das controladoras dos componentes
externos a fim de controlar estes componentes de acordo com o necessaacuterio para atender o
objetivo do projeto
Ou seja uma tela inicial eacute apresentada e o usuaacuterio ao tocar na nela o kit recebe um pacote via
serial e interpreta a posiccedilatildeo da tela em que foi tocado e logo em seguida envia o resultado deste
toque para o monitor
432 Objetivos
O usuaacuterio 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 accedilatildeo de acordo com a posiccedilatildeo da tela
tocada alterando assim a imagem anterior com o resultado do toque
Interpretar o toque de usuaacuterio na tela touch-screen recepccedilatildeo do pacote via serial da placa
controladora do touch-screen tratamento do pacote e interpretaccedilatildeo das coordenadas x e y do
40
toque Realizaccedilatildeo de alguma accedilatildeo que resultara na alteraccedilatildeo da imagem da tela atual de acordo
com a funccedilatildeo em que as coordenadas foram previamente definidas para o que deve ser feito
432 Funccedilotildees
A Tabela 28 tem as principais funccedilotildees que foram implementadas para o sistema
Tabela 28 ndash Funccedilotildees do sistema firmware
FUNCcedilOtildeES Tela de um pequeno editor de texto Tratamento do sinal recebido da serial devido a um toque na tela Interpretaccedilatildeo do pacote serial e transfomaccedilatildeo para coordenadas x e y Transformaccedilatildeo das posiccedilotildees do toque na tela em alguma accedilatildeo enviando o resultado para a VGA Imagem final disponibilizada ao usuaacuterio de acordo com o toque que foi dado na tela Controlar dispositivos cada dispositivo pode ser controlado pelo seu respectivo contrador atraveacutes de seu endereccedilo base VGA SERIAL USB-BLASTER IO(Leds Switches etc) do Kit DE2
O Firmware do processador NIOS II eacute que realizaraacute a integraccedilatildeo entre hardware com
hardware Com o firmware controlando o NIOS II eacute possiacutevel interagir com os dispositivos
externos a FPGA Tornando possiacutevel a integraccedilatildeo da FPGA com a peliacutecula touch-screen e um
monitor sem a ajuda de um PC a uacutenica ajuda do pc seria para enviar dados de uma imagem para
o Kit DE2
44 Validaccedilatildeo e Testes
Inicialmente os moacutedulos da VGA e comunicaccedilatildeo SERIAL natildeo estavam funicionando
apenas o devido agrave fraca documentaccedilatildeo sobre o kit DE2 foi possiacutevel apenas fazer testes com o
Processador NIOS II pois sobre este existem bastantes documentos e exemplos que podem ser
utilizados
Nesta primeira parte foi possiacutevel testar o NIOS II para controlar o display bototildees e switchs
do kit DE2
Com o NIOS II funcionando completamente foi necessaacuterio porta-lo para o kit DE2 o que foi
simples pois como sabemos esses kits satildeo portaacuteveis entre si apenas mudando a pinagem e a
capacidade da FPGA
Com o Kit DE2 foi possiacutevel fazer os testes necessaacuterios com a comunicaccedilatildeo serial
inicialmente testada via terminal conversando diretamente com o kit foi possiacutevel fazer o
seguinte teste os caracteres que eram entrados via teclado chegavam ao kit via serial e o o
41
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 comdumpexe que eacute facilmente encontrado pelas ferramentas
de pesquisa da web e tambeacutem existem vario outros programas como este e o comdump eacute
utilizado para debug da porta serial do pc conectado diretamente na placa controladora do touch-
screen e foi a peccedila chave para o entendimento do pacote enviado pela placa controladora
Figura 20 - Cumdumpexe programa de debug da porta serial
A explicaccedilatildeo de cada byte do pacote esta explicado no item 423
Apos o entendimento completo da transmissatildeo 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 natildeo 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 ateacute o momento em que
foi testado os meacutetodos proprietaacuterios da Altera para fazer a VGA funcionar os meacutetodos esses
implementados em C
A figura 21 onde contem o teste baacutesico feito que foi a chave principal para o sucesso deste
projeto
42
Como dito no item 332 do projeto foram utilizados as funccedilotildees da controladora VGA esses
meacutetodos 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 eacute utilizado o meacutetodo alt_up_vga_draw_pixel( color int
x int y) onde color eacute a cor do bloco de pixels e x e y satildeo as coordenadas da tela onde o bloco
que seraacute pintado
Para escrever um caractere sobre um bloco de pixels pintado eacute utilizado a funccedilatildeo
alt_up_vga_draw_char_1b( char int x int y) onde char eacute o caractere a ser impresso e x e y satildeo
as coordenadas da tela onde os o caractere eacute impresso
Figura 21 - Teste baisco do funcionamento do componente VGA do kit DE2
43
CAPIacuteTULO 5 ndash VALIDACcedilAtildeO E RESULTADOS
Os resultados foram os melhores possiacuteveis pois com a utilizaccedilatildeo dos IP CORE
ldquocontroladorasrdquo dos componentes externos como VGA e SERIAL e seus meacutetodos de para
controle eacute possiacutevel controlar facilmente esses moacutedulos atraveacutes do firmware desenvolvido para o
processador NIOS que consegue realizar operaccedilotildees transparentes acessando dos meacutetodos de
controle dos moacutedulos
Apos os testes baacutesicos 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 baacutesico de editor de texto
A figura 22 mostra um teste utilizando os meacutetodos de controle disponiacuteveis para o IP CORE
da VGA para primeiramente fazer o menu da aplicaccedilatildeo desenvolvido em na linguagem C
Figura 22 ndash Menu baacutesico do editor de texto
Para desenhar o menu da figura acima foi utilizado os meacutetodos proprietaacuterios de controle da
VGA citados no capitulo 4 e tambeacutem estruturas de repeticcedilatildeo para que a tela fosse varrida e os
pixels desenhados nos respectivos lugares da tela bem como os caracteres
Na figura 23 eacute definida a seguinte estrutura em C para representar de um botatildeo
Figura 23 - Estrutura em C para representar um botatildeo
44
A figura 24 eacute a declaraccedilatildeo dos bototildees que seratildeo utilizados pelo aplicativo editor de texto
para comprovar o funcionamento do controle da interface touch-screen
Apenas o que esta dentro da marcaccedilatildeo quadrada representa os bototildees do menu da figura 23
e o restante satildeo os bototildees do teclado do editor de texto
Figura 24 - Declaraccedilatildeo dos bototildees do menu
45
A figura 25 representa o meacutetodo drawnButtonUp responsaacutevel por desenhar os bototildees na tela
de acordo com as posiccedilotildees em que foram declarados os bototildees deste meacutetodo satildeo desenhados
para parecerem que estatildeo ldquolevantadosrdquo e natildeo pressionados
Note que foram utilizados os meacutetodos proprietaacuterios de controle da VGA
alt_up_vga_draw_pixel pra pitar os pixels e alt_up_vga_draw_char_b1 para desenhar caracteres
como jaacute foi especificado no item 44 do projeto
Figura 25 ndash Meacutetodo drawButtonUp
46
O meacutetodo que desenha o caption do botatildeo se chama drawButtonText desenha os caracteres
em cima dos bototildees natildeo importa se o botatildeo esta pressionado ou natildeo
A figura 26 mostra como este meacutetodo foi implementado e ele eacute chamado no final de cada
meacutetodo onde algum tipo de botatildeo eacute desenhado quando o meacutetodo que desenha o botatildeo normal
quanto o pressionado e ateacute mesmo o do teclado
Figura 26 ndash Meacutetodo que escreve o caption de cada botatildeo
47
A figura 27 mostra o meacutetodo drawButtonDown que desenha o botatildeo pressionado ou seja
quando o usuaacuterio pressiona a regiatildeo correspondente a um botatildeo do menu no touch-screen o
mesmo redesenharaacute o botatildeo parecendo um efeito de botatildeo afundado note que no final do
meacutetodo novamente eacute chamado o meacutetodo drawButtonText que reescreveraacute o caption do botatildeo
como mostra o meacutetodo da figura 26 e esta ilustrado na figura 28
Figura 27 ndash Meacutetodo que desenha o botatildeo pressionado
48
Dependendo da aacuterea do menu que o usuaacuterio pressionar no touch-screen causar o efeito de
pressionado como mostra a figura 28
Figura 28 ndash Efeito do botatildeo de menu apertado
Na figura 29 eacute a representaccedilatildeo de quando a aacuterea correspondente ao botatildeo ldquoamarelordquo eacute
pressionada
Apos estes testes baacutesicos comprovando o funcionamento da interface graacutefica para o usuaacuterio
foi definido o restante dos componentes da tela que eacute constituiacutedo de um prompt e um teclado
qwerty que foi essencial para comprovar o perfeito funcionamento do controle da interface
touch-screen
49
51 Interface Grafica Final
A figura 29 mostra a interface final que o usuaacuterio teraacute para poder verificar o funcionamento
do controle da interface touch-screen
Figura 29 ndash Interface final touch-screen do usuaacuterio
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
511 Descriccedilatildeo do editor de texto
O menu possui 4 botoes cada um com sua respectiva funcionalidade quando o usuario
pressiona a area do botatildeo ldquoapagarrdquo uma vez entatildeo um carectere do prompt eacute apagado Quando eacute
precionado a area correspondente ao botatildeo ldquoResetrdquo todo o conteudo do prompt seraacute apagado e o
plano de fundo retornaraacute a cor branca Quando o botatildeo ldquoamarelordquo eacute pressionado o fundo da tela
passa a ser amarelo e o mesmo acontece se o usuario precionar o botatildeo verde tornando o cor de
fundo verde
50
O teclado possui 29 teclas sendo duas delas que equivalem ao ENTRA ldquoENTrdquo e ao
SPACE ldquoSPCrdquo Quando o usuario pressiona a area correspondente a algum botatildeo do teclado o
mesmo muda sua cor para azul e o seu caractere eacute disponibilizado no prompt
Essas funcionalidades nada mais satildeo do que um bom exemplo de como funciona
corretamente o controle da interface touch-screen
52 Prompt e o Teclado
A estrutura feita na linguagem C que define o prompt da figura 28 esta representado na
figura 30
Figura 30 ndash Estrutura em C para representar o prompt
A figura 31 mostra o metodo drawPrompt utilizado para desenhar na tela o prompt
Figura 31 ndash Meacutetodo que desenha o prompt
51
A estrutura do teclado eacute a mesma utilizada pela figura 23 e tambem eacute criado satildeo
inicializados na figura 24
O restante as implementaccedilotildees estatildeo disponiveis no cd deste documento
Quando algum botatildeo do teclado eacute pressionado sua cor muda para azul e sua letra
correspondente eacute escrita o prompt
A figura 32 ilustra quando o usuaacuterio aperta a letra lsquotrsquo na peliacutecula touch-screen
Figura 32 - Teste do prompt e o teclado
52
53 Controle da Interface Touch-Screen
Depois do todos os testes com o processador NIOS e a integraccedilatildeo do mesmo com os
moacutedulos externos como a porta SERIAL e a saiacuteda VGA eacute possiacutevel utilizando o touch-screen
criar uma interface amigaacutevel e faacutecil de usar para o usuaacuterio utilizando um firmware capaz de
interpretar os sinais via serial vindo da controladora do touch ao detectar que um toque foi dado
pelo usuaacuterio e realizar algumas accedilotildees que neste caso se comportam como um editor de texto
baacutesico
A figura 33 mostra como foi validado este projeto e seus moacutedulos controlando uma
interface touch-screen para chegar no resultado abaixo digitado pelo usuaacuterio comprovando o
funcionamento e viabilidade deste projeto
Figura 33 ndash 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 mudanccedilas podendo ser alterado rapidamente o tipo de
aplicaccedilatildeo ou integrado rapidamente com outro projeto
53
CAPIacuteTULO 6 - CONCLUSAtildeO
Uma das principais dificuldades no desenvolvimento deste projeto foi fazer o levantamento
da documentaccedilatildeo sobre o processador NIOS e os moacutedulos externos a FPGA do Kit DE2 Como
natildeo foi feito algum projeto antes que utilizasse a interface VGA e a SERIAL do Kit DE2 levou-
se muito tempo ateacute conseguir adquirir e ordenar o conhecimento que foi sendo adquirido ateacute
conseguir dar os primeiros passos e realizar os primeiros testes com a VGA e a SERIAL Outro
grande obstaacuteculo foi ter de descobrir que para que o NIOS controlasse os moacutedulos externos a
FGPA fosse necessaacuterio copiar os arquivos c e h dos respectivos componente para dentro do
projeto
Mas depois de todos os problemas com os moacutedulos externos solucionados cada modulo do
projeto foi sendo desenvolvido separadamente ateacute seu total funcionamento Natildeo tive dificuldades
com a linguagem da programaccedilatildeo pois o Firmware do processador NIOS eacute o C a qual mais tive
contato na faculdade
Outro desafio foi fazer a peliacutecula 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
peliacutecula natildeo 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 possiacutevel
comeccedilar a fazer os testes necessaacuterios para prosseguir com o projeto aprender como o a peliacutecula
identifica um toque e manda este sinal para a controladora e a controladora transforma este sinal
em um sinal serial que eacute 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 accedilotildees
que as coordenadas jaacute estatildeo previamente calibradas no firmware para fazer bem como mudar de
cor a tela fazer o efeito de um botatildeo subindo e descendo etc
Varias vezes o projeto parou de funcionar entatildeo 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 memoacuteria abundante etc uma das
facilidades eacute a faacutecil alteraccedilatildeo do projeto podendo ser integrado a outro ou ateacute mesmo alterado
para realizar outros tipos de accedilotildees com o touch-screen
Existem vaacuterios melhoramentos que podem ser executados no projeto um deles eacute tentar
interpretar de uma maneira diferente os valores do eixo y pois do jeito que esta a resoluccedilatildeo do
eixo y esta muito baixa dificultando o reconhecimento de toques em aacutereas pequenas Talvez a
inclusatildeo de mais alguns bytes no pacote de leitura da serial resolva o problema
54
Uma ideacuteia para um proacuteximo projeto que use a interface touch-screen poderia ser a
integraccedilatildeo com o projeto do nosso colega Roberto Junqueira ou a desenvolvimento de uma
placa controladora para o touch-screen
Este trabalho eacute uma modesta contribuiccedilatildeo para o uso de FPGAs e do processador embarcado
NIOS implementado em VHDL pela Altera que acredito que vai abrir vaacuterios caminhos pois
com este projeto alguns caminhos ficaram mais faacuteceis de percorrer daqui para a frente
55
CAPIacuteTULO 7 - REFEREcircNCIAS BIBLIOGRAacuteFICAS
AMORE Roberto drsquo VHDL Descriccedilatildeo e Sintese de Circuitos Rio de Janeiro ed LTC
2005
Elotouch Touch-Screen e Controladora Descriccedilatildeo do funcionamento e descriccedilatildeo
tecnologia Touch-Screen lthttpwwwelotouchcombrgt Acesso em fevereiro de 2007
ALTERA University Program IP Cores Instalaccedilatildeo de IP Cores e referencias sobre os
componentes dos kits DE1 e DE2 Disponivel em lthttpwwwalteracomeducationunivip-
coresunv-ip-coreshtmlgt Acesso em abril de 2007
ALTERA NIOS II Documentaccedilatildeo sobre o pprocessador embracado NIO II Disponivel
em lthttpwwwalteracomproductsipprocessorsipm-indexjspgt Acesso em Abril de 2007
ALTERA Development amp Education Board 2 (DE2) Manual do usuario Disponivel no
de que acompanha o Kit DE2 ltDE2_user_manualDE2_UserManualpdfgt Acesso em
fevereiro de 2007
22
A Tabela 5 mostra a informaccedilatildeo detalhada do Bloco Cyclone II FPGA 2C20 mostrado na
Figura 10
Tabela 5 ndash Detalhes do FPGA Cyclone II
FPGA Cyclone II 2C35
18752 LErsquos
52 M4K RAM blocks 240K total RAM bits 26 embedded multipliers 4 PLLrsquos 315 user IO pinrsquos FineLine BGA 484-pin package
A Tabela 6 mostra a informaccedilatildeo detalhada do Bloco do dispositivo de configuraccedilatildeo Serial e
circuito Usb-Blaster
Tabela 6 - Descriccedilatildeo das configuraccedilotildees que satildeo feitas atraveacutes da Serial e Usb-Blaster
Configuraccedilatildeo do dispositivo Serial e do Circuito Usb-Blaster Configuraccedilatildeo do dispositivo serial Altera EPCS4 On-Board Usb-Blaster
para Controle de API de usuaacuterio e programaccedilatildeo
JTAG e AS satildeo os modos do programaccedilatildeo suportados
A Tabela 7 mostra a descriccedilatildeo do Bloco da SRAM
Tabela 7 ndash Descriccedilatildeo do Bloco da SRAM
SRAM 512-Kbyte Static RAM memory chip Organizado em 256K x 16 bits Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 8 mostra a descriccedilatildeo do Bloco da SDRAM
Tabela 8 - Descriccedilatildeo do Bloco da SDRAM
SDRAM 8-Mbyte Single Data Rate Synchronous Dynamic RAM memory chip Organizado em 1M x 16 bits x 4 Banks Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
23
A Tabela 9 mostra a descriccedilatildeo do Bloco Memory Flash
Tabela 9 ndash Descriccedilatildeo da Memoria Flash
Memory Flash
4-Mbyte NAND Flash memory 8-bit data bus Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 10 mostra a descriccedilatildeo do Bloco SD card socket
Tabela 10 - Descriccedilatildeo do SD card socket
SD card socket Fornece o modo SPI para o acesso ao cartatildeo SD Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 11 mostra a descriccedilatildeo 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) Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 12 mostra a descriccedilatildeo dos Clock inputs
Tabela 12 - Descriccedilatildeo das entradas de Clocks
Clock inputs Oscilador de 50 Mhz Oscilador 27 Mhz Entrada para clock
externo
A Tabela 13 mostra a descriccedilatildeo do Aacuteudio CODEC
Tabela 13 - Descriccedilatildeo do Aacuteudio CODEC
Aacuteudio CODEC 4-Mbyte NAND Flash memory 8-bit data bus Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
24
A Tabela 14 mostra a descriccedilatildeo do Bloco VGA DAC
Tabela 14 ndash Descriccedilatildeo da saiacuteda VGA DAC
VGA
DAC
Usa 4 bits DAC para cada cor (RGB) Com 15 pinos no conector VGA convencional (fecircmea) Suporta uma resoluccedilatildeo de 640 x 480 com um refresh de ateacute 100Hz Pode ser usando com o FPGA Cyclone II para implementar um Encoder para TV
A Tabela 15 mostra a descriccedilatildeo do Bloco Serial Ports amp PS2
Tabela 15 ndash Descriccedilatildeo da Serial Port e PS2
Serial Ports amp PS2 Uma porta RS-232
Uma posta PS2 Um conector Serial para a porta do RS-232 Conector PS2 para conectar um mouse ou teclado ao DE2
A Tabela 16 mostra a descriccedilatildeo do Bloco dos Two 40 - pin expansion headers
Tabela 16 ndash Descriccedilatildeo dos conectores de expansatildeo de 40 pinos
Two 40 - pin expansion headers 72 pinos de IO do Clyclone II bem como 8 power e groundrsquos satildeo trazidos aos 2 conectores de expansatildeo de 40 pinos cada Os conectores de 40 pinos tambeacutem aceitam os cabos IDE de 40 pinos Proteccedilatildeo resistiva eacute fornecida
233 Endereccedilo das Pinagens dos Componentes usados no Projeto
2331 PushButtons
A Figura 11 mostra uma foto dos PushButtons do kit Key[30] a ordem eacute o button da
esquerda eacute o mais significativo e o mais de direita o menos signigicativo
Figura 11 ndash Os 4 PushButtons do DE2Key[30] (DE2_UserManualpdf contrado no cd do kit)
25
A Tabela 17 mostra os pinos da FPGA aos PushButtons
Tabela 17 ndash Pinos da FPGA referentes a cada PushButton (DE2_UserManualpdf contrado no cd do kit)
2332 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 ndash Modulo de displays de 7 segmentos (DE2_UserManualpdf encontrado no cd do kit)
Figura 13 ndash Index de um display (DE2_UserManualpdf encontrado no cd do
kit)
26
A Tabela 18 mostra os pinos da FPGA referente a cada segmento dos displays de 7
segmentos do modulo
Tabela 18 ndash Pinos da FPGA referentes a cada segmento dos Displays do modulo
27
2333 VGA
A Figura 14 esta em forma de onda da temporizaccedilatildeo horizontal e vertical da VGA do Kit
DE2
Figura 14 ndash Temporizaccedilatildeo horizontal da VGA
A Tabela 19 mostra a especificaccedilatildeo da temporizaccedilatildeo horizontal da VGA
Tabela 19 ndash Especificaccedilatildeo da temporizaccedilatildeo horizontal da VGA
A Tabela 20 mostra a especificaccedilatildeo da temporizaccedilatildeo vertical da VGA
Tabela 20 ndash Especificaccedilatildeo da temporizaccedilatildeo vertical da VGA
28
A Tabela 21 mostra os pinos da FPGA referente a cada pino de saida do conector VGA do
Kit DE2
Tabela 21 ndash Pinos da FPGA referentes a saiacuteda do Conector VGA do Kit
29
CAPIacuteTULO 3 ndash ESPECIFICACcedilAtildeO TECNICA
Nesse capiacutetulo tem-se uma descriccedilatildeo dos principais moacutedulos do projeto Satildeo eles Software
Firmware e Hardware
Inicialmente eacute apresentada a visatildeo geral do sistema e a descriccedilatildeo funcional de cada moacutedulo
A Figura 15 apresenta o diagrama em blocos do sistema
Figura 15 - Moacutedulos do projeto
31 Descriccedilatildeo de Software
O Software eacute uma das interfaces com o usuaacuterio
312 Diagrama de Blocos do Software
30
312 Modulo do PC
Neste modulo eacute 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
32 Descriccedilatildeo de Hardware
321 Modulo Touch-Screen
O usuaacuterio ao tocar o Touch-Screen (AT4 touch-screen resistivo de 4 fios) ocorre uma
mudanccedila nas tensotildees do eixo X e do eixo Y devido a resistecircncia gerada pelo ao toque do usuaacuterio
em uma determinada regiatildeo da tela essa mudanccedila de tensatildeo eacute interpretada pela placa
controladora COACh IIs do Touch-Screen e enviada via serial para o Kit DE2 que interpretaraacute
os dados e faraacute o devido processamento
322 Modulo FPGA
O Hardware corresponde tanto aos componentes fiacutesicos presentes no kit de desenvolvimento
quanto aos componentes que seratildeo configurados na FPGA Satildeo diversos componentes escritos
em linguagem de descriccedilatildeo de hardware
No um dos principais componentes de hardware utilizado modulo eacute o processador NIOS II
para se ter uma ideacuteia o processador NIOS II eacute capaz gerenciar os dispositivos externos a FPGA
utilizando controladores de memoacuterias controladores de VGA entre outros E tambeacutem eacute possiacutevel
o proacuteprio usuaacuterio criar seu componente para ser controlado atraveacutes do processador NIOS
II(Altera 2007)
31
3221 O Processador NIOS II
Atraveacutes do software SOPC da ALTERA foi possiacutevel montar a arquitetura de hardware do
processador NIOS II bem como especificar as interfaces que ele iraacute controlar atraveacutes do firmwar
feito no NIOS II IDE
Na Tabela 22 eacute no campo Module Name onde estatildeo os moacutedulos que foram usados para
definir o processador NIOS II e os componentes externos que ele iraacute controlar e no campo
Description esta a descriccedilatildeo do nome de cada modulo
Tabela 22 ndash Moacutedulos dos componentes e suas descriccedilotildees
3222 Firmware para o NIOS II
O Firmware foi feito utilizando a linguagem C utilizando a ferramenta NIOS II IDE Atraveacutes
do firmware eacute possiacutevel 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 graacuteficas para controlar a vga e serial e
USB-BLASTER eacute encarregado em enviar todo o desenvolvimento do projeto para o Kit DE2
323 Configuraccedilatildeo da FPGA via JTAG
Depois de configurado o hardware do processador NIOS II eacute preciso fazer o load do NIOS
para a FPGA e para que isso aconteccedila eacute necessaacuterio que atraveacutes do software Quartus II da
ALTERA utilizando a interface JTAG utilizando o cabo USB-BLASTER
32
324 Comunicaccedilatildeo entre FPGA e o Touch-Screen
Para comunicaccedilatildeo entre dos dois hardwares Touch-Screen e o FPGA eacute utilizando uma
interface serial RS-232
A configuraccedilatildeo da interface eacute a seguinte
Bits de dados 8
Taxa de dados 5600(bps)
A Tabela 23 mostra a relaccedilatildeo dos pinos da porta serial com os pinos da FPGA
Tabela 23 ndash Pinos da FPGA referente agrave pinagem da interface Serial
E a Figura 16 mostra o desenho correspondente da interface serial
Figura 16 ndash Conector da interface serial do kit DE2
33 Especificaccedilatildeo de Validaccedilatildeo
331 Validaccedilatildeo de Hardware
A validade do hardware se faz com a anaacutelise de todos os moacutedulos envolvidos
As necessidades satildeo estudadas os componentes externos ao FPGA satildeo selecionados de
acordo o processador nios e os controladores dos moacutedulos externos como VGA e SERIAL satildeo
enviados ao modulo FPGA
Os resultados obtidos na tela do monitor e a recepccedilatildeo dos dados pela serial comprovam o
funcionamento do modulo de comunicaccedilatildeo da serial e vga
33
332 Validaccedilatildeo de Software
A validaccedilatildeo do controle da interface touch-screen faz-se a partir dos resultados obtidos das
funccedilotildees escritas na linguagem C especificas para cada componente externos ao FPGA essas
funccedilotildees tornam possiacuteveis que o processador NIOS na FPGA tenha total controle sobre os
moacutedulos externos como a VGA e a SERIAL
As funccedilotildees que satildeo utilizadas para validar o funcionamento do software satildeo para a VGA os
meacutetodos de controle (alt_up_vga_draw_char_1b( char int x int y)) e (alt_up_vga_draw_pixel(
color x y))
O meacutetodo (alt_up_vga_draw_char_1b( char int x int y)) tem a funcionalidade de escrever
caracteres na tela do monitor e a descriccedilatildeo da sua assinatura ldquoparacircmetrosrdquo eacute a seguinte char eacute o
caractere que eacute escrito em alguma posiccedilatildeo na tela int x eacute a posiccedilatildeo x da tela do monitor e int y eacute
a posiccedilatildeo y da tela do monitor sendo que a resoluccedilatildeo utilizada eacute de 80x60 ou seja x natildeo pode
passar de 80 e y natildeo pode passar de 60
O meacutetodo (alt_up_vga_draw_pixel( color int x int y)) tem a funcionalidade de ldquopintarrdquo o
fundo da tela do monitor o meacutetodo de imprimir caracteres tem preferecircncia sobre este meacutetodo ou
seja os caracteres sempre ficam sob a aacuterea pintada ou seja o caractere sempre ficara em cima da
aacuterea pintada a descriccedilatildeo da assinatura deste meacutetodo eacute a seguinte color eacute a valor da cor que pode
ser um valor inteiro ou em hexadecimal para definir uma cor de alguma posiccedilatildeo da tela definidos
pelos paracircmetros x e y
As funccedilotildees que satildeo utilizadas para validar o funcionamento do software satildeo para a Serial os
meacutetodos de controle de transmissatildeo (fread( packet sizeof(packet) 1 serial_fp )) a funccedilatildeo
fread eacute utilizada para a leitura via interrupccedilatildeo dos pacotes que a controladora envia para o kit
DE2 as assinaturas do meacutetodo fread tem a seguinte composiccedilatildeo packet eacute a estrutura do pacote
que seraacute recebido o sizeof(packet) eacute o diz qual eacute o tamanho exato da estrutura criada e o
serial_fp eacute o handle da porta serial
Uma observaccedilatildeo muito importante eacute que para o total funcionamento eacute necessaacuterio 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 rs232h e rs232c onde estatildeo os meacutetodos de
controle da SERIAL e alt_up_vgah alt_up_vgac onde estatildeo os meacutetodos de controle para a
VGA Para tornar estes meacutetodos acessiacuteveis eacute preciso fazer os includes dos arquivos h no
projeto da NIOS IDE
A figura 17 mostra a utilizaccedilatildeo dos meacutetodos (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
34
int y)) utlizado para escrever os caracteres lsquoarsquo e lsquobrsquo dentro de um grupo de pixel previamente
pintado a (alt_up_vga_draw_pixel( color int x int y)) natildeo pinta um pixel de cada vez e sim
um bloco de 8x8 pixels
Figura 17 - Tela para a validaccedilatildeo dos testes com as bibliotecas graacuteficas do componente VGA
34 Recursos Necessaacuterios
A Tabela 24 apresenta os ambientes de desenvolvimento e ferramentas de software utilizadas
e na Tabela 25 as linguagens necessaacuterias Estas ferramentas foram utilizadas em ambiente
Windows Xp
Tabela 24 - Ferramentas de Desenvolvimentos e Ambientes
Software Para que foi Utilizado
Quartus II Para a definiccedilatildeo de qual o modelo de FPGA utilizado compilaccedilatildeo e simulaccedilatildeo e envio Load do NIOS para FPGA
SOPC Para definiccedilatildeo da do processador NIOS II e com quais componentes externos ele ira interagir atraveacutes dos controladores dos respectivos componentes
NIOS II IDE Para implementaccedilatildeo do firmware do processador NIOS II utilizando a linguagem em C
35
Borland C++ Builder Para desenvolvimento de ima interface de comunicaccedilatildeo via caboUSB-
BLASTER para o envio de imagem para o kit
Tabela 25 ndash Linguagens de programaccedilatildeo utilizadas
Linguagem Ferramenta C++ Borland C++ Builder VerilogVHDL Quartus II C NIOS II IDE
35 Viabilidade Teacutecnico-Econocircmica
O valor do projeto esta descrito na Tabela 26
Tabela 26 ndash Relaccedilatildeo dos Custos
DESCRICcedilAtildeO CUSTO APROXIMADO (R$) COMPONENTES ELETROcircNICOS 50000 1 Kit DE2 Cyclone II 35000 1 Monitor de Computador 35000 HORAS TRABALHADAS (400 horas) 750000 CUSTO TOTAL APROXIMADO (R$) 870000
36 Cronograma do Projeto
A tabela 27 contem as informaccedilotildees do cronograma do projeto
Tabela 27 ndash Cronograma de datas e entregas do projeto
Data Atividade a ser apresentada 050307 Entrega das propostas de projeto para avaliaccedilatildeo do colegiado 020407 Entrega das especificaccedilotildees teacutecnicas do projeto aprovado 110607 Entrega do projeto (monografia) e dos testes preliminares do mesmo 060807 Apresentaccedilatildeo preacutevia da implementaccedilatildeo do projeto especificado 011007 Apresentaccedilatildeo do projeto implementado
Qualificaccedilatildeo para a fase final 291007 Segunda apresentaccedilatildeo do projeto implementado para os que natildeo o fizeram no
dia 011006 com decreacutescimo da nota Qualificaccedilatildeo para a fase final
051107 Entrega da documentaccedilatildeo completa em espiral para a banca examinadora em 3 vias contendo a monografia manual teacutecnico manual do usuaacuterio e artigo cientiacutefico
261107 Defesa formal dos projetos com apresentaccedilatildeo oral para a banca examinadora 101207 Entrega da documentaccedilatildeo completa revisada e corrigida encadernada no
padratildeo da biblioteca (capa dura) em duas vias contendo a monografia manual teacutecnico manual do usuaacuterio e artigo cientiacutefico Entrega do CD contendo no formato WEB todo o conteuacutedo dos manuais
36
CAPIacuteTULO 4 ndash ESPECIFICACcedilAtildeO TECNICA
41 Requisitos Miacutenimos
Os requisitos miacutenimos de Hardware satildeo
Funcionamento das interfaces Serial e USB-Blaster
Funcionamento do Kit DE2
PC
Os requisitos miacutenimos de Software
Windows Xp
Quartus II
SOPC
NIOS II IDE
42 Projeto de Hardware
O hardware utilizado nesse projeto inclui componentes presentes na Placa de
Desenvolvimento Nios II - ediccedilatildeo DE2 Cyclone II EP2C35 e principalmente o hardware que seraacute
configurado na FPGA escrito em linguagem de descriccedilatildeo de hardware (HDL)
O um dos principais blocos de hardware eacute o processador NIOS II o Avalon Bus e os
controladores de componentes externos a FPGA e de comunicaccedilatildeo presentes no Kit
37
O software embarcado (firmware) estaraacute rodando nessa arquitetura Eacute uma arquitetura
completa construiacuteda com a ferramenta SOPC Builder da Altera A Figura 18 representa em
blocos os principais componentes dessa arquitetura
Figura 18 ndash Representaccedilatildeo em blocos do hardware do NIOS II
421 Funcatildeo do Touch-Screen
Outro bloco importante eacute o do Touch-Screen esta tela sensiacutevel ao toque pois como esta tela
trabalha com resistecircncia ao ser tocado em uma determinada regiatildeo uma resistecircncia eacute gerada e a
tensatildeo de saiacuteda eacute modificada a alimentaccedilatildeo desta placa eacute proveniente de sua placa controladora
a mesma placa que recebe a tensatildeo de saiacuteda modificada de acordo com a regiatildeo tocada na tela
Para verificar as caracteriacutesticas detalhadas do Touch-Screen e sua placa controlador favor ver
o Capitulo 2
422 Monitor e VGA
O Monitor inicialmente tem apenas o desenho de um botatildeo que ao ser tocado via touch
mudara a cor de toda a tela A imagem exibida no monitor tem uma resoluccedilatildeo de
38
Protoacutetipo das telas para os testes esta na Figura 19 a tela verde quando a touch natildeo eacute tocando
na regiatildeo do botatildeo de OK quando o botatildeo de OK for tocado a tela do monitor mudara de cor
ficando azul
Figura 19 ndash Tela do monitor
No Capitulo 2 estatildeo todas as caracteriacutesticas da pinagem e do conector VGA
423 Comunicaccedilatildeo serial
Entre a placa controladora do Touch-Screen e o FPGA existe uma comunicaccedilatildeo 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 manipulaccedilatildeo da imagem que eacute
mostrada no monitor
No capitulo 2 estatildeo das descriccedilotildees dos pinos e do conector da comunicaccedilatildeo Serial
O pacote serial que eacute transmitido pela placa controladora do touch-screen possui 10 bytes de
comprimento e segue a seguinte sequumlecircncia de envio
[55] [54] [] [] [] [] [] [] [] []
Sequumlecircncia dos bytes
Os dois primeiros bytes identificam o Header do pacote
O terceiro byte eacute 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 agrave posiccedilatildeo do eixo x onde a tela foi tocada
O sexto e o seacutetimo byte correspondem a posiccedilatildeo do eixo y onde a tele foi tocada
O restante os bytes identificam o tail do pacote recepcionado pelo kit DE2
39
424 Comunicaccedilatildeo USB-Blaster
Essencial para envio do projeto desenvolvido para o kit DE2 tambeacutem muito utilizado para o
debug deste projeto
435 Memoacuteria SDRAM
A memoacuteria utilizada para armazenar grandes quantidades de dados eacute a SDRAM (ver detalhes
no Capitulo 2)
Essa memoacuteria eacute muito raacutepida serviu muito bem para armazenar o firmware deste projeto
pois tem o tempo acesso ideal para ler as instruccedilotildees que utilizaram a VGA e tambeacutem eacute raacutepida o
suficiente para fazer a leitura dos dados e disponibilizar na saiacuteda VGA do kit
426 Memoacuteria FLASH
Eacute onde seraacute armazenado o firmware possui espaccedilo suficiente para isso 4MB e uma memoacuteria
mais lenta e por isso natildeo foi usada para armazenar dados para serem jogados na vga do Kit
43 Software
431 Software (Firmware)
O software tem de funccedilatildeo de utilizar as bibliotecas das controladoras dos componentes
externos a fim de controlar estes componentes de acordo com o necessaacuterio para atender o
objetivo do projeto
Ou seja uma tela inicial eacute apresentada e o usuaacuterio ao tocar na nela o kit recebe um pacote via
serial e interpreta a posiccedilatildeo da tela em que foi tocado e logo em seguida envia o resultado deste
toque para o monitor
432 Objetivos
O usuaacuterio 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 accedilatildeo de acordo com a posiccedilatildeo da tela
tocada alterando assim a imagem anterior com o resultado do toque
Interpretar o toque de usuaacuterio na tela touch-screen recepccedilatildeo do pacote via serial da placa
controladora do touch-screen tratamento do pacote e interpretaccedilatildeo das coordenadas x e y do
40
toque Realizaccedilatildeo de alguma accedilatildeo que resultara na alteraccedilatildeo da imagem da tela atual de acordo
com a funccedilatildeo em que as coordenadas foram previamente definidas para o que deve ser feito
432 Funccedilotildees
A Tabela 28 tem as principais funccedilotildees que foram implementadas para o sistema
Tabela 28 ndash Funccedilotildees do sistema firmware
FUNCcedilOtildeES Tela de um pequeno editor de texto Tratamento do sinal recebido da serial devido a um toque na tela Interpretaccedilatildeo do pacote serial e transfomaccedilatildeo para coordenadas x e y Transformaccedilatildeo das posiccedilotildees do toque na tela em alguma accedilatildeo enviando o resultado para a VGA Imagem final disponibilizada ao usuaacuterio de acordo com o toque que foi dado na tela Controlar dispositivos cada dispositivo pode ser controlado pelo seu respectivo contrador atraveacutes de seu endereccedilo base VGA SERIAL USB-BLASTER IO(Leds Switches etc) do Kit DE2
O Firmware do processador NIOS II eacute que realizaraacute a integraccedilatildeo entre hardware com
hardware Com o firmware controlando o NIOS II eacute possiacutevel interagir com os dispositivos
externos a FPGA Tornando possiacutevel a integraccedilatildeo da FPGA com a peliacutecula touch-screen e um
monitor sem a ajuda de um PC a uacutenica ajuda do pc seria para enviar dados de uma imagem para
o Kit DE2
44 Validaccedilatildeo e Testes
Inicialmente os moacutedulos da VGA e comunicaccedilatildeo SERIAL natildeo estavam funicionando
apenas o devido agrave fraca documentaccedilatildeo sobre o kit DE2 foi possiacutevel apenas fazer testes com o
Processador NIOS II pois sobre este existem bastantes documentos e exemplos que podem ser
utilizados
Nesta primeira parte foi possiacutevel testar o NIOS II para controlar o display bototildees e switchs
do kit DE2
Com o NIOS II funcionando completamente foi necessaacuterio porta-lo para o kit DE2 o que foi
simples pois como sabemos esses kits satildeo portaacuteveis entre si apenas mudando a pinagem e a
capacidade da FPGA
Com o Kit DE2 foi possiacutevel fazer os testes necessaacuterios com a comunicaccedilatildeo serial
inicialmente testada via terminal conversando diretamente com o kit foi possiacutevel fazer o
seguinte teste os caracteres que eram entrados via teclado chegavam ao kit via serial e o o
41
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 comdumpexe que eacute facilmente encontrado pelas ferramentas
de pesquisa da web e tambeacutem existem vario outros programas como este e o comdump eacute
utilizado para debug da porta serial do pc conectado diretamente na placa controladora do touch-
screen e foi a peccedila chave para o entendimento do pacote enviado pela placa controladora
Figura 20 - Cumdumpexe programa de debug da porta serial
A explicaccedilatildeo de cada byte do pacote esta explicado no item 423
Apos o entendimento completo da transmissatildeo 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 natildeo 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 ateacute o momento em que
foi testado os meacutetodos proprietaacuterios da Altera para fazer a VGA funcionar os meacutetodos esses
implementados em C
A figura 21 onde contem o teste baacutesico feito que foi a chave principal para o sucesso deste
projeto
42
Como dito no item 332 do projeto foram utilizados as funccedilotildees da controladora VGA esses
meacutetodos 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 eacute utilizado o meacutetodo alt_up_vga_draw_pixel( color int
x int y) onde color eacute a cor do bloco de pixels e x e y satildeo as coordenadas da tela onde o bloco
que seraacute pintado
Para escrever um caractere sobre um bloco de pixels pintado eacute utilizado a funccedilatildeo
alt_up_vga_draw_char_1b( char int x int y) onde char eacute o caractere a ser impresso e x e y satildeo
as coordenadas da tela onde os o caractere eacute impresso
Figura 21 - Teste baisco do funcionamento do componente VGA do kit DE2
43
CAPIacuteTULO 5 ndash VALIDACcedilAtildeO E RESULTADOS
Os resultados foram os melhores possiacuteveis pois com a utilizaccedilatildeo dos IP CORE
ldquocontroladorasrdquo dos componentes externos como VGA e SERIAL e seus meacutetodos de para
controle eacute possiacutevel controlar facilmente esses moacutedulos atraveacutes do firmware desenvolvido para o
processador NIOS que consegue realizar operaccedilotildees transparentes acessando dos meacutetodos de
controle dos moacutedulos
Apos os testes baacutesicos 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 baacutesico de editor de texto
A figura 22 mostra um teste utilizando os meacutetodos de controle disponiacuteveis para o IP CORE
da VGA para primeiramente fazer o menu da aplicaccedilatildeo desenvolvido em na linguagem C
Figura 22 ndash Menu baacutesico do editor de texto
Para desenhar o menu da figura acima foi utilizado os meacutetodos proprietaacuterios de controle da
VGA citados no capitulo 4 e tambeacutem estruturas de repeticcedilatildeo para que a tela fosse varrida e os
pixels desenhados nos respectivos lugares da tela bem como os caracteres
Na figura 23 eacute definida a seguinte estrutura em C para representar de um botatildeo
Figura 23 - Estrutura em C para representar um botatildeo
44
A figura 24 eacute a declaraccedilatildeo dos bototildees que seratildeo utilizados pelo aplicativo editor de texto
para comprovar o funcionamento do controle da interface touch-screen
Apenas o que esta dentro da marcaccedilatildeo quadrada representa os bototildees do menu da figura 23
e o restante satildeo os bototildees do teclado do editor de texto
Figura 24 - Declaraccedilatildeo dos bototildees do menu
45
A figura 25 representa o meacutetodo drawnButtonUp responsaacutevel por desenhar os bototildees na tela
de acordo com as posiccedilotildees em que foram declarados os bototildees deste meacutetodo satildeo desenhados
para parecerem que estatildeo ldquolevantadosrdquo e natildeo pressionados
Note que foram utilizados os meacutetodos proprietaacuterios de controle da VGA
alt_up_vga_draw_pixel pra pitar os pixels e alt_up_vga_draw_char_b1 para desenhar caracteres
como jaacute foi especificado no item 44 do projeto
Figura 25 ndash Meacutetodo drawButtonUp
46
O meacutetodo que desenha o caption do botatildeo se chama drawButtonText desenha os caracteres
em cima dos bototildees natildeo importa se o botatildeo esta pressionado ou natildeo
A figura 26 mostra como este meacutetodo foi implementado e ele eacute chamado no final de cada
meacutetodo onde algum tipo de botatildeo eacute desenhado quando o meacutetodo que desenha o botatildeo normal
quanto o pressionado e ateacute mesmo o do teclado
Figura 26 ndash Meacutetodo que escreve o caption de cada botatildeo
47
A figura 27 mostra o meacutetodo drawButtonDown que desenha o botatildeo pressionado ou seja
quando o usuaacuterio pressiona a regiatildeo correspondente a um botatildeo do menu no touch-screen o
mesmo redesenharaacute o botatildeo parecendo um efeito de botatildeo afundado note que no final do
meacutetodo novamente eacute chamado o meacutetodo drawButtonText que reescreveraacute o caption do botatildeo
como mostra o meacutetodo da figura 26 e esta ilustrado na figura 28
Figura 27 ndash Meacutetodo que desenha o botatildeo pressionado
48
Dependendo da aacuterea do menu que o usuaacuterio pressionar no touch-screen causar o efeito de
pressionado como mostra a figura 28
Figura 28 ndash Efeito do botatildeo de menu apertado
Na figura 29 eacute a representaccedilatildeo de quando a aacuterea correspondente ao botatildeo ldquoamarelordquo eacute
pressionada
Apos estes testes baacutesicos comprovando o funcionamento da interface graacutefica para o usuaacuterio
foi definido o restante dos componentes da tela que eacute constituiacutedo de um prompt e um teclado
qwerty que foi essencial para comprovar o perfeito funcionamento do controle da interface
touch-screen
49
51 Interface Grafica Final
A figura 29 mostra a interface final que o usuaacuterio teraacute para poder verificar o funcionamento
do controle da interface touch-screen
Figura 29 ndash Interface final touch-screen do usuaacuterio
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
511 Descriccedilatildeo do editor de texto
O menu possui 4 botoes cada um com sua respectiva funcionalidade quando o usuario
pressiona a area do botatildeo ldquoapagarrdquo uma vez entatildeo um carectere do prompt eacute apagado Quando eacute
precionado a area correspondente ao botatildeo ldquoResetrdquo todo o conteudo do prompt seraacute apagado e o
plano de fundo retornaraacute a cor branca Quando o botatildeo ldquoamarelordquo eacute pressionado o fundo da tela
passa a ser amarelo e o mesmo acontece se o usuario precionar o botatildeo verde tornando o cor de
fundo verde
50
O teclado possui 29 teclas sendo duas delas que equivalem ao ENTRA ldquoENTrdquo e ao
SPACE ldquoSPCrdquo Quando o usuario pressiona a area correspondente a algum botatildeo do teclado o
mesmo muda sua cor para azul e o seu caractere eacute disponibilizado no prompt
Essas funcionalidades nada mais satildeo do que um bom exemplo de como funciona
corretamente o controle da interface touch-screen
52 Prompt e o Teclado
A estrutura feita na linguagem C que define o prompt da figura 28 esta representado na
figura 30
Figura 30 ndash Estrutura em C para representar o prompt
A figura 31 mostra o metodo drawPrompt utilizado para desenhar na tela o prompt
Figura 31 ndash Meacutetodo que desenha o prompt
51
A estrutura do teclado eacute a mesma utilizada pela figura 23 e tambem eacute criado satildeo
inicializados na figura 24
O restante as implementaccedilotildees estatildeo disponiveis no cd deste documento
Quando algum botatildeo do teclado eacute pressionado sua cor muda para azul e sua letra
correspondente eacute escrita o prompt
A figura 32 ilustra quando o usuaacuterio aperta a letra lsquotrsquo na peliacutecula touch-screen
Figura 32 - Teste do prompt e o teclado
52
53 Controle da Interface Touch-Screen
Depois do todos os testes com o processador NIOS e a integraccedilatildeo do mesmo com os
moacutedulos externos como a porta SERIAL e a saiacuteda VGA eacute possiacutevel utilizando o touch-screen
criar uma interface amigaacutevel e faacutecil de usar para o usuaacuterio utilizando um firmware capaz de
interpretar os sinais via serial vindo da controladora do touch ao detectar que um toque foi dado
pelo usuaacuterio e realizar algumas accedilotildees que neste caso se comportam como um editor de texto
baacutesico
A figura 33 mostra como foi validado este projeto e seus moacutedulos controlando uma
interface touch-screen para chegar no resultado abaixo digitado pelo usuaacuterio comprovando o
funcionamento e viabilidade deste projeto
Figura 33 ndash 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 mudanccedilas podendo ser alterado rapidamente o tipo de
aplicaccedilatildeo ou integrado rapidamente com outro projeto
53
CAPIacuteTULO 6 - CONCLUSAtildeO
Uma das principais dificuldades no desenvolvimento deste projeto foi fazer o levantamento
da documentaccedilatildeo sobre o processador NIOS e os moacutedulos externos a FPGA do Kit DE2 Como
natildeo foi feito algum projeto antes que utilizasse a interface VGA e a SERIAL do Kit DE2 levou-
se muito tempo ateacute conseguir adquirir e ordenar o conhecimento que foi sendo adquirido ateacute
conseguir dar os primeiros passos e realizar os primeiros testes com a VGA e a SERIAL Outro
grande obstaacuteculo foi ter de descobrir que para que o NIOS controlasse os moacutedulos externos a
FGPA fosse necessaacuterio copiar os arquivos c e h dos respectivos componente para dentro do
projeto
Mas depois de todos os problemas com os moacutedulos externos solucionados cada modulo do
projeto foi sendo desenvolvido separadamente ateacute seu total funcionamento Natildeo tive dificuldades
com a linguagem da programaccedilatildeo pois o Firmware do processador NIOS eacute o C a qual mais tive
contato na faculdade
Outro desafio foi fazer a peliacutecula 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
peliacutecula natildeo 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 possiacutevel
comeccedilar a fazer os testes necessaacuterios para prosseguir com o projeto aprender como o a peliacutecula
identifica um toque e manda este sinal para a controladora e a controladora transforma este sinal
em um sinal serial que eacute 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 accedilotildees
que as coordenadas jaacute estatildeo previamente calibradas no firmware para fazer bem como mudar de
cor a tela fazer o efeito de um botatildeo subindo e descendo etc
Varias vezes o projeto parou de funcionar entatildeo 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 memoacuteria abundante etc uma das
facilidades eacute a faacutecil alteraccedilatildeo do projeto podendo ser integrado a outro ou ateacute mesmo alterado
para realizar outros tipos de accedilotildees com o touch-screen
Existem vaacuterios melhoramentos que podem ser executados no projeto um deles eacute tentar
interpretar de uma maneira diferente os valores do eixo y pois do jeito que esta a resoluccedilatildeo do
eixo y esta muito baixa dificultando o reconhecimento de toques em aacutereas pequenas Talvez a
inclusatildeo de mais alguns bytes no pacote de leitura da serial resolva o problema
54
Uma ideacuteia para um proacuteximo projeto que use a interface touch-screen poderia ser a
integraccedilatildeo com o projeto do nosso colega Roberto Junqueira ou a desenvolvimento de uma
placa controladora para o touch-screen
Este trabalho eacute uma modesta contribuiccedilatildeo para o uso de FPGAs e do processador embarcado
NIOS implementado em VHDL pela Altera que acredito que vai abrir vaacuterios caminhos pois
com este projeto alguns caminhos ficaram mais faacuteceis de percorrer daqui para a frente
55
CAPIacuteTULO 7 - REFEREcircNCIAS BIBLIOGRAacuteFICAS
AMORE Roberto drsquo VHDL Descriccedilatildeo e Sintese de Circuitos Rio de Janeiro ed LTC
2005
Elotouch Touch-Screen e Controladora Descriccedilatildeo do funcionamento e descriccedilatildeo
tecnologia Touch-Screen lthttpwwwelotouchcombrgt Acesso em fevereiro de 2007
ALTERA University Program IP Cores Instalaccedilatildeo de IP Cores e referencias sobre os
componentes dos kits DE1 e DE2 Disponivel em lthttpwwwalteracomeducationunivip-
coresunv-ip-coreshtmlgt Acesso em abril de 2007
ALTERA NIOS II Documentaccedilatildeo sobre o pprocessador embracado NIO II Disponivel
em lthttpwwwalteracomproductsipprocessorsipm-indexjspgt Acesso em Abril de 2007
ALTERA Development amp Education Board 2 (DE2) Manual do usuario Disponivel no
de que acompanha o Kit DE2 ltDE2_user_manualDE2_UserManualpdfgt Acesso em
fevereiro de 2007
23
A Tabela 9 mostra a descriccedilatildeo do Bloco Memory Flash
Tabela 9 ndash Descriccedilatildeo da Memoria Flash
Memory Flash
4-Mbyte NAND Flash memory 8-bit data bus Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 10 mostra a descriccedilatildeo do Bloco SD card socket
Tabela 10 - Descriccedilatildeo do SD card socket
SD card socket Fornece o modo SPI para o acesso ao cartatildeo SD Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 11 mostra a descriccedilatildeo 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) Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
A Tabela 12 mostra a descriccedilatildeo dos Clock inputs
Tabela 12 - Descriccedilatildeo das entradas de Clocks
Clock inputs Oscilador de 50 Mhz Oscilador 27 Mhz Entrada para clock
externo
A Tabela 13 mostra a descriccedilatildeo do Aacuteudio CODEC
Tabela 13 - Descriccedilatildeo do Aacuteudio CODEC
Aacuteudio CODEC 4-Mbyte NAND Flash memory 8-bit data bus Acessiacutevel como memoacuteria para o processador Nios II e pelo painel de controle do DE2
24
A Tabela 14 mostra a descriccedilatildeo do Bloco VGA DAC
Tabela 14 ndash Descriccedilatildeo da saiacuteda VGA DAC
VGA
DAC
Usa 4 bits DAC para cada cor (RGB) Com 15 pinos no conector VGA convencional (fecircmea) Suporta uma resoluccedilatildeo de 640 x 480 com um refresh de ateacute 100Hz Pode ser usando com o FPGA Cyclone II para implementar um Encoder para TV
A Tabela 15 mostra a descriccedilatildeo do Bloco Serial Ports amp PS2
Tabela 15 ndash Descriccedilatildeo da Serial Port e PS2
Serial Ports amp PS2 Uma porta RS-232
Uma posta PS2 Um conector Serial para a porta do RS-232 Conector PS2 para conectar um mouse ou teclado ao DE2
A Tabela 16 mostra a descriccedilatildeo do Bloco dos Two 40 - pin expansion headers
Tabela 16 ndash Descriccedilatildeo dos conectores de expansatildeo de 40 pinos
Two 40 - pin expansion headers 72 pinos de IO do Clyclone II bem como 8 power e groundrsquos satildeo trazidos aos 2 conectores de expansatildeo de 40 pinos cada Os conectores de 40 pinos tambeacutem aceitam os cabos IDE de 40 pinos Proteccedilatildeo resistiva eacute fornecida
233 Endereccedilo das Pinagens dos Componentes usados no Projeto
2331 PushButtons
A Figura 11 mostra uma foto dos PushButtons do kit Key[30] a ordem eacute o button da
esquerda eacute o mais significativo e o mais de direita o menos signigicativo
Figura 11 ndash Os 4 PushButtons do DE2Key[30] (DE2_UserManualpdf contrado no cd do kit)
25
A Tabela 17 mostra os pinos da FPGA aos PushButtons
Tabela 17 ndash Pinos da FPGA referentes a cada PushButton (DE2_UserManualpdf contrado no cd do kit)
2332 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 ndash Modulo de displays de 7 segmentos (DE2_UserManualpdf encontrado no cd do kit)
Figura 13 ndash Index de um display (DE2_UserManualpdf encontrado no cd do
kit)
26
A Tabela 18 mostra os pinos da FPGA referente a cada segmento dos displays de 7
segmentos do modulo
Tabela 18 ndash Pinos da FPGA referentes a cada segmento dos Displays do modulo
27
2333 VGA
A Figura 14 esta em forma de onda da temporizaccedilatildeo horizontal e vertical da VGA do Kit
DE2
Figura 14 ndash Temporizaccedilatildeo horizontal da VGA
A Tabela 19 mostra a especificaccedilatildeo da temporizaccedilatildeo horizontal da VGA
Tabela 19 ndash Especificaccedilatildeo da temporizaccedilatildeo horizontal da VGA
A Tabela 20 mostra a especificaccedilatildeo da temporizaccedilatildeo vertical da VGA
Tabela 20 ndash Especificaccedilatildeo da temporizaccedilatildeo vertical da VGA
28
A Tabela 21 mostra os pinos da FPGA referente a cada pino de saida do conector VGA do
Kit DE2
Tabela 21 ndash Pinos da FPGA referentes a saiacuteda do Conector VGA do Kit
29
CAPIacuteTULO 3 ndash ESPECIFICACcedilAtildeO TECNICA
Nesse capiacutetulo tem-se uma descriccedilatildeo dos principais moacutedulos do projeto Satildeo eles Software
Firmware e Hardware
Inicialmente eacute apresentada a visatildeo geral do sistema e a descriccedilatildeo funcional de cada moacutedulo
A Figura 15 apresenta o diagrama em blocos do sistema
Figura 15 - Moacutedulos do projeto
31 Descriccedilatildeo de Software
O Software eacute uma das interfaces com o usuaacuterio
312 Diagrama de Blocos do Software
30
312 Modulo do PC
Neste modulo eacute 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
32 Descriccedilatildeo de Hardware
321 Modulo Touch-Screen
O usuaacuterio ao tocar o Touch-Screen (AT4 touch-screen resistivo de 4 fios) ocorre uma
mudanccedila nas tensotildees do eixo X e do eixo Y devido a resistecircncia gerada pelo ao toque do usuaacuterio
em uma determinada regiatildeo da tela essa mudanccedila de tensatildeo eacute interpretada pela placa
controladora COACh IIs do Touch-Screen e enviada via serial para o Kit DE2 que interpretaraacute
os dados e faraacute o devido processamento
322 Modulo FPGA
O Hardware corresponde tanto aos componentes fiacutesicos presentes no kit de desenvolvimento
quanto aos componentes que seratildeo configurados na FPGA Satildeo diversos componentes escritos
em linguagem de descriccedilatildeo de hardware
No um dos principais componentes de hardware utilizado modulo eacute o processador NIOS II
para se ter uma ideacuteia o processador NIOS II eacute capaz gerenciar os dispositivos externos a FPGA
utilizando controladores de memoacuterias controladores de VGA entre outros E tambeacutem eacute possiacutevel
o proacuteprio usuaacuterio criar seu componente para ser controlado atraveacutes do processador NIOS
II(Altera 2007)
31
3221 O Processador NIOS II
Atraveacutes do software SOPC da ALTERA foi possiacutevel montar a arquitetura de hardware do
processador NIOS II bem como especificar as interfaces que ele iraacute controlar atraveacutes do firmwar
feito no NIOS II IDE
Na Tabela 22 eacute no campo Module Name onde estatildeo os moacutedulos que foram usados para
definir o processador NIOS II e os componentes externos que ele iraacute controlar e no campo
Description esta a descriccedilatildeo do nome de cada modulo
Tabela 22 ndash Moacutedulos dos componentes e suas descriccedilotildees
3222 Firmware para o NIOS II
O Firmware foi feito utilizando a linguagem C utilizando a ferramenta NIOS II IDE Atraveacutes
do firmware eacute possiacutevel 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 graacuteficas para controlar a vga e serial e
USB-BLASTER eacute encarregado em enviar todo o desenvolvimento do projeto para o Kit DE2
323 Configuraccedilatildeo da FPGA via JTAG
Depois de configurado o hardware do processador NIOS II eacute preciso fazer o load do NIOS
para a FPGA e para que isso aconteccedila eacute necessaacuterio que atraveacutes do software Quartus II da
ALTERA utilizando a interface JTAG utilizando o cabo USB-BLASTER
32
324 Comunicaccedilatildeo entre FPGA e o Touch-Screen
Para comunicaccedilatildeo entre dos dois hardwares Touch-Screen e o FPGA eacute utilizando uma
interface serial RS-232
A configuraccedilatildeo da interface eacute a seguinte
Bits de dados 8
Taxa de dados 5600(bps)
A Tabela 23 mostra a relaccedilatildeo dos pinos da porta serial com os pinos da FPGA
Tabela 23 ndash Pinos da FPGA referente agrave pinagem da interface Serial
E a Figura 16 mostra o desenho correspondente da interface serial
Figura 16 ndash Conector da interface serial do kit DE2
33 Especificaccedilatildeo de Validaccedilatildeo
331 Validaccedilatildeo de Hardware
A validade do hardware se faz com a anaacutelise de todos os moacutedulos envolvidos
As necessidades satildeo estudadas os componentes externos ao FPGA satildeo selecionados de
acordo o processador nios e os controladores dos moacutedulos externos como VGA e SERIAL satildeo
enviados ao modulo FPGA
Os resultados obtidos na tela do monitor e a recepccedilatildeo dos dados pela serial comprovam o
funcionamento do modulo de comunicaccedilatildeo da serial e vga
33
332 Validaccedilatildeo de Software
A validaccedilatildeo do controle da interface touch-screen faz-se a partir dos resultados obtidos das
funccedilotildees escritas na linguagem C especificas para cada componente externos ao FPGA essas
funccedilotildees tornam possiacuteveis que o processador NIOS na FPGA tenha total controle sobre os
moacutedulos externos como a VGA e a SERIAL
As funccedilotildees que satildeo utilizadas para validar o funcionamento do software satildeo para a VGA os
meacutetodos de controle (alt_up_vga_draw_char_1b( char int x int y)) e (alt_up_vga_draw_pixel(
color x y))
O meacutetodo (alt_up_vga_draw_char_1b( char int x int y)) tem a funcionalidade de escrever
caracteres na tela do monitor e a descriccedilatildeo da sua assinatura ldquoparacircmetrosrdquo eacute a seguinte char eacute o
caractere que eacute escrito em alguma posiccedilatildeo na tela int x eacute a posiccedilatildeo x da tela do monitor e int y eacute
a posiccedilatildeo y da tela do monitor sendo que a resoluccedilatildeo utilizada eacute de 80x60 ou seja x natildeo pode
passar de 80 e y natildeo pode passar de 60
O meacutetodo (alt_up_vga_draw_pixel( color int x int y)) tem a funcionalidade de ldquopintarrdquo o
fundo da tela do monitor o meacutetodo de imprimir caracteres tem preferecircncia sobre este meacutetodo ou
seja os caracteres sempre ficam sob a aacuterea pintada ou seja o caractere sempre ficara em cima da
aacuterea pintada a descriccedilatildeo da assinatura deste meacutetodo eacute a seguinte color eacute a valor da cor que pode
ser um valor inteiro ou em hexadecimal para definir uma cor de alguma posiccedilatildeo da tela definidos
pelos paracircmetros x e y
As funccedilotildees que satildeo utilizadas para validar o funcionamento do software satildeo para a Serial os
meacutetodos de controle de transmissatildeo (fread( packet sizeof(packet) 1 serial_fp )) a funccedilatildeo
fread eacute utilizada para a leitura via interrupccedilatildeo dos pacotes que a controladora envia para o kit
DE2 as assinaturas do meacutetodo fread tem a seguinte composiccedilatildeo packet eacute a estrutura do pacote
que seraacute recebido o sizeof(packet) eacute o diz qual eacute o tamanho exato da estrutura criada e o
serial_fp eacute o handle da porta serial
Uma observaccedilatildeo muito importante eacute que para o total funcionamento eacute necessaacuterio 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 rs232h e rs232c onde estatildeo os meacutetodos de
controle da SERIAL e alt_up_vgah alt_up_vgac onde estatildeo os meacutetodos de controle para a
VGA Para tornar estes meacutetodos acessiacuteveis eacute preciso fazer os includes dos arquivos h no
projeto da NIOS IDE
A figura 17 mostra a utilizaccedilatildeo dos meacutetodos (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
34
int y)) utlizado para escrever os caracteres lsquoarsquo e lsquobrsquo dentro de um grupo de pixel previamente
pintado a (alt_up_vga_draw_pixel( color int x int y)) natildeo pinta um pixel de cada vez e sim
um bloco de 8x8 pixels
Figura 17 - Tela para a validaccedilatildeo dos testes com as bibliotecas graacuteficas do componente VGA
34 Recursos Necessaacuterios
A Tabela 24 apresenta os ambientes de desenvolvimento e ferramentas de software utilizadas
e na Tabela 25 as linguagens necessaacuterias Estas ferramentas foram utilizadas em ambiente
Windows Xp
Tabela 24 - Ferramentas de Desenvolvimentos e Ambientes
Software Para que foi Utilizado
Quartus II Para a definiccedilatildeo de qual o modelo de FPGA utilizado compilaccedilatildeo e simulaccedilatildeo e envio Load do NIOS para FPGA
SOPC Para definiccedilatildeo da do processador NIOS II e com quais componentes externos ele ira interagir atraveacutes dos controladores dos respectivos componentes
NIOS II IDE Para implementaccedilatildeo do firmware do processador NIOS II utilizando a linguagem em C
35
Borland C++ Builder Para desenvolvimento de ima interface de comunicaccedilatildeo via caboUSB-
BLASTER para o envio de imagem para o kit
Tabela 25 ndash Linguagens de programaccedilatildeo utilizadas
Linguagem Ferramenta C++ Borland C++ Builder VerilogVHDL Quartus II C NIOS II IDE
35 Viabilidade Teacutecnico-Econocircmica
O valor do projeto esta descrito na Tabela 26
Tabela 26 ndash Relaccedilatildeo dos Custos
DESCRICcedilAtildeO CUSTO APROXIMADO (R$) COMPONENTES ELETROcircNICOS 50000 1 Kit DE2 Cyclone II 35000 1 Monitor de Computador 35000 HORAS TRABALHADAS (400 horas) 750000 CUSTO TOTAL APROXIMADO (R$) 870000
36 Cronograma do Projeto
A tabela 27 contem as informaccedilotildees do cronograma do projeto
Tabela 27 ndash Cronograma de datas e entregas do projeto
Data Atividade a ser apresentada 050307 Entrega das propostas de projeto para avaliaccedilatildeo do colegiado 020407 Entrega das especificaccedilotildees teacutecnicas do projeto aprovado 110607 Entrega do projeto (monografia) e dos testes preliminares do mesmo 060807 Apresentaccedilatildeo preacutevia da implementaccedilatildeo do projeto especificado 011007 Apresentaccedilatildeo do projeto implementado
Qualificaccedilatildeo para a fase final 291007 Segunda apresentaccedilatildeo do projeto implementado para os que natildeo o fizeram no
dia 011006 com decreacutescimo da nota Qualificaccedilatildeo para a fase final
051107 Entrega da documentaccedilatildeo completa em espiral para a banca examinadora em 3 vias contendo a monografia manual teacutecnico manual do usuaacuterio e artigo cientiacutefico
261107 Defesa formal dos projetos com apresentaccedilatildeo oral para a banca examinadora 101207 Entrega da documentaccedilatildeo completa revisada e corrigida encadernada no
padratildeo da biblioteca (capa dura) em duas vias contendo a monografia manual teacutecnico manual do usuaacuterio e artigo cientiacutefico Entrega do CD contendo no formato WEB todo o conteuacutedo dos manuais
36
CAPIacuteTULO 4 ndash ESPECIFICACcedilAtildeO TECNICA
41 Requisitos Miacutenimos
Os requisitos miacutenimos de Hardware satildeo
Funcionamento das interfaces Serial e USB-Blaster
Funcionamento do Kit DE2
PC
Os requisitos miacutenimos de Software
Windows Xp
Quartus II
SOPC
NIOS II IDE
42 Projeto de Hardware
O hardware utilizado nesse projeto inclui componentes presentes na Placa de
Desenvolvimento Nios II - ediccedilatildeo DE2 Cyclone II EP2C35 e principalmente o hardware que seraacute
configurado na FPGA escrito em linguagem de descriccedilatildeo de hardware (HDL)
O um dos principais blocos de hardware eacute o processador NIOS II o Avalon Bus e os
controladores de componentes externos a FPGA e de comunicaccedilatildeo presentes no Kit
37
O software embarcado (firmware) estaraacute rodando nessa arquitetura Eacute uma arquitetura
completa construiacuteda com a ferramenta SOPC Builder da Altera A Figura 18 representa em
blocos os principais componentes dessa arquitetura
Figura 18 ndash Representaccedilatildeo em blocos do hardware do NIOS II
421 Funcatildeo do Touch-Screen
Outro bloco importante eacute o do Touch-Screen esta tela sensiacutevel ao toque pois como esta tela
trabalha com resistecircncia ao ser tocado em uma determinada regiatildeo uma resistecircncia eacute gerada e a
tensatildeo de saiacuteda eacute modificada a alimentaccedilatildeo desta placa eacute proveniente de sua placa controladora
a mesma placa que recebe a tensatildeo de saiacuteda modificada de acordo com a regiatildeo tocada na tela
Para verificar as caracteriacutesticas detalhadas do Touch-Screen e sua placa controlador favor ver
o Capitulo 2
422 Monitor e VGA
O Monitor inicialmente tem apenas o desenho de um botatildeo que ao ser tocado via touch
mudara a cor de toda a tela A imagem exibida no monitor tem uma resoluccedilatildeo de
38
Protoacutetipo das telas para os testes esta na Figura 19 a tela verde quando a touch natildeo eacute tocando
na regiatildeo do botatildeo de OK quando o botatildeo de OK for tocado a tela do monitor mudara de cor
ficando azul
Figura 19 ndash Tela do monitor
No Capitulo 2 estatildeo todas as caracteriacutesticas da pinagem e do conector VGA
423 Comunicaccedilatildeo serial
Entre a placa controladora do Touch-Screen e o FPGA existe uma comunicaccedilatildeo 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 manipulaccedilatildeo da imagem que eacute
mostrada no monitor
No capitulo 2 estatildeo das descriccedilotildees dos pinos e do conector da comunicaccedilatildeo Serial
O pacote serial que eacute transmitido pela placa controladora do touch-screen possui 10 bytes de
comprimento e segue a seguinte sequumlecircncia de envio
[55] [54] [] [] [] [] [] [] [] []
Sequumlecircncia dos bytes
Os dois primeiros bytes identificam o Header do pacote
O terceiro byte eacute 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 agrave posiccedilatildeo do eixo x onde a tela foi tocada
O sexto e o seacutetimo byte correspondem a posiccedilatildeo do eixo y onde a tele foi tocada
O restante os bytes identificam o tail do pacote recepcionado pelo kit DE2
39
424 Comunicaccedilatildeo USB-Blaster
Essencial para envio do projeto desenvolvido para o kit DE2 tambeacutem muito utilizado para o
debug deste projeto
435 Memoacuteria SDRAM
A memoacuteria utilizada para armazenar grandes quantidades de dados eacute a SDRAM (ver detalhes
no Capitulo 2)
Essa memoacuteria eacute muito raacutepida serviu muito bem para armazenar o firmware deste projeto
pois tem o tempo acesso ideal para ler as instruccedilotildees que utilizaram a VGA e tambeacutem eacute raacutepida o
suficiente para fazer a leitura dos dados e disponibilizar na saiacuteda VGA do kit
426 Memoacuteria FLASH
Eacute onde seraacute armazenado o firmware possui espaccedilo suficiente para isso 4MB e uma memoacuteria
mais lenta e por isso natildeo foi usada para armazenar dados para serem jogados na vga do Kit
43 Software
431 Software (Firmware)
O software tem de funccedilatildeo de utilizar as bibliotecas das controladoras dos componentes
externos a fim de controlar estes componentes de acordo com o necessaacuterio para atender o
objetivo do projeto
Ou seja uma tela inicial eacute apresentada e o usuaacuterio ao tocar na nela o kit recebe um pacote via
serial e interpreta a posiccedilatildeo da tela em que foi tocado e logo em seguida envia o resultado deste
toque para o monitor
432 Objetivos
O usuaacuterio 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 accedilatildeo de acordo com a posiccedilatildeo da tela
tocada alterando assim a imagem anterior com o resultado do toque
Interpretar o toque de usuaacuterio na tela touch-screen recepccedilatildeo do pacote via serial da placa
controladora do touch-screen tratamento do pacote e interpretaccedilatildeo das coordenadas x e y do
40
toque Realizaccedilatildeo de alguma accedilatildeo que resultara na alteraccedilatildeo da imagem da tela atual de acordo
com a funccedilatildeo em que as coordenadas foram previamente definidas para o que deve ser feito
432 Funccedilotildees
A Tabela 28 tem as principais funccedilotildees que foram implementadas para o sistema
Tabela 28 ndash Funccedilotildees do sistema firmware
FUNCcedilOtildeES Tela de um pequeno editor de texto Tratamento do sinal recebido da serial devido a um toque na tela Interpretaccedilatildeo do pacote serial e transfomaccedilatildeo para coordenadas x e y Transformaccedilatildeo das posiccedilotildees do toque na tela em alguma accedilatildeo enviando o resultado para a VGA Imagem final disponibilizada ao usuaacuterio de acordo com o toque que foi dado na tela Controlar dispositivos cada dispositivo pode ser controlado pelo seu respectivo contrador atraveacutes de seu endereccedilo base VGA SERIAL USB-BLASTER IO(Leds Switches etc) do Kit DE2
O Firmware do processador NIOS II eacute que realizaraacute a integraccedilatildeo entre hardware com
hardware Com o firmware controlando o NIOS II eacute possiacutevel interagir com os dispositivos
externos a FPGA Tornando possiacutevel a integraccedilatildeo da FPGA com a peliacutecula touch-screen e um
monitor sem a ajuda de um PC a uacutenica ajuda do pc seria para enviar dados de uma imagem para
o Kit DE2
44 Validaccedilatildeo e Testes
Inicialmente os moacutedulos da VGA e comunicaccedilatildeo SERIAL natildeo estavam funicionando
apenas o devido agrave fraca documentaccedilatildeo sobre o kit DE2 foi possiacutevel apenas fazer testes com o
Processador NIOS II pois sobre este existem bastantes documentos e exemplos que podem ser
utilizados
Nesta primeira parte foi possiacutevel testar o NIOS II para controlar o display bototildees e switchs
do kit DE2
Com o NIOS II funcionando completamente foi necessaacuterio porta-lo para o kit DE2 o que foi
simples pois como sabemos esses kits satildeo portaacuteveis entre si apenas mudando a pinagem e a
capacidade da FPGA
Com o Kit DE2 foi possiacutevel fazer os testes necessaacuterios com a comunicaccedilatildeo serial
inicialmente testada via terminal conversando diretamente com o kit foi possiacutevel fazer o
seguinte teste os caracteres que eram entrados via teclado chegavam ao kit via serial e o o
41
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 comdumpexe que eacute facilmente encontrado pelas ferramentas
de pesquisa da web e tambeacutem existem vario outros programas como este e o comdump eacute
utilizado para debug da porta serial do pc conectado diretamente na placa controladora do touch-
screen e foi a peccedila chave para o entendimento do pacote enviado pela placa controladora
Figura 20 - Cumdumpexe programa de debug da porta serial
A explicaccedilatildeo de cada byte do pacote esta explicado no item 423
Apos o entendimento completo da transmissatildeo 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 natildeo 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 ateacute o momento em que
foi testado os meacutetodos proprietaacuterios da Altera para fazer a VGA funcionar os meacutetodos esses
implementados em C
A figura 21 onde contem o teste baacutesico feito que foi a chave principal para o sucesso deste
projeto
42
Como dito no item 332 do projeto foram utilizados as funccedilotildees da controladora VGA esses
meacutetodos 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 eacute utilizado o meacutetodo alt_up_vga_draw_pixel( color int
x int y) onde color eacute a cor do bloco de pixels e x e y satildeo as coordenadas da tela onde o bloco
que seraacute pintado
Para escrever um caractere sobre um bloco de pixels pintado eacute utilizado a funccedilatildeo
alt_up_vga_draw_char_1b( char int x int y) onde char eacute o caractere a ser impresso e x e y satildeo
as coordenadas da tela onde os o caractere eacute impresso
Figura 21 - Teste baisco do funcionamento do componente VGA do kit DE2
43
CAPIacuteTULO 5 ndash VALIDACcedilAtildeO E RESULTADOS
Os resultados foram os melhores possiacuteveis pois com a utilizaccedilatildeo dos IP CORE
ldquocontroladorasrdquo dos componentes externos como VGA e SERIAL e seus meacutetodos de para
controle eacute possiacutevel controlar facilmente esses moacutedulos atraveacutes do firmware desenvolvido para o
processador NIOS que consegue realizar operaccedilotildees transparentes acessando dos meacutetodos de
controle dos moacutedulos
Apos os testes baacutesicos 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 baacutesico de editor de texto
A figura 22 mostra um teste utilizando os meacutetodos de controle disponiacuteveis para o IP CORE
da VGA para primeiramente fazer o menu da aplicaccedilatildeo desenvolvido em na linguagem C
Figura 22 ndash Menu baacutesico do editor de texto
Para desenhar o menu da figura acima foi utilizado os meacutetodos proprietaacuterios de controle da
VGA citados no capitulo 4 e tambeacutem estruturas de repeticcedilatildeo para que a tela fosse varrida e os
pixels desenhados nos respectivos lugares da tela bem como os caracteres
Na figura 23 eacute definida a seguinte estrutura em C para representar de um botatildeo
Figura 23 - Estrutura em C para representar um botatildeo
44
A figura 24 eacute a declaraccedilatildeo dos bototildees que seratildeo utilizados pelo aplicativo editor de texto
para comprovar o funcionamento do controle da interface touch-screen
Apenas o que esta dentro da marcaccedilatildeo quadrada representa os bototildees do menu da figura 23
e o restante satildeo os bototildees do teclado do editor de texto
Figura 24 - Declaraccedilatildeo dos bototildees do menu
45
A figura 25 representa o meacutetodo drawnButtonUp responsaacutevel por desenhar os bototildees na tela
de acordo com as posiccedilotildees em que foram declarados os bototildees deste meacutetodo satildeo desenhados
para parecerem que estatildeo ldquolevantadosrdquo e natildeo pressionados
Note que foram utilizados os meacutetodos proprietaacuterios de controle da VGA
alt_up_vga_draw_pixel pra pitar os pixels e alt_up_vga_draw_char_b1 para desenhar caracteres
como jaacute foi especificado no item 44 do projeto
Figura 25 ndash Meacutetodo drawButtonUp
46
O meacutetodo que desenha o caption do botatildeo se chama drawButtonText desenha os caracteres
em cima dos bototildees natildeo importa se o botatildeo esta pressionado ou natildeo
A figura 26 mostra como este meacutetodo foi implementado e ele eacute chamado no final de cada
meacutetodo onde algum tipo de botatildeo eacute desenhado quando o meacutetodo que desenha o botatildeo normal
quanto o pressionado e ateacute mesmo o do teclado
Figura 26 ndash Meacutetodo que escreve o caption de cada botatildeo
47
A figura 27 mostra o meacutetodo drawButtonDown que desenha o botatildeo pressionado ou seja
quando o usuaacuterio pressiona a regiatildeo correspondente a um botatildeo do menu no touch-screen o
mesmo redesenharaacute o botatildeo parecendo um efeito de botatildeo afundado note que no final do
meacutetodo novamente eacute chamado o meacutetodo drawButtonText que reescreveraacute o caption do botatildeo
como mostra o meacutetodo da figura 26 e esta ilustrado na figura 28
Figura 27 ndash Meacutetodo que desenha o botatildeo pressionado
48
Dependendo da aacuterea do menu que o usuaacuterio pressionar no touch-screen causar o efeito de
pressionado como mostra a figura 28
Figura 28 ndash Efeito do botatildeo de menu apertado
Na figura 29 eacute a representaccedilatildeo de quando a aacuterea correspondente ao botatildeo ldquoamarelordquo eacute
pressionada
Apos estes testes baacutesicos comprovando o funcionamento da interface graacutefica para o usuaacuterio
foi definido o restante dos componentes da tela que eacute constituiacutedo de um prompt e um teclado
qwerty que foi essencial para comprovar o perfeito funcionamento do controle da interface
touch-screen
49
51 Interface Grafica Final
A figura 29 mostra a interface final que o usuaacuterio teraacute para poder verificar o funcionamento
do controle da interface touch-screen
Figura 29 ndash Interface final touch-screen do usuaacuterio
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
511 Descriccedilatildeo do editor de texto
O menu possui 4 botoes cada um com sua respectiva funcionalidade quando o usuario
pressiona a area do botatildeo ldquoapagarrdquo uma vez entatildeo um carectere do prompt eacute apagado Quando eacute
precionado a area correspondente ao botatildeo ldquoResetrdquo todo o conteudo do prompt seraacute apagado e o
plano de fundo retornaraacute a cor branca Quando o botatildeo ldquoamarelordquo eacute pressionado o fundo da tela
passa a ser amarelo e o mesmo acontece se o usuario precionar o botatildeo verde tornando o cor de
fundo verde
50
O teclado possui 29 teclas sendo duas delas que equivalem ao ENTRA ldquoENTrdquo e ao
SPACE ldquoSPCrdquo Quando o usuario pressiona a area correspondente a algum botatildeo do teclado o
mesmo muda sua cor para azul e o seu caractere eacute disponibilizado no prompt
Essas funcionalidades nada mais satildeo do que um bom exemplo de como funciona
corretamente o controle da interface touch-screen
52 Prompt e o Teclado
A estrutura feita na linguagem C que define o prompt da figura 28 esta representado na
figura 30
Figura 30 ndash Estrutura em C para representar o prompt
A figura 31 mostra o metodo drawPrompt utilizado para desenhar na tela o prompt
Figura 31 ndash Meacutetodo que desenha o prompt
51
A estrutura do teclado eacute a mesma utilizada pela figura 23 e tambem eacute criado satildeo
inicializados na figura 24
O restante as implementaccedilotildees estatildeo disponiveis no cd deste documento
Quando algum botatildeo do teclado eacute pressionado sua cor muda para azul e sua letra
correspondente eacute escrita o prompt
A figura 32 ilustra quando o usuaacuterio aperta a letra lsquotrsquo na peliacutecula touch-screen
Figura 32 - Teste do prompt e o teclado
52
53 Controle da Interface Touch-Screen
Depois do todos os testes com o processador NIOS e a integraccedilatildeo do mesmo com os
moacutedulos externos como a porta SERIAL e a saiacuteda VGA eacute possiacutevel utilizando o touch-screen
criar uma interface amigaacutevel e faacutecil de usar para o usuaacuterio utilizando um firmware capaz de
interpretar os sinais via serial vindo da controladora do touch ao detectar que um toque foi dado
pelo usuaacuterio e realizar algumas accedilotildees que neste caso se comportam como um editor de texto
baacutesico
A figura 33 mostra como foi validado este projeto e seus moacutedulos controlando uma
interface touch-screen para chegar no resultado abaixo digitado pelo usuaacuterio comprovando o
funcionamento e viabilidade deste projeto
Figura 33 ndash 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 mudanccedilas podendo ser alterado rapidamente o tipo de
aplicaccedilatildeo ou integrado rapidamente com outro projeto
53
CAPIacuteTULO 6 - CONCLUSAtildeO
Uma das principais dificuldades no desenvolvimento deste projeto foi fazer o levantamento
da documentaccedilatildeo sobre o processador NIOS e os moacutedulos externos a FPGA do Kit DE2 Como
natildeo foi feito algum projeto antes que utilizasse a interface VGA e a SERIAL do Kit DE2 levou-
se muito tempo ateacute conseguir adquirir e ordenar o conhecimento que foi sendo adquirido ateacute
conseguir dar os primeiros passos e realizar os primeiros testes com a VGA e a SERIAL Outro
grande obstaacuteculo foi ter de descobrir que para que o NIOS controlasse os moacutedulos externos a
FGPA fosse necessaacuterio copiar os arquivos c e h dos respectivos componente para dentro do
projeto
Mas depois de todos os problemas com os moacutedulos externos solucionados cada modulo do
projeto foi sendo desenvolvido separadamente ateacute seu total funcionamento Natildeo tive dificuldades
com a linguagem da programaccedilatildeo pois o Firmware do processador NIOS eacute o C a qual mais tive
contato na faculdade
Outro desafio foi fazer a peliacutecula 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
peliacutecula natildeo 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 possiacutevel
comeccedilar a fazer os testes necessaacuterios para prosseguir com o projeto aprender como o a peliacutecula
identifica um toque e manda este sinal para a controladora e a controladora transforma este sinal
em um sinal serial que eacute 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 accedilotildees
que as coordenadas jaacute estatildeo previamente calibradas no firmware para fazer bem como mudar de
cor a tela fazer o efeito de um botatildeo subindo e descendo etc
Varias vezes o projeto parou de funcionar entatildeo 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 memoacuteria abundante etc uma das
facilidades eacute a faacutecil alteraccedilatildeo do projeto podendo ser integrado a outro ou ateacute mesmo alterado
para realizar outros tipos de accedilotildees com o touch-screen
Existem vaacuterios melhoramentos que podem ser executados no projeto um deles eacute tentar
interpretar de uma maneira diferente os valores do eixo y pois do jeito que esta a resoluccedilatildeo do
eixo y esta muito baixa dificultando o reconhecimento de toques em aacutereas pequenas Talvez a
inclusatildeo de mais alguns bytes no pacote de leitura da serial resolva o problema
54
Uma ideacuteia para um proacuteximo projeto que use a interface touch-screen poderia ser a
integraccedilatildeo com o projeto do nosso colega Roberto Junqueira ou a desenvolvimento de uma
placa controladora para o touch-screen
Este trabalho eacute uma modesta contribuiccedilatildeo para o uso de FPGAs e do processador embarcado
NIOS implementado em VHDL pela Altera que acredito que vai abrir vaacuterios caminhos pois
com este projeto alguns caminhos ficaram mais faacuteceis de percorrer daqui para a frente
55
CAPIacuteTULO 7 - REFEREcircNCIAS BIBLIOGRAacuteFICAS
AMORE Roberto drsquo VHDL Descriccedilatildeo e Sintese de Circuitos Rio de Janeiro ed LTC
2005
Elotouch Touch-Screen e Controladora Descriccedilatildeo do funcionamento e descriccedilatildeo
tecnologia Touch-Screen lthttpwwwelotouchcombrgt Acesso em fevereiro de 2007
ALTERA University Program IP Cores Instalaccedilatildeo de IP Cores e referencias sobre os
componentes dos kits DE1 e DE2 Disponivel em lthttpwwwalteracomeducationunivip-
coresunv-ip-coreshtmlgt Acesso em abril de 2007
ALTERA NIOS II Documentaccedilatildeo sobre o pprocessador embracado NIO II Disponivel
em lthttpwwwalteracomproductsipprocessorsipm-indexjspgt Acesso em Abril de 2007
ALTERA Development amp Education Board 2 (DE2) Manual do usuario Disponivel no
de que acompanha o Kit DE2 ltDE2_user_manualDE2_UserManualpdfgt Acesso em
fevereiro de 2007
24
A Tabela 14 mostra a descriccedilatildeo do Bloco VGA DAC
Tabela 14 ndash Descriccedilatildeo da saiacuteda VGA DAC
VGA
DAC
Usa 4 bits DAC para cada cor (RGB) Com 15 pinos no conector VGA convencional (fecircmea) Suporta uma resoluccedilatildeo de 640 x 480 com um refresh de ateacute 100Hz Pode ser usando com o FPGA Cyclone II para implementar um Encoder para TV
A Tabela 15 mostra a descriccedilatildeo do Bloco Serial Ports amp PS2
Tabela 15 ndash Descriccedilatildeo da Serial Port e PS2
Serial Ports amp PS2 Uma porta RS-232
Uma posta PS2 Um conector Serial para a porta do RS-232 Conector PS2 para conectar um mouse ou teclado ao DE2
A Tabela 16 mostra a descriccedilatildeo do Bloco dos Two 40 - pin expansion headers
Tabela 16 ndash Descriccedilatildeo dos conectores de expansatildeo de 40 pinos
Two 40 - pin expansion headers 72 pinos de IO do Clyclone II bem como 8 power e groundrsquos satildeo trazidos aos 2 conectores de expansatildeo de 40 pinos cada Os conectores de 40 pinos tambeacutem aceitam os cabos IDE de 40 pinos Proteccedilatildeo resistiva eacute fornecida
233 Endereccedilo das Pinagens dos Componentes usados no Projeto
2331 PushButtons
A Figura 11 mostra uma foto dos PushButtons do kit Key[30] a ordem eacute o button da
esquerda eacute o mais significativo e o mais de direita o menos signigicativo
Figura 11 ndash Os 4 PushButtons do DE2Key[30] (DE2_UserManualpdf contrado no cd do kit)
25
A Tabela 17 mostra os pinos da FPGA aos PushButtons
Tabela 17 ndash Pinos da FPGA referentes a cada PushButton (DE2_UserManualpdf contrado no cd do kit)
2332 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 ndash Modulo de displays de 7 segmentos (DE2_UserManualpdf encontrado no cd do kit)
Figura 13 ndash Index de um display (DE2_UserManualpdf encontrado no cd do
kit)
26
A Tabela 18 mostra os pinos da FPGA referente a cada segmento dos displays de 7
segmentos do modulo
Tabela 18 ndash Pinos da FPGA referentes a cada segmento dos Displays do modulo
27
2333 VGA
A Figura 14 esta em forma de onda da temporizaccedilatildeo horizontal e vertical da VGA do Kit
DE2
Figura 14 ndash Temporizaccedilatildeo horizontal da VGA
A Tabela 19 mostra a especificaccedilatildeo da temporizaccedilatildeo horizontal da VGA
Tabela 19 ndash Especificaccedilatildeo da temporizaccedilatildeo horizontal da VGA
A Tabela 20 mostra a especificaccedilatildeo da temporizaccedilatildeo vertical da VGA
Tabela 20 ndash Especificaccedilatildeo da temporizaccedilatildeo vertical da VGA
28
A Tabela 21 mostra os pinos da FPGA referente a cada pino de saida do conector VGA do
Kit DE2
Tabela 21 ndash Pinos da FPGA referentes a saiacuteda do Conector VGA do Kit
29
CAPIacuteTULO 3 ndash ESPECIFICACcedilAtildeO TECNICA
Nesse capiacutetulo tem-se uma descriccedilatildeo dos principais moacutedulos do projeto Satildeo eles Software
Firmware e Hardware
Inicialmente eacute apresentada a visatildeo geral do sistema e a descriccedilatildeo funcional de cada moacutedulo
A Figura 15 apresenta o diagrama em blocos do sistema
Figura 15 - Moacutedulos do projeto
31 Descriccedilatildeo de Software
O Software eacute uma das interfaces com o usuaacuterio
312 Diagrama de Blocos do Software
30
312 Modulo do PC
Neste modulo eacute 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
32 Descriccedilatildeo de Hardware
321 Modulo Touch-Screen
O usuaacuterio ao tocar o Touch-Screen (AT4 touch-screen resistivo de 4 fios) ocorre uma
mudanccedila nas tensotildees do eixo X e do eixo Y devido a resistecircncia gerada pelo ao toque do usuaacuterio
em uma determinada regiatildeo da tela essa mudanccedila de tensatildeo eacute interpretada pela placa
controladora COACh IIs do Touch-Screen e enviada via serial para o Kit DE2 que interpretaraacute
os dados e faraacute o devido processamento
322 Modulo FPGA
O Hardware corresponde tanto aos componentes fiacutesicos presentes no kit de desenvolvimento
quanto aos componentes que seratildeo configurados na FPGA Satildeo diversos componentes escritos
em linguagem de descriccedilatildeo de hardware
No um dos principais componentes de hardware utilizado modulo eacute o processador NIOS II
para se ter uma ideacuteia o processador NIOS II eacute capaz gerenciar os dispositivos externos a FPGA
utilizando controladores de memoacuterias controladores de VGA entre outros E tambeacutem eacute possiacutevel
o proacuteprio usuaacuterio criar seu componente para ser controlado atraveacutes do processador NIOS
II(Altera 2007)
31
3221 O Processador NIOS II
Atraveacutes do software SOPC da ALTERA foi possiacutevel montar a arquitetura de hardware do
processador NIOS II bem como especificar as interfaces que ele iraacute controlar atraveacutes do firmwar
feito no NIOS II IDE
Na Tabela 22 eacute no campo Module Name onde estatildeo os moacutedulos que foram usados para
definir o processador NIOS II e os componentes externos que ele iraacute controlar e no campo
Description esta a descriccedilatildeo do nome de cada modulo
Tabela 22 ndash Moacutedulos dos componentes e suas descriccedilotildees
3222 Firmware para o NIOS II
O Firmware foi feito utilizando a linguagem C utilizando a ferramenta NIOS II IDE Atraveacutes
do firmware eacute possiacutevel 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 graacuteficas para controlar a vga e serial e
USB-BLASTER eacute encarregado em enviar todo o desenvolvimento do projeto para o Kit DE2
323 Configuraccedilatildeo da FPGA via JTAG
Depois de configurado o hardware do processador NIOS II eacute preciso fazer o load do NIOS
para a FPGA e para que isso aconteccedila eacute necessaacuterio que atraveacutes do software Quartus II da
ALTERA utilizando a interface JTAG utilizando o cabo USB-BLASTER
32
324 Comunicaccedilatildeo entre FPGA e o Touch-Screen
Para comunicaccedilatildeo entre dos dois hardwares Touch-Screen e o FPGA eacute utilizando uma
interface serial RS-232
A configuraccedilatildeo da interface eacute a seguinte
Bits de dados 8
Taxa de dados 5600(bps)
A Tabela 23 mostra a relaccedilatildeo dos pinos da porta serial com os pinos da FPGA
Tabela 23 ndash Pinos da FPGA referente agrave pinagem da interface Serial
E a Figura 16 mostra o desenho correspondente da interface serial
Figura 16 ndash Conector da interface serial do kit DE2
33 Especificaccedilatildeo de Validaccedilatildeo
331 Validaccedilatildeo de Hardware
A validade do hardware se faz com a anaacutelise de todos os moacutedulos envolvidos
As necessidades satildeo estudadas os componentes externos ao FPGA satildeo selecionados de
acordo o processador nios e os controladores dos moacutedulos externos como VGA e SERIAL satildeo
enviados ao modulo FPGA
Os resultados obtidos na tela do monitor e a recepccedilatildeo dos dados pela serial comprovam o
funcionamento do modulo de comunicaccedilatildeo da serial e vga
33
332 Validaccedilatildeo de Software
A validaccedilatildeo do controle da interface touch-screen faz-se a partir dos resultados obtidos das
funccedilotildees escritas na linguagem C especificas para cada componente externos ao FPGA essas
funccedilotildees tornam possiacuteveis que o processador NIOS na FPGA tenha total controle sobre os
moacutedulos externos como a VGA e a SERIAL
As funccedilotildees que satildeo utilizadas para validar o funcionamento do software satildeo para a VGA os
meacutetodos de controle (alt_up_vga_draw_char_1b( char int x int y)) e (alt_up_vga_draw_pixel(
color x y))
O meacutetodo (alt_up_vga_draw_char_1b( char int x int y)) tem a funcionalidade de escrever
caracteres na tela do monitor e a descriccedilatildeo da sua assinatura ldquoparacircmetrosrdquo eacute a seguinte char eacute o
caractere que eacute escrito em alguma posiccedilatildeo na tela int x eacute a posiccedilatildeo x da tela do monitor e int y eacute
a posiccedilatildeo y da tela do monitor sendo que a resoluccedilatildeo utilizada eacute de 80x60 ou seja x natildeo pode
passar de 80 e y natildeo pode passar de 60
O meacutetodo (alt_up_vga_draw_pixel( color int x int y)) tem a funcionalidade de ldquopintarrdquo o
fundo da tela do monitor o meacutetodo de imprimir caracteres tem preferecircncia sobre este meacutetodo ou
seja os caracteres sempre ficam sob a aacuterea pintada ou seja o caractere sempre ficara em cima da
aacuterea pintada a descriccedilatildeo da assinatura deste meacutetodo eacute a seguinte color eacute a valor da cor que pode
ser um valor inteiro ou em hexadecimal para definir uma cor de alguma posiccedilatildeo da tela definidos
pelos paracircmetros x e y
As funccedilotildees que satildeo utilizadas para validar o funcionamento do software satildeo para a Serial os
meacutetodos de controle de transmissatildeo (fread( packet sizeof(packet) 1 serial_fp )) a funccedilatildeo
fread eacute utilizada para a leitura via interrupccedilatildeo dos pacotes que a controladora envia para o kit
DE2 as assinaturas do meacutetodo fread tem a seguinte composiccedilatildeo packet eacute a estrutura do pacote
que seraacute recebido o sizeof(packet) eacute o diz qual eacute o tamanho exato da estrutura criada e o
serial_fp eacute o handle da porta serial
Uma observaccedilatildeo muito importante eacute que para o total funcionamento eacute necessaacuterio 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 rs232h e rs232c onde estatildeo os meacutetodos de
controle da SERIAL e alt_up_vgah alt_up_vgac onde estatildeo os meacutetodos de controle para a
VGA Para tornar estes meacutetodos acessiacuteveis eacute preciso fazer os includes dos arquivos h no
projeto da NIOS IDE
A figura 17 mostra a utilizaccedilatildeo dos meacutetodos (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
34
int y)) utlizado para escrever os caracteres lsquoarsquo e lsquobrsquo dentro de um grupo de pixel previamente
pintado a (alt_up_vga_draw_pixel( color int x int y)) natildeo pinta um pixel de cada vez e sim
um bloco de 8x8 pixels
Figura 17 - Tela para a validaccedilatildeo dos testes com as bibliotecas graacuteficas do componente VGA
34 Recursos Necessaacuterios
A Tabela 24 apresenta os ambientes de desenvolvimento e ferramentas de software utilizadas
e na Tabela 25 as linguagens necessaacuterias Estas ferramentas foram utilizadas em ambiente
Windows Xp
Tabela 24 - Ferramentas de Desenvolvimentos e Ambientes
Software Para que foi Utilizado
Quartus II Para a definiccedilatildeo de qual o modelo de FPGA utilizado compilaccedilatildeo e simulaccedilatildeo e envio Load do NIOS para FPGA
SOPC Para definiccedilatildeo da do processador NIOS II e com quais componentes externos ele ira interagir atraveacutes dos controladores dos respectivos componentes
NIOS II IDE Para implementaccedilatildeo do firmware do processador NIOS II utilizando a linguagem em C
35
Borland C++ Builder Para desenvolvimento de ima interface de comunicaccedilatildeo via caboUSB-
BLASTER para o envio de imagem para o kit
Tabela 25 ndash Linguagens de programaccedilatildeo utilizadas
Linguagem Ferramenta C++ Borland C++ Builder VerilogVHDL Quartus II C NIOS II IDE
35 Viabilidade Teacutecnico-Econocircmica
O valor do projeto esta descrito na Tabela 26
Tabela 26 ndash Relaccedilatildeo dos Custos
DESCRICcedilAtildeO CUSTO APROXIMADO (R$) COMPONENTES ELETROcircNICOS 50000 1 Kit DE2 Cyclone II 35000 1 Monitor de Computador 35000 HORAS TRABALHADAS (400 horas) 750000 CUSTO TOTAL APROXIMADO (R$) 870000
36 Cronograma do Projeto
A tabela 27 contem as informaccedilotildees do cronograma do projeto
Tabela 27 ndash Cronograma de datas e entregas do projeto
Data Atividade a ser apresentada 050307 Entrega das propostas de projeto para avaliaccedilatildeo do colegiado 020407 Entrega das especificaccedilotildees teacutecnicas do projeto aprovado 110607 Entrega do projeto (monografia) e dos testes preliminares do mesmo 060807 Apresentaccedilatildeo preacutevia da implementaccedilatildeo do projeto especificado 011007 Apresentaccedilatildeo do projeto implementado
Qualificaccedilatildeo para a fase final 291007 Segunda apresentaccedilatildeo do projeto implementado para os que natildeo o fizeram no
dia 011006 com decreacutescimo da nota Qualificaccedilatildeo para a fase final
051107 Entrega da documentaccedilatildeo completa em espiral para a banca examinadora em 3 vias contendo a monografia manual teacutecnico manual do usuaacuterio e artigo cientiacutefico
261107 Defesa formal dos projetos com apresentaccedilatildeo oral para a banca examinadora 101207 Entrega da documentaccedilatildeo completa revisada e corrigida encadernada no
padratildeo da biblioteca (capa dura) em duas vias contendo a monografia manual teacutecnico manual do usuaacuterio e artigo cientiacutefico Entrega do CD contendo no formato WEB todo o conteuacutedo dos manuais
36
CAPIacuteTULO 4 ndash ESPECIFICACcedilAtildeO TECNICA
41 Requisitos Miacutenimos
Os requisitos miacutenimos de Hardware satildeo
Funcionamento das interfaces Serial e USB-Blaster
Funcionamento do Kit DE2
PC
Os requisitos miacutenimos de Software
Windows Xp
Quartus II
SOPC
NIOS II IDE
42 Projeto de Hardware
O hardware utilizado nesse projeto inclui componentes presentes na Placa de
Desenvolvimento Nios II - ediccedilatildeo DE2 Cyclone II EP2C35 e principalmente o hardware que seraacute
configurado na FPGA escrito em linguagem de descriccedilatildeo de hardware (HDL)
O um dos principais blocos de hardware eacute o processador NIOS II o Avalon Bus e os
controladores de componentes externos a FPGA e de comunicaccedilatildeo presentes no Kit
37
O software embarcado (firmware) estaraacute rodando nessa arquitetura Eacute uma arquitetura
completa construiacuteda com a ferramenta SOPC Builder da Altera A Figura 18 representa em
blocos os principais componentes dessa arquitetura
Figura 18 ndash Representaccedilatildeo em blocos do hardware do NIOS II
421 Funcatildeo do Touch-Screen
Outro bloco importante eacute o do Touch-Screen esta tela sensiacutevel ao toque pois como esta tela
trabalha com resistecircncia ao ser tocado em uma determinada regiatildeo uma resistecircncia eacute gerada e a
tensatildeo de saiacuteda eacute modificada a alimentaccedilatildeo desta placa eacute proveniente de sua placa controladora
a mesma placa que recebe a tensatildeo de saiacuteda modificada de acordo com a regiatildeo tocada na tela
Para verificar as caracteriacutesticas detalhadas do Touch-Screen e sua placa controlador favor ver
o Capitulo 2
422 Monitor e VGA
O Monitor inicialmente tem apenas o desenho de um botatildeo que ao ser tocado via touch
mudara a cor de toda a tela A imagem exibida no monitor tem uma resoluccedilatildeo de
38
Protoacutetipo das telas para os testes esta na Figura 19 a tela verde quando a touch natildeo eacute tocando
na regiatildeo do botatildeo de OK quando o botatildeo de OK for tocado a tela do monitor mudara de cor
ficando azul
Figura 19 ndash Tela do monitor
No Capitulo 2 estatildeo todas as caracteriacutesticas da pinagem e do conector VGA
423 Comunicaccedilatildeo serial
Entre a placa controladora do Touch-Screen e o FPGA existe uma comunicaccedilatildeo 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 manipulaccedilatildeo da imagem que eacute
mostrada no monitor
No capitulo 2 estatildeo das descriccedilotildees dos pinos e do conector da comunicaccedilatildeo Serial
O pacote serial que eacute transmitido pela placa controladora do touch-screen possui 10 bytes de
comprimento e segue a seguinte sequumlecircncia de envio
[55] [54] [] [] [] [] [] [] [] []
Sequumlecircncia dos bytes
Os dois primeiros bytes identificam o Header do pacote
O terceiro byte eacute 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 agrave posiccedilatildeo do eixo x onde a tela foi tocada
O sexto e o seacutetimo byte correspondem a posiccedilatildeo do eixo y onde a tele foi tocada
O restante os bytes identificam o tail do pacote recepcionado pelo kit DE2
39
424 Comunicaccedilatildeo USB-Blaster
Essencial para envio do projeto desenvolvido para o kit DE2 tambeacutem muito utilizado para o
debug deste projeto
435 Memoacuteria SDRAM
A memoacuteria utilizada para armazenar grandes quantidades de dados eacute a SDRAM (ver detalhes
no Capitulo 2)
Essa memoacuteria eacute muito raacutepida serviu muito bem para armazenar o firmware deste projeto
pois tem o tempo acesso ideal para ler as instruccedilotildees que utilizaram a VGA e tambeacutem eacute raacutepida o
suficiente para fazer a leitura dos dados e disponibilizar na saiacuteda VGA do kit
426 Memoacuteria FLASH
Eacute onde seraacute armazenado o firmware possui espaccedilo suficiente para isso 4MB e uma memoacuteria
mais lenta e por isso natildeo foi usada para armazenar dados para serem jogados na vga do Kit
43 Software
431 Software (Firmware)
O software tem de funccedilatildeo de utilizar as bibliotecas das controladoras dos componentes
externos a fim de controlar estes componentes de acordo com o necessaacuterio para atender o
objetivo do projeto
Ou seja uma tela inicial eacute apresentada e o usuaacuterio ao tocar na nela o kit recebe um pacote via
serial e interpreta a posiccedilatildeo da tela em que foi tocado e logo em seguida envia o resultado deste
toque para o monitor
432 Objetivos
O usuaacuterio 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 accedilatildeo de acordo com a posiccedilatildeo da tela
tocada alterando assim a imagem anterior com o resultado do toque
Interpretar o toque de usuaacuterio na tela touch-screen recepccedilatildeo do pacote via serial da placa
controladora do touch-screen tratamento do pacote e interpretaccedilatildeo das coordenadas x e y do
40
toque Realizaccedilatildeo de alguma accedilatildeo que resultara na alteraccedilatildeo da imagem da tela atual de acordo
com a funccedilatildeo em que as coordenadas foram previamente definidas para o que deve ser feito
432 Funccedilotildees
A Tabela 28 tem as principais funccedilotildees que foram implementadas para o sistema
Tabela 28 ndash Funccedilotildees do sistema firmware
FUNCcedilOtildeES Tela de um pequeno editor de texto Tratamento do sinal recebido da serial devido a um toque na tela Interpretaccedilatildeo do pacote serial e transfomaccedilatildeo para coordenadas x e y Transformaccedilatildeo das posiccedilotildees do toque na tela em alguma accedilatildeo enviando o resultado para a VGA Imagem final disponibilizada ao usuaacuterio de acordo com o toque que foi dado na tela Controlar dispositivos cada dispositivo pode ser controlado pelo seu respectivo contrador atraveacutes de seu endereccedilo base VGA SERIAL USB-BLASTER IO(Leds Switches etc) do Kit DE2
O Firmware do processador NIOS II eacute que realizaraacute a integraccedilatildeo entre hardware com
hardware Com o firmware controlando o NIOS II eacute possiacutevel interagir com os dispositivos
externos a FPGA Tornando possiacutevel a integraccedilatildeo da FPGA com a peliacutecula touch-screen e um
monitor sem a ajuda de um PC a uacutenica ajuda do pc seria para enviar dados de uma imagem para
o Kit DE2
44 Validaccedilatildeo e Testes
Inicialmente os moacutedulos da VGA e comunicaccedilatildeo SERIAL natildeo estavam funicionando
apenas o devido agrave fraca documentaccedilatildeo sobre o kit DE2 foi possiacutevel apenas fazer testes com o
Processador NIOS II pois sobre este existem bastantes documentos e exemplos que podem ser
utilizados
Nesta primeira parte foi possiacutevel testar o NIOS II para controlar o display bototildees e switchs
do kit DE2
Com o NIOS II funcionando completamente foi necessaacuterio porta-lo para o kit DE2 o que foi
simples pois como sabemos esses kits satildeo portaacuteveis entre si apenas mudando a pinagem e a
capacidade da FPGA
Com o Kit DE2 foi possiacutevel fazer os testes necessaacuterios com a comunicaccedilatildeo serial
inicialmente testada via terminal conversando diretamente com o kit foi possiacutevel fazer o
seguinte teste os caracteres que eram entrados via teclado chegavam ao kit via serial e o o
41
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 comdumpexe que eacute facilmente encontrado pelas ferramentas
de pesquisa da web e tambeacutem existem vario outros programas como este e o comdump eacute
utilizado para debug da porta serial do pc conectado diretamente na placa controladora do touch-
screen e foi a peccedila chave para o entendimento do pacote enviado pela placa controladora
Figura 20 - Cumdumpexe programa de debug da porta serial
A explicaccedilatildeo de cada byte do pacote esta explicado no item 423
Apos o entendimento completo da transmissatildeo 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 natildeo 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 ateacute o momento em que
foi testado os meacutetodos proprietaacuterios da Altera para fazer a VGA funcionar os meacutetodos esses
implementados em C
A figura 21 onde contem o teste baacutesico feito que foi a chave principal para o sucesso deste
projeto
42
Como dito no item 332 do projeto foram utilizados as funccedilotildees da controladora VGA esses
meacutetodos 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 eacute utilizado o meacutetodo alt_up_vga_draw_pixel( color int
x int y) onde color eacute a cor do bloco de pixels e x e y satildeo as coordenadas da tela onde o bloco
que seraacute pintado
Para escrever um caractere sobre um bloco de pixels pintado eacute utilizado a funccedilatildeo
alt_up_vga_draw_char_1b( char int x int y) onde char eacute o caractere a ser impresso e x e y satildeo
as coordenadas da tela onde os o caractere eacute impresso
Figura 21 - Teste baisco do funcionamento do componente VGA do kit DE2
43
CAPIacuteTULO 5 ndash VALIDACcedilAtildeO E RESULTADOS
Os resultados foram os melhores possiacuteveis pois com a utilizaccedilatildeo dos IP CORE
ldquocontroladorasrdquo dos componentes externos como VGA e SERIAL e seus meacutetodos de para
controle eacute possiacutevel controlar facilmente esses moacutedulos atraveacutes do firmware desenvolvido para o
processador NIOS que consegue realizar operaccedilotildees transparentes acessando dos meacutetodos de
controle dos moacutedulos
Apos os testes baacutesicos 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 baacutesico de editor de texto
A figura 22 mostra um teste utilizando os meacutetodos de controle disponiacuteveis para o IP CORE
da VGA para primeiramente fazer o menu da aplicaccedilatildeo desenvolvido em na linguagem C
Figura 22 ndash Menu baacutesico do editor de texto
Para desenhar o menu da figura acima foi utilizado os meacutetodos proprietaacuterios de controle da
VGA citados no capitulo 4 e tambeacutem estruturas de repeticcedilatildeo para que a tela fosse varrida e os
pixels desenhados nos respectivos lugares da tela bem como os caracteres
Na figura 23 eacute definida a seguinte estrutura em C para representar de um botatildeo
Figura 23 - Estrutura em C para representar um botatildeo
44
A figura 24 eacute a declaraccedilatildeo dos bototildees que seratildeo utilizados pelo aplicativo editor de texto
para comprovar o funcionamento do controle da interface touch-screen
Apenas o que esta dentro da marcaccedilatildeo quadrada representa os bototildees do menu da figura 23
e o restante satildeo os bototildees do teclado do editor de texto
Figura 24 - Declaraccedilatildeo dos bototildees do menu
45
A figura 25 representa o meacutetodo drawnButtonUp responsaacutevel por desenhar os bototildees na tela
de acordo com as posiccedilotildees em que foram declarados os bototildees deste meacutetodo satildeo desenhados
para parecerem que estatildeo ldquolevantadosrdquo e natildeo pressionados
Note que foram utilizados os meacutetodos proprietaacuterios de controle da VGA
alt_up_vga_draw_pixel pra pitar os pixels e alt_up_vga_draw_char_b1 para desenhar caracteres
como jaacute foi especificado no item 44 do projeto
Figura 25 ndash Meacutetodo drawButtonUp
46
O meacutetodo que desenha o caption do botatildeo se chama drawButtonText desenha os caracteres
em cima dos bototildees natildeo importa se o botatildeo esta pressionado ou natildeo
A figura 26 mostra como este meacutetodo foi implementado e ele eacute chamado no final de cada
meacutetodo onde algum tipo de botatildeo eacute desenhado quando o meacutetodo que desenha o botatildeo normal
quanto o pressionado e ateacute mesmo o do teclado
Figura 26 ndash Meacutetodo que escreve o caption de cada botatildeo
47
A figura 27 mostra o meacutetodo drawButtonDown que desenha o botatildeo pressionado ou seja
quando o usuaacuterio pressiona a regiatildeo correspondente a um botatildeo do menu no touch-screen o
mesmo redesenharaacute o botatildeo parecendo um efeito de botatildeo afundado note que no final do
meacutetodo novamente eacute chamado o meacutetodo drawButtonText que reescreveraacute o caption do botatildeo
como mostra o meacutetodo da figura 26 e esta ilustrado na figura 28
Figura 27 ndash Meacutetodo que desenha o botatildeo pressionado
48
Dependendo da aacuterea do menu que o usuaacuterio pressionar no touch-screen causar o efeito de
pressionado como mostra a figura 28
Figura 28 ndash Efeito do botatildeo de menu apertado
Na figura 29 eacute a representaccedilatildeo de quando a aacuterea correspondente ao botatildeo ldquoamarelordquo eacute
pressionada
Apos estes testes baacutesicos comprovando o funcionamento da interface graacutefica para o usuaacuterio
foi definido o restante dos componentes da tela que eacute constituiacutedo de um prompt e um teclado
qwerty que foi essencial para comprovar o perfeito funcionamento do controle da interface
touch-screen
49
51 Interface Grafica Final
A figura 29 mostra a interface final que o usuaacuterio teraacute para poder verificar o funcionamento
do controle da interface touch-screen
Figura 29 ndash Interface final touch-screen do usuaacuterio
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
511 Descriccedilatildeo do editor de texto
O menu possui 4 botoes cada um com sua respectiva funcionalidade quando o usuario
pressiona a area do botatildeo ldquoapagarrdquo uma vez entatildeo um carectere do prompt eacute apagado Quando eacute
precionado a area correspondente ao botatildeo ldquoResetrdquo todo o conteudo do prompt seraacute apagado e o
plano de fundo retornaraacute a cor branca Quando o botatildeo ldquoamarelordquo eacute pressionado o fundo da tela
passa a ser amarelo e o mesmo acontece se o usuario precionar o botatildeo verde tornando o cor de
fundo verde
50
O teclado possui 29 teclas sendo duas delas que equivalem ao ENTRA ldquoENTrdquo e ao
SPACE ldquoSPCrdquo Quando o usuario pressiona a area correspondente a algum botatildeo do teclado o
mesmo muda sua cor para azul e o seu caractere eacute disponibilizado no prompt
Essas funcionalidades nada mais satildeo do que um bom exemplo de como funciona
corretamente o controle da interface touch-screen
52 Prompt e o Teclado
A estrutura feita na linguagem C que define o prompt da figura 28 esta representado na
figura 30
Figura 30 ndash Estrutura em C para representar o prompt
A figura 31 mostra o metodo drawPrompt utilizado para desenhar na tela o prompt
Figura 31 ndash Meacutetodo que desenha o prompt
51
A estrutura do teclado eacute a mesma utilizada pela figura 23 e tambem eacute criado satildeo
inicializados na figura 24
O restante as implementaccedilotildees estatildeo disponiveis no cd deste documento
Quando algum botatildeo do teclado eacute pressionado sua cor muda para azul e sua letra
correspondente eacute escrita o prompt
A figura 32 ilustra quando o usuaacuterio aperta a letra lsquotrsquo na peliacutecula touch-screen
Figura 32 - Teste do prompt e o teclado
52
53 Controle da Interface Touch-Screen
Depois do todos os testes com o processador NIOS e a integraccedilatildeo do mesmo com os
moacutedulos externos como a porta SERIAL e a saiacuteda VGA eacute possiacutevel utilizando o touch-screen
criar uma interface amigaacutevel e faacutecil de usar para o usuaacuterio utilizando um firmware capaz de
interpretar os sinais via serial vindo da controladora do touch ao detectar que um toque foi dado
pelo usuaacuterio e realizar algumas accedilotildees que neste caso se comportam como um editor de texto
baacutesico
A figura 33 mostra como foi validado este projeto e seus moacutedulos controlando uma
interface touch-screen para chegar no resultado abaixo digitado pelo usuaacuterio comprovando o
funcionamento e viabilidade deste projeto
Figura 33 ndash 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 mudanccedilas podendo ser alterado rapidamente o tipo de
aplicaccedilatildeo ou integrado rapidamente com outro projeto
53
CAPIacuteTULO 6 - CONCLUSAtildeO
Uma das principais dificuldades no desenvolvimento deste projeto foi fazer o levantamento
da documentaccedilatildeo sobre o processador NIOS e os moacutedulos externos a FPGA do Kit DE2 Como
natildeo foi feito algum projeto antes que utilizasse a interface VGA e a SERIAL do Kit DE2 levou-
se muito tempo ateacute conseguir adquirir e ordenar o conhecimento que foi sendo adquirido ateacute
conseguir dar os primeiros passos e realizar os primeiros testes com a VGA e a SERIAL Outro
grande obstaacuteculo foi ter de descobrir que para que o NIOS controlasse os moacutedulos externos a
FGPA fosse necessaacuterio copiar os arquivos c e h dos respectivos componente para dentro do
projeto
Mas depois de todos os problemas com os moacutedulos externos solucionados cada modulo do
projeto foi sendo desenvolvido separadamente ateacute seu total funcionamento Natildeo tive dificuldades
com a linguagem da programaccedilatildeo pois o Firmware do processador NIOS eacute o C a qual mais tive
contato na faculdade
Outro desafio foi fazer a peliacutecula 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
peliacutecula natildeo 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 possiacutevel
comeccedilar a fazer os testes necessaacuterios para prosseguir com o projeto aprender como o a peliacutecula
identifica um toque e manda este sinal para a controladora e a controladora transforma este sinal
em um sinal serial que eacute 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 accedilotildees
que as coordenadas jaacute estatildeo previamente calibradas no firmware para fazer bem como mudar de
cor a tela fazer o efeito de um botatildeo subindo e descendo etc
Varias vezes o projeto parou de funcionar entatildeo 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 memoacuteria abundante etc uma das
facilidades eacute a faacutecil alteraccedilatildeo do projeto podendo ser integrado a outro ou ateacute mesmo alterado
para realizar outros tipos de accedilotildees com o touch-screen
Existem vaacuterios melhoramentos que podem ser executados no projeto um deles eacute tentar
interpretar de uma maneira diferente os valores do eixo y pois do jeito que esta a resoluccedilatildeo do
eixo y esta muito baixa dificultando o reconhecimento de toques em aacutereas pequenas Talvez a
inclusatildeo de mais alguns bytes no pacote de leitura da serial resolva o problema
54
Uma ideacuteia para um proacuteximo projeto que use a interface touch-screen poderia ser a
integraccedilatildeo com o projeto do nosso colega Roberto Junqueira ou a desenvolvimento de uma
placa controladora para o touch-screen
Este trabalho eacute uma modesta contribuiccedilatildeo para o uso de FPGAs e do processador embarcado
NIOS implementado em VHDL pela Altera que acredito que vai abrir vaacuterios caminhos pois
com este projeto alguns caminhos ficaram mais faacuteceis de percorrer daqui para a frente
55
CAPIacuteTULO 7 - REFEREcircNCIAS BIBLIOGRAacuteFICAS
AMORE Roberto drsquo VHDL Descriccedilatildeo e Sintese de Circuitos Rio de Janeiro ed LTC
2005
Elotouch Touch-Screen e Controladora Descriccedilatildeo do funcionamento e descriccedilatildeo
tecnologia Touch-Screen lthttpwwwelotouchcombrgt Acesso em fevereiro de 2007
ALTERA University Program IP Cores Instalaccedilatildeo de IP Cores e referencias sobre os
componentes dos kits DE1 e DE2 Disponivel em lthttpwwwalteracomeducationunivip-
coresunv-ip-coreshtmlgt Acesso em abril de 2007
ALTERA NIOS II Documentaccedilatildeo sobre o pprocessador embracado NIO II Disponivel
em lthttpwwwalteracomproductsipprocessorsipm-indexjspgt Acesso em Abril de 2007
ALTERA Development amp Education Board 2 (DE2) Manual do usuario Disponivel no
de que acompanha o Kit DE2 ltDE2_user_manualDE2_UserManualpdfgt Acesso em
fevereiro de 2007
25
A Tabela 17 mostra os pinos da FPGA aos PushButtons
Tabela 17 ndash Pinos da FPGA referentes a cada PushButton (DE2_UserManualpdf contrado no cd do kit)
2332 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 ndash Modulo de displays de 7 segmentos (DE2_UserManualpdf encontrado no cd do kit)
Figura 13 ndash Index de um display (DE2_UserManualpdf encontrado no cd do
kit)
26
A Tabela 18 mostra os pinos da FPGA referente a cada segmento dos displays de 7
segmentos do modulo
Tabela 18 ndash Pinos da FPGA referentes a cada segmento dos Displays do modulo
27
2333 VGA
A Figura 14 esta em forma de onda da temporizaccedilatildeo horizontal e vertical da VGA do Kit
DE2
Figura 14 ndash Temporizaccedilatildeo horizontal da VGA
A Tabela 19 mostra a especificaccedilatildeo da temporizaccedilatildeo horizontal da VGA
Tabela 19 ndash Especificaccedilatildeo da temporizaccedilatildeo horizontal da VGA
A Tabela 20 mostra a especificaccedilatildeo da temporizaccedilatildeo vertical da VGA
Tabela 20 ndash Especificaccedilatildeo da temporizaccedilatildeo vertical da VGA
28
A Tabela 21 mostra os pinos da FPGA referente a cada pino de saida do conector VGA do
Kit DE2
Tabela 21 ndash Pinos da FPGA referentes a saiacuteda do Conector VGA do Kit
29
CAPIacuteTULO 3 ndash ESPECIFICACcedilAtildeO TECNICA
Nesse capiacutetulo tem-se uma descriccedilatildeo dos principais moacutedulos do projeto Satildeo eles Software
Firmware e Hardware
Inicialmente eacute apresentada a visatildeo geral do sistema e a descriccedilatildeo funcional de cada moacutedulo
A Figura 15 apresenta o diagrama em blocos do sistema
Figura 15 - Moacutedulos do projeto
31 Descriccedilatildeo de Software
O Software eacute uma das interfaces com o usuaacuterio
312 Diagrama de Blocos do Software
30
312 Modulo do PC
Neste modulo eacute 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
32 Descriccedilatildeo de Hardware
321 Modulo Touch-Screen
O usuaacuterio ao tocar o Touch-Screen (AT4 touch-screen resistivo de 4 fios) ocorre uma
mudanccedila nas tensotildees do eixo X e do eixo Y devido a resistecircncia gerada pelo ao toque do usuaacuterio
em uma determinada regiatildeo da tela essa mudanccedila de tensatildeo eacute interpretada pela placa
controladora COACh IIs do Touch-Screen e enviada via serial para o Kit DE2 que interpretaraacute
os dados e faraacute o devido processamento
322 Modulo FPGA
O Hardware corresponde tanto aos componentes fiacutesicos presentes no kit de desenvolvimento
quanto aos componentes que seratildeo configurados na FPGA Satildeo diversos componentes escritos
em linguagem de descriccedilatildeo de hardware
No um dos principais componentes de hardware utilizado modulo eacute o processador NIOS II
para se ter uma ideacuteia o processador NIOS II eacute capaz gerenciar os dispositivos externos a FPGA
utilizando controladores de memoacuterias controladores de VGA entre outros E tambeacutem eacute possiacutevel
o proacuteprio usuaacuterio criar seu componente para ser controlado atraveacutes do processador NIOS
II(Altera 2007)
31
3221 O Processador NIOS II
Atraveacutes do software SOPC da ALTERA foi possiacutevel montar a arquitetura de hardware do
processador NIOS II bem como especificar as interfaces que ele iraacute controlar atraveacutes do firmwar
feito no NIOS II IDE
Na Tabela 22 eacute no campo Module Name onde estatildeo os moacutedulos que foram usados para
definir o processador NIOS II e os componentes externos que ele iraacute controlar e no campo
Description esta a descriccedilatildeo do nome de cada modulo
Tabela 22 ndash Moacutedulos dos componentes e suas descriccedilotildees
3222 Firmware para o NIOS II
O Firmware foi feito utilizando a linguagem C utilizando a ferramenta NIOS II IDE Atraveacutes
do firmware eacute possiacutevel 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 graacuteficas para controlar a vga e serial e
USB-BLASTER eacute encarregado em enviar todo o desenvolvimento do projeto para o Kit DE2
323 Configuraccedilatildeo da FPGA via JTAG
Depois de configurado o hardware do processador NIOS II eacute preciso fazer o load do NIOS
para a FPGA e para que isso aconteccedila eacute necessaacuterio que atraveacutes do software Quartus II da
ALTERA utilizando a interface JTAG utilizando o cabo USB-BLASTER
32
324 Comunicaccedilatildeo entre FPGA e o Touch-Screen
Para comunicaccedilatildeo entre dos dois hardwares Touch-Screen e o FPGA eacute utilizando uma
interface serial RS-232
A configuraccedilatildeo da interface eacute a seguinte
Bits de dados 8
Taxa de dados 5600(bps)
A Tabela 23 mostra a relaccedilatildeo dos pinos da porta serial com os pinos da FPGA
Tabela 23 ndash Pinos da FPGA referente agrave pinagem da interface Serial
E a Figura 16 mostra o desenho correspondente da interface serial
Figura 16 ndash Conector da interface serial do kit DE2
33 Especificaccedilatildeo de Validaccedilatildeo
331 Validaccedilatildeo de Hardware
A validade do hardware se faz com a anaacutelise de todos os moacutedulos envolvidos
As necessidades satildeo estudadas os componentes externos ao FPGA satildeo selecionados de
acordo o processador nios e os controladores dos moacutedulos externos como VGA e SERIAL satildeo
enviados ao modulo FPGA
Os resultados obtidos na tela do monitor e a recepccedilatildeo dos dados pela serial comprovam o
funcionamento do modulo de comunicaccedilatildeo da serial e vga
33
332 Validaccedilatildeo de Software
A validaccedilatildeo do controle da interface touch-screen faz-se a partir dos resultados obtidos das
funccedilotildees escritas na linguagem C especificas para cada componente externos ao FPGA essas
funccedilotildees tornam possiacuteveis que o processador NIOS na FPGA tenha total controle sobre os
moacutedulos externos como a VGA e a SERIAL
As funccedilotildees que satildeo utilizadas para validar o funcionamento do software satildeo para a VGA os
meacutetodos de controle (alt_up_vga_draw_char_1b( char int x int y)) e (alt_up_vga_draw_pixel(
color x y))
O meacutetodo (alt_up_vga_draw_char_1b( char int x int y)) tem a funcionalidade de escrever
caracteres na tela do monitor e a descriccedilatildeo da sua assinatura ldquoparacircmetrosrdquo eacute a seguinte char eacute o
caractere que eacute escrito em alguma posiccedilatildeo na tela int x eacute a posiccedilatildeo x da tela do monitor e int y eacute
a posiccedilatildeo y da tela do monitor sendo que a resoluccedilatildeo utilizada eacute de 80x60 ou seja x natildeo pode
passar de 80 e y natildeo pode passar de 60
O meacutetodo (alt_up_vga_draw_pixel( color int x int y)) tem a funcionalidade de ldquopintarrdquo o
fundo da tela do monitor o meacutetodo de imprimir caracteres tem preferecircncia sobre este meacutetodo ou
seja os caracteres sempre ficam sob a aacuterea pintada ou seja o caractere sempre ficara em cima da
aacuterea pintada a descriccedilatildeo da assinatura deste meacutetodo eacute a seguinte color eacute a valor da cor que pode
ser um valor inteiro ou em hexadecimal para definir uma cor de alguma posiccedilatildeo da tela definidos
pelos paracircmetros x e y
As funccedilotildees que satildeo utilizadas para validar o funcionamento do software satildeo para a Serial os
meacutetodos de controle de transmissatildeo (fread( packet sizeof(packet) 1 serial_fp )) a funccedilatildeo
fread eacute utilizada para a leitura via interrupccedilatildeo dos pacotes que a controladora envia para o kit
DE2 as assinaturas do meacutetodo fread tem a seguinte composiccedilatildeo packet eacute a estrutura do pacote
que seraacute recebido o sizeof(packet) eacute o diz qual eacute o tamanho exato da estrutura criada e o
serial_fp eacute o handle da porta serial
Uma observaccedilatildeo muito importante eacute que para o total funcionamento eacute necessaacuterio 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 rs232h e rs232c onde estatildeo os meacutetodos de
controle da SERIAL e alt_up_vgah alt_up_vgac onde estatildeo os meacutetodos de controle para a
VGA Para tornar estes meacutetodos acessiacuteveis eacute preciso fazer os includes dos arquivos h no
projeto da NIOS IDE
A figura 17 mostra a utilizaccedilatildeo dos meacutetodos (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
34
int y)) utlizado para escrever os caracteres lsquoarsquo e lsquobrsquo dentro de um grupo de pixel previamente
pintado a (alt_up_vga_draw_pixel( color int x int y)) natildeo pinta um pixel de cada vez e sim
um bloco de 8x8 pixels
Figura 17 - Tela para a validaccedilatildeo dos testes com as bibliotecas graacuteficas do componente VGA
34 Recursos Necessaacuterios
A Tabela 24 apresenta os ambientes de desenvolvimento e ferramentas de software utilizadas
e na Tabela 25 as linguagens necessaacuterias Estas ferramentas foram utilizadas em ambiente
Windows Xp
Tabela 24 - Ferramentas de Desenvolvimentos e Ambientes
Software Para que foi Utilizado
Quartus II Para a definiccedilatildeo de qual o modelo de FPGA utilizado compilaccedilatildeo e simulaccedilatildeo e envio Load do NIOS para FPGA
SOPC Para definiccedilatildeo da do processador NIOS II e com quais componentes externos ele ira interagir atraveacutes dos controladores dos respectivos componentes
NIOS II IDE Para implementaccedilatildeo do firmware do processador NIOS II utilizando a linguagem em C
35
Borland C++ Builder Para desenvolvimento de ima interface de comunicaccedilatildeo via caboUSB-
BLASTER para o envio de imagem para o kit
Tabela 25 ndash Linguagens de programaccedilatildeo utilizadas
Linguagem Ferramenta C++ Borland C++ Builder VerilogVHDL Quartus II C NIOS II IDE
35 Viabilidade Teacutecnico-Econocircmica
O valor do projeto esta descrito na Tabela 26
Tabela 26 ndash Relaccedilatildeo dos Custos
DESCRICcedilAtildeO CUSTO APROXIMADO (R$) COMPONENTES ELETROcircNICOS 50000 1 Kit DE2 Cyclone II 35000 1 Monitor de Computador 35000 HORAS TRABALHADAS (400 horas) 750000 CUSTO TOTAL APROXIMADO (R$) 870000
36 Cronograma do Projeto
A tabela 27 contem as informaccedilotildees do cronograma do projeto
Tabela 27 ndash Cronograma de datas e entregas do projeto
Data Atividade a ser apresentada 050307 Entrega das propostas de projeto para avaliaccedilatildeo do colegiado 020407 Entrega das especificaccedilotildees teacutecnicas do projeto aprovado 110607 Entrega do projeto (monografia) e dos testes preliminares do mesmo 060807 Apresentaccedilatildeo preacutevia da implementaccedilatildeo do projeto especificado 011007 Apresentaccedilatildeo do projeto implementado
Qualificaccedilatildeo para a fase final 291007 Segunda apresentaccedilatildeo do projeto implementado para os que natildeo o fizeram no
dia 011006 com decreacutescimo da nota Qualificaccedilatildeo para a fase final
051107 Entrega da documentaccedilatildeo completa em espiral para a banca examinadora em 3 vias contendo a monografia manual teacutecnico manual do usuaacuterio e artigo cientiacutefico
261107 Defesa formal dos projetos com apresentaccedilatildeo oral para a banca examinadora 101207 Entrega da documentaccedilatildeo completa revisada e corrigida encadernada no
padratildeo da biblioteca (capa dura) em duas vias contendo a monografia manual teacutecnico manual do usuaacuterio e artigo cientiacutefico Entrega do CD contendo no formato WEB todo o conteuacutedo dos manuais
36
CAPIacuteTULO 4 ndash ESPECIFICACcedilAtildeO TECNICA
41 Requisitos Miacutenimos
Os requisitos miacutenimos de Hardware satildeo
Funcionamento das interfaces Serial e USB-Blaster
Funcionamento do Kit DE2
PC
Os requisitos miacutenimos de Software
Windows Xp
Quartus II
SOPC
NIOS II IDE
42 Projeto de Hardware
O hardware utilizado nesse projeto inclui componentes presentes na Placa de
Desenvolvimento Nios II - ediccedilatildeo DE2 Cyclone II EP2C35 e principalmente o hardware que seraacute
configurado na FPGA escrito em linguagem de descriccedilatildeo de hardware (HDL)
O um dos principais blocos de hardware eacute o processador NIOS II o Avalon Bus e os
controladores de componentes externos a FPGA e de comunicaccedilatildeo presentes no Kit
37
O software embarcado (firmware) estaraacute rodando nessa arquitetura Eacute uma arquitetura
completa construiacuteda com a ferramenta SOPC Builder da Altera A Figura 18 representa em
blocos os principais componentes dessa arquitetura
Figura 18 ndash Representaccedilatildeo em blocos do hardware do NIOS II
421 Funcatildeo do Touch-Screen
Outro bloco importante eacute o do Touch-Screen esta tela sensiacutevel ao toque pois como esta tela
trabalha com resistecircncia ao ser tocado em uma determinada regiatildeo uma resistecircncia eacute gerada e a
tensatildeo de saiacuteda eacute modificada a alimentaccedilatildeo desta placa eacute proveniente de sua placa controladora
a mesma placa que recebe a tensatildeo de saiacuteda modificada de acordo com a regiatildeo tocada na tela
Para verificar as caracteriacutesticas detalhadas do Touch-Screen e sua placa controlador favor ver
o Capitulo 2
422 Monitor e VGA
O Monitor inicialmente tem apenas o desenho de um botatildeo que ao ser tocado via touch
mudara a cor de toda a tela A imagem exibida no monitor tem uma resoluccedilatildeo de
38
Protoacutetipo das telas para os testes esta na Figura 19 a tela verde quando a touch natildeo eacute tocando
na regiatildeo do botatildeo de OK quando o botatildeo de OK for tocado a tela do monitor mudara de cor
ficando azul
Figura 19 ndash Tela do monitor
No Capitulo 2 estatildeo todas as caracteriacutesticas da pinagem e do conector VGA
423 Comunicaccedilatildeo serial
Entre a placa controladora do Touch-Screen e o FPGA existe uma comunicaccedilatildeo 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 manipulaccedilatildeo da imagem que eacute
mostrada no monitor
No capitulo 2 estatildeo das descriccedilotildees dos pinos e do conector da comunicaccedilatildeo Serial
O pacote serial que eacute transmitido pela placa controladora do touch-screen possui 10 bytes de
comprimento e segue a seguinte sequumlecircncia de envio
[55] [54] [] [] [] [] [] [] [] []
Sequumlecircncia dos bytes
Os dois primeiros bytes identificam o Header do pacote
O terceiro byte eacute 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 agrave posiccedilatildeo do eixo x onde a tela foi tocada
O sexto e o seacutetimo byte correspondem a posiccedilatildeo do eixo y onde a tele foi tocada
O restante os bytes identificam o tail do pacote recepcionado pelo kit DE2
39
424 Comunicaccedilatildeo USB-Blaster
Essencial para envio do projeto desenvolvido para o kit DE2 tambeacutem muito utilizado para o
debug deste projeto
435 Memoacuteria SDRAM
A memoacuteria utilizada para armazenar grandes quantidades de dados eacute a SDRAM (ver detalhes
no Capitulo 2)
Essa memoacuteria eacute muito raacutepida serviu muito bem para armazenar o firmware deste projeto
pois tem o tempo acesso ideal para ler as instruccedilotildees que utilizaram a VGA e tambeacutem eacute raacutepida o
suficiente para fazer a leitura dos dados e disponibilizar na saiacuteda VGA do kit
426 Memoacuteria FLASH
Eacute onde seraacute armazenado o firmware possui espaccedilo suficiente para isso 4MB e uma memoacuteria
mais lenta e por isso natildeo foi usada para armazenar dados para serem jogados na vga do Kit
43 Software
431 Software (Firmware)
O software tem de funccedilatildeo de utilizar as bibliotecas das controladoras dos componentes
externos a fim de controlar estes componentes de acordo com o necessaacuterio para atender o
objetivo do projeto
Ou seja uma tela inicial eacute apresentada e o usuaacuterio ao tocar na nela o kit recebe um pacote via
serial e interpreta a posiccedilatildeo da tela em que foi tocado e logo em seguida envia o resultado deste
toque para o monitor
432 Objetivos
O usuaacuterio 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 accedilatildeo de acordo com a posiccedilatildeo da tela
tocada alterando assim a imagem anterior com o resultado do toque
Interpretar o toque de usuaacuterio na tela touch-screen recepccedilatildeo do pacote via serial da placa
controladora do touch-screen tratamento do pacote e interpretaccedilatildeo das coordenadas x e y do
40
toque Realizaccedilatildeo de alguma accedilatildeo que resultara na alteraccedilatildeo da imagem da tela atual de acordo
com a funccedilatildeo em que as coordenadas foram previamente definidas para o que deve ser feito
432 Funccedilotildees
A Tabela 28 tem as principais funccedilotildees que foram implementadas para o sistema
Tabela 28 ndash Funccedilotildees do sistema firmware
FUNCcedilOtildeES Tela de um pequeno editor de texto Tratamento do sinal recebido da serial devido a um toque na tela Interpretaccedilatildeo do pacote serial e transfomaccedilatildeo para coordenadas x e y Transformaccedilatildeo das posiccedilotildees do toque na tela em alguma accedilatildeo enviando o resultado para a VGA Imagem final disponibilizada ao usuaacuterio de acordo com o toque que foi dado na tela Controlar dispositivos cada dispositivo pode ser controlado pelo seu respectivo contrador atraveacutes de seu endereccedilo base VGA SERIAL USB-BLASTER IO(Leds Switches etc) do Kit DE2
O Firmware do processador NIOS II eacute que realizaraacute a integraccedilatildeo entre hardware com
hardware Com o firmware controlando o NIOS II eacute possiacutevel interagir com os dispositivos
externos a FPGA Tornando possiacutevel a integraccedilatildeo da FPGA com a peliacutecula touch-screen e um
monitor sem a ajuda de um PC a uacutenica ajuda do pc seria para enviar dados de uma imagem para
o Kit DE2
44 Validaccedilatildeo e Testes
Inicialmente os moacutedulos da VGA e comunicaccedilatildeo SERIAL natildeo estavam funicionando
apenas o devido agrave fraca documentaccedilatildeo sobre o kit DE2 foi possiacutevel apenas fazer testes com o
Processador NIOS II pois sobre este existem bastantes documentos e exemplos que podem ser
utilizados
Nesta primeira parte foi possiacutevel testar o NIOS II para controlar o display bototildees e switchs
do kit DE2
Com o NIOS II funcionando completamente foi necessaacuterio porta-lo para o kit DE2 o que foi
simples pois como sabemos esses kits satildeo portaacuteveis entre si apenas mudando a pinagem e a
capacidade da FPGA
Com o Kit DE2 foi possiacutevel fazer os testes necessaacuterios com a comunicaccedilatildeo serial
inicialmente testada via terminal conversando diretamente com o kit foi possiacutevel fazer o
seguinte teste os caracteres que eram entrados via teclado chegavam ao kit via serial e o o
41
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 comdumpexe que eacute facilmente encontrado pelas ferramentas
de pesquisa da web e tambeacutem existem vario outros programas como este e o comdump eacute
utilizado para debug da porta serial do pc conectado diretamente na placa controladora do touch-
screen e foi a peccedila chave para o entendimento do pacote enviado pela placa controladora
Figura 20 - Cumdumpexe programa de debug da porta serial
A explicaccedilatildeo de cada byte do pacote esta explicado no item 423
Apos o entendimento completo da transmissatildeo 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 natildeo 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 ateacute o momento em que
foi testado os meacutetodos proprietaacuterios da Altera para fazer a VGA funcionar os meacutetodos esses
implementados em C
A figura 21 onde contem o teste baacutesico feito que foi a chave principal para o sucesso deste
projeto
42
Como dito no item 332 do projeto foram utilizados as funccedilotildees da controladora VGA esses
meacutetodos 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 eacute utilizado o meacutetodo alt_up_vga_draw_pixel( color int
x int y) onde color eacute a cor do bloco de pixels e x e y satildeo as coordenadas da tela onde o bloco
que seraacute pintado
Para escrever um caractere sobre um bloco de pixels pintado eacute utilizado a funccedilatildeo
alt_up_vga_draw_char_1b( char int x int y) onde char eacute o caractere a ser impresso e x e y satildeo
as coordenadas da tela onde os o caractere eacute impresso
Figura 21 - Teste baisco do funcionamento do componente VGA do kit DE2
43
CAPIacuteTULO 5 ndash VALIDACcedilAtildeO E RESULTADOS
Os resultados foram os melhores possiacuteveis pois com a utilizaccedilatildeo dos IP CORE
ldquocontroladorasrdquo dos componentes externos como VGA e SERIAL e seus meacutetodos de para
controle eacute possiacutevel controlar facilmente esses moacutedulos atraveacutes do firmware desenvolvido para o
processador NIOS que consegue realizar operaccedilotildees transparentes acessando dos meacutetodos de
controle dos moacutedulos
Apos os testes baacutesicos 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 baacutesico de editor de texto
A figura 22 mostra um teste utilizando os meacutetodos de controle disponiacuteveis para o IP CORE
da VGA para primeiramente fazer o menu da aplicaccedilatildeo desenvolvido em na linguagem C
Figura 22 ndash Menu baacutesico do editor de texto
Para desenhar o menu da figura acima foi utilizado os meacutetodos proprietaacuterios de controle da
VGA citados no capitulo 4 e tambeacutem estruturas de repeticcedilatildeo para que a tela fosse varrida e os
pixels desenhados nos respectivos lugares da tela bem como os caracteres
Na figura 23 eacute definida a seguinte estrutura em C para representar de um botatildeo
Figura 23 - Estrutura em C para representar um botatildeo
44
A figura 24 eacute a declaraccedilatildeo dos bototildees que seratildeo utilizados pelo aplicativo editor de texto
para comprovar o funcionamento do controle da interface touch-screen
Apenas o que esta dentro da marcaccedilatildeo quadrada representa os bototildees do menu da figura 23
e o restante satildeo os bototildees do teclado do editor de texto
Figura 24 - Declaraccedilatildeo dos bototildees do menu
45
A figura 25 representa o meacutetodo drawnButtonUp responsaacutevel por desenhar os bototildees na tela
de acordo com as posiccedilotildees em que foram declarados os bototildees deste meacutetodo satildeo desenhados
para parecerem que estatildeo ldquolevantadosrdquo e natildeo pressionados
Note que foram utilizados os meacutetodos proprietaacuterios de controle da VGA
alt_up_vga_draw_pixel pra pitar os pixels e alt_up_vga_draw_char_b1 para desenhar caracteres
como jaacute foi especificado no item 44 do projeto
Figura 25 ndash Meacutetodo drawButtonUp
46
O meacutetodo que desenha o caption do botatildeo se chama drawButtonText desenha os caracteres
em cima dos bototildees natildeo importa se o botatildeo esta pressionado ou natildeo
A figura 26 mostra como este meacutetodo foi implementado e ele eacute chamado no final de cada
meacutetodo onde algum tipo de botatildeo eacute desenhado quando o meacutetodo que desenha o botatildeo normal
quanto o pressionado e ateacute mesmo o do teclado
Figura 26 ndash Meacutetodo que escreve o caption de cada botatildeo
47
A figura 27 mostra o meacutetodo drawButtonDown que desenha o botatildeo pressionado ou seja
quando o usuaacuterio pressiona a regiatildeo correspondente a um botatildeo do menu no touch-screen o
mesmo redesenharaacute o botatildeo parecendo um efeito de botatildeo afundado note que no final do
meacutetodo novamente eacute chamado o meacutetodo drawButtonText que reescreveraacute o caption do botatildeo
como mostra o meacutetodo da figura 26 e esta ilustrado na figura 28
Figura 27 ndash Meacutetodo que desenha o botatildeo pressionado
48
Dependendo da aacuterea do menu que o usuaacuterio pressionar no touch-screen causar o efeito de
pressionado como mostra a figura 28
Figura 28 ndash Efeito do botatildeo de menu apertado
Na figura 29 eacute a representaccedilatildeo de quando a aacuterea correspondente ao botatildeo ldquoamarelordquo eacute
pressionada
Apos estes testes baacutesicos comprovando o funcionamento da interface graacutefica para o usuaacuterio
foi definido o restante dos componentes da tela que eacute constituiacutedo de um prompt e um teclado
qwerty que foi essencial para comprovar o perfeito funcionamento do controle da interface
touch-screen
49
51 Interface Grafica Final
A figura 29 mostra a interface final que o usuaacuterio teraacute para poder verificar o funcionamento
do controle da interface touch-screen
Figura 29 ndash Interface final touch-screen do usuaacuterio
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
511 Descriccedilatildeo do editor de texto
O menu possui 4 botoes cada um com sua respectiva funcionalidade quando o usuario
pressiona a area do botatildeo ldquoapagarrdquo uma vez entatildeo um carectere do prompt eacute apagado Quando eacute
precionado a area correspondente ao botatildeo ldquoResetrdquo todo o conteudo do prompt seraacute apagado e o
plano de fundo retornaraacute a cor branca Quando o botatildeo ldquoamarelordquo eacute pressionado o fundo da tela
passa a ser amarelo e o mesmo acontece se o usuario precionar o botatildeo verde tornando o cor de
fundo verde
50
O teclado possui 29 teclas sendo duas delas que equivalem ao ENTRA ldquoENTrdquo e ao
SPACE ldquoSPCrdquo Quando o usuario pressiona a area correspondente a algum botatildeo do teclado o
mesmo muda sua cor para azul e o seu caractere eacute disponibilizado no prompt
Essas funcionalidades nada mais satildeo do que um bom exemplo de como funciona
corretamente o controle da interface touch-screen
52 Prompt e o Teclado
A estrutura feita na linguagem C que define o prompt da figura 28 esta representado na
figura 30
Figura 30 ndash Estrutura em C para representar o prompt
A figura 31 mostra o metodo drawPrompt utilizado para desenhar na tela o prompt
Figura 31 ndash Meacutetodo que desenha o prompt
51
A estrutura do teclado eacute a mesma utilizada pela figura 23 e tambem eacute criado satildeo
inicializados na figura 24
O restante as implementaccedilotildees estatildeo disponiveis no cd deste documento
Quando algum botatildeo do teclado eacute pressionado sua cor muda para azul e sua letra
correspondente eacute escrita o prompt
A figura 32 ilustra quando o usuaacuterio aperta a letra lsquotrsquo na peliacutecula touch-screen
Figura 32 - Teste do prompt e o teclado
52
53 Controle da Interface Touch-Screen
Depois do todos os testes com o processador NIOS e a integraccedilatildeo do mesmo com os
moacutedulos externos como a porta SERIAL e a saiacuteda VGA eacute possiacutevel utilizando o touch-screen
criar uma interface amigaacutevel e faacutecil de usar para o usuaacuterio utilizando um firmware capaz de
interpretar os sinais via serial vindo da controladora do touch ao detectar que um toque foi dado
pelo usuaacuterio e realizar algumas accedilotildees que neste caso se comportam como um editor de texto
baacutesico
A figura 33 mostra como foi validado este projeto e seus moacutedulos controlando uma
interface touch-screen para chegar no resultado abaixo digitado pelo usuaacuterio comprovando o
funcionamento e viabilidade deste projeto
Figura 33 ndash 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 mudanccedilas podendo ser alterado rapidamente o tipo de
aplicaccedilatildeo ou integrado rapidamente com outro projeto
53
CAPIacuteTULO 6 - CONCLUSAtildeO
Uma das principais dificuldades no desenvolvimento deste projeto foi fazer o levantamento
da documentaccedilatildeo sobre o processador NIOS e os moacutedulos externos a FPGA do Kit DE2 Como
natildeo foi feito algum projeto antes que utilizasse a interface VGA e a SERIAL do Kit DE2 levou-
se muito tempo ateacute conseguir adquirir e ordenar o conhecimento que foi sendo adquirido ateacute
conseguir dar os primeiros passos e realizar os primeiros testes com a VGA e a SERIAL Outro
grande obstaacuteculo foi ter de descobrir que para que o NIOS controlasse os moacutedulos externos a
FGPA fosse necessaacuterio copiar os arquivos c e h dos respectivos componente para dentro do
projeto
Mas depois de todos os problemas com os moacutedulos externos solucionados cada modulo do
projeto foi sendo desenvolvido separadamente ateacute seu total funcionamento Natildeo tive dificuldades
com a linguagem da programaccedilatildeo pois o Firmware do processador NIOS eacute o C a qual mais tive
contato na faculdade
Outro desafio foi fazer a peliacutecula 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
peliacutecula natildeo 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 possiacutevel
comeccedilar a fazer os testes necessaacuterios para prosseguir com o projeto aprender como o a peliacutecula
identifica um toque e manda este sinal para a controladora e a controladora transforma este sinal
em um sinal serial que eacute 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 accedilotildees
que as coordenadas jaacute estatildeo previamente calibradas no firmware para fazer bem como mudar de
cor a tela fazer o efeito de um botatildeo subindo e descendo etc
Varias vezes o projeto parou de funcionar entatildeo 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 memoacuteria abundante etc uma das
facilidades eacute a faacutecil alteraccedilatildeo do projeto podendo ser integrado a outro ou ateacute mesmo alterado
para realizar outros tipos de accedilotildees com o touch-screen
Existem vaacuterios melhoramentos que podem ser executados no projeto um deles eacute tentar
interpretar de uma maneira diferente os valores do eixo y pois do jeito que esta a resoluccedilatildeo do
eixo y esta muito baixa dificultando o reconhecimento de toques em aacutereas pequenas Talvez a
inclusatildeo de mais alguns bytes no pacote de leitura da serial resolva o problema
54
Uma ideacuteia para um proacuteximo projeto que use a interface touch-screen poderia ser a
integraccedilatildeo com o projeto do nosso colega Roberto Junqueira ou a desenvolvimento de uma
placa controladora para o touch-screen
Este trabalho eacute uma modesta contribuiccedilatildeo para o uso de FPGAs e do processador embarcado
NIOS implementado em VHDL pela Altera que acredito que vai abrir vaacuterios caminhos pois
com este projeto alguns caminhos ficaram mais faacuteceis de percorrer daqui para a frente
55
CAPIacuteTULO 7 - REFEREcircNCIAS BIBLIOGRAacuteFICAS
AMORE Roberto drsquo VHDL Descriccedilatildeo e Sintese de Circuitos Rio de Janeiro ed LTC
2005
Elotouch Touch-Screen e Controladora Descriccedilatildeo do funcionamento e descriccedilatildeo
tecnologia Touch-Screen lthttpwwwelotouchcombrgt Acesso em fevereiro de 2007
ALTERA University Program IP Cores Instalaccedilatildeo de IP Cores e referencias sobre os
componentes dos kits DE1 e DE2 Disponivel em lthttpwwwalteracomeducationunivip-
coresunv-ip-coreshtmlgt Acesso em abril de 2007
ALTERA NIOS II Documentaccedilatildeo sobre o pprocessador embracado NIO II Disponivel
em lthttpwwwalteracomproductsipprocessorsipm-indexjspgt Acesso em Abril de 2007
ALTERA Development amp Education Board 2 (DE2) Manual do usuario Disponivel no
de que acompanha o Kit DE2 ltDE2_user_manualDE2_UserManualpdfgt Acesso em
fevereiro de 2007
26
A Tabela 18 mostra os pinos da FPGA referente a cada segmento dos displays de 7
segmentos do modulo
Tabela 18 ndash Pinos da FPGA referentes a cada segmento dos Displays do modulo
27
2333 VGA
A Figura 14 esta em forma de onda da temporizaccedilatildeo horizontal e vertical da VGA do Kit
DE2
Figura 14 ndash Temporizaccedilatildeo horizontal da VGA
A Tabela 19 mostra a especificaccedilatildeo da temporizaccedilatildeo horizontal da VGA
Tabela 19 ndash Especificaccedilatildeo da temporizaccedilatildeo horizontal da VGA
A Tabela 20 mostra a especificaccedilatildeo da temporizaccedilatildeo vertical da VGA
Tabela 20 ndash Especificaccedilatildeo da temporizaccedilatildeo vertical da VGA
28
A Tabela 21 mostra os pinos da FPGA referente a cada pino de saida do conector VGA do
Kit DE2
Tabela 21 ndash Pinos da FPGA referentes a saiacuteda do Conector VGA do Kit
29
CAPIacuteTULO 3 ndash ESPECIFICACcedilAtildeO TECNICA
Nesse capiacutetulo tem-se uma descriccedilatildeo dos principais moacutedulos do projeto Satildeo eles Software
Firmware e Hardware
Inicialmente eacute apresentada a visatildeo geral do sistema e a descriccedilatildeo funcional de cada moacutedulo
A Figura 15 apresenta o diagrama em blocos do sistema
Figura 15 - Moacutedulos do projeto
31 Descriccedilatildeo de Software
O Software eacute uma das interfaces com o usuaacuterio
312 Diagrama de Blocos do Software
30
312 Modulo do PC
Neste modulo eacute 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
32 Descriccedilatildeo de Hardware
321 Modulo Touch-Screen
O usuaacuterio ao tocar o Touch-Screen (AT4 touch-screen resistivo de 4 fios) ocorre uma
mudanccedila nas tensotildees do eixo X e do eixo Y devido a resistecircncia gerada pelo ao toque do usuaacuterio
em uma determinada regiatildeo da tela essa mudanccedila de tensatildeo eacute interpretada pela placa
controladora COACh IIs do Touch-Screen e enviada via serial para o Kit DE2 que interpretaraacute
os dados e faraacute o devido processamento
322 Modulo FPGA
O Hardware corresponde tanto aos componentes fiacutesicos presentes no kit de desenvolvimento
quanto aos componentes que seratildeo configurados na FPGA Satildeo diversos componentes escritos
em linguagem de descriccedilatildeo de hardware
No um dos principais componentes de hardware utilizado modulo eacute o processador NIOS II
para se ter uma ideacuteia o processador NIOS II eacute capaz gerenciar os dispositivos externos a FPGA
utilizando controladores de memoacuterias controladores de VGA entre outros E tambeacutem eacute possiacutevel
o proacuteprio usuaacuterio criar seu componente para ser controlado atraveacutes do processador NIOS
II(Altera 2007)
31
3221 O Processador NIOS II
Atraveacutes do software SOPC da ALTERA foi possiacutevel montar a arquitetura de hardware do
processador NIOS II bem como especificar as interfaces que ele iraacute controlar atraveacutes do firmwar
feito no NIOS II IDE
Na Tabela 22 eacute no campo Module Name onde estatildeo os moacutedulos que foram usados para
definir o processador NIOS II e os componentes externos que ele iraacute controlar e no campo
Description esta a descriccedilatildeo do nome de cada modulo
Tabela 22 ndash Moacutedulos dos componentes e suas descriccedilotildees
3222 Firmware para o NIOS II
O Firmware foi feito utilizando a linguagem C utilizando a ferramenta NIOS II IDE Atraveacutes
do firmware eacute possiacutevel 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 graacuteficas para controlar a vga e serial e
USB-BLASTER eacute encarregado em enviar todo o desenvolvimento do projeto para o Kit DE2
323 Configuraccedilatildeo da FPGA via JTAG
Depois de configurado o hardware do processador NIOS II eacute preciso fazer o load do NIOS
para a FPGA e para que isso aconteccedila eacute necessaacuterio que atraveacutes do software Quartus II da
ALTERA utilizando a interface JTAG utilizando o cabo USB-BLASTER
32
324 Comunicaccedilatildeo entre FPGA e o Touch-Screen
Para comunicaccedilatildeo entre dos dois hardwares Touch-Screen e o FPGA eacute utilizando uma
interface serial RS-232
A configuraccedilatildeo da interface eacute a seguinte
Bits de dados 8
Taxa de dados 5600(bps)
A Tabela 23 mostra a relaccedilatildeo dos pinos da porta serial com os pinos da FPGA
Tabela 23 ndash Pinos da FPGA referente agrave pinagem da interface Serial
E a Figura 16 mostra o desenho correspondente da interface serial
Figura 16 ndash Conector da interface serial do kit DE2
33 Especificaccedilatildeo de Validaccedilatildeo
331 Validaccedilatildeo de Hardware
A validade do hardware se faz com a anaacutelise de todos os moacutedulos envolvidos
As necessidades satildeo estudadas os componentes externos ao FPGA satildeo selecionados de
acordo o processador nios e os controladores dos moacutedulos externos como VGA e SERIAL satildeo
enviados ao modulo FPGA
Os resultados obtidos na tela do monitor e a recepccedilatildeo dos dados pela serial comprovam o
funcionamento do modulo de comunicaccedilatildeo da serial e vga
33
332 Validaccedilatildeo de Software
A validaccedilatildeo do controle da interface touch-screen faz-se a partir dos resultados obtidos das
funccedilotildees escritas na linguagem C especificas para cada componente externos ao FPGA essas
funccedilotildees tornam possiacuteveis que o processador NIOS na FPGA tenha total controle sobre os
moacutedulos externos como a VGA e a SERIAL
As funccedilotildees que satildeo utilizadas para validar o funcionamento do software satildeo para a VGA os
meacutetodos de controle (alt_up_vga_draw_char_1b( char int x int y)) e (alt_up_vga_draw_pixel(
color x y))
O meacutetodo (alt_up_vga_draw_char_1b( char int x int y)) tem a funcionalidade de escrever
caracteres na tela do monitor e a descriccedilatildeo da sua assinatura ldquoparacircmetrosrdquo eacute a seguinte char eacute o
caractere que eacute escrito em alguma posiccedilatildeo na tela int x eacute a posiccedilatildeo x da tela do monitor e int y eacute
a posiccedilatildeo y da tela do monitor sendo que a resoluccedilatildeo utilizada eacute de 80x60 ou seja x natildeo pode
passar de 80 e y natildeo pode passar de 60
O meacutetodo (alt_up_vga_draw_pixel( color int x int y)) tem a funcionalidade de ldquopintarrdquo o
fundo da tela do monitor o meacutetodo de imprimir caracteres tem preferecircncia sobre este meacutetodo ou
seja os caracteres sempre ficam sob a aacuterea pintada ou seja o caractere sempre ficara em cima da
aacuterea pintada a descriccedilatildeo da assinatura deste meacutetodo eacute a seguinte color eacute a valor da cor que pode
ser um valor inteiro ou em hexadecimal para definir uma cor de alguma posiccedilatildeo da tela definidos
pelos paracircmetros x e y
As funccedilotildees que satildeo utilizadas para validar o funcionamento do software satildeo para a Serial os
meacutetodos de controle de transmissatildeo (fread( packet sizeof(packet) 1 serial_fp )) a funccedilatildeo
fread eacute utilizada para a leitura via interrupccedilatildeo dos pacotes que a controladora envia para o kit
DE2 as assinaturas do meacutetodo fread tem a seguinte composiccedilatildeo packet eacute a estrutura do pacote
que seraacute recebido o sizeof(packet) eacute o diz qual eacute o tamanho exato da estrutura criada e o
serial_fp eacute o handle da porta serial
Uma observaccedilatildeo muito importante eacute que para o total funcionamento eacute necessaacuterio 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 rs232h e rs232c onde estatildeo os meacutetodos de
controle da SERIAL e alt_up_vgah alt_up_vgac onde estatildeo os meacutetodos de controle para a
VGA Para tornar estes meacutetodos acessiacuteveis eacute preciso fazer os includes dos arquivos h no
projeto da NIOS IDE
A figura 17 mostra a utilizaccedilatildeo dos meacutetodos (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
34
int y)) utlizado para escrever os caracteres lsquoarsquo e lsquobrsquo dentro de um grupo de pixel previamente
pintado a (alt_up_vga_draw_pixel( color int x int y)) natildeo pinta um pixel de cada vez e sim
um bloco de 8x8 pixels
Figura 17 - Tela para a validaccedilatildeo dos testes com as bibliotecas graacuteficas do componente VGA
34 Recursos Necessaacuterios
A Tabela 24 apresenta os ambientes de desenvolvimento e ferramentas de software utilizadas
e na Tabela 25 as linguagens necessaacuterias Estas ferramentas foram utilizadas em ambiente
Windows Xp
Tabela 24 - Ferramentas de Desenvolvimentos e Ambientes
Software Para que foi Utilizado
Quartus II Para a definiccedilatildeo de qual o modelo de FPGA utilizado compilaccedilatildeo e simulaccedilatildeo e envio Load do NIOS para FPGA
SOPC Para definiccedilatildeo da do processador NIOS II e com quais componentes externos ele ira interagir atraveacutes dos controladores dos respectivos componentes
NIOS II IDE Para implementaccedilatildeo do firmware do processador NIOS II utilizando a linguagem em C
35
Borland C++ Builder Para desenvolvimento de ima interface de comunicaccedilatildeo via caboUSB-
BLASTER para o envio de imagem para o kit
Tabela 25 ndash Linguagens de programaccedilatildeo utilizadas
Linguagem Ferramenta C++ Borland C++ Builder VerilogVHDL Quartus II C NIOS II IDE
35 Viabilidade Teacutecnico-Econocircmica
O valor do projeto esta descrito na Tabela 26
Tabela 26 ndash Relaccedilatildeo dos Custos
DESCRICcedilAtildeO CUSTO APROXIMADO (R$) COMPONENTES ELETROcircNICOS 50000 1 Kit DE2 Cyclone II 35000 1 Monitor de Computador 35000 HORAS TRABALHADAS (400 horas) 750000 CUSTO TOTAL APROXIMADO (R$) 870000
36 Cronograma do Projeto
A tabela 27 contem as informaccedilotildees do cronograma do projeto
Tabela 27 ndash Cronograma de datas e entregas do projeto
Data Atividade a ser apresentada 050307 Entrega das propostas de projeto para avaliaccedilatildeo do colegiado 020407 Entrega das especificaccedilotildees teacutecnicas do projeto aprovado 110607 Entrega do projeto (monografia) e dos testes preliminares do mesmo 060807 Apresentaccedilatildeo preacutevia da implementaccedilatildeo do projeto especificado 011007 Apresentaccedilatildeo do projeto implementado
Qualificaccedilatildeo para a fase final 291007 Segunda apresentaccedilatildeo do projeto implementado para os que natildeo o fizeram no
dia 011006 com decreacutescimo da nota Qualificaccedilatildeo para a fase final
051107 Entrega da documentaccedilatildeo completa em espiral para a banca examinadora em 3 vias contendo a monografia manual teacutecnico manual do usuaacuterio e artigo cientiacutefico
261107 Defesa formal dos projetos com apresentaccedilatildeo oral para a banca examinadora 101207 Entrega da documentaccedilatildeo completa revisada e corrigida encadernada no
padratildeo da biblioteca (capa dura) em duas vias contendo a monografia manual teacutecnico manual do usuaacuterio e artigo cientiacutefico Entrega do CD contendo no formato WEB todo o conteuacutedo dos manuais
36
CAPIacuteTULO 4 ndash ESPECIFICACcedilAtildeO TECNICA
41 Requisitos Miacutenimos
Os requisitos miacutenimos de Hardware satildeo
Funcionamento das interfaces Serial e USB-Blaster
Funcionamento do Kit DE2
PC
Os requisitos miacutenimos de Software
Windows Xp
Quartus II
SOPC
NIOS II IDE
42 Projeto de Hardware
O hardware utilizado nesse projeto inclui componentes presentes na Placa de
Desenvolvimento Nios II - ediccedilatildeo DE2 Cyclone II EP2C35 e principalmente o hardware que seraacute
configurado na FPGA escrito em linguagem de descriccedilatildeo de hardware (HDL)
O um dos principais blocos de hardware eacute o processador NIOS II o Avalon Bus e os
controladores de componentes externos a FPGA e de comunicaccedilatildeo presentes no Kit
37
O software embarcado (firmware) estaraacute rodando nessa arquitetura Eacute uma arquitetura
completa construiacuteda com a ferramenta SOPC Builder da Altera A Figura 18 representa em
blocos os principais componentes dessa arquitetura
Figura 18 ndash Representaccedilatildeo em blocos do hardware do NIOS II
421 Funcatildeo do Touch-Screen
Outro bloco importante eacute o do Touch-Screen esta tela sensiacutevel ao toque pois como esta tela
trabalha com resistecircncia ao ser tocado em uma determinada regiatildeo uma resistecircncia eacute gerada e a
tensatildeo de saiacuteda eacute modificada a alimentaccedilatildeo desta placa eacute proveniente de sua placa controladora
a mesma placa que recebe a tensatildeo de saiacuteda modificada de acordo com a regiatildeo tocada na tela
Para verificar as caracteriacutesticas detalhadas do Touch-Screen e sua placa controlador favor ver
o Capitulo 2
422 Monitor e VGA
O Monitor inicialmente tem apenas o desenho de um botatildeo que ao ser tocado via touch
mudara a cor de toda a tela A imagem exibida no monitor tem uma resoluccedilatildeo de
38
Protoacutetipo das telas para os testes esta na Figura 19 a tela verde quando a touch natildeo eacute tocando
na regiatildeo do botatildeo de OK quando o botatildeo de OK for tocado a tela do monitor mudara de cor
ficando azul
Figura 19 ndash Tela do monitor
No Capitulo 2 estatildeo todas as caracteriacutesticas da pinagem e do conector VGA
423 Comunicaccedilatildeo serial
Entre a placa controladora do Touch-Screen e o FPGA existe uma comunicaccedilatildeo 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 manipulaccedilatildeo da imagem que eacute
mostrada no monitor
No capitulo 2 estatildeo das descriccedilotildees dos pinos e do conector da comunicaccedilatildeo Serial
O pacote serial que eacute transmitido pela placa controladora do touch-screen possui 10 bytes de
comprimento e segue a seguinte sequumlecircncia de envio
[55] [54] [] [] [] [] [] [] [] []
Sequumlecircncia dos bytes
Os dois primeiros bytes identificam o Header do pacote
O terceiro byte eacute 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 agrave posiccedilatildeo do eixo x onde a tela foi tocada
O sexto e o seacutetimo byte correspondem a posiccedilatildeo do eixo y onde a tele foi tocada
O restante os bytes identificam o tail do pacote recepcionado pelo kit DE2
39
424 Comunicaccedilatildeo USB-Blaster
Essencial para envio do projeto desenvolvido para o kit DE2 tambeacutem muito utilizado para o
debug deste projeto
435 Memoacuteria SDRAM
A memoacuteria utilizada para armazenar grandes quantidades de dados eacute a SDRAM (ver detalhes
no Capitulo 2)
Essa memoacuteria eacute muito raacutepida serviu muito bem para armazenar o firmware deste projeto
pois tem o tempo acesso ideal para ler as instruccedilotildees que utilizaram a VGA e tambeacutem eacute raacutepida o
suficiente para fazer a leitura dos dados e disponibilizar na saiacuteda VGA do kit
426 Memoacuteria FLASH
Eacute onde seraacute armazenado o firmware possui espaccedilo suficiente para isso 4MB e uma memoacuteria
mais lenta e por isso natildeo foi usada para armazenar dados para serem jogados na vga do Kit
43 Software
431 Software (Firmware)
O software tem de funccedilatildeo de utilizar as bibliotecas das controladoras dos componentes
externos a fim de controlar estes componentes de acordo com o necessaacuterio para atender o
objetivo do projeto
Ou seja uma tela inicial eacute apresentada e o usuaacuterio ao tocar na nela o kit recebe um pacote via
serial e interpreta a posiccedilatildeo da tela em que foi tocado e logo em seguida envia o resultado deste
toque para o monitor
432 Objetivos
O usuaacuterio 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 accedilatildeo de acordo com a posiccedilatildeo da tela
tocada alterando assim a imagem anterior com o resultado do toque
Interpretar o toque de usuaacuterio na tela touch-screen recepccedilatildeo do pacote via serial da placa
controladora do touch-screen tratamento do pacote e interpretaccedilatildeo das coordenadas x e y do
40
toque Realizaccedilatildeo de alguma accedilatildeo que resultara na alteraccedilatildeo da imagem da tela atual de acordo
com a funccedilatildeo em que as coordenadas foram previamente definidas para o que deve ser feito
432 Funccedilotildees
A Tabela 28 tem as principais funccedilotildees que foram implementadas para o sistema
Tabela 28 ndash Funccedilotildees do sistema firmware
FUNCcedilOtildeES Tela de um pequeno editor de texto Tratamento do sinal recebido da serial devido a um toque na tela Interpretaccedilatildeo do pacote serial e transfomaccedilatildeo para coordenadas x e y Transformaccedilatildeo das posiccedilotildees do toque na tela em alguma accedilatildeo enviando o resultado para a VGA Imagem final disponibilizada ao usuaacuterio de acordo com o toque que foi dado na tela Controlar dispositivos cada dispositivo pode ser controlado pelo seu respectivo contrador atraveacutes de seu endereccedilo base VGA SERIAL USB-BLASTER IO(Leds Switches etc) do Kit DE2
O Firmware do processador NIOS II eacute que realizaraacute a integraccedilatildeo entre hardware com
hardware Com o firmware controlando o NIOS II eacute possiacutevel interagir com os dispositivos
externos a FPGA Tornando possiacutevel a integraccedilatildeo da FPGA com a peliacutecula touch-screen e um
monitor sem a ajuda de um PC a uacutenica ajuda do pc seria para enviar dados de uma imagem para
o Kit DE2
44 Validaccedilatildeo e Testes
Inicialmente os moacutedulos da VGA e comunicaccedilatildeo SERIAL natildeo estavam funicionando
apenas o devido agrave fraca documentaccedilatildeo sobre o kit DE2 foi possiacutevel apenas fazer testes com o
Processador NIOS II pois sobre este existem bastantes documentos e exemplos que podem ser
utilizados
Nesta primeira parte foi possiacutevel testar o NIOS II para controlar o display bototildees e switchs
do kit DE2
Com o NIOS II funcionando completamente foi necessaacuterio porta-lo para o kit DE2 o que foi
simples pois como sabemos esses kits satildeo portaacuteveis entre si apenas mudando a pinagem e a
capacidade da FPGA
Com o Kit DE2 foi possiacutevel fazer os testes necessaacuterios com a comunicaccedilatildeo serial
inicialmente testada via terminal conversando diretamente com o kit foi possiacutevel fazer o
seguinte teste os caracteres que eram entrados via teclado chegavam ao kit via serial e o o
41
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 comdumpexe que eacute facilmente encontrado pelas ferramentas
de pesquisa da web e tambeacutem existem vario outros programas como este e o comdump eacute
utilizado para debug da porta serial do pc conectado diretamente na placa controladora do touch-
screen e foi a peccedila chave para o entendimento do pacote enviado pela placa controladora
Figura 20 - Cumdumpexe programa de debug da porta serial
A explicaccedilatildeo de cada byte do pacote esta explicado no item 423
Apos o entendimento completo da transmissatildeo 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 natildeo 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 ateacute o momento em que
foi testado os meacutetodos proprietaacuterios da Altera para fazer a VGA funcionar os meacutetodos esses
implementados em C
A figura 21 onde contem o teste baacutesico feito que foi a chave principal para o sucesso deste
projeto
42
Como dito no item 332 do projeto foram utilizados as funccedilotildees da controladora VGA esses
meacutetodos 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 eacute utilizado o meacutetodo alt_up_vga_draw_pixel( color int
x int y) onde color eacute a cor do bloco de pixels e x e y satildeo as coordenadas da tela onde o bloco
que seraacute pintado
Para escrever um caractere sobre um bloco de pixels pintado eacute utilizado a funccedilatildeo
alt_up_vga_draw_char_1b( char int x int y) onde char eacute o caractere a ser impresso e x e y satildeo
as coordenadas da tela onde os o caractere eacute impresso
Figura 21 - Teste baisco do funcionamento do componente VGA do kit DE2
43
CAPIacuteTULO 5 ndash VALIDACcedilAtildeO E RESULTADOS
Os resultados foram os melhores possiacuteveis pois com a utilizaccedilatildeo dos IP CORE
ldquocontroladorasrdquo dos componentes externos como VGA e SERIAL e seus meacutetodos de para
controle eacute possiacutevel controlar facilmente esses moacutedulos atraveacutes do firmware desenvolvido para o
processador NIOS que consegue realizar operaccedilotildees transparentes acessando dos meacutetodos de
controle dos moacutedulos
Apos os testes baacutesicos 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 baacutesico de editor de texto
A figura 22 mostra um teste utilizando os meacutetodos de controle disponiacuteveis para o IP CORE
da VGA para primeiramente fazer o menu da aplicaccedilatildeo desenvolvido em na linguagem C
Figura 22 ndash Menu baacutesico do editor de texto
Para desenhar o menu da figura acima foi utilizado os meacutetodos proprietaacuterios de controle da
VGA citados no capitulo 4 e tambeacutem estruturas de repeticcedilatildeo para que a tela fosse varrida e os
pixels desenhados nos respectivos lugares da tela bem como os caracteres
Na figura 23 eacute definida a seguinte estrutura em C para representar de um botatildeo
Figura 23 - Estrutura em C para representar um botatildeo
44
A figura 24 eacute a declaraccedilatildeo dos bototildees que seratildeo utilizados pelo aplicativo editor de texto
para comprovar o funcionamento do controle da interface touch-screen
Apenas o que esta dentro da marcaccedilatildeo quadrada representa os bototildees do menu da figura 23
e o restante satildeo os bototildees do teclado do editor de texto
Figura 24 - Declaraccedilatildeo dos bototildees do menu
45
A figura 25 representa o meacutetodo drawnButtonUp responsaacutevel por desenhar os bototildees na tela
de acordo com as posiccedilotildees em que foram declarados os bototildees deste meacutetodo satildeo desenhados
para parecerem que estatildeo ldquolevantadosrdquo e natildeo pressionados
Note que foram utilizados os meacutetodos proprietaacuterios de controle da VGA
alt_up_vga_draw_pixel pra pitar os pixels e alt_up_vga_draw_char_b1 para desenhar caracteres
como jaacute foi especificado no item 44 do projeto
Figura 25 ndash Meacutetodo drawButtonUp
46
O meacutetodo que desenha o caption do botatildeo se chama drawButtonText desenha os caracteres
em cima dos bototildees natildeo importa se o botatildeo esta pressionado ou natildeo
A figura 26 mostra como este meacutetodo foi implementado e ele eacute chamado no final de cada
meacutetodo onde algum tipo de botatildeo eacute desenhado quando o meacutetodo que desenha o botatildeo normal
quanto o pressionado e ateacute mesmo o do teclado
Figura 26 ndash Meacutetodo que escreve o caption de cada botatildeo
47
A figura 27 mostra o meacutetodo drawButtonDown que desenha o botatildeo pressionado ou seja
quando o usuaacuterio pressiona a regiatildeo correspondente a um botatildeo do menu no touch-screen o
mesmo redesenharaacute o botatildeo parecendo um efeito de botatildeo afundado note que no final do
meacutetodo novamente eacute chamado o meacutetodo drawButtonText que reescreveraacute o caption do botatildeo
como mostra o meacutetodo da figura 26 e esta ilustrado na figura 28
Figura 27 ndash Meacutetodo que desenha o botatildeo pressionado
48
Dependendo da aacuterea do menu que o usuaacuterio pressionar no touch-screen causar o efeito de
pressionado como mostra a figura 28
Figura 28 ndash Efeito do botatildeo de menu apertado
Na figura 29 eacute a representaccedilatildeo de quando a aacuterea correspondente ao botatildeo ldquoamarelordquo eacute
pressionada
Apos estes testes baacutesicos comprovando o funcionamento da interface graacutefica para o usuaacuterio
foi definido o restante dos componentes da tela que eacute constituiacutedo de um prompt e um teclado
qwerty que foi essencial para comprovar o perfeito funcionamento do controle da interface
touch-screen
49
51 Interface Grafica Final
A figura 29 mostra a interface final que o usuaacuterio teraacute para poder verificar o funcionamento
do controle da interface touch-screen
Figura 29 ndash Interface final touch-screen do usuaacuterio
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
511 Descriccedilatildeo do editor de texto
O menu possui 4 botoes cada um com sua respectiva funcionalidade quando o usuario
pressiona a area do botatildeo ldquoapagarrdquo uma vez entatildeo um carectere do prompt eacute apagado Quando eacute
precionado a area correspondente ao botatildeo ldquoResetrdquo todo o conteudo do prompt seraacute apagado e o
plano de fundo retornaraacute a cor branca Quando o botatildeo ldquoamarelordquo eacute pressionado o fundo da tela
passa a ser amarelo e o mesmo acontece se o usuario precionar o botatildeo verde tornando o cor de
fundo verde
50
O teclado possui 29 teclas sendo duas delas que equivalem ao ENTRA ldquoENTrdquo e ao
SPACE ldquoSPCrdquo Quando o usuario pressiona a area correspondente a algum botatildeo do teclado o
mesmo muda sua cor para azul e o seu caractere eacute disponibilizado no prompt
Essas funcionalidades nada mais satildeo do que um bom exemplo de como funciona
corretamente o controle da interface touch-screen
52 Prompt e o Teclado
A estrutura feita na linguagem C que define o prompt da figura 28 esta representado na
figura 30
Figura 30 ndash Estrutura em C para representar o prompt
A figura 31 mostra o metodo drawPrompt utilizado para desenhar na tela o prompt
Figura 31 ndash Meacutetodo que desenha o prompt
51
A estrutura do teclado eacute a mesma utilizada pela figura 23 e tambem eacute criado satildeo
inicializados na figura 24
O restante as implementaccedilotildees estatildeo disponiveis no cd deste documento
Quando algum botatildeo do teclado eacute pressionado sua cor muda para azul e sua letra
correspondente eacute escrita o prompt
A figura 32 ilustra quando o usuaacuterio aperta a letra lsquotrsquo na peliacutecula touch-screen
Figura 32 - Teste do prompt e o teclado
52
53 Controle da Interface Touch-Screen
Depois do todos os testes com o processador NIOS e a integraccedilatildeo do mesmo com os
moacutedulos externos como a porta SERIAL e a saiacuteda VGA eacute possiacutevel utilizando o touch-screen
criar uma interface amigaacutevel e faacutecil de usar para o usuaacuterio utilizando um firmware capaz de
interpretar os sinais via serial vindo da controladora do touch ao detectar que um toque foi dado
pelo usuaacuterio e realizar algumas accedilotildees que neste caso se comportam como um editor de texto
baacutesico
A figura 33 mostra como foi validado este projeto e seus moacutedulos controlando uma
interface touch-screen para chegar no resultado abaixo digitado pelo usuaacuterio comprovando o
funcionamento e viabilidade deste projeto
Figura 33 ndash 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 mudanccedilas podendo ser alterado rapidamente o tipo de
aplicaccedilatildeo ou integrado rapidamente com outro projeto
53
CAPIacuteTULO 6 - CONCLUSAtildeO
Uma das principais dificuldades no desenvolvimento deste projeto foi fazer o levantamento
da documentaccedilatildeo sobre o processador NIOS e os moacutedulos externos a FPGA do Kit DE2 Como
natildeo foi feito algum projeto antes que utilizasse a interface VGA e a SERIAL do Kit DE2 levou-
se muito tempo ateacute conseguir adquirir e ordenar o conhecimento que foi sendo adquirido ateacute
conseguir dar os primeiros passos e realizar os primeiros testes com a VGA e a SERIAL Outro
grande obstaacuteculo foi ter de descobrir que para que o NIOS controlasse os moacutedulos externos a
FGPA fosse necessaacuterio copiar os arquivos c e h dos respectivos componente para dentro do
projeto
Mas depois de todos os problemas com os moacutedulos externos solucionados cada modulo do
projeto foi sendo desenvolvido separadamente ateacute seu total funcionamento Natildeo tive dificuldades
com a linguagem da programaccedilatildeo pois o Firmware do processador NIOS eacute o C a qual mais tive
contato na faculdade
Outro desafio foi fazer a peliacutecula 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
peliacutecula natildeo 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 possiacutevel
comeccedilar a fazer os testes necessaacuterios para prosseguir com o projeto aprender como o a peliacutecula
identifica um toque e manda este sinal para a controladora e a controladora transforma este sinal
em um sinal serial que eacute 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 accedilotildees
que as coordenadas jaacute estatildeo previamente calibradas no firmware para fazer bem como mudar de
cor a tela fazer o efeito de um botatildeo subindo e descendo etc
Varias vezes o projeto parou de funcionar entatildeo 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 memoacuteria abundante etc uma das
facilidades eacute a faacutecil alteraccedilatildeo do projeto podendo ser integrado a outro ou ateacute mesmo alterado
para realizar outros tipos de accedilotildees com o touch-screen
Existem vaacuterios melhoramentos que podem ser executados no projeto um deles eacute tentar
interpretar de uma maneira diferente os valores do eixo y pois do jeito que esta a resoluccedilatildeo do
eixo y esta muito baixa dificultando o reconhecimento de toques em aacutereas pequenas Talvez a
inclusatildeo de mais alguns bytes no pacote de leitura da serial resolva o problema
54
Uma ideacuteia para um proacuteximo projeto que use a interface touch-screen poderia ser a
integraccedilatildeo com o projeto do nosso colega Roberto Junqueira ou a desenvolvimento de uma
placa controladora para o touch-screen
Este trabalho eacute uma modesta contribuiccedilatildeo para o uso de FPGAs e do processador embarcado
NIOS implementado em VHDL pela Altera que acredito que vai abrir vaacuterios caminhos pois
com este projeto alguns caminhos ficaram mais faacuteceis de percorrer daqui para a frente
55
CAPIacuteTULO 7 - REFEREcircNCIAS BIBLIOGRAacuteFICAS
AMORE Roberto drsquo VHDL Descriccedilatildeo e Sintese de Circuitos Rio de Janeiro ed LTC
2005
Elotouch Touch-Screen e Controladora Descriccedilatildeo do funcionamento e descriccedilatildeo
tecnologia Touch-Screen lthttpwwwelotouchcombrgt Acesso em fevereiro de 2007
ALTERA University Program IP Cores Instalaccedilatildeo de IP Cores e referencias sobre os
componentes dos kits DE1 e DE2 Disponivel em lthttpwwwalteracomeducationunivip-
coresunv-ip-coreshtmlgt Acesso em abril de 2007
ALTERA NIOS II Documentaccedilatildeo sobre o pprocessador embracado NIO II Disponivel
em lthttpwwwalteracomproductsipprocessorsipm-indexjspgt Acesso em Abril de 2007
ALTERA Development amp Education Board 2 (DE2) Manual do usuario Disponivel no
de que acompanha o Kit DE2 ltDE2_user_manualDE2_UserManualpdfgt Acesso em
fevereiro de 2007
27
2333 VGA
A Figura 14 esta em forma de onda da temporizaccedilatildeo horizontal e vertical da VGA do Kit
DE2
Figura 14 ndash Temporizaccedilatildeo horizontal da VGA
A Tabela 19 mostra a especificaccedilatildeo da temporizaccedilatildeo horizontal da VGA
Tabela 19 ndash Especificaccedilatildeo da temporizaccedilatildeo horizontal da VGA
A Tabela 20 mostra a especificaccedilatildeo da temporizaccedilatildeo vertical da VGA
Tabela 20 ndash Especificaccedilatildeo da temporizaccedilatildeo vertical da VGA
28
A Tabela 21 mostra os pinos da FPGA referente a cada pino de saida do conector VGA do
Kit DE2
Tabela 21 ndash Pinos da FPGA referentes a saiacuteda do Conector VGA do Kit
29
CAPIacuteTULO 3 ndash ESPECIFICACcedilAtildeO TECNICA
Nesse capiacutetulo tem-se uma descriccedilatildeo dos principais moacutedulos do projeto Satildeo eles Software
Firmware e Hardware
Inicialmente eacute apresentada a visatildeo geral do sistema e a descriccedilatildeo funcional de cada moacutedulo
A Figura 15 apresenta o diagrama em blocos do sistema
Figura 15 - Moacutedulos do projeto
31 Descriccedilatildeo de Software
O Software eacute uma das interfaces com o usuaacuterio
312 Diagrama de Blocos do Software
30
312 Modulo do PC
Neste modulo eacute 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
32 Descriccedilatildeo de Hardware
321 Modulo Touch-Screen
O usuaacuterio ao tocar o Touch-Screen (AT4 touch-screen resistivo de 4 fios) ocorre uma
mudanccedila nas tensotildees do eixo X e do eixo Y devido a resistecircncia gerada pelo ao toque do usuaacuterio
em uma determinada regiatildeo da tela essa mudanccedila de tensatildeo eacute interpretada pela placa
controladora COACh IIs do Touch-Screen e enviada via serial para o Kit DE2 que interpretaraacute
os dados e faraacute o devido processamento
322 Modulo FPGA
O Hardware corresponde tanto aos componentes fiacutesicos presentes no kit de desenvolvimento
quanto aos componentes que seratildeo configurados na FPGA Satildeo diversos componentes escritos
em linguagem de descriccedilatildeo de hardware
No um dos principais componentes de hardware utilizado modulo eacute o processador NIOS II
para se ter uma ideacuteia o processador NIOS II eacute capaz gerenciar os dispositivos externos a FPGA
utilizando controladores de memoacuterias controladores de VGA entre outros E tambeacutem eacute possiacutevel
o proacuteprio usuaacuterio criar seu componente para ser controlado atraveacutes do processador NIOS
II(Altera 2007)
31
3221 O Processador NIOS II
Atraveacutes do software SOPC da ALTERA foi possiacutevel montar a arquitetura de hardware do
processador NIOS II bem como especificar as interfaces que ele iraacute controlar atraveacutes do firmwar
feito no NIOS II IDE
Na Tabela 22 eacute no campo Module Name onde estatildeo os moacutedulos que foram usados para
definir o processador NIOS II e os componentes externos que ele iraacute controlar e no campo
Description esta a descriccedilatildeo do nome de cada modulo
Tabela 22 ndash Moacutedulos dos componentes e suas descriccedilotildees
3222 Firmware para o NIOS II
O Firmware foi feito utilizando a linguagem C utilizando a ferramenta NIOS II IDE Atraveacutes
do firmware eacute possiacutevel 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 graacuteficas para controlar a vga e serial e
USB-BLASTER eacute encarregado em enviar todo o desenvolvimento do projeto para o Kit DE2
323 Configuraccedilatildeo da FPGA via JTAG
Depois de configurado o hardware do processador NIOS II eacute preciso fazer o load do NIOS
para a FPGA e para que isso aconteccedila eacute necessaacuterio que atraveacutes do software Quartus II da
ALTERA utilizando a interface JTAG utilizando o cabo USB-BLASTER
32
324 Comunicaccedilatildeo entre FPGA e o Touch-Screen
Para comunicaccedilatildeo entre dos dois hardwares Touch-Screen e o FPGA eacute utilizando uma
interface serial RS-232
A configuraccedilatildeo da interface eacute a seguinte
Bits de dados 8
Taxa de dados 5600(bps)
A Tabela 23 mostra a relaccedilatildeo dos pinos da porta serial com os pinos da FPGA
Tabela 23 ndash Pinos da FPGA referente agrave pinagem da interface Serial
E a Figura 16 mostra o desenho correspondente da interface serial
Figura 16 ndash Conector da interface serial do kit DE2
33 Especificaccedilatildeo de Validaccedilatildeo
331 Validaccedilatildeo de Hardware
A validade do hardware se faz com a anaacutelise de todos os moacutedulos envolvidos
As necessidades satildeo estudadas os componentes externos ao FPGA satildeo selecionados de
acordo o processador nios e os controladores dos moacutedulos externos como VGA e SERIAL satildeo
enviados ao modulo FPGA
Os resultados obtidos na tela do monitor e a recepccedilatildeo dos dados pela serial comprovam o
funcionamento do modulo de comunicaccedilatildeo da serial e vga
33
332 Validaccedilatildeo de Software
A validaccedilatildeo do controle da interface touch-screen faz-se a partir dos resultados obtidos das
funccedilotildees escritas na linguagem C especificas para cada componente externos ao FPGA essas
funccedilotildees tornam possiacuteveis que o processador NIOS na FPGA tenha total controle sobre os
moacutedulos externos como a VGA e a SERIAL
As funccedilotildees que satildeo utilizadas para validar o funcionamento do software satildeo para a VGA os
meacutetodos de controle (alt_up_vga_draw_char_1b( char int x int y)) e (alt_up_vga_draw_pixel(
color x y))
O meacutetodo (alt_up_vga_draw_char_1b( char int x int y)) tem a funcionalidade de escrever
caracteres na tela do monitor e a descriccedilatildeo da sua assinatura ldquoparacircmetrosrdquo eacute a seguinte char eacute o
caractere que eacute escrito em alguma posiccedilatildeo na tela int x eacute a posiccedilatildeo x da tela do monitor e int y eacute
a posiccedilatildeo y da tela do monitor sendo que a resoluccedilatildeo utilizada eacute de 80x60 ou seja x natildeo pode
passar de 80 e y natildeo pode passar de 60
O meacutetodo (alt_up_vga_draw_pixel( color int x int y)) tem a funcionalidade de ldquopintarrdquo o
fundo da tela do monitor o meacutetodo de imprimir caracteres tem preferecircncia sobre este meacutetodo ou
seja os caracteres sempre ficam sob a aacuterea pintada ou seja o caractere sempre ficara em cima da
aacuterea pintada a descriccedilatildeo da assinatura deste meacutetodo eacute a seguinte color eacute a valor da cor que pode
ser um valor inteiro ou em hexadecimal para definir uma cor de alguma posiccedilatildeo da tela definidos
pelos paracircmetros x e y
As funccedilotildees que satildeo utilizadas para validar o funcionamento do software satildeo para a Serial os
meacutetodos de controle de transmissatildeo (fread( packet sizeof(packet) 1 serial_fp )) a funccedilatildeo
fread eacute utilizada para a leitura via interrupccedilatildeo dos pacotes que a controladora envia para o kit
DE2 as assinaturas do meacutetodo fread tem a seguinte composiccedilatildeo packet eacute a estrutura do pacote
que seraacute recebido o sizeof(packet) eacute o diz qual eacute o tamanho exato da estrutura criada e o
serial_fp eacute o handle da porta serial
Uma observaccedilatildeo muito importante eacute que para o total funcionamento eacute necessaacuterio 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 rs232h e rs232c onde estatildeo os meacutetodos de
controle da SERIAL e alt_up_vgah alt_up_vgac onde estatildeo os meacutetodos de controle para a
VGA Para tornar estes meacutetodos acessiacuteveis eacute preciso fazer os includes dos arquivos h no
projeto da NIOS IDE
A figura 17 mostra a utilizaccedilatildeo dos meacutetodos (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
34
int y)) utlizado para escrever os caracteres lsquoarsquo e lsquobrsquo dentro de um grupo de pixel previamente
pintado a (alt_up_vga_draw_pixel( color int x int y)) natildeo pinta um pixel de cada vez e sim
um bloco de 8x8 pixels
Figura 17 - Tela para a validaccedilatildeo dos testes com as bibliotecas graacuteficas do componente VGA
34 Recursos Necessaacuterios
A Tabela 24 apresenta os ambientes de desenvolvimento e ferramentas de software utilizadas
e na Tabela 25 as linguagens necessaacuterias Estas ferramentas foram utilizadas em ambiente
Windows Xp
Tabela 24 - Ferramentas de Desenvolvimentos e Ambientes
Software Para que foi Utilizado
Quartus II Para a definiccedilatildeo de qual o modelo de FPGA utilizado compilaccedilatildeo e simulaccedilatildeo e envio Load do NIOS para FPGA
SOPC Para definiccedilatildeo da do processador NIOS II e com quais componentes externos ele ira interagir atraveacutes dos controladores dos respectivos componentes
NIOS II IDE Para implementaccedilatildeo do firmware do processador NIOS II utilizando a linguagem em C
35
Borland C++ Builder Para desenvolvimento de ima interface de comunicaccedilatildeo via caboUSB-
BLASTER para o envio de imagem para o kit
Tabela 25 ndash Linguagens de programaccedilatildeo utilizadas
Linguagem Ferramenta C++ Borland C++ Builder VerilogVHDL Quartus II C NIOS II IDE
35 Viabilidade Teacutecnico-Econocircmica
O valor do projeto esta descrito na Tabela 26
Tabela 26 ndash Relaccedilatildeo dos Custos
DESCRICcedilAtildeO CUSTO APROXIMADO (R$) COMPONENTES ELETROcircNICOS 50000 1 Kit DE2 Cyclone II 35000 1 Monitor de Computador 35000 HORAS TRABALHADAS (400 horas) 750000 CUSTO TOTAL APROXIMADO (R$) 870000
36 Cronograma do Projeto
A tabela 27 contem as informaccedilotildees do cronograma do projeto
Tabela 27 ndash Cronograma de datas e entregas do projeto
Data Atividade a ser apresentada 050307 Entrega das propostas de projeto para avaliaccedilatildeo do colegiado 020407 Entrega das especificaccedilotildees teacutecnicas do projeto aprovado 110607 Entrega do projeto (monografia) e dos testes preliminares do mesmo 060807 Apresentaccedilatildeo preacutevia da implementaccedilatildeo do projeto especificado 011007 Apresentaccedilatildeo do projeto implementado
Qualificaccedilatildeo para a fase final 291007 Segunda apresentaccedilatildeo do projeto implementado para os que natildeo o fizeram no
dia 011006 com decreacutescimo da nota Qualificaccedilatildeo para a fase final
051107 Entrega da documentaccedilatildeo completa em espiral para a banca examinadora em 3 vias contendo a monografia manual teacutecnico manual do usuaacuterio e artigo cientiacutefico
261107 Defesa formal dos projetos com apresentaccedilatildeo oral para a banca examinadora 101207 Entrega da documentaccedilatildeo completa revisada e corrigida encadernada no
padratildeo da biblioteca (capa dura) em duas vias contendo a monografia manual teacutecnico manual do usuaacuterio e artigo cientiacutefico Entrega do CD contendo no formato WEB todo o conteuacutedo dos manuais
36
CAPIacuteTULO 4 ndash ESPECIFICACcedilAtildeO TECNICA
41 Requisitos Miacutenimos
Os requisitos miacutenimos de Hardware satildeo
Funcionamento das interfaces Serial e USB-Blaster
Funcionamento do Kit DE2
PC
Os requisitos miacutenimos de Software
Windows Xp
Quartus II
SOPC
NIOS II IDE
42 Projeto de Hardware
O hardware utilizado nesse projeto inclui componentes presentes na Placa de
Desenvolvimento Nios II - ediccedilatildeo DE2 Cyclone II EP2C35 e principalmente o hardware que seraacute
configurado na FPGA escrito em linguagem de descriccedilatildeo de hardware (HDL)
O um dos principais blocos de hardware eacute o processador NIOS II o Avalon Bus e os
controladores de componentes externos a FPGA e de comunicaccedilatildeo presentes no Kit
37
O software embarcado (firmware) estaraacute rodando nessa arquitetura Eacute uma arquitetura
completa construiacuteda com a ferramenta SOPC Builder da Altera A Figura 18 representa em
blocos os principais componentes dessa arquitetura
Figura 18 ndash Representaccedilatildeo em blocos do hardware do NIOS II
421 Funcatildeo do Touch-Screen
Outro bloco importante eacute o do Touch-Screen esta tela sensiacutevel ao toque pois como esta tela
trabalha com resistecircncia ao ser tocado em uma determinada regiatildeo uma resistecircncia eacute gerada e a
tensatildeo de saiacuteda eacute modificada a alimentaccedilatildeo desta placa eacute proveniente de sua placa controladora
a mesma placa que recebe a tensatildeo de saiacuteda modificada de acordo com a regiatildeo tocada na tela
Para verificar as caracteriacutesticas detalhadas do Touch-Screen e sua placa controlador favor ver
o Capitulo 2
422 Monitor e VGA
O Monitor inicialmente tem apenas o desenho de um botatildeo que ao ser tocado via touch
mudara a cor de toda a tela A imagem exibida no monitor tem uma resoluccedilatildeo de
38
Protoacutetipo das telas para os testes esta na Figura 19 a tela verde quando a touch natildeo eacute tocando
na regiatildeo do botatildeo de OK quando o botatildeo de OK for tocado a tela do monitor mudara de cor
ficando azul
Figura 19 ndash Tela do monitor
No Capitulo 2 estatildeo todas as caracteriacutesticas da pinagem e do conector VGA
423 Comunicaccedilatildeo serial
Entre a placa controladora do Touch-Screen e o FPGA existe uma comunicaccedilatildeo 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 manipulaccedilatildeo da imagem que eacute
mostrada no monitor
No capitulo 2 estatildeo das descriccedilotildees dos pinos e do conector da comunicaccedilatildeo Serial
O pacote serial que eacute transmitido pela placa controladora do touch-screen possui 10 bytes de
comprimento e segue a seguinte sequumlecircncia de envio
[55] [54] [] [] [] [] [] [] [] []
Sequumlecircncia dos bytes
Os dois primeiros bytes identificam o Header do pacote
O terceiro byte eacute 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 agrave posiccedilatildeo do eixo x onde a tela foi tocada
O sexto e o seacutetimo byte correspondem a posiccedilatildeo do eixo y onde a tele foi tocada
O restante os bytes identificam o tail do pacote recepcionado pelo kit DE2
39
424 Comunicaccedilatildeo USB-Blaster
Essencial para envio do projeto desenvolvido para o kit DE2 tambeacutem muito utilizado para o
debug deste projeto
435 Memoacuteria SDRAM
A memoacuteria utilizada para armazenar grandes quantidades de dados eacute a SDRAM (ver detalhes
no Capitulo 2)
Essa memoacuteria eacute muito raacutepida serviu muito bem para armazenar o firmware deste projeto
pois tem o tempo acesso ideal para ler as instruccedilotildees que utilizaram a VGA e tambeacutem eacute raacutepida o
suficiente para fazer a leitura dos dados e disponibilizar na saiacuteda VGA do kit
426 Memoacuteria FLASH
Eacute onde seraacute armazenado o firmware possui espaccedilo suficiente para isso 4MB e uma memoacuteria
mais lenta e por isso natildeo foi usada para armazenar dados para serem jogados na vga do Kit
43 Software
431 Software (Firmware)
O software tem de funccedilatildeo de utilizar as bibliotecas das controladoras dos componentes
externos a fim de controlar estes componentes de acordo com o necessaacuterio para atender o
objetivo do projeto
Ou seja uma tela inicial eacute apresentada e o usuaacuterio ao tocar na nela o kit recebe um pacote via
serial e interpreta a posiccedilatildeo da tela em que foi tocado e logo em seguida envia o resultado deste
toque para o monitor
432 Objetivos
O usuaacuterio 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 accedilatildeo de acordo com a posiccedilatildeo da tela
tocada alterando assim a imagem anterior com o resultado do toque
Interpretar o toque de usuaacuterio na tela touch-screen recepccedilatildeo do pacote via serial da placa
controladora do touch-screen tratamento do pacote e interpretaccedilatildeo das coordenadas x e y do
40
toque Realizaccedilatildeo de alguma accedilatildeo que resultara na alteraccedilatildeo da imagem da tela atual de acordo
com a funccedilatildeo em que as coordenadas foram previamente definidas para o que deve ser feito
432 Funccedilotildees
A Tabela 28 tem as principais funccedilotildees que foram implementadas para o sistema
Tabela 28 ndash Funccedilotildees do sistema firmware
FUNCcedilOtildeES Tela de um pequeno editor de texto Tratamento do sinal recebido da serial devido a um toque na tela Interpretaccedilatildeo do pacote serial e transfomaccedilatildeo para coordenadas x e y Transformaccedilatildeo das posiccedilotildees do toque na tela em alguma accedilatildeo enviando o resultado para a VGA Imagem final disponibilizada ao usuaacuterio de acordo com o toque que foi dado na tela Controlar dispositivos cada dispositivo pode ser controlado pelo seu respectivo contrador atraveacutes de seu endereccedilo base VGA SERIAL USB-BLASTER IO(Leds Switches etc) do Kit DE2
O Firmware do processador NIOS II eacute que realizaraacute a integraccedilatildeo entre hardware com
hardware Com o firmware controlando o NIOS II eacute possiacutevel interagir com os dispositivos
externos a FPGA Tornando possiacutevel a integraccedilatildeo da FPGA com a peliacutecula touch-screen e um
monitor sem a ajuda de um PC a uacutenica ajuda do pc seria para enviar dados de uma imagem para
o Kit DE2
44 Validaccedilatildeo e Testes
Inicialmente os moacutedulos da VGA e comunicaccedilatildeo SERIAL natildeo estavam funicionando
apenas o devido agrave fraca documentaccedilatildeo sobre o kit DE2 foi possiacutevel apenas fazer testes com o
Processador NIOS II pois sobre este existem bastantes documentos e exemplos que podem ser
utilizados
Nesta primeira parte foi possiacutevel testar o NIOS II para controlar o display bototildees e switchs
do kit DE2
Com o NIOS II funcionando completamente foi necessaacuterio porta-lo para o kit DE2 o que foi
simples pois como sabemos esses kits satildeo portaacuteveis entre si apenas mudando a pinagem e a
capacidade da FPGA
Com o Kit DE2 foi possiacutevel fazer os testes necessaacuterios com a comunicaccedilatildeo serial
inicialmente testada via terminal conversando diretamente com o kit foi possiacutevel fazer o
seguinte teste os caracteres que eram entrados via teclado chegavam ao kit via serial e o o
41
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 comdumpexe que eacute facilmente encontrado pelas ferramentas
de pesquisa da web e tambeacutem existem vario outros programas como este e o comdump eacute
utilizado para debug da porta serial do pc conectado diretamente na placa controladora do touch-
screen e foi a peccedila chave para o entendimento do pacote enviado pela placa controladora
Figura 20 - Cumdumpexe programa de debug da porta serial
A explicaccedilatildeo de cada byte do pacote esta explicado no item 423
Apos o entendimento completo da transmissatildeo 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 natildeo 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 ateacute o momento em que
foi testado os meacutetodos proprietaacuterios da Altera para fazer a VGA funcionar os meacutetodos esses
implementados em C
A figura 21 onde contem o teste baacutesico feito que foi a chave principal para o sucesso deste
projeto
42
Como dito no item 332 do projeto foram utilizados as funccedilotildees da controladora VGA esses
meacutetodos 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 eacute utilizado o meacutetodo alt_up_vga_draw_pixel( color int
x int y) onde color eacute a cor do bloco de pixels e x e y satildeo as coordenadas da tela onde o bloco
que seraacute pintado
Para escrever um caractere sobre um bloco de pixels pintado eacute utilizado a funccedilatildeo
alt_up_vga_draw_char_1b( char int x int y) onde char eacute o caractere a ser impresso e x e y satildeo
as coordenadas da tela onde os o caractere eacute impresso
Figura 21 - Teste baisco do funcionamento do componente VGA do kit DE2
43
CAPIacuteTULO 5 ndash VALIDACcedilAtildeO E RESULTADOS
Os resultados foram os melhores possiacuteveis pois com a utilizaccedilatildeo dos IP CORE
ldquocontroladorasrdquo dos componentes externos como VGA e SERIAL e seus meacutetodos de para
controle eacute possiacutevel controlar facilmente esses moacutedulos atraveacutes do firmware desenvolvido para o
processador NIOS que consegue realizar operaccedilotildees transparentes acessando dos meacutetodos de
controle dos moacutedulos
Apos os testes baacutesicos 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 baacutesico de editor de texto
A figura 22 mostra um teste utilizando os meacutetodos de controle disponiacuteveis para o IP CORE
da VGA para primeiramente fazer o menu da aplicaccedilatildeo desenvolvido em na linguagem C
Figura 22 ndash Menu baacutesico do editor de texto
Para desenhar o menu da figura acima foi utilizado os meacutetodos proprietaacuterios de controle da
VGA citados no capitulo 4 e tambeacutem estruturas de repeticcedilatildeo para que a tela fosse varrida e os
pixels desenhados nos respectivos lugares da tela bem como os caracteres
Na figura 23 eacute definida a seguinte estrutura em C para representar de um botatildeo
Figura 23 - Estrutura em C para representar um botatildeo
44
A figura 24 eacute a declaraccedilatildeo dos bototildees que seratildeo utilizados pelo aplicativo editor de texto
para comprovar o funcionamento do controle da interface touch-screen
Apenas o que esta dentro da marcaccedilatildeo quadrada representa os bototildees do menu da figura 23
e o restante satildeo os bototildees do teclado do editor de texto
Figura 24 - Declaraccedilatildeo dos bototildees do menu
45
A figura 25 representa o meacutetodo drawnButtonUp responsaacutevel por desenhar os bototildees na tela
de acordo com as posiccedilotildees em que foram declarados os bototildees deste meacutetodo satildeo desenhados
para parecerem que estatildeo ldquolevantadosrdquo e natildeo pressionados
Note que foram utilizados os meacutetodos proprietaacuterios de controle da VGA
alt_up_vga_draw_pixel pra pitar os pixels e alt_up_vga_draw_char_b1 para desenhar caracteres
como jaacute foi especificado no item 44 do projeto
Figura 25 ndash Meacutetodo drawButtonUp
46
O meacutetodo que desenha o caption do botatildeo se chama drawButtonText desenha os caracteres
em cima dos bototildees natildeo importa se o botatildeo esta pressionado ou natildeo
A figura 26 mostra como este meacutetodo foi implementado e ele eacute chamado no final de cada
meacutetodo onde algum tipo de botatildeo eacute desenhado quando o meacutetodo que desenha o botatildeo normal
quanto o pressionado e ateacute mesmo o do teclado
Figura 26 ndash Meacutetodo que escreve o caption de cada botatildeo
47
A figura 27 mostra o meacutetodo drawButtonDown que desenha o botatildeo pressionado ou seja
quando o usuaacuterio pressiona a regiatildeo correspondente a um botatildeo do menu no touch-screen o
mesmo redesenharaacute o botatildeo parecendo um efeito de botatildeo afundado note que no final do
meacutetodo novamente eacute chamado o meacutetodo drawButtonText que reescreveraacute o caption do botatildeo
como mostra o meacutetodo da figura 26 e esta ilustrado na figura 28
Figura 27 ndash Meacutetodo que desenha o botatildeo pressionado
48
Dependendo da aacuterea do menu que o usuaacuterio pressionar no touch-screen causar o efeito de
pressionado como mostra a figura 28
Figura 28 ndash Efeito do botatildeo de menu apertado
Na figura 29 eacute a representaccedilatildeo de quando a aacuterea correspondente ao botatildeo ldquoamarelordquo eacute
pressionada
Apos estes testes baacutesicos comprovando o funcionamento da interface graacutefica para o usuaacuterio
foi definido o restante dos componentes da tela que eacute constituiacutedo de um prompt e um teclado
qwerty que foi essencial para comprovar o perfeito funcionamento do controle da interface
touch-screen
49
51 Interface Grafica Final
A figura 29 mostra a interface final que o usuaacuterio teraacute para poder verificar o funcionamento
do controle da interface touch-screen
Figura 29 ndash Interface final touch-screen do usuaacuterio
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
511 Descriccedilatildeo do editor de texto
O menu possui 4 botoes cada um com sua respectiva funcionalidade quando o usuario
pressiona a area do botatildeo ldquoapagarrdquo uma vez entatildeo um carectere do prompt eacute apagado Quando eacute
precionado a area correspondente ao botatildeo ldquoResetrdquo todo o conteudo do prompt seraacute apagado e o
plano de fundo retornaraacute a cor branca Quando o botatildeo ldquoamarelordquo eacute pressionado o fundo da tela
passa a ser amarelo e o mesmo acontece se o usuario precionar o botatildeo verde tornando o cor de
fundo verde
50
O teclado possui 29 teclas sendo duas delas que equivalem ao ENTRA ldquoENTrdquo e ao
SPACE ldquoSPCrdquo Quando o usuario pressiona a area correspondente a algum botatildeo do teclado o
mesmo muda sua cor para azul e o seu caractere eacute disponibilizado no prompt
Essas funcionalidades nada mais satildeo do que um bom exemplo de como funciona
corretamente o controle da interface touch-screen
52 Prompt e o Teclado
A estrutura feita na linguagem C que define o prompt da figura 28 esta representado na
figura 30
Figura 30 ndash Estrutura em C para representar o prompt
A figura 31 mostra o metodo drawPrompt utilizado para desenhar na tela o prompt
Figura 31 ndash Meacutetodo que desenha o prompt
51
A estrutura do teclado eacute a mesma utilizada pela figura 23 e tambem eacute criado satildeo
inicializados na figura 24
O restante as implementaccedilotildees estatildeo disponiveis no cd deste documento
Quando algum botatildeo do teclado eacute pressionado sua cor muda para azul e sua letra
correspondente eacute escrita o prompt
A figura 32 ilustra quando o usuaacuterio aperta a letra lsquotrsquo na peliacutecula touch-screen
Figura 32 - Teste do prompt e o teclado
52
53 Controle da Interface Touch-Screen
Depois do todos os testes com o processador NIOS e a integraccedilatildeo do mesmo com os
moacutedulos externos como a porta SERIAL e a saiacuteda VGA eacute possiacutevel utilizando o touch-screen
criar uma interface amigaacutevel e faacutecil de usar para o usuaacuterio utilizando um firmware capaz de
interpretar os sinais via serial vindo da controladora do touch ao detectar que um toque foi dado
pelo usuaacuterio e realizar algumas accedilotildees que neste caso se comportam como um editor de texto
baacutesico
A figura 33 mostra como foi validado este projeto e seus moacutedulos controlando uma
interface touch-screen para chegar no resultado abaixo digitado pelo usuaacuterio comprovando o
funcionamento e viabilidade deste projeto
Figura 33 ndash 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 mudanccedilas podendo ser alterado rapidamente o tipo de
aplicaccedilatildeo ou integrado rapidamente com outro projeto
53
CAPIacuteTULO 6 - CONCLUSAtildeO
Uma das principais dificuldades no desenvolvimento deste projeto foi fazer o levantamento
da documentaccedilatildeo sobre o processador NIOS e os moacutedulos externos a FPGA do Kit DE2 Como
natildeo foi feito algum projeto antes que utilizasse a interface VGA e a SERIAL do Kit DE2 levou-
se muito tempo ateacute conseguir adquirir e ordenar o conhecimento que foi sendo adquirido ateacute
conseguir dar os primeiros passos e realizar os primeiros testes com a VGA e a SERIAL Outro
grande obstaacuteculo foi ter de descobrir que para que o NIOS controlasse os moacutedulos externos a
FGPA fosse necessaacuterio copiar os arquivos c e h dos respectivos componente para dentro do
projeto
Mas depois de todos os problemas com os moacutedulos externos solucionados cada modulo do
projeto foi sendo desenvolvido separadamente ateacute seu total funcionamento Natildeo tive dificuldades
com a linguagem da programaccedilatildeo pois o Firmware do processador NIOS eacute o C a qual mais tive
contato na faculdade
Outro desafio foi fazer a peliacutecula 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
peliacutecula natildeo 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 possiacutevel
comeccedilar a fazer os testes necessaacuterios para prosseguir com o projeto aprender como o a peliacutecula
identifica um toque e manda este sinal para a controladora e a controladora transforma este sinal
em um sinal serial que eacute 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 accedilotildees
que as coordenadas jaacute estatildeo previamente calibradas no firmware para fazer bem como mudar de
cor a tela fazer o efeito de um botatildeo subindo e descendo etc
Varias vezes o projeto parou de funcionar entatildeo 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 memoacuteria abundante etc uma das
facilidades eacute a faacutecil alteraccedilatildeo do projeto podendo ser integrado a outro ou ateacute mesmo alterado
para realizar outros tipos de accedilotildees com o touch-screen
Existem vaacuterios melhoramentos que podem ser executados no projeto um deles eacute tentar
interpretar de uma maneira diferente os valores do eixo y pois do jeito que esta a resoluccedilatildeo do
eixo y esta muito baixa dificultando o reconhecimento de toques em aacutereas pequenas Talvez a
inclusatildeo de mais alguns bytes no pacote de leitura da serial resolva o problema
54
Uma ideacuteia para um proacuteximo projeto que use a interface touch-screen poderia ser a
integraccedilatildeo com o projeto do nosso colega Roberto Junqueira ou a desenvolvimento de uma
placa controladora para o touch-screen
Este trabalho eacute uma modesta contribuiccedilatildeo para o uso de FPGAs e do processador embarcado
NIOS implementado em VHDL pela Altera que acredito que vai abrir vaacuterios caminhos pois
com este projeto alguns caminhos ficaram mais faacuteceis de percorrer daqui para a frente
55
CAPIacuteTULO 7 - REFEREcircNCIAS BIBLIOGRAacuteFICAS
AMORE Roberto drsquo VHDL Descriccedilatildeo e Sintese de Circuitos Rio de Janeiro ed LTC
2005
Elotouch Touch-Screen e Controladora Descriccedilatildeo do funcionamento e descriccedilatildeo
tecnologia Touch-Screen lthttpwwwelotouchcombrgt Acesso em fevereiro de 2007
ALTERA University Program IP Cores Instalaccedilatildeo de IP Cores e referencias sobre os
componentes dos kits DE1 e DE2 Disponivel em lthttpwwwalteracomeducationunivip-
coresunv-ip-coreshtmlgt Acesso em abril de 2007
ALTERA NIOS II Documentaccedilatildeo sobre o pprocessador embracado NIO II Disponivel
em lthttpwwwalteracomproductsipprocessorsipm-indexjspgt Acesso em Abril de 2007
ALTERA Development amp Education Board 2 (DE2) Manual do usuario Disponivel no
de que acompanha o Kit DE2 ltDE2_user_manualDE2_UserManualpdfgt Acesso em
fevereiro de 2007
28
A Tabela 21 mostra os pinos da FPGA referente a cada pino de saida do conector VGA do
Kit DE2
Tabela 21 ndash Pinos da FPGA referentes a saiacuteda do Conector VGA do Kit
29
CAPIacuteTULO 3 ndash ESPECIFICACcedilAtildeO TECNICA
Nesse capiacutetulo tem-se uma descriccedilatildeo dos principais moacutedulos do projeto Satildeo eles Software
Firmware e Hardware
Inicialmente eacute apresentada a visatildeo geral do sistema e a descriccedilatildeo funcional de cada moacutedulo
A Figura 15 apresenta o diagrama em blocos do sistema
Figura 15 - Moacutedulos do projeto
31 Descriccedilatildeo de Software
O Software eacute uma das interfaces com o usuaacuterio
312 Diagrama de Blocos do Software
30
312 Modulo do PC
Neste modulo eacute 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
32 Descriccedilatildeo de Hardware
321 Modulo Touch-Screen
O usuaacuterio ao tocar o Touch-Screen (AT4 touch-screen resistivo de 4 fios) ocorre uma
mudanccedila nas tensotildees do eixo X e do eixo Y devido a resistecircncia gerada pelo ao toque do usuaacuterio
em uma determinada regiatildeo da tela essa mudanccedila de tensatildeo eacute interpretada pela placa
controladora COACh IIs do Touch-Screen e enviada via serial para o Kit DE2 que interpretaraacute
os dados e faraacute o devido processamento
322 Modulo FPGA
O Hardware corresponde tanto aos componentes fiacutesicos presentes no kit de desenvolvimento
quanto aos componentes que seratildeo configurados na FPGA Satildeo diversos componentes escritos
em linguagem de descriccedilatildeo de hardware
No um dos principais componentes de hardware utilizado modulo eacute o processador NIOS II
para se ter uma ideacuteia o processador NIOS II eacute capaz gerenciar os dispositivos externos a FPGA
utilizando controladores de memoacuterias controladores de VGA entre outros E tambeacutem eacute possiacutevel
o proacuteprio usuaacuterio criar seu componente para ser controlado atraveacutes do processador NIOS
II(Altera 2007)
31
3221 O Processador NIOS II
Atraveacutes do software SOPC da ALTERA foi possiacutevel montar a arquitetura de hardware do
processador NIOS II bem como especificar as interfaces que ele iraacute controlar atraveacutes do firmwar
feito no NIOS II IDE
Na Tabela 22 eacute no campo Module Name onde estatildeo os moacutedulos que foram usados para
definir o processador NIOS II e os componentes externos que ele iraacute controlar e no campo
Description esta a descriccedilatildeo do nome de cada modulo
Tabela 22 ndash Moacutedulos dos componentes e suas descriccedilotildees
3222 Firmware para o NIOS II
O Firmware foi feito utilizando a linguagem C utilizando a ferramenta NIOS II IDE Atraveacutes
do firmware eacute possiacutevel 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 graacuteficas para controlar a vga e serial e
USB-BLASTER eacute encarregado em enviar todo o desenvolvimento do projeto para o Kit DE2
323 Configuraccedilatildeo da FPGA via JTAG
Depois de configurado o hardware do processador NIOS II eacute preciso fazer o load do NIOS
para a FPGA e para que isso aconteccedila eacute necessaacuterio que atraveacutes do software Quartus II da
ALTERA utilizando a interface JTAG utilizando o cabo USB-BLASTER
32
324 Comunicaccedilatildeo entre FPGA e o Touch-Screen
Para comunicaccedilatildeo entre dos dois hardwares Touch-Screen e o FPGA eacute utilizando uma
interface serial RS-232
A configuraccedilatildeo da interface eacute a seguinte
Bits de dados 8
Taxa de dados 5600(bps)
A Tabela 23 mostra a relaccedilatildeo dos pinos da porta serial com os pinos da FPGA
Tabela 23 ndash Pinos da FPGA referente agrave pinagem da interface Serial
E a Figura 16 mostra o desenho correspondente da interface serial
Figura 16 ndash Conector da interface serial do kit DE2
33 Especificaccedilatildeo de Validaccedilatildeo
331 Validaccedilatildeo de Hardware
A validade do hardware se faz com a anaacutelise de todos os moacutedulos envolvidos
As necessidades satildeo estudadas os componentes externos ao FPGA satildeo selecionados de
acordo o processador nios e os controladores dos moacutedulos externos como VGA e SERIAL satildeo
enviados ao modulo FPGA
Os resultados obtidos na tela do monitor e a recepccedilatildeo dos dados pela serial comprovam o
funcionamento do modulo de comunicaccedilatildeo da serial e vga
33
332 Validaccedilatildeo de Software
A validaccedilatildeo do controle da interface touch-screen faz-se a partir dos resultados obtidos das
funccedilotildees escritas na linguagem C especificas para cada componente externos ao FPGA essas
funccedilotildees tornam possiacuteveis que o processador NIOS na FPGA tenha total controle sobre os
moacutedulos externos como a VGA e a SERIAL
As funccedilotildees que satildeo utilizadas para validar o funcionamento do software satildeo para a VGA os
meacutetodos de controle (alt_up_vga_draw_char_1b( char int x int y)) e (alt_up_vga_draw_pixel(
color x y))
O meacutetodo (alt_up_vga_draw_char_1b( char int x int y)) tem a funcionalidade de escrever
caracteres na tela do monitor e a descriccedilatildeo da sua assinatura ldquoparacircmetrosrdquo eacute a seguinte char eacute o
caractere que eacute escrito em alguma posiccedilatildeo na tela int x eacute a posiccedilatildeo x da tela do monitor e int y eacute
a posiccedilatildeo y da tela do monitor sendo que a resoluccedilatildeo utilizada eacute de 80x60 ou seja x natildeo pode
passar de 80 e y natildeo pode passar de 60
O meacutetodo (alt_up_vga_draw_pixel( color int x int y)) tem a funcionalidade de ldquopintarrdquo o
fundo da tela do monitor o meacutetodo de imprimir caracteres tem preferecircncia sobre este meacutetodo ou
seja os caracteres sempre ficam sob a aacuterea pintada ou seja o caractere sempre ficara em cima da
aacuterea pintada a descriccedilatildeo da assinatura deste meacutetodo eacute a seguinte color eacute a valor da cor que pode
ser um valor inteiro ou em hexadecimal para definir uma cor de alguma posiccedilatildeo da tela definidos
pelos paracircmetros x e y
As funccedilotildees que satildeo utilizadas para validar o funcionamento do software satildeo para a Serial os
meacutetodos de controle de transmissatildeo (fread( packet sizeof(packet) 1 serial_fp )) a funccedilatildeo
fread eacute utilizada para a leitura via interrupccedilatildeo dos pacotes que a controladora envia para o kit
DE2 as assinaturas do meacutetodo fread tem a seguinte composiccedilatildeo packet eacute a estrutura do pacote
que seraacute recebido o sizeof(packet) eacute o diz qual eacute o tamanho exato da estrutura criada e o
serial_fp eacute o handle da porta serial
Uma observaccedilatildeo muito importante eacute que para o total funcionamento eacute necessaacuterio 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 rs232h e rs232c onde estatildeo os meacutetodos de
controle da SERIAL e alt_up_vgah alt_up_vgac onde estatildeo os meacutetodos de controle para a
VGA Para tornar estes meacutetodos acessiacuteveis eacute preciso fazer os includes dos arquivos h no
projeto da NIOS IDE
A figura 17 mostra a utilizaccedilatildeo dos meacutetodos (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
34
int y)) utlizado para escrever os caracteres lsquoarsquo e lsquobrsquo dentro de um grupo de pixel previamente
pintado a (alt_up_vga_draw_pixel( color int x int y)) natildeo pinta um pixel de cada vez e sim
um bloco de 8x8 pixels
Figura 17 - Tela para a validaccedilatildeo dos testes com as bibliotecas graacuteficas do componente VGA
34 Recursos Necessaacuterios
A Tabela 24 apresenta os ambientes de desenvolvimento e ferramentas de software utilizadas
e na Tabela 25 as linguagens necessaacuterias Estas ferramentas foram utilizadas em ambiente
Windows Xp
Tabela 24 - Ferramentas de Desenvolvimentos e Ambientes
Software Para que foi Utilizado
Quartus II Para a definiccedilatildeo de qual o modelo de FPGA utilizado compilaccedilatildeo e simulaccedilatildeo e envio Load do NIOS para FPGA
SOPC Para definiccedilatildeo da do processador NIOS II e com quais componentes externos ele ira interagir atraveacutes dos controladores dos respectivos componentes
NIOS II IDE Para implementaccedilatildeo do firmware do processador NIOS II utilizando a linguagem em C
35
Borland C++ Builder Para desenvolvimento de ima interface de comunicaccedilatildeo via caboUSB-
BLASTER para o envio de imagem para o kit
Tabela 25 ndash Linguagens de programaccedilatildeo utilizadas
Linguagem Ferramenta C++ Borland C++ Builder VerilogVHDL Quartus II C NIOS II IDE
35 Viabilidade Teacutecnico-Econocircmica
O valor do projeto esta descrito na Tabela 26
Tabela 26 ndash Relaccedilatildeo dos Custos
DESCRICcedilAtildeO CUSTO APROXIMADO (R$) COMPONENTES ELETROcircNICOS 50000 1 Kit DE2 Cyclone II 35000 1 Monitor de Computador 35000 HORAS TRABALHADAS (400 horas) 750000 CUSTO TOTAL APROXIMADO (R$) 870000
36 Cronograma do Projeto
A tabela 27 contem as informaccedilotildees do cronograma do projeto
Tabela 27 ndash Cronograma de datas e entregas do projeto
Data Atividade a ser apresentada 050307 Entrega das propostas de projeto para avaliaccedilatildeo do colegiado 020407 Entrega das especificaccedilotildees teacutecnicas do projeto aprovado 110607 Entrega do projeto (monografia) e dos testes preliminares do mesmo 060807 Apresentaccedilatildeo preacutevia da implementaccedilatildeo do projeto especificado 011007 Apresentaccedilatildeo do projeto implementado
Qualificaccedilatildeo para a fase final 291007 Segunda apresentaccedilatildeo do projeto implementado para os que natildeo o fizeram no
dia 011006 com decreacutescimo da nota Qualificaccedilatildeo para a fase final
051107 Entrega da documentaccedilatildeo completa em espiral para a banca examinadora em 3 vias contendo a monografia manual teacutecnico manual do usuaacuterio e artigo cientiacutefico
261107 Defesa formal dos projetos com apresentaccedilatildeo oral para a banca examinadora 101207 Entrega da documentaccedilatildeo completa revisada e corrigida encadernada no
padratildeo da biblioteca (capa dura) em duas vias contendo a monografia manual teacutecnico manual do usuaacuterio e artigo cientiacutefico Entrega do CD contendo no formato WEB todo o conteuacutedo dos manuais
36
CAPIacuteTULO 4 ndash ESPECIFICACcedilAtildeO TECNICA
41 Requisitos Miacutenimos
Os requisitos miacutenimos de Hardware satildeo
Funcionamento das interfaces Serial e USB-Blaster
Funcionamento do Kit DE2
PC
Os requisitos miacutenimos de Software
Windows Xp
Quartus II
SOPC
NIOS II IDE
42 Projeto de Hardware
O hardware utilizado nesse projeto inclui componentes presentes na Placa de
Desenvolvimento Nios II - ediccedilatildeo DE2 Cyclone II EP2C35 e principalmente o hardware que seraacute
configurado na FPGA escrito em linguagem de descriccedilatildeo de hardware (HDL)
O um dos principais blocos de hardware eacute o processador NIOS II o Avalon Bus e os
controladores de componentes externos a FPGA e de comunicaccedilatildeo presentes no Kit
37
O software embarcado (firmware) estaraacute rodando nessa arquitetura Eacute uma arquitetura
completa construiacuteda com a ferramenta SOPC Builder da Altera A Figura 18 representa em
blocos os principais componentes dessa arquitetura
Figura 18 ndash Representaccedilatildeo em blocos do hardware do NIOS II
421 Funcatildeo do Touch-Screen
Outro bloco importante eacute o do Touch-Screen esta tela sensiacutevel ao toque pois como esta tela
trabalha com resistecircncia ao ser tocado em uma determinada regiatildeo uma resistecircncia eacute gerada e a
tensatildeo de saiacuteda eacute modificada a alimentaccedilatildeo desta placa eacute proveniente de sua placa controladora
a mesma placa que recebe a tensatildeo de saiacuteda modificada de acordo com a regiatildeo tocada na tela
Para verificar as caracteriacutesticas detalhadas do Touch-Screen e sua placa controlador favor ver
o Capitulo 2
422 Monitor e VGA
O Monitor inicialmente tem apenas o desenho de um botatildeo que ao ser tocado via touch
mudara a cor de toda a tela A imagem exibida no monitor tem uma resoluccedilatildeo de
38
Protoacutetipo das telas para os testes esta na Figura 19 a tela verde quando a touch natildeo eacute tocando
na regiatildeo do botatildeo de OK quando o botatildeo de OK for tocado a tela do monitor mudara de cor
ficando azul
Figura 19 ndash Tela do monitor
No Capitulo 2 estatildeo todas as caracteriacutesticas da pinagem e do conector VGA
423 Comunicaccedilatildeo serial
Entre a placa controladora do Touch-Screen e o FPGA existe uma comunicaccedilatildeo 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 manipulaccedilatildeo da imagem que eacute
mostrada no monitor
No capitulo 2 estatildeo das descriccedilotildees dos pinos e do conector da comunicaccedilatildeo Serial
O pacote serial que eacute transmitido pela placa controladora do touch-screen possui 10 bytes de
comprimento e segue a seguinte sequumlecircncia de envio
[55] [54] [] [] [] [] [] [] [] []
Sequumlecircncia dos bytes
Os dois primeiros bytes identificam o Header do pacote
O terceiro byte eacute 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 agrave posiccedilatildeo do eixo x onde a tela foi tocada
O sexto e o seacutetimo byte correspondem a posiccedilatildeo do eixo y onde a tele foi tocada
O restante os bytes identificam o tail do pacote recepcionado pelo kit DE2
39
424 Comunicaccedilatildeo USB-Blaster
Essencial para envio do projeto desenvolvido para o kit DE2 tambeacutem muito utilizado para o
debug deste projeto
435 Memoacuteria SDRAM
A memoacuteria utilizada para armazenar grandes quantidades de dados eacute a SDRAM (ver detalhes
no Capitulo 2)
Essa memoacuteria eacute muito raacutepida serviu muito bem para armazenar o firmware deste projeto
pois tem o tempo acesso ideal para ler as instruccedilotildees que utilizaram a VGA e tambeacutem eacute raacutepida o
suficiente para fazer a leitura dos dados e disponibilizar na saiacuteda VGA do kit
426 Memoacuteria FLASH
Eacute onde seraacute armazenado o firmware possui espaccedilo suficiente para isso 4MB e uma memoacuteria
mais lenta e por isso natildeo foi usada para armazenar dados para serem jogados na vga do Kit
43 Software
431 Software (Firmware)
O software tem de funccedilatildeo de utilizar as bibliotecas das controladoras dos componentes
externos a fim de controlar estes componentes de acordo com o necessaacuterio para atender o
objetivo do projeto
Ou seja uma tela inicial eacute apresentada e o usuaacuterio ao tocar na nela o kit recebe um pacote via
serial e interpreta a posiccedilatildeo da tela em que foi tocado e logo em seguida envia o resultado deste
toque para o monitor
432 Objetivos
O usuaacuterio 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 accedilatildeo de acordo com a posiccedilatildeo da tela
tocada alterando assim a imagem anterior com o resultado do toque
Interpretar o toque de usuaacuterio na tela touch-screen recepccedilatildeo do pacote via serial da placa
controladora do touch-screen tratamento do pacote e interpretaccedilatildeo das coordenadas x e y do
40
toque Realizaccedilatildeo de alguma accedilatildeo que resultara na alteraccedilatildeo da imagem da tela atual de acordo
com a funccedilatildeo em que as coordenadas foram previamente definidas para o que deve ser feito
432 Funccedilotildees
A Tabela 28 tem as principais funccedilotildees que foram implementadas para o sistema
Tabela 28 ndash Funccedilotildees do sistema firmware
FUNCcedilOtildeES Tela de um pequeno editor de texto Tratamento do sinal recebido da serial devido a um toque na tela Interpretaccedilatildeo do pacote serial e transfomaccedilatildeo para coordenadas x e y Transformaccedilatildeo das posiccedilotildees do toque na tela em alguma accedilatildeo enviando o resultado para a VGA Imagem final disponibilizada ao usuaacuterio de acordo com o toque que foi dado na tela Controlar dispositivos cada dispositivo pode ser controlado pelo seu respectivo contrador atraveacutes de seu endereccedilo base VGA SERIAL USB-BLASTER IO(Leds Switches etc) do Kit DE2
O Firmware do processador NIOS II eacute que realizaraacute a integraccedilatildeo entre hardware com
hardware Com o firmware controlando o NIOS II eacute possiacutevel interagir com os dispositivos
externos a FPGA Tornando possiacutevel a integraccedilatildeo da FPGA com a peliacutecula touch-screen e um
monitor sem a ajuda de um PC a uacutenica ajuda do pc seria para enviar dados de uma imagem para
o Kit DE2
44 Validaccedilatildeo e Testes
Inicialmente os moacutedulos da VGA e comunicaccedilatildeo SERIAL natildeo estavam funicionando
apenas o devido agrave fraca documentaccedilatildeo sobre o kit DE2 foi possiacutevel apenas fazer testes com o
Processador NIOS II pois sobre este existem bastantes documentos e exemplos que podem ser
utilizados
Nesta primeira parte foi possiacutevel testar o NIOS II para controlar o display bototildees e switchs
do kit DE2
Com o NIOS II funcionando completamente foi necessaacuterio porta-lo para o kit DE2 o que foi
simples pois como sabemos esses kits satildeo portaacuteveis entre si apenas mudando a pinagem e a
capacidade da FPGA
Com o Kit DE2 foi possiacutevel fazer os testes necessaacuterios com a comunicaccedilatildeo serial
inicialmente testada via terminal conversando diretamente com o kit foi possiacutevel fazer o
seguinte teste os caracteres que eram entrados via teclado chegavam ao kit via serial e o o
41
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 comdumpexe que eacute facilmente encontrado pelas ferramentas
de pesquisa da web e tambeacutem existem vario outros programas como este e o comdump eacute
utilizado para debug da porta serial do pc conectado diretamente na placa controladora do touch-
screen e foi a peccedila chave para o entendimento do pacote enviado pela placa controladora
Figura 20 - Cumdumpexe programa de debug da porta serial
A explicaccedilatildeo de cada byte do pacote esta explicado no item 423
Apos o entendimento completo da transmissatildeo 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 natildeo 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 ateacute o momento em que
foi testado os meacutetodos proprietaacuterios da Altera para fazer a VGA funcionar os meacutetodos esses
implementados em C
A figura 21 onde contem o teste baacutesico feito que foi a chave principal para o sucesso deste
projeto
42
Como dito no item 332 do projeto foram utilizados as funccedilotildees da controladora VGA esses
meacutetodos 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 eacute utilizado o meacutetodo alt_up_vga_draw_pixel( color int
x int y) onde color eacute a cor do bloco de pixels e x e y satildeo as coordenadas da tela onde o bloco
que seraacute pintado
Para escrever um caractere sobre um bloco de pixels pintado eacute utilizado a funccedilatildeo
alt_up_vga_draw_char_1b( char int x int y) onde char eacute o caractere a ser impresso e x e y satildeo
as coordenadas da tela onde os o caractere eacute impresso
Figura 21 - Teste baisco do funcionamento do componente VGA do kit DE2
43
CAPIacuteTULO 5 ndash VALIDACcedilAtildeO E RESULTADOS
Os resultados foram os melhores possiacuteveis pois com a utilizaccedilatildeo dos IP CORE
ldquocontroladorasrdquo dos componentes externos como VGA e SERIAL e seus meacutetodos de para
controle eacute possiacutevel controlar facilmente esses moacutedulos atraveacutes do firmware desenvolvido para o
processador NIOS que consegue realizar operaccedilotildees transparentes acessando dos meacutetodos de
controle dos moacutedulos
Apos os testes baacutesicos 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 baacutesico de editor de texto
A figura 22 mostra um teste utilizando os meacutetodos de controle disponiacuteveis para o IP CORE
da VGA para primeiramente fazer o menu da aplicaccedilatildeo desenvolvido em na linguagem C
Figura 22 ndash Menu baacutesico do editor de texto
Para desenhar o menu da figura acima foi utilizado os meacutetodos proprietaacuterios de controle da
VGA citados no capitulo 4 e tambeacutem estruturas de repeticcedilatildeo para que a tela fosse varrida e os
pixels desenhados nos respectivos lugares da tela bem como os caracteres
Na figura 23 eacute definida a seguinte estrutura em C para representar de um botatildeo
Figura 23 - Estrutura em C para representar um botatildeo
44
A figura 24 eacute a declaraccedilatildeo dos bototildees que seratildeo utilizados pelo aplicativo editor de texto
para comprovar o funcionamento do controle da interface touch-screen
Apenas o que esta dentro da marcaccedilatildeo quadrada representa os bototildees do menu da figura 23
e o restante satildeo os bototildees do teclado do editor de texto
Figura 24 - Declaraccedilatildeo dos bototildees do menu
45
A figura 25 representa o meacutetodo drawnButtonUp responsaacutevel por desenhar os bototildees na tela
de acordo com as posiccedilotildees em que foram declarados os bototildees deste meacutetodo satildeo desenhados
para parecerem que estatildeo ldquolevantadosrdquo e natildeo pressionados
Note que foram utilizados os meacutetodos proprietaacuterios de controle da VGA
alt_up_vga_draw_pixel pra pitar os pixels e alt_up_vga_draw_char_b1 para desenhar caracteres
como jaacute foi especificado no item 44 do projeto
Figura 25 ndash Meacutetodo drawButtonUp
46
O meacutetodo que desenha o caption do botatildeo se chama drawButtonText desenha os caracteres
em cima dos bototildees natildeo importa se o botatildeo esta pressionado ou natildeo
A figura 26 mostra como este meacutetodo foi implementado e ele eacute chamado no final de cada
meacutetodo onde algum tipo de botatildeo eacute desenhado quando o meacutetodo que desenha o botatildeo normal
quanto o pressionado e ateacute mesmo o do teclado
Figura 26 ndash Meacutetodo que escreve o caption de cada botatildeo
47
A figura 27 mostra o meacutetodo drawButtonDown que desenha o botatildeo pressionado ou seja
quando o usuaacuterio pressiona a regiatildeo correspondente a um botatildeo do menu no touch-screen o
mesmo redesenharaacute o botatildeo parecendo um efeito de botatildeo afundado note que no final do
meacutetodo novamente eacute chamado o meacutetodo drawButtonText que reescreveraacute o caption do botatildeo
como mostra o meacutetodo da figura 26 e esta ilustrado na figura 28
Figura 27 ndash Meacutetodo que desenha o botatildeo pressionado
48
Dependendo da aacuterea do menu que o usuaacuterio pressionar no touch-screen causar o efeito de
pressionado como mostra a figura 28
Figura 28 ndash Efeito do botatildeo de menu apertado
Na figura 29 eacute a representaccedilatildeo de quando a aacuterea correspondente ao botatildeo ldquoamarelordquo eacute
pressionada
Apos estes testes baacutesicos comprovando o funcionamento da interface graacutefica para o usuaacuterio
foi definido o restante dos componentes da tela que eacute constituiacutedo de um prompt e um teclado
qwerty que foi essencial para comprovar o perfeito funcionamento do controle da interface
touch-screen
49
51 Interface Grafica Final
A figura 29 mostra a interface final que o usuaacuterio teraacute para poder verificar o funcionamento
do controle da interface touch-screen
Figura 29 ndash Interface final touch-screen do usuaacuterio
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
511 Descriccedilatildeo do editor de texto
O menu possui 4 botoes cada um com sua respectiva funcionalidade quando o usuario
pressiona a area do botatildeo ldquoapagarrdquo uma vez entatildeo um carectere do prompt eacute apagado Quando eacute
precionado a area correspondente ao botatildeo ldquoResetrdquo todo o conteudo do prompt seraacute apagado e o
plano de fundo retornaraacute a cor branca Quando o botatildeo ldquoamarelordquo eacute pressionado o fundo da tela
passa a ser amarelo e o mesmo acontece se o usuario precionar o botatildeo verde tornando o cor de
fundo verde
50
O teclado possui 29 teclas sendo duas delas que equivalem ao ENTRA ldquoENTrdquo e ao
SPACE ldquoSPCrdquo Quando o usuario pressiona a area correspondente a algum botatildeo do teclado o
mesmo muda sua cor para azul e o seu caractere eacute disponibilizado no prompt
Essas funcionalidades nada mais satildeo do que um bom exemplo de como funciona
corretamente o controle da interface touch-screen
52 Prompt e o Teclado
A estrutura feita na linguagem C que define o prompt da figura 28 esta representado na
figura 30
Figura 30 ndash Estrutura em C para representar o prompt
A figura 31 mostra o metodo drawPrompt utilizado para desenhar na tela o prompt
Figura 31 ndash Meacutetodo que desenha o prompt
51
A estrutura do teclado eacute a mesma utilizada pela figura 23 e tambem eacute criado satildeo
inicializados na figura 24
O restante as implementaccedilotildees estatildeo disponiveis no cd deste documento
Quando algum botatildeo do teclado eacute pressionado sua cor muda para azul e sua letra
correspondente eacute escrita o prompt
A figura 32 ilustra quando o usuaacuterio aperta a letra lsquotrsquo na peliacutecula touch-screen
Figura 32 - Teste do prompt e o teclado
52
53 Controle da Interface Touch-Screen
Depois do todos os testes com o processador NIOS e a integraccedilatildeo do mesmo com os
moacutedulos externos como a porta SERIAL e a saiacuteda VGA eacute possiacutevel utilizando o touch-screen
criar uma interface amigaacutevel e faacutecil de usar para o usuaacuterio utilizando um firmware capaz de
interpretar os sinais via serial vindo da controladora do touch ao detectar que um toque foi dado
pelo usuaacuterio e realizar algumas accedilotildees que neste caso se comportam como um editor de texto
baacutesico
A figura 33 mostra como foi validado este projeto e seus moacutedulos controlando uma
interface touch-screen para chegar no resultado abaixo digitado pelo usuaacuterio comprovando o
funcionamento e viabilidade deste projeto
Figura 33 ndash 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 mudanccedilas podendo ser alterado rapidamente o tipo de
aplicaccedilatildeo ou integrado rapidamente com outro projeto
53
CAPIacuteTULO 6 - CONCLUSAtildeO
Uma das principais dificuldades no desenvolvimento deste projeto foi fazer o levantamento
da documentaccedilatildeo sobre o processador NIOS e os moacutedulos externos a FPGA do Kit DE2 Como
natildeo foi feito algum projeto antes que utilizasse a interface VGA e a SERIAL do Kit DE2 levou-
se muito tempo ateacute conseguir adquirir e ordenar o conhecimento que foi sendo adquirido ateacute
conseguir dar os primeiros passos e realizar os primeiros testes com a VGA e a SERIAL Outro
grande obstaacuteculo foi ter de descobrir que para que o NIOS controlasse os moacutedulos externos a
FGPA fosse necessaacuterio copiar os arquivos c e h dos respectivos componente para dentro do
projeto
Mas depois de todos os problemas com os moacutedulos externos solucionados cada modulo do
projeto foi sendo desenvolvido separadamente ateacute seu total funcionamento Natildeo tive dificuldades
com a linguagem da programaccedilatildeo pois o Firmware do processador NIOS eacute o C a qual mais tive
contato na faculdade
Outro desafio foi fazer a peliacutecula 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
peliacutecula natildeo 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 possiacutevel
comeccedilar a fazer os testes necessaacuterios para prosseguir com o projeto aprender como o a peliacutecula
identifica um toque e manda este sinal para a controladora e a controladora transforma este sinal
em um sinal serial que eacute 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 accedilotildees
que as coordenadas jaacute estatildeo previamente calibradas no firmware para fazer bem como mudar de
cor a tela fazer o efeito de um botatildeo subindo e descendo etc
Varias vezes o projeto parou de funcionar entatildeo 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 memoacuteria abundante etc uma das
facilidades eacute a faacutecil alteraccedilatildeo do projeto podendo ser integrado a outro ou ateacute mesmo alterado
para realizar outros tipos de accedilotildees com o touch-screen
Existem vaacuterios melhoramentos que podem ser executados no projeto um deles eacute tentar
interpretar de uma maneira diferente os valores do eixo y pois do jeito que esta a resoluccedilatildeo do
eixo y esta muito baixa dificultando o reconhecimento de toques em aacutereas pequenas Talvez a
inclusatildeo de mais alguns bytes no pacote de leitura da serial resolva o problema
54
Uma ideacuteia para um proacuteximo projeto que use a interface touch-screen poderia ser a
integraccedilatildeo com o projeto do nosso colega Roberto Junqueira ou a desenvolvimento de uma
placa controladora para o touch-screen
Este trabalho eacute uma modesta contribuiccedilatildeo para o uso de FPGAs e do processador embarcado
NIOS implementado em VHDL pela Altera que acredito que vai abrir vaacuterios caminhos pois
com este projeto alguns caminhos ficaram mais faacuteceis de percorrer daqui para a frente
55
CAPIacuteTULO 7 - REFEREcircNCIAS BIBLIOGRAacuteFICAS
AMORE Roberto drsquo VHDL Descriccedilatildeo e Sintese de Circuitos Rio de Janeiro ed LTC
2005
Elotouch Touch-Screen e Controladora Descriccedilatildeo do funcionamento e descriccedilatildeo
tecnologia Touch-Screen lthttpwwwelotouchcombrgt Acesso em fevereiro de 2007
ALTERA University Program IP Cores Instalaccedilatildeo de IP Cores e referencias sobre os
componentes dos kits DE1 e DE2 Disponivel em lthttpwwwalteracomeducationunivip-
coresunv-ip-coreshtmlgt Acesso em abril de 2007
ALTERA NIOS II Documentaccedilatildeo sobre o pprocessador embracado NIO II Disponivel
em lthttpwwwalteracomproductsipprocessorsipm-indexjspgt Acesso em Abril de 2007
ALTERA Development amp Education Board 2 (DE2) Manual do usuario Disponivel no
de que acompanha o Kit DE2 ltDE2_user_manualDE2_UserManualpdfgt Acesso em
fevereiro de 2007
29
CAPIacuteTULO 3 ndash ESPECIFICACcedilAtildeO TECNICA
Nesse capiacutetulo tem-se uma descriccedilatildeo dos principais moacutedulos do projeto Satildeo eles Software
Firmware e Hardware
Inicialmente eacute apresentada a visatildeo geral do sistema e a descriccedilatildeo funcional de cada moacutedulo
A Figura 15 apresenta o diagrama em blocos do sistema
Figura 15 - Moacutedulos do projeto
31 Descriccedilatildeo de Software
O Software eacute uma das interfaces com o usuaacuterio
312 Diagrama de Blocos do Software
30
312 Modulo do PC
Neste modulo eacute 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
32 Descriccedilatildeo de Hardware
321 Modulo Touch-Screen
O usuaacuterio ao tocar o Touch-Screen (AT4 touch-screen resistivo de 4 fios) ocorre uma
mudanccedila nas tensotildees do eixo X e do eixo Y devido a resistecircncia gerada pelo ao toque do usuaacuterio
em uma determinada regiatildeo da tela essa mudanccedila de tensatildeo eacute interpretada pela placa
controladora COACh IIs do Touch-Screen e enviada via serial para o Kit DE2 que interpretaraacute
os dados e faraacute o devido processamento
322 Modulo FPGA
O Hardware corresponde tanto aos componentes fiacutesicos presentes no kit de desenvolvimento
quanto aos componentes que seratildeo configurados na FPGA Satildeo diversos componentes escritos
em linguagem de descriccedilatildeo de hardware
No um dos principais componentes de hardware utilizado modulo eacute o processador NIOS II
para se ter uma ideacuteia o processador NIOS II eacute capaz gerenciar os dispositivos externos a FPGA
utilizando controladores de memoacuterias controladores de VGA entre outros E tambeacutem eacute possiacutevel
o proacuteprio usuaacuterio criar seu componente para ser controlado atraveacutes do processador NIOS
II(Altera 2007)
31
3221 O Processador NIOS II
Atraveacutes do software SOPC da ALTERA foi possiacutevel montar a arquitetura de hardware do
processador NIOS II bem como especificar as interfaces que ele iraacute controlar atraveacutes do firmwar
feito no NIOS II IDE
Na Tabela 22 eacute no campo Module Name onde estatildeo os moacutedulos que foram usados para
definir o processador NIOS II e os componentes externos que ele iraacute controlar e no campo
Description esta a descriccedilatildeo do nome de cada modulo
Tabela 22 ndash Moacutedulos dos componentes e suas descriccedilotildees
3222 Firmware para o NIOS II
O Firmware foi feito utilizando a linguagem C utilizando a ferramenta NIOS II IDE Atraveacutes
do firmware eacute possiacutevel 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 graacuteficas para controlar a vga e serial e
USB-BLASTER eacute encarregado em enviar todo o desenvolvimento do projeto para o Kit DE2
323 Configuraccedilatildeo da FPGA via JTAG
Depois de configurado o hardware do processador NIOS II eacute preciso fazer o load do NIOS
para a FPGA e para que isso aconteccedila eacute necessaacuterio que atraveacutes do software Quartus II da
ALTERA utilizando a interface JTAG utilizando o cabo USB-BLASTER
32
324 Comunicaccedilatildeo entre FPGA e o Touch-Screen
Para comunicaccedilatildeo entre dos dois hardwares Touch-Screen e o FPGA eacute utilizando uma
interface serial RS-232
A configuraccedilatildeo da interface eacute a seguinte
Bits de dados 8
Taxa de dados 5600(bps)
A Tabela 23 mostra a relaccedilatildeo dos pinos da porta serial com os pinos da FPGA
Tabela 23 ndash Pinos da FPGA referente agrave pinagem da interface Serial
E a Figura 16 mostra o desenho correspondente da interface serial
Figura 16 ndash Conector da interface serial do kit DE2
33 Especificaccedilatildeo de Validaccedilatildeo
331 Validaccedilatildeo de Hardware
A validade do hardware se faz com a anaacutelise de todos os moacutedulos envolvidos
As necessidades satildeo estudadas os componentes externos ao FPGA satildeo selecionados de
acordo o processador nios e os controladores dos moacutedulos externos como VGA e SERIAL satildeo
enviados ao modulo FPGA
Os resultados obtidos na tela do monitor e a recepccedilatildeo dos dados pela serial comprovam o
funcionamento do modulo de comunicaccedilatildeo da serial e vga
33
332 Validaccedilatildeo de Software
A validaccedilatildeo do controle da interface touch-screen faz-se a partir dos resultados obtidos das
funccedilotildees escritas na linguagem C especificas para cada componente externos ao FPGA essas
funccedilotildees tornam possiacuteveis que o processador NIOS na FPGA tenha total controle sobre os
moacutedulos externos como a VGA e a SERIAL
As funccedilotildees que satildeo utilizadas para validar o funcionamento do software satildeo para a VGA os
meacutetodos de controle (alt_up_vga_draw_char_1b( char int x int y)) e (alt_up_vga_draw_pixel(
color x y))
O meacutetodo (alt_up_vga_draw_char_1b( char int x int y)) tem a funcionalidade de escrever
caracteres na tela do monitor e a descriccedilatildeo da sua assinatura ldquoparacircmetrosrdquo eacute a seguinte char eacute o
caractere que eacute escrito em alguma posiccedilatildeo na tela int x eacute a posiccedilatildeo x da tela do monitor e int y eacute
a posiccedilatildeo y da tela do monitor sendo que a resoluccedilatildeo utilizada eacute de 80x60 ou seja x natildeo pode
passar de 80 e y natildeo pode passar de 60
O meacutetodo (alt_up_vga_draw_pixel( color int x int y)) tem a funcionalidade de ldquopintarrdquo o
fundo da tela do monitor o meacutetodo de imprimir caracteres tem preferecircncia sobre este meacutetodo ou
seja os caracteres sempre ficam sob a aacuterea pintada ou seja o caractere sempre ficara em cima da
aacuterea pintada a descriccedilatildeo da assinatura deste meacutetodo eacute a seguinte color eacute a valor da cor que pode
ser um valor inteiro ou em hexadecimal para definir uma cor de alguma posiccedilatildeo da tela definidos
pelos paracircmetros x e y
As funccedilotildees que satildeo utilizadas para validar o funcionamento do software satildeo para a Serial os
meacutetodos de controle de transmissatildeo (fread( packet sizeof(packet) 1 serial_fp )) a funccedilatildeo
fread eacute utilizada para a leitura via interrupccedilatildeo dos pacotes que a controladora envia para o kit
DE2 as assinaturas do meacutetodo fread tem a seguinte composiccedilatildeo packet eacute a estrutura do pacote
que seraacute recebido o sizeof(packet) eacute o diz qual eacute o tamanho exato da estrutura criada e o
serial_fp eacute o handle da porta serial
Uma observaccedilatildeo muito importante eacute que para o total funcionamento eacute necessaacuterio 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 rs232h e rs232c onde estatildeo os meacutetodos de
controle da SERIAL e alt_up_vgah alt_up_vgac onde estatildeo os meacutetodos de controle para a
VGA Para tornar estes meacutetodos acessiacuteveis eacute preciso fazer os includes dos arquivos h no
projeto da NIOS IDE
A figura 17 mostra a utilizaccedilatildeo dos meacutetodos (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
34
int y)) utlizado para escrever os caracteres lsquoarsquo e lsquobrsquo dentro de um grupo de pixel previamente
pintado a (alt_up_vga_draw_pixel( color int x int y)) natildeo pinta um pixel de cada vez e sim
um bloco de 8x8 pixels
Figura 17 - Tela para a validaccedilatildeo dos testes com as bibliotecas graacuteficas do componente VGA
34 Recursos Necessaacuterios
A Tabela 24 apresenta os ambientes de desenvolvimento e ferramentas de software utilizadas
e na Tabela 25 as linguagens necessaacuterias Estas ferramentas foram utilizadas em ambiente
Windows Xp
Tabela 24 - Ferramentas de Desenvolvimentos e Ambientes
Software Para que foi Utilizado
Quartus II Para a definiccedilatildeo de qual o modelo de FPGA utilizado compilaccedilatildeo e simulaccedilatildeo e envio Load do NIOS para FPGA
SOPC Para definiccedilatildeo da do processador NIOS II e com quais componentes externos ele ira interagir atraveacutes dos controladores dos respectivos componentes
NIOS II IDE Para implementaccedilatildeo do firmware do processador NIOS II utilizando a linguagem em C
35
Borland C++ Builder Para desenvolvimento de ima interface de comunicaccedilatildeo via caboUSB-
BLASTER para o envio de imagem para o kit
Tabela 25 ndash Linguagens de programaccedilatildeo utilizadas
Linguagem Ferramenta C++ Borland C++ Builder VerilogVHDL Quartus II C NIOS II IDE
35 Viabilidade Teacutecnico-Econocircmica
O valor do projeto esta descrito na Tabela 26
Tabela 26 ndash Relaccedilatildeo dos Custos
DESCRICcedilAtildeO CUSTO APROXIMADO (R$) COMPONENTES ELETROcircNICOS 50000 1 Kit DE2 Cyclone II 35000 1 Monitor de Computador 35000 HORAS TRABALHADAS (400 horas) 750000 CUSTO TOTAL APROXIMADO (R$) 870000
36 Cronograma do Projeto
A tabela 27 contem as informaccedilotildees do cronograma do projeto
Tabela 27 ndash Cronograma de datas e entregas do projeto
Data Atividade a ser apresentada 050307 Entrega das propostas de projeto para avaliaccedilatildeo do colegiado 020407 Entrega das especificaccedilotildees teacutecnicas do projeto aprovado 110607 Entrega do projeto (monografia) e dos testes preliminares do mesmo 060807 Apresentaccedilatildeo preacutevia da implementaccedilatildeo do projeto especificado 011007 Apresentaccedilatildeo do projeto implementado
Qualificaccedilatildeo para a fase final 291007 Segunda apresentaccedilatildeo do projeto implementado para os que natildeo o fizeram no
dia 011006 com decreacutescimo da nota Qualificaccedilatildeo para a fase final
051107 Entrega da documentaccedilatildeo completa em espiral para a banca examinadora em 3 vias contendo a monografia manual teacutecnico manual do usuaacuterio e artigo cientiacutefico
261107 Defesa formal dos projetos com apresentaccedilatildeo oral para a banca examinadora 101207 Entrega da documentaccedilatildeo completa revisada e corrigida encadernada no
padratildeo da biblioteca (capa dura) em duas vias contendo a monografia manual teacutecnico manual do usuaacuterio e artigo cientiacutefico Entrega do CD contendo no formato WEB todo o conteuacutedo dos manuais
36
CAPIacuteTULO 4 ndash ESPECIFICACcedilAtildeO TECNICA
41 Requisitos Miacutenimos
Os requisitos miacutenimos de Hardware satildeo
Funcionamento das interfaces Serial e USB-Blaster
Funcionamento do Kit DE2
PC
Os requisitos miacutenimos de Software
Windows Xp
Quartus II
SOPC
NIOS II IDE
42 Projeto de Hardware
O hardware utilizado nesse projeto inclui componentes presentes na Placa de
Desenvolvimento Nios II - ediccedilatildeo DE2 Cyclone II EP2C35 e principalmente o hardware que seraacute
configurado na FPGA escrito em linguagem de descriccedilatildeo de hardware (HDL)
O um dos principais blocos de hardware eacute o processador NIOS II o Avalon Bus e os
controladores de componentes externos a FPGA e de comunicaccedilatildeo presentes no Kit
37
O software embarcado (firmware) estaraacute rodando nessa arquitetura Eacute uma arquitetura
completa construiacuteda com a ferramenta SOPC Builder da Altera A Figura 18 representa em
blocos os principais componentes dessa arquitetura
Figura 18 ndash Representaccedilatildeo em blocos do hardware do NIOS II
421 Funcatildeo do Touch-Screen
Outro bloco importante eacute o do Touch-Screen esta tela sensiacutevel ao toque pois como esta tela
trabalha com resistecircncia ao ser tocado em uma determinada regiatildeo uma resistecircncia eacute gerada e a
tensatildeo de saiacuteda eacute modificada a alimentaccedilatildeo desta placa eacute proveniente de sua placa controladora
a mesma placa que recebe a tensatildeo de saiacuteda modificada de acordo com a regiatildeo tocada na tela
Para verificar as caracteriacutesticas detalhadas do Touch-Screen e sua placa controlador favor ver
o Capitulo 2
422 Monitor e VGA
O Monitor inicialmente tem apenas o desenho de um botatildeo que ao ser tocado via touch
mudara a cor de toda a tela A imagem exibida no monitor tem uma resoluccedilatildeo de
38
Protoacutetipo das telas para os testes esta na Figura 19 a tela verde quando a touch natildeo eacute tocando
na regiatildeo do botatildeo de OK quando o botatildeo de OK for tocado a tela do monitor mudara de cor
ficando azul
Figura 19 ndash Tela do monitor
No Capitulo 2 estatildeo todas as caracteriacutesticas da pinagem e do conector VGA
423 Comunicaccedilatildeo serial
Entre a placa controladora do Touch-Screen e o FPGA existe uma comunicaccedilatildeo 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 manipulaccedilatildeo da imagem que eacute
mostrada no monitor
No capitulo 2 estatildeo das descriccedilotildees dos pinos e do conector da comunicaccedilatildeo Serial
O pacote serial que eacute transmitido pela placa controladora do touch-screen possui 10 bytes de
comprimento e segue a seguinte sequumlecircncia de envio
[55] [54] [] [] [] [] [] [] [] []
Sequumlecircncia dos bytes
Os dois primeiros bytes identificam o Header do pacote
O terceiro byte eacute 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 agrave posiccedilatildeo do eixo x onde a tela foi tocada
O sexto e o seacutetimo byte correspondem a posiccedilatildeo do eixo y onde a tele foi tocada
O restante os bytes identificam o tail do pacote recepcionado pelo kit DE2
39
424 Comunicaccedilatildeo USB-Blaster
Essencial para envio do projeto desenvolvido para o kit DE2 tambeacutem muito utilizado para o
debug deste projeto
435 Memoacuteria SDRAM
A memoacuteria utilizada para armazenar grandes quantidades de dados eacute a SDRAM (ver detalhes
no Capitulo 2)
Essa memoacuteria eacute muito raacutepida serviu muito bem para armazenar o firmware deste projeto
pois tem o tempo acesso ideal para ler as instruccedilotildees que utilizaram a VGA e tambeacutem eacute raacutepida o
suficiente para fazer a leitura dos dados e disponibilizar na saiacuteda VGA do kit
426 Memoacuteria FLASH
Eacute onde seraacute armazenado o firmware possui espaccedilo suficiente para isso 4MB e uma memoacuteria
mais lenta e por isso natildeo foi usada para armazenar dados para serem jogados na vga do Kit
43 Software
431 Software (Firmware)
O software tem de funccedilatildeo de utilizar as bibliotecas das controladoras dos componentes
externos a fim de controlar estes componentes de acordo com o necessaacuterio para atender o
objetivo do projeto
Ou seja uma tela inicial eacute apresentada e o usuaacuterio ao tocar na nela o kit recebe um pacote via
serial e interpreta a posiccedilatildeo da tela em que foi tocado e logo em seguida envia o resultado deste
toque para o monitor
432 Objetivos
O usuaacuterio 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 accedilatildeo de acordo com a posiccedilatildeo da tela
tocada alterando assim a imagem anterior com o resultado do toque
Interpretar o toque de usuaacuterio na tela touch-screen recepccedilatildeo do pacote via serial da placa
controladora do touch-screen tratamento do pacote e interpretaccedilatildeo das coordenadas x e y do
40
toque Realizaccedilatildeo de alguma accedilatildeo que resultara na alteraccedilatildeo da imagem da tela atual de acordo
com a funccedilatildeo em que as coordenadas foram previamente definidas para o que deve ser feito
432 Funccedilotildees
A Tabela 28 tem as principais funccedilotildees que foram implementadas para o sistema
Tabela 28 ndash Funccedilotildees do sistema firmware
FUNCcedilOtildeES Tela de um pequeno editor de texto Tratamento do sinal recebido da serial devido a um toque na tela Interpretaccedilatildeo do pacote serial e transfomaccedilatildeo para coordenadas x e y Transformaccedilatildeo das posiccedilotildees do toque na tela em alguma accedilatildeo enviando o resultado para a VGA Imagem final disponibilizada ao usuaacuterio de acordo com o toque que foi dado na tela Controlar dispositivos cada dispositivo pode ser controlado pelo seu respectivo contrador atraveacutes de seu endereccedilo base VGA SERIAL USB-BLASTER IO(Leds Switches etc) do Kit DE2
O Firmware do processador NIOS II eacute que realizaraacute a integraccedilatildeo entre hardware com
hardware Com o firmware controlando o NIOS II eacute possiacutevel interagir com os dispositivos
externos a FPGA Tornando possiacutevel a integraccedilatildeo da FPGA com a peliacutecula touch-screen e um
monitor sem a ajuda de um PC a uacutenica ajuda do pc seria para enviar dados de uma imagem para
o Kit DE2
44 Validaccedilatildeo e Testes
Inicialmente os moacutedulos da VGA e comunicaccedilatildeo SERIAL natildeo estavam funicionando
apenas o devido agrave fraca documentaccedilatildeo sobre o kit DE2 foi possiacutevel apenas fazer testes com o
Processador NIOS II pois sobre este existem bastantes documentos e exemplos que podem ser
utilizados
Nesta primeira parte foi possiacutevel testar o NIOS II para controlar o display bototildees e switchs
do kit DE2
Com o NIOS II funcionando completamente foi necessaacuterio porta-lo para o kit DE2 o que foi
simples pois como sabemos esses kits satildeo portaacuteveis entre si apenas mudando a pinagem e a
capacidade da FPGA
Com o Kit DE2 foi possiacutevel fazer os testes necessaacuterios com a comunicaccedilatildeo serial
inicialmente testada via terminal conversando diretamente com o kit foi possiacutevel fazer o
seguinte teste os caracteres que eram entrados via teclado chegavam ao kit via serial e o o
41
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 comdumpexe que eacute facilmente encontrado pelas ferramentas
de pesquisa da web e tambeacutem existem vario outros programas como este e o comdump eacute
utilizado para debug da porta serial do pc conectado diretamente na placa controladora do touch-
screen e foi a peccedila chave para o entendimento do pacote enviado pela placa controladora
Figura 20 - Cumdumpexe programa de debug da porta serial
A explicaccedilatildeo de cada byte do pacote esta explicado no item 423
Apos o entendimento completo da transmissatildeo 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 natildeo 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 ateacute o momento em que
foi testado os meacutetodos proprietaacuterios da Altera para fazer a VGA funcionar os meacutetodos esses
implementados em C
A figura 21 onde contem o teste baacutesico feito que foi a chave principal para o sucesso deste
projeto
42
Como dito no item 332 do projeto foram utilizados as funccedilotildees da controladora VGA esses
meacutetodos 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 eacute utilizado o meacutetodo alt_up_vga_draw_pixel( color int
x int y) onde color eacute a cor do bloco de pixels e x e y satildeo as coordenadas da tela onde o bloco
que seraacute pintado
Para escrever um caractere sobre um bloco de pixels pintado eacute utilizado a funccedilatildeo
alt_up_vga_draw_char_1b( char int x int y) onde char eacute o caractere a ser impresso e x e y satildeo
as coordenadas da tela onde os o caractere eacute impresso
Figura 21 - Teste baisco do funcionamento do componente VGA do kit DE2
43
CAPIacuteTULO 5 ndash VALIDACcedilAtildeO E RESULTADOS
Os resultados foram os melhores possiacuteveis pois com a utilizaccedilatildeo dos IP CORE
ldquocontroladorasrdquo dos componentes externos como VGA e SERIAL e seus meacutetodos de para
controle eacute possiacutevel controlar facilmente esses moacutedulos atraveacutes do firmware desenvolvido para o
processador NIOS que consegue realizar operaccedilotildees transparentes acessando dos meacutetodos de
controle dos moacutedulos
Apos os testes baacutesicos 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 baacutesico de editor de texto
A figura 22 mostra um teste utilizando os meacutetodos de controle disponiacuteveis para o IP CORE
da VGA para primeiramente fazer o menu da aplicaccedilatildeo desenvolvido em na linguagem C
Figura 22 ndash Menu baacutesico do editor de texto
Para desenhar o menu da figura acima foi utilizado os meacutetodos proprietaacuterios de controle da
VGA citados no capitulo 4 e tambeacutem estruturas de repeticcedilatildeo para que a tela fosse varrida e os
pixels desenhados nos respectivos lugares da tela bem como os caracteres
Na figura 23 eacute definida a seguinte estrutura em C para representar de um botatildeo
Figura 23 - Estrutura em C para representar um botatildeo
44
A figura 24 eacute a declaraccedilatildeo dos bototildees que seratildeo utilizados pelo aplicativo editor de texto
para comprovar o funcionamento do controle da interface touch-screen
Apenas o que esta dentro da marcaccedilatildeo quadrada representa os bototildees do menu da figura 23
e o restante satildeo os bototildees do teclado do editor de texto
Figura 24 - Declaraccedilatildeo dos bototildees do menu
45
A figura 25 representa o meacutetodo drawnButtonUp responsaacutevel por desenhar os bototildees na tela
de acordo com as posiccedilotildees em que foram declarados os bototildees deste meacutetodo satildeo desenhados
para parecerem que estatildeo ldquolevantadosrdquo e natildeo pressionados
Note que foram utilizados os meacutetodos proprietaacuterios de controle da VGA
alt_up_vga_draw_pixel pra pitar os pixels e alt_up_vga_draw_char_b1 para desenhar caracteres
como jaacute foi especificado no item 44 do projeto
Figura 25 ndash Meacutetodo drawButtonUp
46
O meacutetodo que desenha o caption do botatildeo se chama drawButtonText desenha os caracteres
em cima dos bototildees natildeo importa se o botatildeo esta pressionado ou natildeo
A figura 26 mostra como este meacutetodo foi implementado e ele eacute chamado no final de cada
meacutetodo onde algum tipo de botatildeo eacute desenhado quando o meacutetodo que desenha o botatildeo normal
quanto o pressionado e ateacute mesmo o do teclado
Figura 26 ndash Meacutetodo que escreve o caption de cada botatildeo
47
A figura 27 mostra o meacutetodo drawButtonDown que desenha o botatildeo pressionado ou seja
quando o usuaacuterio pressiona a regiatildeo correspondente a um botatildeo do menu no touch-screen o
mesmo redesenharaacute o botatildeo parecendo um efeito de botatildeo afundado note que no final do
meacutetodo novamente eacute chamado o meacutetodo drawButtonText que reescreveraacute o caption do botatildeo
como mostra o meacutetodo da figura 26 e esta ilustrado na figura 28
Figura 27 ndash Meacutetodo que desenha o botatildeo pressionado
48
Dependendo da aacuterea do menu que o usuaacuterio pressionar no touch-screen causar o efeito de
pressionado como mostra a figura 28
Figura 28 ndash Efeito do botatildeo de menu apertado
Na figura 29 eacute a representaccedilatildeo de quando a aacuterea correspondente ao botatildeo ldquoamarelordquo eacute
pressionada
Apos estes testes baacutesicos comprovando o funcionamento da interface graacutefica para o usuaacuterio
foi definido o restante dos componentes da tela que eacute constituiacutedo de um prompt e um teclado
qwerty que foi essencial para comprovar o perfeito funcionamento do controle da interface
touch-screen
49
51 Interface Grafica Final
A figura 29 mostra a interface final que o usuaacuterio teraacute para poder verificar o funcionamento
do controle da interface touch-screen
Figura 29 ndash Interface final touch-screen do usuaacuterio
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
511 Descriccedilatildeo do editor de texto
O menu possui 4 botoes cada um com sua respectiva funcionalidade quando o usuario
pressiona a area do botatildeo ldquoapagarrdquo uma vez entatildeo um carectere do prompt eacute apagado Quando eacute
precionado a area correspondente ao botatildeo ldquoResetrdquo todo o conteudo do prompt seraacute apagado e o
plano de fundo retornaraacute a cor branca Quando o botatildeo ldquoamarelordquo eacute pressionado o fundo da tela
passa a ser amarelo e o mesmo acontece se o usuario precionar o botatildeo verde tornando o cor de
fundo verde
50
O teclado possui 29 teclas sendo duas delas que equivalem ao ENTRA ldquoENTrdquo e ao
SPACE ldquoSPCrdquo Quando o usuario pressiona a area correspondente a algum botatildeo do teclado o
mesmo muda sua cor para azul e o seu caractere eacute disponibilizado no prompt
Essas funcionalidades nada mais satildeo do que um bom exemplo de como funciona
corretamente o controle da interface touch-screen
52 Prompt e o Teclado
A estrutura feita na linguagem C que define o prompt da figura 28 esta representado na
figura 30
Figura 30 ndash Estrutura em C para representar o prompt
A figura 31 mostra o metodo drawPrompt utilizado para desenhar na tela o prompt
Figura 31 ndash Meacutetodo que desenha o prompt
51
A estrutura do teclado eacute a mesma utilizada pela figura 23 e tambem eacute criado satildeo
inicializados na figura 24
O restante as implementaccedilotildees estatildeo disponiveis no cd deste documento
Quando algum botatildeo do teclado eacute pressionado sua cor muda para azul e sua letra
correspondente eacute escrita o prompt
A figura 32 ilustra quando o usuaacuterio aperta a letra lsquotrsquo na peliacutecula touch-screen
Figura 32 - Teste do prompt e o teclado
52
53 Controle da Interface Touch-Screen
Depois do todos os testes com o processador NIOS e a integraccedilatildeo do mesmo com os
moacutedulos externos como a porta SERIAL e a saiacuteda VGA eacute possiacutevel utilizando o touch-screen
criar uma interface amigaacutevel e faacutecil de usar para o usuaacuterio utilizando um firmware capaz de
interpretar os sinais via serial vindo da controladora do touch ao detectar que um toque foi dado
pelo usuaacuterio e realizar algumas accedilotildees que neste caso se comportam como um editor de texto
baacutesico
A figura 33 mostra como foi validado este projeto e seus moacutedulos controlando uma
interface touch-screen para chegar no resultado abaixo digitado pelo usuaacuterio comprovando o
funcionamento e viabilidade deste projeto
Figura 33 ndash 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 mudanccedilas podendo ser alterado rapidamente o tipo de
aplicaccedilatildeo ou integrado rapidamente com outro projeto
53
CAPIacuteTULO 6 - CONCLUSAtildeO
Uma das principais dificuldades no desenvolvimento deste projeto foi fazer o levantamento
da documentaccedilatildeo sobre o processador NIOS e os moacutedulos externos a FPGA do Kit DE2 Como
natildeo foi feito algum projeto antes que utilizasse a interface VGA e a SERIAL do Kit DE2 levou-
se muito tempo ateacute conseguir adquirir e ordenar o conhecimento que foi sendo adquirido ateacute
conseguir dar os primeiros passos e realizar os primeiros testes com a VGA e a SERIAL Outro
grande obstaacuteculo foi ter de descobrir que para que o NIOS controlasse os moacutedulos externos a
FGPA fosse necessaacuterio copiar os arquivos c e h dos respectivos componente para dentro do
projeto
Mas depois de todos os problemas com os moacutedulos externos solucionados cada modulo do
projeto foi sendo desenvolvido separadamente ateacute seu total funcionamento Natildeo tive dificuldades
com a linguagem da programaccedilatildeo pois o Firmware do processador NIOS eacute o C a qual mais tive
contato na faculdade
Outro desafio foi fazer a peliacutecula 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
peliacutecula natildeo 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 possiacutevel
comeccedilar a fazer os testes necessaacuterios para prosseguir com o projeto aprender como o a peliacutecula
identifica um toque e manda este sinal para a controladora e a controladora transforma este sinal
em um sinal serial que eacute 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 accedilotildees
que as coordenadas jaacute estatildeo previamente calibradas no firmware para fazer bem como mudar de
cor a tela fazer o efeito de um botatildeo subindo e descendo etc
Varias vezes o projeto parou de funcionar entatildeo 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 memoacuteria abundante etc uma das
facilidades eacute a faacutecil alteraccedilatildeo do projeto podendo ser integrado a outro ou ateacute mesmo alterado
para realizar outros tipos de accedilotildees com o touch-screen
Existem vaacuterios melhoramentos que podem ser executados no projeto um deles eacute tentar
interpretar de uma maneira diferente os valores do eixo y pois do jeito que esta a resoluccedilatildeo do
eixo y esta muito baixa dificultando o reconhecimento de toques em aacutereas pequenas Talvez a
inclusatildeo de mais alguns bytes no pacote de leitura da serial resolva o problema
54
Uma ideacuteia para um proacuteximo projeto que use a interface touch-screen poderia ser a
integraccedilatildeo com o projeto do nosso colega Roberto Junqueira ou a desenvolvimento de uma
placa controladora para o touch-screen
Este trabalho eacute uma modesta contribuiccedilatildeo para o uso de FPGAs e do processador embarcado
NIOS implementado em VHDL pela Altera que acredito que vai abrir vaacuterios caminhos pois
com este projeto alguns caminhos ficaram mais faacuteceis de percorrer daqui para a frente
55
CAPIacuteTULO 7 - REFEREcircNCIAS BIBLIOGRAacuteFICAS
AMORE Roberto drsquo VHDL Descriccedilatildeo e Sintese de Circuitos Rio de Janeiro ed LTC
2005
Elotouch Touch-Screen e Controladora Descriccedilatildeo do funcionamento e descriccedilatildeo
tecnologia Touch-Screen lthttpwwwelotouchcombrgt Acesso em fevereiro de 2007
ALTERA University Program IP Cores Instalaccedilatildeo de IP Cores e referencias sobre os
componentes dos kits DE1 e DE2 Disponivel em lthttpwwwalteracomeducationunivip-
coresunv-ip-coreshtmlgt Acesso em abril de 2007
ALTERA NIOS II Documentaccedilatildeo sobre o pprocessador embracado NIO II Disponivel
em lthttpwwwalteracomproductsipprocessorsipm-indexjspgt Acesso em Abril de 2007
ALTERA Development amp Education Board 2 (DE2) Manual do usuario Disponivel no
de que acompanha o Kit DE2 ltDE2_user_manualDE2_UserManualpdfgt Acesso em
fevereiro de 2007
30
312 Modulo do PC
Neste modulo eacute 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
32 Descriccedilatildeo de Hardware
321 Modulo Touch-Screen
O usuaacuterio ao tocar o Touch-Screen (AT4 touch-screen resistivo de 4 fios) ocorre uma
mudanccedila nas tensotildees do eixo X e do eixo Y devido a resistecircncia gerada pelo ao toque do usuaacuterio
em uma determinada regiatildeo da tela essa mudanccedila de tensatildeo eacute interpretada pela placa
controladora COACh IIs do Touch-Screen e enviada via serial para o Kit DE2 que interpretaraacute
os dados e faraacute o devido processamento
322 Modulo FPGA
O Hardware corresponde tanto aos componentes fiacutesicos presentes no kit de desenvolvimento
quanto aos componentes que seratildeo configurados na FPGA Satildeo diversos componentes escritos
em linguagem de descriccedilatildeo de hardware
No um dos principais componentes de hardware utilizado modulo eacute o processador NIOS II
para se ter uma ideacuteia o processador NIOS II eacute capaz gerenciar os dispositivos externos a FPGA
utilizando controladores de memoacuterias controladores de VGA entre outros E tambeacutem eacute possiacutevel
o proacuteprio usuaacuterio criar seu componente para ser controlado atraveacutes do processador NIOS
II(Altera 2007)
31
3221 O Processador NIOS II
Atraveacutes do software SOPC da ALTERA foi possiacutevel montar a arquitetura de hardware do
processador NIOS II bem como especificar as interfaces que ele iraacute controlar atraveacutes do firmwar
feito no NIOS II IDE
Na Tabela 22 eacute no campo Module Name onde estatildeo os moacutedulos que foram usados para
definir o processador NIOS II e os componentes externos que ele iraacute controlar e no campo
Description esta a descriccedilatildeo do nome de cada modulo
Tabela 22 ndash Moacutedulos dos componentes e suas descriccedilotildees
3222 Firmware para o NIOS II
O Firmware foi feito utilizando a linguagem C utilizando a ferramenta NIOS II IDE Atraveacutes
do firmware eacute possiacutevel 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 graacuteficas para controlar a vga e serial e
USB-BLASTER eacute encarregado em enviar todo o desenvolvimento do projeto para o Kit DE2
323 Configuraccedilatildeo da FPGA via JTAG
Depois de configurado o hardware do processador NIOS II eacute preciso fazer o load do NIOS
para a FPGA e para que isso aconteccedila eacute necessaacuterio que atraveacutes do software Quartus II da
ALTERA utilizando a interface JTAG utilizando o cabo USB-BLASTER
32
324 Comunicaccedilatildeo entre FPGA e o Touch-Screen
Para comunicaccedilatildeo entre dos dois hardwares Touch-Screen e o FPGA eacute utilizando uma
interface serial RS-232
A configuraccedilatildeo da interface eacute a seguinte
Bits de dados 8
Taxa de dados 5600(bps)
A Tabela 23 mostra a relaccedilatildeo dos pinos da porta serial com os pinos da FPGA
Tabela 23 ndash Pinos da FPGA referente agrave pinagem da interface Serial
E a Figura 16 mostra o desenho correspondente da interface serial
Figura 16 ndash Conector da interface serial do kit DE2
33 Especificaccedilatildeo de Validaccedilatildeo
331 Validaccedilatildeo de Hardware
A validade do hardware se faz com a anaacutelise de todos os moacutedulos envolvidos
As necessidades satildeo estudadas os componentes externos ao FPGA satildeo selecionados de
acordo o processador nios e os controladores dos moacutedulos externos como VGA e SERIAL satildeo
enviados ao modulo FPGA
Os resultados obtidos na tela do monitor e a recepccedilatildeo dos dados pela serial comprovam o
funcionamento do modulo de comunicaccedilatildeo da serial e vga
33
332 Validaccedilatildeo de Software
A validaccedilatildeo do controle da interface touch-screen faz-se a partir dos resultados obtidos das
funccedilotildees escritas na linguagem C especificas para cada componente externos ao FPGA essas
funccedilotildees tornam possiacuteveis que o processador NIOS na FPGA tenha total controle sobre os
moacutedulos externos como a VGA e a SERIAL
As funccedilotildees que satildeo utilizadas para validar o funcionamento do software satildeo para a VGA os
meacutetodos de controle (alt_up_vga_draw_char_1b( char int x int y)) e (alt_up_vga_draw_pixel(
color x y))
O meacutetodo (alt_up_vga_draw_char_1b( char int x int y)) tem a funcionalidade de escrever
caracteres na tela do monitor e a descriccedilatildeo da sua assinatura ldquoparacircmetrosrdquo eacute a seguinte char eacute o
caractere que eacute escrito em alguma posiccedilatildeo na tela int x eacute a posiccedilatildeo x da tela do monitor e int y eacute
a posiccedilatildeo y da tela do monitor sendo que a resoluccedilatildeo utilizada eacute de 80x60 ou seja x natildeo pode
passar de 80 e y natildeo pode passar de 60
O meacutetodo (alt_up_vga_draw_pixel( color int x int y)) tem a funcionalidade de ldquopintarrdquo o
fundo da tela do monitor o meacutetodo de imprimir caracteres tem preferecircncia sobre este meacutetodo ou
seja os caracteres sempre ficam sob a aacuterea pintada ou seja o caractere sempre ficara em cima da
aacuterea pintada a descriccedilatildeo da assinatura deste meacutetodo eacute a seguinte color eacute a valor da cor que pode
ser um valor inteiro ou em hexadecimal para definir uma cor de alguma posiccedilatildeo da tela definidos
pelos paracircmetros x e y
As funccedilotildees que satildeo utilizadas para validar o funcionamento do software satildeo para a Serial os
meacutetodos de controle de transmissatildeo (fread( packet sizeof(packet) 1 serial_fp )) a funccedilatildeo
fread eacute utilizada para a leitura via interrupccedilatildeo dos pacotes que a controladora envia para o kit
DE2 as assinaturas do meacutetodo fread tem a seguinte composiccedilatildeo packet eacute a estrutura do pacote
que seraacute recebido o sizeof(packet) eacute o diz qual eacute o tamanho exato da estrutura criada e o
serial_fp eacute o handle da porta serial
Uma observaccedilatildeo muito importante eacute que para o total funcionamento eacute necessaacuterio 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 rs232h e rs232c onde estatildeo os meacutetodos de
controle da SERIAL e alt_up_vgah alt_up_vgac onde estatildeo os meacutetodos de controle para a
VGA Para tornar estes meacutetodos acessiacuteveis eacute preciso fazer os includes dos arquivos h no
projeto da NIOS IDE
A figura 17 mostra a utilizaccedilatildeo dos meacutetodos (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
34
int y)) utlizado para escrever os caracteres lsquoarsquo e lsquobrsquo dentro de um grupo de pixel previamente
pintado a (alt_up_vga_draw_pixel( color int x int y)) natildeo pinta um pixel de cada vez e sim
um bloco de 8x8 pixels
Figura 17 - Tela para a validaccedilatildeo dos testes com as bibliotecas graacuteficas do componente VGA
34 Recursos Necessaacuterios
A Tabela 24 apresenta os ambientes de desenvolvimento e ferramentas de software utilizadas
e na Tabela 25 as linguagens necessaacuterias Estas ferramentas foram utilizadas em ambiente
Windows Xp
Tabela 24 - Ferramentas de Desenvolvimentos e Ambientes
Software Para que foi Utilizado
Quartus II Para a definiccedilatildeo de qual o modelo de FPGA utilizado compilaccedilatildeo e simulaccedilatildeo e envio Load do NIOS para FPGA
SOPC Para definiccedilatildeo da do processador NIOS II e com quais componentes externos ele ira interagir atraveacutes dos controladores dos respectivos componentes
NIOS II IDE Para implementaccedilatildeo do firmware do processador NIOS II utilizando a linguagem em C
35
Borland C++ Builder Para desenvolvimento de ima interface de comunicaccedilatildeo via caboUSB-
BLASTER para o envio de imagem para o kit
Tabela 25 ndash Linguagens de programaccedilatildeo utilizadas
Linguagem Ferramenta C++ Borland C++ Builder VerilogVHDL Quartus II C NIOS II IDE
35 Viabilidade Teacutecnico-Econocircmica
O valor do projeto esta descrito na Tabela 26
Tabela 26 ndash Relaccedilatildeo dos Custos
DESCRICcedilAtildeO CUSTO APROXIMADO (R$) COMPONENTES ELETROcircNICOS 50000 1 Kit DE2 Cyclone II 35000 1 Monitor de Computador 35000 HORAS TRABALHADAS (400 horas) 750000 CUSTO TOTAL APROXIMADO (R$) 870000
36 Cronograma do Projeto
A tabela 27 contem as informaccedilotildees do cronograma do projeto
Tabela 27 ndash Cronograma de datas e entregas do projeto
Data Atividade a ser apresentada 050307 Entrega das propostas de projeto para avaliaccedilatildeo do colegiado 020407 Entrega das especificaccedilotildees teacutecnicas do projeto aprovado 110607 Entrega do projeto (monografia) e dos testes preliminares do mesmo 060807 Apresentaccedilatildeo preacutevia da implementaccedilatildeo do projeto especificado 011007 Apresentaccedilatildeo do projeto implementado
Qualificaccedilatildeo para a fase final 291007 Segunda apresentaccedilatildeo do projeto implementado para os que natildeo o fizeram no
dia 011006 com decreacutescimo da nota Qualificaccedilatildeo para a fase final
051107 Entrega da documentaccedilatildeo completa em espiral para a banca examinadora em 3 vias contendo a monografia manual teacutecnico manual do usuaacuterio e artigo cientiacutefico
261107 Defesa formal dos projetos com apresentaccedilatildeo oral para a banca examinadora 101207 Entrega da documentaccedilatildeo completa revisada e corrigida encadernada no
padratildeo da biblioteca (capa dura) em duas vias contendo a monografia manual teacutecnico manual do usuaacuterio e artigo cientiacutefico Entrega do CD contendo no formato WEB todo o conteuacutedo dos manuais
36
CAPIacuteTULO 4 ndash ESPECIFICACcedilAtildeO TECNICA
41 Requisitos Miacutenimos
Os requisitos miacutenimos de Hardware satildeo
Funcionamento das interfaces Serial e USB-Blaster
Funcionamento do Kit DE2
PC
Os requisitos miacutenimos de Software
Windows Xp
Quartus II
SOPC
NIOS II IDE
42 Projeto de Hardware
O hardware utilizado nesse projeto inclui componentes presentes na Placa de
Desenvolvimento Nios II - ediccedilatildeo DE2 Cyclone II EP2C35 e principalmente o hardware que seraacute
configurado na FPGA escrito em linguagem de descriccedilatildeo de hardware (HDL)
O um dos principais blocos de hardware eacute o processador NIOS II o Avalon Bus e os
controladores de componentes externos a FPGA e de comunicaccedilatildeo presentes no Kit
37
O software embarcado (firmware) estaraacute rodando nessa arquitetura Eacute uma arquitetura
completa construiacuteda com a ferramenta SOPC Builder da Altera A Figura 18 representa em
blocos os principais componentes dessa arquitetura
Figura 18 ndash Representaccedilatildeo em blocos do hardware do NIOS II
421 Funcatildeo do Touch-Screen
Outro bloco importante eacute o do Touch-Screen esta tela sensiacutevel ao toque pois como esta tela
trabalha com resistecircncia ao ser tocado em uma determinada regiatildeo uma resistecircncia eacute gerada e a
tensatildeo de saiacuteda eacute modificada a alimentaccedilatildeo desta placa eacute proveniente de sua placa controladora
a mesma placa que recebe a tensatildeo de saiacuteda modificada de acordo com a regiatildeo tocada na tela
Para verificar as caracteriacutesticas detalhadas do Touch-Screen e sua placa controlador favor ver
o Capitulo 2
422 Monitor e VGA
O Monitor inicialmente tem apenas o desenho de um botatildeo que ao ser tocado via touch
mudara a cor de toda a tela A imagem exibida no monitor tem uma resoluccedilatildeo de
38
Protoacutetipo das telas para os testes esta na Figura 19 a tela verde quando a touch natildeo eacute tocando
na regiatildeo do botatildeo de OK quando o botatildeo de OK for tocado a tela do monitor mudara de cor
ficando azul
Figura 19 ndash Tela do monitor
No Capitulo 2 estatildeo todas as caracteriacutesticas da pinagem e do conector VGA
423 Comunicaccedilatildeo serial
Entre a placa controladora do Touch-Screen e o FPGA existe uma comunicaccedilatildeo 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 manipulaccedilatildeo da imagem que eacute
mostrada no monitor
No capitulo 2 estatildeo das descriccedilotildees dos pinos e do conector da comunicaccedilatildeo Serial
O pacote serial que eacute transmitido pela placa controladora do touch-screen possui 10 bytes de
comprimento e segue a seguinte sequumlecircncia de envio
[55] [54] [] [] [] [] [] [] [] []
Sequumlecircncia dos bytes
Os dois primeiros bytes identificam o Header do pacote
O terceiro byte eacute 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 agrave posiccedilatildeo do eixo x onde a tela foi tocada
O sexto e o seacutetimo byte correspondem a posiccedilatildeo do eixo y onde a tele foi tocada
O restante os bytes identificam o tail do pacote recepcionado pelo kit DE2
39
424 Comunicaccedilatildeo USB-Blaster
Essencial para envio do projeto desenvolvido para o kit DE2 tambeacutem muito utilizado para o
debug deste projeto
435 Memoacuteria SDRAM
A memoacuteria utilizada para armazenar grandes quantidades de dados eacute a SDRAM (ver detalhes
no Capitulo 2)
Essa memoacuteria eacute muito raacutepida serviu muito bem para armazenar o firmware deste projeto
pois tem o tempo acesso ideal para ler as instruccedilotildees que utilizaram a VGA e tambeacutem eacute raacutepida o
suficiente para fazer a leitura dos dados e disponibilizar na saiacuteda VGA do kit
426 Memoacuteria FLASH
Eacute onde seraacute armazenado o firmware possui espaccedilo suficiente para isso 4MB e uma memoacuteria
mais lenta e por isso natildeo foi usada para armazenar dados para serem jogados na vga do Kit
43 Software
431 Software (Firmware)
O software tem de funccedilatildeo de utilizar as bibliotecas das controladoras dos componentes
externos a fim de controlar estes componentes de acordo com o necessaacuterio para atender o
objetivo do projeto
Ou seja uma tela inicial eacute apresentada e o usuaacuterio ao tocar na nela o kit recebe um pacote via
serial e interpreta a posiccedilatildeo da tela em que foi tocado e logo em seguida envia o resultado deste
toque para o monitor
432 Objetivos
O usuaacuterio 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 accedilatildeo de acordo com a posiccedilatildeo da tela
tocada alterando assim a imagem anterior com o resultado do toque
Interpretar o toque de usuaacuterio na tela touch-screen recepccedilatildeo do pacote via serial da placa
controladora do touch-screen tratamento do pacote e interpretaccedilatildeo das coordenadas x e y do
40
toque Realizaccedilatildeo de alguma accedilatildeo que resultara na alteraccedilatildeo da imagem da tela atual de acordo
com a funccedilatildeo em que as coordenadas foram previamente definidas para o que deve ser feito
432 Funccedilotildees
A Tabela 28 tem as principais funccedilotildees que foram implementadas para o sistema
Tabela 28 ndash Funccedilotildees do sistema firmware
FUNCcedilOtildeES Tela de um pequeno editor de texto Tratamento do sinal recebido da serial devido a um toque na tela Interpretaccedilatildeo do pacote serial e transfomaccedilatildeo para coordenadas x e y Transformaccedilatildeo das posiccedilotildees do toque na tela em alguma accedilatildeo enviando o resultado para a VGA Imagem final disponibilizada ao usuaacuterio de acordo com o toque que foi dado na tela Controlar dispositivos cada dispositivo pode ser controlado pelo seu respectivo contrador atraveacutes de seu endereccedilo base VGA SERIAL USB-BLASTER IO(Leds Switches etc) do Kit DE2
O Firmware do processador NIOS II eacute que realizaraacute a integraccedilatildeo entre hardware com
hardware Com o firmware controlando o NIOS II eacute possiacutevel interagir com os dispositivos
externos a FPGA Tornando possiacutevel a integraccedilatildeo da FPGA com a peliacutecula touch-screen e um
monitor sem a ajuda de um PC a uacutenica ajuda do pc seria para enviar dados de uma imagem para
o Kit DE2
44 Validaccedilatildeo e Testes
Inicialmente os moacutedulos da VGA e comunicaccedilatildeo SERIAL natildeo estavam funicionando
apenas o devido agrave fraca documentaccedilatildeo sobre o kit DE2 foi possiacutevel apenas fazer testes com o
Processador NIOS II pois sobre este existem bastantes documentos e exemplos que podem ser
utilizados
Nesta primeira parte foi possiacutevel testar o NIOS II para controlar o display bototildees e switchs
do kit DE2
Com o NIOS II funcionando completamente foi necessaacuterio porta-lo para o kit DE2 o que foi
simples pois como sabemos esses kits satildeo portaacuteveis entre si apenas mudando a pinagem e a
capacidade da FPGA
Com o Kit DE2 foi possiacutevel fazer os testes necessaacuterios com a comunicaccedilatildeo serial
inicialmente testada via terminal conversando diretamente com o kit foi possiacutevel fazer o
seguinte teste os caracteres que eram entrados via teclado chegavam ao kit via serial e o o
41
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 comdumpexe que eacute facilmente encontrado pelas ferramentas
de pesquisa da web e tambeacutem existem vario outros programas como este e o comdump eacute
utilizado para debug da porta serial do pc conectado diretamente na placa controladora do touch-
screen e foi a peccedila chave para o entendimento do pacote enviado pela placa controladora
Figura 20 - Cumdumpexe programa de debug da porta serial
A explicaccedilatildeo de cada byte do pacote esta explicado no item 423
Apos o entendimento completo da transmissatildeo 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 natildeo 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 ateacute o momento em que
foi testado os meacutetodos proprietaacuterios da Altera para fazer a VGA funcionar os meacutetodos esses
implementados em C
A figura 21 onde contem o teste baacutesico feito que foi a chave principal para o sucesso deste
projeto
42
Como dito no item 332 do projeto foram utilizados as funccedilotildees da controladora VGA esses
meacutetodos 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 eacute utilizado o meacutetodo alt_up_vga_draw_pixel( color int
x int y) onde color eacute a cor do bloco de pixels e x e y satildeo as coordenadas da tela onde o bloco
que seraacute pintado
Para escrever um caractere sobre um bloco de pixels pintado eacute utilizado a funccedilatildeo
alt_up_vga_draw_char_1b( char int x int y) onde char eacute o caractere a ser impresso e x e y satildeo
as coordenadas da tela onde os o caractere eacute impresso
Figura 21 - Teste baisco do funcionamento do componente VGA do kit DE2
43
CAPIacuteTULO 5 ndash VALIDACcedilAtildeO E RESULTADOS
Os resultados foram os melhores possiacuteveis pois com a utilizaccedilatildeo dos IP CORE
ldquocontroladorasrdquo dos componentes externos como VGA e SERIAL e seus meacutetodos de para
controle eacute possiacutevel controlar facilmente esses moacutedulos atraveacutes do firmware desenvolvido para o
processador NIOS que consegue realizar operaccedilotildees transparentes acessando dos meacutetodos de
controle dos moacutedulos
Apos os testes baacutesicos 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 baacutesico de editor de texto
A figura 22 mostra um teste utilizando os meacutetodos de controle disponiacuteveis para o IP CORE
da VGA para primeiramente fazer o menu da aplicaccedilatildeo desenvolvido em na linguagem C
Figura 22 ndash Menu baacutesico do editor de texto
Para desenhar o menu da figura acima foi utilizado os meacutetodos proprietaacuterios de controle da
VGA citados no capitulo 4 e tambeacutem estruturas de repeticcedilatildeo para que a tela fosse varrida e os
pixels desenhados nos respectivos lugares da tela bem como os caracteres
Na figura 23 eacute definida a seguinte estrutura em C para representar de um botatildeo
Figura 23 - Estrutura em C para representar um botatildeo
44
A figura 24 eacute a declaraccedilatildeo dos bototildees que seratildeo utilizados pelo aplicativo editor de texto
para comprovar o funcionamento do controle da interface touch-screen
Apenas o que esta dentro da marcaccedilatildeo quadrada representa os bototildees do menu da figura 23
e o restante satildeo os bototildees do teclado do editor de texto
Figura 24 - Declaraccedilatildeo dos bototildees do menu
45
A figura 25 representa o meacutetodo drawnButtonUp responsaacutevel por desenhar os bototildees na tela
de acordo com as posiccedilotildees em que foram declarados os bototildees deste meacutetodo satildeo desenhados
para parecerem que estatildeo ldquolevantadosrdquo e natildeo pressionados
Note que foram utilizados os meacutetodos proprietaacuterios de controle da VGA
alt_up_vga_draw_pixel pra pitar os pixels e alt_up_vga_draw_char_b1 para desenhar caracteres
como jaacute foi especificado no item 44 do projeto
Figura 25 ndash Meacutetodo drawButtonUp
46
O meacutetodo que desenha o caption do botatildeo se chama drawButtonText desenha os caracteres
em cima dos bototildees natildeo importa se o botatildeo esta pressionado ou natildeo
A figura 26 mostra como este meacutetodo foi implementado e ele eacute chamado no final de cada
meacutetodo onde algum tipo de botatildeo eacute desenhado quando o meacutetodo que desenha o botatildeo normal
quanto o pressionado e ateacute mesmo o do teclado
Figura 26 ndash Meacutetodo que escreve o caption de cada botatildeo
47
A figura 27 mostra o meacutetodo drawButtonDown que desenha o botatildeo pressionado ou seja
quando o usuaacuterio pressiona a regiatildeo correspondente a um botatildeo do menu no touch-screen o
mesmo redesenharaacute o botatildeo parecendo um efeito de botatildeo afundado note que no final do
meacutetodo novamente eacute chamado o meacutetodo drawButtonText que reescreveraacute o caption do botatildeo
como mostra o meacutetodo da figura 26 e esta ilustrado na figura 28
Figura 27 ndash Meacutetodo que desenha o botatildeo pressionado
48
Dependendo da aacuterea do menu que o usuaacuterio pressionar no touch-screen causar o efeito de
pressionado como mostra a figura 28
Figura 28 ndash Efeito do botatildeo de menu apertado
Na figura 29 eacute a representaccedilatildeo de quando a aacuterea correspondente ao botatildeo ldquoamarelordquo eacute
pressionada
Apos estes testes baacutesicos comprovando o funcionamento da interface graacutefica para o usuaacuterio
foi definido o restante dos componentes da tela que eacute constituiacutedo de um prompt e um teclado
qwerty que foi essencial para comprovar o perfeito funcionamento do controle da interface
touch-screen
49
51 Interface Grafica Final
A figura 29 mostra a interface final que o usuaacuterio teraacute para poder verificar o funcionamento
do controle da interface touch-screen
Figura 29 ndash Interface final touch-screen do usuaacuterio
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
511 Descriccedilatildeo do editor de texto
O menu possui 4 botoes cada um com sua respectiva funcionalidade quando o usuario
pressiona a area do botatildeo ldquoapagarrdquo uma vez entatildeo um carectere do prompt eacute apagado Quando eacute
precionado a area correspondente ao botatildeo ldquoResetrdquo todo o conteudo do prompt seraacute apagado e o
plano de fundo retornaraacute a cor branca Quando o botatildeo ldquoamarelordquo eacute pressionado o fundo da tela
passa a ser amarelo e o mesmo acontece se o usuario precionar o botatildeo verde tornando o cor de
fundo verde
50
O teclado possui 29 teclas sendo duas delas que equivalem ao ENTRA ldquoENTrdquo e ao
SPACE ldquoSPCrdquo Quando o usuario pressiona a area correspondente a algum botatildeo do teclado o
mesmo muda sua cor para azul e o seu caractere eacute disponibilizado no prompt
Essas funcionalidades nada mais satildeo do que um bom exemplo de como funciona
corretamente o controle da interface touch-screen
52 Prompt e o Teclado
A estrutura feita na linguagem C que define o prompt da figura 28 esta representado na
figura 30
Figura 30 ndash Estrutura em C para representar o prompt
A figura 31 mostra o metodo drawPrompt utilizado para desenhar na tela o prompt
Figura 31 ndash Meacutetodo que desenha o prompt
51
A estrutura do teclado eacute a mesma utilizada pela figura 23 e tambem eacute criado satildeo
inicializados na figura 24
O restante as implementaccedilotildees estatildeo disponiveis no cd deste documento
Quando algum botatildeo do teclado eacute pressionado sua cor muda para azul e sua letra
correspondente eacute escrita o prompt
A figura 32 ilustra quando o usuaacuterio aperta a letra lsquotrsquo na peliacutecula touch-screen
Figura 32 - Teste do prompt e o teclado
52
53 Controle da Interface Touch-Screen
Depois do todos os testes com o processador NIOS e a integraccedilatildeo do mesmo com os
moacutedulos externos como a porta SERIAL e a saiacuteda VGA eacute possiacutevel utilizando o touch-screen
criar uma interface amigaacutevel e faacutecil de usar para o usuaacuterio utilizando um firmware capaz de
interpretar os sinais via serial vindo da controladora do touch ao detectar que um toque foi dado
pelo usuaacuterio e realizar algumas accedilotildees que neste caso se comportam como um editor de texto
baacutesico
A figura 33 mostra como foi validado este projeto e seus moacutedulos controlando uma
interface touch-screen para chegar no resultado abaixo digitado pelo usuaacuterio comprovando o
funcionamento e viabilidade deste projeto
Figura 33 ndash 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 mudanccedilas podendo ser alterado rapidamente o tipo de
aplicaccedilatildeo ou integrado rapidamente com outro projeto
53
CAPIacuteTULO 6 - CONCLUSAtildeO
Uma das principais dificuldades no desenvolvimento deste projeto foi fazer o levantamento
da documentaccedilatildeo sobre o processador NIOS e os moacutedulos externos a FPGA do Kit DE2 Como
natildeo foi feito algum projeto antes que utilizasse a interface VGA e a SERIAL do Kit DE2 levou-
se muito tempo ateacute conseguir adquirir e ordenar o conhecimento que foi sendo adquirido ateacute
conseguir dar os primeiros passos e realizar os primeiros testes com a VGA e a SERIAL Outro
grande obstaacuteculo foi ter de descobrir que para que o NIOS controlasse os moacutedulos externos a
FGPA fosse necessaacuterio copiar os arquivos c e h dos respectivos componente para dentro do
projeto
Mas depois de todos os problemas com os moacutedulos externos solucionados cada modulo do
projeto foi sendo desenvolvido separadamente ateacute seu total funcionamento Natildeo tive dificuldades
com a linguagem da programaccedilatildeo pois o Firmware do processador NIOS eacute o C a qual mais tive
contato na faculdade
Outro desafio foi fazer a peliacutecula 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
peliacutecula natildeo 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 possiacutevel
comeccedilar a fazer os testes necessaacuterios para prosseguir com o projeto aprender como o a peliacutecula
identifica um toque e manda este sinal para a controladora e a controladora transforma este sinal
em um sinal serial que eacute 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 accedilotildees
que as coordenadas jaacute estatildeo previamente calibradas no firmware para fazer bem como mudar de
cor a tela fazer o efeito de um botatildeo subindo e descendo etc
Varias vezes o projeto parou de funcionar entatildeo 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 memoacuteria abundante etc uma das
facilidades eacute a faacutecil alteraccedilatildeo do projeto podendo ser integrado a outro ou ateacute mesmo alterado
para realizar outros tipos de accedilotildees com o touch-screen
Existem vaacuterios melhoramentos que podem ser executados no projeto um deles eacute tentar
interpretar de uma maneira diferente os valores do eixo y pois do jeito que esta a resoluccedilatildeo do
eixo y esta muito baixa dificultando o reconhecimento de toques em aacutereas pequenas Talvez a
inclusatildeo de mais alguns bytes no pacote de leitura da serial resolva o problema
54
Uma ideacuteia para um proacuteximo projeto que use a interface touch-screen poderia ser a
integraccedilatildeo com o projeto do nosso colega Roberto Junqueira ou a desenvolvimento de uma
placa controladora para o touch-screen
Este trabalho eacute uma modesta contribuiccedilatildeo para o uso de FPGAs e do processador embarcado
NIOS implementado em VHDL pela Altera que acredito que vai abrir vaacuterios caminhos pois
com este projeto alguns caminhos ficaram mais faacuteceis de percorrer daqui para a frente
55
CAPIacuteTULO 7 - REFEREcircNCIAS BIBLIOGRAacuteFICAS
AMORE Roberto drsquo VHDL Descriccedilatildeo e Sintese de Circuitos Rio de Janeiro ed LTC
2005
Elotouch Touch-Screen e Controladora Descriccedilatildeo do funcionamento e descriccedilatildeo
tecnologia Touch-Screen lthttpwwwelotouchcombrgt Acesso em fevereiro de 2007
ALTERA University Program IP Cores Instalaccedilatildeo de IP Cores e referencias sobre os
componentes dos kits DE1 e DE2 Disponivel em lthttpwwwalteracomeducationunivip-
coresunv-ip-coreshtmlgt Acesso em abril de 2007
ALTERA NIOS II Documentaccedilatildeo sobre o pprocessador embracado NIO II Disponivel
em lthttpwwwalteracomproductsipprocessorsipm-indexjspgt Acesso em Abril de 2007
ALTERA Development amp Education Board 2 (DE2) Manual do usuario Disponivel no
de que acompanha o Kit DE2 ltDE2_user_manualDE2_UserManualpdfgt Acesso em
fevereiro de 2007
31
3221 O Processador NIOS II
Atraveacutes do software SOPC da ALTERA foi possiacutevel montar a arquitetura de hardware do
processador NIOS II bem como especificar as interfaces que ele iraacute controlar atraveacutes do firmwar
feito no NIOS II IDE
Na Tabela 22 eacute no campo Module Name onde estatildeo os moacutedulos que foram usados para
definir o processador NIOS II e os componentes externos que ele iraacute controlar e no campo
Description esta a descriccedilatildeo do nome de cada modulo
Tabela 22 ndash Moacutedulos dos componentes e suas descriccedilotildees
3222 Firmware para o NIOS II
O Firmware foi feito utilizando a linguagem C utilizando a ferramenta NIOS II IDE Atraveacutes
do firmware eacute possiacutevel 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 graacuteficas para controlar a vga e serial e
USB-BLASTER eacute encarregado em enviar todo o desenvolvimento do projeto para o Kit DE2
323 Configuraccedilatildeo da FPGA via JTAG
Depois de configurado o hardware do processador NIOS II eacute preciso fazer o load do NIOS
para a FPGA e para que isso aconteccedila eacute necessaacuterio que atraveacutes do software Quartus II da
ALTERA utilizando a interface JTAG utilizando o cabo USB-BLASTER
32
324 Comunicaccedilatildeo entre FPGA e o Touch-Screen
Para comunicaccedilatildeo entre dos dois hardwares Touch-Screen e o FPGA eacute utilizando uma
interface serial RS-232
A configuraccedilatildeo da interface eacute a seguinte
Bits de dados 8
Taxa de dados 5600(bps)
A Tabela 23 mostra a relaccedilatildeo dos pinos da porta serial com os pinos da FPGA
Tabela 23 ndash Pinos da FPGA referente agrave pinagem da interface Serial
E a Figura 16 mostra o desenho correspondente da interface serial
Figura 16 ndash Conector da interface serial do kit DE2
33 Especificaccedilatildeo de Validaccedilatildeo
331 Validaccedilatildeo de Hardware
A validade do hardware se faz com a anaacutelise de todos os moacutedulos envolvidos
As necessidades satildeo estudadas os componentes externos ao FPGA satildeo selecionados de
acordo o processador nios e os controladores dos moacutedulos externos como VGA e SERIAL satildeo
enviados ao modulo FPGA
Os resultados obtidos na tela do monitor e a recepccedilatildeo dos dados pela serial comprovam o
funcionamento do modulo de comunicaccedilatildeo da serial e vga
33
332 Validaccedilatildeo de Software
A validaccedilatildeo do controle da interface touch-screen faz-se a partir dos resultados obtidos das
funccedilotildees escritas na linguagem C especificas para cada componente externos ao FPGA essas
funccedilotildees tornam possiacuteveis que o processador NIOS na FPGA tenha total controle sobre os
moacutedulos externos como a VGA e a SERIAL
As funccedilotildees que satildeo utilizadas para validar o funcionamento do software satildeo para a VGA os
meacutetodos de controle (alt_up_vga_draw_char_1b( char int x int y)) e (alt_up_vga_draw_pixel(
color x y))
O meacutetodo (alt_up_vga_draw_char_1b( char int x int y)) tem a funcionalidade de escrever
caracteres na tela do monitor e a descriccedilatildeo da sua assinatura ldquoparacircmetrosrdquo eacute a seguinte char eacute o
caractere que eacute escrito em alguma posiccedilatildeo na tela int x eacute a posiccedilatildeo x da tela do monitor e int y eacute
a posiccedilatildeo y da tela do monitor sendo que a resoluccedilatildeo utilizada eacute de 80x60 ou seja x natildeo pode
passar de 80 e y natildeo pode passar de 60
O meacutetodo (alt_up_vga_draw_pixel( color int x int y)) tem a funcionalidade de ldquopintarrdquo o
fundo da tela do monitor o meacutetodo de imprimir caracteres tem preferecircncia sobre este meacutetodo ou
seja os caracteres sempre ficam sob a aacuterea pintada ou seja o caractere sempre ficara em cima da
aacuterea pintada a descriccedilatildeo da assinatura deste meacutetodo eacute a seguinte color eacute a valor da cor que pode
ser um valor inteiro ou em hexadecimal para definir uma cor de alguma posiccedilatildeo da tela definidos
pelos paracircmetros x e y
As funccedilotildees que satildeo utilizadas para validar o funcionamento do software satildeo para a Serial os
meacutetodos de controle de transmissatildeo (fread( packet sizeof(packet) 1 serial_fp )) a funccedilatildeo
fread eacute utilizada para a leitura via interrupccedilatildeo dos pacotes que a controladora envia para o kit
DE2 as assinaturas do meacutetodo fread tem a seguinte composiccedilatildeo packet eacute a estrutura do pacote
que seraacute recebido o sizeof(packet) eacute o diz qual eacute o tamanho exato da estrutura criada e o
serial_fp eacute o handle da porta serial
Uma observaccedilatildeo muito importante eacute que para o total funcionamento eacute necessaacuterio 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 rs232h e rs232c onde estatildeo os meacutetodos de
controle da SERIAL e alt_up_vgah alt_up_vgac onde estatildeo os meacutetodos de controle para a
VGA Para tornar estes meacutetodos acessiacuteveis eacute preciso fazer os includes dos arquivos h no
projeto da NIOS IDE
A figura 17 mostra a utilizaccedilatildeo dos meacutetodos (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
34
int y)) utlizado para escrever os caracteres lsquoarsquo e lsquobrsquo dentro de um grupo de pixel previamente
pintado a (alt_up_vga_draw_pixel( color int x int y)) natildeo pinta um pixel de cada vez e sim
um bloco de 8x8 pixels
Figura 17 - Tela para a validaccedilatildeo dos testes com as bibliotecas graacuteficas do componente VGA
34 Recursos Necessaacuterios
A Tabela 24 apresenta os ambientes de desenvolvimento e ferramentas de software utilizadas
e na Tabela 25 as linguagens necessaacuterias Estas ferramentas foram utilizadas em ambiente
Windows Xp
Tabela 24 - Ferramentas de Desenvolvimentos e Ambientes
Software Para que foi Utilizado
Quartus II Para a definiccedilatildeo de qual o modelo de FPGA utilizado compilaccedilatildeo e simulaccedilatildeo e envio Load do NIOS para FPGA
SOPC Para definiccedilatildeo da do processador NIOS II e com quais componentes externos ele ira interagir atraveacutes dos controladores dos respectivos componentes
NIOS II IDE Para implementaccedilatildeo do firmware do processador NIOS II utilizando a linguagem em C
35
Borland C++ Builder Para desenvolvimento de ima interface de comunicaccedilatildeo via caboUSB-
BLASTER para o envio de imagem para o kit
Tabela 25 ndash Linguagens de programaccedilatildeo utilizadas
Linguagem Ferramenta C++ Borland C++ Builder VerilogVHDL Quartus II C NIOS II IDE
35 Viabilidade Teacutecnico-Econocircmica
O valor do projeto esta descrito na Tabela 26
Tabela 26 ndash Relaccedilatildeo dos Custos
DESCRICcedilAtildeO CUSTO APROXIMADO (R$) COMPONENTES ELETROcircNICOS 50000 1 Kit DE2 Cyclone II 35000 1 Monitor de Computador 35000 HORAS TRABALHADAS (400 horas) 750000 CUSTO TOTAL APROXIMADO (R$) 870000
36 Cronograma do Projeto
A tabela 27 contem as informaccedilotildees do cronograma do projeto
Tabela 27 ndash Cronograma de datas e entregas do projeto
Data Atividade a ser apresentada 050307 Entrega das propostas de projeto para avaliaccedilatildeo do colegiado 020407 Entrega das especificaccedilotildees teacutecnicas do projeto aprovado 110607 Entrega do projeto (monografia) e dos testes preliminares do mesmo 060807 Apresentaccedilatildeo preacutevia da implementaccedilatildeo do projeto especificado 011007 Apresentaccedilatildeo do projeto implementado
Qualificaccedilatildeo para a fase final 291007 Segunda apresentaccedilatildeo do projeto implementado para os que natildeo o fizeram no
dia 011006 com decreacutescimo da nota Qualificaccedilatildeo para a fase final
051107 Entrega da documentaccedilatildeo completa em espiral para a banca examinadora em 3 vias contendo a monografia manual teacutecnico manual do usuaacuterio e artigo cientiacutefico
261107 Defesa formal dos projetos com apresentaccedilatildeo oral para a banca examinadora 101207 Entrega da documentaccedilatildeo completa revisada e corrigida encadernada no
padratildeo da biblioteca (capa dura) em duas vias contendo a monografia manual teacutecnico manual do usuaacuterio e artigo cientiacutefico Entrega do CD contendo no formato WEB todo o conteuacutedo dos manuais
36
CAPIacuteTULO 4 ndash ESPECIFICACcedilAtildeO TECNICA
41 Requisitos Miacutenimos
Os requisitos miacutenimos de Hardware satildeo
Funcionamento das interfaces Serial e USB-Blaster
Funcionamento do Kit DE2
PC
Os requisitos miacutenimos de Software
Windows Xp
Quartus II
SOPC
NIOS II IDE
42 Projeto de Hardware
O hardware utilizado nesse projeto inclui componentes presentes na Placa de
Desenvolvimento Nios II - ediccedilatildeo DE2 Cyclone II EP2C35 e principalmente o hardware que seraacute
configurado na FPGA escrito em linguagem de descriccedilatildeo de hardware (HDL)
O um dos principais blocos de hardware eacute o processador NIOS II o Avalon Bus e os
controladores de componentes externos a FPGA e de comunicaccedilatildeo presentes no Kit
37
O software embarcado (firmware) estaraacute rodando nessa arquitetura Eacute uma arquitetura
completa construiacuteda com a ferramenta SOPC Builder da Altera A Figura 18 representa em
blocos os principais componentes dessa arquitetura
Figura 18 ndash Representaccedilatildeo em blocos do hardware do NIOS II
421 Funcatildeo do Touch-Screen
Outro bloco importante eacute o do Touch-Screen esta tela sensiacutevel ao toque pois como esta tela
trabalha com resistecircncia ao ser tocado em uma determinada regiatildeo uma resistecircncia eacute gerada e a
tensatildeo de saiacuteda eacute modificada a alimentaccedilatildeo desta placa eacute proveniente de sua placa controladora
a mesma placa que recebe a tensatildeo de saiacuteda modificada de acordo com a regiatildeo tocada na tela
Para verificar as caracteriacutesticas detalhadas do Touch-Screen e sua placa controlador favor ver
o Capitulo 2
422 Monitor e VGA
O Monitor inicialmente tem apenas o desenho de um botatildeo que ao ser tocado via touch
mudara a cor de toda a tela A imagem exibida no monitor tem uma resoluccedilatildeo de
38
Protoacutetipo das telas para os testes esta na Figura 19 a tela verde quando a touch natildeo eacute tocando
na regiatildeo do botatildeo de OK quando o botatildeo de OK for tocado a tela do monitor mudara de cor
ficando azul
Figura 19 ndash Tela do monitor
No Capitulo 2 estatildeo todas as caracteriacutesticas da pinagem e do conector VGA
423 Comunicaccedilatildeo serial
Entre a placa controladora do Touch-Screen e o FPGA existe uma comunicaccedilatildeo 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 manipulaccedilatildeo da imagem que eacute
mostrada no monitor
No capitulo 2 estatildeo das descriccedilotildees dos pinos e do conector da comunicaccedilatildeo Serial
O pacote serial que eacute transmitido pela placa controladora do touch-screen possui 10 bytes de
comprimento e segue a seguinte sequumlecircncia de envio
[55] [54] [] [] [] [] [] [] [] []
Sequumlecircncia dos bytes
Os dois primeiros bytes identificam o Header do pacote
O terceiro byte eacute 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 agrave posiccedilatildeo do eixo x onde a tela foi tocada
O sexto e o seacutetimo byte correspondem a posiccedilatildeo do eixo y onde a tele foi tocada
O restante os bytes identificam o tail do pacote recepcionado pelo kit DE2
39
424 Comunicaccedilatildeo USB-Blaster
Essencial para envio do projeto desenvolvido para o kit DE2 tambeacutem muito utilizado para o
debug deste projeto
435 Memoacuteria SDRAM
A memoacuteria utilizada para armazenar grandes quantidades de dados eacute a SDRAM (ver detalhes
no Capitulo 2)
Essa memoacuteria eacute muito raacutepida serviu muito bem para armazenar o firmware deste projeto
pois tem o tempo acesso ideal para ler as instruccedilotildees que utilizaram a VGA e tambeacutem eacute raacutepida o
suficiente para fazer a leitura dos dados e disponibilizar na saiacuteda VGA do kit
426 Memoacuteria FLASH
Eacute onde seraacute armazenado o firmware possui espaccedilo suficiente para isso 4MB e uma memoacuteria
mais lenta e por isso natildeo foi usada para armazenar dados para serem jogados na vga do Kit
43 Software
431 Software (Firmware)
O software tem de funccedilatildeo de utilizar as bibliotecas das controladoras dos componentes
externos a fim de controlar estes componentes de acordo com o necessaacuterio para atender o
objetivo do projeto
Ou seja uma tela inicial eacute apresentada e o usuaacuterio ao tocar na nela o kit recebe um pacote via
serial e interpreta a posiccedilatildeo da tela em que foi tocado e logo em seguida envia o resultado deste
toque para o monitor
432 Objetivos
O usuaacuterio 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 accedilatildeo de acordo com a posiccedilatildeo da tela
tocada alterando assim a imagem anterior com o resultado do toque
Interpretar o toque de usuaacuterio na tela touch-screen recepccedilatildeo do pacote via serial da placa
controladora do touch-screen tratamento do pacote e interpretaccedilatildeo das coordenadas x e y do
40
toque Realizaccedilatildeo de alguma accedilatildeo que resultara na alteraccedilatildeo da imagem da tela atual de acordo
com a funccedilatildeo em que as coordenadas foram previamente definidas para o que deve ser feito
432 Funccedilotildees
A Tabela 28 tem as principais funccedilotildees que foram implementadas para o sistema
Tabela 28 ndash Funccedilotildees do sistema firmware
FUNCcedilOtildeES Tela de um pequeno editor de texto Tratamento do sinal recebido da serial devido a um toque na tela Interpretaccedilatildeo do pacote serial e transfomaccedilatildeo para coordenadas x e y Transformaccedilatildeo das posiccedilotildees do toque na tela em alguma accedilatildeo enviando o resultado para a VGA Imagem final disponibilizada ao usuaacuterio de acordo com o toque que foi dado na tela Controlar dispositivos cada dispositivo pode ser controlado pelo seu respectivo contrador atraveacutes de seu endereccedilo base VGA SERIAL USB-BLASTER IO(Leds Switches etc) do Kit DE2
O Firmware do processador NIOS II eacute que realizaraacute a integraccedilatildeo entre hardware com
hardware Com o firmware controlando o NIOS II eacute possiacutevel interagir com os dispositivos
externos a FPGA Tornando possiacutevel a integraccedilatildeo da FPGA com a peliacutecula touch-screen e um
monitor sem a ajuda de um PC a uacutenica ajuda do pc seria para enviar dados de uma imagem para
o Kit DE2
44 Validaccedilatildeo e Testes
Inicialmente os moacutedulos da VGA e comunicaccedilatildeo SERIAL natildeo estavam funicionando
apenas o devido agrave fraca documentaccedilatildeo sobre o kit DE2 foi possiacutevel apenas fazer testes com o
Processador NIOS II pois sobre este existem bastantes documentos e exemplos que podem ser
utilizados
Nesta primeira parte foi possiacutevel testar o NIOS II para controlar o display bototildees e switchs
do kit DE2
Com o NIOS II funcionando completamente foi necessaacuterio porta-lo para o kit DE2 o que foi
simples pois como sabemos esses kits satildeo portaacuteveis entre si apenas mudando a pinagem e a
capacidade da FPGA
Com o Kit DE2 foi possiacutevel fazer os testes necessaacuterios com a comunicaccedilatildeo serial
inicialmente testada via terminal conversando diretamente com o kit foi possiacutevel fazer o
seguinte teste os caracteres que eram entrados via teclado chegavam ao kit via serial e o o
41
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 comdumpexe que eacute facilmente encontrado pelas ferramentas
de pesquisa da web e tambeacutem existem vario outros programas como este e o comdump eacute
utilizado para debug da porta serial do pc conectado diretamente na placa controladora do touch-
screen e foi a peccedila chave para o entendimento do pacote enviado pela placa controladora
Figura 20 - Cumdumpexe programa de debug da porta serial
A explicaccedilatildeo de cada byte do pacote esta explicado no item 423
Apos o entendimento completo da transmissatildeo 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 natildeo 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 ateacute o momento em que
foi testado os meacutetodos proprietaacuterios da Altera para fazer a VGA funcionar os meacutetodos esses
implementados em C
A figura 21 onde contem o teste baacutesico feito que foi a chave principal para o sucesso deste
projeto
42
Como dito no item 332 do projeto foram utilizados as funccedilotildees da controladora VGA esses
meacutetodos 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 eacute utilizado o meacutetodo alt_up_vga_draw_pixel( color int
x int y) onde color eacute a cor do bloco de pixels e x e y satildeo as coordenadas da tela onde o bloco
que seraacute pintado
Para escrever um caractere sobre um bloco de pixels pintado eacute utilizado a funccedilatildeo
alt_up_vga_draw_char_1b( char int x int y) onde char eacute o caractere a ser impresso e x e y satildeo
as coordenadas da tela onde os o caractere eacute impresso
Figura 21 - Teste baisco do funcionamento do componente VGA do kit DE2
43
CAPIacuteTULO 5 ndash VALIDACcedilAtildeO E RESULTADOS
Os resultados foram os melhores possiacuteveis pois com a utilizaccedilatildeo dos IP CORE
ldquocontroladorasrdquo dos componentes externos como VGA e SERIAL e seus meacutetodos de para
controle eacute possiacutevel controlar facilmente esses moacutedulos atraveacutes do firmware desenvolvido para o
processador NIOS que consegue realizar operaccedilotildees transparentes acessando dos meacutetodos de
controle dos moacutedulos
Apos os testes baacutesicos 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 baacutesico de editor de texto
A figura 22 mostra um teste utilizando os meacutetodos de controle disponiacuteveis para o IP CORE
da VGA para primeiramente fazer o menu da aplicaccedilatildeo desenvolvido em na linguagem C
Figura 22 ndash Menu baacutesico do editor de texto
Para desenhar o menu da figura acima foi utilizado os meacutetodos proprietaacuterios de controle da
VGA citados no capitulo 4 e tambeacutem estruturas de repeticcedilatildeo para que a tela fosse varrida e os
pixels desenhados nos respectivos lugares da tela bem como os caracteres
Na figura 23 eacute definida a seguinte estrutura em C para representar de um botatildeo
Figura 23 - Estrutura em C para representar um botatildeo
44
A figura 24 eacute a declaraccedilatildeo dos bototildees que seratildeo utilizados pelo aplicativo editor de texto
para comprovar o funcionamento do controle da interface touch-screen
Apenas o que esta dentro da marcaccedilatildeo quadrada representa os bototildees do menu da figura 23
e o restante satildeo os bototildees do teclado do editor de texto
Figura 24 - Declaraccedilatildeo dos bototildees do menu
45
A figura 25 representa o meacutetodo drawnButtonUp responsaacutevel por desenhar os bototildees na tela
de acordo com as posiccedilotildees em que foram declarados os bototildees deste meacutetodo satildeo desenhados
para parecerem que estatildeo ldquolevantadosrdquo e natildeo pressionados
Note que foram utilizados os meacutetodos proprietaacuterios de controle da VGA
alt_up_vga_draw_pixel pra pitar os pixels e alt_up_vga_draw_char_b1 para desenhar caracteres
como jaacute foi especificado no item 44 do projeto
Figura 25 ndash Meacutetodo drawButtonUp
46
O meacutetodo que desenha o caption do botatildeo se chama drawButtonText desenha os caracteres
em cima dos bototildees natildeo importa se o botatildeo esta pressionado ou natildeo
A figura 26 mostra como este meacutetodo foi implementado e ele eacute chamado no final de cada
meacutetodo onde algum tipo de botatildeo eacute desenhado quando o meacutetodo que desenha o botatildeo normal
quanto o pressionado e ateacute mesmo o do teclado
Figura 26 ndash Meacutetodo que escreve o caption de cada botatildeo
47
A figura 27 mostra o meacutetodo drawButtonDown que desenha o botatildeo pressionado ou seja
quando o usuaacuterio pressiona a regiatildeo correspondente a um botatildeo do menu no touch-screen o
mesmo redesenharaacute o botatildeo parecendo um efeito de botatildeo afundado note que no final do
meacutetodo novamente eacute chamado o meacutetodo drawButtonText que reescreveraacute o caption do botatildeo
como mostra o meacutetodo da figura 26 e esta ilustrado na figura 28
Figura 27 ndash Meacutetodo que desenha o botatildeo pressionado
48
Dependendo da aacuterea do menu que o usuaacuterio pressionar no touch-screen causar o efeito de
pressionado como mostra a figura 28
Figura 28 ndash Efeito do botatildeo de menu apertado
Na figura 29 eacute a representaccedilatildeo de quando a aacuterea correspondente ao botatildeo ldquoamarelordquo eacute
pressionada
Apos estes testes baacutesicos comprovando o funcionamento da interface graacutefica para o usuaacuterio
foi definido o restante dos componentes da tela que eacute constituiacutedo de um prompt e um teclado
qwerty que foi essencial para comprovar o perfeito funcionamento do controle da interface
touch-screen
49
51 Interface Grafica Final
A figura 29 mostra a interface final que o usuaacuterio teraacute para poder verificar o funcionamento
do controle da interface touch-screen
Figura 29 ndash Interface final touch-screen do usuaacuterio
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
511 Descriccedilatildeo do editor de texto
O menu possui 4 botoes cada um com sua respectiva funcionalidade quando o usuario
pressiona a area do botatildeo ldquoapagarrdquo uma vez entatildeo um carectere do prompt eacute apagado Quando eacute
precionado a area correspondente ao botatildeo ldquoResetrdquo todo o conteudo do prompt seraacute apagado e o
plano de fundo retornaraacute a cor branca Quando o botatildeo ldquoamarelordquo eacute pressionado o fundo da tela
passa a ser amarelo e o mesmo acontece se o usuario precionar o botatildeo verde tornando o cor de
fundo verde
50
O teclado possui 29 teclas sendo duas delas que equivalem ao ENTRA ldquoENTrdquo e ao
SPACE ldquoSPCrdquo Quando o usuario pressiona a area correspondente a algum botatildeo do teclado o
mesmo muda sua cor para azul e o seu caractere eacute disponibilizado no prompt
Essas funcionalidades nada mais satildeo do que um bom exemplo de como funciona
corretamente o controle da interface touch-screen
52 Prompt e o Teclado
A estrutura feita na linguagem C que define o prompt da figura 28 esta representado na
figura 30
Figura 30 ndash Estrutura em C para representar o prompt
A figura 31 mostra o metodo drawPrompt utilizado para desenhar na tela o prompt
Figura 31 ndash Meacutetodo que desenha o prompt
51
A estrutura do teclado eacute a mesma utilizada pela figura 23 e tambem eacute criado satildeo
inicializados na figura 24
O restante as implementaccedilotildees estatildeo disponiveis no cd deste documento
Quando algum botatildeo do teclado eacute pressionado sua cor muda para azul e sua letra
correspondente eacute escrita o prompt
A figura 32 ilustra quando o usuaacuterio aperta a letra lsquotrsquo na peliacutecula touch-screen
Figura 32 - Teste do prompt e o teclado
52
53 Controle da Interface Touch-Screen
Depois do todos os testes com o processador NIOS e a integraccedilatildeo do mesmo com os
moacutedulos externos como a porta SERIAL e a saiacuteda VGA eacute possiacutevel utilizando o touch-screen
criar uma interface amigaacutevel e faacutecil de usar para o usuaacuterio utilizando um firmware capaz de
interpretar os sinais via serial vindo da controladora do touch ao detectar que um toque foi dado
pelo usuaacuterio e realizar algumas accedilotildees que neste caso se comportam como um editor de texto
baacutesico
A figura 33 mostra como foi validado este projeto e seus moacutedulos controlando uma
interface touch-screen para chegar no resultado abaixo digitado pelo usuaacuterio comprovando o
funcionamento e viabilidade deste projeto
Figura 33 ndash 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 mudanccedilas podendo ser alterado rapidamente o tipo de
aplicaccedilatildeo ou integrado rapidamente com outro projeto
53
CAPIacuteTULO 6 - CONCLUSAtildeO
Uma das principais dificuldades no desenvolvimento deste projeto foi fazer o levantamento
da documentaccedilatildeo sobre o processador NIOS e os moacutedulos externos a FPGA do Kit DE2 Como
natildeo foi feito algum projeto antes que utilizasse a interface VGA e a SERIAL do Kit DE2 levou-
se muito tempo ateacute conseguir adquirir e ordenar o conhecimento que foi sendo adquirido ateacute
conseguir dar os primeiros passos e realizar os primeiros testes com a VGA e a SERIAL Outro
grande obstaacuteculo foi ter de descobrir que para que o NIOS controlasse os moacutedulos externos a
FGPA fosse necessaacuterio copiar os arquivos c e h dos respectivos componente para dentro do
projeto
Mas depois de todos os problemas com os moacutedulos externos solucionados cada modulo do
projeto foi sendo desenvolvido separadamente ateacute seu total funcionamento Natildeo tive dificuldades
com a linguagem da programaccedilatildeo pois o Firmware do processador NIOS eacute o C a qual mais tive
contato na faculdade
Outro desafio foi fazer a peliacutecula 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
peliacutecula natildeo 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 possiacutevel
comeccedilar a fazer os testes necessaacuterios para prosseguir com o projeto aprender como o a peliacutecula
identifica um toque e manda este sinal para a controladora e a controladora transforma este sinal
em um sinal serial que eacute 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 accedilotildees
que as coordenadas jaacute estatildeo previamente calibradas no firmware para fazer bem como mudar de
cor a tela fazer o efeito de um botatildeo subindo e descendo etc
Varias vezes o projeto parou de funcionar entatildeo 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 memoacuteria abundante etc uma das
facilidades eacute a faacutecil alteraccedilatildeo do projeto podendo ser integrado a outro ou ateacute mesmo alterado
para realizar outros tipos de accedilotildees com o touch-screen
Existem vaacuterios melhoramentos que podem ser executados no projeto um deles eacute tentar
interpretar de uma maneira diferente os valores do eixo y pois do jeito que esta a resoluccedilatildeo do
eixo y esta muito baixa dificultando o reconhecimento de toques em aacutereas pequenas Talvez a
inclusatildeo de mais alguns bytes no pacote de leitura da serial resolva o problema
54
Uma ideacuteia para um proacuteximo projeto que use a interface touch-screen poderia ser a
integraccedilatildeo com o projeto do nosso colega Roberto Junqueira ou a desenvolvimento de uma
placa controladora para o touch-screen
Este trabalho eacute uma modesta contribuiccedilatildeo para o uso de FPGAs e do processador embarcado
NIOS implementado em VHDL pela Altera que acredito que vai abrir vaacuterios caminhos pois
com este projeto alguns caminhos ficaram mais faacuteceis de percorrer daqui para a frente
55
CAPIacuteTULO 7 - REFEREcircNCIAS BIBLIOGRAacuteFICAS
AMORE Roberto drsquo VHDL Descriccedilatildeo e Sintese de Circuitos Rio de Janeiro ed LTC
2005
Elotouch Touch-Screen e Controladora Descriccedilatildeo do funcionamento e descriccedilatildeo
tecnologia Touch-Screen lthttpwwwelotouchcombrgt Acesso em fevereiro de 2007
ALTERA University Program IP Cores Instalaccedilatildeo de IP Cores e referencias sobre os
componentes dos kits DE1 e DE2 Disponivel em lthttpwwwalteracomeducationunivip-
coresunv-ip-coreshtmlgt Acesso em abril de 2007
ALTERA NIOS II Documentaccedilatildeo sobre o pprocessador embracado NIO II Disponivel
em lthttpwwwalteracomproductsipprocessorsipm-indexjspgt Acesso em Abril de 2007
ALTERA Development amp Education Board 2 (DE2) Manual do usuario Disponivel no
de que acompanha o Kit DE2 ltDE2_user_manualDE2_UserManualpdfgt Acesso em
fevereiro de 2007
32
324 Comunicaccedilatildeo entre FPGA e o Touch-Screen
Para comunicaccedilatildeo entre dos dois hardwares Touch-Screen e o FPGA eacute utilizando uma
interface serial RS-232
A configuraccedilatildeo da interface eacute a seguinte
Bits de dados 8
Taxa de dados 5600(bps)
A Tabela 23 mostra a relaccedilatildeo dos pinos da porta serial com os pinos da FPGA
Tabela 23 ndash Pinos da FPGA referente agrave pinagem da interface Serial
E a Figura 16 mostra o desenho correspondente da interface serial
Figura 16 ndash Conector da interface serial do kit DE2
33 Especificaccedilatildeo de Validaccedilatildeo
331 Validaccedilatildeo de Hardware
A validade do hardware se faz com a anaacutelise de todos os moacutedulos envolvidos
As necessidades satildeo estudadas os componentes externos ao FPGA satildeo selecionados de
acordo o processador nios e os controladores dos moacutedulos externos como VGA e SERIAL satildeo
enviados ao modulo FPGA
Os resultados obtidos na tela do monitor e a recepccedilatildeo dos dados pela serial comprovam o
funcionamento do modulo de comunicaccedilatildeo da serial e vga
33
332 Validaccedilatildeo de Software
A validaccedilatildeo do controle da interface touch-screen faz-se a partir dos resultados obtidos das
funccedilotildees escritas na linguagem C especificas para cada componente externos ao FPGA essas
funccedilotildees tornam possiacuteveis que o processador NIOS na FPGA tenha total controle sobre os
moacutedulos externos como a VGA e a SERIAL
As funccedilotildees que satildeo utilizadas para validar o funcionamento do software satildeo para a VGA os
meacutetodos de controle (alt_up_vga_draw_char_1b( char int x int y)) e (alt_up_vga_draw_pixel(
color x y))
O meacutetodo (alt_up_vga_draw_char_1b( char int x int y)) tem a funcionalidade de escrever
caracteres na tela do monitor e a descriccedilatildeo da sua assinatura ldquoparacircmetrosrdquo eacute a seguinte char eacute o
caractere que eacute escrito em alguma posiccedilatildeo na tela int x eacute a posiccedilatildeo x da tela do monitor e int y eacute
a posiccedilatildeo y da tela do monitor sendo que a resoluccedilatildeo utilizada eacute de 80x60 ou seja x natildeo pode
passar de 80 e y natildeo pode passar de 60
O meacutetodo (alt_up_vga_draw_pixel( color int x int y)) tem a funcionalidade de ldquopintarrdquo o
fundo da tela do monitor o meacutetodo de imprimir caracteres tem preferecircncia sobre este meacutetodo ou
seja os caracteres sempre ficam sob a aacuterea pintada ou seja o caractere sempre ficara em cima da
aacuterea pintada a descriccedilatildeo da assinatura deste meacutetodo eacute a seguinte color eacute a valor da cor que pode
ser um valor inteiro ou em hexadecimal para definir uma cor de alguma posiccedilatildeo da tela definidos
pelos paracircmetros x e y
As funccedilotildees que satildeo utilizadas para validar o funcionamento do software satildeo para a Serial os
meacutetodos de controle de transmissatildeo (fread( packet sizeof(packet) 1 serial_fp )) a funccedilatildeo
fread eacute utilizada para a leitura via interrupccedilatildeo dos pacotes que a controladora envia para o kit
DE2 as assinaturas do meacutetodo fread tem a seguinte composiccedilatildeo packet eacute a estrutura do pacote
que seraacute recebido o sizeof(packet) eacute o diz qual eacute o tamanho exato da estrutura criada e o
serial_fp eacute o handle da porta serial
Uma observaccedilatildeo muito importante eacute que para o total funcionamento eacute necessaacuterio 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 rs232h e rs232c onde estatildeo os meacutetodos de
controle da SERIAL e alt_up_vgah alt_up_vgac onde estatildeo os meacutetodos de controle para a
VGA Para tornar estes meacutetodos acessiacuteveis eacute preciso fazer os includes dos arquivos h no
projeto da NIOS IDE
A figura 17 mostra a utilizaccedilatildeo dos meacutetodos (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
34
int y)) utlizado para escrever os caracteres lsquoarsquo e lsquobrsquo dentro de um grupo de pixel previamente
pintado a (alt_up_vga_draw_pixel( color int x int y)) natildeo pinta um pixel de cada vez e sim
um bloco de 8x8 pixels
Figura 17 - Tela para a validaccedilatildeo dos testes com as bibliotecas graacuteficas do componente VGA
34 Recursos Necessaacuterios
A Tabela 24 apresenta os ambientes de desenvolvimento e ferramentas de software utilizadas
e na Tabela 25 as linguagens necessaacuterias Estas ferramentas foram utilizadas em ambiente
Windows Xp
Tabela 24 - Ferramentas de Desenvolvimentos e Ambientes
Software Para que foi Utilizado
Quartus II Para a definiccedilatildeo de qual o modelo de FPGA utilizado compilaccedilatildeo e simulaccedilatildeo e envio Load do NIOS para FPGA
SOPC Para definiccedilatildeo da do processador NIOS II e com quais componentes externos ele ira interagir atraveacutes dos controladores dos respectivos componentes
NIOS II IDE Para implementaccedilatildeo do firmware do processador NIOS II utilizando a linguagem em C
35
Borland C++ Builder Para desenvolvimento de ima interface de comunicaccedilatildeo via caboUSB-
BLASTER para o envio de imagem para o kit
Tabela 25 ndash Linguagens de programaccedilatildeo utilizadas
Linguagem Ferramenta C++ Borland C++ Builder VerilogVHDL Quartus II C NIOS II IDE
35 Viabilidade Teacutecnico-Econocircmica
O valor do projeto esta descrito na Tabela 26
Tabela 26 ndash Relaccedilatildeo dos Custos
DESCRICcedilAtildeO CUSTO APROXIMADO (R$) COMPONENTES ELETROcircNICOS 50000 1 Kit DE2 Cyclone II 35000 1 Monitor de Computador 35000 HORAS TRABALHADAS (400 horas) 750000 CUSTO TOTAL APROXIMADO (R$) 870000
36 Cronograma do Projeto
A tabela 27 contem as informaccedilotildees do cronograma do projeto
Tabela 27 ndash Cronograma de datas e entregas do projeto
Data Atividade a ser apresentada 050307 Entrega das propostas de projeto para avaliaccedilatildeo do colegiado 020407 Entrega das especificaccedilotildees teacutecnicas do projeto aprovado 110607 Entrega do projeto (monografia) e dos testes preliminares do mesmo 060807 Apresentaccedilatildeo preacutevia da implementaccedilatildeo do projeto especificado 011007 Apresentaccedilatildeo do projeto implementado
Qualificaccedilatildeo para a fase final 291007 Segunda apresentaccedilatildeo do projeto implementado para os que natildeo o fizeram no
dia 011006 com decreacutescimo da nota Qualificaccedilatildeo para a fase final
051107 Entrega da documentaccedilatildeo completa em espiral para a banca examinadora em 3 vias contendo a monografia manual teacutecnico manual do usuaacuterio e artigo cientiacutefico
261107 Defesa formal dos projetos com apresentaccedilatildeo oral para a banca examinadora 101207 Entrega da documentaccedilatildeo completa revisada e corrigida encadernada no
padratildeo da biblioteca (capa dura) em duas vias contendo a monografia manual teacutecnico manual do usuaacuterio e artigo cientiacutefico Entrega do CD contendo no formato WEB todo o conteuacutedo dos manuais
36
CAPIacuteTULO 4 ndash ESPECIFICACcedilAtildeO TECNICA
41 Requisitos Miacutenimos
Os requisitos miacutenimos de Hardware satildeo
Funcionamento das interfaces Serial e USB-Blaster
Funcionamento do Kit DE2
PC
Os requisitos miacutenimos de Software
Windows Xp
Quartus II
SOPC
NIOS II IDE
42 Projeto de Hardware
O hardware utilizado nesse projeto inclui componentes presentes na Placa de
Desenvolvimento Nios II - ediccedilatildeo DE2 Cyclone II EP2C35 e principalmente o hardware que seraacute
configurado na FPGA escrito em linguagem de descriccedilatildeo de hardware (HDL)
O um dos principais blocos de hardware eacute o processador NIOS II o Avalon Bus e os
controladores de componentes externos a FPGA e de comunicaccedilatildeo presentes no Kit
37
O software embarcado (firmware) estaraacute rodando nessa arquitetura Eacute uma arquitetura
completa construiacuteda com a ferramenta SOPC Builder da Altera A Figura 18 representa em
blocos os principais componentes dessa arquitetura
Figura 18 ndash Representaccedilatildeo em blocos do hardware do NIOS II
421 Funcatildeo do Touch-Screen
Outro bloco importante eacute o do Touch-Screen esta tela sensiacutevel ao toque pois como esta tela
trabalha com resistecircncia ao ser tocado em uma determinada regiatildeo uma resistecircncia eacute gerada e a
tensatildeo de saiacuteda eacute modificada a alimentaccedilatildeo desta placa eacute proveniente de sua placa controladora
a mesma placa que recebe a tensatildeo de saiacuteda modificada de acordo com a regiatildeo tocada na tela
Para verificar as caracteriacutesticas detalhadas do Touch-Screen e sua placa controlador favor ver
o Capitulo 2
422 Monitor e VGA
O Monitor inicialmente tem apenas o desenho de um botatildeo que ao ser tocado via touch
mudara a cor de toda a tela A imagem exibida no monitor tem uma resoluccedilatildeo de
38
Protoacutetipo das telas para os testes esta na Figura 19 a tela verde quando a touch natildeo eacute tocando
na regiatildeo do botatildeo de OK quando o botatildeo de OK for tocado a tela do monitor mudara de cor
ficando azul
Figura 19 ndash Tela do monitor
No Capitulo 2 estatildeo todas as caracteriacutesticas da pinagem e do conector VGA
423 Comunicaccedilatildeo serial
Entre a placa controladora do Touch-Screen e o FPGA existe uma comunicaccedilatildeo 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 manipulaccedilatildeo da imagem que eacute
mostrada no monitor
No capitulo 2 estatildeo das descriccedilotildees dos pinos e do conector da comunicaccedilatildeo Serial
O pacote serial que eacute transmitido pela placa controladora do touch-screen possui 10 bytes de
comprimento e segue a seguinte sequumlecircncia de envio
[55] [54] [] [] [] [] [] [] [] []
Sequumlecircncia dos bytes
Os dois primeiros bytes identificam o Header do pacote
O terceiro byte eacute 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 agrave posiccedilatildeo do eixo x onde a tela foi tocada
O sexto e o seacutetimo byte correspondem a posiccedilatildeo do eixo y onde a tele foi tocada
O restante os bytes identificam o tail do pacote recepcionado pelo kit DE2
39
424 Comunicaccedilatildeo USB-Blaster
Essencial para envio do projeto desenvolvido para o kit DE2 tambeacutem muito utilizado para o
debug deste projeto
435 Memoacuteria SDRAM
A memoacuteria utilizada para armazenar grandes quantidades de dados eacute a SDRAM (ver detalhes
no Capitulo 2)
Essa memoacuteria eacute muito raacutepida serviu muito bem para armazenar o firmware deste projeto
pois tem o tempo acesso ideal para ler as instruccedilotildees que utilizaram a VGA e tambeacutem eacute raacutepida o
suficiente para fazer a leitura dos dados e disponibilizar na saiacuteda VGA do kit
426 Memoacuteria FLASH
Eacute onde seraacute armazenado o firmware possui espaccedilo suficiente para isso 4MB e uma memoacuteria
mais lenta e por isso natildeo foi usada para armazenar dados para serem jogados na vga do Kit
43 Software
431 Software (Firmware)
O software tem de funccedilatildeo de utilizar as bibliotecas das controladoras dos componentes
externos a fim de controlar estes componentes de acordo com o necessaacuterio para atender o
objetivo do projeto
Ou seja uma tela inicial eacute apresentada e o usuaacuterio ao tocar na nela o kit recebe um pacote via
serial e interpreta a posiccedilatildeo da tela em que foi tocado e logo em seguida envia o resultado deste
toque para o monitor
432 Objetivos
O usuaacuterio 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 accedilatildeo de acordo com a posiccedilatildeo da tela
tocada alterando assim a imagem anterior com o resultado do toque
Interpretar o toque de usuaacuterio na tela touch-screen recepccedilatildeo do pacote via serial da placa
controladora do touch-screen tratamento do pacote e interpretaccedilatildeo das coordenadas x e y do
40
toque Realizaccedilatildeo de alguma accedilatildeo que resultara na alteraccedilatildeo da imagem da tela atual de acordo
com a funccedilatildeo em que as coordenadas foram previamente definidas para o que deve ser feito
432 Funccedilotildees
A Tabela 28 tem as principais funccedilotildees que foram implementadas para o sistema
Tabela 28 ndash Funccedilotildees do sistema firmware
FUNCcedilOtildeES Tela de um pequeno editor de texto Tratamento do sinal recebido da serial devido a um toque na tela Interpretaccedilatildeo do pacote serial e transfomaccedilatildeo para coordenadas x e y Transformaccedilatildeo das posiccedilotildees do toque na tela em alguma accedilatildeo enviando o resultado para a VGA Imagem final disponibilizada ao usuaacuterio de acordo com o toque que foi dado na tela Controlar dispositivos cada dispositivo pode ser controlado pelo seu respectivo contrador atraveacutes de seu endereccedilo base VGA SERIAL USB-BLASTER IO(Leds Switches etc) do Kit DE2
O Firmware do processador NIOS II eacute que realizaraacute a integraccedilatildeo entre hardware com
hardware Com o firmware controlando o NIOS II eacute possiacutevel interagir com os dispositivos
externos a FPGA Tornando possiacutevel a integraccedilatildeo da FPGA com a peliacutecula touch-screen e um
monitor sem a ajuda de um PC a uacutenica ajuda do pc seria para enviar dados de uma imagem para
o Kit DE2
44 Validaccedilatildeo e Testes
Inicialmente os moacutedulos da VGA e comunicaccedilatildeo SERIAL natildeo estavam funicionando
apenas o devido agrave fraca documentaccedilatildeo sobre o kit DE2 foi possiacutevel apenas fazer testes com o
Processador NIOS II pois sobre este existem bastantes documentos e exemplos que podem ser
utilizados
Nesta primeira parte foi possiacutevel testar o NIOS II para controlar o display bototildees e switchs
do kit DE2
Com o NIOS II funcionando completamente foi necessaacuterio porta-lo para o kit DE2 o que foi
simples pois como sabemos esses kits satildeo portaacuteveis entre si apenas mudando a pinagem e a
capacidade da FPGA
Com o Kit DE2 foi possiacutevel fazer os testes necessaacuterios com a comunicaccedilatildeo serial
inicialmente testada via terminal conversando diretamente com o kit foi possiacutevel fazer o
seguinte teste os caracteres que eram entrados via teclado chegavam ao kit via serial e o o
41
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 comdumpexe que eacute facilmente encontrado pelas ferramentas
de pesquisa da web e tambeacutem existem vario outros programas como este e o comdump eacute
utilizado para debug da porta serial do pc conectado diretamente na placa controladora do touch-
screen e foi a peccedila chave para o entendimento do pacote enviado pela placa controladora
Figura 20 - Cumdumpexe programa de debug da porta serial
A explicaccedilatildeo de cada byte do pacote esta explicado no item 423
Apos o entendimento completo da transmissatildeo 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 natildeo 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 ateacute o momento em que
foi testado os meacutetodos proprietaacuterios da Altera para fazer a VGA funcionar os meacutetodos esses
implementados em C
A figura 21 onde contem o teste baacutesico feito que foi a chave principal para o sucesso deste
projeto
42
Como dito no item 332 do projeto foram utilizados as funccedilotildees da controladora VGA esses
meacutetodos 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 eacute utilizado o meacutetodo alt_up_vga_draw_pixel( color int
x int y) onde color eacute a cor do bloco de pixels e x e y satildeo as coordenadas da tela onde o bloco
que seraacute pintado
Para escrever um caractere sobre um bloco de pixels pintado eacute utilizado a funccedilatildeo
alt_up_vga_draw_char_1b( char int x int y) onde char eacute o caractere a ser impresso e x e y satildeo
as coordenadas da tela onde os o caractere eacute impresso
Figura 21 - Teste baisco do funcionamento do componente VGA do kit DE2
43
CAPIacuteTULO 5 ndash VALIDACcedilAtildeO E RESULTADOS
Os resultados foram os melhores possiacuteveis pois com a utilizaccedilatildeo dos IP CORE
ldquocontroladorasrdquo dos componentes externos como VGA e SERIAL e seus meacutetodos de para
controle eacute possiacutevel controlar facilmente esses moacutedulos atraveacutes do firmware desenvolvido para o
processador NIOS que consegue realizar operaccedilotildees transparentes acessando dos meacutetodos de
controle dos moacutedulos
Apos os testes baacutesicos 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 baacutesico de editor de texto
A figura 22 mostra um teste utilizando os meacutetodos de controle disponiacuteveis para o IP CORE
da VGA para primeiramente fazer o menu da aplicaccedilatildeo desenvolvido em na linguagem C
Figura 22 ndash Menu baacutesico do editor de texto
Para desenhar o menu da figura acima foi utilizado os meacutetodos proprietaacuterios de controle da
VGA citados no capitulo 4 e tambeacutem estruturas de repeticcedilatildeo para que a tela fosse varrida e os
pixels desenhados nos respectivos lugares da tela bem como os caracteres
Na figura 23 eacute definida a seguinte estrutura em C para representar de um botatildeo
Figura 23 - Estrutura em C para representar um botatildeo
44
A figura 24 eacute a declaraccedilatildeo dos bototildees que seratildeo utilizados pelo aplicativo editor de texto
para comprovar o funcionamento do controle da interface touch-screen
Apenas o que esta dentro da marcaccedilatildeo quadrada representa os bototildees do menu da figura 23
e o restante satildeo os bototildees do teclado do editor de texto
Figura 24 - Declaraccedilatildeo dos bototildees do menu
45
A figura 25 representa o meacutetodo drawnButtonUp responsaacutevel por desenhar os bototildees na tela
de acordo com as posiccedilotildees em que foram declarados os bototildees deste meacutetodo satildeo desenhados
para parecerem que estatildeo ldquolevantadosrdquo e natildeo pressionados
Note que foram utilizados os meacutetodos proprietaacuterios de controle da VGA
alt_up_vga_draw_pixel pra pitar os pixels e alt_up_vga_draw_char_b1 para desenhar caracteres
como jaacute foi especificado no item 44 do projeto
Figura 25 ndash Meacutetodo drawButtonUp
46
O meacutetodo que desenha o caption do botatildeo se chama drawButtonText desenha os caracteres
em cima dos bototildees natildeo importa se o botatildeo esta pressionado ou natildeo
A figura 26 mostra como este meacutetodo foi implementado e ele eacute chamado no final de cada
meacutetodo onde algum tipo de botatildeo eacute desenhado quando o meacutetodo que desenha o botatildeo normal
quanto o pressionado e ateacute mesmo o do teclado
Figura 26 ndash Meacutetodo que escreve o caption de cada botatildeo
47
A figura 27 mostra o meacutetodo drawButtonDown que desenha o botatildeo pressionado ou seja
quando o usuaacuterio pressiona a regiatildeo correspondente a um botatildeo do menu no touch-screen o
mesmo redesenharaacute o botatildeo parecendo um efeito de botatildeo afundado note que no final do
meacutetodo novamente eacute chamado o meacutetodo drawButtonText que reescreveraacute o caption do botatildeo
como mostra o meacutetodo da figura 26 e esta ilustrado na figura 28
Figura 27 ndash Meacutetodo que desenha o botatildeo pressionado
48
Dependendo da aacuterea do menu que o usuaacuterio pressionar no touch-screen causar o efeito de
pressionado como mostra a figura 28
Figura 28 ndash Efeito do botatildeo de menu apertado
Na figura 29 eacute a representaccedilatildeo de quando a aacuterea correspondente ao botatildeo ldquoamarelordquo eacute
pressionada
Apos estes testes baacutesicos comprovando o funcionamento da interface graacutefica para o usuaacuterio
foi definido o restante dos componentes da tela que eacute constituiacutedo de um prompt e um teclado
qwerty que foi essencial para comprovar o perfeito funcionamento do controle da interface
touch-screen
49
51 Interface Grafica Final
A figura 29 mostra a interface final que o usuaacuterio teraacute para poder verificar o funcionamento
do controle da interface touch-screen
Figura 29 ndash Interface final touch-screen do usuaacuterio
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
511 Descriccedilatildeo do editor de texto
O menu possui 4 botoes cada um com sua respectiva funcionalidade quando o usuario
pressiona a area do botatildeo ldquoapagarrdquo uma vez entatildeo um carectere do prompt eacute apagado Quando eacute
precionado a area correspondente ao botatildeo ldquoResetrdquo todo o conteudo do prompt seraacute apagado e o
plano de fundo retornaraacute a cor branca Quando o botatildeo ldquoamarelordquo eacute pressionado o fundo da tela
passa a ser amarelo e o mesmo acontece se o usuario precionar o botatildeo verde tornando o cor de
fundo verde
50
O teclado possui 29 teclas sendo duas delas que equivalem ao ENTRA ldquoENTrdquo e ao
SPACE ldquoSPCrdquo Quando o usuario pressiona a area correspondente a algum botatildeo do teclado o
mesmo muda sua cor para azul e o seu caractere eacute disponibilizado no prompt
Essas funcionalidades nada mais satildeo do que um bom exemplo de como funciona
corretamente o controle da interface touch-screen
52 Prompt e o Teclado
A estrutura feita na linguagem C que define o prompt da figura 28 esta representado na
figura 30
Figura 30 ndash Estrutura em C para representar o prompt
A figura 31 mostra o metodo drawPrompt utilizado para desenhar na tela o prompt
Figura 31 ndash Meacutetodo que desenha o prompt
51
A estrutura do teclado eacute a mesma utilizada pela figura 23 e tambem eacute criado satildeo
inicializados na figura 24
O restante as implementaccedilotildees estatildeo disponiveis no cd deste documento
Quando algum botatildeo do teclado eacute pressionado sua cor muda para azul e sua letra
correspondente eacute escrita o prompt
A figura 32 ilustra quando o usuaacuterio aperta a letra lsquotrsquo na peliacutecula touch-screen
Figura 32 - Teste do prompt e o teclado
52
53 Controle da Interface Touch-Screen
Depois do todos os testes com o processador NIOS e a integraccedilatildeo do mesmo com os
moacutedulos externos como a porta SERIAL e a saiacuteda VGA eacute possiacutevel utilizando o touch-screen
criar uma interface amigaacutevel e faacutecil de usar para o usuaacuterio utilizando um firmware capaz de
interpretar os sinais via serial vindo da controladora do touch ao detectar que um toque foi dado
pelo usuaacuterio e realizar algumas accedilotildees que neste caso se comportam como um editor de texto
baacutesico
A figura 33 mostra como foi validado este projeto e seus moacutedulos controlando uma
interface touch-screen para chegar no resultado abaixo digitado pelo usuaacuterio comprovando o
funcionamento e viabilidade deste projeto
Figura 33 ndash 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 mudanccedilas podendo ser alterado rapidamente o tipo de
aplicaccedilatildeo ou integrado rapidamente com outro projeto
53
CAPIacuteTULO 6 - CONCLUSAtildeO
Uma das principais dificuldades no desenvolvimento deste projeto foi fazer o levantamento
da documentaccedilatildeo sobre o processador NIOS e os moacutedulos externos a FPGA do Kit DE2 Como
natildeo foi feito algum projeto antes que utilizasse a interface VGA e a SERIAL do Kit DE2 levou-
se muito tempo ateacute conseguir adquirir e ordenar o conhecimento que foi sendo adquirido ateacute
conseguir dar os primeiros passos e realizar os primeiros testes com a VGA e a SERIAL Outro
grande obstaacuteculo foi ter de descobrir que para que o NIOS controlasse os moacutedulos externos a
FGPA fosse necessaacuterio copiar os arquivos c e h dos respectivos componente para dentro do
projeto
Mas depois de todos os problemas com os moacutedulos externos solucionados cada modulo do
projeto foi sendo desenvolvido separadamente ateacute seu total funcionamento Natildeo tive dificuldades
com a linguagem da programaccedilatildeo pois o Firmware do processador NIOS eacute o C a qual mais tive
contato na faculdade
Outro desafio foi fazer a peliacutecula 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
peliacutecula natildeo 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 possiacutevel
comeccedilar a fazer os testes necessaacuterios para prosseguir com o projeto aprender como o a peliacutecula
identifica um toque e manda este sinal para a controladora e a controladora transforma este sinal
em um sinal serial que eacute 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 accedilotildees
que as coordenadas jaacute estatildeo previamente calibradas no firmware para fazer bem como mudar de
cor a tela fazer o efeito de um botatildeo subindo e descendo etc
Varias vezes o projeto parou de funcionar entatildeo 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 memoacuteria abundante etc uma das
facilidades eacute a faacutecil alteraccedilatildeo do projeto podendo ser integrado a outro ou ateacute mesmo alterado
para realizar outros tipos de accedilotildees com o touch-screen
Existem vaacuterios melhoramentos que podem ser executados no projeto um deles eacute tentar
interpretar de uma maneira diferente os valores do eixo y pois do jeito que esta a resoluccedilatildeo do
eixo y esta muito baixa dificultando o reconhecimento de toques em aacutereas pequenas Talvez a
inclusatildeo de mais alguns bytes no pacote de leitura da serial resolva o problema
54
Uma ideacuteia para um proacuteximo projeto que use a interface touch-screen poderia ser a
integraccedilatildeo com o projeto do nosso colega Roberto Junqueira ou a desenvolvimento de uma
placa controladora para o touch-screen
Este trabalho eacute uma modesta contribuiccedilatildeo para o uso de FPGAs e do processador embarcado
NIOS implementado em VHDL pela Altera que acredito que vai abrir vaacuterios caminhos pois
com este projeto alguns caminhos ficaram mais faacuteceis de percorrer daqui para a frente
55
CAPIacuteTULO 7 - REFEREcircNCIAS BIBLIOGRAacuteFICAS
AMORE Roberto drsquo VHDL Descriccedilatildeo e Sintese de Circuitos Rio de Janeiro ed LTC
2005
Elotouch Touch-Screen e Controladora Descriccedilatildeo do funcionamento e descriccedilatildeo
tecnologia Touch-Screen lthttpwwwelotouchcombrgt Acesso em fevereiro de 2007
ALTERA University Program IP Cores Instalaccedilatildeo de IP Cores e referencias sobre os
componentes dos kits DE1 e DE2 Disponivel em lthttpwwwalteracomeducationunivip-
coresunv-ip-coreshtmlgt Acesso em abril de 2007
ALTERA NIOS II Documentaccedilatildeo sobre o pprocessador embracado NIO II Disponivel
em lthttpwwwalteracomproductsipprocessorsipm-indexjspgt Acesso em Abril de 2007
ALTERA Development amp Education Board 2 (DE2) Manual do usuario Disponivel no
de que acompanha o Kit DE2 ltDE2_user_manualDE2_UserManualpdfgt Acesso em
fevereiro de 2007
33
332 Validaccedilatildeo de Software
A validaccedilatildeo do controle da interface touch-screen faz-se a partir dos resultados obtidos das
funccedilotildees escritas na linguagem C especificas para cada componente externos ao FPGA essas
funccedilotildees tornam possiacuteveis que o processador NIOS na FPGA tenha total controle sobre os
moacutedulos externos como a VGA e a SERIAL
As funccedilotildees que satildeo utilizadas para validar o funcionamento do software satildeo para a VGA os
meacutetodos de controle (alt_up_vga_draw_char_1b( char int x int y)) e (alt_up_vga_draw_pixel(
color x y))
O meacutetodo (alt_up_vga_draw_char_1b( char int x int y)) tem a funcionalidade de escrever
caracteres na tela do monitor e a descriccedilatildeo da sua assinatura ldquoparacircmetrosrdquo eacute a seguinte char eacute o
caractere que eacute escrito em alguma posiccedilatildeo na tela int x eacute a posiccedilatildeo x da tela do monitor e int y eacute
a posiccedilatildeo y da tela do monitor sendo que a resoluccedilatildeo utilizada eacute de 80x60 ou seja x natildeo pode
passar de 80 e y natildeo pode passar de 60
O meacutetodo (alt_up_vga_draw_pixel( color int x int y)) tem a funcionalidade de ldquopintarrdquo o
fundo da tela do monitor o meacutetodo de imprimir caracteres tem preferecircncia sobre este meacutetodo ou
seja os caracteres sempre ficam sob a aacuterea pintada ou seja o caractere sempre ficara em cima da
aacuterea pintada a descriccedilatildeo da assinatura deste meacutetodo eacute a seguinte color eacute a valor da cor que pode
ser um valor inteiro ou em hexadecimal para definir uma cor de alguma posiccedilatildeo da tela definidos
pelos paracircmetros x e y
As funccedilotildees que satildeo utilizadas para validar o funcionamento do software satildeo para a Serial os
meacutetodos de controle de transmissatildeo (fread( packet sizeof(packet) 1 serial_fp )) a funccedilatildeo
fread eacute utilizada para a leitura via interrupccedilatildeo dos pacotes que a controladora envia para o kit
DE2 as assinaturas do meacutetodo fread tem a seguinte composiccedilatildeo packet eacute a estrutura do pacote
que seraacute recebido o sizeof(packet) eacute o diz qual eacute o tamanho exato da estrutura criada e o
serial_fp eacute o handle da porta serial
Uma observaccedilatildeo muito importante eacute que para o total funcionamento eacute necessaacuterio 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 rs232h e rs232c onde estatildeo os meacutetodos de
controle da SERIAL e alt_up_vgah alt_up_vgac onde estatildeo os meacutetodos de controle para a
VGA Para tornar estes meacutetodos acessiacuteveis eacute preciso fazer os includes dos arquivos h no
projeto da NIOS IDE
A figura 17 mostra a utilizaccedilatildeo dos meacutetodos (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
34
int y)) utlizado para escrever os caracteres lsquoarsquo e lsquobrsquo dentro de um grupo de pixel previamente
pintado a (alt_up_vga_draw_pixel( color int x int y)) natildeo pinta um pixel de cada vez e sim
um bloco de 8x8 pixels
Figura 17 - Tela para a validaccedilatildeo dos testes com as bibliotecas graacuteficas do componente VGA
34 Recursos Necessaacuterios
A Tabela 24 apresenta os ambientes de desenvolvimento e ferramentas de software utilizadas
e na Tabela 25 as linguagens necessaacuterias Estas ferramentas foram utilizadas em ambiente
Windows Xp
Tabela 24 - Ferramentas de Desenvolvimentos e Ambientes
Software Para que foi Utilizado
Quartus II Para a definiccedilatildeo de qual o modelo de FPGA utilizado compilaccedilatildeo e simulaccedilatildeo e envio Load do NIOS para FPGA
SOPC Para definiccedilatildeo da do processador NIOS II e com quais componentes externos ele ira interagir atraveacutes dos controladores dos respectivos componentes
NIOS II IDE Para implementaccedilatildeo do firmware do processador NIOS II utilizando a linguagem em C
35
Borland C++ Builder Para desenvolvimento de ima interface de comunicaccedilatildeo via caboUSB-
BLASTER para o envio de imagem para o kit
Tabela 25 ndash Linguagens de programaccedilatildeo utilizadas
Linguagem Ferramenta C++ Borland C++ Builder VerilogVHDL Quartus II C NIOS II IDE
35 Viabilidade Teacutecnico-Econocircmica
O valor do projeto esta descrito na Tabela 26
Tabela 26 ndash Relaccedilatildeo dos Custos
DESCRICcedilAtildeO CUSTO APROXIMADO (R$) COMPONENTES ELETROcircNICOS 50000 1 Kit DE2 Cyclone II 35000 1 Monitor de Computador 35000 HORAS TRABALHADAS (400 horas) 750000 CUSTO TOTAL APROXIMADO (R$) 870000
36 Cronograma do Projeto
A tabela 27 contem as informaccedilotildees do cronograma do projeto
Tabela 27 ndash Cronograma de datas e entregas do projeto
Data Atividade a ser apresentada 050307 Entrega das propostas de projeto para avaliaccedilatildeo do colegiado 020407 Entrega das especificaccedilotildees teacutecnicas do projeto aprovado 110607 Entrega do projeto (monografia) e dos testes preliminares do mesmo 060807 Apresentaccedilatildeo preacutevia da implementaccedilatildeo do projeto especificado 011007 Apresentaccedilatildeo do projeto implementado
Qualificaccedilatildeo para a fase final 291007 Segunda apresentaccedilatildeo do projeto implementado para os que natildeo o fizeram no
dia 011006 com decreacutescimo da nota Qualificaccedilatildeo para a fase final
051107 Entrega da documentaccedilatildeo completa em espiral para a banca examinadora em 3 vias contendo a monografia manual teacutecnico manual do usuaacuterio e artigo cientiacutefico
261107 Defesa formal dos projetos com apresentaccedilatildeo oral para a banca examinadora 101207 Entrega da documentaccedilatildeo completa revisada e corrigida encadernada no
padratildeo da biblioteca (capa dura) em duas vias contendo a monografia manual teacutecnico manual do usuaacuterio e artigo cientiacutefico Entrega do CD contendo no formato WEB todo o conteuacutedo dos manuais
36
CAPIacuteTULO 4 ndash ESPECIFICACcedilAtildeO TECNICA
41 Requisitos Miacutenimos
Os requisitos miacutenimos de Hardware satildeo
Funcionamento das interfaces Serial e USB-Blaster
Funcionamento do Kit DE2
PC
Os requisitos miacutenimos de Software
Windows Xp
Quartus II
SOPC
NIOS II IDE
42 Projeto de Hardware
O hardware utilizado nesse projeto inclui componentes presentes na Placa de
Desenvolvimento Nios II - ediccedilatildeo DE2 Cyclone II EP2C35 e principalmente o hardware que seraacute
configurado na FPGA escrito em linguagem de descriccedilatildeo de hardware (HDL)
O um dos principais blocos de hardware eacute o processador NIOS II o Avalon Bus e os
controladores de componentes externos a FPGA e de comunicaccedilatildeo presentes no Kit
37
O software embarcado (firmware) estaraacute rodando nessa arquitetura Eacute uma arquitetura
completa construiacuteda com a ferramenta SOPC Builder da Altera A Figura 18 representa em
blocos os principais componentes dessa arquitetura
Figura 18 ndash Representaccedilatildeo em blocos do hardware do NIOS II
421 Funcatildeo do Touch-Screen
Outro bloco importante eacute o do Touch-Screen esta tela sensiacutevel ao toque pois como esta tela
trabalha com resistecircncia ao ser tocado em uma determinada regiatildeo uma resistecircncia eacute gerada e a
tensatildeo de saiacuteda eacute modificada a alimentaccedilatildeo desta placa eacute proveniente de sua placa controladora
a mesma placa que recebe a tensatildeo de saiacuteda modificada de acordo com a regiatildeo tocada na tela
Para verificar as caracteriacutesticas detalhadas do Touch-Screen e sua placa controlador favor ver
o Capitulo 2
422 Monitor e VGA
O Monitor inicialmente tem apenas o desenho de um botatildeo que ao ser tocado via touch
mudara a cor de toda a tela A imagem exibida no monitor tem uma resoluccedilatildeo de
38
Protoacutetipo das telas para os testes esta na Figura 19 a tela verde quando a touch natildeo eacute tocando
na regiatildeo do botatildeo de OK quando o botatildeo de OK for tocado a tela do monitor mudara de cor
ficando azul
Figura 19 ndash Tela do monitor
No Capitulo 2 estatildeo todas as caracteriacutesticas da pinagem e do conector VGA
423 Comunicaccedilatildeo serial
Entre a placa controladora do Touch-Screen e o FPGA existe uma comunicaccedilatildeo 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 manipulaccedilatildeo da imagem que eacute
mostrada no monitor
No capitulo 2 estatildeo das descriccedilotildees dos pinos e do conector da comunicaccedilatildeo Serial
O pacote serial que eacute transmitido pela placa controladora do touch-screen possui 10 bytes de
comprimento e segue a seguinte sequumlecircncia de envio
[55] [54] [] [] [] [] [] [] [] []
Sequumlecircncia dos bytes
Os dois primeiros bytes identificam o Header do pacote
O terceiro byte eacute 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 agrave posiccedilatildeo do eixo x onde a tela foi tocada
O sexto e o seacutetimo byte correspondem a posiccedilatildeo do eixo y onde a tele foi tocada
O restante os bytes identificam o tail do pacote recepcionado pelo kit DE2
39
424 Comunicaccedilatildeo USB-Blaster
Essencial para envio do projeto desenvolvido para o kit DE2 tambeacutem muito utilizado para o
debug deste projeto
435 Memoacuteria SDRAM
A memoacuteria utilizada para armazenar grandes quantidades de dados eacute a SDRAM (ver detalhes
no Capitulo 2)
Essa memoacuteria eacute muito raacutepida serviu muito bem para armazenar o firmware deste projeto
pois tem o tempo acesso ideal para ler as instruccedilotildees que utilizaram a VGA e tambeacutem eacute raacutepida o
suficiente para fazer a leitura dos dados e disponibilizar na saiacuteda VGA do kit
426 Memoacuteria FLASH
Eacute onde seraacute armazenado o firmware possui espaccedilo suficiente para isso 4MB e uma memoacuteria
mais lenta e por isso natildeo foi usada para armazenar dados para serem jogados na vga do Kit
43 Software
431 Software (Firmware)
O software tem de funccedilatildeo de utilizar as bibliotecas das controladoras dos componentes
externos a fim de controlar estes componentes de acordo com o necessaacuterio para atender o
objetivo do projeto
Ou seja uma tela inicial eacute apresentada e o usuaacuterio ao tocar na nela o kit recebe um pacote via
serial e interpreta a posiccedilatildeo da tela em que foi tocado e logo em seguida envia o resultado deste
toque para o monitor
432 Objetivos
O usuaacuterio 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 accedilatildeo de acordo com a posiccedilatildeo da tela
tocada alterando assim a imagem anterior com o resultado do toque
Interpretar o toque de usuaacuterio na tela touch-screen recepccedilatildeo do pacote via serial da placa
controladora do touch-screen tratamento do pacote e interpretaccedilatildeo das coordenadas x e y do
40
toque Realizaccedilatildeo de alguma accedilatildeo que resultara na alteraccedilatildeo da imagem da tela atual de acordo
com a funccedilatildeo em que as coordenadas foram previamente definidas para o que deve ser feito
432 Funccedilotildees
A Tabela 28 tem as principais funccedilotildees que foram implementadas para o sistema
Tabela 28 ndash Funccedilotildees do sistema firmware
FUNCcedilOtildeES Tela de um pequeno editor de texto Tratamento do sinal recebido da serial devido a um toque na tela Interpretaccedilatildeo do pacote serial e transfomaccedilatildeo para coordenadas x e y Transformaccedilatildeo das posiccedilotildees do toque na tela em alguma accedilatildeo enviando o resultado para a VGA Imagem final disponibilizada ao usuaacuterio de acordo com o toque que foi dado na tela Controlar dispositivos cada dispositivo pode ser controlado pelo seu respectivo contrador atraveacutes de seu endereccedilo base VGA SERIAL USB-BLASTER IO(Leds Switches etc) do Kit DE2
O Firmware do processador NIOS II eacute que realizaraacute a integraccedilatildeo entre hardware com
hardware Com o firmware controlando o NIOS II eacute possiacutevel interagir com os dispositivos
externos a FPGA Tornando possiacutevel a integraccedilatildeo da FPGA com a peliacutecula touch-screen e um
monitor sem a ajuda de um PC a uacutenica ajuda do pc seria para enviar dados de uma imagem para
o Kit DE2
44 Validaccedilatildeo e Testes
Inicialmente os moacutedulos da VGA e comunicaccedilatildeo SERIAL natildeo estavam funicionando
apenas o devido agrave fraca documentaccedilatildeo sobre o kit DE2 foi possiacutevel apenas fazer testes com o
Processador NIOS II pois sobre este existem bastantes documentos e exemplos que podem ser
utilizados
Nesta primeira parte foi possiacutevel testar o NIOS II para controlar o display bototildees e switchs
do kit DE2
Com o NIOS II funcionando completamente foi necessaacuterio porta-lo para o kit DE2 o que foi
simples pois como sabemos esses kits satildeo portaacuteveis entre si apenas mudando a pinagem e a
capacidade da FPGA
Com o Kit DE2 foi possiacutevel fazer os testes necessaacuterios com a comunicaccedilatildeo serial
inicialmente testada via terminal conversando diretamente com o kit foi possiacutevel fazer o
seguinte teste os caracteres que eram entrados via teclado chegavam ao kit via serial e o o
41
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 comdumpexe que eacute facilmente encontrado pelas ferramentas
de pesquisa da web e tambeacutem existem vario outros programas como este e o comdump eacute
utilizado para debug da porta serial do pc conectado diretamente na placa controladora do touch-
screen e foi a peccedila chave para o entendimento do pacote enviado pela placa controladora
Figura 20 - Cumdumpexe programa de debug da porta serial
A explicaccedilatildeo de cada byte do pacote esta explicado no item 423
Apos o entendimento completo da transmissatildeo 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 natildeo 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 ateacute o momento em que
foi testado os meacutetodos proprietaacuterios da Altera para fazer a VGA funcionar os meacutetodos esses
implementados em C
A figura 21 onde contem o teste baacutesico feito que foi a chave principal para o sucesso deste
projeto
42
Como dito no item 332 do projeto foram utilizados as funccedilotildees da controladora VGA esses
meacutetodos 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 eacute utilizado o meacutetodo alt_up_vga_draw_pixel( color int
x int y) onde color eacute a cor do bloco de pixels e x e y satildeo as coordenadas da tela onde o bloco
que seraacute pintado
Para escrever um caractere sobre um bloco de pixels pintado eacute utilizado a funccedilatildeo
alt_up_vga_draw_char_1b( char int x int y) onde char eacute o caractere a ser impresso e x e y satildeo
as coordenadas da tela onde os o caractere eacute impresso
Figura 21 - Teste baisco do funcionamento do componente VGA do kit DE2
43
CAPIacuteTULO 5 ndash VALIDACcedilAtildeO E RESULTADOS
Os resultados foram os melhores possiacuteveis pois com a utilizaccedilatildeo dos IP CORE
ldquocontroladorasrdquo dos componentes externos como VGA e SERIAL e seus meacutetodos de para
controle eacute possiacutevel controlar facilmente esses moacutedulos atraveacutes do firmware desenvolvido para o
processador NIOS que consegue realizar operaccedilotildees transparentes acessando dos meacutetodos de
controle dos moacutedulos
Apos os testes baacutesicos 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 baacutesico de editor de texto
A figura 22 mostra um teste utilizando os meacutetodos de controle disponiacuteveis para o IP CORE
da VGA para primeiramente fazer o menu da aplicaccedilatildeo desenvolvido em na linguagem C
Figura 22 ndash Menu baacutesico do editor de texto
Para desenhar o menu da figura acima foi utilizado os meacutetodos proprietaacuterios de controle da
VGA citados no capitulo 4 e tambeacutem estruturas de repeticcedilatildeo para que a tela fosse varrida e os
pixels desenhados nos respectivos lugares da tela bem como os caracteres
Na figura 23 eacute definida a seguinte estrutura em C para representar de um botatildeo
Figura 23 - Estrutura em C para representar um botatildeo
44
A figura 24 eacute a declaraccedilatildeo dos bototildees que seratildeo utilizados pelo aplicativo editor de texto
para comprovar o funcionamento do controle da interface touch-screen
Apenas o que esta dentro da marcaccedilatildeo quadrada representa os bototildees do menu da figura 23
e o restante satildeo os bototildees do teclado do editor de texto
Figura 24 - Declaraccedilatildeo dos bototildees do menu
45
A figura 25 representa o meacutetodo drawnButtonUp responsaacutevel por desenhar os bototildees na tela
de acordo com as posiccedilotildees em que foram declarados os bototildees deste meacutetodo satildeo desenhados
para parecerem que estatildeo ldquolevantadosrdquo e natildeo pressionados
Note que foram utilizados os meacutetodos proprietaacuterios de controle da VGA
alt_up_vga_draw_pixel pra pitar os pixels e alt_up_vga_draw_char_b1 para desenhar caracteres
como jaacute foi especificado no item 44 do projeto
Figura 25 ndash Meacutetodo drawButtonUp
46
O meacutetodo que desenha o caption do botatildeo se chama drawButtonText desenha os caracteres
em cima dos bototildees natildeo importa se o botatildeo esta pressionado ou natildeo
A figura 26 mostra como este meacutetodo foi implementado e ele eacute chamado no final de cada
meacutetodo onde algum tipo de botatildeo eacute desenhado quando o meacutetodo que desenha o botatildeo normal
quanto o pressionado e ateacute mesmo o do teclado
Figura 26 ndash Meacutetodo que escreve o caption de cada botatildeo
47
A figura 27 mostra o meacutetodo drawButtonDown que desenha o botatildeo pressionado ou seja
quando o usuaacuterio pressiona a regiatildeo correspondente a um botatildeo do menu no touch-screen o
mesmo redesenharaacute o botatildeo parecendo um efeito de botatildeo afundado note que no final do
meacutetodo novamente eacute chamado o meacutetodo drawButtonText que reescreveraacute o caption do botatildeo
como mostra o meacutetodo da figura 26 e esta ilustrado na figura 28
Figura 27 ndash Meacutetodo que desenha o botatildeo pressionado
48
Dependendo da aacuterea do menu que o usuaacuterio pressionar no touch-screen causar o efeito de
pressionado como mostra a figura 28
Figura 28 ndash Efeito do botatildeo de menu apertado
Na figura 29 eacute a representaccedilatildeo de quando a aacuterea correspondente ao botatildeo ldquoamarelordquo eacute
pressionada
Apos estes testes baacutesicos comprovando o funcionamento da interface graacutefica para o usuaacuterio
foi definido o restante dos componentes da tela que eacute constituiacutedo de um prompt e um teclado
qwerty que foi essencial para comprovar o perfeito funcionamento do controle da interface
touch-screen
49
51 Interface Grafica Final
A figura 29 mostra a interface final que o usuaacuterio teraacute para poder verificar o funcionamento
do controle da interface touch-screen
Figura 29 ndash Interface final touch-screen do usuaacuterio
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
511 Descriccedilatildeo do editor de texto
O menu possui 4 botoes cada um com sua respectiva funcionalidade quando o usuario
pressiona a area do botatildeo ldquoapagarrdquo uma vez entatildeo um carectere do prompt eacute apagado Quando eacute
precionado a area correspondente ao botatildeo ldquoResetrdquo todo o conteudo do prompt seraacute apagado e o
plano de fundo retornaraacute a cor branca Quando o botatildeo ldquoamarelordquo eacute pressionado o fundo da tela
passa a ser amarelo e o mesmo acontece se o usuario precionar o botatildeo verde tornando o cor de
fundo verde
50
O teclado possui 29 teclas sendo duas delas que equivalem ao ENTRA ldquoENTrdquo e ao
SPACE ldquoSPCrdquo Quando o usuario pressiona a area correspondente a algum botatildeo do teclado o
mesmo muda sua cor para azul e o seu caractere eacute disponibilizado no prompt
Essas funcionalidades nada mais satildeo do que um bom exemplo de como funciona
corretamente o controle da interface touch-screen
52 Prompt e o Teclado
A estrutura feita na linguagem C que define o prompt da figura 28 esta representado na
figura 30
Figura 30 ndash Estrutura em C para representar o prompt
A figura 31 mostra o metodo drawPrompt utilizado para desenhar na tela o prompt
Figura 31 ndash Meacutetodo que desenha o prompt
51
A estrutura do teclado eacute a mesma utilizada pela figura 23 e tambem eacute criado satildeo
inicializados na figura 24
O restante as implementaccedilotildees estatildeo disponiveis no cd deste documento
Quando algum botatildeo do teclado eacute pressionado sua cor muda para azul e sua letra
correspondente eacute escrita o prompt
A figura 32 ilustra quando o usuaacuterio aperta a letra lsquotrsquo na peliacutecula touch-screen
Figura 32 - Teste do prompt e o teclado
52
53 Controle da Interface Touch-Screen
Depois do todos os testes com o processador NIOS e a integraccedilatildeo do mesmo com os
moacutedulos externos como a porta SERIAL e a saiacuteda VGA eacute possiacutevel utilizando o touch-screen
criar uma interface amigaacutevel e faacutecil de usar para o usuaacuterio utilizando um firmware capaz de
interpretar os sinais via serial vindo da controladora do touch ao detectar que um toque foi dado
pelo usuaacuterio e realizar algumas accedilotildees que neste caso se comportam como um editor de texto
baacutesico
A figura 33 mostra como foi validado este projeto e seus moacutedulos controlando uma
interface touch-screen para chegar no resultado abaixo digitado pelo usuaacuterio comprovando o
funcionamento e viabilidade deste projeto
Figura 33 ndash 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 mudanccedilas podendo ser alterado rapidamente o tipo de
aplicaccedilatildeo ou integrado rapidamente com outro projeto
53
CAPIacuteTULO 6 - CONCLUSAtildeO
Uma das principais dificuldades no desenvolvimento deste projeto foi fazer o levantamento
da documentaccedilatildeo sobre o processador NIOS e os moacutedulos externos a FPGA do Kit DE2 Como
natildeo foi feito algum projeto antes que utilizasse a interface VGA e a SERIAL do Kit DE2 levou-
se muito tempo ateacute conseguir adquirir e ordenar o conhecimento que foi sendo adquirido ateacute
conseguir dar os primeiros passos e realizar os primeiros testes com a VGA e a SERIAL Outro
grande obstaacuteculo foi ter de descobrir que para que o NIOS controlasse os moacutedulos externos a
FGPA fosse necessaacuterio copiar os arquivos c e h dos respectivos componente para dentro do
projeto
Mas depois de todos os problemas com os moacutedulos externos solucionados cada modulo do
projeto foi sendo desenvolvido separadamente ateacute seu total funcionamento Natildeo tive dificuldades
com a linguagem da programaccedilatildeo pois o Firmware do processador NIOS eacute o C a qual mais tive
contato na faculdade
Outro desafio foi fazer a peliacutecula 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
peliacutecula natildeo 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 possiacutevel
comeccedilar a fazer os testes necessaacuterios para prosseguir com o projeto aprender como o a peliacutecula
identifica um toque e manda este sinal para a controladora e a controladora transforma este sinal
em um sinal serial que eacute 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 accedilotildees
que as coordenadas jaacute estatildeo previamente calibradas no firmware para fazer bem como mudar de
cor a tela fazer o efeito de um botatildeo subindo e descendo etc
Varias vezes o projeto parou de funcionar entatildeo 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 memoacuteria abundante etc uma das
facilidades eacute a faacutecil alteraccedilatildeo do projeto podendo ser integrado a outro ou ateacute mesmo alterado
para realizar outros tipos de accedilotildees com o touch-screen
Existem vaacuterios melhoramentos que podem ser executados no projeto um deles eacute tentar
interpretar de uma maneira diferente os valores do eixo y pois do jeito que esta a resoluccedilatildeo do
eixo y esta muito baixa dificultando o reconhecimento de toques em aacutereas pequenas Talvez a
inclusatildeo de mais alguns bytes no pacote de leitura da serial resolva o problema
54
Uma ideacuteia para um proacuteximo projeto que use a interface touch-screen poderia ser a
integraccedilatildeo com o projeto do nosso colega Roberto Junqueira ou a desenvolvimento de uma
placa controladora para o touch-screen
Este trabalho eacute uma modesta contribuiccedilatildeo para o uso de FPGAs e do processador embarcado
NIOS implementado em VHDL pela Altera que acredito que vai abrir vaacuterios caminhos pois
com este projeto alguns caminhos ficaram mais faacuteceis de percorrer daqui para a frente
55
CAPIacuteTULO 7 - REFEREcircNCIAS BIBLIOGRAacuteFICAS
AMORE Roberto drsquo VHDL Descriccedilatildeo e Sintese de Circuitos Rio de Janeiro ed LTC
2005
Elotouch Touch-Screen e Controladora Descriccedilatildeo do funcionamento e descriccedilatildeo
tecnologia Touch-Screen lthttpwwwelotouchcombrgt Acesso em fevereiro de 2007
ALTERA University Program IP Cores Instalaccedilatildeo de IP Cores e referencias sobre os
componentes dos kits DE1 e DE2 Disponivel em lthttpwwwalteracomeducationunivip-
coresunv-ip-coreshtmlgt Acesso em abril de 2007
ALTERA NIOS II Documentaccedilatildeo sobre o pprocessador embracado NIO II Disponivel
em lthttpwwwalteracomproductsipprocessorsipm-indexjspgt Acesso em Abril de 2007
ALTERA Development amp Education Board 2 (DE2) Manual do usuario Disponivel no
de que acompanha o Kit DE2 ltDE2_user_manualDE2_UserManualpdfgt Acesso em
fevereiro de 2007
34
int y)) utlizado para escrever os caracteres lsquoarsquo e lsquobrsquo dentro de um grupo de pixel previamente
pintado a (alt_up_vga_draw_pixel( color int x int y)) natildeo pinta um pixel de cada vez e sim
um bloco de 8x8 pixels
Figura 17 - Tela para a validaccedilatildeo dos testes com as bibliotecas graacuteficas do componente VGA
34 Recursos Necessaacuterios
A Tabela 24 apresenta os ambientes de desenvolvimento e ferramentas de software utilizadas
e na Tabela 25 as linguagens necessaacuterias Estas ferramentas foram utilizadas em ambiente
Windows Xp
Tabela 24 - Ferramentas de Desenvolvimentos e Ambientes
Software Para que foi Utilizado
Quartus II Para a definiccedilatildeo de qual o modelo de FPGA utilizado compilaccedilatildeo e simulaccedilatildeo e envio Load do NIOS para FPGA
SOPC Para definiccedilatildeo da do processador NIOS II e com quais componentes externos ele ira interagir atraveacutes dos controladores dos respectivos componentes
NIOS II IDE Para implementaccedilatildeo do firmware do processador NIOS II utilizando a linguagem em C
35
Borland C++ Builder Para desenvolvimento de ima interface de comunicaccedilatildeo via caboUSB-
BLASTER para o envio de imagem para o kit
Tabela 25 ndash Linguagens de programaccedilatildeo utilizadas
Linguagem Ferramenta C++ Borland C++ Builder VerilogVHDL Quartus II C NIOS II IDE
35 Viabilidade Teacutecnico-Econocircmica
O valor do projeto esta descrito na Tabela 26
Tabela 26 ndash Relaccedilatildeo dos Custos
DESCRICcedilAtildeO CUSTO APROXIMADO (R$) COMPONENTES ELETROcircNICOS 50000 1 Kit DE2 Cyclone II 35000 1 Monitor de Computador 35000 HORAS TRABALHADAS (400 horas) 750000 CUSTO TOTAL APROXIMADO (R$) 870000
36 Cronograma do Projeto
A tabela 27 contem as informaccedilotildees do cronograma do projeto
Tabela 27 ndash Cronograma de datas e entregas do projeto
Data Atividade a ser apresentada 050307 Entrega das propostas de projeto para avaliaccedilatildeo do colegiado 020407 Entrega das especificaccedilotildees teacutecnicas do projeto aprovado 110607 Entrega do projeto (monografia) e dos testes preliminares do mesmo 060807 Apresentaccedilatildeo preacutevia da implementaccedilatildeo do projeto especificado 011007 Apresentaccedilatildeo do projeto implementado
Qualificaccedilatildeo para a fase final 291007 Segunda apresentaccedilatildeo do projeto implementado para os que natildeo o fizeram no
dia 011006 com decreacutescimo da nota Qualificaccedilatildeo para a fase final
051107 Entrega da documentaccedilatildeo completa em espiral para a banca examinadora em 3 vias contendo a monografia manual teacutecnico manual do usuaacuterio e artigo cientiacutefico
261107 Defesa formal dos projetos com apresentaccedilatildeo oral para a banca examinadora 101207 Entrega da documentaccedilatildeo completa revisada e corrigida encadernada no
padratildeo da biblioteca (capa dura) em duas vias contendo a monografia manual teacutecnico manual do usuaacuterio e artigo cientiacutefico Entrega do CD contendo no formato WEB todo o conteuacutedo dos manuais
36
CAPIacuteTULO 4 ndash ESPECIFICACcedilAtildeO TECNICA
41 Requisitos Miacutenimos
Os requisitos miacutenimos de Hardware satildeo
Funcionamento das interfaces Serial e USB-Blaster
Funcionamento do Kit DE2
PC
Os requisitos miacutenimos de Software
Windows Xp
Quartus II
SOPC
NIOS II IDE
42 Projeto de Hardware
O hardware utilizado nesse projeto inclui componentes presentes na Placa de
Desenvolvimento Nios II - ediccedilatildeo DE2 Cyclone II EP2C35 e principalmente o hardware que seraacute
configurado na FPGA escrito em linguagem de descriccedilatildeo de hardware (HDL)
O um dos principais blocos de hardware eacute o processador NIOS II o Avalon Bus e os
controladores de componentes externos a FPGA e de comunicaccedilatildeo presentes no Kit
37
O software embarcado (firmware) estaraacute rodando nessa arquitetura Eacute uma arquitetura
completa construiacuteda com a ferramenta SOPC Builder da Altera A Figura 18 representa em
blocos os principais componentes dessa arquitetura
Figura 18 ndash Representaccedilatildeo em blocos do hardware do NIOS II
421 Funcatildeo do Touch-Screen
Outro bloco importante eacute o do Touch-Screen esta tela sensiacutevel ao toque pois como esta tela
trabalha com resistecircncia ao ser tocado em uma determinada regiatildeo uma resistecircncia eacute gerada e a
tensatildeo de saiacuteda eacute modificada a alimentaccedilatildeo desta placa eacute proveniente de sua placa controladora
a mesma placa que recebe a tensatildeo de saiacuteda modificada de acordo com a regiatildeo tocada na tela
Para verificar as caracteriacutesticas detalhadas do Touch-Screen e sua placa controlador favor ver
o Capitulo 2
422 Monitor e VGA
O Monitor inicialmente tem apenas o desenho de um botatildeo que ao ser tocado via touch
mudara a cor de toda a tela A imagem exibida no monitor tem uma resoluccedilatildeo de
38
Protoacutetipo das telas para os testes esta na Figura 19 a tela verde quando a touch natildeo eacute tocando
na regiatildeo do botatildeo de OK quando o botatildeo de OK for tocado a tela do monitor mudara de cor
ficando azul
Figura 19 ndash Tela do monitor
No Capitulo 2 estatildeo todas as caracteriacutesticas da pinagem e do conector VGA
423 Comunicaccedilatildeo serial
Entre a placa controladora do Touch-Screen e o FPGA existe uma comunicaccedilatildeo 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 manipulaccedilatildeo da imagem que eacute
mostrada no monitor
No capitulo 2 estatildeo das descriccedilotildees dos pinos e do conector da comunicaccedilatildeo Serial
O pacote serial que eacute transmitido pela placa controladora do touch-screen possui 10 bytes de
comprimento e segue a seguinte sequumlecircncia de envio
[55] [54] [] [] [] [] [] [] [] []
Sequumlecircncia dos bytes
Os dois primeiros bytes identificam o Header do pacote
O terceiro byte eacute 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 agrave posiccedilatildeo do eixo x onde a tela foi tocada
O sexto e o seacutetimo byte correspondem a posiccedilatildeo do eixo y onde a tele foi tocada
O restante os bytes identificam o tail do pacote recepcionado pelo kit DE2
39
424 Comunicaccedilatildeo USB-Blaster
Essencial para envio do projeto desenvolvido para o kit DE2 tambeacutem muito utilizado para o
debug deste projeto
435 Memoacuteria SDRAM
A memoacuteria utilizada para armazenar grandes quantidades de dados eacute a SDRAM (ver detalhes
no Capitulo 2)
Essa memoacuteria eacute muito raacutepida serviu muito bem para armazenar o firmware deste projeto
pois tem o tempo acesso ideal para ler as instruccedilotildees que utilizaram a VGA e tambeacutem eacute raacutepida o
suficiente para fazer a leitura dos dados e disponibilizar na saiacuteda VGA do kit
426 Memoacuteria FLASH
Eacute onde seraacute armazenado o firmware possui espaccedilo suficiente para isso 4MB e uma memoacuteria
mais lenta e por isso natildeo foi usada para armazenar dados para serem jogados na vga do Kit
43 Software
431 Software (Firmware)
O software tem de funccedilatildeo de utilizar as bibliotecas das controladoras dos componentes
externos a fim de controlar estes componentes de acordo com o necessaacuterio para atender o
objetivo do projeto
Ou seja uma tela inicial eacute apresentada e o usuaacuterio ao tocar na nela o kit recebe um pacote via
serial e interpreta a posiccedilatildeo da tela em que foi tocado e logo em seguida envia o resultado deste
toque para o monitor
432 Objetivos
O usuaacuterio 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 accedilatildeo de acordo com a posiccedilatildeo da tela
tocada alterando assim a imagem anterior com o resultado do toque
Interpretar o toque de usuaacuterio na tela touch-screen recepccedilatildeo do pacote via serial da placa
controladora do touch-screen tratamento do pacote e interpretaccedilatildeo das coordenadas x e y do
40
toque Realizaccedilatildeo de alguma accedilatildeo que resultara na alteraccedilatildeo da imagem da tela atual de acordo
com a funccedilatildeo em que as coordenadas foram previamente definidas para o que deve ser feito
432 Funccedilotildees
A Tabela 28 tem as principais funccedilotildees que foram implementadas para o sistema
Tabela 28 ndash Funccedilotildees do sistema firmware
FUNCcedilOtildeES Tela de um pequeno editor de texto Tratamento do sinal recebido da serial devido a um toque na tela Interpretaccedilatildeo do pacote serial e transfomaccedilatildeo para coordenadas x e y Transformaccedilatildeo das posiccedilotildees do toque na tela em alguma accedilatildeo enviando o resultado para a VGA Imagem final disponibilizada ao usuaacuterio de acordo com o toque que foi dado na tela Controlar dispositivos cada dispositivo pode ser controlado pelo seu respectivo contrador atraveacutes de seu endereccedilo base VGA SERIAL USB-BLASTER IO(Leds Switches etc) do Kit DE2
O Firmware do processador NIOS II eacute que realizaraacute a integraccedilatildeo entre hardware com
hardware Com o firmware controlando o NIOS II eacute possiacutevel interagir com os dispositivos
externos a FPGA Tornando possiacutevel a integraccedilatildeo da FPGA com a peliacutecula touch-screen e um
monitor sem a ajuda de um PC a uacutenica ajuda do pc seria para enviar dados de uma imagem para
o Kit DE2
44 Validaccedilatildeo e Testes
Inicialmente os moacutedulos da VGA e comunicaccedilatildeo SERIAL natildeo estavam funicionando
apenas o devido agrave fraca documentaccedilatildeo sobre o kit DE2 foi possiacutevel apenas fazer testes com o
Processador NIOS II pois sobre este existem bastantes documentos e exemplos que podem ser
utilizados
Nesta primeira parte foi possiacutevel testar o NIOS II para controlar o display bototildees e switchs
do kit DE2
Com o NIOS II funcionando completamente foi necessaacuterio porta-lo para o kit DE2 o que foi
simples pois como sabemos esses kits satildeo portaacuteveis entre si apenas mudando a pinagem e a
capacidade da FPGA
Com o Kit DE2 foi possiacutevel fazer os testes necessaacuterios com a comunicaccedilatildeo serial
inicialmente testada via terminal conversando diretamente com o kit foi possiacutevel fazer o
seguinte teste os caracteres que eram entrados via teclado chegavam ao kit via serial e o o
41
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 comdumpexe que eacute facilmente encontrado pelas ferramentas
de pesquisa da web e tambeacutem existem vario outros programas como este e o comdump eacute
utilizado para debug da porta serial do pc conectado diretamente na placa controladora do touch-
screen e foi a peccedila chave para o entendimento do pacote enviado pela placa controladora
Figura 20 - Cumdumpexe programa de debug da porta serial
A explicaccedilatildeo de cada byte do pacote esta explicado no item 423
Apos o entendimento completo da transmissatildeo 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 natildeo 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 ateacute o momento em que
foi testado os meacutetodos proprietaacuterios da Altera para fazer a VGA funcionar os meacutetodos esses
implementados em C
A figura 21 onde contem o teste baacutesico feito que foi a chave principal para o sucesso deste
projeto
42
Como dito no item 332 do projeto foram utilizados as funccedilotildees da controladora VGA esses
meacutetodos 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 eacute utilizado o meacutetodo alt_up_vga_draw_pixel( color int
x int y) onde color eacute a cor do bloco de pixels e x e y satildeo as coordenadas da tela onde o bloco
que seraacute pintado
Para escrever um caractere sobre um bloco de pixels pintado eacute utilizado a funccedilatildeo
alt_up_vga_draw_char_1b( char int x int y) onde char eacute o caractere a ser impresso e x e y satildeo
as coordenadas da tela onde os o caractere eacute impresso
Figura 21 - Teste baisco do funcionamento do componente VGA do kit DE2
43
CAPIacuteTULO 5 ndash VALIDACcedilAtildeO E RESULTADOS
Os resultados foram os melhores possiacuteveis pois com a utilizaccedilatildeo dos IP CORE
ldquocontroladorasrdquo dos componentes externos como VGA e SERIAL e seus meacutetodos de para
controle eacute possiacutevel controlar facilmente esses moacutedulos atraveacutes do firmware desenvolvido para o
processador NIOS que consegue realizar operaccedilotildees transparentes acessando dos meacutetodos de
controle dos moacutedulos
Apos os testes baacutesicos 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 baacutesico de editor de texto
A figura 22 mostra um teste utilizando os meacutetodos de controle disponiacuteveis para o IP CORE
da VGA para primeiramente fazer o menu da aplicaccedilatildeo desenvolvido em na linguagem C
Figura 22 ndash Menu baacutesico do editor de texto
Para desenhar o menu da figura acima foi utilizado os meacutetodos proprietaacuterios de controle da
VGA citados no capitulo 4 e tambeacutem estruturas de repeticcedilatildeo para que a tela fosse varrida e os
pixels desenhados nos respectivos lugares da tela bem como os caracteres
Na figura 23 eacute definida a seguinte estrutura em C para representar de um botatildeo
Figura 23 - Estrutura em C para representar um botatildeo
44
A figura 24 eacute a declaraccedilatildeo dos bototildees que seratildeo utilizados pelo aplicativo editor de texto
para comprovar o funcionamento do controle da interface touch-screen
Apenas o que esta dentro da marcaccedilatildeo quadrada representa os bototildees do menu da figura 23
e o restante satildeo os bototildees do teclado do editor de texto
Figura 24 - Declaraccedilatildeo dos bototildees do menu
45
A figura 25 representa o meacutetodo drawnButtonUp responsaacutevel por desenhar os bototildees na tela
de acordo com as posiccedilotildees em que foram declarados os bototildees deste meacutetodo satildeo desenhados
para parecerem que estatildeo ldquolevantadosrdquo e natildeo pressionados
Note que foram utilizados os meacutetodos proprietaacuterios de controle da VGA
alt_up_vga_draw_pixel pra pitar os pixels e alt_up_vga_draw_char_b1 para desenhar caracteres
como jaacute foi especificado no item 44 do projeto
Figura 25 ndash Meacutetodo drawButtonUp
46
O meacutetodo que desenha o caption do botatildeo se chama drawButtonText desenha os caracteres
em cima dos bototildees natildeo importa se o botatildeo esta pressionado ou natildeo
A figura 26 mostra como este meacutetodo foi implementado e ele eacute chamado no final de cada
meacutetodo onde algum tipo de botatildeo eacute desenhado quando o meacutetodo que desenha o botatildeo normal
quanto o pressionado e ateacute mesmo o do teclado
Figura 26 ndash Meacutetodo que escreve o caption de cada botatildeo
47
A figura 27 mostra o meacutetodo drawButtonDown que desenha o botatildeo pressionado ou seja
quando o usuaacuterio pressiona a regiatildeo correspondente a um botatildeo do menu no touch-screen o
mesmo redesenharaacute o botatildeo parecendo um efeito de botatildeo afundado note que no final do
meacutetodo novamente eacute chamado o meacutetodo drawButtonText que reescreveraacute o caption do botatildeo
como mostra o meacutetodo da figura 26 e esta ilustrado na figura 28
Figura 27 ndash Meacutetodo que desenha o botatildeo pressionado
48
Dependendo da aacuterea do menu que o usuaacuterio pressionar no touch-screen causar o efeito de
pressionado como mostra a figura 28
Figura 28 ndash Efeito do botatildeo de menu apertado
Na figura 29 eacute a representaccedilatildeo de quando a aacuterea correspondente ao botatildeo ldquoamarelordquo eacute
pressionada
Apos estes testes baacutesicos comprovando o funcionamento da interface graacutefica para o usuaacuterio
foi definido o restante dos componentes da tela que eacute constituiacutedo de um prompt e um teclado
qwerty que foi essencial para comprovar o perfeito funcionamento do controle da interface
touch-screen
49
51 Interface Grafica Final
A figura 29 mostra a interface final que o usuaacuterio teraacute para poder verificar o funcionamento
do controle da interface touch-screen
Figura 29 ndash Interface final touch-screen do usuaacuterio
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
511 Descriccedilatildeo do editor de texto
O menu possui 4 botoes cada um com sua respectiva funcionalidade quando o usuario
pressiona a area do botatildeo ldquoapagarrdquo uma vez entatildeo um carectere do prompt eacute apagado Quando eacute
precionado a area correspondente ao botatildeo ldquoResetrdquo todo o conteudo do prompt seraacute apagado e o
plano de fundo retornaraacute a cor branca Quando o botatildeo ldquoamarelordquo eacute pressionado o fundo da tela
passa a ser amarelo e o mesmo acontece se o usuario precionar o botatildeo verde tornando o cor de
fundo verde
50
O teclado possui 29 teclas sendo duas delas que equivalem ao ENTRA ldquoENTrdquo e ao
SPACE ldquoSPCrdquo Quando o usuario pressiona a area correspondente a algum botatildeo do teclado o
mesmo muda sua cor para azul e o seu caractere eacute disponibilizado no prompt
Essas funcionalidades nada mais satildeo do que um bom exemplo de como funciona
corretamente o controle da interface touch-screen
52 Prompt e o Teclado
A estrutura feita na linguagem C que define o prompt da figura 28 esta representado na
figura 30
Figura 30 ndash Estrutura em C para representar o prompt
A figura 31 mostra o metodo drawPrompt utilizado para desenhar na tela o prompt
Figura 31 ndash Meacutetodo que desenha o prompt
51
A estrutura do teclado eacute a mesma utilizada pela figura 23 e tambem eacute criado satildeo
inicializados na figura 24
O restante as implementaccedilotildees estatildeo disponiveis no cd deste documento
Quando algum botatildeo do teclado eacute pressionado sua cor muda para azul e sua letra
correspondente eacute escrita o prompt
A figura 32 ilustra quando o usuaacuterio aperta a letra lsquotrsquo na peliacutecula touch-screen
Figura 32 - Teste do prompt e o teclado
52
53 Controle da Interface Touch-Screen
Depois do todos os testes com o processador NIOS e a integraccedilatildeo do mesmo com os
moacutedulos externos como a porta SERIAL e a saiacuteda VGA eacute possiacutevel utilizando o touch-screen
criar uma interface amigaacutevel e faacutecil de usar para o usuaacuterio utilizando um firmware capaz de
interpretar os sinais via serial vindo da controladora do touch ao detectar que um toque foi dado
pelo usuaacuterio e realizar algumas accedilotildees que neste caso se comportam como um editor de texto
baacutesico
A figura 33 mostra como foi validado este projeto e seus moacutedulos controlando uma
interface touch-screen para chegar no resultado abaixo digitado pelo usuaacuterio comprovando o
funcionamento e viabilidade deste projeto
Figura 33 ndash 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 mudanccedilas podendo ser alterado rapidamente o tipo de
aplicaccedilatildeo ou integrado rapidamente com outro projeto
53
CAPIacuteTULO 6 - CONCLUSAtildeO
Uma das principais dificuldades no desenvolvimento deste projeto foi fazer o levantamento
da documentaccedilatildeo sobre o processador NIOS e os moacutedulos externos a FPGA do Kit DE2 Como
natildeo foi feito algum projeto antes que utilizasse a interface VGA e a SERIAL do Kit DE2 levou-
se muito tempo ateacute conseguir adquirir e ordenar o conhecimento que foi sendo adquirido ateacute
conseguir dar os primeiros passos e realizar os primeiros testes com a VGA e a SERIAL Outro
grande obstaacuteculo foi ter de descobrir que para que o NIOS controlasse os moacutedulos externos a
FGPA fosse necessaacuterio copiar os arquivos c e h dos respectivos componente para dentro do
projeto
Mas depois de todos os problemas com os moacutedulos externos solucionados cada modulo do
projeto foi sendo desenvolvido separadamente ateacute seu total funcionamento Natildeo tive dificuldades
com a linguagem da programaccedilatildeo pois o Firmware do processador NIOS eacute o C a qual mais tive
contato na faculdade
Outro desafio foi fazer a peliacutecula 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
peliacutecula natildeo 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 possiacutevel
comeccedilar a fazer os testes necessaacuterios para prosseguir com o projeto aprender como o a peliacutecula
identifica um toque e manda este sinal para a controladora e a controladora transforma este sinal
em um sinal serial que eacute 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 accedilotildees
que as coordenadas jaacute estatildeo previamente calibradas no firmware para fazer bem como mudar de
cor a tela fazer o efeito de um botatildeo subindo e descendo etc
Varias vezes o projeto parou de funcionar entatildeo 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 memoacuteria abundante etc uma das
facilidades eacute a faacutecil alteraccedilatildeo do projeto podendo ser integrado a outro ou ateacute mesmo alterado
para realizar outros tipos de accedilotildees com o touch-screen
Existem vaacuterios melhoramentos que podem ser executados no projeto um deles eacute tentar
interpretar de uma maneira diferente os valores do eixo y pois do jeito que esta a resoluccedilatildeo do
eixo y esta muito baixa dificultando o reconhecimento de toques em aacutereas pequenas Talvez a
inclusatildeo de mais alguns bytes no pacote de leitura da serial resolva o problema
54
Uma ideacuteia para um proacuteximo projeto que use a interface touch-screen poderia ser a
integraccedilatildeo com o projeto do nosso colega Roberto Junqueira ou a desenvolvimento de uma
placa controladora para o touch-screen
Este trabalho eacute uma modesta contribuiccedilatildeo para o uso de FPGAs e do processador embarcado
NIOS implementado em VHDL pela Altera que acredito que vai abrir vaacuterios caminhos pois
com este projeto alguns caminhos ficaram mais faacuteceis de percorrer daqui para a frente
55
CAPIacuteTULO 7 - REFEREcircNCIAS BIBLIOGRAacuteFICAS
AMORE Roberto drsquo VHDL Descriccedilatildeo e Sintese de Circuitos Rio de Janeiro ed LTC
2005
Elotouch Touch-Screen e Controladora Descriccedilatildeo do funcionamento e descriccedilatildeo
tecnologia Touch-Screen lthttpwwwelotouchcombrgt Acesso em fevereiro de 2007
ALTERA University Program IP Cores Instalaccedilatildeo de IP Cores e referencias sobre os
componentes dos kits DE1 e DE2 Disponivel em lthttpwwwalteracomeducationunivip-
coresunv-ip-coreshtmlgt Acesso em abril de 2007
ALTERA NIOS II Documentaccedilatildeo sobre o pprocessador embracado NIO II Disponivel
em lthttpwwwalteracomproductsipprocessorsipm-indexjspgt Acesso em Abril de 2007
ALTERA Development amp Education Board 2 (DE2) Manual do usuario Disponivel no
de que acompanha o Kit DE2 ltDE2_user_manualDE2_UserManualpdfgt Acesso em
fevereiro de 2007
35
Borland C++ Builder Para desenvolvimento de ima interface de comunicaccedilatildeo via caboUSB-
BLASTER para o envio de imagem para o kit
Tabela 25 ndash Linguagens de programaccedilatildeo utilizadas
Linguagem Ferramenta C++ Borland C++ Builder VerilogVHDL Quartus II C NIOS II IDE
35 Viabilidade Teacutecnico-Econocircmica
O valor do projeto esta descrito na Tabela 26
Tabela 26 ndash Relaccedilatildeo dos Custos
DESCRICcedilAtildeO CUSTO APROXIMADO (R$) COMPONENTES ELETROcircNICOS 50000 1 Kit DE2 Cyclone II 35000 1 Monitor de Computador 35000 HORAS TRABALHADAS (400 horas) 750000 CUSTO TOTAL APROXIMADO (R$) 870000
36 Cronograma do Projeto
A tabela 27 contem as informaccedilotildees do cronograma do projeto
Tabela 27 ndash Cronograma de datas e entregas do projeto
Data Atividade a ser apresentada 050307 Entrega das propostas de projeto para avaliaccedilatildeo do colegiado 020407 Entrega das especificaccedilotildees teacutecnicas do projeto aprovado 110607 Entrega do projeto (monografia) e dos testes preliminares do mesmo 060807 Apresentaccedilatildeo preacutevia da implementaccedilatildeo do projeto especificado 011007 Apresentaccedilatildeo do projeto implementado
Qualificaccedilatildeo para a fase final 291007 Segunda apresentaccedilatildeo do projeto implementado para os que natildeo o fizeram no
dia 011006 com decreacutescimo da nota Qualificaccedilatildeo para a fase final
051107 Entrega da documentaccedilatildeo completa em espiral para a banca examinadora em 3 vias contendo a monografia manual teacutecnico manual do usuaacuterio e artigo cientiacutefico
261107 Defesa formal dos projetos com apresentaccedilatildeo oral para a banca examinadora 101207 Entrega da documentaccedilatildeo completa revisada e corrigida encadernada no
padratildeo da biblioteca (capa dura) em duas vias contendo a monografia manual teacutecnico manual do usuaacuterio e artigo cientiacutefico Entrega do CD contendo no formato WEB todo o conteuacutedo dos manuais
36
CAPIacuteTULO 4 ndash ESPECIFICACcedilAtildeO TECNICA
41 Requisitos Miacutenimos
Os requisitos miacutenimos de Hardware satildeo
Funcionamento das interfaces Serial e USB-Blaster
Funcionamento do Kit DE2
PC
Os requisitos miacutenimos de Software
Windows Xp
Quartus II
SOPC
NIOS II IDE
42 Projeto de Hardware
O hardware utilizado nesse projeto inclui componentes presentes na Placa de
Desenvolvimento Nios II - ediccedilatildeo DE2 Cyclone II EP2C35 e principalmente o hardware que seraacute
configurado na FPGA escrito em linguagem de descriccedilatildeo de hardware (HDL)
O um dos principais blocos de hardware eacute o processador NIOS II o Avalon Bus e os
controladores de componentes externos a FPGA e de comunicaccedilatildeo presentes no Kit
37
O software embarcado (firmware) estaraacute rodando nessa arquitetura Eacute uma arquitetura
completa construiacuteda com a ferramenta SOPC Builder da Altera A Figura 18 representa em
blocos os principais componentes dessa arquitetura
Figura 18 ndash Representaccedilatildeo em blocos do hardware do NIOS II
421 Funcatildeo do Touch-Screen
Outro bloco importante eacute o do Touch-Screen esta tela sensiacutevel ao toque pois como esta tela
trabalha com resistecircncia ao ser tocado em uma determinada regiatildeo uma resistecircncia eacute gerada e a
tensatildeo de saiacuteda eacute modificada a alimentaccedilatildeo desta placa eacute proveniente de sua placa controladora
a mesma placa que recebe a tensatildeo de saiacuteda modificada de acordo com a regiatildeo tocada na tela
Para verificar as caracteriacutesticas detalhadas do Touch-Screen e sua placa controlador favor ver
o Capitulo 2
422 Monitor e VGA
O Monitor inicialmente tem apenas o desenho de um botatildeo que ao ser tocado via touch
mudara a cor de toda a tela A imagem exibida no monitor tem uma resoluccedilatildeo de
38
Protoacutetipo das telas para os testes esta na Figura 19 a tela verde quando a touch natildeo eacute tocando
na regiatildeo do botatildeo de OK quando o botatildeo de OK for tocado a tela do monitor mudara de cor
ficando azul
Figura 19 ndash Tela do monitor
No Capitulo 2 estatildeo todas as caracteriacutesticas da pinagem e do conector VGA
423 Comunicaccedilatildeo serial
Entre a placa controladora do Touch-Screen e o FPGA existe uma comunicaccedilatildeo 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 manipulaccedilatildeo da imagem que eacute
mostrada no monitor
No capitulo 2 estatildeo das descriccedilotildees dos pinos e do conector da comunicaccedilatildeo Serial
O pacote serial que eacute transmitido pela placa controladora do touch-screen possui 10 bytes de
comprimento e segue a seguinte sequumlecircncia de envio
[55] [54] [] [] [] [] [] [] [] []
Sequumlecircncia dos bytes
Os dois primeiros bytes identificam o Header do pacote
O terceiro byte eacute 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 agrave posiccedilatildeo do eixo x onde a tela foi tocada
O sexto e o seacutetimo byte correspondem a posiccedilatildeo do eixo y onde a tele foi tocada
O restante os bytes identificam o tail do pacote recepcionado pelo kit DE2
39
424 Comunicaccedilatildeo USB-Blaster
Essencial para envio do projeto desenvolvido para o kit DE2 tambeacutem muito utilizado para o
debug deste projeto
435 Memoacuteria SDRAM
A memoacuteria utilizada para armazenar grandes quantidades de dados eacute a SDRAM (ver detalhes
no Capitulo 2)
Essa memoacuteria eacute muito raacutepida serviu muito bem para armazenar o firmware deste projeto
pois tem o tempo acesso ideal para ler as instruccedilotildees que utilizaram a VGA e tambeacutem eacute raacutepida o
suficiente para fazer a leitura dos dados e disponibilizar na saiacuteda VGA do kit
426 Memoacuteria FLASH
Eacute onde seraacute armazenado o firmware possui espaccedilo suficiente para isso 4MB e uma memoacuteria
mais lenta e por isso natildeo foi usada para armazenar dados para serem jogados na vga do Kit
43 Software
431 Software (Firmware)
O software tem de funccedilatildeo de utilizar as bibliotecas das controladoras dos componentes
externos a fim de controlar estes componentes de acordo com o necessaacuterio para atender o
objetivo do projeto
Ou seja uma tela inicial eacute apresentada e o usuaacuterio ao tocar na nela o kit recebe um pacote via
serial e interpreta a posiccedilatildeo da tela em que foi tocado e logo em seguida envia o resultado deste
toque para o monitor
432 Objetivos
O usuaacuterio 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 accedilatildeo de acordo com a posiccedilatildeo da tela
tocada alterando assim a imagem anterior com o resultado do toque
Interpretar o toque de usuaacuterio na tela touch-screen recepccedilatildeo do pacote via serial da placa
controladora do touch-screen tratamento do pacote e interpretaccedilatildeo das coordenadas x e y do
40
toque Realizaccedilatildeo de alguma accedilatildeo que resultara na alteraccedilatildeo da imagem da tela atual de acordo
com a funccedilatildeo em que as coordenadas foram previamente definidas para o que deve ser feito
432 Funccedilotildees
A Tabela 28 tem as principais funccedilotildees que foram implementadas para o sistema
Tabela 28 ndash Funccedilotildees do sistema firmware
FUNCcedilOtildeES Tela de um pequeno editor de texto Tratamento do sinal recebido da serial devido a um toque na tela Interpretaccedilatildeo do pacote serial e transfomaccedilatildeo para coordenadas x e y Transformaccedilatildeo das posiccedilotildees do toque na tela em alguma accedilatildeo enviando o resultado para a VGA Imagem final disponibilizada ao usuaacuterio de acordo com o toque que foi dado na tela Controlar dispositivos cada dispositivo pode ser controlado pelo seu respectivo contrador atraveacutes de seu endereccedilo base VGA SERIAL USB-BLASTER IO(Leds Switches etc) do Kit DE2
O Firmware do processador NIOS II eacute que realizaraacute a integraccedilatildeo entre hardware com
hardware Com o firmware controlando o NIOS II eacute possiacutevel interagir com os dispositivos
externos a FPGA Tornando possiacutevel a integraccedilatildeo da FPGA com a peliacutecula touch-screen e um
monitor sem a ajuda de um PC a uacutenica ajuda do pc seria para enviar dados de uma imagem para
o Kit DE2
44 Validaccedilatildeo e Testes
Inicialmente os moacutedulos da VGA e comunicaccedilatildeo SERIAL natildeo estavam funicionando
apenas o devido agrave fraca documentaccedilatildeo sobre o kit DE2 foi possiacutevel apenas fazer testes com o
Processador NIOS II pois sobre este existem bastantes documentos e exemplos que podem ser
utilizados
Nesta primeira parte foi possiacutevel testar o NIOS II para controlar o display bototildees e switchs
do kit DE2
Com o NIOS II funcionando completamente foi necessaacuterio porta-lo para o kit DE2 o que foi
simples pois como sabemos esses kits satildeo portaacuteveis entre si apenas mudando a pinagem e a
capacidade da FPGA
Com o Kit DE2 foi possiacutevel fazer os testes necessaacuterios com a comunicaccedilatildeo serial
inicialmente testada via terminal conversando diretamente com o kit foi possiacutevel fazer o
seguinte teste os caracteres que eram entrados via teclado chegavam ao kit via serial e o o
41
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 comdumpexe que eacute facilmente encontrado pelas ferramentas
de pesquisa da web e tambeacutem existem vario outros programas como este e o comdump eacute
utilizado para debug da porta serial do pc conectado diretamente na placa controladora do touch-
screen e foi a peccedila chave para o entendimento do pacote enviado pela placa controladora
Figura 20 - Cumdumpexe programa de debug da porta serial
A explicaccedilatildeo de cada byte do pacote esta explicado no item 423
Apos o entendimento completo da transmissatildeo 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 natildeo 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 ateacute o momento em que
foi testado os meacutetodos proprietaacuterios da Altera para fazer a VGA funcionar os meacutetodos esses
implementados em C
A figura 21 onde contem o teste baacutesico feito que foi a chave principal para o sucesso deste
projeto
42
Como dito no item 332 do projeto foram utilizados as funccedilotildees da controladora VGA esses
meacutetodos 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 eacute utilizado o meacutetodo alt_up_vga_draw_pixel( color int
x int y) onde color eacute a cor do bloco de pixels e x e y satildeo as coordenadas da tela onde o bloco
que seraacute pintado
Para escrever um caractere sobre um bloco de pixels pintado eacute utilizado a funccedilatildeo
alt_up_vga_draw_char_1b( char int x int y) onde char eacute o caractere a ser impresso e x e y satildeo
as coordenadas da tela onde os o caractere eacute impresso
Figura 21 - Teste baisco do funcionamento do componente VGA do kit DE2
43
CAPIacuteTULO 5 ndash VALIDACcedilAtildeO E RESULTADOS
Os resultados foram os melhores possiacuteveis pois com a utilizaccedilatildeo dos IP CORE
ldquocontroladorasrdquo dos componentes externos como VGA e SERIAL e seus meacutetodos de para
controle eacute possiacutevel controlar facilmente esses moacutedulos atraveacutes do firmware desenvolvido para o
processador NIOS que consegue realizar operaccedilotildees transparentes acessando dos meacutetodos de
controle dos moacutedulos
Apos os testes baacutesicos 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 baacutesico de editor de texto
A figura 22 mostra um teste utilizando os meacutetodos de controle disponiacuteveis para o IP CORE
da VGA para primeiramente fazer o menu da aplicaccedilatildeo desenvolvido em na linguagem C
Figura 22 ndash Menu baacutesico do editor de texto
Para desenhar o menu da figura acima foi utilizado os meacutetodos proprietaacuterios de controle da
VGA citados no capitulo 4 e tambeacutem estruturas de repeticcedilatildeo para que a tela fosse varrida e os
pixels desenhados nos respectivos lugares da tela bem como os caracteres
Na figura 23 eacute definida a seguinte estrutura em C para representar de um botatildeo
Figura 23 - Estrutura em C para representar um botatildeo
44
A figura 24 eacute a declaraccedilatildeo dos bototildees que seratildeo utilizados pelo aplicativo editor de texto
para comprovar o funcionamento do controle da interface touch-screen
Apenas o que esta dentro da marcaccedilatildeo quadrada representa os bototildees do menu da figura 23
e o restante satildeo os bototildees do teclado do editor de texto
Figura 24 - Declaraccedilatildeo dos bototildees do menu
45
A figura 25 representa o meacutetodo drawnButtonUp responsaacutevel por desenhar os bototildees na tela
de acordo com as posiccedilotildees em que foram declarados os bototildees deste meacutetodo satildeo desenhados
para parecerem que estatildeo ldquolevantadosrdquo e natildeo pressionados
Note que foram utilizados os meacutetodos proprietaacuterios de controle da VGA
alt_up_vga_draw_pixel pra pitar os pixels e alt_up_vga_draw_char_b1 para desenhar caracteres
como jaacute foi especificado no item 44 do projeto
Figura 25 ndash Meacutetodo drawButtonUp
46
O meacutetodo que desenha o caption do botatildeo se chama drawButtonText desenha os caracteres
em cima dos bototildees natildeo importa se o botatildeo esta pressionado ou natildeo
A figura 26 mostra como este meacutetodo foi implementado e ele eacute chamado no final de cada
meacutetodo onde algum tipo de botatildeo eacute desenhado quando o meacutetodo que desenha o botatildeo normal
quanto o pressionado e ateacute mesmo o do teclado
Figura 26 ndash Meacutetodo que escreve o caption de cada botatildeo
47
A figura 27 mostra o meacutetodo drawButtonDown que desenha o botatildeo pressionado ou seja
quando o usuaacuterio pressiona a regiatildeo correspondente a um botatildeo do menu no touch-screen o
mesmo redesenharaacute o botatildeo parecendo um efeito de botatildeo afundado note que no final do
meacutetodo novamente eacute chamado o meacutetodo drawButtonText que reescreveraacute o caption do botatildeo
como mostra o meacutetodo da figura 26 e esta ilustrado na figura 28
Figura 27 ndash Meacutetodo que desenha o botatildeo pressionado
48
Dependendo da aacuterea do menu que o usuaacuterio pressionar no touch-screen causar o efeito de
pressionado como mostra a figura 28
Figura 28 ndash Efeito do botatildeo de menu apertado
Na figura 29 eacute a representaccedilatildeo de quando a aacuterea correspondente ao botatildeo ldquoamarelordquo eacute
pressionada
Apos estes testes baacutesicos comprovando o funcionamento da interface graacutefica para o usuaacuterio
foi definido o restante dos componentes da tela que eacute constituiacutedo de um prompt e um teclado
qwerty que foi essencial para comprovar o perfeito funcionamento do controle da interface
touch-screen
49
51 Interface Grafica Final
A figura 29 mostra a interface final que o usuaacuterio teraacute para poder verificar o funcionamento
do controle da interface touch-screen
Figura 29 ndash Interface final touch-screen do usuaacuterio
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
511 Descriccedilatildeo do editor de texto
O menu possui 4 botoes cada um com sua respectiva funcionalidade quando o usuario
pressiona a area do botatildeo ldquoapagarrdquo uma vez entatildeo um carectere do prompt eacute apagado Quando eacute
precionado a area correspondente ao botatildeo ldquoResetrdquo todo o conteudo do prompt seraacute apagado e o
plano de fundo retornaraacute a cor branca Quando o botatildeo ldquoamarelordquo eacute pressionado o fundo da tela
passa a ser amarelo e o mesmo acontece se o usuario precionar o botatildeo verde tornando o cor de
fundo verde
50
O teclado possui 29 teclas sendo duas delas que equivalem ao ENTRA ldquoENTrdquo e ao
SPACE ldquoSPCrdquo Quando o usuario pressiona a area correspondente a algum botatildeo do teclado o
mesmo muda sua cor para azul e o seu caractere eacute disponibilizado no prompt
Essas funcionalidades nada mais satildeo do que um bom exemplo de como funciona
corretamente o controle da interface touch-screen
52 Prompt e o Teclado
A estrutura feita na linguagem C que define o prompt da figura 28 esta representado na
figura 30
Figura 30 ndash Estrutura em C para representar o prompt
A figura 31 mostra o metodo drawPrompt utilizado para desenhar na tela o prompt
Figura 31 ndash Meacutetodo que desenha o prompt
51
A estrutura do teclado eacute a mesma utilizada pela figura 23 e tambem eacute criado satildeo
inicializados na figura 24
O restante as implementaccedilotildees estatildeo disponiveis no cd deste documento
Quando algum botatildeo do teclado eacute pressionado sua cor muda para azul e sua letra
correspondente eacute escrita o prompt
A figura 32 ilustra quando o usuaacuterio aperta a letra lsquotrsquo na peliacutecula touch-screen
Figura 32 - Teste do prompt e o teclado
52
53 Controle da Interface Touch-Screen
Depois do todos os testes com o processador NIOS e a integraccedilatildeo do mesmo com os
moacutedulos externos como a porta SERIAL e a saiacuteda VGA eacute possiacutevel utilizando o touch-screen
criar uma interface amigaacutevel e faacutecil de usar para o usuaacuterio utilizando um firmware capaz de
interpretar os sinais via serial vindo da controladora do touch ao detectar que um toque foi dado
pelo usuaacuterio e realizar algumas accedilotildees que neste caso se comportam como um editor de texto
baacutesico
A figura 33 mostra como foi validado este projeto e seus moacutedulos controlando uma
interface touch-screen para chegar no resultado abaixo digitado pelo usuaacuterio comprovando o
funcionamento e viabilidade deste projeto
Figura 33 ndash 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 mudanccedilas podendo ser alterado rapidamente o tipo de
aplicaccedilatildeo ou integrado rapidamente com outro projeto
53
CAPIacuteTULO 6 - CONCLUSAtildeO
Uma das principais dificuldades no desenvolvimento deste projeto foi fazer o levantamento
da documentaccedilatildeo sobre o processador NIOS e os moacutedulos externos a FPGA do Kit DE2 Como
natildeo foi feito algum projeto antes que utilizasse a interface VGA e a SERIAL do Kit DE2 levou-
se muito tempo ateacute conseguir adquirir e ordenar o conhecimento que foi sendo adquirido ateacute
conseguir dar os primeiros passos e realizar os primeiros testes com a VGA e a SERIAL Outro
grande obstaacuteculo foi ter de descobrir que para que o NIOS controlasse os moacutedulos externos a
FGPA fosse necessaacuterio copiar os arquivos c e h dos respectivos componente para dentro do
projeto
Mas depois de todos os problemas com os moacutedulos externos solucionados cada modulo do
projeto foi sendo desenvolvido separadamente ateacute seu total funcionamento Natildeo tive dificuldades
com a linguagem da programaccedilatildeo pois o Firmware do processador NIOS eacute o C a qual mais tive
contato na faculdade
Outro desafio foi fazer a peliacutecula 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
peliacutecula natildeo 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 possiacutevel
comeccedilar a fazer os testes necessaacuterios para prosseguir com o projeto aprender como o a peliacutecula
identifica um toque e manda este sinal para a controladora e a controladora transforma este sinal
em um sinal serial que eacute 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 accedilotildees
que as coordenadas jaacute estatildeo previamente calibradas no firmware para fazer bem como mudar de
cor a tela fazer o efeito de um botatildeo subindo e descendo etc
Varias vezes o projeto parou de funcionar entatildeo 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 memoacuteria abundante etc uma das
facilidades eacute a faacutecil alteraccedilatildeo do projeto podendo ser integrado a outro ou ateacute mesmo alterado
para realizar outros tipos de accedilotildees com o touch-screen
Existem vaacuterios melhoramentos que podem ser executados no projeto um deles eacute tentar
interpretar de uma maneira diferente os valores do eixo y pois do jeito que esta a resoluccedilatildeo do
eixo y esta muito baixa dificultando o reconhecimento de toques em aacutereas pequenas Talvez a
inclusatildeo de mais alguns bytes no pacote de leitura da serial resolva o problema
54
Uma ideacuteia para um proacuteximo projeto que use a interface touch-screen poderia ser a
integraccedilatildeo com o projeto do nosso colega Roberto Junqueira ou a desenvolvimento de uma
placa controladora para o touch-screen
Este trabalho eacute uma modesta contribuiccedilatildeo para o uso de FPGAs e do processador embarcado
NIOS implementado em VHDL pela Altera que acredito que vai abrir vaacuterios caminhos pois
com este projeto alguns caminhos ficaram mais faacuteceis de percorrer daqui para a frente
55
CAPIacuteTULO 7 - REFEREcircNCIAS BIBLIOGRAacuteFICAS
AMORE Roberto drsquo VHDL Descriccedilatildeo e Sintese de Circuitos Rio de Janeiro ed LTC
2005
Elotouch Touch-Screen e Controladora Descriccedilatildeo do funcionamento e descriccedilatildeo
tecnologia Touch-Screen lthttpwwwelotouchcombrgt Acesso em fevereiro de 2007
ALTERA University Program IP Cores Instalaccedilatildeo de IP Cores e referencias sobre os
componentes dos kits DE1 e DE2 Disponivel em lthttpwwwalteracomeducationunivip-
coresunv-ip-coreshtmlgt Acesso em abril de 2007
ALTERA NIOS II Documentaccedilatildeo sobre o pprocessador embracado NIO II Disponivel
em lthttpwwwalteracomproductsipprocessorsipm-indexjspgt Acesso em Abril de 2007
ALTERA Development amp Education Board 2 (DE2) Manual do usuario Disponivel no
de que acompanha o Kit DE2 ltDE2_user_manualDE2_UserManualpdfgt Acesso em
fevereiro de 2007
36
CAPIacuteTULO 4 ndash ESPECIFICACcedilAtildeO TECNICA
41 Requisitos Miacutenimos
Os requisitos miacutenimos de Hardware satildeo
Funcionamento das interfaces Serial e USB-Blaster
Funcionamento do Kit DE2
PC
Os requisitos miacutenimos de Software
Windows Xp
Quartus II
SOPC
NIOS II IDE
42 Projeto de Hardware
O hardware utilizado nesse projeto inclui componentes presentes na Placa de
Desenvolvimento Nios II - ediccedilatildeo DE2 Cyclone II EP2C35 e principalmente o hardware que seraacute
configurado na FPGA escrito em linguagem de descriccedilatildeo de hardware (HDL)
O um dos principais blocos de hardware eacute o processador NIOS II o Avalon Bus e os
controladores de componentes externos a FPGA e de comunicaccedilatildeo presentes no Kit
37
O software embarcado (firmware) estaraacute rodando nessa arquitetura Eacute uma arquitetura
completa construiacuteda com a ferramenta SOPC Builder da Altera A Figura 18 representa em
blocos os principais componentes dessa arquitetura
Figura 18 ndash Representaccedilatildeo em blocos do hardware do NIOS II
421 Funcatildeo do Touch-Screen
Outro bloco importante eacute o do Touch-Screen esta tela sensiacutevel ao toque pois como esta tela
trabalha com resistecircncia ao ser tocado em uma determinada regiatildeo uma resistecircncia eacute gerada e a
tensatildeo de saiacuteda eacute modificada a alimentaccedilatildeo desta placa eacute proveniente de sua placa controladora
a mesma placa que recebe a tensatildeo de saiacuteda modificada de acordo com a regiatildeo tocada na tela
Para verificar as caracteriacutesticas detalhadas do Touch-Screen e sua placa controlador favor ver
o Capitulo 2
422 Monitor e VGA
O Monitor inicialmente tem apenas o desenho de um botatildeo que ao ser tocado via touch
mudara a cor de toda a tela A imagem exibida no monitor tem uma resoluccedilatildeo de
38
Protoacutetipo das telas para os testes esta na Figura 19 a tela verde quando a touch natildeo eacute tocando
na regiatildeo do botatildeo de OK quando o botatildeo de OK for tocado a tela do monitor mudara de cor
ficando azul
Figura 19 ndash Tela do monitor
No Capitulo 2 estatildeo todas as caracteriacutesticas da pinagem e do conector VGA
423 Comunicaccedilatildeo serial
Entre a placa controladora do Touch-Screen e o FPGA existe uma comunicaccedilatildeo 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 manipulaccedilatildeo da imagem que eacute
mostrada no monitor
No capitulo 2 estatildeo das descriccedilotildees dos pinos e do conector da comunicaccedilatildeo Serial
O pacote serial que eacute transmitido pela placa controladora do touch-screen possui 10 bytes de
comprimento e segue a seguinte sequumlecircncia de envio
[55] [54] [] [] [] [] [] [] [] []
Sequumlecircncia dos bytes
Os dois primeiros bytes identificam o Header do pacote
O terceiro byte eacute 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 agrave posiccedilatildeo do eixo x onde a tela foi tocada
O sexto e o seacutetimo byte correspondem a posiccedilatildeo do eixo y onde a tele foi tocada
O restante os bytes identificam o tail do pacote recepcionado pelo kit DE2
39
424 Comunicaccedilatildeo USB-Blaster
Essencial para envio do projeto desenvolvido para o kit DE2 tambeacutem muito utilizado para o
debug deste projeto
435 Memoacuteria SDRAM
A memoacuteria utilizada para armazenar grandes quantidades de dados eacute a SDRAM (ver detalhes
no Capitulo 2)
Essa memoacuteria eacute muito raacutepida serviu muito bem para armazenar o firmware deste projeto
pois tem o tempo acesso ideal para ler as instruccedilotildees que utilizaram a VGA e tambeacutem eacute raacutepida o
suficiente para fazer a leitura dos dados e disponibilizar na saiacuteda VGA do kit
426 Memoacuteria FLASH
Eacute onde seraacute armazenado o firmware possui espaccedilo suficiente para isso 4MB e uma memoacuteria
mais lenta e por isso natildeo foi usada para armazenar dados para serem jogados na vga do Kit
43 Software
431 Software (Firmware)
O software tem de funccedilatildeo de utilizar as bibliotecas das controladoras dos componentes
externos a fim de controlar estes componentes de acordo com o necessaacuterio para atender o
objetivo do projeto
Ou seja uma tela inicial eacute apresentada e o usuaacuterio ao tocar na nela o kit recebe um pacote via
serial e interpreta a posiccedilatildeo da tela em que foi tocado e logo em seguida envia o resultado deste
toque para o monitor
432 Objetivos
O usuaacuterio 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 accedilatildeo de acordo com a posiccedilatildeo da tela
tocada alterando assim a imagem anterior com o resultado do toque
Interpretar o toque de usuaacuterio na tela touch-screen recepccedilatildeo do pacote via serial da placa
controladora do touch-screen tratamento do pacote e interpretaccedilatildeo das coordenadas x e y do
40
toque Realizaccedilatildeo de alguma accedilatildeo que resultara na alteraccedilatildeo da imagem da tela atual de acordo
com a funccedilatildeo em que as coordenadas foram previamente definidas para o que deve ser feito
432 Funccedilotildees
A Tabela 28 tem as principais funccedilotildees que foram implementadas para o sistema
Tabela 28 ndash Funccedilotildees do sistema firmware
FUNCcedilOtildeES Tela de um pequeno editor de texto Tratamento do sinal recebido da serial devido a um toque na tela Interpretaccedilatildeo do pacote serial e transfomaccedilatildeo para coordenadas x e y Transformaccedilatildeo das posiccedilotildees do toque na tela em alguma accedilatildeo enviando o resultado para a VGA Imagem final disponibilizada ao usuaacuterio de acordo com o toque que foi dado na tela Controlar dispositivos cada dispositivo pode ser controlado pelo seu respectivo contrador atraveacutes de seu endereccedilo base VGA SERIAL USB-BLASTER IO(Leds Switches etc) do Kit DE2
O Firmware do processador NIOS II eacute que realizaraacute a integraccedilatildeo entre hardware com
hardware Com o firmware controlando o NIOS II eacute possiacutevel interagir com os dispositivos
externos a FPGA Tornando possiacutevel a integraccedilatildeo da FPGA com a peliacutecula touch-screen e um
monitor sem a ajuda de um PC a uacutenica ajuda do pc seria para enviar dados de uma imagem para
o Kit DE2
44 Validaccedilatildeo e Testes
Inicialmente os moacutedulos da VGA e comunicaccedilatildeo SERIAL natildeo estavam funicionando
apenas o devido agrave fraca documentaccedilatildeo sobre o kit DE2 foi possiacutevel apenas fazer testes com o
Processador NIOS II pois sobre este existem bastantes documentos e exemplos que podem ser
utilizados
Nesta primeira parte foi possiacutevel testar o NIOS II para controlar o display bototildees e switchs
do kit DE2
Com o NIOS II funcionando completamente foi necessaacuterio porta-lo para o kit DE2 o que foi
simples pois como sabemos esses kits satildeo portaacuteveis entre si apenas mudando a pinagem e a
capacidade da FPGA
Com o Kit DE2 foi possiacutevel fazer os testes necessaacuterios com a comunicaccedilatildeo serial
inicialmente testada via terminal conversando diretamente com o kit foi possiacutevel fazer o
seguinte teste os caracteres que eram entrados via teclado chegavam ao kit via serial e o o
41
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 comdumpexe que eacute facilmente encontrado pelas ferramentas
de pesquisa da web e tambeacutem existem vario outros programas como este e o comdump eacute
utilizado para debug da porta serial do pc conectado diretamente na placa controladora do touch-
screen e foi a peccedila chave para o entendimento do pacote enviado pela placa controladora
Figura 20 - Cumdumpexe programa de debug da porta serial
A explicaccedilatildeo de cada byte do pacote esta explicado no item 423
Apos o entendimento completo da transmissatildeo 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 natildeo 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 ateacute o momento em que
foi testado os meacutetodos proprietaacuterios da Altera para fazer a VGA funcionar os meacutetodos esses
implementados em C
A figura 21 onde contem o teste baacutesico feito que foi a chave principal para o sucesso deste
projeto
42
Como dito no item 332 do projeto foram utilizados as funccedilotildees da controladora VGA esses
meacutetodos 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 eacute utilizado o meacutetodo alt_up_vga_draw_pixel( color int
x int y) onde color eacute a cor do bloco de pixels e x e y satildeo as coordenadas da tela onde o bloco
que seraacute pintado
Para escrever um caractere sobre um bloco de pixels pintado eacute utilizado a funccedilatildeo
alt_up_vga_draw_char_1b( char int x int y) onde char eacute o caractere a ser impresso e x e y satildeo
as coordenadas da tela onde os o caractere eacute impresso
Figura 21 - Teste baisco do funcionamento do componente VGA do kit DE2
43
CAPIacuteTULO 5 ndash VALIDACcedilAtildeO E RESULTADOS
Os resultados foram os melhores possiacuteveis pois com a utilizaccedilatildeo dos IP CORE
ldquocontroladorasrdquo dos componentes externos como VGA e SERIAL e seus meacutetodos de para
controle eacute possiacutevel controlar facilmente esses moacutedulos atraveacutes do firmware desenvolvido para o
processador NIOS que consegue realizar operaccedilotildees transparentes acessando dos meacutetodos de
controle dos moacutedulos
Apos os testes baacutesicos 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 baacutesico de editor de texto
A figura 22 mostra um teste utilizando os meacutetodos de controle disponiacuteveis para o IP CORE
da VGA para primeiramente fazer o menu da aplicaccedilatildeo desenvolvido em na linguagem C
Figura 22 ndash Menu baacutesico do editor de texto
Para desenhar o menu da figura acima foi utilizado os meacutetodos proprietaacuterios de controle da
VGA citados no capitulo 4 e tambeacutem estruturas de repeticcedilatildeo para que a tela fosse varrida e os
pixels desenhados nos respectivos lugares da tela bem como os caracteres
Na figura 23 eacute definida a seguinte estrutura em C para representar de um botatildeo
Figura 23 - Estrutura em C para representar um botatildeo
44
A figura 24 eacute a declaraccedilatildeo dos bototildees que seratildeo utilizados pelo aplicativo editor de texto
para comprovar o funcionamento do controle da interface touch-screen
Apenas o que esta dentro da marcaccedilatildeo quadrada representa os bototildees do menu da figura 23
e o restante satildeo os bototildees do teclado do editor de texto
Figura 24 - Declaraccedilatildeo dos bototildees do menu
45
A figura 25 representa o meacutetodo drawnButtonUp responsaacutevel por desenhar os bototildees na tela
de acordo com as posiccedilotildees em que foram declarados os bototildees deste meacutetodo satildeo desenhados
para parecerem que estatildeo ldquolevantadosrdquo e natildeo pressionados
Note que foram utilizados os meacutetodos proprietaacuterios de controle da VGA
alt_up_vga_draw_pixel pra pitar os pixels e alt_up_vga_draw_char_b1 para desenhar caracteres
como jaacute foi especificado no item 44 do projeto
Figura 25 ndash Meacutetodo drawButtonUp
46
O meacutetodo que desenha o caption do botatildeo se chama drawButtonText desenha os caracteres
em cima dos bototildees natildeo importa se o botatildeo esta pressionado ou natildeo
A figura 26 mostra como este meacutetodo foi implementado e ele eacute chamado no final de cada
meacutetodo onde algum tipo de botatildeo eacute desenhado quando o meacutetodo que desenha o botatildeo normal
quanto o pressionado e ateacute mesmo o do teclado
Figura 26 ndash Meacutetodo que escreve o caption de cada botatildeo
47
A figura 27 mostra o meacutetodo drawButtonDown que desenha o botatildeo pressionado ou seja
quando o usuaacuterio pressiona a regiatildeo correspondente a um botatildeo do menu no touch-screen o
mesmo redesenharaacute o botatildeo parecendo um efeito de botatildeo afundado note que no final do
meacutetodo novamente eacute chamado o meacutetodo drawButtonText que reescreveraacute o caption do botatildeo
como mostra o meacutetodo da figura 26 e esta ilustrado na figura 28
Figura 27 ndash Meacutetodo que desenha o botatildeo pressionado
48
Dependendo da aacuterea do menu que o usuaacuterio pressionar no touch-screen causar o efeito de
pressionado como mostra a figura 28
Figura 28 ndash Efeito do botatildeo de menu apertado
Na figura 29 eacute a representaccedilatildeo de quando a aacuterea correspondente ao botatildeo ldquoamarelordquo eacute
pressionada
Apos estes testes baacutesicos comprovando o funcionamento da interface graacutefica para o usuaacuterio
foi definido o restante dos componentes da tela que eacute constituiacutedo de um prompt e um teclado
qwerty que foi essencial para comprovar o perfeito funcionamento do controle da interface
touch-screen
49
51 Interface Grafica Final
A figura 29 mostra a interface final que o usuaacuterio teraacute para poder verificar o funcionamento
do controle da interface touch-screen
Figura 29 ndash Interface final touch-screen do usuaacuterio
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
511 Descriccedilatildeo do editor de texto
O menu possui 4 botoes cada um com sua respectiva funcionalidade quando o usuario
pressiona a area do botatildeo ldquoapagarrdquo uma vez entatildeo um carectere do prompt eacute apagado Quando eacute
precionado a area correspondente ao botatildeo ldquoResetrdquo todo o conteudo do prompt seraacute apagado e o
plano de fundo retornaraacute a cor branca Quando o botatildeo ldquoamarelordquo eacute pressionado o fundo da tela
passa a ser amarelo e o mesmo acontece se o usuario precionar o botatildeo verde tornando o cor de
fundo verde
50
O teclado possui 29 teclas sendo duas delas que equivalem ao ENTRA ldquoENTrdquo e ao
SPACE ldquoSPCrdquo Quando o usuario pressiona a area correspondente a algum botatildeo do teclado o
mesmo muda sua cor para azul e o seu caractere eacute disponibilizado no prompt
Essas funcionalidades nada mais satildeo do que um bom exemplo de como funciona
corretamente o controle da interface touch-screen
52 Prompt e o Teclado
A estrutura feita na linguagem C que define o prompt da figura 28 esta representado na
figura 30
Figura 30 ndash Estrutura em C para representar o prompt
A figura 31 mostra o metodo drawPrompt utilizado para desenhar na tela o prompt
Figura 31 ndash Meacutetodo que desenha o prompt
51
A estrutura do teclado eacute a mesma utilizada pela figura 23 e tambem eacute criado satildeo
inicializados na figura 24
O restante as implementaccedilotildees estatildeo disponiveis no cd deste documento
Quando algum botatildeo do teclado eacute pressionado sua cor muda para azul e sua letra
correspondente eacute escrita o prompt
A figura 32 ilustra quando o usuaacuterio aperta a letra lsquotrsquo na peliacutecula touch-screen
Figura 32 - Teste do prompt e o teclado
52
53 Controle da Interface Touch-Screen
Depois do todos os testes com o processador NIOS e a integraccedilatildeo do mesmo com os
moacutedulos externos como a porta SERIAL e a saiacuteda VGA eacute possiacutevel utilizando o touch-screen
criar uma interface amigaacutevel e faacutecil de usar para o usuaacuterio utilizando um firmware capaz de
interpretar os sinais via serial vindo da controladora do touch ao detectar que um toque foi dado
pelo usuaacuterio e realizar algumas accedilotildees que neste caso se comportam como um editor de texto
baacutesico
A figura 33 mostra como foi validado este projeto e seus moacutedulos controlando uma
interface touch-screen para chegar no resultado abaixo digitado pelo usuaacuterio comprovando o
funcionamento e viabilidade deste projeto
Figura 33 ndash 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 mudanccedilas podendo ser alterado rapidamente o tipo de
aplicaccedilatildeo ou integrado rapidamente com outro projeto
53
CAPIacuteTULO 6 - CONCLUSAtildeO
Uma das principais dificuldades no desenvolvimento deste projeto foi fazer o levantamento
da documentaccedilatildeo sobre o processador NIOS e os moacutedulos externos a FPGA do Kit DE2 Como
natildeo foi feito algum projeto antes que utilizasse a interface VGA e a SERIAL do Kit DE2 levou-
se muito tempo ateacute conseguir adquirir e ordenar o conhecimento que foi sendo adquirido ateacute
conseguir dar os primeiros passos e realizar os primeiros testes com a VGA e a SERIAL Outro
grande obstaacuteculo foi ter de descobrir que para que o NIOS controlasse os moacutedulos externos a
FGPA fosse necessaacuterio copiar os arquivos c e h dos respectivos componente para dentro do
projeto
Mas depois de todos os problemas com os moacutedulos externos solucionados cada modulo do
projeto foi sendo desenvolvido separadamente ateacute seu total funcionamento Natildeo tive dificuldades
com a linguagem da programaccedilatildeo pois o Firmware do processador NIOS eacute o C a qual mais tive
contato na faculdade
Outro desafio foi fazer a peliacutecula 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
peliacutecula natildeo 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 possiacutevel
comeccedilar a fazer os testes necessaacuterios para prosseguir com o projeto aprender como o a peliacutecula
identifica um toque e manda este sinal para a controladora e a controladora transforma este sinal
em um sinal serial que eacute 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 accedilotildees
que as coordenadas jaacute estatildeo previamente calibradas no firmware para fazer bem como mudar de
cor a tela fazer o efeito de um botatildeo subindo e descendo etc
Varias vezes o projeto parou de funcionar entatildeo 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 memoacuteria abundante etc uma das
facilidades eacute a faacutecil alteraccedilatildeo do projeto podendo ser integrado a outro ou ateacute mesmo alterado
para realizar outros tipos de accedilotildees com o touch-screen
Existem vaacuterios melhoramentos que podem ser executados no projeto um deles eacute tentar
interpretar de uma maneira diferente os valores do eixo y pois do jeito que esta a resoluccedilatildeo do
eixo y esta muito baixa dificultando o reconhecimento de toques em aacutereas pequenas Talvez a
inclusatildeo de mais alguns bytes no pacote de leitura da serial resolva o problema
54
Uma ideacuteia para um proacuteximo projeto que use a interface touch-screen poderia ser a
integraccedilatildeo com o projeto do nosso colega Roberto Junqueira ou a desenvolvimento de uma
placa controladora para o touch-screen
Este trabalho eacute uma modesta contribuiccedilatildeo para o uso de FPGAs e do processador embarcado
NIOS implementado em VHDL pela Altera que acredito que vai abrir vaacuterios caminhos pois
com este projeto alguns caminhos ficaram mais faacuteceis de percorrer daqui para a frente
55
CAPIacuteTULO 7 - REFEREcircNCIAS BIBLIOGRAacuteFICAS
AMORE Roberto drsquo VHDL Descriccedilatildeo e Sintese de Circuitos Rio de Janeiro ed LTC
2005
Elotouch Touch-Screen e Controladora Descriccedilatildeo do funcionamento e descriccedilatildeo
tecnologia Touch-Screen lthttpwwwelotouchcombrgt Acesso em fevereiro de 2007
ALTERA University Program IP Cores Instalaccedilatildeo de IP Cores e referencias sobre os
componentes dos kits DE1 e DE2 Disponivel em lthttpwwwalteracomeducationunivip-
coresunv-ip-coreshtmlgt Acesso em abril de 2007
ALTERA NIOS II Documentaccedilatildeo sobre o pprocessador embracado NIO II Disponivel
em lthttpwwwalteracomproductsipprocessorsipm-indexjspgt Acesso em Abril de 2007
ALTERA Development amp Education Board 2 (DE2) Manual do usuario Disponivel no
de que acompanha o Kit DE2 ltDE2_user_manualDE2_UserManualpdfgt Acesso em
fevereiro de 2007
37
O software embarcado (firmware) estaraacute rodando nessa arquitetura Eacute uma arquitetura
completa construiacuteda com a ferramenta SOPC Builder da Altera A Figura 18 representa em
blocos os principais componentes dessa arquitetura
Figura 18 ndash Representaccedilatildeo em blocos do hardware do NIOS II
421 Funcatildeo do Touch-Screen
Outro bloco importante eacute o do Touch-Screen esta tela sensiacutevel ao toque pois como esta tela
trabalha com resistecircncia ao ser tocado em uma determinada regiatildeo uma resistecircncia eacute gerada e a
tensatildeo de saiacuteda eacute modificada a alimentaccedilatildeo desta placa eacute proveniente de sua placa controladora
a mesma placa que recebe a tensatildeo de saiacuteda modificada de acordo com a regiatildeo tocada na tela
Para verificar as caracteriacutesticas detalhadas do Touch-Screen e sua placa controlador favor ver
o Capitulo 2
422 Monitor e VGA
O Monitor inicialmente tem apenas o desenho de um botatildeo que ao ser tocado via touch
mudara a cor de toda a tela A imagem exibida no monitor tem uma resoluccedilatildeo de
38
Protoacutetipo das telas para os testes esta na Figura 19 a tela verde quando a touch natildeo eacute tocando
na regiatildeo do botatildeo de OK quando o botatildeo de OK for tocado a tela do monitor mudara de cor
ficando azul
Figura 19 ndash Tela do monitor
No Capitulo 2 estatildeo todas as caracteriacutesticas da pinagem e do conector VGA
423 Comunicaccedilatildeo serial
Entre a placa controladora do Touch-Screen e o FPGA existe uma comunicaccedilatildeo 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 manipulaccedilatildeo da imagem que eacute
mostrada no monitor
No capitulo 2 estatildeo das descriccedilotildees dos pinos e do conector da comunicaccedilatildeo Serial
O pacote serial que eacute transmitido pela placa controladora do touch-screen possui 10 bytes de
comprimento e segue a seguinte sequumlecircncia de envio
[55] [54] [] [] [] [] [] [] [] []
Sequumlecircncia dos bytes
Os dois primeiros bytes identificam o Header do pacote
O terceiro byte eacute 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 agrave posiccedilatildeo do eixo x onde a tela foi tocada
O sexto e o seacutetimo byte correspondem a posiccedilatildeo do eixo y onde a tele foi tocada
O restante os bytes identificam o tail do pacote recepcionado pelo kit DE2
39
424 Comunicaccedilatildeo USB-Blaster
Essencial para envio do projeto desenvolvido para o kit DE2 tambeacutem muito utilizado para o
debug deste projeto
435 Memoacuteria SDRAM
A memoacuteria utilizada para armazenar grandes quantidades de dados eacute a SDRAM (ver detalhes
no Capitulo 2)
Essa memoacuteria eacute muito raacutepida serviu muito bem para armazenar o firmware deste projeto
pois tem o tempo acesso ideal para ler as instruccedilotildees que utilizaram a VGA e tambeacutem eacute raacutepida o
suficiente para fazer a leitura dos dados e disponibilizar na saiacuteda VGA do kit
426 Memoacuteria FLASH
Eacute onde seraacute armazenado o firmware possui espaccedilo suficiente para isso 4MB e uma memoacuteria
mais lenta e por isso natildeo foi usada para armazenar dados para serem jogados na vga do Kit
43 Software
431 Software (Firmware)
O software tem de funccedilatildeo de utilizar as bibliotecas das controladoras dos componentes
externos a fim de controlar estes componentes de acordo com o necessaacuterio para atender o
objetivo do projeto
Ou seja uma tela inicial eacute apresentada e o usuaacuterio ao tocar na nela o kit recebe um pacote via
serial e interpreta a posiccedilatildeo da tela em que foi tocado e logo em seguida envia o resultado deste
toque para o monitor
432 Objetivos
O usuaacuterio 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 accedilatildeo de acordo com a posiccedilatildeo da tela
tocada alterando assim a imagem anterior com o resultado do toque
Interpretar o toque de usuaacuterio na tela touch-screen recepccedilatildeo do pacote via serial da placa
controladora do touch-screen tratamento do pacote e interpretaccedilatildeo das coordenadas x e y do
40
toque Realizaccedilatildeo de alguma accedilatildeo que resultara na alteraccedilatildeo da imagem da tela atual de acordo
com a funccedilatildeo em que as coordenadas foram previamente definidas para o que deve ser feito
432 Funccedilotildees
A Tabela 28 tem as principais funccedilotildees que foram implementadas para o sistema
Tabela 28 ndash Funccedilotildees do sistema firmware
FUNCcedilOtildeES Tela de um pequeno editor de texto Tratamento do sinal recebido da serial devido a um toque na tela Interpretaccedilatildeo do pacote serial e transfomaccedilatildeo para coordenadas x e y Transformaccedilatildeo das posiccedilotildees do toque na tela em alguma accedilatildeo enviando o resultado para a VGA Imagem final disponibilizada ao usuaacuterio de acordo com o toque que foi dado na tela Controlar dispositivos cada dispositivo pode ser controlado pelo seu respectivo contrador atraveacutes de seu endereccedilo base VGA SERIAL USB-BLASTER IO(Leds Switches etc) do Kit DE2
O Firmware do processador NIOS II eacute que realizaraacute a integraccedilatildeo entre hardware com
hardware Com o firmware controlando o NIOS II eacute possiacutevel interagir com os dispositivos
externos a FPGA Tornando possiacutevel a integraccedilatildeo da FPGA com a peliacutecula touch-screen e um
monitor sem a ajuda de um PC a uacutenica ajuda do pc seria para enviar dados de uma imagem para
o Kit DE2
44 Validaccedilatildeo e Testes
Inicialmente os moacutedulos da VGA e comunicaccedilatildeo SERIAL natildeo estavam funicionando
apenas o devido agrave fraca documentaccedilatildeo sobre o kit DE2 foi possiacutevel apenas fazer testes com o
Processador NIOS II pois sobre este existem bastantes documentos e exemplos que podem ser
utilizados
Nesta primeira parte foi possiacutevel testar o NIOS II para controlar o display bototildees e switchs
do kit DE2
Com o NIOS II funcionando completamente foi necessaacuterio porta-lo para o kit DE2 o que foi
simples pois como sabemos esses kits satildeo portaacuteveis entre si apenas mudando a pinagem e a
capacidade da FPGA
Com o Kit DE2 foi possiacutevel fazer os testes necessaacuterios com a comunicaccedilatildeo serial
inicialmente testada via terminal conversando diretamente com o kit foi possiacutevel fazer o
seguinte teste os caracteres que eram entrados via teclado chegavam ao kit via serial e o o
41
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 comdumpexe que eacute facilmente encontrado pelas ferramentas
de pesquisa da web e tambeacutem existem vario outros programas como este e o comdump eacute
utilizado para debug da porta serial do pc conectado diretamente na placa controladora do touch-
screen e foi a peccedila chave para o entendimento do pacote enviado pela placa controladora
Figura 20 - Cumdumpexe programa de debug da porta serial
A explicaccedilatildeo de cada byte do pacote esta explicado no item 423
Apos o entendimento completo da transmissatildeo 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 natildeo 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 ateacute o momento em que
foi testado os meacutetodos proprietaacuterios da Altera para fazer a VGA funcionar os meacutetodos esses
implementados em C
A figura 21 onde contem o teste baacutesico feito que foi a chave principal para o sucesso deste
projeto
42
Como dito no item 332 do projeto foram utilizados as funccedilotildees da controladora VGA esses
meacutetodos 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 eacute utilizado o meacutetodo alt_up_vga_draw_pixel( color int
x int y) onde color eacute a cor do bloco de pixels e x e y satildeo as coordenadas da tela onde o bloco
que seraacute pintado
Para escrever um caractere sobre um bloco de pixels pintado eacute utilizado a funccedilatildeo
alt_up_vga_draw_char_1b( char int x int y) onde char eacute o caractere a ser impresso e x e y satildeo
as coordenadas da tela onde os o caractere eacute impresso
Figura 21 - Teste baisco do funcionamento do componente VGA do kit DE2
43
CAPIacuteTULO 5 ndash VALIDACcedilAtildeO E RESULTADOS
Os resultados foram os melhores possiacuteveis pois com a utilizaccedilatildeo dos IP CORE
ldquocontroladorasrdquo dos componentes externos como VGA e SERIAL e seus meacutetodos de para
controle eacute possiacutevel controlar facilmente esses moacutedulos atraveacutes do firmware desenvolvido para o
processador NIOS que consegue realizar operaccedilotildees transparentes acessando dos meacutetodos de
controle dos moacutedulos
Apos os testes baacutesicos 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 baacutesico de editor de texto
A figura 22 mostra um teste utilizando os meacutetodos de controle disponiacuteveis para o IP CORE
da VGA para primeiramente fazer o menu da aplicaccedilatildeo desenvolvido em na linguagem C
Figura 22 ndash Menu baacutesico do editor de texto
Para desenhar o menu da figura acima foi utilizado os meacutetodos proprietaacuterios de controle da
VGA citados no capitulo 4 e tambeacutem estruturas de repeticcedilatildeo para que a tela fosse varrida e os
pixels desenhados nos respectivos lugares da tela bem como os caracteres
Na figura 23 eacute definida a seguinte estrutura em C para representar de um botatildeo
Figura 23 - Estrutura em C para representar um botatildeo
44
A figura 24 eacute a declaraccedilatildeo dos bototildees que seratildeo utilizados pelo aplicativo editor de texto
para comprovar o funcionamento do controle da interface touch-screen
Apenas o que esta dentro da marcaccedilatildeo quadrada representa os bototildees do menu da figura 23
e o restante satildeo os bototildees do teclado do editor de texto
Figura 24 - Declaraccedilatildeo dos bototildees do menu
45
A figura 25 representa o meacutetodo drawnButtonUp responsaacutevel por desenhar os bototildees na tela
de acordo com as posiccedilotildees em que foram declarados os bototildees deste meacutetodo satildeo desenhados
para parecerem que estatildeo ldquolevantadosrdquo e natildeo pressionados
Note que foram utilizados os meacutetodos proprietaacuterios de controle da VGA
alt_up_vga_draw_pixel pra pitar os pixels e alt_up_vga_draw_char_b1 para desenhar caracteres
como jaacute foi especificado no item 44 do projeto
Figura 25 ndash Meacutetodo drawButtonUp
46
O meacutetodo que desenha o caption do botatildeo se chama drawButtonText desenha os caracteres
em cima dos bototildees natildeo importa se o botatildeo esta pressionado ou natildeo
A figura 26 mostra como este meacutetodo foi implementado e ele eacute chamado no final de cada
meacutetodo onde algum tipo de botatildeo eacute desenhado quando o meacutetodo que desenha o botatildeo normal
quanto o pressionado e ateacute mesmo o do teclado
Figura 26 ndash Meacutetodo que escreve o caption de cada botatildeo
47
A figura 27 mostra o meacutetodo drawButtonDown que desenha o botatildeo pressionado ou seja
quando o usuaacuterio pressiona a regiatildeo correspondente a um botatildeo do menu no touch-screen o
mesmo redesenharaacute o botatildeo parecendo um efeito de botatildeo afundado note que no final do
meacutetodo novamente eacute chamado o meacutetodo drawButtonText que reescreveraacute o caption do botatildeo
como mostra o meacutetodo da figura 26 e esta ilustrado na figura 28
Figura 27 ndash Meacutetodo que desenha o botatildeo pressionado
48
Dependendo da aacuterea do menu que o usuaacuterio pressionar no touch-screen causar o efeito de
pressionado como mostra a figura 28
Figura 28 ndash Efeito do botatildeo de menu apertado
Na figura 29 eacute a representaccedilatildeo de quando a aacuterea correspondente ao botatildeo ldquoamarelordquo eacute
pressionada
Apos estes testes baacutesicos comprovando o funcionamento da interface graacutefica para o usuaacuterio
foi definido o restante dos componentes da tela que eacute constituiacutedo de um prompt e um teclado
qwerty que foi essencial para comprovar o perfeito funcionamento do controle da interface
touch-screen
49
51 Interface Grafica Final
A figura 29 mostra a interface final que o usuaacuterio teraacute para poder verificar o funcionamento
do controle da interface touch-screen
Figura 29 ndash Interface final touch-screen do usuaacuterio
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
511 Descriccedilatildeo do editor de texto
O menu possui 4 botoes cada um com sua respectiva funcionalidade quando o usuario
pressiona a area do botatildeo ldquoapagarrdquo uma vez entatildeo um carectere do prompt eacute apagado Quando eacute
precionado a area correspondente ao botatildeo ldquoResetrdquo todo o conteudo do prompt seraacute apagado e o
plano de fundo retornaraacute a cor branca Quando o botatildeo ldquoamarelordquo eacute pressionado o fundo da tela
passa a ser amarelo e o mesmo acontece se o usuario precionar o botatildeo verde tornando o cor de
fundo verde
50
O teclado possui 29 teclas sendo duas delas que equivalem ao ENTRA ldquoENTrdquo e ao
SPACE ldquoSPCrdquo Quando o usuario pressiona a area correspondente a algum botatildeo do teclado o
mesmo muda sua cor para azul e o seu caractere eacute disponibilizado no prompt
Essas funcionalidades nada mais satildeo do que um bom exemplo de como funciona
corretamente o controle da interface touch-screen
52 Prompt e o Teclado
A estrutura feita na linguagem C que define o prompt da figura 28 esta representado na
figura 30
Figura 30 ndash Estrutura em C para representar o prompt
A figura 31 mostra o metodo drawPrompt utilizado para desenhar na tela o prompt
Figura 31 ndash Meacutetodo que desenha o prompt
51
A estrutura do teclado eacute a mesma utilizada pela figura 23 e tambem eacute criado satildeo
inicializados na figura 24
O restante as implementaccedilotildees estatildeo disponiveis no cd deste documento
Quando algum botatildeo do teclado eacute pressionado sua cor muda para azul e sua letra
correspondente eacute escrita o prompt
A figura 32 ilustra quando o usuaacuterio aperta a letra lsquotrsquo na peliacutecula touch-screen
Figura 32 - Teste do prompt e o teclado
52
53 Controle da Interface Touch-Screen
Depois do todos os testes com o processador NIOS e a integraccedilatildeo do mesmo com os
moacutedulos externos como a porta SERIAL e a saiacuteda VGA eacute possiacutevel utilizando o touch-screen
criar uma interface amigaacutevel e faacutecil de usar para o usuaacuterio utilizando um firmware capaz de
interpretar os sinais via serial vindo da controladora do touch ao detectar que um toque foi dado
pelo usuaacuterio e realizar algumas accedilotildees que neste caso se comportam como um editor de texto
baacutesico
A figura 33 mostra como foi validado este projeto e seus moacutedulos controlando uma
interface touch-screen para chegar no resultado abaixo digitado pelo usuaacuterio comprovando o
funcionamento e viabilidade deste projeto
Figura 33 ndash 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 mudanccedilas podendo ser alterado rapidamente o tipo de
aplicaccedilatildeo ou integrado rapidamente com outro projeto
53
CAPIacuteTULO 6 - CONCLUSAtildeO
Uma das principais dificuldades no desenvolvimento deste projeto foi fazer o levantamento
da documentaccedilatildeo sobre o processador NIOS e os moacutedulos externos a FPGA do Kit DE2 Como
natildeo foi feito algum projeto antes que utilizasse a interface VGA e a SERIAL do Kit DE2 levou-
se muito tempo ateacute conseguir adquirir e ordenar o conhecimento que foi sendo adquirido ateacute
conseguir dar os primeiros passos e realizar os primeiros testes com a VGA e a SERIAL Outro
grande obstaacuteculo foi ter de descobrir que para que o NIOS controlasse os moacutedulos externos a
FGPA fosse necessaacuterio copiar os arquivos c e h dos respectivos componente para dentro do
projeto
Mas depois de todos os problemas com os moacutedulos externos solucionados cada modulo do
projeto foi sendo desenvolvido separadamente ateacute seu total funcionamento Natildeo tive dificuldades
com a linguagem da programaccedilatildeo pois o Firmware do processador NIOS eacute o C a qual mais tive
contato na faculdade
Outro desafio foi fazer a peliacutecula 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
peliacutecula natildeo 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 possiacutevel
comeccedilar a fazer os testes necessaacuterios para prosseguir com o projeto aprender como o a peliacutecula
identifica um toque e manda este sinal para a controladora e a controladora transforma este sinal
em um sinal serial que eacute 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 accedilotildees
que as coordenadas jaacute estatildeo previamente calibradas no firmware para fazer bem como mudar de
cor a tela fazer o efeito de um botatildeo subindo e descendo etc
Varias vezes o projeto parou de funcionar entatildeo 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 memoacuteria abundante etc uma das
facilidades eacute a faacutecil alteraccedilatildeo do projeto podendo ser integrado a outro ou ateacute mesmo alterado
para realizar outros tipos de accedilotildees com o touch-screen
Existem vaacuterios melhoramentos que podem ser executados no projeto um deles eacute tentar
interpretar de uma maneira diferente os valores do eixo y pois do jeito que esta a resoluccedilatildeo do
eixo y esta muito baixa dificultando o reconhecimento de toques em aacutereas pequenas Talvez a
inclusatildeo de mais alguns bytes no pacote de leitura da serial resolva o problema
54
Uma ideacuteia para um proacuteximo projeto que use a interface touch-screen poderia ser a
integraccedilatildeo com o projeto do nosso colega Roberto Junqueira ou a desenvolvimento de uma
placa controladora para o touch-screen
Este trabalho eacute uma modesta contribuiccedilatildeo para o uso de FPGAs e do processador embarcado
NIOS implementado em VHDL pela Altera que acredito que vai abrir vaacuterios caminhos pois
com este projeto alguns caminhos ficaram mais faacuteceis de percorrer daqui para a frente
55
CAPIacuteTULO 7 - REFEREcircNCIAS BIBLIOGRAacuteFICAS
AMORE Roberto drsquo VHDL Descriccedilatildeo e Sintese de Circuitos Rio de Janeiro ed LTC
2005
Elotouch Touch-Screen e Controladora Descriccedilatildeo do funcionamento e descriccedilatildeo
tecnologia Touch-Screen lthttpwwwelotouchcombrgt Acesso em fevereiro de 2007
ALTERA University Program IP Cores Instalaccedilatildeo de IP Cores e referencias sobre os
componentes dos kits DE1 e DE2 Disponivel em lthttpwwwalteracomeducationunivip-
coresunv-ip-coreshtmlgt Acesso em abril de 2007
ALTERA NIOS II Documentaccedilatildeo sobre o pprocessador embracado NIO II Disponivel
em lthttpwwwalteracomproductsipprocessorsipm-indexjspgt Acesso em Abril de 2007
ALTERA Development amp Education Board 2 (DE2) Manual do usuario Disponivel no
de que acompanha o Kit DE2 ltDE2_user_manualDE2_UserManualpdfgt Acesso em
fevereiro de 2007
38
Protoacutetipo das telas para os testes esta na Figura 19 a tela verde quando a touch natildeo eacute tocando
na regiatildeo do botatildeo de OK quando o botatildeo de OK for tocado a tela do monitor mudara de cor
ficando azul
Figura 19 ndash Tela do monitor
No Capitulo 2 estatildeo todas as caracteriacutesticas da pinagem e do conector VGA
423 Comunicaccedilatildeo serial
Entre a placa controladora do Touch-Screen e o FPGA existe uma comunicaccedilatildeo 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 manipulaccedilatildeo da imagem que eacute
mostrada no monitor
No capitulo 2 estatildeo das descriccedilotildees dos pinos e do conector da comunicaccedilatildeo Serial
O pacote serial que eacute transmitido pela placa controladora do touch-screen possui 10 bytes de
comprimento e segue a seguinte sequumlecircncia de envio
[55] [54] [] [] [] [] [] [] [] []
Sequumlecircncia dos bytes
Os dois primeiros bytes identificam o Header do pacote
O terceiro byte eacute 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 agrave posiccedilatildeo do eixo x onde a tela foi tocada
O sexto e o seacutetimo byte correspondem a posiccedilatildeo do eixo y onde a tele foi tocada
O restante os bytes identificam o tail do pacote recepcionado pelo kit DE2
39
424 Comunicaccedilatildeo USB-Blaster
Essencial para envio do projeto desenvolvido para o kit DE2 tambeacutem muito utilizado para o
debug deste projeto
435 Memoacuteria SDRAM
A memoacuteria utilizada para armazenar grandes quantidades de dados eacute a SDRAM (ver detalhes
no Capitulo 2)
Essa memoacuteria eacute muito raacutepida serviu muito bem para armazenar o firmware deste projeto
pois tem o tempo acesso ideal para ler as instruccedilotildees que utilizaram a VGA e tambeacutem eacute raacutepida o
suficiente para fazer a leitura dos dados e disponibilizar na saiacuteda VGA do kit
426 Memoacuteria FLASH
Eacute onde seraacute armazenado o firmware possui espaccedilo suficiente para isso 4MB e uma memoacuteria
mais lenta e por isso natildeo foi usada para armazenar dados para serem jogados na vga do Kit
43 Software
431 Software (Firmware)
O software tem de funccedilatildeo de utilizar as bibliotecas das controladoras dos componentes
externos a fim de controlar estes componentes de acordo com o necessaacuterio para atender o
objetivo do projeto
Ou seja uma tela inicial eacute apresentada e o usuaacuterio ao tocar na nela o kit recebe um pacote via
serial e interpreta a posiccedilatildeo da tela em que foi tocado e logo em seguida envia o resultado deste
toque para o monitor
432 Objetivos
O usuaacuterio 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 accedilatildeo de acordo com a posiccedilatildeo da tela
tocada alterando assim a imagem anterior com o resultado do toque
Interpretar o toque de usuaacuterio na tela touch-screen recepccedilatildeo do pacote via serial da placa
controladora do touch-screen tratamento do pacote e interpretaccedilatildeo das coordenadas x e y do
40
toque Realizaccedilatildeo de alguma accedilatildeo que resultara na alteraccedilatildeo da imagem da tela atual de acordo
com a funccedilatildeo em que as coordenadas foram previamente definidas para o que deve ser feito
432 Funccedilotildees
A Tabela 28 tem as principais funccedilotildees que foram implementadas para o sistema
Tabela 28 ndash Funccedilotildees do sistema firmware
FUNCcedilOtildeES Tela de um pequeno editor de texto Tratamento do sinal recebido da serial devido a um toque na tela Interpretaccedilatildeo do pacote serial e transfomaccedilatildeo para coordenadas x e y Transformaccedilatildeo das posiccedilotildees do toque na tela em alguma accedilatildeo enviando o resultado para a VGA Imagem final disponibilizada ao usuaacuterio de acordo com o toque que foi dado na tela Controlar dispositivos cada dispositivo pode ser controlado pelo seu respectivo contrador atraveacutes de seu endereccedilo base VGA SERIAL USB-BLASTER IO(Leds Switches etc) do Kit DE2
O Firmware do processador NIOS II eacute que realizaraacute a integraccedilatildeo entre hardware com
hardware Com o firmware controlando o NIOS II eacute possiacutevel interagir com os dispositivos
externos a FPGA Tornando possiacutevel a integraccedilatildeo da FPGA com a peliacutecula touch-screen e um
monitor sem a ajuda de um PC a uacutenica ajuda do pc seria para enviar dados de uma imagem para
o Kit DE2
44 Validaccedilatildeo e Testes
Inicialmente os moacutedulos da VGA e comunicaccedilatildeo SERIAL natildeo estavam funicionando
apenas o devido agrave fraca documentaccedilatildeo sobre o kit DE2 foi possiacutevel apenas fazer testes com o
Processador NIOS II pois sobre este existem bastantes documentos e exemplos que podem ser
utilizados
Nesta primeira parte foi possiacutevel testar o NIOS II para controlar o display bototildees e switchs
do kit DE2
Com o NIOS II funcionando completamente foi necessaacuterio porta-lo para o kit DE2 o que foi
simples pois como sabemos esses kits satildeo portaacuteveis entre si apenas mudando a pinagem e a
capacidade da FPGA
Com o Kit DE2 foi possiacutevel fazer os testes necessaacuterios com a comunicaccedilatildeo serial
inicialmente testada via terminal conversando diretamente com o kit foi possiacutevel fazer o
seguinte teste os caracteres que eram entrados via teclado chegavam ao kit via serial e o o
41
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 comdumpexe que eacute facilmente encontrado pelas ferramentas
de pesquisa da web e tambeacutem existem vario outros programas como este e o comdump eacute
utilizado para debug da porta serial do pc conectado diretamente na placa controladora do touch-
screen e foi a peccedila chave para o entendimento do pacote enviado pela placa controladora
Figura 20 - Cumdumpexe programa de debug da porta serial
A explicaccedilatildeo de cada byte do pacote esta explicado no item 423
Apos o entendimento completo da transmissatildeo 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 natildeo 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 ateacute o momento em que
foi testado os meacutetodos proprietaacuterios da Altera para fazer a VGA funcionar os meacutetodos esses
implementados em C
A figura 21 onde contem o teste baacutesico feito que foi a chave principal para o sucesso deste
projeto
42
Como dito no item 332 do projeto foram utilizados as funccedilotildees da controladora VGA esses
meacutetodos 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 eacute utilizado o meacutetodo alt_up_vga_draw_pixel( color int
x int y) onde color eacute a cor do bloco de pixels e x e y satildeo as coordenadas da tela onde o bloco
que seraacute pintado
Para escrever um caractere sobre um bloco de pixels pintado eacute utilizado a funccedilatildeo
alt_up_vga_draw_char_1b( char int x int y) onde char eacute o caractere a ser impresso e x e y satildeo
as coordenadas da tela onde os o caractere eacute impresso
Figura 21 - Teste baisco do funcionamento do componente VGA do kit DE2
43
CAPIacuteTULO 5 ndash VALIDACcedilAtildeO E RESULTADOS
Os resultados foram os melhores possiacuteveis pois com a utilizaccedilatildeo dos IP CORE
ldquocontroladorasrdquo dos componentes externos como VGA e SERIAL e seus meacutetodos de para
controle eacute possiacutevel controlar facilmente esses moacutedulos atraveacutes do firmware desenvolvido para o
processador NIOS que consegue realizar operaccedilotildees transparentes acessando dos meacutetodos de
controle dos moacutedulos
Apos os testes baacutesicos 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 baacutesico de editor de texto
A figura 22 mostra um teste utilizando os meacutetodos de controle disponiacuteveis para o IP CORE
da VGA para primeiramente fazer o menu da aplicaccedilatildeo desenvolvido em na linguagem C
Figura 22 ndash Menu baacutesico do editor de texto
Para desenhar o menu da figura acima foi utilizado os meacutetodos proprietaacuterios de controle da
VGA citados no capitulo 4 e tambeacutem estruturas de repeticcedilatildeo para que a tela fosse varrida e os
pixels desenhados nos respectivos lugares da tela bem como os caracteres
Na figura 23 eacute definida a seguinte estrutura em C para representar de um botatildeo
Figura 23 - Estrutura em C para representar um botatildeo
44
A figura 24 eacute a declaraccedilatildeo dos bototildees que seratildeo utilizados pelo aplicativo editor de texto
para comprovar o funcionamento do controle da interface touch-screen
Apenas o que esta dentro da marcaccedilatildeo quadrada representa os bototildees do menu da figura 23
e o restante satildeo os bototildees do teclado do editor de texto
Figura 24 - Declaraccedilatildeo dos bototildees do menu
45
A figura 25 representa o meacutetodo drawnButtonUp responsaacutevel por desenhar os bototildees na tela
de acordo com as posiccedilotildees em que foram declarados os bototildees deste meacutetodo satildeo desenhados
para parecerem que estatildeo ldquolevantadosrdquo e natildeo pressionados
Note que foram utilizados os meacutetodos proprietaacuterios de controle da VGA
alt_up_vga_draw_pixel pra pitar os pixels e alt_up_vga_draw_char_b1 para desenhar caracteres
como jaacute foi especificado no item 44 do projeto
Figura 25 ndash Meacutetodo drawButtonUp
46
O meacutetodo que desenha o caption do botatildeo se chama drawButtonText desenha os caracteres
em cima dos bototildees natildeo importa se o botatildeo esta pressionado ou natildeo
A figura 26 mostra como este meacutetodo foi implementado e ele eacute chamado no final de cada
meacutetodo onde algum tipo de botatildeo eacute desenhado quando o meacutetodo que desenha o botatildeo normal
quanto o pressionado e ateacute mesmo o do teclado
Figura 26 ndash Meacutetodo que escreve o caption de cada botatildeo
47
A figura 27 mostra o meacutetodo drawButtonDown que desenha o botatildeo pressionado ou seja
quando o usuaacuterio pressiona a regiatildeo correspondente a um botatildeo do menu no touch-screen o
mesmo redesenharaacute o botatildeo parecendo um efeito de botatildeo afundado note que no final do
meacutetodo novamente eacute chamado o meacutetodo drawButtonText que reescreveraacute o caption do botatildeo
como mostra o meacutetodo da figura 26 e esta ilustrado na figura 28
Figura 27 ndash Meacutetodo que desenha o botatildeo pressionado
48
Dependendo da aacuterea do menu que o usuaacuterio pressionar no touch-screen causar o efeito de
pressionado como mostra a figura 28
Figura 28 ndash Efeito do botatildeo de menu apertado
Na figura 29 eacute a representaccedilatildeo de quando a aacuterea correspondente ao botatildeo ldquoamarelordquo eacute
pressionada
Apos estes testes baacutesicos comprovando o funcionamento da interface graacutefica para o usuaacuterio
foi definido o restante dos componentes da tela que eacute constituiacutedo de um prompt e um teclado
qwerty que foi essencial para comprovar o perfeito funcionamento do controle da interface
touch-screen
49
51 Interface Grafica Final
A figura 29 mostra a interface final que o usuaacuterio teraacute para poder verificar o funcionamento
do controle da interface touch-screen
Figura 29 ndash Interface final touch-screen do usuaacuterio
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
511 Descriccedilatildeo do editor de texto
O menu possui 4 botoes cada um com sua respectiva funcionalidade quando o usuario
pressiona a area do botatildeo ldquoapagarrdquo uma vez entatildeo um carectere do prompt eacute apagado Quando eacute
precionado a area correspondente ao botatildeo ldquoResetrdquo todo o conteudo do prompt seraacute apagado e o
plano de fundo retornaraacute a cor branca Quando o botatildeo ldquoamarelordquo eacute pressionado o fundo da tela
passa a ser amarelo e o mesmo acontece se o usuario precionar o botatildeo verde tornando o cor de
fundo verde
50
O teclado possui 29 teclas sendo duas delas que equivalem ao ENTRA ldquoENTrdquo e ao
SPACE ldquoSPCrdquo Quando o usuario pressiona a area correspondente a algum botatildeo do teclado o
mesmo muda sua cor para azul e o seu caractere eacute disponibilizado no prompt
Essas funcionalidades nada mais satildeo do que um bom exemplo de como funciona
corretamente o controle da interface touch-screen
52 Prompt e o Teclado
A estrutura feita na linguagem C que define o prompt da figura 28 esta representado na
figura 30
Figura 30 ndash Estrutura em C para representar o prompt
A figura 31 mostra o metodo drawPrompt utilizado para desenhar na tela o prompt
Figura 31 ndash Meacutetodo que desenha o prompt
51
A estrutura do teclado eacute a mesma utilizada pela figura 23 e tambem eacute criado satildeo
inicializados na figura 24
O restante as implementaccedilotildees estatildeo disponiveis no cd deste documento
Quando algum botatildeo do teclado eacute pressionado sua cor muda para azul e sua letra
correspondente eacute escrita o prompt
A figura 32 ilustra quando o usuaacuterio aperta a letra lsquotrsquo na peliacutecula touch-screen
Figura 32 - Teste do prompt e o teclado
52
53 Controle da Interface Touch-Screen
Depois do todos os testes com o processador NIOS e a integraccedilatildeo do mesmo com os
moacutedulos externos como a porta SERIAL e a saiacuteda VGA eacute possiacutevel utilizando o touch-screen
criar uma interface amigaacutevel e faacutecil de usar para o usuaacuterio utilizando um firmware capaz de
interpretar os sinais via serial vindo da controladora do touch ao detectar que um toque foi dado
pelo usuaacuterio e realizar algumas accedilotildees que neste caso se comportam como um editor de texto
baacutesico
A figura 33 mostra como foi validado este projeto e seus moacutedulos controlando uma
interface touch-screen para chegar no resultado abaixo digitado pelo usuaacuterio comprovando o
funcionamento e viabilidade deste projeto
Figura 33 ndash 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 mudanccedilas podendo ser alterado rapidamente o tipo de
aplicaccedilatildeo ou integrado rapidamente com outro projeto
53
CAPIacuteTULO 6 - CONCLUSAtildeO
Uma das principais dificuldades no desenvolvimento deste projeto foi fazer o levantamento
da documentaccedilatildeo sobre o processador NIOS e os moacutedulos externos a FPGA do Kit DE2 Como
natildeo foi feito algum projeto antes que utilizasse a interface VGA e a SERIAL do Kit DE2 levou-
se muito tempo ateacute conseguir adquirir e ordenar o conhecimento que foi sendo adquirido ateacute
conseguir dar os primeiros passos e realizar os primeiros testes com a VGA e a SERIAL Outro
grande obstaacuteculo foi ter de descobrir que para que o NIOS controlasse os moacutedulos externos a
FGPA fosse necessaacuterio copiar os arquivos c e h dos respectivos componente para dentro do
projeto
Mas depois de todos os problemas com os moacutedulos externos solucionados cada modulo do
projeto foi sendo desenvolvido separadamente ateacute seu total funcionamento Natildeo tive dificuldades
com a linguagem da programaccedilatildeo pois o Firmware do processador NIOS eacute o C a qual mais tive
contato na faculdade
Outro desafio foi fazer a peliacutecula 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
peliacutecula natildeo 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 possiacutevel
comeccedilar a fazer os testes necessaacuterios para prosseguir com o projeto aprender como o a peliacutecula
identifica um toque e manda este sinal para a controladora e a controladora transforma este sinal
em um sinal serial que eacute 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 accedilotildees
que as coordenadas jaacute estatildeo previamente calibradas no firmware para fazer bem como mudar de
cor a tela fazer o efeito de um botatildeo subindo e descendo etc
Varias vezes o projeto parou de funcionar entatildeo 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 memoacuteria abundante etc uma das
facilidades eacute a faacutecil alteraccedilatildeo do projeto podendo ser integrado a outro ou ateacute mesmo alterado
para realizar outros tipos de accedilotildees com o touch-screen
Existem vaacuterios melhoramentos que podem ser executados no projeto um deles eacute tentar
interpretar de uma maneira diferente os valores do eixo y pois do jeito que esta a resoluccedilatildeo do
eixo y esta muito baixa dificultando o reconhecimento de toques em aacutereas pequenas Talvez a
inclusatildeo de mais alguns bytes no pacote de leitura da serial resolva o problema
54
Uma ideacuteia para um proacuteximo projeto que use a interface touch-screen poderia ser a
integraccedilatildeo com o projeto do nosso colega Roberto Junqueira ou a desenvolvimento de uma
placa controladora para o touch-screen
Este trabalho eacute uma modesta contribuiccedilatildeo para o uso de FPGAs e do processador embarcado
NIOS implementado em VHDL pela Altera que acredito que vai abrir vaacuterios caminhos pois
com este projeto alguns caminhos ficaram mais faacuteceis de percorrer daqui para a frente
55
CAPIacuteTULO 7 - REFEREcircNCIAS BIBLIOGRAacuteFICAS
AMORE Roberto drsquo VHDL Descriccedilatildeo e Sintese de Circuitos Rio de Janeiro ed LTC
2005
Elotouch Touch-Screen e Controladora Descriccedilatildeo do funcionamento e descriccedilatildeo
tecnologia Touch-Screen lthttpwwwelotouchcombrgt Acesso em fevereiro de 2007
ALTERA University Program IP Cores Instalaccedilatildeo de IP Cores e referencias sobre os
componentes dos kits DE1 e DE2 Disponivel em lthttpwwwalteracomeducationunivip-
coresunv-ip-coreshtmlgt Acesso em abril de 2007
ALTERA NIOS II Documentaccedilatildeo sobre o pprocessador embracado NIO II Disponivel
em lthttpwwwalteracomproductsipprocessorsipm-indexjspgt Acesso em Abril de 2007
ALTERA Development amp Education Board 2 (DE2) Manual do usuario Disponivel no
de que acompanha o Kit DE2 ltDE2_user_manualDE2_UserManualpdfgt Acesso em
fevereiro de 2007
39
424 Comunicaccedilatildeo USB-Blaster
Essencial para envio do projeto desenvolvido para o kit DE2 tambeacutem muito utilizado para o
debug deste projeto
435 Memoacuteria SDRAM
A memoacuteria utilizada para armazenar grandes quantidades de dados eacute a SDRAM (ver detalhes
no Capitulo 2)
Essa memoacuteria eacute muito raacutepida serviu muito bem para armazenar o firmware deste projeto
pois tem o tempo acesso ideal para ler as instruccedilotildees que utilizaram a VGA e tambeacutem eacute raacutepida o
suficiente para fazer a leitura dos dados e disponibilizar na saiacuteda VGA do kit
426 Memoacuteria FLASH
Eacute onde seraacute armazenado o firmware possui espaccedilo suficiente para isso 4MB e uma memoacuteria
mais lenta e por isso natildeo foi usada para armazenar dados para serem jogados na vga do Kit
43 Software
431 Software (Firmware)
O software tem de funccedilatildeo de utilizar as bibliotecas das controladoras dos componentes
externos a fim de controlar estes componentes de acordo com o necessaacuterio para atender o
objetivo do projeto
Ou seja uma tela inicial eacute apresentada e o usuaacuterio ao tocar na nela o kit recebe um pacote via
serial e interpreta a posiccedilatildeo da tela em que foi tocado e logo em seguida envia o resultado deste
toque para o monitor
432 Objetivos
O usuaacuterio 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 accedilatildeo de acordo com a posiccedilatildeo da tela
tocada alterando assim a imagem anterior com o resultado do toque
Interpretar o toque de usuaacuterio na tela touch-screen recepccedilatildeo do pacote via serial da placa
controladora do touch-screen tratamento do pacote e interpretaccedilatildeo das coordenadas x e y do
40
toque Realizaccedilatildeo de alguma accedilatildeo que resultara na alteraccedilatildeo da imagem da tela atual de acordo
com a funccedilatildeo em que as coordenadas foram previamente definidas para o que deve ser feito
432 Funccedilotildees
A Tabela 28 tem as principais funccedilotildees que foram implementadas para o sistema
Tabela 28 ndash Funccedilotildees do sistema firmware
FUNCcedilOtildeES Tela de um pequeno editor de texto Tratamento do sinal recebido da serial devido a um toque na tela Interpretaccedilatildeo do pacote serial e transfomaccedilatildeo para coordenadas x e y Transformaccedilatildeo das posiccedilotildees do toque na tela em alguma accedilatildeo enviando o resultado para a VGA Imagem final disponibilizada ao usuaacuterio de acordo com o toque que foi dado na tela Controlar dispositivos cada dispositivo pode ser controlado pelo seu respectivo contrador atraveacutes de seu endereccedilo base VGA SERIAL USB-BLASTER IO(Leds Switches etc) do Kit DE2
O Firmware do processador NIOS II eacute que realizaraacute a integraccedilatildeo entre hardware com
hardware Com o firmware controlando o NIOS II eacute possiacutevel interagir com os dispositivos
externos a FPGA Tornando possiacutevel a integraccedilatildeo da FPGA com a peliacutecula touch-screen e um
monitor sem a ajuda de um PC a uacutenica ajuda do pc seria para enviar dados de uma imagem para
o Kit DE2
44 Validaccedilatildeo e Testes
Inicialmente os moacutedulos da VGA e comunicaccedilatildeo SERIAL natildeo estavam funicionando
apenas o devido agrave fraca documentaccedilatildeo sobre o kit DE2 foi possiacutevel apenas fazer testes com o
Processador NIOS II pois sobre este existem bastantes documentos e exemplos que podem ser
utilizados
Nesta primeira parte foi possiacutevel testar o NIOS II para controlar o display bototildees e switchs
do kit DE2
Com o NIOS II funcionando completamente foi necessaacuterio porta-lo para o kit DE2 o que foi
simples pois como sabemos esses kits satildeo portaacuteveis entre si apenas mudando a pinagem e a
capacidade da FPGA
Com o Kit DE2 foi possiacutevel fazer os testes necessaacuterios com a comunicaccedilatildeo serial
inicialmente testada via terminal conversando diretamente com o kit foi possiacutevel fazer o
seguinte teste os caracteres que eram entrados via teclado chegavam ao kit via serial e o o
41
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 comdumpexe que eacute facilmente encontrado pelas ferramentas
de pesquisa da web e tambeacutem existem vario outros programas como este e o comdump eacute
utilizado para debug da porta serial do pc conectado diretamente na placa controladora do touch-
screen e foi a peccedila chave para o entendimento do pacote enviado pela placa controladora
Figura 20 - Cumdumpexe programa de debug da porta serial
A explicaccedilatildeo de cada byte do pacote esta explicado no item 423
Apos o entendimento completo da transmissatildeo 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 natildeo 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 ateacute o momento em que
foi testado os meacutetodos proprietaacuterios da Altera para fazer a VGA funcionar os meacutetodos esses
implementados em C
A figura 21 onde contem o teste baacutesico feito que foi a chave principal para o sucesso deste
projeto
42
Como dito no item 332 do projeto foram utilizados as funccedilotildees da controladora VGA esses
meacutetodos 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 eacute utilizado o meacutetodo alt_up_vga_draw_pixel( color int
x int y) onde color eacute a cor do bloco de pixels e x e y satildeo as coordenadas da tela onde o bloco
que seraacute pintado
Para escrever um caractere sobre um bloco de pixels pintado eacute utilizado a funccedilatildeo
alt_up_vga_draw_char_1b( char int x int y) onde char eacute o caractere a ser impresso e x e y satildeo
as coordenadas da tela onde os o caractere eacute impresso
Figura 21 - Teste baisco do funcionamento do componente VGA do kit DE2
43
CAPIacuteTULO 5 ndash VALIDACcedilAtildeO E RESULTADOS
Os resultados foram os melhores possiacuteveis pois com a utilizaccedilatildeo dos IP CORE
ldquocontroladorasrdquo dos componentes externos como VGA e SERIAL e seus meacutetodos de para
controle eacute possiacutevel controlar facilmente esses moacutedulos atraveacutes do firmware desenvolvido para o
processador NIOS que consegue realizar operaccedilotildees transparentes acessando dos meacutetodos de
controle dos moacutedulos
Apos os testes baacutesicos 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 baacutesico de editor de texto
A figura 22 mostra um teste utilizando os meacutetodos de controle disponiacuteveis para o IP CORE
da VGA para primeiramente fazer o menu da aplicaccedilatildeo desenvolvido em na linguagem C
Figura 22 ndash Menu baacutesico do editor de texto
Para desenhar o menu da figura acima foi utilizado os meacutetodos proprietaacuterios de controle da
VGA citados no capitulo 4 e tambeacutem estruturas de repeticcedilatildeo para que a tela fosse varrida e os
pixels desenhados nos respectivos lugares da tela bem como os caracteres
Na figura 23 eacute definida a seguinte estrutura em C para representar de um botatildeo
Figura 23 - Estrutura em C para representar um botatildeo
44
A figura 24 eacute a declaraccedilatildeo dos bototildees que seratildeo utilizados pelo aplicativo editor de texto
para comprovar o funcionamento do controle da interface touch-screen
Apenas o que esta dentro da marcaccedilatildeo quadrada representa os bototildees do menu da figura 23
e o restante satildeo os bototildees do teclado do editor de texto
Figura 24 - Declaraccedilatildeo dos bototildees do menu
45
A figura 25 representa o meacutetodo drawnButtonUp responsaacutevel por desenhar os bototildees na tela
de acordo com as posiccedilotildees em que foram declarados os bototildees deste meacutetodo satildeo desenhados
para parecerem que estatildeo ldquolevantadosrdquo e natildeo pressionados
Note que foram utilizados os meacutetodos proprietaacuterios de controle da VGA
alt_up_vga_draw_pixel pra pitar os pixels e alt_up_vga_draw_char_b1 para desenhar caracteres
como jaacute foi especificado no item 44 do projeto
Figura 25 ndash Meacutetodo drawButtonUp
46
O meacutetodo que desenha o caption do botatildeo se chama drawButtonText desenha os caracteres
em cima dos bototildees natildeo importa se o botatildeo esta pressionado ou natildeo
A figura 26 mostra como este meacutetodo foi implementado e ele eacute chamado no final de cada
meacutetodo onde algum tipo de botatildeo eacute desenhado quando o meacutetodo que desenha o botatildeo normal
quanto o pressionado e ateacute mesmo o do teclado
Figura 26 ndash Meacutetodo que escreve o caption de cada botatildeo
47
A figura 27 mostra o meacutetodo drawButtonDown que desenha o botatildeo pressionado ou seja
quando o usuaacuterio pressiona a regiatildeo correspondente a um botatildeo do menu no touch-screen o
mesmo redesenharaacute o botatildeo parecendo um efeito de botatildeo afundado note que no final do
meacutetodo novamente eacute chamado o meacutetodo drawButtonText que reescreveraacute o caption do botatildeo
como mostra o meacutetodo da figura 26 e esta ilustrado na figura 28
Figura 27 ndash Meacutetodo que desenha o botatildeo pressionado
48
Dependendo da aacuterea do menu que o usuaacuterio pressionar no touch-screen causar o efeito de
pressionado como mostra a figura 28
Figura 28 ndash Efeito do botatildeo de menu apertado
Na figura 29 eacute a representaccedilatildeo de quando a aacuterea correspondente ao botatildeo ldquoamarelordquo eacute
pressionada
Apos estes testes baacutesicos comprovando o funcionamento da interface graacutefica para o usuaacuterio
foi definido o restante dos componentes da tela que eacute constituiacutedo de um prompt e um teclado
qwerty que foi essencial para comprovar o perfeito funcionamento do controle da interface
touch-screen
49
51 Interface Grafica Final
A figura 29 mostra a interface final que o usuaacuterio teraacute para poder verificar o funcionamento
do controle da interface touch-screen
Figura 29 ndash Interface final touch-screen do usuaacuterio
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
511 Descriccedilatildeo do editor de texto
O menu possui 4 botoes cada um com sua respectiva funcionalidade quando o usuario
pressiona a area do botatildeo ldquoapagarrdquo uma vez entatildeo um carectere do prompt eacute apagado Quando eacute
precionado a area correspondente ao botatildeo ldquoResetrdquo todo o conteudo do prompt seraacute apagado e o
plano de fundo retornaraacute a cor branca Quando o botatildeo ldquoamarelordquo eacute pressionado o fundo da tela
passa a ser amarelo e o mesmo acontece se o usuario precionar o botatildeo verde tornando o cor de
fundo verde
50
O teclado possui 29 teclas sendo duas delas que equivalem ao ENTRA ldquoENTrdquo e ao
SPACE ldquoSPCrdquo Quando o usuario pressiona a area correspondente a algum botatildeo do teclado o
mesmo muda sua cor para azul e o seu caractere eacute disponibilizado no prompt
Essas funcionalidades nada mais satildeo do que um bom exemplo de como funciona
corretamente o controle da interface touch-screen
52 Prompt e o Teclado
A estrutura feita na linguagem C que define o prompt da figura 28 esta representado na
figura 30
Figura 30 ndash Estrutura em C para representar o prompt
A figura 31 mostra o metodo drawPrompt utilizado para desenhar na tela o prompt
Figura 31 ndash Meacutetodo que desenha o prompt
51
A estrutura do teclado eacute a mesma utilizada pela figura 23 e tambem eacute criado satildeo
inicializados na figura 24
O restante as implementaccedilotildees estatildeo disponiveis no cd deste documento
Quando algum botatildeo do teclado eacute pressionado sua cor muda para azul e sua letra
correspondente eacute escrita o prompt
A figura 32 ilustra quando o usuaacuterio aperta a letra lsquotrsquo na peliacutecula touch-screen
Figura 32 - Teste do prompt e o teclado
52
53 Controle da Interface Touch-Screen
Depois do todos os testes com o processador NIOS e a integraccedilatildeo do mesmo com os
moacutedulos externos como a porta SERIAL e a saiacuteda VGA eacute possiacutevel utilizando o touch-screen
criar uma interface amigaacutevel e faacutecil de usar para o usuaacuterio utilizando um firmware capaz de
interpretar os sinais via serial vindo da controladora do touch ao detectar que um toque foi dado
pelo usuaacuterio e realizar algumas accedilotildees que neste caso se comportam como um editor de texto
baacutesico
A figura 33 mostra como foi validado este projeto e seus moacutedulos controlando uma
interface touch-screen para chegar no resultado abaixo digitado pelo usuaacuterio comprovando o
funcionamento e viabilidade deste projeto
Figura 33 ndash 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 mudanccedilas podendo ser alterado rapidamente o tipo de
aplicaccedilatildeo ou integrado rapidamente com outro projeto
53
CAPIacuteTULO 6 - CONCLUSAtildeO
Uma das principais dificuldades no desenvolvimento deste projeto foi fazer o levantamento
da documentaccedilatildeo sobre o processador NIOS e os moacutedulos externos a FPGA do Kit DE2 Como
natildeo foi feito algum projeto antes que utilizasse a interface VGA e a SERIAL do Kit DE2 levou-
se muito tempo ateacute conseguir adquirir e ordenar o conhecimento que foi sendo adquirido ateacute
conseguir dar os primeiros passos e realizar os primeiros testes com a VGA e a SERIAL Outro
grande obstaacuteculo foi ter de descobrir que para que o NIOS controlasse os moacutedulos externos a
FGPA fosse necessaacuterio copiar os arquivos c e h dos respectivos componente para dentro do
projeto
Mas depois de todos os problemas com os moacutedulos externos solucionados cada modulo do
projeto foi sendo desenvolvido separadamente ateacute seu total funcionamento Natildeo tive dificuldades
com a linguagem da programaccedilatildeo pois o Firmware do processador NIOS eacute o C a qual mais tive
contato na faculdade
Outro desafio foi fazer a peliacutecula 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
peliacutecula natildeo 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 possiacutevel
comeccedilar a fazer os testes necessaacuterios para prosseguir com o projeto aprender como o a peliacutecula
identifica um toque e manda este sinal para a controladora e a controladora transforma este sinal
em um sinal serial que eacute 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 accedilotildees
que as coordenadas jaacute estatildeo previamente calibradas no firmware para fazer bem como mudar de
cor a tela fazer o efeito de um botatildeo subindo e descendo etc
Varias vezes o projeto parou de funcionar entatildeo 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 memoacuteria abundante etc uma das
facilidades eacute a faacutecil alteraccedilatildeo do projeto podendo ser integrado a outro ou ateacute mesmo alterado
para realizar outros tipos de accedilotildees com o touch-screen
Existem vaacuterios melhoramentos que podem ser executados no projeto um deles eacute tentar
interpretar de uma maneira diferente os valores do eixo y pois do jeito que esta a resoluccedilatildeo do
eixo y esta muito baixa dificultando o reconhecimento de toques em aacutereas pequenas Talvez a
inclusatildeo de mais alguns bytes no pacote de leitura da serial resolva o problema
54
Uma ideacuteia para um proacuteximo projeto que use a interface touch-screen poderia ser a
integraccedilatildeo com o projeto do nosso colega Roberto Junqueira ou a desenvolvimento de uma
placa controladora para o touch-screen
Este trabalho eacute uma modesta contribuiccedilatildeo para o uso de FPGAs e do processador embarcado
NIOS implementado em VHDL pela Altera que acredito que vai abrir vaacuterios caminhos pois
com este projeto alguns caminhos ficaram mais faacuteceis de percorrer daqui para a frente
55
CAPIacuteTULO 7 - REFEREcircNCIAS BIBLIOGRAacuteFICAS
AMORE Roberto drsquo VHDL Descriccedilatildeo e Sintese de Circuitos Rio de Janeiro ed LTC
2005
Elotouch Touch-Screen e Controladora Descriccedilatildeo do funcionamento e descriccedilatildeo
tecnologia Touch-Screen lthttpwwwelotouchcombrgt Acesso em fevereiro de 2007
ALTERA University Program IP Cores Instalaccedilatildeo de IP Cores e referencias sobre os
componentes dos kits DE1 e DE2 Disponivel em lthttpwwwalteracomeducationunivip-
coresunv-ip-coreshtmlgt Acesso em abril de 2007
ALTERA NIOS II Documentaccedilatildeo sobre o pprocessador embracado NIO II Disponivel
em lthttpwwwalteracomproductsipprocessorsipm-indexjspgt Acesso em Abril de 2007
ALTERA Development amp Education Board 2 (DE2) Manual do usuario Disponivel no
de que acompanha o Kit DE2 ltDE2_user_manualDE2_UserManualpdfgt Acesso em
fevereiro de 2007
40
toque Realizaccedilatildeo de alguma accedilatildeo que resultara na alteraccedilatildeo da imagem da tela atual de acordo
com a funccedilatildeo em que as coordenadas foram previamente definidas para o que deve ser feito
432 Funccedilotildees
A Tabela 28 tem as principais funccedilotildees que foram implementadas para o sistema
Tabela 28 ndash Funccedilotildees do sistema firmware
FUNCcedilOtildeES Tela de um pequeno editor de texto Tratamento do sinal recebido da serial devido a um toque na tela Interpretaccedilatildeo do pacote serial e transfomaccedilatildeo para coordenadas x e y Transformaccedilatildeo das posiccedilotildees do toque na tela em alguma accedilatildeo enviando o resultado para a VGA Imagem final disponibilizada ao usuaacuterio de acordo com o toque que foi dado na tela Controlar dispositivos cada dispositivo pode ser controlado pelo seu respectivo contrador atraveacutes de seu endereccedilo base VGA SERIAL USB-BLASTER IO(Leds Switches etc) do Kit DE2
O Firmware do processador NIOS II eacute que realizaraacute a integraccedilatildeo entre hardware com
hardware Com o firmware controlando o NIOS II eacute possiacutevel interagir com os dispositivos
externos a FPGA Tornando possiacutevel a integraccedilatildeo da FPGA com a peliacutecula touch-screen e um
monitor sem a ajuda de um PC a uacutenica ajuda do pc seria para enviar dados de uma imagem para
o Kit DE2
44 Validaccedilatildeo e Testes
Inicialmente os moacutedulos da VGA e comunicaccedilatildeo SERIAL natildeo estavam funicionando
apenas o devido agrave fraca documentaccedilatildeo sobre o kit DE2 foi possiacutevel apenas fazer testes com o
Processador NIOS II pois sobre este existem bastantes documentos e exemplos que podem ser
utilizados
Nesta primeira parte foi possiacutevel testar o NIOS II para controlar o display bototildees e switchs
do kit DE2
Com o NIOS II funcionando completamente foi necessaacuterio porta-lo para o kit DE2 o que foi
simples pois como sabemos esses kits satildeo portaacuteveis entre si apenas mudando a pinagem e a
capacidade da FPGA
Com o Kit DE2 foi possiacutevel fazer os testes necessaacuterios com a comunicaccedilatildeo serial
inicialmente testada via terminal conversando diretamente com o kit foi possiacutevel fazer o
seguinte teste os caracteres que eram entrados via teclado chegavam ao kit via serial e o o
41
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 comdumpexe que eacute facilmente encontrado pelas ferramentas
de pesquisa da web e tambeacutem existem vario outros programas como este e o comdump eacute
utilizado para debug da porta serial do pc conectado diretamente na placa controladora do touch-
screen e foi a peccedila chave para o entendimento do pacote enviado pela placa controladora
Figura 20 - Cumdumpexe programa de debug da porta serial
A explicaccedilatildeo de cada byte do pacote esta explicado no item 423
Apos o entendimento completo da transmissatildeo 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 natildeo 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 ateacute o momento em que
foi testado os meacutetodos proprietaacuterios da Altera para fazer a VGA funcionar os meacutetodos esses
implementados em C
A figura 21 onde contem o teste baacutesico feito que foi a chave principal para o sucesso deste
projeto
42
Como dito no item 332 do projeto foram utilizados as funccedilotildees da controladora VGA esses
meacutetodos 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 eacute utilizado o meacutetodo alt_up_vga_draw_pixel( color int
x int y) onde color eacute a cor do bloco de pixels e x e y satildeo as coordenadas da tela onde o bloco
que seraacute pintado
Para escrever um caractere sobre um bloco de pixels pintado eacute utilizado a funccedilatildeo
alt_up_vga_draw_char_1b( char int x int y) onde char eacute o caractere a ser impresso e x e y satildeo
as coordenadas da tela onde os o caractere eacute impresso
Figura 21 - Teste baisco do funcionamento do componente VGA do kit DE2
43
CAPIacuteTULO 5 ndash VALIDACcedilAtildeO E RESULTADOS
Os resultados foram os melhores possiacuteveis pois com a utilizaccedilatildeo dos IP CORE
ldquocontroladorasrdquo dos componentes externos como VGA e SERIAL e seus meacutetodos de para
controle eacute possiacutevel controlar facilmente esses moacutedulos atraveacutes do firmware desenvolvido para o
processador NIOS que consegue realizar operaccedilotildees transparentes acessando dos meacutetodos de
controle dos moacutedulos
Apos os testes baacutesicos 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 baacutesico de editor de texto
A figura 22 mostra um teste utilizando os meacutetodos de controle disponiacuteveis para o IP CORE
da VGA para primeiramente fazer o menu da aplicaccedilatildeo desenvolvido em na linguagem C
Figura 22 ndash Menu baacutesico do editor de texto
Para desenhar o menu da figura acima foi utilizado os meacutetodos proprietaacuterios de controle da
VGA citados no capitulo 4 e tambeacutem estruturas de repeticcedilatildeo para que a tela fosse varrida e os
pixels desenhados nos respectivos lugares da tela bem como os caracteres
Na figura 23 eacute definida a seguinte estrutura em C para representar de um botatildeo
Figura 23 - Estrutura em C para representar um botatildeo
44
A figura 24 eacute a declaraccedilatildeo dos bototildees que seratildeo utilizados pelo aplicativo editor de texto
para comprovar o funcionamento do controle da interface touch-screen
Apenas o que esta dentro da marcaccedilatildeo quadrada representa os bototildees do menu da figura 23
e o restante satildeo os bototildees do teclado do editor de texto
Figura 24 - Declaraccedilatildeo dos bototildees do menu
45
A figura 25 representa o meacutetodo drawnButtonUp responsaacutevel por desenhar os bototildees na tela
de acordo com as posiccedilotildees em que foram declarados os bototildees deste meacutetodo satildeo desenhados
para parecerem que estatildeo ldquolevantadosrdquo e natildeo pressionados
Note que foram utilizados os meacutetodos proprietaacuterios de controle da VGA
alt_up_vga_draw_pixel pra pitar os pixels e alt_up_vga_draw_char_b1 para desenhar caracteres
como jaacute foi especificado no item 44 do projeto
Figura 25 ndash Meacutetodo drawButtonUp
46
O meacutetodo que desenha o caption do botatildeo se chama drawButtonText desenha os caracteres
em cima dos bototildees natildeo importa se o botatildeo esta pressionado ou natildeo
A figura 26 mostra como este meacutetodo foi implementado e ele eacute chamado no final de cada
meacutetodo onde algum tipo de botatildeo eacute desenhado quando o meacutetodo que desenha o botatildeo normal
quanto o pressionado e ateacute mesmo o do teclado
Figura 26 ndash Meacutetodo que escreve o caption de cada botatildeo
47
A figura 27 mostra o meacutetodo drawButtonDown que desenha o botatildeo pressionado ou seja
quando o usuaacuterio pressiona a regiatildeo correspondente a um botatildeo do menu no touch-screen o
mesmo redesenharaacute o botatildeo parecendo um efeito de botatildeo afundado note que no final do
meacutetodo novamente eacute chamado o meacutetodo drawButtonText que reescreveraacute o caption do botatildeo
como mostra o meacutetodo da figura 26 e esta ilustrado na figura 28
Figura 27 ndash Meacutetodo que desenha o botatildeo pressionado
48
Dependendo da aacuterea do menu que o usuaacuterio pressionar no touch-screen causar o efeito de
pressionado como mostra a figura 28
Figura 28 ndash Efeito do botatildeo de menu apertado
Na figura 29 eacute a representaccedilatildeo de quando a aacuterea correspondente ao botatildeo ldquoamarelordquo eacute
pressionada
Apos estes testes baacutesicos comprovando o funcionamento da interface graacutefica para o usuaacuterio
foi definido o restante dos componentes da tela que eacute constituiacutedo de um prompt e um teclado
qwerty que foi essencial para comprovar o perfeito funcionamento do controle da interface
touch-screen
49
51 Interface Grafica Final
A figura 29 mostra a interface final que o usuaacuterio teraacute para poder verificar o funcionamento
do controle da interface touch-screen
Figura 29 ndash Interface final touch-screen do usuaacuterio
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
511 Descriccedilatildeo do editor de texto
O menu possui 4 botoes cada um com sua respectiva funcionalidade quando o usuario
pressiona a area do botatildeo ldquoapagarrdquo uma vez entatildeo um carectere do prompt eacute apagado Quando eacute
precionado a area correspondente ao botatildeo ldquoResetrdquo todo o conteudo do prompt seraacute apagado e o
plano de fundo retornaraacute a cor branca Quando o botatildeo ldquoamarelordquo eacute pressionado o fundo da tela
passa a ser amarelo e o mesmo acontece se o usuario precionar o botatildeo verde tornando o cor de
fundo verde
50
O teclado possui 29 teclas sendo duas delas que equivalem ao ENTRA ldquoENTrdquo e ao
SPACE ldquoSPCrdquo Quando o usuario pressiona a area correspondente a algum botatildeo do teclado o
mesmo muda sua cor para azul e o seu caractere eacute disponibilizado no prompt
Essas funcionalidades nada mais satildeo do que um bom exemplo de como funciona
corretamente o controle da interface touch-screen
52 Prompt e o Teclado
A estrutura feita na linguagem C que define o prompt da figura 28 esta representado na
figura 30
Figura 30 ndash Estrutura em C para representar o prompt
A figura 31 mostra o metodo drawPrompt utilizado para desenhar na tela o prompt
Figura 31 ndash Meacutetodo que desenha o prompt
51
A estrutura do teclado eacute a mesma utilizada pela figura 23 e tambem eacute criado satildeo
inicializados na figura 24
O restante as implementaccedilotildees estatildeo disponiveis no cd deste documento
Quando algum botatildeo do teclado eacute pressionado sua cor muda para azul e sua letra
correspondente eacute escrita o prompt
A figura 32 ilustra quando o usuaacuterio aperta a letra lsquotrsquo na peliacutecula touch-screen
Figura 32 - Teste do prompt e o teclado
52
53 Controle da Interface Touch-Screen
Depois do todos os testes com o processador NIOS e a integraccedilatildeo do mesmo com os
moacutedulos externos como a porta SERIAL e a saiacuteda VGA eacute possiacutevel utilizando o touch-screen
criar uma interface amigaacutevel e faacutecil de usar para o usuaacuterio utilizando um firmware capaz de
interpretar os sinais via serial vindo da controladora do touch ao detectar que um toque foi dado
pelo usuaacuterio e realizar algumas accedilotildees que neste caso se comportam como um editor de texto
baacutesico
A figura 33 mostra como foi validado este projeto e seus moacutedulos controlando uma
interface touch-screen para chegar no resultado abaixo digitado pelo usuaacuterio comprovando o
funcionamento e viabilidade deste projeto
Figura 33 ndash 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 mudanccedilas podendo ser alterado rapidamente o tipo de
aplicaccedilatildeo ou integrado rapidamente com outro projeto
53
CAPIacuteTULO 6 - CONCLUSAtildeO
Uma das principais dificuldades no desenvolvimento deste projeto foi fazer o levantamento
da documentaccedilatildeo sobre o processador NIOS e os moacutedulos externos a FPGA do Kit DE2 Como
natildeo foi feito algum projeto antes que utilizasse a interface VGA e a SERIAL do Kit DE2 levou-
se muito tempo ateacute conseguir adquirir e ordenar o conhecimento que foi sendo adquirido ateacute
conseguir dar os primeiros passos e realizar os primeiros testes com a VGA e a SERIAL Outro
grande obstaacuteculo foi ter de descobrir que para que o NIOS controlasse os moacutedulos externos a
FGPA fosse necessaacuterio copiar os arquivos c e h dos respectivos componente para dentro do
projeto
Mas depois de todos os problemas com os moacutedulos externos solucionados cada modulo do
projeto foi sendo desenvolvido separadamente ateacute seu total funcionamento Natildeo tive dificuldades
com a linguagem da programaccedilatildeo pois o Firmware do processador NIOS eacute o C a qual mais tive
contato na faculdade
Outro desafio foi fazer a peliacutecula 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
peliacutecula natildeo 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 possiacutevel
comeccedilar a fazer os testes necessaacuterios para prosseguir com o projeto aprender como o a peliacutecula
identifica um toque e manda este sinal para a controladora e a controladora transforma este sinal
em um sinal serial que eacute 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 accedilotildees
que as coordenadas jaacute estatildeo previamente calibradas no firmware para fazer bem como mudar de
cor a tela fazer o efeito de um botatildeo subindo e descendo etc
Varias vezes o projeto parou de funcionar entatildeo 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 memoacuteria abundante etc uma das
facilidades eacute a faacutecil alteraccedilatildeo do projeto podendo ser integrado a outro ou ateacute mesmo alterado
para realizar outros tipos de accedilotildees com o touch-screen
Existem vaacuterios melhoramentos que podem ser executados no projeto um deles eacute tentar
interpretar de uma maneira diferente os valores do eixo y pois do jeito que esta a resoluccedilatildeo do
eixo y esta muito baixa dificultando o reconhecimento de toques em aacutereas pequenas Talvez a
inclusatildeo de mais alguns bytes no pacote de leitura da serial resolva o problema
54
Uma ideacuteia para um proacuteximo projeto que use a interface touch-screen poderia ser a
integraccedilatildeo com o projeto do nosso colega Roberto Junqueira ou a desenvolvimento de uma
placa controladora para o touch-screen
Este trabalho eacute uma modesta contribuiccedilatildeo para o uso de FPGAs e do processador embarcado
NIOS implementado em VHDL pela Altera que acredito que vai abrir vaacuterios caminhos pois
com este projeto alguns caminhos ficaram mais faacuteceis de percorrer daqui para a frente
55
CAPIacuteTULO 7 - REFEREcircNCIAS BIBLIOGRAacuteFICAS
AMORE Roberto drsquo VHDL Descriccedilatildeo e Sintese de Circuitos Rio de Janeiro ed LTC
2005
Elotouch Touch-Screen e Controladora Descriccedilatildeo do funcionamento e descriccedilatildeo
tecnologia Touch-Screen lthttpwwwelotouchcombrgt Acesso em fevereiro de 2007
ALTERA University Program IP Cores Instalaccedilatildeo de IP Cores e referencias sobre os
componentes dos kits DE1 e DE2 Disponivel em lthttpwwwalteracomeducationunivip-
coresunv-ip-coreshtmlgt Acesso em abril de 2007
ALTERA NIOS II Documentaccedilatildeo sobre o pprocessador embracado NIO II Disponivel
em lthttpwwwalteracomproductsipprocessorsipm-indexjspgt Acesso em Abril de 2007
ALTERA Development amp Education Board 2 (DE2) Manual do usuario Disponivel no
de que acompanha o Kit DE2 ltDE2_user_manualDE2_UserManualpdfgt Acesso em
fevereiro de 2007
41
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 comdumpexe que eacute facilmente encontrado pelas ferramentas
de pesquisa da web e tambeacutem existem vario outros programas como este e o comdump eacute
utilizado para debug da porta serial do pc conectado diretamente na placa controladora do touch-
screen e foi a peccedila chave para o entendimento do pacote enviado pela placa controladora
Figura 20 - Cumdumpexe programa de debug da porta serial
A explicaccedilatildeo de cada byte do pacote esta explicado no item 423
Apos o entendimento completo da transmissatildeo 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 natildeo 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 ateacute o momento em que
foi testado os meacutetodos proprietaacuterios da Altera para fazer a VGA funcionar os meacutetodos esses
implementados em C
A figura 21 onde contem o teste baacutesico feito que foi a chave principal para o sucesso deste
projeto
42
Como dito no item 332 do projeto foram utilizados as funccedilotildees da controladora VGA esses
meacutetodos 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 eacute utilizado o meacutetodo alt_up_vga_draw_pixel( color int
x int y) onde color eacute a cor do bloco de pixels e x e y satildeo as coordenadas da tela onde o bloco
que seraacute pintado
Para escrever um caractere sobre um bloco de pixels pintado eacute utilizado a funccedilatildeo
alt_up_vga_draw_char_1b( char int x int y) onde char eacute o caractere a ser impresso e x e y satildeo
as coordenadas da tela onde os o caractere eacute impresso
Figura 21 - Teste baisco do funcionamento do componente VGA do kit DE2
43
CAPIacuteTULO 5 ndash VALIDACcedilAtildeO E RESULTADOS
Os resultados foram os melhores possiacuteveis pois com a utilizaccedilatildeo dos IP CORE
ldquocontroladorasrdquo dos componentes externos como VGA e SERIAL e seus meacutetodos de para
controle eacute possiacutevel controlar facilmente esses moacutedulos atraveacutes do firmware desenvolvido para o
processador NIOS que consegue realizar operaccedilotildees transparentes acessando dos meacutetodos de
controle dos moacutedulos
Apos os testes baacutesicos 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 baacutesico de editor de texto
A figura 22 mostra um teste utilizando os meacutetodos de controle disponiacuteveis para o IP CORE
da VGA para primeiramente fazer o menu da aplicaccedilatildeo desenvolvido em na linguagem C
Figura 22 ndash Menu baacutesico do editor de texto
Para desenhar o menu da figura acima foi utilizado os meacutetodos proprietaacuterios de controle da
VGA citados no capitulo 4 e tambeacutem estruturas de repeticcedilatildeo para que a tela fosse varrida e os
pixels desenhados nos respectivos lugares da tela bem como os caracteres
Na figura 23 eacute definida a seguinte estrutura em C para representar de um botatildeo
Figura 23 - Estrutura em C para representar um botatildeo
44
A figura 24 eacute a declaraccedilatildeo dos bototildees que seratildeo utilizados pelo aplicativo editor de texto
para comprovar o funcionamento do controle da interface touch-screen
Apenas o que esta dentro da marcaccedilatildeo quadrada representa os bototildees do menu da figura 23
e o restante satildeo os bototildees do teclado do editor de texto
Figura 24 - Declaraccedilatildeo dos bototildees do menu
45
A figura 25 representa o meacutetodo drawnButtonUp responsaacutevel por desenhar os bototildees na tela
de acordo com as posiccedilotildees em que foram declarados os bototildees deste meacutetodo satildeo desenhados
para parecerem que estatildeo ldquolevantadosrdquo e natildeo pressionados
Note que foram utilizados os meacutetodos proprietaacuterios de controle da VGA
alt_up_vga_draw_pixel pra pitar os pixels e alt_up_vga_draw_char_b1 para desenhar caracteres
como jaacute foi especificado no item 44 do projeto
Figura 25 ndash Meacutetodo drawButtonUp
46
O meacutetodo que desenha o caption do botatildeo se chama drawButtonText desenha os caracteres
em cima dos bototildees natildeo importa se o botatildeo esta pressionado ou natildeo
A figura 26 mostra como este meacutetodo foi implementado e ele eacute chamado no final de cada
meacutetodo onde algum tipo de botatildeo eacute desenhado quando o meacutetodo que desenha o botatildeo normal
quanto o pressionado e ateacute mesmo o do teclado
Figura 26 ndash Meacutetodo que escreve o caption de cada botatildeo
47
A figura 27 mostra o meacutetodo drawButtonDown que desenha o botatildeo pressionado ou seja
quando o usuaacuterio pressiona a regiatildeo correspondente a um botatildeo do menu no touch-screen o
mesmo redesenharaacute o botatildeo parecendo um efeito de botatildeo afundado note que no final do
meacutetodo novamente eacute chamado o meacutetodo drawButtonText que reescreveraacute o caption do botatildeo
como mostra o meacutetodo da figura 26 e esta ilustrado na figura 28
Figura 27 ndash Meacutetodo que desenha o botatildeo pressionado
48
Dependendo da aacuterea do menu que o usuaacuterio pressionar no touch-screen causar o efeito de
pressionado como mostra a figura 28
Figura 28 ndash Efeito do botatildeo de menu apertado
Na figura 29 eacute a representaccedilatildeo de quando a aacuterea correspondente ao botatildeo ldquoamarelordquo eacute
pressionada
Apos estes testes baacutesicos comprovando o funcionamento da interface graacutefica para o usuaacuterio
foi definido o restante dos componentes da tela que eacute constituiacutedo de um prompt e um teclado
qwerty que foi essencial para comprovar o perfeito funcionamento do controle da interface
touch-screen
49
51 Interface Grafica Final
A figura 29 mostra a interface final que o usuaacuterio teraacute para poder verificar o funcionamento
do controle da interface touch-screen
Figura 29 ndash Interface final touch-screen do usuaacuterio
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
511 Descriccedilatildeo do editor de texto
O menu possui 4 botoes cada um com sua respectiva funcionalidade quando o usuario
pressiona a area do botatildeo ldquoapagarrdquo uma vez entatildeo um carectere do prompt eacute apagado Quando eacute
precionado a area correspondente ao botatildeo ldquoResetrdquo todo o conteudo do prompt seraacute apagado e o
plano de fundo retornaraacute a cor branca Quando o botatildeo ldquoamarelordquo eacute pressionado o fundo da tela
passa a ser amarelo e o mesmo acontece se o usuario precionar o botatildeo verde tornando o cor de
fundo verde
50
O teclado possui 29 teclas sendo duas delas que equivalem ao ENTRA ldquoENTrdquo e ao
SPACE ldquoSPCrdquo Quando o usuario pressiona a area correspondente a algum botatildeo do teclado o
mesmo muda sua cor para azul e o seu caractere eacute disponibilizado no prompt
Essas funcionalidades nada mais satildeo do que um bom exemplo de como funciona
corretamente o controle da interface touch-screen
52 Prompt e o Teclado
A estrutura feita na linguagem C que define o prompt da figura 28 esta representado na
figura 30
Figura 30 ndash Estrutura em C para representar o prompt
A figura 31 mostra o metodo drawPrompt utilizado para desenhar na tela o prompt
Figura 31 ndash Meacutetodo que desenha o prompt
51
A estrutura do teclado eacute a mesma utilizada pela figura 23 e tambem eacute criado satildeo
inicializados na figura 24
O restante as implementaccedilotildees estatildeo disponiveis no cd deste documento
Quando algum botatildeo do teclado eacute pressionado sua cor muda para azul e sua letra
correspondente eacute escrita o prompt
A figura 32 ilustra quando o usuaacuterio aperta a letra lsquotrsquo na peliacutecula touch-screen
Figura 32 - Teste do prompt e o teclado
52
53 Controle da Interface Touch-Screen
Depois do todos os testes com o processador NIOS e a integraccedilatildeo do mesmo com os
moacutedulos externos como a porta SERIAL e a saiacuteda VGA eacute possiacutevel utilizando o touch-screen
criar uma interface amigaacutevel e faacutecil de usar para o usuaacuterio utilizando um firmware capaz de
interpretar os sinais via serial vindo da controladora do touch ao detectar que um toque foi dado
pelo usuaacuterio e realizar algumas accedilotildees que neste caso se comportam como um editor de texto
baacutesico
A figura 33 mostra como foi validado este projeto e seus moacutedulos controlando uma
interface touch-screen para chegar no resultado abaixo digitado pelo usuaacuterio comprovando o
funcionamento e viabilidade deste projeto
Figura 33 ndash 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 mudanccedilas podendo ser alterado rapidamente o tipo de
aplicaccedilatildeo ou integrado rapidamente com outro projeto
53
CAPIacuteTULO 6 - CONCLUSAtildeO
Uma das principais dificuldades no desenvolvimento deste projeto foi fazer o levantamento
da documentaccedilatildeo sobre o processador NIOS e os moacutedulos externos a FPGA do Kit DE2 Como
natildeo foi feito algum projeto antes que utilizasse a interface VGA e a SERIAL do Kit DE2 levou-
se muito tempo ateacute conseguir adquirir e ordenar o conhecimento que foi sendo adquirido ateacute
conseguir dar os primeiros passos e realizar os primeiros testes com a VGA e a SERIAL Outro
grande obstaacuteculo foi ter de descobrir que para que o NIOS controlasse os moacutedulos externos a
FGPA fosse necessaacuterio copiar os arquivos c e h dos respectivos componente para dentro do
projeto
Mas depois de todos os problemas com os moacutedulos externos solucionados cada modulo do
projeto foi sendo desenvolvido separadamente ateacute seu total funcionamento Natildeo tive dificuldades
com a linguagem da programaccedilatildeo pois o Firmware do processador NIOS eacute o C a qual mais tive
contato na faculdade
Outro desafio foi fazer a peliacutecula 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
peliacutecula natildeo 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 possiacutevel
comeccedilar a fazer os testes necessaacuterios para prosseguir com o projeto aprender como o a peliacutecula
identifica um toque e manda este sinal para a controladora e a controladora transforma este sinal
em um sinal serial que eacute 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 accedilotildees
que as coordenadas jaacute estatildeo previamente calibradas no firmware para fazer bem como mudar de
cor a tela fazer o efeito de um botatildeo subindo e descendo etc
Varias vezes o projeto parou de funcionar entatildeo 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 memoacuteria abundante etc uma das
facilidades eacute a faacutecil alteraccedilatildeo do projeto podendo ser integrado a outro ou ateacute mesmo alterado
para realizar outros tipos de accedilotildees com o touch-screen
Existem vaacuterios melhoramentos que podem ser executados no projeto um deles eacute tentar
interpretar de uma maneira diferente os valores do eixo y pois do jeito que esta a resoluccedilatildeo do
eixo y esta muito baixa dificultando o reconhecimento de toques em aacutereas pequenas Talvez a
inclusatildeo de mais alguns bytes no pacote de leitura da serial resolva o problema
54
Uma ideacuteia para um proacuteximo projeto que use a interface touch-screen poderia ser a
integraccedilatildeo com o projeto do nosso colega Roberto Junqueira ou a desenvolvimento de uma
placa controladora para o touch-screen
Este trabalho eacute uma modesta contribuiccedilatildeo para o uso de FPGAs e do processador embarcado
NIOS implementado em VHDL pela Altera que acredito que vai abrir vaacuterios caminhos pois
com este projeto alguns caminhos ficaram mais faacuteceis de percorrer daqui para a frente
55
CAPIacuteTULO 7 - REFEREcircNCIAS BIBLIOGRAacuteFICAS
AMORE Roberto drsquo VHDL Descriccedilatildeo e Sintese de Circuitos Rio de Janeiro ed LTC
2005
Elotouch Touch-Screen e Controladora Descriccedilatildeo do funcionamento e descriccedilatildeo
tecnologia Touch-Screen lthttpwwwelotouchcombrgt Acesso em fevereiro de 2007
ALTERA University Program IP Cores Instalaccedilatildeo de IP Cores e referencias sobre os
componentes dos kits DE1 e DE2 Disponivel em lthttpwwwalteracomeducationunivip-
coresunv-ip-coreshtmlgt Acesso em abril de 2007
ALTERA NIOS II Documentaccedilatildeo sobre o pprocessador embracado NIO II Disponivel
em lthttpwwwalteracomproductsipprocessorsipm-indexjspgt Acesso em Abril de 2007
ALTERA Development amp Education Board 2 (DE2) Manual do usuario Disponivel no
de que acompanha o Kit DE2 ltDE2_user_manualDE2_UserManualpdfgt Acesso em
fevereiro de 2007
42
Como dito no item 332 do projeto foram utilizados as funccedilotildees da controladora VGA esses
meacutetodos 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 eacute utilizado o meacutetodo alt_up_vga_draw_pixel( color int
x int y) onde color eacute a cor do bloco de pixels e x e y satildeo as coordenadas da tela onde o bloco
que seraacute pintado
Para escrever um caractere sobre um bloco de pixels pintado eacute utilizado a funccedilatildeo
alt_up_vga_draw_char_1b( char int x int y) onde char eacute o caractere a ser impresso e x e y satildeo
as coordenadas da tela onde os o caractere eacute impresso
Figura 21 - Teste baisco do funcionamento do componente VGA do kit DE2
43
CAPIacuteTULO 5 ndash VALIDACcedilAtildeO E RESULTADOS
Os resultados foram os melhores possiacuteveis pois com a utilizaccedilatildeo dos IP CORE
ldquocontroladorasrdquo dos componentes externos como VGA e SERIAL e seus meacutetodos de para
controle eacute possiacutevel controlar facilmente esses moacutedulos atraveacutes do firmware desenvolvido para o
processador NIOS que consegue realizar operaccedilotildees transparentes acessando dos meacutetodos de
controle dos moacutedulos
Apos os testes baacutesicos 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 baacutesico de editor de texto
A figura 22 mostra um teste utilizando os meacutetodos de controle disponiacuteveis para o IP CORE
da VGA para primeiramente fazer o menu da aplicaccedilatildeo desenvolvido em na linguagem C
Figura 22 ndash Menu baacutesico do editor de texto
Para desenhar o menu da figura acima foi utilizado os meacutetodos proprietaacuterios de controle da
VGA citados no capitulo 4 e tambeacutem estruturas de repeticcedilatildeo para que a tela fosse varrida e os
pixels desenhados nos respectivos lugares da tela bem como os caracteres
Na figura 23 eacute definida a seguinte estrutura em C para representar de um botatildeo
Figura 23 - Estrutura em C para representar um botatildeo
44
A figura 24 eacute a declaraccedilatildeo dos bototildees que seratildeo utilizados pelo aplicativo editor de texto
para comprovar o funcionamento do controle da interface touch-screen
Apenas o que esta dentro da marcaccedilatildeo quadrada representa os bototildees do menu da figura 23
e o restante satildeo os bototildees do teclado do editor de texto
Figura 24 - Declaraccedilatildeo dos bototildees do menu
45
A figura 25 representa o meacutetodo drawnButtonUp responsaacutevel por desenhar os bototildees na tela
de acordo com as posiccedilotildees em que foram declarados os bototildees deste meacutetodo satildeo desenhados
para parecerem que estatildeo ldquolevantadosrdquo e natildeo pressionados
Note que foram utilizados os meacutetodos proprietaacuterios de controle da VGA
alt_up_vga_draw_pixel pra pitar os pixels e alt_up_vga_draw_char_b1 para desenhar caracteres
como jaacute foi especificado no item 44 do projeto
Figura 25 ndash Meacutetodo drawButtonUp
46
O meacutetodo que desenha o caption do botatildeo se chama drawButtonText desenha os caracteres
em cima dos bototildees natildeo importa se o botatildeo esta pressionado ou natildeo
A figura 26 mostra como este meacutetodo foi implementado e ele eacute chamado no final de cada
meacutetodo onde algum tipo de botatildeo eacute desenhado quando o meacutetodo que desenha o botatildeo normal
quanto o pressionado e ateacute mesmo o do teclado
Figura 26 ndash Meacutetodo que escreve o caption de cada botatildeo
47
A figura 27 mostra o meacutetodo drawButtonDown que desenha o botatildeo pressionado ou seja
quando o usuaacuterio pressiona a regiatildeo correspondente a um botatildeo do menu no touch-screen o
mesmo redesenharaacute o botatildeo parecendo um efeito de botatildeo afundado note que no final do
meacutetodo novamente eacute chamado o meacutetodo drawButtonText que reescreveraacute o caption do botatildeo
como mostra o meacutetodo da figura 26 e esta ilustrado na figura 28
Figura 27 ndash Meacutetodo que desenha o botatildeo pressionado
48
Dependendo da aacuterea do menu que o usuaacuterio pressionar no touch-screen causar o efeito de
pressionado como mostra a figura 28
Figura 28 ndash Efeito do botatildeo de menu apertado
Na figura 29 eacute a representaccedilatildeo de quando a aacuterea correspondente ao botatildeo ldquoamarelordquo eacute
pressionada
Apos estes testes baacutesicos comprovando o funcionamento da interface graacutefica para o usuaacuterio
foi definido o restante dos componentes da tela que eacute constituiacutedo de um prompt e um teclado
qwerty que foi essencial para comprovar o perfeito funcionamento do controle da interface
touch-screen
49
51 Interface Grafica Final
A figura 29 mostra a interface final que o usuaacuterio teraacute para poder verificar o funcionamento
do controle da interface touch-screen
Figura 29 ndash Interface final touch-screen do usuaacuterio
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
511 Descriccedilatildeo do editor de texto
O menu possui 4 botoes cada um com sua respectiva funcionalidade quando o usuario
pressiona a area do botatildeo ldquoapagarrdquo uma vez entatildeo um carectere do prompt eacute apagado Quando eacute
precionado a area correspondente ao botatildeo ldquoResetrdquo todo o conteudo do prompt seraacute apagado e o
plano de fundo retornaraacute a cor branca Quando o botatildeo ldquoamarelordquo eacute pressionado o fundo da tela
passa a ser amarelo e o mesmo acontece se o usuario precionar o botatildeo verde tornando o cor de
fundo verde
50
O teclado possui 29 teclas sendo duas delas que equivalem ao ENTRA ldquoENTrdquo e ao
SPACE ldquoSPCrdquo Quando o usuario pressiona a area correspondente a algum botatildeo do teclado o
mesmo muda sua cor para azul e o seu caractere eacute disponibilizado no prompt
Essas funcionalidades nada mais satildeo do que um bom exemplo de como funciona
corretamente o controle da interface touch-screen
52 Prompt e o Teclado
A estrutura feita na linguagem C que define o prompt da figura 28 esta representado na
figura 30
Figura 30 ndash Estrutura em C para representar o prompt
A figura 31 mostra o metodo drawPrompt utilizado para desenhar na tela o prompt
Figura 31 ndash Meacutetodo que desenha o prompt
51
A estrutura do teclado eacute a mesma utilizada pela figura 23 e tambem eacute criado satildeo
inicializados na figura 24
O restante as implementaccedilotildees estatildeo disponiveis no cd deste documento
Quando algum botatildeo do teclado eacute pressionado sua cor muda para azul e sua letra
correspondente eacute escrita o prompt
A figura 32 ilustra quando o usuaacuterio aperta a letra lsquotrsquo na peliacutecula touch-screen
Figura 32 - Teste do prompt e o teclado
52
53 Controle da Interface Touch-Screen
Depois do todos os testes com o processador NIOS e a integraccedilatildeo do mesmo com os
moacutedulos externos como a porta SERIAL e a saiacuteda VGA eacute possiacutevel utilizando o touch-screen
criar uma interface amigaacutevel e faacutecil de usar para o usuaacuterio utilizando um firmware capaz de
interpretar os sinais via serial vindo da controladora do touch ao detectar que um toque foi dado
pelo usuaacuterio e realizar algumas accedilotildees que neste caso se comportam como um editor de texto
baacutesico
A figura 33 mostra como foi validado este projeto e seus moacutedulos controlando uma
interface touch-screen para chegar no resultado abaixo digitado pelo usuaacuterio comprovando o
funcionamento e viabilidade deste projeto
Figura 33 ndash 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 mudanccedilas podendo ser alterado rapidamente o tipo de
aplicaccedilatildeo ou integrado rapidamente com outro projeto
53
CAPIacuteTULO 6 - CONCLUSAtildeO
Uma das principais dificuldades no desenvolvimento deste projeto foi fazer o levantamento
da documentaccedilatildeo sobre o processador NIOS e os moacutedulos externos a FPGA do Kit DE2 Como
natildeo foi feito algum projeto antes que utilizasse a interface VGA e a SERIAL do Kit DE2 levou-
se muito tempo ateacute conseguir adquirir e ordenar o conhecimento que foi sendo adquirido ateacute
conseguir dar os primeiros passos e realizar os primeiros testes com a VGA e a SERIAL Outro
grande obstaacuteculo foi ter de descobrir que para que o NIOS controlasse os moacutedulos externos a
FGPA fosse necessaacuterio copiar os arquivos c e h dos respectivos componente para dentro do
projeto
Mas depois de todos os problemas com os moacutedulos externos solucionados cada modulo do
projeto foi sendo desenvolvido separadamente ateacute seu total funcionamento Natildeo tive dificuldades
com a linguagem da programaccedilatildeo pois o Firmware do processador NIOS eacute o C a qual mais tive
contato na faculdade
Outro desafio foi fazer a peliacutecula 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
peliacutecula natildeo 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 possiacutevel
comeccedilar a fazer os testes necessaacuterios para prosseguir com o projeto aprender como o a peliacutecula
identifica um toque e manda este sinal para a controladora e a controladora transforma este sinal
em um sinal serial que eacute 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 accedilotildees
que as coordenadas jaacute estatildeo previamente calibradas no firmware para fazer bem como mudar de
cor a tela fazer o efeito de um botatildeo subindo e descendo etc
Varias vezes o projeto parou de funcionar entatildeo 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 memoacuteria abundante etc uma das
facilidades eacute a faacutecil alteraccedilatildeo do projeto podendo ser integrado a outro ou ateacute mesmo alterado
para realizar outros tipos de accedilotildees com o touch-screen
Existem vaacuterios melhoramentos que podem ser executados no projeto um deles eacute tentar
interpretar de uma maneira diferente os valores do eixo y pois do jeito que esta a resoluccedilatildeo do
eixo y esta muito baixa dificultando o reconhecimento de toques em aacutereas pequenas Talvez a
inclusatildeo de mais alguns bytes no pacote de leitura da serial resolva o problema
54
Uma ideacuteia para um proacuteximo projeto que use a interface touch-screen poderia ser a
integraccedilatildeo com o projeto do nosso colega Roberto Junqueira ou a desenvolvimento de uma
placa controladora para o touch-screen
Este trabalho eacute uma modesta contribuiccedilatildeo para o uso de FPGAs e do processador embarcado
NIOS implementado em VHDL pela Altera que acredito que vai abrir vaacuterios caminhos pois
com este projeto alguns caminhos ficaram mais faacuteceis de percorrer daqui para a frente
55
CAPIacuteTULO 7 - REFEREcircNCIAS BIBLIOGRAacuteFICAS
AMORE Roberto drsquo VHDL Descriccedilatildeo e Sintese de Circuitos Rio de Janeiro ed LTC
2005
Elotouch Touch-Screen e Controladora Descriccedilatildeo do funcionamento e descriccedilatildeo
tecnologia Touch-Screen lthttpwwwelotouchcombrgt Acesso em fevereiro de 2007
ALTERA University Program IP Cores Instalaccedilatildeo de IP Cores e referencias sobre os
componentes dos kits DE1 e DE2 Disponivel em lthttpwwwalteracomeducationunivip-
coresunv-ip-coreshtmlgt Acesso em abril de 2007
ALTERA NIOS II Documentaccedilatildeo sobre o pprocessador embracado NIO II Disponivel
em lthttpwwwalteracomproductsipprocessorsipm-indexjspgt Acesso em Abril de 2007
ALTERA Development amp Education Board 2 (DE2) Manual do usuario Disponivel no
de que acompanha o Kit DE2 ltDE2_user_manualDE2_UserManualpdfgt Acesso em
fevereiro de 2007
43
CAPIacuteTULO 5 ndash VALIDACcedilAtildeO E RESULTADOS
Os resultados foram os melhores possiacuteveis pois com a utilizaccedilatildeo dos IP CORE
ldquocontroladorasrdquo dos componentes externos como VGA e SERIAL e seus meacutetodos de para
controle eacute possiacutevel controlar facilmente esses moacutedulos atraveacutes do firmware desenvolvido para o
processador NIOS que consegue realizar operaccedilotildees transparentes acessando dos meacutetodos de
controle dos moacutedulos
Apos os testes baacutesicos 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 baacutesico de editor de texto
A figura 22 mostra um teste utilizando os meacutetodos de controle disponiacuteveis para o IP CORE
da VGA para primeiramente fazer o menu da aplicaccedilatildeo desenvolvido em na linguagem C
Figura 22 ndash Menu baacutesico do editor de texto
Para desenhar o menu da figura acima foi utilizado os meacutetodos proprietaacuterios de controle da
VGA citados no capitulo 4 e tambeacutem estruturas de repeticcedilatildeo para que a tela fosse varrida e os
pixels desenhados nos respectivos lugares da tela bem como os caracteres
Na figura 23 eacute definida a seguinte estrutura em C para representar de um botatildeo
Figura 23 - Estrutura em C para representar um botatildeo
44
A figura 24 eacute a declaraccedilatildeo dos bototildees que seratildeo utilizados pelo aplicativo editor de texto
para comprovar o funcionamento do controle da interface touch-screen
Apenas o que esta dentro da marcaccedilatildeo quadrada representa os bototildees do menu da figura 23
e o restante satildeo os bototildees do teclado do editor de texto
Figura 24 - Declaraccedilatildeo dos bototildees do menu
45
A figura 25 representa o meacutetodo drawnButtonUp responsaacutevel por desenhar os bototildees na tela
de acordo com as posiccedilotildees em que foram declarados os bototildees deste meacutetodo satildeo desenhados
para parecerem que estatildeo ldquolevantadosrdquo e natildeo pressionados
Note que foram utilizados os meacutetodos proprietaacuterios de controle da VGA
alt_up_vga_draw_pixel pra pitar os pixels e alt_up_vga_draw_char_b1 para desenhar caracteres
como jaacute foi especificado no item 44 do projeto
Figura 25 ndash Meacutetodo drawButtonUp
46
O meacutetodo que desenha o caption do botatildeo se chama drawButtonText desenha os caracteres
em cima dos bototildees natildeo importa se o botatildeo esta pressionado ou natildeo
A figura 26 mostra como este meacutetodo foi implementado e ele eacute chamado no final de cada
meacutetodo onde algum tipo de botatildeo eacute desenhado quando o meacutetodo que desenha o botatildeo normal
quanto o pressionado e ateacute mesmo o do teclado
Figura 26 ndash Meacutetodo que escreve o caption de cada botatildeo
47
A figura 27 mostra o meacutetodo drawButtonDown que desenha o botatildeo pressionado ou seja
quando o usuaacuterio pressiona a regiatildeo correspondente a um botatildeo do menu no touch-screen o
mesmo redesenharaacute o botatildeo parecendo um efeito de botatildeo afundado note que no final do
meacutetodo novamente eacute chamado o meacutetodo drawButtonText que reescreveraacute o caption do botatildeo
como mostra o meacutetodo da figura 26 e esta ilustrado na figura 28
Figura 27 ndash Meacutetodo que desenha o botatildeo pressionado
48
Dependendo da aacuterea do menu que o usuaacuterio pressionar no touch-screen causar o efeito de
pressionado como mostra a figura 28
Figura 28 ndash Efeito do botatildeo de menu apertado
Na figura 29 eacute a representaccedilatildeo de quando a aacuterea correspondente ao botatildeo ldquoamarelordquo eacute
pressionada
Apos estes testes baacutesicos comprovando o funcionamento da interface graacutefica para o usuaacuterio
foi definido o restante dos componentes da tela que eacute constituiacutedo de um prompt e um teclado
qwerty que foi essencial para comprovar o perfeito funcionamento do controle da interface
touch-screen
49
51 Interface Grafica Final
A figura 29 mostra a interface final que o usuaacuterio teraacute para poder verificar o funcionamento
do controle da interface touch-screen
Figura 29 ndash Interface final touch-screen do usuaacuterio
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
511 Descriccedilatildeo do editor de texto
O menu possui 4 botoes cada um com sua respectiva funcionalidade quando o usuario
pressiona a area do botatildeo ldquoapagarrdquo uma vez entatildeo um carectere do prompt eacute apagado Quando eacute
precionado a area correspondente ao botatildeo ldquoResetrdquo todo o conteudo do prompt seraacute apagado e o
plano de fundo retornaraacute a cor branca Quando o botatildeo ldquoamarelordquo eacute pressionado o fundo da tela
passa a ser amarelo e o mesmo acontece se o usuario precionar o botatildeo verde tornando o cor de
fundo verde
50
O teclado possui 29 teclas sendo duas delas que equivalem ao ENTRA ldquoENTrdquo e ao
SPACE ldquoSPCrdquo Quando o usuario pressiona a area correspondente a algum botatildeo do teclado o
mesmo muda sua cor para azul e o seu caractere eacute disponibilizado no prompt
Essas funcionalidades nada mais satildeo do que um bom exemplo de como funciona
corretamente o controle da interface touch-screen
52 Prompt e o Teclado
A estrutura feita na linguagem C que define o prompt da figura 28 esta representado na
figura 30
Figura 30 ndash Estrutura em C para representar o prompt
A figura 31 mostra o metodo drawPrompt utilizado para desenhar na tela o prompt
Figura 31 ndash Meacutetodo que desenha o prompt
51
A estrutura do teclado eacute a mesma utilizada pela figura 23 e tambem eacute criado satildeo
inicializados na figura 24
O restante as implementaccedilotildees estatildeo disponiveis no cd deste documento
Quando algum botatildeo do teclado eacute pressionado sua cor muda para azul e sua letra
correspondente eacute escrita o prompt
A figura 32 ilustra quando o usuaacuterio aperta a letra lsquotrsquo na peliacutecula touch-screen
Figura 32 - Teste do prompt e o teclado
52
53 Controle da Interface Touch-Screen
Depois do todos os testes com o processador NIOS e a integraccedilatildeo do mesmo com os
moacutedulos externos como a porta SERIAL e a saiacuteda VGA eacute possiacutevel utilizando o touch-screen
criar uma interface amigaacutevel e faacutecil de usar para o usuaacuterio utilizando um firmware capaz de
interpretar os sinais via serial vindo da controladora do touch ao detectar que um toque foi dado
pelo usuaacuterio e realizar algumas accedilotildees que neste caso se comportam como um editor de texto
baacutesico
A figura 33 mostra como foi validado este projeto e seus moacutedulos controlando uma
interface touch-screen para chegar no resultado abaixo digitado pelo usuaacuterio comprovando o
funcionamento e viabilidade deste projeto
Figura 33 ndash 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 mudanccedilas podendo ser alterado rapidamente o tipo de
aplicaccedilatildeo ou integrado rapidamente com outro projeto
53
CAPIacuteTULO 6 - CONCLUSAtildeO
Uma das principais dificuldades no desenvolvimento deste projeto foi fazer o levantamento
da documentaccedilatildeo sobre o processador NIOS e os moacutedulos externos a FPGA do Kit DE2 Como
natildeo foi feito algum projeto antes que utilizasse a interface VGA e a SERIAL do Kit DE2 levou-
se muito tempo ateacute conseguir adquirir e ordenar o conhecimento que foi sendo adquirido ateacute
conseguir dar os primeiros passos e realizar os primeiros testes com a VGA e a SERIAL Outro
grande obstaacuteculo foi ter de descobrir que para que o NIOS controlasse os moacutedulos externos a
FGPA fosse necessaacuterio copiar os arquivos c e h dos respectivos componente para dentro do
projeto
Mas depois de todos os problemas com os moacutedulos externos solucionados cada modulo do
projeto foi sendo desenvolvido separadamente ateacute seu total funcionamento Natildeo tive dificuldades
com a linguagem da programaccedilatildeo pois o Firmware do processador NIOS eacute o C a qual mais tive
contato na faculdade
Outro desafio foi fazer a peliacutecula 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
peliacutecula natildeo 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 possiacutevel
comeccedilar a fazer os testes necessaacuterios para prosseguir com o projeto aprender como o a peliacutecula
identifica um toque e manda este sinal para a controladora e a controladora transforma este sinal
em um sinal serial que eacute 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 accedilotildees
que as coordenadas jaacute estatildeo previamente calibradas no firmware para fazer bem como mudar de
cor a tela fazer o efeito de um botatildeo subindo e descendo etc
Varias vezes o projeto parou de funcionar entatildeo 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 memoacuteria abundante etc uma das
facilidades eacute a faacutecil alteraccedilatildeo do projeto podendo ser integrado a outro ou ateacute mesmo alterado
para realizar outros tipos de accedilotildees com o touch-screen
Existem vaacuterios melhoramentos que podem ser executados no projeto um deles eacute tentar
interpretar de uma maneira diferente os valores do eixo y pois do jeito que esta a resoluccedilatildeo do
eixo y esta muito baixa dificultando o reconhecimento de toques em aacutereas pequenas Talvez a
inclusatildeo de mais alguns bytes no pacote de leitura da serial resolva o problema
54
Uma ideacuteia para um proacuteximo projeto que use a interface touch-screen poderia ser a
integraccedilatildeo com o projeto do nosso colega Roberto Junqueira ou a desenvolvimento de uma
placa controladora para o touch-screen
Este trabalho eacute uma modesta contribuiccedilatildeo para o uso de FPGAs e do processador embarcado
NIOS implementado em VHDL pela Altera que acredito que vai abrir vaacuterios caminhos pois
com este projeto alguns caminhos ficaram mais faacuteceis de percorrer daqui para a frente
55
CAPIacuteTULO 7 - REFEREcircNCIAS BIBLIOGRAacuteFICAS
AMORE Roberto drsquo VHDL Descriccedilatildeo e Sintese de Circuitos Rio de Janeiro ed LTC
2005
Elotouch Touch-Screen e Controladora Descriccedilatildeo do funcionamento e descriccedilatildeo
tecnologia Touch-Screen lthttpwwwelotouchcombrgt Acesso em fevereiro de 2007
ALTERA University Program IP Cores Instalaccedilatildeo de IP Cores e referencias sobre os
componentes dos kits DE1 e DE2 Disponivel em lthttpwwwalteracomeducationunivip-
coresunv-ip-coreshtmlgt Acesso em abril de 2007
ALTERA NIOS II Documentaccedilatildeo sobre o pprocessador embracado NIO II Disponivel
em lthttpwwwalteracomproductsipprocessorsipm-indexjspgt Acesso em Abril de 2007
ALTERA Development amp Education Board 2 (DE2) Manual do usuario Disponivel no
de que acompanha o Kit DE2 ltDE2_user_manualDE2_UserManualpdfgt Acesso em
fevereiro de 2007
44
A figura 24 eacute a declaraccedilatildeo dos bototildees que seratildeo utilizados pelo aplicativo editor de texto
para comprovar o funcionamento do controle da interface touch-screen
Apenas o que esta dentro da marcaccedilatildeo quadrada representa os bototildees do menu da figura 23
e o restante satildeo os bototildees do teclado do editor de texto
Figura 24 - Declaraccedilatildeo dos bototildees do menu
45
A figura 25 representa o meacutetodo drawnButtonUp responsaacutevel por desenhar os bototildees na tela
de acordo com as posiccedilotildees em que foram declarados os bototildees deste meacutetodo satildeo desenhados
para parecerem que estatildeo ldquolevantadosrdquo e natildeo pressionados
Note que foram utilizados os meacutetodos proprietaacuterios de controle da VGA
alt_up_vga_draw_pixel pra pitar os pixels e alt_up_vga_draw_char_b1 para desenhar caracteres
como jaacute foi especificado no item 44 do projeto
Figura 25 ndash Meacutetodo drawButtonUp
46
O meacutetodo que desenha o caption do botatildeo se chama drawButtonText desenha os caracteres
em cima dos bototildees natildeo importa se o botatildeo esta pressionado ou natildeo
A figura 26 mostra como este meacutetodo foi implementado e ele eacute chamado no final de cada
meacutetodo onde algum tipo de botatildeo eacute desenhado quando o meacutetodo que desenha o botatildeo normal
quanto o pressionado e ateacute mesmo o do teclado
Figura 26 ndash Meacutetodo que escreve o caption de cada botatildeo
47
A figura 27 mostra o meacutetodo drawButtonDown que desenha o botatildeo pressionado ou seja
quando o usuaacuterio pressiona a regiatildeo correspondente a um botatildeo do menu no touch-screen o
mesmo redesenharaacute o botatildeo parecendo um efeito de botatildeo afundado note que no final do
meacutetodo novamente eacute chamado o meacutetodo drawButtonText que reescreveraacute o caption do botatildeo
como mostra o meacutetodo da figura 26 e esta ilustrado na figura 28
Figura 27 ndash Meacutetodo que desenha o botatildeo pressionado
48
Dependendo da aacuterea do menu que o usuaacuterio pressionar no touch-screen causar o efeito de
pressionado como mostra a figura 28
Figura 28 ndash Efeito do botatildeo de menu apertado
Na figura 29 eacute a representaccedilatildeo de quando a aacuterea correspondente ao botatildeo ldquoamarelordquo eacute
pressionada
Apos estes testes baacutesicos comprovando o funcionamento da interface graacutefica para o usuaacuterio
foi definido o restante dos componentes da tela que eacute constituiacutedo de um prompt e um teclado
qwerty que foi essencial para comprovar o perfeito funcionamento do controle da interface
touch-screen
49
51 Interface Grafica Final
A figura 29 mostra a interface final que o usuaacuterio teraacute para poder verificar o funcionamento
do controle da interface touch-screen
Figura 29 ndash Interface final touch-screen do usuaacuterio
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
511 Descriccedilatildeo do editor de texto
O menu possui 4 botoes cada um com sua respectiva funcionalidade quando o usuario
pressiona a area do botatildeo ldquoapagarrdquo uma vez entatildeo um carectere do prompt eacute apagado Quando eacute
precionado a area correspondente ao botatildeo ldquoResetrdquo todo o conteudo do prompt seraacute apagado e o
plano de fundo retornaraacute a cor branca Quando o botatildeo ldquoamarelordquo eacute pressionado o fundo da tela
passa a ser amarelo e o mesmo acontece se o usuario precionar o botatildeo verde tornando o cor de
fundo verde
50
O teclado possui 29 teclas sendo duas delas que equivalem ao ENTRA ldquoENTrdquo e ao
SPACE ldquoSPCrdquo Quando o usuario pressiona a area correspondente a algum botatildeo do teclado o
mesmo muda sua cor para azul e o seu caractere eacute disponibilizado no prompt
Essas funcionalidades nada mais satildeo do que um bom exemplo de como funciona
corretamente o controle da interface touch-screen
52 Prompt e o Teclado
A estrutura feita na linguagem C que define o prompt da figura 28 esta representado na
figura 30
Figura 30 ndash Estrutura em C para representar o prompt
A figura 31 mostra o metodo drawPrompt utilizado para desenhar na tela o prompt
Figura 31 ndash Meacutetodo que desenha o prompt
51
A estrutura do teclado eacute a mesma utilizada pela figura 23 e tambem eacute criado satildeo
inicializados na figura 24
O restante as implementaccedilotildees estatildeo disponiveis no cd deste documento
Quando algum botatildeo do teclado eacute pressionado sua cor muda para azul e sua letra
correspondente eacute escrita o prompt
A figura 32 ilustra quando o usuaacuterio aperta a letra lsquotrsquo na peliacutecula touch-screen
Figura 32 - Teste do prompt e o teclado
52
53 Controle da Interface Touch-Screen
Depois do todos os testes com o processador NIOS e a integraccedilatildeo do mesmo com os
moacutedulos externos como a porta SERIAL e a saiacuteda VGA eacute possiacutevel utilizando o touch-screen
criar uma interface amigaacutevel e faacutecil de usar para o usuaacuterio utilizando um firmware capaz de
interpretar os sinais via serial vindo da controladora do touch ao detectar que um toque foi dado
pelo usuaacuterio e realizar algumas accedilotildees que neste caso se comportam como um editor de texto
baacutesico
A figura 33 mostra como foi validado este projeto e seus moacutedulos controlando uma
interface touch-screen para chegar no resultado abaixo digitado pelo usuaacuterio comprovando o
funcionamento e viabilidade deste projeto
Figura 33 ndash 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 mudanccedilas podendo ser alterado rapidamente o tipo de
aplicaccedilatildeo ou integrado rapidamente com outro projeto
53
CAPIacuteTULO 6 - CONCLUSAtildeO
Uma das principais dificuldades no desenvolvimento deste projeto foi fazer o levantamento
da documentaccedilatildeo sobre o processador NIOS e os moacutedulos externos a FPGA do Kit DE2 Como
natildeo foi feito algum projeto antes que utilizasse a interface VGA e a SERIAL do Kit DE2 levou-
se muito tempo ateacute conseguir adquirir e ordenar o conhecimento que foi sendo adquirido ateacute
conseguir dar os primeiros passos e realizar os primeiros testes com a VGA e a SERIAL Outro
grande obstaacuteculo foi ter de descobrir que para que o NIOS controlasse os moacutedulos externos a
FGPA fosse necessaacuterio copiar os arquivos c e h dos respectivos componente para dentro do
projeto
Mas depois de todos os problemas com os moacutedulos externos solucionados cada modulo do
projeto foi sendo desenvolvido separadamente ateacute seu total funcionamento Natildeo tive dificuldades
com a linguagem da programaccedilatildeo pois o Firmware do processador NIOS eacute o C a qual mais tive
contato na faculdade
Outro desafio foi fazer a peliacutecula 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
peliacutecula natildeo 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 possiacutevel
comeccedilar a fazer os testes necessaacuterios para prosseguir com o projeto aprender como o a peliacutecula
identifica um toque e manda este sinal para a controladora e a controladora transforma este sinal
em um sinal serial que eacute 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 accedilotildees
que as coordenadas jaacute estatildeo previamente calibradas no firmware para fazer bem como mudar de
cor a tela fazer o efeito de um botatildeo subindo e descendo etc
Varias vezes o projeto parou de funcionar entatildeo 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 memoacuteria abundante etc uma das
facilidades eacute a faacutecil alteraccedilatildeo do projeto podendo ser integrado a outro ou ateacute mesmo alterado
para realizar outros tipos de accedilotildees com o touch-screen
Existem vaacuterios melhoramentos que podem ser executados no projeto um deles eacute tentar
interpretar de uma maneira diferente os valores do eixo y pois do jeito que esta a resoluccedilatildeo do
eixo y esta muito baixa dificultando o reconhecimento de toques em aacutereas pequenas Talvez a
inclusatildeo de mais alguns bytes no pacote de leitura da serial resolva o problema
54
Uma ideacuteia para um proacuteximo projeto que use a interface touch-screen poderia ser a
integraccedilatildeo com o projeto do nosso colega Roberto Junqueira ou a desenvolvimento de uma
placa controladora para o touch-screen
Este trabalho eacute uma modesta contribuiccedilatildeo para o uso de FPGAs e do processador embarcado
NIOS implementado em VHDL pela Altera que acredito que vai abrir vaacuterios caminhos pois
com este projeto alguns caminhos ficaram mais faacuteceis de percorrer daqui para a frente
55
CAPIacuteTULO 7 - REFEREcircNCIAS BIBLIOGRAacuteFICAS
AMORE Roberto drsquo VHDL Descriccedilatildeo e Sintese de Circuitos Rio de Janeiro ed LTC
2005
Elotouch Touch-Screen e Controladora Descriccedilatildeo do funcionamento e descriccedilatildeo
tecnologia Touch-Screen lthttpwwwelotouchcombrgt Acesso em fevereiro de 2007
ALTERA University Program IP Cores Instalaccedilatildeo de IP Cores e referencias sobre os
componentes dos kits DE1 e DE2 Disponivel em lthttpwwwalteracomeducationunivip-
coresunv-ip-coreshtmlgt Acesso em abril de 2007
ALTERA NIOS II Documentaccedilatildeo sobre o pprocessador embracado NIO II Disponivel
em lthttpwwwalteracomproductsipprocessorsipm-indexjspgt Acesso em Abril de 2007
ALTERA Development amp Education Board 2 (DE2) Manual do usuario Disponivel no
de que acompanha o Kit DE2 ltDE2_user_manualDE2_UserManualpdfgt Acesso em
fevereiro de 2007
45
A figura 25 representa o meacutetodo drawnButtonUp responsaacutevel por desenhar os bototildees na tela
de acordo com as posiccedilotildees em que foram declarados os bototildees deste meacutetodo satildeo desenhados
para parecerem que estatildeo ldquolevantadosrdquo e natildeo pressionados
Note que foram utilizados os meacutetodos proprietaacuterios de controle da VGA
alt_up_vga_draw_pixel pra pitar os pixels e alt_up_vga_draw_char_b1 para desenhar caracteres
como jaacute foi especificado no item 44 do projeto
Figura 25 ndash Meacutetodo drawButtonUp
46
O meacutetodo que desenha o caption do botatildeo se chama drawButtonText desenha os caracteres
em cima dos bototildees natildeo importa se o botatildeo esta pressionado ou natildeo
A figura 26 mostra como este meacutetodo foi implementado e ele eacute chamado no final de cada
meacutetodo onde algum tipo de botatildeo eacute desenhado quando o meacutetodo que desenha o botatildeo normal
quanto o pressionado e ateacute mesmo o do teclado
Figura 26 ndash Meacutetodo que escreve o caption de cada botatildeo
47
A figura 27 mostra o meacutetodo drawButtonDown que desenha o botatildeo pressionado ou seja
quando o usuaacuterio pressiona a regiatildeo correspondente a um botatildeo do menu no touch-screen o
mesmo redesenharaacute o botatildeo parecendo um efeito de botatildeo afundado note que no final do
meacutetodo novamente eacute chamado o meacutetodo drawButtonText que reescreveraacute o caption do botatildeo
como mostra o meacutetodo da figura 26 e esta ilustrado na figura 28
Figura 27 ndash Meacutetodo que desenha o botatildeo pressionado
48
Dependendo da aacuterea do menu que o usuaacuterio pressionar no touch-screen causar o efeito de
pressionado como mostra a figura 28
Figura 28 ndash Efeito do botatildeo de menu apertado
Na figura 29 eacute a representaccedilatildeo de quando a aacuterea correspondente ao botatildeo ldquoamarelordquo eacute
pressionada
Apos estes testes baacutesicos comprovando o funcionamento da interface graacutefica para o usuaacuterio
foi definido o restante dos componentes da tela que eacute constituiacutedo de um prompt e um teclado
qwerty que foi essencial para comprovar o perfeito funcionamento do controle da interface
touch-screen
49
51 Interface Grafica Final
A figura 29 mostra a interface final que o usuaacuterio teraacute para poder verificar o funcionamento
do controle da interface touch-screen
Figura 29 ndash Interface final touch-screen do usuaacuterio
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
511 Descriccedilatildeo do editor de texto
O menu possui 4 botoes cada um com sua respectiva funcionalidade quando o usuario
pressiona a area do botatildeo ldquoapagarrdquo uma vez entatildeo um carectere do prompt eacute apagado Quando eacute
precionado a area correspondente ao botatildeo ldquoResetrdquo todo o conteudo do prompt seraacute apagado e o
plano de fundo retornaraacute a cor branca Quando o botatildeo ldquoamarelordquo eacute pressionado o fundo da tela
passa a ser amarelo e o mesmo acontece se o usuario precionar o botatildeo verde tornando o cor de
fundo verde
50
O teclado possui 29 teclas sendo duas delas que equivalem ao ENTRA ldquoENTrdquo e ao
SPACE ldquoSPCrdquo Quando o usuario pressiona a area correspondente a algum botatildeo do teclado o
mesmo muda sua cor para azul e o seu caractere eacute disponibilizado no prompt
Essas funcionalidades nada mais satildeo do que um bom exemplo de como funciona
corretamente o controle da interface touch-screen
52 Prompt e o Teclado
A estrutura feita na linguagem C que define o prompt da figura 28 esta representado na
figura 30
Figura 30 ndash Estrutura em C para representar o prompt
A figura 31 mostra o metodo drawPrompt utilizado para desenhar na tela o prompt
Figura 31 ndash Meacutetodo que desenha o prompt
51
A estrutura do teclado eacute a mesma utilizada pela figura 23 e tambem eacute criado satildeo
inicializados na figura 24
O restante as implementaccedilotildees estatildeo disponiveis no cd deste documento
Quando algum botatildeo do teclado eacute pressionado sua cor muda para azul e sua letra
correspondente eacute escrita o prompt
A figura 32 ilustra quando o usuaacuterio aperta a letra lsquotrsquo na peliacutecula touch-screen
Figura 32 - Teste do prompt e o teclado
52
53 Controle da Interface Touch-Screen
Depois do todos os testes com o processador NIOS e a integraccedilatildeo do mesmo com os
moacutedulos externos como a porta SERIAL e a saiacuteda VGA eacute possiacutevel utilizando o touch-screen
criar uma interface amigaacutevel e faacutecil de usar para o usuaacuterio utilizando um firmware capaz de
interpretar os sinais via serial vindo da controladora do touch ao detectar que um toque foi dado
pelo usuaacuterio e realizar algumas accedilotildees que neste caso se comportam como um editor de texto
baacutesico
A figura 33 mostra como foi validado este projeto e seus moacutedulos controlando uma
interface touch-screen para chegar no resultado abaixo digitado pelo usuaacuterio comprovando o
funcionamento e viabilidade deste projeto
Figura 33 ndash 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 mudanccedilas podendo ser alterado rapidamente o tipo de
aplicaccedilatildeo ou integrado rapidamente com outro projeto
53
CAPIacuteTULO 6 - CONCLUSAtildeO
Uma das principais dificuldades no desenvolvimento deste projeto foi fazer o levantamento
da documentaccedilatildeo sobre o processador NIOS e os moacutedulos externos a FPGA do Kit DE2 Como
natildeo foi feito algum projeto antes que utilizasse a interface VGA e a SERIAL do Kit DE2 levou-
se muito tempo ateacute conseguir adquirir e ordenar o conhecimento que foi sendo adquirido ateacute
conseguir dar os primeiros passos e realizar os primeiros testes com a VGA e a SERIAL Outro
grande obstaacuteculo foi ter de descobrir que para que o NIOS controlasse os moacutedulos externos a
FGPA fosse necessaacuterio copiar os arquivos c e h dos respectivos componente para dentro do
projeto
Mas depois de todos os problemas com os moacutedulos externos solucionados cada modulo do
projeto foi sendo desenvolvido separadamente ateacute seu total funcionamento Natildeo tive dificuldades
com a linguagem da programaccedilatildeo pois o Firmware do processador NIOS eacute o C a qual mais tive
contato na faculdade
Outro desafio foi fazer a peliacutecula 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
peliacutecula natildeo 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 possiacutevel
comeccedilar a fazer os testes necessaacuterios para prosseguir com o projeto aprender como o a peliacutecula
identifica um toque e manda este sinal para a controladora e a controladora transforma este sinal
em um sinal serial que eacute 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 accedilotildees
que as coordenadas jaacute estatildeo previamente calibradas no firmware para fazer bem como mudar de
cor a tela fazer o efeito de um botatildeo subindo e descendo etc
Varias vezes o projeto parou de funcionar entatildeo 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 memoacuteria abundante etc uma das
facilidades eacute a faacutecil alteraccedilatildeo do projeto podendo ser integrado a outro ou ateacute mesmo alterado
para realizar outros tipos de accedilotildees com o touch-screen
Existem vaacuterios melhoramentos que podem ser executados no projeto um deles eacute tentar
interpretar de uma maneira diferente os valores do eixo y pois do jeito que esta a resoluccedilatildeo do
eixo y esta muito baixa dificultando o reconhecimento de toques em aacutereas pequenas Talvez a
inclusatildeo de mais alguns bytes no pacote de leitura da serial resolva o problema
54
Uma ideacuteia para um proacuteximo projeto que use a interface touch-screen poderia ser a
integraccedilatildeo com o projeto do nosso colega Roberto Junqueira ou a desenvolvimento de uma
placa controladora para o touch-screen
Este trabalho eacute uma modesta contribuiccedilatildeo para o uso de FPGAs e do processador embarcado
NIOS implementado em VHDL pela Altera que acredito que vai abrir vaacuterios caminhos pois
com este projeto alguns caminhos ficaram mais faacuteceis de percorrer daqui para a frente
55
CAPIacuteTULO 7 - REFEREcircNCIAS BIBLIOGRAacuteFICAS
AMORE Roberto drsquo VHDL Descriccedilatildeo e Sintese de Circuitos Rio de Janeiro ed LTC
2005
Elotouch Touch-Screen e Controladora Descriccedilatildeo do funcionamento e descriccedilatildeo
tecnologia Touch-Screen lthttpwwwelotouchcombrgt Acesso em fevereiro de 2007
ALTERA University Program IP Cores Instalaccedilatildeo de IP Cores e referencias sobre os
componentes dos kits DE1 e DE2 Disponivel em lthttpwwwalteracomeducationunivip-
coresunv-ip-coreshtmlgt Acesso em abril de 2007
ALTERA NIOS II Documentaccedilatildeo sobre o pprocessador embracado NIO II Disponivel
em lthttpwwwalteracomproductsipprocessorsipm-indexjspgt Acesso em Abril de 2007
ALTERA Development amp Education Board 2 (DE2) Manual do usuario Disponivel no
de que acompanha o Kit DE2 ltDE2_user_manualDE2_UserManualpdfgt Acesso em
fevereiro de 2007
46
O meacutetodo que desenha o caption do botatildeo se chama drawButtonText desenha os caracteres
em cima dos bototildees natildeo importa se o botatildeo esta pressionado ou natildeo
A figura 26 mostra como este meacutetodo foi implementado e ele eacute chamado no final de cada
meacutetodo onde algum tipo de botatildeo eacute desenhado quando o meacutetodo que desenha o botatildeo normal
quanto o pressionado e ateacute mesmo o do teclado
Figura 26 ndash Meacutetodo que escreve o caption de cada botatildeo
47
A figura 27 mostra o meacutetodo drawButtonDown que desenha o botatildeo pressionado ou seja
quando o usuaacuterio pressiona a regiatildeo correspondente a um botatildeo do menu no touch-screen o
mesmo redesenharaacute o botatildeo parecendo um efeito de botatildeo afundado note que no final do
meacutetodo novamente eacute chamado o meacutetodo drawButtonText que reescreveraacute o caption do botatildeo
como mostra o meacutetodo da figura 26 e esta ilustrado na figura 28
Figura 27 ndash Meacutetodo que desenha o botatildeo pressionado
48
Dependendo da aacuterea do menu que o usuaacuterio pressionar no touch-screen causar o efeito de
pressionado como mostra a figura 28
Figura 28 ndash Efeito do botatildeo de menu apertado
Na figura 29 eacute a representaccedilatildeo de quando a aacuterea correspondente ao botatildeo ldquoamarelordquo eacute
pressionada
Apos estes testes baacutesicos comprovando o funcionamento da interface graacutefica para o usuaacuterio
foi definido o restante dos componentes da tela que eacute constituiacutedo de um prompt e um teclado
qwerty que foi essencial para comprovar o perfeito funcionamento do controle da interface
touch-screen
49
51 Interface Grafica Final
A figura 29 mostra a interface final que o usuaacuterio teraacute para poder verificar o funcionamento
do controle da interface touch-screen
Figura 29 ndash Interface final touch-screen do usuaacuterio
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
511 Descriccedilatildeo do editor de texto
O menu possui 4 botoes cada um com sua respectiva funcionalidade quando o usuario
pressiona a area do botatildeo ldquoapagarrdquo uma vez entatildeo um carectere do prompt eacute apagado Quando eacute
precionado a area correspondente ao botatildeo ldquoResetrdquo todo o conteudo do prompt seraacute apagado e o
plano de fundo retornaraacute a cor branca Quando o botatildeo ldquoamarelordquo eacute pressionado o fundo da tela
passa a ser amarelo e o mesmo acontece se o usuario precionar o botatildeo verde tornando o cor de
fundo verde
50
O teclado possui 29 teclas sendo duas delas que equivalem ao ENTRA ldquoENTrdquo e ao
SPACE ldquoSPCrdquo Quando o usuario pressiona a area correspondente a algum botatildeo do teclado o
mesmo muda sua cor para azul e o seu caractere eacute disponibilizado no prompt
Essas funcionalidades nada mais satildeo do que um bom exemplo de como funciona
corretamente o controle da interface touch-screen
52 Prompt e o Teclado
A estrutura feita na linguagem C que define o prompt da figura 28 esta representado na
figura 30
Figura 30 ndash Estrutura em C para representar o prompt
A figura 31 mostra o metodo drawPrompt utilizado para desenhar na tela o prompt
Figura 31 ndash Meacutetodo que desenha o prompt
51
A estrutura do teclado eacute a mesma utilizada pela figura 23 e tambem eacute criado satildeo
inicializados na figura 24
O restante as implementaccedilotildees estatildeo disponiveis no cd deste documento
Quando algum botatildeo do teclado eacute pressionado sua cor muda para azul e sua letra
correspondente eacute escrita o prompt
A figura 32 ilustra quando o usuaacuterio aperta a letra lsquotrsquo na peliacutecula touch-screen
Figura 32 - Teste do prompt e o teclado
52
53 Controle da Interface Touch-Screen
Depois do todos os testes com o processador NIOS e a integraccedilatildeo do mesmo com os
moacutedulos externos como a porta SERIAL e a saiacuteda VGA eacute possiacutevel utilizando o touch-screen
criar uma interface amigaacutevel e faacutecil de usar para o usuaacuterio utilizando um firmware capaz de
interpretar os sinais via serial vindo da controladora do touch ao detectar que um toque foi dado
pelo usuaacuterio e realizar algumas accedilotildees que neste caso se comportam como um editor de texto
baacutesico
A figura 33 mostra como foi validado este projeto e seus moacutedulos controlando uma
interface touch-screen para chegar no resultado abaixo digitado pelo usuaacuterio comprovando o
funcionamento e viabilidade deste projeto
Figura 33 ndash 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 mudanccedilas podendo ser alterado rapidamente o tipo de
aplicaccedilatildeo ou integrado rapidamente com outro projeto
53
CAPIacuteTULO 6 - CONCLUSAtildeO
Uma das principais dificuldades no desenvolvimento deste projeto foi fazer o levantamento
da documentaccedilatildeo sobre o processador NIOS e os moacutedulos externos a FPGA do Kit DE2 Como
natildeo foi feito algum projeto antes que utilizasse a interface VGA e a SERIAL do Kit DE2 levou-
se muito tempo ateacute conseguir adquirir e ordenar o conhecimento que foi sendo adquirido ateacute
conseguir dar os primeiros passos e realizar os primeiros testes com a VGA e a SERIAL Outro
grande obstaacuteculo foi ter de descobrir que para que o NIOS controlasse os moacutedulos externos a
FGPA fosse necessaacuterio copiar os arquivos c e h dos respectivos componente para dentro do
projeto
Mas depois de todos os problemas com os moacutedulos externos solucionados cada modulo do
projeto foi sendo desenvolvido separadamente ateacute seu total funcionamento Natildeo tive dificuldades
com a linguagem da programaccedilatildeo pois o Firmware do processador NIOS eacute o C a qual mais tive
contato na faculdade
Outro desafio foi fazer a peliacutecula 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
peliacutecula natildeo 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 possiacutevel
comeccedilar a fazer os testes necessaacuterios para prosseguir com o projeto aprender como o a peliacutecula
identifica um toque e manda este sinal para a controladora e a controladora transforma este sinal
em um sinal serial que eacute 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 accedilotildees
que as coordenadas jaacute estatildeo previamente calibradas no firmware para fazer bem como mudar de
cor a tela fazer o efeito de um botatildeo subindo e descendo etc
Varias vezes o projeto parou de funcionar entatildeo 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 memoacuteria abundante etc uma das
facilidades eacute a faacutecil alteraccedilatildeo do projeto podendo ser integrado a outro ou ateacute mesmo alterado
para realizar outros tipos de accedilotildees com o touch-screen
Existem vaacuterios melhoramentos que podem ser executados no projeto um deles eacute tentar
interpretar de uma maneira diferente os valores do eixo y pois do jeito que esta a resoluccedilatildeo do
eixo y esta muito baixa dificultando o reconhecimento de toques em aacutereas pequenas Talvez a
inclusatildeo de mais alguns bytes no pacote de leitura da serial resolva o problema
54
Uma ideacuteia para um proacuteximo projeto que use a interface touch-screen poderia ser a
integraccedilatildeo com o projeto do nosso colega Roberto Junqueira ou a desenvolvimento de uma
placa controladora para o touch-screen
Este trabalho eacute uma modesta contribuiccedilatildeo para o uso de FPGAs e do processador embarcado
NIOS implementado em VHDL pela Altera que acredito que vai abrir vaacuterios caminhos pois
com este projeto alguns caminhos ficaram mais faacuteceis de percorrer daqui para a frente
55
CAPIacuteTULO 7 - REFEREcircNCIAS BIBLIOGRAacuteFICAS
AMORE Roberto drsquo VHDL Descriccedilatildeo e Sintese de Circuitos Rio de Janeiro ed LTC
2005
Elotouch Touch-Screen e Controladora Descriccedilatildeo do funcionamento e descriccedilatildeo
tecnologia Touch-Screen lthttpwwwelotouchcombrgt Acesso em fevereiro de 2007
ALTERA University Program IP Cores Instalaccedilatildeo de IP Cores e referencias sobre os
componentes dos kits DE1 e DE2 Disponivel em lthttpwwwalteracomeducationunivip-
coresunv-ip-coreshtmlgt Acesso em abril de 2007
ALTERA NIOS II Documentaccedilatildeo sobre o pprocessador embracado NIO II Disponivel
em lthttpwwwalteracomproductsipprocessorsipm-indexjspgt Acesso em Abril de 2007
ALTERA Development amp Education Board 2 (DE2) Manual do usuario Disponivel no
de que acompanha o Kit DE2 ltDE2_user_manualDE2_UserManualpdfgt Acesso em
fevereiro de 2007
47
A figura 27 mostra o meacutetodo drawButtonDown que desenha o botatildeo pressionado ou seja
quando o usuaacuterio pressiona a regiatildeo correspondente a um botatildeo do menu no touch-screen o
mesmo redesenharaacute o botatildeo parecendo um efeito de botatildeo afundado note que no final do
meacutetodo novamente eacute chamado o meacutetodo drawButtonText que reescreveraacute o caption do botatildeo
como mostra o meacutetodo da figura 26 e esta ilustrado na figura 28
Figura 27 ndash Meacutetodo que desenha o botatildeo pressionado
48
Dependendo da aacuterea do menu que o usuaacuterio pressionar no touch-screen causar o efeito de
pressionado como mostra a figura 28
Figura 28 ndash Efeito do botatildeo de menu apertado
Na figura 29 eacute a representaccedilatildeo de quando a aacuterea correspondente ao botatildeo ldquoamarelordquo eacute
pressionada
Apos estes testes baacutesicos comprovando o funcionamento da interface graacutefica para o usuaacuterio
foi definido o restante dos componentes da tela que eacute constituiacutedo de um prompt e um teclado
qwerty que foi essencial para comprovar o perfeito funcionamento do controle da interface
touch-screen
49
51 Interface Grafica Final
A figura 29 mostra a interface final que o usuaacuterio teraacute para poder verificar o funcionamento
do controle da interface touch-screen
Figura 29 ndash Interface final touch-screen do usuaacuterio
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
511 Descriccedilatildeo do editor de texto
O menu possui 4 botoes cada um com sua respectiva funcionalidade quando o usuario
pressiona a area do botatildeo ldquoapagarrdquo uma vez entatildeo um carectere do prompt eacute apagado Quando eacute
precionado a area correspondente ao botatildeo ldquoResetrdquo todo o conteudo do prompt seraacute apagado e o
plano de fundo retornaraacute a cor branca Quando o botatildeo ldquoamarelordquo eacute pressionado o fundo da tela
passa a ser amarelo e o mesmo acontece se o usuario precionar o botatildeo verde tornando o cor de
fundo verde
50
O teclado possui 29 teclas sendo duas delas que equivalem ao ENTRA ldquoENTrdquo e ao
SPACE ldquoSPCrdquo Quando o usuario pressiona a area correspondente a algum botatildeo do teclado o
mesmo muda sua cor para azul e o seu caractere eacute disponibilizado no prompt
Essas funcionalidades nada mais satildeo do que um bom exemplo de como funciona
corretamente o controle da interface touch-screen
52 Prompt e o Teclado
A estrutura feita na linguagem C que define o prompt da figura 28 esta representado na
figura 30
Figura 30 ndash Estrutura em C para representar o prompt
A figura 31 mostra o metodo drawPrompt utilizado para desenhar na tela o prompt
Figura 31 ndash Meacutetodo que desenha o prompt
51
A estrutura do teclado eacute a mesma utilizada pela figura 23 e tambem eacute criado satildeo
inicializados na figura 24
O restante as implementaccedilotildees estatildeo disponiveis no cd deste documento
Quando algum botatildeo do teclado eacute pressionado sua cor muda para azul e sua letra
correspondente eacute escrita o prompt
A figura 32 ilustra quando o usuaacuterio aperta a letra lsquotrsquo na peliacutecula touch-screen
Figura 32 - Teste do prompt e o teclado
52
53 Controle da Interface Touch-Screen
Depois do todos os testes com o processador NIOS e a integraccedilatildeo do mesmo com os
moacutedulos externos como a porta SERIAL e a saiacuteda VGA eacute possiacutevel utilizando o touch-screen
criar uma interface amigaacutevel e faacutecil de usar para o usuaacuterio utilizando um firmware capaz de
interpretar os sinais via serial vindo da controladora do touch ao detectar que um toque foi dado
pelo usuaacuterio e realizar algumas accedilotildees que neste caso se comportam como um editor de texto
baacutesico
A figura 33 mostra como foi validado este projeto e seus moacutedulos controlando uma
interface touch-screen para chegar no resultado abaixo digitado pelo usuaacuterio comprovando o
funcionamento e viabilidade deste projeto
Figura 33 ndash 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 mudanccedilas podendo ser alterado rapidamente o tipo de
aplicaccedilatildeo ou integrado rapidamente com outro projeto
53
CAPIacuteTULO 6 - CONCLUSAtildeO
Uma das principais dificuldades no desenvolvimento deste projeto foi fazer o levantamento
da documentaccedilatildeo sobre o processador NIOS e os moacutedulos externos a FPGA do Kit DE2 Como
natildeo foi feito algum projeto antes que utilizasse a interface VGA e a SERIAL do Kit DE2 levou-
se muito tempo ateacute conseguir adquirir e ordenar o conhecimento que foi sendo adquirido ateacute
conseguir dar os primeiros passos e realizar os primeiros testes com a VGA e a SERIAL Outro
grande obstaacuteculo foi ter de descobrir que para que o NIOS controlasse os moacutedulos externos a
FGPA fosse necessaacuterio copiar os arquivos c e h dos respectivos componente para dentro do
projeto
Mas depois de todos os problemas com os moacutedulos externos solucionados cada modulo do
projeto foi sendo desenvolvido separadamente ateacute seu total funcionamento Natildeo tive dificuldades
com a linguagem da programaccedilatildeo pois o Firmware do processador NIOS eacute o C a qual mais tive
contato na faculdade
Outro desafio foi fazer a peliacutecula 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
peliacutecula natildeo 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 possiacutevel
comeccedilar a fazer os testes necessaacuterios para prosseguir com o projeto aprender como o a peliacutecula
identifica um toque e manda este sinal para a controladora e a controladora transforma este sinal
em um sinal serial que eacute 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 accedilotildees
que as coordenadas jaacute estatildeo previamente calibradas no firmware para fazer bem como mudar de
cor a tela fazer o efeito de um botatildeo subindo e descendo etc
Varias vezes o projeto parou de funcionar entatildeo 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 memoacuteria abundante etc uma das
facilidades eacute a faacutecil alteraccedilatildeo do projeto podendo ser integrado a outro ou ateacute mesmo alterado
para realizar outros tipos de accedilotildees com o touch-screen
Existem vaacuterios melhoramentos que podem ser executados no projeto um deles eacute tentar
interpretar de uma maneira diferente os valores do eixo y pois do jeito que esta a resoluccedilatildeo do
eixo y esta muito baixa dificultando o reconhecimento de toques em aacutereas pequenas Talvez a
inclusatildeo de mais alguns bytes no pacote de leitura da serial resolva o problema
54
Uma ideacuteia para um proacuteximo projeto que use a interface touch-screen poderia ser a
integraccedilatildeo com o projeto do nosso colega Roberto Junqueira ou a desenvolvimento de uma
placa controladora para o touch-screen
Este trabalho eacute uma modesta contribuiccedilatildeo para o uso de FPGAs e do processador embarcado
NIOS implementado em VHDL pela Altera que acredito que vai abrir vaacuterios caminhos pois
com este projeto alguns caminhos ficaram mais faacuteceis de percorrer daqui para a frente
55
CAPIacuteTULO 7 - REFEREcircNCIAS BIBLIOGRAacuteFICAS
AMORE Roberto drsquo VHDL Descriccedilatildeo e Sintese de Circuitos Rio de Janeiro ed LTC
2005
Elotouch Touch-Screen e Controladora Descriccedilatildeo do funcionamento e descriccedilatildeo
tecnologia Touch-Screen lthttpwwwelotouchcombrgt Acesso em fevereiro de 2007
ALTERA University Program IP Cores Instalaccedilatildeo de IP Cores e referencias sobre os
componentes dos kits DE1 e DE2 Disponivel em lthttpwwwalteracomeducationunivip-
coresunv-ip-coreshtmlgt Acesso em abril de 2007
ALTERA NIOS II Documentaccedilatildeo sobre o pprocessador embracado NIO II Disponivel
em lthttpwwwalteracomproductsipprocessorsipm-indexjspgt Acesso em Abril de 2007
ALTERA Development amp Education Board 2 (DE2) Manual do usuario Disponivel no
de que acompanha o Kit DE2 ltDE2_user_manualDE2_UserManualpdfgt Acesso em
fevereiro de 2007
48
Dependendo da aacuterea do menu que o usuaacuterio pressionar no touch-screen causar o efeito de
pressionado como mostra a figura 28
Figura 28 ndash Efeito do botatildeo de menu apertado
Na figura 29 eacute a representaccedilatildeo de quando a aacuterea correspondente ao botatildeo ldquoamarelordquo eacute
pressionada
Apos estes testes baacutesicos comprovando o funcionamento da interface graacutefica para o usuaacuterio
foi definido o restante dos componentes da tela que eacute constituiacutedo de um prompt e um teclado
qwerty que foi essencial para comprovar o perfeito funcionamento do controle da interface
touch-screen
49
51 Interface Grafica Final
A figura 29 mostra a interface final que o usuaacuterio teraacute para poder verificar o funcionamento
do controle da interface touch-screen
Figura 29 ndash Interface final touch-screen do usuaacuterio
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
511 Descriccedilatildeo do editor de texto
O menu possui 4 botoes cada um com sua respectiva funcionalidade quando o usuario
pressiona a area do botatildeo ldquoapagarrdquo uma vez entatildeo um carectere do prompt eacute apagado Quando eacute
precionado a area correspondente ao botatildeo ldquoResetrdquo todo o conteudo do prompt seraacute apagado e o
plano de fundo retornaraacute a cor branca Quando o botatildeo ldquoamarelordquo eacute pressionado o fundo da tela
passa a ser amarelo e o mesmo acontece se o usuario precionar o botatildeo verde tornando o cor de
fundo verde
50
O teclado possui 29 teclas sendo duas delas que equivalem ao ENTRA ldquoENTrdquo e ao
SPACE ldquoSPCrdquo Quando o usuario pressiona a area correspondente a algum botatildeo do teclado o
mesmo muda sua cor para azul e o seu caractere eacute disponibilizado no prompt
Essas funcionalidades nada mais satildeo do que um bom exemplo de como funciona
corretamente o controle da interface touch-screen
52 Prompt e o Teclado
A estrutura feita na linguagem C que define o prompt da figura 28 esta representado na
figura 30
Figura 30 ndash Estrutura em C para representar o prompt
A figura 31 mostra o metodo drawPrompt utilizado para desenhar na tela o prompt
Figura 31 ndash Meacutetodo que desenha o prompt
51
A estrutura do teclado eacute a mesma utilizada pela figura 23 e tambem eacute criado satildeo
inicializados na figura 24
O restante as implementaccedilotildees estatildeo disponiveis no cd deste documento
Quando algum botatildeo do teclado eacute pressionado sua cor muda para azul e sua letra
correspondente eacute escrita o prompt
A figura 32 ilustra quando o usuaacuterio aperta a letra lsquotrsquo na peliacutecula touch-screen
Figura 32 - Teste do prompt e o teclado
52
53 Controle da Interface Touch-Screen
Depois do todos os testes com o processador NIOS e a integraccedilatildeo do mesmo com os
moacutedulos externos como a porta SERIAL e a saiacuteda VGA eacute possiacutevel utilizando o touch-screen
criar uma interface amigaacutevel e faacutecil de usar para o usuaacuterio utilizando um firmware capaz de
interpretar os sinais via serial vindo da controladora do touch ao detectar que um toque foi dado
pelo usuaacuterio e realizar algumas accedilotildees que neste caso se comportam como um editor de texto
baacutesico
A figura 33 mostra como foi validado este projeto e seus moacutedulos controlando uma
interface touch-screen para chegar no resultado abaixo digitado pelo usuaacuterio comprovando o
funcionamento e viabilidade deste projeto
Figura 33 ndash 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 mudanccedilas podendo ser alterado rapidamente o tipo de
aplicaccedilatildeo ou integrado rapidamente com outro projeto
53
CAPIacuteTULO 6 - CONCLUSAtildeO
Uma das principais dificuldades no desenvolvimento deste projeto foi fazer o levantamento
da documentaccedilatildeo sobre o processador NIOS e os moacutedulos externos a FPGA do Kit DE2 Como
natildeo foi feito algum projeto antes que utilizasse a interface VGA e a SERIAL do Kit DE2 levou-
se muito tempo ateacute conseguir adquirir e ordenar o conhecimento que foi sendo adquirido ateacute
conseguir dar os primeiros passos e realizar os primeiros testes com a VGA e a SERIAL Outro
grande obstaacuteculo foi ter de descobrir que para que o NIOS controlasse os moacutedulos externos a
FGPA fosse necessaacuterio copiar os arquivos c e h dos respectivos componente para dentro do
projeto
Mas depois de todos os problemas com os moacutedulos externos solucionados cada modulo do
projeto foi sendo desenvolvido separadamente ateacute seu total funcionamento Natildeo tive dificuldades
com a linguagem da programaccedilatildeo pois o Firmware do processador NIOS eacute o C a qual mais tive
contato na faculdade
Outro desafio foi fazer a peliacutecula 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
peliacutecula natildeo 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 possiacutevel
comeccedilar a fazer os testes necessaacuterios para prosseguir com o projeto aprender como o a peliacutecula
identifica um toque e manda este sinal para a controladora e a controladora transforma este sinal
em um sinal serial que eacute 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 accedilotildees
que as coordenadas jaacute estatildeo previamente calibradas no firmware para fazer bem como mudar de
cor a tela fazer o efeito de um botatildeo subindo e descendo etc
Varias vezes o projeto parou de funcionar entatildeo 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 memoacuteria abundante etc uma das
facilidades eacute a faacutecil alteraccedilatildeo do projeto podendo ser integrado a outro ou ateacute mesmo alterado
para realizar outros tipos de accedilotildees com o touch-screen
Existem vaacuterios melhoramentos que podem ser executados no projeto um deles eacute tentar
interpretar de uma maneira diferente os valores do eixo y pois do jeito que esta a resoluccedilatildeo do
eixo y esta muito baixa dificultando o reconhecimento de toques em aacutereas pequenas Talvez a
inclusatildeo de mais alguns bytes no pacote de leitura da serial resolva o problema
54
Uma ideacuteia para um proacuteximo projeto que use a interface touch-screen poderia ser a
integraccedilatildeo com o projeto do nosso colega Roberto Junqueira ou a desenvolvimento de uma
placa controladora para o touch-screen
Este trabalho eacute uma modesta contribuiccedilatildeo para o uso de FPGAs e do processador embarcado
NIOS implementado em VHDL pela Altera que acredito que vai abrir vaacuterios caminhos pois
com este projeto alguns caminhos ficaram mais faacuteceis de percorrer daqui para a frente
55
CAPIacuteTULO 7 - REFEREcircNCIAS BIBLIOGRAacuteFICAS
AMORE Roberto drsquo VHDL Descriccedilatildeo e Sintese de Circuitos Rio de Janeiro ed LTC
2005
Elotouch Touch-Screen e Controladora Descriccedilatildeo do funcionamento e descriccedilatildeo
tecnologia Touch-Screen lthttpwwwelotouchcombrgt Acesso em fevereiro de 2007
ALTERA University Program IP Cores Instalaccedilatildeo de IP Cores e referencias sobre os
componentes dos kits DE1 e DE2 Disponivel em lthttpwwwalteracomeducationunivip-
coresunv-ip-coreshtmlgt Acesso em abril de 2007
ALTERA NIOS II Documentaccedilatildeo sobre o pprocessador embracado NIO II Disponivel
em lthttpwwwalteracomproductsipprocessorsipm-indexjspgt Acesso em Abril de 2007
ALTERA Development amp Education Board 2 (DE2) Manual do usuario Disponivel no
de que acompanha o Kit DE2 ltDE2_user_manualDE2_UserManualpdfgt Acesso em
fevereiro de 2007
49
51 Interface Grafica Final
A figura 29 mostra a interface final que o usuaacuterio teraacute para poder verificar o funcionamento
do controle da interface touch-screen
Figura 29 ndash Interface final touch-screen do usuaacuterio
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
511 Descriccedilatildeo do editor de texto
O menu possui 4 botoes cada um com sua respectiva funcionalidade quando o usuario
pressiona a area do botatildeo ldquoapagarrdquo uma vez entatildeo um carectere do prompt eacute apagado Quando eacute
precionado a area correspondente ao botatildeo ldquoResetrdquo todo o conteudo do prompt seraacute apagado e o
plano de fundo retornaraacute a cor branca Quando o botatildeo ldquoamarelordquo eacute pressionado o fundo da tela
passa a ser amarelo e o mesmo acontece se o usuario precionar o botatildeo verde tornando o cor de
fundo verde
50
O teclado possui 29 teclas sendo duas delas que equivalem ao ENTRA ldquoENTrdquo e ao
SPACE ldquoSPCrdquo Quando o usuario pressiona a area correspondente a algum botatildeo do teclado o
mesmo muda sua cor para azul e o seu caractere eacute disponibilizado no prompt
Essas funcionalidades nada mais satildeo do que um bom exemplo de como funciona
corretamente o controle da interface touch-screen
52 Prompt e o Teclado
A estrutura feita na linguagem C que define o prompt da figura 28 esta representado na
figura 30
Figura 30 ndash Estrutura em C para representar o prompt
A figura 31 mostra o metodo drawPrompt utilizado para desenhar na tela o prompt
Figura 31 ndash Meacutetodo que desenha o prompt
51
A estrutura do teclado eacute a mesma utilizada pela figura 23 e tambem eacute criado satildeo
inicializados na figura 24
O restante as implementaccedilotildees estatildeo disponiveis no cd deste documento
Quando algum botatildeo do teclado eacute pressionado sua cor muda para azul e sua letra
correspondente eacute escrita o prompt
A figura 32 ilustra quando o usuaacuterio aperta a letra lsquotrsquo na peliacutecula touch-screen
Figura 32 - Teste do prompt e o teclado
52
53 Controle da Interface Touch-Screen
Depois do todos os testes com o processador NIOS e a integraccedilatildeo do mesmo com os
moacutedulos externos como a porta SERIAL e a saiacuteda VGA eacute possiacutevel utilizando o touch-screen
criar uma interface amigaacutevel e faacutecil de usar para o usuaacuterio utilizando um firmware capaz de
interpretar os sinais via serial vindo da controladora do touch ao detectar que um toque foi dado
pelo usuaacuterio e realizar algumas accedilotildees que neste caso se comportam como um editor de texto
baacutesico
A figura 33 mostra como foi validado este projeto e seus moacutedulos controlando uma
interface touch-screen para chegar no resultado abaixo digitado pelo usuaacuterio comprovando o
funcionamento e viabilidade deste projeto
Figura 33 ndash 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 mudanccedilas podendo ser alterado rapidamente o tipo de
aplicaccedilatildeo ou integrado rapidamente com outro projeto
53
CAPIacuteTULO 6 - CONCLUSAtildeO
Uma das principais dificuldades no desenvolvimento deste projeto foi fazer o levantamento
da documentaccedilatildeo sobre o processador NIOS e os moacutedulos externos a FPGA do Kit DE2 Como
natildeo foi feito algum projeto antes que utilizasse a interface VGA e a SERIAL do Kit DE2 levou-
se muito tempo ateacute conseguir adquirir e ordenar o conhecimento que foi sendo adquirido ateacute
conseguir dar os primeiros passos e realizar os primeiros testes com a VGA e a SERIAL Outro
grande obstaacuteculo foi ter de descobrir que para que o NIOS controlasse os moacutedulos externos a
FGPA fosse necessaacuterio copiar os arquivos c e h dos respectivos componente para dentro do
projeto
Mas depois de todos os problemas com os moacutedulos externos solucionados cada modulo do
projeto foi sendo desenvolvido separadamente ateacute seu total funcionamento Natildeo tive dificuldades
com a linguagem da programaccedilatildeo pois o Firmware do processador NIOS eacute o C a qual mais tive
contato na faculdade
Outro desafio foi fazer a peliacutecula 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
peliacutecula natildeo 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 possiacutevel
comeccedilar a fazer os testes necessaacuterios para prosseguir com o projeto aprender como o a peliacutecula
identifica um toque e manda este sinal para a controladora e a controladora transforma este sinal
em um sinal serial que eacute 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 accedilotildees
que as coordenadas jaacute estatildeo previamente calibradas no firmware para fazer bem como mudar de
cor a tela fazer o efeito de um botatildeo subindo e descendo etc
Varias vezes o projeto parou de funcionar entatildeo 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 memoacuteria abundante etc uma das
facilidades eacute a faacutecil alteraccedilatildeo do projeto podendo ser integrado a outro ou ateacute mesmo alterado
para realizar outros tipos de accedilotildees com o touch-screen
Existem vaacuterios melhoramentos que podem ser executados no projeto um deles eacute tentar
interpretar de uma maneira diferente os valores do eixo y pois do jeito que esta a resoluccedilatildeo do
eixo y esta muito baixa dificultando o reconhecimento de toques em aacutereas pequenas Talvez a
inclusatildeo de mais alguns bytes no pacote de leitura da serial resolva o problema
54
Uma ideacuteia para um proacuteximo projeto que use a interface touch-screen poderia ser a
integraccedilatildeo com o projeto do nosso colega Roberto Junqueira ou a desenvolvimento de uma
placa controladora para o touch-screen
Este trabalho eacute uma modesta contribuiccedilatildeo para o uso de FPGAs e do processador embarcado
NIOS implementado em VHDL pela Altera que acredito que vai abrir vaacuterios caminhos pois
com este projeto alguns caminhos ficaram mais faacuteceis de percorrer daqui para a frente
55
CAPIacuteTULO 7 - REFEREcircNCIAS BIBLIOGRAacuteFICAS
AMORE Roberto drsquo VHDL Descriccedilatildeo e Sintese de Circuitos Rio de Janeiro ed LTC
2005
Elotouch Touch-Screen e Controladora Descriccedilatildeo do funcionamento e descriccedilatildeo
tecnologia Touch-Screen lthttpwwwelotouchcombrgt Acesso em fevereiro de 2007
ALTERA University Program IP Cores Instalaccedilatildeo de IP Cores e referencias sobre os
componentes dos kits DE1 e DE2 Disponivel em lthttpwwwalteracomeducationunivip-
coresunv-ip-coreshtmlgt Acesso em abril de 2007
ALTERA NIOS II Documentaccedilatildeo sobre o pprocessador embracado NIO II Disponivel
em lthttpwwwalteracomproductsipprocessorsipm-indexjspgt Acesso em Abril de 2007
ALTERA Development amp Education Board 2 (DE2) Manual do usuario Disponivel no
de que acompanha o Kit DE2 ltDE2_user_manualDE2_UserManualpdfgt Acesso em
fevereiro de 2007
50
O teclado possui 29 teclas sendo duas delas que equivalem ao ENTRA ldquoENTrdquo e ao
SPACE ldquoSPCrdquo Quando o usuario pressiona a area correspondente a algum botatildeo do teclado o
mesmo muda sua cor para azul e o seu caractere eacute disponibilizado no prompt
Essas funcionalidades nada mais satildeo do que um bom exemplo de como funciona
corretamente o controle da interface touch-screen
52 Prompt e o Teclado
A estrutura feita na linguagem C que define o prompt da figura 28 esta representado na
figura 30
Figura 30 ndash Estrutura em C para representar o prompt
A figura 31 mostra o metodo drawPrompt utilizado para desenhar na tela o prompt
Figura 31 ndash Meacutetodo que desenha o prompt
51
A estrutura do teclado eacute a mesma utilizada pela figura 23 e tambem eacute criado satildeo
inicializados na figura 24
O restante as implementaccedilotildees estatildeo disponiveis no cd deste documento
Quando algum botatildeo do teclado eacute pressionado sua cor muda para azul e sua letra
correspondente eacute escrita o prompt
A figura 32 ilustra quando o usuaacuterio aperta a letra lsquotrsquo na peliacutecula touch-screen
Figura 32 - Teste do prompt e o teclado
52
53 Controle da Interface Touch-Screen
Depois do todos os testes com o processador NIOS e a integraccedilatildeo do mesmo com os
moacutedulos externos como a porta SERIAL e a saiacuteda VGA eacute possiacutevel utilizando o touch-screen
criar uma interface amigaacutevel e faacutecil de usar para o usuaacuterio utilizando um firmware capaz de
interpretar os sinais via serial vindo da controladora do touch ao detectar que um toque foi dado
pelo usuaacuterio e realizar algumas accedilotildees que neste caso se comportam como um editor de texto
baacutesico
A figura 33 mostra como foi validado este projeto e seus moacutedulos controlando uma
interface touch-screen para chegar no resultado abaixo digitado pelo usuaacuterio comprovando o
funcionamento e viabilidade deste projeto
Figura 33 ndash 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 mudanccedilas podendo ser alterado rapidamente o tipo de
aplicaccedilatildeo ou integrado rapidamente com outro projeto
53
CAPIacuteTULO 6 - CONCLUSAtildeO
Uma das principais dificuldades no desenvolvimento deste projeto foi fazer o levantamento
da documentaccedilatildeo sobre o processador NIOS e os moacutedulos externos a FPGA do Kit DE2 Como
natildeo foi feito algum projeto antes que utilizasse a interface VGA e a SERIAL do Kit DE2 levou-
se muito tempo ateacute conseguir adquirir e ordenar o conhecimento que foi sendo adquirido ateacute
conseguir dar os primeiros passos e realizar os primeiros testes com a VGA e a SERIAL Outro
grande obstaacuteculo foi ter de descobrir que para que o NIOS controlasse os moacutedulos externos a
FGPA fosse necessaacuterio copiar os arquivos c e h dos respectivos componente para dentro do
projeto
Mas depois de todos os problemas com os moacutedulos externos solucionados cada modulo do
projeto foi sendo desenvolvido separadamente ateacute seu total funcionamento Natildeo tive dificuldades
com a linguagem da programaccedilatildeo pois o Firmware do processador NIOS eacute o C a qual mais tive
contato na faculdade
Outro desafio foi fazer a peliacutecula 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
peliacutecula natildeo 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 possiacutevel
comeccedilar a fazer os testes necessaacuterios para prosseguir com o projeto aprender como o a peliacutecula
identifica um toque e manda este sinal para a controladora e a controladora transforma este sinal
em um sinal serial que eacute 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 accedilotildees
que as coordenadas jaacute estatildeo previamente calibradas no firmware para fazer bem como mudar de
cor a tela fazer o efeito de um botatildeo subindo e descendo etc
Varias vezes o projeto parou de funcionar entatildeo 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 memoacuteria abundante etc uma das
facilidades eacute a faacutecil alteraccedilatildeo do projeto podendo ser integrado a outro ou ateacute mesmo alterado
para realizar outros tipos de accedilotildees com o touch-screen
Existem vaacuterios melhoramentos que podem ser executados no projeto um deles eacute tentar
interpretar de uma maneira diferente os valores do eixo y pois do jeito que esta a resoluccedilatildeo do
eixo y esta muito baixa dificultando o reconhecimento de toques em aacutereas pequenas Talvez a
inclusatildeo de mais alguns bytes no pacote de leitura da serial resolva o problema
54
Uma ideacuteia para um proacuteximo projeto que use a interface touch-screen poderia ser a
integraccedilatildeo com o projeto do nosso colega Roberto Junqueira ou a desenvolvimento de uma
placa controladora para o touch-screen
Este trabalho eacute uma modesta contribuiccedilatildeo para o uso de FPGAs e do processador embarcado
NIOS implementado em VHDL pela Altera que acredito que vai abrir vaacuterios caminhos pois
com este projeto alguns caminhos ficaram mais faacuteceis de percorrer daqui para a frente
55
CAPIacuteTULO 7 - REFEREcircNCIAS BIBLIOGRAacuteFICAS
AMORE Roberto drsquo VHDL Descriccedilatildeo e Sintese de Circuitos Rio de Janeiro ed LTC
2005
Elotouch Touch-Screen e Controladora Descriccedilatildeo do funcionamento e descriccedilatildeo
tecnologia Touch-Screen lthttpwwwelotouchcombrgt Acesso em fevereiro de 2007
ALTERA University Program IP Cores Instalaccedilatildeo de IP Cores e referencias sobre os
componentes dos kits DE1 e DE2 Disponivel em lthttpwwwalteracomeducationunivip-
coresunv-ip-coreshtmlgt Acesso em abril de 2007
ALTERA NIOS II Documentaccedilatildeo sobre o pprocessador embracado NIO II Disponivel
em lthttpwwwalteracomproductsipprocessorsipm-indexjspgt Acesso em Abril de 2007
ALTERA Development amp Education Board 2 (DE2) Manual do usuario Disponivel no
de que acompanha o Kit DE2 ltDE2_user_manualDE2_UserManualpdfgt Acesso em
fevereiro de 2007
51
A estrutura do teclado eacute a mesma utilizada pela figura 23 e tambem eacute criado satildeo
inicializados na figura 24
O restante as implementaccedilotildees estatildeo disponiveis no cd deste documento
Quando algum botatildeo do teclado eacute pressionado sua cor muda para azul e sua letra
correspondente eacute escrita o prompt
A figura 32 ilustra quando o usuaacuterio aperta a letra lsquotrsquo na peliacutecula touch-screen
Figura 32 - Teste do prompt e o teclado
52
53 Controle da Interface Touch-Screen
Depois do todos os testes com o processador NIOS e a integraccedilatildeo do mesmo com os
moacutedulos externos como a porta SERIAL e a saiacuteda VGA eacute possiacutevel utilizando o touch-screen
criar uma interface amigaacutevel e faacutecil de usar para o usuaacuterio utilizando um firmware capaz de
interpretar os sinais via serial vindo da controladora do touch ao detectar que um toque foi dado
pelo usuaacuterio e realizar algumas accedilotildees que neste caso se comportam como um editor de texto
baacutesico
A figura 33 mostra como foi validado este projeto e seus moacutedulos controlando uma
interface touch-screen para chegar no resultado abaixo digitado pelo usuaacuterio comprovando o
funcionamento e viabilidade deste projeto
Figura 33 ndash 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 mudanccedilas podendo ser alterado rapidamente o tipo de
aplicaccedilatildeo ou integrado rapidamente com outro projeto
53
CAPIacuteTULO 6 - CONCLUSAtildeO
Uma das principais dificuldades no desenvolvimento deste projeto foi fazer o levantamento
da documentaccedilatildeo sobre o processador NIOS e os moacutedulos externos a FPGA do Kit DE2 Como
natildeo foi feito algum projeto antes que utilizasse a interface VGA e a SERIAL do Kit DE2 levou-
se muito tempo ateacute conseguir adquirir e ordenar o conhecimento que foi sendo adquirido ateacute
conseguir dar os primeiros passos e realizar os primeiros testes com a VGA e a SERIAL Outro
grande obstaacuteculo foi ter de descobrir que para que o NIOS controlasse os moacutedulos externos a
FGPA fosse necessaacuterio copiar os arquivos c e h dos respectivos componente para dentro do
projeto
Mas depois de todos os problemas com os moacutedulos externos solucionados cada modulo do
projeto foi sendo desenvolvido separadamente ateacute seu total funcionamento Natildeo tive dificuldades
com a linguagem da programaccedilatildeo pois o Firmware do processador NIOS eacute o C a qual mais tive
contato na faculdade
Outro desafio foi fazer a peliacutecula 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
peliacutecula natildeo 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 possiacutevel
comeccedilar a fazer os testes necessaacuterios para prosseguir com o projeto aprender como o a peliacutecula
identifica um toque e manda este sinal para a controladora e a controladora transforma este sinal
em um sinal serial que eacute 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 accedilotildees
que as coordenadas jaacute estatildeo previamente calibradas no firmware para fazer bem como mudar de
cor a tela fazer o efeito de um botatildeo subindo e descendo etc
Varias vezes o projeto parou de funcionar entatildeo 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 memoacuteria abundante etc uma das
facilidades eacute a faacutecil alteraccedilatildeo do projeto podendo ser integrado a outro ou ateacute mesmo alterado
para realizar outros tipos de accedilotildees com o touch-screen
Existem vaacuterios melhoramentos que podem ser executados no projeto um deles eacute tentar
interpretar de uma maneira diferente os valores do eixo y pois do jeito que esta a resoluccedilatildeo do
eixo y esta muito baixa dificultando o reconhecimento de toques em aacutereas pequenas Talvez a
inclusatildeo de mais alguns bytes no pacote de leitura da serial resolva o problema
54
Uma ideacuteia para um proacuteximo projeto que use a interface touch-screen poderia ser a
integraccedilatildeo com o projeto do nosso colega Roberto Junqueira ou a desenvolvimento de uma
placa controladora para o touch-screen
Este trabalho eacute uma modesta contribuiccedilatildeo para o uso de FPGAs e do processador embarcado
NIOS implementado em VHDL pela Altera que acredito que vai abrir vaacuterios caminhos pois
com este projeto alguns caminhos ficaram mais faacuteceis de percorrer daqui para a frente
55
CAPIacuteTULO 7 - REFEREcircNCIAS BIBLIOGRAacuteFICAS
AMORE Roberto drsquo VHDL Descriccedilatildeo e Sintese de Circuitos Rio de Janeiro ed LTC
2005
Elotouch Touch-Screen e Controladora Descriccedilatildeo do funcionamento e descriccedilatildeo
tecnologia Touch-Screen lthttpwwwelotouchcombrgt Acesso em fevereiro de 2007
ALTERA University Program IP Cores Instalaccedilatildeo de IP Cores e referencias sobre os
componentes dos kits DE1 e DE2 Disponivel em lthttpwwwalteracomeducationunivip-
coresunv-ip-coreshtmlgt Acesso em abril de 2007
ALTERA NIOS II Documentaccedilatildeo sobre o pprocessador embracado NIO II Disponivel
em lthttpwwwalteracomproductsipprocessorsipm-indexjspgt Acesso em Abril de 2007
ALTERA Development amp Education Board 2 (DE2) Manual do usuario Disponivel no
de que acompanha o Kit DE2 ltDE2_user_manualDE2_UserManualpdfgt Acesso em
fevereiro de 2007
52
53 Controle da Interface Touch-Screen
Depois do todos os testes com o processador NIOS e a integraccedilatildeo do mesmo com os
moacutedulos externos como a porta SERIAL e a saiacuteda VGA eacute possiacutevel utilizando o touch-screen
criar uma interface amigaacutevel e faacutecil de usar para o usuaacuterio utilizando um firmware capaz de
interpretar os sinais via serial vindo da controladora do touch ao detectar que um toque foi dado
pelo usuaacuterio e realizar algumas accedilotildees que neste caso se comportam como um editor de texto
baacutesico
A figura 33 mostra como foi validado este projeto e seus moacutedulos controlando uma
interface touch-screen para chegar no resultado abaixo digitado pelo usuaacuterio comprovando o
funcionamento e viabilidade deste projeto
Figura 33 ndash 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 mudanccedilas podendo ser alterado rapidamente o tipo de
aplicaccedilatildeo ou integrado rapidamente com outro projeto
53
CAPIacuteTULO 6 - CONCLUSAtildeO
Uma das principais dificuldades no desenvolvimento deste projeto foi fazer o levantamento
da documentaccedilatildeo sobre o processador NIOS e os moacutedulos externos a FPGA do Kit DE2 Como
natildeo foi feito algum projeto antes que utilizasse a interface VGA e a SERIAL do Kit DE2 levou-
se muito tempo ateacute conseguir adquirir e ordenar o conhecimento que foi sendo adquirido ateacute
conseguir dar os primeiros passos e realizar os primeiros testes com a VGA e a SERIAL Outro
grande obstaacuteculo foi ter de descobrir que para que o NIOS controlasse os moacutedulos externos a
FGPA fosse necessaacuterio copiar os arquivos c e h dos respectivos componente para dentro do
projeto
Mas depois de todos os problemas com os moacutedulos externos solucionados cada modulo do
projeto foi sendo desenvolvido separadamente ateacute seu total funcionamento Natildeo tive dificuldades
com a linguagem da programaccedilatildeo pois o Firmware do processador NIOS eacute o C a qual mais tive
contato na faculdade
Outro desafio foi fazer a peliacutecula 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
peliacutecula natildeo 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 possiacutevel
comeccedilar a fazer os testes necessaacuterios para prosseguir com o projeto aprender como o a peliacutecula
identifica um toque e manda este sinal para a controladora e a controladora transforma este sinal
em um sinal serial que eacute 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 accedilotildees
que as coordenadas jaacute estatildeo previamente calibradas no firmware para fazer bem como mudar de
cor a tela fazer o efeito de um botatildeo subindo e descendo etc
Varias vezes o projeto parou de funcionar entatildeo 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 memoacuteria abundante etc uma das
facilidades eacute a faacutecil alteraccedilatildeo do projeto podendo ser integrado a outro ou ateacute mesmo alterado
para realizar outros tipos de accedilotildees com o touch-screen
Existem vaacuterios melhoramentos que podem ser executados no projeto um deles eacute tentar
interpretar de uma maneira diferente os valores do eixo y pois do jeito que esta a resoluccedilatildeo do
eixo y esta muito baixa dificultando o reconhecimento de toques em aacutereas pequenas Talvez a
inclusatildeo de mais alguns bytes no pacote de leitura da serial resolva o problema
54
Uma ideacuteia para um proacuteximo projeto que use a interface touch-screen poderia ser a
integraccedilatildeo com o projeto do nosso colega Roberto Junqueira ou a desenvolvimento de uma
placa controladora para o touch-screen
Este trabalho eacute uma modesta contribuiccedilatildeo para o uso de FPGAs e do processador embarcado
NIOS implementado em VHDL pela Altera que acredito que vai abrir vaacuterios caminhos pois
com este projeto alguns caminhos ficaram mais faacuteceis de percorrer daqui para a frente
55
CAPIacuteTULO 7 - REFEREcircNCIAS BIBLIOGRAacuteFICAS
AMORE Roberto drsquo VHDL Descriccedilatildeo e Sintese de Circuitos Rio de Janeiro ed LTC
2005
Elotouch Touch-Screen e Controladora Descriccedilatildeo do funcionamento e descriccedilatildeo
tecnologia Touch-Screen lthttpwwwelotouchcombrgt Acesso em fevereiro de 2007
ALTERA University Program IP Cores Instalaccedilatildeo de IP Cores e referencias sobre os
componentes dos kits DE1 e DE2 Disponivel em lthttpwwwalteracomeducationunivip-
coresunv-ip-coreshtmlgt Acesso em abril de 2007
ALTERA NIOS II Documentaccedilatildeo sobre o pprocessador embracado NIO II Disponivel
em lthttpwwwalteracomproductsipprocessorsipm-indexjspgt Acesso em Abril de 2007
ALTERA Development amp Education Board 2 (DE2) Manual do usuario Disponivel no
de que acompanha o Kit DE2 ltDE2_user_manualDE2_UserManualpdfgt Acesso em
fevereiro de 2007
53
CAPIacuteTULO 6 - CONCLUSAtildeO
Uma das principais dificuldades no desenvolvimento deste projeto foi fazer o levantamento
da documentaccedilatildeo sobre o processador NIOS e os moacutedulos externos a FPGA do Kit DE2 Como
natildeo foi feito algum projeto antes que utilizasse a interface VGA e a SERIAL do Kit DE2 levou-
se muito tempo ateacute conseguir adquirir e ordenar o conhecimento que foi sendo adquirido ateacute
conseguir dar os primeiros passos e realizar os primeiros testes com a VGA e a SERIAL Outro
grande obstaacuteculo foi ter de descobrir que para que o NIOS controlasse os moacutedulos externos a
FGPA fosse necessaacuterio copiar os arquivos c e h dos respectivos componente para dentro do
projeto
Mas depois de todos os problemas com os moacutedulos externos solucionados cada modulo do
projeto foi sendo desenvolvido separadamente ateacute seu total funcionamento Natildeo tive dificuldades
com a linguagem da programaccedilatildeo pois o Firmware do processador NIOS eacute o C a qual mais tive
contato na faculdade
Outro desafio foi fazer a peliacutecula 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
peliacutecula natildeo 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 possiacutevel
comeccedilar a fazer os testes necessaacuterios para prosseguir com o projeto aprender como o a peliacutecula
identifica um toque e manda este sinal para a controladora e a controladora transforma este sinal
em um sinal serial que eacute 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 accedilotildees
que as coordenadas jaacute estatildeo previamente calibradas no firmware para fazer bem como mudar de
cor a tela fazer o efeito de um botatildeo subindo e descendo etc
Varias vezes o projeto parou de funcionar entatildeo 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 memoacuteria abundante etc uma das
facilidades eacute a faacutecil alteraccedilatildeo do projeto podendo ser integrado a outro ou ateacute mesmo alterado
para realizar outros tipos de accedilotildees com o touch-screen
Existem vaacuterios melhoramentos que podem ser executados no projeto um deles eacute tentar
interpretar de uma maneira diferente os valores do eixo y pois do jeito que esta a resoluccedilatildeo do
eixo y esta muito baixa dificultando o reconhecimento de toques em aacutereas pequenas Talvez a
inclusatildeo de mais alguns bytes no pacote de leitura da serial resolva o problema
54
Uma ideacuteia para um proacuteximo projeto que use a interface touch-screen poderia ser a
integraccedilatildeo com o projeto do nosso colega Roberto Junqueira ou a desenvolvimento de uma
placa controladora para o touch-screen
Este trabalho eacute uma modesta contribuiccedilatildeo para o uso de FPGAs e do processador embarcado
NIOS implementado em VHDL pela Altera que acredito que vai abrir vaacuterios caminhos pois
com este projeto alguns caminhos ficaram mais faacuteceis de percorrer daqui para a frente
55
CAPIacuteTULO 7 - REFEREcircNCIAS BIBLIOGRAacuteFICAS
AMORE Roberto drsquo VHDL Descriccedilatildeo e Sintese de Circuitos Rio de Janeiro ed LTC
2005
Elotouch Touch-Screen e Controladora Descriccedilatildeo do funcionamento e descriccedilatildeo
tecnologia Touch-Screen lthttpwwwelotouchcombrgt Acesso em fevereiro de 2007
ALTERA University Program IP Cores Instalaccedilatildeo de IP Cores e referencias sobre os
componentes dos kits DE1 e DE2 Disponivel em lthttpwwwalteracomeducationunivip-
coresunv-ip-coreshtmlgt Acesso em abril de 2007
ALTERA NIOS II Documentaccedilatildeo sobre o pprocessador embracado NIO II Disponivel
em lthttpwwwalteracomproductsipprocessorsipm-indexjspgt Acesso em Abril de 2007
ALTERA Development amp Education Board 2 (DE2) Manual do usuario Disponivel no
de que acompanha o Kit DE2 ltDE2_user_manualDE2_UserManualpdfgt Acesso em
fevereiro de 2007
54
Uma ideacuteia para um proacuteximo projeto que use a interface touch-screen poderia ser a
integraccedilatildeo com o projeto do nosso colega Roberto Junqueira ou a desenvolvimento de uma
placa controladora para o touch-screen
Este trabalho eacute uma modesta contribuiccedilatildeo para o uso de FPGAs e do processador embarcado
NIOS implementado em VHDL pela Altera que acredito que vai abrir vaacuterios caminhos pois
com este projeto alguns caminhos ficaram mais faacuteceis de percorrer daqui para a frente
55
CAPIacuteTULO 7 - REFEREcircNCIAS BIBLIOGRAacuteFICAS
AMORE Roberto drsquo VHDL Descriccedilatildeo e Sintese de Circuitos Rio de Janeiro ed LTC
2005
Elotouch Touch-Screen e Controladora Descriccedilatildeo do funcionamento e descriccedilatildeo
tecnologia Touch-Screen lthttpwwwelotouchcombrgt Acesso em fevereiro de 2007
ALTERA University Program IP Cores Instalaccedilatildeo de IP Cores e referencias sobre os
componentes dos kits DE1 e DE2 Disponivel em lthttpwwwalteracomeducationunivip-
coresunv-ip-coreshtmlgt Acesso em abril de 2007
ALTERA NIOS II Documentaccedilatildeo sobre o pprocessador embracado NIO II Disponivel
em lthttpwwwalteracomproductsipprocessorsipm-indexjspgt Acesso em Abril de 2007
ALTERA Development amp Education Board 2 (DE2) Manual do usuario Disponivel no
de que acompanha o Kit DE2 ltDE2_user_manualDE2_UserManualpdfgt Acesso em
fevereiro de 2007
55
CAPIacuteTULO 7 - REFEREcircNCIAS BIBLIOGRAacuteFICAS
AMORE Roberto drsquo VHDL Descriccedilatildeo e Sintese de Circuitos Rio de Janeiro ed LTC
2005
Elotouch Touch-Screen e Controladora Descriccedilatildeo do funcionamento e descriccedilatildeo
tecnologia Touch-Screen lthttpwwwelotouchcombrgt Acesso em fevereiro de 2007
ALTERA University Program IP Cores Instalaccedilatildeo de IP Cores e referencias sobre os
componentes dos kits DE1 e DE2 Disponivel em lthttpwwwalteracomeducationunivip-
coresunv-ip-coreshtmlgt Acesso em abril de 2007
ALTERA NIOS II Documentaccedilatildeo sobre o pprocessador embracado NIO II Disponivel
em lthttpwwwalteracomproductsipprocessorsipm-indexjspgt Acesso em Abril de 2007
ALTERA Development amp Education Board 2 (DE2) Manual do usuario Disponivel no
de que acompanha o Kit DE2 ltDE2_user_manualDE2_UserManualpdfgt Acesso em
fevereiro de 2007