אולי מעולם לא חשבת על כך, אך מדי יום אתה משתמש במאות מיקרו-בקרים (MCU) בממוצע. כל פריט שבו אתה משתמש, ממברשת השיניים ועד לרכב שלך, כולל בתוכו מיקרו-בקר אחד או יותר. יותר מכך, מספר המיקרו-בקרים שעליהם אתה מסתמך רק הולך וגדל לאור תהליך ההטמעה המהיר של תנועת האינטרנט של הדברים (IoT).

טבלה 1
אם כן, מהו אותו מיקרו-בקר שנמצא בתוך כל דבר? כמו שהשם מרמז, מיקרו-בקר הוא שבב קטן ששולט במשהו. הוא עושה זאת על-ידי עיבוד מתכון, שנקרא תוכנית, שמישהו כתב במיוחד עבור מוצר מסוים ואחסן אותו בתוך הזיכרון של המיקרו-בקר. מאחר שהתוכנית שנמצאת בפנים היא זו שקובעת כיצד המיקרו-בקר ישלוט במוצר, ניתן להשתמש במיקרו-בקר אחד בשני מוצרים שונים לחלוטין. בהמשך נדון בסיבה לכך.
מבחינה היסטורית, המשתמשים הזדקקו למיקרו-בקרים מאחר שאלה סייעו להם לעבד נתונים ולפתור בעיות בצורה הרבה יותר מהירה מזו שהאדם מסוגל לה. המיקרו-בקרים הופכים גם את המוצרים לנוחים יותר ומבטיחים שאופן הפעולה שלהם יהיה עקבי יותר. המהירות או התדר של המיקרו-בקר מציינים את קצב עיבוד הנתונים ופתרון הבעיות. באופן כללי, המהירות כבר לא מהווה בעיה. האתגר הנוכחי הוא להביא לכך שהמיקרו-בקר יוכל לפתור בעיות מורכבות יותר עם תקציב אנרגיה מצומצם.
במאמר זה נדון כיצד אפשר להשתמש במשפחת המיקרו-בקרים של 32 סיביות של Silicon Labs כדי להשיג יעילות אנרגיה מרבית ביישומים מוטבעים.
מה נמצא בתוך היישומים המוטבעים?
ברמה גבוהה, כל היישומים המוטבעים דומים באופן בולט. כל הדברים, החל ממוצרים תעשייתיים כמו מדי מים וחיישני אבטחה ועד פריטים אישיים, כולל פריטים לבישים חכמים, בנויים מכמה רכיבים. רכיבים אלה מחוברים זה לזה כדי לבצע משימות ספציפיות. יישום אופייני כולל מספר רב של אבני בניין. הנה רשימה של הקטגוריות וכמה רכיבים נפוצים ופונקציות נפוצות:
ניהול צריכת חשמל – סוללה, וסתים, קצירת אנרגיה, אחסון אנרגיה

דוגמה: שעון עם Bluetooth Smart ו-HRM
מיקרו-בקר – המוח
תמיכה במיקרו-בקר – יחידות מיקרו-בקר/מעבדים משותפים נוספים, זיכרונות, שעוני זמן אמת (RTC) חיצוניים
חיישנים/קלט – PIR, אור, HRM, IMU, GPS, ספירת סיבובים, מגע קיבולי
אקטואטורים/פלט – תצוגה, נוריות LED, שמע, בקרת מנוע
קישוריות חוטית – USB, UART, I2C, Ethernet, CAN, PLC
קישוריות אלחוטית – רדיו/RF, Bluetooth Smart, ZigBee, Thread, קישוריות קניינית, NFC
כל הרכיבים הללו צורכים אנרגיה ממקור החשמל שלך. לכן, כאשר בונים מערכת חסכונית באנרגיה, ההיגיון קובע שיש לבחור, במסגרת התקציב, רכיבים שבמהותם הם חסכוניים באנרגיה. משימה זו עלולה להיות קשה לעתים מאחר שרבים מהפריטים המפורטים למעלה משלבים בתוכם פונקציות שונות. לדוגמה, במיקרו בקר של Bluetooth Smart של Silicon Labs, Blue Gecko, מכשיר הרדיו הפועל באמצעות Bluetooth והמיקרו-בקר משולבים יחד, כך שהמשתמש זקוק למכשיר אחד בלבד.
מקורות אנרגיה
קיימים סוגים רבים של מקורות אנרגיה עבור יישומים מוטבעים:
1. חשמל קווי – “שאיבת” אנרגיה
2. סוללות – סוללת מטבע, Li-Poly, Li-ion, אלקליין, Super-cap
3. קצירת אנרגיה – אור, רטט, חום, תדר רדיו
4. חשמל אלחוטי – אור, מגנט, תדר רדיו
יישום אחד יכול להשתמש בכמה מקורות חשמל, אך מה שמשותף לכל מקורות האנרגיה האלה, פרט לאפשרות החשמל הקווי, הוא הצורך החיוני למזער את צריכת הזרם. לדוגמה, אם אתה בונה מערכת אוטומציה ביתית קווית, תוכל להוסיף סוללת גיבוי למקרה של הפסקת חשמל. הדבר יסייע למנוע אובדן של כל הפונקציונליות במצב חירום.
כאשר עליך לבחור מקור אנרגיה עבור היישום שלך, שקול את הנושאים הבאים:
• ניידות – האם המכשיר יכול לזוז? האם עליו להיות קרוב לשקע חשמל?
• תוחלת חיים – כמה זמן המכשיר יכול לפעול ברצף עד שיהיה צורך בפעולות תחזוקה?
•עלות – עד כמה מקור אנרגיה זה יקר?

טבלה 2. סקירה של מצבי האנרגיה במיקרו-בקרים מסוג EFM32 Gecko
מה לגבי המיקרו-בקר?
מוקדם יותר ציינו שרכיבי היישום צריכים להתבסס על מחזורי פעילות כדי לאפשר יעילות מרבית. הדבר נכון גם לגבי המיקרו-בקר עצמו. מכיוון שמיקרו-בקרים הם רכיבים מורכבים יותר, כמעט תמיד יש להם יותר מלחצן הפעלה/כיבוי. מיקרו-בקרים כוללים מצבי אנרגיה מרובי, כאשר כל מצב מאפשר קבוצה של יכולות עם תקורת צריכת זרם משויכת. טבלה 2 מציגה סקירה כללית של מצבי האנרגיה של המיקרו-בקרים מסוג EFM32. מצבי האנרגיה של המיקרו-בקר ישתנו במידה מסוימת בין מיקרו-בקר אחד למשנהו.
ציוד היקפי בעל תדר נמוך
ציוד היקפי משתמש בשעון איטי יותר, בדרך כלל של 32KHz, כדי לחסוך אנרגיה. הדבר מאפשר רמה גבוהה של פונקציונליות גם במצבי שינה עמוקה. כולל ממשקי תקשורת כמו UART, ממשקי חיישן כמו LESENSE, וכו’.
ציוד היקפי אסינכרוני
פריטי ציוד היקפי אלה, שאינם משתמשים בשעון, מגיבים בדרך כלל לאירועים חיצוניים. לדוגמה, מונה פולסים (PCNT) ו-I2C כאשר הוא פועל במצב התקן משני.
מצב IO וערנות
היכולת לשמור על מצב הפינים של המיקרו-בקר ואף לעורר, להעניק את השליטה בחזרה לתוכנה, היא חשובה במיוחד גם במצבים שבהם צריכת האנרגיה היא הנמוכה ביותר.
תכנון מצב שינה
כפי שהזכרנו מוקדם יותר, חשוב למזער את זמן הערנות. במקרים רבים, התוכנה שפועלת ב-CPU ממתינה שמשהו יקרה. אם ה-CPU מוגדר להמתין פרק זמן קבוע, הגישה הטובה ביותר היא להשתמש בחומרת טיימר. חומרת הטיימרים מגיעה במגוון סוגים עם הבדלים בפונקציונליות, בצריכת הזרם וברמת הדיוק.
במערכת EFM32, אם ה-CPU צריך להיכנס למצב שינה למשך כמה מחזורי שעון קצרים בזמן השמירה על פעולה מלאה של המיקרו-בקר, התוכנה צריכה להשתמש בטיימר חיצוני ולהעביר את המערכת למצב EM1 בזמן ההמתנה. שיטה זו תצמצם באופן משמעותי את צריכת הזרם וההתעוררות מתבצעת באופן מידי.
אם נדרשת פונקציונליות ברמה EM2-EM4 בלבד בזמן ההמתנה, וזמן ההמתנה ארוך מ-31µS, פרק הזמן של האוסילטור של 32768Hz, ניתן להשתמש בטיימרים בתדר נמוך כמו LETIMER, RTC או RTCC והמערכת יכולה לעבור למצב EM2 להשגת יעילות מרבית. אם נדרשת רמת דיוק גבוה, ניתן לסנכרן טיימר עם טיימר של תדר נמוך בזמן ההתעוררות דרך PRS כדי לקבוע את הזמן הקצוב למחזורי השעון האחרונים באמצעות הטיימר המדויק של התדר הגבוה.
אם זמן ההמתנה ארוך יחסית, כלומר, כמה מילי-שניות, כאשר אין צורך ברמת דיוק גבוהה, והמערכת זקוקה לפונקציונליות EM4 בלבד בזמן שינה, השינה יכולה להתבצע באמצעות CRYOTIMER שפועל באוסילטור ULFRCO של 1KHz להשגת זרם נמוך במיוחד למצב שינה בטווח של 100nA. שים לב, ההתעוררות ממצב EM4 צורכת יותר אנרגיה מאשר ההתעוררות ממצב EM2, מאחר שההתעוררות מתבצעת באמצעות איפוס. לכן, על אף שניתן היה להשתמש ב-EM4 לשינה של 5 שניות, ייתכן שהדבר לא יהיה חסכוני באנרגיה. כאשר מדובר בזמני שינה של דקות או יותר, מצב EM4 מתחיל להפוך ליעיל במיוחד.
שים לב, בהתקני EFM32, כתיבה לטיימרים בתדר נמוך (LETIMER, RTC או RTCC) מתבצעת באופן מידי בהשוואה למיקרו-בקרים אחרים, שבהם הכתיבה מחייבת כמה מחזורים של תדר נמוך. המשמעות לגבי EFM32 היא שאם ערך ה-RTC כעת הוא 99, המיקרו-בקר יכול להחליט לעבור למצב שינה ולהתעורר בערך 100. ברוב המערכות האחרות, ערך ה-RTC הנמוך ביותר האפשרי להתעוררות יהיה 102, כדי להקשות על השינה אם זמן ההמתנה הוא קטן מ-100 µS.
יעילות ה-CPU
לא חשוב עד כמה תשתדל לבצע אופטימיזציה של השינה, ה-CPU צריך לבצע קוד, בכל מקרה. קוד זה יכול לכלול החל מלוגיקת יישום רגילה ועד ערימות רשת ואלגוריתמים לעיבוד אותות. ה-CPU הוא חלק חשוב של המיקרו-בקר. הנה חמשת הפריטים המובילים הדרושים כדי להבטיח שה-CPU יפעיל קוד בצורה יעילה:
1. אפשר לקומפיילר לבצע אופטימיזציה של הקוד
ייתכן שעצה זו נראית לך מובנית מאליה, אך עליך להקפיד שהקוד יעבור קומפילציה כאשר כל האופטימיזציות מופעלות. אם הקומפיילר יכול לבצע אופטימיזציה של קישור-זמן, השתמש גם בסוג זה של אופטימיזציה. בקומפיילרים רבים קומפילציה של הקוד למטרת איתור באגים אינה יעילה. אחת הסיבות לכך היא שהערכים נשלפים מהזיכרון, מחושבים ולאחר מכן נכתבים בחזרה בכל פעולה. ללא אופטימיזציה, תהליך זה ינצל כמעט את כל יכולות ה-CPU, ויאט במידה רבה את קצב הביצוע.
2. התמקד בארכיטקטורה הנכונה.
בחר את ה-CPU המתאים עבור היישום שלך וודא שהקומפיילר יוצר קוב שמותאם בצורה מיטבית להתקן הנכון. לדוגמה, Cortex M4 הוא מצוין ליישומים גדולים יותר שמכילים חישובים מורכבים.
ל-Cortex M3 אין את כל יכולות ה-DSP ואין לו נקודת ציפה, בהשוואה ל-Cortex M4, אך עדיין הביצועים שלו יחסית גבוהים. Cortex M0+ הוא היעיל ביותר מבין כולם, כל עוד כמות עיבוד האותות היא מינימלית. הוא מצוין ללוגיקה של ערימות ובקרה.
3. השתמש בתדר הנכון.
על אף שהתדרים הנמוכים יותר מעניקים צריכות זרם נמוכות יותר, בדרך כלל כדאי לסיים את העובדה מכר יותר כדי לאפשר מעבר למצב שינה; במילים אחרות, תדר גבוה יותר יכול להיות יעיל יותר מבחינת האנרגיה. אם לחלקים השונים של המערכת יש צרכים שונים (כלומר, USART צריך 4 MHz, אך ה-CPU צריך 8MHz), השתמש במחלקי תדרים (pre-scaler) לדומיינים של השעון כדי להבטיח בחירה אופטימלית של התדר.
4. השתמש במאיצי החומרה הזמינים.
פעולות מסוימות מתבצעות ביעילות רבה יותר בחומרה מאשר ב-CPU. אחת הדוגמאות לכך היא קריפטוגרפיה (כתב סתרים). הציוד ההיקפי CRYPTO הזמין בהתקני EFM32 Gemstone יכול לבצע פעולות במהירות גבוהה פי 10 ובעילות רבה יותר מאשר הפעלתן ב-CPU. דוגמה נוספת היא חומרת מיזוג אלפא בחלק ממוצרי ה-EFM32. חומרה זו מייעלת את הפקת הגרפיקה עבור צגים חיצוניים.
5. וכמובן, מעבר למצב שינה בכל פעם שהדבר אפשרי.
יעילות החומרה
עד כה, התמקדנו ביעילות האינהרנטית של המיקרו-בקר ועל יכולתו לשלוט ביישום בצורה יעילה. התמונה כמעט מלאה. הפרטים הנוספים צריכים להתרכז באופן שבו החומרה בנויה, וכן באופן שבו האנרגיה מאוחסנת ומסופקת למערכת.
אמנם זהו נושא רחב מדי ולא נוכל להעמיק בו כאן, אך אחת הנקודות החשובות היא המתח החשמלי (וולטאג’) של התפעול. באופן כללי, ככל שהמתח החשמלי המסופק לרכיב נמוך יותר, כך הרכיב יעיל יותר, עד למגבלת הפונקציונליות של ההתקן. רכיבים מסורתיים רבים פועלים עם במתח חשמלי של 3V, אך אנו נוכחים במעבר לרכיבים הפועלים במתח נומינלי של 1.8V.
השיפור הוא אדיר מבחינת יעילות האנרגיה, אך מקורות אנרגיה רבים, כולל סוללות מטבע וסוללות Lithium-Polimer, מפיקים ערכי מתח חשמלי הרבה יותר גבוהים מזה. כדי לווסת את המתח החשמלי עד למתח החשמלי הייעודי של המערכת בדרך היעילה ביותר האפשרית, עליך להשתמש בממיר ממותג מוריד מתח (Switched-Mode Buck) (DCDC).
חלק מההתקנים של EFM32 Gemstone שכוללים ממיר DC-DC מובנה, יכולים לספק הן למיקרו-בקר והן לרכיבים החיצוניים עד 200 mA בסה”כ. הדבר מאפשר לך לבנות מערכת חסכונית מאוד באנרגיה בלי להוסיף ממירים חיצוניים.
לדוגמה, סוללת מטבע Lithium של 3V תפיק מתח חשמלי ממוצע של 2.8V. השימוש ב-LDO לוויסות המתח עד ל-1.8V יביא ליעילות של כ-64 אחוז. עם זאת ממיר ממותג מוריד מתח DC עשוי לווסת לאותה אספקה של 1.8V אך ברמת יעילות של למעלה מ-80 אחוז, שיכולה להאריך את חייה הסוללה ביותר מ-25 אחוז, ואולי אף להאריך את חיי הסוללה מארבע שנים לחמש שנים. שים לב, השימוש בממיר ממותג משולב כרוכה בעלות נוספת, מאחר שהיא מחייבת להוסיף סליל השראה (אינדוקטור) חיצוני וכמה קבלים ללוח המעגל המודפס (PCB). ברוב היישומים שבהם יש חשיבות למתח נמוך, זהו מחיר נמוך שכדאי לשלם כדי להשיג שיפור משמעותי ביעילות האנרגיה.
באדיבות אלינה הנדסת אלקטרוניקה