O que é Software Embutido?

‘O que é Software Embutido?’ é uma pergunta comumente feita. O mundo e a sociedade ao nosso redor é moldado e governado por sistemas baseados em microprocessadores – marcapassos, telefones celulares, eletrodomésticos, carros, sistemas de controle ferroviário, satélites – a lista é quase literalmente infinita. Sem eles, não haveria energia, água corrente ou fornecimento de alimentos. O negócio ou o transporte seria impossível. A doença se espalharia e a sociedade se desintegraria rapidamente.

O software executado nesses sistemas é chamado de software embarcado. Este é um software de computador que é incorporado em sistemas de hardware escritos para controlar máquinas ou dispositivos. O software embutido é tipicamente projetado para o hardware específico em que é executado e freqüentemente executa uma função específica, embora um único componente de hardware possa conter vários programas de software embutidos.

Qualquer componente de tecnologia que tenha placas de circuito e chips de computador provavelmente terá software embutido dentro dele. Os fabricantes incorporam software incorporado na eletrônica em carros, telefones, modems, aparelhos, brinquedos, sistemas de segurança, marcapassos, televisores e set-top boxes e relógios digitais, por exemplo.

O software incorporado permite muitas das funções avançadas que são comuns em dispositivos modernos. Embora o software embarcado possa ser muito simples, também pode ser muito sofisticado em aplicações como sistemas de controle de processos, armamento militar e aviões.

História do software embarcado

Tecnologia mais inovadora, é frequentemente financiada, pesquisada e desenvolvida para aplicações militares e os sistemas embarcados foram usados na exploração espacial, orientação de mísseis e aviônica desde o final dos anos 30 até meados dos anos 60. Só no final dos anos 60 é que o software embarcado evoluiu ao ponto de ser útil para pessoas fora dessas áreas especializadas.

Nos anos 70, os primeiros chips micro-controladores integrados, como o Intel 8008, fizeram o software embarcado decolar. Este chip único agiu como um computador minúsculo; podia ler dados do mundo real, processá-los e gerar saídas, controlados por um programa de software flexível. Com esses chips, tornou-se possível escrever um único programa, carregá-lo no chip e depois fazer com que esse chip executasse seu programa sempre que recebesse a entrada correta. No final dos anos 80, quase todas as formas de electrónica de consumo tinham algum tipo de chip micro-controlador incorporado no chip.

Nos anos seguintes, o custo de produção de micro-controladores integrados caiu para cêntimos. Como resultado, eles estão em quase todos os dispositivos eletrônicos, e cada um desses chips tem uma ou mais peças de software embutido. Eles estão mesmo em itens que a maioria das pessoas não pensariam ter computadores, como torradeiras, ventiladores elétricos ou brinquedos infantis.

Os desafios em software embarcado

O software embarcado é por definição parte de um sistema de hardware maior, seja um carro, um marcapasso ou um sistema de automação industrial. Estes sistemas não só operam em tempo real e têm que produzir a ação projetada dentro de um tempo especificado em todas as circunstâncias, mas devem operar com recursos limitados, como espaço de memória pequeno, capacidades limitadas de processamento de dados ou baixo consumo de energia. O software incorporado também deve estar em conformidade com uma ampla gama de mudanças em seu ambiente. Processadores, sensores e peças de hardware mudam ao longo do tempo, enquanto o software permanece quase o mesmo. Além disso, o software requer portabilidade, autonomia, flexibilidade e adaptabilidade.

Reliabilidade é fundamental. O comportamento inesperado de um sistema incorporado pode danificar seriamente o seu ambiente operacional. Como os usuários finais exigem comportamentos de longo prazo de sistemas embarcados, o software embarcado deve operar por décadas sem serviço.

Devido à estreita associação do software embarcado com ambientes críticos e riscos de vida ameaçadores, a segurança também é um requisito fundamental. O ciclo de vida no desenvolvimento de software embarcado é regido por padrões que exigem alta qualidade, forte engenharia e processos de gerenciamento. Combinando isso com o uso de tecnologias de ponta, há uma forte demanda pela especialização técnica e profissionalismo exigidos dos engenheiros de software embarcado. À medida que o tamanho e a complexidade do software embarcado cresce, os padrões aplicados ao processo de desenvolvimento de software devem melhorar continuamente, apesar das fortes pressões de custo.

Segurança está se tornando mais importante, pois a ‘internet das coisas’ significa que os sistemas embarcados se tornam mais amplamente utilizados e mais altamente interconectados entre si. Como os dispositivos do dia-a-dia, como máquinas de lavar e refrigeradores, incluem a conectividade como um recurso padrão, a Internet das coisas corre o risco de expor novos níveis de insegurança e novas idéias são necessárias para ajudar a evitar malware e ameaças de hacking.

Conclusão

Software embutido aumenta a variabilidade, configurabilidade, extensibilidade e capacidade de mudança dos produtos do dia-a-dia e também permite uma maior variedade de funcionalidades. É agora uma parte fundamental de muitas coisas que tomamos como garantidas no dia-a-dia.

No futuro, o software embarcado estará em tudo – sua casa automatizada, seu carro inteligente, infra-estruturas de comunicação, instrumentos médicos e implantes, e sistemas de controle onipresentes. Novas tecnologias relacionadas com a energia aumentarão a eficiência da transmissão de corrente eléctrica e fornecerão formas imediatas e eficazes de responder às exigências energéticas e climáticas.

Os sistemas integrados não serão mais definidos pelo hardware de computação que utilizam. Em vez disso, eles serão projetados para fazer qualquer função para alcançar múltiplos e mutáveis objetivos, seja em um microcontrolador, um microprocessador, um processador de sinais, um conjunto biológico ou qualquer outro dispositivo lógico programável.

Quanto mais qualidade de vida desejarmos, mais alto padrão de vida queremos estabelecer em todo o planeta, e quanto mais exigimos segurança e proteção, mais precisamos de software embutido.