Interfaz de bus USB-CAN
Función de interface do adaptador
Instrución de usuario da biblioteca
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.
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.
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.
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 |
- Os usuarios só precisan seguir SJA1000 (16MHz) para configurar o parámetro de velocidade en baudios.
- 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.
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.
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
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.
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.
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.
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.
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
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
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.
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.
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.
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 |