دیباگ Cortex-M از راه CAN؛ بی‌نیاز از SWD/JTAG

معرفی دیباگ Cortex-M از راه CAN
10 بازدید
۱۴۰۴-۰۷-۰۹
2 دقیقه
  • نویسنده: مریم میریان
  • درباره نویسنده: ---

به گفته hackster

سایمون کاترینر، چارچوبی متن‌باز ارائه کرده که دیباگ سخت‌افزاری Cortex-M از طریق CAN را بدون نیاز به SWD/JTAG ممکن می‌کند. با تکیه بر DebugMonitor می‌توان halt/step، بازرسی حافظه و فلش‌کردن را انجام داد. یک gateway، پروتکل CMSIS-DAP را بین USB و CAN ترجمه می‌کند تا میزبان همان ابزارهای معمول مثل gdb و VS Code را بدون تغییر به‌کار بگیرد. فریمور هدف، هنگام live debug ارتباط CAN را پایدار نگه می‌دارد و این روش روی همه‌ی هسته‌های Cortex-M به‌جز M0/M0+ کار می‌کند.

Erich Styger، مهندس امبدد و استاد، به‌همراه دانشجویش Simon Kathriner روشی عملی برای دیباگ سخت‌افزاری میکروکنترلرهای Arm Cortex‑M بدون نیاز به رابط‌های سنتی SWD/JTAG ارائه کرده‌اند. ایده‌ی اصلی، استفاده از گذرگاه Controller Area Network (CAN) برای جابه‌جایی فرامین دیباگ و تکیه بر قابلیت «کمتر شناخته‌شده» DebugMonitor در خانواده‌ی Cortex‑M است. نتیجه، دیباگی است که در محصول نهایی و بدون دسترسی مستقیم به پین‌های دیباگ هم قابل انجام است.

چرا همیشه SWD/JTAG پاسخ‌گو نیست؟

دیباگ سنتی سخت‌افزار معمولاً به یک پروب دیباگ و کابل SWD/JTAG متکی است. این روش:

  • به پین‌های اختصاصی روی هدف و دسترسی فیزیکی نیاز دارد که در محصول نهایی اغلب ممکن نیست.
  • هزینه‌ی پروب، کابل و طراحی پین‌ها را تحمیل می‌کند و سیگنال‌های پرسرعت آن مستعد تداخل است.
  • در سامانه‌هایی که همه‌ی MCUها از قبل به یک field bus مانند CAN متصل‌اند، یک مسیر جایگزین منطقی و در دسترس وجود دارد.

Styger همین نکته را مبنا قرار داده: وقتی شبکه‌ی CAN در دسترس است، چرا از آن برای دیباگ سخت‌افزاری استفاده نکنیم؟

ایده و قابلیت‌ها: دیباگ از طریق CAN با تکیه بر DebugMonitor

قابلیت DebugMonitor که در بسیاری از مدل‌های Arm Cortex‑M موجود است (به‌جز M0/M0+)، در این راهکار نقش کلیدی دارد. با استفاده از آن و یک چارچوب نرم‌افزاری سبک روی هدف، می‌توان عملیات‌های مرسوم دیباگ را از راه دور و از طریق CAN انجام داد، از جمله:

  • برنامه‌ریزی فلش (flash programming)
  • توقف کنترلر (halt)
  • بازرسی/دستکاری حافظه (memory inspection)
  • اجرای قدم‌به‌قدم (instruction stepping)

به بیان Styger، DebugMonitor از «ویژگی‌های کم‌تر ارزیابی‌شده» در اکوسیستم Cortex‑M است و برای ایجاد قلاب‌های دیباگ در زمان اجرا بسیار مناسب است.

زنجیره‌ی کامل به‌صورتی طراحی شده که ابزارهای رایج توسعه تقریباً بدون تغییر باقی بمانند و تنها مسیر انتقال دیباگ از SWD/JTAG به CAN جابه‌جا شود:

۱) Host

  • ابزارهای رایج مانند gdb و VS Code روی میزبان استفاده می‌شوند.
  • پروتکل دیباگ CMSIS-DAP به‌صورت معمولی از طریق USB تولید می‌شود.

۲) gateway USB↔CAN

  • یک gateway اختصاصی پیام‌های CMSIS-DAP را بین USB و CAN ترجمه می‌کند.
  • این پل باعث می‌شود هیچ تغییری در gdb یا VS Code لازم نباشد و مسیر حمل فقط از SWD/JTAG به CAN منتقل گردد.

۳) هدف مبتنی بر Arm Cortex‑M

  • روی هدف، یک چارچوب (framework) سبک نصب می‌شود که قلاب‌های لازم را به DebugMonitor متصل می‌کند.
  • این چارچوب هنگام دیباگ، ارتباط معمول CAN دستگاه را زنده نگه می‌دارد؛ بنابراین رفتار شبکه مختل نمی‌شود.
  • این قابلیت روی همه‌ی هسته‌های Cortex‑M به‌جز M0/M0+ قابل استفاده است.
مولفهنقشجزئیات کلیدی
Host Toolsرابط توسعه‌دهندهgdb، VS Code؛ خروجی دیباگ بر پایه CMSIS-DAP
USB↔CAN Gatewayترجمه پروتکل/حملتبدیل CMSIS-DAP از USB به CAN و بالعکس
Target Frameworkاجرای قلاب‌های دیباگاستفاده از DebugMonitor در Cortex‑M؛ حفظ ارتباط CAN حین دیباگ
Supported MCUsسازگاریArm Cortex‑M (به‌جز M0/M0+)
Debug Functionsعملیات‌هاFlash programming، halt، memory inspection، instruction stepping

مزایا

  • دیباگ در محصول نهایی: هنگامی که دسترسی فیزیکی به پین‌های SWD/JTAG ممکن نیست.
  • کاهش هزینه و پیچیدگی: حذف کانکتورهای دیباگ و مسیرهای پرسرعت حساس به تداخل.
  • استفاده از زیرساخت موجود: در سامانه‌های چند-کنترلره که از قبل به CAN متصل‌اند.
  • حفظ سرویس‌دهی شبکه: چارچوب هدف ارتباط CAN را حین دیباگ قطع نمی‌کند.

معایب

  • نیاز به شبکه/رابط CAN در دستگاه‌های هدف.
  • نیاز به پشتیبانی DebugMonitor؛ این قابلیت در همه‌ی Cortex‑Mها به‌جز M0/M0+ موجود است.
  • حضور یک gateway برای تبدیل CMSIS-DAP بین USB و CAN.

انتشار، پروژه و منابع

چارچوبی که DebugMonitor را به دیباگ روی CAN پیوند می‌دهد، توسط Simon Kathriner (دانشجوی Erich Styger) نوشته شده و در GitLab با مجوز متن‌باز نامشخص منتشر شده است. توضیحات فنی و روند کار در وبلاگ Styger به‌تفصیل آمده است.

اطلاعات
10
0
0
لینک و اشتراک
profile

نویسنده: مریم میریان

متخصص الکترونیک

مقالات بیشتر
slide

پالت | بازار خرید و فروش قطعات الکترونیک

قطعات اضافه و بدون استفاده همیشه یکی از سرباره‌‌های شرکتها و طراحان حوزه برق و الکترونیک بوده و هست. پالت سامانه‌ای است که بصورت تخصصی اجازه خرید و فروش قطعات مازاد الکترونیک را فراهم می‌کند. فروش در پالت
family

آیسی | موتور جستجوی قطعات الکترونیک

سامانه آی سی سیسوگ (Isee) قابلیتی جدید و کاربردی از سیسوگ است. در این سامانه سعی شده است که جستجو، انتخاب و خرید مناسب تر قطعات برای کاربران تسهیل شود. جستجو در آیسی
family

سیسوگ‌شاپ | فروشگاه محصولات Quectel

فروشگاه سیسوگ مجموعه ای متمرکز بر تکنولوژی های مبتنی بر IOT و ماژول های M2M نظیر GSM، GPS، LTE، NB-IOT، WiFi، BT و ... جایی که با تعامل فنی و سازنده، بهترین راهکارها انتخاب می شوند. برو به فروشگاه سیسوگ
family

سیسوگ فروم | محلی برای پاسخ پرسش‌های شما

دغدغه همیشگی فعالان تخصصی هر حوزه وجود بستری برای گفتگو و پرسش و پاسخ است. سیسوگ فروم یک انجمن آنلاین است که بصورت تخصصی امکان بحث، گفتگو و پرسش و پاسخ در حوزه الکترونیک را فراهم می‌کند. پرسش در سیسوگ فرم
family

سیکار | اولین مرجع متن باز ECU در ایران

بررسی و ارائه اطلاعات مربوط به ECU (واحد کنترل الکترونیکی) و نرم‌افزارهای متن باز مرتبط با آن برو به سیکار
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
خانواده سیسوگ
سیسوگ‌شاپ

فروشگاه محصولات Quectel

پالت
سیسوگ فروم

محلی برای پاسخ پرسش‌های شما

سیسوگ جابز
سیسوگ
سیسوگ فروم
سی‌کار

اولین مرجع متن باز ECU در ایران

سیسوگ مگ
آی‌سی

موتور جستجوی قطعات الکترونیکی

سیسوگ آکادمی
پالت

بازار خرید و فروش قطعات الکترونیک

دیدگاه ها

become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله