Rhyngwyneb Bws USB-CAN
Swyddogaeth rhyngwyneb addasydd
Cyfarwyddyd Defnyddiwr Llyfrgell
RHAN UN DROSODDVIEW
Os yw'r defnyddiwr yn defnyddio addasydd rhyngwyneb bws USB-CAN i fynd ar brawf cyfathrebu bws CAN, ac yna gall ddefnyddio'r meddalwedd Offeryn USB-CAN a gyflenwir yn uniongyrchol ar gyfer anfon a derbyn data'r prawf.
Os yw'r defnyddiwr yn bwriadu ysgrifennu rhaglen feddalwedd ar gyfer ei gynhyrchion ei hun. Darllenwch y cyfarwyddiadau canlynol yn ofalus a chymerwch gyfeiriadau o'r aampy cod rydym yn ei ddarparu:
⑴ C++Adeiladwr ⑵C# ⑶VC ⑷VB ⑸VB.NET ⑹ Delphi ⑺LabVIEW ⑻ LabWindows/CVI ⑼Matlab ⑽QT ⑾ Python/Python-can.
Datblygu llyfrgell file :ControlCAN.lib, ControlCAN.DLL
Datganiad swyddogaeth fersiwn VC file :Rheoli CAN.h
Datganiad swyddogaeth fersiwn VB file: rheoliCAN.bas
LabVIEW modiwl pecyn swyddogaeth llyfrgell fersiwn :ControlCAN.llb
Datganiad swyddogaeth fersiwn Delphi file: ControlCAN.pas
RHAN DAU LLYFRGELL A STRWYTHUR DATA SWYDDOGAETH CYDWEDDU
2.1. DIFFINIAD MATH
2.1.1. Math o Ddychymyg
Math Diffiniad | Math o werth | Disgrifiad |
DEV_USBCAN2 | 4 | USBCAN-2A/USBCAN-2C/Canalyst-II MiniPCIe-CAN |
2.1.2. VCI_BOARD_INFO
Mae strwythur VCI_BOARD_INFO yn cynnwys gwybodaeth dyfais cerdyn rhyngwyneb Cyfres USB-CAN.
Bydd y strwythur yn cael ei lenwi yn swyddogaeth VCI_ReadBoardInfo.
Aelod:
hw_Fersiwn
Rhif fersiwn caledwedd, nodiant hecsadegol. Ee 0x0100 yn cynrychioli V1.00.
fw_Fersiwn
Rhif fersiwn caledwedd, nodiant hecsadegol. Ee 0x0100 yn cynrychioli V1.00.
Tudalen 2
dr_Fersiwn
Rhif fersiwn gyrrwr, nodiant hecsadegol. Ee 0x0100 yn cynrychioli V1.00.
yn_Fersiwn
Rhif fersiwn llyfrgell rhyngwyneb, nodiant hecsadegol. Ee 0x0100 yn cynrychioli V1.00.
irq_Num
System wedi'i chadw.
can_Num
Yn cynrychioli cyfanswm nifer y sianel CAN.
str_Cyfres_Num
Rhif cyfresol y cerdyn bwrdd hwn.
str_hw_Math
Math o galedwedd, fel “USBCAN V1.00” (Nodyn: Yn cynnwys terfynydd llinyn '\0').
Wedi'i gadw
System wedi'i chadw.
2.1.3. VCI_CAN_OBJ
Yn y swyddogaethau VCI_Transmit a VCI_Receive, defnyddir strwythur VCI_CAN_OBJ i drosglwyddo ffrâm neges CAN.
Aelod:
ID
Dynodwr neges. Fformat ID uniongyrchol, wedi'i alinio i'r dde, cyfeiriwch at: Atodiad Un: Manylion Aliniad ID.
AmserStamp
Yn derbyn y stamp gwybodaeth am y ffrâm amser, amseru cychwyn pan ddechreuir y rheolwr CAN, mae'r uned yn 0. 1ms.
Baner Amser
O ran a ddylid defnyddio'r amser stamp,1yw y TimeStamp. Fflag Amser a TimeStamp yn ystyrlon dim ond pan dderbynnir y ffrâm .
AnfonType
Math anfon. = 0 yn dynodi math Normal, = 1 yn dynodi Anfon Sengl.
Baner Anghysbell
P'un a yw'n faner anghysbell. = 1 yn nodi baner bell, = 0 yn nodi baner data.
Baner Allanol
P'un a yw'n faner allanol. = 1 yn dynodi baner allanol, = 0 yn dynodi baner safonol.
DataLen
Hyd data (<=8) , hynny yw, hyd y data.
Data
Data pecyn.
Wedi'i gadw
System wedi'i chadw.
2.1.4. VCI_INIT_CONFIG
Mae strwythur VCI_INIT_CONFIG yn diffinio ffurfwedd cychwyniad y CAN. Bydd y strwythur yn cael ei lenwi yn swyddogaeth VCI_InitCan.
Aelod:
AccCode
Derbyn cod derbyn wedi'i hidlo.
AccMask
Derbyn mwgwd hidlo.
Wedi'i gadw
Wedi'i gadw.
Hidlo
Dull hidlo, gan ganiatáu ystod gosod 0-3, cyfeiriwch at adran 2.2.3 o'r tabl modd hidlo am fanylion.
Amseru0
Paramedr cyfradd SJA1000 Baud, Amseru0 (BTR0).
Amseru1
Paramedr cyfradd SJA1000 Baud, Amseru1 (BTR1).
Modd
Modd gweithredu, 0 = gweithrediad arferol, 1 = modd gwrando yn unig, 2 = derbyniad digymell a modd prawf anfon.
Sylwadau:
Ynglŷn â gosodiadau'r hidlydd cyfeiriwch at: Atodiad II: Cyfarwyddiadau gosod CANparameter.
Defnyddir CAN Amseru0 ac Amseru1 i osod cyfradd baud, dim ond ar y cychwyniad y defnyddir y ddau baramedr hyn.tage.
Tabl cyfeirio Baud confensiynol:
Cyfradd CAN Baud | Amseru0(BTR0) | Amseru1(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 |
- Dim ond SJA1000 (16MHz) y mae angen i ddefnyddwyr ei ddilyn i osod paramedr cyfradd Baud.
- Nid yw'r addasydd yn cefnogi cyfradd Baud dros dro o dan 10K.
2.2. DISGRIFIAD SWYDDOGAETH
2.2.1. VCI_Dyfais Agored
Defnyddir y swyddogaeth hon i gysylltu dyfeisiau.
DWORD __stdcall VCI_OpenDevice(DWORD DevType, DWORD DevIndex, DWORD Reserved);
Paramedrau:
Math Dev
Math o ddyfais. Gweler: Diffiniad math dyfais addasydd.
Mynegai Dev
Mynegai Dyfais, ar gyfer cynample, pan nad oes ond un addasydd USB-CAN, y rhif mynegai yw 0, pan fo addaswyr USB-CAN lluosog, mae'r rhifau mynegai mewn trefn esgynnol yn dechrau o 0.
Wedi'i gadw
Paramedrau cadw, llenwch 0.
Yn dychwelyd:
Gwerth dychwelyd = 1, sy'n golygu bod y llawdriniaeth yn llwyddiannus; = 0 yn nodi bod y llawdriniaeth wedi methu; = -1 yn nodi nad yw'r ddyfais yn bodoli.
2.2.2. VCI_CloseDevice
Defnyddir y swyddogaeth hon i gau'r cysylltiad.
DWORD __stdcall VCI_CloseDevice(DWORD DevType, DWORD DevIndex);
Paramedrau:
Math Dev
Math o ddyfais. Gweler: Diffiniad math dyfais addasydd.
Mynegai Dev
Mynegai Dyfais, ar gyfer cynample, pan nad oes ond un addasydd USB-CAN, y rhif mynegai yw 0, pan fo addaswyr USB-CAN lluosog, mae'r rhifau mynegai mewn trefn esgynnol yn dechrau o 0.
Yn dychwelyd:
Gwerth dychwelyd = 1, sy'n golygu bod y llawdriniaeth yn llwyddiannus; = 0 yn nodi bod y llawdriniaeth wedi methu; = -1 yn nodi nad yw'r ddyfais yn bodoli.
2.2.3. VCI_InitCan
Defnyddir y swyddogaeth hon i gychwyn y CAN penodedig.
DWORD __stdcall VCI_InitCAN(DWORD DevType, DWORD DevIndex, DWORD CANIndex,
PVCI_INIT_CONFIG pInitConfig);
Paramedrau:
Math Dev
Math o ddyfais. Gweler: Diffiniad math dyfais addasydd.
Mynegai Dev
Mynegai Dyfais, ar gyfer cynample, pan nad oes ond un addasydd USB-CAN, y rhif mynegai yw 0, pan fo addaswyr USB-CAN lluosog, mae'r rhifau mynegai mewn trefn esgynnol yn dechrau o 0.
CANIndex
Mynegai sianel CAN, megis pan nad oes ond un sianel CAN, y rhif mynegai yw 0, os oes dau, gall y rhif mynegai fod yn 0 neu 1.
pInitConfig
Strwythur paramedr ymgychwyn. Rhestr paramedr o aelodau:
Aelod | Disgrifiad Swyddogaethol |
pInitConfig-> AccCode | Gall AccCode ac AccMask gydweithio i benderfynu pa becynnau y gellir eu derbyn. Defnyddir y ddwy gofrestr hyn i osod yr ID wedi'i alinio i'r chwith, hynny yw, mae did uchaf (Bit31) yr AccCode ac AccMask wedi'i alinio â did uchaf y gwerth ID. |
pInitConfig-> AccMask | Ynghylch aliniad ID cyfeiriwch yr atodiadau: Atodiad I: Manylion aliniad ID. Ee: Os ydych chi'n gosod gwerth yr AccCode fel 0x24600000 (hy mae 0x123 yn cael ei symud i'r chwith gan 21 did), gwerth AccMask wedi'i osod i 0x00000000, ac yna dim ond y pecynnau gyda ID ffrâm neges CAN yw 0x123 y gellir eu derbyn (mae gwerth AccMask o 0x00000000 yn nodi bod pob did yn berthnasol |
darnau). Os yw gwerth AccCode wedi'i osod i 0x24600000, mae gwerth AccMask wedi'i osod i 0x600000 (mae 0x03 yn cael ei symud i'r chwith gan 21 did), ac yna dim ond y pecynnau gyda'r ID ffrâm neges CAN yw 0x120 ~ 0x123 y gellir eu derbyn (gwerth AccMask Mae 0x600000 yn nodi, ar wahân i bit0 ~ bit1, mae darnau eraill (bit2 ~ bit10) yn rhai perthnasol). Nodyn: Mae'r gosodiad hidlydd hwn exampllai i'r ffrâm safonol, ar gyfer example, uchel 11-did yw'r did dilys; yn achos y ffrâm estynedig, ac yna mae'r ID dilys yn 29-bit. Gosododd AccCode ac AccMask 29-did uchel fel y darn dilys! |
|
pInitConfig-> Wedi'i gadw | neilltuedig |
pInitConfig-> Hidlo | Gosodiadau modd hidlo cyfeiriwch at yr adran yn y tabl modd hidlo. |
pInitConfig-> Amseru0 | Gosodiad cyfradd BaudT0 |
pInitConfig-> Amseru1 | Gosodiad cyfradd BaudT1 |
pInitConfig-> Modd | Dull gweithredu: 0-gweithrediad arferol Modd 1-Gwrando yn unig Modd prawf derbyn ac anfon 2-ddigymell (mae'r gwerth hwn wedi'i eithrio o lyfrgell swyddogaeth ZLG) |
Tabl modd hidlo:
Gwerth | Enw | Disgrifiad |
1 | Derbyn pob math | Yn addas i ffrâm safonol ac estynedig! |
2 | Derbyn ffrâm safonol yn unig | Yn addas i ffrâm safonol, ac yn estynedig |
bydd y ffrâm yn cael ei thynnu trwy hidlo'n uniongyrchol! | ||
3 | Derbyn ffrâm estynedig yn unig | Yn addas i ffrâm estynedig, a bydd ffrâm safonol yn cael ei dynnu gan hidlo yn uniongyrchol! . |
Yn dychwelyd:
Gwerth dychwelyd = 1, sy'n golygu bod y llawdriniaeth yn llwyddiannus; = 0 yn nodi bod y llawdriniaeth wedi methu; = -1 yn nodi nad yw'r ddyfais yn bodoli.
ae
2.2.4. VCI_ReadBoardInfo
Defnyddir y swyddogaeth hon i ddarllen gwybodaeth caledwedd yr addasydd. Yn gyffredinol, gellir ei anwybyddu.
DWORD __stdcall VCI_ReadBoardInfo(DWORD DevType,DWORD
DevIndex,PVCI_BOARD_INFO pInfo);
Paramedrau:
Math Dev
Math o ddyfais. Gweler: Diffiniad math dyfais addasydd.
Mynegai Dev
Mynegai Dyfais, ar gyfer cynample, pan nad oes ond un addasydd USB-CAN, y rhif mynegai yw 0, pan fo addaswyr USB-CAN lluosog, mae'r rhifau mynegai mewn trefn esgynnol yn dechrau o 0. pInfo
Defnyddir VCI_BOARD_INFO i storio pwyntydd strwythur gwybodaeth dyfais.
Yn dychwelyd:
Gwerth dychwelyd = 1, sy'n golygu bod y llawdriniaeth yn llwyddiannus; = 0 yn nodi bod y llawdriniaeth wedi methu; = -1 yn nodi nad yw'r ddyfais yn bodoli.
2.2.5. VCI_GetReceiveNum
Defnyddir y swyddogaeth hon i nodi'r fframiau derbyn ond nid yw wedi'i ddarllen yn y byffer derbyn dynodedig.
DWORD __stdcall VCI_GetReceiveNum(DWORD DevType, DWORD DevIndex, DWORD CANIndex);
Paramedrau:
Math Dev
Math o ddyfais. Gweler: Diffiniad math dyfais addasydd.
Mynegai Dev
Mynegai Dyfais, ar gyfer cynampLe, pan nad oes ond un addasydd USB-CAN, y rhif mynegai yw 0, pan fo addaswyr USB-CAN lluosog, mae'r rhifau mynegai mewn trefn esgynnol yn dechrau o 0.
CANIndex
Mynegai sianel CAN.
Yn dychwelyd:
Dychwelyd fframiau sydd heb eu darllen eto.
ae
#cynnwys “ControlCan.h” int ret=VCI_GetReceiveNum(2,0,0);
2.2.6. VCI_ClearBuffer
Defnyddir y swyddogaeth hon i glirio byffer derbyn ac anfon y sianel ddynodedig a bennir gan
Addasydd USB-CAN.
DWORD __stdcall VCI_ClearBuffer(DWORD DevType, DWORD DevIndex, DWORD CANIndex);
Paramedrau:
Math Dev
Math o ddyfais. Gweler: Diffiniad math dyfais addasydd.
Mynegai Dev
Mynegai Dyfais, ar gyfer cynampLe, pan nad oes ond un addasydd USB-CAN, y rhif mynegai yw 0, pan fo addaswyr USB-CAN lluosog, mae'r rhifau mynegai mewn trefn esgynnol yn dechrau o 0.
CANIndex
Mynegai sianel CAN.
Yn dychwelyd:
Gwerth dychwelyd = 1, sy'n golygu bod y llawdriniaeth yn llwyddiannus; = 0 yn nodi bod y llawdriniaeth wedi methu; = -1 yn nodi nad yw'r ddyfais yn bodoli.
2.2.7. VCI_StartCAN
Defnyddir y swyddogaeth hon i gychwyn y rheolydd CAN a swyddogaeth derbyniad ymyrraeth fewnol yr addasydd.
DWORD __stdcall VCI_StartCAN(DWORD DevType, DWORD DevIndex, DWORD CANIndex);
Paramedrau:
Math Dev
Math o ddyfais. Gweler: Diffiniad math dyfais addasydd.
Mynegai Dev
Mynegai Dyfais, ar gyfer cynample, pan nad oes ond un addasydd USB-CAN, y rhif mynegai yw 0, pan fo addaswyr USB-CAN lluosog, mae'r rhifau mynegai mewn trefn esgynnol yn dechrau o 0.
CANIndex
Mynegai sianel CAN.
Yn dychwelyd:
Gwerth dychwelyd = 1, sy'n golygu bod y llawdriniaeth yn llwyddiannus; = 0 yn nodi bod y llawdriniaeth wedi methu; = -1 yn nodi nad yw'r ddyfais yn bodoli.
2.2.8. VCI_AilosodCAN
Defnyddir y swyddogaeth hon i ailosod y rheolydd CAN.
DWORD __stdcall VCI_ResetCAN(DWORD DevType, DWORD DevIndex, DWORD CANIndex);
Paramedrau:
Math Dev
Math o ddyfais. Gweler: Diffiniad math dyfais addasydd.
Mynegai Dev
Mynegai Dyfais, ar gyfer cynample, pan nad oes ond un addasydd USB-CAN, y rhif mynegai yw 0, pan fo addaswyr USB-CAN lluosog, mae'r rhifau mynegai mewn trefn esgynnol yn dechrau o 0.
CANIndex
Mynegai sianel CAN.
Yn dychwelyd:
Gwerth dychwelyd = 1, sy'n golygu bod y llawdriniaeth yn llwyddiannus; = 0 yn nodi bod y llawdriniaeth wedi methu; = -1 yn nodi nad yw'r ddyfais yn bodoli.
2.2.9. VCI_Trosglwyddo
Defnyddir y swyddogaeth hon i anfon ffrâm neges CAN.
DWORD __stdcall VCI_Transmit(DWORD DeviceMath, DWORD DeviceInd, DWORD CANInd, PVCI_CAN_OBJ pSend, DWORD Length);
Paramedrau:
Math Dev
Math o ddyfais. Gweler: Diffiniad math dyfais addasydd.
Mynegai Dev
Mynegai Dyfais, ar gyfer cynample, pan nad oes ond un addasydd USB-CAN, y rhif mynegai yw 0, pan fo addaswyr USB-CAN lluosog, mae'r rhifau mynegai mewn trefn esgynnol yn dechrau o 0.
CANIndex
Mynegai sianel CAN. pAnfon
Cyfeiriad cyntaf yr araeau ffrâm data y mae'n rhaid eu hanfon.
Hyd
Nifer y fframiau data y mae'n rhaid eu hanfon, y nifer uchaf yw 1000, y gwerth a argymhellir yw 48 o dan gyflymder uchel.
Yn dychwelyd:
Dychwelwch y nifer gwirioneddol o fframiau a anfonwyd eisoes, mae'r gwerth dychwelyd = -1 yn nodi gwall dyfais.
ae
2.2.10. VCI_Derbyn
Defnyddir y swyddogaeth hon i ofyn am dderbynfa.
DWORD __stdcall VCI_Receive(DWORD DevType, DWORD DevIndex, DWORD CANIndex, PVCI_CAN_OBJ preceive, ULONG Len, INT WaitTime);
Paramedrau:
Math Dev
Math o ddyfais. Gweler: Diffiniad math dyfais addasydd.
Mynegai Dev
Mynegai Dyfais, ar gyfer cynample, pan nad oes ond un addasydd USB-CAN, y rhif mynegai yw 0, pan fo addaswyr USB-CAN lluosog, mae'r rhifau mynegai mewn trefn esgynnol yn dechrau o 0.
CANIndex
Mynegai sianel CAN.
derbyn
Derbyn pwyntydd set gyntaf y fframiau data.
Len
Rhaid i hyd arae'r ffrâm ddata fod yn fwy na 2500 i ddychwelyd neges arferol.
Fel arall, bydd yr hyd dychwelyd yn sero p'un a dderbynnir y neges ai peidio. gosododd yr addasydd glustogfa 2000-ffrâm ar gyfer pob sianel. Yn seiliedig ar ei system a'i amgylchedd gwaith ei hun, gall y defnyddiwr ddewis hyd arae priodol o 2500.
Amser Aros Wedi'i Gadw.
Yn dychwelyd:
Dychwelwch nifer y fframiau sydd wedi'u darllen mewn gwirionedd, mae -1 yn nodi gwallau dyfais.
ae
RHAN TRI SWYDDOGAETHAU ERAILL A DISGRIFIAD O'R STRWYTHUR DATA
Mae'r bennod hon yn disgrifio mathau eraill o ddata a swyddogaethau'r llyfrgell rhyngwyneb ZLG anghydnaws a gynhwysir yn llyfrgell rhyngwyneb adapter USB-CAN ControlCAN.dll. Os gwelwch yn dda wneud
peidio â galw'r swyddogaethau hyn os defnyddiwch fodel ZLG cydnaws ar gyfer datblygiad eilaidd er mwyn peidio ag effeithio ar gydnawsedd.
3.1 DISGRIFIAD O'R SWYDDOGAETH
3.1.1. VCI_UsbDeviceReset
Ailosod addasydd USB-CAN, angen ail-agor y ddyfais ar ôl ailosod trwy ddefnyddio VCI_OpenDevice.
DWORD __stdcall VCI_UsbDeviceReset(DWORD DevType, DWORD DevIndex, DWORD Reserved
Paramedrau:
Math Dev
Math o ddyfais. Gweler: Diffiniad math dyfais addasydd.
Mynegai Dev
Mynegai Dyfais, ar gyfer cynample, pan nad oes ond un addasydd USB-CAN, y rhif mynegai yw 0, pan fo addaswyr USB-CAN lluosog, mae'r rhifau mynegai mewn trefn esgynnol yn dechrau o 0.
Wedi'i Gadw'n Gadw.
Yn dychwelyd:
Gwerth dychwelyd = 1, sy'n golygu bod y llawdriniaeth yn llwyddiannus; = 0 yn nodi bod y llawdriniaeth wedi methu; = -1 yn nodi nad yw'r ddyfais yn bodoli.
bRel = VCI_UsbDeviceReset(nDeviceType, Annibyniaeth, 0);
3.1.2. VCI_FindUsbDevice2
Pan fydd yr un PC gan ddefnyddio lluosog USB-CAN, gall defnyddiwr ddefnyddio'r swyddogaeth hon i ddod o hyd i'r ddyfais gyfredol.
DWORD __stdcall VCI_FindUsbDevice2(PVCI_BOARD_INFO pInfo);
Paramedrau:
pGwybodaeth
Defnyddir pInfo i storio paramedrau'r pwyntydd cyfeiriad byffer data cyntaf.
Yn dychwelyd
Dychwelwch rif yr addasydd USB-CAN sydd wedi'i blygio i'r cyfrifiadur.
Rhan Pedwar Swyddogaethau Llyfrgell Rhyngwyneb Defnyddio Proses
Er mwyn lluosi swyddogaeth dyfais, rydym wedi darparu swyddogaethau ychwanegol (swyddogaethau wedi'u cyflwyno â chefndir gwyrdd), mae'r swyddogaethau hyn yn cynnwys: VCI_FindUsbDevice2 VCI_UsbDeviceReset. Yn ystod yr ail ddatblygiad, nid yw'r swyddogaethau hyn o reidrwydd i'w gweithredu. Mae hyd yn oed y swyddogaethau hyn yn cael eu hanwybyddu, gellir cyflawni holl swyddogaethau addasydd USB-CAN.
www.waveshare.com
www.waveshare.com/wiki
Dogfennau / Adnoddau
![]() |
WAVESHARE USB-CAN Bws Rhyngwyneb Adapter Rhyngwyneb Swyddogaeth Llyfrgell [pdfLlawlyfr Cyfarwyddiadau USB-CAN Bws Rhyngwyneb Adapter Swyddogaeth Rhyngwyneb Llyfrgell Swyddogaeth, USB-CAN, Bws Rhyngwyneb Adapter Rhyngwyneb Swyddogaeth Llyfrgell, Rhyngwyneb Swyddogaeth Llyfrgell, Swyddogaeth Llyfrgell |