Sigla WAVESHAREInterfață USB-CAN Bus
Funcția de interfață adaptor
Instrucțiuni de utilizare a biblioteciiWAVESHARE USB CAN Bus Interfață Adaptor Interfață Bibliotecă de funcții

PARTEA I TERMINATVIEW

Dacă utilizatorul folosește doar adaptorul de interfață de magistrală USB-CAN pentru a trece la testul de comunicare cu magistrala CAN, apoi poate utiliza direct software-ul USB-CAN Tool furnizat pentru trimiterea și primirea datelor testului.
Dacă utilizatorul intenționează să scrie un program software pentru propriile produse. Vă rugăm să citiți cu atenție următoarele instrucțiuni și să luați referință din sampcodul pe care îl oferim:
⑴ C++Builder ⑵C# ⑶VC ⑷VB ⑸VB.NET ⑹Delphi ⑺LabVIEW ⑻ LabWindows/CVI ⑼Matlab ⑽QT ⑾Python/Python-can.
Dezvoltați biblioteca file :ControlCAN.lib, ControlCAN.DLL
Declarația funcției versiunii VC file :ControlCAN.h
Declarație de funcție a versiunii VB file: ControlCAN.bas
laboratorVIEW modul pachet de funcții de bibliotecă de versiuni: ControlCAN.llb
Declarația funcției versiunii Delphi file: ControlCAN.pas

PARTEA A DOUA BIBLIOTECA DE FUNCȚII COMPATIBILE ȘI STRUCTURA DATELOR

2.1. DEFINIȚIA TIPULUI
2.1.1. Tip de dispozitiv

Definiție tip Valoare tip Descriere
DEV_USBCAN2 4 USBCAN-2A/USBCAN-2C/CANalyst-II MiniPCIe-CAN

2.1.2. VCI_BOARD_INFO
Structura VCI_BOARD_INFO conține informații despre dispozitivul plăcii de interfață din seria USB-CAN.
Structura va fi completată cu funcția VCI_ReadBoardInfo.

WAVESHARE USB CAN Bus Interfață Adaptor Interfață Interfață Funcție Biblioteca - Fig 1

Membru:
hw_Version
Numărul versiunii hardware, notație hexazecimală. De exemplu, 0x0100 reprezintă V1.00.
fw_Version
Numărul versiunii hardware, notație hexazecimală. De exemplu, 0x0100 reprezintă V1.00.
Pagina 2
dr_Version

Numărul versiunii driverului, notație hexazecimală. De exemplu, 0x0100 reprezintă V1.00.
în_Versiune
Numărul versiunii bibliotecii de interfață, notație hexazecimală. De exemplu, 0x0100 reprezintă V1.00.
irq_Num
Sistem rezervat.
can_Num
Reprezintă numărul total de canale CAN.
str_Serial_Num
Numărul de serie al acestei plăci.
str_hw_Type
Tip hardware, cum ar fi „USBCAN V1.00” (Notă: include terminatorul șirului „\0”).
Rezervat
Sistem rezervat.
2.1.3. VCI_CAN_OBJ
În funcțiile VCI_Transmit și VCI_Receive, structura VCI_CAN_OBJ este utilizată pentru a transmite cadrul de mesaje CAN.

WAVESHARE USB CAN Bus Interfață Adaptor Interfață Funcție Biblioteca - Fig

Membru:
ID
Identificatorul mesajului. Format ID direct, aliniat la dreapta, vă rugăm să consultați: Anexa 1: Detalii de aliniere ID.
OraStamp
Primirea stamp informații despre intervalul de timp, porniți cronometrarea când controlerul CAN este inițializat, unitatea este 0. 1ms.
TimeFlag
În ceea ce privește utilizarea timpului stamp, 1este TimeSt efectivamp. TimeFlag și TimeStamp sunt semnificative numai atunci când cadrul este primit.
SendType
Tip de trimitere. = 0 indică tipul normal, = 1 indică o singură trimitere.
RemoteFlag
Fie că este un steag la distanță. = 1 indică indicatorul de la distanță, = 0 indică indicatorul de date.
ExternFlag
Fie că este un steag extern. = 1 indică steag extern, = 0 indică steag standard.
DataLen
Lungimea datelor (<=8) ,adică lungimea datelor.
Date
Pachete de date.
Rezervat
Sistem rezervat.
2.1.4. VCI_INIT_CONFIG
Structura VCI_INIT_CONFIG definește configurația de inițializare a CAN. Structura va fi completată cu funcția VCI_InitCan.

WAVESHARE USB CAN Bus Interfață Adaptor Interfață Interfață Funcție Biblioteca - Fig 2

Membru:
AccCode
Primiți codul de acceptare filtrat.
AccMask
Primiți masca de filtru.
Rezervat
Rezervat.
Filtra
Metoda de filtrare, care permite intervalul de setare 0-3, consultați secțiunea 2.2.3 din tabelul modurilor de filtrare pentru detalii.
Timing0
SJA1000 Parametrul de viteză în baud, Timing0 (BTR0) .
Timing1
SJA1000 Parametrul de viteză în baud, Timing1 (BTR1) .
Modul
Mod de funcționare, 0 = funcționare normală, 1 = Mod de doar ascultare, 2 = modul de testare de admitere și trimitere spontană.
Observatii:
Despre setările filtrului vă rugăm să consultați: Anexa II: Instrucțiuni de configurare a parametrilor CAN.
CAN Timing0 și Timing1 sunt utilizate pentru a seta viteza de transmisie, acești doi parametri sunt utilizați numai la inițializaretage.
Tabel de referință baud convențional:

Rata de transmisie CAN 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. Utilizatorii trebuie doar să urmeze SJA1000 (16MHz) pentru a seta parametrul de viteză în baud.
  2. Adaptorul nu acceptă temporar rata de transmisie sub 10K.

2.2. DESCRIEREA FUNCȚIEI
2.2.1. VCI_OpenDevice
Această funcție este utilizată pentru a conecta dispozitive.
DWORD __stdcall VCI_OpenDevice(DWORD DevType, DWORD DevIndex, DWORD Rezervat);
Parametri:
DevType
Tipul dispozitivului. Consultați: Definiția tipului de dispozitiv adaptor.
DevIndex
Device Index, de exampatunci când există un singur adaptor USB-CAN, numărul de index este 0, când există mai multe adaptoare USB-CAN, numerele de index în ordine crescătoare începând de la 0.
Rezervat
Parametri de retenție, completați 0.
Returnări:
Valoarea returnată = 1, ceea ce înseamnă că operația este reușită; = 0 indică faptul că operația a eșuat; = -1 indică faptul că dispozitivul nu există.

WAVESHARE USB CAN Bus Interfață Adaptor Interfață Bibliotecă de funcții - Fig3

2.2.2. VCI_CloseDevice
Această funcție este utilizată pentru a închide conexiunea.
DWORD __stdcall VCI_CloseDevice(DWORD DevType,DWORD DevIndex);
Parametri:
DevType
Tipul dispozitivului. Consultați: Definiția tipului de dispozitiv adaptor.
DevIndex
Device Index, de exampatunci când există un singur adaptor USB-CAN, numărul de index este 0, când există mai multe adaptoare USB-CAN, numerele de index în ordine crescătoare începând de la 0.
Returnări:
Valoarea returnată = 1, ceea ce înseamnă că operația este reușită; = 0 indică faptul că operația a eșuat; = -1 indică faptul că dispozitivul nu există.

WAVESHARE USB CAN Bus Interfață Adaptor Interfață Interfață Funcție Biblioteca - Fig 4

2.2.3. VCI_InitCan
Această funcție este utilizată pentru a inițializa CAN-ul specificat.
DWORD __stdcall VCI_InitCAN(DWORD DevType, DWORD DevIndex, DWORD CANIndex,
PVCI_INIT_CONFIG pInitConfig);

Parametri:
DevType
Tipul dispozitivului. Consultați: Definiția tipului de dispozitiv adaptor.
DevIndex
Device Index, de exampatunci când există un singur adaptor USB-CAN, numărul de index este 0, când există mai multe adaptoare USB-CAN, numerele de index în ordine crescătoare începând de la 0.
CANIndex
Indexul canalului CAN, cum ar fi atunci când există un singur canal CAN, numărul de index este 0, dacă există doi, numărul de index poate fi 0 sau 1.
pInitConfig
Structura parametrilor de inițializare. Lista parametrilor membrilor:

Membru Descrierea funcțională
pInitConfig->AccCode AccCode și AccMask pot lucra împreună pentru a determina ce pachete pot fi acceptate. Aceste două registre sunt folosite pentru a seta ID-ul aliniat la stânga, adică cel mai înalt bit (Bit31) al AccCode și AccMask este aliniat cu cel mai înalt bit al valorii ID.
pInitConfig->AccMask Despre alinierea ID vezi anexe: Anexa I:
Detalii de aliniere ID.
De exemplu: Dacă setați valoarea AccCode ca 0x24600000 (adică 0x123 este deplasat la stânga cu 21 de biți), valoarea AccMask
este setat la 0x00000000, iar apoi numai pachetele cu ID-ul cadru de mesaj CAN este 0x123 pot fi acceptate (valoarea AccMask de 0x00000000 indică faptul că toți biții sunt relevanți
biți). Dacă valoarea AccCode este setată la 0x24600000, valoarea AccMask este setată la 0x600000 (0x03 este deplasat la stânga cu 21 de biți), iar apoi numai pachetele cu ID-ul cadru de mesaj CAN este 0x120 ~ 0x123 pot fi acceptate (valoarea AccMask
0x600000 indică faptul că, în afară de bit0 ~ bit1, alți biți (bit2 ~ bit10) sunt biți relevanți).
Nota: Această setare a filtrului de exampfișiere la cadrul standard, de example, high 11-bit este bitul valid; în cazul cadrului extins, apoi ID-ul valid este de 29 de biți. AccCode și AccMask setează 29 de biți ca bit valid!
pInitConfig->Rezervat rezervat
pInitConfig->Filtru Setările modului de filtrare vă rugăm să consultați secțiunea din tabelul modurilor de filtrare.
pInitConfig->Timing0 Setare baud rateT0
pInitConfig->Timing1 Setare baud rateT1
pInitConfig->Mod Mod de operare:
0-funcționare normală
1-Mod doar ascultare
2-mod de testare de admitere și trimitere spontană (această valoare este exclusă din biblioteca de funcții ZLG)

Tabelul modurilor de filtrare:

Valoare Nume Descriere
1 Primește toate tipurile Potrivit atât pentru cadru standard, cât și pentru cadru extins!
2 Primiți doar cadru standard Potrivit pentru cadrul standard și extins
rama va fi îndepărtată direct prin filtrare!
3 Primiți doar cadru extins Potrivit pentru cadru extins, iar cadrul standard va fi eliminat de
filtrare direct! 。

Returnări:
Valoarea returnată = 1, ceea ce înseamnă că operația este reușită; = 0 indică faptul că operația a eșuat; = -1 indică faptul că dispozitivul nu există.
De ex

WAVESHARE USB CAN Bus Interfață Adaptor Interfață Interfață Funcție Biblioteca - Fig 4

WAVESHARE USB CAN Bus Interfață Adaptor Interfață Interfață Funcție Biblioteca - Fig 6

2.2.4. VCI_ReadBoardInfo
Această funcție este utilizată pentru a citi informațiile hardware ale adaptorului. În general, poate fi ignorat.
DWORD __stdcall VCI_ReadBoardInfo(DWORD DevType,DWORD
DevIndex,PVCI_BOARD_INFO pInfo);
Parametri:
DevType
Tipul dispozitivului. Consultați: Definiția tipului de dispozitiv adaptor.
DevIndex
Device Index, de exampatunci când există un singur adaptor USB-CAN, numărul de index este 0, când există mai multe adaptoare USB-CAN, numerele de index în ordine crescătoare începând de la 0. pInfo
VCI_BOARD_INFO este folosit pentru a stoca indicatorul de structură a informațiilor dispozitivului.
Returnări:
Valoarea returnată = 1, ceea ce înseamnă că operația este reușită; = 0 indică faptul că operația a eșuat; = -1 indică faptul că dispozitivul nu există.

WAVESHARE USB CAN Bus Interfață Adaptor Interfață Interfață Funcție Biblioteca - Fig 7

2.2.5. VCI_GetReceiveNum
Această funcție este utilizată pentru a specifica cadrele primite, dar care nu au fost citite, în bufferul de recepție desemnat.
DWORD __stdcall VCI_GetReceiveNum(DWORD DevType, DWORD DevIndex, DWORD CANIndex);
Parametri:
DevType
Tipul dispozitivului. Consultați: Definiția tipului de dispozitiv adaptor.
DevIndex
Device Index, de exampatunci când există un singur adaptor USB-CAN, numărul de index este 0, când există mai multe adaptoare USB-CAN, numerele de index în ordine crescătoare începând de la 0.
CANIndex
Indexul canalului CAN.
Returnări:
Returnează cadrele care nu au fost încă citite.
De ex
#include „ControlCan.h” int ret=VCI_GetReceiveNum(2,0,0);
2.2.6. VCI_ClearBuffer
Această funcție este utilizată pentru a șterge memoria tampon de primire și trimitere a canalului desemnat specificat de
Adaptor USB-CAN.
DWORD __stdcall VCI_ClearBuffer(DWORD DevType, DWORD DevIndex, DWORD CANIndex);
Parametri:
DevType
Tipul dispozitivului. Consultați: Definiția tipului de dispozitiv adaptor.
DevIndex
Device Index, de exampatunci când există un singur adaptor USB-CAN, numărul de index este 0, când există mai multe adaptoare USB-CAN, numerele de index în ordine crescătoare începând de la 0.
CANIndex
Indexul canalului CAN.
Returnări:
Valoarea returnată = 1, ceea ce înseamnă că operația este reușită; = 0 indică faptul că operația a eșuat; = -1 indică faptul că dispozitivul nu există.

WAVESHARE USB CAN Bus Interfață Adaptor Interfață Interfață Funcție Biblioteca - Fig 8

2.2.7. VCI_StartCAN
Această funcție este utilizată pentru a porni controlerul CAN și funcția de recepție internă a întreruperilor a adaptorului.
DWORD __stdcall VCI_StartCAN(DWORD DevType, DWORD DevIndex, DWORD CANIndex);
Parametri:
DevType
Tipul dispozitivului. Consultați: Definiția tipului de dispozitiv adaptor.
DevIndex
Device Index, de exampatunci când există un singur adaptor USB-CAN, numărul de index este 0, când există mai multe adaptoare USB-CAN, numerele de index în ordine crescătoare începând de la 0.
CANIndex
Indexul canalului CAN.
Returnări:
Valoarea returnată = 1, ceea ce înseamnă că operația este reușită; = 0 indică faptul că operația a eșuat; = -1 indică faptul că dispozitivul nu există.

WAVESHARE USB CAN Bus Interfață Adaptor Interfață Interfață Funcție Biblioteca - Fig 9

2.2.8. VCI_ResetCAN
Această funcție este utilizată pentru a reseta controlerul CAN.
DWORD __stdcall VCI_ResetCAN(DWORD DevType, DWORD DevIndex, DWORD CANIndex);
Parametri:
DevType
Tipul dispozitivului. Consultați: Definiția tipului de dispozitiv adaptor.
DevIndex
Device Index, de exampatunci când există un singur adaptor USB-CAN, numărul de index este 0, când există mai multe adaptoare USB-CAN, numerele de index în ordine crescătoare începând de la 0.
CANIndex
Indexul canalului CAN.
Returnări:
Valoarea returnată = 1, ceea ce înseamnă că operația este reușită; = 0 indică faptul că operația a eșuat; = -1 indică faptul că dispozitivul nu există.

WAVESHARE USB CAN Bus Interfață Adaptor Interfață Interfață Funcție Biblioteca - Fig 10

2.2.9. VCI_Transmit
Această funcție este utilizată pentru a trimite un cadru de mesaj CAN.
DWORD __stdcall VCI_Transmit(DWORD DeviceType,DWORD DeviceInd,DWORD CANInd,PVCI_CAN_OBJ pSend,DWORD Length);
Parametri:
DevType
Tipul dispozitivului. Consultați: Definiția tipului de dispozitiv adaptor.
DevIndex
Device Index, de exampatunci când există un singur adaptor USB-CAN, numărul de index este 0, când există mai multe adaptoare USB-CAN, numerele de index în ordine crescătoare începând de la 0.
CANIndex
Indexul canalului CAN. pTrimite
Prima adresă a matricelor de cadre de date care trebuie trimise.
Lungime
Numărul de cadre de date care trebuie trimise, numărul maxim este 1000, valoarea recomandată este 48 sub viteză mare.
Returnări:
Returnează numărul real de cadre deja trimise, valoarea returnată = -1 indică o eroare a dispozitivului.
De ex
WAVESHARE USB CAN Bus Interfață Adaptor Interfață Interfață Funcție Biblioteca - Fig 11

WAVESHARE USB CAN Bus Interfață Adaptor Interfață Interfață Funcție Biblioteca - Fig 12

2.2.10. VCI_Receive
Această funcție este utilizată pentru a solicita recepția.
DWORD __stdcall VCI_Receive(DWORD DevType, DWORD DevIndex, DWORD CANIndex, PVCI_CAN_OBJ pReceive, ULONG Len, INT WaitTime);
Parametri:
DevType
Tipul dispozitivului. Consultați: Definiția tipului de dispozitiv adaptor.
DevIndex
Device Index, de exampatunci când există un singur adaptor USB-CAN, numărul de index este 0, când există mai multe adaptoare USB-CAN, numerele de index în ordine crescătoare începând de la 0.
CANIndex
Indexul canalului CAN.
primiți
Pentru a primi primul indicator de set al cadrelor de date.
Len
Lungimea matricei a cadrului de date trebuie să fie mai mare de 2500 pentru a returna mesajul normal.
În caz contrar, lungimea returnării va fi zero indiferent dacă mesajul este primit sau nu. adaptorul a stabilit un buffer de 2000 de cadre pentru fiecare canal. Pe baza propriului sistem și a mediului de lucru, utilizatorul poate alege o lungime adecvată a matricei de la 2500.
Timp de așteptare rezervat.
Returnări:
Returnează numărul de cadre care au fost citite efectiv, -1 indică erori de dispozitiv.
De ex
WAVESHARE USB CAN Bus Interfață Adaptor Interfață Interfață Funcție Biblioteca - Fig 13

PARTEA A TREIA ALTE FUNCȚII ȘI DESCRIEREA STRUCTURII DATELOR

Acest capitol descrie alte tipuri de date și funcții ale bibliotecii de interfețe ZLG incompatibile conținute în biblioteca de interfețe adaptor USB-CAN ControlCAN.dll. Vă rog să faceți
nu apelați aceste funcții dacă utilizați un model ZLG compatibil pentru dezvoltarea secundară, pentru a nu afecta compatibilitatea.
3.1 DESCRIEREA FUNCȚIILOR
3.1.1. VCI_UsbDeviceReset
Resetați adaptorul USB-CAN, trebuie să redeschideți dispozitivul după resetare folosind VCI_OpenDevice.
DWORD __stdcall VCI_UsbDeviceReset(DWORD DevType, DWORD DevIndex, DWORD rezervat
Parametri:
DevType
Tipul dispozitivului. Consultați: Definiția tipului de dispozitiv adaptor.
DevIndex
Device Index, de exampatunci când există un singur adaptor USB-CAN, numărul de index este 0, când există mai multe adaptoare USB-CAN, numerele de index în ordine crescătoare începând de la 0.
Rezervat Rezervat.
Returnări:
Valoarea returnată = 1, ceea ce înseamnă că operația este reușită; = 0 indică faptul că operația a eșuat; = -1 indică faptul că dispozitivul nu există.

WAVESHARE USB CAN Bus Interfață Adaptor Interfață Interfață Funcție Biblioteca - Fig 14

bRel = VCI_UsbDeviceReset(nDeviceType, Independence, 0);
3.1.2. VCI_FindUsbDevice2
Când același PC utilizează mai multe USB-CAN, utilizatorul poate folosi această funcție pentru a găsi dispozitivul curent.
DWORD __stdcall VCI_FindUsbDevice2(PVCI_BOARD_INFO pInfo);
Parametri:
pInfo
pInfo este folosit pentru a stoca parametrii primului indicator al adresei tampon de date.
Retururi
Returnați numărul adaptorului USB-CAN conectat la computer.

WAVESHARE USB CAN Bus Interfață Adaptor Interfață Interfață Funcție Biblioteca - Fig 15

Partea a patra Funcțiile bibliotecii de interfață folosind Process
Pentru a multiplica funcția dispozitivului, am furnizat funcții suplimentare (funcții prezentate cu un fundal verde), aceste funcții includ: VCI_FindUsbDevice2 VCI_UsbDeviceReset. În timpul celei de-a doua dezvoltări, aceste funcții nu trebuie neapărat invocate. Chiar și aceste funcții sunt ignorate, toate funcțiile adaptorului USB-CAN pot fi realizate.

WAVESHARE USB CAN Bus Interfață Adaptor Interfață Interfață Funcție Biblioteca - Fig 16

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

Documente/Resurse

Bibliotecă de funcții de interfață de adaptor de interfață de magistrală WAVESHARE USB-CAN [pdfManual de instrucțiuni
Bibliotecă de funcții de interfață de adaptor de interfață de magistrală USB-CAN, USB-CAN, bibliotecă de funcții de interfață de adaptor de interfață de magistrală, bibliotecă de funcții de interfață, bibliotecă de funcții

Referințe

Lasă un comentariu

Adresa ta de e-mail nu va fi publicată. Câmpurile obligatorii sunt marcate *