Antara Muka Bas USB-CAN
Fungsi Antara Muka Penyesuai
Arahan Pengguna Perpustakaan
BAHAGIAN SATU TAMATVIEW
Jika pengguna hanya menggunakan penyesuai antara muka bas USB-CAN untuk meneruskan ujian komunikasi bas CAN, dan kemudian dia boleh terus menggunakan perisian Alat USB-CAN yang dibekalkan untuk menghantar dan menerima data ujian.
Jika pengguna bercadang untuk menulis program perisian untuk produknya sendiri. Sila baca dengan teliti arahan berikut dan ambil rujukan daripada sampkod yang kami sediakan:
⑴ C++ Builder ⑵C# ⑶VC ⑷VB ⑸VB.NET ⑹Delphi ⑺LabVIEW ⑻ LabWindows/CVI ⑼Matlab ⑽QT ⑾Python/Python-can.
Membangunkan perpustakaan file :ControlCAN.lib, ControlCAN.DLL
Perisytiharan fungsi versi VC file :ControlCAN.h
Pengisytiharan fungsi versi VB file: ControlCAN.bas
MakmalVIEW modul pakej fungsi perpustakaan versi:ControlCAN.llb
Pengisytiharan fungsi versi Delphi file: ControlCAN.pas
BAHAGIAN DUA PERPUSTAKAAN FUNGSI SESUAI DAN STRUKTUR DATA
2.1. DEFINISI JENIS
2.1.1. Jenis peranti
Jenis Definisi | Nilai taip | Penerangan |
DEV_USBCAN2 | 4 | USBCAN-2A/USBCAN-2C/CANalyst-II MiniPCIe-CAN |
2.1.2. VCI_BOARD_INFO
Struktur VCI_BOARD_INFO mengandungi maklumat peranti antara muka USB-CAN Series.
Struktur akan diisi dalam fungsi VCI_ReadBoardInfo.
ahli:
hw_Versi
Nombor versi perkakasan, tatatanda heksadesimal. Cth 0x0100 mewakili V1.00.
fw_Versi
Nombor versi perkakasan, tatatanda heksadesimal. Cth 0x0100 mewakili V1.00.
Muka surat 2
dr_Versi
Nombor versi pemacu, tatatanda heksadesimal. Cth 0x0100 mewakili V1.00.
dalam_Versi
Nombor versi perpustakaan antara muka, tatatanda heksadesimal. Cth 0x0100 mewakili V1.00.
irq_Num
Sistem terpelihara.
boleh_Bil
Mewakili jumlah bilangan saluran CAN.
str_Serial_Num
Nombor siri kad papan ini.
str_hw_Type
Jenis perkakasan, seperti “USBCAN V1.00” (Nota: Termasuk penamat rentetan '\0').
Terpelihara
Sistem terpelihara.
2.1.3. VCI_CAN_OBJ
Dalam fungsi VCI_Transmit dan VCI_Receive, struktur VCI_CAN_OBJ digunakan untuk menghantar bingkai mesej CAN.
ahli:
ID
Pengecam mesej. Format ID Terus, dijajarkan ke kanan, sila rujuk: Lampiran Satu: Butiran Penjajaran ID.
MasaStamp
Menerima stamp maklumat rangka masa, masa mulakan apabila pengawal CAN dimulakan, unit ialah 0. 1ms.
TimeFlag
Dari segi sama ada untuk menggunakan masa stamp, 1adalah TimeSt yang berkesanamp. TimeFlag dan TimeStamp hanya bermakna apabila bingkai diterima.
SendType
Jenis menghantar. = 0 menunjukkan jenis Normal, = 1 menunjukkan Hantar Tunggal.
Bendera Jauh
Sama ada ia adalah bendera jauh. = 1 menunjukkan bendera jauh, = 0 menunjukkan bendera data.
ExternFlag
Sama ada ia adalah bendera luar. = 1 menunjukkan bendera luar, = 0 menunjukkan bendera standard.
DataLen
Panjang data(<=8) ,iaitu panjang data.
Data
Data paket.
Terpelihara
Sistem terpelihara.
2.1.4. VCI_INIT_CONFIG
Struktur VCI_INIT_CONFIG mentakrifkan konfigurasi permulaan CAN. Struktur akan diisi dalam fungsi VCI_InitCan.
ahli:
AccCode
Terima kod penerimaan yang ditapis.
AccMask
Terima topeng penapis.
Terpelihara
Terpelihara.
Penapis
Kaedah penapisan, membenarkan julat tetapan 0-3, rujuk bahagian 2.2.3 jadual mod penapis untuk butiran.
Masa0
Parameter kadar Baud SJA1000, Pemasa0 (BTR0) .
Masa1
Parameter kadar Baud SJA1000, Pemasa1 (BTR1) .
Mod
Mod pengendalian, 0 = operasi biasa, 1 = Mod dengar sahaja, 2 = mod ujian kemasukan dan penghantaran secara spontan.
Catatan:
Mengenai tetapan penapis sila rujuk: Lampiran II: Arahan persediaan CANparameter.
CAN Timing0 dan Timing1 digunakan untuk menetapkan kadar baud, kedua-dua parameter ini hanya digunakan pada permulaan stage.
Jadual rujukan Baud konvensional:
CAN kadar Baud | Masa0(BTR0) | Masa1(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 |
- Pengguna hanya perlu mengikut SJA1000 (16MHz) untuk menetapkan parameter kadar Baud.
- Penyesuai tidak menyokong kadar Baud buat sementara waktu di bawah 10K.
2.2. HURAIAN FUNGSI
2.2.1. VCI_OpenDevice
Fungsi ini digunakan untuk menyambungkan peranti.
DWORD __stdcall VCI_OpenDevice(DWORD DevType,DWORD DevIndex,DWORD Reserved);
Parameter:
DevType
Jenis peranti. Lihat: Definisi jenis peranti penyesuai.
DevIndex
Indeks Peranti, contohnyaampOleh itu, apabila terdapat hanya satu penyesuai USB-CAN, nombor indeks ialah 0, apabila terdapat berbilang penyesuai USB-CAN, nombor indeks dalam susunan menaik bermula dari 0.
Terpelihara
Parameter pengekalan, isikan 0.
Pulangan:
Nilai pulangan = 1, yang bermaksud bahawa operasi berjaya; = 0 menunjukkan bahawa operasi gagal; = -1 menunjukkan bahawa peranti itu tidak wujud.
2.2.2. VCI_CloseDevice
Fungsi ini digunakan untuk menutup sambungan.
DWORD __stdcall VCI_CloseDevice(DWORD DevType,DWORD DevIndex);
Parameter:
DevType
Jenis peranti. Lihat: Definisi jenis peranti penyesuai.
DevIndex
Indeks Peranti, contohnyaampOleh itu, apabila terdapat hanya satu penyesuai USB-CAN, nombor indeks ialah 0, apabila terdapat berbilang penyesuai USB-CAN, nombor indeks dalam susunan menaik bermula dari 0.
Pulangan:
Nilai pulangan = 1, yang bermaksud bahawa operasi berjaya; = 0 menunjukkan bahawa operasi gagal; = -1 menunjukkan bahawa peranti itu tidak wujud.
2.2.3. VCI_InitCan
Fungsi ini digunakan untuk memulakan CAN yang ditentukan.
DWORD __stdcall VCI_InitCAN(DWORD DevType, DWORD DevIndex, DWORD CANIndex,
PVCI_INIT_CONFIG pInitConfig);
Parameter:
DevType
Jenis peranti. Lihat: Definisi jenis peranti penyesuai.
DevIndex
Indeks Peranti, contohnyaampOleh itu, apabila terdapat hanya satu penyesuai USB-CAN, nombor indeks ialah 0, apabila terdapat berbilang penyesuai USB-CAN, nombor indeks dalam susunan menaik bermula dari 0.
CANIndeks
Indeks saluran CAN, seperti apabila terdapat hanya satu saluran CAN, nombor indeks adalah 0, jika terdapat dua, nombor indeks boleh menjadi 0 atau 1.
pInitConfig
Struktur parameter permulaan. Senarai parameter ahli:
Ahli | Penerangan Fungsian |
pInitConfig->AccCode | AccCode dan AccMask boleh bekerjasama untuk menentukan paket yang boleh diterima. Kedua-dua daftar ini digunakan untuk menetapkan ID dijajar kiri, iaitu, bit tertinggi (Bit31) AccCode dan AccMask adalah sejajar dengan bit tertinggi nilai ID. |
pInitConfig->AccMask | Mengenai penjajaran ID rujuk lampiran: Lampiran I: Butiran penjajaran ID. Cth: Jika anda menetapkan nilai AccCode sebagai 0x24600000 (iaitu 0x123 dialihkan ke kiri sebanyak 21 bit), nilai AccMask ditetapkan kepada 0x00000000, dan kemudian hanya paket dengan ID bingkai mesej CAN ialah 0x123 boleh diterima (nilai AccMask 0x00000000 menunjukkan bahawa semua bit adalah berkaitan |
bit). Jika nilai AccCode ditetapkan kepada 0x24600000, nilai AccMask ditetapkan kepada 0x600000 (0x03 dialihkan ke kiri sebanyak 21 bit), dan kemudian hanya paket dengan ID bingkai mesej CAN ialah 0x120 ~ 0x123 boleh diterima (nilai AccMask 0x600000 menunjukkan bahawa selain daripada bit0 ~ bit1 bit lain (bit2 ~ bit10) adalah bit yang berkaitan). Nota: Tetapan penapis ini examples kepada bingkai standard, contohnyaample, 11-bit tinggi ialah bit yang sah; dalam kes bingkai lanjutan, dan kemudian ID yang sah ialah 29-bit. AccCode dan AccMask menetapkan 29-bit tinggi sebagai bit yang sah! |
|
pInitConfig->Terpelihara | terpelihara |
pInitConfig->Penapis | Tetapan mod penapisan sila rujuk bahagian jadual mod penapis. |
pInitConfig->Masa0 | Tetapan kadar baudT0 |
pInitConfig->Masa1 | Tetapan kadar baudT1 |
pInitConfig->Mod | Mod operasi: 0-operasi biasa 1-Mod dengar sahaja 2-mod ujian kemasukan dan penghantaran secara spontan (nilai ini dikecualikan daripada pustaka fungsi ZLG) |
Jadual mod penapis:
Nilai | Nama | Penerangan |
1 | Terima semua jenis | Sesuai untuk kedua-dua bingkai standard dan lanjutan! |
2 | Hanya terima bingkai standard | Sesuai untuk bingkai standard, dan dilanjutkan |
bingkai akan dikeluarkan melalui penapisan terus! | ||
3 | Hanya terima bingkai lanjutan | Sesuai untuk bingkai lanjutan, dan bingkai standard akan dialih keluar oleh penapisan secara langsung! . |
Pulangan:
Nilai pulangan = 1, yang bermaksud bahawa operasi berjaya; = 0 menunjukkan bahawa operasi gagal; = -1 menunjukkan bahawa peranti itu tidak wujud.
Cth
2.2.4. VCI_ReadBoardInfo
Fungsi ini digunakan untuk membaca maklumat perkakasan penyesuai. Secara umumnya, ia boleh diabaikan.
DWORD __stdcall VCI_ReadBoardInfo(DWORD DevType,DWORD
DevIndex,PVCI_BOARD_INFO pInfo);
Parameter:
DevType
Jenis peranti. Lihat: Definisi jenis peranti penyesuai.
DevIndex
Indeks Peranti, contohnyaampOleh itu, apabila terdapat hanya satu penyesuai USB-CAN, nombor indeks ialah 0, apabila terdapat berbilang penyesuai USB-CAN, nombor indeks dalam susunan menaik bermula dari 0. pInfo
VCI_BOARD_INFO digunakan untuk menyimpan penunjuk struktur maklumat peranti.
Pulangan:
Nilai pulangan = 1, yang bermaksud bahawa operasi berjaya; = 0 menunjukkan bahawa operasi gagal; = -1 menunjukkan bahawa peranti itu tidak wujud.
2.2.5. VCI_GetReceiveNum
Fungsi ini digunakan untuk menentukan bingkai yang diterima tetapi belum dibaca dalam penimbal penerima yang ditetapkan.
DWORD __stdcall VCI_GetReceiveNum(DWORD DevType,DWORD DevIndex,DWORD CANIndex);
Parameter:
DevType
Jenis peranti. Lihat: Definisi jenis peranti penyesuai.
DevIndex
Indeks Peranti, contohnyaampOleh itu, apabila terdapat hanya satu penyesuai USB-CAN, nombor indeks ialah 0, apabila terdapat berbilang penyesuai USB-CAN, nombor indeks dalam susunan menaik bermula dari 0.
CANIndeks
CAN indeks saluran.
Pulangan:
Kembalikan bingkai yang belum dibaca.
Cth
#include “ControlCan.h” int ret=VCI_GetReceiveNum(2,0,0);
2.2.6. VCI_ClearBuffer
Fungsi ini digunakan untuk mengosongkan penimbal terima dan hantar bagi saluran yang ditetapkan yang ditentukan oleh
Penyesuai USB-CAN.
DWORD __stdcall VCI_ClearBuffer(DWORD DevType,DWORD DevIndex,DWORD CANIndex);
Parameter:
DevType
Jenis peranti. Lihat: Definisi jenis peranti penyesuai.
DevIndex
Indeks Peranti, contohnyaampOleh itu, apabila terdapat hanya satu penyesuai USB-CAN, nombor indeks ialah 0, apabila terdapat berbilang penyesuai USB-CAN, nombor indeks dalam susunan menaik bermula dari 0.
CANIndeks
CAN indeks saluran.
Pulangan:
Nilai pulangan = 1, yang bermaksud bahawa operasi berjaya; = 0 menunjukkan bahawa operasi gagal; = -1 menunjukkan bahawa peranti itu tidak wujud.
2.2.7. VCI_StartCAN
Fungsi ini digunakan untuk memulakan pengawal CAN dan fungsi penerimaan gangguan dalaman penyesuai.
DWORD __stdcall VCI_StartCAN(DWORD DevType,DWORD DevIndex,DWORD CANIndex);
Parameter:
DevType
Jenis peranti. Lihat: Definisi jenis peranti penyesuai.
DevIndex
Indeks Peranti, contohnyaampOleh itu, apabila terdapat hanya satu penyesuai USB-CAN, nombor indeks ialah 0, apabila terdapat berbilang penyesuai USB-CAN, nombor indeks dalam susunan menaik bermula dari 0.
CANIndeks
CAN indeks saluran.
Pulangan:
Nilai pulangan = 1, yang bermaksud bahawa operasi berjaya; = 0 menunjukkan bahawa operasi gagal; = -1 menunjukkan bahawa peranti itu tidak wujud.
2.2.8. VCI_ResetCAN
Fungsi ini digunakan untuk menetapkan semula pengawal CAN.
DWORD __stdcall VCI_ResetCAN(DWORD DevType,DWORD DevIndex,DWORD CANIndex);
Parameter:
DevType
Jenis peranti. Lihat: Definisi jenis peranti penyesuai.
DevIndex
Indeks Peranti, contohnyaampOleh itu, apabila terdapat hanya satu penyesuai USB-CAN, nombor indeks ialah 0, apabila terdapat berbilang penyesuai USB-CAN, nombor indeks dalam susunan menaik bermula dari 0.
CANIndeks
CAN indeks saluran.
Pulangan:
Nilai pulangan = 1, yang bermaksud bahawa operasi berjaya; = 0 menunjukkan bahawa operasi gagal; = -1 menunjukkan bahawa peranti itu tidak wujud.
2.2.9. VCI_Transmit
Fungsi ini digunakan untuk menghantar bingkai mesej CAN.
DWORD __stdcall VCI_Transmit(DWORD DeviceType,DWORD DeviceInd,DWORD CANInd,PVCI_CAN_OBJ pSend,DWORD Length);
Parameter:
DevType
Jenis peranti. Lihat: Definisi jenis peranti penyesuai.
DevIndex
Indeks Peranti, contohnyaampOleh itu, apabila terdapat hanya satu penyesuai USB-CAN, nombor indeks ialah 0, apabila terdapat berbilang penyesuai USB-CAN, nombor indeks dalam susunan menaik bermula dari 0.
CANIndeks
CAN indeks saluran. pHantar
Alamat pertama tatasusunan bingkai data yang perlu dihantar.
Panjang
Bilangan bingkai data yang perlu dihantar, bilangan maksimum ialah 1000, nilai yang disyorkan ialah 48 di bawah kelajuan tinggi.
Pulangan:
Kembalikan bilangan sebenar bingkai yang telah dihantar, nilai pulangan = -1 menunjukkan ralat peranti.
Cth
2.2.10. VCI_Terima
Fungsi ini digunakan untuk meminta penerimaan.
DWORD __stdcall VCI_Receive(DWORD DevType, DWORD DevIndex, DWORD CANIndeks, PVCI_CAN_OBJ pReceive, ULONG Len, INT WaitTime);
Parameter:
DevType
Jenis peranti. Lihat: Definisi jenis peranti penyesuai.
DevIndex
Indeks Peranti, contohnyaampOleh itu, apabila terdapat hanya satu penyesuai USB-CAN, nombor indeks ialah 0, apabila terdapat berbilang penyesuai USB-CAN, nombor indeks dalam susunan menaik bermula dari 0.
CANIndeks
CAN indeks saluran.
pTerima
Untuk menerima set penunjuk pertama bagi bingkai data.
Len
Panjang tatasusunan bingkai data mestilah lebih daripada 2500 untuk mengembalikan mesej biasa.
Jika tidak, panjang pemulangan akan menjadi sifar sama ada mesej diterima atau tidak. penyesuai menetapkan penimbal 2000 bingkai untuk setiap saluran. Berdasarkan sistem dan persekitaran kerjanya sendiri, pengguna boleh memilih panjang tatasusunan yang sesuai daripada 2500.
WaitTime Reserved.
Pulangan:
Kembalikan bilangan bingkai yang sebenarnya telah dibaca, -1 menunjukkan ralat peranti.
Cth
BAHAGIAN TIGA FUNGSI LAIN DAN HURAIAN STRUKTUR DATA
Bab ini menerangkan jenis data dan fungsi lain pustaka antara muka ZLG yang tidak serasi yang terkandung dalam pustaka antara muka penyesuai USB-CAN ControlCAN.dll. Sila lakukan
jangan panggil fungsi ini jika menggunakan model ZLG yang serasi untuk pembangunan sekunder supaya tidak menjejaskan keserasian.
3.1 HURAIAN FUNGSI
3.1.1. VCI_UsbDeviceReset
Tetapkan semula penyesuai USB-CAN, perlu membuka semula peranti selepas ditetapkan semula dengan menggunakan VCI_OpenDevice.
DWORD __stdcall VCI_UsbDeviceReset(DWORD DevType,DWORD DevIndex,DWORD Reserved
Parameter:
DevType
Jenis peranti. Lihat: Definisi jenis peranti penyesuai.
DevIndex
Indeks Peranti, contohnyaampOleh itu, apabila terdapat hanya satu penyesuai USB-CAN, nombor indeks ialah 0, apabila terdapat berbilang penyesuai USB-CAN, nombor indeks dalam susunan menaik bermula dari 0.
Terpelihara Terpelihara.
Pulangan:
Nilai pulangan = 1, yang bermaksud bahawa operasi berjaya; = 0 menunjukkan bahawa operasi gagal; = -1 menunjukkan bahawa peranti itu tidak wujud.
bRel = VCI_UsbDeviceReset(nDeviceType, Independence, 0);
3.1.2. VCI_FindUsbDevice2
Apabila PC yang sama menggunakan berbilang USB-CAN, pengguna boleh menggunakan fungsi ini untuk mencari peranti semasa.
DWORD __stdcall VCI_FindUsbDevice2(PVCI_BOARD_INFO pInfo);
Parameter:
pInfo
pInfo digunakan untuk menyimpan parameter penuding alamat penimbal data pertama.
Pulangan
Kembalikan nombor penyesuai USB-CAN yang dipalamkan ke dalam komputer.
Bahagian Empat Fungsi Perpustakaan Antaramuka Menggunakan Proses
Untuk mendarabkan fungsi peranti, kami menyediakan fungsi tambahan (fungsi yang dibentangkan dengan latar belakang hijau), fungsi ini termasuk: VCI_FindUsbDevice2 VCI_UsbDeviceReset. Semasa pembangunan kedua, fungsi ini tidak semestinya digunakan. Malah fungsi ini diabaikan, semua fungsi penyesuai USB-CAN boleh dicapai.
www.waveshare.com
www.waveshare.com/wiki
Dokumen / Sumber
![]() |
WAVESHARE USB-CAN Bus Inter face Adapter Interface Function Library [pdf] Manual Arahan Perpustakaan Fungsi Antara Muka Penyesuai Antara Muka Bas USB-CAN, USB-CAN, Perpustakaan Fungsi Antara Muka Penyesuai Antara Muka Bas, Perpustakaan Fungsi Antara Muka, Perpustakaan Fungsi |