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

آن چه در این مقاله می آموزید :
SPI چیست؟
تعریف پروتکل ارتباطی
ارتباط سریال و ارتباط موازی چیست؟
پروتکل ارتباطی SPI چیست؟
پروتکل SPI چگونه کار میکند ؟ (کلاک)
انتخاب اسلیو
اسلیوهای متعدد
خط MOSI و پین MISO
مراحل انتقال داده در پروتکل SPI
مزایا و معایب SPI
خوشبختانه تعداد پروتکلهای ارتباطی که برای انجام پروژههای مختلف نیاز است چندان زیاد نیست. در این دانشنامه، در مورد اصول ۳ پروتکل پرکاربرد در طراحی پروژههای کنترلی صحبت خواهیم کرد که این پروتکلها را در جدول زیر مشاهده میکنید:
SPI ، I2C و UART از پروتکل USB ،اترنت، بلوتوث و وایفای کندتر هستند اما ساختار آنها بسیار ساده میباشد و نیاز به منابع سیستم و سختافزارهای متعدد نخواهند داشت. SPI ،I2C و UART پروتکل های ایدهآلی برای برقراری ارتباط بین میکروکنترلرها و سنسورها (در زمانی که قرار نیست حجم بالایی از داده با سرعت بالا انتقال یابد ) هستند .
به همین دلیل برای ارتباط با سنسور ها و تجهیزات به پردازنده که نیاز به سرعت بالایی ندارند از یکی از این پروتکل ها استفاده می شود.
تعمیرکاران موبایل در شماتیک و نقشه های موبایل این پروتکل ها را زیاد می بینند.
در این مقاله از سایت اموزشگاه تعمیر موبایل شیراز طیف ابتدا شما را با پروتکل SPI اشنا خواهیم کرد و در پست های بعدی مابقی پروتکل ها را آموزش خواهیم داد.
ارتباط سریال و ارتباط موازی چیست؟
دستگاههای الکترونیکی از طریق ارسال و دریافت دادهها با یکدیگر ارتباط برقرار میکنند. گفتنی است دادهها در قالب بسته هایی که از چند بیت تشکیل شدهاند و از طول سیمی که دستگاهها را به یکدیگر مرتبط کرده عبور میکنند. هر بیت مانند یک حرف یا یک کلمه میباشد با این تفاوت که مقداری باینری (۰ یا ۱) دارد. بیتها به صورت تغییرات سریع در سطح ولتاژ مخابره میشوند. برای یک سیستم که با برق ۵ ولت کار میکند بیت ۰ به صورت یک پالس کوتاه صفر ولت و بیت ۱ به صورت یک پالس کوتاه ۵ ولت ارسال یا دریافت میشود.
بیتها میتوانند به صورت سریال یا موازی مخابره شوند در ارتباط موازی، بیتها به صورت همزمان و از طریق یک سیم جداگانه ارسال میشوند. شکل زیر نشان میدهد که حرف ’’C’’ که معادل باینری اش 01000011 میباشد چگونه به صورت موازی ارسال میشود:

در ارتباط سریال ، بیتها یک به یک از طریق یک سیم ارسال خواهند شد.
پروتکل ارتباطی SPI چیست؟
SPI یک پروتکل ارتباطی است که توسط دستگاههای زیادی مورد استفاده قرار میگیرد، به عنوان مثال ماژولهای SD کارتخوان، ماژولهایی که کارتهای RFID را میخوانند و فرستنده/ گیرندههای 2.4GHZ بیسیم از پروتکل ارتباطی SPI برای برقراری ارتباط با میکروکنترلرها بهره میبرند.
یکی از مزایای SPI این است که دادهها میتوانند بدون تأخیر مخابره شوند و بیتها به تعداد دلخواه میتوانند در جریانی پیوسته دریافت یا ارسال شوند شرایط آغازین و پایانی ، شروع و پایان هر پاکت را مشخص میکند بنابراین ایجاد وقفه برای جداکردن پاکت های داده از یکدیگر ضروری خواهد بود.
ارتباط دستگاه از طریق SPI به صورت مستر و اسلیو خواهد بود در این ارتباط مستر ( دستگاه کنترل کننده به عنوان مثال یک میکروکنترلر) به اسلیو ( سنسور ، صفحه نمایشگر یا کارت حافظه ) فرمانهایی را ارسال میکند. سادهترین پیکربندی پروتکل SPI به صورت یک مستر – یک اسلیو میباشد، اما در حالات پیچیدهتر یک مستر میتواند چند اسلیو را کنترل کند. به شکل زیر نگاه کنید:

در پروتکل SPI میتوان به صورت نامحدود slave را با master کنترل کرد ولی در عمل این تعداد محدود به است و اگر بیش از حد به master فشار بیاورید باعث خطا در سیستم می شود.
پروتکل SPI چگونه کار میکند ؟
CLOCK
(کلاک)
سیگنال کلاک بیتهای خروجی از طرف مستر را با بیتهای نمونه از طرف اسلیو سنکرون میکند. هر بیت از داده بر اساس یک سیکل زمانی خاص ارسال میشود بنابراین سرعت انتقال داده توسط فرکانس سیگنال کلاک تعیین میشود ارتباط 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 ، بیت مقایسه تعریف شده که مسئول چک کردن خطاهای ارسال داده است )
- تنها از یک مستر پشتیبانی میکند
پروتکل SPI درنقشه های موبایل
همانطور که گفتیم پروتکل های ارتباطی SPI , I2C , UART برای ارتباط با قسمت های مختلف با CPU گوشی است که در شماتیک گوشی این پروتکل های ارتباطی SPI , I2C , UART را به وضوح میبنید.

همانطور که گفتیم پروتکل SPI برای ارتباط بین سنسور ها ، ممموری و … با CPU گوشی که حکم مستر را بازی میکند بسیار کاربردی است بنابر این در شماتیک گوشی سنسورها و … با کمک پروتکل SPI با CPU گوشی ارتباط میکند.
به همین دلیل شما در شماتیک گوشی وقتی با اصطلاحات مثل BTP_SPI_MISO ،BTP_SPI_MOSI ، SENSOR_SPI_CS_N و … مواجه شدید مربوط به ارتباط بین MASTER و SLAVE با پروتکل SPI است و کاربرد هر کدام را بالا توضیح دادم.
مثلا در BTP_SPI_MOSI منظور به پروتکل SPI پایه MOSI است که در بالا کاربرد این پایه را توضیح دادیم.
یا به طور مثال در شماتیک گوشی A50 ، سنسور به CPU با پروتکل SPI ارتباط برقرار کرده .
کلام آخر
در دوره های آموزش تعمیرات موبایل که در آموزشگاه تعمیرات موبایل شیراز طیف برگزار می گردد علاوه بر معرفی تمام پروتکل ها و نحوه کاربرد هر کدام از قسمت ها نحوه عیب یابی مسیر پروتکل SPI را به صورت کامل آموزش میدهیم برای شرکت در دوره های آموزشگاه تعمیرات موبایل شیرازطیف با ما از طریق :
پیج اینستا
@teifmobile
یا شماره 09176000411 با ما در تماس باشید.
آموزشگاه تعمیر موبایل طیف شیراز بعنوان اولین و مجهزترین آموزشگاه فوق تخصصی تعمیر موبایل در جنوب ایران تمامی دوره های مقدماتی تا پیشرفته تعمیر موبایل را برگزار می کند.