תוכן עניינים:

תפתח את העיניים! מנתח לוגי: 21 שלבים
תפתח את העיניים! מנתח לוגי: 21 שלבים

וִידֵאוֹ: תפתח את העיניים! מנתח לוגי: 21 שלבים

וִידֵאוֹ: תפתח את העיניים! מנתח לוגי: 21 שלבים
וִידֵאוֹ: פופקורן - פודקאסט מאת ליאור פרנקל - איך לעצב התנהגות של ציבור | מה עושה יועץ פוליטי? | לראות את... 2024, יולי
Anonim
Image
Image
הַרכָּבָה
הַרכָּבָה

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

בסרטון זה השתמשתי במודל זול יחסית (בסביבות 35 $) ויעיל, עם ממשק גרפי ותוכנה חינמית.

שלב 1: הרכבה

שלב 2: תכונות בשימוש - שרת

תכונות בשימוש - שרת
תכונות בשימוש - שרת

• מגשרים לחיבורים

• 2 ארדואינים (השתמשנו בשני מגה ארדואינו 2560)

• מנתח לוגי (אנו משתמשים ב- Saleae)

• כבלי חיבור USB עבור Arduino ומנתח.

• אוסצילוסקופ (אופציונלי)

• פרוטובורד

שלב 3: מעגל בשימוש

מעגל בשימוש
מעגל בשימוש

כאן יש לנו את הסכימה, המציגה ניטור של שלושה סיכות: TX0, SDA ו- SCL. יש לנו שני ארדואינים: אדון ועבד.

שלב 4: קוד מקור: מאסטר

בהגדרה נכלול את הספרייה לתקשורת i2c. נכנסנו לרשת כמאסטר ואתחלנו סדרתי 0. ב- Loop, ביקשנו בתים של נתוני עבדים לתקשורת עם מספר Arduino 8 שלנו, כפי שהגדרנו בדוגמה. אנו מדפיסים בסדרה, שתוערך עם מנתח הלוגיקה, הבייטים שהתקבלו.

#include // inclui a biblioteca para comunicação התקנת חלל I2C () {Wire.begin (); // Entra na rede como Mestre (endereço é opcional para o mestre) Serial.begin (115200); // inicia a serial 0} loop void () {Wire.requestFrom (8, 6); // requisita 6 bytes de dados do escravo de endereço 8 while (Wire.available ()) {// enquanto houver bytes for receber… char c = Wire.read (); // recebe cada byte e armazena como caracter Serial.print (c); // envia o caracter pela serial (na verdade vai para o buffer)} עיכוב (500); // aguarda meio segundo}

שלב 5: קוד המקור: שפחה

בקוד העבדים הזה אני שוב כולל את הספרייה לתקשורת i2c. אני נכנס לרשת כעבד עם הכתובת 8. אנו רושמים את אירוע הבקשה ומשייכים אותו לפונקציית "בקשה". אתה לא צריך לעשות שום דבר בלולאה, רק תן עיכוב של 0.1 שניות.

לבסוף, יש לנו את פונקציית הבקשה שתתבצע כאשר מתרחש אירוע הבקשה על ידי המאסטר, שנרשם ב- Setup. אנו משיבים, לבסוף, בהודעה של 6 בתים.

#include // inclui a biblioteca for comunicação התקנת חלל I2C () {Wire.begin (8); // entra na rede como escravo com endereço 8 Wire.onRequest (requestEvent); // registra o evento de requisiçao // e associa à função requestEvent} loop loop () {delay (100); // não faz nada no loop, apenas aguarda 0, 1 segundo} // função que será executada quando ocorrer o evento de requisição pelo mestre // foi registrada como evento no setup void requestEvent () {Wire.write ("teste"); // responde com uma mensagem de 6 bytes}

שלב 6: מנתח: חומרה

מנתח: חומרה
מנתח: חומרה

קצב דגימה עד: 24 מגהרץ

היגיון: 5 V עד 5.25 V

סף ברמה נמוכה 0.8 V

סף ברמה גבוהה 2.0 V

עכבת כניסה של כ -1 מוהם או יותר

שלב 7: התקנת תוכנת Saleae

התקנת תוכנת Saleae
התקנת תוכנת Saleae

ניתן להוריד את התוכנית המקבלת את הנתונים שנלכדו על ידי מנתח הלוגיקה ומפענחת את הסיביות בקישור הבא:

שלב 8: הגדרת הסביבה לבדיקות שלנו

הגדרת הסביבה למבחנים שלנו
הגדרת הסביבה למבחנים שלנו

אני מציג כאן את הממשק, שאהבתי במיוחד כי הוא היה נקי.

שלב 9: הגדרת הסביבה לבדיקות שלנו

הגדרת הסביבה למבחנים שלנו
הגדרת הסביבה למבחנים שלנו

להלן כמה אפשרויות תצורה:

• על ידי לחיצה על שם הערוץ, נוכל לשנות אותו.

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

• על ידי לחיצה והחזקת מספר הערוץ תוכל לשנות את המיקום שלך ברשימה.

• על ידי לחיצה על גלגל השיניים, אנו יכולים להגדיר את הדמיה של הערוץ, להרחיב …

• … או הסתרת הערוץ. נסתיר את כל הערוצים בהם לא נשתמש.

שלב 10: הגדרת הסביבה לבדיקות שלנו

הגדרת הסביבה למבחנים שלנו
הגדרת הסביבה למבחנים שלנו

לחיצה על החצים של כפתור "התחל", יש את האפשרויות של קצב הדגימה ומשך ההקלטה.

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

שלב 11: הגדרת הסביבה לבדיקות שלנו

הגדרת הסביבה למבחנים שלנו
הגדרת הסביבה למבחנים שלנו

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

שלב 12: הגדרת הסביבה לבדיקות שלנו

הגדרת הסביבה למבחנים שלנו
הגדרת הסביבה למבחנים שלנו

בכרטיסייה "פרוטוקולים מפוענחים", עלינו לבדוק אילו מנתחי פרוטוקולים מופעלים. שם הנתונים יופיעו. בכרטיסייה "ביאורים" נוכל להוסיף כמה מהתוצאות להדמיה טובה יותר. פשוט לחץ על הסמל "הוסף מדידה".

שלב 13: לכידה: סקירה כללית

לכידה: סקירה כללית
לכידה: סקירה כללית

במסך הלכידה, התוכנית מציגה את רכבת דופק הנתונים של ה- SDA, SCL ו- TX0.

שלב 14: לכידה: תוצאה של ניתוח פרוטוקול

לכידה: תוצאה של ניתוח פרוטוקול
לכידה: תוצאה של ניתוח פרוטוקול

כאן, אנו רואים את תוצאת הלכידה. בכרטיסייה "פרוטוקולים מפוענחים", יש לנו:

• בקשת השרת עבור העבד עם מזהה 8.

• תגובת העבד, שש תווים: "t", "e", "s", "t", "e" ומרווח.

• כל אחד ואחריו סיבית ACK (אישור) המציין קליטת בתים נכונה, למעט תו הרווח NACK (לא אישור).

• לאחר מכן, אנו רואים את תוצאת הפענוח של סדרת TX0, המציינת את התווים שהתקבלו ונשלחו למסוף הסידורי של Arduino IDE.

שלב 15: לכידה: ערוץ 0 ונתונים (SDA)

צילום: ערוץ 0 ונתונים (SDA)
צילום: ערוץ 0 ונתונים (SDA)

בתמונה זו, יש לנו את רכבת הדופק של קו ה- SDA. שים לב שניתן לצפות בכל בתים שהועברו.

שלב 16: צילום: ערוץ 1 ושעון (SCL)

צילום: ערוץ 1 ושעון (SCL)
צילום: ערוץ 1 ושעון (SCL)

עכשיו, יש לנו כאן את רכבת הדופק של קו ה- SCL. אתה יכול לבדוק פרטים נוספים פשוט על ידי מיקום העכבר מעל האות, כפי שאתה רואה בתמונה. אנו יכולים לראות שתדר השעון היה ב 100 קילוהרץ.

שלב 17: לכידה: ערוץ 2 וסדרה (TX0)

צילום: ערוץ 2 וסידורי (TX0)
צילום: ערוץ 2 וסידורי (TX0)

באשר לרכבת הדופק של קו TX0, אנו יכולים לראות את ביט ההתחלה ואת נקודות המסגור של כל ביט. יש לנו בת המייצג את הדמות "e".

שלב 18: הגדרת הסביבה לבדיקות שלנו

הגדרת הסביבה למבחנים שלנו
הגדרת הסביבה למבחנים שלנו

כאן יש לנו מספר אפשרויות לקריאת הנתונים.

שלב 19: לכידה: אוסצילוסקופ ומנתח

צילום: אוסצילוסקופ ומנתח
צילום: אוסצילוסקופ ומנתח

תראה כאן את המסך שצילמתי מהאוסילוסקופ שלי. אות מנתח ההיגיון מייצג רק את הגילוי הגבוה והנמוך, אך אינו מייצג את איכות האות. ניתן לראות זאת בצורה הטובה ביותר באוסילוסקופ.

שלב 20: לכידה: התבוננות בכשל (דוגמה לכשל סדרתי)

לכידה: התבוננות בכשל (דוגמה לכשל סדרתי)
לכידה: התבוננות בכשל (דוגמה לכשל סדרתי)

כעת, אראה דוגמה לכישלון סדרתי, שאכן קרה לי. הייתי עם מודם GPRS, מהסוג המשמש בטלפון נייד, כרטיס ה- SIM, מנסה להתחבר ל- ESP32. אבל זה פשוט לא התחבר. לאחר מכן בדקתי את אספקת החשמל, את החיווט, והחלפתי את הלוח. עשיתי הכל, אבל שום דבר לא תיקן את זה. החלטתי להכניס ניתוח לוגי: גיליתי שאות ה- ESP ב- UART 115200 החל להתאים. כלומר, ה- ESP32 שיחק מה שצריך להיות 115, 200 במהירות שונה מזו.

שגיאה זו, שזוהתה על ידי המנתח, הוצגה עם X באדום. להבנתי, התוכנית אומרת שהנקודה שיש לה קצת כזה היא חצי עקירה בזמן. ככל שהשינוי הזה יגדל, ייתכן שיגיע הזמן שהכל לא תואם, כך שמידע לא יגיע לצד השני. זה בדרך כלל מגיע, אבל ה- SIM800 רגיש ואם זה לא מדויק, המידע לא מגיע לקצה השני.

אני לא יודע אם זה משהו שקורה לעתים קרובות או לא, אבל זה קרה לי, ולכן החלטתי להתייחס לנושא הזה כאן. אז מה עשיתי? האטתי. אם אתה שם 9, 600, 19, 200, עד 38, 400, זה עובד, מה שלא קורה עם 115, 200.

שלב 21: הורד את הקבצים

PDF

INO

מוּמלָץ: