Service Hotline
לאחרונה, חברת ARM המשובצת שיתפה מאמר "גם GD32 החל להיות מוצף בזיופים.מאמר, סטרונגר הואנג, חבר ותיק של ARM משובץ, אמר גם שקבוצת הבורסה הטכנית שלו דנהמחירי הצ'יפים עוליםומכירת צ'יפס על דגים מלוחיםנושא וכתב מאמר שחשף את הרקע והשיטות לזיהוי זיופים משופצים. הוא מועתק בזאת לעיונך.
1
רקע עליית מחירי השבביםמלחמת סין-ארה"ב בשנתיים האחרונות השפיעה על כמה חברות טכנולוגיה מקומיות גדולות, כמו וואווי. עם זאת, רוב החברות הקשורות לאלקטרוניקה נפגעו באופן מינימלי.
בשנת 2020, מגפה גרמה מכה קשה לכמה חברות מוליכים למחצה, כמו שביתות עובדים.
לאחר מכן, מחירי חומרי הגלם מסוימים החלו לעלות בדרגות שונות. במיוחד מתחילת השנה, מחירי רוב חומרי הגלם כגון מתכות ופלסטיק עלו. מחירי כל דבר, החל מנגדים וקבלים ועד מוצרי אלקטרוניקה כמו טלוויזיות ומקררים, עלו בדרגות שונות.
(מקור התמונה מהאינטרנט, הפרה ומחיקה)אותו הדבר נכון גם לגבי שבבים. מחירי המיקרו-בקרים המוכרים לנו עלו בדרגות שונות. אני מאמין שכולם יודעים זאת. בפרט, מחיריהם של חלק מדגמי ה-STM32 אף עלו פי כמה.
בהקשר של עליית מחירים זו, בוודאי ישנם כמה סוחרים חסרי מצפון, ואז ההסתברות למוצרים מזויפים עולה.
2
STM32/GD32 משופץ או מזויףמהנדסים מנוסים אולי נתקלו בבעיה של STM32/GD32 משופצים או מזויפים, כולל אני בעבר, שמחקתי את הלוגו של GD32 ואז הפך אותו ל-STM32, או STM32 משופץ שהסיר מהלוח הישן.
בואו נדבר על כמה מצבים של שיפוץ שבבים או מוצרים מזויפים:
1. מחק את הדגל
סימן מחיקה של שבב נפוץ מאוד, כולל במוצרים שאנו מפתחים לעיתים. על מנת למנוע מאחרים להעתיק את השבב, ניתן גם למחוק את הסימן שעל פני השבב כדי למנוע חיקויים.
עסקים מסוימים ישתמשו בשיטת "חתול זבד תמורת נסיך" כדי להרוויח. בימים הראשונים, ידעתי שרבים מהם היו GD32 מזויפים.
2. דגם מזויף
ייתכן שהגודל האמיתי של הפלאש בתוך ה-STM32 לא תואם לדגם. לדוגמה: הקיבולת הסטנדרטית של STM32F103RF היא 768K, אך גודל הפלאש בפועל גדול מ-768K.
זה מרחיב את הנושא: האם קיבולת ה-FLASH של שבב ה-STM32 שלך באמת טובה כמו במדריך הבחירה הרשמי של ST?
1 בואו נדבר קודם על משהו אחר
באופן כללי, למתחילים, ה-FLASH הפנימי מספיק לחלוטין. הפעלת הדגמה פשוטה של מתכת רגילה, או הדגמה של RTOS בתוספת שתי משימות, אינה מפעילה כלל לחץ על המיקרו-בקרים הנוכחיים.
עם זאת, ברגע שתבואו במגע עם פרויקטים ממשיים, תגלו שמקומות רבים יבזבזו כסף, וחלק מהפרויקטים תופסים הרבה פלאש. לדוגמה: אלגוריתם ספציפי, טעינת ספריית גופנים, או אפילו הכנסת שתי תמונות לפלאש.
קחו דוגמה נוספת לתכנות יישומי IAP: באופן כללי, אלו שעושים עבודה טובה יותר בשדרוג פונקציה זו יהיו בעלי אזור FLASH (אזור גיבוי) בערך באותו גודל כמו היישום. כלומר: כדי להבטיח בטיחות, שמרו את הורדת התוכנית באזור גיבוי, ולאחר מכן עדכנו את היישום לאחר שההורדה הסתיימה בהצלחה. המטרה של ביצוע פעולה זו:זאת כדי למנוע ניתוק של ההורדה באמצע, מה שיגרום לכשל..
מצאתי תמונה, בערך כך, שמחלקת את ה-FLASH לשלושה אזורים (אזור ה-FLASH של תוכנית האתחול, אזור ה-FLASH של האפליקציה ואזור ה-FLASH של תוכנית הגיבוי). תחשבו על זה.
2 בחירת שבב STM32
באופן כללי, לאחר שהפרויקט שלנו מציג את הדרישות, נבחר מיקרו-בקר מתאים. הדבר הראשון שעולה בראש הוא לבדוק את [מדריך הבחירה]. בנוסף לבחירת משאבים היקפיים, יש גם בחירת קיבולת FLASH מתאימה. כללי הפקודה של מוצר STM32 הם כדלקמן:
כתובת מדריך הבחירה: https://www.stmcu.com.cn/upload/selection_Guide.pdf (החשבון הרשמי של WeChat אינו תומך בקישורים חיצוניים, העתיקו את כתובת האתר כדי לפתוח)
3. בדוק את גודל הפלאש הפנימי של STM32
לאחר שדיברנו על כמה נושאים הקשורים לפלאש, נחזור לנקודות המרכזיות של מאמר זה:ייתכן שכרטיס ה-FLASH הפנימי של ה-STM32 שלנו גדול יותר ממה שמצוין במדריך הבחירה לעיל..
לדוגמה: הדגם הספציפי של שבב המיקרו-בקר שלי הוא STM32F103RF. כשאני מסתכל על המדריך, אני יכול לראות שהקיבולת שלו היא 768K, אבל בפועל יש לו קיבולת FLASH של 1M.
כאן אדבר על שתי שיטות אימות פשוטות:
1. אימות באמצעות תכנות
במילים פשוטות, זה באמצעות מחיקה, כתיבה וקריאה של הכתובת שצוינה (כלומר, הכתובת שחורגת מגודל ה-FLASH).
FLASH_EraseSector FLASH_ProgramWord
2. קריאת נתוני FLASH באמצעות כלים
שיטה זו היא השיטה הישירה והפשוטה ביותר. קחו לדוגמה את כלי ההורדה של STM32 ST-LINK Utility:
הנקודות המרכזיות מתוארות למעשה בתמונה:אם הכתובת עולה על 768K, ניתן למעשה לקרוא את הנתונים.(התמונה למעלה היא מה שקראתי עם המיקרו-בקר האמיתי STM32F103RF. כתובת ההתחלה של היישום היא 0x080C0000, והיישום בפועל פועל)
אחרי שאמרתי כל כך הרבה, מה שאני בעצם רוצה לומר הוא: ישנם שבבי STM32 רבים דומים, לא רק ה-STM32F103RF שנתתי דוגמה אליו למעלה, ה-103RC הוא נומינלי 256K, אבל למעשה יש לו יותר מ-256K שטח. אם אתם מגלים ששטח הפלאש שלכם אינו מספיק, אתם יכולים להשתמש בשיטה שלעיל כדי לראות אם יש עוד שטח פנוי מזה.
3. מוצרים משופצים ומקורייםסוג זה הוא הנפוץ ביותר במוצרים מסוימים. הסוג שנראה זול. אם תקנו כמה בקמעונאות, הם יישלחו במשלוח. סביר להניח שאלו שבבים משופצים.
אם תקנו שבב משופץ, תוכלו לכתוב תאורת LED לבדיקה ולא תהיה בעיה. עם זאת, לאחר שתצטרפו לפרויקט, במיוחד פרויקט הדורש יותר ציוד היקפי ובעל פונקציות מורכבות יותר, הצורה המקורית שלכם עשויה להתגלות בקרוב.
אם אין לכם מזל, עלולים להתרחש המצבים הבאים:
-
התוכנה עבדה שעות נוספות במשך מספר ימים ללא כל תוצאות, והחומרה הואשמה;
-
בדיקות שונות על חוטים מעופפים בחומרה, החלפת שבב כדי לפתור את הבעיה;
- מהנדסי תוכנה וחומרה רבים;
- ······
לכן, אין זה מפתיע שיש כיום זיופים או שבבים פגומים רבים בשוק, כולל ARM משובץ שאומר ש"גם GD32 התחיל להציף זיופים". אני חושב שזה חייב להיות קיים.
3
זיהוי מוצרים משופצים או מזויפיםכדי לזהות STM32/GD32 משופץ או מזויף, הפעולה המקובלת היא תחילה להלחים אותו על לוח המעגל המודפס (או על מתקן הכלי), ולאחר מכן להפעיל אותו כדי לראות אם זה תקין. אם הוא חם, יש לו זרם מוגזם, או אפילו מעשן, יש להיזהר.לאחר מכן קרא את פרטי השבב, כגון קיבולת פלאש, מידע UID, בתים של אפשרויות וכו'.
שיתוף מאמרים קודמים כאן:האם אתה מכיר את האוגרים האלה של STM32?
שיטת הקריאה הספציפית היא כדלקמן:
אוגר קיבולת פלאש אחד
1. על ידי קריאת הרישום
ב"מדריך העזר" של STM32, יש אוגר כגון אוגר נתוני גודל פלאש (בדרך כלל בסוף המדריך), וכתובת הבסיס של האוגר כתובה בבירור.
לרמוזלדגמי שבבים שונים עשויות להיות כתובות רישום שונות. לדוגמה, כתובת הבסיס של F103 היא: 0x1FFFF7E0.
הוא ערך של 16 סיביות, שנכתב במפעל, וניתן לקרוא אותו רק על ידי התוכנית. שיטת הקריאה פשוטה מאוד ויכולה להיות כדלקמן:
uint16_t Flash_size; Flash_size = *(uint16_t *)0x1FFFF7E0;
2. קרא ישירות דרך STM32 ST-LINK Utility
חבר את השבב דרך ST-Link וקרא אותו ישירות, אתה יכול לראות את מידע הקיבולת:
2 אוגר UID
מישהו שאל אותי בעבר, האם אני יכול להצפין דרך ה-UID של STM32? זה בהחלט אפשרי.
אבל שאל אותי שאלה נוספת, אני לא רוצה לקרוא את הכל (96 סיביות),האם ניתן לקרוא רק חלק מהאוגר כמזהה? האם החלקים הנקראים יחזרו על עצמם?
מזהה ייחודי של STM32 UIDישים ל:
- משמש כמספר סידורי.
- הוא משמש כסיסמה. בעת כתיבת זיכרון פלאש, מזהה ייחודי זה משמש בשילוב עם אלגוריתם ההצפנה והפענוח של התוכנה כדי לשפר את אבטחת הקוד בזיכרון הפלאש.
- משמש להפעלת תהליך האתחול באמצעות מנגנון בטיחות.
ל-UID של STM32 יש סך של 96 סיביות (32 x 3). בסך הכל, יש חברים, האם אני יכול לקרוא רק חלק מסוים ממנו כמזהה ייחודי?
שאלה זו, באופן מדויק, אינה אפשרית. אבל אם היא לא קפדנית במיוחד, זה עדיין בסדר. מכיוון ש-UID זה ממוספר לפי פרוסה, אצווה וכו'. אם תקנו את אותה אצווה, תגלו שהמספרים עשויים להיות עוקבים.
קראתי על כמה לוחות שיוצרו בעבר (ה-MCU שרכשתי הם מאותה אצווה). ה-UID של השבבים עוקבים. אם אתה מעוניין, אתה יכול לנסות את זה.
לכן,על ידי קריאת חלק מה-UID כמזהה, ניתן רק לומר שהוא אינו קפדני..
3 כתובת קיזוז רישום
עדיין ישנם מתחילים רבים שלומדים ידע ברמה נמוכה. לדוגמה, ישנם חברים שרוצים לתכנת באמצעות אוגרים בעצמם, אך אינם יודעים מהי כתובת בסיס אוגרים ומהי כתובת היסט אוגרים.
1. כתובת בסיס
לכל רכיב על גבי שבב והתקן על גבי שבב יש כתובת בסיס תואמת, אשר נקבעת על ידי היצרן ואינה ניתנת לשינוי. כפי שמוצג להלן:
בתוך התוכנית תמצאו את הקוד המתאים לאמור לעיל:
2. כתובת קיזוז
כתובת ההיסט היא ההיסט המבוסס על כתובת הבסיס (בדרך כלל מוגדלת ב-4 בתים), כגון כתובת ההיסט של טיימר ה-TIM:
באופן דומה, הקוד המתאים בתוכנית מיישם קיזוז דרך המבנה:
בנוגע לכתובת הבסיס ולכתובת ההיסט, בין אם מדובר בספריית הציוד ההיקפי הסטנדרטית או בספריית HAL, הן מיושמות בשיטת כתובת הבסיס + ההיסט המוצגת לעיל.
כפי שצוין במאמר פעמים רבות בעבר, אם ברצונכם להבין את עקרון האוגרים, או ליישם אותם באמצעות אוגרים, עדיף להתייחס לשגרות "Standard Peripheral Library". ספריית HAL מורכבת יחסית לכימוס ואינה מתאימה לחקר האוגרים ברמה הנמוכה ביותר.
אימות נוסף, בדיקת כתיבת נתונים (RAM, Flash), בדיקת תפקוד בסיסית של ציוד היקפי שונה וכו'.
4
ערוצים פורמליים מומלציםהמחיר שמשלמים על קניית מוצרים מזויפים או מזויפים הוא גבוה מאוד. זה בסדר אם מתגלות בעיות בשלב הפיתוח המוקדם, אבל חוששים שהבעיות יתגלו לאחר ייצור המוני.מה שמפחיד עוד יותר הוא המצב שבו מוצרים נשלחים בכמויות גדולות ויש להם בעיות בידי הלקוחות בגלל שבבים מזויפים.
היום, מישהו בקבוצת התקשורת דן במצב של מכירת צ'יפס על דגים מלוחים. אני חושב,אפשר לקנות צ'יפס סתם בשביל הכיף, אבל עדיף להיזהר כשמכינים מוצרים.
לדוגמה, ה-STM32 שנמצא ב-Taobao ביותר מעשרה יואן עדיין מיובא ומקורי. האם אתם מאמינים לזה?
עבור שבבים שנרכשו דרך ערוצים רגילים, עדיין קיימת סבירות מסוימת שהבעיה נגרמת על ידי השבב עצמו, שלא לדבר על פלטפורמה כמו שיאניו.נתקלתי בעבר בבעיות עם ה-STM32 שקניתי מסוכן רגיל וגדול יחסית. ה-FAE פנה לחברה פעמים רבות ולא הצליח למצוא את הבעיה. לבסוף, החזרתי את השבב המקורי של היצרן וניתחתי אותו, וגילתי שזו בעצם בעיה בשבב עצמו.
לכן, אל תקנו צ'יפס מטאובאו או שיאניו רק בגלל שהם זולים. מומלץ לעבור דרך ערוצים רשמיים. אחרת, זה עלול להיות יקר.
הצהרת אחריות: מאמר זה נכתב על ידי "strongerHuang", התומך בהגנה על זכויות קניין רוחני. אנא ציין את המקור המקורי ואת מחבר ההדפסה המחודשת. אם ישנה הפרה כלשהי, אנא צור איתנו קשר כדי למחוק אותה.
מספר טלפון של החברה: 86-0755-83044319+
פקס/פקס: 86-0755-83975897+
דוא"ל: 1615456225@qq.com
QQ: 3518641314 מנהל לי
QQ: 332496225 מנהל Qiu
כתובת: חדר 809, בניין C, בניין הטכנולוגיה ז'אנטאו, שדרת מינגז'י מס' 1079, רובע לונגהואה החדש, שנזן




粤公网安备44030002007346号