Logo WAVESHAREInterface de bus USB-CAN
Fonction d'interface de l'adaptateur
Instructions d'utilisation de la bibliothèqueBibliothèque de fonctions d'interface d'interface d'interface de bus CAN USB WAVESHARE

PREMIÈRE PARTIE TERMINÉEVIEW

Si l'utilisateur utilise simplement l'adaptateur d'interface de bus USB-CAN pour passer au test de communication du bus CAN, il peut alors utiliser directement le logiciel USB-CAN Tool fourni pour envoyer et recevoir les données du test.
Si l'utilisateur a l'intention d'écrire un programme logiciel pour ses propres produits. Veuillez lire attentivement les instructions suivantes et prendre référence à la sample code que nous fournissons :
⑴ C++Builder ⑵C# ⑶VC ⑷VB ⑸VB.NET ⑹Delphi ⑺LaboratoireVIEW ⑻ LabWindows/CVI ⑼Matlab ⑽QT ⑾Python/Python-can.
Développer la bibliothèque file :ControlCAN.lib, ControlCAN.DLL
Déclaration de fonction de version VC file :ContrôleCAN.h
Déclaration de fonction de version VB file: ControlCAN.bas
LaboratoireVIEW Module de package de fonctions de la bibliothèque de versions : ControlCAN.llb
Déclaration de la fonction de version Delphi file: ControlCAN.pas

DEUXIÈME PARTIE BIBLIOTHÈQUE DE FONCTIONS COMPATIBLES ET STRUCTURE DE DONNÉES

2.1. DÉFINITION DU TYPE
2.1.1. Type de périphérique

Définition du type Valeur de type Description
DEV_USBCAN2 4 USBCAN-2A/USBCAN-2C/CANalyst-II MiniPCIe-CAN

2.1.2. VCI_BOARD_INFO
La structure VCI_BOARD_INFO contient des informations sur le périphérique de la carte d'interface de la série USB-CAN.
La structure sera remplie dans la fonction VCI_ReadBoardInfo.

Bibliothèque de fonctions d'interface d'interface d'interface de bus CAN USB WAVESHARE - Fig 1

Membre:
hw_Version
Numéro de version du matériel, notation hexadécimale. Par exemple, 0x0100 représente V1.00.
fw_Version
Numéro de version du matériel, notation hexadécimale. Par exemple, 0x0100 représente V1.00.
Page 2
dr_Version

Numéro de version du pilote, notation hexadécimale. Par exemple, 0x0100 représente V1.00.
dans_Version
Numéro de version de la bibliothèque d'interface, notation hexadécimale. Par exemple, 0x0100 représente V1.00.
irq_Num
Système réservé.
can_Num
Représente le nombre total de canaux CAN.
str_Serial_Num
Le numéro de série de cette carte de bord.
str_hw_Type
Type de matériel, tel que « USBCAN V1.00 » (Remarque : Inclut le terminateur de chaîne « \0 »).
Réservé
Système réservé.
2.1.3. VCI_CAN_OBJ
Dans les fonctions VCI_Transmit et VCI_Receive, la structure VCI_CAN_OBJ est utilisée pour transmettre la trame de message CAN.

Bibliothèque de fonctions d'interface d'interface d'interface de bus CAN USB WAVESHARE - Fig

Membre:
ID
Identificateur de message. Format d'identification directe, aligné à droite, veuillez vous reporter à : Annexe XNUMX : Détails d'alignement de l'ID.
HeureStamp
Recevoir le stamp informations sur le délai, commencez à chronométrer lorsque le contrôleur CAN est initialisé, l'unité est de 0 ms.
Drapeau temporel
En ce qui concerne l'utilisation du temps stamp, 1est le Temps effectifStamp. TimeFlag et TimeStamp n'ont de sens que lorsque la trame est reçue.
Type d'envoi
Type d'envoi. = 0 indique un type normal, = 1 indique un envoi unique.
Drapeau distant
S'il s'agit d'un drapeau distant. = 1 indique un indicateur distant, = 0 indique un indicateur de données.
ExternFlagExternFlag
Que ce soit un drapeau externe. = 1 indique un drapeau externe, = 0 indique un drapeau standard.
DonnéesLen
Longueur des données (<= 8) , c'est-à-dire la longueur des données.
Données
Données par paquets.
Réservé
Système réservé.
2.1.4. VCI_INIT_CONFIG
La structure VCI_INIT_CONFIG définit la configuration d'initialisation du CAN. La structure sera remplie dans la fonction VCI_InitCan.

Bibliothèque de fonctions d'interface d'interface d'interface de bus CAN USB WAVESHARE - Fig 2

Membre:
Code d'accès
Recevoir le code d'acceptation filtré.
MasqueAcc
Recevoir un masque filtrant.
Réservé
Réservé.
Filtre
Méthode de filtrage, permettant une plage de réglage de 0 à 3, reportez-vous à la section 2.2.3 du tableau des modes de filtrage pour plus de détails.
Délai0
SJA1000 Paramètre de débit en bauds, Timing0 (BTR0) .
Délai1
SJA1000 Paramètre de débit en bauds, Timing1 (BTR1) .
Mode
Mode de fonctionnement, 0 = fonctionnement normal, 1 = mode écoute seule, 2 = mode test d'admission spontanée et d'émission.
Remarques :
Concernant les réglages du filtre, veuillez vous référer à : Annexe II : Instructions de configuration des paramètres CAN.
CAN Timing0 et Timing1 sont utilisés pour définir le débit en bauds, ces deux paramètres ne sont utilisés qu'à l'initialisation stage.
Tableau de référence Baud conventionnel :

Débit en bauds CAN Temporisation0(BTR0) Temporisation1(BTR1)
10 XNUMX bps 0x31 0x1C
20 XNUMX bps 0x18 0x1C
40 XNUMX bps 0x87 0xFF
50 XNUMX bps 0x09 0x1C
80 XNUMX bps 0x83 0xFF
100 XNUMX bps 0x04 0x1C
125 XNUMX bps 0x03 0x1C
200 XNUMX bps 0x81 0xFA
250 XNUMX bps 0x01 0x1C
400 XNUMX bps 0x80 0xFA
500 XNUMX bps 0x00 0x1C
666 XNUMX bps 0x80 0xB6
800 XNUMX bps 0x00 0x16
1000 XNUMX bps 0x00 0x14
33.33 Kbps 0x09 0x6F
66.66 Kbps 0x04 0x6F
83.33 Kbps 0x03 0x6F
  1. Les utilisateurs n'ont qu'à suivre SJA1000 (16 MHz) pour définir le paramètre de débit en bauds.
  2. L'adaptateur ne prend pas temporairement en charge le débit en bauds inférieur à 10K.

2.2. DESCRIPTION DES FONCTIONS
2.2.1. VCI_OpenDevice
Cette fonction est utilisée pour connecter des appareils.
DWORD __stdcall VCI_OpenDevice (DWORD DevType, DWORD DevIndex, DWORD réservé);
Paramètres:
Type de développement
Type d'appareil. Voir : Définition du type de périphérique d'adaptateur.
DevIndex
Index des appareils, par exempleample, lorsqu'il n'y a qu'un seul adaptateur USB-CAN, le numéro d'index est 0, lorsqu'il y a plusieurs adaptateurs USB-CAN, les numéros d'index dans un ordre croissant à partir de 0.
Réservé
Paramètres de rétention, remplissez 0.
Retours :
Valeur de retour = 1, ce qui signifie que l'opération a réussi ; = 0 indique que l'opération a échoué ; = -1 indique que le périphérique n'existe pas.

Bibliothèque de fonctions d'interface d'interface d'interface de bus CAN USB WAVESHARE - Fig3

2.2.2. VCI_CloseDevice
Cette fonction est utilisée pour fermer la connexion.
DWORD __stdcall VCI_CloseDevice (DWORD DevType, DWORD DevIndex);
Paramètres:
Type de développement
Type d'appareil. Voir : Définition du type de périphérique d'adaptateur.
DevIndex
Index des appareils, par exempleample, lorsqu'il n'y a qu'un seul adaptateur USB-CAN, le numéro d'index est 0, lorsqu'il y a plusieurs adaptateurs USB-CAN, les numéros d'index dans un ordre croissant à partir de 0.
Retours :
Valeur de retour = 1, ce qui signifie que l'opération a réussi ; = 0 indique que l'opération a échoué ; = -1 indique que le périphérique n'existe pas.

Bibliothèque de fonctions d'interface d'interface d'interface de bus CAN USB WAVESHARE - Fig 4

2.2.3. VCI_InitCan
Cette fonction est utilisée pour initialiser le CAN spécifié.
DWORD __stdcall VCI_InitCAN (DWORD DevType, DWORD DevIndex, DWORD CANIndex,
PVCI_INIT_CONFIG pInitConfig);

Paramètres:
Type de développement
Type d'appareil. Voir : Définition du type de périphérique d'adaptateur.
DevIndex
Index des appareils, par exempleample, lorsqu'il n'y a qu'un seul adaptateur USB-CAN, le numéro d'index est 0, lorsqu'il y a plusieurs adaptateurs USB-CAN, les numéros d'index dans un ordre croissant à partir de 0.
IndexCAN
Index de canal CAN, par exemple lorsqu'il n'y a qu'un seul canal CAN, le numéro d'index est 0, s'il y en a deux, le numéro d'index peut être 0 ou 1.
pInitConfig
Structure des paramètres d'initialisation. Liste des paramètres des membres :

Membre Description fonctionnelle
pInitConfig->AccCode AccCode et AccMask peuvent fonctionner ensemble pour déterminer quels paquets peuvent être acceptés. Ces deux registres sont utilisés pour définir l'ID aligné à gauche, c'est-à-dire que le bit le plus élevé (Bit31) de AccCode et AccMask est aligné avec le bit le plus élevé de la valeur de l'ID.
pInitConfig->AccMask À propos de l'alignement ID, reportez-vous aux annexes : Annexe I :
Détails d'alignement de l'ID.
Par exemple : si vous définissez la valeur de AccCode sur 0x24600000 (c'est-à-dire que 0x123 est décalé vers la gauche de 21 bits), la valeur AccMask
est défini sur 0x00000000, puis seuls les paquets dont l'ID de trame de message CAN est 0x123 peuvent être acceptés (la valeur AccMask de 0x00000000 indique que tous les bits sont pertinents
morceaux). Si la valeur AccCode est définie sur 0x24600000, la valeur AccMask est définie sur 0x600000 (0x03 est décalé vers la gauche de 21 bits), puis seuls les paquets dont l'ID de trame de message CAN est 0x120 ~ 0x123 peuvent être acceptés (valeur AccMask
0x600000 indique qu'à part bit0 ~ bit1, d'autres bits (bit2 ~ bit10) sont des bits pertinents).
Note: Ce paramètre de filtre exampau cadre standard, par example, high 11-bit est le bit valide ; dans le cas de la trame étendue, puis l'ID valide est de 29 bits. AccCode et AccMask définissent 29 bits comme bit valide !
pInitConfig->Réservé réservé
pInitConfig->Filtre Paramètres du mode de filtrage, veuillez vous reporter à la section du tableau des modes de filtrage.
pInitConfig->Timing0 Réglage du débit en bauds T0
pInitConfig->Timing1 Réglage du débit en bauds T1
pInitConfig->Mode Mode de fonctionnement:
0-fonctionnement normal
1-Mode d'écoute uniquement
2-mode de test d'admission et d'envoi spontanés (cette valeur est exclue de la bibliothèque de fonctions ZLG)

Tableau des modes de filtrage :

Valeur Nom Description
1 Recevez tous les types Convient à la fois au cadre standard et étendu!
2 Ne recevoir que le cadre standard Convient au cadre standard et étendu
le cadre sera supprimé par filtration directement !
3 Ne recevoir que le cadre étendu Convient au cadre étendu et le cadre standard sera supprimé par
filtration directement ! 。

Retours :
Valeur de retour = 1, ce qui signifie que l'opération a réussi ; = 0 indique que l'opération a échoué ; = -1 indique que le périphérique n'existe pas.
Par exemple

Bibliothèque de fonctions d'interface d'interface d'interface de bus CAN USB WAVESHARE - Fig 4

Bibliothèque de fonctions d'interface d'interface d'interface de bus CAN USB WAVESHARE - Fig 6

2.2.4. VCI_ReadBoardInfo
Cette fonction est utilisée pour lire les informations matérielles de l'adaptateur. D'une manière générale, il peut être ignoré.
DWORD __stdcall VCI_ReadBoardInfo (DWORD DevType, DWORD
DevIndex,PVCI_BOARD_INFO pInfo);
Paramètres:
Type de développement
Type d'appareil. Voir : Définition du type de périphérique d'adaptateur.
DevIndex
Index des appareils, par exempleample, lorsqu'il n'y a qu'un seul adaptateur USB-CAN, le numéro d'index est 0, lorsqu'il y a plusieurs adaptateurs USB-CAN, les numéros d'index dans un ordre croissant à partir de 0. pInfo
VCI_BOARD_INFO est utilisé pour stocker le pointeur de structure d'informations de périphérique.
Retours :
Valeur de retour = 1, ce qui signifie que l'opération a réussi ; = 0 indique que l'opération a échoué ; = -1 indique que le périphérique n'existe pas.

Bibliothèque de fonctions d'interface d'interface d'interface de bus CAN USB WAVESHARE - Fig 7

2.2.5. VCI_GetReceiveNum
Cette fonction est utilisée pour spécifier les trames reçues mais non lues dans le tampon de réception désigné.
DWORD __stdcall VCI_GetReceiveNum (DWORD DevType, DWORD DevIndex, DWORD CANIndex);
Paramètres:
Type de développement
Type d'appareil. Voir : Définition du type de périphérique d'adaptateur.
DevIndex
Index des appareils, par exempleample, lorsqu'il n'y a qu'un seul adaptateur USB-CAN, le numéro d'index est 0, lorsqu'il y a plusieurs adaptateurs USB-CAN, les numéros d'index dans un ordre croissant à partir de 0.
IndexCAN
Index des canaux CAN.
Retours :
Renvoie les trames qui n'ont pas encore été lues.
Par exemple
#include "ControlCan.h" int ret=VCI_GetReceiveNum(2,0,0);
2.2.6. VCI_ClearBuffer
Cette fonction est utilisée pour effacer le tampon de réception et d'émission du canal désigné spécifié par
Adaptateur USB-CAN.
DWORD __stdcall VCI_ClearBuffer (DWORD DevType, DWORD DevIndex, DWORD CANIndex);
Paramètres:
Type de développement
Type d'appareil. Voir : Définition du type de périphérique d'adaptateur.
DevIndex
Index des appareils, par exempleample, lorsqu'il n'y a qu'un seul adaptateur USB-CAN, le numéro d'index est 0, lorsqu'il y a plusieurs adaptateurs USB-CAN, les numéros d'index dans un ordre croissant à partir de 0.
IndexCAN
Index des canaux CAN.
Retours :
Valeur de retour = 1, ce qui signifie que l'opération a réussi ; = 0 indique que l'opération a échoué ; = -1 indique que le périphérique n'existe pas.

Bibliothèque de fonctions d'interface d'interface d'interface de bus CAN USB WAVESHARE - Fig 8

2.2.7. VCI_StartCAN
Cette fonction est utilisée pour démarrer le contrôleur CAN et la fonction de réception d'interruption interne de l'adaptateur.
DWORD __stdcall VCI_StartCAN (DWORD DevType, DWORD DevIndex, DWORD CANIndex);
Paramètres:
Type de développement
Type d'appareil. Voir : Définition du type de périphérique d'adaptateur.
DevIndex
Index des appareils, par exempleample, lorsqu'il n'y a qu'un seul adaptateur USB-CAN, le numéro d'index est 0, lorsqu'il y a plusieurs adaptateurs USB-CAN, les numéros d'index dans un ordre croissant à partir de 0.
IndexCAN
Index des canaux CAN.
Retours :
Valeur de retour = 1, ce qui signifie que l'opération a réussi ; = 0 indique que l'opération a échoué ; = -1 indique que le périphérique n'existe pas.

Bibliothèque de fonctions d'interface d'interface d'interface de bus CAN USB WAVESHARE - Fig 9

2.2.8. VCI_ResetCAN
Cette fonction est utilisée pour réinitialiser le contrôleur CAN.
DWORD __stdcall VCI_ResetCAN (DWORD DevType, DWORD DevIndex, DWORD CANIndex);
Paramètres:
Type de développement
Type d'appareil. Voir : Définition du type de périphérique d'adaptateur.
DevIndex
Index des appareils, par exempleample, lorsqu'il n'y a qu'un seul adaptateur USB-CAN, le numéro d'index est 0, lorsqu'il y a plusieurs adaptateurs USB-CAN, les numéros d'index dans un ordre croissant à partir de 0.
IndexCAN
Index des canaux CAN.
Retours :
Valeur de retour = 1, ce qui signifie que l'opération a réussi ; = 0 indique que l'opération a échoué ; = -1 indique que le périphérique n'existe pas.

Bibliothèque de fonctions d'interface d'interface d'interface de bus CAN USB WAVESHARE - Fig 10

2.2.9. VCI_Transmission
Cette fonction est utilisée pour envoyer une trame de message CAN.
DWORD __stdcall VCI_Transmit (DWORD DeviceType, DWORD DeviceInd, DWORD CANInd, PVCI_CAN_OBJ pSend, DWORD Longueur) ;
Paramètres:
Type de développement
Type d'appareil. Voir : Définition du type de périphérique d'adaptateur.
DevIndex
Index des appareils, par exempleample, lorsqu'il n'y a qu'un seul adaptateur USB-CAN, le numéro d'index est 0, lorsqu'il y a plusieurs adaptateurs USB-CAN, les numéros d'index dans un ordre croissant à partir de 0.
IndexCAN
Index des canaux CAN. pEnvoyer
La première adresse des tableaux de trames de données qui doivent être envoyés.
Longueur
Le nombre de trames de données qui doivent être envoyées, le nombre maximum est de 1000, la valeur recommandée est de 48 à haute vitesse.
Retours :
Renvoie le nombre réel de trames déjà envoyées, la valeur de retour = -1 indique une erreur de périphérique.
Par exemple
Bibliothèque de fonctions d'interface d'interface d'interface de bus CAN USB WAVESHARE - Fig 11

Bibliothèque de fonctions d'interface d'interface d'interface de bus CAN USB WAVESHARE - Fig 12

2.2.10. VCI_Recevoir
Cette fonction est utilisée pour demander la réception.
DWORD __stdcall VCI_Receive (DWORD DevType, DWORD DevIndex, DWORD CANIndex, PVCI_CAN_OBJ pReceive, ULONG Len, INT WaitTime);
Paramètres:
Type de développement
Type d'appareil. Voir : Définition du type de périphérique d'adaptateur.
DevIndex
Index des appareils, par exempleample, lorsqu'il n'y a qu'un seul adaptateur USB-CAN, le numéro d'index est 0, lorsqu'il y a plusieurs adaptateurs USB-CAN, les numéros d'index dans un ordre croissant à partir de 0.
IndexCAN
Index des canaux CAN.
pRecevoir
Pour recevoir le premier pointeur d'ensemble des trames de données.
Len
La longueur du tableau de la trame de données doit être supérieure à 2500 XNUMX pour renvoyer un message normal.
Sinon, la longueur de retour sera nulle, que le message soit reçu ou non. l'adaptateur a défini un tampon de 2000 images pour chaque canal. En fonction de son propre système et de son environnement de travail, l'utilisateur peut choisir une longueur de tableau appropriée à partir de 2500.
Temps d'attente Réservé.
Retours :
Renvoie le nombre de trames qui ont réellement été lues, -1 indique des erreurs de périphérique.
Par exemple
Bibliothèque de fonctions d'interface d'interface d'interface de bus CAN USB WAVESHARE - Fig 13

TROISIÈME PARTIE AUTRES FONCTIONS ET DESCRIPTION DE LA STRUCTURE DES DONNÉES

Ce chapitre décrit d'autres types de données et fonctions de la bibliothèque d'interface ZLG incompatible contenue dans la bibliothèque d'interface de l'adaptateur USB-CAN ControlCAN.dll. Je vous en prie
n'appelez pas ces fonctions si vous utilisez un modèle ZLG compatible pour le développement secondaire afin de ne pas affecter la compatibilité.
3.1 DESCRIPTIF DES FONCTIONS
3.1.1. VCI_UsbDeviceReset
Réinitialisez l'adaptateur USB-CAN, vous devez rouvrir l'appareil après la réinitialisation en utilisant VCI_OpenDevice.
DWORD __stdcall VCI_UsbDeviceReset(DWORD DevType,DWORD DevIndex,DWORD Réservé
Paramètres:
Type de développement
Type d'appareil. Voir : Définition du type de périphérique d'adaptateur.
DevIndex
Index des appareils, par exempleample, lorsqu'il n'y a qu'un seul adaptateur USB-CAN, le numéro d'index est 0, lorsqu'il y a plusieurs adaptateurs USB-CAN, les numéros d'index dans un ordre croissant à partir de 0.
Réservé Réservé.
Retours :
Valeur de retour = 1, ce qui signifie que l'opération a réussi ; = 0 indique que l'opération a échoué ; = -1 indique que le périphérique n'existe pas.

Bibliothèque de fonctions d'interface d'interface d'interface de bus CAN USB WAVESHARE - Fig 14

bRel = VCI_UsbDeviceReset(nDeviceType, Indépendance, 0);
3.1.2. VCI_FindUsbDevice2
Lorsque le même PC utilise plusieurs USB-CAN, l'utilisateur peut utiliser cette fonction pour trouver le périphérique actuel.
DWORD __stdcall VCI_FindUsbDevice2(PVCI_BOARD_INFO pInfo);
Paramètres:
pInfo
pInfo est utilisé pour stocker les paramètres du premier pointeur d'adresse de tampon de données.
Retours
Renvoie le numéro de l'adaptateur USB-CAN branché sur l'ordinateur.

Bibliothèque de fonctions d'interface d'interface d'interface de bus CAN USB WAVESHARE - Fig 15

Quatrième partie Fonctions de la bibliothèque d'interface utilisant Process
Afin de multiplier la fonction de l'appareil, nous avons fourni des fonctions supplémentaires (fonctions présentées avec un fond vert), ces fonctions incluent : VCI_FindUsbDevice2 VCI_UsbDeviceReset. Lors du second développement, ces fonctions ne sont pas nécessairement à invoquer. Même ces fonctions sont ignorées, toutes les fonctions de l'adaptateur USB-CAN peuvent être réalisées.

Bibliothèque de fonctions d'interface d'interface d'interface de bus CAN USB WAVESHARE - Fig 16

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

Documents / Ressources

Bibliothèque de fonctions d'interface de l'adaptateur d'interface de bus WAVESHARE USB-CAN [pdf] Manuel d'instructions
Bibliothèque de fonctions d'interface d'adaptateur d'interface de bus USB-CAN, USB-CAN, bibliothèque de fonctions d'interface d'adaptateur d'interface de bus, bibliothèque de fonctions d'interface, bibliothèque de fonctions

Références

Laisser un commentaire

Votre adresse email ne sera pas publiée. Les champs obligatoires sont marqués *