ترمینال پورت سریال و کار با نرم افزار Hercules

توسط | 9 خرداد, 1399 | AVR, lpc, STM32, آردوینو, میکروکنترلر, وبلاگ | 24 دیدگاه ها

ترمینال-پورت-سریال-آموزش-hercules

آموزش STM32 یوبرد

شروع بازی ST

آموزش های رایگان STM32

فیلم های آموزش STM32

آموزش خصوصی STM32

اخبار جدید یوبرد در اینستاگرام

ترمینال پورت سریال یا ترمینال سریال، به نرم افزارهایی برای کنترل و راه اندازی پورت سریال کامپیوتر گفته می شود. این نرم افزارها با راه اندازی پورت سریال، داده های دریافتی و ارسالی را نمایش نیز می دهند. همچنین دارای تنظیماتی برای تغییر و تعیین مشخصات ارتباط سریال هستند. پورت سریال (پورت COM) در گذشته برای اتصال موس، کیبورد، مودم و … به کامپیوتر کاربرد داشت. امروزه در اغلب لپ تاپ ها پورت سریال وجود ندارد و پورت های USB و اترنت و … جای آن را گرفته اند. اگر چه نوع ارتباط پورت های USB و اترنت نیز سریال است، اما «پورت سریال» به سخت افزار سازگار با استاندارد RS-232 گفته می شود. البته ممکن است «پورت سریال» به سخت افزارهایی با استاندارد RS485 و RS-422 نیز گفته شود. از جمله کانکتورهای پورت سریال می توان به کانکتورهای DB9 و DB25 و همچنین RJ45 و RJ50 و MMJ اشاره کرد.

یکی از ساده ترین و معمول ترین روش های ارتباط کامپیوتر با دستگاه ها و ادوات جانبی نظیر میکروکنترلرها، ماژول های SIM800، بردهای متن باز آردوینو، ماژول های وای فای ESP و بلوتوث و … ارتباط از طریق پورت سریال است. در لپ تاپ ها و کامپیوترهایی که پورت سریال سخت افزاری وجود ندارد، یک پورت Serial مجازی نصب می شود. در این صورت داده های ترمینال پورت سریال به داده هایی قابل ارسال و دریافت توسط پورت USB، پورت اترنت یا … تبدیل می شود. در ادامه پس از آشنایی با پورت Serial مجازی، به معرفی نرم افزارهای ترمینال پورت سریال می پردازیم. در پایان نیز روش کار با ترمینال پورت سریال Hercules را خواهیم دید. در تصویر زیر پورت های سریال کامپیوتر را روی دو کارت سریال مشاهده می کنید.

فیلم آموزش آردوینو مقدماتی

کارت-سریال-پورت-db9-db25

تصویر 1 – کارت سریال کامپیوتر و کانکتورهای DB9 و DB25 روی آنها

پورت سریال مجازی چیست؟

پورت Serial مجازی (Virtual Serial Port) یا پورت COM مجازی یک پورت شبیه سازی شدۀ نرم افزاری برای برقراری ارتباط سریال بین دستگاه های جانبی و کامپیوتر است. کاربرد پورت Serial مجازی، ایجاد امکان برقراری ارتباط سریال دستگاه های جانبی نظیر میکروکنترلرها با کامپیوترها و لپ تاپ هایی است که پورت سریال (COM) سخت افزاری ندارند. و یا تعداد پورت سریال آنها برای پیاده سازی یک پروژه کافی نیست. درایورها و نرم افزارهایی وجود دارند که پورت سریال کامپیوتر را به صورت مجازی شبیه سازی می کنند. با استفاده از شبیه سازی پورت سریال توسط این نرم افزارها، می توان دستگاه های متصل به درگاه هایی مانند USB، اترنت و … را به عنوان یک پورت سریال به کامپیوتر معرفی کرد. در واقع هنگام استفاده از یک شبیه ساز پورت سریال، داده های حاصل از یک نرم افزار یا دستگاه جانبی از داده های سریال به اطلاعاتی تبدیل می شوند که می توانند از طریق درگاه USB، اترنت و … منتقل شوند. به این صورت که داده های سریال از نرم افزار (یا دستگاه) خارج می شوند. سپس توسط پورت Serial مجازی (یا مبدل سخت افزاری) به داده های قابل انتقال از طریق درگاه های دیگر (USB، اترنت و …) تبدیل می شوند. در سمت دیگر، دوباره داده ها توسط یک مبدل سخت افزاری (یا پورت Serial مجازی) به داده های سریال تبدیل می شوند. بنابراین ارتباط با پورت سریال از طریق یک پورت Serial مجازی و یک مبدل سخت افزای شبیه سازی می شود. برای تفهیم بیشتر این موضوع، در ادامه مثالی را ذکر خواهیم کرد.

عملکرد-پورت-سریال-مجازی

تصویر 2 – عملکرد پورت Serial مجازی و مبدل سخت افزاری USB به سریال

نکته: این که «پورت مجازی چیست؟» مبحث دیگری است و بحث ما در این بخش پورت Serial مجازی است.

نکته: ترمینال پورت سریال با پورت Serial مجازی متفاوت است. تفاوت آنها از تعریفشان مشخص است.

مثالی از عملکرد پورت سریال مجازی

فرض کنید یک ارتباط سریال بین کامپیوتر و یک میکروکنترلر AVR با استفاده از یک مبدل USB به سریال CP2102 برقرار باشد. همچنین داده ها در کامپیوتر با استفاده از نرم افزار Hercules، ارسال و دریافت می شوند. پیش تر نصب درایور CP2102 باعث ایجاد یک پورت Serial مجازی شده است. اتصال مبدل CP2102 به کامپیوتر به همراه این پورت Serial مجازی نیز در مجموع یک پورت سریال را شبیه سازی می کنند. داده ها بین میکروکنترلر و ترمینال پورت سریال نرم افزار Hercules مبادله می شوند. در این میان داده ها توسط پورت Serial مجازی و همچنین مبدل CP2102 از سریال به دادۀ قابل انتقال توسط درگاه USB و بالعکس تبدیل می شوند. به این صورت که پورت Serial مجازی دادۀ سریال دریافتی از نرم افزار Hercules را به دادۀ قابل ارسال توسط درگاه USB و دادۀ دریافتی از درگاه USB را به دادۀ سریال ارسالی به نرم افزار Hercules تبدیل می کند. همچنین مبدل USB به سریال CP2102 دادۀ دریافتی از درگاه USB را به دادۀ سریال ارسالی به میکروکنترلر و دادۀ دریافتی از میکروکنترلر را به دادۀ قابل ارسال توسط درگاه USB تبدیل می کند. بدین شکل در راه اندازی USART در AVR و تبادل داده بین آن و کامپیوتر از دو مبدل USB به سریال سخت افزاری و نرم افزاری استفاده می شود.

عملکرد-پورت-سریال-مجازی-hercules

تصویر 3 – عملکرد پورت Serial مجازی، نرم افزار Hercules، مبدل USB به سریال و پورت سریال AVR

معرفی نرم افزارهای ترمینال پورت سریال

تعداد زیادی نرم افزار ترمینال پورت Serial وجود دارد. در این بخش به معرفی چند نرم افزار پورت سریال می پردازیم. این نرم افزارها هم در IDEها و هم به صورت جداگانه وجود دارند. نرم افزار کدویژن، اتمل استودیو و نرم افزار Arduino هر کدام دارای یک ترمینال پورت سریال هستند.

  • ترمینال سریال Termite: این نرم افزار ساده دارای یک تکست باکس برای نوشتن متن ارسالی و یک نمایشگر برای نشان دادن متن دریافتی است. برخی قابلیت های نرم افزار رایگان Termite عبارتند از: قابلیت Autocomplete در تکست باکس ارسال، قابلیت ذخیره کردن متن دریافتی در فرمت های متنی نظیر txt، وجود نسخۀ پرتابل و نصبی، قابلیت کنترل و مانیتور خطوط مودم، پشتیبانی از Baud Rateهای غیر استاندارد، قابلیت فوروارد کردن داده بین دو پورت سریال و … .

ترمینال-پورت-سریال-termite

تصویر 4 – محیط نرم افزار ترمینال سریال Termite

  • نرم افزار Hercules: این نرم افزار علاوه بر این که ترمینال پورت سریال است، قابلیت های دیگری نیز دارد. در ادامه روش کار با آن را توضیح خواهیم داد. برای آشنایی بیشتر با این نرم افزار به نوشتۀ «نرم افزار Hercules» مراجعه نمایید.
  • نرم افزار Serial Port Terminal از Eltima Software: ترمینال پورت سریال پیشرفتۀ Serial Port Terminal یک نرم افزار چند وظیفه ای Session Based است. که با استفاده از آن می توان به هر پورت سریال متصل شد و به آزمایش، عیب یابی یا دیباگ دستگاه متصل به پورت سریال پرداخت. با استفاده از این نرم افزار می توان داده ها را در فرمت های ASCII، باینری، اوکتال و هگزادسیمال انتقال داد. این نرم افزار تنها برای 14 روز رایگان است.

محیط-ترمینال-پورت-سریال-eltima

تصویر 5 – محیط نرم افزار Eltima Serial Port Terminal

  • از جمله ترمینال های پورت سریال دیگر می توان نرم افزارهای Realterm و Free Serial Port Terminal و Hyper Serial Port و Denkovi BCB Com Port Tool و Terminal و HyperTerminal و Tera Term و YAT و CoolTerm و ZTerm و … را نام برد.

ترمینال پورت سریال در محیط IDEهای کدویژن، اتمل استودیو و Arduino

در نرم افزار CodeVisionAVR باید ابتدا از منوی Settings روی Terminal Settings کلیک کرد. در پنجرۀ باز شده می توان تنظیمات ارتباط سریال را انجام داد. سپس از منوی Tools باید روی Terminal کلیک کرد. در این صورت پنجرۀ ترمینال پورت سریال در CodeVisionAVR باز می شود که می توان در آن نوشت و داده های ارسالی و دریافتی را مشاهده نمود. در نرم افزار Arduino باید ابتدا در منوی Tools پورت COM مورد نظر را در Port انتخاب کرد. سپس در همین منو روی Serial Monitor کلیک کرد. در این صورت پنجرۀ ترمینال پورت سریال در Arduino باز می شود که در تکست باکس بالای آن می توان نوشت. داده های ارسالی و دریافتی را می توان در محیط نمایشگر این پنجره مشاهده نمود. در نرم افزار اتمل استودیو باید ابتدا فایل terminal_for_atmel_studio.2.8.4.vsix (در پیوست) را باز کرد. سپس از منوی Tools روی Extension and Updates کلیک کرد. در قسمت Online باید Terminal for Atmel Studio را نصب کرد. برای اجرای ترمینال پورت سریال در Atmel Studio از منوی View روی Terminal Window کلیک می کنیم. ترمینال سریال نرم افزار اتمل استودیو را در تصویر زیر می بینید.

ترمینال-پورت-سریال-atmel-studio

تصویر 6 – پنجرۀ ترمینال در Atmel Studio

نکته: ترمینال های پورت سریال در Keil مانند ترمینال های کدویژن، Arduino و اتمل استودیو نیست. در نرم افزار Keil این ترمینال ها برای مانیتور کردن ارتباطات سریال میکروکنترلر حین دیباگ یا شبیه سازی است.

ارتباط کامپیوتر با پورت سریال میکروکنترلرها و دیگر ماژول ها

منظور از پورت سریال میکروکنترلرها همان پروتکل ارتباطی USART یا UART آنها است. برای ارتباط با پورت سریال و ارسال و دریافت اطلاعات از پورت سریال میکروکنترلرها و ماژول های دارای پروتکل USART توسط کامپیوتر، لازم است از یک مبدل استفاده شود. در لپ تاپ ها و کامپیوترهایی که پورت سریال سخت افزاری دارند، باید از مبدل RS-232 به TTL استفاده شود. چرا که سطوح ولتاژی در استاندارد RS-232 با USART میکروکنترلرها و ماژول ها متفاوت است. در استاندارد RS-232 ولتاژ سطح High (1 یا Mark) بین 3- تا 25- ولت است. ولتاژ سطح Low (صفر یا Space) نیز بین 3 تا 25 ولت است. بنابراین لازم است از مبدل هایی مانند MAX232 استفاده شود. برای ارتباط سریال بین کامپیوتر و لپ تاپ های بدون پورت سریال سخت افزاری مبدل های دیگری استفاده می شود. همان طور که گفته شد، در این لپ تاپ ها و کامپیوترها باید از پورت Serial مجازی استفاده کرد. مبدل های USB به سریال (یا USB به UART) فراوانی برای این کار وجود دارد. مبدل های CP2102 و CH330N و CH340N نمونه ای از مبدل های USB به سریال هستند. در استفاده از این مبدل ها باید به سطوح ولتاژ ارتباط سریال در میکروکنترلرها و ماژول ها دقت شود. برای مثال سطوح ولتاژ Low و High در UART ماژول SIM800 برابر صفر و 2.8 ولت است. سطوح ولتاژ Low و High مبدل USB به سریال CP2102 نیز برابر صفر و 5 ولت است. بنابراین باید به روشی این سطوح همسان شوند. در تصویر زیر آی سی مبدل CP2102 را روی بردهای توسعۀ میکروکنترلر یوبرد مشاهده می کنید.

نکته: در میکروکنترلرها ارتباطات SPI و I2C و … نیز از نوع سریال هستند. ولی کلمۀ سریال در مبحث میکروکنترلرها بیانگر ارتباط USART یا UART آنهاست.

cp2102-برد-توسعه-میکروکنترلر-یوبرد

تصویر 7 – آی سی CP2102 متصل به پورت سریال AVR، پورت سریال STM32 و پورت سریال LPC1768

ترمینال پورت سریال در پروتئوس

ترمینال سریال در نرم افزار پروتئوس با نام Virtual Terminal در بخش Instruments قرار دارد. هنگام اجرای شبیه سازی با استفاده از این ترمینال می توان در محیط آن داده ها را ارسال کرد و داده های دریافتی را مشاهده نمود. در اینجا می توان این ترمینال را شبیه یک ترمینال واقعی در یک کامپیوتر در نظر گرفت. ویژگی های این ترمینال را می توان به موارد زیر خلاصه کرد:

  • امکان تغییر تنظیمات همانند یک ترمینال پورت سریال واقعی در Properties؛
  • امکان کپی کردن متن از محیط آن و همچنین Paste کردن متن در محیط آن؛
  • امکان نمایش داده ها به صورت هگزادسیمال؛
  • امکان تغییر فونت داده ها در محیط آن.

ترمینال سریال پروتئوس را می توان با استفاده از قطعۀ COMPIM به پورت سریال سخت افزاری یا پورت Serial مجازی کامپیوتر متصل کرد. با استفاده از این ویژگی می توان این ترمینال را همانند دیگر ترمینال های نام برده به کار گرفت و به سریال مانیتور در پروتئوس پرداخت. همچنین می توان دستگاه یا ماژول متصل شده به کامپیوتر را به یک المان دارای ارتباط سریال مانند یک میکروکنترلر در پروتئوس متصل کرد. بنابراین ماژولی که به کامپیوتر متصل شده، با آن المان در پروتئوس به تبادل داده می پردازد. برای مثال می توان یک ماژول SIM800 را به کامپیوتر و آن را در پروتئوس به یک میکروکنترلر متصل کرد. کاراکترهایی که در تصویر زیر مشاهده می شود، حاصل تبادل یک ماژول SIM800C به کامپیوتر و ترمینال سریال پروتئوس است. این کار با استفاده از اتصال پایه های RXD و TXD قطعۀ PIMCOM و Virtual Terminal انجام شده است. با دابل کلیک کردن روی PIMCOM می توان تنظیمات Baud Rate و شمارۀ پورت COM را انجام داد. توجه شود که پایۀ RXD این قطعه به RXD و TXD آن نیز به TXD ترمینال وصل می شود.

ترمینال-پورت-سریال-پروتئوس-proteus

تصویر 8 – ترمینال سریال در نرم افزار Proteus

کار با ترمینال پورت سریال Hercules

در نوشتۀ نرم افزار Hercules که لینک آن در بخش «معرفی نرم افزارهای ترمینال پورت سریال» قرار گرفت، این نرم افزار را شرح داده ایم. نرم افزار Hercules یا هرکولس یک ترمینال پورت سریال، ترمینال TCP/IP و UDP/IP است. ابزارهای این نرم افزار رایگان در مجموعه تب های آن قرار گرفته است. تب Serial این نرم افزار یک ترمینال پورت سریال است که چهار بخش دارد. این چهار بخش در تصویر زیر مشخص شده اند.

  • بخش Serial (بخش 1): برای تنظیمات ارتباط سریال است. در این بخش می توان Baud Rate، شمارۀ پورت COM، تعداد بیت های دادۀ انتقالی، Parity، قابلیت Handshake را تنظیم کرد. همچنین با فشردن دکمۀ Open یا Close می توان پورت COM را باز و بسته کرد؛
  • بخش Send (بخش 2): در این بخش می توان داده های ارسالی را تایپ کرد و با دکمۀ Send جلوی آن، آنها را به صورت یکجا فرستاد؛
  • بخش Received/Sent Data (بخش 3): در بخش 3 می توان کاراکترهای دادۀ ارسالی را تایپ کرد. با تایپ کردن هر کاراکتر، عملیات ارسال به صورت خودکار انجام می شود. همچنین در این بخش داده های ارسال و دریافت نمایش داده می شوند.
  • بخش Modem lines (بخش 4): در این بخش می توان وضعیت پایه های CD و RI و DSR و CTS را مشاهده و یا به پایه های DTR و RTS مقدار داد.

ابزار-serial-در-هرکولس

تصویر 9 – محیط تب Serial نرم افزار Hercules

در ادامه با ذکر یک مثال به نحوه کار با ترمینال پورت سریال نرم افزار Hercules می پردازیم.

پیش از شروع تبادل داده

معمولاً هر دستگاه یا ماژولی که قرار است به کامپیوتر متصل شود، نیاز به یک نرم افزار درایور دارد. پیش از شروع کار با ترمینال پورت سریال Hercules، باید درایور سخت افزاری را که به کامپیوتر متصل می شود، نصب کنیم. هر ماژول، آی سی یا المان قابل اتصال به کامپیوتر یک نرم افزار درایور دارد که اغلب می توان در سایت های شرکت سازنده، آن را دانلود و نصب کرد. برای مثال می خواهیم یک ماژول ESP8266 را با مبدل USB به سریال به پورت USB متصل کنیم. نصب درایور این مبدل که در یکی از نوشته های گذشته تشریح شده است، باعث اختصاص یک پورت COM مجازی به این مبدل می شود. شمارۀ این پورت COM را در حالی که ماژول به کامپیوتر متصل است، می توان از پنجرۀ Device Manager در Control Panel به دست آورد. در مثالی که در حال انجام آن هستیم، COM7 به مبدل USB به سریال CP2102 اختصاص داده شده است. می توان در مراحلی که در تصویر زیر آورده شده است، پورت COM را مشاهده کرد و یا آن را تغییر داد.

تغییر-شماره-پورت-سریال-مجازی

تصویر 10 – مشاهده و یا تغییر پورت COM در پنجرۀ Device Manager

اجرای نرم افزار Hercules و تنظیمات لازم

پس از اجرای نرم افزار Hercules، تب Serial را که همان ترمینال پورت سریال این نرم افزار است، باز می کنیم. همان طور که توضیح داده شد، در بخش Serial این تب، تنظیمات ارتباط سریال وجود دارد. این تنظیمات باید مطابق پیکر بندی ماژول یا میکروکنترلری که قصد ارتباط با آن را داریم، انجام شود. در قسمت Name باید پورت COM اختصاص داده شده به دستگاه انتخاب شود. که برای مثال ما COM7 است. در قسمت Baud نیز باید Baud Rate ارتباط سریال تنظیم شود. برای ماژول ESP8266 مورد استفادۀ ما این مقدار برابر 115200 است. پس در Hercules نیز باید 115200 انتخاب شود. Data Size به معنای تعداد بیت دادۀ یک فریم است. در فریم مورد نظر ما 8 بیت داده دارد. Parity نیز بیت توازن است که برای خطایابی مورد استفاده قرار می گیرد. فریم داده در مثال ما فاقد Parity است و none را برای آن انتخاب می کنیم. قابلیت Handshake نیز برای این مثال باید خاموش باشد. قسمت Mode نیز همانطور که در نوشتۀ پیشین Hercules گفته شد، برای استفادۀ دستگاه های شرکت HW Group است. ما باید آن را روی Free قرار دهیم. بنابراین تنظیمات اولیه را مطابق تصویر زیر انجام می دهیم و روی دکمۀ Open کلیک می کنیم تا اتصال برقرار شود. در این هنگام در بخش Received/Sent data جملۀ Serial port COM7 opened ظاهر می شود. اگر خطایی دریافت شود، دلیل آن ممکن است نصب نبودن درایور CP2102 یا عدم برقرای اتصالات الکتریکی باشد. همچنین ممکن است پورت COM مورد نظر توسط نرم افزار دیگری باز شده و یا مبدل USB به سریال آسیب دیده باشد.

تنظیمات-ترمینال-پورت-سریال-hercules

تصویر 11 – تنظیمات Hercules برای برقراری ارتباط سریال

ارسال و دریافت داده توسط ترمینال پورت سریال Hercules

در این مرحله می توانیم در بخش Received/Sent data کاراکترهایی را برای ارسال تایپ کنیم. هر کاراکتر که تایپ می کنیم، بلافاصله ارسال می شود. برای مشاهدۀ کاراکترهای ارسالی باید Local Echo را با کلیک راست کردن در این بخش و زدن تیک آن، فعال کنیم. در این صورت کاراکترهای ارسالی با رنگ صورتی نمایش داده می شوند. در همین بخش کاراکترهای دریافتی نیز با رنگ مشکی نمایش داده می شوند. در تکست باکس های بخش Send می توانیم یک رشته را تایپ کنیم. و سپس با کلیک روی دکمۀ Send مقابل آن، رشتۀ تایپ شده را ارسال کنیم. کاراکترهای رشتۀ تایپ شده در این حالت به سرعت پشت سر هم ارسال خواهند شد. برای ارسال علاوه بر کلیک روی دکمه های Send می توان از کلیدهای F1 و F2 و F3 استفاده کرد.

همانطور که در تصویر زیر مشخص است، ابتدا یک AT به ماژول ESP8266 می فرستیم. و با دستور ATE0، اکوی ماژول را غیر فعال می کنیم. سپس با دستور AT+CWMODE=1، آن را در مد Station قرار می دهیم. در ادامه با دستور AT+CWJAP ماژول را به یک نقطه اتصال وصل می کنیم. در نهایت با دستور AT+CWQAP، ارتباط آن را با نقطه اتصال قطع می کنیم. در این مثال دو دستور اول را در بخش Received/Sent data تایپ کرده ایم. برای این که ماژول ESP8266 به AT Commandها پاسخ دهد، لازم است پس از ارسال آنها، یک Enter نیز فرستاده شود. Enter را می توان در بخش Send به صورت <CR><LF> نوشت. در این صورت با کلیک روی دکمۀ Send مقابل تکست باکس، Enter نیز فرستاده می شود. داده هایی که ما برای ESP8266 فرستاده ایم، به رنگ صورتی هستند و داده هایی که ماژول ESP8266 برای ما فرستاده به رنگ مشکی هستند.

ارسال-دریافت-داده-ترمینال-hercules

تصویر 12 – ارسال و دریافت داده با ترمینال پورت سریال Hercules

فرمت نمایش داده در ترمینال پورت سریال Hercules

در بخش Send مقابل هر تکست باکس تنها یک چک باکس وجود دارد. اگر آن را تیک بزنیم، دادۀ ارسالی باید کد کاراکترهای ASCII در مبنای هگزادسیمال باشد. اگر در بخش Received/Sent data کلیک راست کنیم، در کادر باز شده، دو گزینه مورد توجه است. در گزینۀ Special Chars می توان فرمت نمایش کاراکترهای ویژه مانند CR و LF را تغییر داد. این گزینه به صورت پیش فرض روی Text Mode قرار دارد. اگر از حالت Text Mode خارج شود، گزینۀ Hex Enable که در تصویر زیر به آن اشاره شده، روشن می شود و می توان آن را با تیک زدن فعال کرد. در این صورت کاراکترهای ارسالی و دریافتی در قالب هگزادسیمال نمایش داده می شوند. البته به غیر از داده های ارسالی که در بخش Received/Sent data تایپ می شوند.

همانطور که در تصویر زیر مشاهده می شود، ارسال دستور AT و پاسخ آن در فرمت های مختلف فرستاده می شود. تبادل داده های شمارۀ 1 تا 8، حاصل انتخاب مواردی است که شمارۀ آنها در مستطیل قرار داده شده است. در تبادل شمارۀ 1 تا 4، گزینۀ Hex Enable غیر فعال است. و فرمت کاراکترهای CR و LF بسته به انتخاب آن متفاوت است. در تبادل شمارۀ 5 گزینۀ Hex Enable فعال شده است. بنابراین فرمت پاسخ دریافتی به صورت عدد Hex است. تبادل شمارۀ 6، حاصل ارسال AT موجود در بخش Send است. که هم AT و هم پاسخ OK دریافتی در فرمت Hex هستند. تبادل شمارۀ 7 نیز حاصل ارسال AT موجود در بخش Send است، ولی این بار گزینۀ Hex Enable غیر فعال شده است. تبادل شمارۀ 8 نیز حاصل انتخاب Text Mode برای Special Chars است. در این حالت چه داده را در فرمت کاراکتر ASCII بفرستیم، چه در فرمت Hex (در بخش Send)، در فرمت کاراکتر ASCII نمایش داده می شود.

مدهای-مختلف-نمایش-داده-hercules

تصویر 13 – فرمت های مختلف نمایش داده ها در Hercules

نتایج نرم افزارهای ترمینال پورت سریال و کار با Hercules

  1. ترمینال پورت Serial یا ترمینال سریال نرم افزارهایی برای کنترل و راه اندازی پورت سریال کامپیوتر هستند.
  2. امروزه در اغلب لپ تاپ ها پورت سریال سخت افزاری وجود ندارد و برای ارتباط سریال لازم است از پورت های سریال مجازی به همراه مبدل سخت افزاری به منظور شبیه سازی پورت سریال استفاده شود.
  3. با این که نوع ارتباط USB و اترنت نیز سریال است، ولی کلمۀ «پورت سریال» تنها به سخت افزارهایی با استاندارد RS-232 و RS485 و RS-422 گفته می شود.
  4. پورت Serial مجازی یا پورت COM مجازی عبارت است از نرم افزارها یا درایورهایی که امکان ارسال و دریافت سریال را توسط پورت های USB، اترنت یا … فراهم می کنند.
  5. می توان تصور کرد که یک پورت Serial مجازی مبدلی نرم افزاری است که داده ها را از قالب سریال به داده های قابل تبادل از طریق پورت های دیگر و بالعکس، تبدیل می کند.
  6. تعداد بسیار زیادی نرم افزار پورت سریال (ترمینال) ساخته شده است. در این میان برخی رایگان هستند. برخی امکانات کمتر و برخی امکانات بیشتر دارند. برخی نیز همانند Hercules بخشی از یک نرم افزار دیگر هستند.
  7. برخی نرم افزارهای ترمینال سریال در IDEها هستند. نرم افزار پورت سریال در Atmel Studio، نرم افزار پورت سریال در Arduino و نرم افزار پورت سریال در CodeVisionAVR نمونه ای از این نوع هستند.
  8. در مبحث میکروکنترلرها منظور از پورت سریال میکروکنترلر، واحد داخلی UART یا USART است.
  9. برای ارتباط با پورت سریال کامپیوتر توسط میکروکنترلرها، نیاز است از مبدل های سطح ولتاژ مثل آی سی MAX232 استفاده شود.
  10. از Virtual Terminal پروتئوس هم می توان به عنوان یک ترمینال سریال در محیط شبیه سازی استفاده کرد، هم می توان به عنوان یک نرم افزار پورت سریال (ترمینال) همانند ترمینال های ذکر شده استفاده کرد.
  11. برای کار با نرم افزار Hercules و ارسال و دریافت اطلاعات از پورت سریال باید در تب Serial ابتدا در بخش Serial تنظیمات ارتباط سریال انجام شود.
  12. در Hercules داده های ارسال و دریافت در بخش Received/Sent data به ترتیب به رنگ های صورتی و مشکی نمایش داده می شوند.
  13. در Hercules برای ارسال داده هم می توان در بخش Received/Sent data نوشت و هم از بخش Send استفاده کرد.
  14. در Hercules، در بخش Send می توان با زدن تیک چک باکس Hex، داده های ارسالی را در فرمت هگزا دسیمال وارد کرد.
  15. با انجام تنظیماتی در Hercules می توان فرمت کاراکترهای ویژه مثل CR و LF را به صورت نقطه، مبنای هگزا دسیمال، دسیمال و … نمایش داد.
  16. در صورت انتخاب یکی از فرمت های غیر از Text Mode برای کاراکترهای ویژه، می توان Hex Enable را فعال کرد. در این صورت کاراکترهای ارسال و دریافت در فرمت Hex نمایش داده می شوند. البته به غیر از کاراکترهای ارسالی که در بخش Received/Sent data تایپ می شوند.

رضا بداغی

رضا بداغی

عضو هیئت مدیره یوبرد، طراح و برنامه نویس سیستم های دیجیتال مبتنی بر میکروکنترلر، طراح PCB و مدرس آموزش های میکروکنترلر، طراحی PCB و برنامه نویسی میکروکنترلر

سفارش پروژه میکروکنترلر یوبرد

زیرساخت مطمئن صنعت

جدیدترین تاپیک های STM32

میکروکنترلر ARM

میکروکنترلر ARM چیست؟ پردازندۀ ARM

میکروکنترلر ARM ، میکروکنترلرهایی هستند که پردازندۀ آنها ساخت شرکت ARM است. شرکت ARM سازندۀ میکروکنترلر نیست. سازندۀ پردازنده (CPU) است. امروزه به میکروکنترلرهایی که پردازندۀ آنها طراحی شدۀ شرکت ARM باشد، میکروکنترلر ARM گفته می شود.

راه-اندازی-dac-stm32

راه اندازی DAC در STM32

راه اندازی DAC در STM32، ویژگی های DAC در میکروکنترلرهای STM32F1، بلوک دیاگرام DAC در STM32، اتصالات راه اندازی DAC در میکروکنترلر STM32F107VC، نمونه کد رجیستری راه اندازی واحد DAC در میکروکنترلرهای STM32F1، ساخت موج سینوسی با STM32، راه اندازی مبدل دیجیتال به آنالوگ STM32 با توابع HAL

راه-اندازی-usart-stm32

راه اندازی UART در STM32، رجیستری و HAL

راه اندازی UART در STM32، اتصالات و نرم افزار مورد نیاز، نمونه کد USART در STM32 به صورت رجیستری، نمونه کد رجیستری USART با وقفۀ دریافت، نمونه کد HAL برای راه اندازی USART در STM32، نمونه کد HAL با وقفۀ دریافت، نحوه محاسبه Baud rate در USART میکروکنترلرهای STM32F1

برنامه-نویسی-میکروکنترلر-ویژوال-استودیو

برنامه نویسی میکروکنترلرها با ویژوال استودیو

نصب VisualGDB روی ویژوال استودیو، ساخت پروژه برای برنامه نویسی میکروکنترلرها با ویژوال استودیو، ساخت پروژه برای STM32 در ویژوال استودیو، کدنویسی STM32 در ویژوال استودیو، ساخت پروژه برای AVR در ویژوال استودیو، ساخت پروژه برای LPC در ویژوال استودیو، ساخت پروژۀ آردوینو در ویژوال استودیو

24 دیدگاه ها

  1. سلام . جناب مهندس مطلب بسیار ارزنده ای بود. ممنون از زحمتی که کشیدید. موضوع ترمینال توی پروتئوس خیلی جالب بود.

    پاسخ
    • سلام. خیلی ممنون. لطف دارید.

      پاسخ
  2. سلام. بنده قصد داشتم یک مبدل usb به سریال تهیه کنم. به نظر شما از کدام ماژول ها تهیه کنم؟ شنیدم ماژول cp2102 از بقیه بهتره. اگه راهنمایی کنید ممنون میشم.

    پاسخ
    • سلام. به نظرم ماژول CP2102 تهیه کنید. هم روی بردهای توسعۀ یوبرد از آی سی CP2102 استفاده کردیم و هم ماژول های CP2102 یوبرد. تا حالا که هیچ مشکلی نداشتن. درایورش هم به راحتی نصب میشه.

      پاسخ
  3. سلام. ممنون بابت این مطالب. سوال بنده درباره ترمینال تو پروتئوسه. پروتئوس زمانش مثل واقعیت نیست یعنی real time نست. اگه یه ماژولی مثل سیم 800 یا هر ماژول دیگه به کامپیوتر وصل کنیم اون وقت یه میکروکنترلر رو توی پروتئوس پروگرم کنیم و به ترمینال پروتئوس وصل کنیم ، توی ارتباط ماژول و میکرو به خاطر این real time نبودن مشکلی پیش نمیاد؟

    پاسخ
    • سلام. خواهش می کنم. بله پروتئوس این مشکل رو داره متأسفانه. تنها مشکلی که ممکنه پیش میاد تأخیر توی انجام عملیات هستش. مثلاً ما برنامه ای نوشتیم که اگه به ماژول زنگ بزنیم، جواب بده و انتظار داریم میکروکنترلر سریعاً بعد از دریافت RING از ماژول دستور ATA رو به ماژول بفرسته. این روند ممکنه با تأخیر انجام بشه و پاسخ به تماس با سرعتی که انتظار داریم نباشه. یه مشکل دیگه هم هست. این مشکل وقتی به وجود میاد که میکروکنترلر یه ATکامند می فرسته و زمانی رو منتظر پاسخ میمونه. مثلاً یه ATکامند AT+HTTPPARA رومی فرسته و برای زمان 60 ثانیه منتظر میمونه تا پاسخ دریافت بشه که اگه دریافت نشد عملیاتی رو انجام بده. مثلاً اون ATکامند قبلی رو دوباره بفرسته یا کار دیگه. حالا اگه ماژول توی 60 ثانیۀ واقعی، از سمت سرور پاسخی دریافت نکنه، میکروکنترلر توی پروتئوس تا 60 ثانیۀ خودش که کُندتر میگذره باید صبر کنه که اون کار رو انجام بده.

      پاسخ
  4. سلام. ممنون از مطالبی که میزارید. مفهوم ترمینال سریال رو عمیق درک کردم عالی بود. در ضمن بوردهاتونو چطور میتونم تهیه کنم؟

    پاسخ
    • سلام. خواهش میکنم. خدا رو شکر. توی فروشگاه بردهای موجود رو میتونید سفارش بدید.

      پاسخ
  5. سلام. وقتتون بخیر. توی بخش ترمینال توی پروتیوس به نظرم پایه های rx و tx رو جا به جا وصل کردید. مطلبتون هم خیلی خوب و عالی بود. ممنون از زحماتی که می کشید

    پاسخ
    • سلام. وقتی قراره Virtual Terminal پروتئوس به میکروکنترلر متصل بشه، باید پایۀ TX اون به RX میکروکنترلر و RX اون به TX میکروکنترلر وصل بشه. ولی وقتی قراره Virtual Terminal رو به عنوان ترمینال سریال واقعی استفاده کنیم، باید پایه هاش به همین شکل که توی تصویر 8 هست، به پایه های PIMCOM وصل بشن. خواهش میکنم. ممنون از توجهتون.

      پاسخ
  6. سلام. کاری که با تمینال پروتیوس میشه انجام داد جالبه. اینی هم که شما آموزشش میدین قابل تحسینه. میشه بدون داشتن میکروکنترلر واقعی ماژولمونو تست کنیم. دست شما درد نکنه

    پاسخ
    • سلام. ممنون از نظرتون. نظر لطف شماست.  خواهش می کنم. موفق باشید

      پاسخ
    • این موضوع خیلی جالبه. البته باید در نظر بگیریم که پروتیوس زمانش دقیق نیست و ممکنه باعث خطا بشه

      پاسخ
  7. سلام .
    ماژول SIM800L رو به آردوینو وصل کردم. زنگ میخوره و زنگ میزنه و پیامک دریافت میکنه اما پیامک ارسال نمیکنه!!!!
    چند روزه گرفتارشم.لطفا راهنمایی کنید.
    درمورد نحوه ارسال کاراکتر CTRL Z در انتهای پیامک هم اگر راهنمایی کنید ممنون میشم.

    پاسخ
    • سلام. شما برای ارسال پیامک باید ATکامند AT+CMGS=”09xxxxxxxxx” رو بفرستید. بعد از این مرحله باید منتظر بمونید که ماژول علامت < رو براتون بفرسته. دقت کنید ممکنه بعد از این علامت اسپیس هم بفرسته. و همچنین قبل از اون هم احتمالاً یه اینتر بفرسته. بنابراین باید شرط بذارید که هر وقت این علامت دریافت شد، متن پیامک برای ماژول فرستاده بشه. بعد از این که متن رو برای ماژول فرستادید، در انتها باید کد اسکی CTRL+Z رو بفرستید. کد اسکی CTRL+Z میشه:

      0x1A

      کد اسکی علامت < هم میشه:

      0x3E = 62 (decimal)

      همچنین کد اسکی اسپیس میشه:

      0x20 = 32 (decimal)

      علامتی که میفرسته با این شکله:

      < 

      متن پیامک هم جلوش بنویسید و بعدش CTRL+Z بزنید به این شکل میشه:

      <Text.<26<

      که 26 هم مقدار دسیمال 1A هستش.

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

      پاسخ
  8. سلام
    امکان ذخیره و انتقال داده های دریافتی از میکرو توسط نرم افزار های پورت سریال وجود داره؟مثلا در یک فایل ذخیره بشه یا مستقیما به متلب داده بشه؟

    پاسخ
    • سلام. بله نرم افزارهایی برای مانیتور و ذخیره وجود داره. مثل Serial Port monitor. یا اصلا سرچ کنید:
      a software for save data received from COM port
       نرم افزارهای دیگه ای هم میاد. دربارۀ این که بتونن به متلب انتقال بدن اطلاعی ندارم

       

      پاسخ
  9. سلام جناب مهندس عالی هستین خدا خیرتون بده
    خیلی مرسی

    پاسخ
  10. سلام، آموزشتون بسیار عالی و قابل فهم و بی نظیر بود واقعا ممنونم. امیدوارم همینطور ادامه بدید❤️❤️❤️

    پاسخ
    • سلام. خیلی ممنون لطف دارید. ممنون از مطالعه و نظرتون

      پاسخ
  11. سلام
    با avr از طريق درگاه سریال به کامپیوتر ی سری رشته رو انتقال میدم تو کامپیوتر دریافت میکنم ولی به صورت خیلی عجیب و نامفهوم
    ممنون میشم دوستان راهنمایی کنند

    پاسخ
    • سلام. در چنین مواقعی معمولا مشکل از باودریت هست.
      باودریت میکروکنترلر با باودریتی که در نرم افزار سمت کامپیوتر تنظیم کردید یکی نیست.
      یا مثلا باودریت را در سمت میکروکنترلر مثلا 115200 قرار دادید و سمت کامپیوتر 9600 یا اینکه هر دو طرف را مثلا 115200 تنظیم کردید اما در سمت میکروکنترلر اشتباهی انجام داده اید و باودریت به اشتباه 115200 نیست ولی فکرمیکنید 115200 هست. مثلا ضرایت تقسیم را درست تنظیم نکردید.

      پاسخ

یک دیدگاه بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دیگر آموزش های یوبرد

آموزش TFT LCD با TouchGFX و STM32 یوبرد

گرافیک کاربرپسند با میکروکنترلر ST

آموزش FreeRTOS یوبرد

زمان واقعی در میکروکنترلر و پردازنده های کوچک با FreeRTOS

آموزش طراحی PCB و نویز یوبرد

تجسم دنیای الکترونیک

آموزش زبان C و MISRA-C یوبرد

گام نخست دنیای میکروکنترلر

آموزش لحیم کاری و IPC-A-610 یوبرد

ساخت دنیای الکترونیک

آموزش آردوینو یوبرد

جادۀ آسفالت میکروکنترلر

آموزش ماژول های SIM800 یوبرد

تلفن همراه صنعت

آموزش زبان ++C و ++MISRA-C یوبرد

لمس شی گرایی در میکروکنترلرها

آموزش میکروکنترلرهای AVR یوبرد

شاهکار 8 بیتی Atmel

آموزش میکروکنترلرهای LPC یوبرد

یادگار فیلیپس

آموزش های شاخص

دانلود

لطفا برای دریافت لینک دانلود اطلاعات خواسته شده را وارد نمایید
ضبط پیام صوتی

زمان هر پیام صوتی 4 دقیقه است