WAVESHARE 로고USB-CAN 버스 인터페이스
어댑터 인터페이스 기능
도서관 이용안내WAVESHARE USB CAN 버스 인터페이스 어댑터 인터페이스 기능 라이브러리

XNUMX부 끝VIEW

사용자가 USB-CAN 버스 인터페이스 어댑터를 사용하여 CAN 버스 통신 테스트를 수행하면 제공된 USB-CAN 도구 소프트웨어를 직접 사용하여 테스트 데이터를 송수신할 수 있습니다.
사용자가 자신의 제품을 위한 소프트웨어 프로그램을 작성하려는 경우. 다음 지침을 주의 깊게 읽고 s에서 참조하십시오.amp우리가 제공하는 코드:
⑴ C++빌더 ⑵C# ⑶VC ⑷VB ⑸VB.NET ⑹델파이 ⑺랩VIEW ⑻ LabWindows/CVI ⑼Matlab ⑽QT ⑾Python/Python-can.
라이브러리 개발 file :ControlCAN.lib, ControlCAN.DLL
VC 버전 함수 선언 file :ControlCAN.h
VB 버전 함수 선언 file: ControlCAN.bas
랩VIEW 버전 라이브러리 기능 패키지 모듈: ControlCAN.llb
델파이 버전 함수 선언 file: ControlCAN.pas

파트 XNUMX 호환 기능 라이브러리 및 데이터 구조

2.1. 유형 정의
2.1.1. 장치 유형

유형 정의 타입 값 설명
DEV_USBCAN2 4 USBCAN-2A/USBCAN-2C/CANalyst-II MiniPCIe-CAN

2.1.2. VCI_BOARD_INFO
VCI_BOARD_INFO 구조체는 USB-CAN 시리즈 인터페이스 카드 장치 정보를 담고 있습니다.
구조는 VCI_ReadBoardInfo 함수에 채워집니다.

WAVESHARE USB CAN 버스 인터페이스 어댑터 인터페이스 기능 라이브러리 - 그림 1

회원:
hw_버전
하드웨어 버전 번호, 0진수 표기법. 예를 들어 0100x1.00은 VXNUMX을 나타냅니다.
fw_버전
하드웨어 버전 번호, 0진수 표기법. 예를 들어 0100x1.00은 VXNUMX을 나타냅니다.
2페이지
dr_버전

드라이버 버전 번호, 0진수 표기법. 예를 들어 0100x1.00은 VXNUMX을 나타냅니다.
in_Version
인터페이스 라이브러리 버전 번호, 0진수 표기법. 예를 들어 0100x1.00은 VXNUMX을 나타냅니다.
irq_Num
시스템이 예약되었습니다.
can_Num
CAN 채널의 총 개수를 나타냅니다.
str_Serial_Num
이 보드 카드의 일련 번호입니다.
str_hw_유형
"USBCAN V1.00"과 같은 하드웨어 유형(참고: 문자열 종결자 '\0' 포함).
예약된
시스템이 예약되었습니다.
2.1.3. VCI_CAN_OBJ
VCI_Transmit 및 VCI_Receive 기능에서 VCI_CAN_OBJ 구조는 CAN 메시지 프레임을 전송하는 데 사용됩니다.

WAVESHARE USB CAN 버스 인터페이스 어댑터 인터페이스 함수 라이브러리 - 그림

회원:
ID
메시지 식별자. 직접 ID 형식, 오른쪽 정렬, 참조: 부록 XNUMX: ID 정렬 세부 정보.
타임스트amp
st 받기amp 시간 프레임의 정보, CAN 컨트롤러가 초기화될 때 시작 타이밍, 단위는 0ms입니다.
시간 플래그
시간 st를 사용할지 여부에 대해amp, 1은 유효 TimeStamp. TimeFlag 및 TimeStamp 프레임이 수신될 때만 의미가 있습니다.
전송 유형
보내는 유형. = 0은 일반 유형을 나타내고 = 1은 단일 전송을 나타냅니다.
원격 플래그
원격 플래그인지 여부입니다. = 1은 원격 플래그를 나타내고, = 0은 데이터 플래그를 나타냅니다.
외부 플래그
외부 플래그인지 여부입니다. = 1은 외부 플래그를 나타내고 = 0은 표준 플래그를 나타냅니다.
데이터렌
데이터 길이(<=8) ,즉, 데이터의 길이.
데이터
패킷 데이터.
예약된
시스템이 예약되었습니다.
2.1.4. VCI_INIT_CONFIG
VCI_INIT_CONFIG 구조는 CAN의 초기화 구성을 정의합니다. 구조는 VCI_InitCan 함수에 채워집니다.

WAVESHARE USB CAN 버스 인터페이스 어댑터 인터페이스 기능 라이브러리 - 그림 2

회원:
AccCode
필터링된 승인 코드를 받습니다.
AccMask
필터 마스크를 받습니다.
예약된
예약된.
필터
필터링 방법, 설정 범위 0-3 허용, 자세한 내용은 필터 모드 표의 섹션 2.2.3을 참조하십시오.
타이밍0
SJA1000 전송 속도 매개변수, Timing0(BTR0) .
타이밍1
SJA1000 전송 속도 매개변수, Timing1(BTR1) .
방법
작동 모드, 0 = 정상 작동, 1 = 듣기 전용 모드, 2 = 자발적 승인 및 전송 테스트 모드.
비고:
필터 설정에 대해서는 부록 II: CAN 매개변수 설정 지침을 참조하십시오.
CAN Timing0 및 Timing1은 전송 속도를 설정하는 데 사용되며, 이 두 매개변수는 초기화 시에만 사용됩니다.tage.
기존 Baud 참조 테이블:

CAN 전송 속도 타이밍0(BTR0) 타이밍1(BTR1)
10kbps 0x31 0x1C
20kbps 0x18 0x1C
40kbps 0x87 0xFF
50kbps 0x09 0x1C
80kbps 0x83 0xFF
100kbps 0x04 0x1C
125kbps 0x03 0x1C
200kbps 0x81 0xFA
250kbps 0x01 0x1C
400kbps 0x80 0xFA
500kbps 0x00 0x1C
666kbps 0x80 0xB6
800kbps 0x00 0x16
1000kbps 0x00 0x14
33.33Kbps 0x09 0x6F
66.66Kbps 0x04 0x6F
83.33Kbps 0x03 0x6F
  1. 사용자는 전송 속도 매개변수를 설정하기 위해 SJA1000(16MHz)만 따라야 합니다.
  2. 어댑터는 일시적으로 10K 미만의 Baud rate를 지원하지 않습니다.

2.2. 기능 설명
2.2.1. VCI_OpenDevice
이 기능은 장치를 연결하는 데 사용됩니다.
DWORD __stdcall VCI_OpenDevice(DWORD DevType,DWORD DevIndex,DWORD 예약됨);
매개변수:
개발 유형
기기 종류. 참조: 어댑터 장치 유형 정의.
DevIndex
예를 들어 장치 색인ampUSB-CAN 어댑터가 하나만 있는 경우 색인 번호는 0이고, USB-CAN 어댑터가 여러 개인 경우 색인 번호는 0부터 오름차순으로 표시됩니다.
예약된
보존 매개변수는 0을 입력합니다.
보고:
반환 값 = 1, 이는 작업이 성공했음을 의미합니다. = 0은 작업이 실패했음을 나타냅니다. = -1은 장치가 존재하지 않음을 나타냅니다.

WAVESHARE USB CAN 버스 인터페이스 어댑터 인터페이스 함수 라이브러리 - Fig3

2.2.2. VCI_CloseDevice
이 기능은 연결을 종료하는 데 사용됩니다.
DWORD __stdcall VCI_CloseDevice(DWORD DevType,DWORD DevIndex);
매개변수:
개발 유형
기기 종류. 참조: 어댑터 장치 유형 정의.
DevIndex
예를 들어 장치 색인ampUSB-CAN 어댑터가 하나만 있는 경우 색인 번호는 0이고, USB-CAN 어댑터가 여러 개인 경우 색인 번호는 0부터 오름차순으로 표시됩니다.
보고:
반환 값 = 1, 이는 작업이 성공했음을 의미합니다. = 0은 작업이 실패했음을 나타냅니다. = -1은 장치가 존재하지 않음을 나타냅니다.

WAVESHARE USB CAN 버스 인터페이스 어댑터 인터페이스 기능 라이브러리 - 그림 4

2.2.3. VCI_InitCan
이 기능은 지정된 CAN을 초기화하는 데 사용됩니다.
DWORD __stdcall VCI_InitCAN(DWORD DevType, DWORD DevIndex, DWORD CANIndex,
PVCI_INIT_CONFIG pInitConfig);

매개변수:
개발 유형
기기 종류. 참조: 어댑터 장치 유형 정의.
DevIndex
예를 들어 장치 색인ampUSB-CAN 어댑터가 하나만 있는 경우 색인 번호는 0이고, USB-CAN 어댑터가 여러 개인 경우 색인 번호는 0부터 오름차순으로 표시됩니다.
CAN 인덱스
CAN 채널 인덱스(예: CAN 채널이 하나만 있는 경우 인덱스 번호는 0이고 두 개 있는 경우 인덱스 번호는 0 또는 1일 수 있습니다.
pInitConfig
초기화 매개변수 구조. 구성원의 매개변수 목록:

회원 기능 설명
pInitConfig->AccCode AccCode 및 AccMask는 함께 작동하여 수락할 수 있는 패킷을 결정할 수 있습니다. 이 두 레지스터는 ID를 왼쪽 정렬로 설정하는 데 사용됩니다. 즉, AccCode 및 AccMask의 최상위 비트(Bit31)가 ID 값의 최상위 비트에 정렬됩니다.
pInitConfig->AccMask ID 정렬 참조 부록 정보: 부록 I:
ID 정렬 세부 정보입니다.
예: AccCode의 값을 0x24600000으로 설정하면(즉, 0x123은 왼쪽으로 21비트 이동) AccMask 값은
0x00000000으로 설정되고 CAN 메시지 프레임 ID가 0x123인 패킷만 허용될 수 있습니다(0x00000000의 AccMask 값은 모든 비트가 관련됨을 나타냄)
비트). AccCode 값을 0x24600000으로 설정하면 AccMask 값을 0x600000으로 설정(0x03을 왼쪽으로 21비트 이동)한 다음 CAN 메시지 프레임 ID가 0x120 ~ 0x123인 패킷만 허용(AccMask 값)
0x600000은 bit0 ~ bit1 외에 다른 비트(bit2 ~ bit10)가 해당 비트임을 나타냅니다.
메모: 이 필터 설정 예amp예를 들어 표준 프레임에 대한 파일amp즉, 상위 11비트가 유효한 비트입니다. 확장 프레임의 경우 유효한 ID는 29비트입니다. AccCode 및 AccMask는 상위 29비트를 유효 비트로 설정합니다!
pInitConfig->예약됨 예약된
pInitConfig->필터 필터링 모드 설정은 필터 모드 표의 섹션을 참조하십시오.
pInitConfig->Timing0 전송 속도T0 설정
pInitConfig->Timing1 전송 속도T1 설정
pInitConfig->모드 작동 모드 :
0-정상 작동
1-듣기 전용 모드
2자발적 승인 및 전송 테스트 모드(이 값은 ZLG 기능 라이브러리에서 제외됨)

필터 모드 테이블:

이름 설명
1 모든 유형 수신 표준 프레임과 확장 프레임 모두에 적합합니다!
2 표준 프레임만 수신 표준 프레임에 적합하며 확장
프레임은 여과에 의해 직접 제거됩니다!
3 확장 프레임만 수신 확장 프레임에 적합하며 표준 프레임은
직접 여과! 。

보고:
반환 값 = 1, 이는 작업이 성공했음을 의미합니다. = 0은 작업이 실패했음을 나타냅니다. = -1은 장치가 존재하지 않음을 나타냅니다.
예를 들어

WAVESHARE USB CAN 버스 인터페이스 어댑터 인터페이스 기능 라이브러리 - 그림 4

WAVESHARE USB CAN 버스 인터페이스 어댑터 인터페이스 기능 라이브러리 - 그림 6

2.2.4. VCI_ReadBoardInfo
이 기능은 어댑터 하드웨어 정보를 읽는 데 사용됩니다. 일반적으로 말하면 무시할 수 있습니다.
DWORD __stdcall VCI_ReadBoardInfo(DWORD DevType,DWORD
DevIndex,PVCI_BOARD_INFO pInfo);
매개변수:
개발 유형
기기 종류. 참조: 어댑터 장치 유형 정의.
DevIndex
예를 들어 장치 색인amp파일에서 USB-CAN 어댑터가 하나만 있는 경우 인덱스 번호는 0이고, USB-CAN 어댑터가 여러 개인 경우 인덱스 번호는 0부터 오름차순입니다. pInfo
VCI_BOARD_INFO는 장치 정보 구조 포인터를 저장하는 데 사용됩니다.
보고:
반환 값 = 1, 이는 작업이 성공했음을 의미합니다. = 0은 작업이 실패했음을 나타냅니다. = -1은 장치가 존재하지 않음을 나타냅니다.

WAVESHARE USB CAN 버스 인터페이스 어댑터 인터페이스 기능 라이브러리 - 그림 7

2.2.5. VCI_GetReceiveNum
이 기능은 지정된 수신 버퍼에서 수신되었지만 읽지 않은 프레임을 지정하는 데 사용됩니다.
DWORD __stdcall VCI_GetReceiveNum(DWORD DevType,DWORD DevIndex,DWORD CANIndex);
매개변수:
개발 유형
기기 종류. 참조: 어댑터 장치 유형 정의.
DevIndex
예를 들어 장치 색인ampUSB-CAN 어댑터가 하나만 있는 경우 색인 번호는 0이고, USB-CAN 어댑터가 여러 개인 경우 색인 번호는 0부터 오름차순으로 표시됩니다.
CAN 인덱스
CAN 채널 인덱스.
보고:
아직 읽지 않은 프레임을 반환합니다.
예를 들어
#include “ControlCan.h” int ret=VCI_GetReceiveNum(2,0,0);
2.2.6. VCI_ClearBuffer
이 기능은 지정된 채널의 수신 및 송신 버퍼를 지우는 데 사용됩니다.
USB-CAN 어댑터.
DWORD __stdcall VCI_ClearBuffer(DWORD DevType,DWORD DevIndex,DWORD CANIndex);
매개변수:
개발 유형
기기 종류. 참조: 어댑터 장치 유형 정의.
DevIndex
예를 들어 장치 색인ampUSB-CAN 어댑터가 하나만 있는 경우 색인 번호는 0이고, USB-CAN 어댑터가 여러 개인 경우 색인 번호는 0부터 오름차순으로 표시됩니다.
CAN 인덱스
CAN 채널 인덱스.
보고:
반환 값 = 1, 이는 작업이 성공했음을 의미합니다. = 0은 작업이 실패했음을 나타냅니다. = -1은 장치가 존재하지 않음을 나타냅니다.

WAVESHARE USB CAN 버스 인터페이스 어댑터 인터페이스 기능 라이브러리 - 그림 8

2.2.7. VCI_StartCAN
이 기능은 CAN 컨트롤러와 어댑터의 내부 인터럽트 수신 기능을 시작하는 데 사용됩니다.
DWORD __stdcall VCI_StartCAN(DWORD DevType, DWORD DevIndex, DWORD CANIndex);
매개변수:
개발 유형
기기 종류. 참조: 어댑터 장치 유형 정의.
DevIndex
예를 들어 장치 색인ampUSB-CAN 어댑터가 하나만 있는 경우 색인 번호는 0이고, USB-CAN 어댑터가 여러 개인 경우 색인 번호는 0부터 오름차순으로 표시됩니다.
CAN 인덱스
CAN 채널 인덱스.
보고:
반환 값 = 1, 이는 작업이 성공했음을 의미합니다. = 0은 작업이 실패했음을 나타냅니다. = -1은 장치가 존재하지 않음을 나타냅니다.

WAVESHARE USB CAN 버스 인터페이스 어댑터 인터페이스 기능 라이브러리 - 그림 9

2.2.8. VCI_ResetCAN
이 기능은 CAN 컨트롤러를 재설정하는 데 사용됩니다.
DWORD __stdcall VCI_ResetCAN(DWORD DevType, DWORD DevIndex, DWORD CANIndex);
매개변수:
개발 유형
기기 종류. 참조: 어댑터 장치 유형 정의.
DevIndex
예를 들어 장치 색인ampUSB-CAN 어댑터가 하나만 있는 경우 색인 번호는 0이고, USB-CAN 어댑터가 여러 개인 경우 색인 번호는 0부터 오름차순으로 표시됩니다.
CAN 인덱스
CAN 채널 인덱스.
보고:
반환 값 = 1, 이는 작업이 성공했음을 의미합니다. = 0은 작업이 실패했음을 나타냅니다. = -1은 장치가 존재하지 않음을 나타냅니다.

WAVESHARE USB CAN 버스 인터페이스 어댑터 인터페이스 기능 라이브러리 - 그림 10

2.2.9. VCI_전송
이 기능은 CAN 메시지 프레임을 보내는 데 사용됩니다.
DWORD __stdcall VCI_Transmit(DWORD DeviceType,DWORD DeviceInd,DWORD CANInd,PVCI_CAN_OBJ pSend,DWORD 길이);
매개변수:
개발 유형
기기 종류. 참조: 어댑터 장치 유형 정의.
DevIndex
예를 들어 장치 색인ampUSB-CAN 어댑터가 하나만 있는 경우 색인 번호는 0이고, USB-CAN 어댑터가 여러 개인 경우 색인 번호는 0부터 오름차순으로 표시됩니다.
CAN 인덱스
CAN 채널 인덱스. pSend
전송해야 하는 데이터 프레임 배열의 첫 번째 주소입니다.
길이
전송해야 하는 데이터 프레임 수는 최대 1000개이며 권장 값은 고속에서 48개입니다.
보고:
이미 전송된 실제 프레임 수를 반환합니다. 반환 값 = -1은 장치 오류를 나타냅니다.
예를 들어
WAVESHARE USB CAN 버스 인터페이스 어댑터 인터페이스 기능 라이브러리 - 그림 11

WAVESHARE USB CAN 버스 인터페이스 어댑터 인터페이스 기능 라이브러리 - 그림 12

2.2.10. VCI_수신
이 기능은 수신을 요청하는 데 사용됩니다.
DWORD __stdcall VCI_Receive(DWORD DevType, DWORD DevIndex, DWORD CANIndex, PVCI_CAN_OBJ pReceive, ULONG Len, INT WaitTime);
매개변수:
개발 유형
기기 종류. 참조: 어댑터 장치 유형 정의.
DevIndex
예를 들어 장치 색인ampUSB-CAN 어댑터가 하나만 있는 경우 색인 번호는 0이고, USB-CAN 어댑터가 여러 개인 경우 색인 번호는 0부터 오름차순으로 표시됩니다.
CAN 인덱스
CAN 채널 인덱스.
수신
데이터 프레임의 첫 번째 설정 포인터를 수신합니다.

정상적인 메시지를 반환하려면 데이터 프레임의 배열 길이가 2500 이상이어야 합니다.
그렇지 않으면 메시지 수신 여부에 관계없이 반환 길이는 2000이 됩니다. 어댑터는 모든 채널에 대해 2500 프레임 버퍼를 설정합니다. 사용자는 자신의 시스템과 작업 환경에 따라 XNUMX에서 적절한 어레이 길이를 선택할 수 있습니다.
WaitTime 예약됨.
보고:
실제로 읽은 프레임 수를 반환합니다. -1은 장치 오류를 나타냅니다.
예를 들어
WAVESHARE USB CAN 버스 인터페이스 어댑터 인터페이스 기능 라이브러리 - 그림 13

파트 XNUMX 기타 기능 및 데이터 구조 설명

이 장에서는 USB-CAN 어댑터 인터페이스 라이브러리 ControlCAN.dll에 포함된 호환되지 않는 ZLG 인터페이스 라이브러리의 기타 데이터 유형 및 기능에 대해 설명합니다. 제발
호환성에 영향을 미치지 않도록 보조 개발에 호환되는 ZLG 모델을 사용하는 경우 이러한 기능을 호출하지 마십시오.
3.1 기능 설명
3.1.1. VCI_UsbDeviceReset
USB-CAN 어댑터를 재설정하고 VCI_OpenDevice를 사용하여 재설정한 후 장치를 다시 열어야 합니다.
DWORD __stdcall VCI_UsbDeviceReset(DWORD DevType,DWORD DevIndex,DWORD 예약됨
매개변수:
개발 유형
기기 종류. 참조: 어댑터 장치 유형 정의.
DevIndex
예를 들어 장치 색인ampUSB-CAN 어댑터가 하나만 있는 경우 색인 번호는 0이고, USB-CAN 어댑터가 여러 개인 경우 색인 번호는 0부터 오름차순으로 표시됩니다.
예약됨 예약됨.
보고:
반환 값 = 1, 이는 작업이 성공했음을 의미합니다. = 0은 작업이 실패했음을 나타냅니다. = -1은 장치가 존재하지 않음을 나타냅니다.

WAVESHARE USB CAN 버스 인터페이스 어댑터 인터페이스 기능 라이브러리 - 그림 14

bRel = VCI_UsbDeviceReset(nDeviceType, 독립성, 0);
3.1.2. VCI_FindUsbDevice2
동일한 PC에서 여러 USB-CAN을 사용하는 경우 사용자는 이 기능을 사용하여 현재 장치를 찾을 수 있습니다.
DWORD __stdcall VCI_FindUsbDevice2(PVCI_BOARD_INFO pInfo);
매개변수:
pInfo
pInfo는 첫 번째 데이터 버퍼 주소 포인터의 매개 변수를 저장하는 데 사용됩니다.
보고
컴퓨터에 연결된 USB-CAN 어댑터의 번호를 반환합니다.

WAVESHARE USB CAN 버스 인터페이스 어댑터 인터페이스 기능 라이브러리 - 그림 15

XNUMX부 프로세스를 사용하는 인터페이스 라이브러리 함수
장치 기능을 늘리기 위해 추가 기능(녹색 배경으로 표시되는 기능)을 제공했으며 이러한 기능에는 VCI_FindUsbDevice2 VCI_UsbDeviceReset이 포함됩니다. 두 번째 개발 중에 이러한 기능을 반드시 호출할 필요는 없습니다. 이러한 기능이 무시되더라도 모든 USB-CAN 어댑터 기능을 구현할 수 있습니다.

WAVESHARE USB CAN 버스 인터페이스 어댑터 인터페이스 기능 라이브러리 - 그림 16

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

문서 / 리소스

WAVESHARE USB-CAN 버스 인터페이스 어댑터 인터페이스 기능 라이브러리 [PDF 파일] 사용설명서
USB-CAN 버스 인터페이스 어댑터 인터페이스 기능 라이브러리, USB-CAN, 버스 인터페이스 어댑터 인터페이스 기능 라이브러리, 인터페이스 기능 라이브러리, 기능 라이브러리

참고문헌

댓글을 남겨주세요

이메일 주소는 공개되지 않습니다. 필수 항목은 표시되어 있습니다. *