گاهی برنامه میکروکنترلر اجرا میشود، تغذیه مدار برقرار است و اتصالات هم ظاهراً درستاند؛ اما نمایشگر چیزی نشان نمیدهد یا سنسور پاسخ مورد انتظار را نمیفرستد. در چنین شرایطی، دیدن کد برنامه کافی نیست. باید ببینیم روی خطوط ارتباطی مدار چه اتفاقی میافتد.
لاجیک آنالایزر یا تحلیلگر منطقی، ابزاری برای ثبت وضعیت صفر و یک سیگنالهای دیجیتال در طول زمان است. با کمک آن میتوان ترتیب تغییرات چند خط را بررسی کرد و، در صورت پشتیبانی نرمافزار، دادههای ارتباطی را به شکل عدد، متن یا فریمهای قابلخواندن دید.
در این راهنما ابتدا با کاربردها و محدودیتهای این ابزار آشنا میشویم و سپس یک تمرین آموزشی برای بررسی ارتباط UART مرور میکنیم.
«لاجیک آنالایزر ابزاری برای مشاهده و تحلیل سیگنالهای دیجیتال و عیبیابی ارتباطات بین بخشهای مختلف یک مدار است.»
وقتی یک کانال لاجیک آنالایزر را به خط دیجیتال مناسب متصل میکنید، دستگاه وضعیت آن خط را در طول زمان ثبت میکند. خروجی معمولاً نموداری است که تغییر بین دو حالت منطقی را نشان میدهد:
این دو حالت را نباید با دو ولتاژ ثابت و یکسان در همه مدارها اشتباه گرفت. سطح ولتاژ سیگنال و آستانه تشخیص دستگاه تعیین میکنند که ورودی چگونه تفسیر شود.
فرض کنید یک میکروکنترلر با حافظه ارتباط دارد. مشاهده یک خط بهتنهایی ممکن است اطلاعات کافی ندهد. با ثبت همزمان خطوط داده، کلاک و انتخاب تراشه، میتوان دید انتقال چه زمانی شروع شده و تغییرات خطوط چه ارتباطی با یکدیگر دارند.
در اینجا دو قابلیت متفاوت مطرح است: ثبت سیگنال و رمزگشایی پروتکل. دستگاه ممکن است تغییرات ورودی را ثبت کند، اما برای تبدیل آنها به داده قابلخواندن، باید نرمافزار از پروتکل موردنظر پشتیبانی کند و تنظیمات رمزگشایی هم درست باشند.
خروجی دیجیتال لاجیک آنالایزر، شکل دقیق ولتاژ را نشان نمیدهد. بعضی دستگاهها ورودی آنالوگ هم دارند، اما آن قابلیت باید جداگانه در مشخصات همان مدل بررسی شود.
کاربرد این ابزار زمانی روشنتر میشود که سؤال مشخصی درباره مدار داشته باشیم. بهجای اینکه فقط بپرسیم «مدار چرا کار نمیکند؟»، میتوانیم سؤال را به یک رویداد قابلبررسی تبدیل کنیم.
| سؤال هنگام بررسی مدار | ارتباط یا سیگنال | چیزی که میتوان بررسی کرد |
|---|---|---|
| آیا میکروکنترلر واقعاً داده میفرستد؟ | UART | زمان ارسال و محتوای داده |
| آیا درخواست به آدرس موردنظر فرستاده میشود؟ | I2C | آدرس، جهت انتقال و وضعیت ACK یا NACK |
| آیا انتخاب تراشه با انتقال داده هماهنگ است؟ | SPI | رابطه کلاک، داده و خط انتخاب تراشه |
| آیا فرمانها با ترتیب مورد انتظار اجرا میشوند؟ | چند خط GPIO | ترتیب تغییر وضعیت خطوط و فاصله زمانی آنها |
| آیا خروجی کنترلی تغییر میکند؟ | PWM | زمانبندی پالسها، در محدوده توان ثبت دستگاه |
این اطلاعات مسیر عیبیابی را محدودتر میکنند، اما بهتنهایی علت خرابی را ثابت نمیکنند. برای مثال، مشاهده NACK در ارتباط I2C همیشه به معنی خرابی سنسور نیست؛ معنی آن به مرحله ارتباط و رفتار مورد انتظار دستگاهها بستگی دارد.
لاجیک آنالایزر برای بررسی ارتباط میان بخشهای مدار مفید است، بهخصوص وقتی لازم باشد چند خط دیجیتال را کنار هم ببینید.
برای شروع کار، شناخت چند اصطلاح کافی است. لازم نیست از همان ابتدا همه تنظیمات پیشرفته دستگاه را یاد بگیرید.
هر کانال دیجیتال، وضعیت یک خط را ثبت میکند. تعداد کانال موردنیاز به تعداد خطوطی بستگی دارد که میخواهید همزمان بررسی کنید.
دستگاه با توجه به آستانه تشخیص ورودی، وضعیت منطقی سیگنال را تعیین میکند. این آستانه در بعضی مدلها ثابت و در بعضی قابلتنظیم است.
نرخ نمونهبرداری مشخص میکند دستگاه در هر ثانیه چند نمونه از ورودی ثبت میکند. اگر این نرخ برای سیگنال موردنظر کافی نباشد، ممکن است بعضی تغییرات ثبت نشوند یا زمانبندی آنها با دقت کافی دیده نشود.
نرخ نمونهبرداری را نباید معادل حداکثر سرعت قابلتحلیل پروتکل دانست. انتخاب مناسب به سرعت سیگنال، کوتاهترین پالس موردنظر، مشخصات دستگاه و دقت زمانی موردنیاز بستگی دارد.
همچنین در بعضی مدلها، فعالکردن کانالهای بیشتر یا ثبت همزمان ورودیهای آنالوگ و دیجیتال، نرخهای قابلاستفاده را تغییر میدهد. بنابراین فقط به بزرگترین عدد نوشتهشده روی جعبه اکتفا نکنید.
ممکن است دستگاه درست تنظیم شده باشد، اما رویداد موردنظر بیرون از بازه ثبت اتفاق بیفتد. اگر ارسال داده فقط هنگام روشنشدن برد رخ میدهد، شروع ثبت پس از آن، اطلاعات موردنیاز را در اختیار شما نمیگذارد.
مدت ثبت، ظرفیت حافظه و شیوه انتقال داده به رایانه در انتخاب تنظیمات نقش دارند. برای شروع، یک رویداد کوتاه و قابلتکرار انتخاب کنید تا بررسی نتیجه سادهتر باشد.
تریگر شرطی برای ثبت رویداد در موقعیت زمانی موردنظر است؛ مثلاً تغییر وضعیت یک خط یا رخدادن یک الگوی مشخص. امکانات تریگر و مقدار داده قابلثبت قبل و بعد از آن، به دستگاه و نرمافزار بستگی دارد.
برای نخستین تمرین، ثبت ساده یک پیام تکرارشونده معمولاً قابلفهمتر از تنظیم تریگرهای پیچیده است.
Decoder تغییرات منطقی ثبتشده را بر اساس قواعد یک پروتکل تفسیر میکند. برای نمونه، رمزگشای UART میتواند آنها را به بایت یا کاراکتر تبدیل کند.
اما Decoder از تنظیمات برنامه شما خبر ندارد. اگر سرعت ارتباط، تعداد بیتها یا سایر پارامترها اشتباه وارد شوند، ممکن است داده نامفهوم یا خطا نمایش داده شود؛ حتی وقتی سیگنال اصلی درست ارسال شده است.
لاجیک آنالایزرها از نظر شکل دستگاه و امکانات یکسان نیستند. برای انتخاب، بهتر است ابتدا کاربرد را مشخص کنید و سپس به سراغ مقایسه مدلها بروید.
این مدلها به رایانه متصل میشوند و نمایش و تحلیل داده در نرمافزار انجام میشود. برای انتخاب آنها، علاوه بر سختافزار، باید کیفیت نرمافزار، پشتیبانی سیستمعامل و امکانات ذخیره و خروجیگرفتن را بررسی کرد.
USB بودن بهتنهایی نشانه ضعیف یا قوی بودن دستگاه نیست. قابلیت واقعی را باید از مشخصات همان مدل و شرایط استفاده فهمید.
بعضی دستگاهها نمایشگر و محیط تحلیل مستقل دارند. در سیستمهای ماژولار نیز میتوان، در محدوده امکانات سازنده، پیکربندی دستگاه را متناسب با نیاز تغییر داد.
ارزش این امکانات به پروژه بستگی دارد. تعداد کانال یا امکانات بیشتر، وقتی استفادهای از آنها ندارید، لزوماً انتخاب بهتری نمیسازد.
اسیلوسکوپ MSO ورودیهای آنالوگ و دیجیتال را کنار هم در اختیار کاربر میگذارد. این ترکیب برای مشاهده همزمان شکل موج و وضعیت منطقی کاربرد دارد.
بااینحال، امکانات ثبت و تحلیل دیجیتال همه MSOها با یک لاجیک آنالایزر مستقل یکسان نیست. تعداد کانال، حافظه، تریگر، پروب موردنیاز و قابلیتهای نرمافزاری باید برای مدل مشخص بررسی شوند.
پیش از خرید، این سؤالها را پاسخ دهید:
عبارتهایی مانند «۸ کاناله» بهتنهایی پاسخ این سؤالها را نمیدهند.
لاجیک آنالایزر به شما کمک میکند وضعیت خطوط، ترتیب رویدادها و دادههای منتقلشده را بررسی کنید. اما ممکن است سؤال شما درباره خود شکل موج باشد: آیا لبه سیگنال کند شده؟ آیا روی خط نویز یا نوسان وجود دارد؟ آیا دامنه ولتاژ مناسب است؟
برای دیدن این جزئیات، بررسی با اسیلوسکوپ و پروب مناسب مطرح میشود. حتی رمزگشایی صحیح داده هم بهتنهایی ثابت نمیکند که کیفیت الکتریکی سیگنال در همه شرایط مناسب است.
برای شناخت دقیقتر کاربردهای این دو ابزار و انتخاب متناسب با نیاز، میتوانید مقایسه اسیلوسکوپ و لاجیک آنالایزر را بخوانید.
برای نخستین تجربه، بهتر است سراغ ارتباطی بروید که داده ارسالی و تنظیمات آن را میدانید. در این تمرین آموزشی، فرض میکنیم یک برد کمولتاژ، حرف انگلیسی U را بهصورت دورهای از خروجی UART ارسال میکند.
تنظیمات فرضی ارتباط عبارتاند از:
| پارامتر | مقدار در این تمرین |
|---|---|
| سرعت ارتباط | ۹۶۰۰ بیتبرثانیه |
| تعداد بیت داده | ۸ بیت |
| بیت توازن یا Parity | ندارد |
| بیت توقف | ۱ بیت |
| داده ارسالی | کاراکتر U |
این مقادیر، تنظیمات انتخابشده برای توضیح تمرین هستند؛ نتیجه اندازهگیری روی یک دستگاه مشخص نیستند. میتوانید تمرین را با تنظیمات دیگری انجام دهید، به شرط آنکه فرستنده و Decoder را مطابق همان شرایط تنظیم کنید.
اگر سختافزار شما در فهرست دستگاههای پشتیبانیشده sigrok قرار داشته باشد، PulseView یکی از گزینههای انجام این تمرین است. در غیر این صورت، از نرمافزار مورد تأیید سازنده استفاده کنید. سازگاری را از روی نام کلی «لاجیک آنالایزر USB» فرض نکنید.
در یک مدار کمولتاژ با شرایط اتصال تأییدشده، کانال اندازهگیری به خط TX فرستنده و اتصال مرجع مطابق راهنمای دستگاه برقرار میشود. برای مشاهده مسیر برگشت ارتباط نیز میتوان از کانال جداگانه استفاده کرد.
دستگاه را در نرمافزار انتخاب و کانال متصل به TX را فعال کنید. نامگذاری کانال، مثلاً «TX برد»، احتمال اشتباه در مراحل بعد را کمتر میکند.
نرخ نمونهبرداری و مدت ثبت را متناسب با توان دستگاه و سرعت این تمرین انتخاب کنید. اگر دستگاه آستانه قابلتنظیم دارد، آن را مطابق مشخصات ورودی و سطح منطقی مدار تنظیم کنید.
ثبت را پیش از ارسال پیام آغاز کنید یا پیام را با فاصله تکرار کنید تا چند نمونه در بازه ثبت قرار بگیرد. سپس روی بخشی از نمودار که تغییر وضعیت دارد، بزرگنمایی کنید.
در این مرحله هنوز لازم نیست حرف U دیده شود. ابتدا بررسی کنید که سیگنال روی کانال درست ثبت شده و بازه ارسال در تصویر وجود دارد.
رمزگشای UART را اضافه کنید و کانال ورودی آن را روی خط ثبتشده قرار دهید. نام این Decoder در بعضی نرمافزارها «Async Serial» است.
پارامترهای آن را مطابق جدول تمرین تنظیم کنید. در صورت درستبودن اتصال، ثبت و تنظیمات تحلیل، انتظار داریم داده ارسالشده به شکل کاراکتر U یا معادل هگزادسیمال آن، یعنی 0x55، نمایش داده شود.
حرف U برای این تمرین انتخاب مناسبی است، چون نمایش دودویی آن الگوی متناوب صفر و یک دارد. در ارسال متداول UART با بیت کمارزشتر در ابتدا، بیتهای داده به ترتیب 1, 0, 1, 0, 1, 0, 1, 0 منتقل میشوند. این الگو کمک میکند تغییر وضعیتها را راحتتر دنبال کنید.
برای یک بررسی ساده زمانبندی نیز میتوان از سرعت تعریفشده تمرین استفاده کرد: در ارتباط ۹۶۰۰ بیتبرثانیه، زمان نظری هر بیت از تقسیم یک ثانیه بر ۹۶۰۰ به دست میآید و حدود ۱۰۴ میکروثانیه است. این عدد، مقدار محاسباتی تمرین است؛ اندازهگیری روی نمودار به دقت ثبت دستگاه هم وابسته است.
پس از مشاهده خروجی مورد انتظار، فقط سرعت Decoder را تغییر دهید و داده ثبتشده را دوباره تحلیل کنید. تنظیم فرستنده را دست نزنید.
ممکن است حروف دیگری، داده نامفهوم یا خطای فریم ببینید. نوع نتیجه به داده و تنظیمات انتخابی بستگی دارد؛ نمایش خطا در همه حالتها الزامی نیست.
حالا سرعت Decoder را به مقدار صحیح برگردانید. این تمرین نشان میدهد که داده نامفهوم همیشه نشانه خرابی مدار نیست؛ گاهی روش تفسیر داده اشتباه است.
اگر نرمافزار اجازه میدهد، فایل ثبت خام را همراه با یادداشت تنظیمات ذخیره کنید. اسکرینشات برای نمایش نتیجه مفید است، اما فایل خام امکان بررسی دوباره کانالها و تنظیمات تحلیل را فراهم میکند.
وقتی نتیجه با انتظار شما فرق دارد، بهتر است هر بار یک عامل را بررسی کنید. تغییر همزمان چند تنظیم، فهمیدن علت مشکل را دشوار میکند.
| نشانه | علتهای احتمالی | بررسی بعدی |
|---|---|---|
| هیچ تغییری روی نمودار دیده نمیشود | کانال اشتباه، ارسالنشدن داده یا ثبت در زمان نامناسب | محل اتصال و زمان ارسال را بررسی کنید |
| سیگنال دیده میشود، اما متن نامفهوم است | تنظیم نامناسب سرعت، قالب داده یا وارونگی | تنظیمات Decoder را با فرستنده تطبیق دهید |
| خطای فریم یا توازن نمایش داده میشود | پارامترهای نامناسب، ثبت ناکافی یا اشکال سیگنال | ابتدا قالب ارتباط و کیفیت ثبت را بررسی کنید |
| بعضی پیامها در فایل نیستند | بازه ثبت کوتاه، تریگر نامناسب یا محدودیت دستگاه | مدت ثبت و شرایط شروع آن را بررسی کنید |
| داده رمزگشایی میشود، اما مدار همچنان درست کار نمیکند | اشکال در محتوای فرمان، ترتیب عملیات یا کیفیت الکتریکی | داده را با رفتار مورد انتظار و مشخصات قطعه مقایسه کنید |
هیچکدام از این نشانهها بهتنهایی برای اعلام خرابی یک قطعه کافی نیستند. لاجیک آنالایزر شواهد بیشتری در اختیار شما میگذارد؛ تفسیر آنها همچنان به شناخت مدار و پروتکل نیاز دارد.
خروجی دیجیتال آن وضعیت منطقی را نشان میدهد، نه مقدار دقیق ولتاژ. برای مشاهده دامنه باید از ابزار مناسب یا قابلیت آنالوگ دستگاهی استفاده کنید که چنین امکانی دارد.
برای بعضی بررسیهای داده و زمانبندی میتواند ابزار موردنیاز شما باشد، اما جای مشاهده جزئیات شکل موج را نمیگیرد. انتخاب به نوع سؤال و مشخصات دستگاه بستگی دارد.
ممکن است تعداد کانال آن برای خطوط موردنظر کافی باشد، اما باید سطح ولتاژ، سرعت ثبت، نرمافزار و پشتیبانی پروتکل را هم بررسی کنید. تعداد کانال، تنها معیار انتخاب نیست.
خیر. پشتیبانی به مدل دستگاه، درایور و نسخه نرمافزار بستگی دارد. پیش از انتخاب نرمافزار یا خرید دستگاه، سازگاری همان مدل را بررسی کنید.
خیر. رمزگشایی صحیح نشان میدهد داده ثبتشده با تنظیمات فعلی قابلتفسیر بوده است. این نتیجه بهتنهایی کیفیت الکتریکی سیگنال یا عملکرد درست تمام بخشهای مدار را تأیید نمیکند.
سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.