As vantagens de utilizar WE Compact em sistemas embarcados

Existem fatores importantes ao realizar uma análise para escolher o sistema operacional mais adequado para um sistema embarcado. É importante lembrar a nossa a definição e discussão sobre o que consideramos um sistema embarcado realizada no artigo Desenvolvendo Sistemas Embarcados com Windows Embedded Compact.

Veja abaixo algumas perguntas que devemos fazer quando queremos escolher o melhor sistema operacional embarcado para um equipamento, sempre após a pergunta vou mostrar como o Windows Embedded Compact aborda a questão explicando assim quais as vantagens da escolha de tal sistema.  A descrição do que é o Windows Embedded Compact estão apresentadas nas páginas dedicadas as suas diferentes versões.

Qual o tamanho da imagem compilada do S.O.? (o termo mais usado é footprint)

Reflexão:

O sistema operacional selecionado pode ter uma imagem de tamanho reduzido? Imagine um cenário onde o equipamento embarcado a ser desenvolvido tem uma função tão simples como monitorar algumas entradas digitais e mostrar imagens para o usuário em um display LCD de caracteres alfanuméricos (através de uma saida serial – RS232). Qual o tamanho necessário de memória ROM para armazenar o sistema operacional compilado tendo em mente uma função tão simples como a citada? O sistema pode ser compartimentalizado com o objetivo de conter apenas os componentes necessários?

Abordagem Windows Embedded:

O Windows Embedded Compact, como toda a família Embedded, pode ser customizado. Neste caso utilizamos uma ferramenta chamada Platform Builder, veja a figura 1, onde os componentes que integrarão o sistema são escolhidos antes da compilação da imagem final, será tema de um artigo futuro como compilar uma imagem com apenas os componentes necessários.

PlatformBuilder

Figura 1: Platform Builder, Catalog Items View, escolha dos componentes a serem parte da imagem do Windows Embedded Compact 7

O S.O. suporta diferentes arquiteturas de processador?

Reflexão:

Atualmente as arquiteturas mais encontradas em sistema embarcados são x86 e ARM. A arquitetura ARM, especialmente, vem aumentando a participação no mercado pois nos últimos anos aumentou o desempenho e manteve o consumo reduzido a um custo menor do que a arquitetura x86. Hoje podemos facilmente encontrar um processador ARM QuadCore com velocidades de processamento de 1GHz/core, veja por exemplo o SoC (System on Chip) Freescale i.MX6. Outro fato que sustenta esta afirmação, provavelmente, está em seu bolso ou em cima de sua mesa. Hoje a grande maioria dos celulares é ARM “powered”.

Abordagem Windows Embedded:

O Windows Embedded Compact 7.0 suporta as arquiteturas ARM, x86 e MIPs o Windows EC 2013 suporta as arquiteturas ARM e x86, hoje, as mais utilizadas no mercado. Ambas plataformas são suportadas pelas mesmas ferramentas, não existe a necessidade de ferramentas específicas para cada arquitetura e, por isso, não é preciso aprender as particularidades de cada ferramenta. Mais que isso, a ferramenta de desenvolvimento, customização, teste e deploy do Windows EC é o próprio Visual Studio que é uma ferramenta moderna, eficiente, madura e conhecida por um grande ecossistema de programadores. Este fato, torna a adaptação a mesma mais fácil e diminui o tempo de desenvolvimento, levando seu produto mais rapidamente para o mercado.

O S.O. oferece ferramentas de tempo real?

Reflexão:

Sempre que falamos de sistemas de tempo real é importante lembrar qual é o conceito de tempo real. Um sistema operacional de tempo real é aquele em que o código não deve estar apenas correto mas que, além de certo, deve atender restrições de tempo em sua execução. Exemplo simples: imagine que o seu sistema embarcado realiza a leitura da posição de um motor, a partir dos valores de posição lidos você deverá calcular a velocidade do motor pois ela será utilizada para alguma tomada de decisão. Lembrando das aulas de física, sabemos que V = DS/DT. Logo você implementa uma tarefa em seu programa que a cada 100 ms realiza a leitura de posição para cálculo do DS e supõe que DT é 100ms pois você configurou um loop assim. Minha pergunta é: Qual a garantia que o sistema te dá de que a tarefa realmente realiza a leitura a cada 100ms, caso o sistema realize a leitura em intervalos maiores (150ms, 200ms, 101ms – pois o S.O. pode estar copiando um arquivo, carregando uma página de internet ou reproduzindo um vídeo e atrasar a execução do seu llop) com certeza o seu cálculo de velocidade estará incorreto. Uma boa referência de livro sobre RTOS (Sistemas operacionais de tempo real) é o Real-Time Systems Design and Analysis: Tools for the Practitioner, 4th Edition.

Abordagem Windows Embedded:

O Windows EC possui um Kernel de tempo real, essa é uma das características principais que diferencia ele das outras versões de Windows Embedded. Entre as ferramentas existentes no Windows EC estão:

  • Suporte a multitarefas preemptivo.
  • Agendamento de tarefas com definição de prioridades
  • Ferramentas para sincronização de tarefas

O S.O. é suportado por quanto tempo?

Reflexão:

É importante analisar com esta pergunta por quanto tempo o sistema escolhido estará disponível para compra e/ou download. Da mesma forma é importante saber se existe uma equipe de profissionais contratados e direcionados a suportar o sistema ou se isso é feito por uma comunidade de desenvolvedores.

Abordagem Windows Embedded:

Essa é uma característica crítica atualmente, com tecnologias mudando de forma tão rápida é fundamental analisar por quanto tempo o software (e hardware) que você definirá como coração de seu sistema será suportado, o chamado ciclo de vida. No caso do Windows Embedded Compact 7 (que foi lançado em 2011) o suporte da Microsoft será até 2021, ou seja pelo menos 10 anos da data de seu lançamento, isto mostra a seriedade da Microsoft em colocar um produto no mercado e se comprometer com ele garantindo a segurança e o investimento de seus clientes.

A versão mais nova do Compact, Windows EC 2013, será suportada até 2023 e em breve a Microsoft deve lançar uma próxima versão.

A Vivian preparou uma tabela que mostra o compromisso da Microsoft com seus clientes.

Qual o custo do sistema operacional?

Reflexão:

Custo, como em todo projeto de engenharia, é uma variável importante. Quais os custos envolvidos na utilização de um certo sistema operacional quando utilizado para finalidade comercial é a pergunta que você deve se fazer. Os custos estão apresentados de forma clara? Todos os componentes do sistema obdencem a mesma licença? Quem deverá resolver e licenciar os componentes adicionais (acessórios) do sistema? Ao adquirir um determinado S.O., os pacotes de software e componentes adicionais são também parte a licença? e principalmente, existe algum custo de engenharia/consultoria para preparar o S.O. de forma que ele esteja apto para a etapa de desenvolvimento de aplicação?

Abordagem Windows Embedded:

A Microsoft não recebe nenhum faturamento de licença enquanto seu produto não for um sucesso de mercado, diferente de outros sistemas que requerem meses de preparação, consultoria de especialistas e um aprendizado profundo e que custa tempo e dinheiro. A Microsoft fornece uma solução de prateleira, facilmente customizável e que possui toda a estrutura de segurança, qualidade e componentes necessários em um S.O. Adicionalmente, seus produtos possuem de uma curva de aprendizado rápida e com ferramentas fáceis e eficientes.

Além disso, você não precisa se preocupar com possíveis problemas de licenciamento e propriedade intelectual dos componentes parte de seu sistema operacional. Através da licença comprada da Microsoft, ela fica responsável por resolver qualquer possível problema advindo dos componentes existentes no Windows EC.

Quais as ferramentas e tecnologias de desenvolvimento de aplicação de usuário?

Reflexão:

O sistema avaliado oferece nativamente ferramentas para desenvolvimento de aplicações do usuário? Estas ferramentas devem ser compradas a parte ou estão inclusas? Estas ferramentas estão preparadas para atender os requisitos de memória e limitação de recursos existentes em sistemas embarcados? As plataformas de desenvolvimento são robustas e principalmente: Existe um ecossistema de profissionais que podem suportar o desenvolvimento? Imagine que você treinou um profissional em sua empresa em uma tecnologia de programação excelente, porém não muito comum. Depois de alguns meses, este profissional recebe uma proposta que você não pode cobrir e resolve se desligar de sua empresa, qual será a dificuldade de encontrar um profissional para substituí-lo com o mesmo conhecimento?

Abordagem Windows Embedded:

As ferramentas de desenvolvimento de aplicação para o WEC (windows Embedded Compact) são as mesmas utilizadas para seu Windows tradicional ou Embedded Standard. O Visual Studio é uma plataforma conhecida e utilizada por milhares de desenvolvedores ao redor do globo, possui inúmeros componentes adicionais que podem ser comprados para incrementar sua aplicação. Usando o .NET 3.5 Compact Framework você poderá desenvolver aplicações em VC# .NET ou VB .NET para seu sistema embarcado aproveitando grande parte da paleta de objetos existente no .NET 3.5 framework tradicional utilizado em seu Windows tradicional. Além disso também existe uma versão do SQL Server Compact que poderá dar capacidade de banco de dados para sua aplicação embarcada.

Quais as características técnicas que seu sistema precisa?

Reflexão:

Seu equipamento deverá trabalhar em um ritmo 24/7? O S.O. está preparado para minimizar vazamento de memória? O S.O. pode ser recuperar de travamentos? Seu equipamento será desligado com qual frequência e de qual forma? O seu S.O. suporta desligamentos inesperados sem corromper arquivos? Qual o tempo de boot do sistema aceitável? O usuário pode esperar o tempo de boot ou isso pode ser um incomodo? O sistema suporta gerenciamento de bateria com funções de hibernação? O que o sistema faz para diminuir o consumo de bateria?

Abordagem Windows Embedded:

O WEC oferece diversas características técnicas que o certificam como um dos sistemas mais robustos do mercado conforme os testes de desempenho apresentados no artigo: A Real Time Operating Systems (RTOS) Comparison. No artigo, o autor, AROCA afirma:

“Even with all the ping floods and overloads, there was no situation that the system crashed requiring a reboot. In the worst overload scenario, the system stopped answering requests for some seconds, but right after it went back to normal operation. The conclusion is that Windows CE Embedded 6.0 is a very robust and reliable operating system to execute real time tasks, with the advantage of offering several powerful development tools.“

Outra ferramenta interessante oferecida pelo WEC é o TexFAT (Transaction-Safe Extended FAT File System), trata-se de um sistema de arquivos que trabalha com duas cópias da tabela de alocação diminuindo a possibilidade de corromper arquivos quando o sistema é desligado durante um acesso a um arquivo.

O Windows EC suporta modos de hibernação para e funções para gerenciamento de bateria. Isso é especialmente útil se seu equipamento for suportado por bateria. Além disso o sistema possui uma grande coleção de device drivers para serem implementados para dar suporte as mais diversas funções necessárias para seu equipamento.

Um abraço e até a próxima!

Guilherme Fernandes

Guilherme Fernandes

Mestre em Engenharia Mecatrônica pela Escola de Engenharia de São Carlos (USP) atua como diretor da Toradex Brasil. Foi responsável pela implantação do escritório de vendas e suporte da Toradex no Brasil. Trabalhou 7 anos como gerente de engenharia de sistemas na área de automação industrial desenvolvendo mais de 300 projetos de máquinas para linhas de montagem e teste de produção para o setor de autopeças.

Deixe uma resposta

O seu endereço de email não será publicado Campos obrigatórios são marcados *

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>