KANPI - CANpie

KANPI (JON dasturlash interfeysi muhiti) bu ochiq manba loyihasi va kirish uchun ochiq va standartlashtirilgan dasturiy ta'minot API yaratish va yaratish maqsadini ko'zlaydi JON avtobusi.

CANpie FD logotipi

Loyiha 2001 yilda tashkil etilgan[1] MicroControl tomonidan va litsenziyaga ega Apache litsenziyasining 2.0 versiyasi. CANpie API ning joriy versiyasi[2] ikkala klassik JON ramkalarini ham qamrab oladi ISO CAN FD[3] ramkalar. API o'rnatilgan boshqaruv dasturlari uchun, shuningdek, kompyuter interfeysi platalari uchun mo'ljallangan: o'rnatilgan mikrokontrollerlar C da dasturlashtirilgan bo'lib, interfeys platalariga OS mustaqil kirish uchun C ++ API taqdim etiladi. API ISO / OSI Layer-2 (Data Link Layer) funksionalligini ta'minlaydi. CANpie-ning yuqori darajadagi funksiyalarni birlashtirishi niyatida emas (masalan.) CANopen, SAE J1939 ).

Haydovchi printsipi

CANpie API 255 ta buferning umumiy chegarasi bo'lgan apparat xabarlari buferlari (pochta qutilari) kontseptsiyasini qo'llab-quvvatlaydi. Xabar buferi o'ziga xos yo'nalishga ega (qabul qilish yoki uzatish). Variant sifatida a ni ulash mumkin FIFO ikkala uzatish yo'nalishi uchun xabar tamponiga o'zboshimchalik bilan o'lcham bilan. JON kanallarining umumiy soni 255 bilan cheklangan, API har bir CAN apparat kanalining xususiyatlari haqida ma'lumot to'plash usulini taqdim etadi. Bu kodni faqat bir marta yozishni istagan dastur dizaynerlari uchun juda muhimdir. JON ramkasining vaqt tamg'asi (tomonidan belgilangan CiA 603, CAN vaqtni shtamplash - Tarmoq vaqtini boshqarish uchun talablar[4]) 1 nano-soniya o'lchamlari bilan qo'llab-quvvatlanadi.

Foydalanish

CANpie tuzilishi

Quyidagi kod parchasi mikrokontrolrning ishga tushirilishini ko'rsatadi.

# shu jumladan "cp_core.h" // CANpie asosiy funktsiyalaribekor MyCanInit(bekor){   CpPort_ts  tsCanPortT;   // mantiqiy JON porti   //---------------------------------------------------   // CAN tekshirgichini o'rnating / jismoniy CAN-ni oching   // port   //   memset(&tsCanPortT, 0, o'lchamlari(CpPort_ts));   CpCoreDriverInit(eCP_CHANNEL_1, &tsCanPortT, 0);   //---------------------------------------------------   // sozlash 500 kBit / s   //   CpCoreBitrate(&tsCanPortT,                 eCP_BITRATE_500K,                 eCP_BITRATE_NONE);   //---------------------------------------------------   // JON ishini boshlash   //   CpCoreCanMode(&tsCanPortT, eCP_MODE_OPERATION);   // .. endi biz ishlayapmiz}

Shunga o'xshash loyihalar

Uchun Linux operatsion tizim loyihalari can4linux va SocketCAN Classical CAN va ISO CAN FD-ni qo'llab-quvvatlash. Tijorat AVTOSAR 4.3 versiyasidan boshlab CAN FD-ni qo'llab-quvvatlaydi va faqat AUTOSAR sheriklari uchun mavjud. CMSIS-Driver (Cortex Microcontroller Software Interface Standard) spetsifikatsiyasi - bu dasturiy ta'minot API, bu o'rta dasturiy ta'minot to'plamlari va foydalanuvchi dasturlari uchun tashqi haydovchi interfeyslarini tavsiflaydi. ARM Cortex-M protsessorlari.[5]

Adabiyotlar

Tashqi havolalar