ECTS
30 crédits
Composante
ENSEIRB-MATMECA
Code interne
EES9SE00
Liste des enseignements
UE E9SE-A - Architecture matérielle et conception conjointe
6 créditsUE E9SE-B - Architecture logicielle et systèmes d'exploitation
6 créditsUE E9SE-C - Réseaux et sécurité des systèmes
6 créditsUE E9SE-D - Approfondissement
7 créditsUE Langues et culture de l'ingénieur
5 crédits
UE E9SE-A - Architecture matérielle et conception conjointe
ECTS
6 crédits
Composante
ENSEIRB-MATMECA
Niveau de connaissances (savoirs) :
N1 : débutant
N2 : intermédiaire
N3 : confirmé
N4 : expert
Les connaissances (savoirs) attendues à l'issue des enseignements de l'UE
Appréhender les techniques de conception de systèmes sur silicium (SoC) mêlant matériel et logiciel par la méthode du codesign : (C1, N3), (C2, N3)
Appréhender les techniques de mise en oeuvre de matériels libres et logiciels libres dans un système embarqué : (C1, N3), (C2, N3)
Appréhender les techniques de synthèse de haut niveau pour la conception de systèmes sur silicium (SoC) : (C1, N3), (C2, N3)
Appréhender la mise en oeuvre de machines de calculs dites de haute performances : (C1, N3), (C2, N3)
Les acquis d'apprentissage en termes de capacités, aptitudes et attitudes attendues à l'issue des enseignements de l'UE
Concevoir un système sur silicium à base de circuit FPGA par la méthode du codesign : (C3, N3), (C4, N3), (C5, N2)
Choisir des solutions matérielles et logicielles libres pour concevoir son système sur silicium : (C3, N3), (C4, N2), (C5, N2)
Concevoir un système sur silicium sur circuit FPGA à l'aide des outils de synthèse de haut niveau (HLS) : (C3, N3), (C4, N3), (C5, N3)
Mettre en oeuvre un langage de description matériel au niveau système (systemC) : (C3, N3), (C4, N3), (C5, N3)
Mettre en oeuvre des solutions de calcul intensif sur système sur puce multi-cœurs et GPGPU avec l'aide de bibliothèques adaptées (OpenMP, CUDA...) : (C3, N3), (C4, N3), (C5, N3)
Flot de conception numérique avancée
Composante
ENSEIRB-MATMECA
L'objectif de cet enseignement est de faire prendre conscience aux élèves-ingénieurs des différents niveaux d'abstraction séparant les spécifications d'un système de son implémentation matérielle. La cible technologique utilisée sera le circuit ZYNQ. Il s'agit d'un System on Chip (SoC) développée par AMD-Xilinx, qui combine un processeur généraliste (ARM) avec une matrice programmable de type FPGA (Field-Programmable Gate Array) sur une seule puce. Cette architecture permet d’associer les avantages d’un processeur conventionnel (flexibilité logicielle) et d’un FPGA (accélération matérielle et traitement parallèle).
Conception conjointe matérielle/logicielle. Matériels libres pour l'embarqué
Composante
ENSEIRB-MATMECA
Cours :
- SoC. Codesign.
- Etat de l'art technologique.
- Blocs IP et composants virtuels.
- Partitionnement matériel-logiciel.
- Description de la mise en oeuvre du codesign avec l’outil Quartus Prime d'Intel (anciennement Altera).
- Description de la mise en oeuvre du codesign avec l’outil Vivado d'AMD (anciennement Xilinx).
TP :
- Grand TP1 : outil Quartus Prime d’Intel :
- Mise en oeuvre du codesign sur une carte Terasic DE10-Standard avec Quartus Prime.
- Construction d'un premier SoPC avec le processeur softcore NIOS II dans le circuit FPGA Intel Cyclone V. Tests logiciels.
- Construction d'une deuxième SoPC avec en plus une interface VGA. Tests logiciels.
- Programmation en langage C embarqué.
- Mise en oeuvre du noyau Temps Réel microC/OS II.
- Tests des périphériques matériels.
- Miniprojets (chronomètre, horloge).
- Grand TP2 : outil Vivado d’AMD :
- Mise en oeuvre du codesign sur une carte Digilent ZedBoard avec Vivado.
- Construction d'un SoPC avec le processeur hardcore ARM Cortex-A9 dans le circuit FPGA AMD Zynq. Tests logiciels.
- Développement en VHDL RTL et intégration d'un périphérique matériel libre (bloc IP compteur 64 bits). Tests logiciels.
- Programmation en langage C sous Linux embarqué.
- Mise en oeuvre de l'extension Linux Temps Réel dur Xenomai Cobalt.
- Tests du périphérique matériel.
- Mesure des performances Temps Réel et de temps de latence.
- Grand TP3 : outil Vivado d’AMD :
- Ce TP fait le lien avec le cours "Flot de conception numérique avancée" EN325 où la synthèse de haut niveau HLS est étudiée.
- Mise en oeuvre de la synthèse de haut niveau HLS sur une carte Digilent ZedBoard avec Vivado.
- Création d'un algorithme écrit en langage C.
- Synthèse HLS de l'algorithme en vue de créer un bloc IP.
- Construction d'un SoPC avec le processeur hardcore ARM Cortex-A9 dans le circuit FPGA AMD Zynq intégrant le bloc IP obtenu par HLS.
- Tests logiciels.
Calcul haute performance pour les systèmes embarqués (HPEC)
Composante
ENSEIRB-MATMECA
Cet enseignement a pour but de traiter de l'évolution des systèmes embarqués qui tendent à devenir des machines de calculs dites de haute performance.
Le cours s'articule autour de la conception en langage C/C++ d'un outil de simulation de collisions de galaxies en temps réel, sur la carte de développement embarqué NVIDIA Jetson TK1. La complexité algorithmique (O²) d'un tel simulateur nécessite la pleine utilisation de toutes les capacités de calculs disponibles sur le système-sur-puce (multi-cœurs et GPGPU) en utilisant les API adéquates (OpenMP et CUDA). L'accent est également mis sur l'utilisation de deux API SDL et OpenGL, permettant respectivement la gestion des entrées/sorties de l'utilisateur et la visualisation des simulations en 3D.
UE E9SE-B - Architecture logicielle et systèmes d'exploitation
ECTS
6 crédits
Composante
ENSEIRB-MATMECA
Niveau de connaissances (savoirs) :
N1 : débutant
N2 : intermédiaire
N3 : confirmé
N4 : expert
Les connaissances (savoirs) attendues à l'issue des enseignements de l'UE
Comprendre le fonctionnement des systèmes d'exploitation Temps Réel et l'ordonnnancement des tâches : (C1, N3), (C2, N3)
Appréhender les techniques de communication inter-processus entre processus et l'interaction avec le matériel dans le cadre d'un système d'exploitation complexe de type Unix : (C1, N3), (C2, N3)
Appréhender la conception des systèmes embarqués et plus particulièrement des objets connectés par prototypage rapide avec mise en oeuvre de solutions libres : (C1, N3), (C2, N3)
Les acquis d'apprentissage en termes de capacités, aptitudes et attitudes attendues à l'issue des enseignements de l'UE
Etre capable de choisir une solution Temps Réel pour un système embarqué : (C3, N3), (C4, N3), (C5, N2)
Mettre en oeuvre un noyau Temps Réel dur (microC/OS II) sur un processeur DSP : (C3, N3), (C4, N3), (C5, N2)
Etre capable de faire communiquer des processus sous UNIX et d'interagir avec le matériel sous Unix : (C3, N3), (C4, N3), (C5, N2)
Mettre en oeuvre des techniques de contrôle à distance d'une système embarqué : (C3, N3), (C4, N3), (C5, N2)
Choisir des solutions logicielles libres pour concevoir son système embarqué : (C3, N3), (C4, N2), (C5, N2)
Systèmes d'exploitation Temps réel
Composante
ENSEIRB-MATMECA
Cours :
- Généralités sur le Temps Réel.
- Linux et le Temps Réel.
- Les offres Linux Temps Réel.
- Compléments techniques : ordonnancement, gestion du temps.
- Présentation et mise en oeuvre de PREEMPT-RT.
- Présentation et mise en oeuvre de Xenomai Cobalt.
- Programmation Temps Réel.
- Programmation sous Xenomai : API Alchemy.
- Présentation de la norme POSIX.
- Programmation sous Xenomai : API POSIX Cobalt.
- Présentation du noyau Temps Réel microC/OS II et de ses fonctionnalités.
TP :
- Etude et mise en oeuvre du noyau Temps Réel microC/OS II sur carte Blackfin BF537-EZLITE.
- Etude et mise en oeuvre de l'extension Temps Réel Xenomai Xenomai Cobalt sur carte ARM Raspberry Pi.
Systèmes embarqués. Logiciels libres pour l'embarqué
Composante
ENSEIRB-MATMECA
Cours :
- Caractéristiques d'un système embarqué.
- Importance du codesign dans l'embarqué.
- Internet embarqué. Internet des objets. Etat de l'art dans l'IoT.
- Linux et l'embarqué : Linux embarqué.
- Temps Réel sous Linux. Introduction au Temps Réel.
- Contrôle et communication des objets connectés.
- Protocoles HTTP et MQTT.
- Modulation LoRa et architecture LoRaWAN TTN.
- Prototypage rapide : application à l'IoT. Conception d'un objet connecté.
TP :
- Etude et mise en oeuvre de Linux embarqué sur carte Raspberry Pi.
- Etude et mise en oeuvre de protocoles IP pour le contrôle à distance d'un système électronique sous Linux embarqué : sockets, HTTP (serveur Web), SMTP (client email)...
- IoT : mise en oeuvre d'un objet connecté à base d'un module Raspberry Pi Pico W et contrôle par MQTT.
Outils de construction pour l’embarqué
Composante
ENSEIRB-MATMECA
Responsable : Pierre Ficheux, Smile
Cours :
- Présentation des build systems Buildroot et Yocto pour la construction de distributions Linux pour l'embarqué.
TP :
- Mise en oeuvre de Buildroot.
- Mise en oeuvre de Yocto.
UE E9SE-C - Réseaux et sécurité des systèmes
ECTS
6 crédits
Composante
ENSEIRB-MATMECA
Niveau de connaissances (savoirs) :
N1 : débutant
N2 : intermédiaire
N3 : confirmé
N4 : expert
Les connaissances (savoirs) attendues à l'issue des enseignements de l'UE
Appréhender les technologies mises en oeuvre dans les réseaux de capteurs que l'on trouve dans l'IoT : (C1, N3), (C2, N3)
Appréhender la sécurité matérielle et les techniques de protections matérielles pour la propriété intellectuelle d'un système embarqué : (C1, N3), (C2, N3)
Appréhender la sécurité logicielle aur les aspects réseaux et services associés d'un système embarqué : (C1, N3), (C2, N3)
Appréhender le développement de services avec prise en compte de la QoS sur Internet : (C1, N3), (C2, N3)
Les acquis d'apprentissage en termes de capacités, aptitudes et attitudes attendues à l'issue des enseignements de l'UE
Etre capable de mettre en oeuvre un réseau de capteurs sans fil en utilisant le réseau ZigBee : (C3, N3), (C4, N3), (C5, N2)
Etre capable de fiabiliser un système en terme de sécurité logicielle et détecter une intrusion : (C3, N3), (C4, N3), (C5, N2)
Etre capable de déployer des service voix-données avec QoS sur Internet : (C3, N3), (C4, N3), (C5, N2)
Réseaux de capteurs. Internet des objets
Composante
ENSEIRB-MATMECA
Responsable : Logan Saint Germain, CATIE
Cours :
- Contexte et Outils : l'Internet des Objets (IoT). Spécificités de l'IoT. Les technos clés de l'IoT. Développement d'un objet connecté.
- Cas d'étude : MCU et MPU. ARM. Cortex-M. STM32L4. GPIO. IRQ. Timers. Principaux périphériques.
- Les Bus : UART. I2C. SPI.
- RTOS et Réseau : GPOS et RTOS. Bare Metal. Ordonnancement sans RTOS. Utilisation d'un RTOS. Modèle OSI. 6LoWPAN. IPv4 et IPv6. TCP et UDP. MQTT.
- LoRa.
TP : framework 6TRON du CATIE
- Installation des outils. Test de l'installation. Tutoriel Git. Blinky.
- Ajout de fonctionnalités intelligentes à un objet simple.
- Communications I2C.
- RTOS et multhreading. Ping pong.
Sécurité matérielle des systèmes et des données
Composante
ENSEIRB-MATMECA
Responsable : Lilian Bossuet, Université de Saint Etienne
Ce cours est une introduction et une sensibilisation aux problèmes de la sécurité des données et des systèmes pour l'embarqué. Il débute par une présentation de la problématique de sécurité en particulier pour les systèmes embarqués mobiles et communicants. Sans être exhaustif ce cours présentera les attaques matérielles classiques contre de tels systèmes ainsi que les principales contre-mesures. Enfin des solutions sécurisées seront étudiées, il s'agit de systèmes reconfigurables (à base de FPGA) et de systèmes programmables (crypto-processeurs et module sécurisé).
Cours :
- Introduction.
- Problématiques de sécurité.
- Cryptographie.
- Sécurité des systèmes embarqués : les attaques.
- Sécurité des systèmes embarqués : les protections.
- Systèmes reconfigurables et sécurité.
- Etudes de cas.
- Processeurs sécurisés et TPM (Trusted Platform Module).
Réseaux et services
Composante
ENSEIRB-MATMECA
Description :
Ce module se concentre sur les protocoles avancés du modèle TCP/IP, en approfondissant l’adressage, le routage, et les services réseaux tels que DNS et HTTP. Les acquis permettront aux élèves de comprendre la communication à travers des protocoles complexes et d’effectuer des configurations et résolutions de problèmes dans un environnement réseau.
Objectifs pédagogiques :
- Comprendre les protocoles réseaux locaux et de l’internet
- Maîtriser les concepts d’adressage IP, de sous-adressage et de routage dans un réseau TCP/IP.
- Acquérir des compétences pratiques pour configurer et dépanner des réseaux en utilisant ces protocoles.
Programme et acquis d'apprentissage:
- Le modèle OSI et TCP/IP
- Comprendre les modèles OSI et TCP/IP
- Comprendre les protocoles dans les différentes couches
- Les réseaux LAN et WAN
- Identifier les composants clés d’un réseau LAN : switchs, routeurs, points d’accès.
- Décrire les protocoles et standards utilisés dans les réseaux locaux et étendus.
- Comprendre la transmission binaire à travers le codage NRZ, NRZI, et Manchester
- Ethernet et 802.3 et CSMA/CD
- Comprendre le rôle du protocole Ethernet dans la communication au sein des réseaux LAN.
- Expliquer les mécanismes de fonctionnement d'Ethernet et du standard 802.3.
- Configurer un réseau de base en utilisant des équipements Ethernet (câblage, switches, etc.).
- Adressage IP et sous-adressage (IPv4)
- Maîtriser l’adressage IPv4 : notation, classes d’adresses, sous-adressage.
- Routage et gestion du trafic réseau
- Configurer un réseau avec des routeurs et des sous-réseaux en utilisant des protocoles de routage statiques.
- Analyser le processus de routage via des outils de diagnostic comme traceroute, ping et wireshark.
- Présentation des protocoles ARP, DNS, HTTP et autres protocoles
- Comprendre le protocole ARP et les attaques de type Man in the Midle
- Comprendre le fonctionnement du DNS : résolution de noms
- Analyser le protocole HTTP : structure des requêtes et des réponses
- Travaux pratiques
- Configurer un réseau TCP/IP, créer des sous-réseaux et gérer l’adressage IP.
- Effectuer des tests de connectivité
- Analyser un réseau
Sécurité logicielle des systèmes et des réseaux
Composante
ENSEIRB-MATMECA
Responsables : Mathieu Blanc, CEA et Franck de Goër, ANSSI
Cours :
- Présentation des points sensibles au niveau de la sécurité sous Unix et des problèmes de sécurité avec TCP/IP.
- Présentation de solutions pour la sécurisation d'un environnement TCP/IP. Méthodes de détection et de gestion des intrusions.
- Présentation des points sensibles au niveau de la sécurité sous Unix.
- Présentation des problèmes de sécurité avec TCP/IP.
- Sécurisation d'un environnement TCP/IP (notion de firewall, DMZ...).
- Méthode de conception de réseaux intégrant la sécurisation.
- Détection et gestion des intrusions.
- Pots de miel et leurres informatiques.
- Audits et tests d'intrusions.
- Présentation détaillée d'un exemple de firewall sous Linux : Netfilter.
TP :
- Des exercices sont réalisés sur l'ensemble des points soulevés dans le cours à l'aide de la distribution Kali-Linux.
UE E9SE-D - Approfondissement
ECTS
7 crédits
Composante
ENSEIRB-MATMECA
Niveau de connaissances (savoirs) :
N1 : débutant
N2 : intermédiaire
N3 : confirmé
N4 : expert
Les connaissances (savoirs) attendues à l'issue des enseignements de l'UE
Appréhender la technologie Java embarqué mise en oeuvre dans un système embarqué : (C1, N3), (C2, N3)
Maîtriser les technologies Java ME pour système embarqué : (C1, N3), (C2, N3)
Maîtriser les techniques du machine learning de l'intelligence artificielle pour une implantation dans un système embarqué : (C1, N3), (C2, N3)
Appréhender les techniques de développement d'intergiciel ou pilote de périphérique pour interfacer un matériel spécifique à un système d'exploitation : (C1, N3), (C2, N3)
Maîtriser le développement d'un système embarqué suivant un cahier des charges basé sur des solutions embarquées matérielles et/ou logicielles : (C1, N4), (C2, N4)
Les acquis d'apprentissage en termes de capacités, aptitudes et attitudes attendues à l'issue des enseignements de l'UE
Etre capable de développer des applications embarquées Java sur systèmes embarqués pour l'IoT : (C3, N3), (C4, N3), (C5, N2)
Etre capable de développer un algorithme de machine learning de l'intelligence artificielle pour ensuite l'incorporer dans un système embarqué : (C3, N3), (C4, N3), (C5, N2)
Etre capable de développer un pilote de périphérique pour interfacer un matériel à un système d'exploitation de type Unix : (C3, N3), (C4, N3), (C5, N2)
Etre capable de développer un système embarqué suivant un cahier des charges dans une approche projet : (C3, N3), (C4, N3), (C5, N3), (C7, N3), (C8, N3)
Middleware : développement de pilotes de périphériques
Composante
ENSEIRB-MATMECA
Responsable : Hong Guan, Université de Versailles
Cours :
- Introduction à l’écriture de pilotes de périphérique (driver).
- Noyau Linux.
- Notion de modules.
- Notion de périphériques.
- Périphériques caractère.
- Entrées/Sorties.
- Gestion des interruptions.
- Pilotes bloc et réseau.
TP :
- Ecriture de différents types de drivers.
- Ecriture d'un driver pour piloter un gadget USB (panic button).
Java pour l'embarqué. Application pour l'Internet des objets
Composante
ENSEIRB-MATMECA
Cours :
- Présentation du langage Java par analogie au langage C++.
- Présentation de l'API Java ME, API pour les systèmes embarqués et l'IoT.
TP :
- Etude et mise en oeuvre de Java ME sous Linux pour le contrôle local et à distance d'un objet connecté IoT à base d'une carte Raspberry Pi.
Intelligence Artificielle pour l'embarqué
Composante
ENSEIRB-MATMECA
Responsables : Guillaume Bourmaud, ENSEIRB-MATMECA et Frédéric Druillole, CENBG
Cours :
Première partie : IA classique :
- Cours CNN :
o Couche de convolution.
o Réseau de neurones à convolution.
o Architecture U-Net.
- Cours Réseaux profonds et spécialisation :
o Couche de "batch normalisation".
o Connexion résiduelle.
o Architecture ResNet. Modèles de fondation.
o Spécialisation d'un réseau de neurones (fine tuning).
Deuxième partie : IA embarquée :
- Les principes de l'IA pour l'embarqué.
- Les méthodes d'optimisation.
- Le matériel pour l'IA embarqué.
- Les règles et les difficultés d'inférence.
TP :
TP IA classique :
- CNN Pytorch : implémentation d'un CNN pour de la reconnaissance de chiffres manuscrits.
- Spécialisation d'un réseau ResNet.
TP IA embarquée :
- Optimisation d'un modèle simple pour un circuit FPGA (circuit Xilinx Artyx).
- Test de l’inférence sur une carte Digilent Nexys A7 100T.
Projet avancé en systèmes embarqués
Composante
ENSEIRB-MATMECA
Travail en équipe de 4 étudiants encadré par un enseignant du département électronique sur un projet touchant aux systèmes embarqués sur les aspects matériels et/ou logiciels.
UE Langues et culture de l'ingénieur
ECTS
5 crédits
Composante
ENSEIRB-MATMECA
Engagement Etudiant facultatif (Niveau élevé)
Composante
ENSEIRB-MATMECA
Engagement Étudiant facultatif (Niveau très élevé)
Composante
ENSEIRB-MATMECA
LV1 Anglais
Composante
ENSEIRB-MATMECA
Niveau de connaissances (savoirs) :
N1 : débutant
N2 : intermédiaire
N3 : confirmé
N4 : expert
Les connaissances (savoirs) attendues à l'issue des enseignements de l'UE
Maitriser l'anglais et connaître d'autres cultures (C10, N1 à N4)
Les acquis d'apprentissage en termes de capacités, aptitudes et attitudes attendues à l'issue des enseignements de l'UE
Savoir communiquer avec des personnes de langues et cultures différentes (C10, N2 à N4)
Savoir s'adapter dans différents contextes, dans l'entreprise, à l'international (C10, C12, N1 à N3)
Savoir communiquer avec de spécialistes et non-spécialistes (C12, N1 à N3)
Apprendre à mieux se connaître, à s'autoévaluer, à gérer ses compétences (C13, N2 - N3)
Intégrer l'entreprise
Composante
ENSEIRB-MATMECA
Ce module se compose de deux parties complémentaires :
- Projet Professionnel
- Business Challenge.
Partie 1 : PROJET PROFESSIONNEL (4 heures)
Identification des sources de motivation et des forces/faiblesses/opportunités/menaces rencontrées pendant le stage de 1ere année et 2ème année se préparer à l'embauche Construire son pitch et se préparer à la soutenance du projet professionnel.
MODULE 1 :Debriefing du stage 2A,
MODULE 2 : Préparation du pitch en vue de la soutenance de projet professionnel
Partie 2 : BUSINESS CHALENGE (24 heures)
A travers une simulation l'étudiant doit :- Apprendre à développer une stratégie- comprendre les mécanismes de fonctionnement de l'entreprise ( coûts, comptabilité, finances, marketing, production...)- Analyser les résultats- Se sensibiliser au DDRSMieux comprendre les intéractions entre les différentes dimensions d'une entreprise est un des principaux objectifs de Global Challenge. Les participants devront traiter de multiples disciplines liées à la gestion en les intégrant dans une stratégie globale. De plus, les participants devront apprendre à travailler en équipe, afin de mieux analyser les implications opérationnelles et financières de leurs décision.Chaque équipe, regroupée en unité autonome de gestion, doit gérer un ensemble de produits sur un marché virtuel.