Logotipo de WAVESHAREInterfaz de bus USB-CAN
Función de interface do adaptador
Instrución de usuario da bibliotecaWAVESHARE USB CAN Bus Interface Adaptador Interface Biblioteca de funcións

PRIMEIRA PARTEVIEW

Se o usuario só usa o adaptador de interface de bus USB-CAN para realizar a proba de comunicación do bus CAN, e entón pode usar directamente o software da ferramenta USB-CAN proporcionado para enviar e recibir datos da proba.
Se o usuario pretende escribir un programa de software para os seus propios produtos. Lea atentamente as seguintes instrucións e tómase referencia do sampo código que proporcionamos:
⑴ C++Builder ⑵C# ⑶VC ⑷VB ⑸VB.NET ⑹Delphi ⑺LabVIEW ⑻ LabWindows/CVI ⑼Matlab ⑽QT ⑾Python/Python-can.
Desenvolver biblioteca file : ControlCAN.lib, ControlCAN.DLL
Declaración da función da versión VC file :ControlCAN.h
Declaración da función da versión VB file: ControlCAN.bas
LaboratorioVIEW Módulo do paquete de funcións da biblioteca de versións: ControlCAN.llb
Declaración da función de versión de Delphi file: ControlCAN.pas

SEGUNDA PARTE BIBLIOTECA DE FUNCIÓNS COMPATIBLE E ESTRUTURA DE DATOS

2.1. DEFINICIÓN TIPO
2.1.1. Tipo de dispositivo

Definición de tipo Tipo de valor Descrición
DEV_USBCAN2 4 USBCAN-2A/USBCAN-2C/CANalyst-II MiniPCIe-CAN

2.1.2. VCI_BOARD_INFO
A estrutura VCI_BOARD_INFO contén información do dispositivo da tarxeta de interface da serie USB-CAN.
A estrutura cubrirase coa función VCI_ReadBoardInfo.

WAVESHARE USB CAN Bus Interface Adaptador Interface Interface Function Library - Fig 1

Membro:
hw_Versión
Número de versión de hardware, notación hexadecimal. Por exemplo, 0x0100 representa V1.00.
fw_Versión
Número de versión de hardware, notación hexadecimal. Por exemplo, 0x0100 representa V1.00.
Páxina 2
dr_Versión

Número de versión do controlador, notación hexadecimal. Por exemplo, 0x0100 representa V1.00.
en_versión
Número de versión da biblioteca de interfaces, notación hexadecimal. Por exemplo, 0x0100 representa V1.00.
irq_Num
Sistema reservado.
can_Núm
Representa o número total de canles CAN.
str_Serial_Num
Número de serie desta tarxeta.
str_hw_Tipo
Tipo de hardware, como "USBCAN V1.00" (Nota: Inclúe o terminador de cadea "\0").
Reservado
Sistema reservado.
2.1.3. VCI_CAN_OBJ
Nas funcións VCI_Transmit e VCI_Receive, utilízase a estrutura VCI_CAN_OBJ para transmitir o marco de mensaxe CAN.

WAVESHARE USB CAN Bus Interface Adaptador Interface Interface Function Library - Fig

Membro:
ID
Identificador da mensaxe. Formato de ID directo, aliñado á dereita, consulte: Anexo XNUMX: Detalles de aliñamento de ID.
Tempo St.amp
Recibindo o stamp información do período de tempo, comeza a sincronización cando se inicializa o controlador CAN, a unidade é de 0 ms.
TimeFlag
En termos de usar o tempo stamp, 1 é o TimeSt efectivoamp. TimeFlag e TimeStamp só teñen sentido cando se recibe o marco .
SendType
Tipo de envío. = 0 indica tipo normal, = 1 indica envío único.
Bandeira Remota
Se é unha bandeira remota. = 1 indica a bandeira remota, = 0 indica a marca de datos.
Bandeira externa
Se é unha bandeira externa. = 1 indica a bandeira externa, = 0 indica a bandeira estándar.
DataLen
Lonxitude dos datos (<=8), é dicir, a lonxitude dos datos.
Datos
Paquete de datos.
Reservado
Sistema reservado.
2.1.4. VCI_INIT_CONFIG
A estrutura VCI_INIT_CONFIG define a configuración de inicialización do CAN. A estrutura cubrirase coa función VCI_InitCan.

WAVESHARE USB CAN Bus Interface Adaptador Interface Interface Function Library - Fig 2

Membro:
Código de acceso
Recibir un código de aceptación filtrado.
AccMask
Recibir máscara de filtro.
Reservado
Reservado.
Filtro
Método de filtrado, que permite o intervalo de configuración 0-3, consulte a sección 2.2.3 da táboa de modos de filtro para obter máis información.
Temporalización 0
Parámetro de velocidade en baudios SJA1000, Timing0 (BTR0) .
Temporalización 1
Parámetro de velocidade en baudios SJA1000, Timing1 (BTR1) .
Modo
Modo operativo, 0 = funcionamento normal, 1 = modo de só escoita, 2 = modo de proba de admisión e envío espontáneos.
Observacións:
Acerca da configuración do filtro consulte: Anexo II: instrucións de configuración do parámetro CAN.
CAN Timing0 e Timing1 úsanse para configurar a velocidade en baudios, estes dous parámetros só se usan na inicialización.tage.
Táboa de referencia convencional en baudios:

Velocidade de transmisión CAN Temporización0(BTR0) Temporización1(BTR1)
10 kbps 0x31 0x1C
20 kbps 0x18 0x1C
40 kbps 0x87 0xFF
50 kbps 0x09 0x1C
80 kbps 0x83 0xFF
100 kbps 0x04 0x1C
125 kbps 0x03 0x1C
200 kbps 0x81 0xFA
250 kbps 0x01 0x1C
400 kbps 0x80 0xFA
500 kbps 0x00 0x1C
666 kbps 0x80 0xB6
800 kbps 0x00 0x16
1000 kbps 0x00 0x14
33.33 Kbps 0x09 0x6F
66.66 Kbps 0x04 0x6F
83.33 Kbps 0x03 0x6F
  1. Os usuarios só precisan seguir SJA1000 (16MHz) para configurar o parámetro de velocidade en baudios.
  2. O adaptador non admite temporalmente unha velocidade de transmisión inferior a 10 K.

2.2. DESCRICIÓN DA FUNCIÓN
2.2.1. VCI_OpenDevice
Esta función úsase para conectar dispositivos.
DWORD __stdcall VCI_OpenDevice (DWORD DevType, DWORD DevIndex, DWORD reservado);
Parámetros:
DevType
Tipo de dispositivo. Consulte: Definición do tipo de dispositivo adaptador.
DevIndex
Índice de dispositivos, por exemploample, cando só hai un adaptador USB-CAN, o número de índice é 0, cando hai varios adaptadores USB-CAN, os números de índice en orde ascendente comezando por 0.
Reservado
Parámetros de retención, enche 0.
Devolucións:
Valor de retorno = 1, o que significa que a operación foi exitosa; = 0 indica que a operación fallou; = -1 indica que o dispositivo non existe.

WAVESHARE USB CAN Bus Interface Adaptador Interface Interface Function Library - Fig3

2.2.2. VCI_CloseDevice
Esta función úsase para pechar a conexión.
DWORD __stdcall VCI_CloseDevice(DWORD DevType, DWORD DevIndex);
Parámetros:
DevType
Tipo de dispositivo. Consulte: Definición do tipo de dispositivo adaptador.
DevIndex
Índice de dispositivos, por exemploample, cando só hai un adaptador USB-CAN, o número de índice é 0, cando hai varios adaptadores USB-CAN, os números de índice en orde ascendente comezando por 0.
Devolucións:
Valor de retorno = 1, o que significa que a operación foi exitosa; = 0 indica que a operación fallou; = -1 indica que o dispositivo non existe.

WAVESHARE USB CAN Bus Interface Adaptador Interface Interface Function Library - Fig 4

2.2.3. VCI_InitCan
Esta función úsase para inicializar o CAN especificado.
DWORD __stdcall VCI_InitCAN(DWORD DevType, DWORD DevIndex, DWORD CANIndex,
PVCI_INIT_CONFIG pInitConfig);

Parámetros:
DevType
Tipo de dispositivo. Consulte: Definición do tipo de dispositivo adaptador.
DevIndex
Índice de dispositivos, por exemploample, cando só hai un adaptador USB-CAN, o número de índice é 0, cando hai varios adaptadores USB-CAN, os números de índice en orde ascendente comezando por 0.
Índice CAN
Índice de canles CAN, como cando só hai unha canle CAN, o número de índice é 0, se hai dous, o número de índice pode ser 0 ou 1.
pInitConfig
Estrutura de parámetros de inicialización. Lista de parámetros de membros:

Membro Descrición funcional
pInitConfig->AccCode AccCode e AccMask poden traballar xuntos para determinar que paquetes se poden aceptar. Estes dous rexistros úsanse para establecer o ID aliñado á esquerda, é dicir, o bit máis alto (Bit31) do AccCode e AccMask está aliñado co bit máis alto do valor de ID.
pInitConfig->AccMask Sobre o aliñamento de ID consulte anexos: Anexo I:
Detalles de aliñamento de ID.
Por exemplo: Se establece o valor do AccCode como 0x24600000 (é dicir, 0x123 desprázase 21 bits á esquerda), o valor de AccMask
está configurado en 0x00000000, e entón só se poden aceptar os paquetes con ID de trama de mensaxe CAN é 0x123 (o valor de AccMask de 0x00000000 indica que todos os bits son relevantes
bits). Se o valor de AccCode está definido en 0x24600000, o valor de AccMask establécese en 0x600000 (0x03 desprázase 21 bits cara á esquerda), e entón só se poden aceptar os paquetes co ID do marco de mensaxe CAN é 0x120 ~ 0x123 (valor de AccMask
0x600000 indica que ademais de bit0 ~ bit1 outros bits (bit2 ~ bit10) son bits relevantes).
Nota: Esta configuración de filtro, por exemploampos ao marco estándar, por exemploample, alto 11 bits é o bit válido; no caso do marco estendido, e entón o ID válido é de 29 bits. AccCode e AccMask establecen 29 bits como bits válidos.
pInitConfig->Reservado reservado
pInitConfig->Filtro A configuración do modo de filtrado consulte a sección da táboa do modo de filtrado.
pInitConfig->Timing0 Configuración de velocidade en baudios T0
pInitConfig->Timing1 Configuración de velocidade en baudios T1
pInitConfig->Modo Modo de funcionamento:
0-funcionamento normal
1-Modo de só escoita
Admisión espontánea e modo de proba de envío 2 (este valor está excluído da biblioteca de funcións ZLG)

Táboa do modo de filtro:

Valor Nome Descrición
1 Recibe todo tipo Adecuado para marco estándar e estendido!
2 Recibe só marco estándar Adecuado para marco estándar e estendido
o marco será eliminado por filtración directamente!
3 Recibe só marco estendido Adecuado para marcos estendidos e eliminarase o marco estándar
filtración directamente! 。

Devolucións:
Valor de retorno = 1, o que significa que a operación foi exitosa; = 0 indica que a operación fallou; = -1 indica que o dispositivo non existe.
Ex

WAVESHARE USB CAN Bus Interface Adaptador Interface Interface Function Library - Fig 4

WAVESHARE USB CAN Bus Interface Adaptador Interface Interface Function Library - Fig 6

2.2.4. VCI_ReadBoardInfo
Esta función úsase para ler a información do hardware do adaptador. En xeral, pódese ignorar.
DWORD __stdcall VCI_ReadBoardInfo(DWORD DevType,DWORD
DevIndex,PVCI_BOARD_INFO pInfo);
Parámetros:
DevType
Tipo de dispositivo. Consulte: Definición do tipo de dispositivo adaptador.
DevIndex
Índice de dispositivos, por exemploample, cando só hai un adaptador USB-CAN, o número de índice é 0, cando hai varios adaptadores USB-CAN, os números de índice en orde ascendente comezando por 0. pInfo
VCI_BOARD_INFO úsase para almacenar o punteiro da estrutura da información do dispositivo.
Devolucións:
Valor de retorno = 1, o que significa que a operación foi exitosa; = 0 indica que a operación fallou; = -1 indica que o dispositivo non existe.

WAVESHARE USB CAN Bus Interface Adaptador Interface Interface Function Library - Fig 7

2.2.5. VCI_GetReceiveNum
Esta función úsase para especificar as tramas recibidas pero non lidas no búfer de recepción designado.
DWORD __stdcall VCI_GetReceiveNum(DWORD DevType, DWORD DevIndex, DWORD CANIndex);
Parámetros:
DevType
Tipo de dispositivo. Consulte: Definición do tipo de dispositivo adaptador.
DevIndex
Índice de dispositivos, por exemploample, cando só hai un adaptador USB-CAN, o número de índice é 0, cando hai varios adaptadores USB-CAN, os números de índice en orde ascendente comezando por 0.
Índice CAN
Índice de canles CAN.
Devolucións:
Devolve fotogramas que aínda non foron lidos.
Ex
#include "ControlCan.h" int ret=VCI_GetReceiveNum(2,0,0);
2.2.6. VCI_ClearBuffer
Esta función úsase para borrar o búfer de recepción e envío da canle designada especificada por
Adaptador USB-CAN.
DWORD __stdcall VCI_ClearBuffer (DWORD DevType, DWORD DevIndex, DWORD CANIndex);
Parámetros:
DevType
Tipo de dispositivo. Consulte: Definición do tipo de dispositivo adaptador.
DevIndex
Índice de dispositivos, por exemploample, cando só hai un adaptador USB-CAN, o número de índice é 0, cando hai varios adaptadores USB-CAN, os números de índice en orde ascendente comezando por 0.
Índice CAN
Índice de canles CAN.
Devolucións:
Valor de retorno = 1, o que significa que a operación foi exitosa; = 0 indica que a operación fallou; = -1 indica que o dispositivo non existe.

WAVESHARE USB CAN Bus Interface Adaptador Interface Interface Function Library - Fig 8

2.2.7. VCI_StartCAN
Esta función úsase para iniciar o controlador CAN e a función de recepción de interrupcións internas do adaptador.
DWORD __stdcall VCI_StartCAN(DWORD DevType, DWORD DevIndex, DWORD CANIndex);
Parámetros:
DevType
Tipo de dispositivo. Consulte: Definición do tipo de dispositivo adaptador.
DevIndex
Índice de dispositivos, por exemploample, cando só hai un adaptador USB-CAN, o número de índice é 0, cando hai varios adaptadores USB-CAN, os números de índice en orde ascendente comezando por 0.
Índice CAN
Índice de canles CAN.
Devolucións:
Valor de retorno = 1, o que significa que a operación foi exitosa; = 0 indica que a operación fallou; = -1 indica que o dispositivo non existe.

WAVESHARE USB CAN Bus Interface Adaptador Interface Interface Function Library - Fig 9

2.2.8. VCI_ResetCAN
Esta función úsase para restablecer o controlador CAN.
DWORD __stdcall VCI_ResetCAN(DWORD DevType, DWORD DevIndex, DWORD CANIndex);
Parámetros:
DevType
Tipo de dispositivo. Consulte: Definición do tipo de dispositivo adaptador.
DevIndex
Índice de dispositivos, por exemploample, cando só hai un adaptador USB-CAN, o número de índice é 0, cando hai varios adaptadores USB-CAN, os números de índice en orde ascendente comezando por 0.
Índice CAN
Índice de canles CAN.
Devolucións:
Valor de retorno = 1, o que significa que a operación foi exitosa; = 0 indica que a operación fallou; = -1 indica que o dispositivo non existe.

WAVESHARE USB CAN Bus Interface Adaptador Interface Interface Function Library - Fig 10

2.2.9. VCI_Transmit
Esta función úsase para enviar un marco de mensaxe CAN.
DWORD __stdcall VCI_Transmit(DWORD DeviceType,DWORD DeviceInd,DWORD CANInd,PVCI_CAN_OBJ pSend,DWORD Length);
Parámetros:
DevType
Tipo de dispositivo. Consulte: Definición do tipo de dispositivo adaptador.
DevIndex
Índice de dispositivos, por exemploample, cando só hai un adaptador USB-CAN, o número de índice é 0, cando hai varios adaptadores USB-CAN, os números de índice en orde ascendente comezando por 0.
Índice CAN
Índice de canles CAN. pEnviar
O primeiro enderezo das matrices de marcos de datos que se deben enviar.
Lonxitude
O número de cadros de datos que se deben enviar, o número máximo é 1000, o valor recomendado é 48 en alta velocidade.
Devolucións:
Devolve o número real de fotogramas xa enviados, o valor de retorno = -1 indica un erro do dispositivo.
Ex
WAVESHARE USB CAN Bus Interface Adaptador Interface Interface Function Library - Fig 11

WAVESHARE USB CAN Bus Interface Adaptador Interface Interface Function Library - Fig 12

2.2.10. VCI_Recibir
Esta función úsase para solicitar a recepción.
DWORD __stdcall VCI_Receive(DWORD DevType, DWORD DevIndex, DWORD CANIndex, PVCI_CAN_OBJ pReceive, ULONG Len, INT WaitTime);
Parámetros:
DevType
Tipo de dispositivo. Consulte: Definición do tipo de dispositivo adaptador.
DevIndex
Índice de dispositivos, por exemploample, cando só hai un adaptador USB-CAN, o número de índice é 0, cando hai varios adaptadores USB-CAN, os números de índice en orde ascendente comezando por 0.
Índice CAN
Índice de canles CAN.
pRecibir
Para recibir o primeiro punteiro de conxunto dos marcos de datos.
Len
A lonxitude da matriz do marco de datos debe ser superior a 2500 para devolver a mensaxe normal.
En caso contrario, a lonxitude da devolución será cero se a mensaxe se recibe ou non. o adaptador estableceu un búfer de 2000 fotogramas para cada canle. En función do seu propio sistema e ambiente de traballo, o usuario pode escoller unha lonxitude de matriz adecuada entre 2500.
Tempo de espera reservado.
Devolucións:
Devolve o número de fotogramas que realmente se liron, -1 indica erros do dispositivo.
Ex
WAVESHARE USB CAN Bus Interface Adaptador Interface Interface Function Library - Fig 13

TERCEIRA PARTE OUTRAS FUNCIÓNS E DESCRICIÓN DA ESTRUCTURA DE DATOS

Este capítulo describe outros tipos de datos e funcións da biblioteca de interfaces ZLG incompatible contida na biblioteca de interfaces do adaptador USB-CAN ControlCAN.dll. Faga por favor
Non chamar a estas funcións se usa un modelo ZLG compatible para o desenvolvemento secundario para non afectar á compatibilidade.
3.1 DESCRICIÓN DA FUNCIÓN
3.1.1. VCI_UsbDeviceReset
Restablece o adaptador USB-CAN, hai que volver abrir o dispositivo despois do restablecemento usando VCI_OpenDevice.
DWORD __stdcall VCI_UsbDeviceReset(DWORD DevType, DWORD DevIndex, DWORD reservado
Parámetros:
DevType
Tipo de dispositivo. Consulte: Definición do tipo de dispositivo adaptador.
DevIndex
Índice de dispositivos, por exemploample, cando só hai un adaptador USB-CAN, o número de índice é 0, cando hai varios adaptadores USB-CAN, os números de índice en orde ascendente comezando por 0.
Reservado Reservado.
Devolucións:
Valor de retorno = 1, o que significa que a operación foi exitosa; = 0 indica que a operación fallou; = -1 indica que o dispositivo non existe.

WAVESHARE USB CAN Bus Interface Adaptador Interface Interface Function Library - Fig 14

bRel = VCI_UsbDeviceReset(nDeviceType, Independence, 0);
3.1.2. VCI_FindUsbDevice2
Cando o mesmo PC utiliza varios USB-CAN, o usuario pode usar esta función para atopar o dispositivo actual.
DWORD __stdcall VCI_FindUsbDevice2(PVCI_BOARD_INFO pInfo);
Parámetros:
pInformación
pInfo úsase para almacenar os parámetros do primeiro punteiro de enderezo do buffer de datos.
Devolucións
Devolve o número do adaptador USB-CAN conectado ao ordenador.

WAVESHARE USB CAN Bus Interface Adaptador Interface Interface Function Library - Fig 15

Cuarta parte Funcións da biblioteca de interfaces usando o proceso
Para multiplicar a función do dispositivo, proporcionamos funcións adicionais (funcións presentadas cun fondo verde), estas funcións inclúen: VCI_FindUsbDevice2 VCI_UsbDeviceReset. Durante o segundo desenvolvemento, estas funcións non deben ser necesariamente invocadas. Aínda que se ignoren estas funcións, pódense conseguir todas as funcións do adaptador USB-CAN.

WAVESHARE USB CAN Bus Interface Adaptador Interface Interface Function Library - Fig 16

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

Documentos/Recursos

Biblioteca de funcións de interfaz de adaptador de interfaz de bus WAVESHARE USB-CAN [pdfManual de instrucións
Biblioteca de funciones de interfaz de adaptador de interfaz de bus USB-CAN, USB-CAN, biblioteca de funcións de interfaz de adaptador de interfaz de bus, biblioteca de funcións de interfaz, biblioteca de funcións

Referencias

Deixa un comentario

O teu enderezo de correo electrónico non será publicado. Os campos obrigatorios están marcados *