۰

پروتکل SPI چیست؟

بازدید 671

پروتکل SPI چیست؟

این مقاله سریالی است

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

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

مثلا چگونه میکروکنترلر اطلاعات صفحه نمایش را به LCD انتقال میدهد؟

یا مثلا دوربین با CPU گوشی موبایل ارتباط بر قرار میکند؟(فراموش نکنید CPU گوشی های موبایل میکروکنترلر ARM است)

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

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

به همین منظور در تیم آموزش تعمیرات موبایل شیراز فیدار تصمیم گرفت برای اینکه با این اصطلاحات در نقشه موبایل بیشتر آشنا شوید این سه پروتکل را به صورت جداگانه مورد بررسی قرار دهند:

Serial Peripheral Interface (SPI)

Inter-Integrated Circuit (I2C)

Universal Asynchronous Receiver/Transmitter (UART)

پروتکل های ارتباطی SPI , I2C , UART سرعت به مراتب کمتری نسبت به USB، ethernet، Bluetooth و WiFi دارند ولی این پروتکل ها هزینه و ساختار سخت افزاری کمی دارند ببه همین دلیل برای ارتباط با سنسور ها و تجهیزات به CPU که نیاز به سرعت بالایی ندارند از یکی از این پروتوکل ها استفاده می شود.

به همین دلیل شما در شماتیک گوشی این پروتکل ها را زیاد مشاهده میکنید.

در این مقاله قصد بررسی پروتکل SPI را داریم.

قبل از هر چیز شما را با چند اصطلاح الکترونیکی آشنا میکنم.

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

همانطور که میدانید داده های کامپیوتر به صورت بیت ذخیره می شود یعنی 0 , 1 که به صورت قطع و وصل ولتاژ الکتریکی است.

هر 8 بیت را یک بایت میگیوییم مثلا حرف A انگلیسی به صورت بایت و کد های صفر و یک ذخیره می شود.

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

 

شکل زیر نحوه انتقال موازی یک بایت (01011100) به صورت باینری نشان می دهد.

در ارتباط سری بیت های یک بایت تک تک و ارسال هر پالس ارسال می شود.

شکل زیر نحوه انتقال سریال یک بایت (01110001) نشان می دهد.

پروتکل SPI چیست؟

SPI یک پروتکل ارتباطی بوده که در بسیاری از تجهیزات مثل مموری SD CARD ، مموری ریدر ، WIFI  و… استفاده می شود.

تعریف اولیه SPI انتقال بیت ها بدون وقفه است. در پروتکل I2C , UART وقتی یک بسته دیتا ارسال می شود میتوان بر روی آغاز و انجام ارسال اطلاعات کنترل داشت.

پروتکل SPI بر اساس رابطه MASTER , SLAVE کار میکند

MASTER : قطعه ای است که وظیفه کنترل و دستورات را بر عهده دارد (مثلا میکروکنترلر یا CPU است)

SLAVE : دستگاهی است که توسط MASTER کنترل می شود (مثلا سنسور ، صفحه نمایش آی سی حافظه و …. )

در پروتکل SPI  یک MASTER یک SLAVE را کنترل میکند یا یک MASTER چند SLAVE را کنترل میکند.

در شکل زیر مسیر های پروتکل ارتباطی ISP را نشان میدهد که هر مسیر کار مخصوصی انجام میدهد.

پروتکل SPI

MOSI (Master Output/Slave Input)  =  از این مسیر دیتا از master به slave ارسال می شود

 MISO (Master Input/Slave Output) =   از این مسیر دیتا از slave به master ارسال می گردد

SCLK (Clock) =   خط مربوط کلاک یا همان موج مربعی

SS/CS (Slave Select/Chip Select) =   مسیر برای master برای اینکه انتخاب کنددیتا به کدام slave ارسال شود.

گرچه در پروتکل SPI میتوانیم به صورت نامحدود slave  را با master  کنترل کرد ولی در عمل این تعداد محدود به است و اگر بیش از حد به master فشار بیاورید باعث خطا در سیستم می شود.

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

CLOCK :

با ارسال هر پالس مربعی دیتا از MASTER به SLAVE ارسال می شود.پس سرعت انتقال به فرکانس پالس بستگی دارد.ارسال دیتا به SLAVE به MASTER بستگی دارد و MASTER  تعین کننده دیتا به SALVE است و دیتا خود را با هر پالس CLOCK تعیین میکند.

پروتکل هایی که از سیگنال کلاک استفاده می کنند، سیکرون یا همزمان (synchronous) میگویند که ارتباط SPI نیز از این نوع می باشد.

پروتکل های ارتباطی دیگری که از سیگنال کلاک استفاده نمی کنند، ناهمزمان  یا (asynchronous) می گویند. برای مثال در ارتباط UART هر دو سمت رابطه از یک نرخ انتقال دیتا(baudrate) یکسان برای انتقال دیتا استفاده می کنند.

سیگنال کلاک در ارتباط SPI توسط تنظیمات clock polarity و clock phase انجام می شود. از این دستورات برای تعیین اینکه بیت ها از نوع خروجی و یا نمونه داده هستند، استفاده می شوند.

Master از  clock polarity برای تعیین اینکه بیت ها در لبه بالا رونده و یا پایین رونده  کلاک به صورت خروجی و  داده نمونه باشد، استفاده می کند. از دستور clock phase جهت تعیین اینکه داده خروجی و  نمونه در لبه بالارونده و یا پایین رونده اول و یا دوم،  انجام شود، استفاده می شود.

چگونه MASTER که با کدام SLAVE ارتباط برقرار کند؟

MASTER از طریق پایه CS/SS که در SLAVE است انتخاب میکند که با کدام SLAVE ارتباط برقرار کند.اگر این خط در حالا HIGH (1) قرار داشته باشد با هیچ ارتباطی با  SLAVE ندارد.

در پروتکل SPI برای ارتباط با چند MSTER دو صورت با هم ارتباط برقرار میکنند یا برای هر SLAVE یک پاییه SS در MASTER وجود دارد یا مانند شکل دوم با یک پایه به چند SLAVE  متصل است.

پروتکل SPI

ارتباط MSTER با SLAVE با خطوط مجزا SS

 

پروتکل SPI

ارتباط MASTER با چند SLAVE از طریق یک پایه SS/CS

 

MOSI  و  MISO :

داده ها به صورت بیت به بیت و سریال از طریق پایه MOSI از master به slave فرستاده می شوند.

Slave نیز این داده ها را از طریق پین MOSI دریافت می شود. در این حالت معمولا بیت های با ارزش (MSB) زودتر فرستاده می شوند.

Slave نیز داده های خود را از طریق پین MISO به master می فرستد. در این حالت معمولا بیت های کم ارزش(LSB) زودتر فرستاده می شوند.

مراحل انتقال دیتا از طریق پروتکل SPI چگونه است :

1- master کلاک را ارسال می کند.

پروتکل SPI

2- MASTER جهت فعال کردن slave پین SS/CS را در حالت LOW (0) قرار می دهد.

پروتکل SPI

3- master دیتا را به صورت سریال از طریق پایه MOSI ارسال میکند و slave نیز دیتا را از طریق همین پایه دریافت می کند.

پروتکل SPI

4-در صورتی که به دیتای slave احتیاج باشد، این دیتا به صورت سریال از طریق پایه MISO به master ارسال میشود

پروتکل SPI

پروتکل SPI در شماتیک گوشی موبایل

همانطور که گفتیم پروتکل های ارتباطی SPI , I2C , UART برای ارتباط با قسمت های مختلف با CPU گوشی است که در شماتیک گوشی این پروتکل های ارتباطی SPI , I2C , UART را به وضوح میبنید.

 

پروتکل های ارتباطی SPI , I2C , UART در CPU گوشی A50

 

در این مقاله قصد بررسی پروتکل SPI را داریم بنابراین در این مورد بحث خواهیم کرد.

همانطور که گفتیم پروتکل SPI برای ارتباط بین سنسور ها ، ممموری و … با CPU گوشی که حکم مستر را بازی میکند بسیار کاربردی است بنابر این در شماتیک گوشی سنسورها و … با کمک پروتکل SPI با CPU گوشی ارتباط میکند.

به همین دلیل شما در شماتیک گوشی وقتی با اصطلاحات مثل BTP_SPI_MISO ،BTP_SPI_MOSI ، SENSOR_SPI_CS_N و … مواجه شدید مبروط به ارتباط بین MASTER و SLAVE با پروتکل SPI است و کاربرد هر کدام را بالا توضیح دادم.

مثلا در BTP_SPI_MOSI منظور به پروتکل SPI پایه MOSI است که در بالا کاربرد این پایه را توضیح دادیم.

یا به طور مثال در شماتیک زیر سنسور به CPU گوشی A50 با پروتکل SPI ارتباط برقرار کرده  و در شماتیک گوشی هر کدام از پایه های سنسور مشخص شده است.

 

جمع بندی

در دوره های آموزش تعمیرات موبایل که در آموزشگاه تعمیرات موبایل شیراز فیدار برگذار میگردد علاوه بر معرفی پروتکل SPI و نحوه کاربرد هر کدام از قسمت ها نحوه عیب یابی مسیر پروتکل SPI را به صورت کامل آموزش میدهیم.برای شرکت در دوره ها به لینک آموزشگاه تعمیرات موبایل شیراز فیدار مراجعه کنید و برای مشاهده  آموزش ها و تکنیک رایگان تعمیرات موبایل به کانال یوتیوب fidarteam ، آپارات fidarteam و اینستگرام ما به آدرس fidarteam مراجعه کنید

نظرات کاربران

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

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

سوال داری کلیک کن
تماس با ما در واتساپ
گروه مشاوره آموزشگاه فیدار
برای مشاوره رایگان تو واتساپ کلیک کن