USB-CAN siini liides
Adapteri liidese funktsioon
Raamatukogu kasutajajuhend
ESIMENE OSA LÕPPENUDVIEW
Kui kasutaja kasutab CAN siini side testimiseks lihtsalt USB-CAN siini liidese adapterit ja siis saab ta testi andmete saatmiseks ja vastuvõtmiseks kasutada otse kaasasolevat USB-CAN Tool tarkvara.
Kui kasutaja kavatseb ise oma toodete jaoks tarkvaraprogrammi kirjutada. Lugege hoolikalt järgmised juhised ja kasutage viidet samppakume koodi:
⑴ C++Builder ⑵C# ⑶VC ⑷VB ⑸VB.NET ⑹ Delphi ⑺LabVIEW ⑻ LabWindows/CVI ⑼Matlab ⑽QT ⑾Python/Python-can.
Arendage raamatukogu file :ControlCAN.lib, ControlCAN.DLL
VC versiooni funktsiooni deklaratsioon file :ControlCAN.h
VB versiooni funktsiooni deklaratsioon file: ControlCAN.bas
LabVIEW versiooniteegi funktsioonipaketi moodul :ControlCAN.llb
Delphi versiooni funktsiooni deklaratsioon file: ControlCAN.pas
TEINE OSA ÜHENDAV FUNKTSIOONIDE TEEK JA ANDMESTRUKTUUR
2.1. TÜÜBI MÄÄRATLUS
2.1.1. Seadme tüüp
Tüübi määratlus | Tüübi väärtus | Kirjeldus |
DEV_USBCAN2 | 4 | USBCAN-2A/USBCAN-2C/CANalyst-II MiniPCIe-CAN |
2.1.2. VCI_BOARD_INFO
VCI_BOARD_INFO struktuur sisaldab USB-CAN-seeria liidesekaardi seadme teavet.
Struktuur täidetakse funktsiooniga VCI_ReadBoardInfo.
liige:
hw_Version
Riistvara versiooni number, kuueteistkümnendsüsteem. Nt 0x0100 tähistab V1.00.
fw_Version
Riistvara versiooni number, kuueteistkümnendsüsteem. Nt 0x0100 tähistab V1.00.
2. lehekülg
dr_Version
Draiveri versiooni number, kuueteistkümnendsüsteem. Nt 0x0100 tähistab V1.00.
in_Version
Liidese teegi versiooninumber, kuueteistkümnendsüsteem. Nt 0x0100 tähistab V1.00.
irq_Num
Süsteem reserveeritud.
can_Num
Esindab CAN-kanalite koguarvu.
str_Serial_Num
Selle tahvlikaardi seerianumber.
str_hw_Tüüp
Riistvara tüüp, näiteks "USBCAN V1.00" (Märkus: sisaldab stringi lõpetajat '\0').
Reserveeritud
Süsteem reserveeritud.
2.1.3. VCI_CAN_OBJ
Funktsioonides VCI_Transmit ja VCI_Receive kasutatakse CAN-teatekaadri edastamiseks struktuuri VCI_CAN_OBJ.
liige:
ID
Sõnumi identifikaator. Otsene ID-vorming, paremale joondatud, vt: Lisa üks: ID joonduse üksikasjad.
TimeStamp
Stamp info ajaraami kohta, käivitamise ajastus, kui CAN-kontroller on lähtestatud, ühik on 0. 1ms.
Time Flag
Seoses sellega, kas kasutada aega stamp, 1 on efektiivne TimeStamp. TimeFlag ja TimeStamp on tähenduslikud ainult siis, kui kaader on vastu võetud.
SendType
Saatmise tüüp. = 0 tähistab tavalist tüüpi, = 1 tähistab ühekordset saatmist.
RemoteFlag
Kas see on kauge lipp. = 1 tähistab kauglippu, = 0 tähistab andmete lippu.
Väline lipp
Kas see on välislipp. = 1 tähistab välist lippu, = 0 tähistab standardlippu.
DataLen
Andmete pikkus (<=8) , see tähendab andmete pikkus.
Andmed
Pakettandmed.
Reserveeritud
Süsteem reserveeritud.
2.1.4. VCI_INIT_CONFIG
VCI_INIT_CONFIG struktuur määrab CAN-i lähtestamise konfiguratsiooni. Struktuur täidetakse funktsiooniga VCI_InitCan.
liige:
AccCode
Saate filtreeritud vastuvõtukoodi.
AccMask
Saate filtrimaski.
Reserveeritud
Reserveeritud.
Filter
Filtreerimismeetod, mis võimaldab seadistusvahemikku 0–3, vt üksikasju filtrirežiimide tabeli jaotisest 2.2.3.
Ajastus 0
SJA1000 edastuskiiruse parameeter, Timing0 (BTR0) .
Ajastus 1
SJA1000 edastuskiiruse parameeter, Timing1 (BTR1) .
Režiim
Töörežiim, 0 = tavaline töörežiim, 1 = ainult kuulamisrežiim, 2 = spontaanne lubamine ja saatmise testrežiim.
Märkused:
Filtri sätete kohta vaadake: Lisa II: CAN-parameetri seadistamise juhised.
CAN Timing0 ja Timing1 kasutatakse edastuskiiruse määramiseks, neid kahte parameetrit kasutatakse ainult initsialiseerimisel.tage.
Tavapärane Baudi viitetabel:
CAN Baudi kiirus | Ajastus0 (BTR0) | Ajastus1 (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 |
- Kasutajad peavad järgima ainult SJA1000 (16MHz), et määrata Baud rate parameetri.
- Adapter ei toeta ajutiselt alla 10K edastuskiirust.
2.2. FUNKTSIOONI KIRJELDUS
2.2.1. VCI_OpenDevice
Seda funktsiooni kasutatakse seadmete ühendamiseks.
DWORD __stdcall VCI_OpenDevice(DWORD DevType,DWORD DevIndex,DWORD Reserved);
Parameetrid:
DevType
Seadme tüüp. Vaadake: Adapteri seadme tüübi määratlus.
DevIndex
Seadme indeks, ntampkui on ainult üks USB-CAN-adapter, on indeksi number 0, kui USB-CAN-adaptereid on mitu, siis indeksinumbrid kasvavas järjekorras alates 0-st.
Reserveeritud
Säilitusparameetrid, sisestage 0.
Tagastab:
Tagastusväärtus = 1, mis tähendab, et toiming on edukas; = 0 näitab, et toiming ebaõnnestus; = -1 näitab, et seadet pole olemas.
2.2.2. VCI_CloseDevice
Seda funktsiooni kasutatakse ühenduse sulgemiseks.
DWORD __stdcall VCI_CloseDevice(DWORD DevType,DWORD DevIndex);
Parameetrid:
DevType
Seadme tüüp. Vaadake: Adapteri seadme tüübi määratlus.
DevIndex
Seadme indeks, ntampkui on ainult üks USB-CAN-adapter, on indeksi number 0, kui USB-CAN-adaptereid on mitu, siis indeksinumbrid kasvavas järjekorras alates 0-st.
Tagastab:
Tagastusväärtus = 1, mis tähendab, et toiming on edukas; = 0 näitab, et toiming ebaõnnestus; = -1 näitab, et seadet pole olemas.
2.2.3. VCI_InitCan
Seda funktsiooni kasutatakse määratud CAN-i lähtestamiseks.
DWORD __stdcall VCI_InitCAN(DWORD DevType, DWORD DevIndex, DWORD CANIindex,
PVCI_INIT_CONFIG pInitConfig);
Parameetrid:
DevType
Seadme tüüp. Vaadake: Adapteri seadme tüübi määratlus.
DevIndex
Seadme indeks, ntampkui on ainult üks USB-CAN-adapter, on indeksi number 0, kui USB-CAN-adaptereid on mitu, siis indeksinumbrid kasvavas järjekorras alates 0-st.
CANIindeks
CAN-kanali indeks, näiteks kui on ainult üks CAN-kanal, on indeksi number 0, kui neid on kaks, võib indeksi number olla 0 või 1.
pInitConfig
Initsialiseerimisparameetrite struktuur. Liikmete parameetrite loend:
liige | Funktsionaalne kirjeldus |
pInitConfig->AccCode | AccCode ja AccMask saavad koos teha kindlaks, milliseid pakette saab vastu võtta. Neid kahte registrit kasutatakse ID vasakule joondamiseks, st AccCode'i kõrgeim bitt (Bit31) ja AccMask on joondatud ID väärtuse kõrgeima bitiga. |
pInitConfig->AccMask | ID joonduse kohta vt lisasid: I lisa: ID joonduse üksikasjad. Nt: kui määrate AccCode'i väärtuseks 0x24600000 (st 0x123 nihutatakse 21 biti võrra vasakule), on AccMask väärtus on seatud väärtusele 0x00000000 ja siis saab vastu võtta ainult need paketid, mille CAN-teatekaadri ID on 0x123 (AccMask väärtus 0x00000000 näitab, et kõik bitid on asjakohased |
bitti). Kui AccCode väärtuseks on seatud 0x24600000, määratakse AccMaski väärtuseks 0x600000 (0x03 nihutatakse vasakule 21 biti võrra) ja siis saab aktsepteerida ainult pakette, mille CAN-teate kaadri ID on 0x120 ~ 0x123 (AccMask väärtus 0x600000 näitab, et peale bit0 ~ bit1 on asjakohased teised bitid (bit2 ~ bit10). Märkus. See filtriseade ntampstandardraamile, ntample, kõrge 11-bitine on kehtiv bitt; laiendatud kaadri puhul ja siis on kehtiv ID 29-bitine. AccCode ja AccMask määravad kehtivaks bitiks kõrge 29-bitise väärtuse! |
|
pInitConfig->Reserveeritud | reserveeritud |
pInitConfig->Filter | Filtreerimisrežiimi seaded vaadake filtrirežiimide tabeli jaotist. |
pInitConfig->Timing0 | Baadisageduse T0 seadistus |
pInitConfig->Timing1 | Baadisageduse T1 seadistus |
pInitConfig->Mode | Töörežiim: 0 - normaalne töö 1-Ainult kuulamisrežiim 2-spontaanse vastuvõtu ja saatmise testrežiim (see väärtus on ZLG funktsiooniteegist välja jäetud) |
Filtrirežiimi tabel:
Väärtus | Nimi | Kirjeldus |
1 | Võta vastu kõik tüübid | Sobib nii standard- kui ka pikendatud raamile! |
2 | Võta vastu ainult standardraam | Sobib standardraamile ja pikendatud |
raam eemaldatakse otse filtreerimise teel! | ||
3 | Võta vastu ainult pikendatud kaader | Sobib pikendatud raamile ja standardraam eemaldatakse otse filtreerimine! . |
Tagastab:
Tagastusväärtus = 1, mis tähendab, et toiming on edukas; = 0 näitab, et toiming ebaõnnestus; = -1 näitab, et seadet pole olemas.
Nt
2.2.4. VCI_ReadBoardInfo
Seda funktsiooni kasutatakse adapteri riistvara teabe lugemiseks. Üldiselt võib seda ignoreerida.
DWORD __stddcall VCI_ReadBoardInfo(DWORD DevType,DWORD
DevIndex,PVCI_BOARD_INFO pInfo);
Parameetrid:
DevType
Seadme tüüp. Vaadake: Adapteri seadme tüübi määratlus.
DevIndex
Seadme indeks, ntample, kui on ainult üks USB-CAN-adapter, on indeksi number 0, kui on mitu USB-CAN-adapterit, siis indeksinumbrid kasvavas järjekorras alates 0-st. pInfo
VCI_BOARD_INFO kasutatakse seadme teabe struktuuri osuti salvestamiseks.
Tagastab:
Tagastusväärtus = 1, mis tähendab, et toiming on edukas; = 0 näitab, et toiming ebaõnnestus; = -1 näitab, et seadet pole olemas.
2.2.5. VCI_GetReceiveNum
Seda funktsiooni kasutatakse määratud vastuvõtupuhvris vastuvõetud, kuid mitte loetud kaadrite määramiseks.
DWORD __stdcall VCI_GetReceiveNum(DWORD DevType,DWORD DevIndex,DWORD CANIindex);
Parameetrid:
DevType
Seadme tüüp. Vaadake: Adapteri seadme tüübi määratlus.
DevIndex
Seadme indeks, ntampkui on ainult üks USB-CAN-adapter, on indeksi number 0, kui USB-CAN-adaptereid on mitu, siis indeksinumbrid kasvavas järjekorras alates 0-st.
CANIindeks
CAN-kanali indeks.
Tagastab:
Tagasta raamid, mida pole veel lugenud.
Nt
#include “ControlCan.h” int ret=VCI_GetReceiveNum(2,0,0);
2.2.6. VCI_ClearBuffer
Seda funktsiooni kasutatakse määratud kanali vastuvõtu- ja saatmispuhvri tühjendamiseks
USB-CAN adapter.
DWORD __stdcall VCI_ClearBuffer(DWORD DevType,DWORD DevIndex,DWORD CANIindex);
Parameetrid:
DevType
Seadme tüüp. Vaadake: Adapteri seadme tüübi määratlus.
DevIndex
Seadme indeks, ntampkui on ainult üks USB-CAN-adapter, on indeksi number 0, kui USB-CAN-adaptereid on mitu, siis indeksinumbrid kasvavas järjekorras alates 0-st.
CANIindeks
CAN-kanali indeks.
Tagastab:
Tagastusväärtus = 1, mis tähendab, et toiming on edukas; = 0 näitab, et toiming ebaõnnestus; = -1 näitab, et seadet pole olemas.
2.2.7. VCI_StartCAN
Seda funktsiooni kasutatakse CAN-kontrolleri ja adapteri sisemise katkestuste vastuvõtu funktsiooni käivitamiseks.
DWORD __stdcall VCI_StartCAN(DWORD DevType,DWORD DevIndex,DWORD CANIindex);
Parameetrid:
DevType
Seadme tüüp. Vaadake: Adapteri seadme tüübi määratlus.
DevIndex
Seadme indeks, ntampkui on ainult üks USB-CAN-adapter, on indeksi number 0, kui USB-CAN-adaptereid on mitu, siis indeksinumbrid kasvavas järjekorras alates 0-st.
CANIindeks
CAN-kanali indeks.
Tagastab:
Tagastusväärtus = 1, mis tähendab, et toiming on edukas; = 0 näitab, et toiming ebaõnnestus; = -1 näitab, et seadet pole olemas.
2.2.8. VCI_ResetCAN
Seda funktsiooni kasutatakse CAN-kontrolleri lähtestamiseks.
DWORD __stdcall VCI_ResetCAN(DWORD DevType,DWORD DevIndex,DWORD CANIindex);
Parameetrid:
DevType
Seadme tüüp. Vaadake: Adapteri seadme tüübi määratlus.
DevIndex
Seadme indeks, ntampkui on ainult üks USB-CAN-adapter, on indeksi number 0, kui USB-CAN-adaptereid on mitu, siis indeksinumbrid kasvavas järjekorras alates 0-st.
CANIindeks
CAN-kanali indeks.
Tagastab:
Tagastusväärtus = 1, mis tähendab, et toiming on edukas; = 0 näitab, et toiming ebaõnnestus; = -1 näitab, et seadet pole olemas.
2.2.9. VCI_Edasta
Seda funktsiooni kasutatakse CAN-teateraami saatmiseks.
DWORD __stdcall VCI_Transmit(DWORD seadmetüüp,DWORD seadmeind,DWORD CANInd,PVCI_CAN_OBJ pSend,DWORD pikkus);
Parameetrid:
DevType
Seadme tüüp. Vaadake: Adapteri seadme tüübi määratlus.
DevIndex
Seadme indeks, ntampkui on ainult üks USB-CAN-adapter, on indeksi number 0, kui USB-CAN-adaptereid on mitu, siis indeksinumbrid kasvavas järjekorras alates 0-st.
CANIindeks
CAN-kanali indeks. pSaada
Andmeraami massiivi esimene aadress, mis tuleb saata.
Pikkus
Andmekaadrite arv, mida tuleb saata, maksimaalne arv on 1000, suure kiiruse korral on soovitatav väärtus 48.
Tagastab:
Tagastab juba saadetud kaadrite tegeliku arvu, tagastatav väärtus = -1 näitab seadme viga.
Nt
2.2.10. VCI_Receive
Seda funktsiooni kasutatakse vastuvõtu taotlemiseks.
DWORD __stdcall VCI_Receive(DWORD DevType, DWORD DevIndex, DWORD CANIindex, PVCI_CAN_OBJ pReceive, ULONG Len, INT WaitTime);
Parameetrid:
DevType
Seadme tüüp. Vaadake: Adapteri seadme tüübi määratlus.
DevIndex
Seadme indeks, ntampkui on ainult üks USB-CAN-adapter, on indeksi number 0, kui USB-CAN-adaptereid on mitu, siis indeksinumbrid kasvavas järjekorras alates 0-st.
CANIindeks
CAN-kanali indeks.
pVastu
Andmekaadrite esimese seatud osuti vastuvõtmiseks.
Len
Tavalise sõnumi tagastamiseks peab andmeraami massiivi pikkus olema suurem kui 2500.
Vastasel juhul on tagastamise pikkus null olenemata sellest, kas sõnum on vastu võetud või mitte. adapter seadis iga kanali jaoks 2000 kaadri puhvri. Kasutaja saab oma süsteemist ja töökeskkonnast lähtuvalt valida sobiva massiivi pikkuse vahemikus 2500.
Ooteaeg reserveeritud.
Tagastab:
Tagastab tegelikult loetud kaadrite arvu, -1 näitab seadme vigu.
Nt
KOLMAS OSA MUUD FUNKTSIOONID JA ANDMETE STRUKTUURI KIRJELDUS
Selles peatükis kirjeldatakse USB-CAN-adapteri liidese teegis ControlCAN.dll oleva ühildumatu ZLG-liidese teegi teisi andmetüüpe ja funktsioone. Palun tehke
Ärge kutsuge neid funktsioone välja, kui kasutate sekundaarseks arendamiseks ühilduvat ZLG mudelit, et mitte mõjutada ühilduvust.
3.1 FUNKTSIOONI KIRJELDUS
3.1.1. VCI_UsbDeviceReset
Lähtestage USB-CAN-adapter, pärast lähtestamist tuleb seade uuesti avada, kasutades VCI_OpenDevice'i.
DWORD __stdcall VCI_UsbDeviceReset(DWORD DevType,DWORD DevIndex,DWORD Reserved
Parameetrid:
DevType
Seadme tüüp. Vaadake: Adapteri seadme tüübi määratlus.
DevIndex
Seadme indeks, ntampkui on ainult üks USB-CAN-adapter, on indeksi number 0, kui USB-CAN-adaptereid on mitu, siis indeksinumbrid kasvavas järjekorras alates 0-st.
Reserveeritud Reserveeritud.
Tagastab:
Tagastusväärtus = 1, mis tähendab, et toiming on edukas; = 0 näitab, et toiming ebaõnnestus; = -1 näitab, et seadet pole olemas.
bRel = VCI_UsbDeviceReset(nSeadmetüüp, Sõltumatus, 0);
3.1.2. VCI_FindUsbDevice2
Kui sama arvuti kasutab mitut USB-CAN-i, saab kasutaja kasutada seda funktsiooni praeguse seadme leidmiseks.
DWORD __stdcall VCI_FindUsbDevice2(PVCI_BOARD_INFO pInfo);
Parameetrid:
pInfo
pInfot kasutatakse esimese andmepuhvri aadressi osuti parameetrite salvestamiseks.
Tagastab
Sisestage arvutiga ühendatud USB-CAN-adapteri number.
Neljas osa Liidese raamatukogu funktsioonid protsessi abil
Seadme funktsioonide mitmekordistamiseks pakkusime lisafunktsioone (rohelise taustaga funktsioonid), nende hulka kuuluvad: VCI_FindUsbDevice2 VCI_UsbDeviceReset. Teise arenduse ajal ei pea neid funktsioone tingimata kasutama. Isegi neid funktsioone eiratakse, on võimalik saavutada kõik USB-CAN-adapteri funktsioonid.
www.waveshare.com
www.waveshare.com/wiki
Dokumendid / Ressursid
![]() |
WAVESHARE USB-CAN siini liidese adapteri liidese funktsioonide raamatukogu [pdfKasutusjuhend USB-CAN siini liidese adapteri liidese funktsiooniteek, USB-CAN, siini liidese adapteri liidese funktsiooniteek, liidese funktsiooniteek, funktsiooniteek |