Académique Documents
Professionnel Documents
Culture Documents
Serie Gui
Serie Gui
Acquisition de
donnes sries
binaires via une
interface
graphique
Matlab
P09AB08 : Odomtrie ferroviaire par fusion de donnes
acclromtriques et GPS
Prsentation
Cette note dapplication a pour but de prsenter une manire simple et efficace de
raliser lacquisition sur PC de donnes sries binaires pour permettre un traitement
ultrieur.
Loutil choisi est Matlab, pour la polyvalence quil permet en aval de lacquisition.
Matlab fonctionne partir dun langage interprt dont les bases ne sont pas lobjet de
cette note. Un minimum de connaissances dans la syntaxe et la gestion des objets graphiques
(figures, axes ) est recommand pour une bonne comprhension.
Lintrt de lutilisation dun GUI pour lacquisition de donnes srie est de pouvoir
paramtrer de faon simple la connexion et de pouvoir sauvegarder facilement le rsultat.
Page 1 sur 14
Projet odomtrie ferroviaire par fusion de donnes
acclromtriques et GPS
Prsentation ..........................................................................1
1
Rappels sur la liaison srie .............................................4
1.1
Format des donnes .......................................................................................................... 4
1.2
Interface srie sur PC ........................................................................................................ 4
3
Structure serial..............................................................7
4
Prcautions dusage .........................................................8
4.1
Allocation dynamique/Pr allocation.............................................................................. 8
4.2
Ouverture/fermeture de ports......................................................................................... 9
4.3
Vidage du buffer dentre ................................................................................................ 9
Bibliographie ........................................................................14
Contacts................................................................................14
Page 2 sur 14
Projet odomtrie ferroviaire par fusion de donnes
acclromtriques et GPS
Page 3 sur 14
Projet odomtrie ferroviaire par fusion de donnes
acclromtriques et GPS
Bit1
1
D0
Bit2
1
D1
Bit3
1
D2
Bit4
1
D3
Bit5
1
D4
Nous traiterons dans le cadre de cette note des donnes 8 bits sans vrification de
parit, et avec un bit de stop.
Ceci permet de transmettre la majorit des donnes binaires : par exemple, la
rception dune donne 8, 16, 32 bits peut se faire respectivement par la rception dune, de
deux, ou de quatre trames 8 bits.
1.2
La liaison srie sur PC, et principalement son connecteur associ (DB9) tend
disparatre des nouvelles machines. De nombreux adaptateurs srie USB permettent
dmuler des ports sries et donc de contourner le problme de connectique.
Tous les systmes dexploitation courants sont capables de grer ce type de
priphriques, mais il faut noter que la plupart ne proposent que des drivers Windows.
Fonctionnalits
Page 4 sur 14
2.2
Structure
Page 5 sur 14
Projet odomtrie ferroviaire par fusion de donnes
acclromtriques et GPS
Page 6 sur 14
Projet odomtrie ferroviaire par fusion de donnes
acclromtriques et GPS
'style','edit',...
'string','acquisitions\acquisition.mat',...
'tag','champ_nom');
%------------------------------------------------------------data=guihandles(gcf);
guidata(gcf,data);
%------------------------------------------------------------%Fin : Creation du GUI
%------------------------------------------------------------Code 1 : GUI contenu dans acquisition_serie_donnees.m
3 Structure serial
Lobjet serial permet laccs aux diffrents ports srie dune machine. Plusieurs
possibilits existent pour louverture dun port, suivant le systme dexploitation.
Systme dexploitation
Linux / Linux 64
Mac OS
Solaris 64
Windows 32/64
Constructeur type
serial('/dev/ttyS0');
serial('/dev/tty.KeySerial1');
serial('/dev/term/a');
serial('com1);
8 bits
pas de parit
un bit de stop
et vis vis des valeurs par dfaut des proprits de lobjet serial, il faut configurer au
minimum les champs Port, BaudRate, InputBuffer (choix de la tailler du buffer dentre) et
Timeout (si la valeur par dfaut de 0.01s ne convient pas lapplication) .
Page 7 sur 14
Projet odomtrie ferroviaire par fusion de donnes
acclromtriques et GPS
4 Prcautions dusage
4.1
Ce point est critique dans la rception des donnes. Lacquisition srie sous Matlab,
en flux continu et avec un dbit lev (au del de quelques ko.s-1), ne peut pas se faire
directement sur un vecteur de taille inconnue au dpart. Laugmentation constante de la
taille du vecteur force une srie de rallocations qui ont pour effet de provoquer une perte
de donnes chaque fois.
La technique la plus simple consiste prallouer un vecteur de taille suffisante au
regard du dbit et de la dure dacquisition.
Page 8 sur 14
Projet odomtrie ferroviaire par fusion de donnes
acclromtriques et GPS
4.2
Ouverture/fermeture de ports
La gestion des ports srie est rigoureuse dans Matlab. Il est important de toujours
respecter la squence suivante :
1.
2.
3.
4.
5.
ouverture du port
lancement de lacquisition
arrt de lacquisition
mise en forme ou prs traitement si ncessaire
fermeture du port
Donnes
perdues
Flux srie
Lecture
du buffer
Asynchronisme et
perte de donnes
Ouverture
du port
Fin de
remplissage
du buffer
Dbut de la
lecture du
buffer
La perte de donnes peut tre simple si les donnes nont quune seule signification,
elle peut tre plus complexe grer si la rception se fait sous forme de trames : la
synchronisation est perdue.
Page 9 sur 14
Projet odomtrie ferroviaire par fusion de donnes
acclromtriques et GPS
Cette fonction a pour but de crer lobjet serial avec les paramtres choisis dans le GUI.
%------------------------------------------------------------%Callback : ouvrir port
function cb_ouvrir_port(obj,event)
data=guidata(gcbf);
global s;
%selection du port en fonction du popup menu
switch get(data.selection_com,'value')
case 1,
port = 'COM1';
case 2,
port = 'COM2';
case 3,
port = 'COM3';
case 4,
port = 'COM4';
case 5,
port = 'COM5';
case 6,
port = 'COM6';
case 7,
port = 'COM7';
case 8,
port = 'COM8';
case 9,
port = 'COM9';
case 10,
port = 'COM10';
otherwise,
port = 'COM1';
end;
s = serial(port,'BaudRate', str2num(get(data.champ_vitesse,'string')));
set(s,'InputBuffer', 8192);
fopen(s);
guidata(gcbf,data);
Code 2 : Callback - Ouvrir port
Lobjet serial s, assimilable un fichier, est dclar en tant que variable globale : en
effet, il doit tre accessible par la fonction de fermeture du port, et dacquisition des
donnes.
Page 10 sur 14
Projet odomtrie ferroviaire par fusion de donnes
acclromtriques et GPS
guidata(gcbf,data);
Code 3 : Callback Fermer port
Page 11 sur 14
Projet odomtrie ferroviaire par fusion de donnes
acclromtriques et GPS
Cette fonction na pas dintrt tre prsente ici, tant donn quelle dpend
entirement du type de donnes reues. On peut envisager simplement de convertir
plusieurs octets en un nombre de dynamique plus grande, ou reconstituer des chaines de
caractres
De faon gnrale, et en accord avec linterface, cette fonction doit gnrer un
vecteur ou un tableau, ou une structure donnees_formatees partir du vecteur out.
La sauvegarde des donnes reues peut se faire sous diffrentes formes, ici on cre
directement un fichier .mat ouvrable par Matlab. On peut envisager de tester la fin de la
chaine de caractres du nom (ici get(data.champ_nom,'string') ) pour rajouter si ncessaire
lextension .mat, mais on peut aussi pour simplifier obliger saisir nom de fichier contenant
la bonne extension.
%------------------------------------------------------------%Callback : sauvegarde des donnes
function cb_sauv_donnees(obj,event)
data=guidata(gcbf);
global out;
global donnees_formatees;
%enregistrer sous le nom de champ_nom le vecteur out, et donnes formates
save(get(data.champ_nom,'string'),'out','donnees_formatees');
guidata(gcbf,data);
Code 6 : Callback Sauvegarde des donnes
Page 12 sur 14
Projet odomtrie ferroviaire par fusion de donnes
acclromtriques et GPS
Les donnes reues via la liaison srie mise en uvre ne sont pas forcement une
succession de valeurs 8 bits reprsentant une mme grandeur. Dans un cas aussi simple,
aucun problme de synchronisation nest relever.
Si les donnes reues sont plus complexes, i.e. reprsentant des grandeurs
diffrentes et/ou de types diffrents, il faut choisir un motif que lon peut prvoir a priori.
Il faut garder en tte que des valeurs binaires, sauf si elles sont bornes, peuvent
prendre toutes les valeurs de leur dynamique. Une simple valeur ne peut donc pas servir
artificiellement de terminateur. En revanche, on peut supposer quune succession de
plusieurs valeurs connues et dans une squence connue peut reprsenter un motif
assimilable un terminateur. Il convient de sassurer que la probabilit doccurrence de ce
motif est trs faible parmi les autres donnes.
Page 13 sur 14
Projet odomtrie ferroviaire par fusion de donnes
acclromtriques et GPS
Bibliographie
Briot, Jrme. Dveloppement efficace des interfaces graphiques. Devellopez.com. 17 03
2009.
. Prsentation des objets graphiques. Developpez.com. 17 03 2009.
RS232 Specifications and standard. http://www.lammertbies.nl/comm/info/RS-232_specs.html
(accs le 01 24, 2010).
Contacts
Cette note dapplication a t ralise par Jean Doucement. Pour toute question ou
prcision :
jean.doucement@polytech.univ-bpclermont.fr
ou
jean.doucement@gmail.com
Page 14 sur 14
Projet odomtrie ferroviaire par fusion de donnes
acclromtriques et GPS