Glasgow Interface Explorer چیست؟
Glasgow ابزاری برای کار با رابطهای دیجیتال در آزمایشگاه سختافزار است. به جای محدود شدن به یک مبدل ثابت، از منطق قابل پیکربندی و نرمافزار مرتبط استفاده میکند تا بتواند نقشهای متفاوتی در ارتباط با قطعات داشته باشد. برای توسعهدهنده سیستم نهفته، پژوهشگر یا کسی که دستگاه قدیمی متعلق به خود را بررسی میکند، این انعطاف میتواند مفید باشد. با این حال، انعطاف ابزار جای شناخت مدار را نمیگیرد. پیش از اتصال باید بدانید سیگنالها چه هستند، سطح منطقی چیست و کدام سمت قرار است خط را هدایت کند. اتصال بدون این شناخت میتواند هم نتیجه اشتباه بسازد و هم به سختافزار آسیب بزند.
این ابزار را نباید «دستگاهی که هر پروتکلی را خودکار میفهمد» تصور کرد. بعضی کارها با applet آماده انجام میشوند و بعضی نیاز به توسعه یا تنظیم دقیق دارند. همچنین قابلیتها به نسخه سختافزار و نرمافزار وابستهاند. مستندات پروژه میان بازبینیهای برد تفاوت قائل میشود و بعضی قابلیتهای معرفیشده فقط به نسخه مشخص مربوطاند. بنابراین پیش از برنامهریزی خرید یا آزمایش، شماره بازبینی برد و نسخه نرمافزار را ثبت کنید. دیدن نام یک قابلیت در صفحه پروژه، بدون خواندن شرط نسخه، برای اطمینان از وجود آن روی دستگاه شما کافی نیست.
FPGA و applet چه نقشی دارند؟
FPGA اجازه میدهد بخشی از منطق رابط با نیاز کار هماهنگ شود. در Glasgow، applet معمولاً مجموعهای از منطق سمت سختافزار و کد سمت رایانه است که یک وظیفه مشخص را اجرا میکند. کاربر برای استفاده از applet آماده الزاماً نیاز ندارد از ابتدا طراحی منطقی انجام دهد، ولی باید ورودیها، خروجیها و محدودیت آن را بفهمد. اگر نیاز شما خارج از رفتار آماده باشد، توسعه سفارشی به دانش بیشتری نیاز دارد. این تفاوت را هنگام انتخاب ابزار در نظر بگیرید: «قابل توسعه بودن» با «آماده بودن برای هر نیاز» یکسان نیست.
برای یک آزمایش ساده، بهتر است تنها یک applet و یک قطعه هدف انتخاب شود. ابتدا رفتار همان ترکیب را بشناسید و سپس به سراغ خودکارسازی چند مرحله بروید. مثلاً ارتباط سریال با یک برد آموزشی، مسئله محدودتری از تحلیل یک دستگاه ناشناخته با چند گذرگاه همزمان است. در پروژه تیمی نیز برای هر applet مورد استفاده توضیح دهید چه کاری انجام میدهد و چه چیزی را تضمین نمیکند. این مستندسازی مانع میشود همکار بعدی یک ابزار خواندن را با ابزار تحلیل کامل پروتکل اشتباه بگیرد یا تصور کند خروجی آن بدون بررسی معتبر است.
شناخت مدار پیش از اتصال
از نقشه یا مستندات برد هدف شروع کنید. پایه زمین، تغذیه و خطوط داده را مشخص کنید و جهت اتصال را بنویسید. رنگ سیمها به تنهایی مرجع قابل اعتماد نیست؛ یک کابل ممکن است در دو سمت ترتیب متفاوتی داشته باشد. اگر مدار مستند نیست، نخست با روشهای اندازهگیری مناسب و در محدوده مجاز، اطلاعات پایه را به دست آورید. ابزار منطقی جای اندازهگیری ولتاژ و بررسی وضعیت تغذیه را نمیگیرد. همچنین سطح منطقی اسمی با حداکثر قابل تحمل ورودی یکی نیست. مشخصات هر دو طرف باید با هم سازگار باشند.
هنگام اتصال به هدفی که خودش تغذیه دارد، مسئله تغذیه از دو مسیر را بررسی کنید. نباید خروجی تغذیه ابزار را صرفاً چون پین موجود است به مدار وصل کرد. گاهی فقط زمین مشترک و خطوط سیگنال لازماند و گاهی رابط دیگری نیاز است. این تصمیم باید از مدار واقعی و راهنمای سختافزار بیاید. برای نخستین آزمایش از برد آموزشی کمهزینه متعلق به خودتان استفاده کنید. کار روی حافظه یا برد اصلی یک دستگاه ارزشمند، بدون تمرین و نسخه پشتیبان، نقطه شروع مناسبی برای یادگیری رفتار یک رابط تازه نیست.
نصب، شناسایی دستگاه و حالت امن
نرمافزار را از مسیر رسمی مطابق سیستمعامل نصب کنید و نسخه را بررسی کنید. در مستندات Glasgow، راهنمای فرمان در سطحهای مختلف اطلاعات متفاوتی ارائه میکند؛ گزینه عمومی، گزینه اجرای applet و گزینه خود applet ممکن است در جای متفاوت فرمان قرار بگیرند. بنابراین وقتی پارامتری شناخته نمیشود، ابتدا راهنمای همان سطح را بخوانید. این خطا لزوماً به معنی ناسازگاری دستگاه نیست. نگهداری فرمان نهایی همراه نسخه ابزار، بازسازی آزمایش را آسانتر میکند و از وابسته شدن کار به حافظه فرد جلوگیری میکند.
فرمان safe برای بازگرداندن ورودیوخروجیها به وضعیت امن تعریف شده است. وجود چنین فرمانی مفید است، اما نباید آن را جایگزین شناخت سیمکشی و محدودههای الکتریکی دانست. پیش از آغاز، رفتار آن را روی دستگاه بدون هدف حساس آزمایش کنید تا بدانید چه خروجیای نشاندهنده موفقیت است. اگر دستگاه شناسایی نمیشود، کابل داده و وضعیت USB را بررسی کنید؛ کابل صرفاً شارژ یکی از علتهای ساده و رایج است. پس از رفع ارتباط رایانه و ابزار، سراغ اتصال هدف بروید تا دو مسئله مستقل با هم مخلوط نشوند.
اولین تمرین با ارتباط سریال
برای تمرین UART، یک برد آموزشی انتخاب کنید که خودش پیام مشخص و غیرحساس تولید میکند. تنظیم ارتباط و سطح منطقی را از برنامه و مستندات همان برد بدانید. ابتدا فقط دریافت را بررسی کنید و مطمئن شوید متن مورد انتظار بدون تغییر دیده میشود. سپس اگر نیاز دارید ارسال را اضافه کنید. این ترتیب کمک میکند مشکل دریافت و ارسال جدا تشخیص داده شود. اتصال فرستنده و گیرنده باید با جهت واقعی سیگنال هماهنگ باشد؛ تشابه نام پایهها نباید باعث شود دو خروجی مقابل هم قرار گیرند.
اگر خروجی ناخواناست، نرخ ارتباط، قالب فریم، زمین مشترک و سطح منطقی را بررسی کنید. اگر هیچ دادهای دیده نمیشود، ممکن است هدف در آن لحظه چیزی ارسال نکند یا پایه انتخابشده مربوط به رابط دیگری باشد. پیش از تغییر تصادفی تنظیمات، یک پیام شناختهشده را در زمان معلوم تولید کنید. نتیجه آزمایش باید قابل تکرار باشد: بعد از قطع و وصل مجدد، با همان مراحل به همان پیام برسید. این تکرارپذیری از یک بار دیدن چند نویسه خوانا ارزش بیشتری دارد و پایه ساخت ابزار خودکار خواهد بود.
کار با I2C و SPI
در رابطهایی مانند I2C و SPI، نقشها و زمانبندی اهمیت بیشتری پیدا میکنند. ابزار ممکن است در نقش کنترلکننده تراکنش ایجاد کند یا در نقش تحلیلگر داده را مشاهده کند؛ این دو رفتار از نظر اثر روی هدف یکسان نیستند. پیش از اجرا مشخص کنید کدام نقش لازم است. اگر فقط میخواهید ارتباط موجود را ببینید، شروع تراکنش اضافی میتواند رفتار سیستم را تغییر دهد. در I2C، نشانی و شرایط الکتریکی گذرگاه مهماند؛ در SPI، انتخاب تراشه و تنظیم ساعت باید با قطعه هدف هماهنگ باشد. نام مشترک پروتکل، همه این جزئیات را تعیین نمیکند.
برای شروع، یک قطعه با دیتاشیت روشن و شناسه قابل خواندن انتخاب کنید. ابتدا همان شناسه یا رجیستر بیخطر را بخوانید و با مستندات تطبیق دهید. اگر مقدار همیشه صفر یا همیشه یک است، آن را فوراً داده معتبر ندانید؛ ممکن است خط رها شده، انتخاب تراشه اشتباه یا ارتباط قطع باشد. با تغییر کنترلشده یک وضعیت در نمونه آموزشی، بررسی کنید خروجی متناسب تغییر میکند. هر فرمان نوشتن باید جداگانه فهمیده شود، زیرا ممکن است تنظیمی پایدار را تغییر دهد. آزمایش خواندن موفق مجوز منطقی برای نوشتن بیبررسی نیست.
خواندن حافظه و اهمیت اعتبارسنجی
در کار روی حافظه متعلق به خود، نخست هدف را مشخص کنید: تهیه نسخه پشتیبان، بررسی ساختار یا مقایسه دو نسخه. خواندن یک فایل خروجی به تنهایی ثابت نمیکند تمام داده درست دریافت شده است. اندازه مورد انتظار، چند خواندن مستقل و مقایسه نتیجه میتوانند در اعتبارسنجی کمک کنند. اگر دو خواندن بدون تغییر هدف اختلاف دارند، باید پیش از هر تحلیل بعدی علت را پیدا کنید. ارتباط ناپایدار، تغذیه نامناسب یا تنظیم اشتباه میتواند فایلهایی تولید کند که ظاهراً کاملاند ولی محتوای قابل اعتماد ندارند.
اصل داده را جدا نگه دارید و روی کپی تحلیل کنید. نام فایل بهتر است شامل شناسه هدف و زمان آزمایش باشد و روش خواندن در یادداشت کناری ثبت شود. برای دادهای که ممکن است ارزش بازیابی داشته باشد، هر نوشتن یا پاک کردن باید خارج از مرحله جمعآوری اولیه و با برنامه مشخص انجام شود. حتی اگر ابزار فرمان مربوط را آسان ارائه کند، پیامد آن روی دستگاه ممکن است پیچیده باشد. این جداسازی میان جمعآوری، تحلیل و تغییر، احتمال از دست رفتن اطلاعات را کم میکند و برای مستندسازی حرفهای ضروری است.
مشاهده غیرفعال با کنترل فعال فرق دارد
یکی از مهمترین تصمیمها در آزمایش رابط، این است که ابزار فقط شنونده باشد یا روی خطوط اثر بگذارد. شنونده نیز کاملاً بیاثر نیست؛ بار الکتریکی و سیمکشی میتواند روی سیگنال اثر داشته باشد، بهویژه در سرعت بالا. کنترل فعال علاوه بر این، رفتار پروتکل را تغییر میدهد. برای بررسی یک خطا در محصول، ابتدا لازم است بدانید آیا اتصال ابزار خودش خطا را ایجاد یا پنهان میکند. اگر دستگاه فقط هنگام اتصال ابزار درست کار میکند، این مشاهده ارزش عیبیابی دارد و نباید نادیده گرفته شود.
در گزارش، روش اتصال و طول تقریبی سیمها را ثبت کنید. نتیجهای که با سیم کوتاه روی میز به دست آمده ممکن است با کابل بلند تکرار نشود. همچنین ظرفیت نمونهبرداری، بافر و محدودیت انتقال داده را مطابق قابلیت واقعی نسخه بررسی کنید. ادعای پشتیبانی از یک رابط، به معنی تحلیل کامل آن در هر سرعت و شرایط نیست. برای اندازهگیری دقیق شکل موج یا زمانبندی حساس، ممکن است ابزار تخصصی دیگری لازم باشد. Glasgow میتواند بخشی از میزکار باشد؛ قرار نیست به تنهایی جای همه تجهیزات اندازهگیری را بگیرد.
اسکریپتنویسی و خودکارسازی
وقتی یک آزمایش دستی قابل تکرار شد، میتوان مراحل آن را با رابط برنامهنویسی مناسب خودکار کرد. ابتدا ورودیها و پیششرطها را صریح بنویسید: مدل هدف، ولتاژ انتخابی، applet و نتیجه مورد انتظار. اسکریپت نباید در صورت خطای شناسایی، بیصدا مرحله بعد را اجرا کند. برای نمونه، اگر شناسه قطعه با مقدار مورد انتظار تطبیق ندارد، عملیات بعدی باید متوقف شود. این کنترلها از آن جهت مهماند که ابزار خودکار میتواند اشتباه انسانی را با سرعت و تعداد بیشتری تکرار کند.
خروجی هر اجرا را با نسخه نرمافزار و تنظیمات مرتبط ثبت کنید. اگر پارامتری تغییر کرده، مقایسه نتیجهها باید این تفاوت را در نظر بگیرد. برای آزمونهای تولید یا تعمیر، تنها عبارت «موفق» کافی نیست؛ مقدار مشاهدهشده و معیار پذیرش را نگهدارید. در عین حال، داده غیرضروری یا حساس هدف را بیدلیل ذخیره نکنید. یک اسکریپت خوب باید بتواند در محیط آموزشی با داده ساختگی آزمایش شود و پس از شکست، دستگاه را در وضعیت قابل فهم باقی بگذارد. خاموش شدن فرایند رایانه نباید به معنای نامعلوم ماندن وضعیت خروجیها باشد.
عیبیابی و انتخاب درست ابزار
برای عیبیابی، مسیر را لایهلایه ببینید: ارتباط USB، شناسایی سختافزار، آماده شدن applet، تنظیم پایهها، سیگنال الکتریکی و در نهایت معنای پروتکل. اگر خطا در مرحله ساخت منطق رخ میدهد، تغییر سیمکشی هدف احتمالاً مسئله را حل نمیکند. اگر applet اجرا شده ولی داده نادرست است، بررسی هدف و تنظیمات رابط اهمیت دارد. نگهداری نمونه کوچک با نتیجه معلوم، راهی سریع برای جدا کردن خرابی ابزار از مشکل مدار است. هر بار فقط یک متغیر را تغییر دهید تا نتیجه آزمایش قابل تفسیر بماند.
Glasgow برای کسی مناسب است که از انعطاف رابطها و امکان توسعه بهره میبرد و آماده است منطق آزمایش را بفهمد. اگر نیاز شما فقط یک تبدیل سریال ساده و ثابت است، ابزار سادهتر ممکن است کافی باشد. اگر با رابطهای متنوع، قطعات قدیمی یا آزمایشهای قابل اسکریپت سروکار دارید، انعطاف آن ارزش بیشتری پیدا میکند. تصمیم را با فهرست کارهای واقعی و قابلیت نسخه موجود بگیرید. بهترین نتیجه از ترکیب مستندات دقیق، مدار آموزشی، اندازهگیری و ثبت شواهد به دست میآید؛ نه از اجرای فرمانهای ناشناخته روی دستگاهی که هنوز رابط آن را نمیشناسید.