56
CENTRO UNIVERSITÁRIO POSITIVO NÚCLEO DE CIÊNCIAS EXATAS E TECNOLÓGICAS ENGENHARIA DA COMPUTAÇÃO INTERFACE TOUCHSCREEN Hildeberto Lopes Filho Monografia apresentada à disciplina de Projeto Final como requisito parcial à conclusão do Curso de Engenharia da Computação, orientada pelo Prof. Valfredo Pilla Junior. UNICENP/NCET Curitiba 2007

Interface Touchscreen

Embed Size (px)

Citation preview

Page 1: Interface Touchscreen

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

Page 2: Interface Touchscreen

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

Page 3: Interface Touchscreen

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

Page 4: Interface Touchscreen

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

Page 5: Interface Touchscreen

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

Page 6: Interface Touchscreen

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

Page 7: Interface Touchscreen

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

Page 8: Interface Touchscreen

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

Page 9: Interface Touchscreen

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

Page 10: Interface Touchscreen

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

Page 11: Interface Touchscreen

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

Page 12: Interface Touchscreen

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

Page 13: Interface Touchscreen

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

Page 14: Interface Touchscreen

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

Page 15: Interface Touchscreen

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

Page 16: Interface Touchscreen

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

Page 17: Interface Touchscreen

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

Page 18: Interface Touchscreen

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

Page 19: Interface Touchscreen

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

Page 20: Interface Touchscreen

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

Page 21: Interface Touchscreen

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

Page 22: Interface Touchscreen

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

Page 23: Interface Touchscreen

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

Page 24: Interface Touchscreen

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

Page 25: Interface Touchscreen

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

Page 26: Interface Touchscreen

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

Page 27: Interface Touchscreen

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

Page 28: Interface Touchscreen

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

Page 29: Interface Touchscreen

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

Page 30: Interface Touchscreen

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

Page 31: Interface Touchscreen

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

Page 32: Interface Touchscreen

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

Page 33: Interface Touchscreen

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

Page 34: Interface Touchscreen

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

Page 35: Interface Touchscreen

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

Page 36: Interface Touchscreen

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

Page 37: Interface Touchscreen

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

Page 38: Interface Touchscreen

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

Page 39: Interface Touchscreen

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

Page 40: Interface Touchscreen

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

Page 41: Interface Touchscreen

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

Page 42: Interface Touchscreen

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

Page 43: Interface Touchscreen

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

Page 44: Interface Touchscreen

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

Page 45: Interface Touchscreen

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

Page 46: Interface Touchscreen

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

Page 47: Interface Touchscreen

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

Page 48: Interface Touchscreen

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

Page 49: Interface Touchscreen

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

Page 50: Interface Touchscreen

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

Page 51: Interface Touchscreen

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

Page 52: Interface Touchscreen

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

Page 53: Interface Touchscreen

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

Page 54: Interface Touchscreen

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

Page 55: Interface Touchscreen

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

Page 56: Interface Touchscreen

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