واحد 7 / 12

پروتکل های ارتباطی و پشته شبکه

سود:

  • امکان تحلیل ساختار فریم/بسته پروتکل هایی مانند I2C/SPI/UART و TCP/IP، MQTT با پشتیبانی هوش مصنوعی
  • امکان محدود کردن خطاهای پروتکل (زمان بندی، آدرس دهی، جمع بندی) به عنوان فرضیه با هوش مصنوعی
  • امکان تایید تفسیر پروتکل هوش مصنوعی با اندازه گیری سند استاندارد، تحلیلگر (منطقی/بسته)

پروتکل مجموعه ای از قوانین است که دو دستگاه برای درک یکدیگر توافق می کنند: با چه سرعتی، با چه ترتیبی، با چه فرمتی صحبت خواهند کرد. اینکه سنسور دما از طریق I2C با میکروکنترلر صحبت کند یا دستگاه از طریق TCP/IP و MQTT با یک سرور ابری صحبت کند، بر اساس یک پروتکل است. در این بخش، نحوه استفاده از هوش مصنوعی برای تجزیه و تحلیل فریم‌ها/بسته‌های پروتکل، محدود کردن خطاهای پروتکل و درک پشته ارتباطات (لایه‌های روی هم، از لایه فیزیکی تا برنامه) را خواهید دید. هوش مصنوعی در توضیح پروتکل ها و ایجاد فرضیه ها قدرتمند است. اما آنچه که یک خط در واقع انجام می دهد تنها با اندازه گیری تحلیلگر آن (آنالیزگر منطقی، آنالیز پروتکل / بسته) و سند استاندارد شناخته می شود.

پروتکل های سریال جاسازی شده: I2C، SPI، UART

تراشه های روی یک برد معمولاً با سه پروتکل سریال صحبت می کنند:

  • UART: دو خط (TX/RX)، بدون خط ساعت. هر دو طرف باید روی یک سرعت تنظیم شوند (باد نرخ). ساده اما همگام سازی به سرعت بستگی دارد.
  • SPI: ساعت (SCLK)، ورودی/خروجی داده (MOSI/MISO) و خطوط انتخاب (CS). سریع، تمام دوبلکس، اما به پین ​​های بیشتری نیاز دارد. قطبیت ساعت/فاز (CPOL/CPHA) باید در هر دو طرف مطابقت داشته باشد.
  • I2C: دو خط (SDA/SCL)، مبتنی بر آدرس، چندین دستگاه در یک خط. مقاومت های کشش و شرایط زمین مشترک. کند اما مقرون به صرفه

هوش مصنوعی نحوه عملکرد این پروتکل ها، ساختار چارچوب آنها و علل شکست معمولی را به خوبی توضیح می دهد. به طور سیستماتیک دلایل احتمالی (آدرس نادرست، عدم تطابق بالا، عدم تطابق سرعت، عدم وجود زمینه مشترک، اختلاف خط، طول کابل/ظرفیت) را در زمانی که دستگاه I2C پاسخگو نمی‌شود فهرست می‌کند. اما اینکه کدام یک از اینها واقعی است را می توان با اندازه گیری خط با یک تحلیلگر منطقی و مشاهده امواج SDA/SCL درک کرد. هوش مصنوعی فرضیه را می دهد، اندازه گیری تصمیم می گیرد.

نکته: در خرابی پروتکل سریال، از هوش مصنوعی بپرسید "علل احتمالی را از محتمل ترین تا کم احتمال ترین رتبه بندی کند، و هر آنچه در تحلیلگر می بینم برای هر کدام تایید می شود." به این ترتیب اندازه گیری را هدفمند می کنید. به جای اینکه هر یک از دلایل را یک به یک امتحان کنید، نمای تحلیلگر شما را به شاخه مناسب می برد.

پروتکل های شبکه: TCP/IP، UDP، MQTT، CoAP

با اتصال دستگاه ها به شبکه و ابر، پروتکل های لایه ای وارد عمل می شوند. پشته TCP/IP اساسا لایه لایه است: پیوند فیزیکی/داده (اترنت، Wi-Fi)، شبکه (IP: آدرس دهی و مسیریابی)، حمل و نقل (TCP: قابل اعتماد، متوالی، کنترل جریان / UDP: سریع، بی اعتماد)، و برنامه (HTTP، MQTT، CoAP). مفاهیم کلیدی:

  • TCP در مقابل UDP: TCP ضرر را جبران می‌کند و سفارش را تضمین می‌کند اما تأخیر و سربار را معرفی می‌کند. UDP سریع است اما ضمانت تحویل ندارد (صوت/تصویر در زمان واقعی برای تله متری ترجیح داده می شود).
  • MQTT: پروتکل پیام رسانی سبک IoT که با مدل انتشار-اشتراک کار می کند. ارسال پیام از طریق موضوعات از طریق یک کارگزار. سطوح QoS تضمین تحویل را تنظیم می کند.
  • CoAP: پروتکل سبک HTTP مانند و مبتنی بر UDP برای دستگاه‌های محدود.

هوش مصنوعی ساختار فریم/بسته این پروتکل‌ها را تجزیه و تحلیل می‌کند، به شما کمک می‌کند تا یک Wireshark (تجزیه‌گر بسته) را تفسیر کنید، و یک طرح موضوع MQTT را بررسی می‌کند. اما اینکه ترافیک واقعی چیست با ضبط بسته ها تأیید می شود و رفتار سرور با آزمایش واقعی تأیید می شود.

Checksum، CRC و کادربندی

بیشتر پروتکل ها از یک جمع کنترل یا CRC (Cyclic Redundancy Check) برای بررسی خراب نبودن داده ها استفاده می کنند: فرستنده یک مقدار تأیید را از داده ها محاسبه می کند، گیرنده همان محاسبه را انجام می دهد و مقایسه می کند. هوش مصنوعی کدهایی را برای محاسبه CRC/checksum توصیف و می نویسد، اما جزئیاتی مانند انتخاب چند جمله ای، endianness، مقدار اولیه و غیره مختص استاندارد هستند. کد CRC تولید شده توسط هوش مصنوعی باید کلمه به کلمه با تعریف رسمی پروتکل مقایسه شود و در برابر یک بردار تست شناخته شده تأیید شود.

سه کیف کوچک

مورد 1 - کشش ناقص. یک تیم نمی تواند حسگر I2C را روی تخته نان بورد اجرا کند. آدرس دستگاه را تأیید نمی کند (بدون ACK). هوش مصنوعی کمبود مقاومت کششی و نقاط مشترک را به عنوان محتمل ترین علت فهرست می کند. هنگام نگاه کردن به خط SDA با یک تحلیلگر منطقی، مشاهده می شود که سیگنال نمی تواند به طور کامل به سطح بالایی برسد. ارتباط زمانی شروع می شود که مقاومت های pull-up اضافه شوند. درس: هوش مصنوعی محتمل ترین علت را برجسته کرد، تحلیلگر آن را تأیید کرد.

مورد 2 - حالت SPI اشتباه است. یک مهندس داده های بیهوده را از یک دستگاه SPI می خواند. هوش مصنوعی عدم تطابق قطبیت/فاز ساعت (CPOL/CPHA) را به عنوان علت احتمالی پیشنهاد می کند. در آنالایزر، به نظر می رسد ساعت نمونه برداری متفاوتی نسبت به لبه مورد انتظار دستگاه دارد. وقتی حالت اصلاح شود، داده ها معنی دار می شوند. درس: علامت "داده اما بی معنی" در SPI اغلب عدم تطابق حالت است. اندازه گیری این را روشن می کند.

مورد 3 - سوء تفاهم QoS MQTT. یک کارآموز از طریق MQTT تله متری می فرستد اما می بیند برخی از پیام ها گم شده اند و از هوش مصنوعی می پرسد. هوش مصنوعی بیان می کند که QoS 0 "حداکثر یک بار، تحویل تضمین نشده است" است. توضیح می دهد که QoS 1/2 برای تضمین تحویل مورد نیاز است، اما این باعث سربار و تاخیر می شود. کارآموز بر اساس بحرانی بودن تله متری به QoS 1 تغییر می کند و رفتار کارگزار را با آزمایش واقعی تأیید می کند. درس: گزینه پروتکل هوش مصنوعی را توضیح دهید. انتخاب صحیح با توجه به برنامه انجام می شود و با آزمایش تأیید می شود.

الگوهای درخواستی قابل کپی

ارتباط الگوی ناوبری خطای پروتکل"[I2C/SPI/UART/TCP/MQTT] دارای علائم زیر است: [علائم]. علل احتمالی را از MOST LIKELY تا کمترین احتمال رتبه بندی کنید. برای هر علت: (1) چرا این علامت را نشان می دهد، (2) هر چیزی که من در تحلیلگر می بینم، هر چیزی که می بینم (3) حذف شده است.

الگوی تجزیه و تحلیل چارچوب/بسته "محتوای زیر [I2C/SPI/UART آرایه بایت / ضبط بسته] را به فیلدها تقسیم کنید و هر فیلد را توصیف کنید (آدرس، فرمان، داده، جمع کنترل/CRC، پرچم). [چسباندن]."

الگوی تایید CRC/CHECKSUM"محاسبه CRC/Checksum را برای [پروتکل] شرح دهید: چند جمله ای، مقدار اولیه، ترتیب بیت، نهایی

الگوی انتخاب پروتکل "مقایسه پروتکل حمل و نقل/برنامه را برای برنامه زیر انجام دهید: [شرایط: ضمانت تحویل، تأخیر، توان، پهنای باند، محدودیت دستگاه]. گزینه های TCP/UDP و MQTT/CoAP/HTTP را با این معیارها مقایسه کنید. انتخاب واضحی را تحمیل نکنید؛ انتخاب واقعی باید با تست و حالتی مشخص شود."

اعلان ضعیف / اعلان قوی

اعلان ضعیف: "I2C کار نمی کند، چرا؟"

هشدار قوی: "سنسور I2C من ACK نمی کند (آدرس تایید نمی شود). علل احتمالی را فهرست کنید که از احتمال زیاد شروع می شود: بالا بردن، زمینه مشترک، آدرس اشتباه، سرعت، ظرفیت کابل، اختلاف. اندازه گیری."

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

نمودار مقایسه پروتکل

پروتکل

تایپ کنید

نقطه قوت

ابزار تایید

UART

سریال بدون ساعت

ساده، دو خط

تحلیلگر منطقی

SPI

سریال، ساعت

سریع، دوبلکس کامل

تحلیلگر منطقی (CPOL/CPHA)

I2C

سریال، آدرس پذیر

بسیاری از دستگاه ها، چند پین

آنالایزر (ACK، pull-up)

TCP

شبکه، حمل و نقل

قابل اعتماد، به ترتیب

تحلیلگر بسته (Wireshark)

UDP

شبکه، حمل و نقل

تاخیر سریع و کم

تحلیلگر بسته

MQTT

برنامه

سبک، میخانه/زیر، QoS

گزارش کارگزار + ضبط بسته

احتیاط: داشتن AI تفسیر یک ضبط پروتکل سریع است، اما AI ممکن است به اشتباه ترتیب بیت یا مرز فیلد را فرض کند. هر تجزیه و تحلیل را بر اساس توضیحات رسمی پروتکل و یک بردار تست شناخته شده تأیید کنید.

اشتباهات رایج

  • تغییر آن بر اساس پیش‌بینی هوش مصنوعی بدون اندازه‌گیری علت خطا. نمای تحلیلگر شما را به دلیل درست هدایت می کند.
  • نادیده گرفتن انطباق CPOL/CPHA در SPI. "داده وجود دارد اما بی معنی است" اغلب یک ناسازگاری حالت است.
  • فراموش کردن pull-up و زمینه مشترک در I2C. این شایع ترین علت "اصلاً کار نمی کند" است.
  • با فرض پارامترهای CRC. چند جمله ای، شروع، ترتیب بیت مختص استاندارد است. با بردار آزمون تأیید می شود.
  • اشتباه MQTT QoS با تضمین تحویل. QoS 0 تضمین نمی کند. انتخاب با توجه به برنامه انجام می شود و آزمایش می شود.

به طور خلاصه

در این واحد شما از هوش مصنوعی به عنوان کمکی قدرتمند در توضیح پروتکل‌هایی مانند I2C/SPI/UART و TCP/IP، MQTT، تحلیل فریم/بسته و محدود کردن سیستماتیک علل خطا استفاده کرده‌اید. اما پروتکل‌ها دقیق و استاندارد هستند: آنچه که یک خط در واقع انجام می‌دهد توسط یک تحلیلگر منطقی/بسته تعیین می‌شود، دقت آنالیز توسط تعریف رسمی و بردار آزمایش تعیین می‌شود، علت خطا با اندازه‌گیری تعیین می‌شود. هوش مصنوعی را هدایت کنید تا "محتمل ترین علت و اندازه گیری برای تایید آن" را ارائه دهد. بگذارید آنالیزور و استاندارد تصمیم بگیرند.

وظیفه کاربردی

یک سناریوی شکست پروتکل سریال (مثلاً عدم وجود I2C ACK) را انتخاب کنید. یک نقشه تشخیصی متوالی و قابل تأیید با اندازه‌گیری از هوش مصنوعی با الگوی «تقویت خطای پروتکل» درخواست کنید. سپس یک آرایه بایت نمونه بردارید (مثلاً یک قاب خواندن حسگر) و آن را با الگوی «تجزیه قاب/بسته» فاصله دهید و فرض endianness را یادداشت کنید. در نهایت، یک کد CRC را در برابر یک بردار آزمایشی شناخته شده با الگوی "CRC/Checksum Verification" تأیید کنید.

چک لیست

  • [ ] من علت شکست را با اندازه گیری تحلیلگر تأیید کردم، نه با پیش بینی هوش مصنوعی.
  • [ ] من CPOL/CPHA را در SPI، آدرس/کشش/کنترل زمینی مشترک در I2C فهرست کردم.
  • [ ] من تجزیه فریم/بسته را با تعریف پروتکل رسمی مقایسه کردم.
  • [ ] من پارامترهای CRC/checksum را با بردار آزمایش تأیید کردم.
  • [ ] من انتخاب پروتکل حمل و نقل/برنامه را طبق نیاز انجام دادم و آن را با آزمایش واقعی آزمایش کردم.
  • [ ] من معنای تضمین تحویل MQTT QoS را به درستی تفسیر کرده ام.