LabVIEW RT et FPGA
Description
L’objectif de ce cours est de traduire les exigences d’un système embarqué en une architecture logicielle et matérielle évolutive, de sélectionner les méthodes de communications inter-processus et réseaux appropriées, de concevoir une application temps réel fiable, mais aussi de déployer et de dupliquer efficacement un système embarqué.
Public concerné
Les utilisateurs qui s'apprêtent à développer des applications de contrôle et de surveillance embarquées avec LabVIEW Real-Time, LabVIEW FPGA et du matériel CompactRIO, Single-Board RIO, PXI ou RIO. Les utilisateurs qui ont besoin de cibles matérielles FPGA et temps réel fiables et hautes performances.
Objectifs de la formation
- Comprendre comment les VI(s) LabVIEW sont compilés pour des cibles FPGA
- Développer des algorithmes par-dessus le driver de périphérique NI-RIO
- Intégrer du code existant dans des applications LabVIEW FPGA
- Concevoir l’architecture de systèmes basés FPGA hautes performances
Prérequis
Avoir suivi les cours LabVIEW Niveaux 1 et 2 ou bénéficier d’une expérience équivalente.
Programme de la formation
Introduction aux systèmes de contrôle et surveillance embarqués
- Description d'un système de contrôle et de surveillance embarqué
- FPGA
- Processeur temps réel
- Interface Homme-Machine (IHM)
- Exemples d'applications
Configuration de votre matériel
- Configuration du matériel et de l'ordinateur
- Configuration des paramètres du système RT et des logiciels
- Configuration des paramètres réseau
- Configuration d'une cible RT à partir d'un navigateur web
Identification des exigences de l'application
- Identifier les E/S et leurs vitesses d'acquisition
- Identifier les process
- Identifier le cadencement du process
- Identifier les types de transferts de données
- Identifier les exigences en termes de performances et de fiabilité
Optimisation du code FPGA
- Quand faudrait-il optimiser ?
- Techniques d'optimisation en fonction de la taille du FPGA
Documentation de votre conception
- Description de diagrammes
- Création d'un diagramme de communication
- Diagrammes classiques de contrôle et surveillance embarqués
- Documentation supplémentaire
Accès à vos E/S dans LabVIEW
- Configuration de cibles temps réel par le biais du projet LabVIEW
- Accès aux E/S avec les API de driver ou le moteur de balayage
- Accès aux E/S à partir du FPGA
Programmation avec LabVIEW FPGA
- Développement du VI FPGA
- Simulation du VI FPGA
- Compilation du VI FPGA
- Optimisations de base
Utilisation d'E/S du FPGA et cadencement
- Utilisation d'E/S FPGA
- Gestion des erreurs d'E/S FPGA
- Implémentation de vitesses d'exécution de la boucle
- Synchronisation de modules d'E/S de la série C
- Création de délais entre des événements
- Mesure du cadencement entre des événements
- Test de performances de périodes de la boucle
Traitement du signal
- Utilisation des types de données à virgule fixe
- Utilisation de la précision simple à virgule flottante
- Calculs mathématiques et analyse FPGA
- Intégration de la propriété intellectuelle (IP) de tiers
Communications inter-processus dans le FPGA
- Transfert des données les plus récentes (balise)
- Transfert de données du buffer (stream, message)
- Comparaison des méthodes de partage de données
Communications entre les VIs FPGA et RT
- Communication par programmation avec le FPGA à partir du VI RT
- Déploiement d'un VI FPGA
- Transfert des données les plus récentes (balise)
- Transfert de données du buffer (stream, message)
- Synchronisation du VI hôte et du VI FPGA
- Implémentation d'un chien de garde FPGA
- Techniques d'optimisation en fonction de la vitesse et du débit du FPGA
- Exécution du code dans des boucles cadencées monocycle (SCTL)
- Le pipelining
- Handshake à 4 voies
- Étapes suivantes avec LabVIEW FPGA
Programmation avec LabVIEW Real-Time
- Compréhension et utilisation des niveaux de priorité
- Utilisation de la mise en veille pour garantir la disponibilité du processeur
- Boucles cadencées
Communications inter-processus en RT
- Partage de données entre processus déterministe et non déterministe
- Partage de données entre processus non déterministes
Communications entre cible RT et ordinateur
- Implémentation des communications réseaux
- Transfert des valeurs les plus récentes (balise)
- Transfert de valeurs du buffer (stream, message)
Gestion de la mémoire et surveillance de l'état du système
- Impacts de l'utilisation de la mémoire
- Gestion de la mémoire
- Surveillance du système
Fiabilité
- Arrêt sécurisé
- Gestion d'erreur spécifique et centrale
- Mise en œuvre d'un chien de garde
- Redondance
Mise au point, test de performances et test
- Outils de mise au point
- Test des performances et de la durée du code
- Test d'une application temps réel
Déploiement et duplication
- Présentation du déploiement RT
- Communications avec des applications déployées
- Réplication de systèmes RT