در دنیای صنعتی امروز ، انتقال دیتا به عنوان یکی از مهمترین بخشهای پروسه های کنترلی شناخته شده است و طراحان در تلاش برای بوجود آمدن پروتکل های جدیدی با ایمنی ، صحت و سرعت بالا در انتقال دیتا هستند. در این مقاله ، در ابتدا به معرفی تبادل دیتا (Data Communication) پرداخته و برخی از مباحث کلیدی آن از جمله ارتباط سریال و موازی ، فزستنده و گیرنده ، اتصالات و تبادل شفاف ، ساختار Master-Slave ، سرعت انتقال ، مدوله سازی ، Handshaking را مختصراً توضیح می دهیم. سپس به قسمت اصلی مقاله ، معرفی پروتکل I2C می پردازیم . این پروتکل توسط شرکت فیلیپس در دهه 1980 جهت ارتباط دستگاههای TV با پردازشگر ابداع شده است. که بدلیل سادگی و سرعت مناسب آن مورد توجه دیگر سازندگان قطعات الکترونیک قرار گرفت و هم اکنون به عنوان یکی از پروتکل های کاربردی در صنعت شناخته شده است. در این مقاله به جزئیات فنی این پروتکل و کاربردهای آن در بخشهای مختلف پرداخته ایم.
چگونه تبادل دیتا انجام می پذیرد؟
هدف از تبادل دیتا ، انتقال دیت بین 2 یا تعداد بیشتری واحد می باشد. به عنوان یک اصل ، آنها می توانند کاراکتر، دستورات باشند که نیاز به نمایش دارند.ساده ترین سطح زبان کامپیوتر ، کاراکترهای باینری است که شامل 7 یا 8 ، عدد صفر یا یک می باشد. اکثر کامپیوترها با این سطح کار می کنند.
تبادل دیتا اساساً با صفر و یک صورت می گیرد.
یکی از استانداردهای معمول در کامپیوترها ، استاندارد ASCII می باشد که شامل 128 کاراکتر است که هر کدام از آنها از 7 بیت تشکیل شده است. باید توجه داشت که ارتباطات در داخل کامپیوتر با سرعت زیادی انجام می شود و برای ارتباط با محیط خارج باید ارتباطات همزمان شوند و همچنین باید صحت تبادل دیتا ، کنترل شود.
استانداردهای مختلفی از ASCII وجود دارد. به عنوان مثال Extended ASCII که از هشتمین بیت نیز برای انتقال data استفاده می کند.
یک بیت در هر زمان یا یک بایت بطور کامل
دو روش برای انتقال دیتا وجود دارد :
1- سریال
2- موازی
در انتقال موازی ، برای هر بیت یک مسیر در نظر گرفته شده است. بنابراین کاراکترها می توانند بطور همزمان ارسال شوند. با توجه به این مزیت، که سرعت بالای انتقال است این روش در سیستمهای ارتباطی کوتاه مورد استفاده قرار می گیرد.
در مقابل ، در روش سریال هر بیت در هر لحظه فرستاده می شود. بنابراین پروتکل ارتباطی ، باید بتواند برای مقصد ، ابتدا و انتها را مشخص کند. علاوه بر این، سرعت انتقال نیز با واحد bit/s معرفی می شود.
یک کاراکتر در یک زمان یا یک جمله کامل
ما دو روش برای انتقال سریال داریم :
انتقال غیر همزمان (Asynchronous)
انتقال همزمان (synchronous)
در انتقال غیر همزمان ، ترانسمیتر، کاراکترها را در یک لحظه با بیت start و stop می فرستد. و گیرنده هر بیت start را که دریافت می کند، بقیه بیتها را به عنوان کاراکتر تفسیر می کند. و بیت stop گیرنده را ریست می کند. در حدود 90 تا 95 درصد از انتقال نوع سریال data بصورت غیر همزمان است.
در انتقال همزمان همه پیام ها در یک لحظه فرستاده می شود. سرعت انتقال توسط خط clock بر روی یک سیم جداگانه یا بصورت مدوله شده بر روی سیگنال دیتا ، تعیین می شود. عیب روش غیر همزمان در مقابل روش همزمان این است که حدود 20 الی 25 درصد پیغام شامل بیتهای پریتی می باشد.
فرستنده و گیرنده
در مبحث تبادل دیتا ، سخت افزارهایی با نام فرستنده و گیرنده وجود دارد. مانند PC و ربات که می توانند هم به عنوان گیرنده و هم به صورت فرستنده در یک زمان عمل کنند.
این انتقال به سه روش می تواند انجام شود:
simplex : انتقال دیتا تنها یک طرفه است و از جانب فرستنده به گیرنده ، روی یک line می باشد.
Half duplex : انتقال دیتا ، به صورت دو طرفه می باشد ولی نه بصورت همزمان بلکه روی دو line جداگانه انجام می پذیرد.
Full duplex : انتقال دیتا ، به صورت دو طرفه ، همزمان روی یک line انجام می پذیرد.(مانند انتقال دیتا در مکالمات تلفنی)