- טכניקות חיסכון בחשמל למיקרו-בקרים
- 1. מצבי שינה
- 2. שינוי דינמי של תדר המעבד
- 3. הפרע את מבנה הקושחה של המטפל
- 4. קושחה המותאמת לחשמל
- סיכום
כמו שגז (בנזין / סולר) חשוב לאופניים, משאיות ומכוניות (כן, למעט טסלאס!) לנוע, כך גם החשמל לרוב יישומי האלקטרוניקה ויותר מכך, ליישומים מבוססי מערכת משובצים שבדרך כלל הם סוללה (מופעל על ידי אנרגיה מוגבלת, החל מהטלפונים הניידים הרגילים וכלה במכשירי בית חכם.
האופי המוגבל של כוח הסוללה מרמז על הצורך להבטיח שקצב צריכת החשמל של מכשירים אלה צריך להיות סביר כדי לעודד אימוץ ושימוש בהם. במיוחד במכשירים מבוססי IoT שבהם ניתן היה לצפות שהתקן יחזיק מעמד למשך 8 - 10 שנים בטעינה אחת ללא החלפת סוללה.
מגמות אלה הביאו ליישום שיקולי הספק נמוך בתכנון מערכות משובצות, ובמהלך השנים פיתחו מעצבים, מהנדסים ויצרנים כמה וכמה דרכים חכמות לניהול יעיל של הכוח הנצרך על ידי מוצרים, כדי להבטיח שהם יישארו זמן רב יותר תשלום יחיד. הרבה מהטכניקות הללו מתמקדות במיקרו-בקר, שהוא הלב של רוב המכשירים. במאמר של היום נחקור כמה מהטכניקות הללו וכיצד ניתן להשתמש בהן כדי למזער את צריכת החשמל במיקרו-בקרים. למרות שמעבד מיקרו-מעבד צורך פחות חשמל, אך ניתן להשתמש בו למיקרו-בקר בכל מקום, עקוב אחר הקישור כדי ללמוד כיצד מיקרו-מעבד שונה ממיקרו-בקר.
טכניקות חיסכון בחשמל למיקרו-בקרים
1. מצבי שינה
מצבי השינה (המכונים בדרך כלל מצבי צריכת חשמל נמוכים) הם ללא ספק הטכניקה הפופולרית ביותר להפחתת צריכת החשמל במיקרו-בקרים. בדרך כלל הם כרוכים בהשבתת מעגלים מסוימים או שעונים המניעים ציוד היקפי מסוים של המיקרו-בקרים.
תלוי בארכיטקטורה וביצרן, לרוב מיקרו-בקרים מצבי שינה מסוגים שונים, כאשר בכל מצב יש יכולת להשבית יותר מעגלים פנימיים או היקפיים בהשוואה למצב אחר. מצבי שינה נעים בדרך כלל בין שינה עמוקה או כבויה, לבין מצבי סרק ונמנום.
חלק מהמצבים הזמינים מוסברים להלן. יש לציין כי המאפיינים כמו גם שם המצבים הללו עשויים להשתנות מיצרן ליצרן.
אני. מצב המתנה / שינה
זה בדרך כלל הפשוט ביותר מבין מצבי הספק נמוך למעצבים ליישם. מצב זה מאפשר למיקרו-בקר לחזור לפעולה מלאה בקצב מהיר מאוד. לכן זה לא המצב הטוב ביותר, אם מחזור ההספק של המכשיר, מחייב אותו לעזוב את מצב השינה לעיתים קרובות מאוד, מכיוון שכמות גדולה של כוח נשאבת, כאשר המיקרו-בקר יוצא ממצב השינה. החזרה למצב פעיל ממצב המתנה בדרך כלל מבוססת על הפרעה. מצב זה מיושם על המיקרו-בקר על ידי כיבוי עץ השעון שמניע את מעגלי המעבד בעוד שעון התדר הראשי העיקרי של MCU ממשיך לפעול. עם זאת, המעבד מסוגל לחדש את פעולתו באופן מיידי שמפעיל את ההדק. שער השעון נעשה שימוש נרחב בכדי לנתק את האותות במצבי הספק נמוך למיקרו-בקרים ומצב זה מייעד למעשה את אותות השעון על פני המעבד.
ii. מצב המתנה
מצב המתנה הוא עוד מצב צריכת חשמל נמוכה, קל ליישום של מעצבים. זה דומה מאוד למצב סרק / שינה שכן הוא כולל גם שימוש בשעון השעון על פני המעבד, אך הבדל אחד עיקרי הוא שהוא מאפשר שינוי בתוכן של זיכרון RAM אשר בדרך כלל אינו המקרה במצב סרק / שינה. במצב המתנה, ציוד היקפי מהיר כמו ה- DMA (גישה ישירה לזיכרון), יציאות טוריות, ציוד היקפי ADC ו- AES ממשיכים לפעול כדי להבטיח שהם זמינים מיד לאחר שהמעבד ער. עבור מכשירי MCU מסוימים, ה- RAM נשמר גם פעיל וניתן לגשת אליו על ידי ה- DMA המאפשר לאחסן ולקבל נתונים ללא התערבות מעבד. הספק הנמשך במצב זה יכול להיות נמוך עד 50uA / MHZ עבור מיקרו-בקרים בעלי הספק נמוך.
iii. מצב שינה עמוק
מצב שינה עמוק, כולל בדרך כלל השבתה של שעונים בתדרים גבוהים ומעגלים אחרים בתוך המיקרו-בקר ומשאירים רק את מעגלי השעון המשמשים להנעת אלמנטים קריטיים כמו טיימר כלב השמירה, זיהוי השחמה והספק במעגל האיפוס. רכיבי MCU אחרים עשויים להוסיף לה אלמנטים אחרים כדי לשפר את היעילות הכוללת. צריכת החשמל במצב זה יכולה להיות נמוכה כמו 1uA, תלוי ב- MCU המסוים.
iv. עצור / כיבוי מצב
למיקרו-בקרים מסוימים יש וריאציות שונות של מצב נוסף זה. במצב זה, מתנדים גבוהים ונמוכים בדרך כלל מושבתים ומשאירים רק כמה רושמי תצורה ואלמנטים קריטיים אחרים.
התכונות של כל מצבי השינה שהוזכרו לעיל נבדלות בין MCU ל- MCU אך כלל האצבע הוא: ככל שהשינה עמוקה יותר, כך מספר מכשירי ההיקף המושבתים במהלך השינה, וכמות החשמל הנצרכת נמוכה יותר, אם כי בדרך כלל זה גם אומר; ככל שכמות האנרגיה הנצרכת כדי להחזיר את המערכת גבוהה יותר. לפיכך, על המעצב לשקול וריאציה זו ולבחור את ה- MCU המתאים למשימה מבלי לעשות פשרות המשפיעות על מפרט המערכת.
2. שינוי דינמי של תדר המעבד
זוהי טכניקה פופולרית נוספת להפחתה יעילה של כמות החשמל הנצרכת על ידי מיקרו-בקר. זו ללא ספק הטכניקה הוותיקה וקצת יותר מורכבת ממצבי השינה. זה כרוך בקושחה המניעה באופן דינמי את שעון המעבד, ומתחלפת בין תדרים גבוהים ונמוכים שכן היחס בין תדר המעבד לכמות הנצרכת הוא ליניארי (כמוצג להלן).
יישום טכניקה זו נוהג בדרך כלל לפי דפוס זה; כאשר המערכת במצב סרק, הקושחה מגדירה את תדר השעון למהירות נמוכה המאפשרת למכשיר לחסוך מעט כוח וכאשר המערכת צריכה לבצע חישובים כבדים, מהירות השעון מוחזרת שוב.
ישנם תרחישים נגד פרודוקטיביות לשינוי תדר המעבד אשר לרוב כתוצאה מקושחה מפותחת. תרחישים כאלה מתעוררים כאשר תדר השעון נשמר נמוך בזמן שהמערכת מבצעת חישובים כבדים. תדירות נמוכה בתרחיש זה פירושה שהמערכת תיקח יותר זמן מהנדרש לביצוע המשימה שנקבעה ובכך תצרוך במצטבר את אותה כמות כוח שהמעצבים ניסו לחסוך. לפיכך, יש לנקוט משנה זהירות בעת יישום טכניקה זו ביישומים קריטיים.
3. הפרע את מבנה הקושחה של המטפל
זו אחת הטכניקות הקיצוניות ביותר של ניהול כוח במיקרו-בקרים. זה מתאפשר על ידי מעט מיקרו-בקרים כמו ליבות ה- ARM cortex-M שיש להן סיבוב-על-יציאה ברישום SCR. סיבית זו מספקת למיקרו-בקר את היכולת לישון לאחר ניהול שגרת הפרעה. אמנם יש מגבלה למספר היישומים שיפעלו בצורה חלקה באופן זה, אך זו יכולה להיות טכניקה שימושית מאוד עבור חיישני שטח ויישומים אחרים, ארוכי טווח, מבוססי איסוף נתונים.
רוב הטכניקות האחרות לדעתי הן וריאציות של אלה שכבר הוזכרו לעיל. למשל, טכניקת השעון ההיקפי הסלקטיבי היא בעצם וריאציה של מצבי השינה בהם המעצב בוחר את ציוד היקפי להפעלה או כיבוי. טכניקה זו דורשת ידע מעמיק במיקרו - בקר היעד ואולי אינה ידידותית למתחילים.
4. קושחה המותאמת לחשמל
אחת הדרכים הטובות ביותר להפחתת כמות החשמל הנצרכת על ידי מיקרו-בקר היא באמצעות כתיבת קושחה יעילה ומותאמת היטב. זה משפיע ישירות על כמות העבודה שנעשה על ידי המעבד בכל פעם וזה, על ידי הרחבה תורם לכמות החשמל הנצרכת על ידי המיקרו-בקר. יש לעשות מאמצים תוך כדי כתיבת הקושחה בכדי להבטיח גודל קוד ומחזורים מופחת שכן כל הוראה מיותרת שמבוצעת, היא חלק מהאנרגיה השמורה בסוללה שמתבזבזת. להלן כמה טיפים נפוצים מבוססי C לפיתוח קושחה אופטימלי;
- השתמש בכיתה "סטטי קונסט" ככל האפשר כדי למנוע העתקת זמן ריצה של מערכים, מבנים וכו 'הגוזלים חשמל.
- השתמש ב- Pointer. הם כנראה החלק הקשה ביותר בשפת C להבנה למתחילים, אך הם הטובים ביותר לגישה יעילה למבנים ולאיגודים.
- הימנע ממודולו!
- משתנים מקומיים על פני משתנים גלובליים במידת האפשר. משתנים מקומיים כלולים במעבד בעוד שמשתנים גלובליים מאוחסנים ב- RAM, המעבד ניגש מהר יותר למשתנים מקומיים.
- סוגי נתונים לא חתומים הם החבר הכי טוב שלך במידת האפשר.
- אמץ "ספירה לאחור" עבור לולאות במידת האפשר.
- במקום שדות סיביות למספרים שלמים לא חתומים, השתמש במסכות סיביות.
גישות להפחתת כמות החשמל הנצרכת על ידי מיקרו-בקר אינן מוגבלות לגישות מבוססות התוכנה שהוזכרו לעיל, גישות מבוססות חומרה כמו טכניקת בקרת מתח הליבה קיימות, אך כדי לשמור על אורך פוסט זה בטווח סביר, אנו נשמור אותם ליום אחר.
סיכום
יישום מוצר בעל צריכת חשמל נמוכה מתחיל מבחירת המיקרו-בקר וזה יכול להיות מבלבל למדי כשאתה מנסה לעבור על האפשרויות המגוונות הקיימות בשוק. במהלך הסריקה, גליון הנתונים עשוי לעבוד היטב להשגת הביצועים הכלליים של יחידות MCU, אך עבור יישומים קריטיים לחשמל, זו יכולה להיות גישה יקרה מאוד. כדי להבין את מאפייני ההספק האמיתיים של מיקרו-בקר, על המפתחים לקחת בחשבון את המפרט החשמלי ואת הפונקציות החשמלות הנמוכות העומדות לרשות המיקרו-בקר. מעצבים לא צריכים להיות מודאגים רק מהצריכה הנוכחית על ידי כל אחד ממצבי ההספק המפורסמים בגליון הנתונים של ה- MCU, אלא עליהם לבדוק את זמן ההשכמה, מקורות ההשכמה וההיקפי. הזמינים לשימוש במצבי הספק נמוך.
חשוב לבדוק את התכונות של המיקרו-בקר שאתה מתכנן להשתמש בו כדי לברר את האפשרויות שיש לך ליישום צריכת חשמל נמוכה. מיקרו-בקרים היו אחד המרוויחים הגדולים ביותר בקידום הטכנולוגיה וכעת ישנם מספר מיקרו-בקרים בעלי עוצמה נמוכה במיוחד אשר מבטיחים שיש לכם משאבים שיעזרו לכם להישאר בתקציב החשמל שלכם. מספר מהם מספקים גם כמה כלי תוכנה לניתוחי כוח שתוכלו לנצל אותם לתכנון יעיל. מועדף אישי הוא קו המיקרו-בקרים MSP430 מבית טקסס אינסטרומנט.