Você está na página 1de 55
haw F EU Universidade do Porto ar Faculdade de Engenharia Licenciatura em Engenharia Electrotécnica e de Computadores Projecto, Seminario ou Trabalho Final de Curso Ano lectivo 2005/2006 CAMARA DE VIDEO VIGILANCIA Facinerts Wi oer srretes oun Unie Epa ‘ ~“30I0" 621.3(047.3)/ ee) 26 aa 2006/NEVc 4 atversidene ge bons Gieneiadnovagae FEUP Engentaris 2010 Licenciatura em Engenharia Electrotécnica e de Computadores Projecto, Seminario ou Trabalho Final de Curso Ano lectivo 2005/2006 CAMARA DE VIDEO VIGILANCIA Orientador: Prof. Jodo Canas Ferreira Autoras: Carla Manuela Neves Gisela Mota e Costa Pagina dispontvel em: hutp://gnomo.fe.up.pt~ee01 162 ou http://gnomo.fe.up_p/~ee012 1 Carla Neves Camara de Video Vigilancia @ 2006 Gisela Costa aM MSs, Universidade do Porto Giese Th van! + ee ia agao FEUP Est 2010 1 Agradecimentos Gostévamos de agradecer o financiamento do programa POCI2010. Gostdvamos de agradecer a0 nosso orientador Professor Jodo Canas Ferreira que nos animou nos momentos mais diffceis e nos incentivou a ultrapassar alguns dos obstéculos encontrados na realizagio deste projecto. Gostivamos de agradecer a0 nosso colega Miguel L. Silva pela sua paciéncia e disponibilidade para esclarecer as nossas diividas, sem a sua orientacio nao terfamos conseguido alcangar alguns dos nossos objectivos. Gostavamos de agradecer ao Professor José Carlos Alves que apesar da sua chegada tardia sempre ‘se mostrou interessado pelo trabalho desenvolvido. Gostévamos de agradecer ao Engenheiro Anténio Almeida ¢ ao Engenheiro Paulo Magalhies, da Mactek, pelo apoio prestado durante a realizaco deste projecto. Gostava de agradecer aos meus pais e av6, em especial ao meu pai que sempre me apoiou nos ‘momentos mais dificeis ¢ que acreditou sempre em mim. Queria também agradecer a0 meu marido, pelo apoio, dedicagdo e ajuda que sempre demonstrou e pela paciéncia que teve comigo, sem ele nd teria chegado até aqui. Ass. Carla Neves. Aproveito estas linhas para agradecer a familia ¢ amigos que me permitiram estabilidade e tranquilidade para atingir todos os meus objectivos. Agradego também aos docentes e a todos os colegas que fizeram destes cinco anos de curso, a experiéncia mais enriquecedora e produtiva até ‘a0 momento. Ass. Gisela Costa. G1-24604-3) sce too (We \os274 10210 Carla Neves Camara de Video Vigilancia @ 2006 isela Costa ’ Woiversidade le) narea) Géncia.Inovagao FEUP tngentaria 2010 2. indice 1 AGRADECIMENTOS ess 2 inDICI 3. INDICE DE ILUSTRAGOES, TABELAS E FLUXOGRAMAS. 4 LISTA DE ABREVIATURAS E SIMBOLOS 5 SUMARIO. 6 SUMMAR’ un 7 INTRODUGAQ sn smanmnsnnnianne ID 8 MATERIAL UTILIZADO.. sonnei 1B 8.1 SOFTWARE UTILIZADO session smnanennannnnenenenmnenninnnnenenenesenne 8.2. HARDWARE UTILIZADO. 4 83 PREPARAGAOASICA DO KIT sow A 9 CONSIDERAGOES SOBRE 0 MATERIAL UTILIZADO. noun 9.1 SOFTWARE UTILIZADO 15s GAT ISE 8.103% sonsnsnsnnsnnnnnnsnsns o nnn von IS 91.2 EDK 81.02 on o se Is 9.1.3 ModelSim XE 1116.04. 7 9.1.4 Macromedia® Dreamweaver® 8 sox... o os 18 9.1.5 OrCAD®. 19 9.1.6 Borland Delphi? 7 sone 19 9.1.7 Cédigo de servidor de Internet. o . 19 9.1.8 SerialWarchero. . . o 20 9.1.9 Ethereal ar 9.2. HARDWARE UTILIZADO: 2B 9.2.1 Computador utilizado. 23 9.2.2 Kit View 23 92.3 Camara digital C3188A. 26 10 TRABALHO DESENVOLVIDO Carla Neves Camara de Video Vigilancia @ 2006 Gisela Costa Boe Ciencia. Inovagao Ah? FEUP Ease 2010 4 Lista de abreviaturas e simbolos Integrated Software Environment ISE EDK _ | Embedded Development Kit 7 | XPS | Xilinx Platform Studio vpn _| Veilog Hardware Development Language IP Bmp Bitmap File xmp __| Xilinx Microprocessor Debugger Gcc | GNU compiler — i Internet Protocol OO rcp | Transmission Control Protocol 7 OO ‘rrp _ | Hyper Text Transfer Protocol a : sccp | Setial Camera Control Bus [ prom Programmable ROM Pe ppr-spram | Dval Port Synchronous RAM a per __ | Discrete Cosine Transform —_ [ eae | serial Data Carla Neves Camara de Video Vigilancia @ 2006 Gisela Costa niversidedelge Bore Genciadnovagaio / FEUP tieentacs 2010 Serial Clock LK Graphies Interchange Format GIF Portable Network Graphics PNG JPEG | Joint Photographic Expert Group ‘Tabela 1 - Abreviaturas e simbolos. Carla Neves Camara de Video Vigilancia @ 2006 Gisela Costa Universidade do Porto Giéncia.Inovagao FEUP tngenaris 2010 -10- 5 Sumario Este sistema associa um médulo de uma cimara com saida digital a um kit Virtex-4, aqui € feita a aquisigao da imagem transmitida pela cémara, a sua codificagdo em JPEG e a sua apresentagio ‘numa pagina de Internet, que € visualizada apenas Tigando © computador & FPGA através de um cabo de rede e abrindo um “browser” na piégina no enderego do Servidor de Internet implementado na FPGA, sistema final permite visualizar uma imagem de video de vigilancia, para que desta forma se cefectue a detecgdo de movimento numa érea abrangida pela cdmara. © desenvolvimento deste projecto implicou um elevado grau de dedicagao e muito empenho para que fossem atingidos os requisitos mfnimos do rema que foram definidos no inicio do projecto. ‘A implementagdo de sistemas em hardware demonstrou ser um desafio constante para se ultrapassarem as contrariedades que surgem. No entanto a satisfagao de ver o trabalho a produzir resultados que niio so apenas te6ricos mas também visiveis compensa toda a ansiedade sentida nos ‘momentos em que parece nao existir solugdes. Carla Neves Camara de Video Vigilancia @ 2006 Gisela Costa | Dnivereldade|eogore Gemiadnovagao 8) FEUP esse 2010 “te 6 Summary This system associates a digital output camera module to a Virtex-4 kit, Here the image transmitted by the camera is captured, encoded in JPEG format and presented on a Web page, witch is visualised only requiring the connection to a computer with an Ethernet cable and opening a browser on the web page address of the internet web server implemented on the FPGA. The final system allows visualising a video surveillance image, so it can detect de movement on a specific area covered by the camera, ‘The development of this project implied a high level of commitment and a hard work so that the minimal requirements of the system that were defined on the beginning of the project were to be achieved, The implementation of hardware systems proved to be a constant challenge to overcome all the difficulties that appeared. However the satisfaction to see a working project with results that aren't just theory but also visible compensates all the anxiety felt on the hardest moments when appears to be no solutions. Carla Neves Camara de Video Vigilancia @ 2006 Gisela Costa eG, Universidade do Porta Giencia.novagao FEUP tnsentaris 2010 -12- 7 Introducio Neste projecto o principal objectivo foi desenvolver um Sistema de Video Vigilancia, recorrendo 20 uso de Sistemas Reconfigurdveis, uma cimara CMOS com safda digital e um PC com placa de rede. Devido a grande dimensio e complexidade do projecto os objectivos a atingir foram divididos por fases, pois para resolver um problema de grandes dimensdes a nica solugio é dividi-lo em partes de menor dimensio e resolver passo a passo cada uma das importantes etapas deste projecto. A implementagio do cédigo de aquisis jo dos dados da cimara € considerada a etapa mais, importante deste projecto, uma vez que este cédigo é 0 ponto de partida para qualquer implementago futura que trabalhe com os dados enviados pela cémara. Para atingir este objectivo & necessério confirmar que esté a ser enviada uma imagem sincronizada, para este efeito considera- -se de vital importincia o desenvolvimento de uma interface gréfica capaz, de receber os dados recebidos na porta série do PC. Para além de efectuar a recepgio dos dados € necessério fazer a apresentagdo dos mesmos de uma forma perceptivel, para tal deve criado um ficheiro bmp. Deve ser criado um ficheiro de mapa de bits uma vez que estes ficheiros possibilitam a escrita de todos (8 dados ap6s 0 cabegalho, de uma forma progressiva, ‘Apés concluida a fase de hardware pretende-se implementar um servidor de Intemet, usando 0 protocolo HTTPI.1. A principal razio que nos leva a querer enviar os dados via cabo de rede é aumentar a taxa de transmissao de imagens para desta forma atingir a transmissao de imagens em tempo real. Outro factor importante de querer apresentar os dados numa pagina de Intemet € 0 facto de podermos usar um “router” e ter Vérios clientes ligados a este servidor. ‘A configuragdo do Kit Virtex-4 final deverd ser efectuada programando a PROM, desta forma o sistema poderd ser usado por qualquer utilizador sem ser reprogramada. Carla Neves Camara de Video Vigilancia @ 2006 Gisela Costa Moiwereldada ee oreo Ciencia Inovagao FEUP ftgentaris 2010 -13- 8 Material uti ado A cémara digital escolhida para efectuar a aquisigo da imagem foi a camara C3188 em médulo com sensor de imagem CMOS 0V7620 da OmniVision®. Apesar de ser um médulo de 1/3” a cores, optou-se por se fazer a sua configuragdo para 0 modo de funcionamento a preto e branco. Esta opgio foi devida ao facto de se considerar a imagem a preto e branco suficiente para o desenvolvimento de um sistema de Video Vigilancia, além de que esta opgio facilitard 0 proceso de aquisigao, codificagao e transmissio da imagem, Optou-se pela tecnologia do Kit Virtex-4 da Xilinx” para efectuar a aquisigo dos dados transmitidos pela ciara e posterior processamento dos mesmos. A transmissio das imagens € efectuada através de uma ligagdo de cabo de rede, usando o protocolo TCP/IP. 8.1 Software utilizado Windows XP® “home edition”; Xilinx® ISE 8.1.03i, com o “service pack” 3; Xilinx? EDK 8.1.02i, com o “service pack” 2; ModelSim XE Ill 6.0d “starter edit Macromedia® Dreamweaver® OrCAD® 10.5; Borland Delphi® 7; vVvvvvvy v Avnet LX25/LX60/SX35 Evaluation Board cédigo de servidor de Internet com grandes alteragdes feitas ao longo do projecto; > SerialWatcher; v Ethereal. Carla Neves Camara de Video Vigilancia @ 2006 Gisela Costa <>... Universidade do Porto nan ago FEUP Eee OIG -14- 8.2 Hardware utilizado > Computador com porta série, porta paralela e placa de rede; > Kit Virtex-4 XC4VLX60 da Avnet com AvBus breakout module; > Cimara digital C3188A em médulo com sensor de imagem CMOS 0V7620 da Omni Vision®; > Cabo RS-232; > Cabo rede cruzado; > Cabo JTAG. 8.3. Preparagio basica do kit > Instalar “jumpers” em: © 320, pinos 2€ 3; ©. JPI8, pinos 3e4 (M1); © SPIO; o IP23; IPS; co JPI2; © JPI3, pinos 12; ©. JP2, pinos le 2; ‘© JPI6 (o teste da DDR pode falhar se este “jumper” nao estiver instalado); > Ligar o cabo STAG do conector JP17 & porta paralela do PC; > Ligar 0 cabo de rede do conector J2 ao PC. Carla Neves Camara de Video Vigilancia @ 2006 Gisela Costa Unie aeee tae Ciencia. NOVAGAG FEUP tngentiaria 2010 “15 9 Consideragées sobre o material utilizado Nesta secgio sao feitas consideragdes acerca do material utiizado, qual a sua fungao e objectivos, assim como outras informagdes consideradas relevantes. 9.1 Software utilizado 9.1.1 ISE 8.1.03i Utilizaram-se as verses mais recentes do ISE © do EDK da Xilinx®, no s6 por serem mais eficientes mas também por serem a versio na qual 0 c6digo de servidor de Intemet da Avnet? foi desenvolvido. Uma vez que estas versdes apresentam diferengas significativas em relagio as anteriores (EDK 7.1i ¢ ISE 7.1i), foi necesséria uma prévia familiarizagio e estudo aprofundado destes softwares, Estas ferramentas de desenvolvimento e implementagdio de projectos sto produzidas pela Xilinx®, também fabricante da FPGA utilizada neste trabalho, A ferramenta ISE integra um Project Navigator de modo a organizar a hierarquia do projecto, ¢ a englobar todos 0s ficheitos utilizados, sendo possivel incluir no mesmo projecto ficheiros na linguagem Verilog ¢ ficheiros em VHDL. Inclui também um sintetizador I6gico XST, que permite definir “constraints” para o circuito, para além de ferramentas de “translate”, “map”, “place & route” € para a geracio do “bitmap” propriamente dito. Para além destes componentes indispensdveis ao fluxo de projecto, o ISE inclui ainda softwares que realizam fungdes diversas tais como a programagio efectiva dos dispositivos através de JTAG ‘ou outras interfaces previstas (IMPACT). £ disponibilizado também um IP Core Generator que permite gerar cédigo parameterizado de solugdes légicas ja desenvolvidas pela Xilinx® para os seus dispositivos, tais como FIFOS, memérias RAM, DCTs e processadores em Soft Core como & © caso do MicroBlaze. 9.1.2, EDK 8.1.02i Para trabalhar com este software & necessério 0 ISE para implementar os projectos gerados na Carla Neves Camara de Video Vigilancia @ 2006 Gisela Costa Unie ieenaeer Ciencia Inovagao FEUP tisentars 2010 -16- ferramenta XPS do EDK. As ferramentas disponibilizadas pelo software Xilinx® EDK sio: XPS, XMD, GCC, Libgen, Os “driver iiltiplos usos dos “drivers” dos componentes, que proporciona uma md imgen e Platgen. deste componente tém uma arquitectura em camada, esta arquitectura engloba os Jima portabilidade entre sistemas, ferramentas e processadores. A implementagio dos “drivers” & em cédigo “ANCI C”, para aumentar esta caracterfstica de portabilidade entre processadores e ferramentas de desenvolvimento, Uma vez que as FPGA podem ser programadas para varias funcionalidades, a configuragio dos “drivers” do componente suporta tempos de compilagdo e execugdio que podem ser diferentes, estas caracteristicas providenciam a flexibilidade necesséria no desenvolvimento de sistemas reconfiguraveis dindmicos. Estes “drivers” suportam também miiltiplas instanciagdes do mesmo componente sem efectuar a duplicagio do cédigo para cada uma delas, mas no entanto trata as caracteristicas Gnicas de cada instanciagao. Este software permite a criagdo de um OPB IPIF, este médulo € capaz. de implementar solugdes logicas (IP) em componentes periféricos integrados. O OPB IPIF esté posicionado entre o OPB e 0 IP como se pode confirmar na (Ilustragao 1). © OPB € um elemento da arquitectura IBM CoreConnect, este barramento sincrono de fécil implementagdo em componentes periféricos integrados, permite a comunicagdo destes com 0 MicroBlaze. Carla Neves Camara de Video Vigilancia @ 2006 Gisela Costa ( 4 @ enivers | oncie ao Eouen Citncia.Inovagao / FEUP fennsss 2010 -17- lustragdo 1- Componente OPB com todas as funcionalidades do IPIF 9.1.3 ModelSim XE III 6.04 Para a realizagdo de testes de toda a implementagio de hardware, foi utilizada a ferramenta ModelSim XE III 6.0d “starter edition” da Mentor Graphics® fornecida pela Xilinx®. Este simulador inclui informagio temporal no que diz respeito a atrasos provocados pelas diferentes camadas de I6gica existente nas FPGAs da Xilinx®, sendo assim muito itil para as simulagdes apés sintese, apés “map”, e apés “place & route”. Carla Neves Camara de Video Vigilincia @ 2006 Gisela Costa A des iversic P Se Universidade do Porto Ciencia. novagao 1 FEUP Exgentscs 2010 -18- uns Hustragio 2 - Modelsim Wave. 9.1.4 Macromedia® Dreamweaver® 8 Este programa foi utilizado para produzir a pégina, em html, do projecto. Macromedia® Dreamweaver® 8 6 um programa profissional para a construgio de p§ginas de Internet © aplicagdes. Fomece uma combinagio poderosa de instrumentos de “layout” visual, aplicagdes de desenvolvimento, e suporte de edigio de cédigo permitindo aos programadores e projectistas de varios criagio ripida de aplicagées e de paginas Internet visualmente atractivas e de acordo com as normas. Dreamweaver® fornece ferramentas profissionais necessérias para criar um ambiente integrado, modemo e aerodinimico suportando desde projectos baseados em CSS até programacio livre. Permite ao programador a escolha do Internet browser da sua preferéncia, a implementagao de aplicagdes de Internet em que utilizadores acedem a uma base de dados servigos de Internet. Carla Neves Camara de Video Vigilancia @ 2006 Gisela Costa “Fs... Universidade do Porto Giemiadnovagao L FEUP ttgentars 2010 -19- 9.1.5 OrCAD® Este software da Cadence Design Systems® & composto por diversas ferramentas, 0 Capture CIS, 0 Layout e 0 Gerbtoo! estdo entre as mais importantes. O Capture CIS é utilizado para desenhar 0 esquemitico e criar uma lista de ligagdes (NETLIST) com as caracteristicas fisicas dos ‘componentes. O Layout trata dos “templates” e organizagao das camadas, da importagao da lista de ligagdes, da colocagao dos componentes ¢ do tratamento das pistas (Nets). O programa Gerber Tool € utilizado para preparar os ficheiros ou o fotolito para enviar para o fabricante de placas de circuito impresso. 9.1.6 Borland Delphi® 7 Este software permite desenvolver base de dados de cliente/servidor, servidores de Internet e Componentes feitos & medida das necessidades do utilizador. Permite também desenvolver aplicagdes, tais com: SOAP, TCP/IP, COM+ e ActiveX. Utilizou- versio 7 deste software pois muitas das funcionalidades que suportam desenvolvimento na Intemet, tecnologia XML. € desenvolvimento de base de dados, necessitam de componentes assistentes integrados no software que nao estdo disponiveis nas versdes anteriores. 9.1.7 Cédigo de servidor de Internet Foi adaptado 0 c6digo de um servidor de Internet para a Virtex-2. Esta aplicagdo usa o protocolo hp 1.1 e envia informagio entre clientes conectados via cabo de rede. Devido a limitagdes nas livrarias da Xilinx®, apenas possivel enviar ficheiros até 1500 bytes. Outra importante limitagdo deste servidor & 0 facto de ndo ser possfvel efectuar miltiplos acessos a0 servidor em pequenos intervalos de tempo. AAs livrarias uilizadas so: > “Xilinx Memory File System library (LibXil MFS)v1.00a”, esta livraria trata parte da ‘meméria como ficheiros de sistema. > “Xilinx Net v1.00a", esta livraria usa 0 controlador de rede para promover uma aplicagao em camadas de alto nivel designada Socket API Carla Neves ‘Camara de Video Vigilancia @ 2006 Gisela Costa Universidade do Porto Cencia,lnovagaio FEUP fntentaris 2010 -20- Os dados _—recebidos do Socket sio guardados em “xilsock_sockets[s].recvbuf. buf” © © tipo de pacote & identificado por “xilsock_status flag”. Obit XILSOCK_TCP_DATA desta “flag” indica se 0 pacote contém dados. O bit XILSOCK_TCP_ACK indica se é um pacote de confirmacao. © Ao usar “xilsock_send”, € necessério guardar os primeiros bytes no inicio do “buffer”, o espago a reservar para esta operagdo deve ter as seguintes dimensdes: LINK_HDR_LEN + (IP_HDR_LEN*4) + (TCP_HDR_LEN*4) © Esta fungdo nao consegue transferir informagdo superior a 1500 bytes e ndo espera pela confirmagdo do servidor antes de transmitir novos pacotes. Hardware usado: EMAC, INTC, GPIO, ZBT. © cédigo fonte deste servidor foi modificado, a partir do exemplo extrafdo de: hy liaidocs/examples/MicroB www xilins.conVproducts/boards/multim 9.1.8 SerialWatcher Esta aplicagao desenvolvida cm Delphi®, foi fundamental no decorrer deste projecto para 0 processo de “debuging” do sistema, O SerialWatcher permite visualizar os dados recebidos na porta série. E possivel seleccionar a porta série que se pretende utilizar e configurar as suas definigOes para receber os dados enviados pela FPGA no formato desejado, Permite seleccionar qual 0 modo de apresentago da informagao que se pretende visualizar, sendo as opgdes: hexadecimal, decimal e ascii. Esta interface permite também a criagdo de um ficheiro onde serd armazenada toda a informagao recebida Carla Neves Camara de Video Vigilancia @ 2006 Gisela Costa A ‘ Be EUP tnsentaris "BOI0” -21- rae) Py et ne ar | se eto Pam (ERR | Se || choo | Som FE CIE | oa cme | Pm fev | rtome | OOH |) cee ee CER aktwahh sont oe) Se RE | om | tie Fee ED || Fae || ener aim oa 7 ba Ke CF et Sian Mens DOR SDRAM 10416 AP Fring Be PASSEOICCRY AF Rig TAR les FABEDbAhy Areeg besten PuSSeDLury-Cerg nar ODL era lion hatte 7RSS S777 NSCLC TTFFESSOES ASSESSES mm» SONOS: SRNR WM eZZZECE DZONE: A fren mmm _ NN C552001 177755577 857755557 Sch Pinan Choc Poes rasan sckl Pare CP Poceing Pees «inane (RP roc acket \atrame cba reco Fees Cha Franenopet og CR» LEIMAGE 1c Linge LF CR) Poser Ree < Liane (OL eo lack ance Prone Deve-se colocar um filtro com o objectivo de se observar apenas a informagiio considerada Util e de seguida premir “apply”. > Para iniciar a captura dos dados no filtro selecciona-se Capture> Interfaces> Prepare (da Interface que pretende visualizar) e coloca-se um visto nas opgdes: © Update List of packets in real time. © Automatique scrolling in live capture, © Hide capture info dialogue. Carla Neves Camara de Video Vigilancia @ 2006 Gisela Costa A 4 Universidade do Porto Inovagaio (@yreupesse 2010 =22- E retiram-se os vistos das opgdes: ‘© Enable MAC name resolution. © Enable Transport name resolution, Apés seguir estes passos deve-se abrir 0 browser ¢ a paritr desse momento tem-se acesso a0 contetido de todos os pacotes transmitidos entre o cliente e o servidor. Este software possil acesso a informagao ao nivel do “frame”, “ethernet II”, IP, TCP ¢ HTTP. WWMM OE So Wee OTR VT AQRTMUWS oe a oe Carla Neves Camara de Video Vigilancia @ 2006 Gisela Costa ( SN Mf Sx, Universidade do Porto + Inovacao a ee SPFEUPEasss "3010 -23- 9.2 Hardware utilizado: 9.2.1 Computador utilizado Foi necessério que 0 computador utilizado tivesse certas caracteristicas para ser possfvel a realizagio deste projecto. Para diversos testes e para a implementagao da recepgao de uma imagem no PC foi fundamental 0 uso da porta série. O programa iMPACT que trata a programagio da FPGA, usa como meio de transmissio de informacio 0 cabo JTAG que se liga & porta paralela. A placa de rede € necesséria para a interligagao via cabo de rede com o kit da FPGA ¢ assim aceder a0 servidor de Internet 1é implementado. 9.2.2 Kit Virtex-4 © Kit Virtex-4 vem equipado com a placa FPGA Virtex-4 da Xilinx®, este kit esté equipado com o hardware necessério para responder as funcionalidades desta placa. Simultaneamente também possibilita a implementagZo de aplicagdes mais complexas sem necessitar de recorrer a mais recursos de hardware. Tlustraglo 5 - Kit Virtex-4 XC4VLX60, Este kit foi desenvolvido para a FPGA Virtex-4, que é um dispositivo légico reprogramével, esta Carla Neves Camara de Video Vigilancia @ 2006 Gisela Costa ( A Gs Universidade do Porto Ciencia.Inovagaio OD FEUP ssseassst 2010 =24- FPGA tem 668 pinos ¢ um “flip-chip BGA package (FF668) ". O dispositivo FF668 tem 448 portas de entrada ¢ saida, separadas em blocos de 10 portas de entrada e safda, que pode observar na seguinte ilustragdo. Configuration Bi6 Cher || ORAM ae) ae oa Virtex-4 Evaluation Board Tlustraco 6 - Componentes de hardware da placa. Esta placa suporta vérios métodos de configuragao, tais como: “Boundary-Scan”, “Master Serial” € “Master/Slave Parallel”. Durante a realizagio deste projecto a programagio da placa foi efectuada ‘no modo “Boundary-Scan”, para este efeito é necessério 0 cabo JTAG, se for usado 0 cabo paralelo TV deve-se colocar um “jumper” no pino JP17. Esta placa permite ao utilizador adicionar ou remover componentes da cadeia JTAG. O modo “default” da placa é o “standalone mode”, em que & adicionado A cadeia STAG 0 componente PROM. Para seleccionar este modo deve-se instalar um “jumper” nos pinos 2 € 3 do pino JP20, para seleccionar 0 modo “Boundary-Scan” deve instaslar dois “jumpers” nos pinos 2, 3, 5 € 6 do Carla Neves ‘Cimara de Video Vigilancia @ 2006 Gisela Costa A FSe,_Universidade do Porto 1 Giéncia.Inovagaio 2 FEUP ease 2010 “35.0 ino JP18, tal como apresentado na ilustragao. MO M1 M2 JP18 Mlustragio 7 - Configuragio modo de boundary sean. yP20 CesT Tlustragéo 8 - Configurasio modo de Standalone. Utilizando este kit & posstvel implementar circuitos integrados bastante complexos, devido aos sucessivos avangos desta tecnologia ¢ a0 facto da velocidade de funcionamento ser bastante elevada, € possivel efectuar um exaustivo estudo durante 0 desenvolvimento da aplicagdo a criar. Desta forma quando é detectado um erro no desenvolvimento da aplicagio, apenas é necessério cfectuar a correceiio do mesmo € reprogramar a placa. Assim que a sua aplicagdo apresente a maxima eficiéncia deve ser implementada em ASIC, desta forma nao é necessério a implementagao em ASIC para a realizagio dos testes intermédios. Para além do kit foi utilizado um “breakout module” para fazer a conexdo entre o kit ¢ 0 “flat cable” que faz a ligagdo com a camara. Carla Neves Camara de Video Vigilancia @ 2006 Gisela Costa et ia. NOV: TL) FEUP exgeasss 2010 ( SN ae Universidade do Porto -26- Thustragiio 9 - AvBus breakout module. 9.2.3, Cimara digital C3188A Este médulo contém um sensor CMOS 0V7620 da Omnivision®, capaz. de fornecer imagens até 664x486 pixels, sendo o valor da configuracdo por defeito uma resolugdo de 640x480 podendo também ser configurdvel para 320x240 a uma taxa maxima de 60 quadros por segundo (em formato QVGA). Tlustragio 10 - Médulo da cmara completo. © médulo contém todos os componentes necessérios para seu funcionamento do sensor, tais como condensadores € resisténcias de desacoplagem e rectificagdo, além de possuir também um cristal 4que fornece um sinal de rel6gio ao sensor & frequéncia de 27MHz Hustragio 11 - Médulo da ciara visto de baixo, Uma grande vantagem no uso deste médulo € 0 facto de 0 seu custo ser mais baixo que outros no mercado, isto porque a tecnologia de fabrico ¢ praticamente a mesma dos dispositivs CMOS Carla Neves Camara de Video Vigilancia @ 2006 Gisela Costa A Gitncia. INovagao EUP tngenharia 2010 -27- habituais. Outra das vantagens € a possibilidade de integrar no mesmo “chip” do sensor circuitos para efectuar processamento anal6gico ¢ digital, que podem mesmo ser efectuados ao nivel do Hustragio 12 - Sensor CMOS 0V7620. De seguida referem-se algumas das suas caracteristicas mais importantes, transcrevendo os dados da sua fotha de caracteristicas, veut vaenr praeeking ‘olin sense amp (664X492) image i W sor exposure 1, est Eton ome | Leontrol | interac ca ape Fluxograma 1- Sensor 0V7620. Carla Neves Camara de Video Vigilancia @ 2006 Gisela Costa Universidade do Porto Cionciaalnhovagaia fat § «J? FEUP étgentana 2010 -28- Como se pode observar através do fluxograma, este componente tem potencialidades para além das de um mero sensor de imagem. No diagrama so diferencisveis oito componentes principais: > 0 “array” de imagem, onde a imagem é capturada e posteriormente enviada para o bloco de processamento analégico. ideo é 0 bloco responsavel por todos os sincronismos da > 0 gerador de sincronismo de Amara, recebe do pino 27 um sinal de relégio, com uma frequéncia maxima de 30Mhz, ¢ zgera todos os sinais de sincronismo necessérios: sincronismo horizontal e vertical, pixel clock, “horizontal reference”, entre outros. Estes sincronismos sto gerados de acordo com os parimetros de configuracdo existentes nos registos, pois a velocidade do pixel clock dobra quando a saida € de 8 bits em relago a 16 bits, € ha diferentes requisitos temporais conforme 0 formato seleccionado (progressive ou entrelagado por exemplo). & também possivel por alterago no valor dos registos, mudar a polaridade dos sinais de sincronismo. v © bloco de processamento anal6gico realiza fungoes tais como 0 controlo automético de ganho e de balanceamento de brancos € 0 controlo da qualidade de imagem. Estes controlos de qualidade incluem “sharpness”, “hue”, ganho, controlo “gamma” e “antiblooming”. Efectua também conversdes do sinal para diferentes formatos normalizados de saida. > Os dois conversores analégicos para digital contém 10 bits cada, As entradas de ambos provém de “multiplexers” de modo a ser possivel seleccionar a origem dos dados a serem convertidos. > 0 dloco de formatagio de safda, permite formatar a safda segundo diversas normas. A selecgdo do formato é feita através dos registos de configuragio do OV7620. A tabela seguinte representa com um “Y” os formatos de safda suportados: Carla Neves Camara de Video Vigilincia @ 2006 Gisela Costa Universidade do Porto Genciadnovagae § Faculdade de FEUP tngenteris 2010 -29- Interlaced Progressive Scan Resolution e405460 | 320040 | 640x480 | 320040 1681 Y Y Y Y yuv 4:22 86it Y Y Y Y CCIRESE Y Y Y Y TeBR Y Y Y Y RGB Bit Y Y Y Y CoIRESE" Y Y Y Y 1664 : > NTs eB Y Y Y Y yuv? Y Y Y Y UN swap RGB Y Y Y Y 16Bit Y Y Y Y ve aah : . 168i 7 - Y One Line eB : 5 MSBILSB swap’ Y Y Y Y ‘Tabela 2 Formatos de safda suportados pela 0V7620. > A porta de video digital, consiste em dois barramentos de 8 bits cada. A taxa de transferéncia méxima de quase 7 mega bytes por segundo. As correntes de saida sto ajustadas automaticamente em fungdo da carga. > A interface SCCB é a opgio de configuragao dos registos internos que a camara apresenta, As especificagies desta interface obedecem 3s da mais conhecida interface I2C, sendo a taxa de transferéncia apresentada na folha de caracteristicas a de 400 kb/s. O método de escrita num registo € efectuado transmitindo 3 Bytes, sendo o primeiro 0 enderego do dispositive, o segundo indica o registo a escrever, € no terceiro tua-se o valor a colocar no registo, Algumas especificagdes do protocolo I2C sio apresentadas no capitulo Protocolos Carla Neves Gisela Costa Camara de Video Vigil fincia @ 2006 Acess6rios> Comunicagées> HyperTerminal A informago pode ser enviada a uma cadéncia compreendida entre 110 e 921600 bits por segundo, podendo enviar-se entre 5 a 8 bits de dados. Este protocolo permite também 0 envio da informagé com diferentes tipos de paridade, tais como: par, impar, marcar, espago ¢ sem paridade. Permite envio de 1, 15 ou até 2 bits de paragem, pode efectuar controlo de fluxo por hardware, “Xon/Xoff", ou mesmo néio efectuar controlo de fluxo. 10.1.2 Ficheiro de mapa de bits 3s ficheiros bmp sio constitufdos por um cabegalho de 54 bytes, que tem os seguintes campos: tamanho da imagem em bits, offset, largura e altura em pixeis, niimero de bits por pixeis, tipo de compressio, resolugio da imagem, entre outros campos reservados para uso futuro € campos com valor previamente estabelecido. O cabegalho da imagem ocupa os primeiros 54 bytes ¢ os restantes Carla Neves Camara de Video Vigilancia @ 2006 Gisela Costa ( MY», Universidade do Porto Heats Vhove “3 LEY ude do Porto enciaInovagao A) FEUP esas 2010 -92- bytes so reservados para 0 armazenamento dos dados da imagem. Cada pixel & constitufdo por 3 bytes, cada byte indica o valor de R, G ¢ B, desta forma se se quiser guardar uma imagem monocromitica deve-se replicar 0 mesmo byte trés vezes. Os ficheiros bmp t&m ainda uma particularidade, os dados da imagem sto escritos de forma inversa, portanto apés guardar a sua imagem deve-se ter 0 cuidado de a inverter. 10.1.3 2C 0 protocolo 12C foi desenvolvido pela Philips® no inicio dos anos 80 ¢ tem como principal objectivo simplificar a comunicagdo digital entre dispositivos. Este protocoto utiliza apenas duas linhas de comunicagao, o Serial Data (SDA) e 0 Serial Clock (SCL). Estabelece que para a transmissfo de dados € necessério um sinal de Start, um conjunto de pardmetros para a transmissio de dados e a existéncia de um sinal de Stop. Devido & sua simplicidade 0 protocolo 1I2C € um standard em comunicagio, sendo 0 mais usado até ao momento. Neste protocolo é referido que cenquanto a linha de SCL se mantém no nfvel 16gico vétido, ndo pode haver mudanga na linha SDA. ‘Como excepgdes a esta regra, existem os sinais de Start e Stop. £ detectado um sinal de Start quando a linha SDA efectua uma transig2o do nivel alto para o nivel baixo enquanto a linha SCL se ‘mantém no nivel I6gico alto. Por sua vez, 0 sinal de Stop € detectado quando a linha de SDA passar do nivel baixo para o nivel alto, enquanto a linha SCL se mantém no nivel I6gico alto, Start Stop a WY, SDA as Hustraco 13 - Sinais de Start e Stop em I2C. © barramento 2C € um barramento que permite que a ligagdo de vérios dispositivos em simultéineo. Cada um deles é identificado por um ou dois enderegos (um para escrita e um para Ieitura). De modo a permitir isso as linhas SDA e SCL sio linhas “abertas”, ou seja, quando no esto a ser utilizadas, estio ao nivel I6gico alto, Isto € garantido pela utilizagio de resistencias de “Pull Up” nas linhas. Os dispositivos 12C ligados ao barramento podem ser de dois tipos: “Master” ou “Slave”. O “Master” € 0 dispositive que dé inicio & transferéncia e que gera o sinal de SCL Carla Neves Camara de Video Vigilancia @ 2006 Gisela Costa «Fy. Universidade do Porto “ES Génciadnovagaio FEUP Engenharia 2010 -33- icia de virios “Masters”. Como as linhas so abertas, © “Master” pode sendo possivel a exist detectar se 0 barramento esté a ser utilizado ou no, de modo a poder iniciar uma transferéncia, Cabe ao “Slave” gerar sinais de “Acknowledge” de modo a confirmar a recepgdo dos dados. Uma das vantagens deste protocolo € 0 facto de a velocidade de transmissdo nilo ser fixa, pois 6 determinada em cada transmissio através do SCL. Ha no entanto alguns valores padrao mais utilizados, tais como 100kb/s e 400kb/s para Fast 12C. Para a cdmara digital C3188 é apresentado na sua folha de caracterisicas o diagrama temporal para a comunicagao com 0 dispositivo, assim como os valores temporais. Onde 0 SIO-O ¢ a linha SDA e 0 SIO-1 a linha SCL. 10-0 I \ i i tapor 1 rd "ow hate eel eee a — slo-1 —TT7 \ | Hustragdo 14 - Diagrama temporal para comunicagdo I2C com a cdmara, Carla Neves Camara de Video Vigilancia @ 2006 Gisela Costa «Fe... Universidade do Porto FEUP fas Engenharia ny Ciencia. INOVAGAO 2010 -34- seta Descriptions. Min | Max | Typ | Units ‘SCCB timing(400kbI/s) _ ‘eur | Bus fee tme bemeen STOP & START mT : Be ‘we sar | SIG change ater START sous 08 : : us ‘tow | 10-1 low perod 13 is tar | S1O-1 high period 08 : : us ‘wo oar | Data hold ime c : : ws toc.oar | Cate set uptime of us ‘guste | Setup ime for STOP stans : : us ‘Tabeta 3 - Valores temporais para a comunicagéo I2C da cimara, Este protocolo foi implementado no projecto, para ser possivel transmitir uma imagem a preto ¢ branco em modo entrelagado sendo necessério alterar 0 contedido do registo 28 do OV7620. Os médulos responsveis pela comunicag3o I2C com a camara, comand_i2c, i2c e clkdivS0, encontram-se na secgdo de Anexos deste relatério. O médulo ic, desenvolvido por Paulo Serra, recebe comandos através de um registo, ¢ um sinal de start. Quando detecta um flanco positivo no sinal de start, efectua a operagdo indicada pelo registo, que poderd ser enviar por 12C um sinal de start, stop, ou entio enviar ou receber dados. O registo que envia os comandos ou dados para o médulo I2C esté ligado ao médulo comand_i2c. A implementago do médulo propriamente dito segue uma arquitectura do tipo maquina de estados. Cujo funcionamento pode ser melhor compreendido observando o diagrama de fluxo seguinte: Carla Neves Gisela Costa Camara de Video Vigilancia @ 2006 Universidade do Porto 1 a % Ciencia. INovagao, FEUP fngentacs 2010 -35- ore, Fluxograma 2 Funcionamento do médulo ize. No teste da implementagio do protocolo 12C, verificou-se que apesar de © médulo estar validado para funcionamento 2 400kb/s e na datasheet da cdmara ser indicado que 0 componente suporta a comunicagdo a essa taxa, tal no acontece. E a comunicagdo com a OV7620 s6 consegue ser cefectuada se for utilizada uma taxa de cerca de 100kb/s, sendo portanto necesséria a existéncia de uum rel6gio que forneca essa temporizagao, 0 médulo cikdivS0 é responsavel por criar esse relégio a partir do rel6gio do sistema. Esta discrepancia poderd ser devida a qualquer elemento da placa C3188A que interfira com a taxa de comunicagao, ou entéo ao facto de a datasheet apresentada ser ‘uma versio preliminar, e a comunicagao a 400kb/s poderia estar prevista pela Omnivision, mas no ter chegado a ser implementada. Carla Neves Camara de Video Vigilancia @ 2006 Gisela Costa aN iversi 1 a 2%, Universidade do Porto Giencia.Inovagao Sh? FEUP agentes 2010 -36- 10.1.4 Codificagao JPEG da imagem Foi necessério efectuar compressdo de imagem para permitir uma maior taxa de transmissdo. Esta fase do trabalho exigiu bastante esforgo e dedicagdo pois foi necessério efectuar uma pesquisa em relagdo a cada uma das fases deste processo. No entanto devido aos atrasos que decorreram da fase de transmissio de imagem via Ethernet, no foi possivel, até & data, testar plenamente a codificagio da imagem, Nos testes iniciais efectuados, usou-se “Lossy Image Compression”, pois esta compressio proporciona taxas de compressio mais elevadas do que “Lossless Image Compression”, por esta \de de usar 0 formato GIF, ou © formato PNG € optou-se pelo razio eliminou-se a possibi formato JPEG. Apesar de se perder algum contetido da imagem ao usar “Lossy Compression’ concluiu-se que este facto ndo seria perceptivel ao utilizador, pois para o olho humano as diferengas entre a imagem antes da compressdo e depois da compressio ndo sao distinguiveis. olho humano € muito mais sensivel ao detalhe da forma do que a informagao contida na cor, apesar da taxa de compressio de uma imagem a cores ser mais elevada do que a de uma imagem a preto e branco, optou-se por comprimir uma imagem a preto branco, pois como jé foi referido a finalidade deste projecto seria 0 uso em operagdes de vigilancia. Ao mesmo tempo, a aquisigéo da imagem a cores obrigaria compressio de 921600 bytes (640*480*24/8). Uma vez que fazendo a aquisigo da imagem a preto ¢ branco apenas € necessério comprimir 307200 bytes (640*480), concluiu-se que apesar de a taxa de compresso da imagem a cores ser mais elevada, a aquisi¢ao de ‘uma imagem a preto e branco proporciona a taxa de transmissdo mais elevada, pois € necessério tcansmitir menos informagio. ‘A compressio IPEG comega por converter o “array” dos dados original de duas dimensdes em trés “arrays” de 2 dimensoes, um “array” contém informagao de luminancia € os restantes dois t@m informagdo de crominancia. Cada um destes “arrays” é dividido numa grelha de duas dimensdes de 8 linhas e 8 pixeis obtendo um total de 64 valores por bloco. Estes “blocos” de 8*8 so a chave da codificagdo JPEG. Cada um dos valores destes blocos deve ser convertido & sua forma espectral, ou seja deve passar do dominio dos tempos para o dominio da frequéncia, esta conversao € efectuada via DCT (‘Discrete Cosine Transforme”). O préximo paso € 0 proceso de compressio denominado “Quantizagio”, neste processo € eliminada alguma da informagio contida na imagem, Carla Neves Camara de Video Vigilancia @ 2006 Gisela Costa Gs... Universidade do Porto Giencia INOvAGAO A? FEUP Baas 2010 -37- Como 0 olho humano & menos sensivel a “high harmonics” (“fine details") do que aos “low harmonics"(“coarse details”), logo estes podem ser representados com menos bits do que os “low harmonies”. Neste caso estamos a trabalhar com valores de 8 bits, os “lowest harmonics” sio representados por 8 bits ¢ os “highest harmonics” sio convertidos em valores de 4 bits. Para realizar esta operagio é apenas necessério dividir 0 valor original (de 8 bits) por 16, para tal basta realizar um shift do valor original. Para efectuar a descompressdo € necessério multiplicar valor obtido por 16, obtendo-se assim uma razoavel aproximagao do valor original. O “factor de {quantizago” pode variar entre 1 (ndo hé perda de informagao) e 128 (compresséo do valor para 1 bit). Este factor de quantizagao é diferente para cada um dos 64 coeficientes do bloco. E usada uma tabela de factores de quantizagao de 64 elementos, para atribuir os factores de quantizagio, esta tabela 6 aplicada a todos os blocos. Apés a conversio do sinal no dominio das frequéncias sua respectiva quantizagto, 0 algoritmo de compressfo JPEG, converte o resultado num “array” linear de uma dimensto (vector) de 64 valores. E efectuado um “scan” em “zig-zag”, este proceso coloca 105 valores por ordem crescente de frequéncia, como os valores de altas-frequéncias tém uma maior pprobabilidade de serem zero apds a quantizagio, os valores nulos so agrupados nas ditimas posigdes do vector. Desta forma podem-se eliminar estes sltimos valores dos vectores. pois sabemos que tm valor zero (lossless compression algorithm), Por fim é usada a tabela de Huffman para finalizar a compress4o da imagem. Neste caso efectuamos a compressio de uma imagem a preto e branco, que é equivalente a ‘comprimir apenas a componente “lumindncia”, Nesta fase foi usado um compressor JPEG iplementado em hardware, retirado do repositério OPENCORES em www.opencores.org, que 0 seu uso nio teria sido possivel sem um estudo pormenorizado, Como 0 compressor foi implementado numa placa virtex-2, utilizando IP Cores para essa FPGA, foi necessério gerar novamente todas as IP Cores no ISE para que este compressor funcionasse com 0 hardware da placa virtex-4, cédigo esté transcrito na secgio de Anexos deste relat6rio. Para uma methor percepeio do seu funcionamento apresenta-se 0 seguinte fluxograma que implementa © processo de compressiio acima descrito. Carla Neves Camara de Video Vigilancia @ 2006 Gisela Costa s Sy. i 1 5 Go, Universidade do Porto Ciencia. INovagao EL? PEUP eens: 2010 -38- Y Compreeion Butt | 16 ines 32 calmer CL Taba. RM th ant tates fr 2G Header tevebcr bel shit Process JPEG Binge 178 columns reat in charge oa he ops Tr Compression Baer | of eameression. B ings x76 cours Hunan Codes Fluxograma 3 - Compressor JPEG implementado em hardware. 10.2 Aquisigéio da imagem 10.2.1 Placa Orcad Para a interligag%o do médulo da camara com 0 “breakout module” foi necessério criar uma placa de circuito impresso. Para 0 seu desenvolvimento recorreu-se & ferramenta ORCAD, tendo como guia de trabalho o texto Formagao de Orcad de 2005, de Manuel Silva, aluno da FEUP com quem foi possivel esclarecer algumas diividas. O layout da placa desenvolvida pode ser observado na figura seguinte: Carla Neves Camara de Video Vigilancia @ 2006 Gisela Costa Ox i 5 aa Universidade do Porto Ciencia.Inoyagao “Gy FEUP bess 2010 -39- OULU A) REPT EPEEE ES Hustragdo 15 - Layout da placa, Apés 0 seu fabrico e soldadura dos componentes, vista inferior: Hustragdo 16 - Placa vista pela parte das soldaduras, ‘Uma vez conclufda a placa foi possivel fazer a atribuigao dos pinos da cAmara aos pinos do conector do “breakout module” e deste ao da FPGA. Segue-se uma tabela com essa atribuigao, Carla Neves Camara de Video Vi Gisela Cost ancia @ 2006 Universidade do Porto nn “) FEUP Eases 2010 -40- Tabela 4 - Atribuigio dos pinos da camara aos da FPGA. 10.2.2 Captura e envio de imagem Apés a familiarizagao com o Kit fpga, realizaram-se os primeiros testes. Foi efectuada a recep¢ao de uma imagem com a tampa da lente na camara, no entanto quando se tirou a tampa da lente © se captou uma nova imagem verificou-se a existéncia de falta de sincronismo além de perda de informagdo, Para detectar a causa das faltas, guardou-se na BRAM uma sequéncia de bytes formando um padrdo, uma vez que a imagem recebida no PC foi a Carla Neves Camara de Video Vigilancia @ 2006 Gisela Costa x oo Universidade do Porto Ciencia. Inovacao “ee FEUP pasts 2010 -41- esperada, verificou-se que a falha do sistema encontrava-se na aquisi¢io dos dados transmitidos pela camara e a0 mesmo tempo foi possivel confirmar 0 bom funcionamento do médulo de envio via RS232. A falta de sincronismo foi resolvida fazendo passar os sinais transmitidos pela cfimara, usados para controlar a aquisigaio dos dados, por dois flips-flops ou mesmo trés quando necessirio, desta forma foi corrigido o problema de metaestabilidade ¢ sincronismo. Em relagdo a perda de bits a0 longo de uma linha a solugdo encontrada foi predeterminar o enderego no qual se iria escrever no inicio de cada linha. O médulo captura é 0 responsavel pela captagdo e escrita de cada pixeVbyte na BRAM, 0 médulo read 1é os dados da BRAM e envia-os para 0 médulo suart encarregue da transmissio RS232, da autoria do Professor José Carlos Alves. Akém destes médulos foi necessério criar um IP Core de uma BRAM, Read/Write, WidthxDepth = 8 bits x 307200 e um médulo toplevel que instancia todos os médulos ¢ encarrega-se da sua interligagdo. Estes médulos podem ser encontrados na seegio de Anexos. Para ser possivel a verificagdo deste sistema optou-se pelo desenvolvimento de uma interface sgréfica capaz de efectuar a recepeio dos dados na porta série. Esta interface foi desenvolvida para ser capaz. de guardar 0s dados recebidos na porta série, e apresenté-los como um ficheiro de mapa de bits. Foram feitos alguns testes recorrendo a esta interface como meio de apresentagio da ‘imagem, tal como alterar 0 tamanho da imagem capturada para 320 por 240. Uma vez que a cimara transmite em modo entrelagado antes de ser configurada, ao capturar apenas os 320 por 240 obtinhamos uma imagem de um quadro com metade da resolugdo em altura e metade do tamanho total em largura, Outros testes foram feitos para a implementagdo das restantes partes do projecto, ‘mas sobre estes falaremos nas secgdes respectivas. ara terminar esta seccdo, resta apenas referir que para efectuar a transmissdo via cabo de rede foi usado um exemplo de um Servidor de Internet fornecido pela Xilinx juntamente com o kit, no entanto verificou-se que este exemplo nao era compativel com o hardware da placa. Desta forma foi necessério adaptar um exemplo de um Servidor de Internet disponfvel na pégina da AVNET que implementa 0 protocolo TCP/IP. Para interligar os médulos referidos nesta secgio com este Servidor e com a codificagio JPEG foram feitas algumas alteragBes no respectivo cédigo deixando de ser usado 0 médulo usart © © médulo read foi substituido pelo médulo controll que passou a implementar nao $6 a leitura da BRAM, mas também o envio para a FIFO. Esta FIFO é um IP Core que esté interligado com o barramento OPB para implementacdo no MicroBlaze. Carla Neves Camara de Video Vigi Gisela Costa v Pes. Universidade do Porto Genin. Novaga FEUP tntentaris 2010 -42- 10.2.3 Desenvolvimento da Interface grafica Desenvolveu-se uma interface grifica em Delphi capaz de receber os dados enviados pela porta série a uma cadéncia de 115200 bits por segundo, O niimero de bytes a receber & 921600 (640*480*24/8), uma ver que a imagem que se pretende receber tem uma resolugao de 640 por 480 pixcis ¢ uma resolugdo de cor de 24 bits, Efectuou-se a recepgao de uma imagem a preto e branco, pelos motivos apresentados na escolha do material, desta forma foi necessério alterar o nimero de bytes a receber para 307200 (640480). Como na imagem a preto € branco R=G=B € necessério escrever 0 mesmo byte em 3 pixeis consecutivos do ficheiro. Esta interface & responsavel por receber os bytes da porta série, o primeiro byte & guardado na posigdo 55 do ficheiro de mapa de bits (Image.bmp), os restantes bytes so guardados em posigdes consecutivas. Foram desenvolvidas 3 aplicagdes de teste no decorrer do processo de transmissio de imagem via RS: 2. No entanto, do ponto de vista da utilizago nao existem alteragées entre as diferentes aplicagées. Uma vez que 0 modo de configuragdo “default” da cdmara € 0 modo entrelagado de 8 bits, foi necessério desenvolver uma interface que permite receber os bytes da porta série e guardé-los num ficheiro bmp. Esta aplicago é responsdvel por apresentar uma imagem de 640 pixeis de largura ¢ 4480 pixeis de altura, uma vez que a imagem captada pela camara no seu modo “default” tem estas ieber os dados enviados pela cimara no modo entrelagado de 8 bits, obtemos dimensdes. Ao duas imagens consecutivas que contém informagao relativa a apenas uma frame. Para visualizar a imagem correctamente foi necessério desenvolver uma aplicagiio que apds receber os bytes da porta série, interlaga as linhas da primeira metade do frame com as linhas da segunda metade do frame, Desta forma obtém-se a imagem apresentada na figura seguinte. Carla Neves Camara de Video Vigilancia @ 2006 Gisela Costa d i iversi - aaa iversicide: so Forts Ciéncia.Inovagao Ly FEUP Bi: 2010 -43- Tuustragiio 17 - Aplicagio desenvolvida em funcionamento. Foi necessério criar uma nova aplicago capaz. de receber os bytes da porta série e apresenté-los sob a forma de um mapa de bits de dimengdes 320 por 240. Desta forma diminui-se o tempo de transmissio de imagem para cerca de um quart. Guia de funcionamento da aplicacio > Para efectuar a aquisigao de uma imagem, deve premir 0 botio SW4 do Kit Virtex-4 da Xilinx; > Abrir o executdvel do programa; > Seleccionar a porta COMx onde pretende efectuar a recepgio dos dados, verificar 0 contetido da etiqueta ConfirmeSelection, para confirmar que a escolha da porta COM foi efectuada com sucesso; o Premir OpenComX e verificar o conteiido da etiqueta ConfirmeOpenComX, que indica que a abertura da porta COMx foi efectuada com sucesso. Deve também verificar 0 contetido da etiqueta ConfirmeConfiguration que indica que a configuragio da porta COMx foi alterada com sucesso. Carla Neves “Amara de Video Vigildncia @ 2006 Gisela Costa F., Universi ‘ . oe Universidade /do Eorta) Gencia.Inovagao FEUP Engensans 2010 -44- > Premir ReadFromComX ; v Imediatamente apés premir ReadFromComX deve alterar 0 botio 1 do Kit Virtex-4 da Xilinx para iniciar a transmissdo da imagem guardada na BRAM; > Cerca de vinte segundos apés o inicio da transmissdo de imagem deve surgir uma etiqueta com a seguinte informa 0: Actualize image”, deve verificar se a etiqueta ConfirmeReceiveData, indica que a transmissao foi efectuada com sucesso; > Premir Actualizelmage e seleccionar Image.bmp 10.3 Implementagio do Servidor de Internet Foi necessério efectuar um estudo aprofundado deste servidor de Internet para proceder com alteragées no cédigo do mesmo. Inicialmente efectuaram-se os seguintes comandos para testar a pagina Web fornecida pela AVNET: > Configurar o enderego IP em: Painel de Controlo> Ligagdes de Rede> TCP/IP (protocolo Internet) para: 192.168.1.40 e a mascara de sub rede para: 255.255.0.0. Guardar LX60_Web_Server_Design no c: Abrir system.xmp_ Software> Build All User Applications Device Configuration> Update Bitstream Iniciar> Programas> Xilinx ISE 8.1i> Accessories> Impact, vvvvvy Usando este Software programou-se a placa com o ficheiro.bit © c:>LX60_Web_Server_Design > Implementation > download.bit Debug > Launch XMD > Abrir 0 URL: http://192.168.1.105:8080/, onde 192.168.1.105 & o enderego IP da placa v Verificou-se 0 correcto funcionamento da pagina Web apresentada, Posteriormente optou-se por transmitir uma imagem de 28 por 18 pixeis. Foi necessario converter um ficheiro de mapa de bits em cédigo hexadecimal, para este efeito foi usado 0 cédigo seguinte: main(int arge,char *argv[]) if (arge==3) ( Carla Neves Camara de Video Vigilancia @ 2006 Gisela Costa 2. Universi : _«P}., Universidade do Porto Geniadnovagio FEUP Etgenharis 2010 -45- while (! feof (£)) printf ("8d,",fgetc(£)) , printee"ii"): felose(f); Jelse( | /iprintt("Usage: \“conv\" \">\" "); ) Quando a linha de cédigo: “conv image-bmp bmp_image> bmp.h” é executada, cria o header bmp.h que contém o array bmp_image. Este header foi adicionado ao projecto e com a informagio deste header criou-se o ficheiro image.bmp na fungo void create_index (void) em web.c, usando as fungdes do Sistema de Ficheiros de meméria (LibXil Memory File System - MFS) disponibilizado pelo EDK. At ( (24 = motile open ("image bmp", MPS_MODECREATE)) == -1) | 2 ereate\r\ exten Af ( (emp = nfs_file wri bp, sizeof (inage_bep))) xit_peinte(teant © inage\e\n") exit (Ls Carla Neves Camara de Video Vigilancia @ 2006 Gisela Costa x <2, Universidade do Porto Ciencia Inovagao 2) FEUP estes 2010 -46- Este ficheiro € posteriormente enviado via cabo de rede. Uma vez que os pacotes do protocolo TCPAP tém uma capacidade maxima de 1500 bytes, esta imagem de 28 por 18 pixeis tem a dimengio de 1350bytes (24*18*3+54) ¢ 0 header que identifica a informagdo enviada como um ‘mapa de bits tem a dimensZo de 70 bytes, logo € possivel enviar toda a informagao relativa a esta imagem num pacote. Para este efeito utilizaram-se as seguintes linhas de cédigo, em void do_proc_req (int n} unsigned char bmp_hdr{] = "RTTP/1.1 200 OK\r\nContent~length: 921659\nContent-type: image/bmp\r\n\r\n"; else if (strcmp (fname, "image.bmp")==0) ( xil_print£ ("IMAGE O\r\n"); memepy(sndptr, bmp_hdr, strlen (bmp_hdr)) memepy(sndptr+strlen(bmp_hdr), image_bmp, sizeof (image_bmp)) ; A 5 send (web_conns[n}-s, sendbut, strlen (bmp_hdr) +sizeof {image_bmp) ); xil_printé ("image sent\n\r"); pos verificar a transmissio desta imagem via Ethernet, optou-se por implementar 0 hardware do sistema nesta aplicagio, comecou por se implementar um sistema capaz de acender 0 led6 (na placa) ¢ escrever na fifo o valor FFAAFFAA sempre que & premido 0 botio SW4, Para este efeito foi necessério efectuar estes comandos: > Hardware > Create or Import Peripheral > Create templates for a new peripheral > To an XPS project > Name: fifo > On-chip Peripheral Bus(OPB) > Select FIFO > Select Include Read FIFO; c:> LX60_Web_Server_Design> pcores> fifo_v1_00_a> devi> projnay> fifo.ise vv Adicionou-se ao projecto 0 médulo teste.v; oS Adicionaram-se todas as portas de entrada e safda do médulo a fifo.vhd; v Adicionaram-se todas as portas de entrada e safda a © c> LX60_Web_Server_Design> pcores> fifo_v1_00_a> data> fifo_v2_1_0.mpd: Carla Neves Camara de Video Vigilancia @ 2006 Gisela Costa Univers sadeiao bore Ciencia. Inovacao * FEUP thgentsris 2010 -47- PORT sw4 DIR PORT led? = "*, DIR = 0 ° FORT ledé = "", DIR = - _ > Para adicionar o médulo teste.v foi necessério inserir em ¢:> LX60_Web_Server_Design> pcores> fifo_v1_00_a> data> fifo_v2_1_0.pao, a seguinte linha de cédigo: (© ib fifo_v1_00_a teste verilog; > 0 projecto fifo.ise foi sintetizado e detectados todos os erros; > No XPS em Project Information Area> IP catalog> Project Repository seleccionou-se fifo_0 € adicionou-se 0 projecto a Filters> Bus interface (estabeleceu-se a ligagdo entre 0 OPB e SOPB de fifo_0); > Adicionou-se a Filters> Ports todas as portas externas Adicionou-se a Filters> Addresses 0 enderego base da fifo, este enderego no deve rovocar conflitos com os restantes enderegamentos (0x78c00000). Em web. foi necessério efectuar a aquisigdo do valor escrito na fifo: volatile Xuint32 taddress = (xuint32*) 0x78. 200; xil_printé("fifo: $x\r\n", taddress) ; Premindo sw4 verificou-se que o ledé efectivamente acendeu e foi enviado para a porta COMx 0 valor FFAAFFAA escrito na FIFO. Desta forma, efectuaram-se os mesmos passos para imptementar 0 e6digo de aquisigao de imagem no XPS, este cédigo foi previamente testado usando a imerface gréfica produzida no Delphi. Durante a implementagdo deste servidor de internet verificou-se que existiam limitagies a nivel das dimensdes dos ficheiros a transmitir, uma vez que a nivel do protocolo TCPAP o servidor no atende pedidos efectuados, separados por um curto intervalo de tempo, Optou-se por se enviar uma imagem bmp de 24 por 18 pixeis, esta imagem & ampliada ¢ desta forma é possfvel visualizar a existéncia de movimento, pois é efectuada a actualizagao da imagem de 1 em 1 segundo, Em web. foi necessério adicionar 0 cédigo de aquisigao de dados da fifo e posterior eriagio do ficheiro a ser apresentado: Carla Neves Camara de Video Vigilancia @ 2006 Gisela Costa ‘ Universidade do Porto wiatnovagdo Ge? FEUP ass 2010 -48- else if (stromp (fname, "image bmp") ==0) ( xil_printé ("IMAGE teste\r\n"); Af ( (Amag = m£s_£ile_open("image.bmp", MPS_MODE_READ)) == -1) { xil_printé ("image cant open for write image test\r\a"); exit (“LI ) fileLength2 = mfs_file_lseek(imag, 0, MPS_SEEK_END); xil_peint#("filelength2: $@\n\z", £ileLength2); Af ( (tmp? = mfs_file_read(imag, buf_imag_read, fileLength2)) == 0) xil_printé ("cant read from image\r\n"); exit(-D7 > 867i ++) byte [i] **address; buf_imag_read Ik) =byte lily +1; buf_imag_cead[k) byte (il; kektl; buf_imag_read [k]=byte (il; kek+l; ) xil_printé ("bytel:4x\r\n", byte (1300]); xil_printé ("buf_imag_read: %x\r\n", buf_imag_read{1300]); més_file_close (imag); memopy(snéptr, bmp_hdr, strlen(bmp_hdr)); menepy (sndptr+strlen(bmp_hdr), buf_imag_read, sizeof (but_imag_read)); num = xilsock_send(web_conns[n].s, sendbuf, strlen (bmp_ndr)+ Carla Neves Camara de Video Vigilancia @ 2006 Gisela Costa 7)... Universidade do Porto 5k & Genciadnovacaio FEUP tngentisrs 2010 -49- sizeof (buf_imag_read)}; imag_read: td\n\r", xil_printé ("size of bul eof (buf_imag_read) }; xil_printé ("image sent\n\r"); b Devido as reduzidas dimensdes da imagem bmp apresentada, foi necessério implementa um codificador JPEG. O procedimento de apresentago da imagem JPEG ¢ equivalente apresentagio da imagem BMP, as tinicas diferengas residem no facto de se guardar a imagem a partir do primeiro byte do ficheiro e nio ser necessério efectuar a replicagao dos bytes recebidos. Verificou- se que é possivel apresentar na pagina de internet uma imagem de 32 por 32 pixeis. Em web.¢ foi necessério adicionar o seguinte cédigo: else if(strcmp(fname, "inagel. jpa" mencpy(sndptr, jpg_hde, strlen(jpg_hdr)); menepy(sndptr+strlen(jpg_hdr), imace_jpg3, sizeof (image_ipo3))+ On xil_printé ("IMAGE 1\r\n"); nun xilsock_send(web_conns(n] .s, sendbuf, strlen (jpg_hdr) +sizeof (image_jpg3)); xil_ps ("image sent\n\r"); Na pigina de Internet ilustrada abaixo é possivel verificar a apresentagdo de uma fracgfio da imagem captada pela cdmara, Esta imagem tem as dimengdes de 24x18 pixeis e foi aumentado 0 seu tamanho recorrendo & diminuigao da resolugao da imagem em software. De momento esté a ser efectuada a diminuigao da resolugao da imagem em hardware, pois desta forma seré possfvel observar uma imagem mais perceptivel, uma vez que serd apresentado um maior campo de visio. Carla Neves Camara de Video Vigilancia @ 2006 Gisela Costa A _Universidade do Porto OO Ciencia. Inovagao \@Y FEUP Etgenneris 2010 -50- $b 80D imine lustragdo 18 - Pagina de internet. ‘A imagem JPEG que se espera vir a encontrar tem as dimensdes de 32x32 pixeis, na ilustrago abaixo apresentada, pode-se verificar no inicio da pagina a apresentagio de 4 imagens. Devido a atrasos na implementagio do cédigo de servidor de Internet no foi possfvel apresentar os testes resultantes da compresséo da imagem JPEG. Portanto a apresentagdo desta imagem esté dependente de alguns testes que se encontram em desenvolvimento. As restantes funcionalidades do servidor de Internet permitem acender os 4 leds do kit correspondentes a um valor inserido em hexadecimal. Apés premir um ou vérios “switchs” pode verificar 0 valor em binério correspondente ao “switch” premido, Carla Neves Camara de Video Vigilancia @ 2006 Gisela Costa M PGS» Universidade do Porto Gitncia.Jnovagio BY FEUP Etgenhens 2010 -51- Tlustragdo 19 - Pégina Internet com imagem em JPEG. Carla Neves Camara de Video Vigilincia @ 2006 Gisela Costa ‘ <7, Universidade do Porto Ciencia. Inovagao 2h) FEUP Beate: 2010 -52- 11 Conclusaio Todos os objectivos propostos a nivel de hardware foram cumpridos uma vez que foi possivel apresentar na interface gréfica implementada uma imagem de 640x480 pixeis com atraso de 26 segundos. Uma vez que 0 projecto foi desenvolvido em hardware foi necessério ultrapassar grandes dificuldades a nivel de rufdos, de faltas de sincronismo, de auséncia ou escassez de informagao nas folhas de caracteristicas do material utilizado, entre outros aspectos em que a pritica difere da tworia. Apesar de todo 0 esforgo e tempo entregue a esta parte do projecto, consideramos que foi atingido o principal objectivo do mesmo uma vez que aquisigao e apresentagao de uma imagem foram conseguidas com sucesso. Os médulos desenvolvidos nesta primeira fase poderio ser utilizados em futuras implementagdes que utilizem imagem, Apés ultrapassar esta fase, implementou-se um servidor de Internet capaz de apresentar numa pagina de Intemet uma imagem captada pela cimara. Desta forma concluimos que esta fase teve ‘um resultado bastante satisfatério uma vez que foram ultrapassadas as principais dificuldades de implementagdo. O protocolo TCP/IP usado neste servidor foi desenvolvido pela Avnet utilizando as livrarias da Xilinx que possuem limitagGes muito restritivas ao seu uso, por consequente ndo foi possivel alcangar os objectivos iniciais relativos & apresentagao de uma imagem com as dimensdes € a uma taxa de transmissio desejados. Uma vez que cada pacote enviado tem a capacidade de 1514 bytes, e as livrarias da Xilinx nfo permitem que o servidor responda a sucessivos envios de pacotes num curto intervalo de tempo, ndo é possivel a apresentagio de imagens com ocupagio superior a 1500bytes, 0 que corresponde a uma imagem de 24x18 pixeis em bmp. Dado que a codificagao da imagem em JPEG se encontrava em desenvolvimento e possibilita para ‘© mesmo tamanho a apresentagao de imagens de dimensdes superiores. Foi testada a apresentagao na pagina de uma imagem em JPEG de 32x32 pixeis, 0 que corresponde a um aumento da érea visivel da imagem de 58%. A resolugdo da imagem captada pela cimara foi reduzida para ser possfvel a apresentagdo de uma imagem mais perceptivel ¢ desta forma aumentar a qualidade do sistema, Durante a implementagao deste projecto foram encontrados muitos imprevistos que foram ultrapassados, com estes imprevistos surgiu constantemente a necessidade de implementar novas solugdes. Durante a duracdo deste projecto foi para nés um privilégio trabalhar com uma placa de Carla Neves Gisela Costa “Amara de Video Vigilancia @ 2006 “ om . 3, Universidade do Porto Gencia.Inovacao “2 PEUP Bases 2010 -53- tecnogia tio avancada como a XC4VL60-FF668 com uma FPGA Virtex-4. Esta placa possibilitou a implementagao de todo o hardware e software pretendido, verificaram-se apenas algumas limitagdes das livrarias do software a nivel da transmissdo da imagem via cabo de rede. Por estas razbes © muitas mais foi nec sirio ao longo de todo 0 projecto uma atitude de dinamismo ¢ constante dedicagio. Apds a conclusio do projecto atingiu-se uma fase de satisfagao por terem sido atingidos todos os requisitos de hardware ¢ de software, apesar de as taxas de transmissio € dimensdo da imagem a transmitir via Internet ndo serem as desejadas, o sentimento de satisfagao ‘mantém-se uma vez que foram resolvidos todos os restantes problemas. Carla Neves Camara de Video Vigilancia @ 2006 Gisela Costa ‘ Gis, Universidade do Porto Ciencia. Inovagio UR? FEUP ene 2010 -54- 12 Bibliografia DOUGLAS E. COMER, INTERNETWORKING with TCP/IP — Principles, Protocols, and Architectures, fourth edition, PHILIPS SEMICONDUCTORS, THE | 2C-BUS SPECIFICATION, Versio 2.1, Janeiro 2000 OMNIVISION, Advanced Information Preliminary OV7620/0V7120, Versio 2.1, Julho, 2001 BORLAND SOFTWARE CORPORATION, Developer's Guide, www.borland.com BORLAND SOFTWARE CORPORATION, Component Writer's Guide, www.borland.com MICROSOFT WINDOWS, Bitmap Format, http:/netghost.narod.ru/gff!vendspec/micbmp/bmp.ixt HAMILTON, ERIC, JPEG File Interchange Format, C-Cube Microsystems, Versio 1.02, Setembro, 1992 CCITT, THE INTERNATIONAL TELEGRAPH AND TELEPHONE CONSULTATIVE COMMITTEE, Terminal Equipment and Protocols for Telematic Services, T.81, 09/92 Xilix Virtex-4 Evaluation kit-User guide AvBus Breakout Mechanical guide SILVA, MANUEL, Formagio em OrCAD 2005, guia de referencia Entre outros guias, pdginas de Internet ¢ folhas de caracteristicas de componentes. Carla Neves Camara de Video Vigilancia @ 2006 Gisela Costa van

Você também pode gostar