CANpie - CANpie

CANpie (CAN Programlama Arayüzü Ortamı) bir olduğunu açık kaynak projesi ve oluşturma ve erişim için açık ve standartlaştırılmış yazılım API kurma hedefini izler CAN veri .

CANpie FD logosu

Proje MicroControl tarafından 2001 yılında kurulmuş ve altında lisanslanmıştır Apache Lisansı Sürüm 2.0 . CANpie API güncel sürümü hem klasik CAN çerçeveleri yanı sıra kapakları ISO CAN FD kareleri. API gömülü kontrol uygulamaları için hem de bilgisayar arayüzü panoları için tasarlanmıştır: gömülü mikrodenetleyicileri C programlanır, bir C ++ API OS için panoları arayüz bağımsız erişim sağlanır. API, ISO / OSI Katman-2 (Data Link Layer) işlevi sağlar. Daha yüksek katman işlevselliği (örn dahil etmek CANpie bir niyeti yoktur CANopen , SAE J1939 ).

Sürücü Prensibi

CANpie API 255 tampon toplam limitli Donanım mesajı tampon (posta kutuları) kavramını desteklemektedir. Bir mesaj tamponu benzersiz bir yönü (ya da iletmek) sahiptir. Bir seçenek olarak, bir bağlamak mümkündür FIFO her iki transfer yönleri için bir mesaj tamponu rasgele boyutu. CAN kanallarının toplam sayısı, 255 ile sınırlıdır, API, her bir CAN donanım kanalının özellikleri hakkında bilgi toplamak için bir yöntem sağlar. Bu sadece bir defa kod yazmak isteyen bir uygulama tasarımcısı özellikle önemlidir. CAN çerçeve zaman damgası (belirtilen cia 1 nano saniyelik bir çözünürlüğe sahip desteklenen - ağ saat yönetimi için gereksinimleri 603, bir zaman damgası Frame CAN).

kullanım

CANpie Yapısı

Aşağıdaki kod parçacığı Mikrodenetleyicilerde başlatmayı gösterir.

#include "cp_core.h"  // CANpie core functions

void MyCanInit(void)
{
   CpPort_ts  tsCanPortT;   // logical CAN port
   //---------------------------------------------------
   // setup the CAN controller / open a physical CAN
   // port
   //
   memset(&tsCanPortT, 0, sizeof(CpPort_ts));
   CpCoreDriverInit(eCP_CHANNEL_1, &tsCanPortT, 0);
   //---------------------------------------------------
   // setup 500 kBit/s
   //
   CpCoreBitrate(&tsCanPortT,
                 eCP_BITRATE_500K,
                 eCP_BITRATE_NONE);
   //---------------------------------------------------
   // start CAN operation
   //
   CpCoreCanMode(&tsCanPortT, eCP_MODE_OPERATION);
   //.. now we are operational
}

Benzer projeler

For Linux işletim sistemi projeleri can4linux ve SocketCAN Klasik CAN ve ISO CAN FD için destek sağlar. Ticari AUTOSAR spesifikasyonu sürüm 4.3 beri CAN FD destekler ve sadece AUTOSAR ortakları için kullanılabilir. CMSIS-Sürücü (Cortex Mikrodenetleyici Yazılım arayüzü standardı) özellikleri ile ilgili katman yığınlarının ve kullanıcı uygulamaları için çevresel sürücü arabirimleri tanımlayan bir yazılım API ARM Cortex-M işlemci.

Referanslar

Dış bağlantılar