USB-CAN Bus sučelje
Funkcija sučelja adaptera
Upute za korisnike knjižnice
PRVI DIO GOTOVVIEW
Ako korisnik samo koristi adapter sučelja USB-CAN sabirnice za testiranje komunikacije sa CAN sabirnicom, tada može izravno koristiti isporučeni softver USB-CAN alata za slanje i primanje podataka testa.
Ako korisnik namjerava napisati program za vlastite proizvode. Pažljivo pročitajte sljedeće upute i pogledajte sampkod koji nudimo:
⑴ C++Builder ⑵C# ⑶VC ⑷VB ⑸VB.NET ⑹Delphi ⑺LabVIEW ⑻ LabWindows/CVI ⑼Matlab ⑽QT ⑾Python/Python-can.
Razviti knjižnicu file :ControlCAN.lib, ControlCAN.DLL
Deklaracija funkcije VC verzije file :ControlCAN.h
Deklaracija funkcije VB verzije file: ControlCAN.bas
LaboratorijaVIEW verzija biblioteke modula paketa funkcija :ControlCAN.llb
Deklaracija funkcije Delphi verzije file: ControlCAN.pas
DRUGI DIO KOMPATIBILNA BIBLIOTEKA FUNKCIJA I STRUKTURA PODATAKA
2.1. DEFINICIJA VRSTE
2.1.1. Tip uređaja
Definicija tipa | Vrijednost tipa | Opis |
DEV_USBCAN2 | 4 | USBCAN-2A/USBCAN-2C/CANalyst-II MiniPCIe-CAN |
2.1.2. VCI_PLOČA_INFO
Struktura VCI_BOARD_INFO sadrži informacije o uređaju kartice sučelja USB-CAN serije.
Struktura će biti popunjena u funkciji VCI_ReadBoardInfo.
Član:
hw_Verzija
Broj verzije hardvera, heksadecimalni zapis. Npr. 0x0100 predstavlja V1.00.
fw_Verzija
Broj verzije hardvera, heksadecimalni zapis. Npr. 0x0100 predstavlja V1.00.
stranica 2
dr_Verzija
Broj verzije upravljačkog programa, heksadecimalni zapis. Npr. 0x0100 predstavlja V1.00.
in_Verzija
Broj verzije biblioteke sučelja, heksadecimalni zapis. Npr. 0x0100 predstavlja V1.00.
irq_Num
Sustav rezerviran.
can_Num
Predstavlja ukupan broj CAN kanala.
str_Serijski_broj
Serijski broj ove kartice ploče.
str_hw_Tip
Vrsta hardvera, kao što je “USBCAN V1.00” (Napomena: Uključuje terminator niza '\0').
Rezervirano
Sustav rezerviran.
2.1.3. VCI_CAN_OBJ
U funkcijama VCI_Transmit i VCI_Receive, VCI_CAN_OBJ struktura se koristi za prijenos okvira CAN poruke.
Član:
ID
Identifikator poruke. Format izravnog ID-a, desno poravnat, pogledajte: Aneks jedan: Pojedinosti o poravnanju ID-a.
VrijemeStamp
Primivši svamp informacije o vremenskom okviru, početak mjerenja vremena kada se CAN kontroler inicijalizira, jedinica je 0 ms.
TimeFlag
U smislu treba li koristiti vrijeme svamp, 1 je efektivni TimeStamp. TimeFlag i TimeStamp imaju smisla samo kada je okvir primljen.
SendType
Vrsta slanja. = 0 označava normalnu vrstu, = 1 označava jednokratno slanje.
RemoteFlag
Bilo da se radi o udaljenoj zastavi. = 1 označava udaljenu oznaku, = 0 označava podatkovnu oznaku.
ExternFlag
Bilo da se radi o vanjskoj zastavi. = 1 označava vanjsku zastavu, = 0 označava standardnu zastavu.
DataLen
Dužina podataka (<=8) , odnosno duljina podataka.
Podaci
Paketni podaci.
Rezervirano
Sustav rezerviran.
2.1.4. VCI_INIT_CONFIG
Struktura VCI_INIT_CONFIG definira konfiguraciju inicijalizacije CAN-a. Struktura će biti popunjena u funkciji VCI_InitCan.
Član:
AccCode
Primite filtrirani kod prihvaćanja.
AccMask
Primite filter masku.
Rezervirano
Rezervirano.
Filter
Metoda filtriranja, dopuštajući raspon postavki 0-3, pogledajte odjeljak 2.2.3 tablice načina filtriranja za detalje.
Vrijeme0
SJA1000 Parametar brzine prijenosa, Timing0 (BTR0) .
Vrijeme1
SJA1000 Parametar brzine prijenosa, Timing1 (BTR1) .
Način rada
Način rada, 0 = normalan rad, 1 = način rada samo za slušanje, 2 = način spontanog pristupa i slanja testa.
Primjedbe:
O postavkama filtera pogledajte: Dodatak II: Upute za postavljanje CAN parametra.
CAN Timing0 i Timing1 koriste se za postavljanje brzine prijenosa podataka, ova dva parametra koriste se samo pri inicijalizacijitage.
Konvencionalna referentna tablica bauda:
CAN Brzina prijenosa podataka | Vrijeme 0 (BTR0) | Vrijeme 1 (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 |
- Korisnici samo trebaju slijediti SJA1000 (16MHz) za postavljanje parametra Baud rate.
- Adapter ne podržava privremenu brzinu prijenosa podataka ispod 10K.
2.2. OPIS FUNKCIJE
2.2.1. VCI_OpenDevice
Ova se funkcija koristi za povezivanje uređaja.
DWORD __stdcall VCI_OpenDevice(DWORD DevType,DWORD DevIndex,DWORD Reserved);
Parametri:
DevType
Tip uređaja. Vidi: Definicija tipa adapterskog uređaja.
DevIndex
Indeks uređaja, nprample, kada postoji samo jedan USB-CAN adapter, broj indeksa je 0, kada postoji više USB-CAN adaptera, brojevi indeksa rastućim redoslijedom počevši od 0.
Rezervirano
Parametri zadržavanja, ispunite 0.
Povratak:
Povratna vrijednost = 1, što znači da je operacija uspješna; = 0 označava da operacija nije uspjela; = -1 označava da uređaj ne postoji.
2.2.2. VCI_CloseDevice
Ova se funkcija koristi za zatvaranje veze.
DWORD __stdcall VCI_CloseDevice(DWORD DevType,DWORD DevIndex);
Parametri:
DevType
Tip uređaja. Vidi: Definicija tipa adapterskog uređaja.
DevIndex
Indeks uređaja, nprample, kada postoji samo jedan USB-CAN adapter, broj indeksa je 0, kada postoji više USB-CAN adaptera, brojevi indeksa rastućim redoslijedom počevši od 0.
Povratak:
Povratna vrijednost = 1, što znači da je operacija uspješna; = 0 označava da operacija nije uspjela; = -1 označava da uređaj ne postoji.
2.2.3. VCI_InitCan
Ova se funkcija koristi za inicijalizaciju navedenog CAN-a.
DWORD __stdcall VCI_InitCAN(DWORD DevType, DWORD DevIndex, DWORD CANIndex,
PVCI_INIT_CONFIG pInitConfig);
Parametri:
DevType
Tip uređaja. Vidi: Definicija tipa adapterskog uređaja.
DevIndex
Indeks uređaja, nprample, kada postoji samo jedan USB-CAN adapter, broj indeksa je 0, kada postoji više USB-CAN adaptera, brojevi indeksa rastućim redoslijedom počevši od 0.
CANIndex
Indeks CAN kanala, na primjer kada postoji samo jedan CAN kanal, broj indeksa je 0, ako postoje dva, broj indeksa može biti 0 ili 1.
pInitConfig
Struktura parametara inicijalizacije. Popis parametara članova:
Član | Funkcionalni opis |
pInitConfig->AccCode | AccCode i AccMask mogu raditi zajedno kako bi odredili koji se paketi mogu prihvatiti. Ova dva registra koriste se za postavljanje ID-a poravnatog lijevo, to jest, najviši bit (Bit31) AccCode-a i AccMask-a poravnat je s najvišim bitom ID vrijednosti. |
pInitConfig->AccMask | O ID usklađivanju pogledajte priloge: Dodatak I: ID pojedinosti o poravnanju. Npr. :Ako postavite vrijednost AccCode-a kao 0x24600000 (tj. 0x123 je pomaknut ulijevo za 21 bit), AccMask vrijednost je postavljen na 0x00000000, a tada se mogu prihvatiti samo paketi s ID okvira CAN poruke 0x123 (vrijednost AccMask od 0x00000000 označava da su svi bitovi relevantni |
komadići). Ako je vrijednost AccCode postavljena na 0x24600000, vrijednost AccMask je postavljena na 0x600000 (0x03 je pomaknut ulijevo za 21 bita), a tada se mogu prihvatiti samo paketi s ID okvira CAN poruke 0x120 ~ 0x123 (vrijednost AccMask 0x600000 označava da su osim bit0 ~ bit1 drugi bitovi (bit2 ~ bit10) relevantni bitovi). Bilješka: Ova postavka filtra nprampna standardni okvir, nprample, visoki 11-bit je važeći bit; u slučaju proširenog okvira i tada je važeći ID 29-bitni. AccCode i AccMask postavljaju visokih 29 bita kao važeći bit! |
|
pInitConfig->Rezervirano | Rezervirano |
pInitConfig->Filter | Postavke načina filtriranja pogledajte odjeljak tablice načina filtriranja. |
pInitConfig->Timing0 | Postavka brzine prijenosa T0 |
pInitConfig->Timing1 | Postavka brzine prijenosa T1 |
pInitConfig->Mode | Operativni način: 0-normalan rad 1-Način samo za slušanje 2-spontani pristup i testni način slanja (ova vrijednost je isključena iz knjižnice funkcija ZLG) |
Tablica načina filtriranja:
Vrijednost | Ime | Opis |
1 | Primite sve vrste | Prikladno i za standardni i za produženi okvir! |
2 | Primite samo standardni okvir | Pogodan za standardni okvir i prošireni |
okvir će biti uklonjen izravno filtracijom! | ||
3 | Primajte samo prošireni okvir | Prikladno za produženi okvir, a standardni okvir će biti uklonjen filtracija izravno! . |
Povratak:
Povratna vrijednost = 1, što znači da je operacija uspješna; = 0 označava da operacija nije uspjela; = -1 označava da uređaj ne postoji.
Npr
2.2.4. VCI_ReadBoardInfo
Ova se funkcija koristi za čitanje informacija o hardveru adaptera. Općenito govoreći, može se zanemariti.
DWORD __stdcall VCI_ReadBoardInfo(DWORD DevType,DWORD
DevIndex,PVCI_BOARD_INFO pInfo);
Parametri:
DevType
Tip uređaja. Vidi: Definicija tipa adapterskog uređaja.
DevIndex
Indeks uređaja, nprample, kada postoji samo jedan USB-CAN adapter, broj indeksa je 0, kada postoji više USB-CAN adaptera, brojevi indeksa rastućim redoslijedom počevši od 0. pInfo
VCI_BOARD_INFO se koristi za pohranu pokazivača strukture informacija o uređaju.
Povratak:
Povratna vrijednost = 1, što znači da je operacija uspješna; = 0 označava da operacija nije uspjela; = -1 označava da uređaj ne postoji.
2.2.5. VCI_GetReceiveNum
Ova se funkcija koristi za određivanje primljenih, ali nepročitanih okvira u određenom prijemnom međuspremniku.
DWORD __stdcall VCI_GetReceiveNum(DWORD DevType,DWORD DevIndex,DWORD CANIndex);
Parametri:
DevType
Tip uređaja. Vidi: Definicija tipa adapterskog uređaja.
DevIndex
Indeks uređaja, nprample, kada postoji samo jedan USB-CAN adapter, broj indeksa je 0, kada postoji više USB-CAN adaptera, brojevi indeksa rastućim redoslijedom počevši od 0.
CANIndex
Indeks CAN kanala.
Povratak:
Vrati okvire koji još nisu pročitani.
Npr
#include “ControlCan.h” int ret=VCI_GetReceiveNum(2,0,0);
2.2.6. VCI_ClearBuffer
Ova se funkcija koristi za brisanje međuspremnika za prijem i slanje određenog kanala navedenog u
USB-CAN adapter.
DWORD __stdcall VCI_ClearBuffer(DWORD DevType,DWORD DevIndex,DWORD CANIndex);
Parametri:
DevType
Tip uređaja. Vidi: Definicija tipa adapterskog uređaja.
DevIndex
Indeks uređaja, nprample, kada postoji samo jedan USB-CAN adapter, broj indeksa je 0, kada postoji više USB-CAN adaptera, brojevi indeksa rastućim redoslijedom počevši od 0.
CANIndex
Indeks CAN kanala.
Povratak:
Povratna vrijednost = 1, što znači da je operacija uspješna; = 0 označava da operacija nije uspjela; = -1 označava da uređaj ne postoji.
2.2.7. VCI_StartCAN
Ova se funkcija koristi za pokretanje CAN kontrolera i internu funkciju prijema prekida adaptera.
DWORD __stdcall VCI_StartCAN(DWORD DevType,DWORD DevIndex,DWORD CANIndex);
Parametri:
DevType
Tip uređaja. Vidi: Definicija tipa adapterskog uređaja.
DevIndex
Indeks uređaja, nprample, kada postoji samo jedan USB-CAN adapter, broj indeksa je 0, kada postoji više USB-CAN adaptera, brojevi indeksa rastućim redoslijedom počevši od 0.
CANIndex
Indeks CAN kanala.
Povratak:
Povratna vrijednost = 1, što znači da je operacija uspješna; = 0 označava da operacija nije uspjela; = -1 označava da uređaj ne postoji.
2.2.8. VCI_ResetCAN
Ova se funkcija koristi za resetiranje CAN kontrolera.
DWORD __stdcall VCI_ResetCAN(DWORD DevType,DWORD DevIndex,DWORD CANIndex);
Parametri:
DevType
Tip uređaja. Vidi: Definicija tipa adapterskog uređaja.
DevIndex
Indeks uređaja, nprample, kada postoji samo jedan USB-CAN adapter, broj indeksa je 0, kada postoji više USB-CAN adaptera, brojevi indeksa rastućim redoslijedom počevši od 0.
CANIndex
Indeks CAN kanala.
Povratak:
Povratna vrijednost = 1, što znači da je operacija uspješna; = 0 označava da operacija nije uspjela; = -1 označava da uređaj ne postoji.
2.2.9. VCI_prijenos
Ova se funkcija koristi za slanje okvira CAN poruke.
DWORD __stdcall VCI_Transmit(DWORD DeviceType,DWORD DeviceInd,DWORD CANInd,PVCI_CAN_OBJ pSend,DWORD Length);
Parametri:
DevType
Tip uređaja. Vidi: Definicija tipa adapterskog uređaja.
DevIndex
Indeks uređaja, nprample, kada postoji samo jedan USB-CAN adapter, broj indeksa je 0, kada postoji više USB-CAN adaptera, brojevi indeksa rastućim redoslijedom počevši od 0.
CANIndex
Indeks CAN kanala. pPošalji
Prva adresa nizova okvira podataka koji se moraju poslati.
Duljina
Broj okvira podataka koji se moraju poslati, maksimalan broj je 1000, preporučena vrijednost je 48 pri velikoj brzini.
Povratak:
Vrati stvarni broj već poslanih okvira, povratna vrijednost = -1 označava pogrešku uređaja.
Npr
2.2.10. VCI_Primanje
Ova se funkcija koristi za traženje prijema.
DWORD __stdcall VCI_Receive(DWORD DevType, DWORD DevIndex, DWORD CANIndex, PVCI_CAN_OBJ pReceive, ULONG Len, INT Vrijeme čekanja);
Parametri:
DevType
Tip uređaja. Vidi: Definicija tipa adapterskog uređaja.
DevIndex
Indeks uređaja, nprample, kada postoji samo jedan USB-CAN adapter, broj indeksa je 0, kada postoji više USB-CAN adaptera, brojevi indeksa rastućim redoslijedom počevši od 0.
CANIndex
Indeks CAN kanala.
pPrimiti
Za primanje prvog postavljenog pokazivača podatkovnih okvira.
Len
Duljina niza podatkovnog okvira mora biti veća od 2500 da bi se vratila normalna poruka.
Inače će duljina povrata biti nula bez obzira je li poruka primljena ili ne. adapter je postavio međuspremnik od 2000 okvira za svaki kanal. Na temelju vlastitog sustava i radnog okruženja, korisnik može odabrati odgovarajuću duljinu niza od 2500.
Vrijeme čekanja rezervirano.
Povratak:
Vrati broj okvira koji su stvarno pročitani, -1 označava pogreške uređaja.
Npr
TREĆI DIO DRUGE FUNKCIJE I STRUKTURA PODATAKA OPIS
Ovo poglavlje opisuje druge tipove podataka i funkcije nekompatibilne biblioteke sučelja ZLG sadržane u biblioteci sučelja USB-CAN adaptera ControlCAN.dll. Molim te učini
nemojte pozivati ove funkcije ako koristite kompatibilni ZLG model za sekundarni razvoj kako ne biste utjecali na kompatibilnost.
3.1 OPIS FUNKCIJE
3.1.1. VCI_UsbDeviceReset
Resetirajte USB-CAN adapter, potrebno je ponovno otvoriti uređaj nakon resetiranja pomoću VCI_OpenDevice.
DWORD __stdcall VCI_UsbDeviceReset(DWORD DevType,DWORD DevIndex,DWORD Reserved
Parametri:
DevType
Tip uređaja. Vidi: Definicija tipa adapterskog uređaja.
DevIndex
Indeks uređaja, nprample, kada postoji samo jedan USB-CAN adapter, broj indeksa je 0, kada postoji više USB-CAN adaptera, brojevi indeksa rastućim redoslijedom počevši od 0.
Rezervirano Rezervirano.
Povratak:
Povratna vrijednost = 1, što znači da je operacija uspješna; = 0 označava da operacija nije uspjela; = -1 označava da uređaj ne postoji.
bRel = VCI_UsbDeviceReset(nDeviceType, Independence, 0);
3.1.2. VCI_FindUsbDevice2
Kada isto računalo koristi više USB-CAN-a, korisnik može koristiti ovu funkciju za pronalaženje trenutnog uređaja.
DWORD __stdcall VCI_FindUsbDevice2(PVCI_BOARD_INFO pInfo);
Parametri:
pInfo
pInfo se koristi za pohranjivanje parametara prvog pokazivača adrese međuspremnika podataka.
Povratak
Vratite broj USB-CAN adaptera priključenog na računalo.
Četvrti dio Funkcije biblioteke sučelja koje koriste proces
Kako bismo umnožili funkcije uređaja, osigurali smo dodatne funkcije (funkcije predstavljene zelenom pozadinom), te funkcije uključuju: VCI_FindUsbDevice2 VCI_UsbDeviceReset. Tijekom drugog razvoja, ove funkcije se ne moraju nužno pozivati. Čak i ako se te funkcije zanemare, mogu se postići sve funkcije USB-CAN adaptera.
www.waveshare.com
www.waveshare.com/wiki
Dokumenti / Resursi
![]() |
WAVESHARE USB-CAN Bus Interface Adapter Biblioteka funkcija sučelja [pdf] Upute za uporabu USB-CAN Bus Interface Adapter Biblioteka funkcija sučelja, USB-CAN, Bus Interface Adapter Biblioteka funkcija sučelja, Biblioteka funkcija sučelja, Biblioteka funkcija |