Logotipo WAVESHAREInterface de barramento USB-CAN
Função de Interface do Adaptador
Instrução do usuário da bibliotecaWAVESHARE USB CAN Interface do adaptador de barramento Biblioteca de funções da interface

PRIMEIRA PARTEVIEW

Se o usuário apenas usar o adaptador de interface de barramento USB-CAN para fazer o teste de comunicação de barramento CAN, ele poderá usar diretamente o software USB-CAN Tool fornecido para enviar e receber dados do teste.
Se o usuário pretende escrever um programa de software para seus próprios produtos. Leia atentamente as instruções a seguir e consulte osample código que fornecemos:
⑴C++Builder ⑵C# ⑶VC ⑷VB ⑸VB.NET ⑹Delphi ⑺LabVIEW ⑻ LabWindows/CVI ⑼Matlab ⑽QT ⑾Python/Python-can.
Desenvolver biblioteca file :ControlCAN.lib, ControlCAN.DLL
Declaração de função de versão VC file :ControlCAN.h
Declaração de função de versão do VB file: ControlCAN.bas
LaboratórioVIEW módulo do pacote de funções da biblioteca de versões: ControlCAN.llb
Declaração de função de versão do Delphi file: ControlCAN.pas

PARTE DOIS BIBLIOTECA DE FUNÇÕES COMPATÍVEIS E ESTRUTURA DE DADOS

2.1. DEFINIÇÃO DO TIPO
2.1.1. Tipo de dispositivo

Definição de tipo Digite o valor Descrição
DEV_USBCAN2 4 USBCAN-2A/USBCAN-2C/CANalyst-II MiniPCIe-CAN

2.1.2. VCI_BOARD_INFO
A estrutura VCI_BOARD_INFO contém informações do dispositivo da placa de interface USB-CAN Series.
A estrutura será preenchida na função VCI_ReadBoardInfo.

WAVESHARE USB CAN Interface do adaptador de barramento Biblioteca de funções de interface - Fig 1

Membro:
hw_Versão
Número da versão do hardware, notação hexadecimal. Por exemplo, 0x0100 representa V1.00.
versão_fw
Número da versão do hardware, notação hexadecimal. Por exemplo, 0x0100 representa V1.00.
Página 2
dr_Versão

Número da versão do driver, notação hexadecimal. Por exemplo, 0x0100 representa V1.00.
in_Version
Número da versão da biblioteca de interface, notação hexadecimal. Por exemplo, 0x0100 representa V1.00.
irq_Num
Sistema reservado.
can_Num
Representa o número total de canais CAN.
str_Serial_Num
O número de série deste cartão de placa.
str_hw_Type
Tipo de hardware, como “USBCAN V1.00” (Nota: inclui o terminador de string '\0').
Reservado
Sistema reservado.
2.1.3. VCI_CAN_OBJ
Nas funções VCI_Transmit e VCI_Receive, a estrutura VCI_CAN_OBJ é utilizada para transmitir o quadro de mensagem CAN.

WAVESHARE USB CAN Interface do adaptador de barramento Biblioteca de funções de interface - Fig

Membro:
ID
Identificador de mensagem. Formato de ID direto, alinhado à direita, consulte: Anexo Um: Detalhes de alinhamento de ID.
HoraStamp
Recebendo o stamp informações do período de tempo, comece a cronometrar quando o controlador CAN é inicializado, a unidade é 0. 1ms.
TimeFlag
Em termos de usar ou não o tempo stamp, 1 é o TimeSt efetivoamp. TimeFlag e TimeStamp só são significativos quando o quadro é recebido.
Tipo de envio
Tipo de envio. = 0 indica tipo normal, = 1 indica envio único.
Sinalizador remoto
Se é um sinalizador remoto. = 1 indica flag remoto, = 0 indica flag de dados.
Bandeira Externa
Se é uma bandeira externa. = 1 indica sinalizador externo, = 0 indica sinalizador padrão.
DataLen
Comprimento dos dados (<=8) ,isto é, o comprimento dos dados.
Dados
Dados do pacote.
Reservado
Sistema reservado.
2.1.4. VCI_INIT_CONFIG
A estrutura VCI_INIT_CONFIG define a configuração de inicialização do CAN. A estrutura será preenchida na função VCI_InitCan.

WAVESHARE USB CAN Interface do adaptador de barramento Biblioteca de funções de interface - Fig 2

Membro:
Código de acesso
Receba o código de aceitação filtrado.
AccMask
Receber máscara de filtro.
Reservado
Reservado.
Filtro
Método de filtragem, permitindo o intervalo de configuração 0-3, consulte a seção 2.2.3 da tabela do modo de filtro para obter detalhes.
Tempo0
SJA1000 Parâmetro baud rate, Timing0 (BTR0) .
Tempo1
SJA1000 Parâmetro baud rate, Timing1 (BTR1) .
Modo
Modo operacional, 0 = operação normal, 1 = modo somente escuta, 2 = admissão espontânea e modo de teste de envio.
Observações:
Sobre as configurações do filtro, consulte: Anexo II: Instruções de configuração dos parâmetros CAN.
CAN Timing0 e Timing1 são usados ​​para definir a taxa de transmissão, esses dois parâmetros são usados ​​apenas na inicialização stage.
Tabela de referência de Baud convencional:

Taxa de transmissão CAN Temporização0(BTR0) Temporização1(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. Os usuários só precisam seguir SJA1000 (16MHz) para definir o parâmetro de taxa de transmissão.
  2. O adaptador não suporta temporariamente taxa de transmissão abaixo de 10K.

2.2. DESCRIÇÃO DA FUNÇÃO
2.2.1. VCI_OpenDevice
Esta função é usada para conectar dispositivos.
DWORD __stdcall VCI_OpenDevice(DWORD DevType,DWORD DevIndex,DWORD Reservado);
Parâmetros:
TipoDev
Tipo de dispositivo. Consulte: Definição do tipo de dispositivo do adaptador.
DevIndex
Índice de dispositivos, por exemploample, quando há apenas um adaptador USB-CAN, o número do índice é 0, quando há vários adaptadores USB-CAN, os números do índice estão em ordem crescente, começando em 0.
Reservado
Parâmetros de retenção, preencha com 0.
Retornos:
Valor de retorno = 1, o que significa que a operação foi bem-sucedida; = 0 indica que a operação falhou; = -1 indica que o dispositivo não existe.

WAVESHARE USB CAN Bus Interface Adaptador Biblioteca de funções de interface - Fig3

2.2.2. VCI_CloseDevice
Esta função é usada para fechar a conexão.
DWORD __stdcall VCI_CloseDevice(DWORD DevType,DWORD DevIndex);
Parâmetros:
TipoDev
Tipo de dispositivo. Consulte: Definição do tipo de dispositivo do adaptador.
DevIndex
Índice de dispositivos, por exemploample, quando há apenas um adaptador USB-CAN, o número do índice é 0, quando há vários adaptadores USB-CAN, os números do índice estão em ordem crescente, começando em 0.
Retornos:
Valor de retorno = 1, o que significa que a operação foi bem-sucedida; = 0 indica que a operação falhou; = -1 indica que o dispositivo não existe.

WAVESHARE USB CAN Interface do adaptador de barramento Biblioteca de funções de interface - Fig 4

2.2.3. VCI_InitCan
Esta função é usada para inicializar o CAN especificado.
DWORD __stdcall VCI_InitCAN(DWORD DevType, DWORD DevIndex, DWORD CANIndex,
PVCI_INIT_CONFIG pInitConfig);

Parâmetros:
TipoDev
Tipo de dispositivo. Consulte: Definição do tipo de dispositivo do adaptador.
DevIndex
Índice de dispositivos, por exemploample, quando há apenas um adaptador USB-CAN, o número do índice é 0, quando há vários adaptadores USB-CAN, os números do índice estão em ordem crescente, começando em 0.
Índice CAN
Índice do canal CAN, como quando há apenas um canal CAN, o número do índice é 0, se houver dois, o número do índice pode ser 0 ou 1.
pInitConfig
Estrutura de parâmetros de inicialização. Lista de parâmetros de membros:

Membro Descrição funcional
pInitConfig->AccCode AccCode e AccMask podem trabalhar juntos para determinar quais pacotes podem ser aceitos. Esses dois registradores são usados ​​para definir o ID alinhado à esquerda, ou seja, o bit mais alto (Bit31) do AccCode e AccMask é alinhado com o bit mais alto do valor do ID.
pInitConfig->AccMask Sobre o alinhamento de ID, consulte os anexos: Anexo I:
Detalhes de alinhamento de ID.
Por exemplo: Se você definir o valor do AccCode como 0x24600000 (ou seja, 0x123 é deslocado para a esquerda em 21 bits), o valor AccMask
é definido como 0x00000000 e, então, somente os pacotes com ID de quadro de mensagem CAN é 0x123 podem ser aceitos (o valor AccMask de 0x00000000 indica que todos os bits são relevantes
bits). Se o valor AccCode for definido como 0x24600000, o valor AccMask é definido como 0x600000 (0x03 é deslocado para a esquerda em 21 bits) e, então, apenas os pacotes com o ID do quadro de mensagem CAN é 0x120 ~ 0x123 podem ser aceitos (valor AccMask
0x600000 indica que, além de bit0 ~ bit1, outros bits (bit2 ~ bit10) são bits relevantes).
Observação: Esta configuração de filtro examparquivos para o quadro padrão, por exemploample, high 11-bit é o bit válido; no caso do quadro estendido e, em seguida, o ID válido é de 29 bits. AccCode e AccMask definem 29 bits como o bit válido!
pInitConfig->Reservado reservado
pInitConfig->Filter Configurações do modo de filtragem, consulte a seção da tabela do modo de filtro.
pInitConfig->Timing0 Configuração da taxa de transmissão T0
pInitConfig->Timing1 Configuração da taxa de transmissão T1
pInitConfig->Modo Modo operacional:
0-operação normal
Modo 1-somente ouvir
2-admissão espontânea e modo de teste de envio (este valor é excluído da biblioteca de funções ZLG)

Tabela do modo de filtro:

Valor Nome Descrição
1 Receba todos os tipos Adequado para quadro padrão e estendido!
2 Receber apenas quadro padrão Adequado para quadro padrão e estendido
quadro será removido por filtração diretamente!
3 Receber apenas quadro estendido Adequado para quadro estendido, e o quadro padrão será removido por
filtração diretamente! 。

Retornos:
Valor de retorno = 1, o que significa que a operação foi bem-sucedida; = 0 indica que a operação falhou; = -1 indica que o dispositivo não existe.
Por exemplo

WAVESHARE USB CAN Interface do adaptador de barramento Biblioteca de funções de interface - Fig 4

WAVESHARE USB CAN Interface do adaptador de barramento Biblioteca de funções de interface - Fig 6

2.2.4. VCI_ReadBoardInfo
Esta função é usada para ler as informações de hardware do adaptador. De um modo geral, pode ser ignorado.
DWORD __stdcall VCI_ReadBoardInfo(DWORD DevType,DWORD
DevIndex,PVCI_BOARD_INFO pInfo);
Parâmetros:
TipoDev
Tipo de dispositivo. Consulte: Definição do tipo de dispositivo do adaptador.
DevIndex
Índice de dispositivos, por exemploample, quando há apenas um adaptador USB-CAN, o número do índice é 0, quando há vários adaptadores USB-CAN, os números do índice estão em ordem crescente começando em 0. pInfo
VCI_BOARD_INFO é usado para armazenar o ponteiro da estrutura de informações do dispositivo.
Retornos:
Valor de retorno = 1, o que significa que a operação foi bem-sucedida; = 0 indica que a operação falhou; = -1 indica que o dispositivo não existe.

WAVESHARE USB CAN Interface do adaptador de barramento Biblioteca de funções de interface - Fig 7

2.2.5. VCI_GetReceiveNum
Essa função é usada para especificar os quadros recebidos, mas não lidos, no buffer de recebimento designado.
DWORD __stdcall VCI_GetReceiveNum(DWORD DevType,DWORD DevIndex,DWORD CANIndex);
Parâmetros:
TipoDev
Tipo de dispositivo. Consulte: Definição do tipo de dispositivo do adaptador.
DevIndex
Índice de dispositivos, por exemploample, quando há apenas um adaptador USB-CAN, o número de índice é 0, quando há vários adaptadores USB-CAN, os números de índice em ordem crescente começando em 0.
Índice CAN
Índice de canais CAN.
Retornos:
Retorna quadros que ainda não foram lidos.
Por exemplo
#incluir “ControlCan.h” int ret=VCI_GetReceiveNum(2,0,0);
2.2.6. VCI_ClearBuffer
Esta função é usada para limpar o buffer de recebimento e envio do canal designado especificado por
Adaptador USB-CAN.
DWORD __stdcall VCI_ClearBuffer(DWORD DevType,DWORD DevIndex,DWORD CANIndex);
Parâmetros:
TipoDev
Tipo de dispositivo. Consulte: Definição do tipo de dispositivo do adaptador.
DevIndex
Índice de dispositivos, por exemploample, quando há apenas um adaptador USB-CAN, o número de índice é 0, quando há vários adaptadores USB-CAN, os números de índice em ordem crescente começando em 0.
Índice CAN
Índice de canais CAN.
Retornos:
Valor de retorno = 1, o que significa que a operação foi bem-sucedida; = 0 indica que a operação falhou; = -1 indica que o dispositivo não existe.

WAVESHARE USB CAN Interface do adaptador de barramento Biblioteca de funções de interface - Fig 8

2.2.7. VCI_StartCAN
Esta função é usada para iniciar o controlador CAN e a função de recepção de interrupção interna do adaptador.
DWORD __stdcall VCI_StartCAN(DWORD DevType,DWORD DevIndex,DWORD CANIndex);
Parâmetros:
TipoDev
Tipo de dispositivo. Consulte: Definição do tipo de dispositivo do adaptador.
DevIndex
Índice de dispositivos, por exemploample, quando há apenas um adaptador USB-CAN, o número do índice é 0, quando há vários adaptadores USB-CAN, os números do índice estão em ordem crescente, começando em 0.
Índice CAN
Índice de canais CAN.
Retornos:
Valor de retorno = 1, o que significa que a operação foi bem-sucedida; = 0 indica que a operação falhou; = -1 indica que o dispositivo não existe.

WAVESHARE USB CAN Interface do adaptador de barramento Biblioteca de funções de interface - Fig 9

2.2.8. VCI_ResetCAN
Esta função é usada para reiniciar o controlador CAN.
DWORD __stdcall VCI_ResetCAN(DWORD DevType,DWORD DevIndex,DWORD CANIndex);
Parâmetros:
TipoDev
Tipo de dispositivo. Consulte: Definição do tipo de dispositivo do adaptador.
DevIndex
Índice de dispositivos, por exemploample, quando há apenas um adaptador USB-CAN, o número do índice é 0, quando há vários adaptadores USB-CAN, os números do índice estão em ordem crescente, começando em 0.
Índice CAN
Índice de canais CAN.
Retornos:
Valor de retorno = 1, o que significa que a operação foi bem-sucedida; = 0 indica que a operação falhou; = -1 indica que o dispositivo não existe.

WAVESHARE USB CAN Interface do adaptador de barramento Biblioteca de funções de interface - Fig 10

2.2.9. VCI_Transmitir
Esta função é usada para enviar quadro de mensagem CAN.
DWORD __stdcall VCI_Transmit(DWORD DeviceType,DWORD DeviceInd,DWORD CANInd,PVCI_CAN_OBJ pSend,DWORD Length);
Parâmetros:
TipoDev
Tipo de dispositivo. Consulte: Definição do tipo de dispositivo do adaptador.
DevIndex
Índice de dispositivos, por exemploample, quando há apenas um adaptador USB-CAN, o número do índice é 0, quando há vários adaptadores USB-CAN, os números do índice estão em ordem crescente, começando em 0.
Índice CAN
Índice de canais CAN. pEnviar
O primeiro endereço das matrizes de quadro de dados que devem ser enviadas.
Comprimento
O número de quadros de dados que devem ser enviados, o número máximo é 1000, o valor recomendado é 48 em alta velocidade.
Retornos:
Retorna o número real de quadros já enviados, o valor de retorno = -1 indica um erro do dispositivo.
Por exemplo
WAVESHARE USB CAN Interface do adaptador de barramento Biblioteca de funções de interface - Fig 11

WAVESHARE USB CAN Interface do adaptador de barramento Biblioteca de funções de interface - Fig 12

2.2.10. VCI_Receber
Esta função é utilizada para solicitar a recepção.
DWORD __stdcall VCI_Receive (DWORD DevType, DWORD DevIndex, DWORD CANIndex, PVCI_CAN_OBJ pReceive, ULONG Len, INT WaitTime);
Parâmetros:
TipoDev
Tipo de dispositivo. Consulte: Definição do tipo de dispositivo do adaptador.
DevIndex
Índice de dispositivos, por exemploample, quando há apenas um adaptador USB-CAN, o número do índice é 0, quando há vários adaptadores USB-CAN, os números do índice estão em ordem crescente, começando em 0.
Índice CAN
Índice de canais CAN.
pReceber
Para receber o primeiro ponteiro definido dos quadros de dados.
Len
O comprimento da matriz do quadro de dados deve ser superior a 2500 para retornar a mensagem normal.
Caso contrário, o comprimento de retorno será zero, independentemente de a mensagem ser recebida ou não. o adaptador define um buffer de 2000 quadros para cada canal. Com base em seu próprio sistema e ambiente de trabalho, o usuário pode escolher um comprimento de matriz apropriado de 2500.
WaitTime Reservado.
Retornos:
Retorna o número de quadros que realmente foram lidos, -1 indica erros do dispositivo.
Por exemplo
WAVESHARE USB CAN Interface do adaptador de barramento Biblioteca de funções de interface - Fig 13

PARTE TRÊS OUTRAS FUNÇÕES E DESCRIÇÃO DA ESTRUTURA DE DADOS

Este capítulo descreve outros tipos de dados e funções da biblioteca de interface ZLG incompatível contida na biblioteca de interface do adaptador USB-CAN ControlCAN.dll. Por favor faça
não chame essas funções se usar um modelo ZLG compatível para desenvolvimento secundário para não afetar a compatibilidade.
3.1 DESCRIÇÃO DA FUNÇÃO
3.1.1. VCI_UsbDeviceReset
Redefina o adaptador USB-CAN, é necessário reabrir o dispositivo após a redefinição usando VCI_OpenDevice.
DWORD __stdcall VCI_UsbDeviceReset(DWORD DevType,DWORD DevIndex,DWORD Reservado
Parâmetros:
TipoDev
Tipo de dispositivo. Consulte: Definição do tipo de dispositivo do adaptador.
DevIndex
Índice de dispositivos, por exemploample, quando há apenas um adaptador USB-CAN, o número do índice é 0, quando há vários adaptadores USB-CAN, os números do índice estão em ordem crescente, começando em 0.
Reservado Reservado.
Retornos:
Valor de retorno = 1, o que significa que a operação foi bem-sucedida; = 0 indica que a operação falhou; = -1 indica que o dispositivo não existe.

WAVESHARE USB CAN Interface do adaptador de barramento Biblioteca de funções de interface - Fig 14

bRel = VCI_UsbDeviceReset(nDeviceType, Independência, 0);
3.1.2. VCI_FindUsbDevice2
Quando o mesmo PC usa vários USB-CAN, o usuário pode usar esta função para encontrar o dispositivo atual.
DWORD __stdcall VCI_FindUsbDevice2(PVCI_BOARD_INFO pInfo);
Parâmetros:
pInfo
pInfo é usado para armazenar os parâmetros do primeiro ponteiro de endereço do buffer de dados.
Devoluções
Devolva o número do adaptador USB-CAN conectado ao computador.

WAVESHARE USB CAN Interface do adaptador de barramento Biblioteca de funções de interface - Fig 15

Parte Quatro Funções da Biblioteca de Interface Usando Processo
Para multiplicar a função do dispositivo, fornecemos funções adicionais (funções apresentadas com um fundo verde), essas funções incluem: VCI_FindUsbDevice2 VCI_UsbDeviceReset. Durante o segundo desenvolvimento, essas funções não devem necessariamente ser invocadas. Mesmo essas funções são ignoradas, todas as funções do adaptador USB-CAN podem ser alcançadas.

WAVESHARE USB CAN Interface do adaptador de barramento Biblioteca de funções de interface - Fig 16

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

Documentos / Recursos

WAVESHARE USB-CAN Bus Interface Adapter Interface Biblioteca de funções [pdf] Manual de Instruções
Biblioteca de funções de interface de adaptador de interface de barramento USB-CAN, USB-CAN, biblioteca de funções de interface de adaptador de interface de barramento, biblioteca de funções de interface, biblioteca de funções

Referências

Deixe um comentário

Seu endereço de e-mail não será publicado. Os campos obrigatórios estão marcados *