USB-CAN avtobus interfeysi
Adapter interfeysi funktsiyasi
Kutubxona foydalanuvchisi yo'riqnomasi
BIRINCHI QISMVIEW
Agar foydalanuvchi faqat USB-CAN avtobus interfeysi adapteridan CAN avtobus aloqasi testidan foydalansa va u test ma'lumotlarini yuborish va qabul qilish uchun to'g'ridan-to'g'ri taqdim etilgan USB-CAN Tool dasturidan foydalanishi mumkin.
Agar foydalanuvchi o'z mahsuloti uchun dasturiy ta'minot dasturini yozmoqchi bo'lsa. Iltimos, quyidagi ko'rsatmalarni diqqat bilan o'qing va s dan ma'lumot olingampbiz taqdim etgan kod:
⑴ C++ Builder ⑵C# ⑶VC ⑷VB ⑸VB.NET ⑹Delphi ⑺LabVIEW ⑻ LabWindows/CVI ⑼Matlab ⑽QT ⑾Python/Python-can.
Kutubxonani rivojlantirish file :ControlCAN.lib, ControlCAN.DLL
VC versiyasi funksiya deklaratsiyasi file : ControlCAN.h
VB versiyasi funksiya deklaratsiyasi file: ControlCAN.bas
LaboratoriyaVIEW versiya kutubxonasi funktsiyasi paketi moduli: ControlCAN.llb
Delphi versiyasi funksiya deklaratsiyasi file: ControlCAN.pas
IKKINCHI QISM MUVOS FUNKSIYALAR KUTUBXONASI VA MA'LUMOTLAR TUZILISHI
2.1. TUR TA'RIFI
2.1.1. Qurilma turi
Turi ta'rifi | Qiymatni yozing | Tavsif |
DEV_USBCAN2 | 4 | USBCAN-2A/USBCAN-2C/CANalyst-II MiniPCIe-CAN |
2.1.2. VCI_BOARD_INFO
VCI_BOARD_INFO tuzilmasi USB-CAN Series interfeys kartasi qurilmasi ma'lumotlarini o'z ichiga oladi.
Tuzilish VCI_ReadBoardInfo funksiyasida to'ldiriladi.
A'zo:
hw_Version
Uskuna versiya raqami, o'n oltilik belgi. Masalan, 0x0100 V1.00 ni bildiradi.
fw_Version
Uskuna versiya raqami, o'n oltilik belgi. Masalan, 0x0100 V1.00 ni bildiradi.
2-bet
dr_Version
Haydovchi versiya raqami, o'n oltilik belgi. Masalan, 0x0100 V1.00 ni bildiradi.
in_Version
Interfeys kutubxonasi versiya raqami, o'n oltilik belgisi. Masalan, 0x0100 V1.00 ni bildiradi.
irq_Num
Tizim zahiraga olingan.
can_Num
CAN kanalining umumiy sonini ifodalaydi.
str_Serial_Num
Bu kartaning seriya raqami.
str_hw_Type
“USBCAN V1.00” kabi apparat turi (Eslatma: “\0” qator terminatorini o‘z ichiga oladi).
Zaxiralangan
Tizim zahiraga olingan.
2.1.3. VCI_CAN_OBJ
VCI_Transmit va VCI_Receive funktsiyalarida VCI_CAN_OBJ strukturasi CAN xabar ramkasini uzatish uchun ishlatiladi.
A'zo:
ID
Xabar identifikatori. To'g'ridan-to'g'ri ID formati, o'ngga tekislangan, iltimos, qarang: Birinchi ilova: ID hizalama tafsilotlari.
VaqtStamp
Qabul qilish stamp vaqt oralig'i haqidagi ma'lumot, CAN kontrolleri ishga tushirilganda vaqtni boshlash, birlik 0. 1ms.
Vaqt bayrog'i
Vaqtni ishlatish yoki yo'qligi nuqtai nazaridan stamp, 1 - samarali TimeStamp. TimeFlag va TimeStamp faqat ramka qabul qilinganda mazmunli bo'ladi.
SendType
Yuborish turi. = 0 Oddiy turni, = 1 Yagona yuborishni bildiradi.
RemoteFlag
Bu uzoq bayroq bo'ladimi. = 1 masofaviy bayroqni bildiradi, = 0 ma'lumotlar bayrog'ini bildiradi.
Tashqi bayroq
Bu tashqi bayroq bo'ladimi. = 1 tashqi bayroqni, = 0 standart bayroqni bildiradi.
DataLen
Ma'lumotlar uzunligi (<=8), ya'ni ma'lumotlar uzunligi.
Ma'lumotlar
Paket ma'lumotlari.
Zaxiralangan
Tizim zahiraga olingan.
2.1.4. VCI_INIT_CONFIG
VCI_INIT_CONFIG strukturasi CANning ishga tushirish konfiguratsiyasini belgilaydi. Struktura VCI_InitCan funksiyasida to'ldiriladi.
A'zo:
AccCode
Filtrlangan qabul kodini oling.
AccMask
Filtr niqobini oling.
Zaxiralangan
Zaxiralangan.
Filtr
0-3 oralig'ini sozlash imkonini beruvchi filtrlash usuli, batafsil ma'lumot uchun filtrlash rejimi jadvalining 2.2.3 bo'limiga qarang.
Vaqt 0
SJA1000 uzatish tezligi parametri, Timing0 (BTR0) .
Vaqt 1
SJA1000 uzatish tezligi parametri, Timing1 (BTR1) .
Rejim
Ishlash rejimi, 0 = normal ishlash, 1 = faqat tinglash rejimi, 2 = o'z-o'zidan qabul qilish va yuborish test rejimi.
Izohlar:
Filtr sozlamalari haqida iltimos, qarang: Ilova II: CANparametrni o'rnatish yo'riqnomasi.
CAN Timing0 va Timing1 uzatish tezligini o'rnatish uchun ishlatiladi, bu ikki parametr faqat ishga tushirishda ishlatiladi.tage.
An'anaviy Bod ma'lumot jadvali:
CAN bod tezligi | Vaqt 0(BTR0) | Vaqt 1(BTR1) |
10 ming bps | 0x31 | 0x1c |
20 ming bps | 0x18 | 0x1c |
40 ming bps | 0x87 | 0xFF |
50 ming bps | 0x09 | 0x1c |
80 ming bps | 0x83 | 0xFF |
100 ming bps | 0x04 | 0x1c |
125 ming bps | 0x03 | 0x1c |
200 ming bps | 0x81 | 0xFA |
250 ming bps | 0x01 | 0x1c |
400 ming bps | 0x80 | 0xFA |
500 ming bps | 0x00 | 0x1c |
666 ming bps | 0x80 | 0xB6 |
800 ming bps | 0x00 | 0x16 |
1000 ming bps | 0x00 | 0x14 |
33.33 Kbit/s | 0x09 | 0x6F |
66.66 Kbit/s | 0x04 | 0x6F |
83.33 Kbit/s | 0x03 | 0x6F |
- Bod tezligi parametrini o'rnatish uchun foydalanuvchilar faqat SJA1000 (16MHz) ga amal qilishlari kerak.
- Adapter 10K dan past bo'lgan uzatish tezligini vaqtincha qo'llab-quvvatlamaydi.
2.2. FUNKSIYA TAVSIFI
2.2.1. VCI_OpenDevice
Bu funksiya qurilmalarni ulash uchun ishlatiladi.
DWORD __stdcall VCI_OpenDevice(DWORD DevType, DWORD DevIndex, DWORD zahiralangan);
Parametrlar:
DevType
Qurilma turi. Qarang: Adapter qurilmasi turini aniqlash.
DevIndex
Qurilma indeksi, masalanample, faqat bitta USB-CAN adapteri mavjud bo'lganda, indeks raqami 0, bir nechta USB-CAN adapterlari mavjud bo'lganda, indeks raqamlari o'sish tartibida 0 dan boshlanadi.
Zaxiralangan
Saqlash parametrlari, 0 ni to'ldiring.
Qaytaradi:
Qaytish qiymati = 1, bu operatsiya muvaffaqiyatli ekanligini anglatadi; = 0 operatsiya bajarilmaganligini bildiradi; = -1 qurilma mavjud emasligini bildiradi.
2.2.2. VCI_CloseDevice
Bu funksiya ulanishni yopish uchun ishlatiladi.
DWORD __stdcall VCI_CloseDevice(DWORD DevType, DWORD DevIndex);
Parametrlar:
DevType
Qurilma turi. Qarang: Adapter qurilmasi turini aniqlash.
DevIndex
Qurilma indeksi, masalanample, faqat bitta USB-CAN adapteri mavjud bo'lganda, indeks raqami 0, bir nechta USB-CAN adapterlari mavjud bo'lganda, indeks raqamlari o'sish tartibida 0 dan boshlanadi.
Qaytaradi:
Qaytish qiymati = 1, bu operatsiya muvaffaqiyatli ekanligini anglatadi; = 0 operatsiya bajarilmaganligini bildiradi; = -1 qurilma mavjud emasligini bildiradi.
2.2.3. VCI_InitCan
Bu funksiya belgilangan CANni ishga tushirish uchun ishlatiladi.
DWORD __stdcall VCI_InitCAN(DWORD DevType, DWORD DevIndex, DWORD CANIndex,
PVCI_INIT_CONFIG pInitConfig);
Parametrlar:
DevType
Qurilma turi. Qarang: Adapter qurilmasi turini aniqlash.
DevIndex
Qurilma indeksi, masalanample, faqat bitta USB-CAN adapteri mavjud bo'lganda, indeks raqami 0, bir nechta USB-CAN adapterlari mavjud bo'lganda, indeks raqamlari o'sish tartibida 0 dan boshlanadi.
CANIdex
CAN kanal indeksi, masalan, faqat bitta CAN kanali mavjud bo'lsa, indeks raqami 0, agar ikkita bo'lsa, indeks raqami 0 yoki 1 bo'lishi mumkin.
pInitConfig
Initializatsiya parametrlari tuzilishi. A'zolarning parametr ro'yxati:
A'zo | Funktsional tavsif |
pInitConfig->AccCode | AccCode va AccMask qaysi paketlarni qabul qilish mumkinligini aniqlash uchun birgalikda ishlashi mumkin. Ushbu ikkita registr ID ni chapga tekislangan holda o'rnatish uchun ishlatiladi, ya'ni AccCode va AccMask ning eng yuqori biti (Bit31) ID qiymatining eng yuqori bitiga mos keladi. |
pInitConfig-> AccMask | Identifikatorni moslashtirish toʻgʻrisida ilovalarga qarang: XNUMX-ilova: ID hizalash tafsilotlari. Masalan:Agar siz AccCode qiymatini 0x24600000 qilib belgilasangiz (ya'ni 0x123 21 bitga chapga siljiydi), AccMask qiymati 0x00000000 ga o'rnatiladi va keyin faqat CAN xabar ramkasi identifikatori 0x123 bo'lgan paketlar qabul qilinishi mumkin (0x00000000 AccMask qiymati barcha bitlar tegishli ekanligini bildiradi. |
bitlar). Agar AccCode qiymati 0x24600000 ga o'rnatilgan bo'lsa, AccMask qiymati 0x600000 ga o'rnatiladi (0x03 21 bitga chapga siljiydi) va keyin faqat CAN xabar ramkasi identifikatori 0x120 ~ 0x123 bo'lgan paketlarni qabul qilish mumkin (AccMask qiymati 0x600000 bit0 ~ bit1 dan tashqari boshqa bitlar (bit2 ~ bit10) tegishli bit ekanligini bildiradi). Eslatma: Ushbu filtr sozlamalari, masalanamples standart ramkaga, masalanample, yuqori 11-bit haqiqiy bit hisoblanadi; kengaytirilgan ramka bo'lsa, va keyin joriy ID 29-bit bo'ladi. AccCode va AccMask joriy bit sifatida yuqori 29-bitni o'rnatdi! |
|
pInitConfig-> Zaxiralangan | zaxiralangan |
pInitConfig-> Filtr | Filtrlash rejimi sozlamalari, iltimos, filtrlash rejimi jadvalining bo'limiga qarang. |
pInitConfig->Timing0 | Bod tezligiT0 sozlamalari |
pInitConfig->Timing1 | Bod tezligiT1 sozlamalari |
pInitConfig-> Mode | Ishlash tartibi: 0 - normal ishlash 1-Faqat tinglash rejimi 2-o'z-o'zidan qabul qilish va yuborish test rejimi (bu qiymat ZLG funktsiyalari kutubxonasidan chiqarib tashlangan) |
Filtr rejimi jadvali:
Qiymat | Ism | Tavsif |
1 | Barcha turlarni qabul qiling | Ham standart, ham kengaytirilgan ramkaga mos keladi! |
2 | Faqat standart ramkani oling | Standart ramkaga mos keladi va kengaytiriladi |
ramka to'g'ridan-to'g'ri filtrlash orqali olib tashlanadi! | ||
3 | Faqat kengaytirilgan ramkani qabul qiling | Kengaytirilgan ramkaga mos keladi va standart ramka tomonidan olib tashlanadi to'g'ridan-to'g'ri filtrlash! . |
Qaytaradi:
Qaytish qiymati = 1, bu operatsiya muvaffaqiyatli ekanligini anglatadi; = 0 operatsiya bajarilmaganligini bildiradi; = -1 qurilma mavjud emasligini bildiradi.
Masalan
2.2.4. VCI_ReadBoardInfo
Bu funksiya adapter apparat ma'lumotlarini o'qish uchun ishlatiladi. Umuman olganda, buni e'tiborsiz qoldirish mumkin.
DWORD __stdcall VCI_ReadBoardInfo(DWORD DevType,DWORD)
DevIndex,PVCI_BOARD_INFO pInfo);
Parametrlar:
DevType
Qurilma turi. Qarang: Adapter qurilmasi turini aniqlash.
DevIndex
Qurilma indeksi, masalanample, faqat bitta USB-CAN adapteri mavjud bo'lganda, indeks raqami 0, bir nechta USB-CAN adapterlari mavjud bo'lganda, indeks raqamlari 0 dan boshlanadigan o'sish tartibida. pInfo
VCI_BOARD_INFO qurilma ma'lumotlar strukturasi ko'rsatkichini saqlash uchun ishlatiladi.
Qaytaradi:
Qaytish qiymati = 1, bu operatsiya muvaffaqiyatli ekanligini anglatadi; = 0 operatsiya bajarilmaganligini bildiradi; = -1 qurilma mavjud emasligini bildiradi.
2.2.5. VCI_GetReceiveNum
Ushbu funktsiya qabul qilingan, ammo belgilangan qabul qiluvchi buferda o'qilmagan ramkalarni belgilash uchun ishlatiladi.
DWORD __stdcall VCI_GetReceiveNum(DWORD DevType, DWORD DevIndex, DWORD CANIndex);
Parametrlar:
DevType
Qurilma turi. Qarang: Adapter qurilmasi turini aniqlash.
DevIndex
Qurilma indeksi, masalanampAgar faqat bitta USB-CAN adapteri mavjud bo'lsa, indeks raqami 0, bir nechta USB-CAN adapterlari mavjud bo'lganda, indeks raqamlari o'sish tartibida 0 dan boshlanadi.
CANIdex
CAN kanal indeksi.
Qaytaradi:
Hali o'qilmagan ramkalarni qaytaring.
Masalan
#include “ControlCan.h” int ret=VCI_GetReceiveNum(2,0,0);
2.2.6. VCI_ClearBuffer
Bu funksiya tomonidan belgilangan kanalning qabul qilish va jo'natish buferini tozalash uchun foydalaniladi
USB-CAN adapteri.
DWORD __stdcall VCI_ClearBuffer(DWORD DevType, DWORD DevIndex, DWORD CANIndex);
Parametrlar:
DevType
Qurilma turi. Qarang: Adapter qurilmasi turini aniqlash.
DevIndex
Qurilma indeksi, masalanampAgar faqat bitta USB-CAN adapteri mavjud bo'lsa, indeks raqami 0, bir nechta USB-CAN adapterlari mavjud bo'lganda, indeks raqamlari o'sish tartibida 0 dan boshlanadi.
CANIdex
CAN kanal indeksi.
Qaytaradi:
Qaytish qiymati = 1, bu operatsiya muvaffaqiyatli ekanligini anglatadi; = 0 operatsiya bajarilmaganligini bildiradi; = -1 qurilma mavjud emasligini bildiradi.
2.2.7. VCI_StartCAN
Bu funksiya CAN kontroller va adapterning ichki uzilishlarni qabul qilish funksiyasini ishga tushirish uchun ishlatiladi.
DWORD __stdcall VCI_StartCAN(DWORD DevType, DWORD DevIndex, DWORD CANIndex);
Parametrlar:
DevType
Qurilma turi. Qarang: Adapter qurilmasi turini aniqlash.
DevIndex
Qurilma indeksi, masalanample, faqat bitta USB-CAN adapteri mavjud bo'lganda, indeks raqami 0, bir nechta USB-CAN adapterlari mavjud bo'lganda, indeks raqamlari o'sish tartibida 0 dan boshlanadi.
CANIdex
CAN kanal indeksi.
Qaytaradi:
Qaytish qiymati = 1, bu operatsiya muvaffaqiyatli ekanligini anglatadi; = 0 operatsiya bajarilmaganligini bildiradi; = -1 qurilma mavjud emasligini bildiradi.
2.2.8. VCI_ResetCAN
Bu funksiya CAN kontrollerni qayta o'rnatish uchun ishlatiladi.
DWORD __stdcall VCI_ResetCAN(DWORD DevType, DWORD DevIndex, DWORD CANIndex);
Parametrlar:
DevType
Qurilma turi. Qarang: Adapter qurilmasi turini aniqlash.
DevIndex
Qurilma indeksi, masalanample, faqat bitta USB-CAN adapteri mavjud bo'lganda, indeks raqami 0, bir nechta USB-CAN adapterlari mavjud bo'lganda, indeks raqamlari o'sish tartibida 0 dan boshlanadi.
CANIdex
CAN kanal indeksi.
Qaytaradi:
Qaytish qiymati = 1, bu operatsiya muvaffaqiyatli ekanligini anglatadi; = 0 operatsiya bajarilmaganligini bildiradi; = -1 qurilma mavjud emasligini bildiradi.
2.2.9. VCI_Transmit
Bu funksiya CAN xabar ramkasini yuborish uchun ishlatiladi.
DWORD __stdcall VCI_Transmit(DWORD DeviceType, DWORD DeviceInd, DWORD CANInd,PVCI_CAN_OBJ pSend, DWORD Length);
Parametrlar:
DevType
Qurilma turi. Qarang: Adapter qurilmasi turini aniqlash.
DevIndex
Qurilma indeksi, masalanample, faqat bitta USB-CAN adapteri mavjud bo'lganda, indeks raqami 0, bir nechta USB-CAN adapterlari mavjud bo'lganda, indeks raqamlari o'sish tartibida 0 dan boshlanadi.
CANIdex
CAN kanal indeksi. pSend
Yuborilishi kerak bo'lgan ma'lumotlar ramkasi massivlarining birinchi manzili.
Uzunlik
Yuborilishi kerak bo'lgan ma'lumotlar freymlari soni, maksimal soni 1000, tavsiya etilgan qiymat yuqori tezlikda 48 ta.
Qaytaradi:
Allaqachon yuborilgan kadrlarning haqiqiy sonini qaytaring, qaytarish qiymati = -1 qurilma xatosini bildiradi.
Masalan
2.2.10. VCI_Qabul qilish
Bu funksiya qabul qilishni so'rash uchun ishlatiladi.
DWORD __stdcall VCI_Receive(DWORD DevType, DWORD DevIndex, DWORD CANIndex, PVCI_CAN_OBJ qabul qilish, ULONG Len, INT WaitTime);
Parametrlar:
DevType
Qurilma turi. Qarang: Adapter qurilmasi turini aniqlash.
DevIndex
Qurilma indeksi, masalanample, faqat bitta USB-CAN adapteri mavjud bo'lganda, indeks raqami 0, bir nechta USB-CAN adapterlari mavjud bo'lganda, indeks raqamlari o'sish tartibida 0 dan boshlanadi.
CANIdex
CAN kanal indeksi.
Qabul qilish
Ma'lumotlar ramkalarining birinchi o'rnatilgan ko'rsatkichini olish uchun.
Len
Oddiy xabarni qaytarish uchun ma'lumotlar ramkasining massiv uzunligi 2500 dan ortiq bo'lishi kerak.
Aks holda, xabar qabul qilingan yoki olinmaganidan qat'i nazar, qaytarish uzunligi nolga teng bo'ladi. adapter har bir kanal uchun 2000 kvadratli buferni o'rnatdi. O'z tizimi va ish muhitiga asoslanib, foydalanuvchi 2500 dan mos keladigan massiv uzunligini tanlashi mumkin.
Kutish vaqti zahiralangan.
Qaytaradi:
Haqiqatan ham o'qilgan ramkalar sonini qaytaring, -1 qurilma xatolarini bildiradi.
Masalan
UCHINCHI QISM BOSHQA FUNKSIYALAR VA MA'LUMOTLAR TUZILIShI TAVSIFI
Ushbu bobda ControlCAN.dll USB-CAN adapter interfeysi kutubxonasida joylashgan mos kelmaydigan ZLG interfeysi kutubxonasining boshqa ma'lumotlar turlari va funksiyalari tasvirlangan. Iltimos qiling
Muvofiqlikka ta'sir qilmaslik uchun ikkinchi darajali ishlab chiqish uchun mos keladigan ZLG modelidan foydalansangiz, ushbu funktsiyalarni chaqirmang.
3.1 FUNKSIYA TAVSIFI
3.1.1. VCI_UsbDeviceReset
USB-CAN adapterini qayta o'rnating, VCI_OpenDevice yordamida qayta o'rnatgandan so'ng qurilmani qayta ochish kerak.
DWORD __stdcall VCI_UsbDeviceReset(DWORD DevType, DWORD DevIndex, DWORD zahiralangan)
Parametrlar:
DevType
Qurilma turi. Qarang: Adapter qurilmasi turini aniqlash.
DevIndex
Qurilma indeksi, masalanample, faqat bitta USB-CAN adapteri mavjud bo'lganda, indeks raqami 0, bir nechta USB-CAN adapterlari mavjud bo'lganda, indeks raqamlari o'sish tartibida 0 dan boshlanadi.
Zaxira qilingan zahiralangan.
Qaytaradi:
Qaytish qiymati = 1, bu operatsiya muvaffaqiyatli ekanligini anglatadi; = 0 operatsiya bajarilmaganligini bildiradi; = -1 qurilma mavjud emasligini bildiradi.
bRel = VCI_UsbDeviceReset(nDeviceType, Mustaqillik, 0);
3.1.2. VCI_FindUsbDevice2
Agar bir xil kompyuter bir nechta USB-CAN-dan foydalansa, foydalanuvchi joriy qurilmani topish uchun ushbu funksiyadan foydalanishi mumkin.
DWORD __stdcall VCI_FindUsbDevice2(PVCI_BOARD_INFO pInfo);
Parametrlar:
pInfo
pInfo birinchi ma'lumotlar buferi manzil ko'rsatkichining parametrlarini saqlash uchun ishlatiladi.
Qaytadi
Kompyuterga ulangan USB-CAN adapter raqamini qaytaring.
To'rtinchi qism Interfeys kutubxonasi funktsiyalaridan foydalanish jarayoni
Qurilma funktsiyasini ko'paytirish uchun biz qo'shimcha funktsiyalarni taqdim etdik (yashil fon bilan taqdim etilgan funktsiyalar), bu funktsiyalarga quyidagilar kiradi: VCI_FindUsbDevice2 VCI_UsbDeviceReset. Ikkinchi rivojlanish jarayonida bu funktsiyalarni chaqirish shart emas. Hatto bu funksiyalar e'tiborga olinmasa ham, USB-CAN adapterining barcha funksiyalariga erishish mumkin.
www.waveshare.com
www.waveshare.com/wiki
Hujjatlar / manbalar
![]() |
WAVESHARE USB-CAN Bus Inter face Adapter Interface Function Library [pdf] Qo'llanma USB-CAN Bus Interface Adapter Interfeys Function Library, USB-CAN, Bus Inter face Adapter Interface Function Library, Interfeys Function Library, Function Library |