در بسیاری از پروژههای مبتنی بر میکروکنترلر، نیاز داریم تا بین برد و کامپیوتر ارتباط برقرار کنیم؛ خواه برای مشاهده پیامهای اشکالزدایی (Debug)، یا برای تبادل داده با نرمافزارهای دیگر. سادهترین و متداولترین روش برای این ارتباط، استفاده از پورت سریال (Serial Port) است.
اکثر بردهای توسعه مانند Nucleo دارای مبدل داخلی USB به UART هستند که به شما اجازه میدهد دادههای سریال را از طریق کابل USB مستقیماً به کامپیوتر منتقل کنید. در سمت کامپیوتر نیز برای مشاهده یا ارسال دادههای سریال، به یک برنامهی شبیهساز ترمینال نیاز دارید.
در این قسمت از آموزش امبدد C، گامبهگام نحوهی برقراری این ارتباط را روی سیستمعاملهای ویندوز، لینوکس و macOS بررسی میکنیم تا بتوانید بهراحتی پیامهایی مانند «Hello world» را از برد خود دریافت کنید.
حالا برنامهای داریم که پیام «Hello world» را روی خط سریال ارسال میکند. خط سریال به مبدل USB به سریال روی برد میکروی شما متصل است که این مبدل هم از طریق کابل USB به کامپیوتر متصل میشود. برای مشاهده پیام ارسال شده به کامپیوتر از طریق پورت سریال، نیاز به یک برنامهی شبیهساز ترمینال روی کامپیوتر خود دارید. شکل ۹-۳ این برنامه را نشان میدهد.
ارتباطات سریال
هر سیستمعامل برنامه شبیهساز ترمینال متفاوتی دارد و در برخی موارد، بیش از یک برنامه برای هر سیستمعامل وجود دارد. برنامههایی که در اینجا ذکر شدهاند، رایج، رایگان و آسان برای استفاده هستند.
روی ویندوز، از برنامه PuTTY استفاده خواهیم کرد. آن را از PuTTY: putty.org دانلود و روی سیستم خود نصب کنید، گزینههای پیشفرض را برای تمام موارد انتخاب کرده و سپس این مراحل را دنبال کنید:
مطمئن شوید که برد Nucleo به کامپیوتر وصل نیست. کنترل پنل را در ویندوز بازکرده و به صفحهی Device Manager (شکل ۹-۴) بروید. هیچ دستگاه سریالی و در نتیجه، هیچ بخشی با نام Ports در لیست نمایشدادهشده وجود ندارد.
دستگاه سریال نصب نشده است
برد Nucleo را وصل کنید. لیست دستگاهها همانطور که در شکل ۹-۵ نشاندادهشده است، تغییر خواهد کرد:
دستگاه سریال USB جدید
الان باید یک دستگاه سریال USB جدید (USB serial device) به نام COM3 ببینید. (ویندوز سیستمی برای اختصاصدادن شماره به پورتهای COM مربوط به دستگاههای سریال دارد، اما کسی نمیداند این سیستم چطور کار میکند. ممکن است روی دستگاه خود پورت COM با شمارهی متفاوتی ببینید.)
PuTTY را اجرا کنید. در پنجره اصلی، همانطور که در شکل ۹-۶ نشاندادهشده است، گزینهی سریال را انتخاب کنید. زیر Serial Line، پورت COM جدیدی را که بهتازگی در Device Manager پیدا کردهاید، انتخاب کنید. سرعت باید بهصورت پیشفرض روی ۹۶۰۰ تنظیم شود.
راهاندازی PuTTY
روی Open کلیک کنید. یک پنجره ترمینال باید ظاهر شود و دستگاه شروع به خوشامدگویی به شما کند.
در سیستمعاملهای مبتنی بر یونیکس مانند لینوکس و macOS، برنامه screen بهخوبی کار میکند. (برنامه minicom نیز همین کار را انجام میدهد.) برای استفاده از screen، باید نام دستگاه سریال را بدانید که در سیستمعاملهای مختلف متفاوت است.
در لینوکس، دستگاه بهاحتمال زیاد /dev/ttyACM0 است، البته اگر دستگاههای سریال دیگری متصل کردهاید، ممکن است /dev/ttyACM1، /dev/ttyACM2، dev/ttyUSB0 یا نامهای دیگری باشد. در macOS، نام دستگاه احتمالاً /dev/tty.usbmodem001 است، اما ممکن است /dev/tty.usbmodem002، /dev/tty.usbmodem003 یا چیزی شبیه به اینها باشد.
برای پیداکردن نام دستگاه، اول مطمئن شوید که برد Nucleo به کامپیوتر شما وصل نیست، سپس یکی از دستورات زیر را در ترمینال اجرا کنید:
1 2 3 | $ ls /dev/ttyACM* (Linux) یا ls /dev/ttyUSB* $ ls /dev/tty.usbmodem* (macOS) |
دستگاه را وصل کنید و دوباره همان دستور را اجرا کنید. باید یک دستگاه دیگر در لیست ببینید. از نام آن دستگاه استفاده کنید. حالا دستور زیر را اجرا کنید:
1 | $ screen /dev/ttyACM0 9600 |
باید عبارت «Hello world» را مشاهده کنید. برای خروج از برنامه، کلیدهای CTRL-A-\ را فشار دهید.
نویسنده شو !
سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.