WAVESHARE-logoUSB-CAN bussgrensesnitt
Adaptergrensesnittfunksjon
Brukerveiledning for biblioteketWAVESHARE USB CAN Bus Interface Adapter Grensesnitt Funksjonsbibliotek

DEL EN OVERVIEW

Hvis brukeren bare bruker USB-CAN-buss-grensesnittadapter for å gå på CAN-buss kommunikasjonstest, og så kan han direkte bruke den medfølgende USB-CAN Tool-programvaren for å sende og motta data fra testen.
Hvis brukeren har til hensikt å skrive programvare for sine egne produkter. Les nøye de følgende instruksjonene og ta referansen fra sampkoden vi gir:
⑴ C++Builder ⑵C# ⑶VC ⑷VB ⑸VB.NET ⑹Delphi ⑺LabVIEW ⑻ LabWindows/CVI ⑼Matlab ⑽QT ⑾Python/Python-kan.
Utvikle bibliotek file :ControlCAN.lib, ControlCAN.DLL
VC-versjon funksjonserklæring file :ControlCAN.h
VB versjonsfunksjonserklæring file: ControlCAN.bas
LabVIEW versjonsbibliotek funksjonspakkemodul :ControlCAN.llb
Delphi versjonsfunksjonserklæring file: ControlCAN.pas

DEL TO KOMPATIBEL FUNKSJONSBIBLIOTEK OG DATASTRUKTUR

2.1. TYPEDEFINISJON
2.1.1. Enhetstype

Type definisjon Type verdi Beskrivelse
DEV_USBCAN2 4 USBCAN-2A/USBCAN-2C/CANalyst-II MiniPCIe-CAN

2.1.2. VCI_BOARD_INFO
VCI_BOARD_INFO-strukturen inneholder USB-CAN-seriens grensesnittkortenhetsinformasjon.
Strukturen vil fylles ut i funksjonen VCI_ReadBoardInfo.

WAVESHARE USB CAN Bus Grensesnitt Adapter Grensesnitt Funksjonsbibliotek - Fig 1

Medlem:
hw_Versjon
Maskinvareversjonsnummer, heksadesimal notasjon. F.eks. 0x0100 representerer V1.00.
fw_Versjon
Maskinvareversjonsnummer, heksadesimal notasjon. F.eks. 0x0100 representerer V1.00.
Side 2
dr_Versjon

Driverversjonsnummer, heksadesimal notasjon. F.eks. 0x0100 representerer V1.00.
in_Version
Grensesnittbibliotekets versjonsnummer, heksadesimal notasjon. F.eks. 0x0100 representerer V1.00.
irq_Num
Systemet er reservert.
can_Num
Representerer det totale antallet CAN-kanaler.
str_Serial_Num
Serienummeret til dette brettkortet.
str_hw_Type
Maskinvaretype, for eksempel "USBCAN V1.00" (Merk: Inkluderer strengterminator '\0').
Reservert
Systemet er reservert.
2.1.3. VCI_CAN_OBJ
I funksjonene VCI_Transmit og VCI_Receive, brukes VCI_CAN_OBJ-strukturen til å overføre CAN-meldingsramme.

WAVESHARE USB CAN Bus Grensesnitt Adapter Grensesnitt Funksjon Bibliotek - Fig

Medlem:
ID
Meldingsidentifikator. Direkte ID-format, høyrejustert, se: Annex One: ID-justeringsdetaljer.
TimeStamp
Å motta stamp informasjon om tidsrammen, start timing når CAN-kontrolleren er initialisert, enheten er 0. 1ms.
Tidsflagg
Når det gjelder om man skal bruke tiden stamp, 1er den effektive TimeStamp. TimeFlag og TimeStamp er bare meningsfulle når rammen er mottatt.
SendType
Sendingstype. = 0 indikerer normal type, = 1 indikerer enkel sending.
RemoteFlag
Om det er et eksternt flagg. = 1 indikerer eksternt flagg, = 0 indikerer dataflagg.
EksternFlagg
Om det er et eksternt flagg. = 1 indikerer eksternt flagg, = 0 indikerer standard flagg.
DataLen
Datalengde(<=8) , det vil si lengden på data.
Data
Pakkedata.
Reservert
Systemet er reservert.
2.1.4. VCI_INIT_CONFIG
VCI_INIT_CONFIG-strukturen definerer initialiseringskonfigurasjonen til CAN. Strukturen vil fylles ut i VCI_InitCan-funksjonen.

WAVESHARE USB CAN Bus Grensesnitt Adapter Grensesnitt Funksjonsbibliotek - Fig 2

Medlem:
AccCode
Motta filtrert akseptkode.
AccMask
Motta filtermaske.
Reservert
Reservert.
Filter
Filtreringsmetode, som tillater innstillingsområde 0-3, se avsnitt 2.2.3 i filtermodustabellen for detaljer.
Timing0
SJA1000 Baud rate parameter, Timing0 (BTR0) .
Timing1
SJA1000 Baud rate parameter, Timing1 (BTR1) .
Modus
Driftsmodus, 0 = normal drift, 1 = Kun lyttemodus, 2 = spontaninnleggelse og sendetestmodus.
Merknader:
Om filterinnstillingene, se: Vedlegg II: CAN-parameteroppsettinstruksjoner.
CAN Timing0 og Timing1 brukes til å stille inn overføringshastigheten, disse to parameterne brukes kun ved initialiseringentage.
Konvensjonell Baud-referansetabell:

CAN Baud rate Timing0(BTR0) Timing1(BTR1)
10 kbps 0x31 0x1C
20 kbps 0x18 0x1C
40 kbps 0x87 0xFF
50 kbps 0x09 0x1C
80 kbps 0x83 0xFF
100 kbps 0x04 0x1C
125 kbps 0x03 0x1C
200 kbps 0x81 0xFA
250 kbps 0x01 0x1C
400 kbps 0x80 0xFA
500 kbps 0x00 0x1C
666 kbps 0x80 0xB6
800 kbps 0x00 0x16
1000 kbps 0x00 0x14
33.33 Kbps 0x09 0x6F
66.66 Kbps 0x04 0x6F
83.33 Kbps 0x03 0x6F
  1. Brukere trenger bare å følge SJA1000 (16MHz) for å angi parameteren Baud rate.
  2. Adapteren støtter ikke midlertidig Baud-hastighet under 10K.

2.2. FUNKSJONSBESKRIVELSE
2.2.1. VCI_OpenDevice
Denne funksjonen brukes til å koble til enheter.
DWORD __stdcall VCI_OpenDevice(DWORD DevType,DWORD DevIndex,DWORD Reservert);
Parametere:
DevType
Enhetstype. Se: Definisjon av adapterenhetstype.
DevIndex
Enhetsindeks, f.eksample, når det bare er én USB-CAN-adapter, er indeksnummeret 0, når det er flere USB-CAN-adaptere, er indekstallene i stigende rekkefølge fra 0.
Reservert
Oppbevaringsparametere, fyll ut 0.
Returnerer:
Returverdi = 1, som betyr at operasjonen er vellykket; = 0 indikerer at operasjonen mislyktes; = -1 indikerer at enheten ikke eksisterer.

WAVESHARE USB CAN Bus Grensesnitt Adapter Grensesnitt Funksjon Bibliotek - Fig3

2.2.2. VCI_CloseDevice
Denne funksjonen brukes til å lukke forbindelsen.
DWORD __stdcall VCI_CloseDevice(DWORD DevType,DWORD DevIndex);
Parametere:
DevType
Enhetstype. Se: Definisjon av adapterenhetstype.
DevIndex
Enhetsindeks, f.eksample, når det bare er én USB-CAN-adapter, er indeksnummeret 0, når det er flere USB-CAN-adaptere, er indekstallene i stigende rekkefølge fra 0.
Returnerer:
Returverdi = 1, som betyr at operasjonen er vellykket; = 0 indikerer at operasjonen mislyktes; = -1 indikerer at enheten ikke eksisterer.

WAVESHARE USB CAN Bus Grensesnitt Adapter Grensesnitt Funksjonsbibliotek - Fig 4

2.2.3. VCI_InitCan
Denne funksjonen brukes til å initialisere spesifisert CAN.
DWORD __stdcall VCI_InitCAN(DWORD DevType, DWORD DevIndex, DWORD CANIndex,
PVCI_INIT_CONFIG pInitConfig);

Parametere:
DevType
Enhetstype. Se: Definisjon av adapterenhetstype.
DevIndex
Enhetsindeks, f.eksample, når det bare er én USB-CAN-adapter, er indeksnummeret 0, når det er flere USB-CAN-adaptere, er indekstallene i stigende rekkefølge fra 0.
CANIndex
CAN-kanalindeks, for eksempel når det bare er én CAN-kanal, er indeksnummeret 0, hvis det er to, kan indeksnummeret være 0 eller 1.
pInitConfig
Initialiseringsparameterstruktur. Parameterliste over medlemmer:

Medlem Funksjonell beskrivelse
pInitConfig->AccCode AccCode og AccMask kan arbeide sammen for å bestemme hvilke pakker som kan aksepteres. Disse to registrene brukes til å sette ID venstrejustert, det vil si at den høyeste biten (Bit31) av AccCode og AccMask er justert med den høyeste biten av ID-verdien.
pInitConfig->AccMask Om ID-justering, se vedlegg: Vedlegg I:
ID-justeringsdetaljer.
For eksempel: Hvis du setter verdien til AccCode til 0x24600000 (dvs. 0x123 er forskjøvet til venstre med 21 biter), AccMask-verdi
er satt til 0x00000000, og da kan bare pakkene med CAN-meldingsramme-ID er 0x123 aksepteres (AccMask-verdi på 0x00000000 indikerer at alle biter er relevante
biter). Hvis AccCode-verdien er satt til 0x24600000, settes AccMask-verdien til 0x600000 (0x03 forskyves til venstre med 21 biter), og da kan bare pakkene med CAN-meldingsramme-IDen er 0x120 ~ 0x123 aksepteres (AccMask-verdi
0x600000 indikerer at bortsett fra bit0 ~ bit1 er andre biter (bit2 ~ bit10) relevante bit).
Note: Denne filterinnstillingen f.eksamples til standardrammen, for eksample, høy 11-bit er den gyldige biten; når det gjelder den utvidede rammen, og da er den gyldige ID-en 29-bit. AccCode og AccMask setter høy 29-bit som gyldig bit!
pInitConfig->Reservert reservert
pInitConfig->Filter Innstillinger for filtreringsmodus, se avsnittet i filtermodustabellen.
pInitConfig->Timing0 BaudrateT0-innstilling
pInitConfig->Timing1 BaudrateT1-innstilling
pInitConfig->Modus Driftsform:
0-normal drift
1-Bare lytt-modus
2-spontan opptak og sendingstestmodus (denne verdien er ekskludert fra ZLG-funksjonsbiblioteket)

Filtermodustabell:

Verdi Navn Beskrivelse
1 Motta alle typer Passer både standard og utvidet ramme!
2 Får kun standardramme Passer til standardramme, og forlenget
ramme vil bli fjernet ved filtrering direkte!
3 Få kun utvidet ramme Egnet til forlenget ramme, og standard ramme vil bli fjernet pr
filtrering direkte! .

Returnerer:
Returverdi = 1, som betyr at operasjonen er vellykket; = 0 indikerer at operasjonen mislyktes; = -1 indikerer at enheten ikke eksisterer.
F.eks

WAVESHARE USB CAN Bus Grensesnitt Adapter Grensesnitt Funksjonsbibliotek - Fig 4

WAVESHARE USB CAN Bus Grensesnitt Adapter Grensesnitt Funksjonsbibliotek - Fig 6

2.2.4. VCI_ReadBoardInfo
Denne funksjonen brukes til å lese adapterens maskinvareinformasjon. Generelt sett kan det ignoreres.
DWORD __stdcall VCI_ReadBoardInfo(DWORD DevType,DWORD
DevIndex,PVCI_BOARD_INFO pInfo);
Parametere:
DevType
Enhetstype. Se: Definisjon av adapterenhetstype.
DevIndex
Enhetsindeks, f.eksample, når det bare er én USB-CAN-adapter, er indeksnummeret 0, når det er flere USB-CAN-adaptere, er indekstallene i stigende rekkefølge fra 0. pInfo
VCI_BOARD_INFO brukes til å lagre enhetsinformasjonsstrukturpekeren.
Returnerer:
Returverdi = 1, som betyr at operasjonen er vellykket; = 0 indikerer at operasjonen mislyktes; = -1 indikerer at enheten ikke eksisterer.

WAVESHARE USB CAN Bus Grensesnitt Adapter Grensesnitt Funksjonsbibliotek - Fig 7

2.2.5. VCI_GetReceiveNum
Denne funksjonen brukes til å spesifisere mottatte, men ikke blitt leste rammer i den angitte mottaksbufferen.
DWORD __stdcall VCI_GetReceiveNum(DWORD DevType,DWORD DevIndex,DWORD CANIndex);
Parametere:
DevType
Enhetstype. Se: Definisjon av adapterenhetstype.
DevIndex
Enhetsindeks, f.eksample, når det bare er én USB-CAN-adapter, er indeksnummeret 0, når det er flere USB-CAN-adaptere, er indekstallene i stigende rekkefølge fra 0.
CANIndex
CAN-kanalindeks.
Returnerer:
Returner rammer som ikke er lest ennå.
F.eks
#include “ControlCan.h” int ret=VCI_GetReceiveNum(2,0,0);
2.2.6. VCI_ClearBuffer
Denne funksjonen brukes til å slette mottaks- og sendebufferen for den angitte kanalen spesifisert av
USB-CAN adapter.
DWORD __stdcall VCI_ClearBuffer(DWORD DevType,DWORD DevIndex,DWORD CANIndex);
Parametere:
DevType
Enhetstype. Se: Definisjon av adapterenhetstype.
DevIndex
Enhetsindeks, f.eksample, når det bare er én USB-CAN-adapter, er indeksnummeret 0, når det er flere USB-CAN-adaptere, er indekstallene i stigende rekkefølge fra 0.
CANIndex
CAN-kanalindeks.
Returnerer:
Returverdi = 1, som betyr at operasjonen er vellykket; = 0 indikerer at operasjonen mislyktes; = -1 indikerer at enheten ikke eksisterer.

WAVESHARE USB CAN Bus Grensesnitt Adapter Grensesnitt Funksjonsbibliotek - Fig 8

2.2.7. VCI_StartCAN
Denne funksjonen brukes til å starte CAN-kontrolleren og den interne avbruddsmottaksfunksjonen til adapteren.
DWORD __stdcall VCI_StartCAN(DWORD DevType,DWORD DevIndex,DWORD CANIndex);
Parametere:
DevType
Enhetstype. Se: Definisjon av adapterenhetstype.
DevIndex
Enhetsindeks, f.eksample, når det bare er én USB-CAN-adapter, er indeksnummeret 0, når det er flere USB-CAN-adaptere, er indekstallene i stigende rekkefølge fra 0.
CANIndex
CAN-kanalindeks.
Returnerer:
Returverdi = 1, som betyr at operasjonen er vellykket; = 0 indikerer at operasjonen mislyktes; = -1 indikerer at enheten ikke eksisterer.

WAVESHARE USB CAN Bus Grensesnitt Adapter Grensesnitt Funksjonsbibliotek - Fig 9

2.2.8. VCI_ResetCAN
Denne funksjonen brukes til å tilbakestille CAN-kontrolleren.
DWORD __stdcall VCI_ResetCAN(DWORD DevType,DWORD DevIndex,DWORD CANIndex);
Parametere:
DevType
Enhetstype. Se: Definisjon av adapterenhetstype.
DevIndex
Enhetsindeks, f.eksample, når det bare er én USB-CAN-adapter, er indeksnummeret 0, når det er flere USB-CAN-adaptere, er indekstallene i stigende rekkefølge fra 0.
CANIndex
CAN-kanalindeks.
Returnerer:
Returverdi = 1, som betyr at operasjonen er vellykket; = 0 indikerer at operasjonen mislyktes; = -1 indikerer at enheten ikke eksisterer.

WAVESHARE USB CAN Bus Grensesnitt Adapter Grensesnitt Funksjonsbibliotek - Fig 10

2.2.9. VCI_Send
Denne funksjonen brukes til å sende CAN-meldingsramme.
DWORD __stdcall VCI_Transmit(DWORD DeviceType,DWORD DeviceInd,DWORD CANInd,PVCI_CAN_OBJ pSend,DWORD Length);
Parametere:
DevType
Enhetstype. Se: Definisjon av adapterenhetstype.
DevIndex
Enhetsindeks, f.eksample, når det bare er én USB-CAN-adapter, er indeksnummeret 0, når det er flere USB-CAN-adaptere, er indekstallene i stigende rekkefølge fra 0.
CANIndex
CAN-kanalindeks. pSend
Den første adressen til datarammematrisene som må sendes.
Lengde
Antallet datarammer som må sendes, maksimalt antall er 1000, anbefalt verdi er 48 under høy hastighet.
Returnerer:
Returner det faktiske antallet bilder som allerede er sendt, returverdien = -1 indikerer en enhetsfeil.
F.eks
WAVESHARE USB CAN Bus Grensesnitt Adapter Grensesnitt Funksjonsbibliotek - Fig 11

WAVESHARE USB CAN Bus Grensesnitt Adapter Grensesnitt Funksjonsbibliotek - Fig 12

2.2.10. VCI_Motta
Denne funksjonen brukes til å be om mottak.
DWORD __stdcall VCI_Receive(DWORD DevType, DWORD DevIndex, DWORD CANIndex, PVCI_CAN_OBJ pReceive, ULONG Len, INT WaitTime);
Parametere:
DevType
Enhetstype. Se: Definisjon av adapterenhetstype.
DevIndex
Enhetsindeks, f.eksample, når det bare er én USB-CAN-adapter, er indeksnummeret 0, når det er flere USB-CAN-adaptere, er indekstallene i stigende rekkefølge fra 0.
CANIndex
CAN-kanalindeks.
motta
For å motta den første settpekeren av datarammene.
Len
Matriselengden på datarammen må være mer enn 2500 for å returnere normal melding.
Ellers vil returlengden være null enten meldingen mottas eller ikke. adapteren satte en 2000-bilders buffer for hver kanal. Basert på eget system og arbeidsmiljø kan brukeren velge en passende arraylengde fra 2500.
Ventetid reservert.
Returnerer:
Returner antall rammer som faktisk har blitt lest, -1 indikerer enhetsfeil.
F.eks
WAVESHARE USB CAN Bus Grensesnitt Adapter Grensesnitt Funksjonsbibliotek - Fig 13

DEL TRE ANDRE FUNKSJONER OG DATASTRUKTURBESKRIVELSE

Dette kapittelet beskriver andre datatyper og funksjoner til det inkompatible ZLG-grensesnittbiblioteket i USB-CAN-adaptergrensesnittbiblioteket ControlCAN.dll. Vennligst gjør det
ikke kall disse funksjonene hvis du bruker en kompatibel ZLG-modell for sekundær utvikling for ikke å påvirke kompatibiliteten.
3.1 FUNKSJONSBESKRIVELSE
3.1.1. VCI_UsbDeviceReset
Tilbakestill USB-CAN-adapter, må åpne enheten på nytt etter tilbakestilling ved å bruke VCI_OpenDevice.
DWORD __stdcall VCI_UsbDeviceReset(DWORD DevType,DWORD DevIndex,DWORD Reservert
Parametere:
DevType
Enhetstype. Se: Definisjon av adapterenhetstype.
DevIndex
Enhetsindeks, f.eksample, når det bare er én USB-CAN-adapter, er indeksnummeret 0, når det er flere USB-CAN-adaptere, er indekstallene i stigende rekkefølge fra 0.
Reservert Reservert.
Returnerer:
Returverdi = 1, som betyr at operasjonen er vellykket; = 0 indikerer at operasjonen mislyktes; = -1 indikerer at enheten ikke eksisterer.

WAVESHARE USB CAN Bus Grensesnitt Adapter Grensesnitt Funksjonsbibliotek - Fig 14

bRel = VCI_UsbDeviceReset(nDeviceType, Independence, 0);
3.1.2. VCI_FindUsbDevice2
Når samme PC bruker flere USB-CAN, kan brukeren bruke denne funksjonen til å finne gjeldende enhet.
DWORD __stdcall VCI_FindUsbDevice2(PVCI_BOARD_INFO pInfo);
Parametere:
pInfo
pInfo brukes til å lagre parametrene til den første databufferadressepekeren.
Returnerer
Returner nummeret til USB-CAN-adapteren som er koblet til datamaskinen.

WAVESHARE USB CAN Bus Grensesnitt Adapter Grensesnitt Funksjonsbibliotek - Fig 15

Del fire Grensesnittbibliotekfunksjoner ved hjelp av prosess
For å multiplisere enhetsfunksjonen ga vi tilleggsfunksjoner (funksjoner presentert med grønn bakgrunn), disse funksjonene inkluderer: VCI_FindUsbDevice2 VCI_UsbDeviceReset. Under den andre utviklingen skal disse funksjonene ikke nødvendigvis påberopes. Selv disse funksjonene ignoreres, alle USB-CAN-adapterfunksjoner kan oppnås.

WAVESHARE USB CAN Bus Grensesnitt Adapter Grensesnitt Funksjonsbibliotek - Fig 16

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

Dokumenter / Ressurser

WAVESHARE USB-CAN Buss-grensesnittadapter Grensesnittfunksjonsbibliotek [pdf] Bruksanvisning
USB-CAN-bussgrensesnittadapter Grensesnittfunksjonsbibliotek, USB-CAN, Bussgrensesnittadaptergrensesnittfunksjonsbibliotek, grensesnittfunksjonsbibliotek, funksjonsbibliotek

Referanser

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket *