امروز انتقال اطلاعات نقش مهمی در زندگی ما ایفا میکند. روشهای مختلفی برای انتقال اطلاعات وجود دارد که هر کدام از آنها در جای خود کاربردی هستند. میبایست با توجه به کاربرد و امکانات موجود، بهترین روش را انتخاب کرده تا با بهترین هزینه به بالاترین کیفیت دست یابیم. در این مقاله روشهای انتقال را بررسی کرده و به طور خاص به توضیح ارتباط سریال خواهیم پرداخت. در انتها نیز با روشهای انتقال اطلاعات در پورت سریال آشنا میشویم.
به طور کلی برای انتقال اطلاعات از 2 روش میتوان استفاده کرد:
در انتقال موازی تمامی بیتهای یک داده، به طور همزمان طی یک پالس ساعت منتقل میشوند. برای برقراری این ارتباط باید برای هر بیت، یک سیم از مبدأ به مقصد در نظر گرفته شود.
در صورتی که دادههای ما 8 بیتی باشد، نیاز به 8 رشته سیم برای انتقال داده داریم و یا اگر دادههای ما 16 بیتی باشد، نیاز به 16 رشته سیم خواهیم داشت.
این روش برای انتقال اطلاعات در مسیرهای کوتاه قابل استفاده است. با توجه به اینکه تمام بیتها به طور هم زمان به مقصد میرسند، سرعت انتقال اطلاعات بسیار زیاد است.
اما اگر فاصله مبدأ و مقصد زیاد باشد، هزینه ناشی از ایجاد ارتباط (سیم کشی) بسیار زیاد خواهد شد. به نوعی استفاده از روش ارتباط موازی در فاصلههای طولانی صرفه اقتصادی خوبی ندارد.
در انتقال سری و استفاده از پورت سریال، طی هر پالس ساعت یک بیت منتقل میشود. برای برقراری ارتباط باید حداقل یک سیم از مبدأ به مقصد وجود داشته باشد.
بنابراین برای انتقال یک داده 8 بیتی، به 8 پالس کلاک نیاز خواهیم داشت و انتقال داده در 8 مرحله انجام میشود.
برای پیادهسازی ارتباط سریال،معمولاً از یک شیفت رجیستر استفاده میشود. به این صورت که دادهای مورد نظر برای انتقال را مرتباً به سمت راست شیفت داده و بیت اضافی را از طریق یک سیم به مقصد منتقل میکنند.
مزیت اصلی روش سریال نسبت به انتقال موازی، این است که اگر مبدا و مقصد از هم دور باشند، هزینه اجرای ارتباط (سیم) به شدت کاهش خواهد یافت.
اما سرعت انتقال اطلاعات به صورت سریال پایینتر از روش موازی است و این مسئله به عنوان یکی از اصلیترین معایب این نوع انتقال است.
البته با وجود تکنولوژیهای جدید در ارتباطات و افزایش سرعت انتقال، این گونه مشکلات تا حدودی رفع شده است.
ارتباط سریال میتواند با توجه به نحوه ارتباط فرستنده و گیرنده، به 2 روش آسنکرون و سنکرون صورت گیرد.
در این روش برای انتقال اطلاعات از فرستنده به گیرنده تنها از یک سیم استفاده میشود. بیتهای مربوط به داده به ترتیب بر روی این سیم قرار گرفته و برای گیرنده ارسال میشوند.
از طرفی برای کمک به گیرنده در دریافت صحیح و به موقع اطلاعات، علاوه بر بیتهای اصلی، یک بیتِ شروع در ابتدای داده و یک بیتِ پایان در انتهای آن فرستاده میشود. همچنین در صورتی که گیرنده بخواهد از صحت اطلاعات دریافت شده اطمینان حاصل کند، میتوان علاوه بر بیتهای قبلی، یک بیت توازن (Parity) نیز فرستاد.
به عبارت دیگر روند ارسال بیتها به کمک ارتباط سریال غیرهمزمان به صورت زیر خواهد بود:
گیرنده با انتظار و جستجوی بیت شروع، خود را با فرستنده همزمان میکند.
برای درک بهتر، فرض کنید میخواهیم عدد 75 در مبنای هگز (75H) را با توازن زوح در منطق آسنکرون ارسال کنیم. در اینصورت به روش زیر عمل میکنیم.
75= ( 0 1 1 1 0 1 0 1 ) |
با توجه به اینکه تعداد یک ها در عدد 75 فرد میباشد، بیت توازن را مقدار 1 در نظر میگیریم تا توازن زوج برقرار شود. معمولا در اکثر روشهای انتقال سریال، انتقال بیتهای داده را از بیت کم ارزش شروع میکنند.
فرستنده برای تنظیم زمان هر بیت از یک پالس ساعت که معمولا تقسیمی از فرکانس کلاک اصلی است استفاده خواهد کرد.
فرکانس این پالس ساعت همان نرخ انتقال (Baud rate) را تعیین میکند. مثلاً اگر بخواهیم 9800 بیت در هر ثانیه انتقال دهیم، فرکانس پالس ساعت ارتباط معادل 9800 هرتز خواهد بود و بدین طریق زمان هر بیت 1/9800 ثانیه خواهد بود.
در این روش، حداقل 2 سیم بین فرستنده و گیرنده لازم داریم. یک سیم حاوی دادهای است که به طور سریال در آمده و سیم دیگر حاوی همان پالس ساعتی است که فرستنده، دادهها را بر اساس آن زمانبندی و آماده کرده است. گیرنده به کمک همان پالس ساعت که از فرستنده ارسال شده، خود را تنظیم و همزمان میکند تا از روی خط داده، اطلاعات را را به درستی بردارد.
همان مثال قبل را در نظر بگیرید. این بار میخواهیم عدد 75 در مبنای هگز را به صورت سنکرون انتقال دهیم.
چون گیرنده پالس ساعت ارسالی از طرف فرستنده را نیز دارد، در لبه بالاروندهی آن از دادهها نمونه برداری کرده و آنها را در یک ثبات به صورت 8 بیتی ذخیره میکند.
از آنجایی که پالس ساعت در اختیار گیرنده میباشد دیگر نیازی به بیت شروع و پایان برای هر داده 8 بیتی نیست. البته فقط در ابتدای انتقال دادهها، یک کاراکتر سنکرون، ارسال میشود و بالافاصله بیتهای داده اصلی فرستاده خواهد شد.
این موضوع باعث بالا رفتن سرعت انتقال دادهها در روش سنکرون میگردد.
اگر بخواهیم یک میلیون بایت را در روش آسنکرون ارسال کنیم، علاوه بر 8 میلیون بیت مربوط به داده اصلی، میبایست 2 میلیون بیت شروع و پایان نیز فرستاده شود. زیرا برای هر داده 8 بیتی، یک بیت شروع و یک بیت پایان مورد نیاز است.
به این صورت زمان انتقال داده و حجم دادههای ارسالی به دلیل وجود بیتهای بیشتر، افزایش خواهد داشت.
در حالی که در روش سنکرون به دلیل وجود پالس ساعتی که فرستنده، داده ها را بر اساس آن ارسال میکند، نیازی به ارسال آن 2 میلیون بیت شروع و پایان نبوده و به محض برقراری ارتباط، داده های 8 بیتی پشتِ سر هم ارسال خواهند شد.
در روش ارتباط همزمان، فرستنده یا گیرنده میتوانند به صورت Master یا Slave تعریف شوند. هنگامی که فرستنده Master تعریف میشود پالس ساعت، توسط فرستنده برای گیرنده ارسال شده و شروع انتقال اطلاعات توسط Master مشخص میشود.
اما در صورتی که فرستنده Slave تعریف شود اجازه ارسال پالس ساعت را نخواهد داشت! در این حالت گیرنده که نقش Master را دارد پالس ساعت را برای فرستنده ارسال کرده و فرستنده موظف است دادهها را بر اساس پالس ساعت دریافتی از آن تنظیم و ارسال نماید.
در حالتی که فرستنده Master تعریف شود، گیرنده نقش Slave خواهد داشت و بالعکس؛ اگر فرستنده Slave باشند گیرنده نقش Master را بازی خواهد کرد.
کاربرد ارتباط Master-Slave بیشتر در زمانی است که تعداد زیادی دستگاه بخواهند همزمان با یکدیگر ارتباط سریال داشته باشند. بهرهگیری از این روش سبب برقراری یک استراتژی مناسب برای استفاده بهینه از خطوط ارتباطی و زمان بندی مناسب خواهد شد.
به طور کلی سه مدل ارتباطی در حالت سریال وجود دارد
در این روش اطلاعات فقط در یک جهت انتقال یافته و جای فرستنده و گیرنده و نقش آنها عوض نمیشود. مانند ارسال داده از کامپیوتر به چاپگر، که کامپیوتر در این حالت فرستنده و چاپگر گیرنده اطلاعات میباشد.
در این روش اطلاعات میتواند در دو جهت انتقال یابد؛ اما در هر زمان فقط امکان انتقال در یک جهت وجود دارد. یعنی عملیات ارسال و دریافت را نمیتوان به طور همزمان انجام داد.
بیسیمهایی که برای ارتباط استفاده میشود را میتوان مثالی از این مدل ارتباط دانست. پروتکل ارتباط دو سیمه (I2C) نیز دارای خاصیت نیمه دوطرفه میباشد. این خاصیت بیشتر در مواقعی است که یک کانال ارتباطی مشترک برای ارسال و دریافت در نظر گرفته میشود.
در این روش اطلاعات در یک لحظه در هر دو جهت میتواند انتقال یابد. پروتکل SPI یک مثال از این نوع ارتباط میباشد. خطوط تلفن معمولی نیز از این نوع ارتباط استفاده میکنند.
پروتکل سریال USART یکی از پروتکلهایی است که توسط انواع کامپیوترها پشتیتبانی میشود. برای برقراری ارتباط بین میکروکنترلر و کامپیوترها نیز اکثراً از این پروتکل استفاده میشود.
در میکروکنترلر ATmega32 قابلیتهای متنوعی برای پروتکل USART در نظر گرفته شده است؛ برخی از آنها عبارتند از:
برای برقراری ارتباط بین دستگاههای مختلف به صورت سریال، روشهای مختلفی برای انتقال اطلاعات وجود دارد. تعدادی از آنها از جمله RS232 و USB در کامپیوتر پشتیبانی میشود. برای برقراری ارتباط سریال بین دو میکروکنترلر مختلف نیز میتوان از پروتکلهایی نظیر RS232 ، RS485 ، I2C (دوسیمه) ، 1 Wire (تک سیمه) ، SPI و USB استفاده کرد.
در این مقاله انواع روشهای انتقال را بررسی کردیم و به طور مفصل به بررسی انواع ارتباط در پورت سریال پرداختیم. با ارتباطات همزمان (Synchronous) و غیرهمزمان (Asynchronous) آشنا شدیم و انواع مدلهای ارتباطی را شناختیم.
سون لرن • آموزش...برچسب : نویسنده : استخدام کار 7learn بازدید : 264