Ndërfaqja e autobusit USB-CAN
Funksioni i ndërfaqes së përshtatësit
Udhëzime për përdoruesit e bibliotekës
MBI PJESA E PARËVIEW
Nëse përdoruesi thjesht përdor përshtatësin e ndërfaqes së autobusit USB-CAN për të kaluar në testin e komunikimit të autobusit CAN, dhe më pas ai mund të përdorë drejtpërdrejt softuerin e dhënë USB-CAN Tool për dërgimin dhe marrjen e të dhënave të testit.
Nëse përdoruesi synon të shkruajë programe softuerike për produktet e tij. Ju lutemi lexoni me kujdes udhëzimet e mëposhtme dhe merrni referencë nga sampkodin që ne ofrojmë:
⑴ C++Builder ⑵C# ⑶VC ⑷VB ⑸VB.NET ⑹Delphi ⑺LabVIEW ⑻ LabWindows/CVI ⑼Matlab ⑽QT ⑾Python/Python-can.
Zhvilloni bibliotekën file :ControlCAN.lib, ControlCAN.DLL
Deklarata e funksionit të versionit VC file :ControlCAN.h
Deklarata e funksionit të versionit VB file: ControlCAN.bas
LaboratoriVIEW Moduli i paketës së funksionit të bibliotekës së versionit :ControlCAN.llb
Deklarata e funksionit të versionit Delphi file: ControlCAN.pas
PJESA E DYTË BIBLIOTEKA E FUNKSIONIT TË KOMPATIBLE DHE STRUKTURA E TË DHËNAVE
2.1. PËRKUFIZIMI I LLOJIT
2.1.1. Lloji i pajisjes
Përkufizimi i llojit | Lloji i vlerës | Përshkrimi |
DEV_USBCAN2 | 4 | USBCAN-2A/USBCAN-2C/CANalyst-II MiniPCIe-CAN |
2.1.2. VCI_BOARD_INFO
Struktura VCI_BOARD_INFO përmban informacione të pajisjes së kartës së ndërfaqes së serisë USB-CAN.
Struktura do të plotësohet në funksionin VCI_ReadBoardInfo.
Anëtar:
hw_Version
Numri i versionit të harduerit, shënimi heksadecimal. P.sh. 0x0100 përfaqëson V1.00.
fw_Version
Numri i versionit të harduerit, shënimi heksadecimal. P.sh. 0x0100 përfaqëson V1.00.
Faqe 2
dr_Version
Numri i versionit të shoferit, shënimi heksadecimal. P.sh. 0x0100 përfaqëson V1.00.
në_Version
Numri i versionit të bibliotekës së ndërfaqes, shënimi heksadecimal. P.sh. 0x0100 përfaqëson V1.00.
irq_Num
Sistemi i rezervuar.
mund_Num
Përfaqëson numrin total të kanalit CAN.
str_Serial_Num
Numri serial i kësaj karte bordi.
str_hw_Lloji
Lloji i harduerit, si "USBCAN V1.00" (Shënim: Përfshin terminatorin e vargut '\0').
Rezervuar
Sistemi i rezervuar.
2.1.3. VCI_CAN_OBJ
Në funksionet VCI_Transmit dhe VCI_Receive, struktura VCI_CAN_OBJ përdoret për të transmetuar kornizën e mesazheve CAN.
Anëtar:
ID
Identifikuesi i mesazhit. Formati i ID-së direkte, i rreshtuar djathtas, ju lutemi referojuni: Aneksit Një: Detajet e shtrirjes së ID-së.
KohaStamp
Marrja e rramp informacioni i kornizës kohore, koha e fillimit kur kontrolluesi CAN është inicializuar, njësia është 0. 1ms.
Flamuri i kohës
Përsa i përket nëse do të përdoret koha rramp, 1është TimeSt efektiveamp. TimeFlag dhe TimeStamp janë kuptimplote vetëm kur merret korniza.
Lloji i dërgimit
Lloji i dërgimit. = 0 tregon llojin normal, = 1 tregon dërgimin e vetëm.
RemoteFlag
Nëse është një flamur i largët. = 1 tregon flamurin në distancë, = 0 tregon flamurin e të dhënave.
Flamuri i jashtëm
Nëse është një flamur i jashtëm. = 1 tregon flamurin e jashtëm, = 0 tregon flamurin standard.
DataLen
Gjatësia e të dhënave (<=8) d.m.th., gjatësia e të dhënave.
Të dhënat
Të dhënat e paketës.
Rezervuar
Sistemi i rezervuar.
2.1.4. VCI_INIT_CONFIG
Struktura VCI_INIT_CONFIG përcakton konfigurimin e inicializimit të CAN. Struktura do të plotësohet në funksionin VCI_InitCan.
Anëtar:
Accode
Merrni kodin e pranimit të filtruar.
AccMask
Merrni maskën e filtrit.
Rezervuar
Rezervuar.
Filtro
Metoda e filtrimit, që lejon vendosjen e diapazonit 0-3, referojuni seksionit 2.2.3 të tabelës së modalitetit të filtrit për detaje.
Koha0
Parametri i shpejtësisë SJA1000 Baud, Koha 0 (BTR0) .
Koha1
Parametri i shpejtësisë SJA1000 Baud, Koha 1 (BTR1) .
Modaliteti
Modaliteti i funksionimit, 0 = funksionimi normal, 1 = modaliteti vetëm për të dëgjuar, 2 = pranimi spontan dhe modaliteti i testimit të dërgimit.
Vërejtje:
Për cilësimet e filtrit ju lutemi referojuni: Aneksit II: Udhëzimet e konfigurimit të parametrave CAN.
CAN Timing0 dhe Time1 përdoren për të vendosur shpejtësinë e zhurmës, këto dy parametra përdoren vetëm në inicializimin stage.
Tabela konvencionale e referencës Baud:
Shkalla CAN Baud | Koha 0 (BTR0) | Koha 1 (BTR1) |
10 mijë bps | 0x31 | 0x1C |
20 mijë bps | 0x18 | 0x1C |
40 mijë bps | 0x87 | 0xFF |
50 mijë bps | 0x09 | 0x1C |
80 mijë bps | 0x83 | 0xFF |
100 mijë bps | 0x04 | 0x1C |
125 mijë bps | 0x03 | 0x1C |
200 mijë bps | 0x81 | 0xFA |
250 mijë bps | 0x01 | 0x1C |
400 mijë bps | 0x80 | 0xFA |
500 mijë bps | 0x00 | 0x1C |
666 mijë bps | 0x80 | 0xB6 |
800 mijë bps | 0x00 | 0x16 |
1000 mijë bps | 0x00 | 0x14 |
33.33 Kbps | 0x09 | 0x6F |
66.66 Kbps | 0x04 | 0x6F |
83.33 Kbps | 0x03 | 0x6F |
- Përdoruesit duhet vetëm të ndjekin SJA1000 (16 MHz) për të vendosur parametrin e shpejtësisë Baud.
- Përshtatësi nuk mbështet përkohësisht shpejtësinë e Baud nën 10K.
2.2. PËRSHKRIMI I FUNKSIONIT
2.2.1. VCI_OpenDevice
Ky funksion përdoret për të lidhur pajisjet.
DWORD __stdthirrni VCI_OpenDevice(DWORD DevType,DWORD DevIndex,DWORD Reserved);
Parametrat:
DevType
Lloji i pajisjes. Shihni: Përcaktimi i llojit të pajisjes së përshtatësit.
DevIndex
Indeksi i pajisjes, për shembullample, kur ka vetëm një përshtatës USB-CAN, numri i indeksit është 0, kur ka shumë adaptorë USB-CAN, numrat e indeksit në një rend rritës duke filluar nga 0.
Rezervuar
Parametrat e mbajtjes, plotësoni 0.
Kthimet:
Vlera e kthimit = 1, që do të thotë se operacioni është i suksesshëm; = 0 tregon se operacioni dështoi; = -1 tregon se pajisja nuk ekziston.
2.2.2. VCI_CloseDevice
Ky funksion përdoret për të mbyllur lidhjen.
DWORD __stdthirrni VCI_CloseDevice(DWORD DevType,DWORD DevIndex);
Parametrat:
DevType
Lloji i pajisjes. Shihni: Përcaktimi i llojit të pajisjes së përshtatësit.
DevIndex
Indeksi i pajisjes, për shembullample, kur ka vetëm një përshtatës USB-CAN, numri i indeksit është 0, kur ka shumë adaptorë USB-CAN, numrat e indeksit në një rend rritës duke filluar nga 0.
Kthimet:
Vlera e kthimit = 1, që do të thotë se operacioni është i suksesshëm; = 0 tregon se operacioni dështoi; = -1 tregon se pajisja nuk ekziston.
2.2.3. VCI_InitCan
Ky funksion përdoret për të inicializuar CAN-in e specifikuar.
DWORD __stdthirrni VCI_InitCAN(DWORD DevType, DWORD DevIndex, DWORD CANIndex,
PVCI_INIT_CONFIG pInitConfig);
Parametrat:
DevType
Lloji i pajisjes. Shihni: Përcaktimi i llojit të pajisjes së përshtatësit.
DevIndex
Indeksi i pajisjes, për shembullample, kur ka vetëm një përshtatës USB-CAN, numri i indeksit është 0, kur ka shumë adaptorë USB-CAN, numrat e indeksit në një rend rritës duke filluar nga 0.
KANIIndeksi
Indeksi i kanalit CAN, si për shembull kur ka vetëm një kanal CAN, numri i indeksit është 0, nëse ka dy, numri i indeksit mund të jetë 0 ose 1.
pInitConfig
Struktura e parametrave të inicializimit. Lista e parametrave të anëtarëve:
Anëtar | Përshkrimi funksional |
pInitConfig->AccCode | AccCode dhe AccMask mund të punojnë së bashku për të përcaktuar se cilat paketa mund të pranohen. Këta dy regjistra përdoren për të vendosur ID-në të rreshtuar majtas, domethënë, biti më i lartë (Bit31) i AccCode dhe AccMask është i rreshtuar me bitin më të lartë të vlerës së ID-së. |
pInitConfig->AccMask | Rreth shtrirjes së ID-së referojuni anekseve: Shtojca I: Detajet e shtrirjes së ID-së. P.sh.: Nëse e vendosni vlerën e AccCode si 0x24600000 (dmth. 0x123 zhvendoset majtas me 21 bit), vlera e AccMask është vendosur në 0x00000000, dhe më pas mund të pranohen vetëm paketat me ID të kornizës së mesazhit CAN është 0x123 (Vlera AccMask prej 0x00000000 tregon që të gjithë bitet janë relevante |
bit). Nëse vlera e AccCode është vendosur në 0x24600000, vlera e AccMask caktohet në 0x600000 (0x03 zhvendoset majtas me 21 bit), dhe pastaj vetëm paketat me ID-në e kornizës së mesazhit CAN janë 0x120 ~ 0x123 (vlera AccMask 0x600000 tregon se përveç bit0 ~ bit1 bit të tjerë (bit2 ~ bit10) janë bit përkatës). Shënim: Ky cilësim filtri p.shamples në kornizën standarde, për shembullample, 11-bit i lartë është biti i vlefshëm; në rastin e kornizës së zgjeruar, dhe atëherë ID-ja e vlefshme është 29-bit. AccCode dhe AccMask vendosën 29-bit të lartë si bit të vlefshëm! |
|
pInitConfig->Rezervuar | e rezervuar |
pInitConfig->Filter | Cilësimet e modalitetit të filtrimit ju lutemi referojuni seksionit të tabelës së modalitetit të filtrit. |
pInitConfig->Timing0 | Cilësimi i shpejtësisë së bauditT0 |
pInitConfig->Timing1 | Cilësimi i shpejtësisë së bauditT1 |
pInitConfig->Mode | Operative mode: 0-funksionim normal 1-Modaliteti vetëm për të dëgjuar 2-mënyra e testimit të pranimit dhe dërgimit spontan (kjo vlerë është e përjashtuar nga biblioteka e funksioneve ZLG) |
Tabela e modalitetit të filtrit:
Vlera | Emri | Përshkrimi |
1 | Merrni të gjitha llojet | I përshtatshëm si për kornizën standarde ashtu edhe për atë të zgjeruar! |
2 | Merrni vetëm kornizë standarde | I përshtatshëm për kornizën standarde, dhe i zgjatur |
korniza do të hiqet me filtrim direkt! | ||
3 | Merrni vetëm kornizën e zgjatur | I përshtatshëm për kornizën e zgjatur dhe korniza standarde do të hiqet nga filtrim direkt! . |
Kthimet:
Vlera e kthimit = 1, që do të thotë se operacioni është i suksesshëm; = 0 tregon se operacioni dështoi; = -1 tregon se pajisja nuk ekziston.
P.sh
2.2.4. VCI_ReadBoardInfo
Ky funksion përdoret për të lexuar informacionin e harduerit të përshtatësit. Në përgjithësi, mund të injorohet.
DWORD __stdcall VCI_ReadBoardInfo(DWORD DevType,DWORD
DevIndex, PVCI_BOARD_INFO pInfo);
Parametrat:
DevType
Lloji i pajisjes. Shihni: Përcaktimi i llojit të pajisjes së përshtatësit.
DevIndex
Indeksi i pajisjes, për shembullample, kur ka vetëm një përshtatës USB-CAN, numri i indeksit është 0, kur ka shumë adaptorë USB-CAN, numrat e indeksit në një rend rritës duke filluar nga 0. pInfo
VCI_BOARD_INFO përdoret për të ruajtur treguesin e strukturës së informacionit të pajisjes.
Kthimet:
Vlera e kthimit = 1, që do të thotë se operacioni është i suksesshëm; = 0 tregon se operacioni dështoi; = -1 tregon se pajisja nuk ekziston.
2.2.5. VCI_GetReceiveNum
Ky funksion përdoret për të specifikuar kornizat e marra, por nuk janë lexuar në buferin e caktuar marrës.
DWORD __stdthirrni VCI_GetReceiveNum(DWORD DevType,DWORD DevIndex,DWORD CANIndex);
Parametrat:
DevType
Lloji i pajisjes. Shihni: Përcaktimi i llojit të pajisjes së përshtatësit.
DevIndex
Indeksi i pajisjes, për shembullample, kur ka vetëm një përshtatës USB-CAN, numri i indeksit është 0, kur ka shumë adaptorë USB-CAN, numrat e indeksit në një rend rritës duke filluar nga 0.
KANIIndeksi
Indeksi i kanalit CAN.
Kthimet:
Ktheni kornizat që nuk janë lexuar ende.
P.sh
#include “ControlCan.h” int ret=VCI_GetReceiveNum(2,0,0);
2.2.6. VCI_ClearBuffer
Ky funksion përdoret për të pastruar buferin e pranimit dhe dërgimit të kanalit të caktuar të specifikuar nga
Përshtatës USB-CAN.
DWORD __stdthirrni VCI_ClearBuffer(DWORD DevType,DWORD DevIndex,DWORD CANIndex);
Parametrat:
DevType
Lloji i pajisjes. Shihni: Përcaktimi i llojit të pajisjes së përshtatësit.
DevIndex
Indeksi i pajisjes, për shembullample, kur ka vetëm një përshtatës USB-CAN, numri i indeksit është 0, kur ka shumë adaptorë USB-CAN, numrat e indeksit në një rend rritës duke filluar nga 0.
KANIIndeksi
Indeksi i kanalit CAN.
Kthimet:
Vlera e kthimit = 1, që do të thotë se operacioni është i suksesshëm; = 0 tregon se operacioni dështoi; = -1 tregon se pajisja nuk ekziston.
2.2.7. VCI_StartCAN
Ky funksion përdoret për të ndezur kontrolluesin CAN dhe funksionin e pritjes së ndërprerjes së brendshme të përshtatësit.
DWORD __stdthirrni VCI_StartCAN(DWORD DevType,DWORD DevIndex,DWORD CANIndex);
Parametrat:
DevType
Lloji i pajisjes. Shihni: Përcaktimi i llojit të pajisjes së përshtatësit.
DevIndex
Indeksi i pajisjes, për shembullample, kur ka vetëm një përshtatës USB-CAN, numri i indeksit është 0, kur ka shumë adaptorë USB-CAN, numrat e indeksit në një rend rritës duke filluar nga 0.
KANIIndeksi
Indeksi i kanalit CAN.
Kthimet:
Vlera e kthimit = 1, që do të thotë se operacioni është i suksesshëm; = 0 tregon se operacioni dështoi; = -1 tregon se pajisja nuk ekziston.
2.2.8. VCI_ResetCAN
Ky funksion përdoret për të rivendosur kontrolluesin CAN.
DWORD __stdthirrni VCI_ResetCAN(DWORD DevType,DWORD DevIndex,DWORD CANIndex);
Parametrat:
DevType
Lloji i pajisjes. Shihni: Përcaktimi i llojit të pajisjes së përshtatësit.
DevIndex
Indeksi i pajisjes, për shembullample, kur ka vetëm një përshtatës USB-CAN, numri i indeksit është 0, kur ka shumë adaptorë USB-CAN, numrat e indeksit në një rend rritës duke filluar nga 0.
KANIIndeksi
Indeksi i kanalit CAN.
Kthimet:
Vlera e kthimit = 1, që do të thotë se operacioni është i suksesshëm; = 0 tregon se operacioni dështoi; = -1 tregon se pajisja nuk ekziston.
2.2.9. VCI_Transmet
Ky funksion përdoret për të dërguar kornizën e mesazheve CAN.
DWORD __stdcall VCI_Transmit(Lloji i pajisjes DWORD,Indi i pajisjes DWORD,DWORD CANInd,PVCI_CAN_OBJ pSend,Gjatësia DWORD);
Parametrat:
DevType
Lloji i pajisjes. Shihni: Përcaktimi i llojit të pajisjes së përshtatësit.
DevIndex
Indeksi i pajisjes, për shembullample, kur ka vetëm një përshtatës USB-CAN, numri i indeksit është 0, kur ka shumë adaptorë USB-CAN, numrat e indeksit në një rend rritës duke filluar nga 0.
KANIIndeksi
Indeksi i kanalit CAN. pDërgo
Adresa e parë e vargjeve të kornizës së të dhënave që duhet të dërgohen.
Gjatësia
Numri i kornizave të të dhënave që duhet të dërgohen, numri maksimal është 1000, vlera e rekomanduar është 48 me shpejtësi të lartë.
Kthimet:
Kthejeni numrin aktual të kornizave të dërguara tashmë, vlera e kthimit = -1 tregon një gabim të pajisjes.
P.sh
2.2.10. VCI_Merr
Ky funksion përdoret për të kërkuar pritje.
DWORD __stdcall VCI_Receive(DWORD DevType, DWORD DevIndex, DWORD CANIndex, PVCI_CAN_OBJ pReceive, ULONG Len, INT Waittime);
Parametrat:
DevType
Lloji i pajisjes. Shihni: Përcaktimi i llojit të pajisjes së përshtatësit.
DevIndex
Indeksi i pajisjes, për shembullample, kur ka vetëm një përshtatës USB-CAN, numri i indeksit është 0, kur ka shumë adaptorë USB-CAN, numrat e indeksit në një rend rritës duke filluar nga 0.
KANIIndeksi
Indeksi i kanalit CAN.
merrni
Për të marrë treguesin e parë të grupit të kornizave të të dhënave.
Len
Gjatësia e grupit të kornizës së të dhënave duhet të jetë më shumë se 2500 për të kthyer mesazhin normal.
Përndryshe, gjatësia e kthimit do të jetë zero nëse mesazhi është marrë apo jo. përshtatësi vendosi një tampon 2000 kornizash për çdo kanal. Bazuar në sistemin e tij dhe mjedisin e punës, përdoruesi mund të zgjedhë një gjatësi të përshtatshme vargu nga 2500.
Koha e pritjes e rezervuar.
Kthimet:
Ktheni numrin e kornizave që në të vërtetë janë lexuar, -1 tregon gabimet e pajisjes.
P.sh
PJESA E TRETË FUNKSIONET E TJERA DHE PËRSHKRIMI I STRUKTURËS SË TË DHËNAVE
Ky kapitull përshkruan lloje të tjera të dhënash dhe funksione të bibliotekës së ndërfaqes së papajtueshme ZLG që gjendet në bibliotekën e ndërfaqes së përshtatësit USB-CAN ControlCAN.dll. Ju lutem bëni
mos i thirrni këto funksione nëse përdorni një model të pajtueshëm ZLG për zhvillim dytësor, në mënyrë që të mos ndikojë në pajtueshmërinë.
3.1 PËRSHKRIMI I FUNKSIONIT
3.1.1. VCI_UsbDeviceReset
Rivendosni përshtatësin USB-CAN, duhet të rihapni pajisjen pas rivendosjes duke përdorur VCI_OpenDevice.
DWORD __stdcall VCI_UsbDeviceReset(DWORD DevType,DWORD DevIndex,DWORD Reserved
Parametrat:
DevType
Lloji i pajisjes. Shihni: Përcaktimi i llojit të pajisjes së përshtatësit.
DevIndex
Indeksi i pajisjes, për shembullample, kur ka vetëm një përshtatës USB-CAN, numri i indeksit është 0, kur ka shumë adaptorë USB-CAN, numrat e indeksit në një rend rritës duke filluar nga 0.
Rezervuar Rezervuar.
Kthimet:
Vlera e kthimit = 1, që do të thotë se operacioni është i suksesshëm; = 0 tregon se operacioni dështoi; = -1 tregon se pajisja nuk ekziston.
bRel = VCI_UsbDeviceReset(nType Device, Independence, 0);
3.1.2. VCI_FindUsbDevice2
Kur i njëjti kompjuter përdor USB-CAN të shumëfishtë, përdoruesi mund ta përdorë këtë funksion për të gjetur pajisjen aktuale.
DWORD __stdthirrni VCI_FindUsbDevice2(PVCI_BOARD_INFO pInfo);
Parametrat:
pInfo
pInfo përdoret për të ruajtur parametrat e treguesit të parë të adresës së buferit të të dhënave.
Kthimet
Kthejeni numrin e përshtatësit USB-CAN të lidhur në kompjuter.
Pjesa e katërt Funksionet e Bibliotekës së Ndërfaqes duke përdorur Procesin
Për të shumëzuar funksionin e pajisjes, ne siguruam funksione shtesë (funksionet e paraqitura me sfond të gjelbër), këto funksione përfshijnë: VCI_FindUsbDevice2 VCI_UsbDeviceReset. Gjatë zhvillimit të dytë, këto funksione nuk duhet domosdoshmërisht të thirren. Edhe këto funksione injorohen, të gjitha funksionet e përshtatësit USB-CAN mund të arrihen.
www.waveshare.com
www.waveshare.com/wiki
Dokumentet / Burimet
![]() |
WAVESHARE USB-CAN Bus Interface Adapter Interface Biblioteka e Funksionit [pdf] Manuali i Udhëzimeve Biblioteka e funksionit të ndërfaqes së përshtatësit USB-CAN Bus Interface, USB-CAN, Biblioteka e funksionit të ndërfaqes së përshtatësit ndërfaqe të autobusit, Biblioteka e funksioneve të ndërfaqes, Biblioteka e funksioneve |