Cursos / Automação Industrial / Sistemas Digitais / Aula
Sistemas embarcados possuem outras métricas de eficiência, além das já conhecidas por projetistas de sistemas de computadores pessoais e servidores. Vamos estudar algumas delas:
Consumo de energia: Considerando que muitos sistemas embarcados são móveis, e são alimentados por baterias, temos que projetá-los para consumir o mínimo de energia possível. A tecnologia na fabricação de baterias evolui em ritmo muito menor que as aplicações que fazem uso dessas baterias, logo, a energia disponível deve ser aproveitada da melhor maneira possível. Afinal, não queremos ter que carregar uma bateria de carro para alimentar os nossos celulares, certo?
Área: Muitos dos sistemas embarcados que encontramos no nosso dia a dia são portáteis ou devem ocupar o menor espaço possível dentro do produto onde estão embutidos. Então, devemos sempre buscar projetar sistemas embarcados que ocupem a menor área possível.
Desempenho: Os recursos de hardware na maioria dos sistemas embarcados são bastante limitados. Assim, devemos projetar esses sistemas para atender os requisitos de tempo com o mínimo de recursos possível e com reduzido consumo de energia. Para reduzir o consumo de energia, a frequência do clock e a tensão de alimentação devem ser as menores possíveis. Então, somente devemos ter no sistema embarcado componentes de hardware que sejam necessários. Se, por exemplo, não for necessário realizar uma conversão de grandezas físicas (sinais analógicos) para valores digitais, não devemos utilizar conversores analógico/digital, pois isso ocuparia mais espaço e causaria um aumento do consumo de energia.
Tamanho de código: Todo código de uma aplicação que é executada em um sistema embarcado deve estar presente nele, quase sempre em memória. Muito raramente sistemas embarcados possuem dispositivos de armazenamento magnético, como discos rígidos, para armazenar código, dessa forma, a disponibilidade de memória é muito limitada, por isso, o desperdício de memória deve ser evitado pelos programadores de software embarcado.
Peso: Sistemas portáteis e móveis devem ser leves. Podemos comprovar isso quando comparamos os celulares de primeira geração com os celulares atuais. Sistemas móveis pesados tendem a desaparecer.
Custo: O uso eficiente de componentes de hardware pode baixar o custo final de um sistema embarcado. No mercado de eletrodomésticos, por exemplo, a competitividade é importantíssima e o custo é um fator decisivo para dizer se um produto possui mercado.
Interação com o usuário: Grande parte dos sistemas embarcados não possui teclados, mouse, monitores ou outros dispositivos encontrados em computadores pessoais para realizar interfaceamento com o usuário. Sistemas embarcados possuem interfaces dedicadas, como botões, leds e chaves. Por isso, dificilmente o usuário reconhece a informação sendo transmitida ou processada dentro deles.
Tempo real: Muitos sistemas embarcados possuem requisitos de tempo real, ou seja, precisam de previsibilidade. Não completar uma tarefa em um tempo determinado pode resultar em perda de dados e, consequentemente, de qualidade ou causar danos. Aplicações multimídia podem perder alguns dados com prejuízo apenas para a qualidade, mas em um sistema de controle de airbag em um carro ou em um sistema de controle de um forno industrial isso não pode ocorrer, pois pode resultar em catástrofes, implicando em perdas de vida ou, no mínimo, na destruição do sistema. Sistemas de tempo real não devem utilizar componentes ou técnicas que diminuem o tempo de processamento na média, como memórias cache.
Interação com o ambiente: Tipicamente, sistemas embarcados são reativos ao ambiente, ou seja, eles estão em interação contínua com o ambiente e executam em um ritmo determinado por esse. Pode-se dizer que um sistema reativo é aquele necessita de uma entrada (interação externa, através de sensores) para reagir, dessa forma mudando seu estado atual. Para cada entrada recebida, ele realiza o processamento da informação e gera uma saída, que poderá agir no ambiente, através de atuadores.
Ao contrário dos computadores pessoais, grande parte dos sistemas embarcados é alimentada por pequenas baterias, de forma que a redução de alguns mW/h no consumo pode estender a duração da bateria por dias ou até meses. Nos sistemas embarcados, a responsabilidade de poupar energia recai tanto na engenharia do hardware quanto no desenvolvimento do software. Por exemplo, em um PDA (do inglês Personal Digits Assistants, Assistente Pessoal Digital, também conhecido como Palmtop) o consumo pode ser reduzido em até 60% por meio de alterações na maneira como o software é escrito. Evidentemente, as escolhas no projeto do hardware também têm impacto crucial no consumo de energia do sistema.
Os sistemas embarcados, normalmente, possuem uma natureza portátil, de forma que eles devem ser capazes de suportar as mesmas condições suportadas pelos seus usuários ou sistemas receptores. Por exemplo, um celular smartphone deve ser capaz de operar com temperaturas acima de 40ºC em praias, e temperaturas abaixo de -15º em montanhas ou ainda a 11.000 metros de altitude na cabine de um avião.
Em um sistema embarcado, os recursos são mais restritos do que em computadores pessoais. Por exemplo, a memória RAM nesses sistemas, muitas vezes, não chega a 500 bytes, de forma que todo o código do software deve caber em alguns poucos kB. Uma simples operação matemática pode consumir 1% ou 70% da memória, dependendo do processador e da forma como a operação é escrita. A busca de tamanhos reduzidos pode ser vista na Figura 3, onde vemos um chip da ARM com tamanho de 2x2x0,5 milímetros.
Versão 5.3 - Todos os Direitos reservados