LA PRATIQUE POUSSEE |
I - LES BASES DE LA COMMUNICATION
Pour engager une communication entre deux
systèmes (machines,homme,..), il faut réunir trois
conditions:
1) même support physique
A notre disposition: cable coax, fibre
optique, infrarouge,antenne,.... Il est clair que l'on va pas
commander une TV avec de la fibre optique ni par un cable (il
n'y pas de prise) mais avec un émetteur infrarouge (une
télecommande) puisque le poste de tv comporte un récepteur
est infrarouge. Les interfaces de dialoque (éméteur,récepteur)
doivent donc être compatibles .(caractéristiques
techniques, matérielles similaires, type de modulation,
démodulation).
2) même type de transmission
- synchrone :Les
données véhiculées sont cadencées
par une horloge qui est retransmise sur un fil à part.
Le récepteur est l'esclave de l'émetteur et est
de plus cadencé par l'émetteur. La période
de l'horloge peut varier en cours de route. Le récepteur
n'a pas besoin d'être réajusté car il est
cadencé par l'horloge elle-même.
- asynchrone: Les données sont
délimitées par deux tops de synchronisation. C'est
à partir de l'un de ces tops, communément appelé
top de début, bit start que le récepteur se synchronise
et s'attend à recevoir par la suite les données
à une cadence fixée. C'est l'émetteur qui
fixe la cadence d'envoi et le récepteur doit être
paramétré à cette même cadence pour
pouvoir interpréter correctement les données transmises
. Si l'émetteur change de cadence, il faut reparamétrer
le récepteur en conséquence.
3) même protocole
Les deux systèmes se sont mis
d'accord (entente réciproque, à configurer manuellement
la plupart du temps) sur le contenu (format des trames données)
à envoyer . Si le système au bout est prévu
pour recevoir une trame série à un format donné,
je lui envoie donc une trame série au même format
comme cela il me comprendra.. C'est clair que parler russe à
un chinois c'est comme pisser dans un violon.Le protocole définit
donc les règles d'interprétation d'une trame de
donnée.
Ce qu'il faut bien comprendre, c'est
que à ce niveau, il n'est pas utile de préciser
le type de machines que je souhaite faire communiquer.(je ne
veux plus entendre ca marche aussi avec la HP3x ou HP4x ?).
Tout ce qui m'intéresse, c'est de savoir si tel ou tel
machine a la possibilité ou les moyens de communiquer,
c'est à dire a-t-elle une interface ou port de communication
série,infrarouge,...?
Deux choses l'une , soit elle en a soit elle en a pas. Dans
le dernier cas, il faut se fabriquer l'interface;c'est ce que
j'ai fait avec le module infrarouge multiusage car mon microcontrôleur
ne disposait pas de port infrarouge.Aussi,
dans le cas où se problème d'interface est réglé,
cela veux dire que si je satisfais
les deux autres conditions à savoir type de transmission
identique et même protocole ....alors j'aurais établi
un canal de communication.
L'usage du canal de communication m'importe peu, passer du son,
de la vidéo,des données pourquoi pas...pour moi
c'est presque pareil à condition que le protocole, le
type de transmission et le support physique avec ses interfaces
le supporte.
II - LE CADRE DE MES REFLEXIONS
Je n'aborderais pas les liaisons synchrones
mais préfère plutot m'intéresser aux liaisons
asynchrones qui nous entourent au quotidien. Au travers de quelques
exemples pratiques concrets et fondamentaux tels, la liaison série
RS232 , celle de la Hp (spécifique aux H48s(x)/g(x)) et
celle qui régit les télecommandes domestiques (TV,magnétoscope,hifi)
, je vais vous exposer la méthodologie pour faire des passerelles
de communication entre ces systèmes qui ont pourtant des
interfaces de communication incompatibles. Le maitre mot de cette
méthodologie, c'est la modélisation du flux de donnée
à véhiculer (modélisation de la trame sans
se soucier de ce quelle achemine) et le choix des interfaces d'adaption.
Certes, ce dernier choix pour un novice en électronique
peut poser quelques soucis mais que ceux qui se sentent concernés
se rassurent, je vais aborder et détailler ce qui se passe
physiquement avec des clichés d'oscilloscope à l'appui.
1) Modélisation d'une trame asynchrone
(universelle sauf contre exemple)
A) Trame
Une trame de données est la mise
bout à bout d'une entête d'élement début,
d'un ou de n groupe d'éléments et d'une entête
d'éléments fin .
Entête
d'élement de début
|
Groupe
d'élément 1.. groupe d'élément
n
|
Entête
d'élément de fin
|
|
|
|
|
|
|
|
|
START_TRAME |
CONTROL_TRAME |
|
(n fois)
|
|
|
|
|
|
|
|
START_ELEMn |
CONTROL_ELEMn |
DATA_ELEMn |
CONTROL_ELEMn |
STOP_DATAn |
|
B) Blocks
Comme le montre la figure du dessus,
chaque élément (début,1,2,..n,fin) peut
être constitué d'un ou plusieurs blocs.
Ces derniers peuvent êtres regroupé en différent
types:
TYPE
|
DESCRIPTION
|
START |
avertit le récepteur
et le prépare à l'analyse de l'élément
,c'est le premier bloc de l'élément. |
DATA |
correspondant aux données
utiles de l'élément à émettre
(voix,données,son,vidéo..) |
CONTROL: |
assure l'intégrité
des données, la répartition de l'élément
ou spécifie le destinataire |
STOP |
:marque la fin de l'élément
, .il est facultatif et est positionné en fin de
trame |
C) Motifs
Un bloc ne peut malheureusement être transmis tel quel,
il a besoin d'être décomposé en éléménts
binaires (éléments informatiques qui ne peuvent
avoir que les valeurs 0 ou 1) de base: le motif. Par exemple,
si le block DATA_ELEMn (de type DATA) est un caractère
, il comportera m=8 motifs D0 à D7.
DATA_ELEMn
|
|
|
D0 |
D1 |
D2 |
D3 |
D4 |
D5 |
D6 |
D7 |
|
ou |
DATA_ELEMn
|
|
|
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
|
Il y a deux possibilité d'aggencer
les Motifs: en effet, soit on commence par 0 (le LSB, Least
Significant Bit ) et on finit par m-1 (le MSB, Most significant
Bit), soit l'inverse. A surveiller donc de près! Dans
tous les cas, la valeur (décimale) du bloc DATA_ELEM
vaut :
DATA_ELEMn=D0*2^0 + D1*2^1 + D2*2^2
+ D3*2^3+D4*2^4+D5*2^5+D6*2^6+D7*2^7;
Ceci est généralisable
à l'ensemble des blocs par la relation:
|
|
avec m le nombre de motifs du bloc
et Valeurmotif(k), la valeur binaire du motif k.
a) Définition du motif:
Physiquement, les motifs sont associés
à une forme d'onde électrique pouvant prendre
deux niveaux de tension en fonction de la valeur du motif
pendant une durée caractéristique: la durée
totale du motif.La forme des motifs et la combinaison des
motifs qui forme une trame dépend du protocole utilisé.
Il n'y a que deux type de motif de DATA car les données
informatiques sont décomposables en éléments
binaires (ou bits) et ne peuvent avoir que deux valeurs 0
ou 1 (pas de modulation de phase ou de fréquence).
Pour définir un motif :
#Il nous faut le nommer en tenant
compte de son ordre d'apparition dans le block auquel il
appartient.
#Préciser ses caractéristiques
électriques notamment:
- sa valeur
de début (0 ou 1),
- la durée
du motif,
- son rapport
cyclique (compris entre 0 et 1): rapport entre la durée
au niveau haut sur la durée totale du motif
- sa valeur
de fin (0 ou 1)
Pour bien vous familiariser
avec ces notions barbares, je vous ai fait... |
|
Par contre, rien empêche d'avoir un motif spécial
pour le motif START, complètement différent
de l'un des motifs DATA , du motif CONTROLE
ou STOP. Autant le motif START est vital autant le motif STOP
, CONTROL sont optionnels.Il est clair qu'une trame sans motif
DATA n'a pas lieu d'être.
b) Granularité des motifs
L'ensemble des motifs possédent
le même type (START, CONTROL,...) forment un block qui
hérite de ce type. Ce block peut être segmenté
en plusieurs compartiments, c'est le principe de répartition
des motifs à l'intérieur d'un bloc. Ainsi, si
l'on veut envoyer deux types de données dans une trame,
c'est possible à partir du moment où l'on a
défini la frontière entre ces deux types de
donnée dans le block DATA..Dès lors, les motifs
DATA peuvent représenter aussi bien un entier,un caratère,une
liste... qui seront sans doute de taille plus grosse que le
nombre de motifs DATA transmissible par une seule trame. Qu'à
cela ne tienne, ils seront transférés avec plusieurs
trames, c'est le principe d'encapsulation des données
/ désencapsulation des données de la trame et
de recollage des morceaux qui doit être mis en oeuvre
avec un logiciel de communication spécifique au protocole
choisi.
c) Les durées caratéristiques
On appelle la durée inter-trame,
la durée qui sépare le dernier motif de l'entête
d'élément de fin(s'il existe, sinon c'est le
motif qui le précède ) de la trame en cours
et le premier motif de l'entête d'élément
de début de la trame qui suit. La durée des
motifs entre deux blocs différents est généralement
la même. Dans le cas de la liaison série RS232
ou HP48 IR, elle correspond à la cadence de transmission
(1/(Valeur en Bauds)). Ainsi, si je paramètre le port
série de mon PC ou de ma HP à 9600 bauds, la
durée du motif sera de 1/9600=104 microsecondes.
2) Bilan
Vous l'aurez sans doute remarqué, j'utilise ici même,
le principe de base de communication en vous fixant mes règles
et notations (règle3, histoire que l'on se comprenne bien!).
En résumé, une trame est constituée d'élements
qui sont formés de blocs qui eux même contiennent
des motifs. Ces derniers ont une signification physique, un morceau
de signal éléctrique représentatif de la
valeur du motif. La trame est ainsi la concaténation de
l'ensemble des motifs électriques ent tenant compte de
leur ordre d'apparition dans chacun des blocs et de l'organisation
de ces derniers dans la trame.
3) Architecture de tests
Sur le schéma ci-dessous, j'ai mis
en valeur les canaux de communication qui seront analysés
en détail.
|
- Orange: les liaison série
RS232 avec différents protocoles souris, Irman
/ UIR, spécifique à la programmation du
PIC,...
- Jaune: Les différentes
liaisons infrarouge RC5 : seul le module IR multiusage
peut simuler une télécommande .Le module
Irman simulera dans notre cas un poste de télévision.
- Vert: la liaison infrarouge type
HP48 bidirectionelle
Comme oscilloscope sur PC, j'utilise
WINSCOPE de VDATA (1500F à 2000F suivant les
options), il requière un port ISA . C'est un
bon produit que je vous conseille vivement et d'excellent
rapport qualité prix si vous n'avez pas encore
d'oscilloscope.
Le seul hic c'est qu'il ne fonctionne pas sous linux
et que les ports ISA commencent à se raréfier.
|
CVous pouvez cliquer sur les éléments
de cette image pour découvrir leur caractéristique..
|