USB-CAN-Bus-Schnittstelle
Adapterschnittstellenfunktion
Benutzeranleitung für die Bibliothek
TEIL EINS VORBEIVIEW
Wenn der Benutzer einfach den USB-CAN-Bus-Schnittstellenadapter verwendet, um einen CAN-Bus-Kommunikationstest durchzuführen, kann er die mitgelieferte USB-CAN-Tool-Software direkt zum Senden und Empfangen der Testdaten verwenden.
Wenn der Benutzer beabsichtigt, Softwareprogramme für seine eigenen Produkte zu schreiben. Bitte lesen Sie die folgenden Anweisungen sorgfältig durch und beziehen Sie sich auf dieampDer von uns bereitgestellte Code:
⑴ C++Builder ⑵C# ⑶VC ⑷VB ⑸VB.NET ⑹Delphi ⑺LabVIEW ⑻ LabWindows/CVI ⑼Matlab ⑽QT ⑾Python/Python-kann.
Bibliothek entwickeln file :ControlCAN.lib, ControlCAN.DLL
VC-Versionsfunktionsdeklaration file :ControlCAN.h
VB-Versionsfunktionsdeklaration file: ControlCAN.bas
LaborVIEW Version Bibliothek Funktionspaket Modul: ControlCAN.llb
Delphi-Versionsfunktionsdeklaration file: ControlCAN.pas
TEIL ZWEI KOMPATIBLE FUNKTIONSBIBLIOTHEKS- UND DATENSTRUKTUR
2.1. TYPDEFINITION
2.1.1. Gerätetyp
Typdefinition | Geben Sie value ein | Beschreibung |
DEV_USBCAN2 | 4 | USBCAN-2A/USBCAN-2C/CANalyst-II MiniPCIe-CAN |
2.1.2. VCI_BOARD_INFO
Die Struktur VCI_BOARD_INFO enthält Geräteinformationen zur Schnittstellenkarte der USB-CAN-Serie.
Die Struktur wird in der Funktion VCI_ReadBoardInfo ausgefüllt.
Mitglied:
hw_Version
Hardwareversionsnummer, hexadezimale Notation. Beispielsweise steht 0x0100 für V1.00.
fw_Version
Hardwareversionsnummer, hexadezimale Notation. Beispielsweise steht 0x0100 für V1.00.
Seite 2
dr_Version
Treiberversionsnummer, hexadezimale Notation. Beispielsweise steht 0x0100 für V1.00.
in_Version
Versionsnummer der Schnittstellenbibliothek, hexadezimale Notation. Beispielsweise steht 0x0100 für V1.00.
IRQ-Nummer
System reserviert.
kann_Nummer
Stellt die Gesamtzahl der CAN-Kanäle dar.
str_Serial_Num
Die Seriennummer dieser Boardkarte.
str_hw_Typ
Hardwaretyp, z. B. „USBCAN V1.00“ (Hinweis: Enthält den Zeichenfolgenabschluss ‚\0‘).
Reserviert
System reserviert.
2.1.3. VCI_CAN_OBJ
In den Funktionen VCI_Transmit und VCI_Receive wird die Struktur VCI_CAN_OBJ zum Übertragen von CAN-Nachrichtenrahmen verwendet.
Mitglied:
ID
Nachrichtenkennung. Direktes ID-Format, rechtsbündig, siehe: Anhang 1: Einzelheiten zur ID-Ausrichtung.
ZeitStamp
Empfang der stamp Informationen zum Zeitrahmen. Die Startzeit wird mit der Initialisierung des CAN-Controllers festgelegt. Die Einheit beträgt 0 ms.
Zeitflagge
In Bezug auf die Frage, ob die Zeit stamp, 1ist die effektive ZeitStamp. TimeFlag und TimeStamp sind nur dann von Bedeutung, wenn der Frame empfangen wird.
SendType
Sendetyp. = 0 zeigt den normalen Typ an, = 1 zeigt Einzelsendung an.
RemoteFlag
Ob es sich um ein Remote-Flag handelt. = 1 zeigt ein Remote-Flag an, = 0 zeigt ein Daten-Flag an.
ExternFlag
Gibt an, ob es sich um ein externes Flag handelt. = 1 bedeutet externes Flag, = 0 bedeutet Standardflag.
Datenlänge
Datenlänge (<= 8), d. h. die Länge der Daten.
Daten
Paketdaten.
Reserviert
System reserviert.
2.1.4. VCI_INIT_CONFIG
Die Struktur VCI_INIT_CONFIG definiert die Initialisierungskonfiguration des CAN. Die Struktur wird in der Funktion VCI_InitCan ausgefüllt.
Mitglied:
Zugangscode
Erhalten Sie einen gefilterten Akzeptanzcode.
AccMask
Filtermaske erhalten.
Reserviert
Reserviert.
Filter
Filtermethode, die einen Einstellbereich von 0-3 ermöglicht, Einzelheiten finden Sie in Abschnitt 2.2.3 der Filtermodustabelle.
Zeitliche Koordinierung0
SJA1000 Baudratenparameter, Timing0 (BTR0).
Zeitliche Koordinierung1
SJA1000 Baudratenparameter, Timing1 (BTR1).
Modus
Betriebsart, 0 = Normalbetrieb, 1 = Listen-Only-Modus, 2 = Spontanaufnahme- und Sendetestmodus.
Bemerkungen:
Informationen zu den Filtereinstellungen finden Sie in Anhang II: Anweisungen zur Einrichtung der CAN-Parameter.
CAN Timing0 und Timing1 werden zum Einstellen der Baudrate verwendet. Diese beiden Parameter werden nur bei der Initialisierung verwendet.tage.
Konventionelle Baud-Referenztabelle:
CAN-Baudrate | Zeitsteuerung0 (BTR0) | Zeitsteuerung1 (BTR1) |
10k Bit/s | 0 x 31 | 0x1C |
20k Bit/s | 0 x 18 | 0x1C |
40k Bit/s | 0 x 87 | Versionsnummer |
50k Bit/s | 0 x 09 | 0x1C |
80k Bit/s | 0 x 83 | Versionsnummer |
100k Bit/s | 0 x 04 | 0x1C |
125k Bit/s | 0 x 03 | 0x1C |
200k Bit/s | 0 x 81 | 0xFA |
250k Bit/s | 0 x 01 | 0x1C |
400k Bit/s | 0 x 80 | 0xFA |
500k Bit/s | 0 x 00 | 0x1C |
666k Bit/s | 0 x 80 | OS-Version: |
800k Bit/s | 0 x 00 | 0 x 16 |
1000k Bit/s | 0 x 00 | 0 x 14 |
33.33 Kbps | 0 x 09 | Version: |
66.66 Kbps | 0 x 04 | Version: |
83.33 Kbps | 0 x 03 | Version: |
- Benutzer müssen nur SJA1000 (16 MHz) folgen, um den Baudratenparameter einzustellen.
- Der Adapter unterstützt vorübergehend keine Baudrate unter 10 K.
2.2. BEDIENUNGSANLEITUNG
2.2.1. VCI_OpenDevice
Diese Funktion dient zum Verbinden von Geräten.
DWORD __stdcall VCI_OpenDevice(DWORD DevType,DWORD DevIndex,DWORD Reserviert);
Parameter:
Gerätetyp
Gerätetyp. Siehe: Definition des Adaptergerätetyps.
Entwicklerindex
Geräteindex, zum BeispielampDas heißt, wenn nur ein USB-CAN-Adapter vorhanden ist, ist die Indexnummer 0, bei mehreren USB-CAN-Adaptern sind die Indexnummern aufsteigend sortiert, beginnend bei 0.
Reserviert
Aufbewahrungsparameter, füllen Sie 0 aus.
Widerrufsfolgen:
Rückgabewert = 1 bedeutet, dass der Vorgang erfolgreich war; = 0 zeigt an, dass der Vorgang fehlgeschlagen ist; = -1 zeigt an, dass das Gerät nicht existiert.
2.2.2. VCI_CloseDevice
Mit dieser Funktion wird die Verbindung geschlossen.
DWORD __stdcall VCI_CloseDevice(DWORD Gerätetyp,DWORD Geräteindex);
Parameter:
Gerätetyp
Gerätetyp. Siehe: Definition des Adaptergerätetyps.
Entwicklerindex
Geräteindex, zum BeispielampDas heißt, wenn nur ein USB-CAN-Adapter vorhanden ist, ist die Indexnummer 0, bei mehreren USB-CAN-Adaptern sind die Indexnummern aufsteigend sortiert, beginnend bei 0.
Widerrufsfolgen:
Rückgabewert = 1 bedeutet, dass der Vorgang erfolgreich war; = 0 zeigt an, dass der Vorgang fehlgeschlagen ist; = -1 zeigt an, dass das Gerät nicht existiert.
2.2.3. VCI_InitCan
Diese Funktion wird zum Initialisieren des angegebenen CAN verwendet.
DWORD __stdcall VCI_InitCAN(DWORD DevType, DWORD DevIndex, DWORD CANIndex,
PVCI_INIT_CONFIG pInitConfig);
Parameter:
Gerätetyp
Gerätetyp. Siehe: Definition des Adaptergerätetyps.
Entwicklerindex
Geräteindex, zum BeispielampDas heißt, wenn nur ein USB-CAN-Adapter vorhanden ist, ist die Indexnummer 0, bei mehreren USB-CAN-Adaptern sind die Indexnummern aufsteigend sortiert, beginnend bei 0.
CANIndex
CAN-Kanalindex. Wenn beispielsweise nur ein CAN-Kanal vorhanden ist, ist die Indexnummer 0. Wenn es zwei CAN-Kanäle gibt, kann die Indexnummer 0 oder 1 sein.
pInitConfig
Struktur der Initialisierungsparameter. Parameterliste der Mitglieder:
Mitglied | Funktionsbeschreibung |
pInitConfig->AccCode | AccCode und AccMask können zusammenarbeiten, um zu bestimmen, welche Pakete akzeptiert werden können. Diese beiden Register werden verwendet, um die ID linksbündig einzustellen, d. h. das höchste Bit (Bit31) des AccCodes und der AccMask wird mit dem höchsten Bit des ID-Werts ausgerichtet. |
pInitConfig->AccMask | Informationen zur ID-Angleichung finden Sie in den Anhängen: Anhang I: Details zur ID-Ausrichtung. Beispiel: Wenn Sie den Wert des AccCodes auf 0x24600000 setzen (d. h. 0x123 wird um 21 Bit nach links verschoben), wird auf 0x00000000 gesetzt, und dann können nur die Pakete mit der CAN-Nachrichtenrahmen-ID 0x123 akzeptiert werden (AccMask-Wert von 0x00000000 zeigt an, dass alle Bits relevant sind |
Bits). Wenn der AccCode-Wert auf 0x24600000 eingestellt ist, wird der AccMask-Wert auf 0x600000 eingestellt (0x03 wird um 21 Bits nach links verschoben), und dann können nur die Pakete mit der CAN-Nachrichtenrahmen-ID 0x120 ~ 0x123 akzeptiert werden (AccMask-Wert 0x600000 zeigt an, dass neben Bit0 ~ Bit1 noch andere Bits (Bit2 ~ Bit10) relevant sind. Notiz: Diese Filtereinstellung examples zum Standardrahmen, zum Beispielample, die höchsten 11 Bit sind das gültige Bit; im Fall des erweiterten Frames ist die gültige ID dann 29 Bit. AccCode und AccMask setzen die höchsten 29 Bit als gültiges Bit! |
|
pInitConfig->Reserviert | reserviert |
pInitConfig->Filter | Die Einstellungen für den Filtermodus finden Sie im Abschnitt der Filtermodustabelle. |
pInitConfig->Timing0 | BaudrateT0-Einstellung |
pInitConfig->Timing1 | BaudrateT1-Einstellung |
pInitConfig->Modus | Betriebsart: 0-Normalbetrieb 1-Nur-Hörmodus 2-Spontaner Zulassungs- und Sendetestmodus (dieser Wert ist aus der ZLG-Funktionsbibliothek ausgeschlossen) |
Filtermodus-Tabelle:
Wert | Name | Beschreibung |
1 | Empfangen Sie alle Typen | Passend sowohl für Standard- als auch für erweiterte Rahmen! |
2 | Erhalten Sie nur den Standardrahmen | Passend für Standardrahmen und verlängerte |
Rahmen wird direkt durch Filtration entfernt! | ||
3 | Nur erweiterte Frames empfangen | Passend für verlängerten Rahmen, Standardrahmen wird entfernt durch Filterung direkt! 。 |
Widerrufsfolgen:
Rückgabewert = 1 bedeutet, dass der Vorgang erfolgreich war; = 0 zeigt an, dass der Vorgang fehlgeschlagen ist; = -1 zeigt an, dass das Gerät nicht existiert.
Z.B
2.2.4. VCI_ReadBoardInfo
Mit dieser Funktion werden die Hardwareinformationen des Adapters gelesen. Im Allgemeinen kann sie ignoriert werden.
DWORD __stdcall VCI_ReadBoardInfo(DWORD Gerätetyp,DWORD
DevIndex,PVCI_BOARD_INFO pInfo);
Parameter:
Gerätetyp
Gerätetyp. Siehe: Definition des Adaptergerätetyps.
Entwicklerindex
Geräteindex, zum BeispielampDas heißt, wenn nur ein USB-CAN-Adapter vorhanden ist, ist die Indexnummer 0, wenn mehrere USB-CAN-Adapter vorhanden sind, sind die Indexnummern aufsteigend, beginnend bei 0. pInfo
VCI_BOARD_INFO wird zum Speichern des Geräteinformationsstrukturzeigers verwendet.
Widerrufsfolgen:
Rückgabewert = 1 bedeutet, dass der Vorgang erfolgreich war; = 0 zeigt an, dass der Vorgang fehlgeschlagen ist; = -1 zeigt an, dass das Gerät nicht existiert.
2.2.5. VCI_GetReceiveNum
Mit dieser Funktion werden die empfangenen, aber noch nicht gelesenen Frames im angegebenen Empfangspuffer angegeben.
DWORD __stdcall VCI_GetReceiveNum(DWORD Gerätetyp,DWORD Geräteindex,DWORD CANIndex);
Parameter:
Gerätetyp
Gerätetyp. Siehe: Definition des Adaptergerätetyps.
Entwicklerindex
Geräteindex, zum BeispielampDas heißt, wenn nur ein USB-CAN-Adapter vorhanden ist, ist die Indexnummer 0, bei mehreren USB-CAN-Adaptern sind die Indexnummern aufsteigend sortiert, beginnend bei 0.
CANIndex
CAN-Kanalindex.
Widerrufsfolgen:
Gibt Frames zurück, die noch nicht gelesen wurden.
Z.B
#include „ControlCan.h“ int ret=VCI_GetReceiveNum(2,0,0);
2.2.6. VCI_ClearBuffer
Mit dieser Funktion können Sie den Empfangs- und Sendepuffer des angegebenen Kanals löschen, der durch
USB-CAN-Adapter.
DWORD __stdcall VCI_ClearBuffer(DWORD Gerätetyp,DWORD Geräteindex,DWORD CANIndex);
Parameter:
Gerätetyp
Gerätetyp. Siehe: Definition des Adaptergerätetyps.
Entwicklerindex
Geräteindex, zum BeispielampDas heißt, wenn nur ein USB-CAN-Adapter vorhanden ist, ist die Indexnummer 0, bei mehreren USB-CAN-Adaptern sind die Indexnummern aufsteigend sortiert, beginnend bei 0.
CANIndex
CAN-Kanalindex.
Widerrufsfolgen:
Rückgabewert = 1 bedeutet, dass der Vorgang erfolgreich war; = 0 zeigt an, dass der Vorgang fehlgeschlagen ist; = -1 zeigt an, dass das Gerät nicht existiert.
2.2.7. VCI_StartCAN
Mit dieser Funktion können der CAN-Controller und die interne Interrupt-Empfangsfunktion des Adapters gestartet werden.
DWORD __stdcall VCI_StartCAN(DWORD Gerätetyp,DWORD Geräteindex,DWORD CANIndex);
Parameter:
Gerätetyp
Gerätetyp. Siehe: Definition des Adaptergerätetyps.
Entwicklerindex
Geräteindex, zum BeispielampDas heißt, wenn nur ein USB-CAN-Adapter vorhanden ist, ist die Indexnummer 0, bei mehreren USB-CAN-Adaptern sind die Indexnummern aufsteigend sortiert, beginnend bei 0.
CANIndex
CAN-Kanalindex.
Widerrufsfolgen:
Rückgabewert = 1 bedeutet, dass der Vorgang erfolgreich war; = 0 zeigt an, dass der Vorgang fehlgeschlagen ist; = -1 zeigt an, dass das Gerät nicht existiert.
2.2.8. VCI_ResetCAN
Mit dieser Funktion wird der CAN-Controller zurückgesetzt.
DWORD __stdcall VCI_ResetCAN(DWORD Gerätetyp,DWORD Geräteindex,DWORD CANIndex);
Parameter:
Gerätetyp
Gerätetyp. Siehe: Definition des Adaptergerätetyps.
Entwicklerindex
Geräteindex, zum BeispielampDas heißt, wenn nur ein USB-CAN-Adapter vorhanden ist, ist die Indexnummer 0, bei mehreren USB-CAN-Adaptern sind die Indexnummern aufsteigend sortiert, beginnend bei 0.
CANIndex
CAN-Kanalindex.
Widerrufsfolgen:
Rückgabewert = 1 bedeutet, dass der Vorgang erfolgreich war; = 0 zeigt an, dass der Vorgang fehlgeschlagen ist; = -1 zeigt an, dass das Gerät nicht existiert.
2.2.9. VCI_Übertragen
Diese Funktion wird zum Senden von CAN-Nachrichtenrahmen verwendet.
DWORD __stdcall VCI_Transmit(DWORD Gerätetyp,DWORD GeräteInd,DWORD CANInd,PVCI_CAN_OBJ pSend,DWORD Länge);
Parameter:
Gerätetyp
Gerätetyp. Siehe: Definition des Adaptergerätetyps.
Entwicklerindex
Geräteindex, zum BeispielampDas heißt, wenn nur ein USB-CAN-Adapter vorhanden ist, ist die Indexnummer 0, bei mehreren USB-CAN-Adaptern sind die Indexnummern aufsteigend sortiert, beginnend bei 0.
CANIndex
CAN-Kanalindex. pSend
Die erste Adresse des zu sendenden Datenrahmen-Arrays.
Länge
Die Anzahl der zu sendenden Datenrahmen beträgt 1000, der empfohlene Wert ist 48 bei hoher Geschwindigkeit.
Widerrufsfolgen:
Gibt die tatsächliche Anzahl der bereits gesendeten Frames zurück. Der Rückgabewert = -1 weist auf einen Gerätefehler hin.
Z.B
2.2.10. VCI_Empfangen
Mit dieser Funktion können Sie einen Empfang anfordern.
DWORD __stdcall VCI_Receive(DWORD Gerätetyp, DWORD Geräteindex, DWORD CANIndex, PVCI_CAN_OBJ pReceive, ULONG Länge, INT Wartezeit);
Parameter:
Gerätetyp
Gerätetyp. Siehe: Definition des Adaptergerätetyps.
Entwicklerindex
Geräteindex, zum BeispielampDas heißt, wenn nur ein USB-CAN-Adapter vorhanden ist, ist die Indexnummer 0, bei mehreren USB-CAN-Adaptern sind die Indexnummern aufsteigend sortiert, beginnend bei 0.
CANIndex
CAN-Kanalindex.
pEmpfangen
Zum Empfangen des ersten gesetzten Zeigers der Datenrahmen.
Len
Die Array-Länge des Datenrahmens muss größer als 2500 sein, um eine normale Nachricht zurückzugeben.
Andernfalls ist die Rückgabelänge null, unabhängig davon, ob die Nachricht empfangen wird oder nicht. Der Adapter hat für jeden Kanal einen Puffer mit 2000 Frames eingerichtet. Basierend auf seinem eigenen System und seiner Arbeitsumgebung kann der Benutzer eine geeignete Array-Länge ab 2500 auswählen.
Wartezeit reserviert.
Widerrufsfolgen:
Gibt die Anzahl der Frames zurück, die tatsächlich gelesen wurden. -1 weist auf Gerätefehler hin.
Z.B
TEIL DREI WEITERE FUNKTIONEN UND DATENSTRUKTURBESCHREIBUNG
In diesem Kapitel werden weitere Datentypen und Funktionen der inkompatiblen ZLG-Schnittstellenbibliothek beschrieben, die in der USB-CAN-Adapter-Schnittstellenbibliothek ControlCAN.dll enthalten ist.
Rufen Sie diese Funktionen nicht auf, wenn Sie für die sekundäre Entwicklung ein kompatibles ZLG-Modell verwenden, um die Kompatibilität nicht zu beeinträchtigen.
3.1 FUNKTIONSBESCHREIBUNG
3.1.1. VCI_UsbDeviceReset
USB-CAN-Adapter zurücksetzen, das Gerät muss nach dem Zurücksetzen mit VCI_OpenDevice erneut geöffnet werden.
DWORD __stdcall VCI_UsbDeviceReset(DWORD DevType,DWORD DevIndex,DWORD Reserviert
Parameter:
Gerätetyp
Gerätetyp. Siehe: Definition des Adaptergerätetyps.
Entwicklerindex
Geräteindex, zum BeispielampDas heißt, wenn nur ein USB-CAN-Adapter vorhanden ist, ist die Indexnummer 0, bei mehreren USB-CAN-Adaptern sind die Indexnummern aufsteigend sortiert, beginnend bei 0.
Reserviert Reserviert.
Widerrufsfolgen:
Rückgabewert = 1 bedeutet, dass der Vorgang erfolgreich war; = 0 zeigt an, dass der Vorgang fehlgeschlagen ist; = -1 zeigt an, dass das Gerät nicht existiert.
bRel = VCI_UsbDeviceReset(nDeviceType, Unabhängigkeit, 0);
3.1.2. VCI_FindUsbDevice2
Wenn derselbe PC mehrere USB-CAN verwendet, kann der Benutzer diese Funktion verwenden, um das aktuelle Gerät zu finden.
DWORD __stdcall VCI_FindUsbDevice2(PVCI_BOARD_INFO pInfo);
Parameter:
pInfo
pInfo wird verwendet, um die Parameter des ersten Datenpuffer-Adresszeigers zu speichern.
Rückgaben
Gibt die Nummer des an den Computer angeschlossenen USB-CAN-Adapters zurück.
Teil vier Schnittstellenbibliotheksfunktionen mit Prozess
Um die Gerätefunktionalität zu vervielfachen, haben wir zusätzliche Funktionen bereitgestellt (Funktionen mit grünem Hintergrund dargestellt), darunter: VCI_FindUsbDevice2 VCI_UsbDeviceReset. Während der zweiten Entwicklung müssen diese Funktionen nicht unbedingt aufgerufen werden. Auch wenn diese Funktionen ignoriert werden, können alle USB-CAN-Adapterfunktionen erreicht werden.
www.waveshare.com
www.waveshare.com/wiki
Dokumente / Ressourcen
![]() |
WAVESHARE USB-CAN-Bus-Schnittstellenadapter-Schnittstellenfunktionsbibliothek [pdf] Bedienungsanleitung USB-CAN-Bus-Schnittstellenadapter-Schnittstellenfunktionsbibliothek, USB-CAN, Bus-Schnittstellenadapter-Schnittstellenfunktionsbibliothek, Schnittstellenfunktionsbibliothek, Funktionsbibliothek |