הלוגו של SILICON LABS

AN451
יישום תוכנת M-BUS אלחוטי

מָבוֹא

הערת יישום זו מתארת ​​את היישום של Silicon Labs של Wireless M-Bus באמצעות סיליקון Labs C8051 MCU ו-EZRadioPRO®. Wireless M-bus הוא תקן אירופאי ליישומי קריאת מונים המשתמשים בפס התדרים של 868 מגה-הרץ.

מחסנית שכבות

Wireless M-Bus משתמש במודל 3-שכבתי IEC, שהוא תת-קבוצה של מודל 7-שכבות OSI (ראה איור 1).

SILICON LABS Wireless M-BUS יישום תוכנה AN451השכבה הפיזית (PHY) מוגדרת ב-EN 13757-4. השכבה הפיזית מגדירה את האופן שבו הביטים מקודדים ומשודרים, את מאפייני מודם ה-RF (קצב שבב, הקדמה ומילת סנכרון), ופרמטרי RF (אפנון, תדר מרכזי וסטיית תדר).
שכבת PHY מיושמת באמצעות שילוב של חומרה וקושחה. ה-EZRadioPRO מבצע את כל פונקציות ה-RF והמודם. ה-EZRadioPRO משמש במצב FIFO עם המטפל במנות. מודול MbusPhy.c מספק ממשק SPI, קידוד/פענוח, קריאה/כתיבה חסימה וטיפול במנות ומנהל את מצבי המשדר.
שכבת הקישור של M-Bus Data מיושמת במודול MbusLink.c. ממשק M-Bus Application Programming מורכב מפונקציות ציבוריות שניתן לקרוא משכבת ​​היישום בשרשור הראשי. מודול MbusLink מיישם גם את שכבת קישור הנתונים. שכבת קישור הנתונים תעצב ותעתיק נתונים ממאגר ה-TX של האפליקציה למאגר MbusPhy TX, ותוסיף את הכותרות וה-CRC הנדרשים.
שכבת היישום עצמה אינה חלק מקושחת M-bus. שכבת היישום מגדירה כיצד יש לעצב מגוון רחב של נתונים לשידור. רוב המונים צריכים להעביר רק סוג אחד או שניים של נתונים. הוספת כמות גדולה של קוד כדי להכיל כל סוג של נתונים למונה תוסיף קוד ועלות מיותרים למונה. זה עשוי להיות אפשרי ליישם ספרייה או כותרת file עם רשימה ממצה של סוגי נתונים. עם זאת, רוב לקוחות המדידה יודעים בדיוק איזה סוג של נתונים הם צריכים להעביר ויכולים להתייחס לתקן לפרטי עיצוב. קורא או רחרח אוניברסלי עשוי ליישם קבוצה שלמה של סוגי נתוני יישומים ב-PC GUI. מסיבות אלה, שכבת היישום מיושמת באמצעות exampיישומים עבור מד וקורא.

תקנים נדרשים
  1. EN 13757-4
    EN 13757-4
    מערכת תקשורת למונים וקריאה מרחוק של מונים
    חלק 4: קריאת מד אלחוטי
    קריאת רדיומטר לפעולה בפס 868 מגה-הרץ עד 870 מגה-הרץ SRD
  2. EN 13757-3
    מערכת תקשורת למונים וקריאה מרחוק של מונים
    חלק 3: שכבת יישום ייעודית
  3. IEC 60870-2-1:1992
    ציוד ומערכות בקרה טלפונית
    חלק 5: פרוטוקולי שידור
    סעיף 1: נוהל שידור קישור
  4. IEC 60870-1-1:1990
    ציוד ומערכות בקרה טלפונית
    חלק 5: פרוטוקולי שידור
    סעיף 1: פורמטים של מסגרת שידור
הגדרות
  • M-Bus—M-Bus הוא תקן קווי לקריאת מונים באירופה.
  • M-Bus אלחוטי-M-Bus אלחוטי ליישומי קריאת מונים באירופה.
  • PHY—שכבה פיזית מגדירה כיצד מקודדים ומשודרים ביטים ובייטים של נתונים.
  • ממשק API—ממשק מתכנת יישומים.
  • קישור-Data Link Layer מגדירה כיצד בלוקים ומסגרות מועברים.
  • CRC-בדיקת יתירות מחזורית.
  • FSK—הקשת הסטת תדר.
  • שְׁבָב-היחידה הקטנה ביותר של נתונים משודרים. סיבית נתונים אחת מקודדת כשבבים מרובים.
  • מודול-מקור קוד AC .c file.

M-Bus PHY תיאור פונקציונלי

רצף הקדמה

רצף ההקדמה שצוין במפרט M-bus הוא מספר שלם המחליף אפסים ואחדים. אחד מוגדר כתדר הגבוה יותר, ואפס מוגדר כתדר הנמוך יותר.
nx (01)
אפשרויות ההקדמה ל-Si443x הן מספר שלם של נישנושים המורכבים מאפסים לסירוגין.
nx (1010)
הקדמה עם מוביל נוסף לא תהיה בעיה, אבל, אם כן, מילת הסנכרון והמטען יהיו מיושרים לא נכון בביט אחד.
הפתרון הוא להפוך את כל החבילה על ידי הגדרת סיבית המנוע ב-Register Modulation Control 2 (0x71). זה יהפוך את ההקדמה, מילת הסנכרון ונתוני ה-TX/RX. כתוצאה מכך, יש להפוך את הנתונים בעת כתיבת נתוני ה-TX או קריאת נתוני ה-RX. כמו כן, מילת הסנכרון הופכת לפני הכתיבה לאוגרי מילות סינכרון של Si443x.

Word סנכרון

מילת הסנכרון הנדרשת על-ידי EN-13757-4 היא 18 שבבים עבור מצב S ומצב R או 10 שבבים עבור דגם T. מילת הסנכרון עבור Si443x היא 1 עד 4 בתים. עם זאת, מכיוון שלמלת הסנכרון תמיד קודמת ההקדמה, ששת הסיביות האחרונות של ההקדמה יכולות להיחשב כחלק ממילת הסנכרון; לכן, מילת הסנכרון הראשונה מרופדת בשלוש חזרות של אפס ואחריו אחד. מילת הסנכרון משלימה לפני הכתיבה לרגיסטרים של Si443x.
טבלה 1. מילת סנכרון עבור מצב S ומצב R

EN 13757-4 00 01110110 10010110 בינארי
00 76 96 hex
רפידה עם (01) x 3 01010100 01110110 10010110 בינארי
54 76 96 hex
מַשׁלִים 10101011 10001001 01101001 בינארי
AB 89 69 hex

טבלה 2. מילת סנכרון עבור מד מצב T לאחר

סנכרון סנכרון סנכרון
מִלָה מִלָה מִלָה
3 2 1
אורך שידור הקדמה

ההקדמה המינימלית מוגדרת עבור ארבעה מצבי הפעלה שונים. מקובל לקבל הקדמה ארוכה מהמצוין. הפחתת שישה שבבים עבור ההקדמה נותנת את המספר המינימלי של שבבים עבור ההקדמה של Si443x. היישום מוסיף שני ניבולים נוספים של הקדמה בכל מצבי ההקדמה הקצרים כדי לשפר את זיהוי ההקדמה ואת יכולת הפעולה ההדדית. ההקדמה ב-Mode S עם הקדמה ארוכה היא ארוכה מאוד; לכן, נעשה שימוש בהקדמה המינימלית. אורך ההקדמה בנשנושים נכתב לרישום אורך ההקדמה (0x34). פנקס אורך ההקדמה קובע את ההקדמה בשידור בלבד. הגדרות המפרט המינימלי ואורך ההקדמה מסוכמות בטבלה 3.
טבלה 3. אורך שידור הקדמה

EN-13757-4
מִינִימוּם
Si443x Preamble
הגדר ing
סנכרון
מִלָה
סַך הַכֹּל תוֹסֶפֶת
nx (01) צ'יפס מכרסמים צ'יפס צ'יפס צ'יפס צ'יפס
מצב S הקדמה קצרה 15 30 8 32 6 38 8
קדמה ארוכה של מצב S 279 558 138 552 6 558 0
מצב T (מטר-אחר) 19 38 10 40 6 46 8
מצב R 39 78 20 80 6 86 8

ההקדמה המינימלית לקבלה נקבעת על ידי אוגר בקרת זיהוי הקדמה (0x35). עם הקבלה, יש להפחית את מספר הביטים במילת הסנכרון מההקדמה המינימלית שצוינה כדי לקבוע את ההקדמה הניתנת לשימוש. זמן ההגדרה המינימלי של המקלט הוא 16 שבבים אם AFC מופעל או 8 שבבים אם AFC מושבת. זמן התייצבות המקלט מופחת גם מההקדמה הניתנת לשימוש כדי לקבוע את ההגדרה המינימלית עבור אוגר בקרת זיהוי ההקדמה.

ההסתברות להקדמה כוזבת תלויה בהגדרת אוגר בקרת זיהוי הקדמה. הגדרה קצרה של 8 שבבים עלולה לגרום להקדמה כוזבת שתזוהה כל כמה שניות. ההגדרה המומלצת של 20שבבים הופכת את זיהוי ההקדמה הכוזבת לאירוע בלתי סביר. אורכי ההקדמה עבור מצב R ומצב SL ארוכים מספיק כדי להשתמש בהגדרה המומלצת.
יש מעט מאוד תועלת בכך שההקדמה תזהה יותר מ-20 שבבים.
ה-AFC מושבת עבור דגם S עם הקדמה קצרה ודגם T. זה מקטין את זמן התייצבות המקלט ומאפשר הגדרת זיהוי קדמה ארוכה יותר. כאשר AFC מושבת, מצב T יכול להשתמש בהגדרה המומלצת של 20 שבבים. הגדרה של 4 נשנושים או 20 שבבים משמשת לדגם S עם הקדמה קצרה. זה הופך את ההסתברות לזיהוי הקדמה כוזבת מעט גבוהה יותר עבור דגם זה.
טבלה 4. זיהוי הקדמה

EN-13757-4
מִינִימוּם
סנכרון
מִלָה
שָׁמִישׁ
הַקדָמָה
התקנת RX לְגַלוֹת
דקה
Si443x Preamble
הגדרת זיהוי
nx (01) צ'יפס צ'יפס צ'יפס צ'יפס צ'יפס מכרסמים צ'יפס
מצב S הקדמה קצרה 15 30 6 24 8* 16 4 16
הקדמה ארוכה של דגם S 279 558 6 552 16 536 5 20
דגם T (מטר-אחר) 19 38 6 32 8* 24 5 20
מצב R 39 78 6 72 16 56 5 20
*פֶּתֶק: AFC מושבת

המקלט מוגדר לפעול הדדית עם משדר תוך שימוש בהקדמה המינימלית שצוינה. זה מבטיח שהמקלט יפעל יחד עם כל משדר תואם M-bus.
מפרט Wireless M-Bus דורש הקדמה ארוכה מאוד עבור מצב S1 של לפחות 558 שבבים. זה ייקח בערך 17 אלפיות השנייה רק ​​כדי לשדר את ההקדמה. ה-Si443x אינו מצריך הקדמה כה ארוכה ואינו נהנה מההקדמה הארוכה. בעוד שההקדמה הארוכה מצוינת כאופציונלית עבור מצב S2, אין סיבה להשתמש בהקדמה ארוכה עם ה-Si443x. אם רוצים תקשורת חד-כיוונית, מצב T1 יספק הקדמה קצרה יותר, קצב נתונים גבוה יותר וחיי סוללה ארוכים יותר. אם יש צורך בתקשורת דו-כיוונית באמצעות מצב S2, מומלץ להקדים.
שימו לב שסף הזיהוי של דגם S עם הקדמה ארוכה הוא ארוך יותר ממספר נגיסי ההקדמה המועברים עבור דגם S עם הקדמה קצרה. משמעות הדבר היא שמקלט הפתיחה הארוכה Mode S לא יזהה קדמה ממשדר קצר פתח מצב S. זה הכרחי אם מקלט הפתיחה הארוך Mode S אמור לקבל תועלת כלשהי מההקדמה הארוכה.
שימו לב שמקלט הקדמה Mode S יזהה את ההקדמה ויקבל מנות משני מצבי הקדמה קצרים.
משדר ומשדר מצב S עם הקדמה ארוכה; לכן, באופן כללי, קורא המונה צריך להשתמש בתצורת המקלט הקצרה Mode S.

קידוד/פענוח

מפרט Wireless M-bus דורש שתי שיטות קידוד שונות. קידוד מנצ'סטר משמש עבור מצב S ומצב R. קידוד מנצ'סטר משמש גם עבור קישור אחר-למטר בדגם T. קישור מטר-לאחר של דגם T משתמש ב-3 מתוך 6 קידודים.
1. מנצ'סטר מקודד/פענוח
קידוד מנצ'סטר נפוץ היסטורית במערכות RF כדי לספק שחזור ומעקב שעון חזקים באמצעות מודם פשוט וזול. עם זאת, רדיו מודרני בעל ביצועים גבוהים כמו Si443x אינו זקוק לקידוד מנצ'סטר. קידוד מנצ'סטר נתמך בעיקר עבור תאימות לתקנים קיימים, אך קצב הנתונים עבור Si443x מוכפל למעשה כאשר לא משתמשים בקידוד מנצ'סטר.
ה-Si443x תומך בקידוד ופענוח מנצ'סטר של כל החבילה בחומרה. למרבה הצער, מילת הסנכרון אינה מקודדת מנצ'סטר. רצף מנצ'סטר לא חוקי נבחר בכוונה עבור מילת הסנכרון. זה הופך את הקידוד של מנצ'סטר לבלתי תואם לרוב מכשירי הרדיו הקיימים, כולל ה-Si443x. כתוצאה מכך, הקידוד והפענוח של מנצ'סטר חייבים להתבצע על ידי ה-MCU. כל בייט בנתונים לא מקודדים מורכב משמונה סיביות נתונים. באמצעות קידוד מנצ'סטר, כל סיבית נתונים מקודדת לסמל שני שבבים. מכיוון שיש לכתוב את הנתונים המקודדים לרדיו FIFO שמונה שבבים בכל פעם, נגיסה אחת של נתונים מקודדת ונכתבת ל-FIFO בכל פעם.
טבלה 5. קידוד מנצ'סטר

נְתוּנִים Ox12 0x34 בתים
Ox1 0x2 0x3 0x4 מכרסמים
1 10 11 100 בינארי
שְׁבָב 10101001 10100110 10100101 10011010 בינארי
FIFO OxA9 OxA6 OxA5 Ox9A hex

כל בייט שישודר מועבר בייט אחד בכל פעם לפונקציית הקוד בתים. פונקציית ה-encode byte תקרא לפונקציית encode nibble פעמיים, תחילה עבור ה-nibble המשמעותי ביותר ולאחר מכן עבור ה-nibble הפחות משמעותי.
קידוד מנצ'סטר בתוכנה אינו קשה. החל מהסיבית המשמעותית ביותר, אחד מקודד כרצף שבבים "01". אפס מקודד כרצף שבבים "10". ניתן לבצע זאת בקלות באמצעות לולאה והסטת שני ביטים עבור כל סמל. עם זאת, מהיר יותר פשוט להשתמש בטבלת חיפוש פשוטה של ​​16 כניסות עבור כל נגיסה. פונקציית ה-encode Manchester nibble מקודדת נגיסה של נתונים ואז כותבת אותו ל-FIFO. השבבים הופכים לפני הכתיבה ל-FIFO כדי לתת מענה לדרישות ההקדמה ההפוכה.
בעת הקבלה, כל בייט ב-FIFO מורכב משמונה שבבים ומפוענח לנגיסה אחת של נתונים. פונקציית ה-read block קוראת בייט אחד בכל פעם מה-FIFO וקוראת לפונקציית decode byte. השבבים הופכים לאחר קריאה מה-FIFO כדי לתת מענה לדרישות ההקדמה ההפוכה. כל בייט של שבבים מקודדים מנצ'סטר מפוענח לנגיסה של נתונים. הנישנוש המפוענח נכתב למאגר RX באמצעות פונקציית ה-write nibble RX buffer.
שימו לב שגם הקידוד וגם הפענוח מתבצעים כרסום נתונים אחד בכל פעם תוך כדי תנועה. קידוד למאגר ידרוש מאגר נוסף בגודל כפול מהנתונים הלא מקודדים. הקידוד והפענוח מהירים בהרבה מקצב הנתונים הנתמך המהיר ביותר (100 אלף שבבים לשנייה). מכיוון שה-Si443x תומך בקריאה ובכתיבה של מספר בתים ל-FIFO, ישנה תקורה קטנה בשימוש בקריאה ובכתיבה של בייט בודד בלבד. התקורה היא בערך 10 µs עבור 100 שבבים מקודדים. היתרון הוא חיסכון בזיכרון RAM של 512 בתים.
2. שלושה מתוך שישה פענוח קידוד
שיטת הקידוד Three-out-of-Six המצוינת ב-EN-13757-4 מיושמת גם בקושחה ב-MCU. קידוד זה משמש למצב המהיר (100 קילו שבבים לשנייה) T ממטר לאחר. דגם T מספק את זמן השידור הקצר ביותר ואת חיי הסוללה הארוכים ביותר עבור מד אלחוטי.
כל בייט של נתונים שיש להעביר מחולק לשתי דגימות. הנשנוש המשמעותי ביותר מקודד ומשודר תחילה. שוב, זה מיושם באמצעות פונקציית encode byte הקוראת לפונקציית encode nibble פעמיים.
כל נגיסה של נתונים מקודדת לסמל שישה שבבים. יש לכתוב את רצף הסמלים של שישה שבבים ל-FIFO של 8שבבים.
במהלך הקידוד, שני בתים של נתונים מקודדים כארבעה ניבולים. כל נשנוש הוא סמל של 6 שבבים. ארבעה סמלים של 6 שבבים מצטברים כשלושה בתים.
טבלה 6. קידוד שלושה מתוך שישה

נְתוּנִים 0x12 0x34 בתים
Ox1 0x2 0x3 0x4 מכרסמים
שְׁבָב 15 16 13 34 אוקטלי
1101 1110 1011 11100 בינארי
FIFO 110100 11100010 11011100 בינארי
0x34 OxE2 OxDC hex

בתוכנה, קידוד שלוש מתוך שש מיושם באמצעות שלוש פונקציות מקוננות. פונקציית encode byte תקרא לפונקציית encode nibble פעמיים. פונקציית ה-encode nibble משתמשת בטבלת חיפוש עבור סמל שישה שבבים וכותבת את הסמל לפונקציות Shift Three מתוך שש. פונקציה זו מיישמת אוגר משמרות של 16 שבבים בתוכנה. הסמל נכתב לבייט הכי פחות משמעותי של אוגר המשמרות. הפנקס מוזז שמאלה פעמיים. זה חוזר על עצמו שלוש פעמים. כאשר בית שלם קיים בבייט העליון של אוגר המשמרות, הוא מתהפך ונכתב ל-FIFO.
מכיוון שכל בייט של נתונים מקודד כבתים מקודדים אחד וחצי, חשוב לנקות את אוגר המשמרות בתחילה כדי שהבית המקודד הראשון יהיה נכון. אם אורך החבילה הוא מספר אי זוגי, לאחר קידוד כל הבתים, עדיין יישאר נישנוש אחד באוגר המשמרות. זה מטופל עם הפוסט כפי שהוסבר בסעיף הבא.
פענוח שלושת מתוך שישה המקודדים הוא ההליך ההפוך. בעת פענוח, שלושה בתים מקודדים מפוענחים לשני בתים של נתונים. אוגר המשמרות של התוכנה משמש שוב לצבירה בתים של נתונים מפוענחים. טבלת חיפוש הפוכה של 64 כניסות משמשת לפענוח. זה משתמש בפחות מחזורים אבל יותר בזיכרון קוד. חיפוש בטבלת חיפוש בת 16 ערכים אחר הסמל המתאים לוקח הרבה יותר זמן.
הודעה
למפרט Wireless M-bus יש דרישות ספציפיות ל-postamble או לקרוואן. עבור כל המצבים, המינימום הוא שני שבבים, והמקסימום הוא שמונה שבבים. מכיוון שהיחידה האטומית המינימלית עבור ה-FIFO היא בת אחד, נעשה שימוש בקרון של 8 שבבים עבור מצב S ומצב R. ה-Postamble של Mode T הוא שמונה שבבים אם אורך החבילה זוגי או ארבעה שבבים אם אורך החבילה אי-זוגי. ה-postamble של ארבעת השבבים עבור אורך מנות אי-זוגי עומד בדרישות של לפחות שני שבבים מתחלפים.
טבלה 7. אורך הדואר

אורך הדואר (שבבים)
דקה מקסימום יישום רצף שבבים
מצב S 2 8 8 1010101
מצב T 2 8 4 (מוזר) 101
8 (אֲפִילוּ) 1010101
מצב R 2 8 8 1010101
מטפל במנות

ניתן להשתמש במטפל החבילות ב-Si443x במצב רוחב מנות משתנה או במצב רוחב מנות קבוע. מצב רוחב מנות משתנה דורש בתים של אורך מנה אחרי מילת הסנכרון ובתי כותרת אופציונליים. עם הקליטה, הרדיו ישתמש בבייט באורך כדי לקבוע את סופה של חבילה חוקית. בשידור, הרדיו יכניס את שדה האורך אחרי בתים של הכותרת.
לא ניתן להשתמש בשדה L עבור פרוטוקול M-bus אלחוטי עבור שדה אורך Si443x. ראשית, שדה L אינו אורך החבילה בפועל. זהו מספר בתים של עומס שכבת קישור לא כולל בתים של CRC או קידוד. שנית, שדה ה-L עצמו מקודד באמצעות קידוד מנצ'סטר או קידוד שלוש מתוך שישה עבור מד Mode T לאחר.
היישום משתמש במטפל החבילות במצב רוחב מנות קבוע עבור שידור וקבלה כאחד. עם השידור, שכבת PHY תקרא את שדה L במאגר השידור ותחשב את מספר הבתים המקודדים, כולל ה-postamble. המספר הכולל של בתים מקודדים שיש לשדר נכתב ל-Packet Length register (0x3E).
עם הקבלה, שני הבייטים המקודדים הראשונים מפוענחים, ושדה L נכתב למאגר הקבלה. שדה L משמש לחישוב מספר הבתים המקודדים שיתקבלו. לאחר מכן, מספר הבתים המקודדים שיתקבלו נכתב ל-Packet Length register (0x3E). השלט נמחק.
ה-MCU חייב לפענח את שדה ה-L, לחשב את מספר הבתים המקודדים ולכתוב את הערך לאוגר Packet Length לפני שהתקבל אורך החבילה הקצר ביותר האפשרי. שדה ה-L הקצר ביותר המותר עבור שכבת PHY הוא 9, נותן 12 בתים לא מקודדים. זה נותן 18 בתים מקודדים עבור דגם T. שני הבייטים הראשונים כבר פוענחו. לפיכך, אוגר אורך החבילה חייב להתעדכן בזמנים של 16 בתים ב-100 קילוביט לשנייה או 1.28 מילישניות. זו לא בעיה עבור 8051 הפועל במהירות של 20 MIPS.
מספר הבתים שיתקבלו אינו כולל את ה-postamble, למעט ה-postamble של ארבעה שבבים המשמש למנות Mode T עם אורך מנות אי-זוגי. לפיכך, המקלט אינו מצריך שליחה, למעט מנות דגם T באורך אי-זוגי. הודעה זו נחוצה רק כדי לתת מספר שלם של בתים מקודדים. מתעלמים מתוכן הפוסט; לכן, אם ה-postamble לא ישודר, ארבעה שבבי רעש יתקבלו ויתעלמו ממנו. מכיוון שהמספר הכולל של בתים מקודדים מוגבל ל-255 (0xFF), היישום מגביל את שדה L המקסימלי עבור המצבים השונים.
טבלה 8. מגבלות גודל מנות

מוּצפָּן מְפוּענָח M-Bus
בתים בתים L-Field
דצמבר hex דצמבר hex דצמבר hex
מצב S 255 FF 127 7 F 110 6E
מצב T (מטר-אחר) 255 FF 169 A9 148 94
מצב R 255 FF 127 7 F 110 6E

מגבלות אלה הן בדרך כלל הרבה מעל מקרה השימוש האופייני עבור מד אלחוטי. יש לשמור על אורך החבילה קטן כדי לקבל את חיי הסוללה הטובים ביותר האפשריים.
בנוסף, המשתמש רשאי לציין את שדה ה-L המקסימלי שאמור להתקבל (USER_RX_MAX_L_FIELD). זה קובע את הגודל הנדרש עבור מאגר הקבלה (USER_RX_BUFFER_SIZE).
תמיכה בשדה L מקסימלי של 255 ידרוש מאגר קליטה של ​​290 בתים ומקסימום של 581 בתים מקודדים מנצ'סטר. יהיה צורך להשבית את מטפל החבילות ולא ניתן היה להשתמש באוגר אורך המנות במקרה זה. זה אפשרי, אבל יותר נוח להשתמש במטפל במנות, אם אפשר.

שימוש ב-FIFO

ה-Si4431 מספק FIFO של 64 בתים לשידור וקבלה. מכיוון שמספר הבתים המקודדים הוא 255, ייתכן שחבילה מקודדת שלמה לא תתאים למאגר של 64 בתים.
הפצה
בשידור, המספר הכולל של בתים מקודדים מחושב. אם המספר הכולל של בתים מקודדים, כולל ה-postamble, קטן מ-64 בתים, החבילה כולה נכתבת ל-FIFO ורק הפסקת החבילה שנשלחה מופעלת. רוב החבילות הקצרות יישלחו בהעברה FIFO אחת.
אם מספר הבתים המקודדים גדול מ-64, יידרשו העברות FIFO מרובות כדי לשלוח את החבילה. 64 הבתים הראשונים נכתבים ל-FIFO. ה-Packet Send ו-TX FIFO Almost Empty פסיקות מופעלות. סף ה-TX FIFO Almost Empty מוגדר ל-16 בתים (25%). בכל אירוע IRQ, מאגר הסטטוס 2 נקרא. ה-Packet Send Bit נבדק תחילה, ואם החבילה לא נשלחה במלואה, 48 הבתים הבאים של נתונים מקודדים נכתבים ל-FIFO. פעולה זו נמשכת עד שכל הבתים המקודדים נכתבו ומתרחשת הפסקת ה-Packet Sent.
1. קַבָּלָה
בקבלה, בהתחלה, רק פסיקת הסנכרון Word מופעלת. לאחר קבלת מילת הסנכרון, פסיקת מילת הסנכרון מושבתת והפסיקה כמעט מלאה של FIFO מופעלת. סף FIFO כמעט מלא מוגדר בתחילה ל-2 בתים. הפסקת FIFO Almost Full הראשונה משמשת כדי לדעת מתי שני הבייטים באורך התקבלו. לאחר שהאורך התקבל, האורך מפוענח ומחושב מספר הבתים המקודדים. סף RX FIFO כמעט מלא מוגדר לאחר מכן ל-48 בתים. ה-RX FIFO כמעט מלא והפסקות Valid Packet מופעלות. באירוע ה-IRQ הבא, מאגר הסטטוס 1 נקרא. ראשית, סיבית ה-Valid Packet נבדקת, ולאחר מכן נבדקת ה-FIFO Almost Full. אם רק ה-RX FIFO Almost Full מוגדר, 48 הבתים הבאים נקראים מה-FIFO. אם ביט החבילה החוקי מוגדר, שאר החבילה נקרא מה-FIFO. ה-MCU עוקב אחר כמה בתים נקראו ומפסיק לקרוא אחרי הבית האחרון.

שכבת קישור נתונים

מודול שכבת קישור הנתונים מיישם שכבת קישור תואמת 13757-4:2005. שכבת קישור הנתונים (LINK) מספקת ממשק בין השכבה הפיזית (PHY) לשכבת היישום (AL).
שכבת קישור הנתונים מבצעת את הפונקציות הבאות:

  • מספק פונקציות המעבירות נתונים בין PHY ל-AL
  • יוצר CRCs עבור הודעות יוצאות
  • מזהה שגיאות CRC בהודעות נכנסות
  • מספק מענה פיזי
  • מאשר העברות עבור מצבי תקשורת דו-כיוונית
  • מסגרות סיביות נתונים
  • מזהה שגיאות מסגור בהודעות נכנסות
פורמט מסגרת של שכבת קישור

פורמט המסגרת Wireless M-Bus המשמש ב-EN 13757-4:2005 נגזר מפורמט המסגרת FT3 (Frame Type 3) מ-IEC60870-5-2. המסגרת מורכבת מגוש נתונים אחד או יותר. כל בלוק כולל שדה CRC של 16 סיביות. הבוק הראשון הוא בלוק באורך קבוע של 12 בתים הכולל את שדה L, שדה C, שדה M ושדה A.

  1. L-Field
    שדה L הוא האורך של מטען נתוני שכבת הקישור. זה לא כולל את שדה ה-L עצמו או כל אחד מבייטים של ה-CRC. הוא כן כולל את שדה L, שדה C, שדה M ושדה A. אלה הם חלק ממטען PHY.
    מכיוון שמספר הבתים המקודדים מוגבל ל-255 בתים, הערך המקסימלי הנתמך עבור שדה M הוא 110 בתים עבור נתונים מקודדים מנצ'סטר ו-148 בתים עבור נתונים מקודדים במצב T שלושה מתוך שישה.
    שכבת הקישור אחראית לחישוב שדה ה-L בשידור. שכבת הקישור תשתמש בשדה L בקבלה.
    שימו לב ששדה L אינו מציין את אורך מטען PHY או את מספר הבתים המקודדים. עם השידור, ה-PHY יחשב את אורך מטען ה-PHY ואת מספר הבתים המקודדים. עם הקבלה, ה-PHY יפענח את שדה L ויחשב את מספר הבתים לפענוח.
  2. C-Field
    שדה C הוא שדה בקרת המסגרת. שדה זה מזהה את סוג המסגרת ומשמש עבור הפרימיטיבים של שירות החלפת נתוני קישור. השדה C מציין את סוג המסגרת - SEND, CONFIRM, REQUEST או RESPOND. במקרה של מסגרות SEND ו-REQUEST, שדה C מציין אם צפוי CONFIRM או RESPOND.
    בעת שימוש בפונקציית Link TX הבסיסית, ניתן להשתמש בכל ערך של C. בעת שימוש ב-Link Service Primitives, שדה C מאוכלס באופן אוטומטי לפי EN 13757-4:2005.
  3. M-Field
    שדה M הוא קוד היצרן. יצרנים יכולים לבקש קוד בן שלוש אותיות מהבאים web כְּתוֹבֶת: http://www.dlms.com/flag/INDEX.HTM כל תו בקוד בן שלוש האותיות מקודד כחמש סיביות. ניתן להשיג את הקוד של 5 סיביות על ידי לקיחת קוד ASCII והפחתת 0x40 ("A"). שלושת הקודים של 5 סיביות משורשרים ליצירת 15 סיביות. החלק המשמעותי ביותר הוא אפס.
  4. א-שדה
    שדה הכתובת הוא כתובת ייחודית של 6 בתים לכל מכשיר. הכתובת הייחודית צריכה להיות מוקצה על ידי היצרן. באחריות כל יצרן לוודא שלכל מכשיר יש כתובת ייחודית של 6 בתים. הכתובת עבור מסגרות שלח ובקשה היא הכתובת העצמית של המונה או התקן אחר. מסגרות הנתונים של תגובת האישור נשלחות באמצעות הכתובת של המכשיר המקור.
  5. CI-Field
    שדה ה-CI הוא כותרת האפליקציה ומפרט את סוג הנתונים במטען נתוני האפליקציה. בעוד EN13757-4:2005 מציין מספר מוגבל של ערכים, הפרימיטיבים של שירות הקישור יאפשרו שימוש בכל ערך.
  6. CRC
    ה-CRC מצוין ב-EN13757-4:2005.
    פולינום CRC הוא:
    X16 + x13 + x12 + x11 + x10 + x8 +x6 + x5 +x2 + 1
    שימו לב שה-M-Bus CRC מחושב על פני כל בלוק של 16 בתים. התוצאה היא שכל 16 בתים של נתונים דורשים שידור של 18 בתים,
מידע נוסף

למידע נוסף על יישום שכבת הקישור, ראה "AN452: Wireless M-Bus Stack Programmers Guide".

ניהול חשמל

איור 2 מציג את ציר הזמן של ניהול צריכת החשמל עבור מד דוגמהample באמצעות מצב T1.

ה-MCU צריך להיות במצב שינה במידת האפשר כדי לחסוך באנרגיה. באקס זהample, ה-MCU ישן כאשר ה-RTC פועל, כאשר ממתין להפעלת גביש הרדיו, וכאשר משדר מה-FIFO. ה-MCU יתעורר מאות EZRadioPRO IRQ המחובר להתעוררות Port Match.
בעת שידור הודעות ארוכות מבלוק אחד, ה-MCU חייב להתעורר כדי למלא את ה-FIFO (בהתבסס על פסיקת ה-FIFO כמעט ריקה) ואז לחזור לישון.
ה-MCU צריך להיות במצב Idle פועל מהמתנד עם הספק נמוך או מתנד מצב פרץ בעת קריאה מה-ADC. ה-ADC דורש שעון SAR.
כאשר ה-EZRadioPRO אינו בשימוש, ה-EZRadioPRO צריך להיות במצב כיבוי עם פין SDN גבוה. זה מצריך חיבור קשיח ל-MCU. האוגרים של EZ Radio Pro אינם נשמרים במצב כיבוי; לכן, ה-EZRadioPro מאותחל בכל מרווח RTC. אתחול הרדיו לוקח פחות מ-100 מיקרון ושומר על 400 nA. זה מביא לחיסכון באנרגיה של 10 µJ, בהתבסס על מרווח של 10 שניות.
גביש EZRadioPRO לוקח בערך 16 אלפיות השנייה עבור POR. זה ארוך מספיק כדי לחשב את ה-CRC עבור כשמונה בלוקים. ה-MCU יחזור לישון אם ישלים את כל ה-CRCs לפני שהגביש יתייצב. אם נדרשת הצפנה, ניתן גם להפעיל אותה בזמן המתנה על מתנד הקריסטל.
ה-MCU אמור לפעול במהירות של 20 מגה-הרץ באמצעות המתנד בעל הספק נמוך עבור רוב המשימות. משימות הדורשות זמן קצוב מדויק חייבות להשתמש במתנד המדויק ובמצב סרק במקום במצב שינה. ה-RTC מספק מספיק רזולוציה עבור רוב המשימות. ציר הזמן לניהול צריכת החשמל של מד T2 לשעברampהיישום מוצג באיור 3.

יש לבצע אופטימיזציה של יישום המשדר למקרה הרגיל כאשר המונה מתעורר ואין קורא. פסקי הזמן המינימלי/מקסימלי של ACK ארוכים מספיק כדי שניתן יהיה להשתמש ב-C8051F930 RTC ולהכניס את ה-MCU למצב שינה.
אפשרויות בנייה מסופקות עבור קוראי רשת או USB שאינם צריכים להשתמש במצב שינה. מצב המתנה ישמש במקום שינה כך שה-USB וה-UART עלולים להפריע ל-MCU.

יישום תוכנת SILICON LABS Wireless M-BUS AN451-1

סטודיו פשטות
גישה בלחיצה אחת לכלי MCU וכלים אלחוטיים, תיעוד, תוכנה, ספריות קוד מקור ועוד. זמין עבור Windows,
מק ולינוקס!

תיק IoT אֵיכוּת
תיק IoT
www.silabs.com/IoT
SW/HW
www.silabs.com/simplicity
אֵיכוּת
www.silabs.com/quality
תמיכה וקהילה
community.silabs.com

כתב ויתור
בכוונת Silicon Labs לספק ללקוחות את התיעוד העדכני, המדויק והמעמיק של כל הציוד ההיקפי והמודולים הזמינים עבור מיישמי מערכות ותוכנה המשתמשים או מתכוונים להשתמש במוצרי Silicon Labs. נתוני אפיון, מודולים וציוד היקפי זמינים, גדלי זיכרון וכתובות זיכרון מתייחסים לכל מכשיר ספציפי, ופרמטרים "טיפוסיים" שסופקו יכולים להשתנות ביישומים שונים. יישום למשלampהדברים המתוארים כאן הם למטרות המחשה בלבד. Silicon Labs שומרת לעצמה את הזכות לבצע שינויים ללא הודעה נוספת והגבלה לפרטי המוצר, מפרטים ותיאורים כאן, ואינה נותנת אחריות לגבי הדיוק או השלמות של המידע הכלול. ל-Silicon Labs לא תהיה כל אחריות להשלכות של השימוש במידע המסופק כאן. מסמך זה אינו מרמז או מבטא רישיונות זכויות יוצרים שניתנו להלן לתכנון או ייצור של מעגלים משולבים כלשהם. המוצרים אינם מתוכננים או מורשים לשימוש בתוך מערכת תומכת חיים ללא הסכמה ספציפית בכתב של Silicon Labs. "מערכת תומכת חיים" היא כל מוצר או מערכת שנועדו לתמוך או לקיים חיים ו/או בריאות, שאם היא נכשלת, ניתן לצפות באופן סביר שיגרמו לפציעה או מוות משמעותית. מוצרי Silicon Labs אינם מיועדים או מורשים עבור יישומים צבאיים. בשום פנים ואופן אין להשתמש במוצרי Silicon Labs בנשק להשמדה המונית לרבות (אך לא רק) נשק גרעיני, ביולוגי או כימי, או טילים המסוגלים לספק נשק כזה.
מידע על סימן מסחרי
Silicon Laboratories Inc.®, Silicon Laboratories®, Silicon Labs®, SiLabs®, והלוגו של Silicon Labs®, Bluegiga®, Bluegiga Logo®, Clockbuilder®, CMEMS®, DSPLL®, EFM®, EFM32®, EFR, Ember® , Energy Micro, לוגו Energy Micro ושילובים שלהם, "המיקרו-בקרים הידידותיים ביותר לאנרגיה בעולם", Ember®, EZLink®, EZRadio®, EZRadioPRO®, Gecko®, ISOmodem®, Precision32®, ProSLIC®, Simplicity Studio®, SiPHY® , Telegesis, Telegesis Logo®, USBXpress® ואחרים הם סימנים מסחריים או סימנים מסחריים רשומים של Silicon Labs. ARM, CORTEX, Cortex-M3 ו-thumbs הם סימנים מסחריים או סימנים מסחריים רשומים של ARM Holdings. Keil הוא סימן מסחרי רשום של ARM Limited. כל שאר המוצרים או שמות המותגים המוזכרים כאן הם סימנים מסחריים של המחזיקים בהתאמה.הלוגו של SILICON LABS

מעבדות סיליקון בע"מ
400 ווסט סזאר צ'אבס
אוסטין, TX 78701
אַרצוֹת הַבְּרִית
http://www.silabs.com

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

SILICON LABS Wireless M-BUS יישום תוכנה AN451 [pdfמדריך למשתמש
SILICON LABS, C8051, MCU ו- EZRadioPRO, Wireless M-bus, Wireless, M-BUS, תוכנה, יישום, AN451

הפניות

השאר תגובה

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