SPI چیست؟

بازدید: 1071

maxresdefault

SPI چیست؟

بازدید: 1071

maxresdefault

تعریف پروتکل ارتباطی

هنگامی که یک میروکنترلر به یک سنسور، صفحه نمایش یا ماژولی دیگر متصل می‌شود، این دو دستگاه چگونه با یکدیگر ارتباط برقرار می کنند؟ یا چگونه قادر به درک پیام‌هایی هستند که دستگاهی دیگر برای آن‌ها ارسال می‌کند؟

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

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

SPI
رابط محیطی سریال
Serial Peripheral Interface
UART
ارتباط آسنکرون همگانی فرستنده / گیرنده
Universal Asynchronous Receiver/Transmitter Driven Communication
I2C
ارتباط دو سیمه
Inter-Integrated Circuit

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

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

دستگاه‌های الکترونیکی از طریق ارسال و دریافت داده‌ها با یکدیگر ارتباط برقرار می‌کنند. گفتنی است داده‌ها در قالب بسته هایی که از چند بیت تشکیل شده‌اند و از طول سیمی که دستگاه‌ها را به یکدیگر مرتبط کرده عبور می‌کنند. هر بیت مانند یک حرف یا یک کلمه می‌باشد با این تفاوت که مقداری باینری (0 یا 1) دارد. بیت‌ها به صورت تغییرات سریع در سطح ولتاژ مخابره می‌شوند. برای یک سیستم که با برق ۵ ولت کار می‌کند بیت 0 به صورت یک پالس کوتاه صفر ولت و بیت 1 به صورت یک پالس کوتاه ۵ ولت ارسال یا دریافت می‌شود.

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

1. ارسال و دریافت بی‌ ها در ارتباط موازی

در ارتباط سریال ، بیت‌ها یک به یک از طریق یک سیم ارسال خواهند شد. شکل 2 نحوه ارسال سریال حرف ’’C’’ را نشان می دهد.

پروتکل ارتباطی SPI چیست؟

SPI یک پروتکل ارتباطی است که توسط دستگاه‌های زیادی مورد استفاده قرار می‌گیرد، به عنوان مثال ماژول‌های SD کارت‌خوان، ماژول‌هایی که کارت‌های RFID را می‌خوانند و فرستنده/ گیرنده‌های 2.4GHZ بی‌سیم از پروتکل ارتباطی SPI برای برقراری ارتباط با میکروکنترلرها بهره می‌برند.

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

ارتباط دستگاه از طریق SPI به صورت مستر و اسلیو خواهد بود در این ارتباط مستر ( دستگاه کنترل کننده به عنوان مثال یک میکروکنترلر) به اسلیو ( سنسور ، صفحه نمایشگر یا کارت حافظه ) فرمان‌هایی را ارسال می‌کند. ساده‌ترین پیکربندی پروتکل SPI به صورت یک مستر – یک اسلیو می‌باشد، اما در حالات پیچیده‌تر یک مستر می‌تواند چند اسلیو را کنترل کند. به شکل زیر نگاه کنید:

2. مستر و اسلیو پروتکل ارتباطی SPI
MOSI (Master Output / Slave input)
پایه‌ای که برای ارسال داده از مستر به اسلیو تعیین شده
MISO (Master Input / Slave Output)
پایه‌ای برای اسلیو که از طریق آن اطلاعات را به مستر ارسال می‌کند
SCLK (Clock)
خطی که برای سیگنال کلاک تعریف شده است
CS / SS (Slave Select / Chip Select)
پایه‌ای برای مستر که از طریق آن انتخاب می‌کند داده برای کدام اسلیو ارسال شود
تعداد سیم‌های مورد نیاز
4
حداکثر سرعت
10MBbps
سنکرون یا غیرسنکرون بودن
سنکرون
سریال یا موازی
سریال
حداکثر تعداد مسترها
1
حداکثر تعداد اسلیوها*
به صورت تئوری بی‌نهایت

* در عمل تعداد اسلیو ها توسط ظرفیت بار یک سیستم محدود می‌شود ظرفیت بار سیستم قابلیت مستر برای سوییچ درست بین سطح ولتاژ های مختلف را کاهش می‌دهد*

پروتکل SPI چگونه کار می‌کند ؟ (کلاک)

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

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

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

انتخاب اسلیو

مستر می‌تواند تصمیم بگیرد که با کدام اسلیو ارتباط برقرار کند انتخاب اسلیو توسط مستر از طریق خط CS/SS در سطح ولتاژ پایین صورت می‌گیرد در حالتی که هیچ داده‌ای ارسال نمی‌شود خط انتخابی اسلیو در سطح ولتاژ بالا نگه داشته می‌شود چندین پین CS/SS ممکن است روی تراشه مستر به چشم بخورند که امکان اتصال اسلیو ها به صورت موازی را فراهم میکنند اگر تنها یک پین CS/SS موجود باشد، اسلیو ها می‌توانند از طریق زنجیره دایسی (Daisy- chaining) به مستر متصل شوند.

اسلیوهای متعدد

SPI می‌تواند به گونه‌ای تنظیم شود تا یک مستر کنترل چند اسلیو را به دست بگیرد. ۲ راه برای اتصال چند اسلیو به مستر وجود دارد. اگر مستر پین‌های متعددی برای اتصال اسلیوها داشته باشد. اسلیو‌ها می‌توانند به صورت موازی به مستر متصل شوند. (به شکل سمت راست نگاه کنید).

اما اگر تنها یک پین برای اتصال اسلیوها موجود باشد اسلیوها به صورت زنجیره دایسی مطابق شکل زیر (سمت چپ) به مستر متصل خواهند شد .

خط MOSI و پین MISO

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

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

مراحل انتقال داده در پروتکل SPI

(۱) مستر سیگنال کلاک را به اسلیو ارسال می‌کند.

(۲) مستر سطح ولتاژ پین SS/CS را پایین می‌آورد و به این وسیله اسلیو را به حالت فعال می‌برد.

(۳) مستر از طریق خط MOSI شروع به انتقال داده به اسلیو می‌کند.

(۴) اگر قرار باشد اسلیو به مستر پاسخ بدهد، این پاسخ از طریق خط MISO ارسال می‌شود.

مزایا و معایب SPI

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

مزایا

معایب

  •  دارای بیت آغازگر و خاتمه نیست بنابراین اطلاعات می‌توانند بی‌وقفه و به صورت مداوم ارسال شوند 
  • بر خلاف I2C سیستم آدرس دهی اسلیو پیچیده‌ای ندارد 
  • نرخ انتقال اطلاعات نسبت به I2C سریع‌تر است ( سرعت انتقال داده در SPI دو برابر I2C است )
  • خطوط جداگانه MISO و MOSI ، امکان ارسال و دریافت داده به صورت همزمان را فراهم می‌کنند
  •  از ۴ سیم استفاده می‌شود (I2C و UART تنها از دوسیم استفاده می‌کنند )
  •  هیچ تصدیقی برای اطمینان حاصل کردن از دریافت موفقیت آمیز داده توسط گیرنده ارسال نخواهد شد (I2C دارای بیت تصدیق است )
  •  امکان چک کردن خطا وجود ندارد ( در پروتکل UART ، بیت مقایسه تعریف شده که مسئول چک کردن خطاهای ارسال داده است )
  •  تنها از یک مستر پشتیبانی می‌کند

نظرتان را درباره این مقاله بگویید 22 نظر

SPI چیست؟

با ثبت نظر و نوشتن کامنت، تیم ما را در راستای بهبود و افزایش کیفیت محتوا یاری خواهید کرد :)

فهرست مطالب

مقالات مرتبط

بروزترین مقالات

این مقاله را با دوستانتان به اشتراک بگذارید!

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

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

فروشگاه