راه اندازی RFID خوان مدل EM-18 توسط رزبری پای Raspberry Pi
ژوئن 29, 2017
راه اندازی سیستم عامل در مینی کامپیوتر رزبری پای Raspberry Pi
ژوئن 27, 2017
نمایش همه

ارتباط از طریق (Serial Peripheral Interface) SPI

SPI یک ارتباط تمام دوطرفه سریال و سنکرون می باشد که برای ارتباطات نزدیک استفاده می شود. که معمولا برای ارتباط بین ماژول های مختلف که در یک وسیله یا مدار چاپی می باشند مورد استفاده قرار می گیرد برای مثال بین میکروکنترلر و ماژل nRF24L01. معماری استفاده شده در SPI از نوع Master/Slave می باشد که این ارتباط دارای یک Master و یک یا چند Slave است که انتخاب Slave ها از طریق خطوط انتخاب صورت می گیرد.

SPI همانطور که در شکل زیر قابل مشاهده است از چهار سیم برای برقراری ارتباط استفاده می کند. در شکل زیر از یک Master و یک Slave استفاده شده است.

SCK یا SCLK: کلاک سریال که توسط Master تولید می شود

MOSI یا SDO: خروجی Master و ورودی Slave، داده خروجی از Master

MISO یا SDI: ورودی Master و خروجی Slave، داده خروجی از Slave

SS: انتخاب گر Slave، ورودی Slave می باشد که معمولا به صورت active low است

زمانی که چندین وسیله Slave استفاده شود از Master به هر کدام از Slave ها یک خط انتخاب Slave متصل می شود که این کار از طریق GPIO های میکرو انجام می گیرد. به شکل زیر توجه نمایید.

در یک زمان فقط یک Slave توسط Master می شود. انتخاب چندین Slave در یک زمان باید توسط خروجی های tri-state انجام گیرد. بنابراین وقتی که انتخاب نشده باشند خطوط خروجی متناظرشان غیر متصل بنظر می رسد.

سخت افزار

همانند شکل زیر شیفت رجیسترهایی در وسیله های Master و Slave وجود دارد که به همدیگر متصل شده اند و مانند یک بافر چرخشی عمل می کند.

همانطور که در بالا نیز ذکر شد کلاک توسط Master تولید می شود. رجیسترهای موجود در حالت SISO (Serial Input Serial Output) عمل می کنند.

شکل زیر نحوه عملکرد SPI را نشان می دهد.

 

شکل زیر عملکرد دقیق تر را نمایش می دهد.

مدهای SPI

با توجه به Clock Polarity و Clock Phase مدهای SPI تعیین می شود.

Clock Polarity: حالت بیکار یا فعال حالت کلاک را نشان می دهد.اگر حالت بیکار صفر باشد حالت فعال یک است و برعکس

Clock Phase: فاز کلاک تعیین کننده زمان ارسال داده است. داده می تواند در حالت گذرای LOW (0) to  HIGH (1) یا HIGH to LOW ارسال شود

دو شکل زیر کاملا گویای حالت SPI می باشد.

 

نحوه خواندن داده از Slave

همانطور که در بالا ذکر شد ارتباط SPI یک ارتباط دوطرفه کامل یا full duplex می  باشد. Master زمانی که بخواهد داده ای در Slave بنویسد کلاک را تولید می کند با این توصیف زمانی که بخواهد داده را از Slave  بخواند باید داده خالی ارسال کند (dummy data).

بهتر است بدانیم که SD Card ها، بسیاری از ماژول های فرستنده گیرنده مانند nRF24L01 و LCD ها و … از این طریق با میکرو ارتباط برقرار می کنند.

این مطلب را به اشتراک بگذارید

پاسخ دهید

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

*