Compréhension du fonctionnement de base d'un oscilloscope

R&S®Essentials | Fondamentaux des oscilloscopes numériques

Débogage de protocoles série avec un oscilloscope

Auteur : James Lewis l Expert et blogueur Test & Mesure

Prêt à approfondir le monde fascinant des bus UART, I2C, (Q)SPI et CAN. Vous n'apprendrez pas seulement des choses à propos de ces protocoles série mais vous découvrirez également comment les déboguer en utilisant un oscilloscope. Des astuces pratiques jusqu'aux informations réelles, nous avons préparé les bases pour vous aider à maîtriser le débogage de protocoles.

Des appareils informatiques périphériques peuvent posséder un microcontrôleur (MCU) relié à des capteurs, des actionneurs, des boutons et des affichages. La plupart de ces appareils communiquent avec le MCU en utilisant un protocole numérique, tel que UART, I2C ou CAN. Un avantage de pouvoir déboguer ces protocoles série avec un oscilloscope est qu'un plus petit nombre de signaux est plus facile à sonder par rapport aux larges bus parallèles du passé. Avec des sondes, les oscilloscopes proposent des ensembles d'outils d'analyse, ce qui nécessiteraient un analyseur de protocoles séparé. Voici quelques astuces sur la manière d'utiliser un oscilloscope pour décoder des protocoles série et des informations d'introduction pour la plupart des protocoles série classiques.

Oscilloscope versus Analyseur logique

Oscilloscope R&S®RTM3000

Oscilloscope R&S®RTM3000

Points forts :

  • Bande passante : 100 MHz à 1GHz
  • Fréquence d'échantillonnage : jusqu'à 5 Géchantillons/s
  • Profondeur mémoire : jusqu'à 80 Méchantillons
  • Résolution CAN : 10 bits

Lors de l'analyse d'un protocole de décodage, vous pouvez utiliser un oscilloscope, un analyseur logique ou un analyseur de protocoles dédié. Mais lequel de ces outils a le plus de sens ? Voici une brève comparaison des trois.

Les voies d'un analyseur logique sont essentiellement des comparateurs numériques. Par conséquent, elles peuvent uniquement vous dire si un signal est à l'état haut ou bas. Les analyseurs logiques classiques ont au moins huit voies, avec certains modèles en proposant 32 ou plus. Les analyseurs de protocoles sont similaires aux analyseurs logiques mais possèdent un matériel et un logiciel spécifique au protocole afin de décoder la liaison série.

A l'inverse, les oscilloscopes possèdent plusieurs bits de résolution mais sont généralement limités à deux ou quatre voies. La profondeur de bits accrue vous permet de voir les caractéristiques analogiques des signaux.

Heureusement, avec les oscilloscopes modernes, on a rarement besoin de choisir l'une de ces trois options. De nombreux oscilloscopes, incluant tous les modèles Rohde & Schwarz, proposent des voies logiques, à la fois analogiques et numériques. De tels oscilloscopes sont appelés “oscilloscopes à signaux mixtes.”

Certains oscilloscopes disposent même d'outils de décodage de protocoles pour les bus série ! Par exemple, les R&S®RTB2000, R&S®MXO 4 or R&S®RTO 6 possèdent un déclenchement et décodage de protocoles intégré pour les protocoles série fréquemment utilisés.

L'oscilloscope brille particulièrement lorsqu'une erreur de protocole est détectée. Une voie analogique (ou des voies) échantillonnant le bus peut vous montrer s'il y a un problème analogique sur (ou autour) de la durée de l'erreur de protocole. Cette situation est rarement le cas avec un analyseur logique.

Puisque de nombreux protocoles série existent et que leur prise en charge varie selon le modèle d'oscilloscope, voici certaines astuces pour le débogage de circuits avec les bus les plus communs.

UART

L'émetteur / récepteur asynchrone universel (UART) est également parfois appelé “série.” Les signaux émis et reçus sont des fils sans horloge discrète. C'est un point à point qui signifie que vous avez généralement seulement deux appareils connectés.

Dans certains cas, l'UART est le plus simple à déboguer car vous n'avez besoin de regarder qu'un minimum d'un signal : le TX ou RX. Cependant, en pratique, vous devez généralement regarder dans les deux directions pour comprendre la communication.

Configuration UART

Configuration UART

Méthode de cadrage flexible du UART

Méthode de cadrage flexible du UART

L'UART possède une méthode de cadrage flexible. Il y a un nombre variable de bits de départ et d'arrêt et un bit de parité optionnel. La charge utile de données est généralement de 8 bits. Puisque l'UART est asynchrone, l'hôte et l'appareil doivent s'entendre sur ces paramètres ainsi que sur le débit en baud. Les mêmes exigences s'appliquent à un oscilloscope au cours du débogage.

Débogage sur un oscilloscope

Astuce : Des décodeurs vous permettent généralement de modifier le débit en baud après la capture. Ajustez ce réglage s'il décode des bêtises. Sinon, il ne sera pas capable de décoder correctement (ou déclencher).

SPI & QSPI

Tous les dispositifs partagent l'horloge
Tous les dispositifs partagent l'horloge

Le terme SPI ou S-P-I est connu comme “l'interface périphérique série.” Il fonctionne comme un registre à décalage. Tous les dispositifs partagent l'horloge; les signaux de la sortie principale, de l'entrée secondaire (MOSI); et les signaux de l'entrée principale, de la sortie secondaire (MISO). Ces derniers correspondent aux “TX” et RX.” du UART Cependant, ils sont explicitent sur la direction dans laquelle les données se déplacent. Par exemple, avec le MOSI, les données vont de l'hôte vers le dispositif, et avec le MISO, les données vont du dispositif vers l'hôte. Cela rend moins probable l'analyse du mauvais signal !

Le protocole SPI prend en charge plusieurs appareils sur le même bus. Chaque dispositif possède un signal de sélection de puce (CS) afin de différencier les dispositifs. Cependant, les conceptions avec un seul dispositif SPI pourraient omettre (ou toujours activer) le signal CS. De même, si les données ne vont que dans une seule direction, alors seul le signal approprié MOSI ou MISO nécessaire sera connecté.

Il en est de même pour le débogage avec un oscilloscope. Si un seul dispositif est sur le bus, il n'est pas nécessaire de connecter le CS. Et si les données se déplacent uniquement dans une direction, alors la plupart des décodeurs ne peuvent gérer que celui qui est connecté. Le signal d'horloge, cependant, est toujours nécessaire.

Qu'est ce que le QSPI ?

Le protocole quad SPI (QSPI) est un standard d'interface prédominant pour les puces à mémoire flash. Comme le SPI, il possède une horloge, une broche d'activation et de données.

Inter-Integrated Circuit (I2C)

Les dispositifs partagent les lignes d'horloge et de données
Les dispositifs partagent les lignes d'horloge et de données

L'Inter-Integrated Circuit (I2C) a initialement été développé par Philips, qui plus tard est devenu une partie de NXP. Parfois les dispositifs qui prennent en charge le I2C utilisent le terme de “deux fils” pour éviter les problèmes de marque déposée ou de licence.

Tous les dispositifs sur le bus partagent les lignes d'horloge et de données, et chaque dispositif doit avoir une adresse unique. En général, des capteurs ou dispositifs qui utilisent le I2C auront une adresse de base avec quelques bits pour régler les bits les moins significatifs de leur adresse. Cette technique est pratique lorsque vous avez plusieurs fois le même capteur sur le bus avec un nombre minimum de broches.

Pour le I2C, le débogage sur l'oscilloscope nécessite deux voies. L'horloge fonctionne seulement quand l'hôte communique avec le dispositif. Donc, l'oscilloscope doit capturer à la fois les signaux d'horloge et de données.

I2C : 7 bits ou 8 bits (ou 10 bits)

Les adresses I2C peuvent porter à confusion du fait des deux modes d'adressage différents : 7 bits et 10 bits. Le mode 7 bits est le plus commun, mais il a une caractéristique déroutante : parfois, il est considéré comme une adresse 8 bits !

Comparaison des modes d'adressage 7 bits et 8 bits
Comparaison des modes d'adressage 7 bits et 8 bits

La confusion vient du bit R/W qui arrive après l'adresse. Pour les échanges READ (lecture), la valeur est “1.” Et pour les échanges WRITE (écriture), la valeur est “0.” Donc, si le déclenchement échoue sur l'adresse prévue lors du débogage I2C, essayez de décaler l'adresse d'un bit vers la gauche et d'inclure la valeur R/W.

Bus CAN

Le bus CAN a une signalisation différentielle
Le bus CAN a une signalisation différentielle

Le bus CAN (Controller area network) a été développé pour être utilisé dans l'automobile et continue d'être largement utilisé dans l'industrie du transport. Sa signalisation différentielle améliore l'immunité aux bruits électriques, le rendant idéal pour les applications industrielles.

Malgré son aspect différentiel, il ne nécessite pas de sonde différentielle d'oscilloscope dans la plupart des cas. Au lieu de ça, une sonde à terminaison simple sur le signal “CANH” ou “CANL” est suffisant pour un décodeur d'oscilloscope afin de déchiffrer le bus.

Il existe deux versions CAN 2.0 : de base (adresse 11 bits) et étendu (adresse 29 bits). Leurs trames de données sont légèrement différentes dans les champs arbitrage et contrôle, mais sinon, leurs paquets sont les mêmes.

Décodage CAN en utilisant le R&S®RTM3000
Décodage CAN en utilisant le R&S®RTM3000

Le bus CAN utilise uniquement deux fils de signaux, ni l'un ni l'autre n'est une horloge. Par conséquent, si un décodage semble mauvais, essayez d'ajuster le point d'échantillonnage afin de changer l'endroit où le décodeur échantillonne les données.

Décodage versus Déclenchement

Un décodage est une méthode post-traitement qui analyse la forme d'onde capturée et décode le protocole sous une forme lisible par l'humain. Généralement, les données décodées sont disponibles en superposition à l'affichage de la forme d'onde ou sous forme de tableau. (Certains oscilloscopes, comme les R&S RTE, RTO6 et RTP, proposent également des outils d'analyse supplémentaires comme l'utilisation du bus.) Les oscilloscopes avec une mémoire profonde peuvent capturer de longues périodes et donc chercher à trouver des événements d'intérêt (ou à quelle fréquence ces événements se produisent). Cette technique est principalement une approche “logicielle”.

Le déclenchement, cependant, se produit au sein du système de déclenchement de l'oscilloscope. Un déclenchement de protocole surveille en permanence le bus série afin de déterminer quand les événements se produisent. Par exemple, deux déclenchements communs sont une adresse I2C ou une condition d'erreur (erreur NAK ou de parité). Les options de déclenchement sont généralement limitées à quelques échanges spécifiques au protocole et peuvent également être limitées en profondeur de bits pour les adresses, les données ou les charges utiles. Cette technique est principalement une approche "matérielle".

Parfois, les oscilloscopes combinent les deux techniques : le système de déclenchement peut "s'auto-déclencher" tandis que le décodeur de protocoles trouve l'événement d'intérêt puis le place au centre de l'écran. Si votre oscilloscope “oublie” certains événements, vérifiez dans le manuel pour déterminer quelles conditions de déclenchement sont basées sur le “matériel” et lesquelles sont basées sur le “logiciel”.

Conclusion

  • La plupart des dispositifs en périphérie communiquent avec le MCU en utilisant un protocole numérique, tel que UART, SPI, I2C ou CAN.
  • Les oscilloscopes proposent une large gamme d'outils pour décoder les protocoles série.
  • Certains oscilloscopes disposent même d'outils de décodage de protocoles pour les bus série.
  • L'UART ne possède pas d'horloge discrète et s'apparente à du point par point, signifiant que seuls deux dispositifs sont connectés.
  • Le SPI fonctionne comme un registre à décalage, et tous les dispositifs partagent l'horloge, les signaux MOSI et les signaux MISO.
  • Pour le I2C, le débogage nécessite deux voies. L'horloge fonctionne uniquement lorsque l'hôte communique avec un dispositif, donc l'oscilloscope doit capturer à la fois les signaux d'horloge et de données.
  • Malgré qu'il soit différentiel, le CAN ne nécessite généralement pas de sonde différentielle d'oscilloscope. Au lieu de ça, une sonde à terminaison simple sur le signal "CANH" ou "CANL" est suffisante pour un décodeur d'oscilloscope afin de décoder le bus.
  • Tous les oscilloscopes Rohde & Schwarz disposent d'options de protocoles série. Les déclenchements disponibles varient en fonction du modèle de l'oscilloscope et de ses capacités de bande passante. Cependant, la plupart proposent une prise en charge des protocoles série de base listés ici.
  • Pour un débogage d'ordre général avec des protocoles série typiques, orientez-vous vers les RTB2000 ou RTM3000. Pour des protocoles plus rapides que 480 Mbit/s, orientez-vous vers les oscilloscopes MXO4 (1,5 GHz), RTO, et RTP.

Vous voulez en savoir plus à propos des fondamentaux de test ?

Inscrivez-vous à notre newsletter

Ce qui pourrait également vous intéresser