Opções de programação para os instrumentos definidos por software da NI

Conteúdo

O que é um instrumento definido por software?

  Os instrumentos definidos por software possibilitam novos níveis de desempenho dos instrumentos que não eram possíveis anteriormente através da flexibilidade dos FPGAs programáveis pelo usuário. Comparados aos instrumentos modulares comuns, os instrumentos modulares definidos por software compartilham a mesma arquitetura de hardware e a mesma qualidade de medição. Eles também possuem drivers de instrumentos que permitem a customização de software através com os processadores existentes nos hosts. Essa abordagem baseada em software, chamada instrumentação virtual, tem se tornado o padrão de fato para desenvolvimento de aplicações de teste. Os instrumentos definidos por software levam a instrumentação virtual ainda mais além, permitindo que o usuário alcance o desempenho real da tecnologia FPGA. Os instrumentos definidos por software da NI possuem toda a funcionalidade pronta para uso que você esperaria de um instrumento, mas são arquitetados de modo que possam ser estendidos para fornecer melhorias no FPGA específicas para a aplicação.

 


F

Figura 1. Os instrumentos definidos por software da NI fornecem a funcionalidade pronta para uso que você espera de um instrumento, com a habilidade de acrescentar melhorias ao FPGA específicas para a aplicação.

 

Os FPGAs são componentes semicondutores ideais para servirem como o cérebro de um instrumento modular. Comparados aos microprocessadores, eles possuem a habilidade de implementar um processamento de alto desempenho com determinismo garantido e tomadas de decisão de baixa latência. Apesar de os circuitos integrados de aplicação específica (ASICs) poderem alcançar os mesmos níveis de desempenho que os FPGAs, eles não podem ser reprogramados, o que significa que os fornecedores não podem acrescentar mais funcionalidades ao longo do tempo, e, mais importante, os usuários finais não podem customizar o ASIC para atender às suas necessidades.

 


Figura 2. Os FPGAs proporcionam o desempenho e os recursos necessários para suportar os instrumentos modernos.

Os FPGAs consistem em diversos componentes principais, em que todos são programáveis. Os blocos lógicos configuráveis (CLBs) e as interconexões programáveis implementam uma lógica digital arbitrária e permitem que os dados trafeguem através da camada semicondutora do chip FPGA. Os blocos de memória RAM permitem o armazenamento temporário dos dados durante a execução e podem ser particionados e alocados com base na funcionalidade exigida. Os blocos de multiplicadores e DSPs embutidos no FPGA fornecem os elementos computacionais necessários para realizar os cálculos e o processamento de sinais de alta velocidade. Os blocos de E/S flexíveis tornam possível interfacear com outros componentes da eletrônica externa ao FPGA. Isso inclui conversores A/D e D/A e buffers digitais para E/S dos instrumentos, sintetizadores de clock para operação síncrona de instrumentos a taxas específicas, componentes de DRAM para armazenamento de maior capacidade no próprio instrumento, e interfaces de barramento para transferência dos dados de medição para o processador do host.

 

Figura 3. Os componentes programáveis do FPGA dão suporte às necessidades dos instrumentos modernos.

  

Apesar de os FPGAs atingirem níveis incomparáveis de desempenho, programá-los com as linguagens tradicionais como o VHDL é uma tarefa desafiadora. O módulo LabVIEW FPGA simplifica drasticamente a programação do chip FPGA para o hardware da NI. A programação gráfica já mais familiar ao usuário permite uma captura mais rápida do projeto, minimizando o tempo gasto na construção do código. As funções específicas do FPGA, como o single-cycle timed loop, as bibliotecas de matemática de alta velocidade, os nós de blocos de memória, os utilitários gráficos para configuração de clock e os nós para integração de IP de terceiros aprimoram a linguagem do LabVIEW, a fim de maximizar o desempenho dos targets FPGA. As abstrações para acesso às E/S dos instrumentos, interfaceamento com DRAM do instrumento e a movimentação dos dados através do barramento até o processador simplificam essas tarefas complexas. Um fluxo de projeto integrado permite que você desenvolva, simule e compile o código do FPGA a partir de um único ambiente. O LabVIEW FPGA Compile Cloud Service fornece compilações remotas concentradas em máquinas dedicadas e de alto desempenho, reduzindo a carga do processador em sua máquina de desenvolvimento. Por fim, os instrumentos específicos definidos por software, as bibliotecas de IP, incluindo as bibliotecas para projeto de instrumentos, juntamente com os templates de projeto fornecidos pelos códigos de exemplo, proporcionam toda a capacidade que você espera de um instrumento, para uso imediato.


Figura 4. O LabVIEW FPGA simplifica drasticamente a programação do chip FPGA para o hardware da NI.

 

Os benefícios dos FPGAs em aplicações de testes

   As melhorias possíveis e específicas da aplicação com FPGA são limitadas apenas pela natureza das E/S do instrumento, mas, para aplicações de teste, elas podem ser divididas em cinco amplas categorias. Elas incluem medições e geração de estímulo, teste de malha fechada ou de protocolo, trigger customizado e redução de dados, execução de teste determinístico e controle de DUT, e comportamentos do DUT ou específicos da aplicação, tudo isso utilizando FPGA. Cada uma dessas melhorias é fundamentalmente projetada para reduzir o custo total do teste, com a obtenção de maior rendimento do teste, proporcionando a reutilização do hardware e maior garantia de duração, ou possibilitando novos e inovadores testes que não eram possíveis anteriormente.

Medições e geração de estímulo no FPGA deslocam essas tarefas do processador para o chip FPGA, seja completamente ou parcialmente. Quando implementadas no processador, as medições e a geração de estímulo não são executadas tipicamente em tempo real, já que o tempo de computar as medições ou gerar formas de onda é maior do que o próprio sinal. No FPGA, por sua vez, esses algoritmos podem ser computados em tempo real, assim eles podem ser executados continuamente e instantaneamente em quase que instantaneamente. Essa característica poderá resultar em maior rendimento do teste, reduzindo o tempo de computação das medições, ou poderá possibilitar novos tipos de teste, realizando medições continuamente por um período indefinido ou gerando formas de onda de longa duração e não repetitivas. Exemplos desses tipos de melhorias com FPGA incluem medições espectrais de RF, cálculo de taxa de erro de bits digitais, geração de tons de fase contínua, ou distúrbios intencionais, como distorção ou ruído.


Figura 5. Medições e geração de estímulo no FPGA

O teste de malha fechada ou de protocolo aproveitam o determinismo e a tomada de decisão de baixa latência do FPGA para interagir com o DUT em tempo real. Isso pode reduzir a carga no processador e fornecer maior rendimento do teste, pode facilitar a evolução dos protocolos de comunicação para possibilitar a reutilização de hardware, ou pode abrir caminho para novos tipos de teste de malha fechada em tempo real, o que não era possível anteriormente. Exemplos dessas melhorias com FPGA incluem a emulação das condições reais de operação do DUT, através da emulação de canais ou do dispositivo ao qual o DUT irá finalmente interagir, ou a implementação de protocolos de comunicação digital ou de RF dentro do FPGA.

 

Figura 6. Teste de malha fechada ou de protocolo

 

Trigger customizado e redução de dados focam-se em isolar a quantidade mínima de dados necessária para realizar uma medição em particular, reduzindo a quantidade de processamento subsequente em cada FPGA ou microprocessador. Isso pode resultar no maior rendimento do teste, reduzindo o tempo de computação das medições, pode possibilitar uma maior duração, permitindo a adição de novos recursos ao longo do tempo para ganhar uma maior abrangência nos sinais de interesse que estão em constante evolução, ou pode abrir caminho para novas e inovadoras medições, capturando eventos raros com 100% de confiabilidade. Exemplos dessas melhorias com FPGA incluem triggers no domínio da frequência, em tempo real e no domínio do tempo, de pulso e dizimação no domínio do tempo ou da frequência.


Figura 7. Trigger customizado e redução de dados

   

A execução de teste determinístico e o controle do DUT transferem o sequenciamento e a tomada de decisão de um executivo de testes para a lógica em hardware, onde eles são executados o mais rápido possível com determinismo completo. O controle do DUT comumente envolve a comunicação com o dispositivo sob teste através de alguns tipos de protocolos digitais, a fim de alterar seu modo de operação ao longo do curso da sequência de testes, se necessário. Uma máquina de estados estruturada em FPGA pode, então, substituir o executivo de testes e controlar a geração de sinal e/ou aquisição de dados pelo instrumento desenvolvido por software, o controle digital do DUT ou até mesmo outros instrumentos em um sistema PXI, através das linhas de trigger do painel traseiro. Esse tipo de melhoria com FPGA é puramente desenvolvida para se obter maior rendimento do teste em aplicações de teste automatizado de altíssimo volume, onde as economias de até milissegundos são bastante valiosas. Exemplos de protocolos de controle digital do DUT incluem I²C, SPI, JTAG e RFEE. Além disso, o sequenciador de teste de hardware e a propriedade intelectual do sequenciador das instruções do DUT facilitam a execução do teste baseado em hardware.

 


Figura 8. Execução de teste determinístico e controle de DUT

 

 Os comportamentos do DUT ou específicos da aplicação combinam as diversas melhorias dos chips FPGA descritas acima, para fornecer características aprimoradas para os dispositivos específicos que estão sob teste. Esses comportamentos podem ser reconfigurados ao longo do curso do teste de um único dispositivo, ou podem ser trocados quando um instrumento é novamente proposto para testar um dispositivo diferente. O cenário anterior poderá ocorrer quando um único instrumento definido por software estiver realizando a função de diversos instrumentos tradicionais. O cenário posterior poderá ocorrer frequentemente em um ambiente de teste de caráter altamente misto, onde muitos dispositivos compartilham uma linha de montagem, ou menos comumente em ambientes de alto volume, onde o hardware é reutilizado depois que o dispositivo primário está no final de seu ciclo de vida e não está mais em produção. Independentemente disso, o benefício é a reutilização do hardware, reduzindo o custo capital. Um exemplo desse tipo de melhoria com FPGA é a atualização do protocolo digital em um teste de protocolo, à medida que novas características ou um maior desempenho são acrescentados às especificações do protocolo. 


Figura 9. Comportamento do DUT ou específico da aplicação

As opções de programação dos instrumentos definidos por software da NI

Os instrumentos definidos por software da NI apresentam múltiplas opções de programação e uma aprimorada, dependendo das demandas da aplicação em particular. Para uma máxima compatibilidade com o código existente e os paradigmas de teste, os drivers de instrumentos trazem APIs de padrão industrial que atendem a essas necessidades. Para uma máxima flexibilidade, as bibliotecas para desenvolvimento de instrumentos da NI e os LabVIEW Sample Projects fornecem blocos de construção de baixo nível e templates de arquiteturas que você pode customizar completamente. As extensões de drivers de instrumentos com FPGA fornecem a “melhor abordagem de ambos os mundos”, apresentando os mesmos APIs de padrão industrial, mas também permitindo a adição de novas melhorias dos FPGAs específicas da aplicação.

 

Figura 10. Opções de programação dos instrumentos definidos por software da NI

 

Os drivers de instrumentos da NI apresentam a abstração de hardware com base no tipo específico do instrumento. Por exemplo, o driver de instrumento NI-Scope suporta todos os osciloscópios modulares da NI. Esses drivers possibilitam a portabilidade do código entre versões de drivers, dispositivos de hardware e até mesmo outros fornecedores através do suporte dos instrumentos virtuais intercambiáveis (IVI). Eles oferecem APIs para o host no LabVIEW, assim como C/C++ e .NET. Além disso, eles proporcionam a configuração do dispositivo dentro do NI Measurement and Automation Explorer (MAX), execução interativa através dos soft front panels (SFPs), programas de exemplo que demonstram a funcionalidade completa dos APIs e do hardware, assim como da ajuda e a documentação integradas.

As extensões de drivers de instrumentos com FPGA se fundamentam nas capacidades dos drivers de instrumentos da NI, através da obtenção de melhorias com FPGA específicas da aplicação. Quando se utiliza um comportamento customizado para um instrumento baseado em FPGA, conhecido como bistream ou bitfile, o driver do instrumento trabalha da mesma maneira que com o comportamento padrão fornecido pela NI, e você possui controle adicional da funcionalidade do FPGA através do API de baixo nível NI-RIO.

 

Figura 11. Extensões de drivers de instrumentos com FPGA

Você pode baixar os comportamentos customizados já pré-construídos para FPGA a partir do site ni.com, ou obtê-los através dos NI Alliance Partners. Você pode também construí-lo com o módulo LabVIEW FPGA, atualmente através de um programa de acesso rápido (ni.com/beta). Quando se está construindo seu próprio comportamento para FPGA, você começa com o mesmo código utilizado para construir o comportamento padrão, com toda a IP necessária para isso. Você pode, então, acrescentar suas modificações específicas para a aplicação e a IP adicional.

 

Figura 12.  As extensões de drivers de instrumentos com FPGA são responsáveis pela principal funcionalidade dos instrumentos definidos por software, enquanto possibilitam melhorias no com FPGA especificas da aplicação.

   

Para uma modificação mais profunda no FPGA, as bibliotecas para desenvolvimento de instrumentos da NI fornecem os blocos de construção de baixo nível de um instrumento como módulos do host e do FPGA desagregados. Essa desagregação permite uma remoção ou adição simplificada desses componentes a um dado projeto, maximizando a funcionalidade dos recursos limitados do FPGA e proporciona a flexibilidade da arquitetura.

 

Figura 13. Bibliotecas para desenvolvimento de instrumentos da NI

 

Além das bibliotecas para desenvolvimento de instrumentos, a NI fornece projetos de exemplo no LabVIEW que servem como templates das arquiteturas otimizados para diferentes aplicações. Esses projetos de exemplo fornecem uma cópia com nomes espaçados do código do host e do FPGA, destinados à modificação pelo usuário.

 


Figura 14. Os projetos de exemplo do LabVIEW são construídos sobre as bibliotecas para desenvolvimento de instrumentos e fornecem os pontos de partida para uma variedade de aplicações. Essa imagem retrata uma arquitetura de aquisição e geração de dados com base no registro dos dados, para os transceptores vetoriais de sinais da NI. O código em azul é destinado à modificação pelo usuário.

Escolhendo a opção de software correta

 Para ficar pronto e começar rapidamente com os instrumentos definidos por software, os drivers de instrumentos da NI trazem consigo a melhor experiência das ferramentas prontas para uso, combinada à maior rapidez para a primeira medição. Se não há a necessidade de melhorias através do FPGA, os drivers de instrumentos da NI com o comportamento padrão do FPGA são suficientes para muitas das aplicações de teste automatizado.

Para aplicações que podem se beneficiar das melhorias dos FPGAs, as extensões de drivers de instrumentos com FPGA proporcionam uma experiência de software aprimorada. Você pode migrar rapidamente de uma aplicação de driver de instrumento com o comportamento padrão do FPGA para as extensões de drivers de instrumentos com FPGA simplesmente adicionando o código necessário nos programas do FPGA e do host e recompilando o projeto do FPGA. Para utilizar uma linha de comportamento já pré-compilada, você precisa apenas acrescentar o código de suporte do host ao seu projeto existente.

Para modificações mais profundas na arquitetura do FPGA ou para maximizar o espaço disponível para IPs adicionais ao FPGA, começar com os projetos de exemplo do LabVIEW proporciona o maior grau de flexibilidade. Migrar das extensões de drivers de instrumentos com FPGA para os projetos de exemplo baseados nas bibliotecas para desenvolvimento de instrumentos da NI pode exigir uma modificação mais aprofundada no código de aplicação do host, então, escolher entre as extensões dos drivers e as bibliotecas durante o começo do desenvolvimento da aplicação é o mais eficiente.

Nem todos os instrumentos definidos por software atualmente suportam todas as opções de programação. Esse conjunto de hardware pode ser lançado antes de todas as opções estarem disponíveis e um suporte adicional poderá ser incluído no futuro ou estar disponível temporariamente através de um programa de acesso rápido. Ainda mais importante, nem todos os instrumentos necessariamente se adéquam ao paradigma tradicional dos drivers de instrumentos. Por exemplo, os instrumentos seriais de alta velocidade da NI não possuem um driver existente que se enquadra no uso pretendido.

Figura 15. Opções de programação atualmente suportadas pelos instrumentos definidos por software da NI

Próximos passos 

Para mais informações sobre as extensões de drivers de instrumentos com FPGA, leia o artigo Uma introdução às extensões de drivers de instrumentos com FPGA para os instrumentos definidos por software da NI. Para aprender sobre a programação com as bibliotecas para desenvolvimento de instrumentos da NI, visite Uma introdução às extensões de drivers de instrumentos com FPGA para os instrumentos definidos por software da NI