Baixe o app para aproveitar ainda mais
Prévia do material em texto
Arquitetura de sistemas embarcados Lúcio Rodrigo de Carvalho1 Departamento de Ciências de Computação e Estatística Instituto de Biociências, Letras e Ciências Exatas Universidade Estadual Paulista “Júlio de Mesquita Filho” (UNESP) São José do Rio Preto – SP – Brasil luciocarvalho@ifsp.edu.br Resumo Sistemas embarcados fazem parte de nosso cotidiano, podendo ser notados em vários dispositivos e equipamentos, tais como eletrodomésticos, carros, dentre outros. Este artigo evidencia as principais características de um sistema embarcado e sua utilização. Os estudos de caso apresentam a arquitetura de quatro tipos de equipamento que utilizam esse tipo de sistema, além da utilização de um sistema embarcado para verificação de oleodutos. Palavras-chave: sistemas embarcados, arquitetura. 1. Introdução Segundo Tanembaum, a partir da quarta geração de computadores - iniciada na década de 80 – e a possibilidade da integração de circuitos em escala muito alta (VLSI), tornou possível a popularização dos computadores pessoais. Dessa forma, com o aprimoramento dessa técnica ao longo dos anos, passamos a perceber uma revolução na vida cotidiana: máquinas de escrever foram substituídas por computadores, operações bancárias passaram a ser possíveis através do acesso a um browser, pelo computador, além de outras mudanças em equipamentos e hábitos. Esta revolução que aconteceu em diversos segmentos se deve ao principal fato de que, os processadores – antes limitados à utilização em computadores pessoais e de grande porte -, passaram a ser utilizados em outros dispositivos tais como em televisores, máquinas de lavar, automóveis, relógios e até mesmo em cartões de identificação pessoais; concebendo, assim, os sistemas embarcados (Zurita, s.d.). 1 Graduado em Ciência da Computação pelo Instituto Municipal de Ensino Superior de Catanduva e Pós Graduado em Segurança e Redes de Computadores. Pós Graduado em Desenvolvimento de Software para Web pela Universidade Federal de São Carlos. Licenciado em Matemática pelo Centro Universitário Claretiano. Licenciado em Computação pelo IFSP Matão. Mestrando em Ciência da Computação pela Unesp. Professor do Instituto Federal de São Paulo – campus Catanduva. Com base nesta revolução, neste artigo, inicialmente é conceituado o tema sistemas embarcados e a principal motivação para a utilização desse tipo particular de sistema. A seguir são evidenciados itens arquiteturais pertinentes a esse tipo de sistema, sendo ancorados a apresentação da arquitetura de alguns equipamentos tais como Play Station 2, a câmera digital Sanyo VPC-Sx500, um sensor de identificação e um modelo de carro inteligente. Por fim, são apresentadas considerações sobre um sistema embarcado para verificação de oleodutos como exemplo de aplicação diferenciada de um sistema embarcado, seguido das conclusões. 2 – Sistemas Embarcados Um sistema embarcado é definido como sendo “um sistema baseado em um microprocessador, que é projetado para controlar uma função ou uma gama de funções, e não para ser programado pelo usuário final como ocorre com os PCs” (Heath apud Zurita). Nesta linha, Oliveira evidencia que os sistemas embarcados podem possuir, além de microprocessadores, processadores, dispositivos programáveis, dentre outros. Através dos exemplos de sistemas embarcados descritos neste artigo, será possível visualizar os diferentes componentes utilizados nesse tipo de sistema. Wilmshurst cita, entre outros exemplos, sistemas embarcados contidos em refrigeradores e carros. Neste primeiro, podem existir sistemas embarcados responsáveis pela identificação de temperaturas externas ao refrigerador e a consequente mudança de temperatura interna no sentido de economia de energia; em carros, é possível a presença de um sistema embarcado para que os sensores – a exemplo de um sensor para travamento da porta – possam ser controlados. É importante citar algumas características que distinguem um sistema embarcado de um computador convencional: a principal delas é que os sistemas embarcados são destinados à resolução de tarefas específicas – uma ou mais tarefas, dependendo do contexto de utilização – onde, em um computador convencional, inúmeras tarefas e funcionalidades deverão ser tratadas. Outro item importante está relacionado ao tipo de arquitetura e processadores utilizados pelos sistemas embarcados: existe uma grande gama de processadores e diferentes arquiteturas que podem ser utilizados de diferentes formas tendo-se como ponto inicial questões de projeto desse tipo de sistema (Zurita, s.d.). Uma vez que os sistemas embarcados são diferenciados – comparando-os a sistemas convencionais - em nível de software e hardware – o projeto de um sistema desse tipo também segue outros moldes, como exemplo da metodologia meet-in-the-middle – sendo uma das mais utilizadas (Gajski apud Zurita). Essa metodologia é uma combinação entre as metodologias bottom-up e top-down. Nesse sentido, podemos citar o fluxo proposto por Arnold Berger, que divide em sete fases o ciclo de vida de desenvolvimento de um sistema embarcado: especificação do produto, particionamento do projeto em componentes de hardware e software, iteração e refinamento do particionamento, tarefas independentes de projeto do hardware e do software, integração dos componentes de hardware e software, testes, aceitação e lançamento do produto e, por fim, manutenção e atualização contínua. Os sistemas embarcados possuem características de tempo real (a exemplo do tempo limite para acionamento de um air bag). Tais sistemas também tratam a questão de consumo de energia e operação em condições extremas de uma forma diferenciada, uma vez que os recursos de hardware e software são proporcionalmente menores se comparados com sistemas convencionais (Hennessy, 2009). Segundo Zurita, o número de sistemas embarcados vem aumentando consideravelmente, onde deverão chegar à casa de 33% de sua incidência em todo o mundo até 2013. 3 – Arquitetura de Sistemas Embarcados A arquitetura de um sistema embarcado compreende a utilização de componentes programáveis, tais como um DSP ou um microcontroladores, além de processadores, memórias, dentre outros. O grande desafio na definição de um projeto ligado a um sistema embarcado é a integração de diferentes componentes de hardware com os componentes programáveis e elementos de processamento; dessa forma, é possível chegar a uma arquitetura heterogênea, onde o custo de desenvolvimento é um atrativo decorrente da utilização de uma arquitetura que une diferentes componentes (Lin, s.d.). A Figura 01 evidencia arquitetura heterogênea ligada a um sistema embarcado genérico. Figura 01 – Arquitetura heterogênea de sistema embarcado genérico (Lin, s.d.) Com base na afirmativa proferida por Lin, a seguir são apresentados quatro equipamentos que envolvem a utilização de sistemas embutidos. Podemos verificar a existência de arquiteturas heterogêneas, já que utilizam diferentes componentes na definição de seus projetos. 3.1 – Play Station 2 O primeiro estudo de caso de um equipamento refere-se ao Play Station 2. Como este equipamento é utilizado para o uso quase exclusivo de jogos e ao fluxo constante de gráficos e áudio, seu projeto leva uma técnica diferenciada quanto questões de memória, vistos a seguir. A Figura 02 evidencia Diagrama de Blocos do Play Station 2. Figura 02 – Diagrama de Blocos do Play Station2 (Hennesy, 2009) Analisando a Figura 01, podemos verificar a presença de um processador de entrada e saída, memória principal, Emotion Engine e um sintetizador gráfico, evidenciado com detalhes seguir. O processador de entrada e saída (IOP) é responsável pelo tratamento dos dispositivos de entrada e saída tais como dispositivos USB, itens PCMCIA, modem, DVD Rom, saída e entrada de som. Inclui, ainda, um processador MIPS de 34Mhz que atua como emulador para os jogos fabricados para versões de Play Station anteriores ao Play Station 2. A memória principal conta com dois chips DDRDRAM PC 800 (400 Mhz) com 32 Mb de memória e largura de banda 3,2Gb/s (Hennesy, 2009). O Emotion Engine recebe entradas do IOP (processador de entrada e saída) e cria listas de exibição que serão destinadas ao sintetizador gráfico. Na estrutura do Emotion Engine podemos notar a presença de duas unidades de vetor: unidade de vetor 0 (VPU0) e unidade de vetor 1 (VPU1). Pensando na agilidade e customização no processamento, as unidades de vetor são utilizadas para processarem dados diferenciados. Podemos pensar no processamento de um jogo onde temos primeiro plano (personagem do jogo se movendo) e segundo plano (uma tela padrão de fundo que quase não se modifica): a unidade de vetor 0 lida com o processamento de dados ligados ao primeiro plano e a unidade de vetor 1 aos dados de segundo plano. O Emotion Engine ainda possui um co-processador IPU (Image Processing Unit) que acelera a decoficação MPEG e uma DMA de 10 canais que definem as transferências entre as memórias pequenas que fazem parte do chip (Howes, s.d.). Por fim, apresentamos o sintetizador gráfico: responsável por receber os comandos de rendenização (listas de exibição) do Emotion Engine, efetuar as transformações necessárias e exibir o conteúdo final através de uma interface NTSC. Pensando na subdivisão de tarefas específicas para cada componente do sistema, o sintetizador gráfico possui memória DRAM embutida, além de um buffer de vídeo completo e dezesseis processadores de pixel paralelos para auxiliar no processo de recebimento das listas de exibição e posterior exibição. A concepção de uma arquitetura tendo memórias separadas é uma característica de muitos sistemas embarcados (Hennesy, 2009). 3.2 - Câmeras Sanyo VPC-SX500 A câmera digital pode ser considerada um sistema embarcado, aqui evidenciado através do modelo VPC-SX500 da Sanyo. Ao ligar uma câmera digital, inicialmente é feito um teste com todos os componentes da máquina e, caso algum componente apresente alguma anormalidade uma mensagem é exibida na tela LCD. A maioria das câmeras digitais possuem um dispositivo CCD (responsável por capturar a iluminação do ambiente e fazer os ajustes necessários), microfone e auto falante, compactação MJPEG, memória flash, dentre outros. (Hennesy, 2009). A questão do consumo de energia em sistemas embarcados é um dos itens essenciais quando da definição de seu projeto, sendo que existem várias técnicas (concepção de circuitos e hierarquia de memória, por exemplo) para que o projeto de hardware possa ser concebido de forma que possa consumir menos energia (Junior, 2007). Nesse quesito, a organização da câmera Sanyo busca um melhor desempenho quando o assunto é gerenciamento de energia pelos componentes constantes no hardware: isso se resume a uma maior autonomia de tempo com a câmera ligada com apenas um par de pilhas. Nessa linha, o modelo de hardware adotado pela câmera digital Sanyo VPC-SX 500, se trata de um chip do tipo System on Chip (Hennesy, 2009). Segundo Zhu, um System on Chip integra uma variedade de componentes computacionais ou eletrônicos em um único circuito integrado. A Figura 03 demonstra sistema em um chip encontrado nas câmeras digitais da Sanyo. Figura 03 – Sistema em um chip encontrado em câmera digital Sanyo (Hennesy, 2009) Podemos verificar a existência de dois barramentos, sendo um barramento de sinal e um barramento de CPU para que possa obter um melhor desempenho, trabalhando com itens específicos e de velocidades diferenciadas. Dessa forma, o barramento de CPU, de 16 bits, atende a dispositivos mais lentos (smart media, DMA) e o barramento de sinais, de 32 bits, atende a SDRAM, processador de sinais, codificador JPEG motion, codificador NTSC/PAL, dentre outros. Verificamos a presença de outros itens, tais como o dispositivo CCD, memória flash, ponte de barramento (que faz ligação entre os barramentos de CPU e o barramento de sinais), codificadores, dentre outros (Hennesy, 2009). 3.3 – Sistema para Controle de Acesso O estudo de caso desenvolvido por Marcondes evidencia a construção de um controlador de acesso através da leitura de smart cards. A Figura 04 demonstra a arquitetura utilizada neste equipamento. Figura 04 - Arquitetura utilizada em sistema de controle de acesso (Marcondes, s.d.) A leitura do cartão smart card é feita através de leitor específico, onde as informações são enviadas ao sistema de forma serial, sendo verificada a existência de cadastro em um banco de dados armazenado na memória EEPROM de 512 bytes. Caso as informações de cadastro sejam localizadas, uma trava é liberada através da interface GPIO. O gerenciamento do sistema é feito por um microcontrolador AVT ATmega 16 (Marcondes, s.d.). Um microcontrolador é um componente que possui microprocessador, memória e periféricos no mesmo encapsulamento (Zanco, 2011). Wilmshurst reafirma que os microcontroladores possuem um núcleo de processamento simples, memória de dados e memória de programa, além de interfaces específicas para periféricos e entradas e saídas analógicas e digitais (Wilmshurst, 2007). O microcontrolador utilizado na solução de leitura de cartões utiliza um processador AVR de 8 bits com espaço de endereçamento de 16 bits, 16 Kb de memória de programa, 1 Kb de memória RAM, possuindo ainda, conjunto de dispositivos como temporizadores programáveis, controladores de sinais e ADCs (Analogic Digital Converters). 3.4 – Veículos inteligentes A automação veicular visa à segurança do motorista, além da automatização das tarefas realizadas, tais como: seguir na pista, se manter na faixa correta, dentre outros. Visando a segurança e apoio ao motorista, a indústria tem investido em sistemas embarcados, servindo como exemplos o freio GPS e sistema de estabilização do veículo (Jung, 2005). Segundo He, um veículo inteligente é um dispositivo que não precisa de pessoas para dirigir, mas que utilizam a vantagem do GPS ou de rodovias projetadas para este tipo de veículo para realizar autopilotagem. Nessa mesma linha, Jung evidencia a tecnologia drive-by-wire, que possibilita a dirigibilidade do veículo a partir de sinais eletrônicos e a utilização de sistemas embarcados atuando como co-pilotos e, ainda, ajudando o motorista na tomada de decisões. Para um melhor entendimento desse tipo de veículo, analisamos a arquitetura de um veículo inteligente proposto por He, através da Figura 05. Esta arquitetura aborda especificamente o sistema de navegação do veículo inteligente. Figura 05 – Arquitetura sistema de navegação de veículo inteligente (He, 2010) Esta arquitetura consiste em diversos módulos responsáveis pela navegação, módulo rápido de detecção, unidade motora, módulo de direção, módulo do motor e módulo para comandos de ligação e desligamento do equipamento. O módulo de navegação, que utiliza vídeo padrão PAL, obtém as informações através de uma câmera CCD (Charge Coupled Device). O microcontroladorMC9S12DG128 faz parte do núcleo de controle deste equipamento. O chip LM1881 separa o vídeo para obtenção de sinais verticais e horizontais. O controlador MC33886 é responsável por controlar o motor (envolvendo controle específico para a mudança de ângulo das rodas e posterior dirigibilidade). O módulo rápido de detecção utiliza um sensor fotoelétrico fixado na parte superior frontal do carro para que possa verificar o caminho percorrido, provendo dados para o sensor de distância percorrida (He, 2010). 3.5 - Filtragem e pré-detecção de vazamento em oleodutos Até o presente momento, verificamos alguns equipamentos onde existe a presença de sistemas embarcados. No entanto, existem inúmeras aplicações de sistemas embarcados baseados nos componentes que podem estar presentes neste tipo de sistemas, tais como DSP, microcontroladores ou microprocessadores que podem estar dispostos de uma forma diferenciada. É o caso do estudo realizado por Duarte, onde é proposto um sistema embarcado baseado em DSP para a detecção de vazamento de óleo em oleodutos. O sistema proposto por Duarte é evidenciado na Figura 06, para um melhor entendimento. Figura 06 – Sistema de aferimento de pressão em oleoduto Na tubulação do oleoduto são instalados medidores de pressão em lugares estratégicos, onde cada medidor afere vinte amostras por segundo da vazão do líquido que passa pelo cano do oleoduto. As informações coletadas pelo medidor são enviadas ao DSP que, tendo-se sido programado para receber as amostras e efetuar um cálculo de média – verifica se houve vazamento no intervalo de tempo. Em caso positivo, as informações são enviadas para um CLP (Controlador Lógico Programável) que, por sua vez, envia os dados via wireless para a supervisão geral, onde serão analisados e as atitudes serão tomadas, se necessário (Duarte, 2006). A Tabela 01 evidencia as principais características do DSP utilizado neste experimento. Velocidade de Processamento 600 Mhz Arquitetura RISC com 10 níveis de pipeline Tamanho das instruções 16 / 32 bits Memória SRAM 148 kb Memória Flash 4 Mb Linguagem de Programação C / C++ e Assembler Tabela 01 – Características DSP (Fonte: Blackfin Embedded Processor ADSP-533 Analog Devices apud Duarte) 4 – Conclusão A utilização de sistemas embarcados tem crescido ao longo dos anos, podendo ser encontrados em diversos tipos de equipamentos do nosso dia-a-dia, tais como câmeras digitais, veículos, sistemas de controle de acesso, eletrodomésticos, dentre outros. Tendo-se uma gama elevada sistemas embarcados, podemos encontrar diferentes tipos de arquitetura, dependendo do sistema analisado. Como exemplo dessa diferença entre arquiteturas, podemos tomar como base os equipamentos analisados neste artigo: o Play Station 2, a câmera digital Sanyo, um sistema de controle de acesso e um veículo inteligente. Podemos concluir que o projeto associado a este tipo de equipamento deve ser elaborado de forma que exista uma preocupação com o consumo de energia, tamanho do equipamento e funções desempenhadas, resultando assim em arquiteturas diferenciadas para cada tipo de equipamento proposto. Referências Tanenbaum, Andrew S. (1999). “Organização Estruturada de Computadores”. LTC. 4. ed. Wilmshurst, Tim. (2007). “Designing Embedded Systems with PIC Microcontrollers – Principles and Applications”. Elsevier. Oliveira, André Schneider., Andrade, Fernando Souza. (2011) “Sistemas Embarcados – Hardware e Firmware na Prática”. Érica. 2 ed. Hennessy, John L., Patterson, David A. (2009) “Arquitetura de Computadores – uma abordagem quantitativa”. Campus. 4 ed. Zanco, Wagner da Silva. (2011) “Microcontroladores PIC 16F628A/648A – Uma abordagem prática e objetiva”. Érica. 2 ed. Jung, C. R., Osório, F. S., Kelber, C., Heinen, F., (2005) “Computação Embarcada: Projeto e Implementação de Veículos Autônomos Inteligentes”, Anais do CSBC’05 XXIV Jornada de Atualização em Informática (JAI), v. 1, p. 1358-1406, São Leopoldo, RS: SBC. Zurita, Marcos E. P. V., (s.d.) “Projeto de Sistemas Embarcados”, Universidade Federal do Piauí, Curso de Engenharia Elétrica, Campus Universitário Ministro Petrônio Portela. Duarte, Victor J. L., Maitelli, André L., Salazar, Andrés O., Neto, Adrião D. D., Martins, Rodrigo S., Santos, Rodrigo P. R. (2006) “Sistemas embarcados baseados em DSP's para filtragem e pré-detecção de vazamentos em oleodutos”. Anais Rio Oil & Expo and Conference. Lin, Bill., Vercauteren, Steven., Man, Hugo De., (1996) “Embedded Architecture Co- Systhesis and System Integration”. Anais 4th International Workshop on Hardware/Software Co-Design. Howes, Lee W., Price., Paul, Mencer., Oskar, Beckmann., Pell, Oliver. (s.d.) “Comparing FPGAS to graphics accelerators and the playstation 2 using a unified source description”. Department of Computing, Imperial College London. Junior, Arliones Stevert Hoeller, (2007) “Gerência do Consumo de Energia Dirigida pela Aplicação em Sistemas Embarcados” Dissertação de Mestrado. Universidade Federal de Santa Catarina. Zhu, Minling., Wang, Xi., Xu, Min., (s.d.) “The analysis for System-on Chip Application on Full Authority Digital Engine Control System”. School of Jet Propulsion. Beihang University. He, Wang., Yunzhu, Zhang., Quan, Yuan., Hao, Wu., (2010) “Intelligent Vehicle System Design Based on MC9S12 Microcontroller”. College of Information Science and Engineering. Anais International Conference on Electrical and Control Engineering. Northeastern University. Marcondes, Hugo., Junior, Arliones Stvert Hoeller., Wanner, Lucas Francisco., Fröhlich, Augusto M., (s.d.) “Portabilidade de sistemas operacionais no domínio de sistemas embarcados”. Universidade Federal de Santa Catarina. Laboratório de Integração de Software e Hardware.
Compartilhar