Интерфейс шины USB-CAN
Функция интерфейса адаптера
Инструкция пользователя библиотеки
ЧАСТЬ ПЕРВАЯVIEW
Если пользователь просто использует адаптер интерфейса шины USB-CAN для проверки связи по шине CAN, то он может напрямую использовать прилагаемое программное обеспечение USB-CAN Tool для отправки и получения данных теста.
Если пользователь намеревается написать программу для своих собственных продуктов. Пожалуйста, внимательно прочтите следующие инструкции и обратитесь кampМы предоставляем код:
⑴ C++Builder ⑵C# ⑶VC ⑷VB ⑸VB.NET ⑹Delphi ⑺LabVIEW ⑻ LabWindows/CVI ⑼Matlab ⑽QT ⑾Python/Python-can.
Разработать библиотеку file :ControlCAN.lib, ControlCAN.DLL
Объявление функции версии VC file :ControlCAN.h
Объявление функции версии VB file: ControlCAN.bas
ЛабораторияVIEW Модуль функционального пакета библиотеки версий: ControlCAN.llb
Объявление функции версии Delphi file: ControlCAN.pas
ЧАСТЬ ВТОРАЯ БИБЛИОТЕКА СОВМЕСТИМЫХ ФУНКЦИЙ И СТРУКТУРА ДАННЫХ
2.1. ОПРЕДЕЛЕНИЕ ТИПА
2.1.1. Тип устройства
Определение типа | Введите значение | Описание |
DEV_USBCAN2 | 4 | USBCAN-2A/USBCAN-2C/CANalyst-II MiniPCIe-CAN |
2.1.2. VCI_BOARD_INFO
Структура VCI_BOARD_INFO содержит информацию об устройстве интерфейсной карты серии USB-CAN.
Структура будет заполнена в функции VCI_ReadBoardInfo.
Член:
hw_Version
Номер версии аппаратного обеспечения, шестнадцатеричное представление. Например, 0x0100 представляет версию 1.00.
fw_Version
Номер версии аппаратного обеспечения, шестнадцатеричное представление. Например, 0x0100 представляет версию 1.00.
Страница 2
dr_Version
Номер версии драйвера в шестнадцатеричном формате. Например, 0x0100 представляет версию 1.00.
in_Version
Номер версии интерфейсной библиотеки в шестнадцатеричном формате. Например, 0x0100 представляет версию 1.00.
irq_Num
Система зарезервирована.
can_Num
Представляет общее количество каналов CAN.
str_Serial_Num
Серийный номер этой платы платы.
str_hw_Type
Тип оборудования, например «USBCAN V1.00» (Примечание. Включает разделитель строки «\0»).
Сдержанный
Система зарезервирована.
2.1.3. VCI_CAN_OBJ
В функциях VCI_Transmit и VCI_Receive структура VCI_CAN_OBJ используется для передачи кадра сообщения CAN.
Член:
ID
Идентификатор сообщения. Формат прямого идентификатора, выравнивание по правому краю, см.: Приложение XNUMX: Детали выравнивания идентификатора.
ВремяStamp
Получение ул.amp информация о таймфрейме, начало отсчета времени при инициализации CAN-контроллера, единица измерения 0 мс.
флаг времени
С точки зрения того, следует ли использовать время stamp, 1 — эффективная TimeStamp. TimeFlag и TimeStamp имеют смысл только тогда, когда получен кадр.
Тип отправки
Тип отправки. = 0 указывает обычный тип, = 1 указывает одиночную отправку.
удаленный флаг
Является ли это удаленным флагом. = 1 указывает удаленный флаг, = 0 указывает флаг данных.
Внешний флаг
Является ли это внешним флагом. = 1 указывает внешний флаг, = 0 указывает стандартный флаг.
ДатаЛен
Длина данных (<=8), то есть длина данных.
Данные
Пакетные данные.
Сдержанный
Система зарезервирована.
2.1.4. VCI_INIT_CONFIG
Структура VCI_INIT_CONFIG определяет конфигурацию инициализации CAN. Структура будет заполнена в функции VCI_InitCan.
Член:
АкКод
Получите отфильтрованный код принятия.
АкМаск
Получите маску фильтра.
Сдержанный
Сдержанный.
Фильтр
Метод фильтрации, позволяющий установить диапазон 0-3, подробности см. в разделе 2.2.3 таблицы режимов фильтрации.
Тайминг0
SJA1000 Параметр скорости передачи, Timing0 (BTR0) .
Тайминг1
SJA1000 Параметр скорости передачи, Timing1 (BTR1) .
Режим
Рабочий режим, 0 = нормальная работа, 1 = режим только прослушивания, 2 = самопроизвольный прием и тестовый режим отправки.
Замечания:
О настройках фильтра см.: Приложение II: Инструкции по настройке параметров CAN.
CAN Timing0 и Timing1 используются для установки скорости передачи, эти два параметра используются только при инициализации.tage.
Справочная таблица обычных бод:
CAN скорость передачи | Время0(BTR0) | Время1(BTR1) |
10k бит/с | 0x31 | 0x1C |
20k бит/с | 0x18 | 0x1C |
40k бит/с | 0x87 | 0xFF |
50k бит/с | 0x09 | 0x1C |
80k бит/с | 0x83 | 0xFF |
100k бит/с | 0x04 | 0x1C |
125k бит/с | 0x03 | 0x1C |
200k бит/с | 0x81 | 0xФА |
250k бит/с | 0x01 | 0x1C |
400k бит/с | 0x80 | 0xФА |
500k бит/с | 0x00 | 0x1C |
666k бит/с | 0x80 | 0xB6 |
800k бит/с | 0x00 | 0x16 |
1000k бит/с | 0x00 | 0x14 |
33.33 Кбит/с | 0x09 | 0x6F |
66.66 Кбит/с | 0x04 | 0x6F |
83.33 Кбит/с | 0x03 | 0x6F |
- Пользователям нужно только следовать SJA1000 (16 МГц), чтобы установить параметр скорости передачи.
- Адаптер временно не поддерживает скорость передачи данных ниже 10K.
2.2. ОПИСАНИЕ ФУНКЦИЙ
2.2.1. VCI_OpenDevice
Эта функция используется для подключения устройств.
DWORD __stdcall VCI_OpenDevice (DWORD DevType, DWORD DevIndex, DWORD зарезервировано);
Параметры:
Тип разработчика
Тип устройства. См.: Определение типа устройства-адаптера.
Девиндекс
Индекс устройства, напримерample, когда имеется только один адаптер USB-CAN, порядковый номер равен 0, когда имеется несколько адаптеров USB-CAN, порядковые номера в порядке возрастания, начиная с 0.
Сдержанный
Параметры удержания, заполните 0.
Возврат:
Возвращаемое значение = 1, что означает, что операция выполнена успешно; = 0 указывает, что операция не удалась; = -1 указывает, что устройство не существует.
2.2.2. VCI_CloseDevice
Эта функция используется для закрытия соединения.
DWORD __stdcall VCI_CloseDevice (DWORD DevType, DWORD DevIndex);
Параметры:
Тип разработчика
Тип устройства. См.: Определение типа устройства-адаптера.
Девиндекс
Индекс устройства, напримерample, когда имеется только один адаптер USB-CAN, порядковый номер равен 0, когда имеется несколько адаптеров USB-CAN, порядковые номера в порядке возрастания, начиная с 0.
Возврат:
Возвращаемое значение = 1, что означает, что операция выполнена успешно; = 0 указывает, что операция не удалась; = -1 указывает, что устройство не существует.
2.2.3. VCI_InitCan
Эта функция используется для инициализации указанного CAN.
DWORD __stdcall VCI_InitCAN (DWORD DevType, DWORD DevIndex, DWORD CANIndex,
PVCI_INIT_CONFIG pinitConfig);
Параметры:
Тип разработчика
Тип устройства. См.: Определение типа устройства-адаптера.
Девиндекс
Индекс устройства, напримерample, когда имеется только один адаптер USB-CAN, порядковый номер равен 0, когда имеется несколько адаптеров USB-CAN, порядковые номера в порядке возрастания, начиная с 0.
CANIndex
Индекс канала CAN, например, когда имеется только один канал CAN, номер индекса равен 0, если их два, номер индекса может быть 0 или 1.
пинитконфиг
Структура параметров инициализации. Список параметров членов:
Член | Функциональное описание |
pInitConfig->АкКод | AccCode и AccMask могут работать вместе, чтобы определить, какие пакеты могут быть приняты. Эти два регистра используются для установки идентификатора, выровненного по левому краю, то есть старший бит (бит 31) AccCode и AccMask выровнен со старшим битом значения идентификатора. |
pInitConfig->AccMask | О выравнивании ID см. приложения: Приложение I: Детали выравнивания идентификатора. Например: Если вы установите значение AccCode как 0x24600000 (т.е. 0x123 сдвинуто влево на 21 бит), значение AccMask установлен на 0x00000000, и тогда могут быть приняты только пакеты с идентификатором кадра сообщения CAN, равным 0x123 (значение AccMask 0x00000000 указывает, что все биты релевантны |
биты). Если значение AccCode установлено на 0x24600000, значение AccMask установлено на 0x600000 (0x03 сдвинуто влево на 21 бит), и тогда могут быть приняты только пакеты с идентификатором кадра сообщения CAN 0x120 ~ 0x123 (значение AccMask 0x600000 указывает, что помимо бит0 ~ бит1 другие биты (бит2 ~ бит10) являются релевантными битами). Примечание: Эта настройка фильтра exampфайлы в стандартную рамку, напримерample, старший 11-бит является действительным битом; в случае расширенного кадра, и тогда действительный идентификатор является 29-битным. AccCode и AccMask устанавливают старшие 29 бит в качестве допустимого бита! |
|
pInitConfig->Зарезервировано | сдержанный |
pInitConfig->Фильтр | Настройки режима фильтрации см. в разделе таблицы режимов фильтрации. |
pInitConfig->Время0 | Настройка скорости передачи T0 |
pInitConfig->Время1 | Настройка скорости передачи T1 |
pInitConfig->Режим | Режим работы: 0-нормальная работа 1-режим только прослушивания 2-самопроизвольный прием и тестовый режим отправки (данное значение исключено из библиотеки функций ZLG) |
Таблица режимов фильтрации:
Ценить | Имя | Описание |
1 | Получить все типы | Подходит как для стандартной, так и для удлиненной рамы! |
2 | Только получить стандартную рамку | Подходит для стандартной рамы и расширенной |
кадр будет удален фильтрацией напрямую! | ||
3 | Принимать только расширенный кадр | Подходит для удлиненной рамы, а стандартная рама будет удалена фильтрация напрямую! 。 |
Возврат:
Возвращаемое значение = 1, что означает, что операция выполнена успешно; = 0 указывает, что операция не удалась; = -1 указывает, что устройство не существует.
Например
2.2.4. VCI_ReadBoardInfo
Эта функция используется для считывания информации об аппаратном обеспечении адаптера. В общем, на это можно не обращать внимания.
DWORD __stdcall VCI_ReadBoardInfo(DWORD DevType,DWORD
DevIndex,PVCI_BOARD_INFO pInfo);
Параметры:
Тип разработчика
Тип устройства. См.: Определение типа устройства-адаптера.
Девиндекс
Индекс устройства, напримерample, если имеется только один адаптер USB-CAN, порядковый номер равен 0, если имеется несколько адаптеров USB-CAN, порядковые номера в порядке возрастания, начиная с 0. pInfo
VCI_BOARD_INFO используется для хранения указателя структуры информации об устройстве.
Возврат:
Возвращаемое значение = 1, что означает, что операция выполнена успешно; = 0 указывает, что операция не удалась; = -1 указывает, что устройство не существует.
2.2.5. VCI_GetReceiveNum
Эта функция используется для указания принятых, но не прочитанных кадров в указанном приемном буфере.
DWORD __stdcall VCI_GetReceiveNum (DWORD DevType, DWORD DevIndex, DWORD CANIndex);
Параметры:
Тип разработчика
Тип устройства. См.: Определение типа устройства-адаптера.
Девиндекс
Индекс устройства, напримерampНапример, при наличии только одного адаптера USB-CAN порядковый номер равен 0, при наличии нескольких адаптеров USB-CAN порядковые номера в порядке возрастания, начиная с 0.
CANIndex
Индекс канала CAN.
Возврат:
Возвращает кадры, которые еще не были прочитаны.
Например
#include «ControlCan.h» int ret=VCI_GetReceiveNum(2,0,0);
2.2.6. VCI_ClearBuffer
Эта функция используется для очистки буфера приема и отправки назначенного канала, указанного параметром
USB-CAN адаптер.
DWORD __stdcall VCI_ClearBuffer (DWORD DevType, DWORD DevIndex, DWORD CANIndex);
Параметры:
Тип разработчика
Тип устройства. См.: Определение типа устройства-адаптера.
Девиндекс
Индекс устройства, напримерampНапример, при наличии только одного адаптера USB-CAN порядковый номер равен 0, при наличии нескольких адаптеров USB-CAN порядковые номера в порядке возрастания, начиная с 0.
CANIndex
Индекс канала CAN.
Возврат:
Возвращаемое значение = 1, что означает, что операция выполнена успешно; = 0 указывает, что операция не удалась; = -1 указывает, что устройство не существует.
2.2.7. VCI_StartCAN
Эта функция используется для запуска CAN-контроллера и функции приема внутренних прерываний адаптера.
DWORD __stdcall VCI_StartCAN (DWORD DevType, DWORD DevIndex, DWORD CANIndex);
Параметры:
Тип разработчика
Тип устройства. См.: Определение типа устройства-адаптера.
Девиндекс
Индекс устройства, напримерample, когда имеется только один адаптер USB-CAN, порядковый номер равен 0, когда имеется несколько адаптеров USB-CAN, порядковые номера в порядке возрастания, начиная с 0.
CANIndex
Индекс канала CAN.
Возврат:
Возвращаемое значение = 1, что означает, что операция выполнена успешно; = 0 указывает, что операция не удалась; = -1 указывает, что устройство не существует.
2.2.8. VCI_ResetCAN
Эта функция используется для сброса CAN-контроллера.
DWORD __stdcall VCI_ResetCAN (DWORD DevType, DWORD DevIndex, DWORD CANIndex);
Параметры:
Тип разработчика
Тип устройства. См.: Определение типа устройства-адаптера.
Девиндекс
Индекс устройства, напримерample, когда имеется только один адаптер USB-CAN, порядковый номер равен 0, когда имеется несколько адаптеров USB-CAN, порядковые номера в порядке возрастания, начиная с 0.
CANIndex
Индекс канала CAN.
Возврат:
Возвращаемое значение = 1, что означает, что операция выполнена успешно; = 0 указывает, что операция не удалась; = -1 указывает, что устройство не существует.
2.2.9. VCI_Передача
Эта функция используется для отправки кадра сообщения CAN.
DWORD __stdcall VCI_Transmit (DWORD DeviceType, DWORD DeviceInd, DWORD CANInd, PVCI_CAN_OBJ pSend, DWORD Length);
Параметры:
Тип разработчика
Тип устройства. См.: Определение типа устройства-адаптера.
Девиндекс
Индекс устройства, напримерample, когда имеется только один адаптер USB-CAN, порядковый номер равен 0, когда имеется несколько адаптеров USB-CAN, порядковые номера в порядке возрастания, начиная с 0.
CANIndex
Индекс канала CAN. pОтправить
Первый адрес массивов кадров данных, которые должны быть отправлены.
Длина
Количество кадров данных, которые должны быть отправлены, максимальное количество — 1000, рекомендуемое значение — 48 при высокой скорости.
Возврат:
Возвращает фактическое количество уже отправленных кадров, возвращаемое значение = -1 указывает на ошибку устройства.
Например
2.2.10. VCI_Receive
Эта функция используется для запроса приема.
DWORD __stdcall VCI_Receive (DWORD DevType, DWORD DevIndex, DWORD CANIndex, PVCI_CAN_OBJ pReceive, ULONG Len, INT WaitTime);
Параметры:
Тип разработчика
Тип устройства. См.: Определение типа устройства-адаптера.
Девиндекс
Индекс устройства, напримерample, когда имеется только один адаптер USB-CAN, порядковый номер равен 0, когда имеется несколько адаптеров USB-CAN, порядковые номера в порядке возрастания, начиная с 0.
CANIndex
Индекс канала CAN.
pПолучить
Для получения первого указателя набора кадров данных.
Лен
Длина массива кадра данных должна быть больше 2500, чтобы возвращалось нормальное сообщение.
В противном случае возвращаемая длина будет равна нулю независимо от того, получено сообщение или нет. адаптер установил буфер на 2000 кадров для каждого канала. Исходя из своей системы и рабочей среды, пользователь может выбрать подходящую длину массива от 2500.
Время ожидания зарезервировано.
Возврат:
Возвращает количество кадров, которые были фактически прочитаны, -1 указывает на ошибки устройства.
Например
ЧАСТЬ ТРЕТЬЯ ДРУГИЕ ФУНКЦИИ И СТРУКТУРА ДАННЫХ ОПИСАНИЕ
В этой главе описаны другие типы данных и функции несовместимой библиотеки интерфейса ZLG, содержащейся в библиотеке интерфейса адаптера USB-CAN ControlCAN.dll. Пожалуйста, сделай
не вызывайте эти функции, если используете совместимую модель ZLG для вторичной разработки, чтобы не влиять на совместимость.
3.1 ОПИСАНИЕ ФУНКЦИИ
3.1.1. VCI_UsbDeviceReset
Сброс адаптера USB-CAN, необходимо повторно открыть устройство после сброса с помощью VCI_OpenDevice.
DWORD __stdcall VCI_UsbDeviceReset (DWORD DevType, DWORD DevIndex, DWORD зарезервировано
Параметры:
Тип разработчика
Тип устройства. См.: Определение типа устройства-адаптера.
Девиндекс
Индекс устройства, напримерample, когда имеется только один адаптер USB-CAN, порядковый номер равен 0, когда имеется несколько адаптеров USB-CAN, порядковые номера в порядке возрастания, начиная с 0.
Зарезервировано Зарезервировано.
Возврат:
Возвращаемое значение = 1, что означает, что операция выполнена успешно; = 0 указывает, что операция не удалась; = -1 указывает, что устройство не существует.
bRel = VCI_UsbDeviceReset (nDeviceType, Независимость, 0);
3.1.2. VCI_FindUsbDevice2
Когда один и тот же ПК использует несколько USB-CAN, пользователь может использовать эту функцию для поиска текущего устройства.
DWORD __stdcall VCI_FindUsbDevice2 (PVCI_BOARD_INFO pInfo);
Параметры:
pИнформация
pInfo используется для хранения параметров указателя адреса первого буфера данных.
Возвраты
Вернуть номер адаптера USB-CAN, подключенного к компьютеру.
Часть четвертая. Функции библиотеки интерфейса, использующие процесс
Чтобы расширить возможности устройства, мы предоставили дополнительные функции (функции, отмеченные зеленым фоном), в число которых входят: VCI_FindUsbDevice2 VCI_UsbDeviceReset. Во время второй разработки эти функции не обязательно вызывать. Даже если эти функции игнорируются, все функции адаптера USB-CAN могут быть реализованы.
www.waveshare.com
www.waveshare.com/wiki
Документы/Ресурсы
![]() |
WAVESHARE Интерфейс шины USB-CAN Библиотека функций интерфейса адаптера [pdf] Руководство по эксплуатации Библиотека функций интерфейса адаптера интерфейса шины USB-CAN, USB-CAN, Библиотека функций интерфейса адаптера шины, Библиотека функций интерфейса, Библиотека функций |