JTAG (קבוצת פעולה משותפת לבדיקה) הוא פרוטוקול בשימוש נרחב לבניית באגים, תכנות ובדיקת מעגלים משולבים (ICS). זה מאפשר לתקשורת ישירה עם שבב לקרוא את זיכרונו, לבצע סריקות גבול או לטעון קושחה. מדריך זה ינחה אתכם דרך היסודות של שימוש ב- JTAG לקריאת שבבים, כולל הגדרה, כלים ושיטות עבודה מומלצות.
מה זה JTAG?
JTAG הוא ממשק סטנדרטי (IEEE 1149.1) המספק דרך לבדוק ולבצע באגים בחומרה ברמת השבב. הוא משמש בדרך כלל ב:
- פיתוח וניפוי קושחה
- בדיקת חיבורי PCB
- מהבהב קושחה על מכשירים
- חילוץ זיכרון מ- ICS
JTAG משתמש בממשק 4 או 5 פינים:
פִּין | תֵאוּר |
---|---|
TDI | בדיקת נתוני ב |
Tdo | בדיקת נתוני |
TCK | שעון מבחן |
TMS | מצב בדיקה בחר |
Trst | איפוס מבחן (אופציונלי) |
מה תצטרך
- מתאם JTAG: מכשיר חומרה להתממשק עם השבב (למשל, Segger J-Link, מתאמים הנתמכים OpenOCD).
- מכשיר יעד: ה- IC או המערכת שברצונך לקרוא.
- כלי תוכנה: יישומים לניפוי באגים של JTAG, כגון OpenOCD, URJTAG או כלים קנייניים.
- תיעוד JTAG Pinout: תרשים Pinout עבור מכשיר היעד.
- אביזרי חיבור: חוטים, כותרות ולוח לחם (במידת הצורך).
שלב 1: הגדרת חומרת JTAG
1. זהה את ממשק JTAG במכשיר היעד
- עיין בגליון הנתונים של השבב או לתכניות PCB כדי לאתר את סיכות ה- JTAG.
- תוויות נפוצות לסיכות JTAG כוללות
TDI
,TDO
,TCK
, וTMS
. - לוחות מסוימים תייגו כותרות JTAG (למשל מחברים של 10 פינים או 20 פינים).
2. חבר את מתאם JTAG
- לחבר את המתאם למכשיר היעד, בהתאמה ל- JTAG Pinout:
-
TDI
במתאם מתחבר לTDI
במכשיר וכן הלאה. - ודא ש- GND מחובר בין המתאם למטרה.
- ספק כוח למכשיר היעד במידת הצורך.
-
3. אמת רמות מתח
- ודא שמתאם JTAG תומך ברמות המתח של מכשיר היעד (למשל, 3.3 וולט או 1.8 וולט).
- לחלק מהמתאמים יש הגדרות מתח הניתנות להגדרה.
שלב 2: התקנת כלי תוכנת JTAG
1. OpenOCD (פתוח באגים על שבב)
OpenOCD הוא כלי קוד פתוח הנמצא בשימוש נרחב לניפוי באגים של JTAG.
- התקן אותו באמצעות מנהל החבילות שלך (למשל,
apt install openocd
על לינוקס). - ודא כי מתאם JTAG שלך נתמך על ידי OpenOCD.
2. Urjtag
כלי קל משקל לסריקת גבול ופעולות JTAG בסיסיות.
- התקן דרך האתר של Urjtag.
3. כלים ספציפיים לספק
למתאמים קנייניים כמו Segger J-Link או Xilinx, השתמש בתוכנה הרשמית שלהם:
- Segger J-Link: הורד את כלי J-Link מ- האתר של סגגר.
- כלי Xilinx: השתמש ב- Vivado או בהשפעה עבור ניפוי באגים של FPGA.
שלב 3: קריאת נתונים משבב
1. הגדר את תוכנת JTAG
- צור או טען קובץ תצורה המפרט את מתאם JTAG ומכשיר היעד.
- דוגמה ל- OpenOCD:
source [find interface/jlink.cfg] transport select jtag source [find target/stm32f4x.cfg] init halt
- דוגמה ל- OpenOCD:
2. איתור את מכשיר היעד
הפעל פקודה כדי לסרוק את שרשרת JTAG ולזהות מכשירים מחוברים.
- עבור OpenOCD:
חפש מכשירים שזוהו ביומן הפלט.openocd -f interface/jlink.cfg -f target/stm32f4x.cfg
3. תכולת זיכרון הזבל
השתמש בפקודות JTAG כדי לקרוא אזורי זיכרון:
- עבור OpenOCD:
dump_image memory.bin 0x08000000 0x10000
-
memory.bin
: קובץ לשמירה של זיכרון הזיכרון. -
0x08000000
: התחל כתובת. -
0x10000
: מספר הבתים לקריאה.
-
4. בצע סריקות גבול
סריקות גבול בודקות אם קישוריות ופונקציונליות של סיכות ה- IC.
- השתמש ב- URJTAG או OpenOCD כדי לבצע סריקות גבול.
- דוגמה ב- URJTAG:
cable jtagkey detect bsdl path/to/bsdl/file.bsd svf boundary_scan.svf
שלב 4: שיטות עבודה מומלצות לניפוי באגים של JTAG
- אבטח את החיבור: השתמש בחוטים קצרים ואמינים כדי למזער את הרעש.
- אמת את Pinout: בדוק שוב את חיבורי ה- JTAG PIN כדי להימנע מפגיעה במכשיר.
- קושחת גיבוי: תמיד גבה את הקושחה המקורית לפני ביצוע שינויים.
- השתמש בתוכנה נכונה: ודא שהכלי שאתה משתמש בהם תומך במכשיר היעד.
- לפקח על מתח: ודא שמכשיר היעד פועל ברמת המתח הנכונה.
יישומים של JTAG
- ניפוי באגים קושחה ותוכנה
- מהבהב קושחה או מטעני אתחול חדשים
- חילוץ נתונים מהזיכרון לניתוח
- אבחון ליקויים בייצור PCB
- חומרת הנדסה הפוכה
פתרון בעיות
-
המכשיר לא זוהה:
- אמת את החיווט והפינאוט.
- ודא שמכשיר היעד מופעל.
- בדוק את רמות המתח אם יש תאימות.
-
שגיאות JTAG:
- ודא שמשתמשים בקובץ התצורה הנכון.
- נסה להוריד את מהירות השעון של JTAG אם התקשורת נכשלת.
-
בעיות הרשאה:
- ב- Linux, וודא שיש לך הרשאות מתאימות לגישה למכשירי USB (השתמש
sudo
או להגדירudev
כללים).
- ב- Linux, וודא שיש לך הרשאות מתאימות לגישה למכשירי USB (השתמש
מַסְקָנָה
JTAG הוא כלי שלא יסולא בפז לניפוי באגים ותכנות שבבי ברמה נמוכה. על ידי הבנת היסודות של חומרה ותוכנה של JTAG, אתה יכול לקרוא זיכרון שבבים, קושחה באגים ולבצע סריקות גבול. התנסו בכלים ותצורות שונות לשימוש במלואו ב- JTAG בפרויקטים שלכם!