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 .
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
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
- ^ https://sourceforge.net/projects/canpie/files/?source=navbar
- ^ http://www.microcontrol.net/download/canpie/canpie_user_v3r00.pdf
- ^ https://www.can-cia.org/fileadmin/resources/documents/proceedings/2012_hartwich.pdf
- ^ https://www.can-cia.org/standardization/specifications/
- ^ https://www.arm.com/products/processors/cortex-m/cortex-microcontroller-software-interface-standard.php
Dış bağlantılar
- CANpie dokümantasyon
- CANpie proje sitesi
- CAN bülten 2014/02/25
- Modüler Kendinden Reconfigurable Robotlar, Xerox Palo Alto Araştırma Merkezi için Yazılım Mimarisi
- AUTOSAR web sitesi
- can4linux proje sitesi
- SocketCAN proje sitesi
- SocketCAN başvurusunda Patenti (Almanca)
- iCC 2017 - "CAN sürücü API - CAN FD Klasik CAN gelen göç"