1 הקדמה
תקשורת ציוד תעשייתי כוללת בדרך כלל מגוון רחב של מוצרי חומרה ותוכנה, כמו גם פרוטוקולים המשמשים לחיבור פלטפורמות מחשב סטנדרטיות (מחשבים אישיים או תחנות עבודה) להתקני אוטומציה תעשייתיים. כתוצאה מכך, רוב מכשירי האוטומציה מתוכננים לבצע פקודות טוריות פשוטות התואמות ליציאות הטוריות הסטנדרטיות שנמצאות במחשבים אישיים או בכרטיסי יציאה טורית הוספה-. RS-232 הוא כיום הממשק הטורי הנפוץ ביותר במגזרי PC ותקשורת תעשייתית. RS-232 מוגדר כסטנדרט יחיד{10} שנועד להרחיב את מרחקי התקשורת בתקשורת טורית במהירות נמוכה. מכיוון ש-RS-232 חולק הארקת אות משותפת בין המשדר והמקלט, הוא אינו יכול להשתמש באותות דיפרנציאליים; אחרת, רעש במצב משותף יתחבר למערכת האותות. תקן RS-232 מציין מרחק מרבי של 15 מ' בלבד וקצב העברת אות מרבי של 20 קביט/שנייה.
CAN, קיצור של "Controller Area Network", הוא אחד מאוטובוסי השדה הנפוצים ביותר בעולם. רשת אחת המורכבת מאוטובוסי CAN מוגבלת על ידי המאפיינים החשמליים של חומרת הרשת. בתור אפיק תקשורת טורי רב-מאסטר, מפרטי התכנון הבסיסיים של CAN דורשים קצבי סיביות גבוהים ועמידות חזקה בפני הפרעות אלקטרומגנטיות, כמו גם את היכולת לזהות שגיאות המתרחשות באפיק התקשורת. גם כאשר מרחק העברת האותות מגיע ל-10 ק"מ, CAN עדיין יכול לספק קצבי שידור נתונים של עד 50 קילובייט לשנייה. טבלה 1 מציגה את הקשר בין מרחק השידור המרבי בין כל שני צמתים באפיק CAN לבין קצבי הסיביות שלהם.
מרחק מירבי בין כל שני צמתים בתצורה משולשת במערכת CAN Bus
קצב סיביות/kbps 1000 500 250 125 100
מרחק מרבי/מ' 40 130 270 530 620
קצב סיביות (kbps) 50 20 10 5
מרחק מרבי (מ') 1300 3300 6700 10000
כפי שניתן לראות, אפיק CAN הוא אפיק טורי מעולה ל-RS-232 מבחינת ביצועים בזמן אמת, התאמה, גמישות ואמינות. כאשר שני התקנים טוריים ממוקמים רחוק זה מזה ולא ניתן לחבר אותם ישירות דרך RS-232, ניתן להמיר את RS-232 ל-CAN כדי להשיג חיבור רשת של ההתקנים הטוריים באמצעות אפיק ה-CAN.
עם זאת, RS-232 ו-CAN שונים באופן משמעותי מבחינת רמות מתח ופורמטים של מסגרת. ספציפית:
תקן RS-232 משתמש בלוגיקה שלילית, מגדיר כל רמת מתח בין +3V ו-+15V כ-"0" לוגי וכל רמת מתח בין -3V ל-15V כ-"1". אותות CAN, לעומת זאת, מועברים באמצעות מתח דיפרנציאלי. שני קווי האות נקראים "CAN_H" ו-"CAN_L." במצב סטטי, שניהם הם בערך 2.5V; מצב זה מיוצג כ"1" לוגי ומכונה גם "רצסיבי". כאשר CAN_H גבוה מ-CAN_L, הוא מייצג "0" לוגי, המכונה "דומיננטי". במצב הדומיננטי, ערכי המתח האופייניים הם: CAN_H=3.5V, CAN_L=1.5V;
פורמט המסגרת עבור היציאה הטורית RS-232 הוא: סיביות התחלה אחת, שמונה סיביות נתונים, סיביות תשיעית ניתנת לתכנות (המשמשת כסיבית כתובת/נתונים הן לשידור והן לקבלה), וסיבית עצור אחת. פורמט מסגרת הנתונים CAN מורכב מ: כותרת מסגרת + ID + נתונים (שניתן לחלק לשני פורמטים: מסגרות סטנדרטיות ומסגרות מורחבות).
לכן, התכנון דורש מיקרו-בקר לביצוע המרות כגון המרות רמה ופורמט מסגרת. תהליך ההמרה מוצג באיור 1.
2 עיצוב חומרה עבור המרת RS-232 ל-CAN
בתכנון מכשיר ההמרה RS-232-to-CAN, המיקרו-בקר AT89C52 משמש כמיקרו-מעבד; ה-SJA1000 משמש כמיקרו-בקר CAN. ה-SJA1000 משלב את פונקציות השכבה הפיזית ושכבת קישור הנתונים של פרוטוקול CAN ויכול לטפל באופן פסיבי במסגור של נתוני תקשורת; ה-AT82C250 משמש כממשק בין בקר ה-CAN לאפיק הפיזי, ומספק יכולת שידור דיפרנציאלית לאפיק ויכולת קליטה דיפרנציאלית לבקר ה-CAN. ניתן לבחור שלושה מצבי הפעלה שונים (מהירות-גבוהה, בקרת מדרון והמתנה) באמצעות פין 3 של ה-AT82C250. כאשר פין 3 מקורקע, המכשיר פועל במצב מהירות גבוהה; בידוד אופטי במהירות גבוהה מיושם באמצעות 6N137, המונע הפרעות מאותות חיצוניים; ה-MAX232 משמש להמרת אותות של 232 רמות לרמות TTL עבור שבב ממשק המיקרו-בקר. לפרטים ספציפיים של מעגל ממשק החומרה, עיין במשאבים הרלוונטיים עבור SJA1000; הסבר נוסף לא ניתן כאן. עם זאת, יש לשים לב לנקודות הבאות.
(1) נגד 120Ω מחובר בשני הקצוות של אפיק ה-CAN כדי להתאים את עכבת האוטובוס, ובכך לשפר את החסינות בפני הפרעות ואת האמינות של תקשורת נתונים. אולם בפועל, די להבטיח שנגד ה-shunt בין "CAN_H" ל-"CAN_L" ברשת CAN הוא 60Ω.
(2) פין 20 (RX1) של SJA1000 יכול להיות מוארק כאשר אינו בשימוש (ראה עיצוב התוכנה מהסיבה הספציפית); בשילוב עם הגדרת סיביות CDR.6, זה יכול להגדיל משמעותית את אורך האוטובוס.
(3) שיטת החיבור של הפינים TX0 ו-TX1 קובעת את רמת הפלט הטורי. עיין בהגדרות במאגר בקרת פלט (OCR) לפרטים ספציפיים.
(4) נגד שיפוע מחובר בין פין RS של AT82C250 לבין הארקה. ניתן להתאים את ערך ההתנגדות בהתאם למהירות תקשורת האוטובוס, בדרך כלל נעה בין 16 kΩ ל- 140 kΩ.
(5) ה-MAX232 דורש ארבעה קבלים אלקטרוליטיים-C1, C2, C3 ו-C4 - המשמשים גם להמרת הספק פנימית. לכולם יש דירוג של 1 μF/25 V; מומלץ לקבל קבלי טנטלום, ויש למקם אותם קרוב ככל האפשר לשבב. יש לחבר קבל ניתוק 0.1 μF בין ספק הכוח VCC והארקה.
3 עיצוב תוכנה עבור המרת RS-232 ל-CAN
תחת בקרת מעבד, שימוש בקליטת יציאה טורית ופסיקות CAN במהלך חילופי נתונים בין RS-232 ו-CAN יכול לשפר את היעילות התפעולית. תרשים הזרימה הראשי של התוכנית מוצג באיור 2. ניתן לאתחל את ה-SJA1000 רק במצב איפוס; זה כולל בעיקר את הגדרת מצב ההפעלה, חלוקת השעון ומסנני הקבלה, קביעת פרמטרים של קצב ההחזרה והגדרת אוגר הפעלת הפסיקה.
האם ניתן להעביר נתונים בצורה מדויקת תלויה גם בקצב הביאוד ובבקרת הזרימה, שהם היבטים שאי אפשר להתעלם מהם במהלך תכנון התוכנה. לפיכך, הסעיפים הבאים יתמקדו בתצורת קצב העברת CAN, זיהוי אוטומטי של קצבי העברת יציאות טוריות ובקרת זרימת נתונים ביציאה טורית.

3.1 הגדרת קצב סינון CAN
אחד המרכיבים המרכזיים של פרוטוקול CAN הוא קצב ההחזרה. משתמשים יכולים להגדיר את המיקום של נקודות דגימת הסיביות בתוך תקופת הסיביות ואת מספר הדגימות, מה שמאפשר להם לייעל באופן חופשי את ביצועי הרשת עבור היישומים שלהם. עם זאת, במהלך תהליך אופטימיזציה זה, יש לשים לב לקשר בין הסובלנות של מתנד הייחוס המשמש לפרמטרים של תזמון סיביות לבין עיכובי ההתפשטות של אותות שונים בתוך המערכת.
קצב הסיביות של המערכת, fBil, מייצג את מספר סיביות הנתונים המועברות ליחידת זמן, כלומר, קצב ה-baud fBit=1/tBit. תזמון הסיביות הנומינלי מורכב משלושה מקטעים שאינם-חופפים: SYNC_SEG, TSEG1 ו-TSEG2. שלושת מקטעי הזמן הללו מסומנים כ-tSYNC_SEG, tTSEG1 ו-tTSEG2, בהתאמה. לכן, תקופת הסיביות הנומינלית tBit היא הסכום של שלושת מקטעי הזמן הללו.
tBit=tSYNC_SEG + tTSEG1 + tTSEG2
בתוך תקופת הסיביות, מקטעים אלו באים לידי ביטוי במונחים של כפולות שלמים של יחידת זמן בסיסית. יחידת זמן זו נקראת מכסת זמן (TQ), ומשך מכסת זמן הוא מחזור אחד של שעון מערכת ה-CAN (tSCL), אשר נגזר מתקופת השעון המתנד (tCLK). ניתן לכוונן את שעון מערכת ה-CAN על-ידי תכנות גורם ה-prescaler (ערך קבוע מראש של קצב ה-baud, BRP). ספציפית:
tSCL=BRP × 2tCLK=2BPR/fCLK
מרווח זמן חשוב נוסף לחישובי תזמון CAN bit הוא רוחב הקפיצה של הסנכרון (SJW), אשר משך הזמן שלו הוא tSJW. מקטע SJW אינו חלק ממחזור הסיביות; במקום זאת, הוא מגדיר את המספר המרבי של TQs שבאמצעותו מחזור הסיביות מורחב או מתקצר במהלך אירוע סנכרון מחדש. בנוסף, פרוטוקול ה-CAN מאפשר למשתמשים לציין את מצב דגימת הסיביות (SAM), שיכול להיות מצב דגימה יחיד- או מצב דגימה שלושה- (בחירת תוצאה אחת משלוש דוגמאות). במצב דגימה יחיד-, נקודת הדגימה נמצאת בסוף קטע TSEG1. במצב דגימה שלוש-, נלקחות שתי נקודות דגימה נוספות בהשוואה למצב דגימה יחיד-; אלה ממוקמים לפני סוף קטע TSEG1, מופרדים על ידי TQ אחד.

ה-BPR, SJW, SAM, TESG1 ו-TESG2 שהוזכרו לעיל יכולים להיות מוגדרים על ידי המשתמש באמצעות האוגרים הפנימיים BTR0 ו-BTR1 של בקר ה-CAN. הפרטים מוצגים באיור 3. לאחר הגדרת BTR0 ו-BTR1, טווח קצב ההחזרה בפועל הוא:
מקסימום=1/(tBit - tSJW), מינימום=1/(tBit + tSJW)
3.2 זיהוי קצב יציאות טוריות
כאשר התקן טורי פועל כמארח, אם אתה צריך לזהות את קצב ההחזרה של היציאה הטורית של התקן ההמרה באותו זמן, אתה יכול תחילה להגדיר את קצב ההחזרה של המארח (9600 באוד, למשל) ולשלוח תו ספציפי (החזרת עגלה, למשל) מהמסוף. בדרך זו, המארח יכול לקבוע את קצב העברת התקשורת של התקן ההמרה בהתבסס על מידע התווים שהתקבל. ערך ASCII של תו החזרת הגררה הוא 0DH; הערכים שהתקבלו בקצבי בונד שונים מפורטים בטבלה 2.
בתים שהתקבלו בשיעורי Baud שונים
קצב הבאוד (סיביות/שניות) בתים שהתקבלו (הקסדצימלי) קצב הבאוד (סיביות/שניות) בתים שהתקבלו (הקסדצימלי)
1200 80 4800 E6
1800 F0 9600 0D
2400 78 19200 F*
3.3 בקרת זרימת יציאה טורית
המונח "זרימה" המשמש כאן מתייחס לזרימת נתונים. אובדן נתונים מתרחש לעתים קרובות במהלך שידור בין שתי יציאות טוריות. מכיוון שלמאגר המיקרו-בקר יש קיבולת מוגבלת, אם המאגר מלא בעת קבלת נתונים, כל הנתונים שימשיכו להישלח באותו זמן יאבדו. בקרת זרימה פותרת ביעילות את הבעיה הזו: כאשר הקצה המקבל אינו יכול לעבד את הנתונים בזמן, מערכת בקרת הזרימה שולחת אות "לא מקבל", מה שגורם לקצה השולח להפסיק לשדר עד שהוא מקבל אות "המשך שידור". לכן, בקרת זרימה מנהלת את תהליך העברת הנתונים ומונעת אובדן נתונים. שני הסוגים הנפוצים של בקרת זרימה הם בקרת זרימת החומרה (כולל RTS/CTS, DTR/CTS וכו') ובקרת זרימת תוכנה (XON/XOFF-continue/stop). ההסבר הבא מתמקד אך ורק בשיטת בקרת זרימת החומרה באמצעות RTS/CTS.
בעת שימוש בחומרה לבקרת זרימה, פיני ה-RTS וה-CTS של המסוף הטורי מחוברים ליציאות ה-I/O של המיקרו-בקר, ואותות התחלה/עצירה מתקבלים ומשודרים על-ידי הגדרת יציאות ה-I/O ל-1 או 0. ציוד מסוף הנתונים (כגון מחשב) משתמש ב-RTS כדי ליזום את זרם הנתונים שנשלח על-ידי המיקרו-בקר, בעוד שהמיקרו-בקר מעביר את ה-CTS להפעיל את המחשב ולהשהות את המיקרו-בקר. כדי ליישם שיטת לחיצת יד זו של החומרה, מוגדרים במהלך התכנות דגל ברמה גבוהה- ודגל ברמה נמוכה- על סמך גודל מאגר המקבל. כאשר כמות הנתונים במאגר מגיעה לסף-הרמה הגבוהה, קו ה-CTS בקצה המקבל מוגדר נמוך (לוגיקה 0). כאשר התוכנית בקצה המשדר מזהה ש-CTS נמוך, היא מפסיקה לשדר נתונים עד שכמות הנתונים במאגר המקבל יורדת מתחת לסף-הרמה הנמוכה ו-CTS מוגדר גבוה. RTS משמש כדי לציין אם המכשיר המקבל מוכן לקבל נתונים.
3.4 תת שגרת CAN Receive
פורמט PeliCAN תומך הן במסגרות סטנדרטיות והן במסגרות מורחבות. ניתן להגדיר את מצב CAN באמצעות CDR.7 באוגר מחלק השעון (0 עבור BasicCAN, 1 עבור PeliCAN). בעת קבלת נתוני CAN, סיבית FF במידע המסגרת משמשת כדי לקבוע אם היא מסגרת סטנדרטית או מורחבת, והסיבית RTR משמשת להבחין בין מסגרת מרוחקת למסגרת נתונים. להלן תת שגרת ה-CAN לקבל:
;//////////////////////////////////////////////////////////////////
;//קבלת נתונים CAN/מאוחדת לפורמט מסגרת עם מזהה 2-בייט//
;///////////////////////////////////////////////////////////////////////
שחזור:
MOV R0, #C_RE ; כתובת ההתחלה של המאגר הפנימי של המיקרו-בקר
MOV DPTR, #RXBUF ; קרא ושמור את התוכן של מאגר הקבלה
MOVX A, @DPTR ; קרא את הביט השני של מאגר ה-CAN
MOV @R0, A ; לְהַצִיל
JB ACC.7, EFF_RE ; סיביות FF: 0=SFF, 1=EFF
MOV R2, #0
SJMP SFF_RE ; בהתאם למספר המזהה, המיקום שבו נקלט "בת הנתונים" משתנה
EFF_RE: MOV R2, #2
SFF_RE: MOV R2, #2
SFF_RE:
JB ACC.6, EXIT_RECAN ; בדוק את סיביות ה-RTR; אם 1 (מסגרת מרוחקת), קפוץ החוצה
ANL A, #0FH
MOV R3, A ; בשלב זה, 4 הסיביות האמצעיות מייצגות את אורך הנתונים
MOV C_NUM, A ; אחסן את אורך המסגרת שהתקבלה ב-R3 ו-R5
RDATA0:
INC DPTR ; מזהה של 2 בתים
INC R0
MOVX A, @DPTR
MOV @R0, A
INC DPTR
MOVX A, @R0, A
INC DPTR
MOVX A, @DPTR
MOV @R0, A
MOV A, R2 ; אם EFF, דלג על מזהה שני-בתים
JZ DRATA1
INC DPTR
INC DPTR
DATA1: ; בתים של נתונים
INC DPTR
INC R0
MOVX A, @DPTR
MOV @R0, A
DJNZ R3, RDATA1
EXIT_RECAN:
לְהַשְׁרוֹת
4 מסקנה
המזעור של המחשבים סיפק את התנאים הדרושים לפיתוח מושכל של מכשירי מדידה ובקרה, המאפשר להתקני מסוף מבוססי מיקרו-מעבדים-להחזיק ביכולות תקשורת דיגיטלית מעולות. עם הופעתם של מספר גדל והולך של מסופים חכמים, תובעות דרישות גבוהות יותר לארכיטקטורת רשת, פרוטוקולים, ביצועים בזמן אמת-, כמו גם ישימות, גמישות, אמינות ואפילו עלות. כתוצאה מכך, טכנולוגיית Fieldbus טומנת בחובה הבטחה גדולה לפיתוח עתידי. מבנה המסגרת של אפיק ה-CAN כולל מזהה (ID), המאפשר להחזיק מספר מארחי רשת בתוך רשת מכשירים; כלומר, באמצעות מארחי רשת אלו, ניתן לנטר את המצב התפעולי של רשת המכשירים כולה, ולקבל החלטות בקרה מתאימות. מכשיר זה פותח כעת במלואו והשיג תוצאות מצוינות ביישומים מעשיים.




