Foire Aux Questions 2021
Question (pas très claire): comment est déterminé l'état dominant ?
Réponse (j'espère plus claire, mais pas sur…): l'état dominant est simplement l'état qui “écrase” l'état récessif. Par exemple nous pouvons convenir (en utilisant un canal de transmission basé sur du son) que “du bruit”=valeur 0 et “du silence”=valeur 1. Si plusieurs composants parlent en même temps sur le bus en envoyant des valeurs 0 et 1, au final, on entendra du bruit et donc on recevra la valeur 0. Il aurait fallu que tout les composants se taisent pour que le silence règne et que la valeur 1 soit reçue…
Complément à la question: Est il possible de décider de l'état dominant de notre propre chef dans ce cas le silence ne pourras jamais être l'état dominant?
Réponse: Non vos ne pouvez pas décider que le “bruit” gagne sur “silence”. Par contre vous pouvez choisir librement quel symbole 0 ou 1 est associé au “bruit” et donc décider quel symbole gagne en étant associé à l'état dominant.
Question: le duplex et simplex fonctionnent t'il uniquement pour la communication entre deux systèmes ou peut on utiliser ces termes pour des communications entre 3 ou 5 voir plus ?
Réponse (un peu compliquée): Ces notions s'étendent à plus que 2 composants. En général lorsqu'il y a plus de 2 composants communiquant, il faut voir comment ils sont reliés.
Si vous utilisez un commutateur ethernet par exemple, chacun des hôtes peut être relié au commutateur avec un lien full duplex. On peut donc constituer un réseau de plusieurs hôtes dotés de capacités de communication en Full Duplex.
Dans le cas où les hôtes sont reliés directement (sans commutateur), il faut voir le nombre de canaux de communications indépendants. On peut imaginer par exemple un bus RS485 (vu plus loin dans le cours) sur lequel un maître est connecté à plusieurs esclaves à l'aide de 2 paires différentielles. Grâce aux 2 paires, la communication en Full Duplex est possible car le maître peut émettre via une des paires vers un ou plusieurs esclaves pendant qu'un esclave lui répond sur l'autre paire différentielle.
Par contre, si l'on souhaite pouvoir faire communiquer tous les hôtes avec tous les autres hôtes simultanément au débit maximum, il faudrait câbler un lien Full Duplex entre chaque hôte mais cela devient impossible quand le nombre d'hôtes est important car cela nécessiterait un grand nombre d'interfaces de communication sur chaque hôte et un grand nombre de liens de communication. En général pour répondre à ce problème, on va privilégier une interface de communication plus rapide et faire appel à la commutation (cf cours de Mr Latu)
Question: A quoi sert le bit de parité ? à vérifier qu'il n'y a pas une erreur dans la transmission en vérifiant qu'il y a le bon nombre de 1 souhaité ?
Réponse: Le bit de parité sert bien à vérifier qu'il n'y a pas une erreur dans la transmission, mais c'est un contrôle “faible” qui laisse passer pas mal d'erreurs. Par exemple si vous avez 2 bits erronés dans la trame, le contrôle de parité ne les voit pas. C'est un peu comme si je vous envoie un colis en inscrivant sur le colis le poids (c'est une information redondante, car si tout se passe bien vous pourrez mesurer le poids du colis vous même et n'aurez pas eu besoin de mon inscription.). Mais grâce à cette information, lorsque vous recevez le colis, vous pourrez vérifier si personne n'a ajouté ou enlevé du poids dans le colis… mais vous ne pouvez pas savoir si quelqu'un a remplacé le contenu par un contenu de même poids….
Question: Diapo 47 : Je ne comprends pas vraiment la signification de “ La synchronisation est récupérée par les données ” dans un bus série asynchrone.
Réponse: Le front montant au début du bit de start sert de top synchro entre l’émetteur et le récepteur pour identifier le début de la trame, et le bit de start est échangé sur le même canal de communication que les bits de données. Nous verrons plus tard que ce n'est pas le cas pour la communication série synchrone, où un canal est dédié à la synchronisation.
Question: Diapo 59 : Quel est l’intérêt d'avoir plusieurs bits de stop ? est ce que ça dépend du nombre de bits ? (1-8 bits on a 1 bit de stop, 8-16 bits on a besoin de 2 bits de stop, etc)?
Réponse: C'est une question du TD (et il y a les réponses fournies). Non il n'y a pas de lien entre le nombre de bits de stop et la taille de la donnée.
Question: Diapo 17 : Si on prend en compte une topologie multi-points et une communication multi-maîtres → esclaves. Si plusieurs maîtres ordonnent une instruction en même temps, sont elles exécutées au hasard, ou y a t-il une “ sur ” priorité pour un des maître?
Réponse: Cela dépend, il y a plusieurs approches pour gérer les priorités d’accès au canal. Comme c'est un peu compliqué, nous n'utiliserons pas de bus avec plusieurs maître en TP. Dans certains cas, c'est le message qui est plus ou moins prioritaire sur le bus (c'est le cas du bus CAN, dans lequel le mécanisme état dominant/récessif est utilisé pour faire en sorte que ce soit les messages les plus prioritaires qui soient échangés sur le bus).
Question: Diapo 47 : comme vous l'avez dit, le contrôle de parité est un contrôle “ faible ”, pourquoi donc ne pas directement utilisé un contrôle plus efficace que celui de parité ?
Réponse: Parce qu'à l'échelle de la trame série, il y a très peu de données, et que le contrôle de parité est un bon (compromis augmentation de la taille)/(complexité de calcul)/(proportion d'erreurs détectées). Sur un Compact Disk par exemple, on utilise un autre codage (de mémoire chaque octet est codé sur 13 bits) qui permet de la correction d'erreur, mais au prix d'une augmentation importante de la taille. En général pour la communication, la tendance est d'ajouter du contrôle/détection d'erreur plus évolué au niveau des messages plutôt que de l'octet.
Question: à la diapo 15 du cours de POO, le terme “caster” est utilisé, pouvez vous m'expliquer ce que cela veut dire svp?
Réponse: Le cast est une opération de conversion de type également appelée “transtypage”. Par exemple vous pouvez caster une variable int var=3 pour la convertir en flottant en écrivant: (float)var
Dans le slide 15, j'explique qu'il faut utiliser les bons types pour indiquer quelle méthode utiliser, car contrairement au langage C, ce n'est pas uniquement le nom de la fonction qui identifie la fonction, mais également le type des paramètres.
Question:
Réponse: