فهرست مطالب:
- مرحله 1: سریال مقابل ارتباط موازی
- گام 2:
- مرحله 3:
- مرحله 4: مقدمه ای بر ارتباط SPI
- مرحله 5:
- مرحله 6:
- مرحله 7:
- مرحله 8: چگونه SPI کار می کند
- مرحله 9:
- مرحله 10:
- مرحله 11:
- مرحله 12:
- مرحله 13: مزایا و معایب SPI
تصویری: مبانی پروتکل ارتباط SPI: 13 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:56
وقتی میکروکنترلر را به سنسور ، صفحه نمایش یا ماژول دیگر وصل می کنید ، آیا تا به حال به نحوه صحبت این دو دستگاه با یکدیگر فکر کرده اید؟ دقیقا چه می گویند؟ چگونه می توانند یکدیگر را درک کنند؟
ارتباط بین دستگاه های الکترونیکی مانند ارتباط بین انسان ها است. هر دو طرف باید به یک زبان صحبت کنند. در الکترونیک ، به این زبانها پروتکل های ارتباطی گفته می شود. خوشبختانه برای ما ، تنها چند پروتکل ارتباطی وجود دارد که هنگام ساخت بیشتر پروژه های الکترونیکی DIY باید بدانیم. در این سری مقالات ، ما اصول اولیه سه پروتکل رایج را مورد بحث قرار می دهیم: رابط جانبی سریال (SPI) ، مدار یکپارچه (I2C) ، و ارتباطات گیرنده/فرستنده ناهمزمان جهانی (UART). ابتدا ، ما با برخی مفاهیم اساسی در مورد ارتباطات الکترونیکی شروع می کنیم ، سپس جزئیات نحوه عملکرد SPI را توضیح می دهیم. در مقاله بعدی ، ما در مورد ارتباطات مبتنی بر UART بحث می کنیم و در مقاله سوم ، به I2C می پردازیم. SPI ، I2C و UART بسیار کندتر از پروتکل هایی مانند USB ، اترنت ، بلوتوث و WiFi هستند ، اما بسیار ساده تر هستند و از سخت افزار و منابع سیستم کمتری استفاده می کنند. SPI ، I2C و UART برای ارتباط بین میکروکنترلرها و بین میکروکنترلرها و حسگرها که در آن حجم زیادی از داده ها با سرعت زیاد نیاز به انتقال ندارند ، ایده آل هستند.
مرحله 1: سریال مقابل ارتباط موازی
دستگاه های الکترونیکی با ارسال تکه های داده از طریق سیم هایی که بین دستگاه ها متصل هستند ، با یکدیگر صحبت می کنند. یک بیت مانند یک حرف در یک کلمه است ، مگر اینکه به جای 26 حرف (در الفبای انگلیسی) ، یک بیت دوتایی است و فقط می تواند 1 یا 0 باشد. با تغییر سریع ولتاژ ، بیت ها از یک دستگاه به دستگاه دیگر منتقل می شوند. در سیستم 5 ولت کار می کند ، یک بیت 0 به عنوان یک پالس کوتاه 0 ولت و یک بیت با یک پالس کوتاه 5 ولت ارتباط برقرار می شود.
بیت داده ها را می توان به صورت موازی یا سری منتقل کرد. در ارتباط موازی ، بیت های داده همه به طور همزمان ارسال می شوند ، هر کدام از طریق یک سیم جداگانه. نمودار زیر انتقال موازی حرف "C" را به صورت باینری (01000011) نشان می دهد:
گام 2:
در ارتباط سریال ، بیت ها یکی یکی از طریق یک سیم ارسال می شوند. نمودار زیر انتقال سریال حرف "C" را به صورت باینری (01000011) نشان می دهد:
مرحله 3:
مرحله 4: مقدمه ای بر ارتباط SPI
SPI یک پروتکل ارتباطی رایج است که توسط بسیاری از دستگاه های مختلف استفاده می شود. به عنوان مثال ، ماژول های کارت SD ، ماژول های کارت خوان RFID و فرستنده/گیرنده های بی سیم 2.4 گیگاهرتز همه از SPI برای ارتباط با میکروکنترلرها استفاده می کنند.
یکی از مزایای منحصر به فرد SPI این واقعیت است که می توان داده ها را بدون وقفه منتقل کرد. هر تعداد بیت را می توان در یک جریان پیوسته ارسال یا دریافت کرد. با I2C و UART ، داده ها در بسته ها ارسال می شوند که محدود به تعداد خاصی از بیت است. شرایط شروع و توقف شروع و پایان هر بسته را مشخص می کند ، بنابراین داده ها در حین انتقال قطع می شوند. دستگاههایی که از طریق SPI ارتباط برقرار می کنند در یک رابطه اصلی و برده قرار دارند. Master دستگاه کنترل کننده (معمولاً میکروکنترلر) است ، در حالی که slave (معمولاً سنسور ، نمایشگر یا تراشه حافظه) از استاد دستور می گیرد. ساده ترین پیکربندی SPI یک سیستم واحد مستقل ، تنها برده است ، اما یک استاد می تواند بیش از یک برده را کنترل کند (بیشتر در این مورد در زیر).
مرحله 5:
مرحله 6:
MOSI (Master Output/Slave Input) - خطی که استاد برای ارسال داده به برده ارسال می کند.
MISO (Master Input/Slave Output) - خطی است که برده برای ارسال داده به اصلی ارسال می کند.
SCLK (ساعت) - خط سیگنال ساعت.
SS/CS (Slave Select/Chip Select) - خطی که استاد برای انتخاب داده به کدام برده ارسال کند
مرحله 7:
*در عمل ، تعداد برده ها با ظرفیت بار سیستم محدود می شود ، که این امر توانایی جابجایی دقیق سطوح ولتاژ توسط استاد را کاهش می دهد.
مرحله 8: چگونه SPI کار می کند
ساعت
سیگنال ساعت خروجی بیت های داده از master را با نمونه برداری از بیت ها توسط slave همزمان می کند. یک بیت داده در هر چرخه ساعت منتقل می شود ، بنابراین سرعت انتقال داده با فرکانس سیگنال ساعت تعیین می شود. ارتباط SPI همیشه توسط master آغاز می شود زیرا master پیکربندی کرده و سیگنال ساعت را تولید می کند.
هرگونه پروتکل ارتباطی که در آن دستگاهها سیگنال ساعت را به اشتراک می گذارند ، همزمان نامیده می شود. SPI یک پروتکل ارتباط همزمان است. روشهای ناهمزمانی نیز وجود دارد که از سیگنال ساعت استفاده نمی کند. به عنوان مثال ، در ارتباطات UART ، هر دو طرف روی نرخ baud از پیش تنظیم شده تنظیم می شوند که سرعت و زمان انتقال داده را تعیین می کند.
سیگنال ساعت در SPI را می توان با استفاده از خواص قطبیت ساعت و فاز ساعت تغییر داد. این دو ویژگی با هم کار می کنند تا زمان خروجی بیت ها و زمان نمونه گیری آنها مشخص شود. قطبی ساعت را می توان توسط استاد تنظیم کرد تا امکان خروج بیت ها و نمونه برداری از لبه های بالا یا پایین چرخه ساعت فراهم شود. فاز ساعت را می توان طوری تنظیم کرد که خروجی و نمونه برداری در لبه اول یا لبه دوم چرخه ساعت ، صرف نظر از بالا یا پایین رفتن آن ، انجام شود.
SLAVE SELECT
با تنظیم خط CS/SS برده در سطح ولتاژ پایین ، استاد می تواند انتخاب کند که با کدام برده صحبت کند. در حالت بیکار و بدون انتقال ، خط انتخاب برده در سطح ولتاژ بالا نگه داشته می شود. ممکن است چندین پین CS/SS بر روی master موجود باشد ، که اجازه می دهد چندین برده به صورت موازی سیم کشی شوند. اگر فقط یک پین CS/SS وجود داشته باشد ، چندین برده را می توان با زنجیر دیزی به استاد وصل کرد.
SPI MULTIPLE SLAVES
می تواند راه اندازی شود تا با یک استاد و یک برده واحد کار کند ، و می تواند با چندین برده که توسط یک استاد کنترل می شوند تنظیم شود. دو راه برای اتصال چندین برده به استاد وجود دارد. اگر master دارای چندین پین انتخاب slave است ، برده ها را می توان به صورت موازی به شکل زیر سیم کشی کرد:
مرحله 9:
مرحله 10:
MOSI و MISO
Master داده ها را بطور بیت به بیت ، به صورت سریال از طریق خط MOSI به slave ارسال می کند. برده داده های ارسال شده از master را در پین MOSI دریافت می کند. معمولاً داده هایی که از master به slave ارسال می شود ابتدا با مهمترین بیت ارسال می شود. برده همچنین می تواند داده ها را از طریق خط MISO به صورت سریال به استاد ارسال کند. معمولاً داده هایی که از برده به master ارسال می شود ابتدا با کمترین مقدار قابل توجه ارسال می شود. مراحل انتقال داده های SPI 1. استاد خروجی سیگنال ساعت را می دهد:
مرحله 11:
اگر فقط یک پین منتخب برده در دسترس باشد ، برده ها را می توان به این شکل زنجیر کرد:
مرحله 12:
MOSI و MISO
Master داده ها را بطور بیت به بیت ، به صورت سریال از طریق خط MOSI به slave ارسال می کند. برده داده های ارسال شده از master را در پین MOSI دریافت می کند. معمولاً داده هایی که از master به slave ارسال می شود ابتدا با مهمترین بیت ارسال می شود.
برده همچنین می تواند داده ها را از طریق خط MISO به صورت سریال به استاد ارسال کند. معمولاً داده هایی که از برده به master ارسال می شود ابتدا با کمترین مقدار قابل توجه ارسال می شود.
مراحل انتقال داده های SPI
*توجه داشته باشید تصاویر فهرست شده Oboe شما به راحتی می توانید تشخیص دهید
1. استاد سیگنال ساعت را خروجی می دهد:
2. Master پین SS/CS را به حالت ولتاژ پایین تغییر می دهد که برده را فعال می کند:
3. استاد داده ها را یک به یک به بنده در طول خط MOSI ارسال می کند. برده هنگام دریافت بیت ها را می خواند:
4- در صورت نیاز به پاسخ ، slave داده ها را یک به یک به استاد در امتداد خط MISO باز می گرداند. استاد هنگام دریافت بیت ها را می خواند:
مرحله 13: مزایا و معایب SPI
استفاده از SPI مزایا و معایبی دارد و اگر بین پروتکل های ارتباطی مختلف انتخاب شد ، باید بدانید که چه زمانی از SPI با توجه به الزامات پروژه خود استفاده کنید:
مزایای
بدون شروع و توقف بیت ، بنابراین می توان داده ها را بدون وقفه جریان داد بدون هیچگونه سیستم پیچیده آدرس دهی مانند I2C سرعت انتقال داده بالاتر از I2C (تقریباً دو برابر سریعتر) خطوط جداگانه MISO و MOSI ، بنابراین داده ها می توانند همزمان ارسال و دریافت شوند زمان
معایب
از چهار سیم استفاده می کند (I2C و UART از دو استفاده می کنند) هیچ تصدیقی مبنی بر اینکه داده ها با موفقیت دریافت شده اند (I2C این را دارد) بدون هیچ گونه اشکال در بررسی خطا مانند بیت برابری در UART فقط به یک استاد واحد اجازه می دهد امیدوارم این مقاله درک بهتری به شما داده باشد از SPI برای آشنایی با ارتباطات UART یا قسمت سوم که در مورد پروتکل I2C بحث می کنیم ، قسمت دوم این سری را ادامه دهید.
اگر س questionsالی دارید ، می توانید آن را در بخش نظرات بپرسید ، ما اینجا هستیم تا به شما کمک کنیم. و حتما دنبال کنید
با احترام: M. Junaid
توصیه شده:
رمزگشای پروتکل کنترل از راه دور RC5 بدون کتابخانه: 4 مرحله
رمزگشای پروتکل کنترل از راه دور RC5 بدون کتابخانه: قبل از رمزگشایی rc5 ابتدا بحث می کنیم که دستور rc5 چیست و ساختار آن چگونه است. بنابراین اساساً دستور rc5 در کنترل از راه دور که در تلویزیون ها ، پخش کننده های سی دی ، d2h ، سیستم های سینمای خانگی و غیره استفاده می شود استفاده می شود و دارای 13 یا 14 بیت مرتب شده در یک
ساعت اینترنتی: نمایش تاریخ و زمان با OLED با استفاده از ESP8266 NodeMCU با پروتکل NTP: 6 مرحله
ساعت اینترنتی: نمایش تاریخ و زمان با OLED با استفاده از ESP8266 NodeMCU با پروتکل NTP: سلام بچه ها در این دستورالعمل ها ما یک ساعت اینترنتی ایجاد می کنیم که از اینترنت زمان می گیرد بنابراین این پروژه برای اجرا به هیچ RTC احتیاج ندارد ، فقط به یک اتصال به اینترنت کار می کند و برای این پروژه به esp8266 نیاز دارید که دارای
مبانی ارتباط UART: 16 مرحله
مبانی ارتباط UART: به یاد داشته باشید که چاپگرها ، موش ها و مودم ها دارای کابل های ضخیم با آن کانکتورهای بزرگ و ضعیف بودند؟ آنهایی که به معنای واقعی کلمه باید در رایانه شما پیچیده می شدند؟ این دستگاه ها احتمالاً از UART برای ارتباط با رایانه شما استفاده می کردند. در حالی که USB دارای almos است
رمزگذار و رمزگشای پروتکل NEC پروتکل مادون قرمز: 5 مرحله
رمزگذار و رمزگشای پروتکل مادون قرمز NEC: سیگنال NEC IR مدوله شده یا تغییر شکل یافته را دریافت می کند و آن را به بایت هایی تبدیل می کند که از پورت سریال ارسال می شوند. نرخ باود سریال از دو سرعت پیش فرض قابل انتخاب است. حالت استفاده پیش فرض یک توالی فرمان را با بایت فریم منتقل می کند
مقدماتی* SPI در Pi: ارتباط با شتاب سنج SPI 3 محور با استفاده از Raspberry Pi: 10 مرحله
مقدماتی* SPI در Pi: برقراری ارتباط با شتاب سنج 3 محوره SPI با استفاده از Raspberry Pi: راهنمای گام به گام نحوه تنظیم Raspbian و ارتباط با دستگاه SPI با استفاده از کتابخانه bcm2835 SPI (کمی ضرب دیده نشده است!) این هنوز ادامه دارد بسیار مقدماتی … من باید تصاویر بهتری از اتصال فیزیکی را اضافه کنم و از طریق برخی از کد های ناخوشایند کار کنم