canpie

CANpie (CAN Programming Interface Environment) to projekt typu open source , którego celem jest stworzenie i ustanowienie otwartego i znormalizowanego oprogramowania API umożliwiającego dostęp do magistrali CAN .

Logo CANpie FD

Projekt został założony w 2001 roku przez firmę MicroControl i jest licencjonowany na licencji Apache w wersji 2.0 . Aktualna wersja API CANpie obejmuje zarówno klasyczne ramki CAN, jak i ISO CAN FD . Interfejs API jest przeznaczony do wbudowanych aplikacji sterujących, a także do kart interfejsu PC: wbudowane mikrokontrolery są programowane w języku C, a interfejs API C++ zapewnia niezależny od systemu operacyjnego dostęp do kart interfejsu. Interfejs API zapewnia funkcjonalność ISO/OSI Layer-2 (Data Link Layer). Nie jest intencją CANpie wprowadzanie funkcjonalności wyższych warstw (np. CANopen , SAE J1939 ).

Zasada kierowcy

Interfejs API CANpie obsługuje koncepcję sprzętowych buforów wiadomości (skrzynek pocztowych) z łącznym limitem 255 buforów. Bufor komunikatów ma unikalny kierunek (odbiór lub nadawanie). Opcjonalnie istnieje możliwość podłączenia FIFO o dowolnej wielkości do bufora komunikatów dla obu kierunków przesyłu. Całkowita liczba kanałów CAN jest ograniczona do 255, API zapewnia metodę zbierania informacji o cechach każdego kanału sprzętowego CAN. Jest to szczególnie ważne dla projektanta aplikacji, który chce napisać kod tylko raz. Znacznik czasu ramki CAN (określony przez CiA 603, Znacznik czasu ramki CAN – Wymagania dotyczące zarządzania czasem w sieci) jest obsługiwany z rozdzielczością 1 nanosekundy.

Stosowanie

Struktura CANpie

Poniższy fragment kodu przedstawia inicjalizację mikrokontrolera.

 

 

        
   
   
   
   
    0 
     0
   
   
   
   
                 
                 
   
   
   
    
   
 #include  "cp_core.h"  // Podstawowe funkcje CANpie  void  MyCanInit  (  void  )  {  CpPort_ts  tsCanPortT  ;  // logiczny port CAN  //------------------------------------------ --------  // skonfiguruj kontroler CAN / otwórz fizyczny  port CAN //  //  memset  (  &  tsCanPortT  ,  ,  sizeof  (  CpPort_ts  ));  CpCoreDriverInit  (  eCP_CHANNEL_1  ,  &  tsCanPortT  ,  );  //------------------------------------------------ ---  // konfiguracja 500 kBit/s  //  CpCoreBitrate  (  &  tsCanPortT  ,  eCP_BITRATE_500K  ,  eCP_BITRATE_NONE  );  //------------------------------------------------ ---  // uruchomienie operacji CAN  //  CpCoreCanMode  (  &  tsCanPortT  ,  eCP_MODE_OPERATION  );  //.. teraz działamy  } 

Podobne projekty

W systemie operacyjnym Linux projekty can4linux i SocketCAN zapewniają wsparcie dla Classical CAN i ISO CAN FD. Komercyjna AUTOSAR obsługuje CAN FD od wersji 4.3 i jest dostępna tylko dla partnerów AUTOSAR. Specyfikacja CMSIS-Driver (Cortex Microcontroller Software Interface Standard) to oprogramowanie API, które opisuje interfejsy sterowników urządzeń peryferyjnych dla stosów oprogramowania pośredniego i aplikacji użytkownika na ARM Cortex-M.

  1. ^ „CANpie - Przeglądaj pliki na SourceForge.net” .
  2. ^ https://www.microcontrol.net/wp-content/uploads/2021/10/canpie_user_v3r08.pdf [ bez adresu URL PDF ]
  3. ^ https://www.can-cia.org/fileadmin/resources/documents/proceedings/2012_hartwich.pdf [ bez adresu URL PDF ]
  4. ^ „CAN w automatyce (CiA): dokumenty techniczne” .
  5. ^ „Wspólny standard interfejsu oprogramowania mikrokontrolera (CMSIS)” .

Linki zewnętrzne