Logo WAVESHAREInterfaccia bus USB-CAN
Funzione di l'interfaccia di l'adattatore
Istruzzioni per l'usu di a bibliotecaWAVESHARE USB CAN Bus Interface Adattatore Interfaccia Funzione Libreria

A PARTE PRIMAVIEW

Se l'utilizatore solu aduprà l'adattatore di l'interfaccia di l'autobus USB-CAN per andà in a prova di cumunicazione di l'autobus CAN, è poi puderà utilizà direttamente u software USB-CAN Tool fornitu per mandà è riceve dati di a prova.
Se l'utilizatore hà intenzione di scrive un prugramma di software per i so prudutti. Leghjite attentamente e seguenti istruzioni è pigliate riferimentu da u sampu codice chì furnimu:
⑴ C++Builder ⑵C# ⑶VC ⑷VB ⑸VB.NET ⑹Delphi ⑺LabVIEW ⑻ LabWindows/CVI ⑼Matlab ⑽QT ⑾Python/Python-can.
Sviluppà a biblioteca file :ControlCAN.lib, ControlCAN.DLL
Dichjarazione di a funzione di a versione VC file :ControlCAN.h
Dichjarazione di a funzione di a versione VB file: ControlCAN.bas
LabVIEW Modulu di pacchettu di funzione di libreria di versione: ControlCAN.llb
Dichjarazione di funzione di versione Delphi file: ControlCAN.pas

PARTE DUE BIBLIOTECA DI FUNZIONE COMPATIBLE E STRUTTURA DI DATI

2.1. DEFINIZIONE TIPI
2.1.1. Tipu di dispusitivu

Definizione di u tipu Type value Descrizzione
DEV_USBCAN2 4 USBCAN-2A/USBCAN-2C/CANalyst-II MiniPCIe-CAN

2.1.2. VCI_BOARD_INFO
A struttura VCI_BOARD_INFO cuntene l'infurmazioni di u dispositivu di a carta di interfaccia USB-CAN Series.
A struttura serà cumpleta in a funzione VCI_ReadBoardInfo.

WAVESHARE USB CAN Bus Interface Adattatore Interfaccia Funzione Libreria - Fig 1

Membru:
hw_Versione
Numeru di versione di hardware, notazione esadecimale. Per esempiu, 0x0100 rapprisenta V1.00.
fw_Versione
Numeru di versione di hardware, notazione esadecimale. Per esempiu, 0x0100 rapprisenta V1.00.
Pagina 2
dr_Versione

Numeru di versione di driver, notazione esadecimale. Per esempiu, 0x0100 rapprisenta V1.00.
in_Versione
Numero di versione di a biblioteca di l'interfaccia, notazione esadecimale. Per esempiu, 0x0100 rapprisenta V1.00.
irq_Num
Sistema riservatu.
can_Num
Rapprisenta u numeru tutale di canali CAN.
str_Serial_Num
U numeru di seriale di sta carta.
str_hw_Tipu
Tipu di hardware, cum'è "USBCAN V1.00" (Nota: Include terminatore di stringa '\0').
Riservatu
Sistema riservatu.
2.1.3. VCI_CAN_OBJ
In e funzioni VCI_Transmit è VCI_Receive, a struttura VCI_CAN_OBJ hè usata per trasmette u quadru di messagiu CAN.

WAVESHARE USB CAN Bus Interfaccia Adattatore Interfaccia Funzione Libreria - Fig

Membru:
ID
Identificatore di messagiu. Formatu d'ID direttu, allineatu à destra, per piacè riferite à: Annex One: Dettagli di allineamentu di ID.
Tempu Stamp
Riceve u stamp infurmazione di u quadru tempu, principiatu timing quandu u controller CAN hè inizializatu, l 'unità hè 0. 1ms.
TimeFlag
In quantu à aduprà u tempu stamp, 1 hè u TimeSt efficaceamp. TimeFlag è TimeStamp sò significati solu quandu u quadru hè ricevutu.
SendType
Tipu di mandatu. = 0 indica Tipu Normale, = 1 indica Single Send.
RemoteFlag
Ch'ella sia una bandiera remota. = 1 indica una bandiera remota, = 0 indica una bandiera di dati.
Bandiera esterna
Ch'ella sia una bandiera esterna. = 1 indica una bandiera esterna, = 0 indica una bandiera standard.
DataLen
Lunghezza di dati (<= 8) , vale à dì, a durata di dati.
Dati
Dati di pacchettu.
Riservatu
Sistema riservatu.
2.1.4. VCI_INIT_CONFIG
A struttura VCI_INIT_CONFIG definisce a cunfigurazione di inizializazione di u CAN. A struttura serà cumpleta in a funzione VCI_InitCan.

WAVESHARE USB CAN Bus Interface Adattatore Interfaccia Funzione Libreria - Fig 2

Membru:
AccCode
Riceve u codice di accettazione filtratu.
AccMask
Riceve a maschera di filtru.
Riservatu
Riservatu.
Filtru
U metudu di filtrazione, chì permette a gamma di paràmetri 0-3, riferite à a sezione 2.2.3 di a tabella di modalità di filtru per i dettagli.
Timing 0
SJA1000 Parametru di baud rate, Timing0 (BTR0).
Timing 1
SJA1000 Parametru di baud rate, Timing1 (BTR1).
Modu
Modu operativu, 0 = funziunamentu normale, 1 = Modu d'ascolta solu, 2 = Modu di prova d'admissione spontanea è di mandatu.
Rimarche:
Riguardu à i paràmetri di u filtru, fate riferimentu à: Annex II: Istruzzioni di cunfigurazione di i parametri CAN.
CAN Timing0 è Timing1 sò usati per stabilisce u baud rate, sti dui parametri sò usati solu à l'inizializazione.tage.
Tabella di riferimentu Baud cunvinziunali:

CAN Baud rate Timing0 (BTR0) Timing1 (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
  1. L'utilizatori solu bisognu di seguità SJA1000 (16MHz) per stabilisce u paràmetru di u Baud rate.
  2. L'adattatore ùn sustene micca temporaneamente u Baud rate sottu 10K.

2.2. DESCRIZIONE DI FUNZIONE
2.2.1. VCI_OpenDevice
Sta funzione hè usata per cunnette i dispositi.
DWORD __stdcall VCI_OpenDevice (DWORD DevType, DWORD DevIndex, DWORD Riservatu);
Parametri:
DevType
tipu di dispusitivu. Vede: Definizione di u tipu di l'adattatore.
DevIndex
Indice di Dispositivi, per esempiuample, quandu ci hè solu un adattatore USB-CAN, u numeru indice hè 0, quandu ci sò parechje adapter USB-CAN, i numeri indice in un ordine ascendante partendu da 0.
Riservatu
Parametri di ritenzione, riempite 0.
Ritorni:
Valore di ritornu = 1, chì significa chì l'operazione hè successu; = 0 indica chì l'operazione hà fiascatu; = -1 indica chì u dispusitivu ùn esiste micca.

WAVESHARE USB CAN Bus Interface Adattatore Interfaccia Funzione Libreria - Fig3

2.2.2. VCI_CloseDevice
Sta funzione hè usata per chjude a cunnessione.
DWORD __stdcall VCI_CloseDevice (DWORD DevType, DWORD DevIndex);
Parametri:
DevType
tipu di dispusitivu. Vede: Definizione di u tipu di l'adattatore.
DevIndex
Indice di Dispositivi, per esempiuample, quandu ci hè solu un adattatore USB-CAN, u numeru indice hè 0, quandu ci sò parechje adapter USB-CAN, i numeri indice in un ordine ascendante partendu da 0.
Ritorni:
Valore di ritornu = 1, chì significa chì l'operazione hè successu; = 0 indica chì l'operazione hà fiascatu; = -1 indica chì u dispusitivu ùn esiste micca.

WAVESHARE USB CAN Bus Interface Adattatore Interfaccia Funzione Libreria - Fig 4

2.2.3. VCI_InitCan
Sta funzione hè usata per inizializà u CAN specificatu.
DWORD __stdcall VCI_InitCAN (DWORD DevType, DWORD DevIndex, DWORD CANIndex,
PVCI_INIT_CONFIG pInitConfig);

Parametri:
DevType
tipu di dispusitivu. Vede: Definizione di u tipu di l'adattatore.
DevIndex
Indice di Dispositivi, per esempiuample, quandu ci hè solu un adattatore USB-CAN, u numeru indice hè 0, quandu ci sò parechje adapter USB-CAN, i numeri indice in un ordine ascendante partendu da 0.
CANIndex
Indice di canali CAN, cum'è quandu ci hè solu un canale CAN, u numeru d'indici hè 0, se ci sò dui, u numeru d'indici pò esse 0 o 1.
pInitConfig
Struttura di paràmetri di inizializazione. Lista di parametri di i membri:

Membru Descrizzione Funziunale
pInitConfig->AccCode AccCode è AccMask ponu travaglià inseme per determinà quali pacchetti ponu esse accettati. Questi dui registri sò usati per stabilisce l'ID allineatu à manca, vale à dì, u bit più altu (Bit31) di l'AccCode è AccMask hè allinatu cù u bit più altu di u valore ID.
pInitConfig->AccMask Pour l'alignement de l'ID, voir les annexes : Annexe I :
dettagli di l'allineamentu di l'ID.
Esempiu: Se stabilisce u valore di l'AccCode cum'è 0x24600000 (vale à dì 0x123 hè spustatu à manca di 21 bit), u valore AccMask
hè stabilitu à 0x00000000, è dopu solu i pacchetti cù l'ID di frame di messagiu CAN hè 0x123 ponu esse accettati (u valore AccMask di 0x00000000 indica chì tutti i bits sò pertinenti).
bits). Se u valore AccCode hè stabilitu à 0x24600000, u valore AccMask hè stabilitu à 0x600000 (0x03 hè spustatu à manca di 21 bit), è allora solu i pacchetti cù l'ID di frame di messagiu CAN hè 0x120 ~ 0x123 pò esse accettatu (valore AccMask).
0x600000 indica chì oltre a bit0 ~ bit1 altri bit (bit2 ~ bit10) sò bit rilevanti).
Nota: Stu filtru setting example à u quadru standard, per esample, high 11-bit hè u bit validu; in u casu di u quadru allargatu, è dopu l'ID validu hè 29-bit. AccCode è AccMask anu stabilitu 29-bit altu cum'è u bit validu!
pInitConfig-> Riservatu riservatu
pInitConfig->Filtru I paràmetri di u modu di filtrazione per piacè riferite à a sezione di a tabella di u modu di filtru.
pInitConfig-> Timing0 Impostazione di baud rate T0
pInitConfig-> Timing1 Impostazione di baud rate T1
pInitConfig->Mode Modu operativu:
0-funzionamentu normale
1-Modu d'ascoltu solu
2-admissione spontanea è modu di prova di mandatu (stu valore hè escludutu da a biblioteca di funzioni ZLG)

Tabella di modalità di filtru:

Valore Nome Descrizzione
1 Riceve tutti i tipi Adatta sia à u quadru standard sia allargatu!
2 Riceve solu frame standard Adatta à u quadru standard, è allargatu
U quadru sarà eliminatu da filtrazione direttamente!
3 Riceve solu un quadru allargatu Adatta à u quadru allargatu, è u quadru standard serà eliminatu da
filtrazione direttamente! 。

Ritorni:
Valore di ritornu = 1, chì significa chì l'operazione hè successu; = 0 indica chì l'operazione hà fiascatu; = -1 indica chì u dispusitivu ùn esiste micca.
Per esempiu

WAVESHARE USB CAN Bus Interface Adattatore Interfaccia Funzione Libreria - Fig 4

WAVESHARE USB CAN Bus Interface Adattatore Interfaccia Funzione Libreria - Fig 6

2.2.4. VCI_ReadBoardInfo
Questa funzione hè aduprata per leghje l'infurmazioni hardware di l'adattatore. In generale, pò esse ignoratu.
DWORD __stdcall VCI_ReadBoardInfo (DWORD DevType, DWORD
DevIndex,PVCI_BOARD_INFO pInfo);
Parametri:
DevType
tipu di dispusitivu. Vede: Definizione di u tipu di l'adattatore.
DevIndex
Indice di Dispositivi, per esempiuample, quandu ci hè solu un adattatore USB-CAN, u numeru indice hè 0, quandu ci sò parechje adattatori USB-CAN, i numeri indice in ordine ascendante partendu da 0. pInfo
VCI_BOARD_INFO hè utilizatu per almacenà l'indicatore di struttura di l'infurmazioni di u dispositivu.
Ritorni:
Valore di ritornu = 1, chì significa chì l'operazione hè successu; = 0 indica chì l'operazione hà fiascatu; = -1 indica chì u dispusitivu ùn esiste micca.

WAVESHARE USB CAN Bus Interface Adattatore Interfaccia Funzione Libreria - Fig 7

2.2.5. VCI_GetReceiveNum
Questa funzione hè aduprata per specificà i frames ricevuti ma ùn sò micca stati letti in u buffer di ricezione designatu.
DWORD __stdcall VCI_GetReceiveNum (DWORD DevType, DWORD DevIndex, DWORD CANIndex);
Parametri:
DevType
tipu di dispusitivu. Vede: Definizione di u tipu di l'adattatore.
DevIndex
Indice di Dispositivi, per esempiuample, quandu ci hè solu un adattatore USB-CAN, u numeru indice hè 0, quandu ci sò parechje adapter USB-CAN, i numeri indice in un ordine ascendante partendu da 0.
CANIndex
Indice di canali CAN.
Ritorni:
Ritorna i frames chì ùn sò micca stati ancu letti.
Per esempiu
#include "ControlCan.h" int ret = VCI_GetReceiveNum (2,0,0);
2.2.6. VCI_ClearBuffer
Sta funzione hè aduprata per sguassà u buffer di ricezione è mandatu di u canali designatu specificatu da
Adattatore USB-CAN.
DWORD __stdcall VCI_ClearBuffer (DWORD DevType, DWORD DevIndex, DWORD CANIndex);
Parametri:
DevType
tipu di dispusitivu. Vede: Definizione di u tipu di l'adattatore.
DevIndex
Indice di Dispositivi, per esempiuample, quandu ci hè solu un adattatore USB-CAN, u numeru indice hè 0, quandu ci sò parechje adapter USB-CAN, i numeri indice in un ordine ascendante partendu da 0.
CANIndex
Indice di canali CAN.
Ritorni:
Valore di ritornu = 1, chì significa chì l'operazione hè successu; = 0 indica chì l'operazione hà fiascatu; = -1 indica chì u dispusitivu ùn esiste micca.

WAVESHARE USB CAN Bus Interface Adattatore Interfaccia Funzione Libreria - Fig 8

2.2.7. VCI_StartCAN
Questa funzione hè aduprata per inizià u controller CAN è a funzione di ricezione d'interruzzione interna di l'adattatore.
DWORD __stdcall VCI_StartCAN (DWORD DevType, DWORD DevIndex, DWORD CANIndex);
Parametri:
DevType
tipu di dispusitivu. Vede: Definizione di u tipu di l'adattatore.
DevIndex
Indice di Dispositivi, per esempiuample, quandu ci hè solu un adattatore USB-CAN, u numeru indice hè 0, quandu ci sò parechje adapter USB-CAN, i numeri indice in un ordine ascendante partendu da 0.
CANIndex
Indice di canali CAN.
Ritorni:
Valore di ritornu = 1, chì significa chì l'operazione hè successu; = 0 indica chì l'operazione hà fiascatu; = -1 indica chì u dispusitivu ùn esiste micca.

WAVESHARE USB CAN Bus Interface Adattatore Interfaccia Funzione Libreria - Fig 9

2.2.8. VCI_ResetCAN
Questa funzione hè aduprata per resettà u controller CAN.
DWORD __stdcall VCI_ResetCAN (DWORD DevType, DWORD DevIndex, DWORD CANIndex);
Parametri:
DevType
tipu di dispusitivu. Vede: Definizione di u tipu di l'adattatore.
DevIndex
Indice di Dispositivi, per esempiuample, quandu ci hè solu un adattatore USB-CAN, u numeru indice hè 0, quandu ci sò parechje adapter USB-CAN, i numeri indice in un ordine ascendante partendu da 0.
CANIndex
Indice di canali CAN.
Ritorni:
Valore di ritornu = 1, chì significa chì l'operazione hè successu; = 0 indica chì l'operazione hà fiascatu; = -1 indica chì u dispusitivu ùn esiste micca.

WAVESHARE USB CAN Bus Interface Adattatore Interfaccia Funzione Libreria - Fig 10

2.2.9. VCI_Transmit
Sta funzione hè usata per mandà u quadru di missaghju CAN.
DWORD __stdcall VCI_Transmit (DWORD DeviceType, DWORD DeviceInd, DWORD CANInd, PVCI_CAN_OBJ pSend, DWORD Length);
Parametri:
DevType
tipu di dispusitivu. Vede: Definizione di u tipu di l'adattatore.
DevIndex
Indice di Dispositivi, per esempiuample, quandu ci hè solu un adattatore USB-CAN, u numeru indice hè 0, quandu ci sò parechje adapter USB-CAN, i numeri indice in un ordine ascendante partendu da 0.
CANIndex
Indice di canali CAN. p Mandate
U primu indirizzu di l'array di frame di dati chì deve esse mandatu.
Lunghezza
U numeru di i frames di dati chì deve esse mandatu, u numeru massimu hè 1000, u valore cunsigliatu hè 48 sottu à alta veloce.
Ritorni:
Ritorna u numeru attuale di frames digià mandatu, u valore di ritornu = -1 indica un errore di u dispusitivu.
Per esempiu
WAVESHARE USB CAN Bus Interface Adattatore Interfaccia Funzione Libreria - Fig 11

WAVESHARE USB CAN Bus Interface Adattatore Interfaccia Funzione Libreria - Fig 12

2.2.10. VCI_Receive
Questa funzione hè aduprata per dumandà a ricezione.
DWORD __stdcall VCI_Receive (DWORD DevType, DWORD DevIndex, DWORD CANIndex, PVCI_CAN_OBJ pReceive, ULONG Len, INT WaitTime);
Parametri:
DevType
tipu di dispusitivu. Vede: Definizione di u tipu di l'adattatore.
DevIndex
Indice di Dispositivi, per esempiuample, quandu ci hè solu un adattatore USB-CAN, u numeru indice hè 0, quandu ci sò parechje adapter USB-CAN, i numeri indice in un ordine ascendante partendu da 0.
CANIndex
Indice di canali CAN.
riceve
Per riceve u primu set pointer di i frames di dati.
Len
A lunghezza array di u quadru di dati deve esse più di 2500 per rinvià u messagiu normale.
Altrimenti, a durata di u ritornu serà cero se u messagiu hè ricevutu o micca. l'adattatore hà stabilitu un buffer di 2000 frames per ogni canali. Basatu nantu à u so propiu sistema è l'ambiente di travagliu, l'utilizatore pò sceglie una lunghezza di array adatta da 2500.
WaitTime Riservatu.
Ritorni:
Ritorna u nùmeru di frames chì in realtà sò stati letti, -1 indica errori di u dispositivu.
Per esempiu
WAVESHARE USB CAN Bus Interface Adattatore Interfaccia Funzione Libreria - Fig 13

PART THREE ALTRE FUNZIONI E DESCRIZIONE DI STRUTTURA DATA

Stu capitulu descrive altri tipi di dati è funzioni di a libreria di l'interfaccia ZLG incompatibile cuntenuta in a biblioteca di l'interfaccia di l'adattatore USB-CAN ControlCAN.dll. Per piacè fate
Ùn chjamate micca queste funzioni se utilizate un mudellu ZLG cumpatibile per u sviluppu secundariu per ùn affettà a cumpatibilità.
3.1 DESCRIZIONE DI FUNZIONE
3.1.1. VCI_UsbDeviceReset
Resettate l'adattatore USB-CAN, avete bisognu di riapertura di u dispositivu dopu à resettore usendu VCI_OpenDevice.
DWORD __stdcall VCI_UsbDeviceReset (DWORD DevType, DWORD DevIndex, DWORD Riservatu
Parametri:
DevType
tipu di dispusitivu. Vede: Definizione di u tipu di l'adattatore.
DevIndex
Indice di Dispositivi, per esempiuample, quandu ci hè solu un adattatore USB-CAN, u numeru indice hè 0, quandu ci sò parechje adapter USB-CAN, i numeri indice in un ordine ascendante partendu da 0.
Riservatu Riservatu.
Ritorni:
Valore di ritornu = 1, chì significa chì l'operazione hè successu; = 0 indica chì l'operazione hà fiascatu; = -1 indica chì u dispusitivu ùn esiste micca.

WAVESHARE USB CAN Bus Interface Adattatore Interfaccia Funzione Libreria - Fig 14

bRel = VCI_UsbDeviceReset (nDeviceType, Independence, 0);
3.1.2. VCI_FindUsbDevice2
Quandu u listessu PC cù parechje USB-CAN, l'utilizatore pò aduprà sta funzione per truvà u dispusitivu attuale.
DWORD __stdcall VCI_FindUsbDevice2 (PVCI_BOARD_INFO pInfo);
Parametri:
pInfo
pInfo hè utilizatu per almacenà i paràmetri di u primu puntatore di l'indirizzu di buffer di dati.
Ritorna
Ritorna u numeru di l'adattatore USB-CAN cunnessu à l'urdinatore.

WAVESHARE USB CAN Bus Interface Adattatore Interfaccia Funzione Libreria - Fig 15

Part Quattru Funzioni di Biblioteca di l'interfaccia Utilizendu u prucessu
Per multiplicà a funzione di u dispositivu, avemu furnitu funzioni supplementari (funzioni presentate cù un fondo verde), queste funzioni includenu: VCI_FindUsbDevice2 VCI_UsbDeviceReset. Duranti u sicondu sviluppu, sti funzioni ùn sò micca necessariamente invucatu. Ancu queste funzioni sò ignorate, tutte e funzioni di l'adattatore USB-CAN ponu esse rializate.

WAVESHARE USB CAN Bus Interface Adattatore Interfaccia Funzione Libreria - Fig 16

www.waveshare.com
www.waveshare.com/wiki

Documenti / Risorse

WAVESHARE USB-CAN Bus Interfaccia Adattatore Interfaccia Libreria di Funzioni [pdfManuale d'istruzzioni
Libreria di funzioni di interfaccia di adattatore di interfaccia di bus USB-CAN, USB-CAN, libreria di funzioni di interfaccia di adattatore di interfaccia di bus, libreria di funzioni di interfaccia, libreria di funzioni

Referenze

Lascia un cumentu

U vostru indirizzu email ùn serà micca publicatu. I campi obbligatori sò marcati *