Servidor de EPG (Eletronic Program Guide) para TV Digital implementado em FPGA

Tamanho: px
Começar a partir da página:

Download "Servidor de EPG (Eletronic Program Guide) para TV Digital implementado em FPGA"

Transcrição

1 UNIVERSIDADE POSITIVO NÚCLEO DE CIÊNCIAS EXATAS E TECNOLÓGICAS CURSO DE ENGENHARIA DA COMPUTAÇÃO DAVI MOREIRA NEVES JOSIAS BORTOLOTTO BIASIBETTI Servidor de EPG (Eletronic Program Guide) para TV Digital implementado em FPGA Trabalho de Conclusão de Curso Prof. Edson Pedro Ferlin Orientador Curitiba, Dezembro de 2010.

2 UNIVERSIDADE POSITIVO Reitor: Prof. José Pio Martins Pró-Reitor de Graduação: Prof. Renato Casagrande Diretor Acadêmico: Prof. Marcos José Tozzi Coordenador do Curso de Engenharia da Computação: Prof. Edson Pedro Ferlin 2

3 3 Agradecimentos Primeiramente a Deus por nos dar saúde e ajudar nos momentos difíceis passados desde que ingressamos na Universidade. Aos nossos familiares que suportaram nossa ausência em diversos momentos e muitas vezes quando estávamos juntos foram compreensíveis com nosso stress devido a atividades relacionadas a faculdade. A todos os nossos sinceros agradecimentos.

4 4 SUMÁRIO LISTA DE ABREVIATURAS E SIGLAS... 6 LISTA DE FIGURAS... 7 LISTA DE TABELAS... 8 RESUMO... 9 ABSTRACT INTRODUÇÃO Revisão Bibliográfica PLANEJAMENTO Composição dos Custos ESPECIFICAÇÃO DO SISTEMA Características do Sistema Requisitos do Sistema Arquitetura do Sistema Testes de Validação do Sistema DESENVOLVIMENTO DO SISTEMA Hardware Módulo Embarcado Módulo de Serialização Módulo DVB-ASI Conexão dos módulos (Barramento ISA)... 27

5 5 4.2 SOFTWARE Análise de Requisitos Desenvolvimento Firmware Protocolo de Comunicação IMPLEMENTAÇÃO RESULTADOS CONCLUSÃO Trabalhos Futuros REFERÊNCIAS ANEXO A ANEXO B ANEXO C ANEXO D ANEXO E ANEXO F ANEXO G ANEXO H ANEXO I

6 6 LISTA DE ABREVIATURAS E SIGLAS BNC British Naval Conector (Conector Britânico Naval) DVBASI Digital Video Broadcast ( Transmissão de Vídeo Digital) EIT Event Information Table (Tabela de Informações de Evento) Hz Hertz ISA Industrial Standard Architecture (Arquitetura de padrão industrial) PLL Phase-Locked Loop (Fase de Loop Fechado) FPGA Field Programmable Gate Array (Matriz de Campos Programáveis) SO Sistema Operacional VHDL Hardware Description Language (Linguagem de descrição de hardware) XML Extensible Markup Language ( Linguagem de Marcação Extensível) IEEE Institute of Electrical and Electronic Engineers (Instituto de Engenheiros Elétricos e Eletrônicos ) ABNT Associação Brasileira de Normas Técnicas GPIO General Purpose Input/Output (Entradas e saídas de proposito geral)

7 7 LISTA DE FIGURAS Figura 3.1: Visão geral da transmissão da TV Digital (FONTE:???) Figura 3.2: Diagrama em Blocos do Projeto Figura 4.1: Diagrama em blocos do Hardware Figura 4.2: Módulo Embarcado TS Figura 4.3: PLL e Porta And desenvolvidas no Modulo de serialização Figura 4.4: Bloco Controlador de Memória Figura 4.5: Simulação Controlador de Memória Figura 4.6:Bloco de Memória Figura 4.7: Simulação Funcionamento bloco de memória Figura4.8: BlocoControlador EPG DataMuX Figura 4.9: Gerador de Pacotes Vazios Figura 4.10: Simulação Gerador de Pacotes Nulos Figura 4.11: Bloco Driver DVBASI Figura 4.12: Simulação Driver DVB ASI Figura 4.13: Bloco Barramento ISA 8 bits Figura 4.14: Diagrama Básico do Gerador de Pacotes Figura 4.15: Tela Principal interface WEB Figura 4.16: Diagrama de Classes interface WEB Figura 4.17: Diagrama de Classes Biblioteca Principal Geração MPEG2TS Figura 4.18: Diagrama de Classes Biblioteca Principal Geração MPEG2TS (Cont.) 32 Figura 4.19: Fluxograma do Firmware (Módulo Embarcado) Figura 4.20: Layout do protocolo de comunicação Figura 5.1: Visão Geral da Implementação (1- Interface WEB de configuração. 2- Módulo Embarcado. 3- Módulo de Serialização. 4 Módulo DVB-ASI. 5 Dispositivo analisador de MPEG utilizado para testes) Figura 6.1: Pacote de dados Figura 6.2: Análise dos pacotes Figura 6.3: Taxa de transmissão dos pacotes de dados Figura 6.4: Taxa de transmissão dos pacotes de dados com preenchimento Figura 6.5: Forma de onda do sinal serializado... 39

8 8 LISTA DE TABELAS Tabela 2.1: Cronograma simplificado Tabela 2.2: Composição dos Custos Tabela 2.3: Resumo da Composição dos Custos Tabela 4.1: Funções dos pinos do Conector Tabela 4.2: Disposição dos bits nos registradores Tabela 4.3: Parâmetros controlados pelo TS Tabela 4.4: Endereço de memória base 7 e 8 bits... 22

9 9 RESUMO Há alguns anos difundiu-se em uma escala considerável a TV digital brasileira. De forma genérica um sistema de TV digital é dividido em três partes: um difusor, responsável, por prover a programação a ser transmitida e suportar a interações com os telespectadores, um receptor que recebe e exibe o conteúdo ao telespectador e permite a interação com o meio de difusão que é composto por canal de difusão e canal de retorno. Para transmitir o sinal digital de TV são necessários diversos equipamentos tais como multiplexador, servidor EPG (Electronic Program Guide), servidor de pacotes de áudio, servidor de pacotes de vídeo entre outros. Este projeto tem por objetivo implementar um servidor EPG, que é apenas uma parte de todo o processo de geração e transmissão do sinal digital. O equipamento desenvolvido tenha a finalidade de gerar pacotes MPEG2 Transport Stream contendo informações básicas sobre determinado programa tais como: horário de transmissão horário do término, classificação entre outros. Esses pacotes são disponibilizados em uma saída DVB ASI (Digital Video Broadcast - ASI) que os converte em sinal digital e torna disponível a uma possível conexão com um multiplexador de sinal digital. O equipamento desenvolvido utiliza tecnologia de lógica programável com dispositivo FPGA (Field Programmable Gate Array) Stratix II da Altera e trabalha em conjunto com um KIT que possui um processador ARM e faz o controle do fluxo e armazenamento das informações, neste projeto o KIT ARM recebe o nome Módulo Embarcado. O projeto utiliza a tecnologia de FPGA devido à importante característica de ser configurável, além disso, há neste componente, diversas outras vantagens tais como: baixo consumo de energia, alto desempenho. Outro motivo que deve ser considerado e que levou a utilização de FPGA foi o fato de tornar possível a criação e diversos componentes dentro de um único encapsulamento, o que traz uma possibilidade testes e homologação muito maior, além de possibilitar a redução no tamanho do equipamento. Palavras-Chave: Televisão Digital, Electronic Program Guide, Pacotes de vídeo.

10 10 ABSTRACT A few years spread to a considerable scale digital TV in Brazil. To transmit this signal are needed different equipment such as multiplexer, EPG server (Electronic Program Guide), audio packets server, video packages server among others. This project has as its main objective depicting the phases of a project for an EPG server that is only part of the whole process of generating and transmitting the digital signal. The developed equipment generates MPEG2 Transport Stream packets containing basic information about a particular program such as: hours of transmission time of termination, among other classification. These packages are available in a DVB ASI output which makes them available to a possible connection to a digital signal multiplexer. The equipment will be developed using FPGA technology from Altera and worked together with a module, purchased commercially, has named embedded system. We chose to develop the design using FPGA due to the important characteristic that has been reconfigurable, moreover, there is this component, several other advantages such as low power consumption, high performance. Another important reason that results to the use of FPGA is that it makes possible the creation and several components within a single package, which brings a chance to test much larger and approval, and could reduce the size of the equipament. Keywords: Digital TV, Electronic Program Guide, Video Packages.

11 11 1 INTRODUÇÃO O servidor de EPG (Electronic Program Guide) é um sistema responsável pela geração de informações adicionais inseridas no sistema de multiplexação de dados da televisão digital. Dentre estas informações estão: classificação, horário de exibição do programa, duração, gênero em que o programa se enquadra entre outros. Servidores de EPG necessitam de um hardware que gere uma saída em tempo real codificada, aonde os dados inseridos se alteram ao longo do tempo baseando-se nas informações do guia de programação. O guia de programação consiste em uma estrutura de dados que pode conter diversas redes, que na pratica são as redes de TV transmitidas, em cada rede podem existir diversos serviços, que seriam os segmentos de cada emissora que estão espalhados pelo país dentro de cada um dos serviços são definidos eventos (programas) e respectivas durações. Cada evento transporta diversas informações chamadas descritores, dentre elas: título classificação de idade do evento, gênero, idioma entre outros. O sistema desenvolvido é capaz de receber as informações do guia de programação por meio de uma interface com usuário que, neste caso, será um operador de TV digital. A interface é constituída de campos onde serão inseridos os descritores, os eventos (data e hora de inicio, hora do fim, duração entre outros). Os dados são codificados por meio de um algoritmo executado no Módulo Embarcado, e transmitidos para o Módulo de Serialização que tem uma saída com a informação no padrão MPEG2 Transport Stream (MPEG2 TS). O algoritmo foi desenvolvido baseando-se nas estruturas definidas pelas normas ABNT (Associação Brasileira de Normas Técnicas). A operação consiste em receber os dados inseridos na interface web, hospedada no Módulo Embarcado, montar os pacotes e, com o uso do barramento ISA (Industrial Standard Architecture) de 8bits enviá-los para o Módulo de Serialização. O Módulo Embarcado, adquirido comercialmente por questões de otimização e custo de desenvolvimento, é composto por um processador ARM utilizando para funcionamento o sistema operacional (SO) Linux distribuição Lenny. Dentro deste SO é processado o algoritmo de transmissão dos pacotes para o Módulo de Serialização. O Módulo de Serialização é onde serão armazenados os pacotes tem como um de seus principais componente a FPGA Stratix II da altera, é responsável pelo controle do fluxo de dados e o envio destes ao módulo DVB ASI (Digital Video Broadcast Asynchronous interface) (Fischer, 2008). O Módulo DVB ASI é responsável por receber os pacotes MPEG2 TS enviados pelo Módulo de Serialização converte-los para o padrão digital de vídeo. Sua saída é composta por dois conectores no BNC (British Naval Conector), que permitem altas taxas de transmissão de dados. Para homologação do projeto estas saídas são conectadas a um analisador de MPEG da marca DIGICAST comercialmente adquirido.

12 Revisão Bibliográfica O reconhecimento dos documentos técnicos, já editados, referentes ao tema do projeto demandou diversas etapas de trabalho. A busca foi dividida em dois grupos de documentos, primeiro as normas que definem o sistema de TV digital no Brasil, depois textos de auxilio para facilitar a compreensão das normas. Dentre as normas pesquisadas está a ABNT NBR15603 (ABNT, 2008), que descreve o sistema de informação da TV digital brasileira. Entre as definições descritas está a estruturas de dados das informações contidas nas tabelas de informações dos eventos (Event Information Table-EIT) bem como os próprios eventos e seus descritores. A ABNT NBR15603 (ABNT, 2008) faz várias citações às normas ETSI EN (ETSI, 2006) e ISO (ISO, 2000) as quais descrevem com mais detalhes algumas partes do sistema brasileiro de TV digital. Dentre os textos de auxilio há também o livro Digital Vídeo and Broadcasting Technology (FISCHER, 2008) que descreve com detalhe o sistema de codificação de MPEG2 Transport Stream e auxiliou para um melhor entendimento das normas usadas.

13 13 2 PLANEJAMENTO O projeto esta distribuído em diversas etapas, na Tabela 2.1 é exibido um resumo do cronograma de execução. Tabela 2.1: Cronograma simplificado Atividades Fev Mar Abr Mai Jun Jul Ago Set Out Nov Dez Entrega das propostas do TCC para avaliação pelo colegiado Entrega das especificações técnicas do TCC aprovado Entrega da etapa de projeto do TCC (no formato de monografia). Normas ABNT Linguagem VHDL Plataforma de Desenvolvimento Altera Plataforma do Sistema Embarcado Barramento de Comunicação Protocolo de Comunicação Porta DVB-ASI Entrega da monografia completa Hardware FPGA Desenvolvimento Codificação da FPGA Codificação do drive de dispositivo para comunicação dos módulos Codificação da Aplicação de Edição do Guia de Programação Confecção Prototipagem do Hardware Ajustes Finais no Projeto Entrega do artigo técnico completo Ajustes na Documentação Entrega da documentação completa Apresentaçãoaberta ao público Entrega Completa Do Projeto com A documentação em CD 2.1 Composição dos Custos No que diz respeito a software como o projeto envolve e utiliza diversos recursos da Altera foi utilizado o software Quartus II 9.1. Para a documentação foi utilizado o Microsoft Office instalado no sistema operacional Microsoft Windows 7. Como plataforma de desenvolvimento para a interface web do sistema foi utilizado o Visual Studio 2008, para auxiliar o controle de execução foi utilizado o Microsoft Project. No que diz respeito a Hardware foram utilizados os seguintes itens: KIT TS-7800, Osciloscópio, Nios II. A Tabela 2.2 apresenta os custos do Projeto.

14 14 Tabela 2.2: Composição dos Custos Orientador: Professor Edson Pedro Ferlin Mão-de-obra (RH) Gastos com Softwares Descrição Valor por Hora Total de Horas Trabalhadas Valor Total Direta R$ 30, R$ ,00 Do Professor Orientador R$ 63, R$ ,00 Do Coordenador do Curso R$ 109,00 80 R$ 8.720,00 Descrição Valor total da Mão-de-obra gasta com o projeto Valor do Software no Mercado Depreciação em meses R$ ,00 Horas Mês Valor por Hora Total de Horas Trabalhadas Valor Total Windows 7 Professional R$ 2.000, R$ 0, R$ 166,67 Visual Studio 2008 R$ 3.000, R$ 1, R$ 170,45 Quartus II 9.1 R$ 1.980, R$ 0,75 70 R$ 52,50 Project R$ 2.000, R$ 0, R$ 83,33 Valor total gasto com Softwares R$ 472,95 Gastos com Equipamentos e Insumos Gastos com Espaço físico Descrição Valor do Equipamento no Mercado Depreciação em meses Horas Mês Valor por Hora Total de Horas Trabalhadas Valor Total KIT embarcado TS-7800 R$ 830, R$ 0, R$ 69,17 Nios II Development Kit, Cyclone II Edition R$ 3.100, R$ 1, R$ 258,33 Notebook R$ 4.900, R$ 1, R$ 408,33 Fonte de alimentação simples R$ 670, R$ 0, R$ 55,83 Fonte de alimentação simétrica R$ 1.380, R$ 0, R$ 52,27 Multimetro Digital R$ 41, R$ 0, R$ 18,64 Simulador Proteus 7.1 ou superior R$ 3.000, R$ 1,14 50 R$ 56,82 Valor total gasto com equipamentos e Insumos R$ 850,23 Valor do espaço em m 2 Quantidade de m2 Quantidade de Meses Valor Total R$ 7,00 7,00 8 R$ 392,00 Valor total gasto com espaço R$ 392,00 Gastos com Documentação e Gastos Extras Valor Mensal Quantidade de Meses Valor Total R$ 19,00 8 R$ 152,00 R$ 100,00 1 R$ 100,00 Valor total gasto com Documentação e Gastos Extras R$ 252,00 Descrição Sub-total Percentual de Impostos Valor Total Impostos R$ 392,00 35,70% R$ 609,64 Impostos Impostos R$ ,18 35,70% R$ ,24 Tabela 2.3: Resumo da Composição dos Custos. Resumo de Gastos com o Projeto Descrição Total (R$) Mão-de-obra ,00 Licenças de Software e desenvolvimento 529,77 Equipamentos e Insumos 793,41 Espaço físico 392,00 Documentação e gastos extras 252,00 Custo estimado para Produção do Protótipo 1.000,00 Impostos Módulo Embarcado 392,00 TOTAL ,18

15 15 3 ESPECIFICAÇÃO DO SISTEMA O Servidor de EPG é um sistema para a geração de pacotes MPEG2 Transport Stream contendo as seções de informações de eventos (conteúdo da EIT). Uma interface simplificada permite acesso do usuário ao sistema tornando possível a inserção dos dados como: classificação, início, término e gênero do programa a ser exibido. Um algoritmo tratará os dados inseridos pelo usuário, baseando-se nas estruturas definidas pelas normas, monta os pacotes inserindo cada uma das informações alimentadas pelo operador de TV digital e armazenará no Módulo de Serialização. A saída de dados do Módulo de Serialização será constituída de uma porta serial no padrão DVB-ASI, controlada por meio de uma lógica implementada em um dispositivo FPGA altera. O Módulo de Serialização receberá os dados do Módulo Embarcado e os disponibilizará na saída DVB-ASI. Esses dados terão a maior constância possível, pode haver delay de transmissão e quebra de pacotes apenas na comunicação entre os módulos, Embarcado e de Serialização. Isso significa que ao enviar os dados para o Módulo de Serialização o algoritmo executado no Módulo Embarcado envia no inicio da transmissão um bit indicando que é o início de um pacote, ao gerar outro pacote o sistema reenvia esse bit indicando o inicio que os dados que estão sendo gerados pertencem a um novo pacote. Para a geração dos pacotes MPEG2 Transport Stream, foram usados apenas alguns dos descritores disponíveis na norma uma vez que apenas um dos descritores de eventos é obrigatório. Os descritores selecionados são os de classificação indicativa, de conteúdo, de componente de áudio, e há também o descritor de eventos curtos. A escolha de apenas alguns se deve às restrições de memória do Módulo de Serialização. Com o desenvolvimento bem sucedido desse equipamento é possível após melhorias e customizações inserir um Servidor de EPG no mercado nacional, uma vez que atualmente recorre-se a produtos importados que possuem alto custo financeiro que pode chegar a U$ ,00. Para ilustrar de forma mais clara a imagem da Figura 3.1, traz uma visão gerar de como é o funcionamento da TV digital. O conteúdo deste projeto refere se apenas a uma pequena parte destacada em vermelho, todos os outros itens da imagem seriam necessários para que os dados do servidor EPG chegasse ao equipamento de TV.

16 Figura 3.1: Visão geral da transmissão da TV Digital (FONTE: 16

17 17 O projeto constitui-se de interface que permite a entrada do conteúdo do pacote, o hardware foi implementado em FPGA utilizando lógica programável. Além disso, o sistema está pronto para suportar 48 horas de programação para cinco canais convertendo esses dados para o formato digital. A parte destacada na Figura 3.1 pode ser analisada observando-se a Figura 4.1 do capítulo de desenvolvimento do sistema. 3.1 Características do Sistema As principais características funcionais do sistema são: Software para a entrada de parâmetros para geração de dados; Geração de pacotes do EPG no padrão MPEG2 Transport Stream; Pacotes com no máximo dois dias de programação; Comunicação ISA 8bits entre Módulo Embarcado e de Serialização; Comunicação com 10 bits entre Módulo de Serialização e DVB ASI; Armazenamento de dados para até dois dias de programação; Pacotes MPEG2 de 188 bytes; Saídas no padrão DVB-ASI. (Fischer, 2008) 3.2 Requisitos do Sistema Os requisitos necessários para o funcionamento do sistema são: Alimentação VAC; Cabo com terminais do tipo BNC; Conexão ethernet 10/100/1000Mb; Cabo de rede ethernet com terminais RJ45; Cabo flat com 8vias para comunicação ISA; Cabo flat com 10 vias para comunicação entre Módulo de Serialização e DVBASI. 3.3 Arquitetura do Sistema O hardware do Servidor de EPG apresentado na Figura é constituído por dois blocos principais (Módulo Embarcado e Módulo de Serialização). O primeiro é o Módulo Embarcado que possui em seu hardware processador ARM9, memória flash para armazenamento do sistema operacional, portas de entrada e saída serial e de rede, bem como um barramento para comunicação de dados. O segundo bloco é o Módulo de Serialização, o qual possui um banco de memória capaz de armazenar um dado tempo de conteúdo do guia de programação. A comunicação externa é controlada pelo controlador de entrada e saída que é feita por meio de um barramento de comunicação. O controlador EPG é o responsável por manipular os dados e enviar os mesmo em partes para o Módulo DVB-ASI que faz a serialização. A Figura 3.2 apresenta o digrama simplificado do hardware do projeto.

18 18 Módulo Embarcado Módulo de Serialização Módulo DVB-ASI Computer Figura 3.2: Diagrama em Blocos do Projeto 3.4 Testes de Validação do Sistema A avaliação do sistema ocorre utilizando-se testes isolados que verificam as funcionalidades de cada um dos módulos pontualmente. O hardware é dividido em três blocos sendo esses, o Módulo Embarcado, Módulo de Serialização e Módulo DVB ASI. O Módulo Embarcado por ser uma plataforma comercial não necessita de testes, foram realizados testes apenas no barramento que faz a comunicação entre os módulos, Embarcado, de Serialização e DVB ASI. A FPGA teve sua lógica desenvolvida por meio de uma ferramenta de modelagem e síntese, portanto os testes e validações foram feitos por meio do simulador do Quartus II. A saída de dados seriais DVB-ASI é testada por um hardware externo, adquirido comercialmente, que faz a aquisição da saída a qual é transferida para um computador host onde, com auxilio de analisadores de arquivos hexadecimais ou do padrão EIT, é possível constatar a integridade dos dados inseridos pelo operador de TV digital, na interface de configuração.

19 19 4 DESENVOLVIMENTO DO SISTEMA Este capítulo descreve o sistema do servidor de EPG sob duas visões que se complementam e caminham juntas. 4.1 Hardware O projeto do hardware foi dividido em três blocos, Figura( Módulo Embarcado, Módulo de Serialização e Módulo DVB-ASI, como mostrados na Figura 4.1 Módulo de Testes Figura 4.1: Diagrama em blocos do Hardware

20 Módulo Embarcado O KIT TS-7800 foi adquirido da empresa System Technologies para servir como Módulo Embarcado. A escolha deste Módulo Embarcado foi baseada nas características do projeto que exigiam que o KIT possuísse um sistema operacional, interface de rede ethernet, memórias SD (Segurança Digital), portabilidade, por se tratar de um módulo relativamente pequeno, e um ambiente de desenvolvimento que permitisse depurar a aplicação WEB dentro do módulo. O Módulo Embarcado é composto de um processador ARM 9 operando a 500MHz e possui um baixo custo comercial quando analisado o quesito custo beneficio e também possui porta serial, interface de rede 10/100/1000 Mbit/s, barramento PC/104 (padrão ISA BUS). Por possuir o sistema operacional a plataforma Linux na sua distribuição Debian Lenny o Módulo Embarcado facilita o desenvolvimento das aplicações necessárias para este projeto. As características padrões do TS-7800 são: CPU ARM9 500MHz; Conector barramento PC/104; 128MBytes DDR-RAM; 512MBytes NAND Flash (17MB/s); 2 slots para cartão SD (1 micro-sd, 1 full-sd); 2 portas SATA; 2 portas USB Mbit/s; 1 Conexão ethernet, 10/100/1000; 5 Canais ADC 10-bit; 10 Portas seriais, 2 RS-485 opcionais; 110 Conexões GPIO (86 no Conector PC/104); Baixa potencia consumida (4W a 5V); Inicialização do Linux em menos de 2 segundos; Kernel 2.6 e Distribuição Lenny; Eclipse IDE out-of-the-box. O controlador principal dos periféricos de entrada e saída do Módulo Embarcado é constituído por um dispositivo FPGA proporcionando um barramento PCI interno de 50MHz. Na Figura 4.2 tem-se a foto da placa do Módulo Embarcado TS FPGA Figura 4.2: Módulo Embarcado TS-7800

21 21 A conexão entre os Módulos Embarcado e de Serialização ocorre por meio do barramento PC/104, que está disposto em quatro linhas de barramento, que estão rotuladas como A,B,C e D. A disposição dos pinos por ser vista Figura no ANEXO A. A configuração do conector PC/104 pode ter um ajuste fino. Este ajuste pode ser feito por meio de um par de pinos para obter quatro funções diferentes que são mostradas na Tabela 4.1. Tabela 4.1: Funções dos pinos do Conector Numero da Função Descrição 0 GPIO 1 ISA 2 Reservado 3 Reservado Após definir a função dos pares de pinos é possível escrever os bits nos registradores que correspondem às linhas do barramento em questão. A Tabela 4.2 mostra a posição dos bits em cada registrador do barramento. Cada linha representa o endereço da linha do barramento e cada célula nas colunas representam o valor do endereço do pino do barramento. Por exemplo, para definir as funções dos pinos B19 e B20, a indica que se deve usar os bits [19:18] do registrador de endereço 0xE Tabela 4.2: Disposição dos bits nos registradores Coluna registradores endereços \/ bits-> A B C D 0xE xE xE xE800003C Os detalhes sobre as conexões dos pinos estão descritas no ANEXO B. O Módulo Embarcado (TS-7800) prove um controle sobre alguns parâmetros do barramento PC/104, por meio de um registrador de endereço localizado em 0xE800000C, que são definidos na Tabela 4.3. Tabela 4.3: Parâmetros controlados pelo TS-7800 bit(s) 5-0 ISA strobe length 9-6 ISA setup length Função 10 Honor ISA 0WS/ENDX signal (1=true) 11 TS special ISA pinout enable (1=true) 12 ISA oscillator select 0 high-jitter approximation of Mhz

22 22 1 clean 25Mhz A ISA strobelength e a ISA setup length definem o número de períodos extras de 10ns. A ISA strobelength é a quantidade de tempo adicional para os sinais ISA_IOR, ISA_IOW, ISA_MEMR e ISA_MEMW. O mínimo que pode ser definido é 20ns. Ao ligar o sistema o valor padrão é definido 40, o que representa um strobelength de 420ns. Caso seja configurado para usar o sinal Honor ISA WS/ENDX o periférico ignora o tempo do strobe e finaliza a transação do barramento, fazendo com que o barramento aceite a conexão com dispositivos mais rápidos do que o padrão ISA aceita. O valor padrão para o setup length é 14, isso representa um tempo de 160ns. Ha um tempo de 20ns que é inserido no final do strobe para que o processo de leitura e escrita seja válido. A duração de um ciclo padrão do barramento é definida com setup (160ns), strobe (420ns) e hold (20ns) o que da um total de 500ns (2MHz). Isso é um mecanismo bem conservador para hardwares atuais, porem faz com que o barramento seja muito mais rápido. Para acessar os periféricos do barramento PC/104 é necessário adicionar o endereço base da Tabela para o deslocamento do periférico para obter um endereço de memória e acessar o periférico. Por exemplo, para ISA de 8bits 0x100 endereço E/S, adicione 0xEE de 0x100 para obter 0xEE000100, como mostrado na Tabela 4.4. Tabela 4.4: Endereço de memória base 7 e 8 bits Memória E/S 8-bit 0xEC xEE bit 0xED xEF Obs.: O módulo utiliza uma fonte de alimentação de 5V DC e 1A para trabalhar na frequência nominal de 500MHz. Tensões superiores 6V DC podem danificar o equipamento portanto devem ser evitadas Módulo de Serialização. O Módulo de Serialização foi implementado dentro do Kit de desenvolvimento FPGA Stratix II da Altera. Usando a linguagem VHDL foram desenvolvidos: o Ajuste do clock para 27 MHz, uma porta And, um controlador de memória, uma memória com capacidade para palavras de oito bits, um multiplexador de dados, um gerador de pacotes vazios, um Driver DVB ASI e um controlador ISA. Nesta seção serão descrito os blocos de controle Módulo de Serialização, será exibida uma descrição o bloco gerado no Quartus II, a imagem da simulação, bem como o código de implementado em VHDL. PLL- (Phase locked loop)-o clock fornecido pelos padrões de confecção do KIT Altera Stratix II, que foi utilizado para construir o Módulo de Serialização, é de 50 MHz. Para possibilitar a sincronização e troca de dados com o módulo DVB ASI, que possui clock de 27MHz foi desenvolvida utilizando-se da megafunction ALTPLL da Altera. Este componente que é responsável por receber o clock de 50 MHz e internamente mantendo em um loop reinjetando-o até reduzir o clock a 27MHz. Quando esse valor é atingido um flag de locked é ativado e por meio de uma porta And o sistema verifica se o Driver DVB ASI está com sinal de leitura habilitado como visto na Figura 4.4. Com o resultado desta operação ativa-se o sinal de Enable do DataMux descrito na Figura 4.9. (ETSI, 2006)

23 23 Figura 4.3: PLL e Porta And desenvolvidas no Modulo de serialização Controlador de Memória- A memória implementada, dentro do dispositivo FPGA, permite que seja realizada leitura e gravação em paralelo, apesar deste recurso não ser amplamente utilizado neste projeto, o controlador de memória foi projetado com um clock para escrita e outro para leitura que facilitou o interfaceamento com o Módulo Embarcado. A Figura 4.5 mostra sinteticamente o bloco do controlador de memória com os sinais de entradas situados à esquerda e os de saída à direita. Memory Controller read_ena write_ena data_in[7..0] read_clk write_clk rst data_ram_in[7..0] can_read data_ram_out[7..0] write_ram read_ram wr_addr[15..0] rd_addr[15..0] data_out[7..0] inst4 Figura 4.4: Bloco Controlador de Memória Escrita: O controlador verifica a ocorrência de um evento de clock de escrita e se o mesmo encontra-se em nível logico alto. Se isto confirmado, o dado que está sendo inserido no controlador por meio do barramento data_ram_in é escrito na memória por meio do barramento data_ram_out. A cada ciclo um endereço de referencia é incrementado armazenando o último endereço gravado eliminado possibilidades de erros na leitura. Estas ações são descritas nos código VHDL abaixo: if (write_ena = '1') then -- rotina de escrita write_ram<= '1'; wr_addr<= wr_addr_ref; data_ram_out<= data_in; wr_addr_ref<= wr_addr_ref + 1; --incrementar o enderço de memória addr_ref<= wr_addr_ref; --armazena a referencia do ultimo endereço gravado. Leitura: Paralelamente ao processo de escrita pode ser iniciada a rotina de leitura que fará a leitura de todos os endereços gravados. Isso ocorre disponibilizando-os no barramento data_out, até o endereço de leitura ser igual ao endereço de referencia, armazenado na rotina de escrita. Ao atingir este ponto a leitura é reiniciada a partir da posição 0 da memória. Essas operações estõa

24 24 descritas no código VHDL abaixo: if (read_ena = '1') then-- rotina de leitura rd_addr<= rd_addr_ref; rd_addr_ref<= rd_addr_ref + 1; read_ram<= '1'; data_out<= data_ram_in; Na Figura 4.5 é apresentada uma simulação da temporização do controlador de memória. Figura 4.5: Simulação Controlador de Memória Memória A memória tem capacidade de 64k palavras e permite leitura e escrita simultânea. Gerada a partir do Megacore do Quartus II é um ponto crucial do projeto. Caso não fosse possível realizar gravação e leitura de modo simultâneo seria necessário utilizar um mesmo clock para ambas as operações o que dificultaria o trabalho com essa implementação. Desta forma foi possível usar os clocks do Módulo Embarcado e Módulo de Serialização de forma independente para os processos de leitura e escrita. A Figura 4.7 mostra o bloco de memória utilizado contendo as entradas situadas à esquerda e a única saída à direita. Logo a seguir é exibida, na Figura 4.8, uma simulação da temporização e operação da memória. data[7..0] w raddress[15..0] w ren rdaddress[15..0] rden lpm_ram_dp Word(s) RAM q[7..0] w rclock rdclock Block Type: AUTO inst6 Figura 4.6:Bloco de Memória

25 25 Figura 4.7: Simulação Funcionamento bloco de memória Controlador EPG-DataMux O controlador EPG-DataMux tem como principal funcionalidade controlar a taxa de transmissão dos pacotes, com base no evento de clock verifica se o pacote a ser gerado deve ser vazio ou com dados válidos. Esse controle é necessário para que não ocorram problemas durante a leitura ou escrita dos dados, caso contrário podem ocorrer diferenças entre as taxas de transmissão do streaming de dados da EIT (Event Information Table) e um streaming de vídeo que podem causar distorção da informação. A Figura 4.8 apresenta o bloco do DataMux gerado no Quartus II com entradas dispostas do lado esquerdo e saídas do lado direito. DataMux clk rst enable mem_data[7..0] pcknull_data[7..0] clk_out is_v alid mem_rdena pcknull_ena data[7..0] rdy _to_read Parameter Value Type inst3 rate 5 Signed Integer Figura4.8: BlocoControlador EPG DataMuX As operações executadas pelo DataMux estão descritas no código VHDL abaixo: IF (byte_count /= 187) THEN mem_rdena <= '1'; ELSE mem_rdena <= '0'; END IF; IF ((mem_data = " ") OR byte_count > 0) THEN data <= mem_data; is_valid <= '1'; byte_count <= byte_count + 1; END IF; ELSE CASE (byte_count) IS WHEN 187 => mem_rdena <= '1'; pcknull_ena <= '0'; WHEN OTHERS => pcknull_ena <= '1'; END CASE; IF (byte_count /= 187) THEN pcknull_ena <= '1'; ELSE pcknull_ena <= '0'; END IF; IF ((pcknull_data = " ") OR byte_count > 0) THEN data <= pcknull_data; is_valid <= '1'; byte_count <= byte_count + 1;

26 26 NTSPG Gerador de Pacotes Vazios Responsável por gerar os pacotes vazios que fazem a redução da taxa de transmissão. Sua habilitação ocorre como o sinal lenght ligado a PKTSZ para definir o tamanho do pacote, o pcknull_ena do DataMux ligado a entrada BRATE (Byte Rate). A Figura 4.9 apresenta o bloco NTSPG gerado no Quartus II com entradas à esquerda e saíds à direita. NTSPG RESET CLOCK PKTSZ BRATE BCLK DVALID PSYNC DATA[7..0] inst1 Figura 4.9: Gerador de Pacotes Vazios As operações realizadas pelo NTSPG estão descritas no código VHDL abaixo: IF BRATE = '1' THEN BCLK <= '1'; IF pointer <= 187 THEN DVALID <= '1'; ELSE DVALID <= '0'; END IF; IF pointer = 0 THEN PSYNC <= '1'; ELSE PSYNC <= '0'; END IF; DATA <= nulltsp(conv_integer(pointer)); A Figura 4.11 mostra uma simulação de temporização e funcionamento do Gerador de Pacotes Nulos. Figura 4.10: Simulação Gerador de Pacotes Nulos Driver DVB ASI O módulo DVB ASI utiliza 15 ciclos de clocks para ativação de latches internos, por esse motivo foi desenvolvido em VHDL um dispositivo ao qual foi dado o nome Driver DVB ASI. O driver DVB ASI aguarda o fim destes ciclos para habilitar a transmissão dos Pacotes de dados. O driver DVB ASI também é responsável por analisar os 10 bits disponibilizados pelo Módulo de Serialização, o dado é disponibilizado na saída ts_data_out apenas quando for válido. Para isso são verificados os dois bits mais significativos, quando iguais a zero o dado contido na entrada data ts_data_in é válido e, consequentemente disponibilizado, caso contrário é descartado. A Figura 4.12 ilustra o bloco do Driver DVB ASI.

27 27 DVBASIDriv er clk_in is_v alid rst_in ts_data_in[7..0] ready clk_out rst_out ts_data_out[9..0] inst5 Figura 4.11: Bloco Driver DVBASI O código abaixo desenvolvido em VHDL demonstra o principio de funcionamento do dispositivode controle do DBV ASI: IF (enable = '0' AND count /= 15) THEN count <= count + 1; ready <= '0'; ELSE ready <= '1'; enable <= '1'; END IF; A Figura 4.13 demosntra uma simulação de funcionamento do Driver DVB ASI. Figura 4.12: Simulação Driver DVB ASI Módulo DVB-ASI Módulo conectado ao Módulo de Serialização recebe as informações em um barramento de 10 bits, dos quais 8bits, fazem a conversão para o padrão DVB-ASI. O Módulo DVB ASI possui uma característica muito importante que é o fato de necessitar que, após sua habilitação, transcorram 15 ciclos de clock utilizados para ativar latchs e outros periféricos, só após esse período torna-se estável e passa a disponibilizar os dados serializados. O diagrama esquemático é dado pelo ANEXO H. Os valores de componentes utilizados são sugeridos no guia de referência, disponibilizado pelo fabricante, do LMH0340, principal componente do módulo e podem ser consultados no ANEXO C Conexão dos módulos (Barramento ISA) A integração entre o Módulo Embarcado e o Módulo de Serialização é feita usando o barramento ISA 8 bits disponível no Módulo Embarcado. Como o módulo de Serialização foi desenvolvido dentro do de um dispositivo FPGA tornou-se necessário criar um bloco que controla a comunicação entre esses módulos. Como o módulo

28 28 embarcado possui barramento ISA 8 bits foi desenvolvido um protocolo de comunicação para barramento ISA de 8 bits cujo código VHDL pode ser visto no ANEXO D. A Figura 4.14 mostra o bloco gerado no Qartus II para este dispositivo com entradas à esquerda e saídas à direita. ISA8Slav e AEN IOR IOW ADDRESS[7..0] DATA[7..0] PORT_DATA_OUT[7..0] WRITE_ENA WRITE_CLK inst7 Figura 4.13: Bloco Barramento ISA 8 bits 4.2 SOFTWARE Neste capítulo são descritos os método de desenvolvimento, características e funcionamento da parte relacionada a software do sistema desenvolvido Análise de Requisitos Para que a interface web de configuração possa gerar as informações para o pacote MPEG de forma adequada, devem ser informados todos necessários como classificação: gênero, início, fim do programa, identificação da rede, multiplexador e serviço. Para isso a interface de usuário possui campos para receber todos esses parâmetros. É necessário utilizar uma estação de trabalho com DOT.NET Framework instalado. O software é de fácil utilização, com rotinas otimizadas para evitar que seja necessário utilizar um computador com configurações elevadas para o funcionamento Desenvolvimento Usando o ambiente de desenvolvimento do Visual Studio 2010 e as linguagens de programação C# e ASP.NET desenvolvemos uma aplicação para a entrada dos dados do guia de programação. O software foi dividido em três blocos, conforme o diagrama da Figura Interface ASP.NET Biblioteca de Auxílio Biblioteca Principal Figura 4.14: Diagrama Básico do Gerador de Pacotes O primeiro bloco do diagrama representa a interface desenvolvida para receber a entrada dos dados, e foi desenvolvido utilizando-se ASP.NET AJAX e C#. Na Figura 4.16 tem-se a tela principal da aplicação.

29 29 Figura 4.15: Tela Principal interface WEB A inclusão de dados na aplicação deve ter a seguinte ordem, rede, multiplexador, serviço, eventos e descritores. Caso exista uma rede diversos multiplexadores podem ser criados e assim sucessivamente, porém quando não houver nenhuma rede não é possível criar um multiplexador já que este é dependente da mesma, o mesmo se aplica aos outros itens lembrando que podem existir diversas redes com seus respectivos dependentes (Multiplex, Services). Os dados estão relacionados entre si, obedecendo aos requisitos da especificação do padrão de televisão digital para a criação do guia de programação. Cada evento cadastrado está relacionado a uma data e hora de inicio, duração e possui um conjunto de descritores que os definem. Os eventos devem ser únicos em uma data e hora específica para determinada rede, multiplexador e serviço. O diagrama de classe da Figura 4.17 mostra como os dados estão relacionados. Figura 4.16: Diagrama de Classes interface WEB

30 A classe EPG da biblioteca auxiliar tem a função de manipular os dados cadastrados, e possibilita que os dados possam ser carregados ou armazenados no padrão XML. Esta mesma classe possui a função de codificar os dados para o padrão MPEG2TS, o qual é usado para a transmissão. O XML gerado pode ser visto no ANEXO E. A codificação dos dados para o padrão MPEG2TS é feita usando a biblioteca principal, que possui toda a lógica de codificação. O método SaveTS implementado pela classe EPG faz uso da classe principal e codifica os dados, como se pode observar no ANEXO F. A biblioteca principal foi programada com toda a lógica de codificação do padrão MPEG2TS, fazendo com que os dados cadastrados e armazenados no XML sejam convertidos para o padrão descrito pelas normas de transmissão de vídeo digital. As Figuras 4.18 e 4.19 trazem o digrama de classes da biblioteca principal para geração do MPEG2TS. 30

31 Figura 4.17: Diagrama de Classes Biblioteca Principal Geração MPEG2TS 31

32 32 Figura 4.18: Diagrama de Classes Biblioteca Principal Geração MPEG2TS (Cont.) A classe Mux responsável por receber os objetos EIT gerados inserindo os o um a um e armazenando em um vetor de objetos EIT. Quando todos os objetos EIT estiverem inseridos no MUX é chamado o método start iniciando a codificação. O Mux por sua vez insere cada EIT no Encoder<T>. O T representa um tipo genérico utilizado para representar objeto do tipo EIT. Com isso o Encoder<EIT> extrai os dados do objeto em um vetor de bytes seguindo os padrões DVB e os insere em pacotes de dados nos padrões MPEG2TS. O Código desenvolvido em C#, que realiza a operação descrita, encontra-se no ANEXO G. A transmissão dos dados para a FPGA é feita por outro serviço, desenvolvido em C usando a plataforma de desenvolvimento do Kit embarcado, que é baseado na IDE Eclipse adaptada para o uso da programação em nesta linguagem. O bloco de código abaixo é usado para transmitir os dados armazenados no arquivo de transmissão que são gerados no software descrito acima cujo código encontra-se no ANEXO G. /* Carrega o arquivo no barramento */ intload_device(unsignedlongio_loc, FILE *bitstream) { int data; POKE_ISA(CONFIG_REG, 0xFF); /* Habilita a escrita na memória da FPGA. */ while ((data = fgetc(bitstream))!= EOF) { POKE_ISA(DATA_REG, data); //Envia o dado para o barramento

33 33 } POKE_ISA(CONFIG_REG, 0xFD); //Coloca o clock em nível lógico alto. } POKE_ISA(CONFIG_REG, 0xFE); /* Desabilita a escrita na memória da FPGA. */ /* Esta etapa é necessário para dasabilitar a escrita e gravar o último dado enviado */ POKE_ISA(CONFIG_REG, 0xFD); //Coloca o clock em nível lógico alto. return 0; As demais classes herdam boa parte dos métodos das classes EPG e MUX, a seguir um breve resumo do funcionamento de cada uma delas: Standard Descriptor: Classe base para as classes de descritores, apenas prove informações básicas comuns a todos os descritores. ShortEventDescriptor: Classe que representa a estrutura de dados do descritor de evento curto. ContentDescriptor: Classe que representa a estrutura do descritor de conteúdo. ExtendEventDescriptor: Classe que representa a estrutura de dados do descritor de evento estendido. ParentalRating: Classe que representa a estrutura de dados do descritos de classificação de conteúdo. PSIBase: Classe base para a tabela EIT que prove as informações básicas para a tabela EIT. EIT: Classe responsável pela codificação da EIT, retornando uma estrutura de dados com as informações da tabela EIT e seu descritores associados. Packet: Classe que representa a estrutura de dados de um pacote MPEG2, usado pelo Mux e Demux para a multiplexação ou demutiplexação dos dados MPEG2. Demux: Classe responsável pela demultiplexação dos dados e pelo envio dos pacotes ao decodificador correto. Decoder<T>: Classe genérica responsável pela decodificação dos dados MPEG2. O tipo T pode ser uma tabela do padrão MPEG2, que no caso deste sistema apenas utilizamos a EIT. Mux: Classe responsável pela multiplexação dos dados e pelo retorno dos pacotes codificados no padrão MPEG2. Encoder<T>: Classe genérica responsável pela codificação dos dados MPEG2. O tipo T pode ser uma tabela do padrão MPEG2, que no caso deste sistema apenas utilizamos a EIT. As demais classes são utilizadas como apoio nas operações e não possuem operações especificas. 4.3 Firmware O firmware (Software do Módulo Embarcado) responsável pelo controle do fluxo de dados no barramento ISA foi desenvolvido na linguagem VHDL utilizando a IDE Quartus II versão 9.1 da Altera. Sua principal função é ativar o device do Módulo Embarcado para enviar ou receber dados e esta operação é feita baseando-se no endereço de controle 0x3E0. A Figura 4.20 apresenta o fluxo básico do seu funcionamento.

34 34 Inicio Le o endereço enviado pelo sistema embarcado Verifica se o endereço enviado é = 0x3E0 Não Mantém a entrada e saída do barramento desabilitada Sim Habilita entrada e saída do barramento ISA 8 bits Aguarda evento de IOW( escrita) Não Habilitação de saída = 1 Sim Disponibiliza o dado na saída Fim Figura 4.19: Fluxograma do Firmware (Módulo Embarcado) 4.4 Protocolo de Comunicação Os 2 primeiros bytes enviados definem o endereço de memória inicial onde serão armazenados os dados no Módulo de Serialização. Os 2 bytes seguintes, que estão reservados para uso futuro, definem a configuração do Módulo de Serialização. A partir do sexto byte são enviados, de dois em dois bytes, os dados que serão armazenados na memória do Módulo de Serialização. Endereço Configuração Dados 2 bytes 2 bytes N Bytes Figura 4.20: Layout do protocolo de comunicação

35 35 5 IMPLEMENTAÇÃO O servidor EPG desenvolvido está dividido em três módulos que trabalham em conjunto. Uma Interface WEB hospedada no Módulo Embarcado recebe o conteúdo a ser inserido nos pacotes e armazena-os em um arquivo XML. Em seguida esses dados são convertidos para o formato MPEG2TS e transmitidos ao módulo de serialização onde os pacotes são gerados e, de forma serializada, enviados ao módulo DVB ASI que faz a conversão dos dados para o formato digital. Como o Módulo Embarcado e o de Serialização trabalham em frequências diferentes de 27MHz e 50MHz, respectivamente. Desta forma, foi desenvolvido um circuito controlador de clock para adequar o clock do Módulo Embarcado ao Módulo de Serialização. Devido ao fato de este projeto trabalhar apenas com cinco canais a capacidade da FPGA Stratix II acabou sendo subutilizada o que resultou em uma utilização de 2% de unidades lógicas e 1 % de memória. Diversos dispositivos do Módulo Embarcado e do Módulo de Serialização foram utilizados para comunicação do projeto. Entre os módulos utilizou-se o barramento PC104, a comunicação do computador do operador com o Módulo Embarcado foi feita pela conexão Ethernet, entre o Módulo de Serialização e o DVB-ASI fez-se uso de um conector de alto desempenho de transmissão conhecido como BNC (British Naval Connector). A Figura 5.1 mostra uma visão geral do projeto implementado.

36 36 Figura 5.1: Visão Geral da Implementação (1- Interface WEB de configuração. 2- Módulo Embarcado. 3- Módulo de Serialização. 4 Módulo DVB-ASI. 5 Dispositivo analisador de MPEG utilizado para testes) 5 c o m o o s d a d o s e s t ã o r e l a c i o n a d o s

37 37 6 RESULTADOS O sistema foi analisado sob a ótica dos três módulos (Módulo Embarcado, Módulo de Serialização, Módulo DVB-ASI) Módulo Embarcado: Inicialmente tem-se uma interface de entrada de dados para o sistema que fornece um parser XML capaz de codificar os dados, previamente inseridos pelo operador do sistema. É gerado um arquivo que contém os pacotes do guia de programação no formato MPEG2, sem um controle na taxa de transmissão do stream que é feita pelo Módulo de Serialização. Os pacotes produzidos na saída deste módulo possuem um tamanho fixo de 188 bytes e não incluem os pacotes de stuffing, que tem a finalidade de preencher o stream com dados vazios para o controle da taxa de transmissão. A Figura 6.1 representa um pacote de dados codificado em MPEG2. Figura 6.1: Pacote de dados

38 38 A Figura 6.2 representa os dados do mesmo pacote sendo analisados utilizando-se o software Stream Guru. Figura 6.2: Análise dos pacotes A taxa de transmissão de um arquivo MPEG2 puro, sem os pacotes de preenchimento vazios, ou stuffing packets, é muito mais baixa se comparada a um stream de transmissão completo. A Figura 6.3 nos mostra a taxa de transmissão deste arquivo MPEG2 gerado. Figura 6.3: Taxa de transmissão dos pacotes de dados Nessa figura tem-se que a taxa de transmissão do arquivo gerado é em torno de 5 Mbps e permite comparar a taxa deste stream gerado, com a taxa gerada pelo stream de saída do sistema. Módulo de Serialização: Recebe os pacotes do Módulo Embarcado e armazena em memória, fazendo a serialização dos dados ou seja, inserindo ao stream os pacotes de preenchimento (stuffing packets) para o controle da taxa do stream. Isto resulta em um stream de dados com uma taxa bem mais elevada. A Figura 5.4 mostra a taxa do stream de saída do sistema.

39 39 Figura 6.4: Taxa de transmissão dos pacotes de dados com preenchimento Analisando as Figuras 6.3 e 6.4 pode-se observar que a taxa dos dados do stream, depois da inserção dos pacotes de preenchimento, aumenta aproximadamente 10 vezes comparado com os dados sem os pacotes de preenchimento. Porém, isto é necessário para que se mantenha um fluxo constante de dados na saída do módulo DVB-ASI. Desta forma esses dados são ignorados quando inseridos na entrada de um multiplexador do sistema de televisão digital. Módulo DVB-ASI: Recebe o stream de dados do Módulo de Serialização produzindo uma saída serial digital. Os dados são transmitidos no canal físico a uma taxa de 216 Mbps nominal, porém a taxa atingida pelo sistema desenvolvido chegou ao máximo de 184 Mbps. Isso se dá devido a problemas de sincronização entre os blocos lógicos implementados no dispositivo FPGA. A análise do canal de transmissão DVB-ASI na saída do sistema produz uma forma de onda mostrada na Figura 6.5. Pode-se observar que são geradas formas de onda, onde ocorre um jitter de saída que é típico neste tipo de sistema de transmissão. Figura 6.5: Forma de onda do sinal serializado Neste canal de transmissão o sistema pode atingir uma taxa de 3Gbps, porem isso é limitado pelo padrão DVB-ASI que aceita taxas de no máximo 216 Mbps para transmissões dentro das normas estabelecidas pelo IEEE(Institute of Electrical and Electronics Engineers). Para trabalhar com cinco canais foram utilizado 25% da memória da FPGA e menos de 1% das unidades lógicas.

40 40 7 CONCLUSÃO O Servidor de EPG que foi proposto e desenvolvido é um equipamento capaz de receber informações do guia de programação, codificar e transmitir os dados nos padrões definidos pelas normas de televisão digital brasileira. Esse sistema prove uma interface com o usuário que recebe os dados do guia de programação. Um algoritmo de programação desenvolvido faz a codificação dos dados para o padrão MPEG2 Transport Stream que é serializado por meio de um sistema utilizando uma lógica de hardware implementada em uma FPGA capaz de inserir pacotes de preenchimento, ou seja, pacotes vazios no stream de dados para a manutenção da taxa de transmissão. Por fim, o sistema disponibiliza os dados em uma saída no padrão DVB-ASI fazendo a transmissão da informação. No que tange o projeto do servidor de guia de programação eletrônico, objeto de estudo da monografia, pode-se concluir que o sistema funcionou dentro dos resultados esperados serializando pacotes com 188 bytes, permitindo a gravação dos mesmos para análise e homologação do sistema, comunicação adequada entre os módulos através do padrão ISA 8 bits. O sistema trabalha com um limite de cinco canais de programação com até 48 horas de eventos de programação por canais. Os dados podem ser inseridos pelo operador diretamente no equipamento por meio de uma interface WEB sem que haja a necessidade de softwares instalados localmente no computador do operador. Com esse sistema foi possível atingir uma taxa de transmissão de 184 Mbps, o que indica 85% de eficiência da taxa de transmissão nominal do canal de comunicação, cujo à velocidade máxima é de 216 Mbps conforme o padrão DVB-ASI. Os problemas com perda de eficiência na transmissão são atribuídos ao alto sincronismo exigido entre os clocks internos dos blocos lógicos implementados no dispositivo FPGA. A não sincronização perfeita entre todos os blocos do Módulo de Serialização faz com que haja uma perda de 15% na taxa de transmissão. Entretanto, a saída do sistema é limitada a pacotes de 188 bytes e ao modo de transmissão em rajada. Isso faz com que o sistema envie 188 bytes e posteriormente um stuffing byte, ou seja, um byte de preenchimento indicando o fim do pacote. Os resultados obtidos nos permitem concluir que é completamente viável o desenvolvimento de um equipamento para a geração de um guia de programação para a Televisão Digital Brasileira. Não há necessidade de utilizar necessariamente Stratix II para implementar este projeto, o principal requisito é que a FPGA a ser utilizada possua memória de no mínimo 500KBytes.

41 Trabalhos Futuros No desenvolvimento deste trabalho observou-se que o sistema implementado pode ser melhorado, buscando viabilizar o projeto comercialmente ou mesmo agregando valor ao produto por meio de serviços embutidos ao produto. Com esse intuito podemos sugere-se as seguintes melhorias: Integrar ao projeto já desenvolvido um analisador de MPEG2 Transport Stream para inserir alguns dados no EPG automaticamente. Como o sistema necessita de um conjunto de informações como: rede, multiplex e serviço para a codificação dos dados, pode-se fazer um analisador baseado na entrada de um stream contendo as informações de programas de áudio e vídeo. Assim seria possível extrair os dados de rede, multiplex e serviço deste stream informando o mesmo automaticamente na interface WEB do sistema. Isso eliminaria a necessidade do operador inserir esses dados manualmente, diminuindo assim a possibilidade de erros. Criar um serviço provedor de informações de EPG que poderá prover os dados do guia de programação diretamente para os equipamentos. Esse serviço resultaria em um valor agregado ao produto. Comunicação do equipamento com provedores de informações existentes no mercado atualmente, estabelecendo-se padrões. Criar interfaces de entrada e saída MPEG2 Transport Stream para IPTV fazendo com que o sistema codifique os pacotes para esse padrão. Dessa forma, pode-se observar que existem inúmeras oportunidades para agregar valor ao projeto do Servidor de EPG, tornando esse um produto de valor agregado para o mercado nacional.

42 42 REFERÊNCIAS (ABNT, 2008) Associação Brasileira de Normas Técnicas (ABNT), ABNT NBR Televisão Digital Terrestre - Multiplexação e Serviços de Informação, Norma ABNT NBR 15603, Rio de Janeiro: ABNT, (ETSI, 2006) ETSI , European Telecommunications Standard Institute Version 1.7.1, ETSI EN Digital Video Broadcasting (DVB) Specification for Service Information (SI) in DVB systems, (IOS, 2000) International Organization for Standardization, ISO/IEC Information Technology-Generic Coding of Moving Pictures and Associated Audio Information: Systems, Second Edition, 2000 (FISCHER, 2008) Fischer, W. Digital Video and Audio Broadcasting Technology: A Practical Engineering Guide. 2 nd Edition. Local: Springer, (EC, 2001) PC/104 Embedded Consortium, PC/104 Specification, Version 2.4, August (SHANLEY, 1995) Tom Shanley, ISA System Architecture, 3rd Edition, MindShare, (CYPRESS, 2010) Cypress Semiconductor Corporation, Single-channel HOTLink II Transceiver, San Jose, Revised March 24, 2005, Disponível em: < acessado em jun./2010.

43 43 ANEXO A <Pinagem de comunicação módulo embarcado> (Texto Explicativo) D C A B O conector PC/104 pode ser usado com diferentes funcionalidades incluindo barramento ISA e modo GPIO (Genereal Purpose Input/Output). Para habilitar o barramento PC/104 para trabalhar com sinais de barramento ISA é necessário escrever os respectivos valores nos registradores a seguir: 0x55555 para o endereço 0xE800003C 0x55555 para o endereço 0xE x para o endereço 0xE x para o endereço 0xE

44 44 ANEXO B <Conectores PC 104> As conexões PC/104 são descritas nas tabelas a seguir. A coluna ISA traz o nome do sinal representado pelo pino. Conector de 64 pinos. Pin ISA pin ISA A1 IOCHK# B1 GND A2 D7 B2 RESET A3 D6 B3 +5V A4 D5 B4 IRQ9 A5 D4 B5 3.3V A6 D3 A7 D2 A8 D1 A9 D0 B6 DRQ2 B7 NC B8 ENDX# B9 8V_30V A10 IORDY B10 GND A11 AEN A12 A19 A13 A18 A14 A17 A15 A16 A16 A15 A17 A14 A18 A13 A19 A12 A20 A11 A21 A10 A22 A9 A23 A8 A24 A7 A25 A6 A26 A5 A27 A4 A28 A3 B11 MEMW# B12 MEMR# B13 IOW# B14 IOR# B15 DACK3# B16 DRQ3 B17 DACK1# B18 DRQ1 B19 RFRSH# B20 BCLK B21 IRQ7 B22 IRQ6 B23 IRQ5 B24 IRQ4 B25 IRQ3 B26 DACK2# B27 TC B28 BALE A29 A2 B29 +5V A30 A1 B30 OSC A31 A0 A32 GND B31 GND B32 ISA_B32 Conector de 40 pinos. Pin ISA pin ISA C0 GND C1 SBHE# C2 LA23 C3 LA22 C4 LA21 C5 LA20 C6 LA19 C7 LA18 D0 GND D1 MEM16# D2 IO16# D3 IRQ10 D4 IRQ11 D5 IRQ12 D6 IRQ15 D7 IRQ14 C8 LA17 D8 3.3V C9 MEMR# D9 DRQ0 C10 MEMW# D10 DACK5# C11 SD8 C12 SD9 C13 SD10 C14 SD11 C15 SD12 D11 DRQ5 D12 DACK6# D13 DRQ6 D14 DACK7# D15 DRQ7 C16 SD13 D16 +5V C17 SD14 C18 SD15 C19 GND D17 MASTER# D18 GND D19 GND

45 45 ANEXO C <Componentes módulo DVB ASI> O Quadro a seguir traz a relação de componentes utilizados na confecção do módulo DVB ASI. Componente Descrição Designação Quantidade Número de Referência CAP NP 0402 Cap,.1 uf, 16V, ceramic C YD333KAT2A 22uf 0805 Cap, 22 uf, 6.3V, ceramic C D226MAT2A 0,1uF Cap, 0.1 uf, 25V, ceramic C5, C6, C7, C9, C11, C12, C13, C14, C15, C16, C C104KAT2A 10uF Ceramic 0805 Cap, 10 uf, 6.3V, ceramic C8, C10 2 LT056D106MAT2X 4,7uF Cap, 4.7 uf, 6.3V, ceramic C1, C D475MAT2A LED LED, green, 30 ma, 0603 footprint D1 1 LTST-C190GKT LED BNC LED, red, 30 ma, 0603 footprint D2, D3 2 LTST-C190CKT Trompeter BNC edge launch connector used on LMH0344 EVK J1 1 QTE F-D- A J2 1 QTE F-D-A 5,6nH Inductor, 5.6 nh, L1 1 LQP15MN5N6B02D TST_CLK Header, 2-Pin P GPIO Header, 4-Pin P SMBUS Header, 5-Pin P Resistor, 75-ohms, R1, R2, R3, R4 4 RG1005P-750-B-T5 2,2K Resistor, 2.2 K ohms R7 1 CRCW04022K20FNKD 2,2K Resistor, 2.2 K ohms R9, R11, R12, R35, R36, R37 6 CRCW06032K20FKEA 0 Resistor, 0 ohms R5, R32, R33, R34 4 CRCW Z0EA 0 Resistor, 0 ohms, 0603 R10, R14, R16, R18 4 CRCW Z0EA 8,06K Resistor, 8.06K, 0603 R22 1 CRCW06038K06FKEA 0 Resistor, 0 ohms, 0603 R13, R15, R17 3 CRCW Z0EA 500 ohms Resistor, 0 ohms, 0402 R6 1 MCR01MZPJ000 Reset_Button SWITCH PB SPST MOM WITH PUSH PLATE SW1 1 EVQ-PLHSA15 LMH0040 LLP-48, SQA48A U1 1 M24C01-W IC SRL EEPROM 1KBIT 2.5V 8-SOIC U2 1 M24C01-WMN6T (1) Concluinte do Curso de Engenharia da Computação - (2) Concluinte do Curso de Engenharia da Computação - (3)Professor Orientador

46 46 ANEXO D < Código barramento isa > O código abaixo desenvolvido em VHDL, descreve o funcionamento do barramento ISA de 8 bits. Neste código estão as instruções de habilitação e controle de transmissão deste barramento. ARCHITECTURE ISA8 OF ISA8Slave IS SIGNAL CONFIG_IO, DATA_IO, RESET_IO: STD_LOGIC; SIGNAL PORT_DATA_IN : STD_LOGIC_VECTOR(7 DOWNTO 0); BEGIN -- AEN='0' precisa ser zero para ter certeza que não éuma ciclo de barramento DMA -- Liga o CONFIG_IO caso o endereço seja 0xE4 CONFIG_IO <= '1' WHEN ADDRESS = B" " AND AEN='0' ELSE '0'; -- Liga o RESET_IO caso o endereço seja 0xE5 RESET_IO <= '1' WHEN ADDRESS = B" " AND AEN='0' ELSE '0'; -- Liga o DATA_IO caso o endereço seja 0xE6 DATA_IO <= '1' WHEN ADDRESS = B" " AND AEN='0' ELSE '0'; ELSE ELSE -- I/O Porta de entrada - Apenas para usar buffers tri state PORT_DATA_IN <= " " WHEN ((ADDRESS = B" ") AND (IOR ='0')) ELSE " " WHEN ((ADDRESS = B" ") AND (IOR ='0') AND (WRITE_ENA = '1')) " " WHEN ((ADDRESS = B" ") AND (IOR ='0') AND (WRITE_ENA = '0')) "ZZZZZZZZ"; -- I/O Porta de saída - Salva os dados no registrador (DFFs) DATA <= PORT_DATA_IN; PROCESS (IOW) BEGIN -- Aguarda a borda positiva do clock do IOW IF(IOW'EVENT AND IOW='1') THEN -- Se for um sinal de CONFIG então podemos ter DATA igual: -- 0xFF -> Habilita a escrita na memória -- 0xFE -> Desabilita a escrita na memória -- 0xFD -> Define nível lógico alto no clock de escrita IF CONFIG_IO = '1' THEN CASE DATA IS WHEN " " => --0xFF PORT_DATA_OUT <= " "; WRITE_ENA <= '1'; WHEN " " => --0xFE WRITE_ENA <= '0'; WRITE_CLK <= '0'; PORT_DATA_OUT <= " "; WHEN " " => --0xFD WRITE_CLK <= '1'; WHEN OTHERS => NULL; END CASE; END IF; -- Se for um sinal de RESET então podemos ter DATA igual: -- 0xFF -> Reinicia todos os sinais para o estado inicial

47 47 END IF; END PROCESS; END ISA8; IF RESET_IO = '1' THEN CASE DATA IS WHEN " " => WRITE_CLK <= '0'; WRITE_ENA <= '0'; PORT_DATA_OUT <= " "; WHEN OTHERS => NULL; END CASE; END IF; -- Se for um sinal de DATA então: -- Salva o dado do barramento ISA no registrador IF (DATA_IO = '1' AND WRITE_ENA = '1') THEN PORT_DATA_OUT <= DATA; WRITE_CLK <= '0'; END IF; (1) Concluinte do Curso de Engenharia da Computação - (2) Concluinte do Curso de Engenharia da Computação - (3)Professor Orientador

48 48 ANEXO E <XML de armazenamento dados WEB> Abaixo está o código XML por meio do qual são armazenados os dados inseridos na interface WEB. Esses dados são tratados e codificados no padrão MPEG. <?xml version="1.0" encoding="utf-8"?> <EPG xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:xsd="http://www.w3.org/2001/xmlschema"> <Networks> <Network id="4159" name="redeglobo"> <Multiplexers> <Multiplex id="4160" name="curitba"> <Services> <Service id="4250" name="globo News"> <Events> <Event id="1200" starttime=" t20:00:00" durariton=" t20:30:00"> <Descriptors> <Descriptor xsi:type="contentdescriptor" ID="96172d38-69fd-48f0-a77f-3d3b74b03429" nibble1="1" nibble2="1" /> <Descriptorxsi:type="ShortEventDescriptor" ID="b6dbfbe d-b907-f0cc96a23a20" languagecode="por" eventname="jornal" text="jornal Última Hora" /> </Descriptors> </Event> <Event id="1201" starttime=" t20:30:00" durariton=" t22:00:00"> <Descriptors> <Descriptorxsi:type="ContentDescriptor" ID="ec796e7c-8bf3-4ebf-8f48-e3b7a " nibble1="1" nibble2="7" /> <Descriptorxsi:type="ShortEventDescriptor" ID="3d4eb146-0f74-4fa5-b3cf-35467b46a44f" languagecode="por" eventname="histórico" text="a história da nossa civilização." /> </Descriptors> </Event> </Events> </Service> </Multiplex> </Multiplexers> </Network> </Networks> </EPG>

49 49 ANEXO F <Codificação padrão MPEG2TS> O código abaixo desenvolvido em C#, é responsável pela aquisição dos dados do arquivo XML e converte-los para o padrão MPEG2TS para posteriormente inseri-los na tabela EIT. Muxmux = newmux(output); foreach (Network net in _networks) { foreach (Multiplexmplexinnet.Multiplexers) { foreach (Serviceservinmplex.Services) { bytesectionnumber = 0; foreach (Eventevtinserv.Events) { EITeit = neweit(); eit.tableid = 0x4F; eit.sectionsyntaxindicator = true; eit.reservedfutureuse = true; eit.reservedheader = 0x03; eit.reserved = 0x03; eit.originalnetworkid = (ushort)net.id; eit.transportstreamid = (ushort)mplex.id; eit.serviceid = (ushort)serv.id; eit.versionnumber = 0x01; eit.currentnextindicator = true; eit.sectionnumber = sectionnumber; eit.lastsectionnumber = (byte)(serv.events.count - 1); eit.lasttableid = 0x4F; EventInfoevtInfo = neweventinfo(); evtinfo.eventid = (ushort)evt.id; evtinfo.freecamode = false; evtinfo.runningstatus = 4; byte[] b = BitConverter.GetBytes(evtInfo.CalculateMJD(evt.StartTime.Year, evt.starttime.month, evt.starttime.day)); byte[] result = newbyte[8]; result[3] = b[1]; result[4] = b[0]; result[5] = (byte)int.parse(evt.starttime.hour.tostring(), System.Globalization.NumberStyles.HexNumber); result[6] = (byte)int.parse(evt.starttime.minute.tostring(), System.Globalization.NumberStyles.HexNumber); result[7] = (byte)int.parse(evt.starttime.second.tostring(), System.Globalization.NumberStyles.HexNumber); evtinfo.starttime = BitHelper.GetLong(result, 40, 0); (1) Concluinte do Curso de Engenharia da Computação - (2) Concluinte do Curso de Engenharia da Computação - (3)Professor Orientador

50 50 result = newbyte[4]; result[1] = (byte)int.parse(evt.endtime.hour.tostring(), System.Globalization.NumberStyles.HexNumber); result[2] = (byte)int.parse(evt.endtime.minute.tostring(), System.Globalization.NumberStyles.HexNumber); result[3] = (byte)int.parse(evt.endtime.second.tostring(), System.Globalization.NumberStyles.HexNumber); evtinfo.duration = BitHelper.GetInt(result, 24, 0); eit.events.add(evtinfo); foreach (Descriptordescinevt.Descriptors) { switch (desc.gettype().name) { case"contentdescriptor": JBB.MPEG2TS.Core.Tables.Descriptors.ContentDescriptorcDesc = newcore.tables.descriptors.contentdescriptor(); cdesc.descriptortag = 0x54; cdesc.contentnibblelevel1 = (byte)int.parse(((contentdescriptor)desc).nibble1.tostring(), System.Globalization.NumberStyles.HexNumber); cdesc.contentnibblelevel2 = (byte)int.parse(((contentdescriptor)desc).nibble2.tostring(), System.Globalization.NumberStyles.HexNumber); cdesc.usernibble1 = 0x00; cdesc.usernibble2 = 0x00; evtinfo.descriptors.add(cdesc); break; case"shorteventdescriptor": JBB.MPEG2TS.Core.Tables.Descriptors.ShortEventDescriptorsDesc = newcore.tables.descriptors.shorteventdescriptor(); sdesc.descriptortag = 0x4D; System.Text.Encodingascii = System.Text.Encoding.ASCII; Byte[] encodedbytes = ascii.getbytes(((shorteventdescriptor)desc).languagecode); byte[] buffer = newbyte[4]; buffer[3] = encodedbytes[2]; buffer[2] = encodedbytes[1]; buffer[1] = encodedbytes[0]; sdesc.iso639languagecode = BitHelper.GetInt(buffer, 24, 0); sdesc.eventname = ((ShortEventDescriptor)desc).EventName; sdesc.text = ((ShortEventDescriptor)desc).Text; evtinfo.descriptors.add(sdesc); break; } } mux.eit.add(eit); sectionnumber++; } } } } mux.start();

51 51 ANEXO G <Encoder e criação dos pacotes MPEG2TS> Este código foi desenvolvido em C# e é o responsável pelo empacotamento dos dados, que já foram convertidos para MPEG2TS, possibilitando a transmissão dos dados para o módulo de serialização. Encoder<EIT> encoder = newencoder<eit>(); foreach (vareitin _eit) { encoder.pushtable(eit); } foreach (var item inencoder.packets) { _output.writepacket(item.data); } Neste próximo bloco pode-se ver como o Encoder codifica os dados e cria os pacotes MPEG2TS: byte[] data = ((IPSIBase)table).Data; double temp = (double)data.length / 184; double r = Math.Truncate(temp); double f = temp - r; intamountofpackets = (f == 0.0)? (int)r : (int)r + 1; int index = 0; for (int i = 0; i <amountofpackets; i++) { Packetpacket = newpacket(packet.size._188); packet.pid = 0x12; packet.adaptationfieldcontrol = 0x01; packet.payloadunitstartinidicator = (i == 0)?true :false; packet.transportscramblingcontrol = 0x00; packet.transportpriority = false; packet.transporterrorindicator = false; packet.continuitycounter = _counter; (1) Concluinte do Curso de Engenharia da Computação - (2) Concluinte do Curso de Engenharia da Computação - (3)Professor Orientador

52 52 byte[] buffer = null; intstartbufferindex = 0; if (i!= amountofpackets - 1) { buffer = newbyte[184]; if (packet.payloadunitstartinidicator) { startbufferindex = 1; buffer[0] = 0x00; } else startbufferindex = 0; Array.Copy(data, index, buffer, startbufferindex, (buffer.length - startbufferindex)); index += buffer.length - startbufferindex; } else { buffer = newbyte[184]; Packet.InitializeBuffer(buffer); if (packet.payloadunitstartinidicator) { startbufferindex = 1; buffer[0] = 0x00; } else startbufferindex = 0; Array.Copy(data, index, buffer, startbufferindex, (data.length - index)); } packet.payload = buffer; if (_counter == 15) _counter = 0x00; else _counter++; _packets.add(packet); ANexo H<Diagrama esquemático módulo DVB ASI> Formatado: Inglês (Estados Unidos) A seguir está a imagem do diagrama esquemático do Módulo DVB ASI, que foi projetado. Contudo, a sua confecção terceirizada devido a restrições de manufatura da placa impostas pelo LMH0340 principal componente utilizado para a confecção do módulo.

53 (1) Concluinte do Curso de Engenharia da Computação - (2) Concluinte do Curso de Engenharia da Computação - (3)Professor Orientador 53

54 54 ANEXO H Servidor de EPG (Eletronic Program Guide) para TV Digital Implementado em FPGA Davi Moreira Neves (1), Josias Bortoloto Biasibetti(2), Edson Pedro Ferlin (3) Universidade Positivo Departamento de Engenharia da Computação Dezembro de 2010

55 55 RESUMO Neste trabalho é descrito o projeto de um servidor de guia de programação de TV digital implementado em FPGA. O sistema gera os pacotes de programação para o formato MPEG2 (Moving Picture Experts Group) e depois os disponibiliza em uma saída no padrão digital. Os testes consistem basicamente na geração dos pacotes de dados por meio de um software desenvolvido para codificação dos dados no padrão MPEG2 Transport Stream que é o passo inicial para a geração dos pacotes de dados. Nesses pacotes estão contidas informações como classificação, duração e gênero do programa a ser exibido. Os pacotes são disponibilizados em uma saída com padrão DVB (Digital Video Broadcasting) ASI (Asynchronous Serial Interface). Palavras-chaves: Televisão Digital, Electronic Program Guide, Pacotes de vídeo. ABSTRACT This work describes the design of a server guide digital TV programming implemented in FPGA. The system generates packages of programming to MPEG2 (Moving Picture Experts Group) and then makes them available in a digital pattern output. The tests are basically the generation of data packets through a software developed for data encryption standard in the MPEG2 Transport Stream which is the initial step for the generation of data packets. In these packages are contained information such as classification, gender and duration of the program to be displayed. Packages are available with output in a standard DVB (Digital Video Broadcasting) ASI (Asynchronous Serial Interface). Keywords: Digital TV, Electronic Program Guide, Video Packages. INTRODUÇÃO O servidor de EPG (Electronic Program Guide) é um sistema responsável pela geração de informações adicionais inseridas no sistema de multiplexação de dados da televisão digital. Dentre estas informações estão: classificação, horário de exibição do programa, duração, gênero em que o programa se enquadra entre outros. Os servidores de EPG necessitam de um hardware que gere uma saída em tempo real codificada, aonde os dados inseridos se alteram ao longo do tempo baseando-se nas informações do guia de programação. O guia de programação consiste em uma estrutura de dados que pode conter diversas redes, que na pratica são as redes de TV transmitidas, em cada rede podem existir diversos serviços, que seriam os segmentos de cada emissora que estão espalhados pelo país dentro de cada um dos serviços são definidos eventos (programas) e respectivas durações (IOS,2000). Cada evento transporta diversas informações chamadas descritores, dentre elas: título classificação de idade do evento, gênero, idioma entre outros. A Figura 1 mostra uma visão geral do servidor EPG.

56 56 Figura 1 Visão Geral do Projeto O sistema é composto por três módulos: Embarcado, Serialização e DVB (Digital Video Broadcasting) ASI (Asynchronous Serial Interface). Este servidor de EPG é capaz de receber as informações do guia de programação por meio de uma interface com usuário que, neste caso, é um operador de TV digital. A interface é constituída de campos onde serão inseridos os descritores, os eventos (data e hora de inicio, hora do fim, duração entre outros). Os dados são codificados por meio de um algoritmo executado no Módulo Embarcado, e transmitidos para o Módulo de Serialização que produz uma saída com a informação no padrão MPEG2 Transport Stream. O algoritmo do sistema baseia-se nas estruturas definidas pelas normas da Associação Brasileira de Normas Técnicas (ABNT, 2008). A operação consiste em receber os dados inseridos na interface web, hospedada no Módulo Embarcado montar os pacotes e, com o uso do barramento ISA de 8bits enviá-los para o Módulo de Serialização. O Módulo Embarcado constitui-se de um KIT adquirido comercialmente por questões de otimização e custo de desenvolvimento. O KIT é composto por um processador ARM utilizando para funcionamento o sistema operacional Linux distribuição Lenny. Além disso, há também memória flash para armazenamento do sistema operacional, portas de entrada e saída serial e rede bem como um barramento para comunicação de dados. Dentro do sistema operacional é processado o algoritmo de transmissão dos pacotes para o Módulo de Serialização. No Módulo de Serialização são armazenados os pacotes contendo as informações, e tem como um de seus principais componente a FPGA (Field programmable gate array) Stratix II da Altera (www.altera.com) onde está implementado um banco de memória capaz de armazenar até 48 horas de conteúdo do guia de programação. Esse módulo é responsável pelo controle do fluxo de dados e o envio destes ao Módulo DVB ASI. A comunicação externa é controlada pelo controlador de entrada e saída que é feita por meio de um barramento de comunicação. O controlador EPG é o responsável por manipular os dados e enviar os mesmo em partes para o Módulo DVB-ASI que faz a serialização convertendo para o formato digital. O servidor de EPG efetua a geração de pacotes MPEG2 TS contendo as seções de informações de eventos (conteúdo da EIT-Event Information Table). Uma interface simplificada permite o acesso do usuário ao sistema tornando possível a inserção dos dados. Um algoritmo trata os dados inseridos pelo usuário, baseando-se nas estruturas definidas pelas normas e monta os pacotes inserindo cada uma das informações alimentadas pelo operador de TV digital e armazena no Módulo de Serialização. A saída de dados do Módulo de Serialização é constituída de uma porta serial no padrão DVB-ASI, controlada por meio de uma lógica implementada em FPGA. O

57 57 Módulo de Serialização recebe os dados do Módulo Embarcado e os disponibiliza na saída DVB-ASI. Esses dados terão a maior constância possível, podendo haver atraso de transmissão e quebra de pacotes apenas na comunicação entre os módulos (Embarcado e de Serialização). Isto significa que ao enviar os dados para o módulo de serialização o algoritmo executado do módulo embarcado envia no inicio da transmissão um bit indicando que é o início de um pacote. A cada inicio de novo pacote esse bit de indicação é enviado novamente. Para a geração dos pacotes MPEG2 TS, foram usados apenas alguns dos descritores disponíveis na norma (IOS 2000) uma vez que apenas um dos descritores de eventos é obrigatório. Os descritores selecionados são os de classificação indicativa, de conteúdo, de componente de áudio, e há também o descritor de eventos curtos. A escolha de apenas alguns descritores se deve às restrições de memória implementada dentro do Módulo de Serialização. METODOLOGIA A geração dos pacotes começa na interface web hospedada no Módulo Embarcado, em que o operador entra com os parâmetros. Após este processo os dados são armazenados em um arquivo XML(Extensible Markup Language) que é lido por um algoritmo implementado em C#, que é responsável pela conversão dos dados para o padrão MPEG2TS. Após este processo os dados no formato MPEG2TS são empacotados utilizando-se de um novo algoritmo, também implementado em C#, quebra os pacotes em tamanhos adequados para transmissão por meio do barramento ISA de 8 bits ao módulo de serialização. Nesse módulo os pacotes são montados seguindo os padrões da tabela EIT (ETSI, 2006). O Módulo de serialização foi implementado em lógica programável utilizando se a linguagem VHDL (Very Hardware Description Language). Após montagem dos pacotes os dados são enviados ao Módulo DVB -ASI onde ocorre a conversão dos dados para o formato digital. IMPLEMENTAÇÃO O Servidor EPG desenvolvido opera em uma frequência de 27 MHz, é capaz de armazenar dois dias de programação. Foram implementados dois descritores com receio de sobrecarregar a operação do sistema, para tal utilizou-se o descritor de classificação, que é o único obrigatório, e o descritor de Gênero. É possível implementar vários outros que por uma questão de conveniência não estão no projeto. Dado o receio de sobrecarregar a FPGA, as rotinas descritas em VHDL foram bastante otimizadas, ao final da implementação o percentual Figura 2 Tela principal do software de entrada de dados

58 58 de utilização da FPGA ficou em 1%. Para a conexão entre Módulo Embarcado e Módulo de Serialização utilizou-se o barramento PC 104 do Kit Arm (EC, 2001) com barramento ISA 8 bits ( Shanley,1995) implementado na FPGA. Como os módulos possuem frequências de operação diferentes entre si (Embarcado 27MHZ, Serialização 50MHZ) foi implementado um circuito redutor de clock para manter o funcionamento em 27 MHz. RESULTADOS A taxa de transmissão dos dados chegou 180MB/s, o que indica 84% de eficiência da taxa de transmissão nominal do canal de comunicação. A transmissão dos dados ocupou pouco mais 1% da banda de transmissão do stream os dados de cinco canais com uma programação de eventos de seis horas de duração, atendendo as necessidades exigidas para sua comercialização no mercado atual. Como produto desse estudo, foi desenvolvido um equipamento para o sistema de televisão digital capaz de gerar um guia de programação eletrônico. O sistema desenvolvido atende aos requisitos descritos neste trabalho e produziu os resultados que veremos a seguir. Para uma análise dos resultados vamos analisar o sistema sob a ótica dos três módulos funcionais: Módulo Embarcado Módulo de Serialização Módulo DVB-ASI A princípio nosso trabalho produziu uma interface de entrada de dados para o sistema que fornece um parser XML capaz de codificar os dados, previamente inseridos pelo operador do sistema, a Figura 2 mostra a tela principal do software de entrada de dados. É gerado um arquivo que contém os pacotes do guia de programação no formato MPEG2, sem um controle na taxa de transmissão do stream que é feita pelo módulo de serialização. Os pacotes produzidos na saída deste módulo possuem um tamanho fixo de 188 bytes e não incluem os pacotes de stuffing, que tem a finalidade de preencher o stream com dados vazios para o controle da taxa de transmissão. A Figura 3 os dados do mesmo pacote sendo analisados utilizando-se o software Streamguru (www.streamguru.de) Figura 4 - Tela osciloscópio exibindo taxa de transmissão com preenchimento

59 59 Figura 3 - Análise dos pacotes A taxa de transmissão de um arquivo MPEG2 puro, sem os pacotes de preenchimento vazios, ou stuffing packets, é muito mais baixa se comparada a um stream de transmissão completo. Necessita-se observar que a taxa de transmissão do arquivo gerado é em torno de 5 Mbps e permite comparação da taxa deste stream gerado, com a taxa gerada pelo stream de saída do sistema. O Módulo de Serialização que recebe os pacotes do módulo embarcado e armazena em memória fazendo a serialização dos dados, ou seja, inserindo ao stream os pacotes de preenchimento (stuffing packets) para o controle da taxa do stream. Isto resulta em um stream de dados com uma taxa bem mais elevada. A Figura 4 mostra a taxa do stream de saída do sistema. Analisando a Figura 4 pode-se observar que a taxa dos dados do stream, depois da inserção dos pacotes de preenchimento, aumenta aproximadamente 10 vezes comparado com os dados sem os pacotes de preenchimento. Porém, isto é necessário para que se mantenha um fluxo constante de dados na saída do Módulo DVB-ASI. Desta forma esses dados são ignorados quando inseridos na entrada de um multiplexador do sistema de televisão digital. O Módulo DVB-ASI recebe o stream de dados do módulo de serialização produzindo uma saída serial digital. Os dados são transmitidos no canal físico a uma taxa de 216 Mbps nominal, porém a taxa atingida pelo sistema desenvolvido chegou ao máximo de 184 Mbps. Isso devido a problemas de sincronização entre os blocos lógicos programados no dispositivo FPGA. A análise do canal de transmissão DVB-ASI na saída do sistema produziu a forma de onda, visualizada na Figura 5. Pode-se observar que são geradas formas de onda, onde ocorre um jitter de saída que é típico neste tipo de sistema de transmissão. Figura 5 - Forma de Onda do sinal serializado Neste canal de transmissão o sistema pode atingir uma taxa de 3Gbps, porém isso é limitado pelo padrão DVB-ASI que aceita taxas de no máximo 216 Mbps para transmissões dentro das normas estabelecidas pelo IEEE(Institute of Electrical and Electronicas Engineers) (ETSI, 2006).

60 60 CONCLUSÕES O Servidor de EPG que foi proposto e desenvolvido é um equipamento capaz de receber informações do guia de programação, codificar e transmitir os dados nos padrões definidos pelas normas de televisão digital. Esse sistema prove uma interface com o usuário que recebe os dados do guia de programação. Um algoritmo faz a codificação dos dados para o padrão MPEG2TS que é serializado por meio de um sistema utilizando uma lógica de hardware implementada em uma FPGA capaz de inserir pacotes de preenchimento, ou seja, pacotes vazios no stream de dados para a manutenção da taxa de transmissão. Por fim o sistema disponibiliza os dados em uma saída no padrão DVB-ASI fazendo a transmissão da informação. No que tange o projeto do servidor de guia de programação eletrônico, objeto de estudo da monografia, pode-se concluir que o sistema funcionou dentro dos resultados esperados que consiste basicamente na transmissão dos pacotes gerados com baixíssimo índice de inconsistência na transmissão algo em torno de 15%. O sistema trabalha com um limite de cinco canais de programação com até 48 horas de eventos de programação por canal. Os dados podem ser inseridos pelo operador diretamente no equipamento por meio de uma interface WEB sem que haja a necessidade de softwares instalados localmente no computador do operador. A saída do sistema é limitada a pacotes de 188 bytes e ao modo de transmissão em rajada, que faz com que o sistema envie 188 bytes e, posteriormente, um stuffing byte, ou seja, um byte de preenchimento indicando o fim do pacote. Os resultados obtidos permitem concluir que é completamente viável o desenvolvimento de um equipamento para a geração de um guia de programação para a Televisão Brasileira.

61 61 REFERENCIAS (ABNT, 2008) Associação Brasileira de Normas Técnicas (ABNT), ABNT NBR Televisão Digital Terrestre - Multiplexação e Serviços de Informação, Norma ABNT NBR 15603, Rio de Janeiro: ABNT, (ETSI, 2006) European Telecommunications Standard Institute Version 1.7.1, ETSI EN Digital Video Broadcasting (DVB) Specification for Service Information (SI) in DVB systems) (IOS, 2000)International Organization for Standardization, ISO/IEC Information Technology-Generic Coding of Moving Pictures and Associated Audio Information: Systems, Second Edition, (Fischer, 2008) Fischer, W. Digital Video and Audio Broadcasting Technology: A Practical Engineering Guide. 2ndEdition. Local: Springer, (EC, 2001)PC/104 Embedded Consortium, PC/104 Specification, Version 2.4, August (Shanley, 1995) Shanley, T. ISA System Architecture, 3rd Edition, MindShare 1995.

62 62 ANEXO I Conexão do Painel Traseiro Todas as conexões do Servidor de EPG podem ser feitas pelo painel traseiro do equipamento. Conecte primeiro o cabo de Ethernet e posteriormente o cabo BNC a saída DVB-ASI. Por fim conecte o cabo de alimentação ao equipamento. É necessário configurar a placa de rede para acessar o Servidor de EPG. Abra as conexões de redes de seu sistema operacional e configure a interface de rede da seguinte forma: Defina o IP da interface de rede como e a sub-rede como , assim o host ficará acessível.

63 63 Utilizando a Interface WEB do Servidor EPG O Servidor de Guia de Programação Eletrônico fornece uma aplicação embarcada dedicada à configuração da grid de programação. Nesta aplicação é possível configurar as Redes, Multiplexadores e Serviços que estarão disponíveis no stream de dados MPEG2. É possível a definições dos eventos para um determinado serviço do stream de conteúdo, bem com os descritores dos eventos disponíveis. Este guia tem como objetivo auxiliar no entendimento de cadastro da estrutura da grid de programação do sistema de geração do Guia de Programação Eletrônico. Usando um navegador WEB acesse o endereço IP do servidor de EPG, assim obterá acesso à aplicação de configuração do Guia de Programação. Cadastrando Uma Network Para criar uma rede acesse o menu File-> New-> Network. Preencha com o identificador e o nome da Rede e clique em salvar.

64 64 Cadastrando um Multiplex Para criar um multiplexador acesse o menu File-> New-> Multiplex. Preencha com o identificador e o nome do Multiplexador, selecionar na combo Network a rede desejada e clique em salvar. Cadastrando um Service Para criar um serviço acesse o menu File-> New-> Service. Preencha com o identificador e o nome do Serviço, selecione na combo Network a rede desejada e na combo Multiplex o multiplexador desejado, após clique em salvar.

65 65 Vizualizando um Serviço Para visualizar um serviço clique no serviço desejado a esquerda da aplicação, com isso o sistema mostrará os dados do serviço bem como a lista de eventos disponível. Pode-se criar ou excluir um evento clicando nos botões do New/Delete no menu de eventos. Cadastrando um Evento Para criar um Evento clique em New na grid de eventos. Preencha com o identificador, hora de inicio e duração do Evento, após clique em salvar. Após o evento ser salvo é possível o cadastro dos descritores, conforme mostra a figura abaixo. Clique em New Descriptor e selecione o descritor desejado para cadastrar um novo descritor. Caso haja algum descritor cadastrado e seja necessário remove-lo, selecione o descritor na lista e clique em Delete.

66 66 Cadastrando um ShortEvent Descriptor Selecione o código de idioma desejado na combo Language Code, preencha o nome do evento com o nome desejado e o texto de descrição do evento, após clique em salvar. Cadastrando um Content Descriptor

67 Selecione o gênero desejado na combo Nibble Level 1 e um subgênero na combo Nibble Level 2, após clique em salvar. 67

Curso Superior de Sistemas de Telecomunicações Unidade São José. Disciplina: Síntese de Sistemas de Telecomunicações 7º Fase

Curso Superior de Sistemas de Telecomunicações Unidade São José. Disciplina: Síntese de Sistemas de Telecomunicações 7º Fase Curso Superior de Sistemas de Telecomunicações Unidade São José Disciplina: Síntese de Sistemas de Telecomunicações 7º Fase Bases tecnológicas Dispositivos Lógicos Programáveis. Introdução à Tecnologia

Leia mais

Figura 01 Visão Geral da Placa

Figura 01 Visão Geral da Placa 1. Hardware O kit de FPGA é formado por periféricos que possibilitam sua interação com sinais de áudio, display gráfico e alfanumérico, comunicação serial e USB, codec de áudio, chaves para simulação e

Leia mais

Barramentos ISA e PCI. Gustavo G. Parma

Barramentos ISA e PCI. Gustavo G. Parma Barramentos ISA e PCI Gustavo G. Parma Barramento Coleção de fios paralelos utilizados para transmitir endereços dados sinais de controle Internos ou Externos à CPU Internos: Via de dados Externos: utilizado

Leia mais

Curso Superior de Sistemas de Telecomunicações Unidade São José. Disciplina: Síntese de Sistemas de Telecomunicações 7º Fase

Curso Superior de Sistemas de Telecomunicações Unidade São José. Disciplina: Síntese de Sistemas de Telecomunicações 7º Fase Curso Superior de Sistemas de Telecomunicações Unidade São José Disciplina: Síntese de Sistemas de Telecomunicações 7º Fase Bases tecnológicas Dispositivos Lógicos Programáveis. Introdução à Tecnologia

Leia mais

CAPÍTULO 5. INTERFACES PARA PERIFÉRICOS DE ARMAZENAMENTO INTERFACES DIVERSAS: FIREWIRE, SPI e I 2 C INTERFACES COM O MUNDO ANALÓGICO

CAPÍTULO 5. INTERFACES PARA PERIFÉRICOS DE ARMAZENAMENTO INTERFACES DIVERSAS: FIREWIRE, SPI e I 2 C INTERFACES COM O MUNDO ANALÓGICO 28 CAPÍTULO 5 INTERFACES PARA PERIFÉRICOS DE ARMAZENAMENTO INTERFACES DIVERSAS: FIREWIRE, SPI e I 2 C INTERFACES COM O MUNDO ANALÓGICO Interfaces para periféricos de armazenamento: Periféricos de armazenamento,

Leia mais

Organização de Computadores 1

Organização de Computadores 1 Organização de Computadores 1 SISTEMA DE INTERCONEXÃO (BARRAMENTOS) Prof. Luiz Gustavo A. Martins Arquitetura de von Newmann Componentes estruturais: Memória Principal Unidade de Processamento Central

Leia mais

Arquitetura e Organização de Computadores I

Arquitetura e Organização de Computadores I Arquitetura e Organização de Computadores I Interrupções e Estrutura de Interconexão Prof. Material adaptado e traduzido de: STALLINGS, William. Arquitetura e Organização de Computadores. 5ª edição Interrupções

Leia mais

CCNA 1 Conceitos Básicos de Redes. Capítulo1 - Introdução à Redes. Associação dos Instrutores NetAcademy - Agosto de 2007 - Página

CCNA 1 Conceitos Básicos de Redes. Capítulo1 - Introdução à Redes. Associação dos Instrutores NetAcademy - Agosto de 2007 - Página CCNA 1 Conceitos Básicos de Redes Capítulo1 - Introdução à Redes 1 Requisitos para Conexão à Internet Para disponibilizar o acesso de um computador à rede, devem ser levados em consideração 03 parâmetros:

Leia mais

Simplifique a complexidade do sistema

Simplifique a complexidade do sistema 1 2 Simplifique a complexidade do sistema Com o novo controlador de alto desempenho CompactRIO Rodrigo Schneiater Engenheiro de Vendas National Instruments Leonardo Lemes Engenheiro de Sistemas National

Leia mais

Arquitetura de Computadores. Professor: Vilson Heck Junior

Arquitetura de Computadores. Professor: Vilson Heck Junior Arquitetura de Computadores Professor: Vilson Heck Junior Agenda Conceitos Estrutura Funcionamento Arquitetura Tipos Atividades Barramentos Conceitos Como já discutimos, os principais componentes de um

Leia mais

Arquitetura e Organização de Computadores

Arquitetura e Organização de Computadores Arquitetura e Organização de Computadores Entrada/Saída Material adaptado, atualizado e traduzido de: STALLINGS, William. Arquitetura e Organização de Computadores. 5ª edição Problemas Entrada/Saída Grande

Leia mais

DESENVOLVIMENTO DE UMA BIBLIOTECA PARA COMUNICAÇÃO COM A CAMADA FÍSICA USB PADRÃO ULPI

DESENVOLVIMENTO DE UMA BIBLIOTECA PARA COMUNICAÇÃO COM A CAMADA FÍSICA USB PADRÃO ULPI UNIVERSIDADE FEDERAL DE PERNAMBUCO GRADUAÇÃO EM ENGENHARIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA DESENVOLVIMENTO DE UMA BIBLIOTECA PARA COMUNICAÇÃO COM A CAMADA FÍSICA USB PADRÃO ULPI PROPOSTA DE TRABALHO

Leia mais

William Stallings Arquitetura e Organização de Computadores 8 a Edição

William Stallings Arquitetura e Organização de Computadores 8 a Edição William Stallings Arquitetura e Organização de Computadores 8 a Edição Capítulo 7 Entrada/saída Os textos nestas caixas foram adicionados pelo Prof. Joubert slide 1 Problemas de entrada/saída Grande variedade

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Sistemas de Entrada/Saída Princípios de Hardware Sistema de Entrada/Saída Visão Geral Princípios de Hardware Dispositivos de E/S Estrutura Típica do Barramento de um PC Interrupções

Leia mais

O BARRAMENTO PCI. Sérgio Antônio Martini Bortolin Júnior 1 Alessandro Girardi 2

O BARRAMENTO PCI. Sérgio Antônio Martini Bortolin Júnior 1 Alessandro Girardi 2 O BARRAMENTO PCI Sérgio Antônio Martini Bortolin Júnior 1 Alessandro Girardi 2 RESUMO A tecnologia PCI foi desenvolvida pela Intel no início dos anos 1990, fabricada para atender as requisições de programas

Leia mais

Osamu Saotome Professor da Divisão de Engenharia Eletrônica do ITA PhD pelo Tokyo Institute of Technology Orientador deste projeto de mestrado

Osamu Saotome Professor da Divisão de Engenharia Eletrônica do ITA PhD pelo Tokyo Institute of Technology Orientador deste projeto de mestrado ARQUITETURA DE ACESSO DIRETO AO PERIFÉRICO DE INTERFACE OU BARRAMENTO PARALELO DISTANTE João Batista Brandolin Mestrando da área de Dispositivos e Sistemas Eletrônicos do ITA Professor do Instituto Federal

Leia mais

Implementação de um módulo Ethernet 10/100Mbps com interface Avalon para o processador Nios II da Altera

Implementação de um módulo Ethernet 10/100Mbps com interface Avalon para o processador Nios II da Altera Implementação de um módulo Ethernet 10/100Mbps com interface Avalon para o processador Nios II da Altera Ricardo Menotti Orientador: Prof. Dr. Eduardo Marques Instituto de Ciências Matemáticas e de Computação

Leia mais

Lab 3. Timing Timing Constraints Simulação

Lab 3. Timing Timing Constraints Simulação Lab 3 Timing Timing Constraints Simulação A. Mariano - 2014 1 VHDL processes Para um designer, process é um bloco de instruções que funciona de maneira sequencial e que é chaveado quando algum dos sinais

Leia mais

Arquitetura de Computadores - Revisão -

Arquitetura de Computadores - Revisão - Arquitetura de Computadores - Revisão - Principais funções de um Sistema Operacional Componentes básicos da Arquitetura Barramentos Registradores da CPU Ciclo de Instruções Interrupções Técnicas de E/S

Leia mais

Implementação de um Sistema Digital em VHDL Cronômetro para Jogos de Basquete

Implementação de um Sistema Digital em VHDL Cronômetro para Jogos de Basquete - 1 - V 1.0 - De: 02/maio/2012 por Ney Calazans Laboratório de Organização de Computadores-EC V 3.2 - De: 21/abril/2013 por Fernando Gehm Moraes e Ney Calazans Implementação de um Sistema Digital em VHDL

Leia mais

Organização de Computadores. (Aula 5) Entrada/Saída

Organização de Computadores. (Aula 5) Entrada/Saída Organização de Computadores (Aula 5) Entrada/Saída Entrada e Saída (Input/Output I/O) Computador: Processador, Memória (principal e secundária) Equipamentos (dispositivos, elementos, unidades,...) de Entrada/Saída

Leia mais

Dispositivos Lógicos Programáveis

Dispositivos Lógicos Programáveis PARTE 1 - TEORIA Dispositivos Lógicos Programáveis Os dispositivos lógicos programáveis (PLD Programmable Logic Device) são circuitos integrados programáveis, que possuem um grande número de portas lógicas,

Leia mais

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 03 Conceitos de Hardware e Software parte 01. Cursos de Computação

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 03 Conceitos de Hardware e Software parte 01. Cursos de Computação Cursos de Computação Sistemas Operacionais Prof. M.Sc. Sérgio Teixeira Aula 03 Conceitos de Hardware e Software parte 01 Referência: MACHADO, F.B. ; MAIA, L.P. Arquitetura de Sistemas Operacionais. 4.ed.

Leia mais

SSC 741 - Projeto e Implementação de Sistemas Embarcados I

SSC 741 - Projeto e Implementação de Sistemas Embarcados I INSTITUTO DE CIÊNCIAS MATEMÁTICAS E DE COMPUTAÇÃO ICMC UNIVERSIDADE DE SÃO PAULO - USP SSC 741 - Projeto e Implementação de Sistemas Embarcados I Projeto Final Responsáveis: Prof. Dr. Eduardo Marques e

Leia mais

Arquitetura de Computadores Pentium 4 e PCIe

Arquitetura de Computadores Pentium 4 e PCIe Pentium 4 Arquitetura de Computadores Pentium 4 e PCIe O Pentium 4 é um descendente direto da CPU 8088 usada no IBM PC original. O primeiro Pentium 4 foi lançado em novembro de 2000 com uma CPU de 42 milhõcs

Leia mais

Entrada e Saída (Input/Output I/O) Organização de Computadores (Aula 5) Entrada/Saída. Diferentes Tipos de Dispositivos (1)

Entrada e Saída (Input/Output I/O) Organização de Computadores (Aula 5) Entrada/Saída. Diferentes Tipos de Dispositivos (1) Organização de Computadores (Aula 5) Entrada/Saída Roberta Lima Gomes - LPRM/DI/UFES Sistemas de Programação I Eng. Elétrica 2007/2 Entrada e Saída (Input/Output I/O) Computador: Processador, Memória (principal

Leia mais

VHDL Lógica Síncrona. Sinais de Saída. Sinais de Entrada. barreira. carg. VHDL -Lógica Síncrona

VHDL Lógica Síncrona. Sinais de Saída. Sinais de Entrada. barreira. carg. VHDL -Lógica Síncrona VHDL Lógica Síncrona Circuitos combinacionais respondem a estímulos com um atraso que depende de sua implementação Para sincronizar subsistemas em lógica combinacional utiliza-se barreiras temporais, que

Leia mais

Ao longo do presente capítulo será apresentada uma descrição introdutória da tecnologia FPGA e dos módulos básicos que a constitui.

Ao longo do presente capítulo será apresentada uma descrição introdutória da tecnologia FPGA e dos módulos básicos que a constitui. 3 Tecnologia FPGA Ao longo do presente capítulo será apresentada uma descrição introdutória da tecnologia FPGA e dos módulos básicos que a constitui. 3.1. FPGA: Histórico, linguagens e blocos Muitos dos

Leia mais

IDENTIFICAÇÃO MANUTENÇÃO

IDENTIFICAÇÃO MANUTENÇÃO IDENTIFICAÇÃO MANUTENÇÃO ESTRUTURA DOS MICROS PADRÃO PC AULA 01 Sobre aula 1 Números binários e hexadecimais Dispositivos digitais e analógicos Circuitos integrados Estrutura dos micros padrão PC Micros

Leia mais

Arquitetura de Computadores Circuitos Combinacionais, Circuitos Sequênciais e Organização de Memória

Arquitetura de Computadores Circuitos Combinacionais, Circuitos Sequênciais e Organização de Memória Introdução Arquitetura de Computadores Circuitos Combinacionais, Circuitos Sequênciais e O Nível de lógica digital é o nível mais baixo da Arquitetura. Responsável pela interpretação de instruções do nível

Leia mais

Capítulo 2 COMPONENTES... 7

Capítulo 2 COMPONENTES... 7 3 Sumário Capítulo 1 INTRODUÇÃO... 5 1.1 Apresentação... 5 1.2 Sobre este manual... 5 1.3 Instruções de segurança... 5 1.4 Instruções de instalação... 6 1.4.1 Fixação... 6 1.4.2 Ventilação... 6 1.4.3 Proteção

Leia mais

INTERFACE RECONFIGURÁVEL PARA ARQUITETURA PARALELA BASEADA EM PROCESSADOR EMBARCADO NIOS II

INTERFACE RECONFIGURÁVEL PARA ARQUITETURA PARALELA BASEADA EM PROCESSADOR EMBARCADO NIOS II INTERFACE RECONFIGURÁVEL PARA ARQUITETURA PARALELA BASEADA EM PROCESSADOR EMBARCADO NIOS II Antonio Edson Ceccon Concluinte - Engenharia da Computação - UnicenP/Centro Universitário Positivo cecconae@ig.com.br

Leia mais

Arquitetura de Computadores. Arquitetura de Computadores 1

Arquitetura de Computadores. Arquitetura de Computadores 1 Computadores Computadores 1 Introdução Componentes: Processador; UC; Registradores; ALU s, FPU s, etc. Memória (Sistema de armazenamento de informações; Dispositivo de entrada e saída. Computadores 2 Introdução

Leia mais

Universidade Tuiuti do Paraná UTP Faculdade de Ciências Exatas - FACET

Universidade Tuiuti do Paraná UTP Faculdade de Ciências Exatas - FACET Universidade Tuiuti do Paraná UTP Faculdade de Ciências Exatas - FACET Hardware de Computadores Questionário II 1. A principal diferença entre dois processadores, um deles equipado com memória cache o

Leia mais

O Conversor Serial Ethernet MUX-10

O Conversor Serial Ethernet MUX-10 O Conversor Serial Ethernet MUX-10 M. B. Pereira, E. Araujo, ENAUTEC e F. Santana, COELBA Resumo - O Conversor Serial Ethernet MUX-10 é um protótipo destinado a interconectar equipamentos baseados em porta

Leia mais

NI FlexRIO - Tecnologia e Aplicações

NI FlexRIO - Tecnologia e Aplicações NI FlexRIO - Tecnologia e Aplicações Mike Munhato Marketing Técnico André Oliveira Gerente de Vendas Agenda O que é FPGA e por que ele é tão útil? Vantagens do FPGA em sistemas de teste Plataforma NI FlexRIO

Leia mais

DIGITAL. Inovando seu futuro! MANUAL DE INSTRUÇÕES TS 9020-T TRANSPORT STREAM MONITOR. Assistência Técnica CARACTERÍSTICAS TÉCNICAS

DIGITAL. Inovando seu futuro! MANUAL DE INSTRUÇÕES TS 9020-T TRANSPORT STREAM MONITOR. Assistência Técnica CARACTERÍSTICAS TÉCNICAS CARACTERÍSTICAS TÉCNICAS Características Gerais Entrada de Sinal Conector Interface de Saída Conector Configurações mínima do PC Memória HD Porta USB A a H - compatível com TTL (vide Tabela 1) DB 25 -

Leia mais

Arquitetura de Computadores Arquitetura de entrada e saída

Arquitetura de Computadores Arquitetura de entrada e saída Arquitetura de Entrada e Saída Arquitetura de Computadores Arquitetura de entrada e saída Barramento Meio de transmissão de dados entre a CPU, a memória principal e os dispositivos de entrada e saída.

Leia mais

Eletrônica Digital para Instrumentação. Prof: Herman Lima Jr hlima@cbpf.br

Eletrônica Digital para Instrumentação. Prof: Herman Lima Jr hlima@cbpf.br G03 Eletrônica Digital para Instrumentação Prof: hlima@cbpf.br Centro Brasileiro de Pesquisas Físicas Ministério da Ciência, Tecnologia e Inovação (MCTI) Eletrônica Digital para Instrumentação Objetivo

Leia mais

Universal Serial Bus USB

Universal Serial Bus USB Universal Serial Bus USB Walter Fetter Lages w.fetter@ieee.org Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Engenharia Elétrica Microprocessadores II Copyright (c) Walter

Leia mais

Programação de Periféricos

Programação de Periféricos Programação de Periféricos Componentes Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Apresentação Raspberry pi Sistema Operacional embarcado Atividade Raspberry pi Sistema computacional

Leia mais

GUIA DE LABORATÓRIO DE SISTEMAS DIGITAIS PARA O CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO

GUIA DE LABORATÓRIO DE SISTEMAS DIGITAIS PARA O CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO GUIA DE LABORATÓRIO DE SISTEMAS DIGITAIS PARA O CURSO DE ENGENHARIA DE CONTROLE E AUTOMAÇÃO Agosto/2004 V2 INTRODUÇÃO Este guia foi preparado para auxilio às aulas de laboratório para o curso de Engenharia

Leia mais

Datasheet Controladora PCI 5i20

Datasheet Controladora PCI 5i20 Datasheet Controladora PCI 5i20 A placa 5I20 é um periférico de processamento genérico, utilizada através de uma conexão PCI com um PC comum. Internamente, a placa contém um FPGA de alta capacidade de

Leia mais

Curso de Engenharia de Computação DESENVOLVIMENTO DE UM PROCESSADOR RISC EM VHDL

Curso de Engenharia de Computação DESENVOLVIMENTO DE UM PROCESSADOR RISC EM VHDL Curso de Engenharia de Computação DESENVOLVIMENTO DE UM PROCESSADOR RISC EM VHDL José Carlos Pereira Itatiba São Paulo Brasil Dezembro de 2006 ii Curso de Engenharia de Computação DESENVOLVIMENTO DE UM

Leia mais

Conhecer os tipos de Placa Mãe, principais caracteristicas, seus componentes e suas funcionalidades, destacando assim, a importância de uma placa mãe.

Conhecer os tipos de Placa Mãe, principais caracteristicas, seus componentes e suas funcionalidades, destacando assim, a importância de uma placa mãe. PLACA MÃE 1. OBJETIVO Conhecer os tipos de Placa Mãe, principais caracteristicas, seus componentes e suas funcionalidades, destacando assim, a importância de uma placa mãe. 2. COMPONENTES DA PLACA MÃE

Leia mais

Fundamentos de Arquitetura de Computadores. Prof. Marcos Quinet Universidade Federal Fluminense UFF Pólo Universitário de Rio das Ostras - PURO

Fundamentos de Arquitetura de Computadores. Prof. Marcos Quinet Universidade Federal Fluminense UFF Pólo Universitário de Rio das Ostras - PURO Fundamentos de Arquitetura de Computadores Prof. Marcos Quinet Universidade Federal Fluminense UFF Pólo Universitário de Rio das Ostras - PURO Hardware de um Sistema Computacional Hardware: são os componentes

Leia mais

Eletrônica Digital para Instrumentação

Eletrônica Digital para Instrumentação G4 Eletrônica Digital para Instrumentação Prof. Márcio Portes de Albuquerque (mpa@cbpf.br) Prof. Herman P. Lima Jr (hlima@cbpf.br) Centro Brasileiro de Pesquisas Físicas Ministério da Ciência e Tecnologia

Leia mais

CAPÍTULO VI DECODIFICAÇÃO DE I/O E MEMÓRIA

CAPÍTULO VI DECODIFICAÇÃO DE I/O E MEMÓRIA Decodificação de I/O e Memória Cap.6: /0 CAPÍTULO VI DECODIFICAÇÃO DE I/O E MEMÓRIA afirmava-se que memória era todo dispositivo acessado através dos sinais *(S)MEMR ou *(S)MEMW e que I/O era todo dispositivo

Leia mais

Componentes de um Sistema de Computador

Componentes de um Sistema de Computador Componentes de um Sistema de Computador HARDWARE: unidade responsável pelo processamento dos dados, ou seja, o equipamento (parte física) SOFTWARE: Instruções que dizem o que o computador deve fazer (parte

Leia mais

Arquitetura de Sistemas Embarcados: Controladores Industriais

Arquitetura de Sistemas Embarcados: Controladores Industriais Arquitetura de Sistemas Embarcados: Controladores Industriais Heber A. Scachetti RA 004933 heber_augusto@yahoo.com.br RESUMO Este artigo apresenta algumas das principais características encontradas em

Leia mais

HARDWARE COMPONENTES BÁSICOS E FUNCIONAMENTO. Wagner de Oliveira

HARDWARE COMPONENTES BÁSICOS E FUNCIONAMENTO. Wagner de Oliveira HARDWARE COMPONENTES BÁSICOS E FUNCIONAMENTO Wagner de Oliveira SUMÁRIO Hardware Definição de Computador Computador Digital Componentes Básicos CPU Processador Memória Barramento Unidades de Entrada e

Leia mais

Estrutura interna de um microcontrolador

Estrutura interna de um microcontrolador Estrutura interna de um microcontrolador Um microcontrolador é composto por um conjunto de periféricos interligados a uma unidade de processamento e todo este conjunto confere a este componente uma versatilidade

Leia mais

Programmable Interval Timer

Programmable Interval Timer Programmable Interval Timer 8253/8254 Walter Fetter Lages w.fetter@ieee.org Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Engenharia Elétrica Microprocessadores II Copyright

Leia mais

Instituto Tecnológico de Aeronáutica - ITA Divisão de Engenharia Eletrônica Departamento de Eletrônica Aplicada Laboratório de EEA-21

Instituto Tecnológico de Aeronáutica - ITA Divisão de Engenharia Eletrônica Departamento de Eletrônica Aplicada Laboratório de EEA-21 Instituto Tecnológico de Aeronáutica - ITA Divisão de Engenharia Eletrônica Departamento de Eletrônica Aplicada Laboratório de EEA-21 7ª Experiência Síntese de Circuitos Sequenciais Síncronos 1. Objetivos

Leia mais

Easy Lab. Manual do usuário Revisão 1.2 01/11/14. www.dma.ind.br. DMA Electronics 1

Easy Lab. Manual do usuário Revisão 1.2 01/11/14. www.dma.ind.br. DMA Electronics 1 Easy Lab Manual do usuário Revisão 1.2 01/11/14 www.dma.ind.br DMA Electronics 1 A DMA ELECTRONICS projeta e fabrica sistemas para aquisição e registro de dados com conexão a um computador do tipo PC.

Leia mais

Entrada e Saída. Prof. Leonardo Barreto Campos 1

Entrada e Saída. Prof. Leonardo Barreto Campos 1 Entrada e Saída Prof. Leonardo Barreto Campos 1 Sumário Introdução; Dispositivos Externos; E/S Programada; E/S Dirigida por Interrupção; Acesso Direto à Memória; Bibliografia. Prof. Leonardo Barreto Campos

Leia mais

FERRAMENTA DIDÁTICA PARA DISCIPLINA DE ELETRÔNICA DIGITAL

FERRAMENTA DIDÁTICA PARA DISCIPLINA DE ELETRÔNICA DIGITAL FERRAMENTA DIDÁTICA PARA DISCIPLINA DE ELETRÔNICA DIGITAL Diego S. Mageski diego.mageski@hotmail.com Bene R. Figueiredo bfigueiredo@ifes.edu.br Wagner T. da Costa wagnercosta@ifes.edu.br Instituto Federal

Leia mais

1 INTRODUÇÃO 1 2 CONSIDERAÇÕES INICIAIS 1 2.1 ARQUITETURA DO SISTEMA 4 3 CONFIGURAÇÃO DO PROCESSADOR BTS 4 3.1 COMPRESSOR 5 3.

1 INTRODUÇÃO 1 2 CONSIDERAÇÕES INICIAIS 1 2.1 ARQUITETURA DO SISTEMA 4 3 CONFIGURAÇÃO DO PROCESSADOR BTS 4 3.1 COMPRESSOR 5 3. COMPRESSOR / DECOMPRESSOR TS9600 BTS i SUMÁRIO 1 INTRODUÇÃO 1 2 CONSIDERAÇÕES INICIAIS 1 2.1 ARQUITETURA DO SISTEMA 4 3 CONFIGURAÇÃO DO PROCESSADOR BTS 4 3.1 COMPRESSOR 5 3.2 DECOMPRESSOR 6 4. CARACTERÍSTICAS

Leia mais

Organização e arquitetura de computadores Protocolos de barramento

Organização e arquitetura de computadores Protocolos de barramento Organização e arquitetura de computadores Protocolos de barramento Alunos: José Malan, Gustavo Marques, Johnathan Alves, Leonardo Cavalcante. Universal serial bus (USB) O USB é um padrão da indústria que

Leia mais

Centro Universitário Positivo - UnicenP Núcleo de Ciências Exatas e Tecnológicas NCET Engenharia da Computação

Centro Universitário Positivo - UnicenP Núcleo de Ciências Exatas e Tecnológicas NCET Engenharia da Computação Centro Universitário Positivo - UnicenP Núcleo de Ciências Exatas e Tecnológicas NCET Engenharia da Computação MINI OSCILOSCÓPIO DIGITAL PORTÁTIL BASEADO EM MICROCONTROLADOR PIC Curitiba 2004 1 Ederson

Leia mais

Barramentos do Sistema

Barramentos do Sistema Barramentos do Sistema AOC: Arquitetura e Organização de Computadores Computador CPU Quais os barramentos? Unidade lógica e aritmética Equipamentos de E/S Memória principal Unidade de controle Linhas de

Leia mais

ENTRADA E SAÍDA (I/O)

ENTRADA E SAÍDA (I/O) MICROPROCESSADORES II (EMA864315) ENTRADA E SAÍDA (I/O) 1 O SEMESTRE / 2015 Alexandro Baldassin MATERIAL DIDÁTICO Patterson & Hennessy (4a edição) Capítulo 6 (Tópicos I/O) 6.1 Introduction 6.5 Connecting

Leia mais

Índice. Dia 05 de fevereiro de 2014...2. Apresentação... 2. Dia 12 de fevereiro de 2013...3

Índice. Dia 05 de fevereiro de 2014...2. Apresentação... 2. Dia 12 de fevereiro de 2013...3 Índice Dia 05 de fevereiro de 2014....2 Apresentação... 2 Dia 12 de fevereiro de 2013....3 -Processador... 3 -Von Neumann... 3 -Harvard... 4 -Von Neumann x Harvard... 4 -Equipamentos que utilizam a arquitetura

Leia mais

Gerência de Entrada/Saída

Gerência de Entrada/Saída Gerência de Entrada/Saída Prof Clodoaldo Ap Moraes Lima 1 Princípios básicos de hardware Periférico é um dispositivo conectado a um computador de forma a possibilitar sua interação com o mundo externo

Leia mais

ARQUITETURA DE COMPUTADORES Prof. João Inácio

ARQUITETURA DE COMPUTADORES Prof. João Inácio ARQUITETURA DE COMPUTADORES Prof. João Inácio Memórias Memória: é o componente de um sistema de computação cuja função é armazenar informações que são, foram ou serão manipuladas pelo sistema. Em outras

Leia mais

Introdução à Informática ARQUITETURA DE COMPUTADORES

Introdução à Informática ARQUITETURA DE COMPUTADORES Universidade do Contestado Campus Concórdia Curso de Engenharia Ambiental Prof.: Maico Petry Introdução à Informática ARQUITETURA DE COMPUTADORES DISCIPLINA: Informática Aplicada O Que éinformação? Dados

Leia mais

5 Entrada e Saída de Dados:

5 Entrada e Saída de Dados: 5 Entrada e Saída de Dados: 5.1 - Arquitetura de Entrada e Saída: O sistema de entrada e saída de dados é o responsável pela ligação do sistema computacional com o mundo externo. Através de dispositivos

Leia mais

ENTRADA E SAÍDA DE DADOS

ENTRADA E SAÍDA DE DADOS ENTRADA E SAÍDA DE DADOS Os dispositivos de um computador compartilham uma única via de comunicação BARRAMENTO. BARRAMENTO Elétrica/Mecânica + Protocolo. GERENCIAMENTO DE E/S O controle da troca de dados

Leia mais

Capítulo III Circuitos Digitais Combinacionais

Capítulo III Circuitos Digitais Combinacionais Capítulo III Circuitos Digitais Combinacionais 1 Introdução Vimos no Capítulo II que uma desejada função lógica pode ser implementada mediante a combinação de portas lógicas. Esta combinação de portas

Leia mais

Implementação de um soft-core em VHDL baseado no conjunto de instruções MIPS-I

Implementação de um soft-core em VHDL baseado no conjunto de instruções MIPS-I UNIVERSIDADE FEDERAL DE SANTA CATARINA DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA CURSO DE CIÊNCIAS DA COMPUTAÇÃO Rafael Vargas Implementação de um soft-core em VHDL baseado no conjunto de instruções MIPS-I

Leia mais

TERMO DE REFERÊNCIA ESPECIFICAÇÃO TÉCNICA DE UNIDADES REMOTAS PARA CONEXÃO COM SISTEMA SUPERVISÓRIO

TERMO DE REFERÊNCIA ESPECIFICAÇÃO TÉCNICA DE UNIDADES REMOTAS PARA CONEXÃO COM SISTEMA SUPERVISÓRIO 1 OBJETIVO... 2 2 REMOTA... 2 2.1 DESCRIÇÃO GERAL... 2 2.2 ALIMENTAÇÃO... 2 2.3 RELÓGIO INTERNO... 2 2.4 ENTRADA DE PULSOS... 2 2.5 ENTRADA DIGITAL AUXILIAR... 2 2.6 REGISTRO DA CONTAGEM DE PULSOS (LOG)

Leia mais

PAINEL ELETRÔNICO SONYTECH

PAINEL ELETRÔNICO SONYTECH PAINEL ELETRÔNICO SONYTECH Nathalio M. de A. Santos, Osamu Saotome Departamento de Eletrônica Aplicada, Instituto Tecnológico de Aeronáutica Resumo O presente artigo mostra o desenvolvimento do Painel

Leia mais

DIGITAL. Inovando seu futuro! MANUAL DE INSTRUÇÕES. TS 9020-T Professional TRANSPORT STREAM MONITOR. Assistência Técnica CARACTERÍSTICAS TÉCNICAS

DIGITAL. Inovando seu futuro! MANUAL DE INSTRUÇÕES. TS 9020-T Professional TRANSPORT STREAM MONITOR. Assistência Técnica CARACTERÍSTICAS TÉCNICAS POWER CARACTERÍSTICAS TÉCNICAS Características Gerais Entrada de Sinal Conector Interface de Saída Conector Configurações mínima do PC Memória HD Porta 16 entradas - compatível com TTL Bloco Terminal 2.0

Leia mais

Flip-Flops (Aplicações) Prof. Rômulo Calado Pantaleão Camara

Flip-Flops (Aplicações) Prof. Rômulo Calado Pantaleão Camara Flip-Flops (Aplicações) Prof. Rômulo Calado Pantaleão Camara Carga Horária: 2h/60h Pulsos Digitais Pulso positivo: executa sua função quando está em nível alto Pulso negativo: executa sua função quando

Leia mais

Vitor Amadeu Souza. vitor@cerne-tec.com.br

Vitor Amadeu Souza. vitor@cerne-tec.com.br Introdução Vitor Amadeu Souza vitor@cerne-tec.com.br Veremos agora os passos para enviar uma string de caracteres pela USB. Porém antes veremos um tutorial referente a porta USB. Tutorial USB Sistema de

Leia mais

UNIVERSIDADE FEDERAL DE SANTA CATARINA EEL5105 Circuitos e Técnicas Digitais Prof. Eduardo L. O. Batista

UNIVERSIDADE FEDERAL DE SANTA CATARINA EEL5105 Circuitos e Técnicas Digitais Prof. Eduardo L. O. Batista UNIVERSIDADE FEDERAL DE SANTA CATARINA EEL5105 Circuitos e Técnicas Digitais Prof. Eduardo L. O. Batista EXPERIMENTO 1 INTRODUÇÃO AO LABORATÓRIO A. Introdução O Quartus II é um software utilizado para

Leia mais

PROJETO DE CIRCUITOS INTEGRADOS VLSI

PROJETO DE CIRCUITOS INTEGRADOS VLSI Universidade Federal do Piauí Centro de Tecnologia Curso de Engenharia Elétrica PROJETO DE CIRCUITOS INTEGRADOS VLSI Prototipagem Prof. Marcos Zurita zurita@ufpi.edu.br www.ufpi.br/zurita Teresina - 2013

Leia mais

Módulo FGM721. Controlador P7C - HI Tecnologia

Módulo FGM721. Controlador P7C - HI Tecnologia Automação Industrial Módulo Controlador P7C - HI Tecnologia 7C O conteúdo deste documento é parte do Manual do Usuário do controlador P7C da HI tecnologia (PMU10700100). A lista de verbetes consta na versão

Leia mais

Microprocessadores e Microcontroladores Prof. Edilson R. R. Kato Simulação do computador SAP-1

Microprocessadores e Microcontroladores Prof. Edilson R. R. Kato Simulação do computador SAP-1 UNIVERSIDADE FEDERAL DE SÃO CARLOS CENTRO DE CIÊNCIAS EXATAS E TECNOLOGIA (CCET) DEPARTAMENTO DE COMPUTAÇÃO Microprocessadores e Microcontroladores Prof. Edilson R. R. Kato Simulação do computador SAP-1

Leia mais

Novas tecnologias para sistemas de aquisição de dados

Novas tecnologias para sistemas de aquisição de dados 1 Novas tecnologias para sistemas de aquisição de dados André Bassoli Napoleão Engenheiro de Aplicação de Campo Luciano Borges Engenharia de Aplicações 2 Agenda Melhorias de Software e Hardware Comuns

Leia mais

Capítulo 8 Arquitetura de Computadores Paralelos

Capítulo 8 Arquitetura de Computadores Paralelos Capítulo 8 Arquitetura de Computadores Paralelos Necessidade de máquinas com alta capacidade de computação Aumento do clock => alta dissipação de calor Velocidade limitada dos circuitos => velocidade da

Leia mais

Microprocessadores II - ELE 0327 CAPÍTULO 2 ESTUDO DA CPU 8086/88

Microprocessadores II - ELE 0327 CAPÍTULO 2 ESTUDO DA CPU 8086/88 Microprocessadores II - ELE 0327 CAPÍTULO 2 ESTUDO DA CPU 8086/88 2.1 - Introdução CPUs de 8 ou 16 bits? O 8085 e o sistema operacional CP/M Semelhança entre a linguagem de máquina do 8085 e o do 8086

Leia mais

www.vwsolucoes.com Copyright 2012 VW Soluções

www.vwsolucoes.com Copyright 2012 VW Soluções 1 Apresentação O Cabo PicKit2 é uma versão simplificada do gravador PicKit2 da Microchip com a idéia de podermos substituir o microcontrolador dos Clp Pic 28 e/ou Clp Pic40 por outros com maiores capacidades

Leia mais

Arquitetura de Computadores. Ivan Saraiva Silva

Arquitetura de Computadores. Ivan Saraiva Silva Arquitetura de Computadores Introdução Ivan Saraiva Silva Sumário Introdução Bibliografia Recomendada O que é um computador Organização de um Computador Modelo de Von Neumann IAS Máquina de Von Neuman

Leia mais

Microcomputadores. Prof. Marcelo GonG. onçalves. Rubinstein

Microcomputadores. Prof. Marcelo GonG. onçalves. Rubinstein Microcomputadores Prof. Marcelo GonG onçalves Rubinstein Depto. de Eletrônica e Telecomunicações Faculdade de Engenharia Universidade do Estado do Rio de Janeiro Introdução Aplicações de microcomputadores

Leia mais

Security Shop MRS. Media Relay System. Manual do Usuário

Security Shop MRS. Media Relay System. Manual do Usuário Página 1 de 20 Security Shop MRS Media Relay System Manual do Usuário Página 2 de 20 Conteúdos: Conteúdos:... 2 Figuras:... 3 1. Introdução... 4 1.1 Âmbito do Documento... 4 1.2 Terminologia... 4 2. GERAL...

Leia mais

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES. Prof. André Dutton

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES. Prof. André Dutton ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES Prof. André Dutton EMENTA: Conceitos fundamentais e histórico da ciência da computação; Histórico dos computadores, evolução e tendências; Modalidades de computadores

Leia mais

Distribuição do sinal ISDB-T BTS por diferentes meios usando ferramenta de compressão e adaptação

Distribuição do sinal ISDB-T BTS por diferentes meios usando ferramenta de compressão e adaptação Distribuição do sinal ISDB-T por diferentes meios usando ferramenta de compressão e adaptação Broadcast & Cable SET 2011 24/8/2011 Prof. Dr. Cristiano Akamine Escola de Engenharia Mackenzie Universidade

Leia mais

1 - Processamento de dados

1 - Processamento de dados Conceitos básicos sobre organização de computadores 2 1 - Processamento de dados O que é processamento? O que é dado? Dado é informação? Processamento é a manipulação das informações coletadas (dados).

Leia mais

Estrutura de um Computador

Estrutura de um Computador SEL-0415 Introdução à Organização de Computadores Estrutura de um Computador Aula 7 Prof. Dr. Marcelo Andrade da Costa Vieira MODELO DE VON NEUMANN PRINCÍPIOS A arquitetura de um computador consiste de

Leia mais

CAPÍTULO 1 INTRODUÇÃO

CAPÍTULO 1 INTRODUÇÃO 1 CAPÍTULO 1 INTRODUÇÃO O computador não é uma máquina interessante se não pudermos interagir com ela. Fazemos isso através de suas interfaces e seus periféricos. Como periféricos serão considerados os

Leia mais

DISCIPLINA: Sistemas Digitais

DISCIPLINA: Sistemas Digitais DISCIPLINA: Sistemas Digitais Vigência: a partir de 2007/1 Período Letivo: 4º semestre Carga Horária Total: 45h Código: EE.212 Ementa: Implementação Física. Tecnologia de CIs programáveis. FPGA. Atraso

Leia mais

R S Q 0 0 1 0 1 0 1 0 0 1 1 0 Tabela 17 - Tabela verdade NOR

R S Q 0 0 1 0 1 0 1 0 0 1 1 0 Tabela 17 - Tabela verdade NOR 19 Aula 4 Flip-Flop Flip-flops são circuitos que possuem a característica de manter os bits de saída independente de energia, podem ser considerados os princípios das memórias. Um dos circuitos sequenciais

Leia mais

Disciplina: Laboratório de Circuitos Digitais

Disciplina: Laboratório de Circuitos Digitais Universidade Federal de São Carlos Disciplina: Laboratório de Circuitos Digitais Prof. Dr. Emerson Carlos Pedrino 7ª Prática: Introdução à Verilog-HDL e á Lógica Sequencial Data: 22/05/2014 Nome: Adrián

Leia mais

Disciplina: Processamento Digital de Sinais (ENG577) Aula 05 Parte 2: Dispositivos de Hardware Programável Prof.: Eduardo Simas eduardo.simas@ufba.

Disciplina: Processamento Digital de Sinais (ENG577) Aula 05 Parte 2: Dispositivos de Hardware Programável Prof.: Eduardo Simas eduardo.simas@ufba. Universidade Federal da Bahia Escola Politécnica Programa de Pós Graduação em Engenharia Elétrica Disciplina: Processamento Digital de Sinais (ENG577) Aula 05 Parte 2: Dispositivos de Hardware Programável

Leia mais

Aula 04 A. Barramentos. Prof. Ricardo Palma

Aula 04 A. Barramentos. Prof. Ricardo Palma Aula 04 A Barramentos Prof. Ricardo Palma Definição Em ciência da computação barramento é um conjunto de linhas de comunicação que permitem a interligação entre dispositivos, como o CPU, a memória e outros

Leia mais

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 03 Conceitos de Hardware e Software parte 02. Cursos de Computação

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 03 Conceitos de Hardware e Software parte 02. Cursos de Computação Cursos de Computação Sistemas Operacionais Prof. M.Sc. Sérgio Teixeira Aula 03 Conceitos de Hardware e Software parte 02 Referência: MACHADO, F.B. ; MAIA, L.P. Arquitetura de Sistemas Operacionais. 4.ed.

Leia mais

O diagrama ASM contém dois elementos básicos: o bloco de estado e o bloco de decisão.

O diagrama ASM contém dois elementos básicos: o bloco de estado e o bloco de decisão. 14 3.2 Projeto da Unidade de Controle (VHDL) 3.2.1 Diagrama ASM (Algorithmic State Machine) ASM é um fluxograma através do qual se representa a seqüência de ações que a unidade de controle de um sistema

Leia mais

WWW.cerne-tec.com.br. Comunicação USB com o PIC Vitor Amadeu Souza Parte II vitor@cerne-tec.com.br

WWW.cerne-tec.com.br. Comunicação USB com o PIC Vitor Amadeu Souza Parte II vitor@cerne-tec.com.br 1 Comunicação USB com o PIC Vitor Amadeu Souza Parte II vitor@cerne-tec.com.br Continuando com o artigo apresentado na edição passada de comunicação USB com o PIC, continuaremos nesta edição o estudo do

Leia mais