Rozhraní USB-CAN Bus
Funkce rozhraní adaptéru
Pokyny pro uživatele knihovny
PRVNÍ ČÁST KONECVIEW
Pokud uživatel použije pouze adaptér rozhraní USB-CAN k provedení testu komunikace sběrnice CAN, a pak může přímo použít dodávaný software USB-CAN Tool pro odesílání a přijímání dat testu.
Pokud uživatel zamýšlí napsat softwarový program pro své vlastní produkty. Přečtěte si prosím pozorně následující pokyny a vezměte si reference z sampkód, který poskytujeme:
⑴ C++Builder ⑵C# ⑶VC ⑷VB ⑸VB.NET ⑹Delphi ⑺LabVIEW ⑻ LabWindows/CVI ⑼Matlab ⑽QT ⑾Python/Python-can.
Vyvinout knihovnu file :ControlCAN.lib, ControlCAN.DLL
Deklarace funkce verze VC file :ControlCAN.h
Deklarace funkce verze VB file: ControlCAN.bas
LaboratořVIEW verze modulu balíčku funkcí knihovny :ControlCAN.llb
Deklarace funkce verze Delphi file: ControlCAN.pas
DRUHÁ ČÁST KOMPATIBILNÍ KNIHOVNA FUNKCÍ A DATOVÁ STRUKTURA
2.1. DEFINICE TYPU
2.1.1. Typ zařízení
Definice typu | Zadejte hodnotu | Popis |
DEV_USBCAN2 | 4 | USBCAN-2A/USBCAN-2C/CANalyst-II MiniPCIe-CAN |
2.1.2. VCI_BOARD_INFO
Struktura VCI_BOARD_INFO obsahuje informace o zařízení karty rozhraní USB-CAN Series.
Struktura bude vyplněna funkcí VCI_ReadBoardInfo.
Člen:
hw_Version
Číslo verze hardwaru, hexadecimální zápis. Např. 0x0100 představuje V1.00.
fw_Version
Číslo verze hardwaru, hexadecimální zápis. Např. 0x0100 představuje V1.00.
Strana 2
dr_Verze
Číslo verze ovladače, hexadecimální zápis. Např. 0x0100 představuje V1.00.
ve_verzi
Číslo verze knihovny rozhraní, hexadecimální zápis. Např. 0x0100 představuje V1.00.
irq_Num
Systém rezervován.
can_Num
Představuje celkový počet kanálů CAN.
str_Serial_Num
Sériové číslo této deskové karty.
str_hw_Type
Typ hardwaru, například „USBCAN V1.00“ (Poznámka: Obsahuje řetězec zakončení '\0').
Rezervováno
Systém rezervován.
2.1.3. VCI_CAN_OBJ
Ve funkcích VCI_Transmit a VCI_Receive se pro přenos rámce zprávy CAN používá struktura VCI_CAN_OBJ.
Člen:
ID
Identifikátor zprávy. Formát přímého ID, zarovnáno vpravo, viz: Příloha jedna: Podrobnosti o zarovnání ID.
TimeStamp
Přijetí svamp informace o časovém rámci, čas začátku při inicializaci CAN řadiče, jednotka je 0 ms.
TimeFlag
Z hlediska toho, zda využít čas stamp, 1 je efektivní TimeStamp. TimeFlag a TimeStamp mají smysl pouze tehdy , když je přijat rám .
SendType
Typ odesílání. = 0 označuje normální typ, = 1 označuje jedno odeslání.
RemoteFlag
Ať už jde o vzdálenou vlajku. = 1 označuje vzdálený příznak, = 0 označuje datový příznak.
ExternFlag
Ať už se jedná o externí příznak. = 1 označuje externí příznak, = 0 označuje standardní příznak.
DataLen
Délka dat (<=8) ,to je délka dat.
Data
Paketová data.
Rezervováno
Systém rezervován.
2.1.4. VCI_INIT_CONFIG
Struktura VCI_INIT_CONFIG definuje inicializační konfiguraci CAN. Struktura bude vyplněna funkcí VCI_InitCan.
Člen:
AccCode
Obdržet filtrovaný přijímací kód.
AccMask
Přijměte masku filtru.
Rezervováno
Rezervováno.
Filtr
Metoda filtrování, která umožňuje nastavení rozsahu 0-3, podrobnosti naleznete v části 2.2.3 tabulky režimů filtrování.
Načasování0
SJA1000 Parametr přenosové rychlosti, časování0 (BTR0) .
Načasování1
SJA1000 Parametr přenosové rychlosti, časování1 (BTR1) .
Režim
Provozní režim, 0 = normální provoz, 1 = režim pouze pro poslech, 2 = testovací režim spontánního příjmu a odesílání.
poznámky:
Informace o nastavení filtru naleznete v: Příloha II: Pokyny k nastavení parametrů CAN.
CAN Timing0 a Timing1 se používají k nastavení přenosové rychlosti, tyto dva parametry se používají pouze při inicializaci stage.
Konvenční referenční tabulka Baud:
CAN Přenosová rychlost | Načasování0 (BTR0) | Načasování1 (BTR1) |
10 kb/s | 0x31 | 0x1C |
20 kb/s | 0x18 | 0x1C |
40 kb/s | 0x87 | 0xFF |
50 kb/s | 0x09 | 0x1C |
80 kb/s | 0x83 | 0xFF |
100 kb/s | 0x04 | 0x1C |
125 kb/s | 0x03 | 0x1C |
200 kb/s | 0x81 | 0xFA |
250 kb/s | 0x01 | 0x1C |
400 kb/s | 0x80 | 0xFA |
500 kb/s | 0x00 | 0x1C |
666 kb/s | 0x80 | 0xB6 |
800 kb/s | 0x00 | 0x16 |
1000 kb/s | 0x00 | 0x14 |
33.33 kbps | 0x09 | 0x6F |
66.66 kbps | 0x04 | 0x6F |
83.33 kbps | 0x03 | 0x6F |
- Uživatelé musí pouze následovat SJA1000 (16MHz) pro nastavení parametru přenosové rychlosti.
- Adaptér dočasně nepodporuje přenosovou rychlost nižší než 10 kB.
2.2. POPIS FUNKCE
2.2.1. Vci_opendevice
Tato funkce se používá k připojení zařízení.
DWORD __stdcall VCI_OpenDevice(DWORD DevType,DWORD DevIndex,DWORD Reserved);
Parametry:
DevType
Typ zařízení. Viz: Definice typu zařízení adaptéru.
DevIndex
Index zařízení, napřample, pokud existuje pouze jeden adaptér USB-CAN, indexové číslo je 0, pokud existuje více adaptérů USB-CAN, indexová čísla ve vzestupném pořadí začínající od 0.
Rezervováno
Parametry uchování, vyplňte 0.
Vrácení:
Návratová hodnota = 1, což znamená, že operace byla úspěšná; = 0 znamená, že operace selhala; = -1 znamená, že zařízení neexistuje.
2.2.2. VCI_CloseDevice
Tato funkce se používá k uzavření spojení.
DWORD __stdcall VCI_CloseDevice(DWORD DevType,DWORD DevIndex);
Parametry:
DevType
Typ zařízení. Viz: Definice typu zařízení adaptéru.
DevIndex
Index zařízení, napřample, pokud existuje pouze jeden adaptér USB-CAN, indexové číslo je 0, pokud existuje více adaptérů USB-CAN, indexová čísla ve vzestupném pořadí začínající od 0.
Vrácení:
Návratová hodnota = 1, což znamená, že operace byla úspěšná; = 0 znamená, že operace selhala; = -1 znamená, že zařízení neexistuje.
2.2.3. VCI_InitCan
Tato funkce se používá k inicializaci zadaného CAN.
DWORD __stdcall VCI_InitCAN(DWORD DevType, DWORD DevIndex, DWORD CANindex,
PVCI_INIT_CONFIG pInitConfig);
Parametry:
DevType
Typ zařízení. Viz: Definice typu zařízení adaptéru.
DevIndex
Index zařízení, napřample, pokud existuje pouze jeden adaptér USB-CAN, indexové číslo je 0, pokud existuje více adaptérů USB-CAN, indexová čísla ve vzestupném pořadí začínající od 0.
CANindex
Index kanálu CAN, například když existuje pouze jeden kanál CAN, číslo indexu je 0, pokud jsou dva, může být číslo indexu 0 nebo 1.
pInitConfig
Struktura inicializačních parametrů. Seznam parametrů členů:
Člen | Popis funkce |
pInitConfig->AccCode | AccCode a AccMask mohou spolupracovat na určení, které pakety lze přijmout. Tyto dva registry se používají k nastavení ID zarovnané doleva, to znamená, že nejvyšší bit (Bit31) AccCode a AccMask je zarovnán s nejvyšším bitem hodnoty ID. |
pInitConfig->AccMask | O zarovnání ID viz přílohy: Příloha I: Podrobnosti zarovnání ID. Např.: Pokud nastavíte hodnotu AccCode jako 0x24600000 (tj. 0x123 je posunuto doleva o 21 bitů), hodnota AccMask je nastaveno na 0x00000000, a pak lze přijmout pouze pakety s ID rámce zprávy CAN 0x123 (hodnota AccMask 0x00000000 znamená, že všechny bity jsou relevantní |
bity). Pokud je hodnota AccCode nastavena na 0x24600000, hodnota AccMask je nastavena na 0x600000 (0x03 je posunuta doleva o 21 bitů) a pak lze přijmout pouze pakety s ID rámce zprávy CAN je 0x120 ~ 0x123 (hodnota AccMask 0x600000 znamená, že kromě bitů 0 ~ bit1 jsou relevantní další bity (bit2 ~ bit10). Poznámka: Toto nastavení filtru napřampdo standardního rámu, napřample, vysoký 11-bit je platný bit; v případě rozšířeného rámce a pak je platné ID 29bitové. AccCode a AccMask nastaví jako platný bit vysokou hodnotu 29 bitů! |
|
pInitConfig->Reserved | Rezervováno |
pInitConfig->Filtr | Nastavení režimu filtrování naleznete v části tabulky režimů filtrování. |
pInitConfig->Časování0 | Nastavení přenosové rychlosti T0 |
pInitConfig->Časování1 | Nastavení přenosové rychlosti T1 |
pInitConfig->Mode | Provozní režim: 0-normální provoz 1-Režim pouze pro poslech 2-spontánní testovací režim přijetí a odeslání (tato hodnota je vyloučena z knihovny funkcí ZLG) |
Tabulka režimů filtrování:
Hodnota | Jméno | Popis |
1 | Přijímat všechny typy | Vhodné pro standardní i prodloužený rám! |
2 | Přijměte pouze standardní rám | Vhodné pro standardní rám a prodloužené |
rám bude odstraněn přímo filtrací! | ||
3 | Přijměte pouze prodloužený rám | Vhodné pro prodloužený rám a standardní rám bude odstraněn přímo filtrace! . |
Vrácení:
Návratová hodnota = 1, což znamená, že operace byla úspěšná; = 0 znamená, že operace selhala; = -1 znamená, že zařízení neexistuje.
Např
2.2.4. VCI_READBOARDINFO
Tato funkce se používá ke čtení informací o hardwaru adaptéru. Obecně lze říci, že to lze ignorovat.
DWORD __stdcall VCI_ReadBoardInfo(DWORD DevType,DWORD
DevIndex,PVCI_BOARD_INFO pInfo);
Parametry:
DevType
Typ zařízení. Viz: Definice typu zařízení adaptéru.
DevIndex
Index zařízení, napřample, pokud existuje pouze jeden adaptér USB-CAN, indexové číslo je 0, pokud existuje více adaptérů USB-CAN, indexová čísla ve vzestupném pořadí začínající od 0. pInfo
VCI_BOARD_INFO se používá k uložení ukazatele struktury informací o zařízení.
Vrácení:
Návratová hodnota = 1, což znamená, že operace byla úspěšná; = 0 znamená, že operace selhala; = -1 znamená, že zařízení neexistuje.
2.2.5. VCI_GetReceiveNum
Tato funkce se používá k určení přijatých, ale nepřečtených rámců v určené přijímací vyrovnávací paměti.
DWORD __stdcall VCI_GetReceiveNum(DWORD DevType,DWORD DevIndex,DWORD CANindex);
Parametry:
DevType
Typ zařízení. Viz: Definice typu zařízení adaptéru.
DevIndex
Index zařízení, napřampPokud existuje pouze jeden adaptér USB-CAN, indexové číslo je 0, pokud existuje více adaptérů USB-CAN, indexová čísla ve vzestupném pořadí začínající od 0.
CANindex
Index kanálu CAN.
Vrácení:
Vrátit snímky, které ještě nebyly přečteny.
Např
#include “ControlCan.h” int ret=VCI_GetReceiveNum(2,0,0);
2.2.6. VCI_ClearBuffer
Tato funkce se používá k vymazání přijímací a odesílací vyrovnávací paměti určeného kanálu specifikovaného pomocí
USB-CAN adaptér.
DWORD __stdcall VCI_ClearBuffer(DWORD DevType,DWORD DevIndex,DWORD CANindex);
Parametry:
DevType
Typ zařízení. Viz: Definice typu zařízení adaptéru.
DevIndex
Index zařízení, napřampPokud existuje pouze jeden adaptér USB-CAN, indexové číslo je 0, pokud existuje více adaptérů USB-CAN, indexová čísla ve vzestupném pořadí začínající od 0.
CANindex
Index kanálu CAN.
Vrácení:
Návratová hodnota = 1, což znamená, že operace byla úspěšná; = 0 znamená, že operace selhala; = -1 znamená, že zařízení neexistuje.
2.2.7. VCI_STARTCAN
Tato funkce se používá ke spuštění řadiče CAN a funkce interního příjmu přerušení adaptéru.
DWORD __stdcall VCI_StartCAN(DWORD DevType,DWORD DevIndex,DWORD CANindex);
Parametry:
DevType
Typ zařízení. Viz: Definice typu zařízení adaptéru.
DevIndex
Index zařízení, napřample, pokud existuje pouze jeden adaptér USB-CAN, indexové číslo je 0, pokud existuje více adaptérů USB-CAN, indexová čísla ve vzestupném pořadí začínající od 0.
CANindex
Index kanálu CAN.
Vrácení:
Návratová hodnota = 1, což znamená, že operace byla úspěšná; = 0 znamená, že operace selhala; = -1 znamená, že zařízení neexistuje.
2.2.8. VCI_ResetCAN
Tato funkce se používá k resetování ovladače CAN.
DWORD __stdcall VCI_ResetCAN(DWORD DevType,DWORD DevIndex,DWORD CANindex);
Parametry:
DevType
Typ zařízení. Viz: Definice typu zařízení adaptéru.
DevIndex
Index zařízení, napřample, pokud existuje pouze jeden adaptér USB-CAN, indexové číslo je 0, pokud existuje více adaptérů USB-CAN, indexová čísla ve vzestupném pořadí začínající od 0.
CANindex
Index kanálu CAN.
Vrácení:
Návratová hodnota = 1, což znamená, že operace byla úspěšná; = 0 znamená, že operace selhala; = -1 znamená, že zařízení neexistuje.
2.2.9. VCI_Transmit
Tato funkce se používá k odeslání rámce zprávy CAN.
DWORD __stdcall VCI_Transmit(DWORD DeviceType,DWORD DeviceInd,DWORD CANInd,PVCI_CAN_OBJ pSend,DWORD Length);
Parametry:
DevType
Typ zařízení. Viz: Definice typu zařízení adaptéru.
DevIndex
Index zařízení, napřample, pokud existuje pouze jeden adaptér USB-CAN, indexové číslo je 0, pokud existuje více adaptérů USB-CAN, indexová čísla ve vzestupném pořadí začínající od 0.
CANindex
Index kanálu CAN. pOdeslat
První adresa polí datových rámců, která mají být odeslána.
Délka
Počet datových rámců, které je třeba odeslat, maximální počet je 1000, doporučená hodnota je 48 při vysoké rychlosti.
Vrácení:
Vrátí skutečný počet již odeslaných rámců, vrácená hodnota = -1 znamená chybu zařízení.
Např
2.2.10. VCI_Receive
Tato funkce se používá k vyžádání příjmu.
DWORD __stdcall VCI_Receive(DWORD DevType, DWORD DevIndex, DWORD CANindex, PVCI_CAN_OBJ pReceive, ULONG Len, INT WaitTime);
Parametry:
DevType
Typ zařízení. Viz: Definice typu zařízení adaptéru.
DevIndex
Index zařízení, napřample, pokud existuje pouze jeden adaptér USB-CAN, indexové číslo je 0, pokud existuje více adaptérů USB-CAN, indexová čísla ve vzestupném pořadí začínající od 0.
CANindex
Index kanálu CAN.
pPřijmout
Pro příjem prvního nastaveného ukazatele datových rámců.
Len
Délka pole datového rámce musí být větší než 2500, aby se vrátila normální zpráva.
V opačném případě bude návratová délka nulová bez ohledu na to, zda je zpráva přijata nebo ne. adaptér nastavil vyrovnávací paměť 2000 snímků pro každý kanál. Na základě vlastního systému a pracovního prostředí si uživatel může vybrat vhodnou délku pole od 2500.
Čekací doba vyhrazena.
Vrácení:
Vrátí počet snímků, které byly skutečně přečteny, -1 označuje chyby zařízení.
Např
ČÁST TŘETÍ DALŠÍ POPIS FUNKCÍ A DATOVÉ STRUKTURY
Tato kapitola popisuje další datové typy a funkce nekompatibilní knihovny rozhraní ZLG obsažené v knihovně rozhraní adaptéru USB-CAN ControlCAN.dll. Prosím, udělejte to
nevolat tyto funkce, pokud použijete kompatibilní model ZLG pro sekundární vývoj, aby nebyla ovlivněna kompatibilita.
3.1 POPIS FUNKCE
3.1.1. VCI_UsbDeviceReset
Resetujte adaptér USB-CAN, po resetování je třeba znovu otevřít zařízení pomocí VCI_OpenDevice.
DWORD __STDCALL VCI_USBDEVICERESET (DWORD DEVTYPE, DWORD Devindex, DWORD vyhrazeno
Parametry:
DevType
Typ zařízení. Viz: Definice typu zařízení adaptéru.
DevIndex
Index zařízení, napřample, pokud existuje pouze jeden adaptér USB-CAN, indexové číslo je 0, pokud existuje více adaptérů USB-CAN, indexová čísla ve vzestupném pořadí začínající od 0.
Rezervováno Rezervováno.
Vrácení:
Návratová hodnota = 1, což znamená, že operace byla úspěšná; = 0 znamená, že operace selhala; = -1 znamená, že zařízení neexistuje.
bRel = VCI_UsbDeviceReset(nDeviceType, Nezávislost, 0);
3.1.2. VCI_FindUsbDevice2
Když stejný počítač používá více USB-CAN, může uživatel použít tuto funkci k nalezení aktuálního zařízení.
DWORD __stdcall VCI_FindUsbDevice2(PVCI_BOARD_INFO pInfo);
Parametry:
pInfo
pInfo se používá k uložení parametrů prvního ukazatele adresy vyrovnávací paměti dat.
Návraty
Vraťte číslo adaptéru USB-CAN zapojeného do počítače.
Část čtvrtá Funkce knihovny rozhraní pomocí procesu
Abychom znásobili funkce zařízení, poskytli jsme další funkce (funkce zobrazené se zeleným pozadím), tyto funkce zahrnují: VCI_FindUsbDevice2 VCI_UsbDeviceReset. Během druhého vývoje tyto funkce nemusí být nutně vyvolány. I když jsou tyto funkce ignorovány, lze dosáhnout všech funkcí adaptéru USB-CAN.
www.waveshare.com
www.waveshare.com/wiki
Dokumenty / zdroje
![]() |
Knihovna rozhraní adaptéru rozhraní sběrnice WAVESHARE USB-CAN [pdfNávod k obsluze Knihovna rozhraní adaptéru rozhraní sběrnice USB-CAN, USB-CAN, knihovna rozhraní adaptéru rozhraní sběrnice, knihovna funkcí rozhraní, knihovna funkcí |