WAVESHARE logotipasUSB-CAN magistralės sąsaja
Adapterio sąsajos funkcija
Bibliotekos vartotojo instrukcijaWAVESHARE USB CAN magistralės sąsajos adapterio sąsajos funkcijų biblioteka

PIRMA DALIS BAIGTAVIEW

Jei vartotojas tiesiog naudoja USB-CAN magistralės sąsajos adapterį, kad galėtų atlikti CAN magistralės ryšio testą, tada jis gali tiesiogiai naudoti pridedamą USB-CAN Tool programinę įrangą, kad išsiųstų ir gautų testo duomenis.
Jei vartotojas ketina parašyti programinę įrangą savo produktams. Atidžiai perskaitykite šias instrukcijas ir remkitės sampmes suteikiame kodą:
⑴ C++ kūrėjas ⑵C# ⑶VC ⑷VB ⑸VB.NET ⑹Delphi ⑺LabVIEW ⑻ LabWindows/CVI ⑼Matlab ⑽QT ⑾Python/Python-can.
Sukurti biblioteką file :ControlCAN.lib, ControlCAN.DLL
VC versijos funkcijos deklaracija file :ControlCAN.h
VB versijos funkcijos deklaracija file: ControlCAN.bas
LabVIEW versijos bibliotekos funkcijų paketo modulis: ControlCAN.llb
Delphi versijos funkcijos deklaracija file: ControlCAN.pas

ANTRA DALIS SUDERINAMA FUNKCIJŲ BIBLIOTEKA IR DUOMENŲ STRUKTŪRA

2.1. TIPO APIBRĖŽIMAS
2.1.1. Įrenginio tipas

Tipo apibrėžimas Tipo reikšmė Aprašymas
DEV_USBCAN2 4 USBCAN-2A/USBCAN-2C/CANalyst-II MiniPCIe-CAN

2.1.2. VCI_BOARD_INFO
VCI_BOARD_INFO struktūroje yra USB-CAN serijos sąsajos kortelės įrenginio informacija.
Struktūra bus užpildyta funkcija VCI_ReadBoardInfo.

WAVESHARE USB CAN magistralės sąsajos adapterio sąsajos funkcijų biblioteka – 1 pav

Narys:
hw_Version
Aparatinės įrangos versijos numeris, šešioliktainis žymėjimas. Pvz., 0x0100 reiškia V1.00.
fw_Version
Aparatinės įrangos versijos numeris, šešioliktainis žymėjimas. Pvz., 0x0100 reiškia V1.00.
2 psl
dr_Version

Tvarkyklės versijos numeris, šešioliktainis žymėjimas. Pvz., 0x0100 reiškia V1.00.
in_Version
Sąsajos bibliotekos versijos numeris, šešioliktainis žymėjimas. Pvz., 0x0100 reiškia V1.00.
irq_Num
Sistema rezervuota.
can_Num
Nurodo bendrą CAN kanalų skaičių.
str_Serial_Num
Šios lentos kortelės serijos numeris.
str_hw_Tipas
Aparatinės įrangos tipas, pvz., „USBCAN V1.00“ (Pastaba: apima eilutės terminą „\0“).
Rezervuota
Sistema rezervuota.
2.1.3. VCI_CAN_OBJ
Funkcijose VCI_Transmit ir VCI_Receive, CAN pranešimų kadrui perduoti naudojama VCI_CAN_OBJ struktūra.

WAVESHARE USB CAN magistralės sąsajos adapterio sąsajos funkcijų biblioteka – pav

Narys:
ID
Pranešimo identifikatorius. Tiesioginis ID formatas, sulygiuotas dešinėje, žr.: Pirmas priedas: ID lygiavimo informacija.
TimeStamp
Priimant švamp informacija apie laiko tarpą, pradžios laikas, kai CAN valdiklis inicijuojamas, vienetas yra 0. 1ms.
Laiko vėliavėlė
Kalbant apie tai, ar naudoti laiką švamp, 1 yra efektyvus TimeStamp. TimeFlag ir TimeStamp yra prasmingi tik tada, kai gaunamas kadras.
SendType
Siuntimo tipas. = 0 reiškia įprastą tipą, = 1 reiškia vieną siuntimą.
Nuotolinė vėliavėlė
Nesvarbu, ar tai nuotolinė vėliava. = 1 rodo nuotolinę vėliavėlę, = 0 nurodo duomenų vėliavėlę.
Išorinė vėliava
Nesvarbu, ar tai išorinė vėliava. = 1 žymi išorinę vėliavėlę, = 0 – standartinę vėliavėlę.
DataLen
Duomenų ilgis (<=8) , tai yra duomenų ilgis.
Duomenys
Paketiniai duomenys.
Rezervuota
Sistema rezervuota.
2.1.4. VCI_INIT_CONFIG
VCI_INIT_CONFIG struktūra apibrėžia CAN inicijavimo konfigūraciją. Struktūra bus užpildyta funkcija VCI_InitCan.

WAVESHARE USB CAN magistralės sąsajos adapterio sąsajos funkcijų biblioteka – 2 pav

Narys:
AccCode
Gaukite filtruotą priėmimo kodą.
AccMask
Gaukite filtro kaukę.
Rezervuota
Rezervuota.
Filtruoti
Filtravimo metodas, leidžiantis nustatyti diapazoną 0–3, išsamesnės informacijos ieškokite filtro režimų lentelės 2.2.3 skyriuje.
Laikas 0
SJA1000 Prasidėjimo greičio parametras, Timing0 (BTR0) .
Laikas 1
SJA1000 Prasidėjimo greičio parametras, Timing1 (BTR1) .
Režimas
Darbo režimas, 0 = normalus veikimas, 1 = tik klausymo režimas, 2 = spontaniškas priėmimas ir siuntimo bandymo režimas.
Pastabos:
Apie filtro nustatymus skaitykite: II priedas: CANparametro nustatymo instrukcijos.
CAN Timing0 ir Timing1 naudojami duomenų perdavimo spartai nustatyti, šie du parametrai naudojami tik inicijuojanttage.
Įprasta Baud atskaitos lentelė:

CAN Baud norma Laikas0 (BTR0) Laikas1 (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
  1. Vartotojams tereikia vadovautis SJA1000 (16MHz), kad nustatytų perdavimo spartos parametrą.
  2. Adapteris laikinai nepalaiko mažesnio nei 10 XNUMX perdavimo spartos.

2.2. FUNKCIJOS APRAŠYMAS
2.2.1. VCI_OpenDevice
Ši funkcija naudojama prietaisams prijungti.
DWORD __stdcall VCI_OpenDevice(DWORD DevType,DWORD DevIndex,DWORD rezervuotas);
Parametrai:
DevType
Įrenginio tipas. Žr.: Adapterio įrenginio tipo apibrėžimas.
DevIndex
Įrenginio indeksas, pvzample, kai yra tik vienas USB-CAN adapteris, indekso numeris yra 0, kai yra keli USB-CAN adapteriai, indekso numeriai didėjančia tvarka, pradedant nuo 0.
Rezervuota
Išlaikymo parametrai, įveskite 0.
Grąžinimai:
Grąžinama reikšmė = 1, o tai reiškia, kad operacija sėkminga; = 0 rodo, kad operacija nepavyko; = -1 reiškia, kad įrenginio nėra.

WAVESHARE USB CAN magistralės sąsajos adapterio sąsajos funkcijų biblioteka – 3 pav

2.2.2. VCI_CloseDevice
Ši funkcija naudojama ryšiui uždaryti.
DWORD __stdcall VCI_CloseDevice(DWORD DevType,DWORD DevIndex);
Parametrai:
DevType
Įrenginio tipas. Žr.: Adapterio įrenginio tipo apibrėžimas.
DevIndex
Įrenginio indeksas, pvzample, kai yra tik vienas USB-CAN adapteris, indekso numeris yra 0, kai yra keli USB-CAN adapteriai, indekso numeriai didėjančia tvarka, pradedant nuo 0.
Grąžinimai:
Grąžinama reikšmė = 1, o tai reiškia, kad operacija sėkminga; = 0 rodo, kad operacija nepavyko; = -1 reiškia, kad įrenginio nėra.

WAVESHARE USB CAN magistralės sąsajos adapterio sąsajos funkcijų biblioteka – 4 pav

2.2.3. VCI_InitCan
Ši funkcija naudojama inicijuoti nurodytą CAN.
DWORD __stdcall VCI_InitCAN(DWORD DevType, DWORD DevIndex, DWORD CANIndex,
PVCI_INIT_CONFIG pInitConfig);

Parametrai:
DevType
Įrenginio tipas. Žr.: Adapterio įrenginio tipo apibrėžimas.
DevIndex
Įrenginio indeksas, pvzample, kai yra tik vienas USB-CAN adapteris, indekso numeris yra 0, kai yra keli USB-CAN adapteriai, indekso numeriai didėjančia tvarka, pradedant nuo 0.
CANindeksas
CAN kanalo indeksas, pvz., kai yra tik vienas CAN kanalas, indekso numeris yra 0, jei yra du, indekso numeris gali būti 0 arba 1.
pInitConfig
Inicijavimo parametrų struktūra. Parametrų narių sąrašas:

narys Funkcinis aprašymas
pInitConfig->AccCode AccCode ir AccMask gali dirbti kartu, kad nustatytų, kurie paketai gali būti priimti. Šie du registrai naudojami ID sulygiuoti kairėje pusėje, ty didžiausias AccCode bitas (Bit31), o AccMask suderinamas su aukščiausiu ID reikšmės bitu.
pInitConfig->AccMask Apie ID lygiavimą žr. priedus: I priedas:
ID lygiavimo informacija.
Pvz.: Jei AccCode reikšmę nustatote kaip 0x24600000 (ty 0x123 yra perkeltas į kairę 21 bitu), AccMask reikšmė
yra nustatytas į 0x00000000, tada galima priimti tik paketus, kurių CAN pranešimo kadro ID yra 0x123 (AccMask reikšmė 0x00000000 rodo, kad visi bitai yra svarbūs
bitai). Jei AccCode reikšmė nustatyta į 0x24600000, AccMask reikšmė nustatoma į 0x600000 (0x03 perkeliama į kairę 21 bitu), tada galima priimti tik paketus, kurių CAN pranešimo rėmelio ID yra 0x120 ~ 0x123 (AccMask reikšmė
0x600000 rodo, kad be bit0 ~ bit1 kiti bitai (bit2 ~ bit10) yra svarbūs bitai).
Pastaba: Šis filtro nustatymas pvzampprie standartinio rėmo, pvzample, aukštas 11 bitų yra galiojantis bitas; išplėstinio kadro atveju, tada galiojantis ID yra 29 bitų. „AccCode“ ir „AccMask“ kaip galiojantį bitą nustatė 29 bitus!
pInitConfig->Rezervuota rezervuota
pInitConfig->Filtras Filtravimo režimo nustatymus skaitykite filtro režimų lentelės skyriuje.
pInitConfig->Timing0 Baud rateT0 nustatymas
pInitConfig->Timing1 Baud rateT1 nustatymas
pInitConfig->Mode Darbo režimas:
0 - normalus veikimas
1 – Tik klausymo režimas
2 spontaniško priėmimo ir siuntimo bandymo režimas (ši reikšmė neįtraukta į ZLG funkcijų biblioteką)

Filtro režimo lentelė:

Vertė Vardas Aprašymas
1 Gaukite visų tipų Tinka tiek standartiniam, tiek prailgintam rėmui!
2 Gaukite tik standartinį rėmelį Tinka standartiniam rėmui ir prailgintam
rėmas bus pašalintas tiesiogiai filtruojant!
3 Gaukite tik išplėstinį kadrą Tinka išplėstiniam rėmui, o standartinis rėmas bus pašalintas
tiesioginis filtravimas! .

Grąžinimai:
Grąžinama reikšmė = 1, o tai reiškia, kad operacija sėkminga; = 0 rodo, kad operacija nepavyko; = -1 reiškia, kad įrenginio nėra.
Pvz

WAVESHARE USB CAN magistralės sąsajos adapterio sąsajos funkcijų biblioteka – 4 pav

WAVESHARE USB CAN magistralės sąsajos adapterio sąsajos funkcijų biblioteka – 6 pav

2.2.4. VCI_ReadBoardInfo
Ši funkcija naudojama adapterio aparatinės įrangos informacijai nuskaityti. Apskritai, tai gali būti ignoruojama.
DWORD __stdcall VCI_ReadBoardInfo(DWORD DevType,DWORD
DevIndex,PVCI_BOARD_INFO pInfo);
Parametrai:
DevType
Įrenginio tipas. Žr.: Adapterio įrenginio tipo apibrėžimas.
DevIndex
Įrenginio indeksas, pvzample, kai yra tik vienas USB-CAN adapteris, indekso numeris yra 0, kai yra keli USB-CAN adapteriai, indekso numeriai didėjančia tvarka, pradedant nuo 0. pInfo
VCI_BOARD_INFO naudojamas įrenginio informacijos struktūros žymekliui saugoti.
Grąžinimai:
Grąžinama reikšmė = 1, o tai reiškia, kad operacija sėkminga; = 0 rodo, kad operacija nepavyko; = -1 reiškia, kad įrenginio nėra.

WAVESHARE USB CAN magistralės sąsajos adapterio sąsajos funkcijų biblioteka – 7 pav

2.2.5. VCI_GetReceiveNum
Ši funkcija naudojama nurodytame priėmimo buferyje gautiems, bet nenuskaitytiems kadrams nurodyti.
DWORD __stdcall VCI_GetReceiveNum(DWORD DevType,DWORD DevIndex,DWORD CANIndex);
Parametrai:
DevType
Įrenginio tipas. Žr.: Adapterio įrenginio tipo apibrėžimas.
DevIndex
Įrenginio indeksas, pvzampkai yra tik vienas USB-CAN adapteris, indekso numeris yra 0, kai yra keli USB-CAN adapteriai, indekso numeriai didėjančia tvarka, pradedant nuo 0.
CANindeksas
CAN kanalo indeksas.
Grąžinimai:
Grąžinti dar neskaitytus kadrus.
Pvz
#include "ControlCan.h" int ret=VCI_GetReceiveNum(2,0,0);
2.2.6. VCI_ClearBuffer
Ši funkcija naudojama norint išvalyti nurodyto kanalo priėmimo ir siuntimo buferį
USB-CAN adapteris.
DWORD __stdcall VCI_ClearBuffer(DWORD DevType,DWORD DevIndex,DWORD CANIndex);
Parametrai:
DevType
Įrenginio tipas. Žr.: Adapterio įrenginio tipo apibrėžimas.
DevIndex
Įrenginio indeksas, pvzampkai yra tik vienas USB-CAN adapteris, indekso numeris yra 0, kai yra keli USB-CAN adapteriai, indekso numeriai didėjančia tvarka, pradedant nuo 0.
CANindeksas
CAN kanalo indeksas.
Grąžinimai:
Grąžinama reikšmė = 1, o tai reiškia, kad operacija sėkminga; = 0 rodo, kad operacija nepavyko; = -1 reiškia, kad įrenginio nėra.

WAVESHARE USB CAN magistralės sąsajos adapterio sąsajos funkcijų biblioteka – 8 pav

2.2.7. VCI_StartCAN
Ši funkcija naudojama CAN valdikliui ir adapterio vidinei pertraukų priėmimo funkcijai paleisti.
DWORD __stdcall VCI_StartCAN(DWORD DevType,DWORD DevIndex,DWORD CANIndex);
Parametrai:
DevType
Įrenginio tipas. Žr.: Adapterio įrenginio tipo apibrėžimas.
DevIndex
Įrenginio indeksas, pvzample, kai yra tik vienas USB-CAN adapteris, indekso numeris yra 0, kai yra keli USB-CAN adapteriai, indekso numeriai didėjančia tvarka, pradedant nuo 0.
CANindeksas
CAN kanalo indeksas.
Grąžinimai:
Grąžinama reikšmė = 1, o tai reiškia, kad operacija sėkminga; = 0 rodo, kad operacija nepavyko; = -1 reiškia, kad įrenginio nėra.

WAVESHARE USB CAN magistralės sąsajos adapterio sąsajos funkcijų biblioteka – 9 pav

2.2.8. VCI_ResetCAN
Ši funkcija naudojama CAN valdikliui nustatyti iš naujo.
DWORD __stdcall VCI_ResetCAN(DWORD DevType,DWORD DevIndex,DWORD CANIndex);
Parametrai:
DevType
Įrenginio tipas. Žr.: Adapterio įrenginio tipo apibrėžimas.
DevIndex
Įrenginio indeksas, pvzample, kai yra tik vienas USB-CAN adapteris, indekso numeris yra 0, kai yra keli USB-CAN adapteriai, indekso numeriai didėjančia tvarka, pradedant nuo 0.
CANindeksas
CAN kanalo indeksas.
Grąžinimai:
Grąžinama reikšmė = 1, o tai reiškia, kad operacija sėkminga; = 0 rodo, kad operacija nepavyko; = -1 reiškia, kad įrenginio nėra.

WAVESHARE USB CAN magistralės sąsajos adapterio sąsajos funkcijų biblioteka – 10 pav

2.2.9. VCI_Transmit
Ši funkcija naudojama CAN pranešimo rėmeliui siųsti.
DWORD __stdcall VCI_Transmit(DWORD įrenginio tipas,DWORD įrenginio ind.,DWORD CANInd,PVCI_CAN_OBJ pSend,DWORD ilgis);
Parametrai:
DevType
Įrenginio tipas. Žr.: Adapterio įrenginio tipo apibrėžimas.
DevIndex
Įrenginio indeksas, pvzample, kai yra tik vienas USB-CAN adapteris, indekso numeris yra 0, kai yra keli USB-CAN adapteriai, indekso numeriai didėjančia tvarka, pradedant nuo 0.
CANindeksas
CAN kanalo indeksas. pSiųsti
Pirmasis duomenų rėmelių masyvų, kuriuos reikia išsiųsti, adresas.
Ilgis
Duomenų kadrų, kuriuos reikia siųsti, skaičius, maksimalus skaičius yra 1000, rekomenduojama reikšmė yra 48 dideliu greičiu.
Grąžinimai:
Grąžinti faktinį jau išsiųstų kadrų skaičių, grąžinama reikšmė = -1 rodo įrenginio klaidą.
Pvz
WAVESHARE USB CAN magistralės sąsajos adapterio sąsajos funkcijų biblioteka – 11 pav

WAVESHARE USB CAN magistralės sąsajos adapterio sąsajos funkcijų biblioteka – 12 pav

2.2.10. VCI_Gauti
Ši funkcija naudojama prašyti priimti.
DWORD __stdcall VCI_Receive(DWORD DevType, DWORD DevIndex, DWORD CANIndex, PVCI_CAN_OBJ pReceive, ULONG Len, INT WaitTime);
Parametrai:
DevType
Įrenginio tipas. Žr.: Adapterio įrenginio tipo apibrėžimas.
DevIndex
Įrenginio indeksas, pvzample, kai yra tik vienas USB-CAN adapteris, indekso numeris yra 0, kai yra keli USB-CAN adapteriai, indekso numeriai didėjančia tvarka, pradedant nuo 0.
CANindeksas
CAN kanalo indeksas.
pPriimti
Norėdami gauti pirmąjį duomenų rėmelių nustatytą žymeklį.
Len
Duomenų rėmelio masyvo ilgis turi būti didesnis nei 2500, kad būtų grąžintas įprastas pranešimas.
Priešingu atveju grąžinimo ilgis bus lygus nuliui, nesvarbu, ar pranešimas gautas, ar ne. adapteris kiekvienam kanalui nustatė 2000 kadrų buferį. Atsižvelgdamas į savo sistemą ir darbo aplinką, vartotojas gali pasirinkti tinkamą masyvo ilgį nuo 2500.
Laukimo laikas rezervuotas.
Grąžinimai:
Grąžina faktiškai nuskaitytų kadrų skaičių, -1 rodo įrenginio klaidas.
Pvz
WAVESHARE USB CAN magistralės sąsajos adapterio sąsajos funkcijų biblioteka – 13 pav

TREČIA DALIS KITOS FUNKCIJOS IR DUOMENŲ STRUKTŪROS APRAŠYMAS

Šiame skyriuje aprašomi kiti nesuderinamos ZLG sąsajos bibliotekos duomenų tipai ir funkcijos, esančios USB-CAN adapterio sąsajos bibliotekoje ControlCAN.dll. Prašau padaryti
Nekvieskite šių funkcijų, jei antriniam vystymui naudokite suderinamą ZLG modelį, kad nepakenktumėte suderinamumui.
3.1 FUNKCIJOS APRAŠYMAS
3.1.1. VCI_UsbDeviceReset
Iš naujo nustatykite USB-CAN adapterį. Iš naujo nustatykite įrenginį naudodami VCI_OpenDevice.
DWORD __stdcall VCI_UsbDeviceReset(DWORD DevType,DWORD DevIndex,DWORD rezervuotas
Parametrai:
DevType
Įrenginio tipas. Žr.: Adapterio įrenginio tipo apibrėžimas.
DevIndex
Įrenginio indeksas, pvzample, kai yra tik vienas USB-CAN adapteris, indekso numeris yra 0, kai yra keli USB-CAN adapteriai, indekso numeriai didėjančia tvarka, pradedant nuo 0.
Rezervuota Rezervuota.
Grąžinimai:
Grąžinama reikšmė = 1, o tai reiškia, kad operacija sėkminga; = 0 rodo, kad operacija nepavyko; = -1 reiškia, kad įrenginio nėra.

WAVESHARE USB CAN magistralės sąsajos adapterio sąsajos funkcijų biblioteka – 14 pav

bRel = VCI_UsbDeviceReset(nDeviceType, Nepriklausomybė, 0);
3.1.2. VCI_FindUsbDevice2
Kai tas pats kompiuteris naudoja kelis USB CAN, vartotojas gali naudoti šią funkciją, kad surastų esamą įrenginį.
DWORD __stdcall VCI_FindUsbDevice2(PVCI_BOARD_INFO pInfo);
Parametrai:
pInfo
pInfo naudojama pirmojo duomenų buferio adreso rodyklės parametrams saugoti.
Grąžina
Grąžinkite prie kompiuterio prijungto USB-CAN adapterio numerį.

WAVESHARE USB CAN magistralės sąsajos adapterio sąsajos funkcijų biblioteka – 15 pav

Ketvirta dalis Sąsajos bibliotekos funkcijos naudojant procesą
Siekdami padauginti įrenginio funkciją, pateikėme papildomų funkcijų (funkcijos pateikiamos žaliame fone), šios funkcijos apima: VCI_FindUsbDevice2 VCI_UsbDeviceReset. Antrojo kūrimo metu šios funkcijos nebūtinai turi būti naudojamos. Netgi į šias funkcijas nepaisoma, galima pasiekti visas USB-CAN adapterio funkcijas.

WAVESHARE USB CAN magistralės sąsajos adapterio sąsajos funkcijų biblioteka – 16 pav

www.waveshare.com
www.waveshare.com/wiki

Dokumentai / Ištekliai

WAVESHARE USB-CAN magistralės sąsajos adapterio sąsajos funkcijų biblioteka [pdfNaudojimo instrukcija
USB-CAN magistralės sąsajos adapterio sąsajos funkcijų biblioteka, USB-CAN, magistralės sąsajos adapterio sąsajos funkcijų biblioteka, sąsajos funkcijų biblioteka, funkcijų biblioteka

Nuorodos

Palikite komentarą

Jūsų el. pašto adresas nebus skelbiamas. Privalomi laukai pažymėti *