جلسه سی و دوم _ معرفی SPI و بررسی نحوه برقراری ارتباط با دستگاه های دیگر
در این جلسه قصد داریم تا به معرفی پروتکل ارتباطی SPI بپردازیم و با نحوه عملکرد آن آشنا شویم. SPI مخفف Serial Peripheral Interface می باشد که یک پروتکل ارتباطی سریال سنکرون می باشد و علت سنکرون بودن آن وجود یک منبع کلاک برای ایجاد همزمانی بین Master و Slave و تبادل اطلاعات بین آنها می باشد.
از خصوصیات بارز این پروتکل می توان به سرعت بالای انتقال اطلاعات اشاره نمود. در یک ارتباط سریال ساده یک دستگاه به عنوان Master و یک دستگاه به عنوان Slave در نظر گرفته می شود و وظیفه تامین کلاک بر عهده Master می باشد. این ارتباط قادر است تا به صورت یک شبکه پیکربندی شود که در این حالت یک دستگاه به صورت Master و چند دستگاه در حالت Slave پیکربندی می شود.
در این حالت Master در هر لحظه قادر خواهد بود تا فقط با یک Slave ارتباط برقرار کند که به این منظور باید پایه SS مربوط به Slave مورد نظر را صفر نماید.
همانطور که در تصویر بالا مشخص است وظیفه تامین کلاک برعهده Master می باشد و هر دو طرف دارای یک شیفت رجیستر می باشند که اطلاعات بصورت بیت به بیت و با اعمال کلاک به شیفت رجیستر ها جابجا می شوند. پایه SS نیز وظیفه فعال سازی واحد Slave را دارد که در دستگاه Slave این پایه به زمین متصل می شود.
پایه های مورد استفاده در این ارتباط به شرح زیر می باشند:
پایه MOSI که مخفف Master Output Slave Input می باشد و به عنوان پایه خروجی دیتا در دستگاه Master و ورودی دیتا در دستگاه Slave می باشد.
پایه MISO که مخفف Master Input Slave Output می باشد و به عنوان پایه ورودی دیتا در دستگاه Master و خروجی دیتا در دستگاه Slave می باشد.
پایه SCK که به عنوان منبع کلاک برای شیفت رجیسترها استفاده می شود و در دستگاه Master تولید می شود به عنوان خروجی می باشد و در دستگاه Slave بصورت ورودی منبع کلاک می باشد.
پایه SS که مخفف Slave Select می باشد و برای فعال کردن دستگاه Slave مورد نظر باید این پایه را GND نمود.
در صورتیکه بخواهیم از چند Slave استفاده کنیم مدیریت آنها توسط دستگاه Master و با کنترل پایه SS مربوط به هر دستگاه Slave می باشد. در تصویر زیر می توانید نحوه شبکه کردن دستگاه ها را در پروتکل SPI مشاهده نمایید.
ارتباط SPI به دو طریق می تواند اطلاعات را انتقال دهد که به روش MSB First و LSB First شناخته می شوند در این شیوه مشخص می شود که در ابتدا بیت کم ارزش (LSB) ارسال شود یا بیت پر ارزش (MSB) ارسال گردد.
در کل ارتباط SPI دارای 4 حالت کاری می باشد که این حالت ها توسط دو عامل CPOL که مخفف Clock Polarity و CPHA که مخفف Clock Phase می باشند تنظیم می شوند.
CPOL حالت بیکاری پایه SCK را مشخص می کند. اگر CPOL مقدار صفر باشد به این معنیست که زمانیکه اطلاعاتی ارسال یا دریافت نمی شود این پایه در حالت صفر منطقی قرار می گیرد و در صورت یک بودن، در زمان عدم ارسال و دریافت دیتا پایه SCK در حالت یک منطقی قرار می گیرد.
CPHA مشخص می کند که هر بیت دیتا در کدام لبه پالس نمونه برداری شود. اگر CPHA صفر باشد هر بیت اطلاعات در لبه اول کلاک نمونه برداری می شود و اگر یک باشد هر بیت اطلاعات در لبه دوم کلاک نمونه برداری می شود. در تصویر زیر می توانید نحوه نمونه برداری دیتا در حالت های مختلف کاری SPI را مشاهده نمایید.
اطلاعات تکمیلی در پست بعدی می باشد.
دلتون شاد و لبتون پر خنده
محمد هادی دشتی
برای مشاهده آموزش جلسه اول(معرفی هسته آرم و میکروکنترلرهای 32 بیتی شرکت ST ) کلیک کنید.
برای مشاهده آموزش جلسه دوم( معرفی نرم افزارهای مورد نیازجهت برنامه نویسی و پروگرام ) کلیک کنید.
برای مشاهده آموزش جلسه سوم( نحوه دانلود آخرین نسخه از نرم افزار STM32CubeMX ) کلیک کنید.
برای مشاهده آموزش جلسه چهارم(نحوه انجام تنظیمات در نرم افزار STM32CubeMX ) کلیک کنید.
برای مشاهده آموزش جلسه پنجم(نحوه برنامه نویسی پروژه چشمک زن با نرم افزار Keil ) کلیک کنید.
برای مشاهده آموزش جلسه هشتم( نحوه راه اندازی ال سی دی کاراکتری-قسمت اول) کلیک کنید.