Logo WAVESHAREInterfaccia bus USB-CAN
Funzione interfaccia adattatore
Istruzioni per l'utente della bibliotecaLibreria delle funzioni dell'interfaccia dell'adattatore dell'interfaccia del bus CAN USB WAVESHARE

PARTE PRIMA FINITAVIEW

Se l'utente utilizza semplicemente l'adattatore di interfaccia bus USB-CAN per eseguire il test di comunicazione del bus CAN, può utilizzare direttamente il software USB-CAN Tool in dotazione per inviare e ricevere i dati del test.
Se l'utente intende scrivere un programma software per i propri prodotti. Si prega di leggere attentamente le seguenti istruzioni e di fare riferimento agli sample codice che forniamo:
⑴ C++Builder ⑵C# ⑶VC ⑷VB ⑸VB.NET ⑹Delphi ⑺LabVIEW ⑻ LabWindows/CVI ⑼Matlab ⑽QT ⑾Python/Python-can.
Sviluppa la libreria file :ControlCAN.lib, ControlCAN.DLL
Dichiarazione della funzione della versione VC file :ControlCAN.h
Dichiarazione della funzione della versione VB file: ControlCAN.bas
LaboratorioVIEW modulo del pacchetto di funzioni della libreria di versione :ControlCAN.llb
Dichiarazione della funzione della versione Delphi file: ControlCAN.pas

PARTE SECONDA BIBLIOTECA DELLE FUNZIONI COMPATIBILI E STRUTTURA DEI DATI

2.1. DEFINIZIONE DEL TIPO
2.1.1. Tipo di dispositivo

Tipo Definizione Digitare value Descrizione
DEV_USBCAN2 4 USBCAN-2A/USBCAN-2C/CANalyst-II MiniPCIe-CAN

2.1.2. VCI_BOARD_INFO
La struttura VCI_BOARD_INFO contiene informazioni sul dispositivo della scheda di interfaccia della serie USB-CAN.
La struttura verrà compilata nella funzione VCI_ReadBoardInfo.

Libreria delle funzioni dell'interfaccia dell'adattatore dell'interfaccia bus CAN USB WAVESHARE - Fig 1

Membro:
hw_Versione
Numero di versione hardware, notazione esadecimale. Ad esempio, 0x0100 rappresenta V1.00.
fw_Versione
Numero di versione hardware, notazione esadecimale. Ad esempio, 0x0100 rappresenta V1.00.
Pagina 2
dr_Versione

Numero di versione del driver, notazione esadecimale. Ad esempio, 0x0100 rappresenta V1.00.
in_Versione
Numero di versione della libreria dell'interfaccia, notazione esadecimale. Ad esempio, 0x0100 rappresenta V1.00.
irq_Num
Sistema riservato.
can_Num
Rappresenta il numero totale di canali CAN.
str_Serial_Num
Il numero di serie di questa scheda.
str_hw_Type
Tipo di hardware, ad esempio "USBCAN V1.00" (Nota: include il terminatore di stringa '\0').
Prenotato
Sistema riservato.
2.1.3. VCI_CAN_OBJ
Nelle funzioni VCI_Transmit e VCI_Receive, la struttura VCI_CAN_OBJ viene utilizzata per trasmettere il telegramma CAN.

Libreria delle funzioni dell'interfaccia dell'adattatore dell'interfaccia bus CAN USB WAVESHARE - Fig

Membro:
ID
Identificatore del messaggio. Formato ID diretto, allineato a destra, fare riferimento a: Allegato Uno: Dettagli allineamento ID.
Ora Stamp
Ricevere il stamp informazioni sull'intervallo di tempo, avviare la temporizzazione quando il controller CAN viene inizializzato, l'unità è 0 ms.
TimeFlag
In termini di utilizzo del tempo stamp, 1è l'effettivo TimeStamp. TimeFlag e TimeStamp hanno senso solo quando viene ricevuto il frame .
Tipo di invio
Tipo di invio. = 0 indica il tipo normale, = 1 indica l'invio singolo.
RemoteFlag
Se si tratta di un flag remoto. = 1 indica flag remoto, = 0 indica flag dati.
ExternFlag
Se si tratta di un flag esterno. = 1 indica flag esterno, = 0 indica flag standard.
DataLen
Data length(<=8) ,ovvero la lunghezza dei dati.
Dati
Dati a pacchetto.
Prenotato
Sistema riservato.
2.1.4. VCI_INIT_CONFIG
La struttura VCI_INIT_CONFIG definisce la configurazione di inizializzazione del CAN. La struttura verrà compilata nella funzione VCI_InitCan.

Libreria delle funzioni dell'interfaccia dell'adattatore dell'interfaccia bus CAN USB WAVESHARE - Fig 2

Membro:
Codice Acc
Ricevi il codice di accettazione filtrato.
Maschera acc
Ricevi la maschera del filtro.
Prenotato
Prenotato.
Filtro
Metodo di filtraggio, che consente l'intervallo di impostazione 0-3, fare riferimento alla sezione 2.2.3 della tabella delle modalità di filtraggio per i dettagli.
Tempismo0
SJA1000 Parametro baud rate, Timing0 (BTR0) .
Tempismo1
SJA1000 Parametro baud rate, Timing1 (BTR1) .
Modalità
Modalità di funzionamento, 0 = funzionamento normale, 1 = modalità di solo ascolto, 2 = ammissione spontanea e modalità di test di invio.
Osservazioni:
Per quanto riguarda le impostazioni del filtro, fare riferimento a: Allegato II: Istruzioni per l'impostazione dei parametri CAN.
CAN Timing0 e Timing1 sono usati per impostare il baud rate, questi due parametri sono usati solo all'inizializzazione stage.
Tabella di riferimento Baud convenzionale:

CAN Velocità di trasmissione Temporizzazione0(BTR0) Temporizzazione1(BTR1)
10kbps 0x31 0x1C
20kbps 0x18 0x1C
40kbps 0x87 0xFF
50kbps 0x09 0x1C
80kbps 0x83 0xFF
100kbps 0x04 0x1C
125kbps 0x03 0x1C
200kbps 0x81 0xFA
250kbps 0x01 0x1C
400kbps 0x80 0xFA
500kbps 0x00 0x1C
666kbps 0x80 0xB6
800kbps 0x00 0x16
1000kbps 0x00 0x14
33.33 Kbps 0x09 0x6F
66.66 Kbps 0x04 0x6F
83.33 Kbps 0x03 0x6F
  1. Gli utenti devono solo seguire SJA1000 (16 MHz) per impostare il parametro Baud rate.
  2. L'adattatore non supporta temporaneamente velocità in baud inferiori a 10K.

2.2. DESCRIZIONE DELLA FUNZIONE
2.2.1. VCI_OpenDevice
Questa funzione viene utilizzata per collegare i dispositivi.
DWORD __stdcall VCI_OpenDevice(DWORD DevType,DWORD DevIndex,DWORD riservato);
Parametri:
Tipo di sviluppo
Tipo di dispositivo. Vedere: Definizione del tipo di dispositivo dell'adattatore.
DevIndex
Indice dispositivo, ad esample, quando è presente un solo adattatore USB-CAN, il numero di indice è 0, quando sono presenti più adattatori USB-CAN, i numeri di indice in ordine crescente a partire da 0.
Prenotato
Parametri di conservazione, inserire 0.
Resi:
Valore restituito = 1, il che significa che l'operazione è andata a buon fine; = 0 indica che l'operazione non è riuscita; = -1 indica che il dispositivo non esiste.

Libreria delle funzioni dell'interfaccia dell'adattatore dell'interfaccia del bus CAN USB WAVESHARE - Fig3

2.2.2. VCI_ChiudiDispositivo
Questa funzione viene utilizzata per chiudere la connessione.
DWORD __stdcall VCI_CloseDevice(DWORD DevType,DWORD DevIndex);
Parametri:
Tipo di sviluppo
Tipo di dispositivo. Vedere: Definizione del tipo di dispositivo dell'adattatore.
DevIndex
Indice dispositivo, ad esample, quando è presente un solo adattatore USB-CAN, il numero di indice è 0, quando sono presenti più adattatori USB-CAN, i numeri di indice in ordine crescente a partire da 0.
Resi:
Valore restituito = 1, il che significa che l'operazione è andata a buon fine; = 0 indica che l'operazione non è riuscita; = -1 indica che il dispositivo non esiste.

Libreria delle funzioni dell'interfaccia dell'adattatore dell'interfaccia bus CAN USB WAVESHARE - Fig 4

2.2.3. VCI_InitCan
Questa funzione viene utilizzata per inizializzare il CAN specificato.
DWORD __stdcall VCI_InitCAN(DWORD DevType, DWORD DevIndex, DWORD CANIndex,
PVCI_INIT_CONFIG pInitConfig);

Parametri:
Tipo di sviluppo
Tipo di dispositivo. Vedere: Definizione del tipo di dispositivo dell'adattatore.
DevIndex
Indice dispositivo, ad esample, quando è presente un solo adattatore USB-CAN, il numero di indice è 0, quando sono presenti più adattatori USB-CAN, i numeri di indice in ordine crescente a partire da 0.
CANIndice
Indice del canale CAN, ad esempio quando c'è un solo canale CAN, il numero di indice è 0, se ce ne sono due, il numero di indice può essere 0 o 1.
pinitConfig
Struttura dei parametri di inizializzazione. Elenco dei parametri dei membri:

Membro Descrizione funzionale
pInitConfig->AccCode AccCode e AccMask possono collaborare per determinare quali pacchetti possono essere accettati. Questi due registri vengono utilizzati per impostare l'ID allineato a sinistra, ovvero il bit più alto (Bit31) di AccCode e AccMask è allineato con il bit più alto del valore ID.
pInitConfig->AccMask Per quanto riguarda l'allineamento ID fare riferimento agli allegati: Allegato I:
Dettagli sull'allineamento dell'ID.
Ad esempio: se si imposta il valore di AccCode come 0x24600000 (ovvero 0x123 viene spostato a sinistra di 21 bit), il valore di AccMask
è impostato su 0x00000000, quindi possono essere accettati solo i pacchetti con ID frame messaggio CAN 0x123 (il valore AccMask di 0x00000000 indica che tutti i bit sono rilevanti
bit). Se il valore AccCode è impostato su 0x24600000, il valore AccMask è impostato su 0x600000 (0x03 viene spostato a sinistra di 21 bit), quindi possono essere accettati solo i pacchetti con ID frame messaggio CAN 0x120 ~ 0x123 (valore AccMask
0x600000 indica che oltre a bit0 ~ bit1 altri bit (bit2 ~ bit10) sono bit rilevanti).
Nota: Questa impostazione del filtro esample al telaio standard, ad esample, alto 11 bit è il bit valido; nel caso del frame esteso, quindi l'ID valido è a 29 bit. AccCode e AccMask impostano alto 29 bit come bit valido!
pInitConfig->Riservato prenotato
pInitConfig->Filtro Per le impostazioni della modalità di filtraggio fare riferimento alla sezione della tabella delle modalità di filtraggio.
pInitConfig->Timing0 Impostazione della velocità di trasmissione T0
pInitConfig->Timing1 Impostazione della velocità di trasmissione T1
pInitConfig->Modalità Modalità di funzionamento:
0-funzionamento normale
1-Modalità di solo ascolto
2-ammissione spontanea e modalità test di invio (questo valore è escluso dalla libreria delle funzioni ZLG)

Tabella delle modalità di filtro:

Valore Nome Descrizione
1 Ricevi tutti i tipi Adatto sia al telaio standard che a quello esteso!
2 Ricevi solo telaio standard Adatto a telaio standard ed esteso
il telaio verrà rimosso direttamente dalla filtrazione!
3 Ricevi solo frame esteso Adatto al telaio esteso e il telaio standard verrà rimosso da
filtrazione direttamente! 。

Resi:
Valore restituito = 1, il che significa che l'operazione è andata a buon fine; = 0 indica che l'operazione non è riuscita; = -1 indica che il dispositivo non esiste.
Per esempio

Libreria delle funzioni dell'interfaccia dell'adattatore dell'interfaccia bus CAN USB WAVESHARE - Fig 4

Libreria delle funzioni dell'interfaccia dell'adattatore dell'interfaccia bus CAN USB WAVESHARE - Fig 6

2.2.4. VCI_ReadBoardInfo
Questa funzione viene utilizzata per leggere le informazioni sull'hardware dell'adattatore. In generale, può essere ignorato.
DWORD __stdcall VCI_ReadBoardInfo(DWORD DevType,DWORD
DevIndex,PVCI_BOARD_INFO pInfo);
Parametri:
Tipo di sviluppo
Tipo di dispositivo. Vedere: Definizione del tipo di dispositivo dell'adattatore.
DevIndex
Indice dispositivo, ad esample, quando è presente un solo adattatore USB-CAN, il numero di indice è 0, quando sono presenti più adattatori USB-CAN, i numeri di indice in ordine crescente a partire da 0. pInfo
VCI_BOARD_INFO viene utilizzato per memorizzare il puntatore della struttura delle informazioni sul dispositivo.
Resi:
Valore restituito = 1, il che significa che l'operazione è andata a buon fine; = 0 indica che l'operazione non è riuscita; = -1 indica che il dispositivo non esiste.

Libreria delle funzioni dell'interfaccia dell'adattatore dell'interfaccia bus CAN USB WAVESHARE - Fig 7

2.2.5. VCI_GetReceiveNum
Questa funzione viene utilizzata per specificare i frame ricevuti ma non letti nel buffer di ricezione designato.
DWORD __stdcall VCI_GetReceiveNum(DWORD DevType,DWORD DevIndex,DWORD CANIndex);
Parametri:
Tipo di sviluppo
Tipo di dispositivo. Vedere: Definizione del tipo di dispositivo dell'adattatore.
DevIndex
Indice dispositivo, ad esample, quando è presente un solo adattatore USB-CAN, il numero di indice è 0, quando sono presenti più adattatori USB-CAN, i numeri di indice in ordine crescente a partire da 0.
CANIndice
Indice canale CAN.
Resi:
Restituisce i frame che non sono stati ancora letti.
Per esempio
#include “ControlCan.h” int ret=VCI_GetReceiveNum(2,0,0);
2.2.6. VCI_ClearBuffer
Questa funzione viene utilizzata per cancellare il buffer di ricezione e invio del canale designato specificato da
Adattatore USB CAN.
DWORD __stdcall VCI_ClearBuffer(DWORD DevType,DWORD DevIndex,DWORD CANIndex);
Parametri:
Tipo di sviluppo
Tipo di dispositivo. Vedere: Definizione del tipo di dispositivo dell'adattatore.
DevIndex
Indice dispositivo, ad esample, quando è presente un solo adattatore USB-CAN, il numero di indice è 0, quando sono presenti più adattatori USB-CAN, i numeri di indice in ordine crescente a partire da 0.
CANIndice
Indice canale CAN.
Resi:
Valore restituito = 1, il che significa che l'operazione è andata a buon fine; = 0 indica che l'operazione non è riuscita; = -1 indica che il dispositivo non esiste.

Libreria delle funzioni dell'interfaccia dell'adattatore dell'interfaccia bus CAN USB WAVESHARE - Fig 8

2.2.7. VCI_StartCAN
Questa funzione viene utilizzata per avviare il controller CAN e la funzione di ricezione degli interrupt interni dell'adattatore.
DWORD __stdcall VCI_StartCAN(DWORD DevType,DWORD DevIndex,DWORD CANIndex);
Parametri:
Tipo di sviluppo
Tipo di dispositivo. Vedere: Definizione del tipo di dispositivo dell'adattatore.
DevIndex
Indice dispositivo, ad esample, quando è presente un solo adattatore USB-CAN, il numero di indice è 0, quando sono presenti più adattatori USB-CAN, i numeri di indice in ordine crescente a partire da 0.
CANIndice
Indice canale CAN.
Resi:
Valore restituito = 1, il che significa che l'operazione è andata a buon fine; = 0 indica che l'operazione non è riuscita; = -1 indica che il dispositivo non esiste.

Libreria delle funzioni dell'interfaccia dell'adattatore dell'interfaccia bus CAN USB WAVESHARE - Fig 9

2.2.8. VCI_ResetCAN
Questa funzione viene utilizzata per ripristinare il controller CAN.
DWORD __stdcall VCI_ResetCAN(DWORD DevType,DWORD DevIndex,DWORD CANIndex);
Parametri:
Tipo di sviluppo
Tipo di dispositivo. Vedere: Definizione del tipo di dispositivo dell'adattatore.
DevIndex
Indice dispositivo, ad esample, quando è presente un solo adattatore USB-CAN, il numero di indice è 0, quando sono presenti più adattatori USB-CAN, i numeri di indice in ordine crescente a partire da 0.
CANIndice
Indice canale CAN.
Resi:
Valore restituito = 1, il che significa che l'operazione è andata a buon fine; = 0 indica che l'operazione non è riuscita; = -1 indica che il dispositivo non esiste.

Libreria delle funzioni dell'interfaccia dell'adattatore dell'interfaccia bus CAN USB WAVESHARE - Fig 10

2.2.9. VCI_Trasmissione
Questa funzione viene utilizzata per inviare telegrammi CAN.
DWORD __stdcall VCI_Transmit(DWORD DeviceType,DWORD DeviceInd,DWORD CANInd,PVCI_CAN_OBJ pSend,DWORD Lunghezza);
Parametri:
Tipo di sviluppo
Tipo di dispositivo. Vedere: Definizione del tipo di dispositivo dell'adattatore.
DevIndex
Indice dispositivo, ad esample, quando è presente un solo adattatore USB-CAN, il numero di indice è 0, quando sono presenti più adattatori USB-CAN, i numeri di indice in ordine crescente a partire da 0.
CANIndice
Indice canale CAN. pInvia
Il primo indirizzo degli array di frame di dati che devono essere inviati.
Lunghezza
Il numero dei frame di dati che devono essere inviati, il numero massimo è 1000, il valore consigliato è 48 ad alta velocità.
Resi:
Restituisce il numero effettivo di frame già inviati, il valore restituito = -1 indica un errore del dispositivo.
Per esempio
Libreria delle funzioni dell'interfaccia dell'adattatore dell'interfaccia bus CAN USB WAVESHARE - Fig 11

Libreria delle funzioni dell'interfaccia dell'adattatore dell'interfaccia bus CAN USB WAVESHARE - Fig 12

2.2.10. VCI_Ricezione
Questa funzione serve per richiedere la ricezione.
DWORD __stdcall VCI_Receive(DWORD DevType, DWORD DevIndex, DWORD CANIndex, PVCI_CAN_OBJ pReceive, ULONG Len, INT WaitTime);
Parametri:
Tipo di sviluppo
Tipo di dispositivo. Vedere: Definizione del tipo di dispositivo dell'adattatore.
DevIndex
Indice dispositivo, ad esample, quando è presente un solo adattatore USB-CAN, il numero di indice è 0, quando sono presenti più adattatori USB-CAN, i numeri di indice in ordine crescente a partire da 0.
CANIndice
Indice canale CAN.
pRicevi
Per ricevere il primo puntatore impostato dei frame di dati.
Len
La lunghezza dell'array del frame di dati deve essere superiore a 2500 per restituire un messaggio normale.
In caso contrario, la lunghezza di ritorno sarà zero indipendentemente dal fatto che il messaggio venga ricevuto o meno. l'adattatore ha impostato un buffer di 2000 frame per ogni canale. In base al proprio sistema e ambiente di lavoro, l'utente può scegliere una lunghezza di array appropriata da 2500.
WaitTime Riservato.
Resi:
Restituisce il numero di frame effettivamente letti, -1 indica errori del dispositivo.
Per esempio
Libreria delle funzioni dell'interfaccia dell'adattatore dell'interfaccia bus CAN USB WAVESHARE - Fig 13

PARTE TERZA ALTRE FUNZIONI E DESCRIZIONE DELLA STRUTTURA DEI DATI

Questo capitolo descrive altri tipi di dati e funzioni della libreria di interfaccia ZLG incompatibile contenuta nella libreria di interfaccia dell'adattatore USB-CAN ControlCAN.dll. Per favore fallo
non chiamare queste funzioni se si utilizza un modello ZLG compatibile per lo sviluppo secondario in modo da non influire sulla compatibilità.
3.1 DESCRIZIONE FUNZIONE
3.1.1. VCI_UsbDeviceReset
Ripristina l'adattatore USB-CAN, è necessario riaprire il dispositivo dopo il ripristino utilizzando VCI_OpenDevice.
DWORD __stdcall VCI_UsbDeviceReset(DWORD DevType,DWORD DevIndex,DWORD riservato
Parametri:
Tipo di sviluppo
Tipo di dispositivo. Vedere: Definizione del tipo di dispositivo dell'adattatore.
DevIndex
Indice dispositivo, ad esample, quando è presente un solo adattatore USB-CAN, il numero di indice è 0, quando sono presenti più adattatori USB-CAN, i numeri di indice in ordine crescente a partire da 0.
Riservato Riservato.
Resi:
Valore restituito = 1, il che significa che l'operazione è andata a buon fine; = 0 indica che l'operazione non è riuscita; = -1 indica che il dispositivo non esiste.

Libreria delle funzioni dell'interfaccia dell'adattatore dell'interfaccia bus CAN USB WAVESHARE - Fig 14

bRel = VCI_UsbDeviceReset(nDeviceType, Indipendenza, 0);
3.1.2. VCI_FindUsbDevice2
Quando lo stesso PC utilizza più USB-CAN, l'utente può utilizzare questa funzione per trovare il dispositivo corrente.
DWORD __stdcall VCI_FindUsbDevice2(PVCI_BOARD_INFO pInfo);
Parametri:
pInfo
pInfo viene utilizzato per memorizzare i parametri del primo puntatore dell'indirizzo del buffer di dati.
Resi
Restituisce il numero dell'adattatore USB-CAN collegato al computer.

Libreria delle funzioni dell'interfaccia dell'adattatore dell'interfaccia bus CAN USB WAVESHARE - Fig 15

Parte quarta Interfaccia Funzioni della libreria che utilizzano il processo
Per moltiplicare la funzione del dispositivo, abbiamo fornito funzioni aggiuntive (funzioni presentate con uno sfondo verde), queste funzioni includono: VCI_FindUsbDevice2 VCI_UsbDeviceReset. Durante il secondo sviluppo, queste funzioni non devono necessariamente essere richiamate. Anche queste funzioni vengono ignorate, è possibile ottenere tutte le funzioni dell'adattatore USB-CAN.

Libreria delle funzioni dell'interfaccia dell'adattatore dell'interfaccia bus CAN USB WAVESHARE - Fig 16

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

Documenti / Risorse

Libreria delle funzioni dell'interfaccia dell'adattatore di interfaccia bus USB-CAN WAVESHARE [pdf] Manuale di istruzioni
USB-CAN Bus Interface Adapter Interface Library Function Library, USB-CAN, Bus Interface Adapter Interface Library Function, Interface Function Library, Function Library

Riferimenti

Lascia un commento

Il tuo indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *