Home / Radiocommande / Jeti : le protocole de communication EX Bus

Jeti : le protocole de communication EX Bus

Le protocole de communication EX Bus de Jeti

Introduction

Le EX Bus est le protocole de communication série développé par Jeti. Comme tous les protocoles séries numériques, c’est un protocole sans perte, utilisant un câble de 3 fils (signal, puissance et masse). Il permet de relier le récepteur à d’autres éléments tel que des accessoires de télémétrie par exemple. Pour citer d’autres protocoles numériques : SBUS (Futaba/Fr-Sky), XBUS (JR Propo), MSP (Multiwii), IBUS (Flysky), FPort (Frsky), CRSF (Crossfire), MSB (Multiplex) ou SUMD (Graupner).

Pour aller plus loin :

Traduction française de la documentation technique
« EX Bus communication protocol, version: 1.21 ».

Le protocole de communication EX Bus

Le EX Bus est un standard de transmission de données série, conçu principalement pour la transmission d’informations opérationnelles entre un récepteur et d’autres appareils connectés à celui-ci. EX Bus remplace la norme de transmission des valeurs de canal sous la forme de PPM et fournit également des fonctions de sécurité, une réponse plus rapide et une communication bidirectionnelle (transmission de la télémétrie EX). Le bus EX permet également la transmission d’informations pour la configuration à distance des appareils connectés via les émetteurs DC / DS. Cette fonction n’est disponible que pour les produits du modèle JETI et sa description ne fait pas partie de ce document.

Topologie du EX Bus Jeti

Le bus a une topologie appelée «point à point». Le récepteur est marqué comme «maître» ( Master ) dans le réseau, car il initie toujours la communication. Un appareil connecté au récepteur est marqué comme «esclave» (Slave). En cas de demande de connexion de plusieurs appareils à un récepteur, il est obligatoire d’utiliser EX Bus Expander qui traite toutes les entrées et les transforme en une seule sortie

Jeti EX Bus

Couche physique du EX Bus Jeti

La communication est réalisée par interface série asynchrone (USART) en mode semi-duplex (half-duplex mode).

Vitesse de communication: 125 kBaud (LowSpeed) ou 250 kBaud (HighSpeed)
Nombre de bits de données: 8
Nombre de bits d’arrêt: 1
Pareté (Parity) : aucune
Les lignes de communication RX etTX sont physiquement connecté via une résistance (nous recommandons la valeur de 2,4 kilo ohms).

Jeti EX Bus

Niveaux logiques:
Niveau maximum du « zéro » logique «0»: 1,5V
Niveau minimum du « un » logique «1»: 3,0V

Accès au bus de données partagé du EX Bus Jeti.

Le seul élément du réseau qui initie toutes les communications est un «Maître». L ‘«Esclave» répond toujours aux questions du «Maître». Dans la spécification du bus EX, il existe deux types de paquets qui sont générés par le «Maître»:
– Un paquet avec l’en-tête, dont le deuxième octet est 0x01. Il donne ensuite plus de latitude à l’Esclave pour répondre (libère la ligne pendant au moins 4 ms)
– Un paquet avec l’en-tête, dont le deuxième octet est 0x03. Il ne donne par la suite aucune possibilité à l’Esclave de répondre.
Jeti EX Bus
La figure ci-dessus est un diagramme schématique des deux cas du paquet généré par le Maître.
Dans le premier cas, le maître génère un paquet avec l’en-tête, dont le deuxième octet est 0x01, qui est toujours suivi de la libération d’un bus réservé à l’Esclave.
Dans le second cas, le Maître génère d’abord le paquet avec l’en-tête, dont le deuxième octet est 0x03, qui n’est pas suivi de la libération d’un bus, puis le Maître génère le paquet, dont le deuxième octet est 0x01.
Le bus est libéré de la manière suivante: La ligne TX est reconfigurée en tant qu’entrée avec l’utilisation d’une résistance pull-up interne. Une fois le délai écoulé, la ligne TX retourne à l’état de sortie.
Le Maître transfère les informations sur les valeurs de canal dans les paquets de données et demande également la télémétrie et attend la réponse de l’Esclave.

Reconnaissance de la vitesse de communication du EX Bus Jeti

Le maître peut communiquer à la vitesse LS (125 kb) ou HS (250 kb). L’esclave en vérifiant l’exactitude du paquet (CRC) et devrait répondre à cette vitesse. L’esclave doit reconnaître la vitesse de la ligne, c’est-à-dire recevoir les données et, en fonction du taux de réussite de la réception, garder ou changer la vitesse. Le Master ne change pas la vitesse de manière dynamique pendant l’opération.

Le format de paquets générés par le Maître (Master)

Le Maître (Master) envoie aux « Packets esclaves » (Slave packets) contenant les informations sur les valeurs des canaux (channel values), les demandes de télémétrie EX et les demandes du menu JETIBOX. Dans la communication, il peut apparaître également d’autres types de paquets, mais ils ne sont pas décrits dans ce document. Les paquets propriétaires non documentés suivront le format général des données, voir ci-dessous.
Si le maître ne reçoit pas les valeurs de canal du récepteur, il n’envoie aucun paquet à l’esclave. Par exemple. en cas de perte de signal entre un émetteur et un récepteur, le maître (récepteur) n’envoie aucun paquet avec la valeur de canal à l’esclave. Chaque paquet contient un identifiant. L’esclave doit insérer la valeur de l’identifiant dans le paquet lors du renvoi des données demandées au maître.

Format général des paquets générés par le maître (Master)

Jeti EX Bus

Un paquet contenant les données du canal (channel data)

Paquet avec la demande de télémétrie

Jeti EX Bus

Paquet avec la demande du menu JETIBOX

Jeti EX Bus

Le format de paquets générés par l’Esclave

L’Esclave (Slave)ne génère que des réponses aux demandes du Maître. Le Maître a besoin des données de télémétrie EX ou du menu JETIBOX. La description de la télémétrie EX peut être trouvée dans le document «JETI_Telem_protokol» qui se trouve sur les pages web de  www.jetimodel.com.

Paquet avec la télémétrie EX

Jeti EX Bus

Paquet avec la demande du menu JETIBOX

Jeti EX Bus

Somme de contrôle

La somme de contrôle se fait sur 16 bits, de type CCITT. La somme de contrôle commence au premier octet du message (0x3B pour le paquet esclave). Exemple de code pour calculer le CRC16-CCITT en langage C :

uint16_t crc_ccitt_update( uint16_t crc, uint8_t data )
{
uint16_t ret_val;
data ^= (uint8_t)(crc) & (uint8_t)(0xFF);
data ^= data << 4;
ret_val = ((((uint16_t)data << 8) | ((crc & 0xFF00) >> 8))
^ (uint8_t)(data >> 4)
^ ((uint16_t)data << 3));
return ret_val;
}
uint16_t get_crc16z(uint8_t *p, uint16_t len)
{
uint16_t crc16_data=0;
while(len–) { crc16_data=crc16_update(crc16_data, p[0]); p++; }
return(crc16_data);
}

EX Bus Jeti : exemple de paquet – Maître

Jeti EX Bus

 

EX Bus Jeti : exemple de paquet – Esclave

Jeti EX Bus

Fin. Source JETI.

Autres ressources EX Bus

Une analyse sur une ancienne version d’EX Bus

L’article date de 2015, il est intéressant pour se représenter sur un oscilloscope.

https://www.rc-thoughts.com/2015/12/analyzing-jeti-ex-bus-and-spirit-fbl/

Bibliothèque de capteurs de bus Jeti Ex pour Arduino

Interface série pour envoyer des données de télémétrie et recevoir des données de canal vers / depuis les récepteurs Jeti Duplex via EX Bus. La version actuelle est pour Teensy 3.x., AtMega32u4 et ESP32

https://github.com/Sepp62/JetiExBus

 

 

Check Also

Jeti : comment binder (appairer) un récepteur Jeti

Binder / appairer son récepteur Jeti Trois techniques sont possible pour appairer son récepteur Jeti …

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Recevez chaque mois les news de l'aéromodélisme ! CLIQUEZ ICI !
Hello. Add your message here.