پرش به محتوا

عملکرد پروتکل RS232

پروتکل RS232 یک پروتکل ارتباطی است که برای انتقال داده‌ها به صورت سریال استفاده می شود. این پروتکل در دستگاه های الکترونیکی مختلفی مانند کامپیوترها، مودم ها، پرینترها و دستگاه های نظامی استفاده می شود. در پروتکل RS232، داده‌ها به صورت بیت به بیت و در قالب سریال از طریق یک کابل ارتباطی فرستاده می شوند. برای ارسال داده‌ها، یک بیت استارت و یک یا دو بیت توقف بین هر بایت اضافه می شوند. همچنین یک بیت پاریتی (parity) نیز ممکن است برای تشخیص خطا در ارسال داده‌ها استفاده شود.
Protocol RS232

از آنجایی که پروتکل RS232 قدیمی و سرعت انتقال داده‌های آن پایین است، در حال حاضر برای بسیاری از کاربردها جایگزین های بهتری و با سرعت بیشتر وجود دارد. اما هنوز در صنعت کاربرد خود را دارد. برای اطلاعات بیشتر در مورد DNC ماشین آلات CNC کلیک کنید.

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

  1. Parallel: این پروتکل می‌تواند با سرعت بسیار بالا از جمله چند گیگابیت در ثانیه کار کند.
  2. SPI: حداکثر سرعت این پروتکل برای انتقال داده تا ۶۵ مگابیت در ثانیه است.
  3. I2C: حداکثر سرعت این پروتکل برای انتقال داده‌ تا ۳٫۴ مگابیت در ثانیه است.
  4. UART: حداکثر سرعت این پروتکل برای انتقال داده‌ تا ۹۲۰ کیلوبیت در ثانیه برسد.
  5. RS232: حداکثر سرعت این پروتکل برای انتقال داده‌ تا ۱۵۰ کیلوبیت در ثانیه است.
  6. One-wire: حداکثر سرعت این پروتکل برای انتقال داده‌ تا ۱۲۰ کیلوبیت در ثانیه است.

تفاوت پروتکل RS232 و پروتکل UART

پروتکل RS232 و UART از نظر ساختار اطلاعاتی مشابه هستند. تفاوت آنها در ولتاژ انتقال دیتا و منطق دیجیتالی معکوس است.

در پروتکل RS232 انتقال اطلاعات در محدوده ولتاژ منفی و مثبت 3 الی 15 ولت است. ولتاژ منفی به عنوان سطح 1 منطقی یا HIGH تلقی می‌شود. ولتاژ مثبت نیز به عنوان سطح 0 منطقی یا LOW تلقی می‌شود.

اما در پروتکل UART انتقال اطلاعات در محدوده ولتاژ صفر و مثبت 3.3 الی 5 ولت است. ولتاژ منفی 0.5 الی مثبت 0.8 به عنوان سطح 0 منطقی یا LOW تلقی می‌شود. ولتاژ مثبت 2.4 الی 5 ولت نیز به عنوان سطح 1 منطقی یا HIGH تلقی می‌شود.

به دلیل سطح بالای ولتاژ انتقال اطلاعات در پروتکل RS232، کابل میتواند 15 الی 20 متر طول داشته باشد. در حالی که پروتکل UART به دلیل افت ولتاژ، حداکثر میتواند 3 متر طول کابل انتقال اطلاعات آن باشد.

سیگنال های پروتکل RS232

سیگنال های اصلی انتقال اطلاعات

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

TX: سیگنال ارسال اطلاعات؛ که در سمت دستگاه گیرنده به سیگنال RX متصل می شود. از این سیگنال برای انتقال اطلاعات استفاده می شود، در نتیجه در تمامی حالت های پروتکل RS232 باید متصل شود.

RX: سیگنال دریافت اطلاعات؛ که در سمت دستگاه فرستنده به سیگنال TX متصل می شود. از این سیگنال برای انتقال اطلاعات استفاده می شود، در نتیجه در تمامی حالت های پروتکل RS232 باید متصل شود.

سیگنال های آمادگی برای انتقال اطلاعات

DTR: این سیگنال در سمت فرستنده برای اعلام آمادگی به گیرنده ارسال می شود. تا پایان ارسال داده‌ها فعال است و پس از اتمام ارسال داده‌ها، غیرفعال می شود. در صورتی که سیگنال DTR فعال باشد، دستگاه دریافت کننده نیز می‌تواند بفهمد که دستگاه ارسال کننده آماده برای ارسال اطلاعات است.

DSR: این سیگنال در سمت گیرنده برای اعلام آمادگی به فرستنده ارسال می شود. تا پایان ارسال داده‌ها فعال است و پس از غیرفعال شدن سیگنال DTR، غیرفعال می شود. در صورت غیرفعال شدن سیگنال DSR طی ارسال داده‌ها، گیرنده اعلام خطا در دریافت اطلاعات می کند و فرستنده نیز ارسال اطلاعات را متوقف می کند و معمولا هر دو دستگاه خطا مربوطه را به کاربر گذارش می دهند.

سیگنال های درخواست برای انتقال اطلاعات

RTS: این سیگنال در سمت فرستنده، پس از آمادگی داده‌ها برای ارسال فعال و به گیرنده منتقل می شود. گیرنده با دریافت این سیگنال و با توجه به فضای خالی در حافظه بافر دریافت اطلاعات خود، سیگنال CTS را فعال و به فرستنده منتقل می کند تا انتقال داده انجام شود.

CTS: این سیگنال در سمت گیرنده، درخواست ارسال اطلاعات توسط فرستنده را برعهده دارد. قبل از فعالیت این سیگنال، باید فرستنده با سیگنال RTS درخواست ارسال اطلاعات خود را اعلام کند. این سیگنال در متود HandShaking Hardware استفاده می شود.

سیگنال های اطلاع رسانی برای انتقال اطلاعات

CDC: این سیگنال در سمت فرستنده، قرار گرفتن اطلاعات در خط انتقال به سمت گیرنده را به دستگاه گیرنده اطلاع می دهد. از این سیگنال برای اعلام دیتا جدید به گیرنده استفاده می شود.

RI: این سیگنال توسط دستگاه فرستنده فعال می‌شود و به دستگاه گیرنده اطلاع می‌دهد که یک اتصال جدید برقرار شده است. این سیگنال ممکن است برای اعلام دریافت داده‌های جدید به کار رود و یا در برخی موارد برای اعلام تغییر وضعیت دستگاه به کار می‌رود.

Protocol RS232
DB9 Pinout

متود HandShaking

برای انتقال اطلاعات از فرستنده (DTE) به گیرنده (DCE) ابتدا از سیگنال های RTS, CTS, DTR, DSR, CDC, RI برای آماده‌سازی هر دو دستگاه استفاده می شود. سپس دستگاه فرستنده شروع به انتقال اطلاعات می‌کند. دستگاه گیرنده برای پردازش داده‌های دریافتی ممکن است کمی تاخیر در دریافت اطلاعات داشته باشد، در نتیجه داده‌های زیادی از دست می رود. برای جلوگیری از این خطا، دستگاه گیرنده به دو روش سخت افزاری Hardware flow conrol و نرم افزاری Software flow conrol، جریان انتقال دیتا را کنترل می کند. در ادامه هر روش را به صورت مجزا برسی می کنیم. استفاده از هر کدام به دلخواه و انتخابی است. معمولا در صنعت از هر دو به صورت همزمان استفاده می شود.

دستگاه گیرنده دارای یک حافظه بافر برای داده‌های ورودی است. در اکثر دستگاه ها مقدار این حافظه 256 یا 512 بایت است. در زمان پر شدن 75 الی 90 درصد از این حافظه، دستگاه گیرنده اقدام به توقف جریان انتقال دیتا می کند.

کنترل جریان انتقال دیتا سخت افزاری - Hardware flow control

برای توقف انتقال اطلاعات در زمان پر شدن بافر دریافت کننده در روش سخت افزاری Hardware، دستگاه گیرنده از سیگنال CTS استفاده می کند.

با غیرفعال کردن سیگنال CTS دستگاه گیرنده توقف انتقال را اعلام میکند و دستگاه فرستنده تا فعال شدن مجدد سیگنال CTS انتقال اطلاعات را متوقف و منتظر می ماند.

فعال شدن سیگنال CTS توسط دستگاه گیرنده نیازمند فعال بودن سیگنال RTS از دستگاه فرستنده است.

کنترل جریان انتقال دیتا نرم افزاری - Software flow control

برای توقف انتقال اطلاعات در زمان پر شدن بافر دریافت کننده در روش نرم افزاری Software، دستگاه گیرنده از ارسال یک بایت دیتا به سیگنال TX استفاده می کند که توسط فرستنده دریافت می شود.

دستگاه گیرنده با ارسال کد (Xoff) توقف انتقال داده‌ها را اعلام می‌ کند و دستگاه فرستنده تا دریافت کد (Xon) انتقال اطلاعات را متوقف و منتظر می ماند.

کد Xon در دسیمال (17)  و در هگز (11) است.

کد Xoff در دسیمال (19)  و در هگز (13) است.

ارسال دستورات کنترل جریان دیتا توسط دستگاه گیرنده؛ در حالت فعال بودن استفاده از کنترل جریان دیتا سخت افزاری، نیازمند فعال بودن سیگنال RTS از دستگاه فرستنده است.

یکی از کاربرد های کنترل جریان انتقال دیتا در پروتکل RS232 در ماشینکاری قطعات توسط دستگاه CNC در حالت DNC است. برای اطلاعات بیشتر در مورد DNC ماشین آلات CNC کلیک کنید.

روند عملکرد پروتکل RS232 با سیگنال های کنترل جریان

درخواست ارسال:

دستگاه فرستنده ابتدا باید فایل خود را برای ارسال آماده‌سازی کند. پس از آمادگی فایل در دستگاه فرستنده، سیگنال درخواست ارسال (RTS) به دستگاه گیرنده منتقل می شود. پس از دریافت سیگنال درخواست ارسال، دستگاه گیرنده فضای بافر ورودی داده‌های خود را خالی می کند و درخواست پاک کردن ارسال (CTS) را به فرستنده منتقل می کند.

آمادگی ارسال:

پس از اتمام مراحل درخواست ارسال، دستگاه فرستنده پورت خود را پیکربندی می نماید و با سیگنال آمادگی ترمینال دیتا (DTR) به دستگاه گیرنده آمادگی خود را اعلام می کند. سپس دستگاه گیرنده بافر ورودی خود را برای دریافت داده‌ها پیکربندی می نماید و سیگنال آمادگی تنظیم دیتا (DSR) را به فرستنده منتقل می کند.

شروع ارسال:

زمانی که هر دو دستگاه فرستنده و گیرنده درخواست ارسال و آمادگی ارسال خود را اعلام کردند؛ دستگاه فرستنده ارسال داده‌ها را از طریق سیگنال TX خود شروع میکند. دستگاه گیرنده اطلاعات را از طریق سیگنال RX خود دریافت می کند. در صورت نیاز به توقف ارسال اطلاعات، دستگاه گیرنده از طریق متود HandShaking که در بالا برسی کردیم؛ درخواست توقف ارسال را به دستگاه فرستنده منتقل می کند تا اطلاعاتی از دست نرود.

اشتراک گذاری این نوشته

دانشجوی مکاترونیک هستم و در زمینه اتوماسیون و توسعه صنعت فعالیت میکنم. به اشتراک گذاری تجربیات و خورده دانشی که از الکترونیک دارم علاقمند هستم.

شاید این مطالب براتون جذاب باشه!

دیدگاهتان را بنویسید

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

ورود به حساب کاربری

تماس با ما

عضویت

عضو سایت هستید؟ برای ورود کلیک کنید