INTRODUCTION LINUX EMBARQUÉE
PLAN
Introduction
Système d’exploitation
Système Embarqué
Système de fichier Linux
Description de la carte Rasberry pi
Interfaces de Communication
INTRODUCTION
L’évolution de l’électronique et de l’informatique
ont permis d’intégrer des fonctionnalités très
diverses.
Besoin de réaliser des calculs précis en temps
réel
C’est pour cela qu’on à penser à inclure tout un
système d’exploitation dans un système
embarquée (naissance de Linux embarquée)
RAPPELS SYSTÈME D’EXPLOITATION
Un système d’exploitation peut être définit
comme étant un programme ou un ensemble de
programmes qui donne la main à un utilisateur
pour manipuler des ressources matérielles
Exemple système Linux
Système multitâches
Multi-utilisateurs
RAPPELS SYSTÈME D’EXPLOITATION
Le système d’exploitation gère les différents ressources
matérielles tq la mémoire MMU
Appels systèmes : utilisés par les programmes pour
communiquer avec l’OS Unix
Gestion des processus : commutation des tâches et de leur
priorité
(Multitasking).
Gestion des E/S fichiers: lecture/écriture
des données sur les DD et/ou
périphériques (carte son, imprimante,...)
Cache : Zone mémoire tampon utilisé
par l’OS pour écrire provisoirement.
Pilotes : gérer au plus bas niveau le
matériel ou les structures logiques du
matériel (par exemple les données d’une
partition).
RAPPELS SYSTÈME D’EXPLOITATION
L’interaction avec le système se fait à travers le
shell
NOYAU LINUX
Le kernel ou noyau est l’interface la plus basse du
modèle en couche de l’application. Il propose en
général des services de bas niveaux (scheduler voir
drivers, file system, network, memory managment …)
et son espace d’adressage est souvent associé à la
notion de niveaux de privilège processeur (mécanisme
de protection mémoire) :
NOYAU LINUX
Le noyau Linux permet directement d'accéder à plusieurs centaines de
périphériques et protocoles de communications, de réaliser des opérations
d'entrées-sorties aisément,
Afficher une interface graphique, de lire des dizaines de formats de systèmes
de fichiers,
Dialoguer avec de nombreux protocoles réseau, etc.
Si un élément n'est pas présent dans une configuration embarquée, il suffit
généralement de recompiler le noyau (voire de ne compiler qu'un module)
pour l'intégrer.
NOYAU LINUX
Type de noyau:
Noyau monolytique
Noyau modulaire
NOYAU LINUX
Micro-Kernel:Le kernel n’offre que les services les plus élémentaires
et critiques dans son espace d’adressage. Les autres services sont
alors répartis dans des serveurs en espace user possédant leurs
propres espaces d’adressages (confinement desdéfauts). Il s’agit de
solution plus fiable et robuste et surtout plus simple à maintenir …
mais moins performantes (énormément d’appels systèmes). Exemples
de systèmes : MINIX, L4, SPARTAN
NOYAU LINUX
Hybrid kernel :
Le grand manque de performance des microkernels à
amener la création des noyaux hybrides. Il s’agit de
technologies mixte entre les solutions monolithiques
et les microkernels. Nous pouvons retrouver dans
l’espace noyau des services non critiques mais
générateurs de grand nombre d’appels système. Nous
retrouvons notamment dans cette famille les OS
suivants : Windows XP, Vista, 7 , 8 basés sur le noyau
hybride NT (New Technology, ex : NT6.3 pour
windows 8.1) et Mac OS X basé sur le noyau hybride
XNU (X is Not Unix) dérivé de Mach kernel
(microkernel) et de FreeBSD kernel (monolithic
kernel).
SYSTÈME EMBARQUÉ
Un système embarqué est un ensemble matériel et logiciel (électronique et
informatique) mêlant quatre grandes caractéristiques :
Autonome, il doit remplir sa mission pendant de longues périodes et sans intervention
humaine (parce que cette dernière est impossible, trop lente, voire insuffisamment
fiable).
Souvent temps-réel, il doit délivrer des résultats exacts dans des délais imposés.
Il est spécialisé dans une tâche précise.
Ses ressources sont limitées ; autrement dit, on va chercher à optimiser son
encombrement, sa consommation et ses mémoires afin de réduire le coût global.
La plupart du temps, le système embarqué est composé de :
capteurs pour le recueil des informations (capteurs de température, de vibration,
accéléromètre, GPS…)
systèmes de traitement de l’information, de prise de décision et de pilotage des
actionneurs (microcontrôleur, microprocesseurs, ASIC…).
actionneurs pour la transcription matérielle des décisions prises au niveau logiciel.
Par exemple, le module de contrôle de vol d’une fusée est un système embarqué.
SYSTÈME EMBARQUÉ (SBC)
Ordinateur mono-carte intégrant system-on-chip, mémoire,
connecteurs d'E/S, etc.
Exemples : BeagleBone Black, Cubieboard, Raspberry Pi,
OLinuXino...
Utilisation de distributions Linux pré-compilées :
Raspbian pour Raspberry PI
Arch Linux,
etc.
SYSTÈME EMBARQUÉ (SBC)
Développement du code métier directement sur la cible.
Prototypage rapide par scripts (Python par exemple).
Inscription du code métier dans les scripts de démarrage de
l'application.
Démonstration, proof-of-concept : débogage et mise au point
réduits.
Pas de souci d'industrialisation, de déploiement ou de mise
à jour pour le moment.
On teste éventuellement plusieurs SBC afin de déterminer
le processeur le plus adapté.
SYSTÈME DE FICHIER LINUX
Le système de fichiers racine (root file system),
est le système de fichiers primaire est associé au
répertoire le plus haut ‘/’ :
SYSTÈME DE FICHIER LINUX
Le dossier ‘/’ «root » contient les dossiers suivants :
/boot fichiers statiques du chargeur de lancement
/dev fichiers de périphériques
/etc configuration système spécifique à la machine
/home répertoires personnels des utilisateurs (optionnel)
/lib bibliothèques partagées essentielles et modules du
noyau
/mnt point de montage pour les systèmes de fichiers montés
temporairement
/proc système de fichiers virtuel d'information du noyau et
des processus
/root répertoire personnel de root (optionnel)
/sbin binaires système (binaires auparavant mis dans /etc)
/sys état des périphériques (model device) et sous-systèmes
(subsystems)
/tmp fichiers temporaires
SYSTÈME DE FICHIER LINUX
Système de fichier ext2
Les fichiers peuvent avoir jusqu’à une taille de
2To (2048 Go), tandis qu’une partition peut
atteindre 32 To, voire 128 To, selon la taille des
blocs et l’architecture
Système de fichier ext3
Comme pour ext2, la taille maximale des fichiers
est de 2 To, et celle d’une partition de 32 To,
suivant les mêmes restrictions. (ext2+journal)
SYSTÈME DE FICHIER LINUX
Notion d’inode
Un noeud d'index ou inode (contraction de l'anglais
index et node) est une structure de données
contenant des informations à propos d'un fichier
stocké dans certains systèmes de fichiers
(notamment de type Linux/Unix). À chaque fichier
correspond un numéro d'inode (inumber) dans le
système de fichiers dans lequel il réside, unique au
périphérique sur lequel il est situé. Les inodes
peuvent, selon le système de fichiers, contenir aussi
des informations concernant le fichier, tel que son
créateur (ou propriétaire), son type d'accès (par
exemple sous Unix : lecture, écriture et exécution),
etc
SYSTÈME DE FICHIER LINUX
Commande mkfs
Crée un système de fichier
Syntaxe : # mkfs -t typefs options périphérique
Commande tune2fs
Transforme un système de fichier ext2 en ext3
Commande fsck
La commande fsck permet de vérifier et de réparer un
système de fichiers.
Syntaxe : fsck -t typefs périphérique
La commande df permet d’obtenir des statistiques
d’occupation de chaque système de fichiers monté
Syntaxe : # df Sys. de fich.
SYSTÈME DE FICHIER LINUX
La commande mount
La commande mount permet d’accéder aux périphériques de
type blocs (les partitions) sur lesquels un système de fichiers
existe. La commande mount attache le répertoire racine du
système de fichiers à un répertoire pré-existant appelé point de
montage (mountpoint).
Syntaxe : mount -t typefs -o options périphérique
point_de_montage
La commande umount
La commande umount détache le système de fichiers du point
de montage.
# umount /mnt/DATA
Si un ou plusieurs fichiers du système de fichiers à démonter
sont encore en cours d’utilisation, alors umount ne marchera
pas. Vous devez vous assurer qu’aucun processus n’accède au
système de fichiers.
DESCRIPTION DE LA CARTE RASBERRY PI
Le Raspberry Pi est un nano-ordinateur conçu et
promu dans un but educatif par la fondation
Raspberry Pi située en Angleterre.
Le Raspberry est conçu autour d'un processeur
RISC ARM11 v6 ou v7.
DESCRIPTION DE LA CARTE RASBERRY PI
Il dispose d'un gestionnaire d'entrée/sortie BCM2835 qui permet
d'avoir
un interface Ethernet
un port GPIO (General Purpose Input Output)
Des prises USB (2 ou 4) de 3W
Son alimentation est possible grâce à une prise micro USB
La vidéo est directement accessible sur un port HDMI.
Des ports supplémentaires permettent la connexion
d'une caméra
d'un écran
La mémoire n'est pas extensible.
La mémoire de masse se limite à une carte SD (ou micro SD)
Enfin le Raspberry possède une prise jack pour le son et sortie
vidéo-composite.
INTERFACES DE COMMUNICATIONS
Spécifications techniques du Raspberry Pi 400
SoC : Processeur ARM Cortex-A72 quadricœur Broadcom BCM2711 C0 à 1,8 GHz
RAM 4Go de SDRAM LPDDR4-3200
Stockage : Emplacement pour carte MicroSD Push-push pour OS. Le démarrage sur un SSD connecté au port
USB fonctionne également. Attention à attendre l’arrêter complet du système avant de débrancher le SSD sous
peine de le détruire !
Sortie vidéo et audio
2x ports micro HDMI jusqu’à 1x 4Kp60 ou 2x 4Kp30
Connectivité
Gigabit Ethernet RJ45
WiFi 2,4 GHz et 5 GHz 802.11.b/g/n/ac ,
Bluetooth 5.0 et BLE (Bluetooth Low Energy) avec antenne gravée sur le PCB USB
2x ports USB3.0
1x port USB2.0
Embase horizontale GPIO 40 broches compatible avec tous les modèles de Raspberry Pi
UART, I2C, bus SPI avec deux sélections de puces, 5 V, 3,3 V et GND
Divers
Bouton d’alimentation
Verrouillage Kensington
Dissipateur thermique
Alimentation : 5 V@3A via un connecteur USB de type C
Dimensions : 285 x 122 x 21 mm
INTERFACES DE COMMUNICATIONS
Le système d’exploitation utilisé est le système rasbian qui est une variation
de la distribution Debian de Linux
Interfaces GPIO (General Purpose Input Output)
Contiennent des élément de connexions de type
I2C
UART
SPI
INTERFACES DE COMMUNICATIONS
Interface UART
UART est l'acronyme de Universal Asynchronous Receiver-
Transmitter (récepteur-émetteur asynchrone universel).
L'UART est un type d'interface de communication série
conçue pour transmettre et recevoir des données via un bus
de données.
Il permet à deux dispositifs, tels que des ordinateurs,
d'effectuer la transmission de données sur une connexion
filaire.
Les UART convertissent les octets de données entrants et
sortants en un flux de bits série. La communication
asynchrone est un type de communication série dans lequel
les interfaces à chaque extrémité ne sont pas synchronisées
par un signal d'horloge commun.
Ces dispositifs UART particuliers sont des circuits intégrés
(CI) autonomes. Toutefois, vous pouvez également trouver
des UART dans les microcontrôleurs (MCU), car ils ne
nécessitent que deux fils pour la communication.
INTERFACES DE COMMUNICATIONS
Les CI (circuits intégrés) UART sont des dispositifs à
semi-conducteurs qui peuvent être intégrés dans les
conceptions électroniques pour permettre la
communication UART.
L'UART est une méthode populaire de communication
dans les projets électroniques. Il permet au matériel
informatique de communiquer avec d'autres modems
et périphériques série.
Lors du choix d'un CI UART, il convient de d'assurer
qu'il est conforme aux exigences de la vitesse de
transmission du modem.
Les UART peuvent être dotés d'une norme de
communication qui définit les signaux entre les
dispositifs. Ces normes incluent RS-232, RS-422 et
RS-485.
INTERFACES DE COMMUNICATIONS
Interface I2C
I2C, pour Inter Integrated Circuit , est un protocole
de communication crée à la base par Philips en 1982
pour standardiser l’échange de données entre
différents circuits intégrés d’un même système. Elle
est aujourd’hui assurée par le fabricant NXP, spin-off
de l’entreprise.
Le bus I2C (BUS I2C est une marque déposée par
PHILIPS composants) constitue un moyen simple de
relier (ou de mettre en réseau) des composants ou des
sous-ensembles électroniques. Ce bus permet un
échange bidirectionnel d'informations à une fréquence
pouvant atteindre 100 Kbits/s. Il fonctionne selon le
mode de transmission série et n'utilise que deux
conducteurs actifs : SDA (pour Sérial DAta) et SCL
(pour Sérial CLock).
INTERFACES DE COMMUNICATIONS
Un émetteur est celui qui envoie les données alors que le
récepteur les reçoit.
Le maître est le composant qui a initialisé la communication
et qui produit du même coup le signal d'horloge.
L'esclave est le composant adressé par un maître. Un esclave
peut émettre ou recevoir sous contrôle de l'horloge du maître.
Plus d'un maître peut tenter de prendre le contrôle du bus.
La notion d'arbitrage est la procédure qui permet d'accorder le
bus à un seul maître à la fois.
Un maître peut devenir esclave et inversement.
Le transfert d'une donnée commence par une condition de
départ (START : SDA passe de 1 à 0 et SCL = 1) le bus est
alors occupé.
Le transfert d'une donnée se termine par une condition d'arrêt
(STOP : SDA passe de 0 à 1 et SCL = 1) le bus est alors libre.
INTERFACES DE COMMUNICATIONS
Interface SPI
L'interface SPI a été développée par Motorola (qui fait maintenant partie de
NXP Semiconductors) vers 1985. Il s'agit d'une interface série synchrone
conçue pour une communication à courte distance entre dispositifs.
Depuis, elle est devenue une norme de facto utilisée par de nombreux
fabricants de semi-conducteurs, surtout dans les microcontrôleurs et les
microprocesseurs.
La raison de la popularité de la SPI réside dans ses nombreux avantages.
D'abord, c'est une interface d'adressage matériel simple qui offre une totale
flexibilité sur le nombre de bits transférés.
Elle utilise un modèle maître-esclave à maître unique et peut gérer plusieurs
dispositifs esclaves à l'aide de communications en full duplex fonctionnant à
des fréquences d'horloge pouvant atteindre 50 MHz.
Elle n'utilise pas de protocole standard et transfère uniquement des paquets
de données, ce qui la rend idéale pour le transfert de longs flux de données.
INTERFACES DE COMMUNICATIONS
La SPI utilise un maximum de quatre lignes de signaux .
Le dispositif maître, généralement un processeur ou un
contrôleur, fournit et contrôle les lignes d'horloge (SCK) et
de sélection de puce (CS).
Le fonctionnement en full duplex est géré par les lignes de
données MOSI (maître sortant, esclave entrant) et MISO
(maître entrant, esclave sortant).
Dans une configuration simple à maître unique et esclave
unique, la ligne de sélection de puce peut être éliminée et
l'entrée CS vers l'esclave forcée à l'état logique actif.
Si le dispositif esclave ne peut envoyer que des données
(communication en semi-duplex), alors la ligne MOSI peut
aussi être supprimée pour réduire davantage le nombre de
signaux.
Les données sont transférées par le signal d'horloge, de
sorte que le transfert de données soit assimilé à un registre
à décalage avec un bit décalé pour chaque horloge.
MERCI POUR VOTRE ATTENTION