Antarmuka Bus USB-CAN
Fungsi Antarmuka Adaptor
Instruksi Pengguna Perpustakaan
BAGIAN SATU SELESAIVIEW
Jika pengguna hanya menggunakan adaptor antarmuka bus USB-CAN untuk melakukan pengujian komunikasi bus CAN, maka ia dapat langsung menggunakan perangkat lunak Alat USB-CAN yang disediakan untuk mengirim dan menerima data pengujian.
Jika pengguna bermaksud untuk menulis program perangkat lunak untuk produknya sendiri. Harap baca instruksi berikut dengan cermat dan ambil referensi dari sample kode yang kami sediakan:
⑴ Pembangun C++ ⑵C# ⑶VC ⑷VB ⑸VB.NET ⑹Delphi ⑺LabVIEW ⑻ LabWindows/CVI ⑼Matlab ⑽QT ⑾Python/Python-can.
Mengembangkan perpustakaan file :ControlCAN.lib, ControlCAN.DLL
Deklarasi fungsi versi VC file :KontrolCAN.h
Deklarasi fungsi versi VB file: KontrolCAN.bas
LaboratoriumVIEW modul paket fungsi perpustakaan versi :ControlCAN.llb
Deklarasi fungsi versi Delphi file: KontrolCAN.pas
BAGIAN DUA FUNGSI PERPUSTAKAAN DAN STRUKTUR DATA YANG SESUAI
2.1. DEFINISI JENIS
2.1.1. Tipe perangkat
Jenis Definisi | Nilai jenis | Keterangan |
DEV_USBCAN2 | 4 | USBCAN-2A/USBCAN-2C/CANalyst-II MiniPCIe-CAN |
2.1.2. VCI_BOARD_INFO
Struktur VCI_BOARD_INFO berisi informasi perangkat kartu antarmuka Seri USB-CAN.
Strukturnya akan diisi dengan fungsi VCI_ReadBoardInfo.
Anggota:
hw_Versi
Nomor versi perangkat keras, notasi heksadesimal. Misalnya 0x0100 mewakili V1.00.
fw_Versi
Nomor versi perangkat keras, notasi heksadesimal. Misalnya 0x0100 mewakili V1.00.
Halaman 2
dr_Version
Nomor versi driver, notasi heksadesimal. Misalnya 0x0100 mewakili V1.00.
dalam_Versi
Nomor versi perpustakaan antarmuka, notasi heksadesimal. Misalnya 0x0100 mewakili V1.00.
irq_Num
Sistem dicadangkan.
bisa_Nomor
Mewakili jumlah total saluran CAN.
str_Serial_Num
Nomor seri kartu papan ini.
str_hw_Type
Jenis perangkat keras, seperti “USBCAN V1.00” (Catatan: Termasuk terminator string '\0').
Disimpan
Sistem dicadangkan.
2.1.3. VCI_CAN_OBJ
Dalam fungsi VCI_Transmit dan VCI_Receive, struktur VCI_CAN_OBJ digunakan untuk mengirimkan bingkai pesan CAN.
Anggota:
ID
Pengidentifikasi pesan. Format ID langsung, rata kanan, lihat: Lampiran Satu: Detail Penyelarasan ID.
WaktuStamp
Menerima stamp informasi jangka waktu, waktu mulai ketika pengontrol CAN diinisialisasi, satuannya adalah 0 ms.
Bendera Waktu
Dalam hal apakah akan menggunakan waktu stamp, 1 adalah TimeSt yang efektifamp. TimeFlag dan TimeStamp hanya bermakna ketika bingkai diterima.
Tipe Kirim
Jenis pengiriman. = 0 menunjukkan tipe Normal, = 1 menunjukkan Pengiriman Tunggal.
Bendera Jarak Jauh
Entah itu bendera jarak jauh. = 1 menunjukkan bendera jarak jauh, = 0 menunjukkan bendera data.
Bendera Eksternal
Apakah itu bendera luar. = 1 menunjukkan bendera luar, = 0 menunjukkan bendera standar.
DataLen
Panjang data(<=8) ,yaitu panjang data.
Data
Paket data.
Disimpan
Sistem dicadangkan.
2.1.4. VCI_INIT_CONFIG
Struktur VCI_INIT_CONFIG mendefinisikan konfigurasi inisialisasi CAN. Strukturnya akan diisi dengan fungsi VCI_InitCan.
Anggota:
Kode Acc
Terima kode penerimaan yang difilter.
Masker Acc
Terima masker filter.
Disimpan
Disimpan.
Menyaring
Metode pemfilteran, memungkinkan pengaturan rentang 0-3, lihat bagian 2.2.3 tabel mode filter untuk detailnya.
Waktu0
Parameter laju Baud SJA1000, Timing0 (BTR0) .
Waktu1
Parameter laju Baud SJA1000, Timing1 (BTR1) .
Mode
Mode pengoperasian, 0 = pengoperasian normal, 1 = Mode hanya mendengarkan, 2 = mode tes penerimaan dan pengiriman spontan.
Perkataan:
Tentang pengaturan filter silakan merujuk ke: Lampiran II: Petunjuk pengaturan CANparameter.
CAN Timing0 dan Timing1 digunakan untuk mengatur baud rate, kedua parameter ini hanya digunakan pada inisialisasi stage.
Tabel referensi Baud konvensional:
BISA tingkat Baud | Waktu0(BTR0) | Waktu1(BTR1) |
10 ribu bps | ukuran 0x31 | 0x1C |
20 ribu bps | ukuran 0x18 | 0x1C |
40 ribu bps | ukuran 0x87 | 0xFF |
50 ribu bps | ukuran 0x09 | 0x1C |
80 ribu bps | ukuran 0x83 | 0xFF |
100 ribu bps | ukuran 0x04 | 0x1C |
125 ribu bps | ukuran 0x03 | 0x1C |
200 ribu bps | ukuran 0x81 | 0xFA |
250 ribu bps | ukuran 0x01 | 0x1C |
400 ribu bps | ukuran 0x80 | 0xFA |
500 ribu bps | ukuran 0x00 | 0x1C |
666 ribu bps | ukuran 0x80 | Nomor telepon 0xB6 |
800 ribu bps | ukuran 0x00 | ukuran 0x16 |
1000 ribu bps | ukuran 0x00 | ukuran 0x14 |
Kecepatan 33.33 Kbps | ukuran 0x09 | 0x6F |
Kecepatan 66.66 Kbps | ukuran 0x04 | 0x6F |
Kecepatan 83.33 Kbps | ukuran 0x03 | 0x6F |
- Pengguna hanya perlu mengikuti SJA1000 (16MHz) untuk mengatur parameter Baud rate.
- Adaptor tidak mendukung sementara tingkat Baud di bawah 10K.
2.2. DESKRIPSI FUNGSI
2.2.1. VCI_OpenDevice
Fungsi ini digunakan untuk menghubungkan perangkat.
DWORD __stdcall VCI_OpenDevice (DWORD DevType, DWORD DevIndex, DWORD Dicadangkan);
Parameternya:
Tipe Pengembang
Tipe perangkat. Lihat: Definisi jenis perangkat adaptor.
Indeks Dev
Indeks Perangkat, misalnyaampmisalnya, jika hanya ada satu adaptor USB-CAN, nomor indeksnya adalah 0, jika ada beberapa adaptor USB-CAN, nomor indeks dalam urutan menaik mulai dari 0.
Disimpan
Parameter retensi, isi 0.
Pengembalian:
Nilai kembalian = 1, yang berarti operasi berhasil; = 0 menunjukkan bahwa operasi gagal; = -1 menandakan perangkat tidak ada.
2.2.2. VCI_TutupPerangkat
Fungsi ini digunakan untuk menutup koneksi.
DWORD __stdcall VCI_CloseDevice(Tipe Dev DWORD, Indeks Dev DWORD);
Parameternya:
Tipe Pengembang
Tipe perangkat. Lihat: Definisi jenis perangkat adaptor.
Indeks Dev
Indeks Perangkat, misalnyaampmisalnya, jika hanya ada satu adaptor USB-CAN, nomor indeksnya adalah 0, jika ada beberapa adaptor USB-CAN, nomor indeks dalam urutan menaik mulai dari 0.
Pengembalian:
Nilai kembalian = 1, yang berarti operasi berhasil; = 0 menunjukkan bahwa operasi gagal; = -1 menandakan perangkat tidak ada.
2.2.3. VCI_InitCan
Fungsi ini digunakan untuk menginisialisasi CAN yang ditentukan.
DWORD __stdcall VCI_InitCAN(DWORD DevType, DWORD DevIndex, DWORD CANIndex,
PVCI_INIT_CONFIG pInitConfig);
Parameternya:
Tipe Pengembang
Tipe perangkat. Lihat: Definisi jenis perangkat adaptor.
Indeks Dev
Indeks Perangkat, misalnyaampmisalnya, jika hanya ada satu adaptor USB-CAN, nomor indeksnya adalah 0, jika ada beberapa adaptor USB-CAN, nomor indeks dalam urutan menaik mulai dari 0.
Indeks DAPAT
Indeks saluran CAN, misalnya saluran CAN hanya ada satu maka nomor indeksnya 0, jika ada dua maka nomor indeksnya bisa 0 atau 1.
pInitConfig
Struktur parameter inisialisasi. Daftar parameter anggota:
Anggota | Deskripsi Fungsional |
pInitConfig->AccCode | AccCode dan AccMask dapat bekerja sama untuk menentukan paket mana yang dapat diterima. Kedua register ini digunakan untuk menyetel ID rata kiri, yaitu bit tertinggi (Bit31) dari AccCode dan AccMask disejajarkan dengan bit tertinggi nilai ID. |
pInitConfig->AccMask | Tentang penyelarasan ID lihat lampiran: Lampiran I: Detail penyelarasan ID. Misalnya: Jika Anda menetapkan nilai AccCode sebagai 0x24600000 (yaitu 0x123 digeser ke kiri sebesar 21 bit), nilai AccMask diatur ke 0x00000000, dan kemudian hanya paket dengan ID bingkai pesan CAN 0x123 yang dapat diterima (nilai AccMask 0x00000000 menunjukkan bahwa semua bit relevan |
bit). Jika nilai AccCode diatur ke 0x24600000, nilai AccMask diatur ke 0x600000 (0x03 digeser ke kiri sebesar 21 bit), dan kemudian hanya paket dengan ID bingkai pesan CAN adalah 0x120 ~ 0x123 yang dapat diterima (nilai AccMask 0x600000 menunjukkan bahwa selain bit0 ~ bit1, bit lain (bit2 ~ bit10) adalah bit yang relevan). Catatan: Pengaturan filter ini misamples ke bingkai standar, misalnyaample, 11-bit tinggi adalah bit yang valid; dalam kasus bingkai yang diperluas, dan ID yang valid adalah 29-bit. AccCode dan AccMask menetapkan 29-bit tinggi sebagai bit yang valid! |
|
pInitConfig->Dicadangkan | disimpan |
pInitConfig->Filter | Pengaturan mode pemfilteran silakan lihat bagian tabel mode filter. |
pInitConfig->Waktu0 | Pengaturan tingkat baudT0 |
pInitConfig->Waktu1 | Pengaturan tingkat baudT1 |
pInitConfig->Mode | Modus operasi: 0-operasi normal Mode 1-Dengarkan saja Mode pengujian penerimaan dan pengiriman 2-spontan (nilai ini dikecualikan dari pustaka fungsi ZLG) |
Tabel mode filter:
Nilai | Nama | Keterangan |
1 | Menerima semua jenis | Cocok untuk bingkai standar dan diperpanjang! |
2 | Hanya menerima bingkai standar | Cocok untuk bingkai standar, dan diperpanjang |
bingkai akan dihilangkan dengan penyaringan secara langsung! | ||
3 | Hanya menerima bingkai yang diperpanjang | Cocok untuk bingkai yang diperluas, dan bingkai standar akan dilepas penyaringan secara langsung! 。 |
Pengembalian:
Nilai kembalian = 1, yang berarti operasi berhasil; = 0 menunjukkan bahwa operasi gagal; = -1 menandakan perangkat tidak ada.
Misalnya
2.2.4. VCI_ReadBoardInfo
Fungsi ini digunakan untuk membaca informasi perangkat keras adaptor. Secara umum, hal ini dapat diabaikan.
DWORD __stdcall VCI_ReadBoardInfo(Tipe Pengembang DWORD,DWORD
DevIndex,PVCI_BOARD_INFO pInfo);
Parameternya:
Tipe Pengembang
Tipe perangkat. Lihat: Definisi jenis perangkat adaptor.
Indeks Dev
Indeks Perangkat, misalnyaampmisalnya, jika hanya ada satu adaptor USB-CAN, nomor indeksnya adalah 0, jika terdapat beberapa adaptor USB-CAN, nomor indeks dalam urutan menaik mulai dari 0. pInfo
VCI_BOARD_INFO digunakan untuk menyimpan penunjuk struktur informasi perangkat.
Pengembalian:
Nilai kembalian = 1, yang berarti operasi berhasil; = 0 menunjukkan bahwa operasi gagal; = -1 menandakan perangkat tidak ada.
2.2.5. VCI_GetReceiveNum
Fungsi ini digunakan untuk menentukan frame yang diterima tetapi belum dibaca di buffer penerima yang ditunjuk.
DWORD __stdcall VCI_GetReceiveNum(DWORD DevType,DWORD DevIndex,DWORD CANIndex);
Parameternya:
Tipe Pengembang
Tipe perangkat. Lihat: Definisi jenis perangkat adaptor.
Indeks Dev
Indeks Perangkat, misalnyaampmisalnya, jika hanya ada satu adaptor USB-CAN, nomor indeksnya adalah 0, jika ada beberapa adaptor USB-CAN, nomor indeksnya dalam urutan menaik mulai dari 0.
Indeks DAPAT
Indeks saluran BISA.
Pengembalian:
Kembalikan frame yang belum dibaca.
Misalnya
#termasuk “ControlCan.h” int ret=VCI_GetReceiveNum(2,0,0);
2.2.6. VCI_ClearBuffer
Fungsi ini digunakan untuk menghapus buffer penerimaan dan pengiriman dari saluran yang ditunjuk yang ditentukan oleh
Adaptor USB-CAN.
DWORD __stdcall VCI_ClearBuffer(DWORD DevType,DWORD DevIndex,DWORD CANIndex);
Parameternya:
Tipe Pengembang
Tipe perangkat. Lihat: Definisi jenis perangkat adaptor.
Indeks Dev
Indeks Perangkat, misalnyaampmisalnya, jika hanya ada satu adaptor USB-CAN, nomor indeksnya adalah 0, jika ada beberapa adaptor USB-CAN, nomor indeksnya dalam urutan menaik mulai dari 0.
Indeks DAPAT
Indeks saluran BISA.
Pengembalian:
Nilai kembalian = 1, yang berarti operasi berhasil; = 0 menunjukkan bahwa operasi gagal; = -1 menandakan perangkat tidak ada.
2.2.7. VCI_MulaiCAN
Fungsi ini digunakan untuk memulai pengontrol CAN dan fungsi penerimaan interupsi internal adaptor.
DWORD __stdcall VCI_StartCAN(DWORD DevType,DWORD DevIndex,DWORD CANIndex);
Parameternya:
Tipe Pengembang
Tipe perangkat. Lihat: Definisi jenis perangkat adaptor.
Indeks Dev
Indeks Perangkat, misalnyaampmisalnya, jika hanya ada satu adaptor USB-CAN, nomor indeksnya adalah 0, jika ada beberapa adaptor USB-CAN, nomor indeks dalam urutan menaik mulai dari 0.
Indeks DAPAT
Indeks saluran BISA.
Pengembalian:
Nilai kembalian = 1, yang berarti operasi berhasil; = 0 menunjukkan bahwa operasi gagal; = -1 menandakan perangkat tidak ada.
2.2.8. VCI_ResetCAN
Fungsi ini digunakan untuk mereset pengontrol CAN.
DWORD __stdcall VCI_ResetCAN(DWORD DevType,DWORD DevIndex,DWORD CANIndex);
Parameternya:
Tipe Pengembang
Tipe perangkat. Lihat: Definisi jenis perangkat adaptor.
Indeks Dev
Indeks Perangkat, misalnyaampmisalnya, jika hanya ada satu adaptor USB-CAN, nomor indeksnya adalah 0, jika ada beberapa adaptor USB-CAN, nomor indeks dalam urutan menaik mulai dari 0.
Indeks DAPAT
Indeks saluran BISA.
Pengembalian:
Nilai kembalian = 1, yang berarti operasi berhasil; = 0 menunjukkan bahwa operasi gagal; = -1 menandakan perangkat tidak ada.
2.2.9. VCI_Transmisi
Fungsi ini digunakan untuk mengirim bingkai pesan CAN.
DWORD __stdcall VCI_Transmit(Jenis Perangkat DWORD,Ind Perangkat DWORD,DWORD CANInd,PVCI_CAN_OBJ pSend,Panjang DWORD);
Parameternya:
Tipe Pengembang
Tipe perangkat. Lihat: Definisi jenis perangkat adaptor.
Indeks Dev
Indeks Perangkat, misalnyaampmisalnya, jika hanya ada satu adaptor USB-CAN, nomor indeksnya adalah 0, jika ada beberapa adaptor USB-CAN, nomor indeks dalam urutan menaik mulai dari 0.
Indeks DAPAT
Indeks saluran BISA. pKirim
Alamat pertama dari array bingkai data yang harus dikirim.
Panjang
Jumlah frame data yang harus dikirim, jumlah maksimal 1000, nilai yang disarankan 48 pada kecepatan tinggi.
Pengembalian:
Kembalikan jumlah frame sebenarnya yang sudah dikirim, nilai kembalian = -1 menunjukkan kesalahan perangkat.
Misalnya
2.2.10. VCI_Terima
Fungsi ini digunakan untuk meminta penerimaan.
DWORD __stdcall VCI_Receive(DWORD DevType, DWORD DevIndex, DWORD CANIndex, PVCI_CAN_OBJ pReceive, ULONG Len, INT WaitTime);
Parameternya:
Tipe Pengembang
Tipe perangkat. Lihat: Definisi jenis perangkat adaptor.
Indeks Dev
Indeks Perangkat, misalnyaampmisalnya, jika hanya ada satu adaptor USB-CAN, nomor indeksnya adalah 0, jika ada beberapa adaptor USB-CAN, nomor indeks dalam urutan menaik mulai dari 0.
Indeks DAPAT
Indeks saluran BISA.
terima
Untuk menerima penunjuk set pertama dari bingkai data.
Len
Panjang array bingkai data harus lebih dari 2500 untuk mengembalikan pesan normal.
Jika tidak, panjang pengembalian akan menjadi nol baik pesan diterima atau tidak. adaptor menyetel buffer 2000 bingkai untuk setiap saluran. Berdasarkan sistem dan lingkungan kerjanya sendiri, pengguna dapat memilih panjang array yang sesuai mulai dari 2500.
Waktu Tunggu Dicadangkan.
Pengembalian:
Mengembalikan jumlah frame yang sebenarnya telah dibaca, -1 menunjukkan kesalahan perangkat.
Misalnya
BAGIAN KETIGA DESKRIPSI FUNGSI DAN STRUKTUR DATA LAINNYA
Bab ini menjelaskan tipe data lain dan fungsi perpustakaan antarmuka ZLG yang tidak kompatibel yang terdapat dalam perpustakaan antarmuka adaptor USB-CAN ControlCAN.dll. Silakan lakukan
tidak memanggil fungsi-fungsi ini jika menggunakan model ZLG yang kompatibel untuk pengembangan sekunder agar tidak mempengaruhi kompatibilitas.
3.1 DESKRIPSI FUNGSI
3.1.1. VCI_UsbDeviceReset
Reset adaptor USB-CAN, perlu membuka kembali perangkat setelah reset dengan menggunakan VCI_OpenDevice.
DWORD __stdcall VCI_UsbDeviceReset (DWORD DevType, DWORD DevIndex, DWORD Dicadangkan
Parameternya:
Tipe Pengembang
Tipe perangkat. Lihat: Definisi jenis perangkat adaptor.
Indeks Dev
Indeks Perangkat, misalnyaampmisalnya, jika hanya ada satu adaptor USB-CAN, nomor indeksnya adalah 0, jika ada beberapa adaptor USB-CAN, nomor indeks dalam urutan menaik mulai dari 0.
Dicadangkan Dicadangkan.
Pengembalian:
Nilai kembalian = 1, yang berarti operasi berhasil; = 0 menunjukkan bahwa operasi gagal; = -1 menandakan perangkat tidak ada.
bRel = VCI_UsbDeviceReset(nDeviceType, Kemerdekaan, 0);
3.1.2. VCI_TemukanPerangkatUsb2
Ketika PC yang sama menggunakan beberapa USB-CAN, pengguna dapat menggunakan fungsi ini untuk menemukan perangkat saat ini.
DWORD __stdcall VCI_FindUsbDevice2(PVCI_BOARD_INFO pInfo);
Parameternya:
pInfo
pInfo digunakan untuk menyimpan parameter penunjuk alamat buffer data pertama.
Pengembalian
Kembalikan nomor adaptor USB-CAN yang dicolokkan ke komputer.
Bagian Keempat Fungsi Pustaka Antarmuka Menggunakan Proses
Untuk memperbanyak fungsi perangkat, kami menyediakan fungsi tambahan (fungsi disajikan dengan latar belakang hijau), fungsi tersebut meliputi: VCI_FindUsbDevice2 VCI_UsbDeviceReset. Selama pengembangan kedua, fungsi-fungsi ini tidak harus dijalankan. Meskipun fungsi ini diabaikan, semua fungsi adaptor USB-CAN dapat dicapai.
www.waveshare.com
www.waveshare.com/wiki
Dokumen / Sumber Daya
![]() |
Pustaka Fungsi Antarmuka Adaptor Antarmuka Bus USB-CAN WAVESHARE [Bahasa Indonesia:] Panduan Instruksi Pustaka Fungsi Antarmuka Adaptor Antar Muka USB-CAN, Pustaka Fungsi Antarmuka Adaptor Antar Muka Bus, Pustaka Fungsi Antarmuka, Pustaka Fungsi |