USB-CAN Bus Interface
Adapter Interface Išė
Itọnisọna Olumulo Library
PART ONE LORIVIEW
Ti olumulo kan ba lo ohun ti nmu badọgba wiwo ọkọ akero USB-CAN lati lọ si idanwo ibaraẹnisọrọ ọkọ akero CAN, lẹhinna o le lo sọfitiwia Ọpa USB-CAN ti a pese fun fifiranṣẹ ati gbigba data idanwo naa.
Ti olumulo ba pinnu lati kọ eto sọfitiwia fun awọn ọja tirẹ. Jọwọ farabalẹ ka awọn ilana atẹle ki o gba itọkasi lati sampkoodu ti a pese:
⑴ C++ Akole ⑵C# ⑶VC ⑷VB ⑸VB.NET ⑹Delphi ⑺LabVIEW ⑻ LabWindows/CVI ⑼Matlab ⑽QT ⑾Python/Python-can.
Dagbasoke ìkàwé file : ControlCAN.lib, ControlCAN.DLL
VC version iṣẹ ìkéde file : ControlCAN.h
Ìkéde iṣẹ version VB file: ControlCAN.bas
LabVIEW module iṣẹ ìkàwé ti ikede: ControlCAN.llb
Ìkéde iṣẹ ti ikede Delphi file: ControlCAN.pas
APA KEJI Ibaramu Išė ikawe ATI DATA igbekale
2.1. ITUMO ORISI
2.1.1. Ẹrọ Iru
Iru Itumọ | Iru iye | Apejuwe |
DEV_USBCAN2 | 4 | USBCAN-2A/USBCAN-2C/ Canalyst-II MiniPCIe-CAN |
2.1.2. VCI_BOARD_INFO
VCI_BOARD_INFO be ni USB-CAN Series ni wiwo kaadi alaye ẹrọ.
Eto naa yoo kun ni iṣẹ VCI_ReadBoardInfo.
Egbe:
hw_Ẹya
Nọmba ẹya Hardware, akiyesi hexadecimal. Fun apẹẹrẹ 0x0100 duro fun V1.00.
fw_Ẹya
Nọmba ẹya Hardware, akiyesi hexadecimal. Fun apẹẹrẹ 0x0100 duro fun V1.00.
Oju-iwe 2
Dr_Ẹya
Nọmba ikede awakọ, ami akiyesi hexadecimal. Fun apẹẹrẹ 0x0100 duro fun V1.00.
ni_Ẹya
Nọmba ẹya ikawe ni wiwo, ami akiyesi hexadecimal. Fun apẹẹrẹ 0x0100 duro fun V1.00.
irq_Num
Eto ni ipamọ.
le_Num
Ṣe aṣoju nọmba lapapọ ti ikanni CAN.
str_Serial_Nọm
Yi ọkọ kaadi ká nọmba ni tẹlentẹle.
str_hw_Iru
Iru hardware, gẹgẹ bi "USBCAN V1.00" (Akiyesi: Pẹlu okun terminator '\0').
Ni ipamọ
Eto ni ipamọ.
2.1.3. VCI_CAN_OBJ
Ni awọn iṣẹ VCI_Transmit ati VCI_Receive, VCI_CAN_OBJ be ti wa ni lo lati atagba CAN ifiranṣẹ fireemu.
Egbe:
ID
Idanimọ ifiranṣẹ. Ọna ID Taara, titọ-ọtun, jọwọ tọka si: Asopọmọra Ọkan: Awọn alaye Iṣatunṣe ID.
TimeStamp
Gbigba Stamp alaye ti awọn akoko fireemu, bẹrẹ akoko nigbati awọn CAN oludari ti wa ni initialized, awọn kuro ni 0. 1ms.
TimeFlag
Ni awọn ofin boya lati lo akoko Stamp, 1 jẹ TimeSt ti o munadokoamp. TimeFlag ati TimeStamp jẹ itumọ nikan nigbati fireemu ba gba.
SendType
Iru fifiranṣẹ. = 0 tọkasi Deede iru, = 1 tọkasi Nikan Firanṣẹ.
RemoteFlag
Boya asia latọna jijin ni. = 1 tọkasi asia latọna jijin, = 0 tọkasi asia data.
ExternFlag
Boya o jẹ asia ita. = 1 tọkasi asia ode, = 0 tọkasi asia boṣewa.
DataLen
Gigun data (<= 8) , iyẹn ni, ipari data.
Data
Data soso.
Ni ipamọ
Eto ni ipamọ.
2.1.4. VCI_INIT_CONFIG
VCI_INIT_CONFIG be asọye awọn initialization iṣeto ni ti CAN. Eto naa yoo kun ni iṣẹ VCI_InitCan.
Egbe:
AccCode
Gba koodu gbigba filtered.
AccMask
Gba iboju iboju.
Ni ipamọ
Ni ipamọ.
Àlẹmọ
Ọna sisẹ, gbigba eto ni iwọn 0-3, tọka si apakan 2.2.3 ti tabili ipo àlẹmọ fun awọn alaye.
Àkókò 0
SJA1000 Baud oṣuwọn paramita, Time0 (BTR0) .
Àkókò 1
SJA1000 Baud oṣuwọn paramita, Time1 (BTR1) .
Ipo
Ipo iṣẹ, 0 = iṣẹ deede, 1 = Ipo gbigbọ-nikan, 2 = gbigba wọle lẹẹkọkan ati ipo idanwo fifiranṣẹ.
Awọn akiyesi:
Nipa awọn eto àlẹmọ jọwọ tọka si: Annex II: Awọn ilana iṣeto CANparameter.
CAN Time0 ati Time1 ni a lo lati ṣeto oṣuwọn baud, awọn paramita meji wọnyi ni a lo nikan ni ibẹrẹ stage.
Tabili itọkasi Baud ti aṣa:
CAN Baud oṣuwọn | Àkókò (BTR0) | Àkókò (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 |
- Awọn olumulo nikan nilo lati tẹle SJA1000 (16MHz) lati ṣeto paramita oṣuwọn Baud.
- Ohun ti nmu badọgba ko ṣe atilẹyin oṣuwọn Baud fun igba diẹ ni isalẹ 10K.
2.2. Apejuwe IṢẸ
2.2.1. VCI_OpenDevice
Iṣẹ yii ni a lo lati so awọn ẹrọ pọ.
DWORD __stdcall VCI_OpenDevice(DWORD DevType,DWORD DevIndex,DWORD Ni ipamọ);
Awọn paramita:
DevType
Iru ẹrọ. Wo: Itumọ iru ẹrọ Adapter.
Atọka Dev
Atọka ẹrọ, fun example, nigba ti ohun ti nmu badọgba USB-CAN kan wa, nọmba atọka jẹ 0, nigbati ọpọlọpọ awọn oluyipada USB-CAN ba wa, awọn nọmba atọka ni aṣẹ ti o bẹrẹ lati 0.
Ni ipamọ
Awọn paramita idaduro, fọwọsi 0.
Pada:
Pada iye = 1, eyi ti o tumo si wipe awọn isẹ ti wa ni aseyori; = 0 tọkasi wipe isẹ ti kuna; = -1 tọkasi wipe ẹrọ ko ni tẹlẹ.
2.2.2. VCI_CloseDevice
Iṣẹ yii ni a lo lati pa asopọ naa.
DWORD __stdcall VCI_CloseDevice(DWORD DevType,DWORD DevIndex);
Awọn paramita:
DevType
Iru ẹrọ. Wo: Itumọ iru ẹrọ Adapter.
Atọka Dev
Atọka ẹrọ, fun example, nigba ti ohun ti nmu badọgba USB-CAN kan wa, nọmba atọka jẹ 0, nigbati ọpọlọpọ awọn oluyipada USB-CAN ba wa, awọn nọmba atọka ni aṣẹ ti o bẹrẹ lati 0.
Pada:
Pada iye = 1, eyi ti o tumo si wipe awọn isẹ ti wa ni aseyori; = 0 tọkasi wipe isẹ ti kuna; = -1 tọkasi wipe ẹrọ ko ni tẹlẹ.
2.2.3. VCI_InitCan
Iṣẹ yi ti wa ni lo lati initialize awọn pàtó kan CAN.
DWORD __stdcall VCI_InitCAN(DWORD DevType, DWORD DevIndex, DWORD CANIndex,
PVCI_INIT_CONFIG pInitConfig);
Awọn paramita:
DevType
Iru ẹrọ. Wo: Itumọ iru ẹrọ Adapter.
Atọka Dev
Atọka ẹrọ, fun example, nigba ti ohun ti nmu badọgba USB-CAN kan wa, nọmba atọka jẹ 0, nigbati ọpọlọpọ awọn oluyipada USB-CAN ba wa, awọn nọmba atọka ni aṣẹ ti o bẹrẹ lati 0.
CANIindex
Atọka ikanni CAN, gẹgẹbi nigbati ikanni CAN kan wa, nọmba atọka jẹ 0, ti o ba jẹ meji, nọmba atọka le jẹ 0 tabi 1.
pInitConfig
Ilana paramita ibẹrẹ. Akojọ paramita ti awọn ọmọ ẹgbẹ:
Omo egbe | Apejuwe iṣẹ-ṣiṣe |
pInitConfig->AccCode | AccCode ati AccMask le ṣiṣẹ papọ lati pinnu iru awọn idii ti o le gba. Awọn iforukọsilẹ meji wọnyi ni a lo lati ṣeto ID ti o wa ni apa osi, iyẹn ni, bit ti o ga julọ (Bit31) ti AccCode ati AccMask ni ibamu pẹlu iwọn ti o ga julọ ti iye ID naa. |
pInitConfig->AccMask | Nipa titete ID tọka awọn afikun: Annex I: ID titete alaye. Fun apẹẹrẹ: Ti o ba ṣeto iye AccCode bi 0x24600000 (ie 0x123 ti yipada si apa osi nipasẹ awọn bit 21), iye AccMask Ti ṣeto si 0x00000000, ati lẹhinna awọn apo-iwe nikan pẹlu ID fireemu ifiranṣẹ CAN jẹ 0x123 ni a le gba (iye AccMask ti 0x00000000 tọkasi pe gbogbo awọn die-die jẹ pataki |
die-die). Ti iye AccCode ti ṣeto si 0x24600000, iye AccMask ti ṣeto si 0x600000 (0x03 ti yipada si apa osi nipasẹ awọn iwọn 21), lẹhinna awọn apo-iwe nikan pẹlu ID fireemu ifiranṣẹ CAN jẹ 0x120 ~ 0x123 le gba (iye AccMask). 0x600000 tọkasi pe yato si lati bit0 ~ bit1 miiran die-die (bit2 ~ bit10) ni o yẹ bit). Akiyesi: Eto àlẹmọ yii examples si awọn boṣewa fireemu, fun example, ga 11-bit ni awọn wulo bit; ninu ọran ti fireemu ti o gbooro sii, ati lẹhinna ID ti o wulo jẹ 29-bit. AccCode ati AccMask ṣeto ga 29-bit bi awọn wulo bit! |
|
pInitConfig-> Ni ipamọ | ni ipamọ |
pInitConfig-> Ajọ | Awọn eto ipo sisẹ jọwọ tọka si apakan ti tabili ipo àlẹmọ. |
pInitConfig-> Timing0 | Baud rateT0 eto |
pInitConfig-> Timing1 | Baud rateT1 eto |
pInitConfig-> Ipo | Ipo iṣiṣẹ: 0-deede isẹ Ipo 1-gbọ nikan Gbigbawọle lẹẹkọkan 2 ati ipo idanwo fifiranṣẹ (iye yii ko yọkuro lati ile-ikawe iṣẹ ZLG) |
Tabili ipo àlẹmọ:
Iye | Oruko | Apejuwe |
1 | Gba gbogbo awọn iru | Dara si mejeeji boṣewa ati fireemu gbooro! |
2 | Gba fireemu boṣewa nikan | Dara si boṣewa fireemu, ati ki o gbooro sii |
fireemu yoo wa ni kuro nipa ase taara! | ||
3 | Gba fireemu ti o gbooro nikan | Dara si fireemu ti o gbooro sii, ati fireemu boṣewa yoo yọkuro nipasẹ ase taara! . |
Pada:
Pada iye = 1, eyi ti o tumo si wipe awọn isẹ ti wa ni aseyori; = 0 tọkasi wipe isẹ ti kuna; = -1 tọkasi wipe ẹrọ ko ni tẹlẹ.
Fun apẹẹrẹ
2.2.4. VCI_ReadBoardInfo
Iṣẹ yii ni a lo lati ka alaye ohun elo ohun ti nmu badọgba. Ni gbogbogbo, o le ṣe akiyesi.
DWORD __stdcall VCI_ReadBoardInfo(DWORD DevType,DWORD
DevIndex,PVCI_BOARD_INFO pInfo);
Awọn paramita:
DevType
Iru ẹrọ. Wo: Itumọ iru ẹrọ Adapter.
Atọka Dev
Atọka ẹrọ, fun example, nigba ti ohun ti nmu badọgba USB-CAN kan wa, nọmba atọka jẹ 0, nigbati ọpọlọpọ awọn oluyipada USB-CAN ba wa, awọn nọmba atọka ni aṣẹ ti o bẹrẹ lati 0. pInfo
VCI_BOARD_INFO ni a lo lati tọju itọka igbekale alaye ẹrọ.
Pada:
Pada iye = 1, eyi ti o tumo si wipe awọn isẹ ti wa ni aseyori; = 0 tọkasi wipe isẹ ti kuna; = -1 tọkasi wipe ẹrọ ko ni tẹlẹ.
2.2.5. VCI_GetReceiveNum
Iṣẹ yii ni a lo lati tokasi ohun ti o gba ṣugbọn ko ti ka awọn fireemu ninu ifipamọ gbigba ti a yan.
DWORD __stdcall VCI_GetReceiveNum(DWORD DevType,DWORD DevIndex,DWORD CANIndex);
Awọn paramita:
DevType
Iru ẹrọ. Wo: Itumọ iru ẹrọ Adapter.
Atọka Dev
Atọka ẹrọ, fun example, nigba ti ohun ti nmu badọgba USB-CAN kan wa, nọmba atọka jẹ 0, nigbati ọpọlọpọ awọn oluyipada USB-CAN ba wa, awọn nọmba atọka ni aṣẹ ti o bẹrẹ lati 0.
CANIindex
CAN ikanni Ìwé.
Pada:
Pada awọn fireemu ti a ko ti ka sibẹsibẹ.
Fun apẹẹrẹ
#pẹlu "ControlCan.h" int ret = VCI_GetReceiveNum (2,0,0);
2.2.6. VCI_ClearBuffer
Iṣẹ yii ni a lo lati ko gbigba ati firanṣẹ ifipamọ ti ikanni ti a yan pato nipasẹ
USB-CAN ohun ti nmu badọgba.
DWORD __stdcall VCI_ClearBuffer(DWORD DevType,DWORD DevIndex,DWORD CANIndex);
Awọn paramita:
DevType
Iru ẹrọ. Wo: Itumọ iru ẹrọ Adapter.
Atọka Dev
Atọka ẹrọ, fun example, nigba ti ohun ti nmu badọgba USB-CAN kan wa, nọmba atọka jẹ 0, nigbati ọpọlọpọ awọn oluyipada USB-CAN ba wa, awọn nọmba atọka ni aṣẹ ti o bẹrẹ lati 0.
CANIindex
CAN ikanni Ìwé.
Pada:
Pada iye = 1, eyi ti o tumo si wipe awọn isẹ ti wa ni aseyori; = 0 tọkasi wipe isẹ ti kuna; = -1 tọkasi wipe ẹrọ ko ni tẹlẹ.
2.2.7. VCI_StartCAN
Iṣẹ yii ni a lo lati bẹrẹ oluṣakoso CAN ati iṣẹ gbigba idalọwọduro inu ti ohun ti nmu badọgba.
DWORD __stdcall VCI_StartCAN(DWORD DevType,DWORD DevIndex,DWORD CANIndex);
Awọn paramita:
DevType
Iru ẹrọ. Wo: Itumọ iru ẹrọ Adapter.
Atọka Dev
Atọka ẹrọ, fun example, nigba ti ohun ti nmu badọgba USB-CAN kan wa, nọmba atọka jẹ 0, nigbati ọpọlọpọ awọn oluyipada USB-CAN ba wa, awọn nọmba atọka ni aṣẹ ti o bẹrẹ lati 0.
CANIindex
CAN ikanni Ìwé.
Pada:
Pada iye = 1, eyi ti o tumo si wipe awọn isẹ ti wa ni aseyori; = 0 tọkasi wipe isẹ ti kuna; = -1 tọkasi wipe ẹrọ ko ni tẹlẹ.
2.2.8. VCI_TuntoCAN
Iṣẹ yii ni a lo lati tun oluṣakoso CAN tunto.
DWORD __stdcall VCI_ResetCAN(DWORD DevType,DWORD DevIndex,DWORD CANIndex);
Awọn paramita:
DevType
Iru ẹrọ. Wo: Itumọ iru ẹrọ Adapter.
Atọka Dev
Atọka ẹrọ, fun example, nigba ti ohun ti nmu badọgba USB-CAN kan wa, nọmba atọka jẹ 0, nigbati ọpọlọpọ awọn oluyipada USB-CAN ba wa, awọn nọmba atọka ni aṣẹ ti o bẹrẹ lati 0.
CANIindex
CAN ikanni Ìwé.
Pada:
Pada iye = 1, eyi ti o tumo si wipe awọn isẹ ti wa ni aseyori; = 0 tọkasi wipe isẹ ti kuna; = -1 tọkasi wipe ẹrọ ko ni tẹlẹ.
2.2.9. VCI_ Gbigbe
Iṣẹ yi ti wa ni lo lati fi CAN ifiranṣẹ fireemu.
DWORD __stdcall VCI_Transmit(DWORD DeviceType,DWORD DeviceInd,DWORD CANInd,PVCI_CAN_OBJ pSend,DWORD Gigun);
Awọn paramita:
DevType
Iru ẹrọ. Wo: Itumọ iru ẹrọ Adapter.
Atọka Dev
Atọka ẹrọ, fun example, nigba ti ohun ti nmu badọgba USB-CAN kan wa, nọmba atọka jẹ 0, nigbati ọpọlọpọ awọn oluyipada USB-CAN ba wa, awọn nọmba atọka ni aṣẹ ti o bẹrẹ lati 0.
CANIindex
CAN ikanni Ìwé. Firanṣẹ
Adirẹsi akọkọ ti awọn akopọ fireemu data ti o ni lati firanṣẹ.
Gigun
Nọmba awọn fireemu data ti o ni lati firanṣẹ, nọmba ti o pọju jẹ 1000, iye iṣeduro jẹ 48 labẹ iyara giga.
Pada:
Pada nọmba gangan ti awọn fireemu ti a ti firanṣẹ tẹlẹ, iye ipadabọ = -1 tọkasi aṣiṣe ẹrọ kan.
Fun apẹẹrẹ
2.2.10. VCI_Gba
Iṣẹ yii ni a lo lati beere gbigba.
DWORD __stdcall VCI_Gba (DWORD DevType, DWORD DevIndex, DWORD CANIndex, PVCI_CAN_OBJ pGbigba, ULONG Len, INT DuroTime);
Awọn paramita:
DevType
Iru ẹrọ. Wo: Itumọ iru ẹrọ Adapter.
Atọka Dev
Atọka ẹrọ, fun example, nigba ti ohun ti nmu badọgba USB-CAN kan wa, nọmba atọka jẹ 0, nigbati ọpọlọpọ awọn oluyipada USB-CAN ba wa, awọn nọmba atọka ni aṣẹ ti o bẹrẹ lati 0.
CANIindex
CAN ikanni Ìwé.
gba
Lati gba itọka eto akọkọ ti awọn fireemu data.
Len
Iwọn gigun ti fireemu data gbọdọ jẹ diẹ sii ju 2500 lati da ifiranṣẹ deede pada.
Bibẹẹkọ, ipari ipadabọ yoo jẹ odo boya ifiranṣẹ naa ti gba tabi rara. ohun ti nmu badọgba ṣeto 2000-fireemu saarin fun gbogbo ikanni. Da lori eto tirẹ ati agbegbe iṣẹ, olumulo le yan gigun orun ti o yẹ lati 2500.
WaitTime Ni ipamọ.
Pada:
Pada nọmba awọn fireemu ti o ti ka nitootọ, -1 tọkasi awọn aṣiṣe ẹrọ.
Fun apẹẹrẹ
APA KẸTA YATO awọn iṣẹ ati awọn alaye igbekale DATA
Yi ipin apejuwe awọn miiran data orisi ati awọn iṣẹ ti awọn aibaramu ZLG ni wiwo ìkàwé ti o wa ninu USB-CAN ohun ti nmu badọgba ni wiwo ìkàwé ControlCAN.dll. Jọwọ ṣe
maṣe pe awọn iṣẹ wọnyi ti o ba lo awoṣe ZLG ibaramu fun idagbasoke atẹle ki o ma ba ni ipa lori ibamu.
3.1 Apejuwe iṣẹ
3.1.1. VCI_UsbDevice Tunto
Tun ohun ti nmu badọgba USB-CAN pada, nilo lati tun-ṣii ẹrọ naa lẹhin atunto nipa lilo VCI_OpenDevice.
DWORD __stdcall VCI_UsbDevice Tunto(DWORD DevType,DWORD DevIndex,DWORD Ni ipamọ
Awọn paramita:
DevType
Iru ẹrọ. Wo: Itumọ iru ẹrọ Adapter.
Atọka Dev
Atọka ẹrọ, fun example, nigba ti ohun ti nmu badọgba USB-CAN kan wa, nọmba atọka jẹ 0, nigbati ọpọlọpọ awọn oluyipada USB-CAN ba wa, awọn nọmba atọka ni aṣẹ ti o bẹrẹ lati 0.
Ni ipamọ.
Pada:
Pada iye = 1, eyi ti o tumo si wipe awọn isẹ ti wa ni aseyori; = 0 tọkasi wipe isẹ ti kuna; = -1 tọkasi wipe ẹrọ ko ni tẹlẹ.
bRel = VCI_UsbDeviceReset (nDeviceType, Ominira, 0);
3.1.2. VCI_FindUsbDevice2
Nigbati PC kanna ba nlo ọpọ USB-CAN, olumulo le lo iṣẹ yii lati wa ẹrọ lọwọlọwọ.
DWORD __stdcall VCI_FindUsbDevice2(PVCI_BOARD_INFO pInfo);
Awọn paramita:
Alaye
pInfo ni a lo lati tọju awọn paramita ti itọka adirẹsi ifipamọ data akọkọ.
Pada
Pada nọmba USB-CAN ohun ti nmu badọgba edidi sinu kọmputa.
Apá Mẹrin Interface Library Awọn iṣẹ Lilo Ilana
Lati le ṣe isodipupo iṣẹ ẹrọ, a pese awọn iṣẹ afikun (awọn iṣẹ ti a gbekalẹ pẹlu abẹlẹ alawọ ewe), awọn iṣẹ wọnyi pẹlu: VCI_FindUsbDevice2 VCI_UsbDeviceReset. Lakoko idagbasoke keji, awọn iṣẹ wọnyi ko jẹ dandan lati pe. Paapaa awọn iṣẹ wọnyi ko bikita, gbogbo awọn iṣẹ oluyipada USB-CAN le ṣaṣeyọri.
www.waveshare.com
www.waveshare.com/wiki
Awọn iwe aṣẹ / Awọn orisun
![]() |
WAVESHARE USB-CAN Bus Inter oju Adapter Interface Išė Library [pdf] Ilana itọnisọna USB-CAN Bus Inter face Adapter Interface Library, USB-CAN, Bus Interface Adapter Interface Library, Library |