Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Erick Franklin Coelho da Silva Orientador: Prof. Abel Guilhermino da Silva Filho
Erick Franklin Coelho da Silva Orientador: Prof. Abel Guilhermino da Silva Filho
Resumo
A maioria dos sinais encontrados na natureza so contnuos e podem ser transformados em imagens para a apreciao do olho humano. Uma das formas de imagem mais comum no cotidiano a imagem de vdeo obtida a partir de uma fonte geradora de vdeo composto, como por exemplo, uma cmera de vdeo. Este estudo apresenta uma metodologia para captura de imagens usando microcontroladores. Microcontroladores so microprocessadores com arquiteturas simples e recursos limitados, contudo, a principal vantagem dos microcontroladores so essencialmente as caractersticas encontradas de um computador pessoal comum em um nico chip integrado a preo acessvel. Neste trabalho proposta uma arquitetura de implementao de prottipo de um circuito condicionador para captura, armazenamento e transmisso serial de um quadro de imagem de vdeo composto. O maior desafio deste trabalho refere-se s limitaes de recursos de memria e processamento disponveis nos microcontroladores. Contudo, uma soluo satisfatria para problemas complexos usando um circuito integrado simples com um custo relativamente baixo torna a metodologia proposta atrativa.
ii
Abstract
Most of the signals found in the nature are continuous and can be changed into images for the appreciation of the human eye. Nowadays, one of the most common form of image is the vdeo image gotten from a generating source of composite video, for example, a video camera. This study presents a methodology developed to capture images using microcontrollers. Microcontrollers are limited microprocessors with simple architectures and resources, however, the main advantage of the microcontrollers is essentially the similar characteristics found of a common personal computer in a single chip offered by an accessible price. In this work is considered an architecture implementation prototype of a conditioning circuit for capture, storage and serial transmission of a frame of image of composed video. The biggest challenge of this work is about the limitations of resources of available memory and processing in the microcontrollers. However, the proposed methodology is attractive because it is a satisfactory solution for a complex problem using a simple and low cost circuit integrated.
iii
Sumrio
ndice de Figuras ndice de Tabelas Tabela de Smbolos e Siglas 1 Introduo
1.1 1.2 Objetivo Organizao
v vii viii 11
11 12
Conceitos Bsicos
2.1 Vdeo Composto 2.1.1 Fundamentos 2.1.2 Partes do sinal de vdeo 2.1.3 Formatos de Vdeo 2.1.4 Codificao de cores 2.1.5 Nveis de cores 2.1.6 Conceito de varredura entrelaada 2.1.7 Imagem ativa 2.1.8 Formao da imagem 2.2 Microcontrolador 2.2.1 Por que usar um microcontrolador? 2.2.2 Microcontroladores vs Microprocessadores 2.2.3 Unidade de memria 2.2.4 Unidade de processamento central 2.2.5 Barramento 2.2.6 Unidade de entrada/sada 2.2.7 Comunicao serial 2.2.8 Temporizador geral (Timer) 2.2.9 Temporizador de programa (Watchdog) 2.2.10 Conversor analgico-digital 2.2.11 Programa
13
13 13 15 17 18 18 19 20 20 22 23 23 23 24 25 26 26 27 27 28 28
Etapas do Projeto
3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 Definio da arquitetura Definio dos componentes Elaborao do esquema eltrico Validao do esquema Elaborao do layout Confeco do circuito impresso Montagem da placa Testes sobre a arquitetura completa
31
31 32 32 32 33 33 34 34
Implementao
36
4.1 Arquitetura 4.2 Componentes 4.2.1 Microcontrolador 4.2.2 Conversor A/D 4.2.3 Separador de Sincronismo 4.2.4 Memria SRAM 4.2.5 Contador 4.2.6 Transceptor 4.3 Esquema eltrico 4.4 Validao do esquema eltrico 4.5 Layout do circuito 4.6 Circuito impresso 4.7 Montagem da placa 4.8 Testes da arquitetura
iv 36 38 38 39 39 40 41 41 42 45 46 46 49 50
52
52 54 56 56 57 57 58 58 59
60
60 61 61
62 64 66
ndice de Figuras
Figura 1. Sincronismo horizontal [6]. Figura 2. Referncia de burst de cor [6]. Figura 3. Sincronismo horizontal e referncia de burst de cor [6]. Figura 4. Partes do sinal de vdeo [7]. Figura 5. Sinal de vdeo entrelaado no padro RS-170 [7]. Figura 6. Nveis de cores [7]. Figura 7. Varredura entrelaada [6]. Figura 8. Apagamento vertical e sinal de sincronismo vertical para NTSC [6]. Figura 9. Apagamento vertical e sinal de sincronismo vertical para PAL e SECAM [6]. Figura 10. Varredura de um quadro completo NTSC [7]. Figura 11. Modelo de memria [8]. Figura 12. Modelo de unidade central de processamento com trs registradores [8]. Figura 13. Conectando a memria e a unidade central de processamento [8]. Figura 14. Modelo de uma unidade de entrada/sada [8]. Figura 15. Modelo de unidade serial [8]. Figura 16. Marcador de tempo para gerar sinais em intervalos de tempo regulares [8]. Figura 17. Modelo de um watchdog Figura 18. Bloco para converter uma forma analgica para digital [8]. Figura 19. Elementos bsicos e conexes internas de um microcontrolador da Microchip[8]. Figura 20. Diagrama de bloco do projeto. Figura 21. Pipeline do conversor A/D LTC1406 [13]. Figura 22. Diagrama de tempo do componente LM1881 [15]. Figura 23. Diagrama de tempo do contador. Figura 24. Esquema eltrico do circuito condicionador. Figura 25. Sinal de vdeo composto (a) e sinal de sincronismo horizontal (b), ambos extrado com uma ferramenta de osciloscpio. Figura 26. (a) Mscara de trilhas da face superior e (b) mscara de trilhas da face inferior do circuito. Figura 27. (a) Mscara de ilhas de soldagem da face superior e (b) mscara de ilhas de soldagem da face inferior do circuito. Figura 28. Mscara de contornos de componentes do circuito. Figura 29. (a) Viso de um furo metalizado e (b) viso de um furo no metalizado. 11 14 15 15 16 18 19 21 21 22 24 25 25 26 27 27 28 28 29 36 39 40 41 43 45 47 48 48 49
vi
Figura 30. Mquina de estados do programa para captura de um quadro de imagem de vdeo. Figura 31. Controle da captura do sinal de vdeo pelo programa. Figura 32. Organizao dos mdulos do programa com mapeamento nos respectivos arquivos .c. Figura 33. Barramento de dados compartilhado e os sinais: OE_TRA e OE_MEM. Figura 34. Formato de armazenamento do quadro de imagem na memria. Figura 35. Estrutura de um arquivo bitmap (.bmp). Figura 36. Fluxograma da transmisso serial atravs do microcontrolador.
53 53 54 55 56 57 59
vii
ndice de Tabelas
Tabela 1. Tabela 2. Tabela 3. Tabela 4. Tabela 5. Tabela 6. Tabela 7. Tabela 8. Tabela 9. Tabela 10. Tabela 11. Tabela 12. Tabela 13. Tabela 14. Formatos padres de vdeo analgico. Diferentes nveis de vdeo. Imagem ativa. Operaes possveis com o projeto do circuito. Resumo das caractersticas do microcontrolador PIC18F4455. Tabela verdade da memria. Tabela de funo do contador. Tabela de funo do transceptor. Relao de pinos entre os componentes do circuito. Lista de testes sobre a parte eltrica do circuito. Lista de testes sobre as funcionalidades dos componentes. Definio dos sinais OE_TRA e OE_MEM conforme operao desejada. Campos do cabealho de um arquivo bitmap. Campos do cabealho de imagem de um aquivo bitmap. 17 18 20 36 37 39 40 41 43 49 49 53 55 56
viii
ix
PDIP Plastic Dual-In Line Package (Linha de Empacotamento Relativo a Plstico) QAM Quadrature Amplitude Modulation (Modulao pela Amplitude da Quadratura) RAM Random Access Memory (Memria de Acesso Aleatrio) RGB Red, Green and Blue (Vermelho, Verde e Azul padro de cores) ROM Read Only Memory (Memria Somente de Leitura) RS170 Padro de vdeo usado nos EUA. RS232 Serial Interface to Receiver/Sender (Interface Serial para Enviar/Receber padro para comunicao serial) SECAM Systeme Electronic Pour Coleur Avec Memoire (Sistema Eletrnico de Cores com Memria) SPI Serial Peripheral Interface (Interface Perifrica Serial) SRAM Static Random Access Memory (Memria Esttica de Acesso Aleatrio) SSOP Small Shrink Outline Package (Desenho de Pacote de Pequeno Encolhimento) TCP/IP Transmission Control Protocol/Internet Protocol (Protocolo de Controle de Transmisso/Protocolo de Internet) USB Universal Serial Bus (Barramento Serial Universal padro de comunicao serial) VSYNC Vertical Sync (Sincronismo Vertical) W/R Write/Read (Escrita/Leitura) X Dont care (Indiferente) Y Sinal de Luminncia Z High Z (Nvel de alta impedncia 3 nvel lgico)
Agradecimentos
Sou grato a todos aqueles que contriburam para este trabalho. Em particular, a todos os professores do curso de graduao em Engenharia da Computao da Universidade de Pernambuco por suas valiosas informaes transmitidas durante o perodo de aprendizado as quais serviram como base de conhecimento e fonte de inspirao. Tambm desejo agradecer especialmente ao meu professor orientador, Prof. Abel Guilhermino, pela dedicao que empregou seu conhecimento, superviso, incentivo e sugestes aplicadas para a concluso deste trabalho. Gostaria de agradecer ao professor Carlos Alexandre de Mello pelas orientaes iniciais sobre a produo de textos cientficos e explanaes sobre a importncia do trabalho de concluso de curso. Sou muito grato aos colaboradores da empresa Segsat Industria Ltda [27]: Newton van der Linden e Carlos Fernando Meira Lins, por me ajudarem nos assuntos sobre eletrnica e desenvolvimento de projeto de hardware. Por fim, desejo agradecer a Segsat Industria Ltda por disponibilizar o espao e as ferramentas do seu laboratrio de desenvolvimento os quais foram de fundamental importncia para a realizao dos meus testes e validaes.
11
Captulo 1 Introduo
A maioria dos sinais encontrados diretamente na natureza so contnuos. Esses sinais podem ser transformados em imagens que podem ser consideradas descries de parmetros que variam sobre uma superfcie [1]. Por exemplo, imagens podem resultar da variao da intensidade de luz sobre um plano bidimensional. Entretanto, a intensidade de luz no o nico parmetro usado em imagens. Uma imagem pode ser formada pela temperatura de um circuito integrado, velocidade do sangue na artria de um paciente, emisso de raios-X de uma galxia distante, dentre outros exemplos. Essas imagens so usualmente convertidas em figuras convencionais, por isso elas podem ser avaliadas pelo olho humano. Em um sistema computacional, por exemplo, mais de 10 MB podem ser necessrios para armazenar um segundo de um vdeo de televiso. Isso mais de mil vezes maior que um sinal de voz de tamanho semelhante. Essas caractersticas tm feito o processamento de imagem um subgrupo distinto dentro do Processamento Digital de Sinais [2] - DSP. O Processamento Digital de Sinais distinguido das outras reas dentro da engenharia eltrica pelo tipo nico de dados usados: sinais. Na maioria dos casos, esses sinais so originados de sensores de dados do mundo real: vibrao ssmica, imagens visuais, ondas sonoras, etc. O DSP se constitui de fundamentao matemtica, algoritmos, e de tcnicas usadas para manipular esses sinais depois que eles so convertidos em uma forma digital. Isso inclui uma grande variedade de objetivos, como: melhoramento de imagens visuais, reconhecimento e gerao de fala, compresso de dados para armazenamento e transmisso, dentre outros.
1.1 Objetivo
A captao da imagem atravs de um circuito condicionador um dos processos que antecedem o Processamento Digital de Sinais. Sendo assim, o objetivo deste trabalho desenvolver uma metodologia para captura de imagens usando microcontroladores. O processo de captura de imagens oriundo da metodologia desenvolvida serve de trabalho preliminar para futuras aplicaes nos mais diversos campos, tais como: monitoramento de ambientes, controle de segurana, pesquisas em ambientes que no pode haver interveno humana, viso em dispositivos remotos, robtica, dentre outras aplicaes. Uma das grandes vantagens do uso de microcontroladores a flexibilidade e o custo envolvido no desenvolvimento de aplicaes que utilizam esta abordagem. A arquitetura de um microcontrolador composta de perifricos tais como: conversores A/D (Analog/Digital),
12
temporizadores, portas de I/O (Input/Output), interfaces seriais e paralelas, entre outros perifricos que auxiliam o projetista no desenvolvimento de projetos de sistemas embarcados [3]. Um dos grandes desafios deste trabalho refere-se primeiro as limitaes de recursos disponveis nos microcontroladores as quais so caracterizadas pelo baixo desempenho de processamento e memria de trabalho pequena em comparao com computadores pessoais comuns. Em segundo, a implementao do circuito condicionador para captura dos sinais. Contudo, uma soluo satisfatria para problemas complexos usando um circuito integrado simples com custo relativamente baixo torna esta abordagem atrativa.
1.2 Organizao
A metodologia proposta para captura de imagens usando microcontroladores constituda de seis etapas: (1) Aquisio do sinal analgico de vdeo composto, (2) Converso do sinal de entrada em digital, (3) Separao dos sinais de sincronismo de vdeo, (4) Armazenamento, (5) Prprocessamento da imagem e (6) Transmisso do sinal digital processado em uma sada serial. A seguir est descrita a organizao deste documento. No Captulo 2 so apresentados os conceitos bsicos sobre as caractersticas da formao do sinal de vdeo composto, uma vez que de fundamental importncia conhecer como esse sinal transporta informaes sobre sincronismo vertical, sincronismo horizontal, crominncia e luminncia, como tambm seus padres e freqncias de operao. Um outro conceito bsico, tambm abordado refere-se as caractersticas bsicas de um microcontrolador como a formao da sua arquitetura e seus componentes como portas I/O, memria RAM (Random Access Memory), memria ROM (Read Only Memory), sada serial entre outras. Em seguida, nos Captulos 3 e 4, as etapas e a implementao do projeto so apresentadas desde a etapa onde a arquitetura da metodologia elaborada, passando pela escolha dos componentes, elaborao do esquema eltrico, validao dos componentes, elaborao do layout da placa at os testes da arquitetura. Esta parte importante para identificar cada um dos passos utilizados para definir o mtodo de captura de imagens, como tambm para descrever sua validao atravs da prototipao de um circuito. Uma vez que a abordagem escolhida utiliza um microcontrolador para controlar e gerenciar as funes de cada um dos componentes que compem o circuito condicionador, o Captulo 5 deste documento dedicado a apresentar o software embarcado. Esse sistema responsvel pelo controle da interao dos recursos de hardware para aquisio, armazenamento, processamento e transmisso da imagem digitalizada. Finalmente, no Captulo 6 so descritas as concluses obtidas sobre o projeto e algumas consideraes so apresentadas para realizao de trabalhos futuros.
13
2.1.1
Fundamentos
A compreenso dos fundamentos do sinal de vdeo essencial para entender a metodologia proposta neste trabalho. Inicialmente, o vdeo continha apenas o sinal de luminncia (informao em escala de cinza, tambm conhecida como preto e branco). Enquanto a radiodifuso em cores estava sendo desenvolvida, tentativas para transmitir vdeo colorido usando dados RGB (Red, Green and Blue) analgico estavam sendo feitas. Porm, essa tcnica ocupava trs vezes mais largura de banda que a atual soluo em escala de cinza, assim mtodos alternativos foram desenvolvidos usando os dados Y (luminncia + sincronismo), R-Y and G-Y para representar a informao da cor [5]. A tcnica foi ento desenvolvida para transmitir as informaes Y, R-Y e G-Y usando um nico sinal, ao invs de trs sinais separados, e dentro da mesma largura de banda como o sinal de vdeo em escala de cinza original. Esse sinal de vdeo composto o que os padres de vdeo NTSC (National Television Standards Committee), PAL (Phase Alteration Line) e SECAM (Systeme Electronic Pour Coleur Avec Memoire) ainda tomam por base atualmente.
14
Em resumo, um sinal de vdeo composto um sinal no qual todos os componentes requeridos para gerar o sinal de vdeo esto embutidos em um nico sinal. Os trs componentes principais que juntos formam um sinal composto so os seguintes: Sinal de luminncia - contm a informao de intensidade (brilho e contraste) da imagem do vdeo. Sinal de crominncia - contm a informao de cor da imagem do vdeo. Sinal de sincronismo - controla a varredura do sinal sobre uma tela, como uma tela de TV. O sinal composto monocromtico construdo com dois componentes: luminncia e sincronismo. Esse sinal, usualmente designado de sinal Y, mostrado na Figura 1, a qual representa uma linha de vdeo. A ordenada do plano de coordenadas cartesianas, na Figura 1, representa o nvel do sinal de vdeo cuja unidade de medida IRE (Institute Radio Engineers), essa unidade ser descrita com mais detalhes em sees futuras, ainda neste captulo. Tambm pode-se observar, na Figura 1, o sinal de sincronismo horizontal, conhecido como HSYNC, que indica o incio de uma linha de vdeo.
Figura 1. Sincronismo horizontal [6]. O sinal de crominncia sozinho, que usualmente chamado de sinal C, mostrado na Figura 2. Esse sinal contm uma referncia de cor, denominada burst de cor, que utilizada para decodificao da cor com intuito de garantir a fidelidade e estabilidade da cor da imagem. A Figura 2 tambm mostra a modulao da cor no perodo de durao de uma linha.
15
O sinal de vdeo colorido composto, freqentemente chamado de vdeo colorido, apagamento, e sincronismo (CVBS - Color Vdeo, Blank, and Sync), a soma de Y e C conforme mostra a Figura 3 (CVBS = Y + C).
Figura 3. Sincronismo horizontal e referncia de burst de cor [6]. Os dois componentes Y e C tambm podem ser distribudos separadamente como dois sinais independentes. Esses dois sinais juntos so chamados ou de Y/C ou S-vdeo [5] .
2.1.2
O sinal para uma nica linha de vdeo horizontal consiste de um sinal de sincronismo horizontal, nvel de sinal de referncia e vdeo ativo como mostrado na Figura 4.
Figura 4. Partes do sinal de vdeo [7]. O sinal de sincronismo horizontal (HSYNC) inserido a cada nova linha de vdeo. Esse sinal utilizado pelo dispositivo receptor para identificar o incio de cada linha de vdeo. Ele seguido por um nvel de sinal A, conforme a Figura 4, que usado como um nvel de referncia para remover quaisquer componentes DC a partir do sinal de vdeo instvel (acoplado AC). Isso consumado durante o intervalo AB. Para sinais coloridos compostos a maior parte do intervalo AB usado para o burst de cor que fornece informao para decodificar o contedo da cor do sinal.
16
Informao de cor pode ser includa junto com o sinal de vdeo monocromtico. Um sinal colorido composto consiste de um sinal monocromtico padro (RS-170 ou CCIR [28]) com a adio dos seguintes componentes: Burst de cor localizado na entrada traseira, essa uma regio de alta freqncia que fornece uma referncia de fase e amplitude para a informao de cor subseqente. Sinal de crominncia esse a informao de cor real. Este consiste de duas quadraturas de componentes modulados sobre uma portadora na freqncia do burst de cor. A fase e a amplitude desses componentes determinam o contedo de cor de cada pixel. Outro aspecto do sinal de vdeo so os pulsos de sincronismo vertical (VSYNC). Esses so de fato uma serie de pulsos que ocorrem entre os campos pares e mpares para sinalizar ao monitor para executar um retraar vertical e preparar para rastrear o prximo campo, ou seja, indica para o monitor o momento de deslocar o ponto de apresentao da imagem para a parte superior esquerda do vdeo (aponta para o incio de um quadro de vdeo). Existem diversas linhas entre cada campo que no contm informao de vdeo ativo. Algumas contm apenas pulsos HSYNC, enquanto diversas outras contm uma srie de pulsos de equalizao (igualar) e VSYNC. Esses pulsos foram definidos nas primeiras radiodifuses da TV e tm sido parte do padro desde ento, embora a tecnologia de hardware recente tenha eliminado a necessidade de alguns pulsos extras. Um sinal entrelaado composto RS-170 mostrado na Figura 5, incluindo os pulsos de sincronismo vertical.
Figura 5. Sinal de vdeo entrelaado no padro RS-170 [7]. importante perceber que o tamanho horizontal (em pixels) de uma imagem obtida a partir de uma cmera analgica determinado pela taxa na qual o frame grabber tira amostras de cada linha de vdeo horizontal. A taxa, em fila, determinada pela taxa de linha vertical e a arquitetura da cmera. A estrutura das cmeras de vetor CCD [4] (Charge Coupled Device) determina o tamanho de cada pixel. Para evitar distoro da imagem, deve-se fazer a amostragem na direo horizontal em uma taxa que corta a regio de vdeo ativo horizontal no nmero de pixels correto. Em seguida, se apresenta um exemplo com nmeros do padro RS-170: Parmetros de interesse: Nmero de linhas por quadro (linhas/quadro): 525 (que incluem 485 para tela; e o resto so linhas VSYNC para cada um dos dois campos) Freqncia da linha: 15,734kHz Durao da linha: 63,556 s Durao horizontal ativa: 52,66 s Nmero de pixels por linha (pixels/linha): 640
17
A partir desses dados, alguns clculos podem ser realizados: Pixel por freqncia de clock (PCLK, freqncia que cada pixel chega ao frame grabber): 640 pixels / linha 12,15 10 6 pixels / s (12,15MHz) (1.1) 6 52,66 10 s / linha Comprimento total da linha em pixels do vdeo ativo + informao de tempo (referido como HCOUNT): 63,556 10 6 s 12,15 10 6 pixels / s 772 pixels (1.2) Taxa por quadro: 15,734 10 3 linhas / s 30quadros / s 525linhas / quadro
(1.3)
2.1.3
Formatos de Vdeo
A Tabela 1 descreve algumas caractersticas dos formatos padres de vdeo analgico comumente usados: Formato Onde usado Tabela 1. Formatos padres de vdeo analgico. Taxa de Resoluo Modo Nome Taxa de linhas de linha do sinal quadros, (linhas/seg) vertical veloc. de varredura (quad/seg) 525 15.750 Mono RS-170 30 29,97 525 15.734 Color NTSC Color CCIR PAL Color 25 25 405 625 10.125 15.625 Tamanho da imagem (LxA) 640x480
NTSC
PAL
SECAM
Amrica do Norte, Amrica Central e Japo Europa (exceto Frana), Austrlia, partes da frica e Amrica do Sul Frana, Europa Oriental, Rssia, partes do Oriente Mdio e frica
Mono Color
768x576
Mono Color
25 25
819 625
20.475 15.625
N/A
NTSC: National Television Standards Committee. PAL: Phase Alteration Line, o Brasil o nico pas no mundo transmitindo no formato PAL com
18
2.1.4
Codificao de cores
Para todos os formatos PAL [5] e NTSC [5], a codificao baseada no conceito da modulao pela amplitude da quadratura (QAM Quadrature Amplitude Modulation) [33], onde componentes de 2-cores so modulados pela amplitude da quadratura e ento combinados. A modulao deve ser decodificada, ento para guardar a trilha da fase absoluta necessria para decodificar a informao da cor, um sinal de referncia chamado burst de cor, inserido no incio de cada linha, a direita depois do pulso de sincronizao horizontal. Para o formato SECAM [5], os componentes 2-cores so modulados freqentemente usando duas freqncias de subportadora diferentes e so distribudos em seqncia em linhas de vdeo alternadas. O formato SECAM no precisa de um sinal de burst de cor.
2.1.5
Nveis de cores
Os nveis de vdeo definem os nveis e variaes para as diferentes partes do sinal de vdeo. A unidade para definir nveis de vdeo a IRE (Institute Radio Engineers). O nvel de apagamento refere-se a 0 IRE e o nvel de branco refere-se a +100 IRE. O nvel de apagamento, que um nvel de referncia para o sinal de vdeo (comumente 0 V), pode ser diferente do nvel de preto conforme mostra a Figura 6.
Figura 6. Nveis de cores [7]. Para o formato NTSC, uma configurao de +7,5 IRE comumente aplicada, que se move do nvel de preto at +7,5 IRE. Para os formatos PAL e SECAM, o nvel de preto alinhado com o nvel de apagamento em 0 IRE. A Tabela 2 mostra os diferentes nveis de vdeo dependendo do seu formato:
19
Tabela 2. Diferentes nveis de vdeo. Nvel de Nvel de Nvel de Apagamento Preto Branco 0 IRE +7,5 IRE +100 IRE 0 IRE 0 IRE +100 IRE 0 IRE 0 IRE +100 IRE
O sinal de video composto definido como uma fonte de voltagem com uma impedncia de 75. O nvel sync-to-white normalmente 1 Vpico-a-pico quando carregado com uma resistncia de 75. Ento, o sinal descarregado 2 Vp-p nominal.
2.1.6
Todos os sistemas de vdeo composto mostram a imagem de vdeo em uma tela de TV usando uma tcnica de varredura entrelaada. A Figura 7 apresenta o conceito de varredura entrelaada.
Figura 7. Varredura entrelaada [6]. O sinal de vdeo analgico inclui pulsos de sincronizao que controlam a varredura linha-a-linha da esquerda para direita e campo-a-campo de cima para baixo. Os pulsos que controlam a varredura linha-a-linha so chamados de pulsos de sincronizao horizontal (HSYNC). Os pulsos que controlam a varredura vertical so chamados de pulsos de sincronizao vertical (VSYNC). Dois campos entrelaados compem um quadro completo. O primeiro campo, chamado de campo mpar, vare as linhas mpares da imagem do vdeo. O segundo campo, chamado de campo par, vare a linhas pares da imagem do vdeo. O processo se repete para todos os quadros. Devido ao entrelaamento do vdeo, o efeito de imagem piscando na tela menos aparente que uma imagem apresentada em uma sistema de vdeo no entrelaado, porque a taxa em que campos sucessivos aparecem na tela duas vezes maior que a taxa na qual quadros sucessivos podem aparecer em uma tela no entrelaada contendo o mesmo nmero de linhas de varredura.
20
2.1.7
Imagem ativa
A imagem de vdeo ativa resultante da varredura sempre tem uma proporo de aspecto (horizontal/vertical) de 4/3, independente do formato de vdeo [6]. O sinal de vdeo composto colorido mostra que o processo de varredura requer algum espao adicional na esquerda e na direita de cada uma das linhas, como tambm no topo e na base da regio de imagem de vdeo ativo. Esse espao adicional inclui os sinais de sincronismo, burst de cor, e outra informao de formato especfico, como ITS (Insertion Test Signals), que no fazem parte da imagem de vdeo ativa. Aproximadamente 90% de todas as linhas transmitem informao de imagem ativa, sendo que cada linha contm apenas 80% em mdia de informao durante sua transmisso. O valor exato depende do formato de vdeo, como apresentado na Tabela 3. Formato de Vdeo NTSC PAL/SECAM Tabela 3. Imagem ativa. Linhas/Quadro Linhas Taxa de Ativas Quadro 525 480/486 29,97 quad/s 625 576 25,00 quad/s Durao de Linha 63,55 s 64,00 s Durao de Linha Ativa 52,2 s 52,0 s
As linhas ativas representam o nmero de linhas que so realmente usadas para transmitir a informao de imagem. Por exemplo, apenas 480 linhas dentre as 525 linhas por quadro transmitem informao de imagem no padro NTSC. De forma semelhante, em cada linha, a informao de imagem transmitida somente durante a seqncia de linhas ativas, que menor que a durao da linha inteira. Por exemplo, dos 63,55 s, apenas 52,2 s so a durao da linha ativa em NTSC. A taxa de quadro a velocidade de varredura.
2.1.8
Formao da imagem
A varredura inicia (linha-a-linha do topo-para-base) com o nmero de linhas que representam o padro de sincronizao vertical para o campo mpar. Imediatamente aps o padro de sincronizao vertical para o campo mpar, insero de sinais de testes (ITS) podem ser includos opcionalmente: finalmente, o campo mpar ativo real aparece. O processo se repete para os campos pares, formando um quadro completo. A maioria das linhas inicia com um pulso de sincronizao horizontal seguida pelo padro do burst de cor. Ento, a imagem ativa aparece com uma mudana de intensidade, onde um alto nvel de sinal corresponde intensidade de brilho. O exemplo de perfil de linha extrado que exibido nas Figuras 8 e 9, apresentam linhas extradas de um sinal de vdeo real a partir dos seus campos mpares e pares. Pulsos de sincronismo horizontal so basicamente pulsos negativos simples. Porm, os sinais de sincronismo vertical so compostos de trens de pulsos distribudos em diversas linhas, e esses trens de pulso so diferentes para campos mpares e pares. As Figuras 8 e 9 mostram os padres de sincronismo vertical para ambos os campos e para os trs formatos de vdeo principais. Existem pulsos que precedem e que sucedem os pulsos de sincronismo vertical. Esses pulsos so denominados pulsos equalizadores cuja freqncia igual a duas vezes a freqncia de linha. O conjunto formado pelos pulsos equalizadores e pelos pulsos de sincronismo vertical denominado de apagamento vertical.
21
Figura 8. Apagamento vertical e sinal de sincronismo vertical para NTSC [6]. A Figura 8 apresenta o padro de apagamento vertical para o formato NTSC. Nesse padro existem seis pulsos equalizadores que antecedem e sucedem os pulsos de sincronismo vertical. O campo mpar possui um pequeno deslocamento para direita antes do primeiro pulso equalizador em comparao ao campo par. Em seguida, a Figura 9 apresenta o padro de apagamento para os formatos PAL e SECAM. Nesses formatos, os pulsos equalizadores que antecedem e sucedem os pulsos de sincronismo vertical so apenas cinco. O campo par possui um pequeno atraso esquerda em relao ao campo mpar, diferente do formato NTSC.
Figura 9. Apagamento vertical e sinal de sincronismo vertical para PAL e SECAM [6]. A imagem mapeada de um quadro completo no padro de vdeo NTSC apresentada na Figura 10 e poderia ser exibida em uma tela de televiso se as seguintes condies forem satisfeitas: A televiso pode mostrar uma linha inteira, ao invs apenas da parte ativa da imagem. A televiso no entrelaa os dois campos para formar o quadro completo da imagem, mas ao invs disso, faz uma varredura progressiva, linha a linha do quadro inteiro. A Figura 10 mostra o resultado da varredura das 525 linhas que compe um quadro completo de vdeo no formato NTSC.
22
Figura 10. Varredura de um quadro completo NTSC [7]. A Figura 10 uma imagem em escala de cinza, pois representa a intensidade grfica de uma forma de onda de vdeo NTSC. A informao de cor est embutida nessa forma de onda, porm ainda no foi decodificada. possvel constatar o burst de cor dos sinais no lado esquerdo da Figura 10. O padro pontilhado, na Figura 10, logo aps o sincronismo horizontal, representa a intensidade grfica do tom do seno que est na forma de onda do burst de cor. Depois de decodificada, o burst de cor poderia ser visto como uma superfcie slida colorida.
2.2 Microcontrolador
Um microcontrolador essencialmente um computador de arquitetura simples em um nico chip a preo acessvel. O termo nico chip significa que um sistema de computador inteiro est dentro de uma rea limitada sobre uma pastilha de silcio e est encapsulada em um circuito integrado [3]. Um microcontrolador possui caractersticas similares s encontradas em um computador pessoal comum. O microcontrolador possui um CPU (central processing unit), RAM (random access memory), ROM (read only memory), portas de I/O (input/output), portas serial e paralela,
23
temporizadores (timers), e s vezes alguns outros perifricos embutidos como conversores analgico-digital e digital-analgico. O microcontrolador tambm tm a capacidade de carregar, armazenar e executar um programa, tornando-o uma soluo simples e eficiente para controle.
2.2.1
Sendo um computador barato em um nico chip, os microcontroladores so facilmente embutidos dentro de projetos de circuitos eletrnicos maiores. Sua habilidade de armazenar e executar programas nicos torna-os extremamente versteis. Por exemplo, um programa de um microcontrolador pode tomar decises e executar funes baseado em situaes (portas de I/O) e eventos. Suas funes matemticas e lgicas permitem ao microcontrolador imitar sofisticadas lgicas e circuitos eltricos. Os programas tambm podem fazer o microcontrolador se comportar como uma rede neural e/ou um controlador de lgica fuzzy. Os microcontroladores fazem parte do mercado consumidor de eletrnica e so responsveis pela inteligncia dos atuais dispositivos eletrnicos inteligentes.
2.2.2
Microcontroladores vs Microprocessadores
O microcontrolador difere de um microprocessador em diversas formas. A primeira, e mais importante, est nas suas funcionalidades. Um ou mais microprocessadores comumente servem como a unidade de processamento central de um computador. Quando um projeto de hardware usa um microprocessador, componentes como memria RAM, memria ROM, unidades de entrada/sada precisam ser adicionados ao projeto, uma vez que o microcontrolador prov apenas a unidade lgica-aritmtica, registradores e a unidade de processamento central. Por outro lado, o microcontrolador est projetado para ser tudo isso em um s. Nenhum componente externo de memria RAM, memria ROM, portas I/O, comunicao serial so necessrios para a utilizao de um microcontrolador, porque todos os perifricos necessrios j esto embutidos nele. Ento, tempo e espao necessrios para construir uma aplicao so economizados. importante observar que mesmo com a utilizao de um microcontrolador, alguns componentes externos so necessrios dependendo da natureza do projeto a ser construdo. Uma aplicao que utiliza um microcontrolador pode necessitar de uma memria RAM externa para armazenar uma grande quantidade de dados, por exemplo: vrios quadros de imagem de vdeo.
2.2.3
Unidade de memria
A memria a parte do microcontrolador que utilizada para armazenar os dados, programa e pilha. A forma mais simples de explic-la descrevendo-a como um grande armrio com muitas gavetas. Se supusermos que as gavetas esto marcadas de uma forma que no possam ser confundidas, qualquer um dos seus contedos pode ser facilmente acessado. suficiente conhecer a nomeao da gaveta para com certeza conhecer o seu contedo.
24
Figura 11. Modelo de memria [8]. Os componentes da memria so semelhantes aos do modelo apresentado na Figura 11. Para uma determinada entrada obtemos o contedo de uma localizao de memria endereada. Nesse momento, so trazidos dois novos conceitos: endereamento e localizao de memria. A memria consiste de todas as localizaes de memria, e endereamento simplesmente a seleo de uma dessas localizaes. Isso significa, por um lado, que precisamos selecionar a posio de memria desejada, e por outro lado, precisamos aguardar pelo contedo dessa localizao. Junto leitura de uma localizao de memria, a memria tambm deve fornecer uma maneira de gravar dados nela. Ento, isso permitido atravs de uma linha de sinal adicional chamada linha de controle. Estamos designando-a como linha W/R (Write/Read). A linha de controle usada da seguinte forma: se W/R = 1, a leitura est pronta. Caso contrrio a escrita ocorre na localizao de memria. Esse tipo de memria conhecido como memria de dados ou memria RAM, contudo existe tambm um tipo de memria utilizado para armazenar o programa do microcontrolador que conhecida como memria ROM.
2.2.4
A CPU (Unidade Central de Processamento) responsvel pelo processamento do microcontrolador. Basicamente, o processamento consiste na execuo das instrues do programa, nas operaes aritmticas e no controle de algumas localizaes de memria auxiliar interna. Considere, por exemplo, trs localizaes de memria adicionais que especificam um bloco que tem a capacidade embutida de multiplicar, dividir, subtrair, e mover o contedo de uma localizao de memria para outra. Estas tarefas so processadas pela unidade central de processamento. As localizaes de memria auxiliar interna so chamadas de registradores. A Figura 12 mostra um modelo bsico de CPU com trs registradores.
25
Figura 12. Modelo de unidade central de processamento com trs registradores [8]. Registradores so, portanto, localizaes de memria com a funo de ajudar com as execues de diversas operaes matemticas ou qualquer outra operao com dados sempre que dados estejam includos. A CPU e a memria so duas entidades independentes que esto interligadas. Se, por exemplo, desejarmos somar os contedos de duas localizaes da memria RAM e devolver o resultado para uma outra localizao da memria RAM, necessrio uma conexo entre a CPU e a memria. Simplesmente, precisamos de algum caminho pelo qual os dados passam de um bloco para outro.
2.2.5
Barramento
Esse caminho chamado de barramento, conforme mostra a Figura 13. Fisicamente, isso representa um grupo de 8, 16 ou mais fios. Existem dois tipos de barramentos: endereamento e dados. O primeiro, consiste de tantas linhas quanto o montante de memria que se deseja enderear, e o segundo tipo depende dos dados. O primeiro serve para transmitir endereos a memria da CPU e o segundo para interligar todos os blocos dentro de um microcontrolador.
Figura 13. Conectando a memria e a unidade central de processamento [8]. Foi apresentada a unidade de CPU que capaz de trabalhar, mas que no tem nenhum contato com o mundo externo. Com intuito de resolver essa deficincia, adicionalmente existe uma unidade de entrada/sada que contm diversas localizaes de memria qual uma
26
extremidade est ligada ao barramento de dados e a outra est ligada as linhas de sada do microcontrolador que podem ser vistas como pinos do componente eletrnico.
2.2.6
Unidade de entrada/sada
As localizaes citadas na seo anterior so chamadas de portas. Existem diversos tipos de portas: entradas, sadas e portas bidirecionais, conforme mostra a Figura 14. Quando se trabalha com portas, primeiramente necessrio escolher qual porta atende s necessidades de transmisso, e ento enviar dados para, ou receber dados a partir da porta.
Figura 14. Modelo de uma unidade de entrada/sada [8]. As portas de entrada/sada agem como localizaes de memria, ou seja, alguma coisa est simplesmente sendo escrita ou lida, e isso pode ser observado nos pinos do microcontrolador.
2.2.7
Comunicao serial
Conforme descrito acima, existe mais de uma unidade que possibilita a comunicao com o mundo externo. Porm, essa forma de comunicao tem suas desvantagens. Uma desvantagem bsica o nmero de linhas necessrias para transmisso de dados. Suponha que se trabalhe apenas com trs linhas. Uma linha seria usada para enviar dados, a outra linha usada para receber dados e a terceira linha seria usada em ambos os casos como uma linha de referncia de entrada/sada, conforme mostra a Figura 15. Existe tambm comunicao serial com apenas duas linhas: linha de recepo e linha de transmisso. Para que essa abordagem funcione, necessrio definir algumas regras para troca de dados. Essas regras so chamadas de protocolo. O protocolo definido antecipadamente, assim no existir qualquer desentendimento entre os lados que esto se comunicando. Por exemplo, pode-se considerar o seguinte protocolo: o valor lgico 1 definido na linha de transmisso at que a transferncia inicie. Baixa-se o valor lgico da linha de transmisso para 0 por um perodo de tempo T, ento o lado receptor saber que est recebendo dados, e logo ativar seu mecanismo receptor. Voltando para o lado transmissor e iniciada a colocao de nveis lgicos baixos e altos na linha de transmisso na ordem do bit menos significativo para o bit mais significativo, cada bit permanece na linha por um perodo de tempo T, e no final, ou depois do oitavo bit, o nvel lgico 1 trazido de volta para linha que marcar o final da transmisso de dados. O conjunto de passos descritos conhecido como cdigo de linha NRZ (Non-Return to Zero).
27
Figura 15. Modelo de unidade serial [8]. Como as linhas esto separadas para o recebimento e o envio de dados, possvel receber e enviar dados ao mesmo tempo. Conhecida como modo full-duplex, essa forma de comunicao habilita o bloco chamado de comunicao serial. Diferente da transmisso paralela, os dados movem-se bit a bit, ou em sries de bits, que definem o termo comunicao serial originalmente. Depois da recepo dos dados, necessrio l-los a partir de um localizao de recebimento e armazen-los em uma memria. Por outro lado, quando o processo tem o objetivo de enviar bytes, os dados so obtidos da memria atravs do barramento de dados e so transferidos para a localizao de envio. Em seguinda, os dados so enviados para unidade de recebimento conforme o protocolo.
2.2.8
Uma vez que a comunicao serial foi explicada, pode-se enviar, receber e processar dados. Porm, com intudo de utilizar o microcontrolador na industria necessrio adicionar alguns poucos blocos. Um deles o bloco de timer como mostra a Figura 16, ou bloco marcador de tempo, que importante por fornecer informaes sobre tempo, durao, protocolo etc. A unidade bsica de um timer um contador livre de execuo que de fato um registrador o qual incrementa um valor numrico de uma unidade em intervalos, assim captura seu valor durante o perodo t1 e t2 e com base em suas diferenas, possvel determinar quanto tempo se passou. Essa uma parte do microcontrolador muito importante que solicita requisies a maior parte do tempo.
Figura 16. Marcador de tempo para gerar sinais em intervalos de tempo regulares [8].
2.2.9
Uma coisa a mais que requer ateno a ausncia de falha funcional do microcontrolador durante seu tempo de execuo. Suponha que como resultado de uma interferncia (que freqentemente ocorre na indstria) o microcontrolador pre a execuo do programa, ou pior, ele reinicie trabalhando incorretamente.
28
Certamente, quando isso acontece com um computador, simplesmente o usurio reinicia o sistema e, normalmente, ele volta a trabalhar. Porm, no existe um boto para reiniciar que pode ser pressionado no microcontrolador para resolver o problema. Para esse obstculo, mais um bloco precisou ser adicionado ao microcontrolador, o qual chamado de watchdog, conforme mostra a Figura 17. Esse bloco de fato outro contador que executa livremente, onde o programa precisa escrever zero o tempo todo para que ele execute corretamente.
Figura 17. Modelo de um watchdog [8]. Nos casos em que o programa fica preso, o zero no ser escrito. Logo, o contador, que executa livremente, alcanar seu valor mximo e conseqentemente enviar um sinal que ir reiniciar o microcontrador automaticamente. Isso resultar na execuo do programa novamente. Esta caracterstica um elemento importante de todo programa que seja confivel sem superviso humana [8].
2.2.10
Conversor analgico-digital
Como os sinais perifricos so substancialmente diferentes daqueles que o microcontrolador pode entender (zeros e ums), eles precisam ser convertidos em um padro que um microcontrolador possa compreender. Essa tarefa desempenhada por um bloco para converso analgico-digital, ou simplesmente, um bloco ADC. Esse bloco, conforme mostra a Figura 18, responsvel por converter uma informao sobre algum valor analgico para um nmero binrio e encaminh-lo ao bloco CPU. Ento, o bloco CPU pode posteriormente process-lo.
Figura 18. Bloco para converter uma forma analgica para digital [8].
2.2.11
Programa
A Figura 19 apresenta a arquitetura completa de um microcontrolador. Essa arquitetura mostra a conexo entre os componentes internos citados nas sees anteriores: unidade serial, conversor A/D, unidade de E/S, memria, CPU, timer e watchdog. De acordo com a natureza da aplicao que ser implementada com o uso da arquitetura dos microcontroladores, alguns componentes externos devem ser inseridos no projeto. Alm disso, um microcontrolador necessita de um programa que pode seja executado. Esse programa serve para informar a seqncia lgica de instrues que sero executadas com intuito de alcanar algum objetivo.
29
Figura 19. Elementos bsicos e conexes internas de um microcontrolador da Microchip[8]. Escrever programas um campo especial do trabalho com microcontroladores que chamado de programao. A programao pode ser feita, dependendo do microcontrolador, em diversas linguagens como Assembly, C [24] ou Basic que so as linguagens mais comumente usadas. Assembly pertence as linguagens de baixo nvel que so programadas com menor produtividade, mas conseguem o menor montante de espao em memria e do os melhores resultados, onde a velocidade do programa uma preocupao. Programas na linguagem C so mais fceis de escrever, mais fceis de compreender, contudo so lentos em execuo comparados aos programas em Assembly. Basic a mais fcil de aprender, e suas instrues esto mais perto do modo de pensar humano, mas como na linguagem de programao C, mais lenta que Assembly devido ao cdigo compilado ser maior e, conseqentemente, menos eficiente. Em qualquer caso, antes de fazer um julgamento sobre essas linguagens necessrio considerar cuidadosamente a demanda de velocidade de execuo, o tamanho da memria e a quantidade de tempo disponvel para sua construo. Depois de escrito o programa, deve-se instal-lo dentro do dispositivo microcontrolador e execut-lo. Com intuito de fazer isso, necessrio adicionar alguns poucos componentes externos para essa tarefa. Primeiro, deve-se fornecer energia ao microcontrolador, como tambm ao oscilador que tem a funo similar a funo de um corao no corpo humano. Baseado nos ciclos de clock, o microcontrolador executa as instrues do programa.
30
Quando receber energia, o microcontrolador ir executar uma pequena auto-verificao, ir apontar para o inicio do programa e ento iniciar sua execuo. Como o trabalho do dispositivo depende de muitos parmetros, o mais importante deles a experincia do desenvolvedor de hardware, e a habilidade do programador em obter o mximo sobre esse dispositivo com seu programa.
31
32
resultados melhores, como por exemplo, a transmisso de imagens em tempo real em trabalhos futuros.
33
alguns componentes podem ser substitudos por outros mais adequados, uma nova organizao pode ser definida, valores de componentes elementares como resistores e capacitores so redefinidos etc. O maior desafio desta etapa est na utilizao de uma placa exclusiva para experimentos de circuitos eletrnicos bastante conhecida na rea de eletrnica: uma placa protoboard. Na verdade, a utilizao dessa placa plstica de prototipao relativamente simples, pois as ligaes dos componentes so realizadas atravs de pequenos fios introduzidos nos diversos furos dessa placa, para formar os barramentos. Contudo, a organizao do circuito nesta placa est sujeita a contatos ruis e interferncias provocadas pela prpria natureza da placa protoboard, como capacitncia parasita dos fios em paralelo. Alm disso, dependendo do encapsulamento dos componentes, o teste no pode ser realizado. Esses casos so mais comuns com encapsulamentos onde os pinos esto muito prximos um dos outros e o tamanho completo do componente muito pequeno, como acontece para os encapsulamentos do tipo SSOP. A maior parte dos circuitos integrados escolhidos por este trabalho possuem encapsulamento PDIP, com exceo apenas do conversor analgico-digital que do tipo SSOP.
34
conexo com os componentes, os quais so denominados de ilhas ou pads que normalmente possuem furos onde so inseridos os terminais dos componentes. Uma grande vantagem da placa de circuito impresso o fato de poder ser duplicada quantas vezes for necessrio o que permite uma produo em larga escala.
35
Verificao de continuidade dos caminhos condutores. Verificao do nvel de energia fornecido em diversas partes do circuito. Verificao de conflitos entre os pinos de um mesmo componente. Anlise da forma de onda do sinal gerado por alguns componentes. Logo aps a concluso dos testes fsicos, os testes que incluem o uso de software embarcado com o microcontrolador podem ser iniciados. Essa categoria de teste relativamente mais simples, pois envolve a escrita de diversos trechos de cdigo de programa para testar a comunicao de entrada/sada com o microcontrolador e os demais componentes do circuito. O resultado desses testes serve como base para implementao do software embarcado que ser utilizado na aplicao a qual se destina o projeto do circuito condicionador.
36
Captulo 4 Implementao
Este captulo tem o objetivo de apresentar a implementao da metodologia para captura de vdeo usando microcontroladores. Em outras palavras, so apresentadas as decises tomadas e as tarefas executadas em cada uma das etapas do projeto.
4.1 Arquitetura
A arquitetura do circuito condicionador composta de vrios componentes eletrnicos interligados fisicamente com intuito de tornar possvel a captura, armazenamento e transmisso de uma imagem de vdeo. Esta seo descreve a forma como os componentes esto organizados para atender tal requisito. A Figura 20 mostra a organizao dos componentes do circuito condicionador proposto por este trabalho.
37
Uma cmera analgica de vdeo monocromtico utilizada como fonte geradora do sinal de vdeo composto. Esse sinal de entrada enviado para dois componentes do circuito: o conversor A/D e o separador de sincronismo de vdeo. O primeiro tem a capacidade de fazer a aquisio e a converso para digital das amostras do sinal analgico de entrada, logo aps essa converso, um valor digital (dados da imagem) disponibilizado na sada da porta paralela de 8bits do conversor A/D. O segundo componente, o separador de sincronismo de vdeo, projetado basicamente para detectar os sinais de sincronismo vertical e horizontal contidos no sinal de vdeo composto. Esse componente indica a ocorrncia dos sinais de sincronismo definindo o valor de nvel alto no seu pino de sada correspondente. Um componente de memria SRAM externa utilizado para armazenar os dados da imagem digital. A porta de entrada desse componente possui conexo tanto com uma porta de I/O do microcontrolador quanto com a porta de sada digital do conversor A/D, isso significa que os dados que a memria armazenar sero fornecidos ou pelo microcontrolador ou pelo conversor A/D. Quanto ao endereamento da memria, este realizado por um componente contador tambm inserido no circuito. Na verdade, foram utilizados dois componentes contadores de 12bits em cascata que permitiria enderear at 224 posies. O principal componente desta arquitetura o microcontrolador, uma vez que este componente responsvel por controlar o funcionamento de todos os demais componentes do circuito, com exceo apenas do separador de sincronismo de vdeo. O controle das tarefas do microcontrolador coordenado pela especificao do software embarcado. Mas, para que seja possvel realizar tais controles devem existir conexes entre o microcontrolador e os componentes que se desejam comandar. Sendo assim, a arquitetura proposta contempla conexes entre: os sinais de controle de escrita/leitura da memria e o microcontrolador, os sinais de controle de clock/reset dos contadores e o microcontrolador, o sinal de controle de habilitar do transceptor e o microcontrolador. Conforme pode ser observado na Figura 20, o barramento de dados compartilhado entre uma porta de I/O do microcontrolador, a porta de I/O da memria e a porta de sada do transceptor. A razo para existir um componente transceptor nesse circuito permitir que a sada do conversor A/D seja isolada do restante do circuito, uma vez que o conversor A/D no tem esse sinal de controle. Ento, quando a porta de sada do transceptor est desabilitada, apenas a memria e o microcontrolador usam o barramento de dados. Para isolar a porta de I/O do microcontrolador usada no barramento de dados, basta configur-la como uma porta de apenas entrada, atravs de software. De forma semelhante, para isolar a porta de I/O memria do barramento de dados, basta definir seus sinais de controle para desabilitar a porta de sada. Esta arquitetura foi projetada para permitir operaes de leitura e escrita conforme mostra a Tabela 4. Operao Escrever Escrever Ler Ler Tabela 4. Operaes possveis com o projeto do circuito. Porta de origem Porta de destino Conversor A/D Memria Microcontrolador Memria Memria Microcontrolador Conversor A/D Microcontrolador
Uma caracterstica da estrutura do circuito que precisa ser observada com ateno referese a ligao do sinal de clock do conversor A/D com o microcontrolador. Como o conversor A/D realiza a operao de aquisio/converso baseado no perodo do ciclo do sinal de clock, esta
38
ligao implica que o microcontrolador responsvel por gerar a freqncia do sinal de controle que, conseqentemente, determina a taxa de converso das amostras do sinal de vdeo. Estrategicamente o sinal de clock do conversor A/D e os sinais de clock dos contadores esto ligados ao mesmo pino de sada do microcontrolador, ou seja, o sinal enviado pelo microcontrolador para comandar a captura do sinal analgico, tambm comanda o incremento do contador de endereamento da memria. A razo para essa estratgia o fato do conversor A/D s precisar realizar amostras a medida que o endereamento consegue ser computado, em outras palavras, no necessrio converter mais sinais do que se pode enderear na memria. Como foi citado anteriormente, o componente de sincronismo o nico componente que no controlado pelo microcontrolador, esse componente necessita apenas da entrada do sinal de vdeo para desempenhar suas funcionalidades. Contudo, os sinais de sincronismo extrados pelo separador so repassados para o microcontrolador atravs de conexes entre os pinos de sada do separador de sincronismo e alguns pinos de entrada do microcontrolador. Os pinos de entrada que recebem os sinais de sincronismo, no microcontrolador, possuem uma caracterstica especial: so pinos de interrupes. Sendo assim, quando forem detectados os sinais de sincronismo vertical e horizontal, o microcontrolador ir lanar interrupes correspondentes que podem notificar o software embarcado da ocorrncia desses eventos. Por fim, a arquitetura tambm prov a comunicao do microcontrolador com o mundo externo atravs de uma porta de sada serial. No projeto implementado para prottipo foi adicionada uma interface RS232 para este tipo de comunicao.
4.2 Componentes
A escolha dos componentes que constituem a arquitetura do projeto do circuito condicionador consumiu diversas horas de projeto, uma vez que a gama de modelos e fabricantes bastante abrangente. Contudo, o foco principal do critrio de seleo est na adequao dos recursos disponveis no componente com a especificao requerida pelo projeto. Os componentes escolhidos esto listados nas sees abaixo, bem como o resumo sobre suas especificaes. Uma descrio completa sobre os pinos dos componentes pode ser encontrada no Apndice C.
4.2.1
Microcontrolador
O microcontrolador usado neste projeto fabricado pela Microchip [10] e pertence a famlia 18F4455 [11]. Este componente ideal para aplicaes com baixo consumo porque possui tecnologia nW, e aplicaes que precisam de conectividade porque possui trs tipos de portas seriais: FS-USB (12Mbit/s), I2C e SPI (10Mbit/s), alm de uma porta serial assncrona EUSART. A grande disponibilidade de memria RAM para armazenamento e a memria de programa do tipo Enhanced Flash tornam-no adequado para aplicaes embarcadas de controle e monitoramento que requerem uma conexo peridica com um computador pessoal atravs da sua porta USB que pode ser usada tanto para enviar quanto para receber dados. A Tabela 5 apresenta um resumo das caractersticas do microcontrolador 18F4455. Tabela 5. Resumo das caractersticas do microcontrolador PIC18F4455. Caracterstica Valor Tipo da memria de programa Enhanced Flash Memria de programa 24 Kbytes Memria de dados SRAM 2.048 bytes Memria de dados EEPROM 256 bytes
39
Pinos de Entrada/Sada (I/O) Encapsulamento Temporizadores 8/16 bits Interface USB 2.0 (12Mbit/s) Portas seriais assncrona Freqncia de operao mxima Ciclo de instruo
4.2.2
Conversor A/D
O conversor A/D um circuito integrado capaz de adquirir sinais analgicos e transform-los em sinais digitais. Nesta aplicao, em particular, o conversor utilizado um LTC1406CGN [13], fabricado pela Linear Technology [12], que possui capacidade mxima para realizar 20Msps (20 milhes de amostras por segundo) de 8 bits sobre uma fonte geradora de sinal analgico com at 250MHz de largura de banda. Esse conversor A/D possui uma sada paralela de 8-bits e a arquitetura de pipeline tem uma latncia de dados de cinco ciclos de clock.
Figura 21. Pipeline do conversor A/D LTC1406 [13]. A converso dos dados inicia na borda de descida do sinal de clock e os dados esto disponveis quando o sinal de clock est alto, considerando um pipeline com latncia de dados de cinco ciclos de clock. A Figura 21 ilustra a arquitetura de pipeline, onde t1, t2, t3, t4, t5 e t6 representam perodo de clock (mnimo 50ns), largura de pulso alto (mnimo 20ns), largura de pulso baixo (mnimo 20ns), atraso de sada (mximo de 25ns), atraso de pipeline (5 ciclos), atraso de abertura (normalmente 3ns) respectivamente.
4.2.3
Separador de Sincronismo
O componente separador de sincronismo usado foi LM1881 [15], fabricado pela National Semiconductor [14], que um circuito integrado projetado para tirar os sinais de sincronizao a partir de uma fonte geradora de sinal de vdeo composto que esto nos formatos NTSC, PAL e SECAM. Os sinais extrados incluem sinal de sincronismo vertical, sinal de sincronismo composto, sinal de burst de entrada e sinal de campo de informao de linha mpar ou par. O diagrama de tempo abaixo ilustra as informaes sobre as informaes de tempo deste componente.
40
Figura 22. Diagrama de tempo do componente LM1881 [15]. Conforme pode ser observado na Figura 22, a sada do sinal de sincronismo horizontal (composto) simplesmente a reproduo da forma de onda do sinal de vdeo composto em seu nvel de preto, com o vdeo completamente removido. A sada do sinal de sincronismo vertical uma derivao do sinal de sincronismo composto. As sadas dos sinais: burst de entrada e campo de informao mpar e par no so abordados neste trabalho. Esses sinais geralmente no so usados, entretanto, o primeiro pode ser til para aplicaes que necessitam de informao sobre o entrelaamento da fonte de vdeo composto. E o segundo, a sada do sinal de burst, til em aplicaes que precisam de informao sobre as cores da imagem.
4.2.4
Memria SRAM
O componente de memria usado na implementao deste trabalho especificado como HY62256-A [17] que fabricada com tecnologia de alto desempenho pela Hyundai [16]. Esta memria tem velocidade de operao razovel, baixo consumo de energia e possui 32.768x8-bits posies de memria de acesso aleatrios do tipo SRAM para armazenamento. A memria HY62256 tem um modo de reteno de dados que garante a recuperao de dados vlidos com uma tenso mnima de alimentao de apenas 2V. Logo, este componente aplicvel em sistemas que usam baixa tenso ou sistemas com bateria de reserva (backup). O encapsulamento escolhido foi 28-pinos PDIP. Os sinais de controle da memria so denominados /CS, /WE, /OE que significam seleo de componente, permitir escrita e permitir sada respectivamente. A Tabela 6 apresenta a lista de estados que a memria pode assumir. A legenda L, H e X usada para representar o nvel lgico do sinal em alto, baixo ou indiferente. /CS H L L L /WE X H H L Tabela 6. Tabela verdade da memria. /OE Modo Operao E/S X Repouso Alta impedncia H Sada desabilitada Alta impedncia L Leitura Sada de dados X Escrita Entrada de dados
Como pode ser observado na Tabela 6, o funcionamento da memria simples. O ciclo de leitura ocorre quando os sinais de controle assumem esta configurao /CS=L, /WE=H e /OE=L e o ciclo de gravao ocorre com a configurao /CS=L e /WE=L, note que para a escrita o valor do sinal /OE indiferente.
41
4.2.5
Contador
O componente contador usado na implementao deste trabalho chamado 74HC4040 [19] que fabricado pela Texas Instruments [18]. Este componente um contador binrio de 12 estgios com uma entrada de /clock, uma entrada de reset para limpar a contagem de forma assncrona e doze sadas paralelas. O encapsulamento deste componente 16-DIP. A contagem avana quando a transio do nvel alto para o nvel baixo do sinal de /clock acontece, e a sada paralela assume o valor zero quando o sinal de controle reset para o nvel alto. A Tabela 7 apresenta um resumo das funes deste componente contador, as legendas L, H, X, e so usadas para representar os estados de nvel alto, baixo, indiferente, transio do nvel baixo para alto e transio do pulso de nvel alto para o pulso de nvel baixo. Clock X Reset L L H Tabela 7. Tabela de funo do contador. Estado da Sada Nenhuma mudana Avana a contagem Nvel baixo (contador zerado)
A seguir mostrado o diagrama de tempo do componente contador, basicamente a Figura 23 ilustra o nvel de sada em cada uma dos doze sinais de sada paralela, nomeados de Q1 a Q12 de acordo com o ciclo do sinal de clock. Alm disso, na Figura 23 apresentado o sinal de reset em seu estado alto, apenas no incio do ciclo de clock.
4.2.6
Transceptor
O componente transceptor usado na implementao deste trabalho chamado 74HC245 [20] que fabricado pela Philips Semiconductors [21]. Este componente um transceptor de barramento de 8-bits compatvel com trs estados de sada em ambas as direes: envio e recebimento. Os sinais de controle so /OE e DIR que so responsveis pelo controle de permisso de sada e pelo
42
controle das direes de envio e recebimento respectivamente. O encapsulamento deste componente 20 pinos-DIP. O transceptor 74HC245 possui tambm duas portas de dados de entrada e sada, denominadas de A e B. A idia principal deste componente transferir para a porta de sada os sinais que so recebidos por em uma porta de entrada. A direo de transferncia pode ocorrer nos dois sentidos: da porta A para a porta B ou vice-versa. Alm disso, esse componente pode assumir um estado de alta impedncia na sada das suas portas, esse estado utilizado para isolar o componente do resto do circuito. A Tabela 8 resume as funes deste transceptor. As legendas L, H, Z e X so usadas para representar os nveis lgicos alto, baixo, alta impedncia e indiferente. Entrada /OE L L H Tabela 8. Tabela de funo do transceptor. Entrada/Sada DIR An Bn L A=B Entrada H Entrada B=A X Z Z
Conforme mostra a Tabela 8, o sinal /OE=H define as duas portas A e B para um nvel de tenso de alta impedncia, isolando-as do resto do circuito eltrico. Quando o sinal /OE est definido igual a /OE=L, a funo de transferncia ocorre da porta A para B quando o sinal DIR igual a DIR=H, caso contrrio, DIR=L, a transferncia ocorre no sentido contrrio. importante lembrar que a funo de transferncia define as portas A e B para um dos trs estados: entrada, sada ou alta impedncia.
43
Figura 24. Esquema eltrico do circuito condicionador. A Figura 24 apresenta o esquema eltrico do circuito condicionador proposto pela arquitetura de projeto deste trabalho. A listagem de componentes est disponvel no Apndice A deste trabalho. Para a elaborao desse esquema eltrico, informaes sobre as condies,
44
recomendadas pelos fabricantes, sobre tenso de alimentao e temperatura de cada um dos componentes so importantes para garantir o funcionamento adequado dos componentes. Foi usado a ferramenta P-CAD 2002 Schematic para construo desse esquema eltrico. Como pode ser observado na Figura 24, componentes eltricos comuns, como resistores, capacitores, diodos e transistores foram inseridos no esquema para garantir condies adequadas de diferena de potencial, corrente, capacitncia, impedncia, polarizao relativas a natureza do circuito eltrico. Dessa forma, esta implementao foi realizada com a contribuio de um profissional qualificado em eletrnica, tendo em vista o pouco conhecimento do assunto em questo. Na parte central da Figura 24 do esquema, pode-se facilmente identificar o barramento de dados entre o microcontrolador, a memria e o transceptor. Tambm possvel encontrar os pinos dos sinais de controle que o microcontrolador envia para os demais componentes. Quanto ao componente da memria possvel identificar os pinos de endereamento ligados a sada dos dois contadores do circuito. A Tabela 9 resume a relao de origem e destino entre os pinos dos componentes principais do esquema, como tambm a funo dos sinais na ligao. Tabela 9. Relao de pinos entre os componentes do circuito. Origem Destino Funo do(s) Sinal(is) Componente Pinos Componente Pinos Microcontrolador 19, 20, 21, 22, Memria 11, 12, 13, 15, Dados 27, 28, 29, 30 16, 17, 18, 19 Microcontrolador 8, 9, 10 Memria 20, 22, 27 Controle Microcontrolador 16, 17 Contador 1 11, 10 Controle Microcontrolador 16 Contador 2 11 Controle Microcontrolador 2 Transceptor 19 Controle Microcontrolador 17 Conversor A/D 24 Controle Separador Sinc. 1, 3, 5, 7 Microcontrolador 33, 34, 35, 37 Interrupo Contador 1 9, 7, 6, 5, 3, 2, 4, Memria 10, 9, 8, 7, 6, 5, Endereamento 13, 12, 14, 15, 1 4, 3, 25, 24, 21, 23 Contador 2 9, 7, 6 Memria 2, 26, 1 Endereamento Contador 1 1 Contador 2 10 Controle Conversor A/D 22, 21, 20, 19, Transceptor 11, 12, 13, 14, Dados 18, 17, 16, 15 15, 16, 17, 18 Transceptor 2, 3, 4, 5, 6, 7, 8, Microcontrolador 19, 20, 21, 22, Dados 9 27, 28, 29, 30 Transceptor 2, 3, 4, 5, 6, 7, 8, Memria 11, 12, 13, 15, Dados 9 16, 17, 18, 19 Devido a natureza de capacidade da memria usada, foram usados apenas alguns pinos de sada dos contadores para realizar o endereamento. Tambm possvel visualizar o cascateamento entre os dois contadores para formao de endereos maiores. Basicamente, o bit mais significativo do primeiro contador ligado ao sinal de controle de clock do segundo contador, dessa forma, a cada estouro de contagem do primeiro contador um incremento ocorre no segundo. Esse projeto de esquema eltrico contempla tambm alguns circuitos complementares para regular a entrada de alimentao para 5V, regular o nvel de referncia 2,5V exigido pelo conversor A/D, transmitir dados na sada serial do microcontrolador atravs de uma interface
45
RS232 e amplificar o sinal de vdeo na entrada. Os detalhes sobre esses circuitos complementares no so tratados neste trabalho e esto alm do escopo de assunto estudado.
Figura 25. Sinal de vdeo composto (a) e sinal de sincronismo horizontal (b), ambos extrado com uma ferramenta de osciloscpio. A Figura 25 mostra a validao do sinal de sincronismo horizontal extrado a partir do componente separador de sincronismo de vdeo. Na parte superior da Figura 25 foi utilizado um canal do osciloscpio para mostrar o sinal de vdeo original e na parte inferior da Figura 25 foi
46
utilizado o segundo canal do osciloscpio para mostrar o sinal extrado do pino de sada de sincronismo horizontal. Uma lista completa de figuras com os sinais do separador de sincronismo est disponibilizada no Apndice B. A razo para no realizar testes com o componente do conversor A/D refere-se ao tipo de encapsulamento que este componente possui, encapsulamento SSOP. Esse tipo de encapsulamento no permite usar o componente em placas de prototipao protoboard, devido as suas dimenses minsculas. J os testes com o transceptor no foi necessrio pois o seu funcionamento bastante simples, e a sua funo no circuito no ocupa uma posio crtica. Portanto, optou-se por no usar o tempo de projeto com atividades de resultados poucos significativos.
47
A confeco do circuito impresso foi realizada com tcnicas artesanais de impresso para traados condutores entre componentes, tambm conhecidos como trilhas, de circuito eltrico. Foi utilizada uma placa constituda de um laminado de fibra de vidro com ambas as faces recobertas por uma fina camada de cobre. Esse material possui boa rigidez e tima isolao eltrica, dessa forma ele tambm pode ser utilizado em circuitos impressos profissionais, conseguindo-se produzir circuitos com alta densidade de trilhas, devido as suas caractersticas. Uma vez que o processo utilizado foi artesanal, o circuito impresso foi construdo com o uso de vrias mscaras produzidas atravs de um processo serigrfico. As matrizes em material fotoltico das mscaras serigrficas foram impressas a partir do arquivo de layout .PCB. As impresses necessrias para confeco das mscaras serigrficas esto descritas a seguir.
Figura 26. (a) Mscara de trilhas da face superior e (b) mscara de trilhas da face inferior do circuito. A Figura 26 apresenta as matrizes para confeco das mscaras de trilhas das faces superior e inferior. Essas matrizes foram extradas do arquivo de layout PCB atravs da ferramenta P-CAD 2002 e impressas em um fotolito. As mscaras serigrficas resultantes dessas matrizes servem para aplicar uma fina camada de estanho-chumbo sobre a camada de cobre nos locais onde as trilhas condutoras passam. Em seguida, atravs de corroso qumica, retira-se o cobre em excesso.
48
Figura 27. (a) Mscara de ilhas de soldagem da face superior e (b) mscara de ilhas de soldagem da face inferior do circuito. O processo seguinte consiste em criar duas mscaras serigrficas (superior e inferior) para proteger os contatos eltricos, tambm conhecidos como ilhas de soldagem, da aplicao de um verniz que recobre toda a superfcie da placa. Esse verniz possui uma caracterstica que utilizada para proteger a placa de oxidao, normalmente possui uma cor esverdeada [30]. As matrizes impressas em fotolito dessas mscaras tambm so extradas a partir do arquivo de layout PCB, as quais geralmente so chamadas de mscaras de ilhas conforme mostra a Figura 27.
Figura 28. Mscara de contornos de componentes do circuito. A ltima matriz para construo de mscara serigrfica, conforme mostra a Figura 28, refere-se a impresso dos contornos dos componentes e suas respectivas referencias, na superfcie da placa, visando facilitar a sua montagem e manutenes futuras. Este desenho geralmente chamado de serigrafia de componentes. Como nas matrizes anteriores, essa matriz tambm foi extrada do arquivo de layout PCB e impressa em um fotolito para confeco da mscara serigrfica. A ltima fase do processo artesanal utilizado para confeccionar a placa consiste em furar a placa nos locais onde existem ilhas de soldagem. Esses furos permitem a insero dos terminais
49
dos componentes para a soldagem. Existem vrios processos de furao, entretanto, nesta implementao foi utilizada uma furadeira manual de bancada para realizar esta tarefa. importante lembrar que devido a natureza de dupla face da placa, alguns furos chamados furos de passagem so necessrios para interligar as trilhas condutoras entre uma face e outra da placa de acordo com o especificado no projeto do layout PCB.
Figura 29. (a) Viso de um furo metalizado e (b) viso de um furo no metalizado. Pode-se observar na figura que os furos metalizados ligam uma face a outra devido a existncia de um anel condutor dentro do furo. Por outro lado, nos furos no metalizados a conduo eltrica ocorre em lados distintos, logo, para lig-los necessrio soldar uma haste condutora dentro do furo. Uma tarefa que tambm mereceu destaque na implementao da montagem da placa foi a tarefa de soldar o componente do conversor A/D. Este componente possui encapsulamento SSOP que destinado ao manuseio por mquinas automatizadas. Sendo assim, soldar manualmente um componente com a largura de um pino medindo pouco mais de 0,203 milmetros e tendo uma
50
distncia entre centros de pinos medindo 0,635 milmetros foi uma tarefa muito difcil e cautelosa. O custo para construo de um prottipo deste projeto foi de aproximadamente R$ 120,00. Nesse valor esto includos: o custo dos componentes, o custo de confeco das mscaras e o custo de impresso da placa do circuito. importante destacar que o custo do prottipo de projeto, geralmente, muito mais elevado do que o custo de uma produo industrial em grande escala para mesmo projeto.
51
Todos os testes implementados em software foram utiliz-los como base fundamental para o desenvolvimento do software embarcado para captura de imagens. Devido a importncia deste software embarcado, o captulo seguinte foi dedicado exclusivamente a este assunto.
52
53
O quarto estado responsvel por comandar as operaes que realizam a captura e armazenamento de todos os pixels de uma linha. Um dos fatores que contribuem para a qualidade da resoluo da imagem a quantidade de amostras realizadas nesse momento, por isso, o conjunto de instrues que realizam esta operao deve ser cuidadosamente analisado para que se obtenha o menor tempo possvel por pixel capturado e armazenado. Ao trmino da captura de uma linha completa, verifica-se se existem linhas restantes para serem capturadas, caso afirmativo a mquina de estados assume seu estado de espera de prximo sinal de sincronismo horizontal, caso contrrio, a mquina de estados assume seu quinto e ltimo estado. Uma vez que o quadro da imagem de vdeo est armazenado na memria, o quinto estado responsvel apenas pelo resgate e transmisso dos dados da memria atravs de uma sada serial do microcontrolador os quais sero recebidos por um outro dispositivo capaz de processlos, em particular, um computador pessoal comum foi utilizado neste projeto.
Figura 30. Mquina de estados do programa para captura de um quadro de imagem de vdeo. Devido sua importncia, o processo de captura e armazenamento realizado pelo quinto estado est apresentado com mais detalhes na Figura 31. A captura e armazenamento consistem em enviar sinais para o conversor A/D adquirir e converter o sinal de vdeo, sinais para o contador de endereo assumir seu prximo valor de endereo de memria e sinais para a memria escrever o valor disponvel nos pinos de dados.
54
Figura 32. Organizao dos mdulos do programa com mapeamento nos respectivos arquivos .c. O mdulo para controle de contador de endereamento possui duas funes zerar_contador() e inc_contador() que so responsveis por definir o valor de sada do contador como zero ou com o valor anterior incrementado em uma unidade, respectivamente. Como se pode observar na Figura 32, no h um mdulo responsvel pelo controle do conversor A/D, pois o projeto fsico do circuito condicionador foi projetado para acionar o conversor A/D automaticamente a cada envio de sinal para incremento de endereo. O mdulo para controle de memria possui as funes memoria_init(), write_byte() e read_byte() com responsabilidades para garantir as configuraes iniciais, escrever um byte e ler um byte da memria, respectivamente. Neste mdulo, importante destacar que a funo write_byte() usada para gravar na memria o valor do pixel capturado pelo conversor A/D e por isso possui tempo de execuo crtico, ento esta funo foi definida como uma macro a fim de evitar acrscimo de tempo por causa das operaes de chamada e retorno da funo. O terceiro mdulo, processamento de formato bitmap [22], responsvel por montar um cabealho de arquivo conforme os requisitos necessrios para o formato de arquivo de imagem bitmap (.bmp). Esse cabealho usado apenas no momento inicial da transmisso da imagem armazenada para a sada serial. Os detalhes dessa funo que monta o cabealho bitmap sero abordados em uma prxima seo ainda neste captulo. O quarto mdulo responsvel por configurar a taxa de transmisso que ser utilizado pela EUSART do microcontrolador atravs da funo serial_init(). Este mdulo tambm implementa uma funo para enviar, phys_send(), e uma funo para receber bytes, phys_recv(). Como a operao de envio ocorre logo aps o armazenamento do quadro da imagem de vdeo, e uma vez que no existem requisitos crticos para a transmisso dos dados a taxa de transmisso utilizada de 9600bps. importante lembrar que apesar do escopo deste projeto no incluir a
55
recepo de dados, esta funcionalidade est disponvel para uso em trabalhos futuros, como por exemplo, implementao de um protocolo de envio de imagens. O mdulo principal deste programa possui o controle da mquina de estados, sendo responsvel, portanto, pela lgica do fluxo de programa completo. Conforme visto na seo anterior, a mquina de estados utilizada para identificar os sinais de sincronismo, armazenar e transmitir o quadro da imagem de vdeo capturado. Uma caracterstica importante que deve ser considerada na implementao do programa referente-se ao compartilhamento do barramento de dados no esquema eltrico do circuito condicionador, conforme mostra a Figura 33. Dois sinais de controle OE_TRA (transceiver output enable) e OE_MEM (memory output enable) so utilizados para indicar quais os componentes utilizaro o barramento.
Figura 33. Barramento de dados compartilhado e os sinais: OE_TRA e OE_MEM. O barramento de dados compartilhado entre uma porta I/O do microcontrolador, a porta de sada do transceptor e a porta de I/O da memria. Conforme visto no captulo anterior, o transceptor entre o conversor A/D e o barramento de dados utilizado para isolar o conversor A/D do resto do circuito eltrico em determinados momentos. Esta operao necessria para evitar danos nas portas dos componentes causados por conflitos entre sinais de sada de mais de um componente no mesmo barramento. Em resumo, o programa evita os conflitos que podem ocorrer atravs do cumprimento das restries listadas na Tabela 12: Tabela 12. Definio dos sinais OE_TRA e OE_MEM conforme operao desejada. Operao Porta origem Porta destino OE_TRA OE_MEM Escrever Conversor A/D Memria 1 1 Escrever Microcontrolador Memria 0 1 Ler Memria Microcontrolador 0 0 O circuito condicionador realiza uma inverso externa no sinal OE_TRA antes dele alcanar o componente transceptor, conforme ilustra a Figura 33. Embora esta operao seja desnecessria, pois o programa tem controle sobre esses dois sinais, alternativamente apenas o sinal OE_MEM poderia ser controlado pelo programa, considerando a existncia de uma ligao fsica entre os dois sinais de controle dos componentes.
56
Em outras palavras, o esquema eltrico foi projetado de forma que em trabalhos futuros uma instruo (OE_TRA) no seja necessria, otimizando assim o desempenho do sistema. Caso essa alternativa seja empregada, a operao de escrever do microcontrolador para a memria no poderia ser realizada, pois existiriam conflitos entre sinais de sada. Sendo assim, a relao entre o custo e benefcio deve ser avaliada conforme o projeto. Na abordagem do trabalho proposto, a operao de escrita do microcontrolador para a memria necessria para inserir marcadores na imagem que est sendo armazenada, esses marcadores sero tratados na seo seguinte.
57
[23]. Este tipo de arquivo tambm pode possuir compresso dos dados, porm isso uma tarefa raramente implementada e est alm do escopo deste projeto. A seguir so apresentados resumidamente as caractersticas deste formato de arquivo.
5.4.1
Estrutura
A Figura 35 ilustra a estrutura de um arquivo bitmap (tambm conhecido como arquivo BMP). Este tipo de arquivo consiste de 3 ou 4 partes.
Figura 35. Estrutura de um arquivo bitmap (.bmp). A primeira parte o cabealho do arquivo, seguida pelo cabealho da imagem, se a imagem possui ndice de cor ento uma paleta de cores a parte seguinte, e a ltima contm todos os pixels da imagem. A posio dos dados da imagem referente ao incio do arquivo est informada no cabealho. Informaes sobre largura, altura, tipo de compresso, nmeros de cores esto contidas no cabealho da imagem.
5.4.2
Cabealho do arquivo
Tabela 13. Campos do cabealho de um arquivo bitmap. Tamanho Nome do Descrio (bytes) campo 2 Tipo Deve ser sempre definido para BM (0x42, 0x4D) para informar que este um arquivo .bmp 4 Tamanho Especifica o tamanho do arquivo em bytes. 2 Reservado1 Deve ser sempre 0. 2 Reservado2 Deve ser sempre 0. 4 Deslocamento Especifica o deslocamento a partir do incio do arquivo para os dados da imagem .bmp
O cabealho de arquivo constitudo pelos campos da Tabela 13 e tem 14 bytes de comprimento. Byte de incio 1 3 7 9 11
Os campos teis dentro dessa estrutura de cabealho so o campo de tipo (que deve ser BM) que uma pequena verificao que determina a legitimidade do arquivo BMP, e os campos de deslocamento que fornecem o nmero de bytes antes dos dados da imagem realmente, os pixels.
58
5.4.3
Cabealho da imagem
Os dados do cabealho da imagem possuem 40 bytes de comprimento, todos os campos esto descritos na Tabela 14. Os campos de maior interesse so largura e altura, nmero de bits por pixel (1 preto e branco, 4 para 16 cores, 8 - para 256 cores ou 24 para 16,7 milhes de cores), o nmero de planos (o padro assumido 1) e o tipo de compresso. Byte de incio 15 19 23 27 29 31 35 39 43 47 51 Tabela 14. Campos do cabealho de imagem de um arquivo bitmap. Tamanho Nome do campo Descrio (bytes) 4 Tamanho Especifica o tamanho do cabealho da imagem, em bytes. 4 Largura Especifica a largura da imagem, em pixels. 4 Altura Especifica a altura da imagem, em pixels. 2 NumeroPlanos Especifica o nmero de planos do dispositivo de destino. 2 NumeroBits Especifica o nmero de bits por pixel. 4 Compresso Especifica o tipo de compresso, geralmente 0 para indicar sem compresso. 4 TamanhoImagem Especifica o tamanho dos dados da imagem, em bytes. Se no existir compresso, valido o valor 0. 4 ResoluoX Especifica o nmero de pixels horizontais por metro no projeto do dispositivo de destino. Usualmente, definido com o valor 0. 4 ResoluoY Especifica o nmero de pixels verticais por metro no projeto do dispositivo de destino. Usualmente, definido com o valor 0. 4 NumeroCores Especifica o nmero de cores usados no bitmap. Se estiver definido como zero, o nmero de cores calculado atravs do campo NumeroBits. 4 CoresImportantes Especifica o nmero de cores que so importantes para o bitmap. Se estiver definido como zero, todas as cores so importantes.
5.4.4
ndice de cores
O campo NumeroBits especifica o nmero de bits por pixel, conseqentemente a resoluo da imagem especificada por este campo. Os valores possveis so: 1 (preto/branco); 4 (16 cores); 8 (256 cores); 24 (16,7 milhes de cores). Este campo tambm determina se existir a paleta de cores aps o cabealho da imagem. A implementao para o formato de sada deste projeto utilizou o nmero de bits por pixel definido para 8, conseqentemente a imagem transmitida possui uma paleta de cores com 4 bytes para cada cor indexada. Os primeiros trs bytes correspondem aos componentes B,G,R e o ltimo byte reservado e no usado. Para imagens em escala de cinza de 8-bits, como para o projeto em questo (a cmera usada preto e branco), esse ndice de cores geralmente uma rampa de escala de cinza. Fazendo a soma, o tamanho do cabealho do arquivo mais o tamanho do cabealho da imagem mais 4 vezes o nmero de cores da paleta de cores devem ser igual ao deslocamento dos
59
dados de imagem propriamente. Em outras palavras: 14 + 40 + (4 * NumeroCores) = Deslocamento. Onde (4 * NumeroCores) representa o tamanho da paleta de cores em bytes.
Figura 36. Fluxograma da transmisso serial atravs do microcontrolador. Esta tarefa consiste inicialmente em habilitar a porta de transmisso serial do microcontrolador e em enviar um cabealho do formato de imagem bitmap conforme os parmetros da imagem armazenada. Em seguida, cada uma das linhas recuperada da memria, removem-se os marcadores de linha e ento a linha transmitida. Esta operao de transmisso de linha ocorre at que todas as linhas tenham sido enviadas pela porta serial. importante destacar que a transmisso de uma linha consiste em escrever todos os bytes da linha na EUSART.
60
6.1 Contribuies
Atualmente aplicaes para uso de imagens digitais so encontradas nas mais variadas reas, como medicina, telecomunicaes, segurana entre outras. Sendo assim, espera-se que a metodologia proposta contribua para realizao de estudos sobre o desenvolvimento de ferramentas teis em tais campos de atuao.
61
Outra contribuio deste trabalho apresentar uma alternativa de implementao satisfatria para soluo de problemas complexos usando um circuito integrado simples com um custo relativamente baixo o uso de microcontroladores.
6.2 Dificuldades
Entre as dificuldades encontradas no decorrer deste trabalho, vale ressaltar a procura de fornecedores para aquisio dos componentes do circuito eltrico. Esta barreira foi transposta limitando as caractersticas dos componentes para satisfazer apenas os requisitos mnimos de tempo de resposta, capacidade de armazenamento e desempenho, de forma que pudessem ser obtidos no mercado fornecedor mais prximo. Tambm importante ressaltar as dificuldades na elaborao do esquema eltrico e o layout da placa devido pequena experincia na implementao de projetos com circuitos eletrnicos. Esse obstculo foi superado buscando-se a contribuio do conhecimento prtico de um profissional experiente no desenvolvimento de projetos com circuitos eletrnicos. A etapa de prototipao exigiu que todos os componentes fossem inseridos na placa de circuito impresso devidamente soldados. Contudo, o componente LTC1406 referente ao conversor A/D que foi utilizado possui encapsulamento de pinos SSOP cuja fabricao projetada para mquinas automatizadas precisas realizem a solda dos pinos corretamente, logo uma das dificuldades foi soldar este componente na placa atravs de um processo manual e de pouca preciso. Essa barreira foi transposta atravs da utilizao de uma lente de aumento e um ferro de solda com uma ponta bastante fina.
62
Bibliografia
[1] SMITH, S. W. The Scientist and Engineer's Guide to Digital Signal Processing, 2nd edition. California Technical Publishing: 1999. [2] GONZALEZ, R. C.; WINTZ, P. Digital Image Processing, 2nd edition. Addison Wesley: 1987. [3] IOVINE, J. PIC Robotics - A Beginners Guide to Robotics Projects Using the PICmicro. McGrawHill, 2004. [4] SCURI, A.S. Fundamentos da Imagem Digital. Pontifcia Universidade Catlica do Rio de Janeiro, 1999. [5] JACK, K. Video Demystified, A Handbook for theDigital Engineer, 4th edition. Elsevier: 2005. [6] NATIONAL INSTRUMENTS. Video Signal Measurement Fundamentals. Disponvel em: http://zone.ni.com/devzone/conceptd.nsf/webmain/0E5DAD8917692B5D86256F3500549509, visitado em 18/10/2005. [7] NATIONAL INSTRUMENTS. Anatomy of a Video Signal. Disponvel em: http://zone.ni.com/devzone/devzoneweb.nsf/Opendoc?openagent&BB087524D4052C9E86256 85E0080301B#3, visitado em 18/10/2005. [8] MATIC, N. The Microchip PIC Microcontroller, for beginners too, vol. 1. Disponvel em: http://www.mikroelektronika.co.yu/english/product/books/PICbook/picbook.htm, visitado em: 10/10/2005. [9] WESTWATER, R.; FURHT, B. Real-Time Video Compression, Techniques and Algorithms. Kluwer Academic Publishers, 1997. [10] MICROCHIP TECNOLOGY INC. Disponvel em: http://www.microchip.com, visitado em 05/03/2005. [11] MICROCHIP TECNOLOGY INC. PIC18F2455/2550/4455/4550 Data Sheet, 28/40/44-Pin High Performance, Enhanced Flash USB Microcontrollers with nanoWatt Tecnology. 2004. 426 p. [12] LINEAR TECHNOLOGY CORPORATION. Disponvel em: http://www.linear.com, visitado em 05/09/2005. [13] LINEAR TECHNOLOGY CORPORATION. LTC1406, Low Power, 8-Bit, 20Msps, Sampling A/D Converter. 1998. 16 p. [14] NATIONAL SEMICONDUCTOR CORPORATION. Disponvel em: http://www.national.com, visitado em 02/10/2005. [15] NATIONAL SEMICONDUCTOR CORPORATION. LM1881, LM1881-X Video Sync Separator. 2003. 12 p. [16] HYUNDAI ELECTRONICS AMERICA. Disponvel em: http://www.hea.com, visitado em: 15/08/2005. [17] HYUNDAI ELECTRONICS AMERICA. 32Kx8-bit CMOS SRAM. Disponvel em: http://www.datasheetcatalog.com, visitado em: 16/09/2005, 15 p.
63
[18] TEXAS INSTRUMENTS INCORPORATED. Disponvel em: http://www.ti.com, visitado em: 02/11/2005. [19] TEXAS INSTRUMENTS INCORPORATED. SN54HC4040, SN74HC4040 12-Bit Asynchronous Binary Counters. 2003. 17 p. [20] PHILIPS SEMICONDUCTORS. Disponvel em: http:// www.semiconductors.philips.com, visitado em 02/11/2005. [21] PHILIPS SEMICONDUCTORS. Product specification 74HC/HCT245 Octal bus transceiver; 3-state. 1993. 7 p. [22] http://astronomy.swin.edu.au/~pbourke/dataformats/bmp/, visitado em: 05/11/2005. [23] http://www.fortunecity.com/skyscraper/windows/364/bmpffrmt.html, visitado em: 05/11/2005. [24] SCHILDT, H. C, completo e total. 3 edio. So Paulo: Makron Books, 1996. [25] HI-TECH SOFTWARE, S. Picc-18 C Manual. 7th edition. Australia: 2003. [26] HI-TECH SOFTWARE. Disponvel em: http://www.htsoft.com, visitado em: 02/08/2005. [27] SEGSAT IND. E COM. LTDA. Disponvel em: http://www.segsat.com, visitado em: 10/11/2005. [28] WIKIPEDIA ENCYCLOPEDIA. Disponvel em: http://www.wikipedia.com, visitado em: 02/08/2005. [29] http://gedabr.projetos.etc.br/article/articleview/5/1/3/, visitado em: 20/10/2005. [30] http://gedabr.projetos.etc.br/article/articleview/13/1/3/, visitado em 20/10/2005. [31] KUROSE, J. F.; ROSS, K. W. Redes de Computadores e a Internet, uma nova abordagem. Addison Wesley, p. So Paulo, 2003. [32] http://www.gsmworld.com/technology/gprs/index.shtml, visitado em 22/12/2005. [33] HO, S. W. Adaptive Modulation (QPSK, QAM). Intel Literature Center, 2004.
64
65
2 1 1 1 1 2 1 1 1 1 1 1 2
R R U U U U U U U U U U X
22K 2K2 PIC184455 MAX232 HY62256A 74HC4040AN LM1881 74HC245AN 74HC04 LTC1406CGN 7805 LM336-2,5 12MHz
Notas: R Resistor C Capacitor CH Chave CN Conector L Transistor Q Transistor U Circuito Integrado X Cristal
66
Apndice B Experimentos
Este apndice relaciona as imagens sobre sinais de sincronismo as quais foram analisadas com o uso de uma ferramenta de osciloscpio durante experimentos realizados na implementao do projeto do circuito condicionador.
67
68
Microcontrolador 18F4455
Diagrama de Pinos 40 - PDIP
Descrio dos Pinos Pino Smbolo Descrio 1 /MCLR Master Clear Input VPP Programming Voltage Input RE3 Digital Input 2 RA0 Digital I/O AN0 Analog Input 0 3 RA1 Digital I/O AN1 Analog Input 1 RA2 Digital I/O AN2 Analog Input 2
69
5 6
8 9 10 11 12 13 14
VREFCVREF RA3 AN3 VREF+ RA4 T0CKI C1OUT RCV RA5 AN4 /SS HLVDI C2OUT RE0 AN5 CK1SPP RE1 AN6 CK2SPP RE2 AN7 OESPP VDD VSS OSC1 CLKI OSC2 CLKO RA6 RC0 T1OSO T13CKI RC1 T1OSI CCP2 /UOE RC2 CCP1 P1A VUSB RD0 SPP0 RD1 SPP1 RD2
15 16
17 18 19 20 21
A/D Reference Voltage (low) Input Analog Comparator Reference Output Digital I/O Analog Input 3 A/D Reference Voltage (high) Input Digital I/O Timer0 External Clock Input Comparator 1 Output External USB Transceiver RCV Input Digital I/O Analog Input 4 SPI Slave Select Input High/Low Voltage Detect Input Comparator 2 Output Digital I/O Analog Input 5 SPP Clock 1 Output Digital I/O Analog Input 6 SPP Clock 2 Output Digital I/O Analog Input 7 SPP Output Enable Output Positive Supply for Logic and I/O Pins Ground Reference for Logic and I/O Pins Oscillator Crystal Input or External Clock Source Input External Clock Source Input Oscillator Crystal Input In RC mode, OSC2 pin outputs CLKO which has the frequency of OSC1 and denotes the instruction cycle rate. General Purpose I/O Digital I/O Timer1 Oscillator Output Timer1/Timer3 External Clock Input Digital I/O Timer1 Oscillator Input Capture 2 Input/Compare 2 Output/PWM 2 Output External USB Transceiver /OE Output Digital I/O Compare1 Input/Compare 1 Output/PWM 1 Output Enhanced CCP1 PWM Output, Channel A Internal USB 3.3V Voltage Regulator Output Digital I/O Streaming Parallel Port Data Digital I/O Streaming Parallel Port Data Digital I/O
70
22 23 24
26
27 28 29 30 31 32 33
34
35
36
SPP2 RD3 SPP3 RC4 DVM RC5 D+ VP RC6 TX CK RC7 RX DT SDO RD4 SPP4 RD5 SPP5 P1B RD6 SPP6 P1C RD7 SPP7 P1D VSS VDD RB0 AN12 INT0 FLT0 SDI SDA RB1 AN10 INT1 SCK SCL RB2 AN8 INT2 VMO RB3 AN9 CCP2
Streaming Parallel Port Data Digital I/O Streaming Parallel Port Data Digital I/O USB Differential Minus Line (Input/Ouput) External USB Transceiver VM Input Digital I/O USB Differential Plus Line (Input/Output) External USB Transceiver VP Input Digital I/O EUSART Asynchronous Transmit EUSART Synchronous Clock Digital I/O EUSART Asynchronous Receive EUSART Synchronous Data SPI Data Out Digital I/O Streaming Parallel Port Data Digital I/O Streaming Parallel Port Data Enhanced CCP1 PWM Output, Channel B Digital I/O Streaming Parallel Port Data Enhanced CCP1 PWM Output, Channel C Digital I/O Streaming Parallel Port Data Enhanced CCP1 PWM Output, Channel D Ground Reference for Logic and I/O Pins Positive Supply for Logic and I/O Pins Digital I/O Analog Input 12 External Interrupt 0 Enhanced PWM Fault Input SPI Data In I2C Data Out Digital I/O Analog Input 10 External Interrupt 1 Synchronous Serial Clock I/O for SPI Mode Synchronous Serial Clock I/O for I2C Mode Digital I/O Analog Input 8 External Interrupt 2 External USB Transceiver VMO Output Digital I/O Analog Input 9 Capture 2 Input/Compare 2 Output/PWM 2 Output
71
37
38 39 40
VPO RB4 AN11 KBI0 CSSPP RB5 KBI1 PGM RB6 KBI2 PGC RB7 KBI3 PGD
External USB Transceiver VPO Output Digital I/O Analog Input 11 Interrupt-on-change SPP Chip Select Control Output Digital I/O Interrupt-on-change Low-Voltage ICSP Programming Enable Digital I/O Interrupt-on-change In-Circuit Debugger and ICSP Programming Clock Digital I/O Interrupt-on-change In-Circuit Debugger and ICSP Programming Data
Descrio dos Pinos Pino Smbolo Descrio 1 OGND Digital Data Output Ground 2 OVDD Digital Data Output Supply 3 /SHDN Power Shutdown Input 4 VBIAS Internal Bias Voltage 5 VREF External 2.5V Reference Input 6 AGND Analog Ground 7 AIN+ 1V Input 8 AIN1V Input 9 AVDD Analog 5V Positive Supply 10 AGND Analog Ground 11 DGND Digital Ground for Internal Logic
72
12 13-14 15-22 23 24
Digital 5V Positive Supply No Internal Connection Digital Data Output Overflow/Underflow Bit Clock Input
Descrio dos Pinos Pino Smbolo Descrio 1 CS Composite Sync Output 2 VIDEO Composite Vdeo Input 3 VS Vertical Sync Output 4 GND Ground 5 BRST Brust/Back Porch Output 6 RSET Reset 7 OE Odd/Even Output 8 VCC Power Supply
73
A14 A12 A7-A0 I/O1-I/O3 VSS I/O4-I/O8 /CS A10 /OE A11 A9 A8 A13 /WE VCC
Address Input Address Input Address Input Data Input/Output Ground Data Input/Output Chip Select Address Input Output Enable Address Input Address Input Address Input Address Input Write Enable Power
Contador 74HC4040
Diagrama de Pinos 16 - PDIP
Descrio dos Pinos Pino Smbolo Descrio 1 Q12 Parallel Output 2 Q6 Parallel Output 3 Q5 Parallel Output 4 Q7 Parallel Output 5 Q4 Parallel Output 6 Q3 Parallel Output 7 Q2 Parallel Output 8 GND Ground 9 Q1 Parallel Output 10 CLOCK Clock Input 11 RESET Master Reset Input
74
12 13 14 15 16
Parallel Output Parallel Output Parallel Output Parallel Output Positive Supply Voltage
Transceptor 74HC245
Diagrama de Pinos 20 - PDIP
Descrio dos Pinos Pino Smbolo Descrio 1 DIR Direction Control 2-9 A0-A7 Data Input/Output 10 GND Ground 11-18 B7-B0 Data Input/Output 19 /OE Output Enable Input 20 VCC Supply Voltage