Gerenciamento de Software Embarcado em Aeronaves
A gestão de software, no contexto geral, refere-se ao processo de planejar, organizar, controlar e otimizar o ciclo de vida completo de um software. Isso inclui desde a sua concepção e desenvolvimento até a sua implantação, manutenção, atualização e eventual desativação.
1. Base de Dados de Software Carregados em Campo: O Coração da Operação Aérea
O software embarcado em aeronaves não é estático; ele exige atualizações e gerenciamento contínuos para garantir a conformidade regulatória e a otimização do desempenho. A base de dados de software carregados em campo refere-se aos programas e dados que podem ser instalados ou atualizados diretamente nas aeronaves, sem a necessidade de remoção de componentes.
Essa capacidade é vital para a manutenção da frota e para a incorporação de novas funcionalidades ou correções de segurança.
Um exemplo proeminente dessa prática é a atualização periódica do software do Sistema de Gerenciamento de Voo (FMS – Flight Management System), que é carregado no Computador de Gerenciamento de Voo (FMC – Flight Management Computer).
Essas atualizações, frequentemente realizadas a cada 28 dias, são vitais para manter a precisão dos dados de navegação, rotas e desempenho da aeronave. A regularidade dessas atualizações é um requisito regulatório, garantindo que as aeronaves operem com as informações mais recentes e seguras disponíveis.
O processo de carregamento de software em campo geralmente envolve as seguintes etapas:
1.Download dos Arquivos: Os arquivos de software são obtidos de fontes autorizadas, como os sites dos fabricantes (por exemplo, Universal Avionics), que disponibilizam as últimas versões e atualizações.
2.Preparação da Mídia: Os arquivos baixados são então carregados em uma mídia de armazenamento portátil, como um pen drive ou um cartão SD.
3.Carregamento na Aeronave: A mídia é inserida em uma unidade específica na aeronave, como uma SSDTU (Solid State Data Transfer Unit), que facilita a transferência segura e controlada do software para os sistemas de destino.
Este procedimento garante que as aeronaves estejam sempre equipadas com o software mais atualizado, essencial para a segurança e eficiência das operações de voo. A conformidade com as regulamentações, como a AC 20-115D da FAA, que aborda a garantia de desenvolvimento de software aerotransportado, é fundamental para todo o ciclo de vida do software embarcado [1].

Referências
[1] FAA. AC 20-115D – Airborne Software Development Assurance Using EUROCAE ED-12( ) and RTCA DO-178( ). Disponível em: https://www.faa.gov/documentLibrary/media/Advisory_Circular/AC_20-115D.pdf
2. Métodos de Distribuição de Software: Garantindo o Acesso e a Instalação
A distribuição de software para aeronaves é um processo crítico que exige métodos seguros e confiáveis para garantir que as atualizações cheguem aos sistemas corretos sem comprometimento.
Existem três métodos principais de distribuição, cada um com suas características e aplicações específicas:
a. Distribuição por Mídia Física

Este método envolve a entrega do software pré-carregado em uma mídia física diretamente para a equipe de manutenção. Embora possa parecer antiquado em uma era digital, a distribuição por mídia ainda é amplamente utilizada devido à sua robustez e menor suscetibilidade a certas vulnerabilidades de segurança, como vírus ou corrupção de dados durante a transmissão online. Exemplos comuns de mídias incluem:
•Cartões PCMC (PC Memory Card International Association): Cartões de memória robustos, historicamente usados para armazenar e transferir dados em ambientes industriais e aeronáuticos.
•CD-ROMs: Embora menos comuns hoje, ainda podem ser usados para software legado ou para distribuições iniciais.
•Cartões SD (Secure Digital): Amplamente utilizados devido à sua portabilidade e capacidade de armazenamento.
•Pen Drives (USB Flash Drives): Uma opção popular pela sua conveniência e facilidade de uso.
•Disquetes: Surpreendentemente, ainda são empregados em alguns sistemas mais antigos devido à sua simplicidade e à dificuldade de serem corrompidos por vírus, garantindo a integridade dos dados em ambientes específicos.
Nesse modelo, o software já vem instalado na mídia, e a equipe de manutenção apenas precisa inseri-la na unidade apropriada da aeronave para iniciar o processo de carregamento.

b. Transferência Eletrônica Direta
A transferência eletrônica direta envolve a conexão física de um computador externo (geralmente um laptop) à aeronave para a transferência de dados. Este método é utilizado quando é necessária uma comunicação direta e controlada entre o dispositivo de origem e o sistema da aeronave.
As conexões típicas incluem:
•Links Seriais: Conectores como os DB9, que utilizam protocolos como o RS232, são empregados para estabelecer uma comunicação serial entre o laptop e os computadores da aeronave. Essa abordagem garante uma transferência de dados ponto a ponto, minimizando riscos de interferência externa.
Este método é particularmente útil para diagnósticos, carregamento de software específico ou para situações em que a conectividade de rede não está disponível ou é indesejável por razões de segurança.
c. Distribuição Eletrônica Online
A distribuição eletrônica online é o método mais moderno e flexível, permitindo que o software seja baixado de servidores ou sites na internet. Este método oferece a conveniência de acesso a atualizações a qualquer momento e em qualquer lugar, desde que haja conectividade. O processo geralmente segue estas etapas:
•Acesso ao Site do Fabricante: A equipe de manutenção acessa um portal online seguro fornecido pelo fabricante do software (como o site da Universal Avionics para atualizações de FMS).
•Autenticação e Download: Após a autenticação (login), os usuários podem acessar a base de dados de software, identificar as últimas atualizações e baixar os arquivos necessários.
•Instalação: Os arquivos baixados são então preparados (geralmente em uma mídia portátil, como pen drives ou cartões SD) e instalados na aeronave, seguindo os procedimentos específicos do fabricante.
O fabricante do software é quem determina o método de distribuição apropriado para cada tipo de software, levando em consideração fatores como segurança, tamanho do arquivo, frequência de atualização e compatibilidade com os sistemas da aeronave.
A escolha do método visa garantir a integridade e a segurança do software durante todo o processo de distribuição e instalação.
3. Verificação dos Dados: Garantindo a Integridade do Software
Após o carregamento do software em uma aeronave, é imperativo verificar sua integridade para garantir que não houve corrupção de dados durante a transferência e que o software está funcionando conforme o esperado.
Essa etapa é vital para a segurança operacional e é realizada por rotinas internas do próprio software, sem a necessidade de intervenção manual direta dos mecânicos para a validação. Os dois métodos mais comuns de verificação são o Checksum e o CRC (Cyclic Redundancy Check):
a. Checksum
O Checksum é um método de verificação de integridade de dados que consiste em somar os valores dos bits ou palavras consecutivas presentes em um arquivo. O resultado dessa soma é então anexado ao próprio arquivo. Quando o software é carregado ou acessado, ele realiza novamente essa soma e compara o resultado com o valor de Checksum armazenado.
Se os dois valores forem idênticos, o software considera que os dados estão íntegros e a instalação foi bem-sucedida. Caso contrário, uma falha é detectada, indicando que o arquivo pode estar corrompido ou incompleto (por exemplo, se algum arquivo foi esquecido durante o download ou transferência).


Este método é uma forma eficaz de detectar erros acidentais que podem ocorrer durante o armazenamento ou a transmissão de dados, garantindo que o software embarcado esteja em sua condição original e funcional.
b. CRC (Cyclic Redundancy Check)
O CRC é um método de verificação de redundância mais robusto, amplamente utilizado para detectar erros em dados digitais. Ele envolve a divisão de blocos consecutivos de dados binários do arquivo por um número específico (um polinômio gerador). O resto dessa divisão é então anexado ao arquivo como uma sequência de verificação.
Durante a verificação, o software realiza novamente a divisão dos dados. Se o resto da nova divisão for zero, presume-se que o arquivo esteja livre de erros. Se o resto não for zero, uma falha é indicada, sinalizando que os dados foram comprometidos. A beleza do CRC reside na sua capacidade de detectar uma ampla gama de erros de transmissão e armazenamento com alta probabilidade.
Ambos os métodos, Checksum e CRC, são implementados pelo fabricante do software e são rotinas automáticas que garantem a confiabilidade do software embarcado. Para os profissionais de manutenção, o importante é entender que esses mecanismos existem e que o sistema informará se a verificação foi bem-sucedida ou se houve alguma falha, permitindo que as ações corretivas apropriadas sejam tomadas.
Conclusão
O gerenciamento de software embarcado em aeronaves é uma disciplina complexa e vital que sustenta a segurança e a eficiência da aviação moderna.
Desde a base de dados de software carregados em campo, que garante que as aeronaves operem com as informações mais atualizadas, até os diversos métodos de distribuição que asseguram a entrega segura e eficiente das atualizações, e as rigorosas técnicas de verificação de dados como Checksum e CRC, cada etapa é projetada para manter a integridade e a confiabilidade dos sistemas aéreos.
A compreensão desses processos não é apenas crucial para os profissionais da aviação, mas também para qualquer pessoa interessada na tecnologia que impulsiona a segurança dos voos. A constante evolução do software embarcado e das regulamentações que o governam exige um compromisso contínuo com a educação e a conformidade, garantindo que o céu permaneça um lugar seguro para todos.
Glossário
Termos e Definições
Software Embarcado: Programas e dados que controlam os sistemas eletrônicos e mecânicos de uma aeronave, essenciais para sua operação segura e eficiente.
Base de Dados de Software Carregados em Campo: Refere-se aos programas e dados que podem ser instalados ou atualizados diretamente nas aeronaves, sem a necessidade de remoção de componentes, garantindo a conformidade regulatória e a otimização do desempenho.
FMS (Flight Management System): Sistema de Gerenciamento de Voo. Um sistema de computador especializado que automatiza uma ampla variedade de tarefas em voo, reduzindo a carga de trabalho da tripulação e otimizando as rotas de voo.
FMC (Flight Management Computer): Computador de Gerenciamento de Voo. O componente central do FMS, responsável por processar dados de voo, calcular rotas e gerenciar o desempenho da aeronave.
SSDTU (Solid State Data Transfer Unit): Unidade de Transferência de Dados de Estado Sólido. Um dispositivo utilizado em aeronaves para facilitar a transferência segura e controlada de software e dados para os sistemas de bordo, geralmente a partir de mídias portáteis como cartões SD ou pen drives.
AC 20-115D (Advisory Circular 20-115D): Uma circular consultiva da FAA (Federal Aviation Administration) que descreve os meios aceitáveis para demonstrar conformidade com as regulamentações de aeronavegabilidade para os aspectos de software de sistemas e equipamentos aerotransportados. É um documento orientador para o desenvolvimento e garantia de software em aviação.
Distribuição por Mídia Física: Método de distribuição de software onde o programa já vem pré-carregado em uma mídia física, como cartões de memória, CDs, pen drives ou disquetes, e é inserido diretamente na aeronave para instalação.
Cartão PCMC (PC Memory Card International Association): Um tipo de cartão de memória robusto, historicamente utilizado para armazenar e transferir dados em ambientes industriais e aeronáuticos.
CD-ROM: Um tipo de disco óptico utilizado para armazenar dados digitais, incluindo software, que pode ser usado para distribuição de programas em aeronaves.
Cartão SD (Secure Digital): Um formato de cartão de memória flash amplamente utilizado para armazenamento de dados em dispositivos portáteis, incluindo a transferência de software para aeronaves devido à sua portabilidade e capacidade.
Pen Drive (USB Flash Drive): Um dispositivo de armazenamento de dados portátil que utiliza memória flash, popular pela sua conveniência e facilidade de uso na transferência de software.
Disquete: Um meio de armazenamento de dados magnético mais antigo, ainda empregado em alguns sistemas de aeronaves legados devido à sua simplicidade e resistência a certos tipos de corrupção de dados ou vírus.
Transferência Eletrônica Direta: Método de distribuição de software que envolve a conexão física de um computador externo (laptop) diretamente à aeronave para a transferência de dados, utilizando conexões como links seriais.
Links Seriais: Conexões de comunicação que transmitem dados bit a bit sequencialmente, usadas para estabelecer uma comunicação direta e controlada entre dispositivos, como um laptop e os computadores de uma aeronave.
DB9: Um tipo de conector elétrico com 9 pinos, comumente usado para interfaces seriais em sistemas de computador e equipamentos eletrônicos, incluindo a conexão de dispositivos a aeronaves para transferência de dados.
RS232: Um padrão para comunicação serial de dados, frequentemente utilizado com conectores DB9, para estabelecer a comunicação entre um computador e os sistemas de uma aeronave para transferência de software.
Distribuição Eletrônica Online: Método moderno de distribuição de software que permite o download de programas e atualizações diretamente de servidores ou sites na internet, oferecendo conveniência e acesso a versões mais recentes.
Checksum: Um método de verificação de integridade de dados que calcula uma soma de controle dos bits ou palavras de um arquivo. Essa soma é usada para detectar erros acidentais que podem ocorrer durante o armazenamento ou a transmissão, comparando o valor calculado com um valor armazenado.
CRC (Cyclic Redundancy Check): Verificação de Redundância Cíclica. Um método de detecção de erros mais robusto que envolve a divisão de blocos de dados binários por um polinômio gerador. O resto da divisão é usado como uma sequência de verificação para garantir a integridade dos dados, sendo capaz de detectar uma ampla gama de erros.