Entèfas otobis USB-CAN
Fonksyon entèfas adaptè
Enstriksyon pou Itilizatè Bibliyotèk la
PREMYE PATI AVIEW
Si itilizatè a jis itilize USB-CAN otobis koòdone adaptè pou ale nan tès kominikasyon otobis CAN, ak Lè sa a, li ka dirèkteman itilize lojisyèl USB-CAN Zouti apwovizyone pou voye ak resevwa done tès la.
Si itilizatè a gen entansyon ekri pwogram lojisyèl pou pwòp pwodwi li yo. Tanpri li ak anpil atansyon enstriksyon sa yo epi pran referans nan sampkòd nou bay:
⑴ C++Builder ⑵C# ⑶VC ⑷VB ⑸VB.NET ⑹Delphi ⑺LabVIEW ⑻ LabWindows/CVI ⑼Matlab ⑽QT ⑾Python/Python-can.
Devlope bibliyotèk file :ControlCAN.lib, ControlCAN.DLL
VC vèsyon fonksyon deklarasyon file :ControlCAN.h
Deklarasyon fonksyon vèsyon VB file: ControlCAN.bas
LaboratwaVIEW vèsyon pakè fonksyon bibliyotèk modil: ControlCAN.llb
Deklarasyon fonksyon vèsyon Delphi file: ControlCAN.pas
DEZYÈM PATI BIBLIYOTÈK FONKSYON KONPATIB AK ESTRUKTI DONE
2.1. DEFINISYON TIP
2.1.1. Kalite Aparèy
Kalite Definisyon | Kalite valè | Deskripsyon |
DEV_USBCAN2 | 4 | USBCAN-2A/USBCAN-2C/CANalyst-II MiniPCIe-CAN |
2.1.2. VCI_BOARD_INFO
Estrikti VCI_BOARD_INFO genyen enfòmasyon sou aparèy kat koòdone USB-CAN Seri.
Estrikti a pral ranpli nan fonksyon VCI_ReadBoardInfo.
Manm:
hw_Version
Nimewo vèsyon pyès ki nan konpitè, notasyon egzadesimal. Pa egzanp, 0x0100 reprezante V1.00.
fw_Version
Nimewo vèsyon pyès ki nan konpitè, notasyon egzadesimal. Pa egzanp, 0x0100 reprezante V1.00.
Paj 2
dr_Version
Nimewo vèsyon chofè a, notasyon egzadesimal. Pa egzanp, 0x0100 reprezante V1.00.
nan_Version
Nimewo vèsyon bibliyotèk entèfas, notasyon egzadesimal. Pa egzanp, 0x0100 reprezante V1.00.
irq_Num
Sistèm rezève.
can_Num
Reprezante kantite total CAN chanèl.
str_Serial_Num
Nimewo seri kat tablo sa a.
str_hw_Type
Kalite pyès ki nan konpitè, tankou "USBCAN V1.00" (Remak: Gen ladann string terminator '\0').
Rezève
Sistèm rezève.
2.1.3. VCI_CAN_OBJ
Nan fonksyon VCI_Transmit ak VCI_Receive, estrikti VCI_CAN_OBJ yo itilize pou transmèt ankadreman mesaj CAN.
Manm:
ID
Idantifyan mesaj. Fòma ID dirèk, ki aliye adwat, tanpri al gade nan: Anèks One: Detay aliyman ID.
TimeStamp
Resevwa stamp enfòmasyon sou ankadreman tan an, kòmanse distribisyon lè kontwolè CAN inisyalize, inite a se 0. 1ms.
TimeFlag
An tèm de si wi ou non yo sèvi ak tan an stamp, 1se TimeSt ki efikasamp. TimeFlag ak TimeStamp yo gen sans sèlman lè yo resevwa ankadreman an.
SendType
Kalite voye. = 0 endike kalite nòmal, = 1 endike yon sèl voye.
RemoteFlag
Kit se yon drapo aleka. = 1 endike drapo aleka, = 0 endike drapo done.
ExternFlag
Kit se yon drapo ekstèn. = 1 endike drapo ekstèn, = 0 endike drapo estanda.
DataLen
Longè done (<=8) ,sa vle di longè done yo.
Done
Pake done.
Rezève
Sistèm rezève.
2.1.4. VCI_INIT_CONFIG
VCI_INIT_CONFIG estrikti defini konfigirasyon inisyalizasyon CAN la. Estrikti a pral ranpli nan fonksyon VCI_InitCan.
Manm:
AccCode
Resevwa filtre akseptasyon kòd.
AccMask
Resevwa mask filtre.
Rezève
Rezève.
Filtre
Metòd filtraj, ki pèmèt seri ranje 0-3, al gade nan seksyon 2.2.3 nan tab la mòd filtre pou plis detay.
Distribisyon0
SJA1000 baud vitès paramèt, Timing0 (BTR0) .
Distribisyon1
SJA1000 baud vitès paramèt, Timing1 (BTR1) .
Mode
Mòd fonksyònman, 0 = operasyon nòmal, 1 = mòd koute sèlman, 2 = admisyon espontane ak mòd tès voye.
Remak:
Konsènan paramèt filtre yo tanpri al gade nan: Anèks II: Enstriksyon konfigirasyon CANparameter.
CAN Timing0 ak Timing1 yo itilize pou mete vitès baud, de paramèt sa yo yo itilize sèlman nan inisyalizasyon yo.tage.
Tablo referans konvansyonèl baud:
CAN Baud pousantaj | Distribisyon0(BTR0) | Distribisyon1(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 |
- Itilizatè yo sèlman bezwen swiv SJA1000 (16MHz) pou mete paramèt baud la.
- Adaptè a pa sipòte tanporèman pousantaj Baud pi ba pase 10K.
2.2. DESKRIPSYON FONKSYON
2.2.1. VCI_OpenDevice
Fonksyon sa a itilize pou konekte aparèy yo.
DWORD __stdcall VCI_OpenDevice (DWORD DevType, DWORD DevIndex, DWORD rezève);
Paramèt:
DevType
Kalite aparèy. Gade: Definisyon kalite aparèy adaptè.
DevIndex
Endèks aparèy, pou egzanpample, lè gen yon sèl adaptè USB-CAN, nimewo endèks la se 0, lè gen plizyè adaptè USB-CAN, nimewo endèks yo nan yon lòd monte kòmanse nan 0.
Rezève
Paramèt retansyon, ranpli 0.
Retounen:
Valè retounen = 1, ki vle di ke operasyon an gen siksè; = 0 endike ke operasyon an echwe; = -1 endike ke aparèy la pa egziste.
2.2.2. VCI_CloseDevice
Fonksyon sa a itilize pou fèmen koneksyon an.
DWORD __stdcall VCI_CloseDevice(DWORD DevType,DWORD DevIndex);
Paramèt:
DevType
Kalite aparèy. Gade: Definisyon kalite aparèy adaptè.
DevIndex
Endèks aparèy, pou egzanpample, lè gen yon sèl adaptè USB-CAN, nimewo endèks la se 0, lè gen plizyè adaptè USB-CAN, nimewo endèks yo nan yon lòd monte kòmanse nan 0.
Retounen:
Valè retounen = 1, ki vle di ke operasyon an gen siksè; = 0 endike ke operasyon an echwe; = -1 endike ke aparèy la pa egziste.
2.2.3. VCI_InitCan
Yo itilize fonksyon sa a pou inisyalize CAN espesifye a.
DWORD __stdcall VCI_InitCAN(DWORD DevType, DWORD DevIndex, DWORD CANIndex,
PVCI_INIT_CONFIG pInitConfig);
Paramèt:
DevType
Kalite aparèy. Gade: Definisyon kalite aparèy adaptè.
DevIndex
Endèks aparèy, pou egzanpample, lè gen yon sèl adaptè USB-CAN, nimewo endèks la se 0, lè gen plizyè adaptè USB-CAN, nimewo endèks yo nan yon lòd monte kòmanse nan 0.
CANIndex
CAN endèks chanèl, tankou lè gen yon sèl kanal CAN, nimewo endèks la se 0, si gen de, nimewo endèks la ka 0 oswa 1.
pInitConfig
Estrikti paramèt inisyalizasyon. Lis paramèt manm yo:
Manm | Deskripsyon Fonksyonèl |
pInitConfig->AccCode | AccCode ak AccMask ka travay ansanm pou detèmine ki pake yo ka aksepte. Yo itilize de rejis sa yo pou mete idantite ki aliman sou bò gòch la, se sa ki pi wo a (Bit31) nan AccCode la ak AccMask ki aliyen ak pi wo a nan valè ID la. |
pInitConfig->AccMask | Konsènan aliyman ID, gade anèks: Anèks I: Detay aliyman ID. Pa egzanp: Si ou mete valè AccCode la kòm 0x24600000 (sa vle di 0x123 deplase sou bò gòch la pa 21 bit), valè AccMask. se mete nan 0x00000000, ak Lè sa a, sèlman pake yo ak ID ankadreman mesaj CAN se 0x123 ka aksepte (Valè AccMask nan 0x00000000 endike ke tout Bits yo enpòtan |
ti moso). Si valè AccCode mete sou 0x24600000, valè AccMask mete sou 0x600000 (0x03 deplase sou bò gòch la pa 21 bit), epi sèlman pake yo ki gen ID ankadreman mesaj CAN se 0x120 ~ 0x123 ka aksepte (Valè AccMask). 0x600000 endike ke apa de bit0 ~ bit1 lòt Bits (bit2 ~ bit10) yo se yon ti ki enpòtan). Nòt: Anviwònman filtre sa a ekzamples nan ankadreman an estanda, pou egzanpample, segondè 11-bit se ti jan ki valab; nan ka a nan ankadreman an pwolonje, ak Lè sa a, ID a valab se 29-bit. AccCode ak AccMask mete segondè 29-bit kòm ti jan ki valab! |
|
pInitConfig->Rezève | rezève |
pInitConfig->Filtre | Anviwònman mòd filtre tanpri al gade nan seksyon tab la mòd filtre. |
pInitConfig-> Timing0 | Anviwònman Baud rateT0 |
pInitConfig-> Timing1 | Anviwònman Baud rateT1 |
pInitConfig->Mòd | Opere mòd: 0-operasyon nòmal 1-Koute sèlman mòd 2-admisyon espontane ak mòd tès voye (valè sa a eskli nan bibliyotèk fonksyon ZLG) |
Tablo mòd filtre:
Valè | Non | Deskripsyon |
1 | Resevwa tout kalite | Apwopriye ak ankadreman estanda ak pwolonje! |
2 | Sèlman resevwa estanda ankadreman | Apwopriye nan ankadreman estanda, ak pwolonje |
ankadreman yo pral retire pa filtraj dirèkteman! | ||
3 | Sèlman resevwa ankadreman pwolonje | Apwopriye pou ankadreman pwolonje, ak ankadreman estanda yo pral retire pa filtraj dirèkteman! 。 |
Retounen:
Valè retounen = 1, ki vle di ke operasyon an gen siksè; = 0 endike ke operasyon an echwe; = -1 endike ke aparèy la pa egziste.
Pa egzanp
2.2.4. VCI_ReadBoardInfo
Fonksyon sa a itilize pou li enfòmasyon pyès ki nan konpitè adaptè a. Anjeneral pale, li ka inyore.
DWORD __stdcall VCI_ReadBoardInfo(DWORD DevType,DWORD
DevIndex,PVCI_BOARD_INFO pInfo);
Paramèt:
DevType
Kalite aparèy. Gade: Definisyon kalite aparèy adaptè.
DevIndex
Endèks aparèy, pou egzanpample, lè gen yon sèl adaptè USB-CAN, nimewo endèks la se 0, lè gen plizyè adaptè USB-CAN, nimewo endèks yo nan yon lòd monte kòmanse soti nan 0. pInfo
VCI_BOARD_INFO yo itilize pou estoke konsèy estrikti enfòmasyon aparèy.
Retounen:
Valè retounen = 1, ki vle di ke operasyon an gen siksè; = 0 endike ke operasyon an echwe; = -1 endike ke aparèy la pa egziste.
2.2.5. VCI_GetReceiveNum
Yo itilize fonksyon sa a pou presize ankadreman ki resevwa men yo pa li nan tanpon k ap resevwa a.
DWORD __stdcall VCI_GetReceiveNum(DWORD DevType,DWORD DevIndex,DWORD CANIndex);
Paramèt:
DevType
Kalite aparèy. Gade: Definisyon kalite aparèy adaptè.
DevIndex
Endèks aparèy, pou egzanpample, lè gen yon sèl adaptè USB-CAN, nimewo endèks la se 0, lè gen plizyè adaptè USB-CAN, nimewo endèks yo nan yon lòd monte kòmanse nan 0.
CANIndex
CAN endèks chanèl.
Retounen:
Retounen ankadreman ki poko li.
Pa egzanp
#include "ControlCan.h" int ret = VCI_GetReceiveNum (2,0,0);
2.2.6. VCI_ClearBuffer
Fonksyon sa a itilize pou netwaye tanpon resevwa ak voye nan chanèl deziyen an espesifye nan
USB-CAN adaptè.
DWORD __stdcall VCI_ClearBuffer (DWORD DevType, DWORD DevIndex, DWORD CANIndex);
Paramèt:
DevType
Kalite aparèy. Gade: Definisyon kalite aparèy adaptè.
DevIndex
Endèks aparèy, pou egzanpample, lè gen yon sèl adaptè USB-CAN, nimewo endèks la se 0, lè gen plizyè adaptè USB-CAN, nimewo endèks yo nan yon lòd monte kòmanse nan 0.
CANIndex
CAN endèks chanèl.
Retounen:
Valè retounen = 1, ki vle di ke operasyon an gen siksè; = 0 endike ke operasyon an echwe; = -1 endike ke aparèy la pa egziste.
2.2.7. VCI_StartCAN
Fonksyon sa a itilize pou kòmanse kontwolè CAN ak fonksyon resepsyon entèwonp entèn adaptè a.
DWORD __stdcall VCI_StartCAN(DWORD DevType,DWORD DevIndex,DWORD CANIndex);
Paramèt:
DevType
Kalite aparèy. Gade: Definisyon kalite aparèy adaptè.
DevIndex
Endèks aparèy, pou egzanpample, lè gen yon sèl adaptè USB-CAN, nimewo endèks la se 0, lè gen plizyè adaptè USB-CAN, nimewo endèks yo nan yon lòd monte kòmanse nan 0.
CANIndex
CAN endèks chanèl.
Retounen:
Valè retounen = 1, ki vle di ke operasyon an gen siksè; = 0 endike ke operasyon an echwe; = -1 endike ke aparèy la pa egziste.
2.2.8. VCI_ResetCAN
Fonksyon sa a itilize pou reset kontwolè CAN la.
DWORD __stdcall VCI_ResetCAN(DWORD DevType,DWORD DevIndex,DWORD CANIndex);
Paramèt:
DevType
Kalite aparèy. Gade: Definisyon kalite aparèy adaptè.
DevIndex
Endèks aparèy, pou egzanpample, lè gen yon sèl adaptè USB-CAN, nimewo endèks la se 0, lè gen plizyè adaptè USB-CAN, nimewo endèks yo nan yon lòd monte kòmanse nan 0.
CANIndex
CAN endèks chanèl.
Retounen:
Valè retounen = 1, ki vle di ke operasyon an gen siksè; = 0 endike ke operasyon an echwe; = -1 endike ke aparèy la pa egziste.
2.2.9. VCI_Transmèt
Fonksyon sa a itilize pou voye ankadreman mesaj CAN.
DWORD __stdcall VCI_Transmit (DWORD DeviceType, DWORD DeviceInd, DWORD CANInd, PVCI_CAN_OBJ pSend, DWORD Length);
Paramèt:
DevType
Kalite aparèy. Gade: Definisyon kalite aparèy adaptè.
DevIndex
Endèks aparèy, pou egzanpample, lè gen yon sèl adaptè USB-CAN, nimewo endèks la se 0, lè gen plizyè adaptè USB-CAN, nimewo endèks yo nan yon lòd monte kòmanse nan 0.
CANIndex
CAN endèks chanèl. pSend
Premye adrès la nan etalaj yo ankadreman done ki gen yo dwe voye.
Longè
Nimewo a nan ankadreman done yo ki dwe voye, nimewo a maksimòm se 1000, valè a rekòmande se 48 anba gwo vitès.
Retounen:
Retounen kantite aktyèl la nan ankadreman deja voye, valè a retounen = -1 endike yon erè aparèy.
Pa egzanp
2.2.10. VCI_Resevwa
Fonksyon sa a itilize pou mande resepsyon.
DWORD __stdcall VCI_Receive(DWORD DevType, DWORD DevIndex, DWORD CANIndex, PVCI_CAN_OBJ pReceive, ULONG Len, INT WaitTime);
Paramèt:
DevType
Kalite aparèy. Gade: Definisyon kalite aparèy adaptè.
DevIndex
Endèks aparèy, pou egzanpample, lè gen yon sèl adaptè USB-CAN, nimewo endèks la se 0, lè gen plizyè adaptè USB-CAN, nimewo endèks yo nan yon lòd monte kòmanse nan 0.
CANIndex
CAN endèks chanèl.
resevwa
Pou resevwa premye seri konsèy la nan ankadreman done yo.
Len
Longè etalaj ankadreman done a dwe plis pase 2500 pou retounen mesaj nòmal.
Sinon, longè retounen a pral zewo si mesaj la resevwa oswa ou pa. adaptè a mete yon tanpon 2000-ankadreman pou chak chanèl. Ki baze sou pwòp sistèm ak anviwònman k ap travay, itilizatè a ka chwazi yon longè etalaj ki apwopriye soti nan 2500.
WaitTime rezève.
Retounen:
Retounen kantite ankadreman ki aktyèlman te li, -1 endike erè aparèy.
Pa egzanp
TWA PATI LÒT FONKSYON AK DESKRIPSYON ESTRUKTI DONE
Chapit sa a dekri lòt kalite done ak fonksyon bibliyotèk koòdone ZLG enkonpatib ki genyen nan bibliyotèk koòdone adaptè USB-CAN ControlCAN.dll. Tanpri fè
pa rele fonksyon sa yo si sèvi ak yon modèl ZLG konpatib pou devlopman segondè pou yo pa afekte konpatibilite.
3.1 DESKRIPSYON FONKSYON
3.1.1. VCI_UsbDeviceReset
Reyajiste USB-CAN adaptè, bezwen re-louvri aparèy la apre reset lè l sèvi avèk VCI_OpenDevice.
DWORD __stdcall VCI_UsbDeviceReset(DWORD DevType,DWORD DevIndex,DWORD rezève
Paramèt:
DevType
Kalite aparèy. Gade: Definisyon kalite aparèy adaptè.
DevIndex
Endèks aparèy, pou egzanpample, lè gen yon sèl adaptè USB-CAN, nimewo endèks la se 0, lè gen plizyè adaptè USB-CAN, nimewo endèks yo nan yon lòd monte kòmanse nan 0.
Rezève Rezève.
Retounen:
Valè retounen = 1, ki vle di ke operasyon an gen siksè; = 0 endike ke operasyon an echwe; = -1 endike ke aparèy la pa egziste.
bRel = VCI_UsbDeviceReset (nDeviceType, Endepandans, 0);
3.1.2. VCI_FindUsbDevice2
Lè PC a menm lè l sèvi avèk plizyè USB-CAN, itilizatè ka itilize fonksyon sa a pou jwenn aparèy aktyèl la.
DWORD __stdcall VCI_FindUsbDevice2(PVCI_BOARD_INFO pInfo);
Paramèt:
pEnfo
pInfo yo itilize pou estoke paramèt premye pwent adrès tanpon done yo.
Retounen
Retounen nimewo adaptè USB-CAN ki konekte nan òdinatè a.
Pati Kat Fonksyon Bibliyotèk Entèfas Sèvi ak Pwosesis
Yo nan lòd yo miltipliye fonksyon aparèy, nou bay fonksyon adisyonèl (fonksyon prezante ak yon background vèt), fonksyon sa yo enkli: VCI_FindUsbDevice2 VCI_UsbDeviceReset. Pandan dezyèm devlopman an, fonksyon sa yo pa nesesèman envoke. Menm fonksyon sa yo inyore, tout fonksyon adaptè USB-CAN ka reyalize.
www.waveshare.com
www.waveshare.com/wiki
Dokiman / Resous
![]() |
WAVESHARE USB-CAN otobis entèfas adaptè entèfas fonksyon bibliyotèk [pdfManyèl Enstriksyon USB-CAN otobis entèfas adaptè entèfas fonksyon bibliyotèk, USB-CAN, otobis entèfas adaptè entèfas fonksyon bibliyotèk, entèfas fonksyon bibliyotèk, fonksyon bibliyotèk |