חדשות היום

מעבדי Cortex™-M מביאים אתכם מהר יותר לסיליקון

ARMדומיניק פאיאק, ARM

יותר ויותר חברות לפיתוח שבבים (חברות fabless) מתחילות לתכנן סיליקון סביב המעבדים ממשפחת ARM® Cortex™-M ומביאות בכך את היתרונות של ארכיטקטורה יעילה, קלה לשימוש וסטנדרטית לפתחם של לקוחותיהן. עם זאת, היצירה של התקנים כאלה יכולה להציב אתגרים חדשים ולא פשוטים בפני מתכנני חומרה שחסרה להם היכרות מעמיקה עם מעבדי ARM או עם מערכות המבוססות על פרוטוקול AMBA®. במאמר זה נבחן את הפתרונות העומדים לרשות אותם מתכננים המעונינים להגיע לסיליקון מהר יותר, תוך נטילת פחות סיכונים ועם התמקדות בבידול מוצריהם.
למה דווקא מעבדי Cortex-M?
המעבדים ממשפחת ARM Cortex-M נוחלים הצלחה מהירה, עם יותר מ-80 רישיונות ברחבי העולם בקשת רחבה של יישומים, לרבות מיקרו-בקרים, חיישנים חכמים, בקרת מסכי מגע, בקרת מנועים, מכשירי מדידה ועוד. ההתקנים מבוססי ה-Cortex-M הקיימים היום זמינים מיצרניות מובילות כדוגמת פריסקייל, NXP, סמסונג, STMicroelectronics וטקסס אינסטרומנטס, ומשתמשי הקצה שלהם נהנים מארכיטקטורת תוכנה נוחה וקלה לשימוש עם תמיכה משפע של כלי פיתוח תוכנה פופולריים ומערכות הפעלה בזמן אמת (RTOSes).
מאז הצגתו של ה-Cortex-M0, מעבד ה-ARM הקטן ביותר המתחיל ב-12K שערים, יותר ויותר התקני אותות מעורבים מאמצים את הארכיטקטורות של ARM כדי להחליף את מעבדי ה-8 או ה-16 ביט – אפילו מכונות מצבים סופיות. המניעים ברורים: הדרישה ליותר חיבוריות ולעוד ועוד תכונות יחד עם המגבלות ההולכות וגדלות במונחים של נצילות אנרגיה ועלויות. משפחת ה-ARM Cortex-M עומדת באתגרים הללו עם ביצועים טובים יותר בהספק נמוך יותר, ניצול יעיל יותר של זיכרון הבזק משובץ ויישומים דלי הספק.
תיעוד, תמיכה והדרכה
מהנדס שעובד עם RTL של מעבד ARM Cortex-M בפעם הראשונה ייתקל בוודאי בשאלות רבות בנוגע לאינטגרציה ולאופן היישום של המעבד, לרשימות הכניסות והיציאות והתזמון, לזרימת האימות ולמודל המתכנת.
התיעוד המפורט והמקיף המסופק עם המעבד עוסק בכל השאלות הללו ובשאלות רבות נוספות.  בנוסף מעמידה ARM לרשות המתכננים קורסי הדרכה מעמיקים ומדריכים מצד שלישי כדוגמת Doulos, הן בצד של התוכנה והן בצד של החומרה (פרטים נוספים: www.arm.com/support/training).
חוזה תמיכה עם ARM מקנה כיסוי תמיכה שוטף, בלתי מוגבל וגלובלי למוצרי ARM. מומחים הבקיאים גם בתחום המעבדים עצמם וגם בתחום של תוכנה וכלי פיתוח יעמדו לרשות המהנדס בכל אזורי הזמן העיקריים, מה שמבטיח ששאלה שתישלח בסוף יום העבודה תזכה למענה כבר בתחילתו של יום העבודה הבא. בנוסף, מציעה ARM שירותים באתר עם ה-Active Assist המספק מערך של חבילות עזרה ייעודיות המתוכננות להאיץ את האימוץ של מומחיות ARM, לתמוך בתקשורת מהירה ויעילה יותר בין צוותי תכנון, ולעזור בחיזוק הביטחון של כולם בתכנונים הסופיים.

איור 1: מערכת פועלת לדוגמה הכלולה בערכת התכנון CMSDK

איור 2: דוגמה של תת-מערכת מורחבת ב-CMSDK

יתרון התחלתי
מעצם טיבם, כל המעבדים במשפחת  Cortex-M תומכים בתקן האפיק המוכר, סטנדרט ה-     AMBA AHB-lite™, שאליו מתלווים מערך נרחב של כלים מוכנים “מהמדף”, קישורים פנימיים ו-IP  היקפי הזמינים מ-ARM ומחברות צד שלישי כדוגמת CAST. ה”קהילה המחוברת של ARM” (ראו www.arm.com/community/index.php) מספקת מקור מקיף של מידע על אודות המוצרים והשירותים הזמינים מחברות צד שלישי כדי לעזור לכם בפרוייקט שלכם.
עם זאת, בניית מערכת פיתוח חדשה לגמרי מא’ עד ת’ עדיין עלולה להיראות כמו משימה מרתיעה למדי. השלבים הראשונים ביצירת מערכת בסיסית פועלת סביב המעבד, יצירה וחיבור של זיכרון והתקנים היקפיים בסיסיים, ופיתוח של בדיקות תוכנה ודרייברים – כל אלה יכולים להיות מאתגרים ביותר.
על מנת להפוך את החיים לקלים יותר השיקה ARM לאחרונה את ה-CMSDK – הערכה לתכנון מערכות סביב Cortex-M. מדובר בפתרון מקיף המתוכנן לעבוד עם מעבדי Cortex-M “מחוץ לקופסה”. זה כולל:
מבחר רכיבי AMBA HAB™  ו-APB™, לרבות מספר התקנים היקפיים כדוגמת GPIO, טיימרים, watchdog ו-UART
מערכות לדוגמה עבור מעבדי ARM Cortex-M0, Cortex™-M3 ו-Cortex™-M4
סקריפטים לסינתזה עבור המערכות לדוגמה
הידור (קומפילציה) לדוגמה וסקריפטים לסימולציה עבור סביבת ה-Verilog
קוד לדוגמה עבור דרייברי תוכנה
קוד C ניתן להגירה לצורך הדגמה של פעולות שונות של המערכת
דוגמאות של סקריפטים להידור (קומפילציה) וקבצי פרויקט עבור התוכנה התומכת בערכות הפיתוח ARM RealView® ו-Keil Microcontroller וב-CodeSourcery g++ Lite (GNU). התוצרים הללו מספקים למתכננים מערכת מתוכננת שממוטבת באופן ספציפי עבור מעבדי Cortex-M, עם התוכנה הנחוצה, הסקריפטים והתמיכה הדרושים כדי ליצור מערכת ולהביא אותה במהירות למצב של עבודה. תרשים 1 מציג את אחת המערכות לדוגמה.

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

“תפירה מיוחד” של המערכת הבסיסית לדוגמה
כל המעבדים במשפחת Cortex-M מציעים אפשרויות תצורה עבור מספר הפסיקות הנתמכות ולוגיקת ניפוי שגיאות, בין השאר. בדומה, ניתן להגדיר את ה-CMSDK ל”תפירה מיוחדת” של המערכת סביב המעבד באופן שמאפשר פשוט “להפיל” אותו פנימה ללא מאמצים מיוחדים. ישנן גם אפשרויות נוספות:
מערכת עם מאסטר יחיד או ריבוי מאסטרים, להכללה של בקר DMA או מאסטרי אפיק אחרים
מעטפת עם תכונת bit-banding מאפשרת פעולות ביט אטומיות עבור מעבד Cortex-M0
תוכנית boot loader ROM
תמיכה בכמה סוגי זיכרון, כדוגמת RAM  והבזק
בנוסף, המערכת וכל הרכיבים עברו שינויים והתאמות ומנקודת פתיחה זו יהיה לכם קל לפתח ולבדוק את ההתקנים ההיקפיים הספציפיים והמיוחדים שלכם ולאחר מכן להתמקד בתכנון אנלוגי ובפעולות תכנון נוספות בעלות ערך מוסף.

התקנים היקפיים וממשק AMBA
המטרה של המערכת לדוגמה היא להביא את המתכנן למצב של מערכת בסיסית פועלת מהר ככל האפשר עם מערך סטנדרטי של התקנים היקפיים שלאחר מכן ניתן להרחיבו.
ישנם כמה נתיבים שהמתכננים יכולים לנקוט כדי להגיע לשלב זה: הגירה של התקנים היקפיים קיימים מתכנון קודם, יצירת התקנים היקפיים חדשים או שימוש בבלוקי IP של התקנים היקפיים תואמי פרוטוקול AMBA ומוכנים לשימוש “מהמדף”. ה-CMSDK עצמה מכילה ספרייה בסיסית של התקנים היקפיים וקישורים פנימיים שאפשר להגדירם ולהפעילם על פי צורכי המערכת. אלה כוללים:
AHB GPIO עם השהיה נמוכה – 16 ביט, עם טווחי כתובות גישה ממוסכות עבור גישות ביטים
APB UART פשוט – UART 8 ביט עם פסיקות שידור וקליטה ואיתור של הצפת נתונים
טיימר APB  פשוט וטיימר כפול
מונה כלפי מטה פשוט של 32 ביט עם כניסת clock/enable חיצונית
טיימר כפול עבור תכונות ומודים נוספים של עבודה
APB Watchdog – טיימר ווצ’דוג 32 ביט לחילול אתחול ופסיקות
התקנים היקפיים סטנדרטיים נוספים של AMBA זמינים מ-ARM ומחברות צד שלישי המשתייכות לקהילה המחוברת של ARM. חברת CAST, לדוגמה, מציעה את הרכיבים הבאים:
10, 100, Gigabit Ethernet MAC
USB 3.0 Super-speed, USB 2.0 Hi-Speed, USB 1.1 Full-Speed ו-On-the-go
PCI Express ו-PCE
בקרי CAN, LIN, I2C, SPI
דחיסת וידאו H.264, דחיסת JPEG
DDR2 & DDR1, הבזק טורי, הבזק NAND, כרטיסי SD/SDIO/MMC ובקרי SDRAM
הצפנת AES, DES, 3DES, SHA ו-MD5
PWM, שעון זמן אמת, בקרי TFT-LCD ו-STN-LCD
ממשקי שמע I2S ו-SPDIF

הגירה ממערכות 8 ביט או 16 ביט
במצבים שבהם יהיה עליכם להגר התקנים היקפיים קיימים (להתממשקות עם בלוקים אנלוגיים, לדוגמה) אל תכנון ה-Cortex-M שלכם, תוכלו לקבל עזרה בצורת דוגמאות של רכיבי AMBA AHB ו-APB slave המסופקות ב-CMSDK. הרכיבים מתועדים באופן מפורט ומלא וניתנים להרחבה בקלות. התכנון של ה-APB slaves לדוגמה מחולק למודול ממשק ולמודול רגיסטר. תוכלו להשתמש במודול הממשק על מנת לחבר בלוקים היקפיים קיימים המתוכננים עבור מיקרו בקרים מסורתיים של 8 או 16 ביט כדי להפוך את המעבר למערכות מבוססות מעבד ARM למשימה פשוטה יותר.

שירותי תכנון
חברות בקהילה המחוברת של ARM, כדוגמת SoC Solutions, מספקות שירותים נוספים של אינטגרציה ותצורה כדי לבצע התאמה מיוחדת של תת-מערכות לצורכי התכנון הספציפיים שלכם. כהרחבה ל-CMSDK יכולה חברת SoC Solutions לספק לכם תכנוני חומרה/תוכנה מאומתים ומוגדרים הכוללים התקנים היקפיים נוספים מצד שלישי. אבות-טיפוס של FPGA המריצים תוכנה לדוגמה מסופקים אף הם כדי שניתן יהיה להתחיל בפיתוח התוכנה ללא עיכובים.
אחת הדוגמאות של תכנון מיוחד או תת-מערכת יכולה לכלול את ה-CMSDK עם תוספת של USB 2.0 ובקר הבזק NAND מבית CAST. צבר של דרייברי תוכנת USB 2.0 ותוכנת מערכת של קבצי הבזק ישולבו יחדיו במטרה ליצור תכנון מלא של תת-מערכת עובדת. חברת SoC Solutions עוזרת ללקוחות להתחיל את תהליך התכנון שלהם עם תת-מערכות עובדות ועם תמיכת מומחים.
דוגמה נוספת של תת-מערכת מורחבת ב- CMSDK יכולה להיות זו המוצגת באיור 2.

אימות
אימות של מערכת הוא חלק קריטי בכל פרויקט וה-CMSDK כוללת תמיכה שמסייעת למתכננים לאמת הן את מערכת הקצה והן התקנים היקפיים ייחודיים. המערכת לדוגמה עצמה, כפלטפורמה פועלת, יכולה להוות את הבסיס לבדיקות ברמה גבוהה של המערכת, עם דוגמה של בדיקות C ומערכי בדיקה בסימולציה. בנוסף כלולים מבדקי פרוטוקול AMBA עבור תקני האפיקים AHB, AHB-lite, APB3 ו-PAB4. מבדקי הפרוטוקול הללו יכולים “לשבת” באופן קבוע בכל מערך בדיקות סימולציה כדי לחפש באופן שוטף אחר התנהגות לא מתאימה העלולה להצביע על שגיאות אפשריות בתכנון. מודלים פונקציונליים של אפיקים מסופקים גם הם כדי לחולל סוגי העברה שונים ולבדוק מקרי קצה.
פיתוח תוכנה מהיר יותר
עצם הקיום של נקודת פתיחה כמו זו שתיארנו כאן חוסך זמן במציאת אפשרויות הידור-כתיבה או בצורך ליצור פרויקט תוכנה מהיסודות. ה-CMSDK כוללת פרויקטי תוכנה וסקריפטים להידור שמאפשרים להתחיל בפיתוח התוכנה ולהריצה במהירות על מערכת פיתוח Cortex-M שלכם. זה כולל:
קוד התחלה (start-up)
דרייברים היקפיים לדוגמה
סקריפטים להידור וקבצי פרויקט
תוכניות הדגמה
בדיקות אימות
תמיכה עבור Keil MDK, RealView Development Suite, GCC
כל אלה נכתבו באופן שמקל לבצע להם התאמה מיוחדת ולהרחיבם בהתאם להתפתחות התכנון. בדיקות לדוגמה יכולות לשמש כתבניות לבדיקות חדשות עבור התקנים היקפיים חדשים. כל זה יכול להאיץ את תהליך הסימולציה המשותפת של חומרה ותוכנה כיוון שגם הסקריפטים של ההידור וגם אלו של הסימולציה מסופקים עבור Mentor ModelSim, Cadence NCsim ואחרים.

מסקנות
כאשר מהנדסי חומרה ניגשים לתכנון מערכת עם מעבד ARM בפעם הראשונה זוהי משימה הכרוכה בעקומת למידה. כדי לסייע בכך קיימים שפע של כלים, תיעוד, דוגמאות, הדרכה ותמיכה הן מ-ARM והן מהחברות בקהילה המחוברת של ARM, ביניהן CAST ו-SoC Solutions. כל האמצעים הללו יעזרו להקטין את מאמצי התכנון ולהשיג את התוצאות הטובות ביותר בסיליקון. הערכה לתכנון מערכות עם (Cortex-M (CMSDKI היא רכיב מפתח עבור כל מי שמתחיל לעבוד עם ARM ומעונין להגיע לשלב הסיליקון במהירות.
דומיניק פאיאק הוא מנהל מוצר בחברת ARM

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