USB-CAN busz interfész
Adapter interfész funkció
A könyvtár használati utasítása
ELSŐ RÉSZ VÉGEVIEW
Ha a felhasználó csak USB-CAN busz interfész adaptert használ a CAN busz kommunikációs teszthez, majd közvetlenül használhatja a mellékelt USB-CAN Tool szoftvert a teszt adatainak küldésére és fogadására.
Ha a felhasználó saját termékeihez kíván szoftvert írni. Kérjük, figyelmesen olvassa el az alábbi utasításokat, és hivatkozzon a sampáltalunk biztosított kód:
⑴ C++Builder ⑵C# ⑶VC ⑷VB ⑸VB.NET ⑹Delphi ⑺LabVIEW ⑻ LabWindows/CVI ⑼Matlab ⑽QT ⑾Python/Python-can.
Könyvtár fejlesztése file :ControlCAN.lib, ControlCAN.DLL
VC verzió függvény deklaráció file :ControlCAN.h
VB verzió függvény deklaráció file: ControlCAN.bas
LaborVIEW verziókönyvtár funkciócsomag modul :ControlCAN.llb
Delphi verziófüggvény deklaráció file: ControlCAN.pas
MÁSODIK RÉSZ KOMPATIBILIS FUNKCIÓKÖNYVTÁR ÉS ADATSZERKEZET
2.1. TÍPUSMEGHATÁROZÁS
2.1.1. Eszköztípus
Típus definíció | Típus érték | Leírás |
DEV_USBCAN2 | 4 | USBCAN-2A/USBCAN-2C/CANalyst-II MiniPCIe-CAN |
2.1.2. VCI_BOARD_INFO
A VCI_BOARD_INFO struktúra USB-CAN sorozatú interfészkártya eszközinformációit tartalmazza.
A szerkezetet a VCI_ReadBoardInfo függvény tölti ki.
Tag:
hw_Version
Hardververziószám, hexadecimális jelölés. Pl. 0x0100 a V1.00.
fw_Version
Hardververziószám, hexadecimális jelölés. Pl. 0x0100 a V1.00.
2. oldal
dr_Version
Illesztőprogram verziószáma, hexadecimális jelölés. Pl. 0x0100 a V1.00.
in_Version
Interfész könyvtár verziószáma, hexadecimális jelölés. Pl. 0x0100 a V1.00.
irq_Num
Rendszer fenntartva.
can_Num
A CAN csatornák teljes számát jelenti.
str_Serial_Num
Ennek a kártyalapnak a sorozatszáma.
str_hw_Típus
Hardvertípus, például „USBCAN V1.00” (Megjegyzés: Tartalmazza a „\0” karakterlánc-lezárót).
Fenntartott
Rendszer fenntartva.
2.1.3. VCI_CAN_OBJ
A VCI_Transmit és VCI_Receive függvényekben a VCI_CAN_OBJ struktúra a CAN üzenetkeret továbbítására szolgál.
Tag:
ID
Üzenetazonosító. Közvetlen azonosító formátum, jobbra igazítva, lásd: XNUMX. melléklet: Azonosítók igazításának részletei.
TimeStamp
A sztamp információ az időkeretről, a kezdési időzítés a CAN vezérlő inicializálásakor, a mértékegység 0. 1ms.
TimeFlag
Ami azt illeti, hogy használja-e az időt stamp, 1 az effektív TimeStamp. TimeFlag és TimeStamp csak akkor van értelme, ha a keretet megkapja.
SendType
Küldés típusa. A = 0 a normál típust, az = 1 az egyszeri küldést jelöli.
RemoteFlag
Legyen szó távoli zászlóról. = 1 távoli jelzőt, = 0 adatjelzőt jelöl.
Extern Flag
Legyen szó külső zászlóról. Az = 1 a külső jelzőt, a = 0 a szabványos jelzőt jelöli.
DataLen
Adathossz (<=8) ,azaz az adatok hossza.
Adat
Csomag adat.
Fenntartott
Rendszer fenntartva.
2.1.4. VCI_INIT_CONFIG
A VCI_INIT_CONFIG struktúra határozza meg a CAN inicializálási konfigurációját. A struktúra a VCI_InitCan függvényben lesz kitöltve.
Tag:
AccCode
Szűrt elfogadó kód fogadása.
AccMask
Szűrőmaszk fogadása.
Fenntartott
Fenntartott.
Szűrő
A 0-3 beállítási tartományt lehetővé tevő szűrési módszer a részletekért lásd a szűrőmód táblázat 2.2.3. szakaszát.
Időzítés0
SJA1000 Adatátviteli sebesség paraméter, Timing0 (BTR0) .
Időzítés1
SJA1000 Adatátviteli sebesség paraméter, Timing1 (BTR1) .
Mód
Üzemmód, 0 = normál működés, 1 = csak hallható üzemmód, 2 = spontán felvétel és küldési teszt mód.
Megjegyzések:
A szűrőbeállításokról lásd: II. melléklet: A CANparaméter beállítási útmutatója.
A CAN Timing0 és Timing1 az adatátviteli sebesség beállítására szolgál, ez a két paraméter csak az inicializálásnál használatos.tage.
Hagyományos Baud referencia táblázat:
CAN Baud sebesség | Időzítés0 (BTR0) | Időzítés1 (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 |
- A felhasználóknak csak az SJA1000-t (16 MHz) kell követniük az adatátviteli sebesség paraméter beállításához.
- Az adapter átmenetileg nem támogatja a 10K alatti adatátviteli sebességet.
2.2. FUNKCIÓ LEÍRÁS
2.2.1. VCI_OpenDevice
Ez a funkció eszközök csatlakoztatására szolgál.
DWORD __stdcall VCI_OpenDevice(DWORD DevType,DWORD DevIndex,DWORD fenntartva);
Paraméterek:
DevType
Eszköztípus. Lásd: Adapter eszköztípus meghatározása.
DevIndex
Eszközindex, plample, ha csak egy USB-CAN adapter van, az indexszám 0, ha több USB-CAN adapter van, az indexszámok 0-tól kezdődő növekvő sorrendben.
Fenntartott
Megőrzési paraméterek, töltsön be 0-t.
Visszaküldés:
Visszatérési érték = 1, ami azt jelenti, hogy a művelet sikeres volt; = 0 azt jelzi, hogy a művelet sikertelen volt; = -1 azt jelzi, hogy az eszköz nem létezik.
2.2.2. VCI_CloseDevice
Ez a funkció a kapcsolat lezárására szolgál.
DWORD __stdcall VCI_CloseDevice(DWORD DevType,DWORD DevIndex);
Paraméterek:
DevType
Eszköztípus. Lásd: Adapter eszköztípus meghatározása.
DevIndex
Eszközindex, plample, ha csak egy USB-CAN adapter van, az indexszám 0, ha több USB-CAN adapter van, az indexszámok 0-tól kezdődő növekvő sorrendben.
Visszaküldés:
Visszatérési érték = 1, ami azt jelenti, hogy a művelet sikeres volt; = 0 azt jelzi, hogy a művelet sikertelen volt; = -1 azt jelzi, hogy az eszköz nem létezik.
2.2.3. VCI_InitCan
Ez a funkció a megadott CAN inicializálására szolgál.
DWORD __stdcall VCI_InitCAN(DWORD DevType, DWORD DevIndex, DWORD CANIndex,
PVCI_INIT_CONFIG pInitConfig);
Paraméterek:
DevType
Eszköztípus. Lásd: Adapter eszköztípus meghatározása.
DevIndex
Eszközindex, plample, ha csak egy USB-CAN adapter van, az indexszám 0, ha több USB-CAN adapter van, az indexszámok 0-tól kezdődő növekvő sorrendben.
CANIndex
CAN csatorna index, például ha csak egy CAN csatorna van, az index száma 0, ha kettő van, az indexszám 0 vagy 1 lehet.
pInitConfig
Inicializálási paraméter szerkezete. A tagok paraméterlistája:
Tag | Funkcionális leírás |
pInitConfig->AccCode | Az AccCode és az AccMask együtt tudja meghatározni, hogy mely csomagok fogadhatók el. Ez a két regiszter az azonosító balra igazítására szolgál, vagyis az AccCode legmagasabb bitje (Bit31) és az AccMask az ID érték legmagasabb bitjéhez igazodik. |
pInitConfig->AccMask | Az azonosító igazítással kapcsolatban lásd a mellékleteket: I. melléklet: Az azonosító igazítás részletei. Pl.: Ha az AccCode értékét 0x24600000-ra állítja (azaz a 0x123 21 bittel balra van tolva), az AccMask értéke értéke 0x00000000, és akkor csak a 0x123-as CAN üzenet keret azonosítójú csomagok fogadhatók el (a 0x00000000 AccMask értéke azt jelzi, hogy minden bit releváns |
bitek). Ha az AccCode értéke 0x24600000, akkor az AccMask értéke 0x600000 (a 0x03 21 bittel balra tolódik), és akkor csak a 0x120 ~ 0x123 CAN üzenet keretazonosítójú csomagok fogadhatók el (AccMask érték A 0x600000 azt jelzi, hogy a bit0 ~ bit1 mellett más bitek (bit2 ~ bit10) is relevánsak. Jegyzet: Ez a szűrőbeállítás plample a szabványos keretre, plample, high 11-bit az érvényes bit; kiterjesztett keret esetén, és ekkor az érvényes azonosító 29 bites. Az AccCode és az AccMask 29 bitet állít be érvényes bitként! |
|
pInitConfig->Fenntartva | fenntartott |
pInitConfig->Szűrő | A szűrési mód beállításait lásd a szűrési mód táblázatának szakaszában. |
pInitConfig->Timing0 | Baud rateT0 beállítás |
pInitConfig->Timing1 | Baud rateT1 beállítás |
pInitConfig->Mode | Működési mód: 0 - normál működés 1-Csak hallható mód 2-spontán felvételi és küldési teszt mód (ez az érték nem szerepel a ZLG függvénykönyvtárban) |
Szűrési mód táblázat:
Érték | Név | Leírás |
1 | Minden típus fogadása | Szabványos és bővített vázhoz egyaránt használható! |
2 | Csak szabványos keret fogadása | Alkalmas szabványos vázra és meghosszabbítva |
a keretet közvetlenül szűréssel távolítják el! | ||
3 | Csak kiterjesztett keret fogadása | Alkalmas meghosszabbított kerethez, és a szabványos keret eltávolításra kerül közvetlen szűrés! . |
Visszaküldés:
Visszatérési érték = 1, ami azt jelenti, hogy a művelet sikeres volt; = 0 azt jelzi, hogy a művelet sikertelen volt; = -1 azt jelzi, hogy az eszköz nem létezik.
Például
2.2.4. VCI_ReadBoardInfo
Ez a funkció az adapter hardverinformációinak olvasására szolgál. Általánosságban elmondható, hogy figyelmen kívül hagyható.
DWORD __stdcall VCI_ReadBoardInfo(DWORD DevType,DWORD
DevIndex,PVCI_BOARD_INFO pInfo);
Paraméterek:
DevType
Eszköztípus. Lásd: Adapter eszköztípus meghatározása.
DevIndex
Eszközindex, plample, ha csak egy USB-CAN adapter van, az indexszám 0, ha több USB-CAN adapter van, az indexszámok 0-tól kezdődő növekvő sorrendben. pInfo
A VCI_BOARD_INFO eszköz információs szerkezeti mutató tárolására szolgál.
Visszaküldés:
Visszatérési érték = 1, ami azt jelenti, hogy a művelet sikeres volt; = 0 azt jelzi, hogy a művelet sikertelen volt; = -1 azt jelzi, hogy az eszköz nem létezik.
2.2.5. VCI_GetReceiveNum
Ez a funkció a fogadott, de még nem olvasott keretek meghatározására szolgál a kijelölt vételi pufferben.
DWORD __stdcall VCI_GetReceiveNum(DWORD DevType,DWORD DevIndex,DWORD CANIndex);
Paraméterek:
DevType
Eszköztípus. Lásd: Adapter eszköztípus meghatározása.
DevIndex
Eszközindex, plample, ha csak egy USB-CAN adapter van, az indexszám 0, ha több USB-CAN adapter van, az indexszámok 0-tól kezdődő növekvő sorrendben.
CANIndex
CAN csatorna index.
Visszaküldés:
A még el nem olvasott kereteket adja vissza.
Például
#include “ControlCan.h” int ret=VCI_GetReceiveNum(2,0,0);
2.2.6. VCI_ClearBuffer
Ez a funkció a által megadott kijelölt csatorna vételi és küldési pufferének törlésére szolgál
USB-CAN adapter.
DWORD __stdcall VCI_ClearBuffer(DWORD DevType,DWORD DevIndex,DWORD CANIndex);
Paraméterek:
DevType
Eszköztípus. Lásd: Adapter eszköztípus meghatározása.
DevIndex
Eszközindex, plample, ha csak egy USB-CAN adapter van, az indexszám 0, ha több USB-CAN adapter van, az indexszámok 0-tól kezdődő növekvő sorrendben.
CANIndex
CAN csatorna index.
Visszaküldés:
Visszatérési érték = 1, ami azt jelenti, hogy a művelet sikeres volt; = 0 azt jelzi, hogy a művelet sikertelen volt; = -1 azt jelzi, hogy az eszköz nem létezik.
2.2.7. VCI_StartCAN
Ez a funkció a CAN vezérlő és az adapter belső megszakítás vételi funkciójának elindítására szolgál.
DWORD __stdcall VCI_StartCAN(DWORD DevType,DWORD DevIndex,DWORD CANIndex);
Paraméterek:
DevType
Eszköztípus. Lásd: Adapter eszköztípus meghatározása.
DevIndex
Eszközindex, plample, ha csak egy USB-CAN adapter van, az indexszám 0, ha több USB-CAN adapter van, az indexszámok 0-tól kezdődő növekvő sorrendben.
CANIndex
CAN csatorna index.
Visszaküldés:
Visszatérési érték = 1, ami azt jelenti, hogy a művelet sikeres volt; = 0 azt jelzi, hogy a művelet sikertelen volt; = -1 azt jelzi, hogy az eszköz nem létezik.
2.2.8. VCI_ResetCAN
Ez a funkció a CAN vezérlő visszaállítására szolgál.
DWORD __stdcall VCI_ResetCAN(DWORD DevType,DWORD DevIndex,DWORD CANIndex);
Paraméterek:
DevType
Eszköztípus. Lásd: Adapter eszköztípus meghatározása.
DevIndex
Eszközindex, plample, ha csak egy USB-CAN adapter van, az indexszám 0, ha több USB-CAN adapter van, az indexszámok 0-tól kezdődő növekvő sorrendben.
CANIndex
CAN csatorna index.
Visszaküldés:
Visszatérési érték = 1, ami azt jelenti, hogy a művelet sikeres volt; = 0 azt jelzi, hogy a művelet sikertelen volt; = -1 azt jelzi, hogy az eszköz nem létezik.
2.2.9. VCI_Transmit
Ez a funkció a CAN üzenetkeret küldésére szolgál.
DWORD __stdcall VCI_Transmit(DWORD eszköztípus,DWORD eszközInd,DWORD CANInd,PVCI_CAN_OBJ pSend,DWORD hossza);
Paraméterek:
DevType
Eszköztípus. Lásd: Adapter eszköztípus meghatározása.
DevIndex
Eszközindex, plample, ha csak egy USB-CAN adapter van, az indexszám 0, ha több USB-CAN adapter van, az indexszámok 0-tól kezdődő növekvő sorrendben.
CANIndex
CAN csatorna index. pSend
Az elküldendő adatkeret tömbök első címe.
Hossz
Az elküldendő adatkeretek száma, maximum 1000, az ajánlott érték nagy sebesség mellett 48.
Visszaküldés:
A már elküldött képkockák tényleges számát adja vissza, a visszatérési érték = -1 eszközhibát jelez.
Például
2.2.10. VCI_Fogadás
Ez a funkció a vétel kérésére szolgál.
DWORD __stdcall VCI_Receive(DWORD DevType, DWORD DevIndex, DWORD CANIndex, PVCI_CAN_OBJ pReceive, ULONG Len, INT várakozási idő);
Paraméterek:
DevType
Eszköztípus. Lásd: Adapter eszköztípus meghatározása.
DevIndex
Eszközindex, plample, ha csak egy USB-CAN adapter van, az indexszám 0, ha több USB-CAN adapter van, az indexszámok 0-tól kezdődő növekvő sorrendben.
CANIndex
CAN csatorna index.
pFogadás
Az adatkeretek első beállított mutatójának fogadása.
Len
Az adatkeret tömbhosszának 2500-nál nagyobbnak kell lennie ahhoz, hogy normál üzenetet adjon vissza.
Ellenkező esetben a visszaküldés hossza nulla lesz, függetlenül attól, hogy az üzenetet megkapták-e vagy sem. az adapter 2000 képkocka puffert állított be minden csatornához. A felhasználó saját rendszere és munkakörnyezete alapján kiválaszthatja a megfelelő tömbhosszt 2500-tól.
Várakozási idő fenntartva.
Visszaküldés:
A ténylegesen beolvasott képkockák számát adja vissza, a -1 az eszközhibákat jelzi.
Például
HARMADIK RÉSZ EGYÉB FUNKCIÓK ÉS AZ ADATSZERKEZET LEÍRÁSA
Ez a fejezet a ControlCAN.dll USB-CAN adapter interfész könyvtárában található inkompatibilis ZLG interfész könyvtár egyéb adattípusait és funkcióit írja le. Kérjük, tegye
ne hívja meg ezeket a függvényeket, ha kompatibilis ZLG-modellt használ a másodlagos fejlesztéshez, hogy ne befolyásolja a kompatibilitást.
3.1 FUNKCIÓLEÍRÁS
3.1.1. VCI_UsbDeviceReset
Az USB-CAN adapter alaphelyzetbe állítása, újra kell nyitnia az eszközt a VCI_OpenDevice használatával.
DWORD __stdcall VCI_UsbDeviceReset(DWORD DevType,DWORD DevIndex,DWORD fenntartva
Paraméterek:
DevType
Eszköztípus. Lásd: Adapter eszköztípus meghatározása.
DevIndex
Eszközindex, plample, ha csak egy USB-CAN adapter van, az indexszám 0, ha több USB-CAN adapter van, az indexszámok 0-tól kezdődő növekvő sorrendben.
Fenntartva Fenntartva.
Visszaküldés:
Visszatérési érték = 1, ami azt jelenti, hogy a művelet sikeres volt; = 0 azt jelzi, hogy a művelet sikertelen volt; = -1 azt jelzi, hogy az eszköz nem létezik.
bRel = VCI_UsbDeviceReset(nDeviceType, Independence, 0);
3.1.2. VCI_FindUsbDevice2
Ha ugyanaz a számítógép több USB-CAN-t használ, a felhasználó ezt a funkciót használhatja az aktuális eszköz megkeresésére.
DWORD __stdcall VCI_FindUsbDevice2(PVCI_BOARD_INFO pInfo);
Paraméterek:
pInfo
A pInfo az első adatpuffer címmutató paramétereinek tárolására szolgál.
Visszatér
Adja vissza a számítógéphez csatlakoztatott USB-CAN adapter számát.
Negyedik rész Interfész könyvtári funkciók a folyamat használatával
Az eszköz funkcióinak megsokszorozásához további funkciókat biztosítunk (zöld háttérrel megjelenített függvények), ezek a következők: VCI_FindUsbDevice2 VCI_UsbDeviceReset. A második fejlesztés során ezeket a funkciókat nem feltétlenül kell meghívni. Még ezeket a funkciókat is figyelmen kívül hagyja, az összes USB-CAN adapter funkció elérhető.
www.waveshare.com
www.waveshare.com/wiki
Dokumentumok / Források
![]() |
WAVESHARE USB-CAN Bus Interface Adapter Interfész Funkciókönyvtár [pdf] Használati utasítás USB-CAN busz interfész adapter interfész funkciókönyvtár, USB-CAN, busz interfész adapter interfész funkciókönyvtár, interfész funkció könyvtár, funkciókönyvtár |