مهندس موفق الکترونیک

ارتباط سریال – پروتکل UART

 ارتباط سریال چیست ؟ قبل از شروع به توصیف ارتباط سریال بهتر است بدانیم که؛ که سیستم های نهفته و مدارات الکترونیک دیجیتال پیشرفته (میکروکنترلرها ، پردازنده ها و…) نیازمند ارتباط با یکدیگر هستند. برای اینکه این مدارها اطلاعات خود را مبادله کنند، باید یک پروتکل ارتباطی مشترک داشته باشند. صدها پروتکل ارتباطی برای دستیابی به این تبادل اطلاعات تعریف‌شده‌اند و به‌ طورکلی هرکدام از آن‌ها می‌توانند به دودسته تقسیم شوند: موازی یا سریال.

ارتباط سریال - پروتکل UART

ارتباط سریال و موازی

در ارتباطات موازی چندین بیت را هم‌زمان انتقال می‌دهند. آن‌ها معمولاً به باس‌هایی (خطوط ارتباطی) برای انتقال داده بین هشت یا شانزده خط یا خطوط بیشتر نیاز دارند. داده‌ها در امواج بزرگ و کوچک(سطح ولتاژ) 1 و 0 منتقل می‌شوند.

ارتباطات موازی

یک باس داده 8 بیتی که توسط یک ساعت کنترل می‌شود، درهر پالس ساعت یک بایت را انتقال می‌دهد و در آن 9 سیم استفاده می‌شود.

ارتباطات سریال، در هرلحظه یک بیت از داده‌های خود را انتقال می‌دهند. این رابط‌ها می‌توانند به کوچکی یک سیم عمل کنند و معمولاً بیشتر از چهار سیم نمی‌شود.

ارتباطات سریال

مثالی از یک ارتباط سریال که نشان می‌دهد برای انتقال یک بیت در هر پالس ساعت. فقط 2 سیم موردنیاز است!

ایده استفاده از دو رابط به‌عنوان یک مسیر انتقال در اتومبیل‌ها: یک رابط موازی مشابه یک بزرگراه عظیم است که بیش از 8 باند دارد، درحالی‌که یک رابط سریال بیشتر شبیه جاده‌های دو بانده‌ی بین‌شهری (دوطرفه که از یک طرف ماشین ها میرن و از یک طرف برمیگردن.) است. در طول یک مدت‌زمان مشخص بزرگراه عظیم طبیعتاً می‌تواند افراد بیشتری را به مقصد خود برساند.

ارتباط موازی قطعاً مزیت‌های خودش را دارد سریع، ساده و قابل‌اجرا است. اما خطوط ورودی/خروجی (I/O) بسیار بیشتری نیاز دارد.

اگر شما تابه‌حال یک پروژه ساده را از یک برد آردوینو Uno به مگا برده باشید، می‌دانید که خطوط I / O در یک ریزپردازنده می‌تواند کم و درعین‌حال باارزش باشد. بنابراین، ما اغلب ارتباط سریال را انتخاب می‌کنیم، یعنی قربانی کردن سرعت خوب برای وضعیت بهتر پین‌ها.

ارتباط سریال آسنکرون

در طول زمان، ده‌ها پروتکل ارتباط سریال برای پاسخگویی به نیازهای خاص سیستم‌های امبدد طراحی‌شده‌اند. USB (باس سریال جهانی) و اترنت، دو نمونه از پروتکل‌های ارتباطی سریال محاسباتی معروف هستند. پروتکل‌های ارتباطی سریال دیگری که رایج‌اند عبارت‌اند از SPI ، I2C که امروز درباره‌ی آن‌ها و استانداردهای سریال صحبت می‌کنیم. هر یک از این ارتباطات سریال را می‌توان به یکی از این دو گروه اختصاص داد: آسنکرون یا سنکرون

ارتباط سریال سنکرون همیشه خطوط داده‌های خود را به سینگال ساعت وصل می‌کند. بنابراین تمام دستگاه‌های موجود در باس سریال سنکرون یک پالس ساعت مشخص را به اشتراک می‌گذارند که این باعث انتقال سریال ساده‌تر و در اغلب موارد سریع‌تر می‌شود، اما این ارتباط حداقل به یک سیم اضافی بین دستگاه‌های ارتباطی نیاز دارد. دو نمونه از ارتباطات سریال سنکرون عبارت‌اند از: SPI و I2C

ارتباط آسنکرون یعنی داده‌ها بدون پشتیبانی یک سیگنال ساعت خارجی منتقل می‌شوند. این روش انتقال برای کوچک کردن سیم‌ها و پین‌های I/O موردنیاز مناسب است، اما این یعنی انتقال و دریافت مطمئن‌تر داده‌ها پیچیدگی بیشتری دارد. پروتکل سریالی که در این آموزش در مورد آن بحث خواهیم کرد، شایع‌ترین شکل انتقال آسنکرون است. معمولاً وقتی از سریال صحبت می‌کنیم درواقع منظورمان این نوع پروتکل است (در این آموزش نیز منظورمان از پروتکل سریال همان نوع آسنکرون است).

مطالب پیشنهادی

آنچه که قبل از خواندن این آموزش بهتر است بدانید:

اگر شما با هریک از این مفاهیم به‌خوبی آشنا نباشید، لازم است که این لینک‌ها را بررسی کنید.

حالا، بیایید با آموزش سریال همراه شویم…

قوانین ارتباط سریال

پروتکل سریال آسنکرون تعدادی قوانین داخلی دارد- مکانیسم‌هایی که به انتقال داده‌ها با سرعت مطمئنه و بدون خطا کمک می‌کند. مکانیسم‌هایی که برای حذف سیگنال ساعت خارجی استفاده می‌کنیم عبارت‌اند از:

  • بیت‌های داده
  • بیت‌های همگام‌سازی
  • بیت توازن
  • و نرخ داده (باودریت).

از طریق انواع این مکانیزم‌های سیگنالینگ، شما متوجه خواهید شد که برای ارسال اطلاعات به‌صورت سریال راه‌های مختلفی وجود دارد. این پروتکل قابل تنظیم بوده و نکته مهم این است که مطمئن شویم هر دو دستگاهی که در باس سریال قرارگرفته‌اند از پروتکل‌های کاملاً مشابه استفاده می‌کنند.

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

نرخ داده (Baud Rate) مشخص می‌کند که اطلاعات با چه سرعتی بر روی خط سریال ارسال می‌شوند، که معمولاً با واحد بیت در ثانیه (bps) بیان می‌شود. اگر نرخ داده را تعبیر کنید، متوجه می‌شوید که چقدر طول می‌کشد تا یک بیت را منتقل کنید. این مقدار تعیین می‌کند که فرستنده چه مدت خط سریال را بالا (1) / پایین (0) نگه می‌دارد یا در چه مدت دستگاه گیرنده خط سریال را نمونه‌برداری می‌کند.

نرخ داده می‌تواند در حدود هر مقدار درونی باشد. فقط لازم است که هر دو دستگاه با سرعت یکسان عمل کنند. یکی از رایج‌ترین نرخ‌های باند، به‌ویژه برای موارد ساده که سرعت خیلی مهم نیست، 9600 بیت در ثانیه است. دیگر نرخ داده های استاندارد 1200، 2400، 4800، 19200، 38400، 57600 و 115200 هستند.

مطلب پیشنهادی:  سطح منطقی یا صفر و یک منطقی

هرچه نرخ داده بالاتر رود، داده‌ها سریع‌تر ارسال / دریافت می‌شوند، اما محدودیت‌هایی برای سرعت انتقال داده‌ها وجود دارد. شما معمولاً سرعت بیش از 115200 را نمی‌بینید – این برای اغلب میکروکنترلرها سرعت بالایی است. به‌علاوه اینکه شما شاهد خطاهایی در پایان دریافت خواهید بود، زیرا ساعت‌ها و دوره‌های نمونه‌گیری نمی‌توانند با این نرخ داده به کارشان ادامه دهند.

 قالب‌بندی داده‌ها در ارتباط سریال

هر بلوک (معمولاً یک بایت) از داده در واقع به‌صورت یک قالب یا بسته از بیت‌ها منتقل می‌شود. قالب‌ها با اضافه کردن بیت همگام‌سازی و بیت‌های توازن به داده‌های ما ایجاد می‌شوند.

قالب بندی داده ها

فریم سریال. برخی از نمادها در قالب دارای اندازه بیت‌های قابل تنظیم هستند.

بیایید به جزئیات هر یک از این قسمت‌های این فریم بپردازیم.

  • دیتا

محتوای هر بسته سریال، شامل اطلاعاتی است که انتقال می‌دهد. به این بلوک داده تکه (chunk) میگوییم، زیرا اندازه آن مشخص نیست. مقدار داده‌ها در هر بسته می‌تواند در هر مقداری بین 5 تا 9 بیت تنظیم شود. مطمئناً، اندازه استاندارد داده، همان بایت 8 بیتی شماست، اما اندازه‌های دیگر کارایی‌های دیگری را دارند. یک data chunk 7 بیتی می‌تواند کارآمدتر از 8 باشد، مخصوصاً اگر شما فقط کاراکترهای اسکی 7 بیتی را انتقال می‌دهید.

بعد از توافق در مورد طول کاراکتر، هر دو دستگاه سریال باید در مورد ترتیب ارسال داده‌های خود به توافق برسند. آیا داده‌ها به ترتیب از باارزش‌ترین بیت (msb) به کم‌ارزش‌ترین بیت فرستاده می‌شوند یا برعکس؟ اگر غیرازاین باشد، می‌توانید فرض کنید که داده‌ها به ترتیب از کم‌ارزش‌ترین بیت (lsb) منتقل می‌شوند.

  • بیت همگام‌سازی

بیت‌های همگام‌سازی دو یا سه بیت مخصوص‌اند که توسط هر تکه داده انتقال داده می‌شوند. آن‌ها بیت (های) شروع و بیت (های) توقف هستند. همان‌طور که از نامشان برمی‌آید، این بیت‌ها شروع و پایان بسته را تعیین می‌کنند. همیشه یک بیت شروع وجود دارد، اما تعداد بیت‌های توقف به یک یا دو بیت قابل‌تغییر است. (هرچند معمولاً یک بیت است)

بیت شروع همیشه با یک خط داده بیکار (idle) که از 1 به 0 تغییر می‌کند نشان داده می‌شود، درحالی‌که بیت (های) توقف با نگه‌داشتن خط در 1 به حالت بیکار (idle) بازمی‌گردند.

  • بیت پریتی (parity bit)

Parity یک‌شکل بسیار ساده و سطح پایین از کنترل خطا است که در دو نوع وجود دارد: زوج یا فرد. برای تولید بیت توازن (parity bit)، تمام 5-9 بیت از بایت داده اضافه می‌شوند و درستی مجموع این بیت‌ها تصمیم می‌گیرد که آیا بیت تنظیم‌شده است یا نه. به‌عنوان‌مثال، اگر پریتی روی زوج تنظیم‌شده باشد و به یک بایت داده مانند 0b01011101 اضافه‌شده باشد که دارای عدد فردی مانند 1 است (5 بار)، بیت پریتی با 1 تنظیم می‌شود. برعکس، اگر حالت پریتی بر روی فرد تنظیم شود، بیت توازن 0 است.

پریتی اختیاری است و به‌طور گسترده‌ای مورداستفاده قرار نمی‌گیرد. بیت پریتی می‌تواند در انتقال رسانه‌های پرسروصدا مفید باشد، اما انتقال داده‌ها را کمی کند می‌کند و برای تشخیص خطا هم به فرستنده و هم به گیرنده نیاز دارد (معمولاً داده‌های دریافتی ناموفق باید دوباره ارسال شوند).

  • (یک مثال 9600 8N1) :

9600 8N1، نرخ داده 9600، 8 بیت داده، بدون پریتی و 1 بیت توقف – یکی از پروتکل‌های سریال بسیار پرکاربرد است. بنابراین، یک یا دو بسته داده از 9600 8 N1 شبیه چه خواهد شد؟ بیایید مثالی بزنیم

دستگاهی که کاراکترهای اسکی “O” و “K” را می‌فرستد باید دو بسته داده را ایجاد کند. کد اسکی O(حرف بزرگ) 79 است که به مقدار باینری 8 بیتی 01001111 تبدیل‌شده است، درحالی‌که مقدار باینری K 01001011 است. بقیه چیزهایی که باقی‌مانده‌اند بیت‌های همگام‌سازی را تشکیل می‌دهند.

به‌طور دقیق مشخص نشده است، اما معمولاً فرض می‌شود که اول بیت‌های کم‌ارزش داده انتقال داده می‌شوند. توجه کنید که هرکدام از دو بایت همان‌طور که از راست به چپ خوانده می‌شوند، ارسال می‌شوند.

ارتباط سریال

ازآنجاکه داده‌ها با نرخ 9600 بیت در ثانیه انتقال داده می‌شوند، زمان صرف شده هر یک از این بیت‌های بالا یا پایین (1 یا صفر)  است یا به‌عبارت‌دیگر 104 میکروثانیه برای هر بیت.

برای انتقال یک بایت داده، درواقع 10 بیت فرستاده می‌شود: بیت شروع، 8 بیت داده و بیت پایان. بنابراین، در 9600 bps، درواقع ما 9600 بیت در ثانیه یا 960 (9600/10) بایت در ثانیه ارسال می‌کنیم.

حالا که نحوه ایجاد مجموعه‌های سریال را میدانید، می‌توانیم به سراغ قسمت سخت‌افزاری برویم. در اینجا خواهیم دید که چگونه این 1 و 0 و نرخ داده آن در سطح سیگنال اجرا می‌شود!

سیم‌کشی و سخت‌افزار در ارتباط سریال

یک باس سریال فقط دو سیم دارد – یکی برای ارسال اطلاعات و دیگری برای دریافت. به همین ترتیب، دستگاه‌های سریال باید دارای دو پین سریال باشند:

  1. گیرنده RX
  2. فرستنده TX

سیم کشی و سخت افزار ارتباط سریال

توجه کنید که برچسب‌های RX و TX متناسب با خود دستگاه‌ها باشند. بنابراین RX از یک دستگاه باید به TX یک دستگاه دیگر متصل شود و بالعکس. شاید برای شما عجیب باشد که VCC به VCC باید وصل باشد، یا GND بهGND و MOSI   به MOSI، و غیره ، اما اگر بیشتر در موردش فکر کنید، می‌بینید که منطقی است. فرستنده باید با گیرنده صحبت کند نه فرستنده دیگری 🙂

مطلب پیشنهادی:  مبدل USB به SPI

یک رابط سریال قرارگرفته بین دو دستگاهی که هردوی آن‌ها داده‌ها را ارسال و دریافت می‌کنند، می‌تواند به‌صورت کاملاً دوطرفه یا نیمه دوطرفه باشد.

کاملاً دوطرفه یعنی هر دو دستگاه می‌توانند به‌طور هم‌زمان ارسال و دریافت انجام دهند.

ارتباط نیمه دوطرفه به این معنی است که دستگاه‌های سریال باید نوبتی ارسال و دریافت کنند.

برخی از باس های سریال ممکن است فقط یک اتصال بین دستگاه فرستنده و گیرنده داشته باشند. به‌عنوان‌مثال، LCD های فعال‌شده سریال (یک نوع ماژول نمایشگر با ارتباط سریال) فقط دریافت می‌کنند و هیچ اطلاعاتی برای بازگرداندن به دستگاه کنترلی ندارند. این چیزی است که به‌عنوان ارتباطات سریال ساده شناخته می‌شود. همه‌چیزی که نیاز دارید تنها یک سیم از فرستنده دستگاه master، به خط RX شنونده است.

پیاده‌سازی سخت‌افزار در ارتباط سریال

ازنظر مفهومی ارتباط سریال ناهمگام (آسنکرون) را پوشش داده‌ایم. ما می‌دانیم که چه سیم‌هایی نیاز داریم اما واقعاً ارتباط سریال چگونه در سطح سیگنال اجرا می‌شود؟ با روش‌های مختلفی اجرا می‌شود. استانداردهای زیادی برای سیگنالینگ سریال وجود دارد. بیایید به چندین پیاده‌سازی سخت‌افزاری رایج سریال نگاهی بیندازیم: سطح منطقی (TTL) و RS-232.

هنگامی‌که میکروکنترلرها و دیگر IC های سطح پایین به‌صورت سریال ارتباط برقرار می‌کنند، معمولاً این کار را در سطح (TTL (transistor-transistor logic انجام می‌دهند. سیگنال‌های سریال TTL که در رنج ولتاژ تغذیه‌ی میکروکنترلر وجود دارند – معمولاً 0 تا 3.3 ولت یا 5 ولت هستند. یک سیگنال در سطح VCC 5V,3.3V و غیره نشان‌دهنده یک خط بیکار (idle )، بیت باارزش 1، یا یک بیت توقف است. یک سیگنال (0V (GND  نشان‌دهنده یک بیت شروع یا یک بیت داده باارزش 0 است.

پیاده سازی سخت افزار ارتباط سریال

RS-232، که در برخی از کامپیوترهای قدیمی و لوازم جانبی یافت می‌شود، مانند سریال TTL بوده اما نمونه جدید آن است. سیگنال‌های RS-232 معمولاً بین -13 و 13 ولت می‌باشند، هرچند تنظیمات این امکان را می‌دهد که تمام سیگنال‌های بین +/- 3V تا +/- 25V را عبور داد. در این سیگنال‌ها ولتاژ کم (-5V، -13V، و غیره) خط idle، بیت توقف یا بیت داده باارزش 1 را نشان می‌دهد. سیگنال RS-232 بالا به معنی یک بیت شروع یا بیت داده باارزش 0 است. از این نظر برعکس سریال TTL است.

پیاده سازی سخت افزار

بین دو استاندارد سریال سیگنال، TTL برای پیاده‌سازی در مدارهای امبدد بسیار ساده‌تر است. اما، سطوح پایین ولتاژ به تلفات خطوط انتقال طولانی حساس‌تر هستند. RS-232، یا استانداردهای پیچیده‌تر مانند RS-485، برای انتقال‌های سریال طولانی مناسب هستند.

هنگامی‌که دو دستگاه سریال را به هم وصل می‌کنید، نکته مهم این است که ولتاژ سیگنال آن‌ها باهم مطابقت داشته باشد. شما نمی‌توانید یک دستگاه سریال TTL را مستقیماً  به یک باس RS-232 وصل کنید. باید این سیگنال‌ها را شیفت ولتاژ دهید!

در ادامه، یک ابزار میکروکنترلرها که برای تبدیل اطلاعات موجود در باس موازی به یک رابط سریال استفاده می‌شود را، بررسی می‌کنیم.

واحد یا سخت افزار UART

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

گیرنده / فرستنده‌ی آسنکرون (غیر هم‌زمان) جهانی (UART)، یک از بلوک‌های مداری است که مسئول برقراری ارتباط سریال می‌باشد. اساساً، UART به‌عنوان واسطه بین ارتباط موازی و سریال عمل می‌کند. در یک سمت UART، یک باس متشکل از هشت خط داده یا بیشتر (به همراه برخی از پین‌های کنترلی) وجود دارد، در سمت دیگر دو سیم سریال RX و TX.

UARTs ارتباط سریال

رابط UART بسیار ساده. ارتباط ازیک‌طرف موازی بوده و از طرف دیگر سریال می‌باشد.

UART ها به‌عنوان IC های جداگانه‌ای وجود دارند، اما بیشتر آن‌ها داخل میکروکنترلرها یافت می‌شوند. شما باید دیتا شیت میکروکنترلر خود را بررسی کنید تا ببینید آیا ارتباط UART دارد یا نه؟ برخی از آن‌ها هیچ UART ی ندارند، برخی از آن‌ها یکی، و برخی تعداد زیادی دارند. به‌عنوان‌مثال، آردوینو Uno – که بر پایه ATmega328 (میکروکنترلر قدیمی) بناشده است- دارای یک واحد UART است، درحالی‌که آردوینو Mega – که بر اساس ATmega2560 ساخته‌شده – دارای 4 UART بزرگ است.

همان‌طور که حروف R و T در معنای اصلی UART نشان می‌دهند، UART ها مسئول ارسال و دریافت اطلاعات سریال هستند. در قسمت انتقال، یک UART باید بسته داده را ایجاد کرده – با اضافه کردن بیت‌های پریتی و همگام‌سازی- و سپس این بسته را از خط TX بازمان دقیق ارسال کند (با توجه به نرخدادهتعیین‌شده). در انتهای دریافت، UART باید خط RX را با توجه به نرخ‌های مناسب با نرخ داده هدایت بکند، بیت‌های همگام‌سازی را جدا کرده و داده‌ها را استخراج کند.

مطلب پیشنهادی:  مدار منطقی - منطق دیجیتال

UARTs ارتباط سریال

نمای داخلی بلوک دیاگرام UART (با توجه به دیتا شیت STA16C550 Exar)

UART های پیشرفته‌تر ممکن است داده‌های دریافت شده خود را به یک بافر انتقال دهند، به‌طوری‌که می‌تواند تا زمانی که میکروکنترلر به آن دسترسی پیدا کند، در آنجا بماند. UART ها معمولاً داده‌های بافر خود را بر اساس اولویت اول (FIFO) منتشر می‌کنند. بافرها می‌توانند به‌اندازه چند بیت یا هزاران بایت بزرگ باشند.

UART نرم‌افزاری

اگر یک میکروکنترلر UART نداشته باشد (به تعداد کافی نباشند)، رابط سریال می‌تواند Bit-banged شود – یعنی می‌تواند به‌طور مستقیم توسط پردازنده کنترل شود. این روش کتابخانه‌های آردوینو مانند «سریال uart نرم‌ افزاری» است. Bit-banging نوعی پردازشگر فشرده بوده و معمولاً مثل UART دقیق نیست، اما جایگزین خوبی است!

اشتباهات رایج در ارتباطات سریال

این اشتباهات در مورد همه ارتباطات سریال وجود دارد. می‌خواهم چند اشتباه رایج که برای هر مهندسی در هر سطحی از تجربه ممکن است اتفاق بیفتد را معرفی کنم:

RX-to-TX

TX-to-RX

بسیار ساده به نظر می‌رسد، اما این اشتباهیست که بیش از چند بار برایم پیش‌آمده است. وقتی‌که می‌خواهید برچسب‌ها را مطابقت دهید، همیشه از خطوط RX و TX بین دستگاه‌های سریال مطمئن شوید.

1-6-1- RX-to-TX، TX-to-RX

عدم تطابق نرخ داده UART

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

عدم تطابق نرخ باود

داده‌های ارسال‌شده با سرعت 9600 بیت در ثانیه و دریافت شده با سرعت 19200 بیت در ثانیه. عدم تطابق در نرخ داده = بی‌مصرف.

اختلال در باس

ارتباط سریال فقط برای برقراری ارتباط بین دو دستگاه توسط یک باس سریال طراحی‌شده است. اگر بیش از یک دستگاه برای انتقال در همان خط تلاش کند شما می‌توانید هشدار Bus-Contention را فعال کنید. دون دون دون…

به‌عنوان‌مثال، اگر شما یک ماژول GPS را به آردوینو خود وصل می‌کنید، باید خط TX ماژول را به خط RX آردوینو وصل کنید. اما پین RX آردوینو در حال حاضر به پین TX مبدل USB به سریال متصل است، مبدل USB به سریال هر بار برای پروگرم کردن آردوینو و یا استفاده از مانیتور سریال استفاده می‌شود. این مسئله، وضعیت بالقوه‌ای را ایجاد می‌کند که در آن هر دو ماژول GPS و تراشه FTDI سعی می‌کنند به‌صورت هم‌زمان در یک خط انتقال انجام دهند.

اختلال در باس

ارسال دو فرستنده به یک گیرنده که باعث ایجاد اختلال در باس می‌شود.

تلاش دو دستگاه برای انتقال اطلاعات به‌صورت هم‌زمان و در یک خط، بد است! در بهترین حالت هیچ‌یک از دستگاه‌ها نمی‌توانند داده‌های خود را ارسال کنند. در بدترین حالت، خطوط انتقال هر دو دستگاه، از کار می‌افتند (به‌ندرت این اتفاق می‌افتد و معمولاً در مقابلش محافظت انجام می‌شود).

اتصال چندین دستگاه گیرنده به یک دستگاه فرستنده می‌تواند امن باشد. نه اینکه با تنظیمات قابل‌اجرا باشد بلکه احتمالاً توسط یک مهندس سرسخت ممکن بوده و کار خواهد کرد. به‌عنوان‌مثال، اگر شما یک ال سی دی سریال را به آردوینو وصل کنید، ساده‌ترین روش ممکن این است که خط RX ماژول ال سی دی به خط TX آردوینو وصل باشد. خط TX آردوینو علاوه بر آن به خط RX پروگرامر USB متصل است، اما هنوز هم تنها یک دستگاه تحت کنترل خط انتقال قرار دارد.

اختلال در باس

توزیع یک خط TX به این شکل هنوز هم می‌تواند ازنظر سیستم‌عامل خطرناک باشد، زیرا شما نمی‌توانید انتخاب کنید که چه دستگاه، چه اطلاعاتی را دریافت کند. ال سی دی دریافت داده‌هایی که برای آن مفهومی ندارند و می‌توانند آن را به وضعیت ناشناخته‌ای ببرند را متوقف می‌کند.

به‌طورکلی – یک باس سریال، به همراه دو دستگاه سریال مناسب است!

منابع و مطالعه بیشتر

با این دانش جدید و درخشان از ارتباط سریال، مفاهیم، ​​پروژه‌ها و تکنولوژی‌های جدید زیادی برای کشف وجود دارد.

آیا می‌خواهید بیشتر درباره سایر استانداردهای ارتباط بدانید؟ ممکن است مطالب مرتبطی باشد؟ پروتکل‌های ارتباطی زیر را بررسی کنید.

ارتباط جانبی سریال (SPI)

SPI معمولاً برای اتصال میکروکنترلرها به وسایل جانبی مانند سنسورها، شیفت رجیستر‌ها و کارت‌های SD استفاده می‌شود.

I2C

مقدمه‌ای بر I2C، یکی از پروتکل‌های اصلی ارتباطات مدارهای امبدد بوده و امروزه مورداستفاده قرار می‌گیرد.

Source: https://learn.sparkfun.com/tutorials/serial-communication

AST-CAN485

AST CAN485 یک آردوینو کوچک به شکل فشرده است. علاوه بر تمام ویژگی‌های معمول آن، پورت‌های CAN و RS485 را در اختیار شما قرار می‌دهد که امکان اتصال سریع و آسان به بسیاری از دستگاه‌های صنعتی را فراهم می‌کند.

اگر شما میخواهید میکروکنترلر یا برد آردوینو خود را به پورت سریال کامپیوتر وصل کنید احتمالا نیاز به یک نرم افزار خواهید داشت که میتونید نرم افزار Teraterm را دانلود کنید. و همچنین برای توصیه میکنم برنامه نویسی پورت سریال را هم یادبگیرید.

اگر این نوشته‌ برایتان مفید بود لطفا کامنت بنویسید.

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

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

8 دیدگاه

  1. ممنون خیلی مفید بود

  2. مچکرم خیلی عالی و مفید و کامل

  3. ممنون.بسیار عالی بود.

  4. سلام.
    فوقالعاده توضیح دادین.عای بود واقعا ممنون

  5. پریسا علیپور

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

  6. مفید بود ممنون

  7. از مطالب خوبتون بسیار سپاسگزارم.