CANpie - CANpie
CANpie (Среда интерфейса программирования CAN) является Открытый исходный код проект и преследует цель создания и создания открытого и стандартизированного программного API для доступа к CAN-шина.
Проект основан в 2001 году.[1] компанией MicroControl и под лицензией Лицензия Apache версии 2.0. Текущая версия CANpie API[2] охватывает как классические CAN-фреймы, так и ISO CAN FD[3] кадры. API разработан для встроенных приложений управления, а также для интерфейсных плат ПК: встроенных микроконтроллеры запрограммированы на C, для независимого от ОС доступа к интерфейсным платам предоставляется C ++ API. API обеспечивает функциональность ISO / OSI Layer-2 (уровень канала передачи данных). CANpie не намерен включать функции более высокого уровня (например, CANopen, SAE J1939 ).
Принцип драйвера
CANpie API поддерживает концепцию аппаратных буферов сообщений (почтовых ящиков) с общим лимитом 255 буферов. Буфер сообщений имеет уникальное направление (получение или передача). В качестве опции можно подключить ФИФО с произвольным размером в буфер сообщений для обоих направлений передачи. Общее количество каналов CAN ограничено 255, API предоставляет метод для сбора информации о функциях каждого аппаратного канала CAN. Это особенно важно для разработчика приложения, который хочет написать код только один раз. Отметка времени кадра CAN (указывается CiA 603, отметка времени кадра CAN - Требования для управления временем в сети[4]) поддерживается с разрешением 1 наносекунда.
использование
В следующем фрагменте кода показана инициализация микроконтроллера.
#включают "cp_core.h" // основные функции CANpieпустота MyCanInit(пустота){ CpPort_ts tsCanPortT; // логический порт CAN //--------------------------------------------------- // настраиваем CAN контроллер / открываем физический CAN // порт // memset(&tsCanPortT, 0, размер(CpPort_ts)); CpCoreDriverInit(eCP_CHANNEL_1, &tsCanPortT, 0); //--------------------------------------------------- // устанавливаем 500 кбит / с // CpCoreBitrate(&tsCanPortT, eCP_BITRATE_500K, eCP_BITRATE_NONE); //--------------------------------------------------- // запускаем работу CAN // CpCoreCanMode(&tsCanPortT, eCP_MODE_OPERATION); // .. теперь мы работаем}
Похожие проекты
Для Linux операционная система проекты can4linux и SocketCAN обеспечить поддержку классической CAN и ISO CAN FD. Коммерческий АВТОСАР Спецификация поддерживает CAN FD с версии 4.3 и доступна только для партнеров AUTOSAR. Спецификация CMSIS-Driver (стандарт программного интерфейса микроконтроллера Cortex) представляет собой программный API, который описывает интерфейсы периферийных драйверов для стеков промежуточного программного обеспечения и пользовательских приложений на РУКА Процессоры Cortex-M.[5]
Рекомендации
- ^ 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
внешняя ссылка
- Документация CANpie
- Сайт проекта CANpie
- Информационный бюллетень CAN 2014-02-25
- Архитектура программного обеспечения для модульных самореконфигурируемых роботов, Исследовательский центр Xerox Palo Alto
- Сайт АВТОСАР
- сайт проекта can4linux
- Сайт проекта SocketCAN
- Патент подан на SocketCAN (немецкий язык)
- iCC 2017 - «API драйвера CAN - переход с классической CAN на CAN FD»