חדשות היום

הדור הבא של מיקרו-בקרים מאפשר להשתמש בשיטות תכנון טובות יותר, מגדיל את הפונקציונליות וצורך פחות חשמל

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

תרשים 1: רכיבים היקפיים תלויי-ליבה של מיקרו-בקר 8 סיביות משמשים להארכה של זמן הסרק ל-205 יום, ללא שום רכיב נוסף או הגדלה של ההספק

תרשים 1: רכיבים היקפיים תלויי-ליבה של מיקרו-בקר 8 סיביות משמשים להארכה של זמן הסרק ל-205 יום, ללא שום רכיב נוסף או הגדלה של ההספק

לעשות יותר בצריכה קטנה יותר
למקרה שעדיין לא הבחנתם בכך, נראה שכל מה שמקיף אותנו נעשה חכם יותר ומתחבר לדבר זה או אחר. בנעליים שלכם יש חיישנים שיכולים לומר לכם כיצד לשפר את זמן הריצה שלכם באמצעות הצגת הצעד שלכם בטלפון החכם. המשקל שלכם יכול לשמור אוטומטית את המשקל שלכם ביישום מעקב מבוסס ענן, והוא יכול לספר לכם לדעת מדוע הסופגנייה האחרונה שאכלתם הייתה רעיון רע – באמצעות התרעה בטלפון החכם. מערכת האבטחה בביתכם יכולה ליידע אתכם על דליפה במחסן באמצעות הודעות טקסט, הודות לחיישן אלחוטי קטן שממוקם ליד מחמם המים.
הצמיחה בפופולריות של יישומים ניידים מבוססי-סוללות עלתה באופן אקספוננציאלי, הודות להתקדמויות הטכנולוגיות לאורך השנים. מהנדסים נדחקים בהתמדה בכל פעם מחדש להגדיל את הפונקציונליות של המוצר, ובמקביל להקטין את ממדיו הכלליים. תכונות נוספות אלו מציבות דרישה גבוהה יותר בפני מקור החשמל של המערכת. האתגר שנוצר הוא כיצד לממש את הפונקציות החדשות האלו ובמקביל גם להגדיל את אורך חיי הסוללה, וכל זאת תוך שמירה על עקבה קטנה יותר.
הגישה הקונבנציונלית לתכנון יישומים המופעלים באמצעות סוללה היא לשמור על מספר מודולים גדול ככל האפשר במצב הספק נמוך לזמן ארוך ככל הניתן, ולהוציא אותם מפעם לפעם ממצב שינה כדי לבצע משימות הכרחיות, לפני החזרתם למצב זה. בתכנון מורכב עם מספר מיקרו-בקרים/מיקרו-מעבדים ורכיבים נוספים, מיקרו-בקר 8 סיביות בעל מספר פינים קטן משמש לעתים קרובות בתור רכיב הפיקוח על המערכת, לצורך ביצוע של משימות משק-בית כגון הפעלה וכיבוי של מודולים, בהתאם לצורך, על מנת להגביר את הנצילות החשמלית. ובכל זאת, ברוב התכנונים נעשה שימוש במיקרו-בקר ראשי אחד בלבד, יחד עם שפע רכיבים היקפיים משולבים, לצורך המימוש של פונקציות המערכת המבוקשות. מסיבה זו צריכת החשמל של מיקרו-בקר זה הופכת לפרמטר מכריע. על כל פנים, לא כל המיקרו-בקרים בנויים באותה צורה, בכל הקשור לביצועים הספק נמוך. בתנאים אלו, במקרים רבים מיקרו-בקר 8 סיביות יכול להתעלות ביתרונותיו על התקן 32 סיביות. מיקרו-בקרים 8 סיביות מסוימים צורכים ערך קטנטן של 20 ננו-אמפר בהגדרת ההספק הנמוכה, בעוד שהערך הנמוך ביותר במקרה של 32 סיביות גדול פי 10 עד 20, במקרה הטוב.
ניתן להוציא את המיקרו-בקר ממצב שינה במספר דרכים. שיטה אופיינית היא להשתמש בשעוני העצר הפנימיים של המיקרו-בקר כדי להוציא את המערכת ממצב שינה אחרי פרקי-זמן מוגדרים. ניתן להגדיר את שעון העצר להפעלת פסיקה במקרה של גלישה. שעון עצר 16 סיביות עם מנחית-קדם (pre-scaler)‏ 1:8, ביציאה מתנד ה-31 קה”ץ הפנימי בהספק נמוך (או בעזרת גביש חיצוני) יכול לשמור את ההתקן במצב שינה למשך כ-17 שניות. אפשרות אחרת היא להשתמש בקוצב זמן הניטור (WDT) של המיקרו-בקר, כאשר בתנאים אידאליים זמן הסרק המרבי בצריכה של כ-440 ננו-אמפר הוא 256 שניות (ושוב, הזרם שצורך מיקרו-בקר 32 סיביות אופייני שה-WDT מופעל בו גדול פי 3 לפחות מהזרם שצורך מיקרו-בקר 8 סיביות).
קחו למשל יישום שאינו דורש יציאה ממצב שינה לעתים תכופות, למשל נטר סביבתי שמופעל, בהערכה גסה, פעם בארבע שעות לצורך קריאת חיישן הלחות, ומוחזר אח”כ למצב שינה. האם המשמעות היא שעלינו להוציא ממצב שינה לעתים קרובות יותר, בגלל המגבלות של שעון העצר הפנימי? לא בהכרח. דרך אחת היא להשתמש ב‏‏שעון זמן אמיתי (RTC) ובגביש שמסוגל לשמור על השעה המדויקת במונחים של שעות, ימים, חודשים ואפילו שנים, אם נחוץ. מכיוון שלא כל המיקרו-בקרים כוללים RTC וגביש משולבים, לעתים קרובות מטעמי עלות, ניתן לשקול להשתמש גם ב-RTC עצמאי.

רכיבים היקפיים תלויי-ליבה
דרך אחרת היא להאריך את זמן הסרק ללא שום רכיב נוסף או הגדלה של ההספק היא להשתמש ברכיבים ההיקפיים הייחודיים הכלולים בחלק מהדור הבא של מיקרו-בקרים 8 סיביות (למשל המיקרו-בקרים בסדרה PIC®‎ של Microchip Technology). למשל, כדי להאריך את פרק-הזמן לפני הפעלת פסיקה ו”השכמה” של המיקרו-בקר (ראה תרשים 1) מ-17 שניות ל-205 ימים, מתכננים יכולים לחבר אחד מתאי הלוגיקה הניתנים להגדרה (CLCs) של מיקרו-בקרים אלו, ואת המתנד המבוקר נומרית (NCO) שלו, אל שעון העצר 16 סיביות. כמובן שלעתים נדירות יישום יצטרך להישאר במצב סרק לפרק-זמן כה ארוך, אבל היכולת קיימת למקרה הצורך.
שימוש במתנד פנימי בהספק נמוך (31 קה”ץ) כהזנה לשעון העצר (הארוך יותר) מאפשר להשיג את פתרון העלות הנמוכה ביותר. אבל במקרה זה ניתן להקטין את צריכת החשמל עוד יותר ב-50%, לערך של כ-2.3 מיקרו-אמפר, באמצעות גביש 32 קה”ץ המחובר למתנד המשני (SOSC) בעלות גבוהה רק מעט יותר.
ניתן להשתמש גם במקורות פסיקה חיצוניים לצורך ההוצאה של המיקרו-בקר ממצב שינה, למשל מפסק או חיישן. בחלק מהמיקרו-בקרים/מיקרו-מעבדים יש מספר פסיקות עם רמות עדיפות, אבל לעתים קרובות תכונות אלו אינן קיימות ברוב המיקרו-בקרים בעלי מספר פינים קטן הנפוצים בשוק. זוכרים את מודול תא הלוגיקה הניתן להגדרה שבו השתמשנו כדי להאריך את פרק-הזמן של שעון עצר בדוגמה הקודמת? ניתן להשתמש בו לא רק כדי ליצור מקורות שיבוש נוספים כאשר במיקרו-בקר יש רק מערכת INT אחת: ה-CLC גם מאפשר למתכננים להוסיף לוגיקה מותנית או רציפה לשגרת ההוצאה ממצב שינה, ולהפוך אותה לחכמה יותר מבלי להגדיל את צריכת הזרם. כאשר המערכת מצריכה מספר אותות כדי לייצג מצב מסוים, לעתים קרובות הוצאת ה-CPU ממצב שינה לצורך בדיקת המצב בוצעה על סמך שינוי באות אחד, ולאחר מכן התברר ששאר האותות טרם התממשו. עכשיו ניתן להגדיר ולשלב בין הפונקציות הלוגיות ו”מכונות המצב” (state machines) הזמינות ב-CLC, או אפילו במספר מודולי CLC, כדי ליצור תנאי הוצאה ממצב שינה שמונעים הפעלות כוזבות תכופות וצריכת הספק מיותרת.
פרק-הזמן הנחוץ לצורך הוצאת התקן ממצב שינה יכול להוות מרכיב משמעותי מזמן ה”הרצה” בפרופיל התקופתי של יישום. בעוד שעבור מתנד פנימי של מיקרו-בקר 8 סיביות הדבר מוגבל בדרך כלל למספר מוגבל של מחזורי שעון (3-5 מחזורים השקולים ל-200ns עד 1us), בארכיטקטורת 32 סיביות, שבהן נעשה שימוש בטכנולוגיות “שינה עמוקה” כדי להגביל את זרמי הדליפה, מדובר בסדר גודל של עשרות מיקרו-שניות, שלעתים קרובות מבטל חלק מהיתרונות שמקנה מהירות הביצוע האופיינית הגבוהה יותר לאחר מכן, או את כולם.
על אף שהיינו שמחים לבצע הכול במצב שינה, משימות מסוימות חייבות להתבצע במצב פעיל, שבו ליבת המיקרו-בקר צורכת את כמות החשמל הגדולה ביותר בהשוואה ליתר המודולים. בדיוק כאן הדברים מתחילים לתעתע. תרשים 2 הוא ייצוג גרפי מפושט של צריכת הזרם של המערכת לאורך זמן. השטח מתחת לקו צריכת הזרם מייצג את הפריקה הכוללת לאורך זמן, שנמדדת ביחידות של קולון. אם השטח הכולל מתחת לטווח מצב השינה גדול בהרבה מבמצב פעיל, ערך זרם השינה קריטי יותר כי רוב צריכת האנרגיה מתרחשת במצב הספק נמוך. ולהפך, אם השטח הכולל מתחת לטווח המצב הפעיל גדול בהרבה מבמצב שינה, ערך זרם השינה ופרק-הזמן במצב שינה נעשים לא רלוונטיים.
יישומים ללא תקשורת אלחוטית, למשל Wi-Fi®‎ או Bluetooth® LE, הם מערכות שבהן אתגר ההקטנה של צריכת החשמל גדול במיוחד. המתכננים של מערכות אלו צריכים להתחשב בכמות הנתונים הנשלחת או מתקבלת, מכיוון שיש לכך השפעה ישירה על צריכת הזרם הכללית. ניתן להשתמש במודולים אלחוטיים ב”מצב משואה” כדי להוציא אותם ממצב שינה אחרי פרקי-זמן מוגדרים ולחפש אותות – או להעביר אותם למצב המתנה כאשר לא נעשה בהם שימוש.
במערכות אלחוטיות מסוג זה מהירות העיבוד של המיקרו-בקר היא למעשה לא רלוונטית, משום שהיישום מאוגד ברוב המוחלט של המקרים ב-I/O. בכל אופן, פרק-הזמן הנחוץ לצורך הוצאת המיקרו-בקר ממצב שינה משפיע באופן משמעותי על פרופיל היישום, כי צריכת החשמל במעגל הרדיו (באופן טיפוסי 10-20 מיליאמפר) גדלה, והופכת בסופו של דבר לגורם המכתיב את תקציב היישום.
חיישנים אנלוגיים מצריכים שימוש במודול ADC (המרה מאנלוגי לדיגיטלי) על-שבב של המיקרו-בקר. בדרך כלל, הזמן הדרוש לדגימת ADC ארוך בהרבה מזמן ההמרה. ככל שמשך ההימצאות במצב פעיל גדל, כך גדלה צריכת הזרם. על כל פנים, בחלק מהמיקרו-בקרים קיימים מודולי ADC שמאפשרים לבצע המרה במצב שינה ובאופן זה לחסוך חשמל, הודות לצמצום משך ההימצאות במצב פעיל.
בחלק מהמיקרו-בקרים משולב מגוון רחב של מצבי הפעלה בהספק נמוך. מצבים אלו מעניקים אפשרות לכבות את מעבד הליבה או להקטין את מהירות הפעולה שלו, ובמקביל לשמור את שעון המערכת פעיל באופן סלקטיבי עבור רכיבים היקפיים על-שבב.
טענה אחת שנשמעת הרבה היא “ככל שהביצועים של הליבה גבוהים יותר, המשימות מבוצעות מהר יותר והיא יכול לחזור למצב שינה מוקדם יותר”. ייתכן אמנם שהטענה נכונה במקרים מסוימים, אבל יש בה כשל לוגי. עלינו לזכור שהליבה צורכת יותר חשמל מכל מודול אחר במיקרו-בקר. בנוסף, כל המשימות שמצריכות הפעלה של הליבה חייבות להתבצע בסדר עוקב (FIFO), ללא תלות במהירות. בשל כך, לא ניתן לכבות את הליבה לפני סיום המשימה האחרונה. כאשר מיקרו-בקר יכול לבצע חלק מהמשימות הדרושות במקביל בעזרת רכיבים היקפיים שמסוגלים לפעול ללא תלות בליבה, המהירות של הליבה נעשית לא רלוונטית אבל מושגת הקטנה משמעותית של צריכת החשמל הכללית. רכיבים היקפיים שאינם תלויים בליבה שומרים על פונקציונליות מלאה כאשר ליבת המיקרו-בקר נמצאת במצב שינה.
התכנון של יישומים המופעלים באמצעות סוללה הפך למורכב יותר, כתוצאה מהפונקציונליות ההולכת וגדלה שלהם. מהנדסים נדרשים לנתח ולהבין לגמרי את פרופיל צריכת הזרם של כל אחד מהרכיבים במצבי פעולה והספק שונים, כדי להשיג את נצילות השימוש בסוללה הגבוהה ביותר. ערכת הרכיבים ההיקפיים שאינם תלויים בליבה הקיימת בדור הבא של מיקרו-בקרים 8 סיביות מאפשרת למהנדסים להיות יצירתיים בתכנון, מבלי שהדבר יבוא על חשבון הביצועים.
הערה: PIC הוא סימן מסחר רשום של Microchip Technology Incorporated בארה”ב ובמדינות אחרות. כל יתר סימני המסחר המוזכרים כאן הם קניינן של החברות הרלוונטיות.

Jin Xu, Microchip Technology Inc.

תגובות סגורות