USB-CAN шинен интерфейс
Функция на интерфейса на адаптера
Инструкция за потребителя на библиотеката
ПЪРВА ЧАСТ СВЪРШИVIEW
Ако потребителят просто използва интерфейсния адаптер на USB-CAN шина, за да премине към тест за комуникация на CAN шина, след това той може директно да използва предоставения софтуер USB-CAN Tool за изпращане и получаване на данни от теста.
Ако потребителят възнамерява да напише софтуерна програма за собствените си продукти. Моля, прочетете внимателно следните инструкции и вземете справка от sampкод, който предоставяме:
⑴ 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_Версия
Номер на версията на хардуера, шестнадесетичен запис. Например 0x0100 представлява V1.00.
fw_Версия
Номер на версията на хардуера, шестнадесетичен запис. Например 0x0100 представлява V1.00.
страница 2
dr_Version
Номер на версията на драйвера, шестнадесетичен запис. Например 0x0100 представлява V1.00.
in_Version
Номер на версията на библиотеката на интерфейса, шестнадесетичен запис. Например 0x0100 представлява V1.00.
irq_Num
Системата е запазена.
can_Num
Представлява общия брой CAN канали.
str_Serial_Num
Серийният номер на тази бордова карта.
str_hw_Тип
Тип хардуер, като например „USBCAN V1.00“ (Забележка: Включва терминатор на низ „\0“).
Запазено
Системата е запазена.
2.1.3. VCI_CAN_OBJ
Във функциите VCI_Transmit и VCI_Receive структурата VCI_CAN_OBJ се използва за предаване на кадър на CAN съобщение.
Член:
ID
Идентификатор на съобщението. Формат за директен идентификационен номер, подравнен вдясно, моля, вижте: Приложение едно: Подробности за подравняване на ID.
TimeStamp
Получаване на Свamp информация за времевата рамка, стартиране на времето, когато CAN контролерът е инициализиран, единицата е 0 ms.
TimeFlag
По отношение на това дали да се използва часът стamp, 1 е ефективният TimeStamp. TimeFlag и TimeStamp имат смисъл само когато рамката е получена.
SendType
Тип изпращане. = 0 показва нормален тип, = 1 показва единично изпращане.
RemoteFlag
Независимо дали е отдалечен флаг. = 1 показва отдалечен флаг, = 0 показва флаг за данни.
ExternFlag
Независимо дали е външен флаг. = 1 показва външен флаг, = 0 показва стандартен флаг.
DataLen
Дължина на данните (<=8) ,т.е. дължината на данните.
данни
Пакети данни.
Запазено
Системата е запазена.
2.1.4. VCI_INIT_CONFIG
Структурата VCI_INIT_CONFIG дефинира конфигурацията за инициализация на CAN. Структурата ще бъде попълнена във функцията VCI_InitCan.
Член:
AccCode
Получаване на филтриран код за приемане.
AccMask
Получаване на филтърна маска.
Запазено
Запазено.
Филтър
Метод на филтриране, позволяващ обхват на настройка 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 bps | 0x31 | 0x1C |
20k bps | 0x18 | 0x1C |
40k bps | 0x87 | 0xFF |
50k bps | 0x09 | 0x1C |
80k bps | 0x83 | 0xFF |
100k bps | 0x04 | 0x1C |
125k bps | 0x03 | 0x1C |
200k bps | 0x81 | 0xFA |
250k bps | 0x01 | 0x1C |
400k bps | 0x80 | 0xFA |
500k bps | 0x00 | 0x1C |
666k bps | 0x80 | 0xB6 |
800k bps | 0x00 | 0x16 |
1000k bps | 0x00 | 0x14 |
33.33 Kbps | 0x09 | 0x6F |
66.66 Kbps | 0x04 | 0x6F |
83.33 Kbps | 0x03 | 0x6F |
- Потребителите трябва само да следват SJA1000 (16MHz), за да зададат параметъра за скорост на предаване.
- Адаптерът не поддържа временно скорост на предаване под 10K.
2.2. ОПИСАНИЕ НА ФУНКЦИЯТА
2.2.1. VCI_OpenDevice
Тази функция се използва за свързване на устройства.
DWORD __stdcall VCI_OpenDevice(DWORD DevType,DWORD DevIndex,DWORD Reserved);
Параметри:
DevType
Тип устройство. Вижте: Дефиниция на типа адаптерно устройство.
DevIndex
Индекс на устройството, напрample, когато има само един USB-CAN адаптер, индексният номер е 0, когато има няколко USB-CAN адаптера, индексните номера във възходящ ред, започвайки от 0.
Запазено
Параметри на задържане, попълнете 0.
Връща:
Върната стойност = 1, което означава, че операцията е успешна; = 0 показва, че операцията е неуспешна; = -1 показва, че устройството не съществува.
2.2.2. VCI_CloseDevice
Тази функция се използва за затваряне на връзката.
DWORD __stdcall VCI_CloseDevice(DWORD DevType,DWORD DevIndex);
Параметри:
DevType
Тип устройство. Вижте: Дефиниция на типа адаптерно устройство.
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);
Параметри:
DevType
Тип устройство. Вижте: Дефиниция на типа адаптерно устройство.
DevIndex
Индекс на устройството, напрample, когато има само един USB-CAN адаптер, индексният номер е 0, когато има няколко USB-CAN адаптера, индексните номера във възходящ ред, започвайки от 0.
CANIndex
Индекс на CAN канал, например когато има само един CAN канал, индексният номер е 0, ако има два, индексният номер може да бъде 0 или 1.
pInitConfig
Структура на параметрите за инициализация. Списък с параметри на членовете:
Член | Функционално описание |
pInitConfig->AccCode | AccCode и AccMask могат да работят заедно, за да определят кои пакети могат да бъдат приети. Тези два регистъра се използват за задаване на ID, подравнен вляво, т.е. най-високият бит (Bit31) на AccCode и AccMask е подравнен с най-високия бит от стойността на ID. |
pInitConfig->AccMask | Относно подравняването на ID вижте приложенията: Приложение I: подробности за подравняване на ID. Например: Ако зададете стойността на AccCode като 0x24600000 (т.е. 0x123 се измества наляво с 21 бита), стойността на AccMask е зададено на 0x00000000 и тогава могат да се приемат само пакетите с ID на рамката на CAN съобщението 0x123 (стойността на AccMask от 0x00000000 показва, че всички битове са подходящи |
битове). Ако стойността на AccCode е настроена на 0x24600000, стойността на AccMask е настроена на 0x600000 (0x03 се измества наляво с 21 бита), след което могат да се приемат само пакетите с ID на рамката на CAN съобщението 0x120 ~ 0x123 (стойността на AccMask 0x600000 показва, че освен bit0 ~ bit1 други битове (bit2 ~ bit10) са подходящи битове). Забележка: Тази настройка на филтъра напрampкъм стандартната рамка, напрample, висок 11-битов е валидният бит; в случай на разширения кадър и тогава валидният идентификатор е 29-битов. AccCode и AccMask задават висок 29-битов като валиден бит! |
|
pInitConfig->Reserved | запазено |
pInitConfig->Филтър | Настройките на режима на филтриране, моля, вижте раздела на таблицата с режими на филтриране. |
pInitConfig->Timing0 | Настройка на Baud rateT0 |
pInitConfig->Timing1 | Настройка на Baud rateT1 |
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);
Параметри:
DevType
Тип устройство. Вижте: Дефиниция на типа адаптерно устройство.
DevIndex
Индекс на устройството, напр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);
Параметри:
DevType
Тип устройство. Вижте: Дефиниция на типа адаптерно устройство.
DevIndex
Индекс на устройството, напрample, когато има само един 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);
Параметри:
DevType
Тип устройство. Вижте: Дефиниция на типа адаптерно устройство.
DevIndex
Индекс на устройството, напрample, когато има само един 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);
Параметри:
DevType
Тип устройство. Вижте: Дефиниция на типа адаптерно устройство.
DevIndex
Индекс на устройството, напр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);
Параметри:
DevType
Тип устройство. Вижте: Дефиниция на типа адаптерно устройство.
DevIndex
Индекс на устройството, напр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);
Параметри:
DevType
Тип устройство. Вижте: Дефиниция на типа адаптерно устройство.
DevIndex
Индекс на устройството, напрample, когато има само един USB-CAN адаптер, индексният номер е 0, когато има няколко USB-CAN адаптера, индексните номера във възходящ ред, започвайки от 0.
CANIndex
Индекс на CAN канал. pИзпрати
Първият адрес на масивите от кадри с данни, които трябва да бъдат изпратени.
Дължина
Броят на кадрите с данни, които трябва да бъдат изпратени, максималният брой е 1000, препоръчителната стойност е 48 при висока скорост.
Връща:
Връща действителния брой вече изпратени рамки, върнатата стойност = -1 показва грешка на устройството.
напр
2.2.10. VCI_Получаване
Тази функция се използва за искане на приемане.
DWORD __stdcall VCI_Receive(DWORD DevType, DWORD DevIndex, DWORD CANIndex, PVCI_CAN_OBJ pReceive, ULONG Len, INT WaitTime);
Параметри:
DevType
Тип устройство. Вижте: Дефиниция на типа адаптерно устройство.
DevIndex
Индекс на устройството, напрample, когато има само един USB-CAN адаптер, индексният номер е 0, когато има няколко USB-CAN адаптера, индексните номера във възходящ ред, започвайки от 0.
CANIndex
Индекс на CAN канал.
pReceive
За получаване на първия зададен указател на кадрите с данни.
Лен
Дължината на масива на рамката с данни трябва да бъде повече от 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 Reserved
Параметри:
DevType
Тип устройство. Вижте: Дефиниция на типа адаптерно устройство.
DevIndex
Индекс на устройството, напрample, когато има само един USB-CAN адаптер, индексният номер е 0, когато има няколко USB-CAN адаптера, индексните номера във възходящ ред, започвайки от 0.
Запазено Запазено.
Връща:
Върната стойност = 1, което означава, че операцията е успешна; = 0 показва, че операцията е неуспешна; = -1 показва, че устройството не съществува.
bRel = VCI_UsbDeviceReset(nDeviceType, Independence, 0);
3.1.2. VCI_FindUsbDevice2
Когато един и същ компютър използва множество USB-CAN, потребителят може да използва тази функция, за да намери текущото устройство.
DWORD __stdcall VCI_FindUsbDevice2(PVCI_BOARD_INFO pInfo);
Параметри:
pInfo
pInfo се използва за съхраняване на параметрите на първия адресен указател на буфера за данни.
Връща се
Върнете номера на USB-CAN адаптера, включен в компютъра.
Част четвърта Функции на библиотеката на интерфейса, използващи процес
За да умножим функцията на устройството, предоставихме допълнителни функции (функции, представени на зелен фон), тези функции включват: VCI_FindUsbDevice2 VCI_UsbDeviceReset. По време на втората разработка не е задължително тези функции да бъдат извиквани. Дори тези функции да бъдат игнорирани, всички функции на USB-CAN адаптера могат да бъдат постигнати.
www.waveshare.com
www.waveshare.com/wiki
Документи / Ресурси
![]() |
WAVESHARE USB-CAN Bus Inter face Adapter Interface Библиотека с функции [pdf] Ръководство за употреба USB-CAN Bus Inter face Adapter Библиотека с интерфейсни функции, USB-CAN, Bus Interface Adapter Библиотека с интерфейсни функции, Библиотека с интерфейсни функции, Библиотека с функции |