معرفی درگاه سریال SPI و نحوه استفاده از آن

5 دقیقه زمان مطالعه

SPI چیست؟

سریال SPI و درگاه آن یکی از قطعات الکترونیکی در طراحی برد است که در دوره آموزش طراحی میکروکنترلرهای AVR به طور کامل بررسی می شود. SPI یک درگاه ارتباطی متداول است که توسط بسیاری از دستگاه‌های مختلف مورد استفاده قرار می‌گیرد. به عنوان مثال، ماژول‌های کارت حافظه، ماژول‌های کارت خوان RFID و فرستنده و گیرنده‌های بی سیم 2.4 گیگاهرتز همه از SPI برای برقراری ارتباط با میکروکنترلرها استفاده می‌کنند.

تفاوت spi و i2c در چیست؟

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

دستگاه‌های مرتبط شده از طریق درگاه سریال SPI رابطه Slave-Master با هم دارند. Master دستگاه کنترل کننده معمولاً میکروکنترلر است، در حالی که Slave (معمولا یک سنسور ، صفحه نمایش یا تراشه حافظه) از Master دستور می‌گیرد. در ساده ترین پیکربندی SPI یک سیستم مستقل و یک Slave واحد است، اما یک Master می‌تواند بیش از یک Slave را کنترل کند (بیشتر در این مورد در زیر).

رابطه Slave-Master
رابطه Slave-Master
  • MOSI  (خروجی Master/ ورودی Slave) – خطی برای ارسال داده از Master به Slave.
  • MISO  (ورودی Master / خروجی Slave) – خطی برای برای ارسال داده از Slave به Master.
  • SCLK (Clock)  : خطی برای سیگنال کلاک.
  • SS / CS  (انتخاب Slave /  انتخاب Chip) – خطی را برای Master تا انتخاب کنید که کدام داده برای Slave ارسال شود.

کارکرد سریال SPI در طراحی برد

کلاک از سیگنال های سریال SPI

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

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

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

انتخاب Slave

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

Slave چندگانه

SPI را می‌توان برای کار با یک Master واحد و یک Slave واحد تنظیم کرد، و می‌توان آن را با چند Slave تنظیم کرد که توسط یک Master واحد کنترل می‌شوند. دو روش برای اتصال چندین Slave به Master وجود دارد. اگر Master دارای پین‌های چند گانه انتخابی باشد، Slave را می‌توانید به صورت موازی مانند این سیم کشی کنید:

Slave چندگانه
Slave چندگانه

اگر فقط یک پین انتخاب Slave در دسترس است، Slave می‌توانند از این رو با daisy-chaining باشند:

Slave چندگانه
Slave چندگانه

MOSI و MISO از پین های سریال SPI

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

Slave همچنین می‌تواند داده‌ها را از طریق خط MISO به صورت سریال به Master برگرداند. داده‌های ارسال شده از Slave به Master معمولا ابتدا با حداقل بیت قابل توجهی ارسال می‌شوند.

مراحل انتقال داده‌های سریال SPI در طراحی برد

1-خروجی Master سیگنال ساعت

مرحله اول انتقال داده‌های SPI
مرحله اول انتقال داده‌های SPI

2-سوئیچ Master پین SS/CS به حالت کم ولتاژ که Slave را فعال می‌کند:

مرحله دوم انتقال داده‌های SPI
مرحله دوم انتقال داده‌های SPI

3- Master هر بیت از داده‌ها در هر زمان به Slave در امتداد خط MOSI می‌فرستد. Slave بیت‌های دریافتی را می‌خواند:

مرحله سوم انتقال داده‌های SPI
مرحله سوم انتقال داده‌های SPI

4-در صورت نیاز به پاسخ، Slave هر بیت از داده‌ها را در هر زمان به Master در امتداد خط MISO باز می‌گرداند. Master بیت‌های دریافت شده را می‌خواند:

مرحله چهارم انتقال داده‌های SPI
مرحله چهارم انتقال داده‌های SPI

منبع : circuitbasics

این مقاله از سری مقالات ساخت الکترونیک می باشد جهت کسب اطلاعات بیشتر درباره میکروکنترلرهای AVR توصیه می کنیم در دوره های آموزش AVR ثبت نام کنید.

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

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