کنسول سریال چه مسئلهای را حل میکند؟
وقتی یک رایانه تکبردی هنوز شبکه ندارد یا یک برد توسعه پیش از اجرای برنامه اصلی متوقف میشود، رابط سریال میتواند نخستین مسیر مشاهده باشد. کابل کنسول USB به TTL آدافروت با شناسه محصول ۹۵۴، ارتباط رایانه میزبان را به سیگنالهای سریال تبدیل میکند. این کابل یک رایانه کوچک یا تحلیلگر منطقی نیست؛ کار اصلی آن جابهجایی بایتها میان پورت USB و رابط UART دستگاه هدف است. همین کار محدود برای دیدن پیامهای راهاندازی، یافتن مرحله توقف و تعامل با کنسول یک سامانه مجاز بسیار ارزشمند است.
راهنمای حاضر درباره همین محصول مشخص است. بازار کابلهای ظاهراً مشابهی دارد که رنگ سیم، سطح سیگنال یا تراشه داخلی متفاوتی دارند. بنابراین نقشه اتصال را نباید از شباهت ظاهری نتیجه گرفت. مشخصات سازنده باید با نمونه واقعی تطبیق داده شود. مثالهای این نوشته برای برد تحت مالکیت یا مدیریت خودتان طراحی شدهاند و هدف آنها حفظ امکان مشاهده و بازیابی است، نه تغییر عجولانه حافظه یا دور زدن کنترل دسترسی دستگاه.
تفاوت تغذیه و سطح منطقی
در صفحه رسمی محصول، سیم قرمز خروجی تغذیه پنج ولت از USB و سیم مشکی زمین معرفی شده است. سیم سفید ورودی RX به سمت رایانه و سیم سبز خروجی TX از سمت رایانه است. نکته تعیینکننده این است که سطح RX و TX برابر ۳٫۳ ولت معرفی شده، در حالی که سیم تغذیه پنج ولت است. وجود پنج ولت روی یک سیم به معنای مجاز بودن پنج ولت روی پایه دریافت میکروکنترلر نیست. برچسب TTL در نام محصول نیز نباید با رابط الکتریکی RS-232 روی تجهیزات قدیمی اشتباه گرفته شود.
بسیاری از بردهای جدید با ورودی منطقی ۱٫۸ ولت کار میکنند. اتصال مستقیم خروجی سهولت به چنین بردی بدون تأیید تحمل ورودی مناسب نیست و به مبدل سطح نیاز دارد. به همین ترتیب، درگاه DB9 یک دستگاه صنعتی ممکن است سیگنالهای مثبت و منفی RS-232 داشته باشد؛ کابل حاضر جای مبدل آن رابط را نمیگیرد. ابتدا از راهنمای برد، شماتیک یا اندازهگیری معتبر نوع رابط را تعیین کنید. یک سوکت چهارپایه بدون برچسب، صرفاً به دلیل تعداد پایهها، کنسول سازگار محسوب نمیشود.
اتصال اولیه با کمترین تغییر در هدف
برای نخستین مشاهده، دستگاه هدف را با منبع تغذیه معمول خودش روشن کنید و سیم قرمز کابل را متصل نکنید. زمین کابل را به زمین هدف و سیم دریافت کابل را به خروجی ارسال هدف وصل کنید. این آرایش اجازه میدهد پیامهای هدف را ببینید، بدون آنکه رایانه فرمانی به دستگاه بفرستد. وقتی سطح سیگنال و تنظیمات ارتباط روشن شد، میتوان سیم ارسال کابل را به ورودی دریافت هدف افزود. اتصال TX به RX انجام میشود؛ دو خروجی ارسال نباید به یکدیگر بسته شوند.
پیش از جابهجایی سیمها برق را قطع کنید و جهت کانکتور را علامت بزنید. یک عکس از اتصال صحیح در پرونده آزمایش نگه دارید. اگر برد از قبل از USB یا آداپتور تغذیه میشود، افزودن سیم قرمز ممکن است دو منبع را به یکدیگر متصل کند. همچنین جریان ذکرشده برای خروجی کابل به معنی کفایت آن برای همه مدلهای Raspberry Pi و لوازم جانبی نیست. برای بردی که هنگام شروع مصرف بالایی دارد، تغذیه مستقل مناسب و تنها اشتراک زمین و خطوط داده انتخاب روشنتری است.
شناسایی کابل در رایانه
بعد از اتصال USB، نخست بررسی کنید سیستم عامل دستگاه سریال را شناسایی کرده است. نام پورت میان سیستمها متفاوت است و ممکن است با تعویض سوکت USB تغییر کند. به جای حفظ کردن شماره پورت، اتصال و قطع کابل را با فهرست دستگاهها مقایسه کنید. صفحه آدافروت به خانوادههای PL2303 و CP2102 در راهنمای درایور اشاره میکند؛ این اشاره دلیل نمیشود هر نمونه موجود دقیقاً یک تراشه ثابت داشته باشد. شناسه سختافزاری نمونه خود را بررسی و درایور را از مسیر رسمی مربوط به آن تهیه کنید.
در لینوکس، درایورهای رایج این مبدلها معمولاً در هسته وجود دارند، اما مجوز دسترسی کاربر به پورت مسئله جداگانهای است. اگر دستگاه دیده میشود ولی ترمینال اجازه باز کردن آن را ندارد، ابتدا مالکیت و گروه دسترسی را بررسی کنید. اجرای دائمی ابزار ترمینال با دسترسی مدیریتی راه حل مناسبی برای یک مجوز ساده نیست. همچنین دو برنامه نباید همزمان پورت را باز نگه دارند؛ یک محیط توسعه یا پایشگر پسزمینه میتواند عامل پیغام اشغال بودن درگاه باشد.
تنظیمات ترمینال و خواندن اولین پیام
نرخ تبادل، تعداد بیت داده، توازن و بیت توقف باید با هدف یکسان باشد. مقدار رایج هشت بیت داده، بدون توازن و یک بیت توقف است، ولی نرخ تبادل را باید از مستندات همان برد یا تنظیمات برنامه گرفت. از یک مقدار رایج به عنوان حدس قطعی استفاده نکنید. کنترل جریان سختافزاری را برای این کابل چهار سیمه، مگر در یک آرایش تکمیلی مستند، غیرفعال نگه دارید؛ سیمهای لازم برای چنین کنترلی در اختیار نیست.
ترمینال را پیش از روشن کردن هدف باز کنید تا پیامهای نخستین بوت از دست نرود. اگر متن ابتدا خوانا و سپس ناخوانا میشود، ممکن است مرحله بعدی بوت نرخ تبادل را تغییر دهد. اگر همه چیز ناخواناست، علاوه بر نرخ، زمین مشترک و سطح ولتاژ را بررسی کنید. اگر فقط خطوط روی هم میافتند، مشکل ممکن است شیوه نمایش بازگشت خط باشد. تنظیم نمایش ترمینال را از تنظیم فیزیکی UART جدا نگه دارید تا اصلاح ظاهری متن با حل ارتباط اشتباه نشود.
مثال عملی: یافتن مرحله توقف راهاندازی
فرض کنید یک برد آزمایشگاهی پس از تغییر نرمافزار دیگر در شبکه ظاهر نمیشود. اولین کار نصب دوباره سیستم نیست. یک ثبت کامل از بوت تهیه کنید و زمان شروع، مدل برد، نسخه نرمافزار و نوع تغذیه را بنویسید. در گزارش به دنبال آخرین پیام قابل تکرار باشید: آیا راهانداز اولیه اجرا میشود، آیا هسته شروع میشود، آیا سامانه فایل در دسترس است و آیا سرویس شبکه اجرا میشود؟ کابل سریال به شما کمک میکند مسئلهای که ظاهراً «شبکه خراب است» به یک مرحله مشخص محدود شود.
اکنون یک عامل را تغییر دهید. اگر منبع تغذیه مشکوک است، منبع مناسب دیگری را امتحان کنید و دو ثبت را کنار هم بگذارید. اگر بوت به خطای سامانه فایل میرسد، بررسی رسانه ذخیرهسازی منطقیتر از تغییر آدرس شبکه است. اگر ورود به محیط بازیابی لازم شد، ابتدا راهنمای رسمی برد را بخوانید و فرمانهای صرفاً مشاهدهای را اجرا کنید. وجود یک اعلان فرمان به معنای آن نیست که هر دستور شناختهشده در سامانه دیگری روی این دستگاه نیز بیخطر یا معتبر است.
تفاوت مشاهده کنسول با برنامهریزی خودکار
این محصول سیم DTR یا RTS جداگانه برای آغاز توالی خودکار بازنشانی بوتلودر ندارد. سازنده صریحاً آن را برای برنامهریزی خودکار برخی بردهای Arduino که به چنین سیمی نیاز دارند مناسب نمیداند. ممکن است یک برد با فشردن دستی کلید بازنشانی یا ورود به حالت بوت برنامهریزی شود، اما این امکان باید از مستندات همان برد تأیید شود. صرف دیده شدن پورت سریال تضمین نمیکند ابزار بارگذاری بتواند سختافزار را خودکار آماده کند.
همچنین کنسول UART همان رابط JTAG یا SWD نیست. با این کابل معمولاً نمیتوان اجرای پردازنده را در یک نقطه دلخواه متوقف کرد، ثباتها را مستقیم دید یا حافظه را مستقل از نرمافزار هدف خواند. چنین کارهایی به پشتیبانی هدف و پروب مناسب نیاز دارند. نقطه قوت کابل، سادگی و مشاهده پیامهاست. انتخاب آن وقتی صحیح است که پرسش شما درباره ورودی و خروجی سریال، گزارش بوت یا یک پروتکل متنی مستند باشد.
آزمون حلقه محلی و تشخیص محل خرابی
اگر هیچ متنی دریافت نمیشود، میتوان پس از جدا کردن کامل هدف، ارسال و دریافت خود کابل را به یکدیگر متصل و یک آزمون حلقه محلی انجام داد. متن ارسالی باید از مسیر کابل بازگردد. گزینه نمایش محلی ترمینال را خاموش کنید تا نمایش متن تایپشده با دریافت واقعی اشتباه نشود. موفقیت این آزمون مسیر USB، درایور، پورت و بخش اصلی تبدیل سریال را بررسی میکند؛ درباره پایههای برد هدف یا نرخ صحیح آن چیزی ثابت نمیکند.
اگر حلقه محلی موفق است ولی هدف ساکت میماند، ترتیب بررسی را مشخص نگه دارید: روشن بودن هدف، درست بودن زمین، انتخاب پایه ارسال، فعال بودن کنسول در نرمافزار و تنظیم نرخ. بعضی سامانهها روی پورت سریال هیچ پیام پیشفرضی تولید نمیکنند و باید کنسول در تنظیمات بوت فعال شود. در چنین وضعی سکوت کابل الزاماً خرابی نیست. یک مولتیمتر میتواند سطح بیکار خط را نشان دهد، اما برای دیدن زمانبندی بیتها و نویز، ابزار مشاهده سیگنال مناسبتر است.
ثبت شواهد و حفظ اطلاعات حساس
ثبت سریال ممکن است نام کاربر، مسیر فایل، شناسه دستگاه، آدرس شبکه یا حتی اطلاعات محرمانهای را که نرمافزار اشتباه چاپ میکند در خود داشته باشد. فایل خام را در محل کنترلشده نگه دارید و پیش از ارسال عمومی بازبینی کنید. برای گزارش خطا، معمولاً چند خط قبل و بعد از رخداد همراه با نسخه نرمافزار مفیدتر از انتشار بیهدف کل خروجی است. اگر حذف اطلاعات لازم است، نسخه اصلی را حفظ و نسخه پاکسازیشده را جداگانه نامگذاری کنید.
زمانگذاری نیز مهم است. زمان نوشتهشده در پیام هدف ممکن است پیش از همگام شدن ساعت معتبر نباشد. ثبت زمان دریافت در رایانه به مقایسه رخدادها کمک میکند، ولی معادل زمان دقیق اجرای دستور روی پردازنده نیست. برای تحلیل تأخیرهای بسیار کوتاه نباید از فاصله ظاهری خطوط ترمینال نتیجه قطعی گرفت؛ بافرهای نرمافزار و USB میتوانند چند پیام را یکجا تحویل دهند. این محدودیت کابل را بیارزش نمیکند، فقط نوع نتیجهای را که میتوان از آن گرفت مشخص میسازد.
انتخاب درست برای میز کار
برای یک میز توسعه، ارزش این کابل در دسترسی سریع به رابطی است که هنگام خرابی شبکه همچنان قابل استفاده میماند. به همراه آن یک برگه اتصال، یک ترمینال شناختهشده و یک فایل نمونه از بوت سالم نگه دارید. ثبت سالم مرجع مناسبی برای یافتن تفاوتها در خرابی بعدی است. اگر مرتب با اهداف ۱٫۸ ولت، رابط RS-232، بازنشانی خودکار یا چند کانال همزمان کار میکنید، از ابتدا ابزار متناسب با آن نیازها را در نظر بگیرید.
در پایان آزمایش، اتصالها را جدا و تغییرات تنظیمات بوت یا کنسول را مستند کنید. فعال گذاشتن یک کنسول مدیریتی روی محصول نهایی یک تصمیم طراحی جداگانه است و باید مطابق سیاست همان سامانه انجام شود. کابل آدافروت وسیلهای برای مشاهده و تعامل سریال است؛ کیفیت نتیجه بیشتر از تعداد قابلیتهای آن، به شناخت سطح ولتاژ، اتصال صحیح، ثبت کامل بوت و تفسیر محتاطانه پیامها وابسته است.