JTAG: קריאת צ'יפס עם פרוטוקול קבוצת הפעולה המשותפת

JTAG: Reading Chips with Joint Test Action Group Protocol

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


מה זה JTAG?

JTAG הוא ממשק סטנדרטי (IEEE 1149.1) המספק דרך לבדוק ולבצע באגים בחומרה ברמת השבב. הוא משמש בדרך כלל ב:

  • פיתוח וניפוי קושחה
  • בדיקת חיבורי PCB
  • מהבהב קושחה על מכשירים
  • חילוץ זיכרון מ- ICS

JTAG משתמש בממשק 4 או 5 פינים:

פִּין תֵאוּר
TDI בדיקת נתוני ב
Tdo בדיקת נתוני
TCK שעון מבחן
TMS מצב בדיקה בחר
Trst איפוס מבחן (אופציונלי)

מה תצטרך

  1. מתאם JTAG: מכשיר חומרה להתממשק עם השבב (למשל, Segger J-Link, מתאמים הנתמכים OpenOCD).
  2. מכשיר יעד: ה- IC או המערכת שברצונך לקרוא.
  3. כלי תוכנה: יישומים לניפוי באגים של JTAG, כגון OpenOCD, URJTAG או כלים קנייניים.
  4. תיעוד JTAG Pinout: תרשים Pinout עבור מכשיר היעד.
  5. אביזרי חיבור: חוטים, כותרות ולוח לחם (במידת הצורך).

שלב 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 בסיסיות.

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
      

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

  1. אבטח את החיבור: השתמש בחוטים קצרים ואמינים כדי למזער את הרעש.
  2. אמת את Pinout: בדוק שוב את חיבורי ה- JTAG PIN כדי להימנע מפגיעה במכשיר.
  3. קושחת גיבוי: תמיד גבה את הקושחה המקורית לפני ביצוע שינויים.
  4. השתמש בתוכנה נכונה: ודא שהכלי שאתה משתמש בהם תומך במכשיר היעד.
  5. לפקח על מתח: ודא שמכשיר היעד פועל ברמת המתח הנכונה.

יישומים של JTAG

  1. ניפוי באגים קושחה ותוכנה
  2. מהבהב קושחה או מטעני אתחול חדשים
  3. חילוץ נתונים מהזיכרון לניתוח
  4. אבחון ליקויים בייצור PCB
  5. חומרת הנדסה הפוכה

פתרון בעיות

  • המכשיר לא זוהה:

    • אמת את החיווט והפינאוט.
    • ודא שמכשיר היעד מופעל.
    • בדוק את רמות המתח אם יש תאימות.
  • שגיאות JTAG:

    • ודא שמשתמשים בקובץ התצורה הנכון.
    • נסה להוריד את מהירות השעון של JTAG אם התקשורת נכשלת.
  • בעיות הרשאה:

    • ב- Linux, וודא שיש לך הרשאות מתאימות לגישה למכשירי USB (השתמש sudo או להגדיר udev כללים).

מַסְקָנָה

JTAG הוא כלי שלא יסולא בפז לניפוי באגים ותכנות שבבי ברמה נמוכה. על ידי הבנת היסודות של חומרה ותוכנה של JTAG, אתה יכול לקרוא זיכרון שבבים, קושחה באגים ולבצע סריקות גבול. התנסו בכלים ותצורות שונות לשימוש במלואו ב- JTAG בפרויקטים שלכם!

השאירו תגובה

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.