UART یک پروتکل سخت افزاری برای برقراری ارتباط بین دستگاههای مختلف در شبکه میباشد
پروتکل UART چیست؟
پروتکلهای ارتباطی نقش مهمی را در سازماندهی ارتباطات بین دستگاههای مختلف بازی میکنند. این پروتکل ها بر اساس نیازهای هر سیستم در حالتهای متفاوتی طراحی شدهاند و با تعریف قوانین مشخص که در دستگاههای مختلف مشترک میباشد میتوانند ضامن یک ارتباط موفق و پایدار در شبکه باشند.
سیستمهای جاسازی شده، میکروکنترلرها و کامپیوترها غالباً از UART به عنوان پروتکلی سخت افزاری برای برقراری ارتباط بین دستگاههای مختلف استفاده میکنند. در میان پروتکلهای سخت افزاری موجود، UART برای ارسال و دریافت داده تنها از دو سیم بهره میبرد.
این پروتکل سخت افزاری با وجود کاربرد گسترده در طراحی شبکهها در تمام موارد بهینهسازی نشده به عنوان مثال استفاده از ماژول UART در یک میکروکنترلر چندان مطلوب و مناسب نخواهد بود.
بر اساس تعاریف، UART یک پروتکل سخت افزاری برای برقراری ارتباط بین دستگاههای مختلف در شبکه میباشد. این پروتکل از شیوه ارتباطی سریال آسنکرون بهره میگیرد که نرخ انتقال داده در آن قابل تنظیم است.
غیر سنکرون بودن به معنای این است که هیچ سیگنال کلاکی برای سنکرون کردن بیتهای خروجی که از دستگاه فرستنده به گیرنده انتقال مییابند، وجود ندارد.
دو سیگنال در هر UART به صورت زیر نام گذاری میشود :
__ فرستنده TX
__ گیرنده RX
هدف اصلی فرستنده و گیرنده در هر دستگاه دریافت و ارسال دادههای سریال بر بستر ارتباطی سریال خواهد بود .
بخش فرستنده UART به یک باس کنترلکننده دادهها متصل شده و اطلاعات به صورت موازی به کنترل کننده ارسال میشود، سپس دادهها به صورت سریال و بیت به بیت روی خط انتقال (سیم) برای گیرنده UART فرستاده میشوند. گیرنده UART نیز دادههای سریال را پیش از انتقال به گیرنده اصلی به صورت موازی درمی آورد.
درواقع خطوط UART یک نوع واسط ارتباطی هستند که اطلاعات را از یک دستگاه میگیرند و به دستگاهی دیگر انتقال میدهند فراموش نکنید که دستگاه UART پین هایی منحصر به فرد را به انتقال یا دریافت داده اختصاص داده و یک پین نمیتواند هم خروجی و هم ورودی باشد .
برای UART و اکثر پروتکلهای ارتباطی، نرخ انتقال داده باید در دستگاه گیرنده و فرستنده یکسان باشد. نرخ انتقال داده سرعت حرکت دادهها در یک کانال ارتباطی را مشخص میکند. در پورت سریال، نرخ انتقال داده برابر با حداکثر تعداد بیتهایی است که در یک ثانیه از طریق خط انتقال ارسال یا دریافت میشود.
جدول خلاصه ویژگیهای پروتکل UART
تعداد سیم ها
|
2
|
---|---|
سرعت
|
9600, 19200, 38400, 57600, 115200, 230400, 460800, 921600, 1000000, 1500000
|
متدهای انتقال
|
آسنکرون (Asynchronous)
|
حداکثر تعداد مسترها
|
1
|
حداکثر تعداد اسلیوها
|
1
|
رابط UART از سیگنال کلاک برای سنکرون کردن گیرنده و فرستنده استفاده نمیکند، بلکه این پروتکل اطلاعات را به صورت غیرسنکرون انتقال میدهد. در UART فرستنده یک رشته بیت را بر حسب سیگنال کلاک داخلیاش تولید میکند و گیرنده نیز از سیگنال کلاک داخلیاش برای نمونهبرداری از اطلاعات ورودی استفاده میکند. گیرنده و فرستنده در صورتی با یکدیگر سنکرون خواهند شد که نرخ انتقال و دریافت داده یکسان باشد. اگر گیرنده و فرستنده با یکدیگر سنکرون نباشند، زمانبندی ارسال و دریافت دادهها به مشکل خواهد خورد و این امر به نوبه خود باعث ایجاد خطا در هندل کردن دادهها میشود.
تلورانس مجاز برای اختلاف بین نرخ انتقال و دریافت داده حداکثر ۱۰ ٪ میباشد .
انتقال داده در UART
در UART انتقال داده در قالب پاکتهایی مجزا صورت میگیرد. یک پاکت حاوی یک بیت آغازگر ، چارچوب داده ، بیت مقایسه و بیت خاتمه میباشد.
بیت آغازگر
خط انتقالی که بر اساس پروتکل UART بنا شده سطح ولتاژ بالایی در حالت عدم ارسال اطلاعات دارد. برای شروع انتقال داده فرستنده UART سطح ولتاژ خط انتقال را به مدت یک سیکل کلاک پایین میآورد. هنگامی که گیرنده UART تغییر سطح ولتاژ را احساس کند شروع به خواندن بیتهای داخل چارچوب داده میکند ( سرعت خواندن بیتها با نرخ دریافت داده برابر است )
چارچوب داده
چارچوب داده حاوی اطلاعات مشخصی است که در حال ارسال میباشند. این بخش دارای ۵ الی ۸ بیت میباشد. اگر بیت مقایسه به کار برده نشود، طول چارچوب داده به ۹ بیت میرسد. در اکثر مواقع بیتی که از اهمیت کمتری برخوردار است، در ابتدا ارسال خواهد شد.
بیت مقایسه
بیت مقایسه نشانگر زوج یا فرد بودن یک عدد است. بیت مقایسه به گیرنده UART اعلام میکند که داده در طول انتقال دچار تغییر شده است یا خیر. همانطور که میدانید بیتها در معرض تششعات الکترومغناطیس دچار تغییر خواهند شد. علاوه بر این تششعات الکترومغناطیس میتواند نرخ انتقال داده را در کابل های طویل تغییر دهد.
پس از اینکه گیرنده UART خواندن چارچوب داده را به اتمام برساند شروع به شمارش تعداد بیتها با ارزش ۱ میکند تا متوجه شود تعداد این بیتها زوج است یا فرد. اگر بیت مقایسه صفر باشد، تعداد یکها در چارچوب داده باید زوج باشد و اگر بیت مقایسه ۱ باشد، تعداد یکها در چارچوب داده فرد است .
اگر بیت مقایسه با چارچوب داده همخوانی داشته باشد دستگاه UART متوجه خواهد شد که انتقال بدون هیچ خطایی صورت گرفته اما اگر بیت مقایسه صفر باشد و تعداد یک ها در چارچوب داده فرد باشد یا اگر بیت مقایسه یک باشد و تعداد یک ها در چارچوب داده زوج باشد خطایی رخ داده و بیتها در چارچوب داده دستخوش تغییر شدهاند.
بیت خاتمه
به منظور مشخص کردن خاتمه یک پاکت داده از بیت خاتمه استفاده میشود و گیرنده UART پس از دریافت بیت خاتمه، سطح ولتاژ خط انتقال را برای مدت کوتاهی بالا خواهد برد.
مزایا و معایب UART
هیچ پروتکل ارتباطی بدون نقص نیست. در اینجا به برخی از فواید و مضرات پروتکل UART اشاره شده. این اطلاعات میتواند به شما کمک کند تا پی ببرید استفاده از این پروتکل برای شبکه شما مناسب خواهد بود یا خیر.
مزایا
معایب
ــ تنها به دو سیم نیاز دارد .
ــ سیگنال کلاک ضروری نیست .
ــ دارای بیت مقایسه برای تشخیص خطا میباشد .
ــ ساختار بسته های داده میتواند تغییر کند .
ــ اطلاعات زیادی درباره این پروتکل وجود دارد و شبکههای زیادی از این پروتکل استفاده میکنند .
ــ سایز چارچوب داده محدود است (حداکثر ۹ بیت )
ــ از سیستم اسلیو و مستر چند گانه پشتیبانی نمیکند .
ــ نرخ انتقال اطلاعات هر UART نسبت به دیگر دستگاهها باید حداکثر ۱۰٪ تلورانس داشته باشد .
1 دیدگاه در “UART چیست ؟”
عالی ❤️❤️❤️