Envoi de données de protocole CAN (1 Mbps) via le port série

robomon

Envoi de données de protocole CAN (1 Mbps) via le port série


Je voudrais créer un outil pour visualiser les données du protocole CAN sur mon ordinateur. Les données du protocole CAN sont capturées à l’aide d’un microcontrôleur (carte de découverte STM32F4) et envoyées à un PC via un port série. Mon exigence est d’envoyer uniquement des ID CAN, DLC, DATA et horodatage (c’est-à-dire à quelle heure un ID CAN particulier a été reçu).

J’ai quelques questions pour lesquelles je n’ai pas pu trouver de bons résultats après une recherche sur Internet:

  1. Est-il possible d’envoyer des données CAN via le port série en utilisant certaines techniques de compression pour les paquets de données, car le protocole CAN fonctionne à 1 Mbps et je prévois d’exécuter le port série à 115200 bauds? Si oui, pourriez-vous fournir des informations ou des liens?

  2. Avez-vous vu des projets similaires qui envoient des données CAN 1 Mbps via le port série. Si oui, pourriez-vous fournir des informations ou des liens?

Turbo J

Pourquoi un port série lorsque la carte de découverte a un port USB?

robomon

L’envoi de données via le port série est facile. L’envoi via USB nécessite un code supplémentaire dans le microcontrôleur et également côté PC

Réponses


 Tom L.

Je suppose que vos appareils CAN n’enverront pas de données tout le temps. Mettez en place un tampon (par exemple un tampon circulaire) et remplissez-le pendant que vous recevez des données, puis envoyez-les via votre port série. Une fois que le tampon déborde, assurez-vous de le signaler également à l’hôte.

La compression n’a de sens que lorsque vous connaissez vos données. Si les données sont aléatoires, vous pouvez utiliser par exemple RLE, qui est un type d’encodage assez simple et ne nécessite pas beaucoup de puissance de calcul.

Mais comme je l’ai déjà dit, je ne pense pas que vous en aurez besoin.

Swanand

Si votre tampon déborde rapidement, pouvez-vous réduire le débit en bauds CAN ?? Le CAN peut aussi fonctionner à 125/250 kbps … Si vos autres nœuds sur bus vous le permettent!

ElectronS

Je pense que DMA est plus rapide que d’utiliser un tampon logiciel pour la réception CAN et la transmission série


 scrafy

Je suggérerais d’augmenter le baud série à 1 Mbps, vérifiez simplement si votre horloge se divise uniformément afin qu’il n’y ait pas d’erreur.

Il sera difficile de compresser les données car dans certains paquets ce ne sera pas possible et dans d’autres (0,0,0,0,0,0,0,0,0 comme données par exemple).

Si vous ne pouvez pas augmenter le Baud, alors vous pouvez compter sur un gros tampon. Le CAN ne transmettra pas tout le temps, il aura des temps d’inactivité, vous pouvez donc simplement stocker tout ce que vous recevez dans un FIFO et simplement avoir une fonction qui continue d’envoyer le FIFO jusqu’à ce qu’il soit vide, si vous recevez de nouvelles données CAN, juste ajoutez-le au FIFO. Il devrait rattraper son retard si la CAN n’est pas si occupée.

 

#de, 1, CAN, données), Envoi, Le, Mbps, port, Protocole, série, via

 

google

Laisser un commentaire

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