לוגו WAVESHAREממשק אפיק USB-CAN
פונקציית ממשק מתאם
הדרכה למשתמש בספרייהWAVESHARE USB CAN Bus Inter face מתאם ספריית פונקציות ממשק

חלק ראשון נגמרVIEW

אם המשתמש פשוט משתמש במתאם ממשק אוטובוס USB-CAN כדי לעבור לבדיקת תקשורת CAN אפיק, ואז הוא יכול להשתמש ישירות בתוכנת ה-USB-CAN Tool המסופקת לשליחה וקבלה של נתוני הבדיקה.
אם המשתמש מתכוון לכתוב תוכנה עבור המוצרים שלו. אנא קרא בעיון את ההוראות הבאות ולקחת הפניה מהס'ampהקוד שאנו מספקים:
⑴ 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
הצהרת פונקציה של גרסת דלפי file: ControlCAN.pas

חלק שני ספריית פונקציות תואמת ומבנה נתונים

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 Bus Inter face מתאם ספריית פונקציות ממשק - איור 1

חבר:
hw_Version
מספר גרסת החומרה, סימון הקסדצימלי. למשל 0x0100 מייצג את V1.00.
fw_Version
מספר גרסת החומרה, סימון הקסדצימלי. למשל 0x0100 מייצג את V1.00.
עמוד 2
dr_Version

מספר גרסת מנהל ההתקן, סימון הקסדצימלי. למשל 0x0100 מייצג את V1.00.
in_Version
מספר גרסת ספריית הממשק, סימון הקסדצימלי. למשל 0x0100 מייצג את V1.00.
irq_Num
מערכת שמורות.
יכול_מספר
מייצג את המספר הכולל של ערוצי CAN.
str_Serial_Num
המספר הסידורי של כרטיס הלוח הזה.
str_hw_Type
סוג החומרה, כגון "USBCAN V1.00" (הערה: כולל מסיים מחרוזת '\0').
שָׁמוּר
מערכת שמורות.
2.1.3. VCI_CAN_OBJ
בפונקציות VCI_Transmit ו-VCI_Receive, נעשה שימוש במבנה VCI_CAN_OBJ להעברת מסגרת הודעות CAN.

WAVESHARE USB CAN Bus Inter face מתאם ספריית פונקציית ממשק - איור

חבר:
ID
מזהה הודעה. פורמט מזהה ישיר, מיושר לימין, עיין ב: נספח ראשון: פרטי יישור מזהה.
TimeStamp
קבלת הסטamp מידע על מסגרת הזמן, התחל תזמון כאשר בקר CAN מאותחל, היחידה היא 0. 1ms.
דגל זמן
מבחינת האם להשתמש בזמן stamp, 1הוא ה-TimeStamp. TimeFlag ו-TimeStamp הם בעלי משמעות רק כאשר המסגרת מתקבלת.
SendType
סוג שליחה. = 0 מציין סוג רגיל, = 1 מציין שליחה בודדת.
דגל מרוחק
בין אם זה דגל מרוחק. = 1 מציין דגל מרחוק, = 0 מציין דגל נתונים.
דגל חיצוני
בין אם זה דגל חיצוני. = 1 מציין דגל חיצוני, = 0 מציין דגל סטנדרטי.
DataLen
אורך נתונים (<=8), כלומר אורך הנתונים.
נְתוּנִים
נתוני מנות.
שָׁמוּר
מערכת שמורות.
2.1.4. VCI_INIT_CONFIG
מבנה VCI_INIT_CONFIG מגדיר את תצורת האתחול של ה-CAN. המבנה ימולא בפונקציית VCI_InitCan.

WAVESHARE USB CAN Bus Inter face מתאם ספריית פונקציות ממשק - איור 2

חבר:
AccCode
קבל קוד קבלה מסונן.
AccMask
קבלת מסיכת מסנן.
שָׁמוּר
שָׁמוּר.
לְסַנֵן
שיטת סינון, המאפשרת טווח הגדרה 0-3, עיין בסעיף 2.2.3 בטבלת מצבי הסינון לפרטים.
תזמון 0
SJA1000 פרמטר קצב Baud, Timing0 (BTR0) .
תזמון 1
SJA1000 פרמטר קצב Baud, Timing1 (BTR1) .
מצב
מצב תפעול, 0 = פעולה רגילה, 1 = מצב האזנה בלבד, 2 = קבלה ספונטנית ומצב מבחן שליחה.
הערות:
לגבי הגדרות המסנן, עיין ב: נספח II: הוראות הגדרת CANparameter.
CAN Timing0 ו- Timing1 משמשים לקביעת קצב ההחזרה, שני הפרמטרים הללו משמשים רק באתחול stage.
טבלת התייחסות קונבנציונלית של Baud:

שיעור CAN Baud תזמון0(BTR0) תזמון1(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
  1. משתמשים צריכים רק לעקוב אחר SJA1000 (16MHz) כדי להגדיר את פרמטר קצב ה-Bud.
  2. המתאם אינו תומך באופן זמני בקצב Baud מתחת ל-10K.

2.2. תיאור פונקציה
2.2.1. VCI_OpenDevice
פונקציה זו משמשת לחיבור התקנים.
DWORD __stdcall VCI_OpenDevice(DWORD DevType,DWORD DevIndex,DWORD שמור);
פרמטרים:
DevType
סוג מכשיר. ראה: הגדרת סוג התקן מתאם.
DevIndex
אינדקס מכשירים, למשלample, כאשר יש רק מתאם USB-CAN אחד, מספר האינדקס הוא 0, כאשר ישנם מתאמי USB-CAN מרובים, מספרי האינדקס בסדר עולה החל מ-0.
שָׁמוּר
פרמטרי שמירה, מלאו 0.
החזרות:
ערך החזרה = 1, כלומר הפעולה הצליחה; = 0 מציין שהפעולה נכשלה; = -1 מציין שההתקן אינו קיים.

WAVESHARE USB CAN Bus Inter face מתאם ספריית פונקציית ממשק - איור 3

2.2.2. VCI_CloseDevice
פונקציה זו משמשת לסגירת החיבור.
DWORD __stdcall VCI_CloseDevice(DWORD DevType,DWORD DevIndex);
פרמטרים:
DevType
סוג מכשיר. ראה: הגדרת סוג התקן מתאם.
DevIndex
אינדקס מכשירים, למשלample, כאשר יש רק מתאם USB-CAN אחד, מספר האינדקס הוא 0, כאשר ישנם מתאמי USB-CAN מרובים, מספרי האינדקס בסדר עולה החל מ-0.
החזרות:
ערך החזרה = 1, כלומר הפעולה הצליחה; = 0 מציין שהפעולה נכשלה; = -1 מציין שההתקן אינו קיים.

WAVESHARE USB CAN Bus Inter face מתאם ספריית פונקציות ממשק - איור 4

2.2.3. VCI_InitCan
פונקציה זו משמשת לאתחול ה-CAN שצוין.
DWORD __stdcall VCI_InitCAN(DWORD DevType, DWORD DevIndex, DWORD CANIndex,
PVCI_INIT_CONFIG pInitConfig);

פרמטרים:
DevType
סוג מכשיר. ראה: הגדרת סוג התקן מתאם.
DevIndex
אינדקס מכשירים, למשלample, כאשר יש רק מתאם USB-CAN אחד, מספר האינדקס הוא 0, כאשר ישנם מתאמי USB-CAN מרובים, מספרי האינדקס בסדר עולה החל מ-0.
CANIindex
אינדקס ערוץ CAN, כגון כאשר יש רק ערוץ CAN אחד, מספר האינדקס הוא 0, אם יש שניים, מספר האינדקס יכול להיות 0 או 1.
pInitConfig
מבנה פרמטר אתחול. רשימת פרמטרים של חברים:

חָבֵר תיאור פונקציונלי
pInitConfig->AccCode AccCode ו-AccMask יכולים לעבוד יחד כדי לקבוע אילו מנות ניתן לקבל. שני האוגרים הללו משמשים להגדרת ה-ID מיושר לשמאל, כלומר, הסיבית הגבוהה ביותר (Bit31) של AccCode ו-AccMask מיושרת לסיבית הגבוהה ביותר של ערך ה-ID.
pInitConfig->AccMask אודות יישור תעודות זהות עיין בנספחים: נספח I:
פרטי יישור מזהה.
לדוגמה: אם תגדיר את הערך של AccCode כ-0x24600000 (כלומר 0x123 מוזז שמאלה ב-21 סיביות), ערך AccMask
מוגדר ל-0x00000000, ואז ניתן לקבל רק את החבילות עם מזהה מסגרת ההודעה CAN הוא 0x123 (ערך AccMask של 0x00000000 מציין שכל הסיביות רלוונטיות
ביטים). אם ערך AccCode מוגדר ל-0x24600000, ערך AccMask מוגדר ל-0x600000 (0x03 מוזז שמאלה ב-21 סיביות), ואז ניתן לקבל רק המנות עם מזהה המסגרת של ה-CAN הוא 0x120 ~ 0x123 (ערך AccMask
0x600000 מציין שמלבד bit0 ~ bit1 ביטים אחרים (bit2 ~ bit10) רלוונטיים לסיביות.
פֶּתֶק: הגדרת מסנן זו למשלampפחות למסגרת הסטנדרטית, למשלample, 11-bit גבוה הוא הסיביות התקפות; במקרה של המסגרת המורחבת, ואז המזהה התקף הוא 29 סיביות. AccCode ו-AccMask קבעו 29 סיביות גבוהות בתור הביט התקף!
pInitConfig->שמור שָׁמוּר
pInitConfig->מסנן הגדרות מצב סינון נא לעיין בסעיף של טבלת מצבי הסינון.
pInitConfig->Timing0 הגדרת קצב ה-BudT0
pInitConfig->Timing1 הגדרת קצב ה-BudT1
pInitConfig->מצב מצב הפעלה:
0-פעולה רגילה
מצב 1-האזנה בלבד
מצב בדיקה של 2 קבלה ושליחה ספונטנית (ערך זה אינו נכלל מספריית הפונקציות של ZLG)

טבלת מצבי סינון:

עֵרֶך שֵׁם תֵאוּר
1 קבלו את כל הסוגים מתאים גם למסגרת רגילה וגם למסגרת מורחבת!
2 קבל רק מסגרת סטנדרטית מתאים למסגרת סטנדרטית, ומורחבת
המסגרת תוסר על ידי סינון ישירות!
3 קבל רק מסגרת מורחבת מתאים למסגרת מורחבת, ומסגרת רגילה תוסר על ידי
סינון ישירות! .

החזרות:
ערך החזרה = 1, כלומר הפעולה הצליחה; = 0 מציין שהפעולה נכשלה; = -1 מציין שההתקן אינו קיים.
לְמָשָׁל

WAVESHARE USB CAN Bus Inter face מתאם ספריית פונקציות ממשק - איור 4

WAVESHARE USB CAN Bus Inter face מתאם ספריית פונקציות ממשק - איור 6

2.2.4. VCI_ReadBoardInfo
פונקציה זו משמשת לקריאת מידע החומרה של המתאם. באופן כללי, ניתן להתעלם ממנו.
DWORD __stdcall VCI_ReadBoardInfo(DWORD DevType,DWORD
DevIndex,PVCI_BOARD_INFO pInfo);
פרמטרים:
DevType
סוג מכשיר. ראה: הגדרת סוג התקן מתאם.
DevIndex
אינדקס מכשירים, למשלample, כאשר יש רק מתאם USB-CAN אחד, מספר האינדקס הוא 0, כאשר ישנם מתאמי USB-CAN מרובים, מספרי האינדקס בסדר עולה החל מ-0. pInfo
VCI_BOARD_INFO משמש לאחסון מצביע מבנה מידע על המכשיר.
החזרות:
ערך החזרה = 1, כלומר הפעולה הצליחה; = 0 מציין שהפעולה נכשלה; = -1 מציין שההתקן אינו קיים.

WAVESHARE USB CAN Bus Inter face מתאם ספריית פונקציות ממשק - איור 7

2.2.5. VCI_GetReceiveNum
פונקציה זו משמשת כדי לציין את המסגרות שהתקבלו אך לא נקראו במאגר הקבלה המיועד.
DWORD __stdcall VCI_GetReceiveNum(DWORD DevType,DWORD DevIndex,DWORD CANIndex);
פרמטרים:
DevType
סוג מכשיר. ראה: הגדרת סוג התקן מתאם.
DevIndex
אינדקס מכשירים, למשלample, כאשר יש רק מתאם USB-CAN אחד, מספר האינדקס הוא 0, כאשר ישנם מתאמי USB-CAN מרובים, מספרי האינדקס בסדר עולה החל מ-0.
CANIindex
אינדקס ערוצי 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);
פרמטרים:
DevType
סוג מכשיר. ראה: הגדרת סוג התקן מתאם.
DevIndex
אינדקס מכשירים, למשלample, כאשר יש רק מתאם USB-CAN אחד, מספר האינדקס הוא 0, כאשר ישנם מתאמי USB-CAN מרובים, מספרי האינדקס בסדר עולה החל מ-0.
CANIindex
אינדקס ערוצי CAN.
החזרות:
ערך החזרה = 1, כלומר הפעולה הצליחה; = 0 מציין שהפעולה נכשלה; = -1 מציין שההתקן אינו קיים.

WAVESHARE USB CAN Bus Inter face מתאם ספריית פונקציות ממשק - איור 8

2.2.7. VCI_StartCAN
פונקציה זו משמשת כדי להפעיל את בקר ה-CAN ואת פונקציית קליטת ההפסקות הפנימית של המתאם.
DWORD __stdcall VCI_StartCAN(DWORD DevType,DWORD DevIndex,DWORD CANIndex);
פרמטרים:
DevType
סוג מכשיר. ראה: הגדרת סוג התקן מתאם.
DevIndex
אינדקס מכשירים, למשלample, כאשר יש רק מתאם USB-CAN אחד, מספר האינדקס הוא 0, כאשר ישנם מתאמי USB-CAN מרובים, מספרי האינדקס בסדר עולה החל מ-0.
CANIindex
אינדקס ערוצי CAN.
החזרות:
ערך החזרה = 1, כלומר הפעולה הצליחה; = 0 מציין שהפעולה נכשלה; = -1 מציין שההתקן אינו קיים.

WAVESHARE USB CAN Bus Inter face מתאם ספריית פונקציות ממשק - איור 9

2.2.8. VCI_ResetCAN
פונקציה זו משמשת לאיפוס בקר ה-CAN.
DWORD __stdcall VCI_ResetCAN(DWORD DevType,DWORD DevIndex,DWORD CANIndex);
פרמטרים:
DevType
סוג מכשיר. ראה: הגדרת סוג התקן מתאם.
DevIndex
אינדקס מכשירים, למשלample, כאשר יש רק מתאם USB-CAN אחד, מספר האינדקס הוא 0, כאשר ישנם מתאמי USB-CAN מרובים, מספרי האינדקס בסדר עולה החל מ-0.
CANIindex
אינדקס ערוצי CAN.
החזרות:
ערך החזרה = 1, כלומר הפעולה הצליחה; = 0 מציין שהפעולה נכשלה; = -1 מציין שההתקן אינו קיים.

WAVESHARE USB CAN Bus Inter face מתאם ספריית פונקציות ממשק - איור 10

2.2.9. VCI_שידור
פונקציה זו משמשת לשליחת מסגרת הודעת CAN.
DWORD __stdcall VCI_Transmit(DWORD DeviceType,DWORD DeviceInd,DWORD CANInd,PVCI_CAN_OBJ pSend,DWORD Length);
פרמטרים:
DevType
סוג מכשיר. ראה: הגדרת סוג התקן מתאם.
DevIndex
אינדקס מכשירים, למשלample, כאשר יש רק מתאם USB-CAN אחד, מספר האינדקס הוא 0, כאשר ישנם מתאמי USB-CAN מרובים, מספרי האינדקס בסדר עולה החל מ-0.
CANIindex
אינדקס ערוצי CAN. pSend
הכתובת הראשונה של מערכי מסגרות הנתונים שיש לשלוח.
מֶשֶׁך
מספר מסגרות הנתונים שיש לשלוח, המספר המרבי הוא 1000, הערך המומלץ הוא 48 במהירות גבוהה.
החזרות:
החזר את המספר האמיתי של מסגרות שכבר נשלחו, ערך ההחזרה = -1 מציין שגיאת התקן.
לְמָשָׁל
WAVESHARE USB CAN Bus Inter face מתאם ספריית פונקציות ממשק - איור 11

WAVESHARE USB CAN Bus Inter face מתאם ספריית פונקציות ממשק - איור 12

2.2.10. VCI_Receive
פונקציה זו משמשת לבקשת קליטה.
DWORD __stdcall VCI_Receive(DWORD DevType, DWORD DevIndex, DWORD CANIndex, PVCI_CAN_OBJ pReceive, ULONG Len, INT WaitTime);
פרמטרים:
DevType
סוג מכשיר. ראה: הגדרת סוג התקן מתאם.
DevIndex
אינדקס מכשירים, למשלample, כאשר יש רק מתאם USB-CAN אחד, מספר האינדקס הוא 0, כאשר ישנם מתאמי USB-CAN מרובים, מספרי האינדקס בסדר עולה החל מ-0.
CANIindex
אינדקס ערוצי CAN.
pReceive
כדי לקבל את מצביע הסט הראשון של מסגרות הנתונים.
לן
אורך המערך של מסגרת הנתונים חייב להיות יותר מ-2500 כדי להחזיר הודעה רגילה.
אחרת, אורך ההחזרה יהיה אפס בין אם ההודעה התקבלה או לא. המתאם הגדיר מאגר של 2000 פריימים לכל ערוץ. בהתבסס על המערכת שלו וסביבת העבודה שלו, המשתמש יכול לבחור אורך מערך מתאים מ-2500.
זמן המתנה שמור.
החזרות:
החזר את מספר הפריימים שנקראו בפועל, -1 מציין שגיאות במכשיר.
לְמָשָׁל
WAVESHARE USB CAN Bus Inter face מתאם ספריית פונקציות ממשק - איור 13

חלק שלישי פונקציות אחרות ותיאור מבנה הנתונים

פרק זה מתאר סוגי נתונים ופונקציות אחרות של ספריית ממשק 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 שמור
פרמטרים:
DevType
סוג מכשיר. ראה: הגדרת סוג התקן מתאם.
DevIndex
אינדקס מכשירים, למשלample, כאשר יש רק מתאם USB-CAN אחד, מספר האינדקס הוא 0, כאשר ישנם מתאמי USB-CAN מרובים, מספרי האינדקס בסדר עולה החל מ-0.
שמור שמור.
החזרות:
ערך החזרה = 1, כלומר הפעולה הצליחה; = 0 מציין שהפעולה נכשלה; = -1 מציין שההתקן אינו קיים.

WAVESHARE USB CAN Bus Inter face מתאם ספריית פונקציות ממשק - איור 14

bRel = VCI_UsbDeviceReset(nDeviceType, Independence, 0);
3.1.2. VCI_FindUsbDevice2
כאשר אותו מחשב משתמש במספר USB-CAN, המשתמש יכול להשתמש בפונקציה זו כדי למצוא את ההתקן הנוכחי.
DWORD __stdcall VCI_FindUsbDevice2(PVCI_BOARD_INFO pInfo);
פרמטרים:
pInfo
pInfo משמש לאחסון הפרמטרים של מצביע כתובת מאגר הנתונים הראשון.
מחזיר
החזר את המספר של מתאם ה-USB-CAN המחובר למחשב.

WAVESHARE USB CAN Bus Inter face מתאם ספריית פונקציות ממשק - איור 15

חלק רביעי פונקציות ספריית ממשק באמצעות תהליך
על מנת להכפיל את תפקוד המכשיר, סיפקנו פונקציות נוספות (פונקציות המוצגות עם רקע ירוק), פונקציות אלו כוללות: VCI_FindUsbDevice2 VCI_UsbDeviceReset. במהלך הפיתוח השני, לא בהכרח יש להפעיל את הפונקציות הללו. אפילו פונקציות אלו מתעלמות, ניתן להשיג את כל פונקציות מתאם ה-USB-CAN.

WAVESHARE USB CAN Bus Inter face מתאם ספריית פונקציות ממשק - איור 16

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

מסמכים / משאבים

WAVESHARE USB-CAN Bus Inter face מתאם ספריית פונקציות ממשק [pdfמדריך הוראות
ספריית פונקציות ממשק ממשק מתאם USB-CAN, USB-CAN, ספריית פונקציית ממשק ממשק מתאם בין פנים, ספריית פונקציות ממשק, ספריית פונקציות

הפניות

השאר תגובה

כתובת האימייל שלך לא תפורסם. שדות חובה מסומנים *