Armadeus Systems embedded Linux systems

publicité
Projet tutoré
Enseignant responsable : P. CELKA
JAEGY Robin
CHATIN Baptiste
1
Introduction
I.
Prise en main avec la carte Armadeus
II. Communication série avec l’apf51
III. Configuration TFTP
IV. Flash de la carte
V. Can bus Linux Driver
VI. Les connections physiques de la carte
VII.Les scripts shell
VIII.Programme en Python
IX. Programme en Qt
Conclusion
JAEGY Robin
CHATIN Baptiste
2
Introduction
Présentation du Projet
Sujet : Mise en œuvre d’une communication CAN sur un système Linux
embarqué Armadeus.
Problématique : On souhaite pouvoir envoyer des trames CAN via la carte
Armadeus apf51_dev et si possible mettre en œuvre une interface tactile sur
cette carte pour communiquer avec un véhicule par liaison CAN à l’aide de
boutons et d’un afficheur.
Étapes du projet :
 Prendre en main la carte Armadeus
 Mise en œuvre d’une liaison CAN
 Faire un programme qui envoie des trames CAN
 Mise en œuvre d’une interface tactile
JAEGY Robin
CHATIN Baptiste
3
Système embarqué sous Linux?
Il est composé de :
 Un bootloader qui permet de charger le système
d’exploitation
 Un système d'exploitation = le noyau Linux
 De nombreux programmes et bibliothèques organisées dans un système
de fichiers racines: le rootfs
Exemple : QT embedded, Python, SDL…
JAEGY Robin
CHATIN Baptiste
4
Outils de développements
Cartes microprocesseur
Cartes développement
APF51_Dev
APF51
Périphériques et Accessoires
LW700
JAEGY Robin
CHATIN Baptiste
APF_Holder
5
I) Prise en main avec la carte Armadeus
Il est nécessaire d’installer des paquets à l’environnement de
programmation ainsi qu’a la création du kernel et des rootfs.
- Le logiciel Amardeus puis configurer le Buildroot.
Buildroot
 Outil de construction de systèmes GNU/Linux embarqués
 Utilise le processus de compilation croisée.
JAEGY Robin
CHATIN Baptiste
6
La configuration du Buildroot :




(apf51) Board Support
(imx51) CPU name
(2) Number of RAM chips
(256) Size of a single RAM chip
Fichiers de mise à jour :




JAEGY Robin
CHATIN Baptiste
apf51-u-boot.bin
apf51-linux.bin
apf51-rootfs.arm.jffs2
apf51-rootfs.arm.tar
7
II) Communication série avec l’apf51
Le choix s’est porté sur C-Kermit
La communication se fait à travers une liaison série RS232 simulé par un câble USB
Configuration
JAEGY Robin
CHATIN Baptiste




125200 bit/s
8 bits
Pas de parité
1 Bit de stop
8
III) Configuration TFPT
TFTP (Trivial File Transfer Protocol)
Protocole simplifié de transfert de fichiers.
Copie des fichiers de sortie de la compilation vers le dossier
tftpboot/ avant le flash
armadeus/buildroot/output/images/ vers tftpboot/
JAEGY Robin
CHATIN Baptiste
9
La configuration du réseau
Les variables d'environnement
Commande:
printenv
Côté Carte
IP
192.168.0.10
Netmask 255.255.255.0
Serverip 192.168.0.15
Rootpath ’’/tftpboot/apf51-root’’
JAEGY Robin
CHATIN Baptiste
setenv
saveenv
Côté PC
IP
192.168.0.15
Netmask
255.255.255.0
Passerelle 192.168.0.1
10
IV) Flash de la carte
Le bootloader (Chargeur de démarrage)
 Initialiser le matériel
 Charger le noyau Linux
et le lancer avec les bons paramètres
U-Boot
 Démarre le système d'exploitation
 Initialise les fonctions vitales après un reset
 Lance le système Linux
 Fournit une interface pour reprogrammer la Flash du système
JAEGY Robin
CHATIN Baptiste
11
V) CAN bus Linux driver
SocketCAN
Ensemble de driver et de logiciels utiles pour le
réseau CAN.
Utilisation du Bus Can
 Charger les drivers




JAEGY Robin
CHATIN Baptiste
modprobe can
modprobe can-dev
modprobe can-raw
modprobe mcp251x
12
 Régler le débit de l'interface CAN0
 ip link set can0 up type can bitrate (125000 ou 500000)
 Configurer l’activation du réseau CAN
 ifconfig can0 up
 set can0 up
 Envoyer une trame sur le Bus Can
 cansend can0 555#10.20.30.40 (ID 555, octet data 10.20.30.40)
JAEGY Robin
CHATIN Baptiste
13
VI) Connexion physique de la carte
Micro USB
JAEGY Robin
CHATIN Baptiste
14
VII) Les scripts shell
Automatisation de la
configuration du CAN
Si on appuis sur Entrée on
exécute l’envoi d’une trame
Si on tape exit et Entrée on
sort du script
JAEGY Robin
CHATIN Baptiste
15
Bus CAN
de la carte
Usb PC
JAEGY Robin
CHATIN Baptiste
16
VIII) Programme en Python
Pour une utilisation plus poussée de
la liaison CAN comme par exemple:
 Envoyer des trames en boucles
 Mettre une variable dans un octet
qui sera envoyé sur le réseau
CAN.
Nous avons réalisé un programme en
python capable d’envoyer des trames
CAN.
JAEGY Robin
CHATIN Baptiste
17
Dans cet exemple notre programme
demande d’appuyer soit sur :
 A pour envoyer la trame avec
l’identifiant 555.
 B pour envoyer la trame avec
l’identifiant 666.
 C pour envoyer la trame avec
l’identifiant 777.
 Q pour quitter le programme,
Il faut ensuite confirmé à l’aide la
touche entrée.
JAEGY Robin
CHATIN Baptiste
18
IX) Programme en QT
 Développé en C++
 On utilise QT Embedded sur notre carte
 Offre pleins de possibilités d’utilisation :




Interface graphique
Accès aux données
Connexions réseau
Gestion des fils d’exécution
1. Ajout de la bibliothèque pour le touchscreen
Pour utiliser les application QT nous avons besoin de l’écran tactile il
faut donc ajouter le paquet nécessaire.
On fait un make menuconfig dans le dossier armadeus puis on sélectionne :
JAEGY Robin
CHATIN Baptiste
19
IX) Programme en QT
2. Script Shell d’automatisation
Nous avons créé un script pour éxecuter
automatiquement les commandes utiles à :
 Calibrage de l’écran
 Exporter les données du tactiles pour QT
 Lancer le programme QT
 Calibrer l’écran
 Exporter les données
 Lancer le programme QT
JAEGY Robin
CHATIN Baptiste
20
IX) Programme en QT
3. Programme de l’interface graphique en QT
On a prévu deux boutons
simple effet qui à leur appuie
envoie une trame
Un curseur avec une plage
de 0 à 250 et son afficheur
permettrait de fixer cette
valeur au compteur en
appuyer sur le bouton
Un bouton qui permet de
quitter le programme
JAEGY Robin
CHATIN Baptiste
21
Ce projet nous a permis d’approfondir nos connaissances et
nous a montré les possibilités d’utiliser un système embarqué linux pour
communiquer avec un véhicule par liaison CAN.
Un projet passionnant qui nous a donné la motivation nécessaire pour le
mener à bien.
Néanmoins il dommage de ne pas avoir pu finaliser l’interface
graphique qui était pour nous la partie la plus intéressante cause d’un
manque de temps du à un problème en début de projet.
Merci de votre attention.
Baptiste CHATIN
Robin JAEGY
22
Téléchargement