USB-CAN Bhazi Interface
Adapter Interface Basa
Raibhurari Yemushandisi Murayiridzo
CHIKAMU CHEKUPEDZISIRAVIEW
Kana mushandisi achingoshandisa USB-CAN bhazi interface adapta kuenda paCAN bhazi yekutaurirana bvunzo, uye ipapo anogona kushandisa zvakananga akapihwa USB-CAN Tool software yekutumira uye kugamuchira data yebvunzo.
Kana mushandisi achida kunyora software chirongwa chezvigadzirwa zvake. Ndapota nyatsoverenga mirairo inotevera uye tora chirevo kubva kune sample code isu tinopa:
⑴ C++Builder ⑵C# ⑶VC ⑷VB ⑸VB.NET ⑹Delphi ⑺LabVIEW ⑻ LabWindows/CVI ⑼Matlab ⑽QT ⑾Python/Python-can.
Gadzira raibhurari file : ControlCAN.lib, ControlCAN.DLL
VC shanduro basa chiziviso file :ControlCAN.h
VB shanduro basa chiziviso file: ControlCAN.bas
LabVIEW shanduro raibhurari basa pasuru module: ControlCAN.llb
Delphi shanduro basa chiziviso file: ControlCAN.pas
CHIKAMU CHECHIPIRI INOFANIRA FUNCTION LIBRARY UYE DATA STRUCTURE
2.1. TYPE DEFINITION
2.1.1. Device Type
Type Definition | Type value | Tsanangudzo |
DEV_USBCAN2 | 4 | USBCAN-2A/USBCAN-2C/CANalyst-II MiniPCIe-CAN |
2.1.2. VCI_BOARD_INFO
VCI_BOARD_INFO chimiro chine USB-CAN Series interface kadhi mudziyo ruzivo.
Chimiro chichazadzwa muVCI_ReadBoardInfo basa.
Nhengo:
hw_Version
Hardware version nhamba, hexadecimal notation. Eg 0x0100 inomiririra V1.00.
fw_Version
Hardware version nhamba, hexadecimal notation. Eg 0x0100 inomiririra V1.00.
Peji 2
dr_Version
Nhamba yevhezheni yemutyairi, hexadecimal notation. Eg 0x0100 inomiririra V1.00.
mu_Version
Interface raibhurari vhezheni nhamba, hexadecimal notation. Eg 0x0100 inomiririra V1.00.
irq_Num
System reserved.
anogona_Num
Inomiririra nhamba yese yeCAN chiteshi.
str_Serial_Num
Iyi board card's serial number.
str_hw_Type
Rudzi rwe Hardware, senge "USBCAN V1.00" (Cherechedza: Inosanganisira tambo temu terminator '\0').
Reserved
System reserved.
2.1.3. VCI_CAN_OBJ
Mune mabasa VCI_Transmit uye VCI_Receive, VCI_CAN_OBJ chimiro chinoshandiswa kufambisa CAN meseji furemu.
Nhengo:
ID
Mharidzo identifier. Yakananga ID fomati, yakarongedzwa-kurudyi, ndapota tarisa kune: Annex One: ID Alignment Details.
TimeStamp
Kugamuchira stamp ruzivo rwenguva yakatarwa, tanga nguva apo CAN controller yatangwa, chikwata chiri 0. 1ms.
TimeFlag
Panyaya yekuti kushandisa nguva stamp, 1 ndiyo inoshanda TimeStamp. TimeFlag uye TimeStamp zvinongoreva chete kana furemu yagamuchirwa .
SendType
Kutumira mhando. = 0 inoratidza Normal type, = 1 inoratidza Single Send.
RemoteFlag
Kana iri kure mureza. = 1 inoratidza mureza uri kure, = 0 inoratidza mureza wedata.
ExternFlag
Kana iri mureza wekunze. = 1 inoratidza mureza wekunze, = 0 inoratidza mureza wakajairwa.
DataLen
Kureba kwedata(<=8) ,kureva, kureba kwedata.
Data
Packet data.
Reserved
System reserved.
2.1.4. VCI_INIT_CONFIG
VCI_INIT_CONFIG chimiro chinotsanangura kumisikidzwa kwekutanga kweCAN. Chimiro chichazadzwa muVCI_InitCan basa.
Nhengo:
AccCode
Gamuchira kodhi yekugamuchira yakasefa.
AccMask
Gamuchira sefa mask.
Reserved
Reserved.
Sefa
Nzira yekusefa, inobvumira kuseta 0-3, tarisa kuchikamu 2.2.3 cheiyo sefa mode tafura yeruzivo.
Nguva0
SJA1000 Baud rate parameter, Timing0 (BTR0) .
Nguva1
SJA1000 Baud rate parameter, Timing1 (BTR1) .
Mode
Operating mode, 0 = yakajairika kushanda, 1 = Teerera-chete modhi, 2 = inongoerekana yapinda uye kutumira bvunzo maitiro.
Mashoko:
Nezveseti yekusefa ndapota tarisa kune: Annex II: CANparameter setup mirairo.
CAN Timing0 uye Timing1 inoshandiswa kuseta baud chiyero, maviri aya paramita anongo shandiswa pakutanga s.tage.
Yakajairika Baud referensi tafura:
CAN Baud rate | Nguva0(BTR0) | Nguva1(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 |
- Vashandisi vanongoda kutevera SJA1000 (16MHz) kuseta iyo Baud rate parameter.
- Iyo adapta haitsigire kwechinguva Baud mwero pazasi 10K.
2.2. FUNCTION DESCRIPTION
2.2.1. VCI_OpenDevice
Iri basa rinoshandiswa kubatanidza zvishandiso.
DWORD __stdcall VCI_OpenDevice(DWORD DevType,DWORD DevIndex,DWORD Reserved);
Parameters:
DevType
Chishandiso mhando. Ona: tsananguro yemhando yeAdapter mudziyo.
DevIndex
Device Index, yeexample, kana pachingove neadapter imwe chete ye-USB-CAN, nhamba yenhamba iri 0, kana paine maadapter akawanda e-USB-CAN, nhamba dzeindex mukukwira kunotanga kubva pa0.
Reserved
Kuchengeta paramita, zadza 0.
Inodzoka:
Kudzorera kukosha = 1, zvinoreva kuti kushanda kwakabudirira; = 0 inoratidza kuti kushanda kwakundikana; = -1 inoratidza kuti mudziyo haupo.
2.2.2. VCI_CloseDevice
Iri basa rinoshandiswa kuvhara kubatana.
DWORD __stdcall VCI_CloseDevice(DWORD DevType,DWORD DevIndex);
Parameters:
DevType
Chishandiso mhando. Ona: tsananguro yemhando yeAdapter mudziyo.
DevIndex
Device Index, yeexample, kana pachingove neadapter imwe chete ye-USB-CAN, nhamba yenhamba iri 0, kana paine maadapter akawanda e-USB-CAN, nhamba dzeindex mukukwira kunotanga kubva pa0.
Inodzoka:
Kudzorera kukosha = 1, zvinoreva kuti kushanda kwakabudirira; = 0 inoratidza kuti kushanda kwakundikana; = -1 inoratidza kuti mudziyo haupo.
2.2.3. VCI_InitCan
Iri basa rinoshandiswa kutanga iyo CAN yakatsanangurwa.
DWORD __stdcall VCI_InitCAN(DWORD DevType, DWORD DevIndex, DWORD CANIndex,
PVCI_INIT_CONFIG piNitConfig;
Parameters:
DevType
Chishandiso mhando. Ona: tsananguro yemhando yeAdapter mudziyo.
DevIndex
Device Index, yeexample, kana pachingove neadapter imwe chete ye-USB-CAN, nhamba yenhamba iri 0, kana paine maadapter akawanda e-USB-CAN, nhamba dzeindex mukukwira kunotanga kubva pa0.
CANIndex
CAN chiteshi indekisi, senge paine imwe chete CAN chiteshi, iyo index nhamba ndeye 0, kana paine maviri, iyo index nhamba inogona kuva 0 kana 1.
pInitConfig
Initialization parameter chimiro. Parameter list yenhengo:
Member | Tsanangudzo Yekushanda |
pInitConfig-> AccCode | AccCode uye AccMask inogona kushanda pamwechete kuona kuti ndeapi mapaketi anogona kugamuchirwa. Aya marejista maviri anoshandiswa kuseta ID yakatarisana-kuruboshwe, kureva, iyo yepamusoro bhiti (Bit31) yeAccCode uye AccMask inopindirana neiyo yepamusoro bhiti yehuwandu hweID. |
pInitConfig-> AccMask | Nezve ID kurongeka tarisa annexes: Annex I: ID yekumisikidza ruzivo. Eg: Kana iwe ukaisa kukosha kweAccCode se0x24600000 (kureva 0x123 inochinjirwa kuruboshwe ne21 bits), kukosha kweAccMask yakaiswa ku 0x00000000, uye ipapo chete mapaketi ane CAN meseji furemu ID iri 0x123 inogona kugamuchirwa (AccMask kukosha kwe0x00000000 inoratidza kuti mabits ese akakodzera. |
zvimedu). Kana iyo AccCode kukosha yaiswa ku 0x24600000, kukosha kweAccMask kunoiswa ku 0x600000 (0x03 inochinjirwa kuruboshwe ne21 bits), uyezve mapaketi ane CAN meseji furemu ID ndeye 0x120 ~ 0x123 inogona kugamuchirwa (AccMask kukosha. 0x600000 inoratidza kuti kunze kwe bit0 ~ bit1 mamwe mabhiti (bit2 ~ bit10) akakosha zvishoma). Cherechedza: Sefa iyi exampLes kune yakajairwa furemu, semuenzanisoample, yakakwirira 11-bit ibhiti rinoshanda; kana iri iyo furemu yakawedzerwa, uyezve iyo inoshanda ID ndeye 29-bit. AccCode uye AccMask yakaseta yakakwira 29-bit seyo inoshanda! |
|
pInitConfig-> Yakachengetedzwa | reserved |
pInitConfig-> Sefa | Kusefa modhi marongero ndapota tarisa kune chikamu cheiyo sefa mode tafura. |
pInitConfig-> Nguva0 | Baud rateT0 kuseta |
pInitConfig-> Nguva1 | Baud rateT1 kuseta |
pInitConfig-> Mode | Inoshanda nzira: 0-yakajairika kushanda 1-Teerera-chete maitiro 2-spontaneous kubvuma uye kutumira bvunzo maitiro (iyi kukosha haina kubatanidzwa kubva kuZLG basa raibhurari) |
Sefa mode table:
Value | Zita | Tsanangudzo |
1 | Gamuchira marudzi ese | Inokodzera kune ese akajairwa uye akawedzera furemu! |
2 | Gamuchira fremu yakajairwa chete | Inokodzera kune yakajairwa furemu, uye yakawedzerwa |
furemu ichabviswa nekusefa zvakananga! | ||
3 | Gamuchira fremu yakawedzerwa chete | Inokodzera kune yakawedzera furemu, uye yakajairwa furemu ichabviswa ne kusefa zvakananga! . |
Inodzoka:
Kudzorera kukosha = 1, zvinoreva kuti kushanda kwakabudirira; = 0 inoratidza kuti kushanda kwakundikana; = -1 inoratidza kuti mudziyo haupo.
Eg
2.2.4. VCI_ReadBoardInfo
Iri basa rinoshandiswa kuverenga iyo adapta Hardware ruzivo. Kazhinji kutaura, inogona kuregererwa.
DWORD __stdcall VCI_ReadBoardInfo(DWORD DevType,DWORD
DevIndex,PVCI_BOARD_INFO pInfo);
Parameters:
DevType
Chishandiso mhando. Ona: tsananguro yemhando yeAdapter mudziyo.
DevIndex
Device Index, yeexample, kana paine adapta imwe chete ye-USB-CAN, nhamba yenhamba ndi 0, kana paine maadapter akawanda e-USB- CAN, nhamba dzenhamba dziri mukukwira kunotanga kubva pa0. pInfo
VCI_BOARD_INFO inoshandiswa kuchengetedza mudziyo weruzivo chimiro chechiratidzo.
Inodzoka:
Kudzorera kukosha = 1, zvinoreva kuti kushanda kwakabudirira; = 0 inoratidza kuti kushanda kwakundikana; = -1 inoratidza kuti mudziyo haupo.
2.2.5. VCI_GetReceiveNum
Iri basa rinoshandiswa kutsanangura zvakatambirwa asi harina kuverengerwa mafuremu mune yakasarudzwa yekugamuchira buffer.
DWORD __stdcall VCI_GetReceiveNum(DWORD DevType,DWORD DevIndex,DWORD CANIndex);
Parameters:
DevType
Chishandiso mhando. Ona: tsananguro yemhando yeAdapter mudziyo.
DevIndex
Device Index, yeexample, kana pachingove neadapter imwe chete ye-USB-CAN, nhamba yenhamba iri 0, kana paine maadapter akawanda e-USB-CAN, nhamba dzeindekisi mukukwira kunotanga kubva pa0.
CANIndex
CAN chiteshi index.
Inodzoka:
Dzosa mafuremu asati averengwa.
Eg
#include “ControlCan.h” int ret=VCI_GetReceiveNum(2,0,0);
2.2.6. VCI_ClearBuffer
Iri basa rinoshandiswa kujekesa iyo inogashira uye kutumira buffer yeyakatarwa chiteshi inotsanangurwa na
USB-CAN adapta.
DWORD __stdcall VCI_ClearBuffer(DWORD DevType,DWORD DevIndex,DWORD CANIndex);
Parameters:
DevType
Chishandiso mhando. Ona: tsananguro yemhando yeAdapter mudziyo.
DevIndex
Device Index, yeexample, kana pachingove neadapter imwe chete ye-USB-CAN, nhamba yenhamba iri 0, kana paine maadapter akawanda e-USB-CAN, nhamba dzeindekisi mukukwira kunotanga kubva pa0.
CANIndex
CAN chiteshi index.
Inodzoka:
Kudzorera kukosha = 1, zvinoreva kuti kushanda kwakabudirira; = 0 inoratidza kuti kushanda kwakundikana; = -1 inoratidza kuti mudziyo haupo.
2.2.7. VCI_StartCAN
Iri basa rinoshandiswa kutanga iyo CAN controller uye yemukati yekukanganisa yekugamuchira basa reiyo adapta.
DWORD __stdcall VCI_StartCAN(DWORD DevType,DWORD DevIndex,DWORD CANIndex);
Parameters:
DevType
Chishandiso mhando. Ona: tsananguro yemhando yeAdapter mudziyo.
DevIndex
Device Index, yeexample, kana pachingove neadapter imwe chete ye-USB-CAN, nhamba yenhamba iri 0, kana paine maadapter akawanda e-USB-CAN, nhamba dzeindex mukukwira kunotanga kubva pa0.
CANIndex
CAN chiteshi index.
Inodzoka:
Kudzorera kukosha = 1, zvinoreva kuti kushanda kwakabudirira; = 0 inoratidza kuti kushanda kwakundikana; = -1 inoratidza kuti mudziyo haupo.
2.2.8. VCI_ResetCAN
Iri basa rinoshandiswa kugadzirisa zvakare CAN controller.
DWORD __stdcall VCI_ResetCAN(DWORD DevType,DWORD DevIndex,DWORD CANIndex);
Parameters:
DevType
Chishandiso mhando. Ona: tsananguro yemhando yeAdapter mudziyo.
DevIndex
Device Index, yeexample, kana pachingove neadapter imwe chete ye-USB-CAN, nhamba yenhamba iri 0, kana paine maadapter akawanda e-USB-CAN, nhamba dzeindex mukukwira kunotanga kubva pa0.
CANIndex
CAN chiteshi index.
Inodzoka:
Kudzorera kukosha = 1, zvinoreva kuti kushanda kwakabudirira; = 0 inoratidza kuti kushanda kwakundikana; = -1 inoratidza kuti mudziyo haupo.
2.2.9. VCI_Transmit
Iri basa rinoshandiswa kutumira CAN meseji furemu.
DWORD __stdcall VCI_Transmit(DWORD DeviceType,DWORD DeviceInd,DWORD CANInd,PVCI_CAN_OBJ pSend,DWORD Length);
Parameters:
DevType
Chishandiso mhando. Ona: tsananguro yemhando yeAdapter mudziyo.
DevIndex
Device Index, yeexample, kana pachingove neadapter imwe chete ye-USB-CAN, nhamba yenhamba iri 0, kana paine maadapter akawanda e-USB-CAN, nhamba dzeindex mukukwira kunotanga kubva pa0.
CANIndex
CAN chiteshi index. pSend
Kero yekutanga yedata frame arrays inofanirwa kutumirwa.
Urefu
Huwandu hwemafuremu e data anofanirwa kutumirwa, huwandu hwepamusoro ndeye 1000, iyo inokurudzirwa kukosha ndeye 48 pasi pekumhanya kukuru.
Inodzoka:
Dzosera nhamba chaiyo yemafuremu akatotumirwa, kukosha kwekudzoka = -1 kunoratidza kukanganisa kwemudziyo.
Eg
2.2.10. VCI_Receive
Iri basa rinoshandiswa kukumbira kugamuchira.
DWORD __stdcall VCI_Receive(DWORD DevType, DWORD DevIndex, DWORD CANIndex, PVCI_CAN_OBJ pReceive, ULONG Len, INT WaitTime);
Parameters:
DevType
Chishandiso mhando. Ona: tsananguro yemhando yeAdapter mudziyo.
DevIndex
Device Index, yeexample, kana pachingove neadapter imwe chete ye-USB-CAN, nhamba yenhamba iri 0, kana paine maadapter akawanda e-USB-CAN, nhamba dzeindex mukukwira kunotanga kubva pa0.
CANIndex
CAN chiteshi index.
pReceive
Kuti ugamuchire yekutanga seti pointer ye data mafuremu.
Len
Kureba kweiyo data frame kunofanirwa kudarika 2500 kudzorera meseji yakajairika.
Zvikasadaro, kureba kwekudzoka kuchava zero kunyangwe meseji yagamuchirwa kana kwete. iyo adapta inoisa 2000-frame buffer kune yega yega chiteshi. Zvichienderana nehurongwa hwake uye nharaunda yekushanda, mushandisi anogona kusarudza akakodzera array kureba kubva ku2500.
WaitTime Reserved.
Inodzoka:
Dzosa nhamba yemafuremu atoverengwa, -1 inoratidza kukanganisa kwemudziyo.
Eg
CHIKAMU CHECHITATU MAMWE MABASA UYE DATA STRUCTURE DESCRIPTION
Ichi chitsauko chinotsanangura mamwe marudzi edata uye mashandiro eraibhurari isingaenderane yeZLG iri mu USB-CAN adapter interface library ControlCAN.dll. Ndapota ita
usashevedze mabasa aya kana uchishandisa inoenderana ZLG modhi yekusimudzira yechipiri kuitira kuti isakanganisa kuenderana.
3.1 FUNCTION DESCRIPTION
3.1.1. VCI_UsbDeviceReset
Reset USB-CAN adapta, inoda kuvhura zvakare mudziyo mushure mekugadzirisa patsva uchishandisa VCI_OpenDevice.
DWORD __stdcall VCI_UsbDeviceReset(DWORD DevType,DWORD DevIndex,DWORD Reserved
Parameters:
DevType
Chishandiso mhando. Ona: tsananguro yemhando yeAdapter mudziyo.
DevIndex
Device Index, yeexample, kana pachingove neadapter imwe chete ye-USB-CAN, nhamba yenhamba iri 0, kana paine maadapter akawanda e-USB-CAN, nhamba dzeindex mukukwira kunotanga kubva pa0.
Reserved Reserved.
Inodzoka:
Kudzorera kukosha = 1, zvinoreva kuti kushanda kwakabudirira; = 0 inoratidza kuti kushanda kwakundikana; = -1 inoratidza kuti mudziyo haupo.
bRel = VCI_UsbDeviceReset(nDeviceType, Independence, 0);
3.1.2. VCI_FindUsbDevice2
Kana iyo PC imwe chete ichishandisa akawanda USB-CAN, mushandisi anogona kushandisa basa iri kutsvaga chishandiso chazvino.
DWORD __stdcall VCI_FindUsbDevice2(PVCI_BOARD_INFO pInfo);
Parameters:
pInfo
pInfo inoshandiswa kuchengetedza maparamita ekutanga data buffer kero pointer.
Returns
Dzosa nhamba yeadapter ye-USB-CAN yakanamwa mukombuta.
Chikamu Chechina Interface Raibhurari Mabasa Uchishandisa Maitiro
Kuti tiwedzere mashandiro emudziyo, isu takapa mamwe mabasa (mabasa anoratidzwa neyakasvibirira kumashure), mabasa aya anosanganisira: VCI_FindUsbDevice2 VCI_UsbDeviceReset. Panguva yekuvandudza kwechipiri, mabasa aya haafanire kukumbirwa. Kunyangwe aya mabasa anofuratirwa, ese USB-CAN adapta mabasa anogona kuwanikwa.
www.waveshare.com
www.waveshare.com/wiki
Zvinyorwa / Zvishandiso
![]() |
WAVESHARE USB-CAN Bhazi Inter yakatarisana neAdapter Interface Function Library [pdf] Bhuku reMirayiridzo USB-CAN Bhazi Inter yakatarisana neAdapter Interface Function Library, USB-CAN, Bhazi Inter face Adapter Interface Function Library, Interface Function Library, Function Library. |