فهرست مطالب:

چشمان خود را باز کنید! تحلیل منطقی: 21 مرحله
چشمان خود را باز کنید! تحلیل منطقی: 21 مرحله

تصویری: چشمان خود را باز کنید! تحلیل منطقی: 21 مرحله

تصویری: چشمان خود را باز کنید! تحلیل منطقی: 21 مرحله
تصویری: لزبازی لیلا اوتادی چه لبی میگیره (نبینی از دستت رفته) 2024, جولای
Anonim
Image
Image
مونتاژ
مونتاژ

تجزیه و تحلیل منطقی تجسم شما را از قطار پالس ، که قطعاتی هستند که در خط ارتباطی حرکت می کنند ، تسهیل می کند. بنابراین ، چشمان شما را باز می کند تا یک مشکل احتمالی را شناسایی کنید. چرا این مهم است؟ این یک ابزار توسعه کارآمد و تشخیص خطا است که می تواند در وقت شما صرفه جویی کند. در این ویدئو امروز ، ما اهمیت تجزیه و تحلیل منطقی را ارزیابی می کنیم ، برخی پروتکل های روشهای معمول را هنگام استفاده از این دستگاه مشاهده می کنیم و یک شکست تشخیص را بدون کمک یک تجزیه و تحلیل منطقی مثال می زنیم.

در این ویدئو ، من از یک مدل نسبتاً ارزان (حدود 35 دلار) و کارآمد ، با رابط گرافیکی و نرم افزار رایگان استفاده کردم.

مرحله 1: مونتاژ

مرحله 2: ویژگی های مورد استفاده - سرور

ویژگی های مورد استفاده - سرور
ویژگی های مورد استفاده - سرور

• جامپر برای اتصالات

• 2 آردوینوس (ما از 2 مگا آردوینوس 2560 استفاده کردیم)

• تجزیه و تحلیل منطقی (ما از Saleae استفاده می کنیم)

• کابل های اتصال USB برای آردوینو و آنالیزور.

• اسیلوسکوپ (اختیاری)

• Protoboard

مرحله 3: مدار مورد استفاده

مدار استفاده می شود
مدار استفاده می شود

در اینجا ما شماتیک را داریم که نظارت بر سه پایه TX0 ، SDA و SCL را نشان می دهد. ما دو آردوینو داریم: یک ارباب و یک برده.

مرحله 4: کد منبع: استاد

در Setup ، ما کتابخانه ای برای ارتباطات i2c قرار می دهیم. ما به عنوان Master وارد شبکه شدیم و سریال 0 را راه اندازی کردیم. در حلقه ، برای ارتباط با شماره 8 آردوینو ، بایت داده های برده را درخواست کردیم ، همانطور که در مثال تعریف کردیم. ما در سریال ، که با تجزیه و تحلیل منطق ارزیابی می شود ، بایت های دریافتی را چاپ می کنیم.

#include // شامل یک کتابخانه برای comunicação I2C void setup () {Wire.begin ()؛ // Entra na redde como Mestre (endereço é opcional para o mestre) Serial.begin (115200)؛ // inicia یک سریال 0} void loop () {Wire.requestFrom (8، 6)؛ // requisita 6 bytes de dados do escravo de endereço 8 while (Wire.available ()) {// enquanto houver bytes para receiber. به به 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: کد منبع: Slave

در این کد برده ، من مجدداً کتابخانه ارتباطات i2c را وارد می کنم. من به عنوان برده با آدرس 8. وارد شبکه می شویم. ما رویداد درخواست را ثبت می کنیم و آن را با عملکرد "request" مرتبط می کنیم. نیازی به انجام کاری در حلقه ندارید ، فقط 0.1 ثانیه تأخیر بدهید.

در نهایت ، ما تابع request را داریم که وقتی رویداد درخواست توسط Master رخ می دهد ، که در Setup ثبت شده است ، اجرا می شود. در نهایت ، ما با پیامی از 6 بایت پاسخ می دهیم.

#include // inclui a biblioteca para comunicação I2C void setup () {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} حلقه void () {تاخیر (100) ؛ // não faz nada no loop، apenas aguarda 0، 1 segundo} // função que será ekzada 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 ولت تا 5.25 ولت

آستانه سطح پایین 0.8 ولت

آستانه سطح بالا 2.0 ولت

امپدانس ورودی حدود 1 اهم یا بیشتر

مرحله 7: نصب نرم افزار Saleae

نصب نرم افزار Saleae
نصب نرم افزار Saleae

برنامه ای که داده های گرفته شده توسط تحلیلگر منطقی را دریافت کرده و بیت ها را رمزگشایی می کند ، می توانید در پیوند زیر بارگیری کنید:

مرحله 8: پیکربندی محیط برای آزمایشات ما

پیکربندی محیط برای آزمایشات ما
پیکربندی محیط برای آزمایشات ما

من رابط کاربری را در اینجا نشان می دهم ، زیرا من آن را بسیار دوست داشتم زیرا تمیز بود.

مرحله 9: پیکربندی محیط برای آزمایشات ما

پیکربندی محیط برای آزمایشات ما
پیکربندی محیط برای آزمایشات ما

در اینجا چند گزینه پیکربندی وجود دارد:

• با کلیک روی نام کانال ، می توانیم آن را تغییر دهیم.

• ما می توانیم تعیین کنیم که آیا یکی از کانال ها به عنوان محرکی برای ضبط و شکل تشخیص عمل می کند.

• با کلیک و نگه داشتن شماره کانال ، می توانید موقعیت خود را در لیست تغییر دهید.

• با کلیک بر روی چرخ دنده ، می توانیم تجسم کانال را پیکربندی کرده ، گسترش دهیم…

•… یا پنهان کردن کانال همه کانالهایی را که استفاده نمی کنیم پنهان می کنیم.

مرحله 10: پیکربندی محیط برای آزمایشات ما

پیکربندی محیط برای آزمایشات ما
پیکربندی محیط برای آزمایشات ما

با کلیک بر روی پیکان های دکمه "شروع" ، گزینه های Sampling Rate و مدت زمان ضبط وجود دارد.

به دلایلی ، اگر نرم افزار تشخیص دهد که نمی توان نرخ را حفظ کرد ، پیامی نمایش داده می شود و به طور خودکار نرخ را کاهش می دهد تا به یک مقدار عملکردی برسد.

مرحله 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 ، از نوع مورد استفاده در تلفن همراه ، سیم کارت ، سعی می کردم به ESP32 متصل شوم. اما فقط وصل نشد سپس منبع تغذیه ، سیم کشی را بررسی کردم و برد را عوض کردم. من همه کارها را انجام دادم ، اما هیچ چیز آن را برطرف نکرد. من تصمیم گرفتم یک تجزیه و تحلیل منطقی انجام دهم: متوجه شدم که سیگنال ESP در UART 115200 شروع به ناسازگاری می کند. یعنی ESP32 با سرعت متفاوت از این سرعت 115 ، 200 را پخش می کرد.

این خطا که توسط تجزیه کننده شناسایی شد ، با X به رنگ قرمز نمایش داده شد. به نظر من ، برنامه می گوید نقطه ای که چنین کمی دارد در زمان نیمه جابجا شده است. با افزایش این تغییر ، ممکن است زمانی برسد که همه چیز ناهماهنگ باشد ، به طوری که اطلاعات به طرف دیگر نرسد. معمولاً وارد می شود ، اما SIM800 حساس است و اگر دقیق نباشد ، اطلاعات به سر دیگر نمی رسد.

من نمی دانم که این چیزی است که اغلب اتفاق می افتد یا نه ، اما برای من اتفاق افتاده است ، بنابراین تصمیم گرفتم به این موضوع در اینجا بپردازم. پس من چیکار کردم؟ سرعتم را کم کردم. اگر 9 ، 600 ، 19 ، 200 ، تا 38 ، 400 قرار دهید ، کار می کند ، که در 115 ، 200 اتفاق نمی افتد.

مرحله 21: فایل ها را بارگیری کنید

PDF

من نه

توصیه شده: