МАРАФОН CAN технология Комплекс программного обеспечения CAN. Библиотека CAN Hardware Abstraction Interface (CHAI). Федор Недеогло <fedor@marathon.ru> http://www.marathon.ru МАРАФОН CAN технология Стек протоколов CAN Программное обеспечение CAN Программные приложения Программное обеспечение CAN фирмы Марафон Программа тестирования и конфигурирования сети CAN - CANwise CAN Higher Layer Protocol (Application Layer) Библиотеки CAN-протоколов верхнего уровня Библиотеки CANopen и DeviceNet CAN (Physical/DataLink) Драйверы CAN-контроллеров и CAN-адаптеров CAN Hardware Abstraction Interface (CHAI) http://www.marathon.ru МАРАФОН CAN технология Основные принципы разработки • Переносимость • Расширяемость Основной метод разработки четко определенные внешние и внутренние интерфейсы (структурный подход, модульность) на всех уровнях стека протокола http://www.marathon.ru МАРАФОН CAN технология CHAI Функциональность библиотеки CHAI Унифицированный программный интерфейс доступа к сети CAN на канальном уровне. Программный интерфейс CHAI не зависит от используемой аппаратуры CAN и операционной системы или среды выполнения микроконтроллера. http://www.marathon.ru МАРАФОН CHAI CAN технология Управление Сбор данных Анализ сети CAN Hardware Abstraction Interface CAN-bus-PCI CAN-bus-ISA CAN-bus-USB CAN-bus CAN-bus-PC104 МАРАФОН CHAI CAN технология Библиотека CHAI поддерживает: • стандартный и расширенный протокол CAN (11 и 29-битные идентификаторы), • скорость передачи до 1 Мбит/сек, • Регистрацию функций обратного вызова на возникновение асинхронных событий сети (прием кадра, ошибки сети), • автоматическое интерфейсов определение всех поддерживаемых CAN- • Listen Only Mode (если поддерживается CAN-контроллером), • Работу в ОС общего назначения (Linux, Windows) и во встраиваемых применениях (микроконтроллеры). http://www.marathon.ru МАРАФОН CAN технология CHAI Реализация CHAI внешний интерфейс – переносимый API CHAI внутренние интерфейсы – обеспечивают расширяемость Язык реализации - ANSI C http://www.marathon.ru МАРАФОН CHAI CAN технология Пользовательское приложение Виртуальный CAN-контроллер Канал ввода-вывода Виртуальный CAN-контроллер Канал ввода-вывода CAN-bus-PCI МАРАФОН CHAI CAN технология Виртуальный CAN-контроллер CiSetCB( ) CiWrite( ) CiRead( ) Асинхронные события сети CAN CIEV_RC CIEV_TR CIEV_EWL CIEV_BOFF очередь кадров на отправку приемная очередь кадров FIFO FIFO CAN сеть МАРАФОН CAN технология CHAI Переносимый программный интерфейс CHAI • Каждый CAN контроллер идентифицируется целым числом (каналом ввода-вывода) начиная с 0. • Каждый CAN контроллер (канал ввода-вывода) рассматривается библиотекой как отдельное устройство, вне зависимости оттого, что те или иные CAN контроллеры могут быть сгруппированы в одной плате расширения. •API CHAI состоит из трех групп функций: базовые функции - позволяют конфигурировать CAN-контроллер и отправлять/принимать CAN-кадры в сеть, функции определения статуса CAN-контроллера и CANинтерфейса, дополнительные функции зависящие от типа применяемого CAN-контроллера (аппаратный сброс, Listen Only mode). http://www.marathon.ru МАРАФОН CAN технология API CHAI (код специфичный для операционной системы) Модуль абстракции от среды выполнения IOCTL операции очереди буферы (код специфичный для ОС) (общий код) Модуль абстракции от CAN-контроллера (код специфичный для CAN-контроллера) Модуль абстракции от CAN-интерфейса (код специфичный для операционной системы и CAN-интерфейса) CHAI ПО CHAI в архитектуре Unican состоит из: • модуля API CHAI • модуля Unican • модуля абстракции от CANконтроллера • модуля абстракции от CANинтерфейса • модуля абстракции от среды выполнения Шина ISA/PCI Аппаратура CAN ( PCI/ISA CAN-интерфейсы ) http://www.marathon.ru МАРАФОН CAN технология CHAI Добавление поддержки нового CAN-интерфейса состоит из двух этапов: • добавление двух новых функций для каждой поддерживаемой платформы в модуль абстракции от CANинтерфейса, • добавление стандартного набора операций с CANконтроллером в модуль абстракции от CAN-контроллера, если интерфейс содержит неподдерживаемые контроллеры. http://www.marathon.ru МАРАФОН CAN технология CANopen Функциональность библиотеки CANopen Библиотека реализует спецификацию протокола CANopen и предоставляет переносимый программный интерфейс на уровне приложения стека протоколов. http://www.marathon.ru МАРАФОН CAN технология CANwise Функциональность программы CANwise CANwise – универсальное приложение для тестирования и конфигурирования CAN сетей. Позволяет отслеживать пакеты в сети, посылать пакеты произвольного содержания в сеть, анализировать трафик протокола CANopen, работать с устройствами через сеть в терминах протоколов высокого уровня. http://www.marathon.ru МАРАФОН CAN технология CANwise Подгружаемые модули CANwise Основной модуль графического интерфейса Подгружаемый модуль CANmonitor Подгружаемый модуль CANopen Анализатор Подгружаемый модуль CANopen Конфигуратор http://www.marathon.ru МАРАФОН CAN технология Комплекс программного обеспечения CAN. Библиотека CAN Hardware Abstraction Interface (CHAI). Федор Недеогло <fedor@marathon.ru> http://www.marathon.ru МАРАФОН CAN технология CHAI Архитектура Unican для ОС общего назначения позволяет: • иметь максимальное количество общего исходного кода драйверов CAN для многих операционных систем и как следствие уменьшить затраты на поддержку исходного кода для нескольких ОС; • увеличить скорость добавления в драйвер поддержки новых CAN-интерфейсов; • увеличить скорость переноса драйвера на новую платформу (операционную систему). Как реализовано? http://www.marathon.ru МАРАФОН CAN технология CHAI Перенос на новую платформу состоит из: • добавления поддержки новой платформы в модуль абстракции от среды выполнения, • добавление двух новых функций для каждого CANинтерфейса в модуль абстракции от CAN-интерфейса, • написание модуля API CHAI для новой платформы. Как реализовано? http://www.marathon.ru