USB-CAN Bus Interface
Adapter interface funktion
Bibliotekets brugervejledning
FØRSTE DEL OVERVIEW
Hvis brugeren bare bruger USB-CAN bus interface adapter til at gå på CAN bus kommunikation test, og så kan han direkte bruge den medfølgende USB-CAN Tool software til at sende og modtage data fra testen.
Hvis brugeren har til hensigt at skrive softwareprogram til sine egne produkter. Læs venligst følgende instruktioner omhyggeligt og tag reference fra sampkoden vi leverer:
⑴ C++Builder ⑵C# ⑶VC ⑷VB ⑸VB.NET ⑹Delphi ⑺LabVIEW ⑻ LabWindows/CVI ⑼Matlab ⑽QT ⑾Python/Python-can.
Udvikle bibliotek file :ControlCAN.lib, ControlCAN.DLL
VC version funktionserklæring file :ControlCAN.h
VB version funktionserklæring file: ControlCAN.bas
LabVIEW versionsbibliotek funktionspakkemodul :ControlCAN.llb
Delphi version funktionserklæring file: ControlCAN.pas
ANDEN DEL KOMPATIBEL FUNKTIONSBIBLIOTEK OG DATASTRUKTUR
2.1. TYPEDEFINITION
2.1.1. Enhedstype
Type definition | Type værdi | Beskrivelse |
DEV_USBCAN2 | 4 | USBCAN-2A/USBCAN-2C/CANalyst-II MiniPCIe-CAN |
2.1.2. VCI_BOARD_INFO
VCI_BOARD_INFO-strukturen indeholder USB-CAN-seriens interfacekortenhedsoplysninger.
Strukturen vil blive udfyldt i funktionen VCI_ReadBoardInfo.
Medlem:
hw_Version
Hardwareversionsnummer, hexadecimal notation. F.eks. repræsenterer 0x0100 V1.00.
fw_Version
Hardwareversionsnummer, hexadecimal notation. F.eks. repræsenterer 0x0100 V1.00.
Side 2
dr_Version
Driverversionsnummer, hexadecimal notation. F.eks. repræsenterer 0x0100 V1.00.
in_Version
Interfacebibliotekets versionsnummer, hexadecimal notation. F.eks. repræsenterer 0x0100 V1.00.
irq_Num
System reserveret.
kan_Num
Repræsenterer det samlede antal CAN-kanaler.
str_Serial_Num
Dette bordkorts serienummer.
str_hw_Type
Hardwaretype, såsom "USBCAN V1.00" (Bemærk: Inkluderer strengterminator '\0').
Reserveret
System reserveret.
2.1.3. VCI_CAN_OBJ
I funktionerne VCI_Transmit og VCI_Receive bruges VCI_CAN_OBJ-strukturen til at sende CAN-meddelelsesramme.
Medlem:
ID
Meddelelses-id. Direkte ID-format, højrejusteret, se venligst: Annex One: ID Alignment Details.
Tid St.amp
Modtagelse af stamp information om tidsrammen, start timing, når CAN-controlleren er initialiseret, enheden er 0. 1ms.
Tidsflag
I forhold til om man skal bruge tiden stamp, 1er den effektive TimeStamp. TimeFlag og TimeStamp er kun meningsfulde, når rammen modtages.
SendType
Afsendelsestype. = 0 angiver normal type, = 1 angiver enkelt afsendelse.
RemoteFlag
Om det er et fjernflag. = 1 angiver fjernflag, = 0 angiver dataflag.
EksternFlag
Om det er et eksternt flag. = 1 angiver eksternt flag, = 0 angiver standardflag.
DataLen
Data længde (<=8) , det vil sige længden af data.
Data
Pakkedata.
Reserveret
System reserveret.
2.1.4. VCI_INIT_CONFIG
VCI_INIT_CONFIG struktur definerer initialiseringskonfigurationen af CAN. Strukturen vil blive udfyldt i VCI_InitCan-funktionen.
Medlem:
AccCode
Modtag filtreret acceptkode.
AccMask
Modtag filtermaske.
Reserveret
Reserveret.
Filter
Filtreringsmetode, der tillader indstillingsområde 0-3, se afsnit 2.2.3 i filtertilstandstabellen for detaljer.
Timing0
SJA1000 Baudrateparameter, Timing0 (BTR0) .
Timing1
SJA1000 Baudrateparameter, Timing1 (BTR1) .
Mode
Driftstilstand, 0 = normal drift, 1 = Kun lyttetilstand, 2 = spontan indlæggelse og afsendelsestesttilstand.
Bemærkninger:
Se venligst om filterindstillingerne: Bilag II: CAN-parameter opsætningsinstruktioner.
CAN Timing0 og Timing1 bruges til at indstille baudrate, disse to parametre bruges kun ved initialiseringentage.
Konventionel Baud-referencetabel:
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 |
- Brugere behøver kun at følge SJA1000 (16MHz) for at indstille Baud-hastighedsparameteren.
- Adapteren understøtter ikke midlertidig Baud-hastighed under 10K.
2.2. FUNKTIONSBESKRIVELSE
2.2.1. VCI_OpenDevice
Denne funktion bruges til at forbinde enheder.
DWORD __stdcall VCI_OpenDevice(DWORD DevType,DWORD DevIndex,DWORD Reserveret);
Parametre:
DevType
Enhedstype. Se: Definition af adapterenhedstype.
DevIndex
Enhedsindeks, f.eksample, når der kun er én USB-CAN-adapter, er indeksnummeret 0, når der er flere USB-CAN-adaptere, indeksnumrene i stigende rækkefølge fra 0.
Reserveret
Retentionsparametre, udfyld 0.
Returnerer:
Returværdi = 1, hvilket betyder, at operationen er vellykket; = 0 angiver, at handlingen mislykkedes; = -1 angiver, at enheden ikke eksisterer.
2.2.2. VCI_CloseDevice
Denne funktion bruges til at lukke forbindelsen.
DWORD __stdcall VCI_CloseDevice(DWORD DevType,DWORD DevIndex);
Parametre:
DevType
Enhedstype. Se: Definition af adapterenhedstype.
DevIndex
Enhedsindeks, f.eksample, når der kun er én USB-CAN-adapter, er indeksnummeret 0, når der er flere USB-CAN-adaptere, indeksnumrene i stigende rækkefølge fra 0.
Returnerer:
Returværdi = 1, hvilket betyder, at operationen er vellykket; = 0 angiver, at handlingen mislykkedes; = -1 angiver, at enheden ikke eksisterer.
2.2.3. VCI_InitCan
Denne funktion bruges til at initialisere den specificerede CAN.
DWORD __stdcall VCI_InitCAN(DWORD DevType, DWORD DevIndex, DWORD CANIndex,
PVCI_INIT_CONFIG pInitConfig);
Parametre:
DevType
Enhedstype. Se: Definition af adapterenhedstype.
DevIndex
Enhedsindeks, f.eksample, når der kun er én USB-CAN-adapter, er indeksnummeret 0, når der er flere USB-CAN-adaptere, indeksnumrene i stigende rækkefølge fra 0.
CANIndex
CAN-kanalindeks, såsom når der kun er én CAN-kanal, er indeksnummeret 0, hvis der er to, kan indeksnummeret være 0 eller 1.
pInitConfig
Initialiseringsparameterstruktur. Parameterliste over medlemmer:
Medlem | Funktionsbeskrivelse |
pInitConfig->AccCode | AccCode og AccMask kan arbejde sammen for at bestemme, hvilke pakker der kan accepteres. Disse to registre bruges til at indstille ID'et venstrejusteret, det vil sige den højeste bit (Bit31) af AccCode og AccMask er justeret med den højeste bit af ID-værdien. |
pInitConfig->AccMask | Om ID-justering se bilag: Bilag I: ID-justeringsdetaljer. F.eks.: Hvis du indstiller værdien af AccCode til 0x24600000 (dvs. 0x123 flyttes til venstre med 21 bit), AccMask værdi er sat til 0x00000000, og derefter kan kun pakkerne med CAN-meddelelsesramme-id'et er 0x123 accepteres (AccMask-værdien på 0x00000000 angiver, at alle bits er relevante |
bits). Hvis AccCode-værdien er sat til 0x24600000, er AccMask-værdien sat til 0x600000 (0x03 flyttes til venstre med 21 bit), og derefter kan kun pakkerne med CAN-meddelelsesramme-id'et er 0x120 ~ 0x123 accepteres (AccMask-værdi 0x600000 angiver, at bortset fra bit0 ~ bit1 er andre bits (bit2 ~ bit10) relevante bit). Note: Denne filterindstilling f.eksamples til standardrammen, f.eksample, høj 11-bit er den gyldige bit; i tilfælde af den udvidede ramme, og så er det gyldige ID 29-bit. AccCode og AccMask sætter høj 29-bit som den gyldige bit! |
|
pInitConfig->Reserveret | reserveret |
pInitConfig->Filter | Indstillinger for filtreringstilstand henvises til afsnittet i tabellen med filtertilstande. |
pInitConfig->Timing0 | BaudrateT0 indstilling |
pInitConfig->Timing1 | BaudrateT1 indstilling |
pInitConfig->Mode | Driftsart: 0-normal drift 1-Lyt-kun-tilstand 2-spontan indlæggelse og afsendelsestesttilstand (denne værdi er udelukket fra ZLG-funktionsbiblioteket) |
Filtertilstandstabel:
Værdi | Navn | Beskrivelse |
1 | Modtag alle typer | Velegnet til både standard og forlænget stel! |
2 | Modtag kun standardramme | Velegnet til standardramme og forlænget |
rammen vil blive fjernet ved filtrering direkte! | ||
3 | Modtag kun forlænget ramme | Velegnet til forlænget ramme, og standardramme vil blive fjernet pr filtrering direkte! . |
Returnerer:
Returværdi = 1, hvilket betyder, at operationen er vellykket; = 0 angiver, at handlingen mislykkedes; = -1 angiver, at enheden ikke eksisterer.
F.eks
2.2.4. VCI_ReadBoardInfo
Denne funktion bruges til at læse adapterens hardwareoplysninger. Generelt kan det ignoreres.
DWORD __stdcall VCI_ReadBoardInfo(DWORD DevType,DWORD
DevIndex,PVCI_BOARD_INFO pInfo);
Parametre:
DevType
Enhedstype. Se: Definition af adapterenhedstype.
DevIndex
Enhedsindeks, f.eksample, når der kun er én USB-CAN-adapter, er indeksnummeret 0, når der er flere USB-CAN-adaptere, er indeksnumrene i stigende rækkefølge fra 0. pInfo
VCI_BOARD_INFO bruges til at lagre enhedsinformationsstrukturmarkør.
Returnerer:
Returværdi = 1, hvilket betyder, at operationen er vellykket; = 0 angiver, at handlingen mislykkedes; = -1 angiver, at enheden ikke eksisterer.
2.2.5. VCI_GetReceiveNum
Denne funktion bruges til at specificere de modtagne, men ikke blevet læste rammer i den udpegede modtagebuffer.
DWORD __stdcall VCI_GetReceiveNum(DWORD DevType,DWORD DevIndex,DWORD CANIndex);
Parametre:
DevType
Enhedstype. Se: Definition af adapterenhedstype.
DevIndex
Enhedsindeks, f.eksample, når der kun er én USB-CAN-adapter, er indeksnummeret 0, når der er flere USB-CAN-adaptere, indeksnumrene i stigende rækkefølge fra 0.
CANIndex
CAN-kanalindeks.
Returnerer:
Returner rammer, der ikke er læst endnu.
F.eks
#include “ControlCan.h” int ret=VCI_GetReceiveNum(2,0,0);
2.2.6. VCI_ClearBuffer
Denne funktion bruges til at rydde modtage- og sendebufferen for den udpegede kanal specificeret af
USB-CAN adapter.
DWORD __stdcall VCI_ClearBuffer(DWORD DevType,DWORD DevIndex,DWORD CANIndex);
Parametre:
DevType
Enhedstype. Se: Definition af adapterenhedstype.
DevIndex
Enhedsindeks, f.eksample, når der kun er én USB-CAN-adapter, er indeksnummeret 0, når der er flere USB-CAN-adaptere, indeksnumrene i stigende rækkefølge fra 0.
CANIndex
CAN-kanalindeks.
Returnerer:
Returværdi = 1, hvilket betyder, at operationen er vellykket; = 0 angiver, at handlingen mislykkedes; = -1 angiver, at enheden ikke eksisterer.
2.2.7. VCI_StartCAN
Denne funktion bruges til at starte CAN-controlleren og adapterens interne afbrydelsesmodtagelsesfunktion.
DWORD __stdcall VCI_StartCAN(DWORD DevType,DWORD DevIndex,DWORD CANIndex);
Parametre:
DevType
Enhedstype. Se: Definition af adapterenhedstype.
DevIndex
Enhedsindeks, f.eksample, når der kun er én USB-CAN-adapter, er indeksnummeret 0, når der er flere USB-CAN-adaptere, indeksnumrene i stigende rækkefølge fra 0.
CANIndex
CAN-kanalindeks.
Returnerer:
Returværdi = 1, hvilket betyder, at operationen er vellykket; = 0 angiver, at handlingen mislykkedes; = -1 angiver, at enheden ikke eksisterer.
2.2.8. VCI_ResetCAN
Denne funktion bruges til at nulstille CAN-controlleren.
DWORD __stdcall VCI_ResetCAN(DWORD DevType,DWORD DevIndex,DWORD CANIndex);
Parametre:
DevType
Enhedstype. Se: Definition af adapterenhedstype.
DevIndex
Enhedsindeks, f.eksample, når der kun er én USB-CAN-adapter, er indeksnummeret 0, når der er flere USB-CAN-adaptere, indeksnumrene i stigende rækkefølge fra 0.
CANIndex
CAN-kanalindeks.
Returnerer:
Returværdi = 1, hvilket betyder, at operationen er vellykket; = 0 angiver, at handlingen mislykkedes; = -1 angiver, at enheden ikke eksisterer.
2.2.9. VCI_Transmit
Denne funktion bruges til at sende CAN-meddelelsesramme.
DWORD __stdcall VCI_Transmit(DWORD DeviceType,DWORD DeviceInd,DWORD CANInd,PVCI_CAN_OBJ pSend,DWORD Length);
Parametre:
DevType
Enhedstype. Se: Definition af adapterenhedstype.
DevIndex
Enhedsindeks, f.eksample, når der kun er én USB-CAN-adapter, er indeksnummeret 0, når der er flere USB-CAN-adaptere, indeksnumrene i stigende rækkefølge fra 0.
CANIndex
CAN-kanalindeks. pSend
Den første adresse på de dataramme-arrays, der skal sendes.
Længde
Antallet af datarammer, der skal sendes, det maksimale antal er 1000, den anbefalede værdi er 48 under høj hastighed.
Returnerer:
Returner det faktiske antal billeder, der allerede er sendt, returværdien = -1 indikerer en enhedsfejl.
F.eks
2.2.10. VCI_Modtag
Denne funktion bruges til at anmode om modtagelse.
DWORD __stdcall VCI_Receive(DWORD DevType, DWORD DevIndex, DWORD CANIndex, PVCI_CAN_OBJ pReceive, ULONG Len, INT WaitTime);
Parametre:
DevType
Enhedstype. Se: Definition af adapterenhedstype.
DevIndex
Enhedsindeks, f.eksample, når der kun er én USB-CAN-adapter, er indeksnummeret 0, når der er flere USB-CAN-adaptere, indeksnumrene i stigende rækkefølge fra 0.
CANIndex
CAN-kanalindeks.
modtag
For at modtage den første sæt-pointer af datarammerne.
Len
Matrixlængden af datarammen skal være mere end 2500 for at returnere normal besked.
Ellers vil returlængden være nul, uanset om beskeden modtages eller ej. adapteren indstillede en buffer på 2000 billeder for hver kanal. Baseret på eget system og arbejdsmiljø kan brugeren vælge en passende arraylængde fra 2500.
Ventetid reserveret.
Returnerer:
Returner antallet af frames, der rent faktisk er blevet læst, -1 angiver enhedsfejl.
F.eks
DEL TRE ANDRE FUNKTIONER OG DATASTRUKTURBESKRIVELSE
Dette kapitel beskriver andre datatyper og funktioner i det inkompatible ZLG-interfacebibliotek indeholdt i USB-CAN-adapterinterfacebiblioteket ControlCAN.dll. Vær sød at gøre
ikke kalde disse funktioner, hvis du bruger en kompatibel ZLG-model til sekundær udvikling for ikke at påvirke kompatibiliteten.
3.1 FUNKTIONSBESKRIVELSE
3.1.1. VCI_UsbDeviceReset
Nulstil USB-CAN-adapter, skal genåbne enheden efter nulstilling ved hjælp af VCI_OpenDevice.
DWORD __stdcall VCI_UsbDeviceReset(DWORD DevType,DWORD DevIndex,DWORD Reserveret
Parametre:
DevType
Enhedstype. Se: Definition af adapterenhedstype.
DevIndex
Enhedsindeks, f.eksample, når der kun er én USB-CAN-adapter, er indeksnummeret 0, når der er flere USB-CAN-adaptere, indeksnumrene i stigende rækkefølge fra 0.
Reserveret Reserveret.
Returnerer:
Returværdi = 1, hvilket betyder, at operationen er vellykket; = 0 angiver, at handlingen mislykkedes; = -1 angiver, at enheden ikke eksisterer.
bRel = VCI_UsbDeviceReset(nDeviceType, Independence, 0);
3.1.2. VCI_FindUsbDevice2
Når den samme pc bruger flere USB-CAN, kan brugeren bruge denne funktion til at finde den aktuelle enhed.
DWORD __stdcall VCI_FindUsbDevice2(PVCI_BOARD_INFO pInfo);
Parametre:
pInfo
pInfo bruges til at gemme parametrene for den første databufferadressemarkør.
Returnerer
Returner nummeret på den USB-CAN-adapter, der er tilsluttet computeren.
Del fire Interfacebiblioteksfunktioner ved hjælp af proces
For at multiplicere enhedsfunktioner tilvejebragte vi yderligere funktioner (funktioner præsenteret med en grøn baggrund), disse funktioner inkluderer: VCI_FindUsbDevice2 VCI_UsbDeviceReset. Under den anden udvikling skal disse funktioner ikke nødvendigvis aktiveres. Selv disse funktioner ignoreres, alle USB-CAN-adapterfunktioner kan opnås.
www.waveshare.com
www.waveshare.com/wiki
Dokumenter/ressourcer
![]() |
WAVESHARE USB-CAN Bus Interface Adapter Interface Funktion bibliotek [pdf] Brugsanvisning USB-CAN Bus Interface Adapter Interface Funktionsbibliotek, USB-CAN, Bus Interface Adapter Interface Funktionsbibliotek, Interface Funktionsbibliotek, Funktionsbibliotek |