USB-CAN Bus-koppelvlak
Adapter Interface Funksie
Biblioteekgebruikersinstruksie
DEEL EEN VERBYVIEW
As die gebruiker net gebruik USB-CAN bus koppelvlak adapter om te gaan op CAN bus kommunikasie toets, en dan kan hy direk gebruik die verskaf USB-CAN Tool sagteware vir die stuur en ontvang van data van die toets.
As die gebruiker van voorneme is om sagtewareprogram vir sy eie produkte te skryf. Lees asseblief die volgende instruksies noukeurig deur en neem verwysing uit die aampdie kode wat ons verskaf:
⑴ C++ Bouer ⑵C# ⑶VC ⑷VB ⑸VB.NET ⑹Delphi ⑺LabVIEW ⑻ LabWindows/CVI ⑼Matlab ⑽QT ⑾Python/Python-kan.
Ontwikkel biblioteek file :ControlCAN.lib, ControlCAN.DLL
VC weergawe funksie verklaring file :ControlCAN.h
VB weergawe funksie verklaring file: ControlCAN.bas
LabVIEW weergawe biblioteek funksie pakket module :ControlCAN.llb
Delphi weergawe funksie verklaring file: ControlCAN.pas
DEEL TWEE VERENIGBARE FUNKSIE BIBLIOTEEK EN DATA STRUKTUUR
2.1. TIPE DEFINISIE
2.1.1. Soort toestel
Tipe Definisie | Tik waarde | Beskrywing |
DEV_USBCAN2 | 4 | USBCAN-2A/USBCAN-2C/CANalyst-II MiniPCIe-CAN |
2.1.2. VCI_BOARD_INFO
VCI_BOARD_INFO-struktuur bevat USB-CAN-reeks-koppelvlakkaarttoestelinligting.
Die struktuur sal in VCI_ReadBoardInfo-funksie ingevul word.
Lid:
hw_Weergawe
Hardeware weergawe nommer, heksadesimale notasie. Bv. 0x0100 verteenwoordig V1.00.
fw_Weergawe
Hardeware weergawe nommer, heksadesimale notasie. Bv. 0x0100 verteenwoordig V1.00.
Bladsy 2
dr_Weergawe
Bestuurder weergawe nommer, heksadesimale notasie. Bv. 0x0100 verteenwoordig V1.00.
in_weergawe
Interface biblioteek weergawe nommer, heksadesimale notasie. Bv. 0x0100 verteenwoordig V1.00.
irq_Num
Stelsel gereserveer.
kan_Getal
Verteenwoordig die totale aantal CAN-kanaal.
str_Serial_Num
Hierdie bordkaart se reeksnommer.
str_hw_Typ
Hardeware tipe, soos "USBCAN V1.00" (Let wel: Sluit string terminator '\0' in).
Voorbehou
Stelsel gereserveer.
2.1.3. VCI_CAN_OBJ
In die funksies VCI_Transmit en VCI_Receive, word VCI_CAN_OBJ-struktuur gebruik om CAN-boodskapraam te stuur.
Lid:
ID
Boodskap-identifiseerder. Direkte ID-formaat, regs-belyn, verwys asseblief na: Bylae Een: ID-belyningsbesonderhede.
Tyd St.amp
Die ontvangs van die stamp inligting van die tydraamwerk, begin tydsberekening wanneer die CAN-beheerder geïnisialiseer is, die eenheid is 0. 1ms.
TydVlag
In terme van die vraag of die tyd stamp, 1is die effektiewe TimeStamp. TimeFlag en TimeStamp is slegs betekenisvol wanneer die raam ontvang word.
Stuurtipe
Stuur tipe. = 0 dui op Normale tipe, = 1 dui Enkel Send.
AfgeleëVlag
Of dit nou 'n afgeleë vlag is. = 1 dui afgeleë vlag aan, = 0 dui datavlag aan.
Eksterne Vlag
Of dit 'n eksterne vlag is. = 1 dui eksterne vlag aan, = 0 dui standaard vlag aan.
DataLen
Datalengte(<=8) , dit is die lengte van data.
Data
Pakkie data.
Voorbehou
Stelsel gereserveer.
2.1.4. VCI_INIT_CONFIG
VCI_INIT_CONFIG struktuur definieer die inisialisering konfigurasie van die CAN. Die struktuur sal in VCI_InitCan-funksie ingevul word.
Lid:
Rekenkode
Ontvang gefiltreerde aanvaardingskode.
AccMask
Ontvang filtermasker.
Voorbehou
Voorbehou.
Filter
Filtermetode, wat instellingsreeks 0-3 toelaat, verwys na afdeling 2.2.3 van die filtermodustabel vir besonderhede.
Tydsberekening 0
SJA1000 Baud rate parameter, Tydsberekening0 (BTR0) .
Tydsberekening 1
SJA1000 Baud rate parameter, Tydsberekening1 (BTR1) .
Modus
Bedryfsmodus, 0 = normale werking, 1 = Luister-alleen-modus, 2 = spontane opname en stuurtoetsmodus.
Opmerkings:
Oor die filterinstellings verwys asseblief na: Bylae II: CANparameter-opstellingsinstruksies.
CAN Timing0 en Timing1 word gebruik om baud rate te stel, hierdie twee parameters word slegs gebruik by die inisialisering stage.
Konvensionele Baud verwysing tabel:
KAN Baud koers | Tydsberekening0(BTR0) | Tydsberekening1(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 |
- Gebruikers hoef slegs SJA1000 (16MHz) te volg om die Baud rate parameter te stel.
- Die adapter ondersteun nie tydelik Baud-tempo onder 10K nie.
2.2. FUNKSIE BESKRYWING
2.2.1. VCI_OpenDevice
Hierdie funksie word gebruik om toestelle te koppel.
DWORD __stdcall VCI_OpenDevice(DWORD DevType,DWORD DevIndex,DWORD Reserved);
Parameters:
DevType
Soort toestel. Sien: Adapter toestel tipe definisie.
DevIndex
Toestelindeks, bvample, wanneer daar net een USB-CAN-adapter is, is die indeksnommer 0, wanneer daar veelvuldige USB-CAN-adapters is, begin die indeksnommers in 'n stygende volgorde vanaf 0.
Voorbehou
Retensieparameters, vul 0 in.
Terugsendings:
Retourwaarde = 1, wat beteken dat die bewerking suksesvol is; = 0 dui aan dat die operasie misluk het; = -1 dui aan dat die toestel nie bestaan nie.
2.2.2. VCI_CloseDevice
Hierdie funksie word gebruik om die verbinding te sluit.
DWORD __stdcall VCI_CloseDevice(DWORD DevType,DWORD DevIndex);
Parameters:
DevType
Soort toestel. Sien: Adapter toestel tipe definisie.
DevIndex
Toestelindeks, bvample, wanneer daar net een USB-CAN-adapter is, is die indeksnommer 0, wanneer daar veelvuldige USB-CAN-adapters is, begin die indeksnommers in 'n stygende volgorde vanaf 0.
Terugsendings:
Retourwaarde = 1, wat beteken dat die bewerking suksesvol is; = 0 dui aan dat die operasie misluk het; = -1 dui aan dat die toestel nie bestaan nie.
2.2.3. VCI_InitCan
Hierdie funksie word gebruik om die gespesifiseerde CAN te inisialiseer.
DWORD __stdcall VCI_InitCAN(DWORD DevType, DWORD DevIndex, DWORD CANIndex,
PVCI_INIT_CONFIG pInitConfig);
Parameters:
DevType
Soort toestel. Sien: Adapter toestel tipe definisie.
DevIndex
Toestelindeks, bvample, wanneer daar net een USB-CAN-adapter is, is die indeksnommer 0, wanneer daar veelvuldige USB-CAN-adapters is, begin die indeksnommers in 'n stygende volgorde vanaf 0.
CAN-indeks
KAN-kanaalindeks, soos wanneer daar net een KAN-kanaal is, is die indeksnommer 0, as daar twee is, kan die indeksnommer 0 of 1 wees.
pInitConfig
Inisialisering parameter struktuur. Parameterlys van lede:
Lid | Funksionele beskrywing |
pInitConfig-> AccCode | AccCode en AccMask kan saamwerk om te bepaal watter pakkies aanvaar kan word. Hierdie twee registers word gebruik om die ID links-belyn te stel, dit wil sê die hoogste bis (Bit31) van die AccCode en AccMask is in lyn met die hoogste bis van die ID waarde. |
pInitConfig->AccMask | Oor ID-belyning, verwys bylaes: Bylae I: ID-belyningsbesonderhede. Bv.: As jy die waarde van die AccCode stel as 0x24600000 (dws 0x123 word met 21 bisse na links geskuif), AccMask waarde is op 0x00000000 gestel, en dan kan slegs die pakkies met CAN-boodskapraam-ID 0x123 aanvaar word (AccMask-waarde van 0x00000000 dui aan dat alle bisse relevant is |
stukkies). As die AccCode-waarde op 0x24600000 gestel is, word AccMask-waarde op 0x600000 gestel (0x03 word met 21 bisse na links geskuif), en dan kan slegs die pakkies met die CAN-boodskapraam-ID 0x120 ~ 0x123 aanvaar word (AccMask-waarde) 0x600000 dui aan dat behalwe bit0 ~ bit1 ander bisse (bit2 ~ bit10) relevante bis is). Let wel: Hierdie filterinstelling bvamples aan die standaard raam, bvample, hoë 11-bis is die geldige bis; in die geval van die uitgebreide raam, en dan is die geldige ID 29-bis. AccCode en AccMask stel hoog 29-bis as die geldige bietjie! |
|
pInitConfig-> Voorbehou | voorbehou |
pInitConfig->Filter | Filtermodusinstellings verwys asseblief na die afdeling van die filtermodustabel. |
pInitConfig->Tydsberekening0 | Baud rateT0 instelling |
pInitConfig->Tydsberekening1 | Baud rateT1 instelling |
pInitConfig->Modus | Maatskappy af: 0-normale werking 1-Luister-alleen-modus 2-spontane toelating en stuurtoetsmodus (hierdie waarde is uitgesluit van die ZLG-funksiebiblioteek) |
Filtermodustabel:
Waarde | Naam | Beskrywing |
1 | Ontvang alle soorte | Geskik vir beide standaard en verlengde raam! |
2 | Ontvang slegs standaard raam | Geskik vir standaard raam, en verleng |
raam sal direk deur filtrasie verwyder word! | ||
3 | Ontvang slegs verlengde raam | Geskik vir verlengde raam, en standaardraam sal verwyder word deur filtrasie direk! . |
Terugsendings:
Retourwaarde = 1, wat beteken dat die bewerking suksesvol is; = 0 dui aan dat die operasie misluk het; = -1 dui aan dat die toestel nie bestaan nie.
Bv
2.2.4. VCI_ReadBoardInfo
Hierdie funksie word gebruik om die adapter hardeware inligting te lees. Oor die algemeen kan dit geïgnoreer word.
DWORD __stdcall VCI_ReadBoardInfo(DWORD DevType,DWORD
DevIndex,PVCI_BOARD_INFO pInfo);
Parameters:
DevType
Soort toestel. Sien: Adapter toestel tipe definisie.
DevIndex
Toestelindeks, bvample, wanneer daar net een USB-CAN-adapter is, is die indeksnommer 0, wanneer daar veelvuldige USB-CAN-adapters is, begin die indeksnommers in 'n stygende volgorde vanaf 0. pInfo
VCI_BOARD_INFO word gebruik om toestelinligtingstruktuurwyser te stoor.
Terugsendings:
Retourwaarde = 1, wat beteken dat die bewerking suksesvol is; = 0 dui aan dat die operasie misluk het; = -1 dui aan dat die toestel nie bestaan nie.
2.2.5. VCI_GetReceiveNum
Hierdie funksie word gebruik om die ontvangde maar nie geleesde rame in die aangewese ontvangbuffer te spesifiseer nie.
DWORD __stdcall VCI_GetReceiveNum(DWORD DevType,DWORD DevIndex,DWORD CANIndex);
Parameters:
DevType
Soort toestel. Sien: Adapter toestel tipe definisie.
DevIndex
Toestelindeks, bvample, wanneer daar net een USB-CAN-adapter is, is die indeksnommer 0, wanneer daar veelvuldige USB-CAN-adapters is, begin die indeksnommers in 'n stygende volgorde vanaf 0.
CAN-indeks
KAN-kanaalindeks.
Terugsendings:
Gee rame terug wat nog nie gelees is nie.
Bv
#include "ControlCan.h" int ret=VCI_GetReceiveNum(2,0,0);
2.2.6. VCI_ClearBuffer
Hierdie funksie word gebruik om die ontvang- en stuurbuffer van die aangewese kanaal gespesifiseer deur skoon te maak
USB-CAN adapter.
DWORD __stdcall VCI_ClearBuffer (DWORD DevType, DWORD DevIndex, DWORD CANIndex);
Parameters:
DevType
Soort toestel. Sien: Adapter toestel tipe definisie.
DevIndex
Toestelindeks, bvample, wanneer daar net een USB-CAN-adapter is, is die indeksnommer 0, wanneer daar veelvuldige USB-CAN-adapters is, begin die indeksnommers in 'n stygende volgorde vanaf 0.
CAN-indeks
KAN-kanaalindeks.
Terugsendings:
Retourwaarde = 1, wat beteken dat die bewerking suksesvol is; = 0 dui aan dat die operasie misluk het; = -1 dui aan dat die toestel nie bestaan nie.
2.2.7. VCI_StartCAN
Hierdie funksie word gebruik om die CAN-beheerder en die interne onderbreking-ontvangsfunksie van die adapter te begin.
DWORD __stdcall VCI_StartCAN(DWORD DevType,DWORD DevIndex,DWORD CANIndex);
Parameters:
DevType
Soort toestel. Sien: Adapter toestel tipe definisie.
DevIndex
Toestelindeks, bvample, wanneer daar net een USB-CAN-adapter is, is die indeksnommer 0, wanneer daar veelvuldige USB-CAN-adapters is, begin die indeksnommers in 'n stygende volgorde vanaf 0.
CAN-indeks
KAN-kanaalindeks.
Terugsendings:
Retourwaarde = 1, wat beteken dat die bewerking suksesvol is; = 0 dui aan dat die operasie misluk het; = -1 dui aan dat die toestel nie bestaan nie.
2.2.8. VCI_ResetCAN
Hierdie funksie word gebruik om die CAN-beheerder terug te stel.
DWORD __stdcall VCI_ResetCAN(DWORD DevType,DWORD DevIndex,DWORD CANIndex);
Parameters:
DevType
Soort toestel. Sien: Adapter toestel tipe definisie.
DevIndex
Toestelindeks, bvample, wanneer daar net een USB-CAN-adapter is, is die indeksnommer 0, wanneer daar veelvuldige USB-CAN-adapters is, begin die indeksnommers in 'n stygende volgorde vanaf 0.
CAN-indeks
KAN-kanaalindeks.
Terugsendings:
Retourwaarde = 1, wat beteken dat die bewerking suksesvol is; = 0 dui aan dat die operasie misluk het; = -1 dui aan dat die toestel nie bestaan nie.
2.2.9. VCI_Send
Hierdie funksie word gebruik om CAN-boodskapraam te stuur.
DWORD __stdcall VCI_Transmit(DWORD DeviceType,DWORD DeviceInd,DWORD CANInd,PVCI_CAN_OBJ pSend,DWORD Length);
Parameters:
DevType
Soort toestel. Sien: Adapter toestel tipe definisie.
DevIndex
Toestelindeks, bvample, wanneer daar net een USB-CAN-adapter is, is die indeksnommer 0, wanneer daar veelvuldige USB-CAN-adapters is, begin die indeksnommers in 'n stygende volgorde vanaf 0.
CAN-indeks
KAN-kanaalindeks. pStuur
Die eerste adres van die data raam skikkings wat gestuur moet word.
Lengte
Die aantal datarame wat gestuur moet word, die maksimum aantal is 1000, die aanbevole waarde is 48 onder hoë spoed.
Terugsendings:
Gee die werklike aantal rame wat reeds gestuur is, die terugkeerwaarde = -1 dui op 'n toestelfout.
Bv
2.2.10. VCI_Ontvang
Hierdie funksie word gebruik om ontvangs te versoek.
DWORD __stdcall VCI_Receive(DWORD DevType, DWORD DevIndex, DWORD CANIndex, PVCI_CAN_OBJ pReceive, ULONG Len, INT WaitTime);
Parameters:
DevType
Soort toestel. Sien: Adapter toestel tipe definisie.
DevIndex
Toestelindeks, bvample, wanneer daar net een USB-CAN-adapter is, is die indeksnommer 0, wanneer daar veelvuldige USB-CAN-adapters is, begin die indeksnommers in 'n stygende volgorde vanaf 0.
CAN-indeks
KAN-kanaalindeks.
pOntvang
Om die eerste stelwyser van die datarame te ontvang.
Len
Die skikkinglengte van die dataraam moet meer as 2500 wees om normale boodskap terug te gee.
Andersins sal die terugkeerlengte nul wees of die boodskap ontvang is of nie. die adapter stel 'n 2000-raam buffer vir elke kanaal. Gebaseer op sy eie stelsel en werksomgewing, kan die gebruiker 'n gepaste skikkingslengte van 2500 kies.
Wagtyd gereserveer.
Terugsendings:
Gee die aantal rame wat werklik gelees is, -1 dui toestelfoute aan.
Bv
DEEL DRIE ANDER FUNKSIES EN DATA STRUKTUUR BESKRYWING
Hierdie hoofstuk beskryf ander datatipes en funksies van die onversoenbare ZLG-koppelvlakbiblioteek vervat in USB-CAN-adapterkoppelvlakbiblioteek ControlCAN.dll. Doen asseblief
nie hierdie funksies oproep as 'n versoenbare ZLG-model vir sekondêre ontwikkeling gebruik word om nie versoenbaarheid te beïnvloed nie.
3.1 FUNKSIE BESKRYWING
3.1.1. VCI_UsbDeviceReset
Stel USB-CAN-adapter terug, moet die toestel weer oopmaak na terugstelling deur VCI_OpenDevice te gebruik.
DWORD __stdcall VCI_UsbDeviceReset(DWORD DevType,DWORD DevIndex,DWORD Reserved
Parameters:
DevType
Soort toestel. Sien: Adapter toestel tipe definisie.
DevIndex
Toestelindeks, bvample, wanneer daar net een USB-CAN-adapter is, is die indeksnommer 0, wanneer daar veelvuldige USB-CAN-adapters is, begin die indeksnommers in 'n stygende volgorde vanaf 0.
Voorbehou Voorbehou.
Terugsendings:
Retourwaarde = 1, wat beteken dat die bewerking suksesvol is; = 0 dui aan dat die operasie misluk het; = -1 dui aan dat die toestel nie bestaan nie.
bRel = VCI_UsbDeviceReset(nDeviceType, Onafhanklikheid, 0);
3.1.2. VCI_FindUsbDevice2
Wanneer dieselfde rekenaar veelvuldige USB-CAN gebruik, kan gebruiker hierdie funksie gebruik om die huidige toestel te vind.
DWORD __stdcall VCI_FindUsbDevice2(PVCI_BOARD_INFO pInfo);
Parameters:
pInligting
pInfo word gebruik om die parameters van die eerste databufferadreswyser te stoor.
Returns
Gee die nommer van die USB-CAN-adapter terug wat by die rekenaar ingeprop is.
Deel Vier Interface Biblioteek Funksies Gebruik Proses
Ten einde toestelfunksie te vermenigvuldig, het ons addisionele funksies verskaf (funksies aangebied met 'n groen agtergrond), hierdie funksies sluit in: VCI_FindUsbDevice2 VCI_UsbDeviceReset. Tydens die tweede ontwikkeling moet hierdie funksies nie noodwendig opgeroep word nie. Selfs hierdie funksies word geïgnoreer, alle USB-CAN-adapterfunksies kan bereik word.
www.waveshare.com
www.waveshare.com/wiki
Dokumente / Hulpbronne
![]() |
WAVESHARE USB-CAN Bus Tussenvlak Adapter Interface Funksie Biblioteek [pdf] Instruksiehandleiding USB-CAN Bus Interface Adapter Interface Funksie Biblioteek, USB-CAN, Bus Inter face Adapter Interface Funksie Biblioteek, Interface Funksie Biblioteek, Funksie Biblioteek |