USB-CAN Bus Interfazea
Egokigailuaren Interfazearen Funtzioa
Liburutegiaren Erabiltzaileen Argibideak
LEHENENGO ZATIA BUKATUVIEW
Erabiltzaileak USB-CAN bus interfazearen egokitzailea besterik ez badu erabiltzen CAN bus komunikazioaren probara joateko, eta, ondoren, zuzenean erabil dezake hornitutako USB-CAN Tool softwarea probaren datuak bidaltzeko eta jasotzeko.
Erabiltzaileak bere produktuetarako software-programa idatzi nahi badu. Mesedez, irakurri arretaz jarraibide hauek eta hartu erreferentzia sampematen dugun kodea:
⑴ C++ Builder ⑵C# ⑶VC ⑷VB ⑸VB.NET ⑹Delphi ⑺LabVIEW ⑻ LabWindows/CVI ⑼Matlab ⑽QT ⑾Python/Python-can.
Liburutegia garatu file :ControlCAN.lib, ControlCAN.DLL
VC bertsioaren funtzioaren deklarazioa file :ControlCAN.h
VB bertsioaren funtzioaren deklarazioa file: ControlCAN.bas
LaborategiaVIEW bertsio-liburutegiaren funtzio-pakete-modulua: ControlCAN.llb
Delphi bertsioaren funtzioaren deklarazioa file: ControlCAN.pas
BIGARREN ZATIA FUNTZIO BATERAGARRIAK LIBURUTEGIA ETA DATUEN EGITURA
2.1. MOTA DEFINIZIOA
2.1.1. Gailu mota
Motaren definizioa | Idatzi balioa | Deskribapena |
DEV_USBCAN2 | 4 | USBCAN-2A/USBCAN-2C/CANalyst-II MiniPCIe-CAN |
2.1.2. VCI_BOARD_INFO
VCI_BOARD_INFO egiturak USB-CAN Series interfaze txartelaren gailuaren informazioa dauka.
Egitura VCI_ReadBoardInfo funtzioan beteko da.
Kide:
hw_Bertsioa
Hardwarearen bertsio-zenbakia, hamaseitar idazkera. Adib. 0x0100 V1.00 adierazten du.
fw_Bertsioa
Hardwarearen bertsio-zenbakia, hamaseitar idazkera. Adib. 0x0100 V1.00 adierazten du.
2. orrialdea
dr_Bertsioa
Gidariaren bertsio-zenbakia, hamaseitar idazkera. Adib. 0x0100 V1.00 adierazten du.
bertsioan
Interfazea liburutegiaren bertsio-zenbakia, idazkera hamaseitarra. Adibidez, 0x0100 V1.00 adierazten du.
irq_Num
Sistema erreserbatuta.
can_Num
CAN kanalen guztizko kopurua adierazten du.
str_Serial_Num
Arbel-txartel honen serie-zenbakia.
str_hw_Type
Hardware mota, adibidez, "USBCAN V1.00" (Oharra: '\0' kate-amaiera dakar).
Erreserbatuta
Sistema erreserbatuta.
2.1.3. VCI_CAN_OBJ
VCI_Transmit eta VCI_Receive funtzioetan, VCI_CAN_OBJ egitura erabiltzen da CAN mezu-markoa transmititzeko.
Kide:
ID
Mezuaren identifikatzailea. Zuzeneko identifikazio formatua, eskuinera lerrokatuta, ikusi: Lehenengo eranskina: ID-a lerrokatzeko xehetasunak.
Denbora St.amp
stamp denbora-tartearen informazioa, hasi denbora-tartea CAN kontrolagailua hasieratzen denean, unitatea 0. 1ms da.
TimeFlag
Denbora st erabili ala ez dagokionezamp, 1 TimeSt eraginkorra daamp. TimeFlag eta TimeStamp markoa jasotzen denean bakarrik dira esanguratsuak .
SendType
Bidalketa mota. = 0 mota normala adierazten du, = 1 bidalketa bakarra adierazten du.
Urruneko Bandera
Urruneko bandera den ala ez. = 1ek urruneko bandera adierazten du, = 0k datuen bandera adierazten du.
Kanpoko Bandera
Kanpoko bandera den ala ez. = 1ek kanpoko bandera adierazten du, = 0k bandera estandarra adierazten du.
DataLen
Datuen luzera (<=8) ,hau da, datuen luzera.
Datuak
Datu paketeak.
Erreserbatuta
Sistema erreserbatuta.
2.1.4. VCI_INIT_CONFIG
VCI_INIT_CONFIG egiturak CAN-en hasierako konfigurazioa definitzen du. Egitura VCI_InitCan funtzioan beteko da.
Kide:
Sarbidea
Jaso iragazitako onarpen-kodea.
AccMask
Jaso iragazki maskara.
Erreserbatuta
Erreserbatuta.
Iragazkia
Iragazte-metodoa, 0-3 tartea ezartzeko aukera emanez, ikus iragazki moduen taulako 2.2.3 atala xehetasunetarako.
Denbora 0
SJA1000 Baud-abiadura parametroa, Timing0 (BTR0) .
Denbora 1
SJA1000 Baud-abiadura parametroa, Timing1 (BTR1) .
Modua
Funtzionamendu modua, 0 = funtzionamendu normala, 1 = Entzuteko modua, 2 = berezko onarpena eta bidalketa proba modua.
Oharrak:
Iragazkien ezarpenei buruz, ikusi: II. eranskina: CANparametroen konfigurazio-argibideak.
CAN Timing0 eta Timing1 baud-tasa ezartzeko erabiltzen dira, bi parametro hauek hasierako s-etan soilik erabiltzen dira.tage.
Ohiko Baud erreferentzia-taula:
CAN baud-tasa | Denbora 0 (BTR0) | Denbora 1 (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 |
- Erabiltzaileek SJA1000 (16MHz) jarraitu behar dute Baud-tasa parametroa ezartzeko.
- Egokitzaileak ez du onartzen aldi baterako 10K-tik beherako baud-tasa.
2.2. FUNTZIOEN DESKRIBAPENA
2.2.1. VCI_OpenDevice
Funtzio hau gailuak konektatzeko erabiltzen da.
DWORD __stdcall VCI_OpenDevice (DWORD DevType, DWORD DevIndex, DWORD Erreserbatua);
Parametroak:
DevType
Gailu mota. Ikus: gailu egokitzaile motaren definizioa.
DevIndex
Gailuen indizea, adibidezample, USB-CAN egokitzaile bakarra dagoenean, indize-zenbakia 0 da, USB-CAN egokitzaile anitz daudenean, indize-zenbakiak goranzko ordenan 0tik hasita.
Erreserbatuta
Atxikipen-parametroak, bete 0.
Itzulketak:
Itzultzeko balioa = 1, horrek esan nahi du eragiketa arrakastatsua dela; = 0-k eragiketak huts egin duela adierazten du; = -1ek gailua ez dagoela adierazten du.
2.2.2. VCI_CloseDevice
Funtzio hau konexioa ixteko erabiltzen da.
DWORD __stdcall VCI_CloseDevice (DWORD DevType, DWORD DevIndex);
Parametroak:
DevType
Gailu mota. Ikus: gailu egokitzaile motaren definizioa.
DevIndex
Gailuen indizea, adibidezample, USB-CAN egokitzaile bakarra dagoenean, indize-zenbakia 0 da, USB-CAN egokitzaile anitz daudenean, indize-zenbakiak goranzko ordenan 0tik hasita.
Itzulketak:
Itzultzeko balioa = 1, horrek esan nahi du eragiketa arrakastatsua dela; = 0-k eragiketak huts egin duela adierazten du; = -1ek gailua ez dagoela adierazten du.
2.2.3. VCI_InitCan
Funtzio hau zehaztutako CAN hasieratzeko erabiltzen da.
DWORD __stdcall VCI_InitCAN(DWORD DevType, DWORD DevIndex, DWORD CANIndex,
PVCI_INIT_CONFIG pInitConfig);
Parametroak:
DevType
Gailu mota. Ikus: gailu egokitzaile motaren definizioa.
DevIndex
Gailuen indizea, adibidezample, USB-CAN egokitzaile bakarra dagoenean, indize-zenbakia 0 da, USB-CAN egokitzaile anitz daudenean, indize-zenbakiak goranzko ordenan 0tik hasita.
CANIndex
CAN kanalaren indizea, esate baterako, CAN kanal bakarra dagoenean, indize-zenbakia 0 da, bi badira, indize-zenbakia 0 edo 1 izan daiteke.
pInitConfig
Hasierako parametroen egitura. Kideen parametroen zerrenda:
Kide | Deskribapen funtzionala |
pInitConfig->AccCode | AccCode eta AccMask elkarrekin lan egin dezakete zein pakete onar daitezkeen zehazteko. Bi erregistro hauek ID-a ezkerrean lerrokatuta ezartzeko erabiltzen dira, hau da, AccCode-ren eta AccMask-aren bitrik altuena (Bit31) ID balioaren bit altuenarekin lerrokatzen da. |
pInitConfig->AccMask | NAN lerrokatzeari buruz, ikusi eranskinak: I. eranskina: ID lerrokatzearen xehetasunak. Adib.: AccCode-ren balioa 0x24600000 gisa ezartzen baduzu (hau da, 0x123 ezkerrera 21 bitz desplazatzen da), AccMask balioa 0x00000000-n ezarrita dago, eta, ondoren, CAN mezu-markaren IDa 0x123 den paketeak soilik onartu daitezke (AccMask 0x00000000 balioak bit guztiak garrantzitsuak direla adierazten du. |
bits). AccCode balioa 0x24600000-n ezartzen bada, AccMask balioa 0x600000-n ezartzen da (0x03 ezkerrera 21 bitz desplazatzen da), eta, ondoren, CAN mezu-markaren IDa duten paketeak soilik 0x120 ~ 0x123 onar daitezke (AccMask balioa 0x600000-k adierazten du bit0 ~ bit1etik gain beste bit batzuk (bit2 ~ bit10) bit garrantzitsuak direla). Oharra: Iragazki ezarpen hau adibidezampleak marko estandarrera, adibidezample, 11-bit altua da baliozko bit-a; fotograma hedatuaren kasuan, eta orduan baliozko IDa 29 bitekoa da. AccCode eta AccMask 29-bit altua ezarri dute baliozko bit gisa! |
|
pInitConfig->Erreserbatuta | erreserbatuta |
pInitConfig->Iragazkia | Iragazte moduaren ezarpenak, mesedez, ikusi iragazki moduen taulako atala. |
pInitConfig->Timing0 | Baud-tasaT0 ezarpena |
pInitConfig->Timing1 | Baud-tasaT1 ezarpena |
pInitConfig->Modua | Funtzionamendu modua: 0-funtzionamendu normala 1-Entzuteko modua 2 onarpen espontaneoa eta bidalketa proba modua (balio hau ZLG funtzioen liburutegitik kanpo geratzen da) |
Iragazki moduen taula:
Balioa | Izena | Deskribapena |
1 | Mota guztietakoak jaso | Egokia da marko estandarra zein hedatua! |
2 | Jaso ezazu marko estandarra soilik | Marko estandarrerako egokia eta hedatua |
markoa iragazketa bidez kenduko da zuzenean! | ||
3 | Jaso marko hedatua soilik | Marko hedatuetarako egokia da eta marko estandarra kenduko da zuzenean iragaztea! 。 |
Itzulketak:
Itzultzeko balioa = 1, horrek esan nahi du eragiketa arrakastatsua dela; = 0-k eragiketak huts egin duela adierazten du; = -1ek gailua ez dagoela adierazten du.
Adib
2.2.4. VCI_ReadBoardInfo
Funtzio hau egokigailuaren hardwarearen informazioa irakurtzeko erabiltzen da. Oro har, alde batera utzi daiteke.
DWORD __stdcall VCI_ReadBoardInfo(DWORD DevType,DWORD
DevIndex,PVCI_BOARD_INFO pInfo);
Parametroak:
DevType
Gailu mota. Ikus: gailu egokitzaile motaren definizioa.
DevIndex
Gailuen indizea, adibidezample, USB-CAN egokitzaile bakarra dagoenean, indize-zenbakia 0 da, hainbat USB-CAN egokitzaile daudenean, indize-zenbakiak goranzko ordenan 0tik hasita. pInfo
VCI_BOARD_INFO gailuaren informazioaren egituraren erakuslea gordetzeko erabiltzen da.
Itzulketak:
Itzultzeko balioa = 1, horrek esan nahi du eragiketa arrakastatsua dela; = 0-k eragiketak huts egin duela adierazten du; = -1ek gailua ez dagoela adierazten du.
2.2.5. VCI_GetReceiveNum
Funtzio hau jasotzeko baina irakurri gabeko fotogramak zehazteko erabiltzen da izendatutako buffer hartzailean.
DWORD __stdcall VCI_GetReceiveNum (DWORD DevType, DWORD DevIndex, DWORD CANIndex);
Parametroak:
DevType
Gailu mota. Ikus: gailu egokitzaile motaren definizioa.
DevIndex
Gailuen indizea, adibidezample, USB-CAN egokitzaile bakarra dagoenean, indize-zenbakia 0 da, hainbat USB-CAN egokitzaile daudenean, indize-zenbakiak goranzko ordenan 0tik hasita.
CANIndex
CAN kanalaren indizea.
Itzulketak:
Itzuli oraindik irakurri ez diren fotogramak.
Adib
#include "ControlCan.h" int ret=VCI_GetReceiveNum (2,0,0);
2.2.6. VCI_ClearBuffer
Funtzio hau zehaztutako kanalaren jasotzeko eta bidaltzeko buffera garbitzeko erabiltzen da
USB-CAN egokitzailea.
DWORD __stdcall VCI_ClearBuffer (DWORD DevType, DWORD DevIndex, DWORD CANIndex);
Parametroak:
DevType
Gailu mota. Ikus: gailu egokitzaile motaren definizioa.
DevIndex
Gailuen indizea, adibidezample, USB-CAN egokitzaile bakarra dagoenean, indize-zenbakia 0 da, hainbat USB-CAN egokitzaile daudenean, indize-zenbakiak goranzko ordenan 0tik hasita.
CANIndex
CAN kanalaren indizea.
Itzulketak:
Itzultzeko balioa = 1, horrek esan nahi du eragiketa arrakastatsua dela; = 0-k eragiketak huts egin duela adierazten du; = -1ek gailua ez dagoela adierazten du.
2.2.7. VCI_StartCAN
Funtzio hau CAN kontrolagailua eta moldagailuaren barne etenen harrera funtzioa abiarazteko erabiltzen da.
DWORD __stdcall VCI_StartCAN(DWORD DevType, DWORD DevIndex, DWORD CANIndex);
Parametroak:
DevType
Gailu mota. Ikus: gailu egokitzaile motaren definizioa.
DevIndex
Gailuen indizea, adibidezample, USB-CAN egokitzaile bakarra dagoenean, indize-zenbakia 0 da, USB-CAN egokitzaile anitz daudenean, indize-zenbakiak goranzko ordenan 0tik hasita.
CANIndex
CAN kanalaren indizea.
Itzulketak:
Itzultzeko balioa = 1, horrek esan nahi du eragiketa arrakastatsua dela; = 0-k eragiketak huts egin duela adierazten du; = -1ek gailua ez dagoela adierazten du.
2.2.8. VCI_ResetCAN
Funtzio hau CAN kontrolagailua berrezartzeko erabiltzen da.
DWORD __stdcall VCI_ResetCAN (DWORD DevType, DWORD DevIndex, DWORD CANIndex);
Parametroak:
DevType
Gailu mota. Ikus: gailu egokitzaile motaren definizioa.
DevIndex
Gailuen indizea, adibidezample, USB-CAN egokitzaile bakarra dagoenean, indize-zenbakia 0 da, USB-CAN egokitzaile anitz daudenean, indize-zenbakiak goranzko ordenan 0tik hasita.
CANIndex
CAN kanalaren indizea.
Itzulketak:
Itzultzeko balioa = 1, horrek esan nahi du eragiketa arrakastatsua dela; = 0-k eragiketak huts egin duela adierazten du; = -1ek gailua ez dagoela adierazten du.
2.2.9. VCI_Transmit
Funtzio hau CAN mezu-markoa bidaltzeko erabiltzen da.
DWORD __stdcall VCI_Transmit(DWORD DeviceType,DWORD DeviceInd,DWORD CANInd,PVCI_CAN_OBJ pSend,DWORD Length);
Parametroak:
DevType
Gailu mota. Ikus: gailu egokitzaile motaren definizioa.
DevIndex
Gailuen indizea, adibidezample, USB-CAN egokitzaile bakarra dagoenean, indize-zenbakia 0 da, USB-CAN egokitzaile anitz daudenean, indize-zenbakiak goranzko ordenan 0tik hasita.
CANIndex
CAN kanalaren indizea. pBidali
Bidali behar diren datu-markoen matrizeen lehen helbidea.
Luzera
Bidali behar diren datu-marken kopurua, gehienezko kopurua 1000 da, gomendatutako balioa 48 abiadura handian.
Itzulketak:
Itzuli lehendik bidalitako fotogramen benetako kopurua, itzultzeko balioak = -1 gailuaren errorea adierazten du.
Adib
2.2.10. VCI_Jaso
Funtzio hau harrera eskatzeko erabiltzen da.
DWORD __stdcall VCI_Receive(DWORD DevType, DWORD DevIndex, DWORD CANIndex, PVCI_CAN_OBJ pReceive, ULONG Len, INT WaitTime);
Parametroak:
DevType
Gailu mota. Ikus: gailu egokitzaile motaren definizioa.
DevIndex
Gailuen indizea, adibidezample, USB-CAN egokitzaile bakarra dagoenean, indize-zenbakia 0 da, USB-CAN egokitzaile anitz daudenean, indize-zenbakiak goranzko ordenan 0tik hasita.
CANIndex
CAN kanalaren indizea.
pJaso
Datu-markoen lehen multzoko erakuslea jasotzeko.
Len
Datu-markoaren matrizearen luzerak 2500 baino gehiago izan behar du mezu normala itzultzeko.
Bestela, itzuleraren luzera zero izango da mezua jaso ala ez. egokitzaileak 2000 fotogramako buffer bat ezarri zuen kanal bakoitzeko. Bere sisteman eta lan-ingurunean oinarrituta, erabiltzaileak 2500etik aurrera array luzera egokia aukeratu dezake.
Itxaron denbora erreserbatuta.
Itzulketak:
Itzuli benetan irakurri diren fotograma kopurua, -1ek gailuaren erroreak adierazten ditu.
Adib
HIRUGARREN ZATIA BESTE FUNTZIO ETA DATUEN EGITURA AZALPENA
Kapitulu honek ControlCAN.dll USB-CAN egokitzaile interfazearen liburutegian dagoen ZLG interfaze-liburutegi bateraezinaren beste datu-mota eta funtzio batzuk deskribatzen ditu. Mesedez, egin
Ez deitu funtzio horiei bigarren mailako garapenerako ZLG eredu bateragarri bat erabiltzen baduzu, bateragarritasuna ez eragiteko.
3.1 FUNTZIOEN DESKRIBAPENA
3.1.1. VCI_UsbDeviceReset
Berrezarri USB-CAN egokitzailea, gailua berriro ireki behar da berrezarri ondoren VCI_OpenDevice erabiliz.
DWORD __stdcall VCI_UsbDeviceReset (DWORD DevType, DWORD DevIndex, DWORD erreserbatuta
Parametroak:
DevType
Gailu mota. Ikus: gailu egokitzaile motaren definizioa.
DevIndex
Gailuen indizea, adibidezample, USB-CAN egokitzaile bakarra dagoenean, indize-zenbakia 0 da, USB-CAN egokitzaile anitz daudenean, indize-zenbakiak goranzko ordenan 0tik hasita.
Erreserbatua Erreserbatua.
Itzulketak:
Itzultzeko balioa = 1, horrek esan nahi du eragiketa arrakastatsua dela; = 0-k eragiketak huts egin duela adierazten du; = -1ek gailua ez dagoela adierazten du.
bRel = VCI_UsbDeviceReset (nDeviceType, Independentzia, 0);
3.1.2. VCI_FindUsbDevice2
PC bera USB-CAN bat baino gehiago erabiltzen duenean, erabiltzaileak funtzio hau erabil dezake uneko gailua aurkitzeko.
DWORD __stdcall VCI_FindUsbDevice2(PVCI_BOARD_INFO pInfo);
Parametroak:
pInformazioa
pInfo lehen datu-buffer helbide-erakuslearen parametroak gordetzeko erabiltzen da.
Itzuliak
Itzuli ordenagailuan konektatutako USB-CAN egokigailuaren zenbakia.
Laugarren zatia Interfaze-liburutegiaren funtzioak Prozesua erabiliz
Gailuaren funtzioa biderkatzeko, funtzio osagarriak eman ditugu (hondo berdearekin aurkezten diren funtzioak), funtzio hauek honako hauek dira: VCI_FindUsbDevice2 VCI_UsbDeviceReset. Bigarren garapenean, funtzio hauek ez dira derrigorrez deitu behar. Funtzio hauek alde batera uzten badira ere, USB-CAN egokigailuaren funtzio guztiak lor daitezke.
www.waveshare.com
www.waveshare.com/wiki
Dokumentuak / Baliabideak
![]() |
WAVESHARE USB-CAN Bus Interface Egokigailua Interfazea Funtzio Liburutegia [pdf] Argibideen eskuliburua USB-CAN Bus Interfazearen Egokitzailea Interfazearen Funtzio Liburutegia, USB-CAN, Bus Interfazearen Egokitzailea Interfazearen Funtzio Liburutegia, Interfazearen Funtzio Liburutegia, Funtzio Liburutegia |