Chapitre IV : Protocoles nanosatellites
IV.1. NSP : Nanosatellite Protocol
NSP est un protocole pour les nanosatellites, à l'origine développé à UTIAS/SFL pour l'utilisation sur les nanosatellites CanX. Ce qui est descendu du Simple Serial Protocol (SSP) utilisé par UTIAS/SFL et Dynacon sur les vaisseaux spatiaux MOST et CHIPSAT [13, 21].
Le protocole est conçu pour être simple afin de réduire les paquets d'overhead et maximiser l'utilisation de bande passante effective [21].
L'unité de base de la communication dans le NSP est le message. Un message du satellite ordinateur de bord (On-Board Computer : OBC) à un dispositif interplanétaire Sinclair porte une seule télécommande. Le dispositif répond alors à l'OBC avec un seul message de réponse. Cette réponse doit être un simple acquittement ou elle contient des télémétries additionnelles. Les messages NSP peuvent être mis sur un certain nombre de différents types de lien : asynchrone, synchrone et I2C. Large réseaux NSP contiennent différents types de liens avec des routeurs et des ponts pour les relier [13].
IV.1.1. Format du message
Les messages NSP sont composés d'une séquence ordonnée d'octets. Là où plusieurs octets adjacents sont regroupés ensemble pour former des grandes unités (16-bit en entier, 32-bit en virgule flottante, etc.) les octets les moins significatif sont transmis et reçu en premier.
Longueur Champ
1 octet Adresse destination
1 octet Adresse source
1 octet Message de contrôle
0 ou plus d'octets Données
2 octets Message CRC
Tableau IV.1. Champs du message NSP
Le Tableau ci-dessus montre les champs qui forment un message NSP. Le champ de données est de longueur variable. Si sa longueur est égale à zéro (le message ne comporte pas de données) alors le message total contient cinq octets. Le nombre maximal d'octets de données qui peut être placé dans un message dépend de l'implémentation du NSP dans chaque périphérique. 260 octets est une limite commune [13, 21].
Dans chaque message NSP il y a un octet pour un message de contrôle. Le Tableau ci-dessous montre comment les bits de cet octet sont décodés. Il y a trois booléens marqués A, B et Poll. Il y a aussi cinq bits pour un code de commande, interprété comme un entier non signé entre 0 et 31 [13, 21]. Chaque message NSP contient 2 octets (16-bit) CRC pour se prémunir contre les erreurs de transmission.
Numéro du bit Etiquette
Bit 7 (MSB) Poll
Bit 6 B
Bit 5 A (ACK)
Bit 4-0 Code de commande
Tableau IV.2. Champs du message de contrôle
IV.1.2. Format de la Télécommande
L’OBC envoie une télécommande aux dispositifs interplanétaires Sinclair. Ces messages ont les attributs suivants :
Attribut Signification
Adresse destination L'adresse du périphérique SI
Adresse source L’adresse unique de l'OBC
Bit Poll 1 Si la réponse est demandée
0 Si aucune réponse n’est souhaitée
Bit B Ignoré par le périphérique SI
Bit A Ignoré par le périphérique SI
Code de commande Commande désirée
Données Octets de données
CRC CRC, calculé à partir du message
Tableau IV.3. Attributs d'une télécommande
La liste des codes de commande, et le formatage des données pour les accompagner, est spécifique à chaque périphérique interplanétaire Sinclair [13].
IV.1.3. Validation de la télécommande
Lors de réception d'une séquence d'une télécommande, le périphérique Interplanétaire Sinclair suivra les étapes suivantes pour la validation de la télécommande [13] :
¾ L'adresse de destination sera comparé à l'ensemble des adresses que le périphérique peut accepter;
¾ Le message doit satisfaire le minimum de longueur du message (5 octets);
¾ Le message ne doit pas dépasser la longueur maximale du message, déterminée par l'implémentation du périphérique;
¾ Il ne doit pas avoir une erreur dans la formulation (framing) du SLIP;
¾ Le message du CRC doit être bon.
Les messages qui ne respectent pas l'un de ces critères sont rejetés. Les télécommandes valides sont transmises à la prochaine couche.
IV.1.4. Format de la réponse
Après l'exécution d'une télécommande, le périphérique Interplanétaire Sinclair va générer un message de réponse, si et seulement si le bit Poll de la télécommande à la valeur 1. La réponse aura les attributs suivants [13] :
Attribut Signification
Adresse destination L'adresse source de la télécommande Adresse source L'adresse destination de la télécommande
Bit Poll 1 dans toutes les cases
Bit B Le bit B de la télécommande
Bit A 1 si le périphérique signale une condition ACK 0 Si le périphérique signale une condition NACK Code de commande Le code de commande de la télécommande
Données Les octets de données de la télécommande, suivie de zéro ou plusieurs octets de télémétrie
CRC CRC, calculé à partir du message
Tableau IV.4. Attributs d'une réponse de la télécommande
IV.1.5. Formulation du SLIP
Les messages NSP sont encapsulés dans des paquets en utilisant la formulation SLIP avant d'être transmis à un autre périphérique. Lors de la réception la formulation est enlevée [13]. Un caractère spécial FEND (0xc0) marque à la fois le début et la fin de chaque message NSP. Là où se produirait FEND dans le message, il est remplacé par deux octets : FESC TFEND (0xdb 0xdc). Où se produirait FESC dans le message, il est remplacé par FESC TFESC (0xdb 0xdd). Lors du traitement d'un message formulé par SLIP, c'est une erreur de voir FESC suivi par autre chose que TFESC ou TFEND.
IV.1.6. Adresses NSP
Les adresses NSP ont une longueur de huit bits. Les plages d'adresses recommandées sont comprises entre 1 et 127. Tout utilisateur d'un périphérique Interplanétaire Sinclair devrait prendre une adresse NSP pour le OBC (ou l'ordinateur de test GSE). Par convention 0x11 est utilisé comme adresse NSP pour l'ordinateur principal.
Certains périphériques Interplanétaire Sinclair ont une adresse NSP unique programmé dans l'usine. D'autres ont des broches sur leurs connecteurs qui peuvent être choisir entre un certain nombre d'adresses différentes. Enfin, les périphériques fonctionnant sur des bus synchrone (SPI) utilisent un adressage out-of-band et ne pas avoir une adresse NSP fixe [13].