Buscar

SISTEMAS EMBARCADOS

Prévia do material em texto

CAPA
SUMÁRIO
INTRODUÇÃO
O que é um sistema embarcado?
	Um sistema embarcado é um sistema de finalidade especial no qual o computador está completamente encapsulado pelo dispositivo que ele controla. É uma combinação de hardware e software (e talvez partes adicionais mecânicas ou eletrônicas) desenvolvido para realizar uma tarefa dedicada predeterminada com requerimentos específicos. Como esta tarefa específica é bem definida, pode-se desenvolver o sistema para ser mais eficiente, reduzindo o custo de produção e o tamanho do produto final.	Comment by Rafael Pintar Alevato: Como eu havia imaginado, o que é e para que serve se mistura muito e acabei colocando os dois no mesmo lugar, deixando apenas o que é. Se precisar que descrevo mais sobre o que é, tenho muito mais material, apenas quis deixar mais sucinto.
Um computador pessoal, apesar de também ser composto de hardware, software e componentes mecânicos, não é desenvolvido para efetuar uma função dedicada e sim para ser um sistema genérico, não sendo considerado então um sistema embarcado. É comum o utilizar o termo computador de uso geral para diferenciá-lo de um sistema embarcado, apesar de geralmente ter vários sistemas embarcados (geralmente periféricos) como o mouse, o teclado e o modem. Esses três são projetados para realizar uma função específica, o mouse apenas para mexer o cursor, o teclado apenas para digitação e o modem que recebe e envia um sinal digital através de uma linha telefônica. 	Comment by Rafael Pintar Alevato: Este parágrafo achei interessante para descrever a diferença entre um sistema embarcado e um computador pessoal. Achei interessante para deixar mais claro o que é um sistema embarcado.
Frequentemente um sistema embarcado também é um componente dentro de um sistema maior, como por exemplo em carros e caminhões modernos que contém vários sistemas embarcados. Um controla o freio ABS, outro controla as emissões e a quantidade de combustível injetada e outro mostra estas funções no painel.	Comment by Rafael Pintar Alevato: Este parágrafo adiciona informações sobre aonde pode ser encontrado um sistema embarcado.
Note que essas funções poderiam ser construídas sem o uso da integração de processador e software, substituindo por um circuito integrado por exemplo. No entanto o primeiro oferece maior flexibilidade e é geralmente mais fácil, barato e gasta menos energia ao ser utilizado em um sistema embarcado.	Comment by Rafael Pintar Alevato: Aqui mostra a diferença entre um sistema embarcado e um circuito integrado e finaliza a definição de um sistema embarcado.
Por definição, todo sistema embarcado contém um processador e um software, mas a presença de outros componentes são comuns, como as memórias, tanto ROM (Read-Only Memory) como RAM (Random Access Memory), que guardam o código a ser executado e outras informações necessárias. É comum também a presença de entradas e saídas. Entradas são obtidas geralmente na forma de sensores, sinais digitais ou controles externos como botões. Saídas são geralmente mostradores, sinais de comunicação ou alterações no mundo físico externo.
Há também restrições em tempo real, se as funções e os cálculos não são feitos dentro de um tempo específico, o sistema falhará (por exemplo no caso dos freios ABS). E esse é o desafio de se projetar um sistema embarcado, desenvolver um sistema que consegue facilmente prever sua performance, executando os cálculos dentro do tempo que for necessário. Isto pode ser feito através de hardware melhores ou de polimento no software.	Comment by Rafael Pintar Alevato: Conclusão deixando claro os desafios de se projetar um sistema embarcado
Onde são desenvolvidos?
	
	Sistemas embarcados têm como característica principal o fato de serem produzidos para realizar tarefas específicas e pré-definidas. Por esta razão, os sistemas embarcados têm pouca flexibilidade e suas plataformas têm limites bem definidos. Para serem produzidos, então, é necessário que o desenvolvimento do software a ser introduzido no processador (firmware) seja feito em uma plataforma externa ao dispositivo. Isto pode ser feito em um computador pessoal comum, ao qual geralmente se dá o nome de Host.
	As plataformas de desenvolvimento (Host) têm grande capacidade de armazenamento, grande capacidade de processamento, interfaces adequadas para o desenvolvimento, e são muito flexíveis, o que permite executar as ferramentas necessárias para o desenvolvimento do software. As plataformas onde as aplicações desenvolvidas serão executas são chamadas Plataformas Alvo ou Target. Os microprocessadores em geral são exemplos de plataformas alvo.
 	Para que as aplicações produzidas na plataforma de desenvolvimento sejam transferidas às plataformas alvo é necessário uma interface entre as plataformas. Para isto se estabelecem configurações Host/Target. Entre elas estão: Linked Setup, Removable Storage Setup e Standalone Setup. A configuração Linked Setup é a mais utilizada atualmente. Nesta configuração as plataforamas são conectadas através de um cabo. A interface RS-232, USB e Ethernet são as mais comuns na comunicação com o Target. Este tipo de configuração é tambem usado porque possibilita a depuração (ajuste de erros) do software na plataforma alvo.
	Na configuração Removable Storage a cópia da aplicação é transferida por dispositivos removíveis como placas de gravação. Embora seja usado, é obsoleto porque não permite a depuração eficaz do aplicativo.
Há ainda a configuração Standalone. Utilizadas em plataformas robustas, nesta configuração as ferramentas de desenvolvimento são executas na plataforma alvo e a paltaforma de desenvolvimento é utilizada apenas para acessar a plataforma alvo.
TinyOS usado dispositivos de redes sem-fio e Windows CE (Dreamcast) são exemplos de sistemas operacionais embarcados.
Formação necessária
	
	A formação para trabalhar com sistemas embarcados se inicia com uma boa formação em engenharia eletrônica ou da computação, sendo os focos de cada formação diferentes. 
No caso da engenharia eletrônica, o foco maior é no desenvolvimento do hardware, do equipamento que terá o sistema embarcado. Assim, é priorizado o desenvolvimento de componentes tão miniaturizados quanto possível, de forma a obter a maior capacidade de processamento no menor espaço. 
Na engenharia da computação o foco principal é no desenvolvimento de software para operação nestes sistemas, desde o sistema operacional até os programas e aplicativos compatíveis com a capacidade de processamento do equipamento.
	A qualidade da formação do profissional depende de fatores mensuráveis e imensuráveis. Entre os fatores mensuráveis estão a qualidade do curso e da universidade, o índice de aproveitamento acadêmico (notas obtidas), conhecimento diversos como linguagens de programação, e cursos de extensão, especialização e pós-graduação. O principal fator imensurável é o talento do indivíduo, seu esforço pessoal e os demais aspectos que não podem ser medidos através de provas, trabalhos e notas.
É importante destacar que os cursos de engenharia, a exemplo dos cursos da UFSC, têm grande parte de sua carga horária reservada para disciplinas optativas, ou seja, parte do currículo é determinado pelo próprio aluno, podendo este escolher pelo foco em sistemas embarcados ou qualquer outra área que lhe aprouver. 
	No currículo do curso de engenharia eletrônica da UFSC existem disciplinas que, encadeadas, tratam do assunto, a exemplo da optativa INE5439 – Sistemas Embarcados, cujas disciplinas de pré-requisito são EEL5105 – Circuitos e Técnicas Digitais, INE5406 – Sistemas Digitais e INE5411 – Organização de Computadores I.
No programa de Pós-graduação em Engenharia Elétrica da UFSC é oferecida a disciplina EEL410143 - Programação de Sistemas Embarcados.
	
UFSC
	Além da pós-graduação em Engenharia Elétrica com disciplina que trata de Sistemas Embarcados, a UFSC conta com o LCS – Laboratório de Comunicações e Sistemas Embarcados do qual faz parte o GSE - Grupo de Sistemas Embarcados.Com mais de 25 pós-graduandos e alunos de iniciação científica, sob o comando dos professores Professor Dr. Anderson W. Spengler, Professor Dr. Djones Lettnin e Professor Dr. Eduardo Augusto Bezerra, o laboratório desenvolve projetos em Aplicações Espaciais (satélites, microgravidade e nanosatélites), HDL e FPGA, Plataforma ARM, Plataforma virtual baseada em Sistema C, Síntese em alto nível, Verificação Funcional, Design Digital, Desenvolvimento de Driver e Programação de Objeto Orientado.
Mercado de Trabalho
	O profissional formado nesta área não encontra dificuldades para se inserir ao mercado de trabalho, tendo em vista que é uma das áreas que mais cresce no mundo. A demanda por profissional especializado é enorme. Nos Estados Unidos, por exemplo, as empresas não conseguem encontrar profissionais e, por conta disso, os salários estão em alta. No resto do mundo, a situação não é diferente, por esse motivo a demanda deve aumentar ainda mais nos próximos anos. 
No Brasil o uso de sistemas embarcados em projetos inovadores já é realidade há algum tempo, um exemplo disso são as urnas eletrônicas utilizadas nas últimas eleições, contudo o grande número de empregos ofertados pelo mercado ficam comprometidos pela falta de profissionais qualificados. A pesquisa feita pela ABINEE só comprova esse fato, segue: “De acordo com a Associação Brasileira da Indústria Elétrica e Eletrônica (ABINEE) a demanda do setor é 50% maior do que a formação de profissionais na área.”.
A taxa de crescimento médio anual esperada para o período dos póximos cinco anos é de 14%, segundo o estudo da BCC Recearch, para o crescimento se consolidar precisamos ter profissionais especializados e preparados para a demanda ofertada.
O futuro dos embarcados está em sistemas inteligentes e conectados a internet, devido ao constante crescimento tecnológico o profissional deverá sempre mante-se atualizado diante do mercado e se adequar aos padrões e quesitos já pré estabelecidos, tendo em vista recente pesquisa feita pelo IPEA(Instituto de Pesquisa Econômica Aplicada) onde aponta e projeta a escacez de engenheiros até 2020. Os profissionais que se enquandrarem nas exigências do mercado de embarcado inteligente estarão um passo a frente para o sucesso profissional. 
Grandes empresas e P&D	Comment by Camila Gasparin: Complementar
	
	Como já mencionado, um sistema embarcado é composto de um software e um dispositivo que execute as ordens do firmware. Os firmwares são produzidos pelas grandes empresas de software, enquanto os dispositivos (hardware) são produzidos principalmente pelas grandes empresas desenvolvedoras de microprocessadores.
Entre as grandes empresas de software estão Microsoft, Oracle, IBM, SAP e Symantec.
As empresas desenvolvedoras de microprocessadores são: Texas Instruments, ARM, Microchip, Freescale, Atmel, STMicroelectronics, NXP, Intel, Renesas, Xilinx, Altera, Broadcom, AMD, Silicon Labs, Maxim, Analog Devices, Zilog, Cypress, Samsung, NVIDIA, Qualcomm.
Aplicações
	
	As aplicações são as mais variadas possíveis nos mais diferentes lugares. Hoje em dia, em praticamente qualquer lugar há um sistema embarcado realizando alguma função, desde forno micro-ondas até aplicações espaciais. Alguns exemplos de projetos e os desafios encontrados estão mostrados a seguir.
Relógio Digital	Comment by Rafael Pintar Alevato: Fazer subdivisões aqui, não sei como fazer isso pela norma hehe.
	
	As funções usuais em um relógio digital hoje em dia são a exibição do tempo (incluindo a data normalmente), a medida da duração de um evento em centésimos de segundo e alarme. Todas estas tarefas são simples e não requerem muito processamento ou memória e normalmente a única razão para se usar um processador é para aproveitar o mesmo projeto para os vários modelos de uma mesma marca.
O típico relógio digital contém um simples e barato processador de 4-bit e como este não consegue registrar muita memória, geralmente ele tem a própria memória ROM no chip. Como há pouco registro este componente não necessita de uma memória RAM e todas as funções eletrônicas (processador, memória, contadores, real-time clocks) são armazenadas em um único chip. Os únicos outros elementos de hardware de um relógio digital são as entradas (botões) e as saídas (mostrador e alto-falante).	Comment by Rafael Pintar Alevato: Não existe tradução para chip até aonde eu procurei.	Comment by Rafael Pintar Alevato: Como é nome de um componente não quis traduzir.
A qualidade do relógio vem da qualidade do chip usado na fabricação do mesmo e de um software bem trabalhado. Modelos mais baratos priorizam o baixo custo de produção em relação a contar o tempo de maneira precisa. Modelos mais caros tem um custo de produção maior, mas realizado com máquinas de melhor qualidade o que lhe dá mais confiabilidade.
Console de Videogame
	
	Consoles de videogame podem ter capacidade de processamento maior do que os computadores pessoais, mas mantendo baixo custo de produção. Este requerimento de ser barato e ter alta performance é o desafio das empresas que o produzem. Normalmente as companhias não se importam com quanto custa para desenvolver um sistema melhor desde que o custo da produção deste novo sistema seja barato, as vezes gastando milhões de reais para desenvolver um processador customizado. Portanto os processadores de um videogame não são os mesmo de um computador pessoal, sendo altamente especializado para atender as demandas de um jogo eletrônico.
Como o custo de produção é tão importante neste mercado, os projetistas usam truques para distribuir os custos. Uma tática comum é mover memória e outros periféricos eletrônicos do circuito principal para os cartuchos de jogos. Isto ajuda a reduzir o custo do console, mas aumenta o preço de cada jogo.
No entanto, cada vez mais os videogames vem se aproximando de computadores pessoais, fazendo com que eles tenham que desempenhar as mais variadas funções, porém ainda se focam em especializar o processamento para executar jogos eletrônicos e assim diminuir seu custo.
Veículos em Marte
	
	Em 1976, duas espaçonaves não tripuladas aterrissaram em Marte, chamado programa Viking. Como parte de sua missão, elas tinham que coletar amostras do solo de Marte, analisar sua composição química e transmitir os resultados para os cientistas na Terra. Claramente neste caso confiabilidade nos resultados era a prioridade.
Se uma memória tivesse falhado, ou se o software contivesse problemas, ou se um componente eletrônico fosse quebrado durante a aterrisagem, toda a missão poderia ter sido desperdiçada. Então várias destas falhas possíveis e muitas outras tiveram que ser eliminadas adicionando circuitos redundantes ou funcionalidades extras. Exemplos são processadores extras, função de diagnóstico de memórias, um hardware temporizado para reinicializar o sistema caso o mesmo ficasse emperrado.
Mais recentemente em 1997, a NASA lançou a missão Pathfinder e seu objetivo principal era mostrar que era possível chegar em Marte com um orçamento limitado. Como o pensamento era reduzir os custos, foi reduzido um pouco as redundâncias no sistema, mas ainda foi conseguido colocar mais processamento do que na missão Viking, já que houve muitos avanços tecnológicos desde a década de 70. 
Pathfinder é na verdade dois sistemas embarcados, um módulo de aterrisagem e o veículo não tripulado. O módulo tinha um processador de 32-bit e 128 MB de memória RAM. O veículo no entanto tinha um processador de 8-bit e 512 kB de memória RAM. Estas escolhas refletem as necessidade diferentes de cada sistema, otimizando a quantidade de processamento necessário e a velocidade necessária para realizar os cálculos.
CONCLUSÃO
REFERÊNCIAS
Programming Embedded Systems: With C and GNU Development Tools, por Michael Barr, Anthony Massa.
http://www.ece.ncsu.edu/research/cas/ecs
http://www.engineersgarage.com/articles/embedded-systems
http://pt.wikibooks.org/wiki/Sistemas_operacionais/Sistemas_embarcados
www.embarcados.com.brwww.confea.org.br
www.escbrazil.com.br
www.embarcados.com.br
www.bccrecearch.com
http://www.lcs.ufsc.br/
http://ppgeel.posgrad.ufsc.br/areas-de-conhecimento/processamento-de-informacao/circuitos-e-sistemas-integrados-micro-nano-eletronica/
http://gse.ufsc.br

Continue navegando