CANpie

  • Portail de logiciels gratuits et open source

CANpie (CAN Programming Interface Environment) est un projet open source et poursuit l’objectif de créer et d’établir une API logicielle ouverte et standardisée pour l’accès au bus CAN .

Logo CANpie FD

Le projet a été créé en 2001 [1] par MicroControl et est sous licence Apache License version 2.0 . La version actuelle de l’API CANpie [2] couvre à la fois les trames CAN classiques et les trames ISO CAN FD [3] . L’API est conçue pour les applications de contrôle embarquées ainsi que pour les cartes d’interface PC : les microcontrôleurs embarqués sont programmés en C, une API C++ est fournie pour un accès indépendant du système d’exploitation aux cartes d’interface. L’API fournit la fonctionnalité ISO/OSI Layer-2 (Data Link Layer). Il n’est pas dans l’intention de CANpie d’incorporer une fonctionnalité de couche supérieure (par exemple CANopen , SAE J1939 ).

Principe du conducteur

L’API CANpie prend en charge le concept de tampons de messages matériels (boîtes aux lettres) avec une limite totale de 255 tampons. Un tampon de message a une direction unique (réception ou transmission). En option, il est possible de connecter un FIFO de taille arbitraire à un tampon de messages pour les deux sens de transfert. Le nombre total de canaux CAN est limité à 255, l’API fournit une méthode pour recueillir des informations sur les caractéristiques de chaque canal matériel CAN. Ceci est particulièrement important pour un concepteur d’application qui souhaite écrire le code une seule fois. L’horodatage des trames CAN (spécifié par CiA 603, CAN Frame time-stamping – Requirements for network time management [4] ) est pris en charge avec une résolution de 1 nanoseconde.

Usage

Structure CANpie

L’extrait de code suivant montre l’initialisation d’un microcontrôleur.

#include “cp_core.h” // Fonctions centrales CANpie annuler MyCanInit ( annuler ) { CpPort_ts tsCanPortT ; // port CAN logique //——————————————————— ——– // configurer le contrôleur CAN / ouvrir un CAN physique // port // memset ( & tsCanPortT , 0 , sizeof ( CpPort_ts )); CpCoreDriverInit ( eCP_CHANNEL_1 , & tsCanPortT , 0 ); //————————————————————- — // configuration 500 kBit/s // CpCoreBitrate ( & tsCanPortT , eCP_BITRATE_500K , eCP_BITRATE_NONE ); //————————————————————- — // démarrer l’opération CAN // CpCoreCanMode ( & tsCanPortT , eCP_MODE_OPERATION ); //.. maintenant nous sommes opérationnels }

Projets similaires

Pour le système d’exploitation Linux , les projets can4linux et SocketCAN prennent en charge Classical CAN et ISO CAN FD. La spécification commerciale Autosar prend en charge CAN FD depuis la version 4.3 et n’est disponible que pour les partenaires Autosar. La spécification CMSIS-Driver (Cortex Microcontroller Software Interface Standard) est une API logicielle qui décrit les interfaces de pilote de périphérique pour les piles middleware et les applications utilisateur sur les processeurs ARM Cortex-M. [5]

Références

  1. ^ “CANpie – Parcourir les fichiers sur SourceForge.net” .
  2. ^ https://www.microcontrol.net/wp-content/uploads/2021/10/canpie_user_v3r08.pdf [ URL nue PDF ]
  3. ^ https://www.can-cia.org/fileadmin/resources/documents/proceedings/2012_hartwich.pdf [ URL nue PDF ]
  4. ^ “CAN in Automation (CiA): Documents techniques” .
  5. ^ “Standard d’interface logicielle de microcontrôleur commun (CMSIS)” .

Liens externes

  • Documentation CANpie
  • Site du projet CANpie
  • Bulletin du CAN 2014-02-25
  • Architecture logicielle pour robots modulaires auto-reconfigurables, Xerox Palo Alto Research Center
  • Site Web d’Autosar
  • site du projet can4linux
  • Site du projet SocketCAN
  • Brevet déposé pour SocketCAN (langue allemande)
  • iCC 2017 – “API pilote CAN – migration du CAN classique vers le CAN FD”
Apache LicenseApache License versionCAN Programming Interfacelicence Apache LicenseProgramming Interface Environment
Comments (0)
Add Comment