پروتکل I2C، ادغامی از USART و SPI توسط Philips

پروتکل I2C، ادغامی از USART و SPI توسط Philips
218 بازدید
۱۳۹۹-۰۷-۰۵
4 دقیقه
  • نویسنده: Sisoog Os
  • درباره نویسنده: کارآفرین, تولید کننده, طراح الکترونیک و ....

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

  • USART (Universal Synchronous/Asynchronous Receiver/Transmitter)
  • SPI (Serial Peripheral Interface)
  • I2C (Inter-Integrated Circuit)

 در این میان، I2C که در دهه ۸۰ میلادی توسط شرکت Philips معرفی شد، نوعی ترکیب هوشمند از دو پروتکل قبلی محسوب می‌شود. این پروتکل نه‌تنها توانسته است ویژگی‌های مثبت SPI و USART را با هم تلفیق کند، بلکه به دلیل سادگی و کارایی بالا، به یکی از پرکاربردترین روش‌های ارتباطی در طراحی سیستم‌های امبدد تبدیل شده است.

 پیدایش پروتکل I2C

شرکت Philips که امروزه با نام NXP Semiconductors شناخته می‌شود، در سال ۱۹۸۲ پروتکل I2C را معرفی کرد. هدف اصلی این پروتکل، ساده‌سازی ارتباط بین آی‌سی‌ها روی یک برد مدارچاپیPCB) ) بود. در آن زمان، افزایش تعداد تراشه‌ها در سیستم‌های دیجیتال باعث شد طراحان با مشکل شلوغی مسیرهای ارتباطی مواجه شوند. I2C با استفاده از تنها دو خط سیگنال، به نام‌های SDA (Serial Data Line) و SCL (Serial Clock Line)، راه‌حلی جمع‌وجور، اقتصادی و قابل‌اعتماد برای این مشکل ارائه داد.

در مقایسه با SPI که حداقل به چهار سیم نیاز دارد و USART که نیازمند تنظیم دقیق پارامترهای آسنکرون است، I2C راهی میان‌بر و منعطف فراهم می‌کند. به همین دلیل، می‌توان آن را به‌نوعی ادغام مفهومی از دو پروتکل USART و SPI دانست که در قالبی ساده‌تر ارائه شده است.

معماری و عملکرد

پروتکل I2C یک باس سریال از نوع سنکرون است، یعنی ارسال و دریافت داده‌ها در آن با کمک یک سیگنال کلاک مشترک انجام می‌شود. برخلاف پروتکل SPI که تنها اجازه می‌دهد یک دستگاه به‌عنوان Master و بقیه به‌عنوان Slave عمل کنند، و همچنین متفاوت از USART که بیشتر برای ارتباط مستقیم بین دو دستگاه به کار می‌رود، I2C امکان ارتباط چند دستگاه Master با چندین دستگاه Slave را فراهم می‌کند. این یعنی چند دستگاه می‌توانند به‌طور هم‌زمان به این باس متصل باشند و داده رد و بدل کنند. جالب‌تر اینکه خود پروتکل I2C مکانیزمی برای مدیریت اولویت‌ها و جلوگیری از تداخل بین Masterها دارد، به‌طوری‌که اگر دو Master بخواهند هم‌زمان شروع به ارسال داده کنند، پروتکل به‌طور خودکار تشخیص می‌دهد کدام‌یک باید ادامه دهد و کدام‌یک صبر کند.

هر دستگاهی که روی باس I2C قرار دارد، دارای یک آدرس منحصربه‌فرد است که معمولاً ۷ بیتی (و گاهی ۱۰ بیتی) است. Master برای آغاز ارتباط، آدرس دستگاه موردنظر را روی باس ارسال می‌کند و تنها دستگاهی که این آدرس را شناسایی کند، پاسخ می‌دهد. این مکانیزم آدرس‌دهی، امکان ارتباط با ده‌ها دستگاه مختلف را تنها با دو خط سیگنال فراهم می‌سازد.

یکی از نکات برجسته I2C، وجود مکانیزم تأیید دریافت یا به اصطلاح ACK/NACK است. پس از ارسال هر بایت، گیرنده با ارسال یک بیت ACK (Acknowledgement) تأیید می‌کند که داده را دریافت کرده است. در غیر این صورت، با NACK پاسخ می‌دهد که نشان‌دهنده خطا یا اتمام تبادل داده است. این مکانیزم به بالارفتن قابلیت اطمینان در تبادل اطلاعات کمک می‌کند.

مقایسه مفهومی با USART و SPI

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

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

در سوی دیگر، SPI  یک پروتکل کاملاً سنکرون است که با استفاده از چهار سیم (MISO، MOSI، SCLK و SS) ارتباط بسیار سریعی بین Master و Slave فراهم می‌کند. در SPI، هر دستگاه Slave نیازمند یک خط انتخاب جداگانه (Chip Select) است که این موضوع در طراحی‌های پیچیده یا چندسویه، باعث افزایش چشمگیر تعداد سیم‌ها می‌شود.

I2C  با استفاده از فقط دو سیم و قابلیت آدرس‌دهی داخلی، یک راه‌حل بهینه برای بسیاری از نیازهای ارتباطی فراهم می‌کند. گرچه سرعت آن نسبت به SPI کمتر است و تأخیر بیشتری دارد، ولی این ضعف در بسیاری از کاربردهای معمول، به‌ویژه در ارتباط با سنسورها یا EEPROMها، محسوس نیست. در حقیقت،I2C  تعادلی بین سادگی، کارایی، و توسعه‌پذیری ایجاد کرده است که آن را برای سیستم‌های نهفته ایده‌آل می‌سازد.

جنبه‌های فنی و سطوح سرعت

پروتکل I2C در نسخه‌های مختلفی ارائه شده که از نظر سرعت انتقال داده با یکدیگر تفاوت دارند. حالت‌های متداول عبارت‌اند از:

  • Standard Mode: با سرعت ۱۰۰ کیلوبیت بر ثانیه
  • Fast Mode: تا ۴۰۰ کیلوبیت بر ثانیه
  • Fast Mode Plus: تا ۱ مگابیت بر ثانیه
  • High-Speed Mode: تا ۳.۴ مگابیت بر ثانیه

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

نکته مهم دیگر در پیاده‌سازی I2C، استفاده از مقاومت‌های pull-up بر روی خطوط SDA و SCL است. این مقاومت‌ها برای ایجاد سطح ولتاژ بالا در زمانی که خطوط آزاد هستند، ضروری‌اند. معمولاً مقاومت‌هایی بین ۲.۲ تا ۱۰ کیلو اهم برای این منظور استفاده می‌شوند.

مزایا و کاربردها

ساده‌ترین دلیل برای انتخاب I2C، صرفه‌جویی در تعداد سیم‌ها و پایه‌های میکروکنترلر است. با تنها دو خط می‌توان ده‌ها دستگاه را کنترل کرد که این امر برای طراحی سیستم‌های کوچک و قابل‌حمل، بسیار حیاتی است.

در حوزه کاربرد،I2C  تقریباً در تمامی زمینه‌های سیستم‌های تعبیه‌شده (Embedded) حضور دارد. از ماژول‌های سنجش دما، فشار و رطوبت گرفته تا نمایشگرهای LCD، چیپ‌های حافظه  EEPROMو مدارهای ساعت RTC همگی به کمک این پروتکل به میکروکنترلر متصل می‌شوند. پلتفرم‌هایی مانند Arduino و Raspberry Pi نیز با کتابخانه‌های آماده برای استفاده از I2C، یادگیری و پیاده‌سازی آن را برای مهندسان و دانشجویان ساده کرده‌اند.

همچنین در صنعت، بسیاری از ماژول‌ها و بردهای توسعه، مانند ماژول‌های GPS، مغناطیس‌سنج‌ها و شتاب‌سنج‌ها، به‌صورت پیش‌فرض با I2C کار می‌کنند. این گستردگی پشتیبانی باعث شده است که I2C به یک استاندارد غیررسمی در بسیاری از طراحی‌ها تبدیل شود.

جمع‌بندی

پروتکل I2C که توسط Philips طراحی شد، گامی مؤثر در جهت ساده‌سازی ارتباطات در سیستم‌های دیجیتال بود. این پروتکل با ترکیب مزایای SPI و USART، راهکاری فراهم کرده است که در آن سادگی، قابلیت توسعه و مقیاس‌پذیری در کنار هم قرار گرفته‌اند. درحالی‌که SPI در سرعت برتر است و USART در مسافت و پایداری،I2C  تعادلی طلایی بین این دو فراهم می‌کند. همین ویژگی‌ها، آن را به انتخاب اول برای بسیاری از پروژه‌های الکترونیکی و سیستم‌های امبدد تبدیل کرده‌اند.

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

اطلاعات
218
0
2
لینک و اشتراک
profile

Sisoog Os

متخصص الکترونیک

کارآفرین, تولید کننده, طراح الکترونیک و ....

مقالات بیشتر
slide

پالت | بازار خرید و فروش قطعات الکترونیک

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

آیسی | موتور جستجوی قطعات الکترونیک

سامانه آی سی سیسوگ (Isee) قابلیتی جدید و کاربردی از سیسوگ است. در این سامانه سعی شده است که جستجو، انتخاب و خرید مناسب تر قطعات برای کاربران تسهیل شود. جستجو در آیسی
family

سیسوگ‌شاپ | فروشگاه محصولات Quectel

فروشگاه سیسوگ مجموعه ای متمرکز بر تکنولوژی های مبتنی بر IOT و ماژول های M2M نظیر GSM، GPS، LTE، NB-IOT، WiFi، BT و ... جایی که با تعامل فنی و سازنده، بهترین راهکارها انتخاب می شوند. برو به فروشگاه سیسوگ
family

سیسوگ فروم | محلی برای پاسخ پرسش‌های شما

دغدغه همیشگی فعالان تخصصی هر حوزه وجود بستری برای گفتگو و پرسش و پاسخ است. سیسوگ فروم یک انجمن آنلاین است که بصورت تخصصی امکان بحث، گفتگو و پرسش و پاسخ در حوزه الکترونیک را فراهم می‌کند. پرسش در سیسوگ فرم
family

سیکار | اولین مرجع متن باز ECU در ایران

بررسی و ارائه اطلاعات مربوط به ECU (واحد کنترل الکترونیکی) و نرم‌افزارهای متن باز مرتبط با آن برو به سیکار
become a writer

نویسنده شو !

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

ارسال مقاله
become a writer

نویسنده شو !

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

ارسال مقاله
خانواده سیسوگ
سیسوگ‌شاپ

فروشگاه محصولات Quectel

پالت
سیسوگ فروم

محلی برای پاسخ پرسش‌های شما

سیسوگ جابز
سیسوگ
سیسوگ فروم
سی‌کار

اولین مرجع متن باز ECU در ایران

سیسوگ مگ
آی‌سی

موتور جستجوی قطعات الکترونیکی

سیسوگ آکادمی
پالت

بازار خرید و فروش قطعات الکترونیک

دیدگاه ها

become a writer

نویسنده شو !

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

ارسال مقاله
become a writer

نویسنده شو !

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

ارسال مقاله