ການໂຕ້ຕອບ USB-CAN Bus
ຟັງຊັນການໂຕ້ຕອບຂອງອະແດບເຕີ
ຄໍາແນະນໍາຜູ້ໃຊ້ຫ້ອງສະຫມຸດ
ສ່ວນໜຶ່ງແລ້ວVIEW
ຖ້າຜູ້ໃຊ້ພຽງແຕ່ໃຊ້ອະແດບເຕີການໂຕ້ຕອບ USB-CAN bus ເພື່ອໄປທົດສອບການສື່ສານລົດເມ CAN, ແລະຫຼັງຈາກນັ້ນລາວສາມາດນໍາໃຊ້ຊອບແວ USB-CAN Tool ໂດຍກົງສໍາລັບການສົ່ງແລະຮັບຂໍ້ມູນການທົດສອບ.
ຖ້າຜູ້ໃຊ້ຕັ້ງໃຈຂຽນໂປຼແກຼມໂປຼແກຼມສໍາລັບຜະລິດຕະພັນຂອງຕົນເອງ. ກະລຸນາອ່ານຄໍາແນະນໍາຕໍ່ໄປນີ້ຢ່າງລະມັດລະວັງ ແລະເອົາເອກະສານອ້າງອີງຈາກ sampລະຫັດພວກເຮົາໃຫ້:
⑴ C++ Builder ⑵C# ⑶VC ⑷VB ⑸VB.NET ⑹Delphi ⑺LabVIEW ⑻ LabWindows/CVI ⑼Matlab ⑽QT ⑾ Python/Python-can.
ພັດທະນາຫ້ອງສະໝຸດ file :ControlCAN.lib, ControlCAN.DLL
ການປະກາດຟັງຊັນເວີຊັນ VC file :ControlCAN.h
ການປະກາດຟັງຊັນເວີຊັນ VB file: ControlCAN.bas
ຫ້ອງທົດລອງVIEW ໂມດູນຊຸດຟັງຊັນຫ້ອງສະໝຸດສະບັບ :ControlCAN.llb
ການປະກາດຟັງຊັນສະບັບ Delphi file: ControlCAN.pas
ພາກທີ 2 ຫ້ອງສະໝຸດຟັງຊັນທີ່ເຂົ້າກັນໄດ້ ແລະໂຄງສ້າງຂໍ້ມູນ
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 Series interface card ຂໍ້ມູນອຸປະກອນ.
ໂຄງສ້າງຈະຖືກຕື່ມໃສ່ໃນຟັງຊັນ VCI_ReadBoardInfo.
ສະມາຊິກ:
hw_Version
ໝາຍເລກລຸ້ນຮາດແວ, ໝາຍເລກເລກຖານສິບຫົກ. ຕົວຢ່າງ: 0x0100 ເປັນຕົວແທນ V1.00.
fw_Version
ໝາຍເລກລຸ້ນຮາດແວ, ໝາຍເລກເລກຖານສິບຫົກ. ຕົວຢ່າງ: 0x0100 ເປັນຕົວແທນ V1.00.
ໜ້າ 2
dr_Version
ໝາຍເລກເວີຊັນຂອງໄດເວີ, ໝາຍເລກເລກຖານສິບຫົກ. ຕົວຢ່າງ: 0x0100 ເປັນຕົວແທນ V1.00.
in_Version
ໝາຍເລກສະບັບຫ້ອງສະໝຸດການໂຕ້ຕອບ, ໝາຍເລກເລກຖານສິບຫົກ. ຕົວຢ່າງ: 0x0100 ເປັນຕົວແທນ V1.00.
irq_Num
ສະຫງວນລະບົບ.
can_Num
ເປັນຕົວແທນຈຳນວນທັງໝົດຂອງຊ່ອງ CAN.
str_Serial_Num
ໝາຍເລກລຳດັບຂອງບັດກະດານນີ້.
str_hw_ປະເພດ
ປະເພດຮາດແວເຊັ່ນ “USBCAN V1.00” (ໝາຍເຫດ: ລວມມີ string terminator '\0').
ສະຫງວນໄວ້
ສະຫງວນລະບົບ.
2.1.3. VCI_CAN_OBJ
ໃນຟັງຊັນ VCI_Transmit ແລະ VCI_Receive, ໂຄງສ້າງ VCI_CAN_OBJ ຖືກນໍາໃຊ້ເພື່ອສົ່ງກອບຂໍ້ຄວາມ CAN.
ສະມາຊິກ:
ID
ຕົວລະບຸຂໍ້ຄວາມ. ຮູບແບບ ID ກົງ, ຈັດຮຽງຂວາ, ກະລຸນາອ້າງອີງເຖິງ: ເອກະສານຊ້ອນທ້າຍໜຶ່ງ: ລາຍລະອຽດການຈັດຮຽງ ID.
ເວລາamp
ໄດ້ຮັບ stamp ຂໍ້ມູນຂອງຂອບເຂດທີ່ໃຊ້ເວລາ, ການເລີ່ມຕົ້ນກໍານົດເວລາທີ່ຕົວຄວບຄຸມ CAN ແມ່ນເລີ່ມຕົ້ນ, ຫນ່ວຍບໍລິການແມ່ນ 0. 1ms.
TimeFlag
ໃນຂໍ້ກໍານົດຂອງບໍ່ວ່າຈະໃຊ້ເວລາ stamp, 1 ແມ່ນ TimeStamp. TimeFlag ແລະ TimeStamp ມີຄວາມຫມາຍພຽງແຕ່ໃນເວລາທີ່ກອບໄດ້ຮັບ.
ປະເພດສົ່ງ
ປະເພດການສົ່ງ. = 0 ຊີ້ໃຫ້ເຫັນປະເພດປົກກະຕິ, = 1 ຊີ້ໃຫ້ເຫັນການສົ່ງດຽວ.
RemoteFlag
ບໍ່ວ່າຈະເປັນທຸງໄລຍະໄກ. = 1 ຊີ້ໃຫ້ເຫັນທຸງໄລຍະໄກ, = 0 ຊີ້ໃຫ້ເຫັນທຸງຂໍ້ມູນ.
ExternFlag
ບໍ່ວ່າຈະເປັນທຸງພາຍນອກ. = 1 ຊີ້ໃຫ້ເຫັນທຸງພາຍນອກ, = 0 ຊີ້ໃຫ້ເຫັນທຸງມາດຕະຖານ.
ຂໍ້ມູນເລນ
ຄວາມຍາວຂອງຂໍ້ມູນ (<=8), ນັ້ນແມ່ນຄວາມຍາວຂອງຂໍ້ມູນ.
ຂໍ້ມູນ
ຂໍ້ມູນແພັກເກັດ.
ສະຫງວນໄວ້
ສະຫງວນລະບົບ.
2.1.4. VCI_INIT_CONFIG
ໂຄງສ້າງ VCI_INIT_CONFIG ກໍານົດການຕັ້ງຄ່າເບື້ອງຕົ້ນຂອງ CAN. ໂຄງສ້າງຈະຖືກຕື່ມໃສ່ໃນຟັງຊັນ VCI_InitCan.
ສະມາຊິກ:
ລະຫັດ Acc
ໄດ້ຮັບລະຫັດຍອມຮັບການກັ່ນຕອງ.
AccMask
ໄດ້ຮັບຫນ້າກາກການກັ່ນຕອງ.
ສະຫງວນໄວ້
ສະຫງວນໄວ້.
ການກັ່ນຕອງ
ວິທີການການກັ່ນຕອງ, ອະນຸຍາດໃຫ້ກໍານົດຂອບເຂດ 0-3, ເບິ່ງພາກ 2.2.3 ຂອງຕາຕະລາງຮູບແບບການກັ່ນຕອງສໍາລັບລາຍລະອຽດ.
ເວລາ0
ພາຣາມິເຕີອັດຕາ SJA1000 Baud, Timing0 (BTR0).
ເວລາ1
ພາຣາມິເຕີອັດຕາ SJA1000 Baud, Timing1 (BTR1).
ໂໝດ
ໂຫມດປະຕິບັດງານ, 0 = ການດໍາເນີນງານປົກກະຕິ, 1 = ໂຫມດຟັງເທົ່ານັ້ນ, 2 = ໂຫມດການເຂົ້າ spontaneous ແລະສົ່ງການທົດສອບ.
ຂໍ້ສັງເກດ:
ກ່ຽວກັບການຕັ້ງຄ່າການກັ່ນຕອງກະລຸນາເບິ່ງ: ເອກະສານ II: ຄໍາແນະນໍາການຕັ້ງຄ່າ CANparameter.
CAN Timing0 ແລະ Timing1 ຖືກນໍາໃຊ້ເພື່ອກໍານົດອັດຕາ baud, ສອງຕົວກໍານົດການນີ້ຖືກນໍາໃຊ້ພຽງແຕ່ໃນຕອນເລີ່ມຕົ້ນ s.tage.
ຕາຕະລາງອ້າງອີງ Baud ທຳມະດາ:
CAN ອັດຕາການ Baud | Timing0(BTR0) | Timing1(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 |
- ຜູ້ໃຊ້ພຽງແຕ່ຕ້ອງການປະຕິບັດຕາມ SJA1000 (16MHz) ເພື່ອກໍານົດພາລາມິເຕີອັດຕາ Baud.
- ອະແດັບເຕີບໍ່ຮອງຮັບອັດຕາ Baud ຕໍ່າກວ່າ 10K ຊົ່ວຄາວ.
2.2. ການອະທິບາຍຟັງຊັນ
2.2.1. VCI_OpenDevice
ຟັງຊັນນີ້ຖືກນໍາໃຊ້ເພື່ອເຊື່ອມຕໍ່ອຸປະກອນ.
DWORD __stdcall VCI_OpenDevice(DWORD DevType,DWORD DevIndex,DWORD Reserved);
ພາລາມິເຕີ:
ປະເພດ Dev
ປະເພດອຸປະກອນ. ເບິ່ງ: ຄໍານິຍາມປະເພດອຸປະກອນອະແດບເຕີ.
DevIndex
ດັດຊະນີອຸປະກອນ, ສໍາລັບການຍົກຕົວຢ່າງample, ເມື່ອມີອະແດບເຕີ USB-CAN ອັນດຽວ, ຕົວເລກດັດຊະນີແມ່ນ 0, ເມື່ອມີອະແດບເຕີ USB-CAN ຫຼາຍອັນ, ຕົວເລກດັດສະນີໃນລຳດັບຈາກນ້ອຍຫາໃຫຍ່ເລີ່ມຈາກ 0.
ສະຫງວນໄວ້
ຕົວກໍານົດການເກັບຮັກສາ, ຕື່ມຂໍ້ມູນໃສ່ໃນ 0.
ຜົນຕອບແທນ:
ມູນຄ່າກັບຄືນ = 1, ຊຶ່ງຫມາຍຄວາມວ່າການດໍາເນີນງານປະສົບຜົນສໍາເລັດ; = 0 ຊີ້ໃຫ້ເຫັນວ່າການດໍາເນີນງານລົ້ມເຫລວ; = -1 ຊີ້ໃຫ້ເຫັນວ່າອຸປະກອນບໍ່ມີຢູ່.
2.2.2. VCI_ປິດອຸປະກອນ
ຟັງຊັນນີ້ຖືກນໍາໃຊ້ເພື່ອປິດການເຊື່ອມຕໍ່.
DWORD __stdcall VCI_CloseDevice(DWORD DevType,DWORD DevIndex);
ພາລາມິເຕີ:
ປະເພດ Dev
ປະເພດອຸປະກອນ. ເບິ່ງ: ຄໍານິຍາມປະເພດອຸປະກອນອະແດບເຕີ.
DevIndex
ດັດຊະນີອຸປະກອນ, ສໍາລັບການຍົກຕົວຢ່າງample, ເມື່ອມີອະແດບເຕີ USB-CAN ອັນດຽວ, ຕົວເລກດັດຊະນີແມ່ນ 0, ເມື່ອມີອະແດບເຕີ USB-CAN ຫຼາຍອັນ, ຕົວເລກດັດສະນີໃນລຳດັບຈາກນ້ອຍຫາໃຫຍ່ເລີ່ມຈາກ 0.
ຜົນຕອບແທນ:
ມູນຄ່າກັບຄືນ = 1, ຊຶ່ງຫມາຍຄວາມວ່າການດໍາເນີນງານປະສົບຜົນສໍາເລັດ; = 0 ຊີ້ໃຫ້ເຫັນວ່າການດໍາເນີນງານລົ້ມເຫລວ; = -1 ຊີ້ໃຫ້ເຫັນວ່າອຸປະກອນບໍ່ມີຢູ່.
2.2.3. VCI_InitCan
ຟັງຊັນນີ້ຖືກນໍາໃຊ້ເພື່ອເລີ່ມຕົ້ນ CAN ທີ່ລະບຸໄວ້.
DWORD __stdcall VCI_InitCAN(DWORD DevType, DWORD DevIndex, DWORD CANIndex,
PVCI_INIT_CONFIG pInitConfig);
ພາລາມິເຕີ:
ປະເພດ Dev
ປະເພດອຸປະກອນ. ເບິ່ງ: ຄໍານິຍາມປະເພດອຸປະກອນອະແດບເຕີ.
DevIndex
ດັດຊະນີອຸປະກອນ, ສໍາລັບການຍົກຕົວຢ່າງample, ເມື່ອມີອະແດບເຕີ USB-CAN ອັນດຽວ, ຕົວເລກດັດຊະນີແມ່ນ 0, ເມື່ອມີອະແດບເຕີ USB-CAN ຫຼາຍອັນ, ຕົວເລກດັດສະນີໃນລຳດັບຈາກນ້ອຍຫາໃຫຍ່ເລີ່ມຈາກ 0.
CANIdex
CAN channel index, ເຊັ່ນ: ເມື່ອມີພຽງແຕ່ຊ່ອງ CAN, ຕົວເລກດັດຊະນີແມ່ນ 0, ຖ້າມີສອງ, ຕົວເລກດັດຊະນີສາມາດເປັນ 0 ຫຼື 1.
pInitConfig
ໂຄງສ້າງຕົວກໍານົດການເລີ່ມຕົ້ນ. ບັນຊີລາຍຊື່ພາລາມິເຕີຂອງສະມາຊິກ:
ສະມາຊິກ | ຄໍາອະທິບາຍຫນ້າທີ່ |
pInitConfig->AccCode | AccCode ແລະ AccMask ສາມາດເຮັດວຽກຮ່ວມກັນເພື່ອກໍານົດວ່າແພັກເກັດໃດສາມາດຍອມຮັບໄດ້. ທັງສອງທະບຽນນີ້ຖືກນໍາໃຊ້ເພື່ອກໍານົດ ID ຊ້າຍ, ນັ້ນແມ່ນ, bit ສູງສຸດ (Bit31) ຂອງ AccCode ແລະ AccMask ແມ່ນສອດຄ່ອງກັບ bit ສູງສຸດຂອງຄ່າ ID. |
pInitConfig->AccMask | ກ່ຽວກັບການຈັດຮຽງ ID ອ້າງອີງເອກະສານຊ້ອນທ້າຍ: ເອກະສານຊ້ອນທ້າຍ I: ລາຍລະອຽດການຈັດຮຽງ ID. ຕົວຢ່າງ: ຖ້າເຈົ້າຕັ້ງຄ່າຂອງ AccCode ເປັນ 0x24600000 (ເຊັ່ນ: 0x123 ຖືກຍ້າຍໄປທາງຊ້າຍ 21 bits), ຄ່າ AccMask ຖືກຕັ້ງເປັນ 0x00000000, ແລະຫຼັງຈາກນັ້ນພຽງແຕ່ແພັກເກັດທີ່ມີ ID ກອບຂໍ້ຄວາມ CAN ແມ່ນ 0x123 ທີ່ສາມາດຍອມຮັບໄດ້ (ຄ່າ AccMask ຂອງ 0x00000000 ຊີ້ໃຫ້ເຫັນວ່າທຸກບິດມີຄວາມກ່ຽວຂ້ອງ. |
ບິດ). ຖ້າຄ່າ AccCode ຖືກຕັ້ງເປັນ 0x24600000, ຄ່າ AccMask ຖືກຕັ້ງເປັນ 0x600000 (0x03 ຖືກຍ້າຍໄປທາງຊ້າຍ 21 ບິດ), ແລະຫຼັງຈາກນັ້ນພຽງແຕ່ແພັກເກັດທີ່ມີ ID ກອບຂໍ້ຄວາມ CAN ແມ່ນ 0x120 ~ 0x123 ສາມາດຍອມຮັບໄດ້ (ຄ່າ AccMask 0x600000 ຊີ້ໃຫ້ເຫັນວ່ານອກຈາກ bit0 ~ bit1 bits ອື່ນໆ (bit2 ~ bit10) ແມ່ນ bit ທີ່ກ່ຽວຂ້ອງ). ໝາຍເຫດ: ການຕັ້ງຄ່າຕົວກອງນີ້ examples ກັບກອບມາດຕະຖານ, ສໍາລັບການຍົກຕົວຢ່າງample, high 11-bit ແມ່ນ bit ທີ່ຖືກຕ້ອງ; ໃນກໍລະນີຂອງກອບຂະຫຍາຍ, ແລະຫຼັງຈາກນັ້ນ ID ທີ່ຖືກຕ້ອງແມ່ນ 29-bit. AccCode ແລະ AccMask ຕັ້ງສູງ 29-bit ເປັນບິດທີ່ຖືກຕ້ອງ! |
|
pInitConfig->ສະຫງວນໄວ້ | ສະຫງວນ |
pInitConfig->ການກັ່ນຕອງ | ການຕັ້ງຄ່າຮູບແບບການກັ່ນຕອງກະລຸນາເບິ່ງພາກສ່ວນຂອງຕາຕະລາງຮູບແບບການກັ່ນຕອງ. |
pInitConfig->Timing0 | ການຕັ້ງຄ່າ Baud rateT0 |
pInitConfig->Timing1 | ການຕັ້ງຄ່າ Baud rateT1 |
pInitConfig->ໂໝດ | ຮູບແບບການເຮັດວຽກ: 0- ການດໍາເນີນງານປົກກະຕິ 1-ໂໝດຟັງເທົ່ານັ້ນ 2-spontaneous admission and sending mode (ຄ່ານີ້ແມ່ນໄດ້ຖືກຍົກເວັ້ນຈາກຫ້ອງສະຫມຸດການທໍາງານ ZLG) |
ຕາຕະລາງຮູບແບບການກັ່ນຕອງ:
ມູນຄ່າ | ຊື່ | ລາຍລະອຽດ |
1 | ຮັບທຸກປະເພດ | ເຫມາະສົມກັບທັງມາດຕະຖານແລະກອບຂະຫຍາຍ! |
2 | ໄດ້ຮັບພຽງແຕ່ກອບມາດຕະຖານ | ເຫມາະສົມກັບກອບມາດຕະຖານ, ແລະຂະຫຍາຍ |
ກອບຈະຖືກເອົາອອກໂດຍການຕອງໂດຍກົງ! | ||
3 | ໄດ້ຮັບພຽງແຕ່ກອບຂະຫຍາຍ | ເຫມາະສົມກັບກອບຂະຫຍາຍ, ແລະກອບມາດຕະຖານຈະຖືກໂຍກຍ້າຍອອກໂດຍ ການກັ່ນຕອງໂດຍກົງ! . |
ຜົນຕອບແທນ:
ມູນຄ່າກັບຄືນ = 1, ຊຶ່ງຫມາຍຄວາມວ່າການດໍາເນີນງານປະສົບຜົນສໍາເລັດ; = 0 ຊີ້ໃຫ້ເຫັນວ່າການດໍາເນີນງານລົ້ມເຫລວ; = -1 ຊີ້ໃຫ້ເຫັນວ່າອຸປະກອນບໍ່ມີຢູ່.
ຕົວຢ່າງ
2.2.4. VCI_ReadBoardInfo
ຟັງຊັນນີ້ຖືກນໍາໃຊ້ເພື່ອອ່ານຂໍ້ມູນຮາດແວຂອງອະແດບເຕີ. ໂດຍທົ່ວໄປແລ້ວ, ມັນສາມາດຖືກລະເລີຍ.
DWORD __stdcall VCI_ReadBoardInfo(DWORD DevType,DWORD
DevIndex,PVCI_BOARD_INFO pInfo);
ພາລາມິເຕີ:
ປະເພດ Dev
ປະເພດອຸປະກອນ. ເບິ່ງ: ຄໍານິຍາມປະເພດອຸປະກອນອະແດບເຕີ.
DevIndex
ດັດຊະນີອຸປະກອນ, ສໍາລັບການຍົກຕົວຢ່າງample, ເມື່ອມີອະແດບເຕີ USB-CAN ອັນດຽວ, ຕົວເລກດັດຊະນີແມ່ນ 0, ເມື່ອມີອະແດບເຕີ USB-CAN ຫຼາຍອັນ, ຕົວເລກດັດຊະນີຕາມລຳດັບຈາກນ້ອຍຫາໃຫຍ່ເລີ່ມຈາກ 0. pInfo
VCI_BOARD_INFO ຖືກນໍາໃຊ້ເພື່ອເກັບຮັກສາຕົວຊີ້ໂຄງສ້າງຂໍ້ມູນອຸປະກອນ.
ຜົນຕອບແທນ:
ມູນຄ່າກັບຄືນ = 1, ຊຶ່ງຫມາຍຄວາມວ່າການດໍາເນີນງານປະສົບຜົນສໍາເລັດ; = 0 ຊີ້ໃຫ້ເຫັນວ່າການດໍາເນີນງານລົ້ມເຫລວ; = -1 ຊີ້ໃຫ້ເຫັນວ່າອຸປະກອນບໍ່ມີຢູ່.
2.2.5. VCI_GetReceiveNum
ຟັງຊັນນີ້ຖືກນໍາໃຊ້ເພື່ອລະບຸການໄດ້ຮັບແຕ່ຍັງບໍ່ໄດ້ອ່ານເຟຣມໃນ buffer ຮັບກໍານົດ.
DWORD __stdcall VCI_GetReceiveNum(DWORD DevType,DWORD DevIndex,DWORD CANIndex);
ພາລາມິເຕີ:
ປະເພດ Dev
ປະເພດອຸປະກອນ. ເບິ່ງ: ຄໍານິຍາມປະເພດອຸປະກອນອະແດບເຕີ.
DevIndex
ດັດຊະນີອຸປະກອນ, ສໍາລັບການຍົກຕົວຢ່າງample, ເມື່ອມີອະແດບເຕີ USB-CAN ໂຕດຽວ, ຕົວເລກດັດຊະນີແມ່ນ 0, ເມື່ອມີອະແດັບເຕີ USB-CAN ຫຼາຍອັນ, ຕົວເລກດັດຊະນີໃນລຳດັບຕັ້ງຊັນຂຶ້ນເລີ່ມຈາກ 0.
CANIdex
CAN ດັດຊະນີຊ່ອງ.
ຜົນຕອບແທນ:
ກັບຄືນເຟຣມທີ່ຍັງບໍ່ໄດ້ອ່ານເທື່ອ.
ຕົວຢ່າງ
#include “ControlCan.h” int ret=VCI_GetReceiveNum(2,0,0);
2.2.6. VCI_ClearBuffer
ຟັງຊັນນີ້ໃຊ້ເພື່ອລຶບລ້າງການຮັບ ແລະສົ່ງ buffer ຂອງຊ່ອງທີ່ກໍານົດໄວ້ໂດຍ
ອະແດັບເຕີ USB-CAN.
DWORD __stdcall VCI_ClearBuffer(DWORD DevType,DWORD DevIndex,DWORD CANIndex);
ພາລາມິເຕີ:
ປະເພດ Dev
ປະເພດອຸປະກອນ. ເບິ່ງ: ຄໍານິຍາມປະເພດອຸປະກອນອະແດບເຕີ.
DevIndex
ດັດຊະນີອຸປະກອນ, ສໍາລັບການຍົກຕົວຢ່າງample, ເມື່ອມີອະແດບເຕີ USB-CAN ໂຕດຽວ, ຕົວເລກດັດຊະນີແມ່ນ 0, ເມື່ອມີອະແດັບເຕີ USB-CAN ຫຼາຍອັນ, ຕົວເລກດັດຊະນີໃນລຳດັບຕັ້ງຊັນຂຶ້ນເລີ່ມຈາກ 0.
CANIdex
CAN ດັດຊະນີຊ່ອງ.
ຜົນຕອບແທນ:
ມູນຄ່າກັບຄືນ = 1, ຊຶ່ງຫມາຍຄວາມວ່າການດໍາເນີນງານປະສົບຜົນສໍາເລັດ; = 0 ຊີ້ໃຫ້ເຫັນວ່າການດໍາເນີນງານລົ້ມເຫລວ; = -1 ຊີ້ໃຫ້ເຫັນວ່າອຸປະກອນບໍ່ມີຢູ່.
2.2.7. VCI_StartCAN
ຟັງຊັນນີ້ຖືກນໍາໃຊ້ເພື່ອເລີ່ມຕົ້ນຕົວຄວບຄຸມ CAN ແລະຟັງຊັນການຮັບລົບກວນພາຍໃນຂອງອະແດບເຕີ.
DWORD __stdcall VCI_StartCAN(DWORD DevType,DWORD DevIndex,DWORD CANIndex);
ພາລາມິເຕີ:
ປະເພດ Dev
ປະເພດອຸປະກອນ. ເບິ່ງ: ຄໍານິຍາມປະເພດອຸປະກອນອະແດບເຕີ.
DevIndex
ດັດຊະນີອຸປະກອນ, ສໍາລັບການຍົກຕົວຢ່າງample, ເມື່ອມີອະແດບເຕີ USB-CAN ອັນດຽວ, ຕົວເລກດັດຊະນີແມ່ນ 0, ເມື່ອມີອະແດບເຕີ USB-CAN ຫຼາຍອັນ, ຕົວເລກດັດສະນີໃນລຳດັບຈາກນ້ອຍຫາໃຫຍ່ເລີ່ມຈາກ 0.
CANIdex
CAN ດັດຊະນີຊ່ອງ.
ຜົນຕອບແທນ:
ມູນຄ່າກັບຄືນ = 1, ຊຶ່ງຫມາຍຄວາມວ່າການດໍາເນີນງານປະສົບຜົນສໍາເລັດ; = 0 ຊີ້ໃຫ້ເຫັນວ່າການດໍາເນີນງານລົ້ມເຫລວ; = -1 ຊີ້ໃຫ້ເຫັນວ່າອຸປະກອນບໍ່ມີຢູ່.
2.2.8. VCI_ResetCAN
ຟັງຊັນນີ້ຖືກໃຊ້ເພື່ອຣີເຊັດຕົວຄວບຄຸມ CAN.
DWORD __stdcall VCI_ResetCAN(DWORD DevType,DWORD DevIndex,DWORD CANIndex);
ພາລາມິເຕີ:
ປະເພດ Dev
ປະເພດອຸປະກອນ. ເບິ່ງ: ຄໍານິຍາມປະເພດອຸປະກອນອະແດບເຕີ.
DevIndex
ດັດຊະນີອຸປະກອນ, ສໍາລັບການຍົກຕົວຢ່າງample, ເມື່ອມີອະແດບເຕີ USB-CAN ອັນດຽວ, ຕົວເລກດັດຊະນີແມ່ນ 0, ເມື່ອມີອະແດບເຕີ USB-CAN ຫຼາຍອັນ, ຕົວເລກດັດສະນີໃນລຳດັບຈາກນ້ອຍຫາໃຫຍ່ເລີ່ມຈາກ 0.
CANIdex
CAN ດັດຊະນີຊ່ອງ.
ຜົນຕອບແທນ:
ມູນຄ່າກັບຄືນ = 1, ຊຶ່ງຫມາຍຄວາມວ່າການດໍາເນີນງານປະສົບຜົນສໍາເລັດ; = 0 ຊີ້ໃຫ້ເຫັນວ່າການດໍາເນີນງານລົ້ມເຫລວ; = -1 ຊີ້ໃຫ້ເຫັນວ່າອຸປະກອນບໍ່ມີຢູ່.
2.2.9. VCI_Transmit
ຟັງຊັນນີ້ຖືກນໍາໃຊ້ເພື່ອສົ່ງກອບຂໍ້ຄວາມ CAN.
DWORD __stdcall VCI_Transmit(DWORD DeviceType,DWORD DeviceInd,DWORD CANInd,PVCI_CAN_OBJ pSend,DWORD Length);
ພາລາມິເຕີ:
ປະເພດ Dev
ປະເພດອຸປະກອນ. ເບິ່ງ: ຄໍານິຍາມປະເພດອຸປະກອນອະແດບເຕີ.
DevIndex
ດັດຊະນີອຸປະກອນ, ສໍາລັບການຍົກຕົວຢ່າງample, ເມື່ອມີອະແດບເຕີ USB-CAN ອັນດຽວ, ຕົວເລກດັດຊະນີແມ່ນ 0, ເມື່ອມີອະແດບເຕີ USB-CAN ຫຼາຍອັນ, ຕົວເລກດັດສະນີໃນລຳດັບຈາກນ້ອຍຫາໃຫຍ່ເລີ່ມຈາກ 0.
CANIdex
CAN ດັດຊະນີຊ່ອງ. pSend
ທີ່ຢູ່ທໍາອິດຂອງ array frame ຂໍ້ມູນທີ່ຕ້ອງການສົ່ງ.
ຄວາມຍາວ
ຈໍານວນຂອງກອບຂໍ້ມູນທີ່ຕ້ອງຖືກສົ່ງ, ຈໍານວນສູງສຸດແມ່ນ 1000, ຄ່າແນະນໍາແມ່ນ 48 ພາຍໃຕ້ຄວາມໄວສູງ.
ຜົນຕອບແທນ:
ສົ່ງຄືນຕົວເລກຕົວຈິງຂອງເຟຣມທີ່ສົ່ງແລ້ວ, ຄ່າກັບຄືນ = -1 ຊີ້ໃຫ້ເຫັນເຖິງຂໍ້ຜິດພາດຂອງອຸປະກອນ.
ຕົວຢ່າງ
2.2.10. VCI_ຮັບ
ຟັງຊັນນີ້ຖືກນໍາໃຊ້ເພື່ອຮ້ອງຂໍການຕ້ອນຮັບ.
DWORD __stdcall VCI_Receive(DWORD DevType, DWORD DevIndex, DWORD CANIndex, PVCI_CAN_OBJ pReceive, ULONG Len, INT WaitTime);
ພາລາມິເຕີ:
ປະເພດ Dev
ປະເພດອຸປະກອນ. ເບິ່ງ: ຄໍານິຍາມປະເພດອຸປະກອນອະແດບເຕີ.
DevIndex
ດັດຊະນີອຸປະກອນ, ສໍາລັບການຍົກຕົວຢ່າງample, ເມື່ອມີອະແດບເຕີ USB-CAN ອັນດຽວ, ຕົວເລກດັດຊະນີແມ່ນ 0, ເມື່ອມີອະແດບເຕີ USB-CAN ຫຼາຍອັນ, ຕົວເລກດັດສະນີໃນລຳດັບຈາກນ້ອຍຫາໃຫຍ່ເລີ່ມຈາກ 0.
CANIdex
CAN ດັດຊະນີຊ່ອງ.
ຮັບ
ເພື່ອຮັບເອົາຕົວຊີ້ຊຸດທໍາອິດຂອງກອບຂໍ້ມູນ.
ເລນ
ຄວາມຍາວຂອງອາເຣຂອງກອບຂໍ້ມູນຕ້ອງມີຫຼາຍກວ່າ 2500 ເພື່ອສົ່ງຄືນຂໍ້ຄວາມປົກກະຕິ.
ຖ້າບໍ່ດັ່ງນັ້ນ, ຄວາມຍາວກັບຄືນຈະເປັນສູນບໍ່ວ່າຈະໄດ້ຮັບຂໍ້ຄວາມຫຼືບໍ່. ອະແດບເຕີກໍານົດ 2000-frame buffer ສໍາລັບທຸກໆຊ່ອງ. ອີງຕາມລະບົບຂອງຕົນເອງແລະສະພາບແວດລ້ອມການເຮັດວຽກ, ຜູ້ໃຊ້ສາມາດເລືອກຄວາມຍາວຂອງອາເລທີ່ເຫມາະສົມຈາກ 2500.
ຈອງເວລາລໍຖ້າ.
ຜົນຕອບແທນ:
ກັບຄືນຈໍານວນຂອງເຟຣມທີ່ຕົວຈິງແລ້ວໄດ້ອ່ານ, -1 ຊີ້ໃຫ້ເຫັນຄວາມຜິດພາດອຸປະກອນ.
ຕົວຢ່າງ
ສ່ວນສາມຟັງຊັນອື່ນ ແລະຄຳອະທິບາຍໂຄງສ້າງຂໍ້ມູນ
ບົດນີ້ອະທິບາຍເຖິງປະເພດຂໍ້ມູນອື່ນໆ ແລະໜ້າທີ່ຂອງຫ້ອງສະໝຸດອິນເຕີເຟດ ZLG ທີ່ບໍ່ສາມາດເຂົ້າກັນໄດ້ທີ່ມີຢູ່ໃນຫ້ອງສະໝຸດສ່ວນຕິດຕໍ່ຂອງອະແດັບເຕີ USB-CAN ControlCAN.dll. ກະລຸນາເຮັດ
ຢ່າເອີ້ນຟັງຊັນເຫຼົ່ານີ້ຖ້າໃຊ້ຕົວແບບ ZLG ທີ່ເຂົ້າກັນໄດ້ສໍາລັບການພັດທະນາຂັ້ນສອງເພື່ອບໍ່ໃຫ້ຜົນກະທົບຕໍ່ຄວາມເຂົ້າກັນໄດ້.
3.1 ຄຳອະທິບາຍຟັງຊັນ
3.1.1. VCI_UsbDeviceReset
ຣີເຊັດອະແດັບເຕີ USB-CAN, ຕ້ອງການເປີດອຸປະກອນຄືນໃໝ່ຫຼັງຈາກຣີເຊັດໂດຍໃຊ້ VCI_OpenDevice.
DWORD __stdcall VCI_UsbDeviceReset(DWORD DevType,DWORD DevIndex,DWORD Reserved
ພາລາມິເຕີ:
ປະເພດ Dev
ປະເພດອຸປະກອນ. ເບິ່ງ: ຄໍານິຍາມປະເພດອຸປະກອນອະແດບເຕີ.
DevIndex
ດັດຊະນີອຸປະກອນ, ສໍາລັບການຍົກຕົວຢ່າງample, ເມື່ອມີອະແດບເຕີ USB-CAN ອັນດຽວ, ຕົວເລກດັດຊະນີແມ່ນ 0, ເມື່ອມີອະແດບເຕີ USB-CAN ຫຼາຍອັນ, ຕົວເລກດັດສະນີໃນລຳດັບຈາກນ້ອຍຫາໃຫຍ່ເລີ່ມຈາກ 0.
ສະຫງວນໄວ້.
ຜົນຕອບແທນ:
ມູນຄ່າກັບຄືນ = 1, ຊຶ່ງຫມາຍຄວາມວ່າການດໍາເນີນງານປະສົບຜົນສໍາເລັດ; = 0 ຊີ້ໃຫ້ເຫັນວ່າການດໍາເນີນງານລົ້ມເຫລວ; = -1 ຊີ້ໃຫ້ເຫັນວ່າອຸປະກອນບໍ່ມີຢູ່.
bRel = VCI_UsbDeviceReset(nDeviceType, ເອກະລາດ, 0);
3.1.2. VCI_FindUsbDevice2
ເມື່ອ PC ດຽວກັນໂດຍໃຊ້ USB-CAN ຫຼາຍ, ຜູ້ໃຊ້ສາມາດໃຊ້ຟັງຊັນນີ້ເພື່ອຊອກຫາອຸປະກອນປະຈຸບັນ.
DWORD __stdcall VCI_FindUsbDevice2(PVCI_BOARD_INFO pInfo);
ພາລາມິເຕີ:
pInfo
pInfo ຖືກນໍາໃຊ້ເພື່ອເກັບຮັກສາພາລາມິເຕີຂອງຕົວຊີ້ທີ່ຢູ່ buffer ຂໍ້ມູນທໍາອິດ.
ກັບຄືນ
ສົ່ງຄືນຕົວເລກຂອງອະແດັບເຕີ USB-CAN ທີ່ສຽບໃສ່ກັບຄອມພິວເຕີ.
ສ່ວນສີ່ຫນ້າທີ່ຫ້ອງສະຫມຸດການໂຕ້ຕອບການນໍາໃຊ້ຂະບວນການ
ໃນຄໍາສັ່ງທີ່ຈະເພີ່ມການທໍາງານຂອງອຸປະກອນ, ພວກເຮົາໄດ້ສະຫນອງການເພີ່ມເຕີມ (ຟັງຊັນທີ່ນໍາສະເຫນີເປັນພື້ນຫລັງສີຂຽວ), ຟັງຊັນເຫຼົ່ານີ້ປະກອບມີ: VCI_FindUsbDevice2 VCI_UsbDeviceReset. ໃນລະຫວ່າງການພັດທະນາຄັ້ງທີສອງ, ຫນ້າທີ່ເຫຼົ່ານີ້ບໍ່ຈໍາເປັນຕ້ອງຖືກຮຽກຮ້ອງ. ເຖິງແມ່ນວ່າຟັງຊັນເຫຼົ່ານີ້ຖືກລະເລີຍ, ຟັງຊັນອະແດບເຕີ USB-CAN ທັງໝົດສາມາດເຮັດໄດ້.
www.waveshare.com
www.waveshare.com/wiki
ເອກະສານ / ຊັບພະຍາກອນ
![]() |
WAVESHARE USB-CAN Bus Inter face ຫ້ອງສະໝຸດຟັງຊັນອິນເຕີເຟດອະແດັບເຕີ [pdf] ຄູ່ມືການສອນ USB-CAN Bus Inter face Adapter Interface ຫໍສະໝຸດ, USB-CAN, Bus Inter face Adapter Interface ຫໍສະໝຸດ, ຫໍສະໝຸດຟັງຊັນການໂຕ້ຕອບ, ຫ້ອງສະໝຸດຟັງຊັນ |