Date de création: 21.07.2001
Rubrique du:
Auteur(s): hpbaby
Navigation: precedent principal suivant
Version:     FR

Voir en: 1024*768

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)
CONTROL_TRAME STOP_TRAME
   
|
   
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..


Lab48 :

Oscilloscope pour HP et
générateur de signaux +5/-5V
 
ou centrale domotique de
8 Entrées/ Sorties Numériques
Hpmodem :
Dialoguer par voie hertzienne entre
2 HP - nécessite des alimentations externes.
HptaHptalk:
Faire épeller des lettres de l'alphabet à l'aide d'un synthétiseur vocal type ISDlk:
Faire épeller des lettres de l'alphabet à l'aide d'un synthétiseur vocal type ISD
HpDomotic :
1)Construire son programmateur PIC
2)Construire son interface domotique 
3)Le module Infrarouge multiusage
4)Les protocoles série asynchones
  a) RS232: liaison câble HP/PC
  b) HP48IR:liaison IR de la HP48
  c) RC5: liaison télécommandé