Communiquer et programmer un système

Relier trames, débit, architecture de réseau et programme de commande pour faire coopérer des objets communicants.

Environ 45 minutes

  • Calculer un débit utile et une durée de transmission
  • Lire une trame et un comportement séquentiel
  • Écrire et tester une logique de commande
Sommaire
  1. 1. Décrire une communication avant de programmer
  2. 2. Relier taille, débit et durée
  3. 3. Transporter des bits et interpréter un format
  4. 4. Passer d’une règle à un programme testable

Une valeur reçue est-elle forcément une mesure utilisable ?

Un objet connecté doit acquérir une donnée, la transmettre, l’interpréter et agir au bon moment. Une erreur peut venir du support de communication ou du programme. Pour les distinguer, il faut préciser le format des messages et les règles de comportement. Nous étudions une petite ventilation commandée à distance. Revois le codage binaire, les unités de temps et les structures conditionnelles avant de commencer.

1. Décrire une communication avant de programmer

Un réseau relie des équipements qui échangent des informations sur un support matériel. Ce support peut être filaire, comme un câble, ou utiliser des ondes électromagnétiques. Le support transporte un signal ; le protocole organise l’échange. Deux objets physiquement connectés ne se comprennent pas nécessairement s’ils utilisent des formats, des vitesses ou des règles différents. Il faut identifier qui émet, qui reçoit, à quelle fréquence et avec quelle contrainte de délai.

Une architecture client-serveur distingue le client qui demande un service et le serveur qui répond. Un même objet peut jouer plusieurs rôles dans des échanges différents. Une architecture en nuage place certaines fonctions de calcul ou de stockage sur des serveurs distants accessibles par le réseau. Elle facilite certains usages mais introduit une dépendance à la connexion et un délai de communication. Une commande urgente ne doit pas supposer qu’un serveur distant répond toujours immédiatement.

Un protocole fixe notamment la structure du message, l’identification des destinataires, l’ordre des échanges et le comportement en cas d’erreur. Une trame peut contenir une adresse, une commande, une donnée et une information de contrôle. L’encapsulation place un message dans une structure qui ajoute les informations nécessaires à un autre niveau de communication. Les octets ajoutés rendent l’échange possible, mais ne sont pas tous des données utiles à l’application.

Un contrôle de trame peut détecter certaines altérations ; il ne garantit pas à lui seul que la valeur reçue est vraie ou récente. Une température plausible peut correspondre à une ancienne mesure. Pour un système piloté à distance, on peut donc associer un numéro de séquence ou une date à chaque message et définir une durée maximale sans nouvelle donnée. Ces choix font partie de la spécification du fonctionnement et doivent être testés.

2. Relier taille, débit et durée

Le débit binaire D est le nombre de bits transmis par unité de temps. Si le débit est constant, la durée nécessaire à N bits vaut Δt = N/D. Un octet contient huit bits. Une taille en octets doit donc être convertie avant d’utiliser un débit en bits par seconde. Le débit utile porte seulement sur les informations servant à l’application ; le débit total inclut les en-têtes, les contrôles et les autres éléments transmis.

Exemple résolu

Une liaison transmet 80 octets utiles dans une trame totale de 100 octets. Le débit binaire vaut 8 000 bit·s⁻¹. Calculer la durée de transmission d’une trame et le débit utile moyen pendant cette transmission.

  1. Étape 1 : La trame totale contient 100 × 8 = 800 bits.
  2. Étape 2 : Sa durée vaut 800 / 8 000 = 0,10 s, soit 100 ms.
  3. Étape 3 : Les données utiles contiennent 80 × 8 = 640 bits.
  4. Étape 4 : Le débit utile pendant la transmission vaut 640 / 0,10 = 6 400 bit·s⁻¹.

Résultat : Une trame dure 100 ms et transporte des données utiles au débit moyen de 6 400 bit·s⁻¹ pendant cet intervalle.

Piège à éviter : Calculer la durée à partir des seuls 80 octets oublie les 20 octets indispensables à l’échange.

À 8 000 bit·s⁻¹, chaque octet transmis demande 1 ms dans ce modèle sans temps d’attente ni bit supplémentaire.

Le temps de réponse complet comprend d’autres contributions : attente avant émission, propagation, réception et traitement. Le débit n’est donc pas synonyme de délai. Une liaison rapide peut présenter une longue attente si le réseau est occupé. Inversement, un petit message peut arriver rapidement sur une liaison modeste. Pour vérifier une contrainte de commande, on additionne les délais pertinents au lieu de se limiter à la durée d’émission.

À toi d'essayer

Un message contient 24 octets au total et la liaison fonctionne à 9 600 bit·s⁻¹, sans autre bit transmis dans ce modèle. Détermine sa durée d’émission.

Voir la réponse

Il contient 24 × 8 = 192 bits. La durée est 192 / 9 600 = 0,020 s, soit 20 ms.

3. Transporter des bits et interpréter un format

Les bits sont représentés physiquement par des états d’un signal. Une liaison électrique peut utiliser deux plages de tension pour les niveaux logiques ; les seuils réels sont spécifiés par les composants. Une transmission radio utilise une porteuse modulée. Dans une modulation numérique d’amplitude, l’amplitude de la porteuse dépend du symbole envoyé ; dans une modulation de fréquence, c’est la fréquence qui varie. Cette description qualitative ne doit pas être confondue avec un changement du contenu logique.

Le signal idéal transmet un bit par milliseconde. Deux bits identiques successifs ne créent pas de transition au milieu de leur plateau commun.

Un récepteur doit distinguer les symboles et retrouver leur rythme. Le débit binaire et le rythme des symboles ne coïncident que lorsque chaque symbole représente un seul bit. Pour l’étude d’une trame, on précise aussi le sens de lecture, la taille des champs et la convention de codage. Les mêmes huit bits peuvent être interprétés comme un nombre entier, une partie d’un caractère ou un ensemble d’états selon le protocole.

Exemple résolu

Un protocole pédagogique transmet deux octets : le premier est une adresse non signée, le second une température entière non signée en degrés Celsius. Le message reçu est 00000101 puis 00011010. Interpréter le message.

  1. Étape 1 : Le premier octet vaut 4 + 1 = 5 : il identifie l’adresse 5.
  2. Étape 2 : Le second vaut 16 + 8 + 2 = 26.
  3. Étape 3 : Le protocole associe ce nombre à une température en degrés Celsius.

Résultat : Le message indique une température de 26 °C associée à l’adresse 5.

Piège à éviter : Lire la suite sans respecter la frontière entre les deux champs peut produire un entier qui n’a aucun sens pour l’application.

À toi d'essayer

Deux appareils utilisent le même câble et le même débit, mais l’un attend une température en dixièmes de degré et l’autre un entier en degrés. La communication peut-elle être physiquement réussie tout en donnant un résultat faux ?

Correction détaillée pas à pasDans ce chapitre : 2 corrections détaillées.

4. Passer d’une règle à un programme testable

Un algorithme décrit les opérations et les décisions ; un programme les exprime dans un langage exécutable. Une variable conserve une valeur, une fonction regroupe un traitement et une condition sélectionne un comportement. Une boucle permet de répéter une acquisition et une décision. Pour un système séquentiel, la sortie dépend aussi de l’état précédent : il faut alors représenter explicitement cet état et les événements qui provoquent une transition.

Considérons un ventilateur avec deux états, arrêté et actif. Si la donnée est valide et la température atteint 28 °C, on passe à actif. Si elle descend à 25 °C ou moins, on revient à arrêté. Entre les deux seuils, on conserve l’état. En cas de donnée invalide, la politique retenue dans cet exercice est de demander l’arrêt et de signaler un défaut. Dans un produit réel, cette politique doit être définie selon le risque ; elle ne se déduit pas universellement de cet exemple.

Exemple résolu

On programme la fonction Python suivante : def commande(t, valide, actif) : suivie de if not valide : return False ; if t >= 28 : return True ; if t <= 25 : return False ; return actif. En partant de l’arrêt, donner les états pour 24, 29, 27 puis 25 °C, avec des données valides.

  1. Étape 1 : À 24 °C, la condition t <= 25 est vraie : le résultat est False.
  2. Étape 2 : À 29 °C, t >= 28 est vraie : le résultat devient True.
  3. Étape 3 : À 27 °C, aucun seuil n’est franchi : la fonction conserve True.
  4. Étape 4 : À 25 °C, le seuil bas est atteint : le résultat devient False.

Résultat : Les états successifs sont arrêté, actif, actif, arrêté.

Piège à éviter : Remplacer le dernier retour par False supprime la mémoire de l’état dans la zone intermédiaire.

Pour exécuter cette fonction, chaque instruction indiquée doit être placée sur sa ligne avec l’indentation Python correspondante. La fonction reste indépendante du matériel : on peut la tester avec une liste de valeurs avant de la relier à une carte. Le programme complet doit ensuite acquérir les entrées, vérifier leur validité, appeler la fonction, mémoriser le nouvel état et transmettre la commande. Il faut éviter une attente bloquante qui empêcherait de traiter un événement prioritaire.

À toi d'essayer

La liaison cesse d’envoyer des mesures alors que la dernière température reçue était 29 °C. Un programme conserve indéfiniment la dernière valeur et annonce un fonctionnement normal. Quelle information manque pour diagnostiquer ce défaut, et quel essai proposer ?

Correction détaillée pas à pasDans ce chapitre : 2 corrections détaillées.

Au bac : justifier un programme communicant

  1. Lis les unités, les champs de trame et les conditions de validité avant d’interpréter les nombres.
  2. Calcule les temps de transmission puis distingue-les du délai total.
  3. Traduis les règles en états, événements et sorties ; traite explicitement les égalités aux seuils.
  4. Teste les cas usuels, les frontières et les absences de données.
  5. Conclus sur la fonction vérifiée ; un test de fonction ne prouve pas toute la liaison matérielle.
Attention :

Erreurs fréquentes : confondre bits et octets ; appeler débit un délai ; oublier les en-têtes ; accepter une mesure ancienne comme une nouvelle ; traiter deux seuils sans mémoriser l’état précédent.

Vocabulaire

Trame :
Unité structurée d’échange définie par un protocole.
Encapsulation :
Ajout d’une structure autour d’un message pour permettre son transport.
Débit utile :
Quantité d’information utile transmise par unité de temps.
État :
Situation mémorisée qui participe à la détermination du comportement.

Relier les grandeurs et les décisions

QuestionRéponse essentielle
TransportSupport, signal et débit
InterprétationFormat, unité et codage
DécisionConditions, états et transitions
ValidationTests de valeurs, délais et défauts

S’entraîner : utilise l’espace /exercices pour prolonger la lecture de trames et l’analyse d’algorithmes.

À retenir

  • Un protocole fixe la signification et l’organisation des échanges.
  • Pour N bits transmis à débit constant D, Δt = N/D.
  • Une donnée reçue doit être interprétée avec son unité et sa validité.
  • Une commande avec hystérésis dépend de l’état précédent.

Revoir les liens essentiels

Pour comparer des liaisons, transforme les tailles en bits et les durées en secondes.

Distingue la réussite électrique d’un échange et la justesse de son interprétation.

Dessine les états avant d’écrire les conditions ; teste ensuite les valeurs exactement égales aux seuils.

Sépare la fonction de décision du code matériel pour examiner chaque comportement.

Questions fréquentes

Le nuage commande-t-il toujours plus vite ?

Le délai dépend de toute la chaîne, notamment de la connexion et des traitements distants. Le débit seul ne permet pas de répondre.

Pourquoi tester la perte de communication ?

Parce qu’une ancienne donnée peut rester plausible. Le système doit identifier les informations périmées et appliquer une politique définie.

Et maintenant ?

Tu as lu le cours. L’étape suivante tient en une action.

Relis le coursReprends l’essentiel avant de passer à la suite.

Prolonge l’expérience !

Continue à explorer ce chapitre à travers de nouvelles activités, des défis et des expériences interactives. Avec Premium, l’apprentissage continue !

Ici, tu débloques aussi 2 corrections détaillées.

Parent ? Suivez les progrès de votre enfant.

Tous les cours de Sciences de l’ingénieur