Разбиране за комуникационния протокол SPI във вграден

Опитайте Нашия Инструмент За Премахване На Проблемите





Комуникацията играе съществена роля при проектирането на вградената система. Без да се обръщаме към протоколите, периферното разширение е изключително сложно и консумира много енергия. The вградена система основно използва серийна комуникация за комуникация с периферните устройства.
Има много протоколи за серийна комуникация, като UART, CAN, USB, I2C и SPI комуникация. Поредицата комуникационен протокол характеристиките включват висока скорост и ниска загуба на данни. Това улеснява проектирането на системно ниво и осигурява надежден трансфер на данни.

Последователна комуникация на данни

Електрически кодирана информация се нарича серийни данни, които се предават бит по бит от едно устройство на друго чрез набор от протоколи. Във вградената система данните за управляващи сензори и задвижващи механизми се получават или предават на устройствата на контролера като микроконтролери, така че данните да бъдат допълнително анализирани и обработени. Тъй като микроконтролерите работят с цифровите данни, информацията от аналогови сензори , изпълнителни механизми и други периферни устройства се преобразува в една байтова (8-битова) двоична дума, преди да бъде предадена на микроконтролера.




Последователна комуникация на данни

Последователна комуникация на данни

Тези серийни данни се предават по отношение на определен импулс на часовника. Скоростта на предаване на данни се нарича скорост на предаване. Броят на битовете за данни, които могат да бъдат предадени в секунда, се нарича скорост на предаване. Да предположим, че данните са от 12 байта, след това всеки байт се преобразува в 8 бита, така че общият размер на предаването на данни е около 96 бита / сек от данните (12 байта * 8 бита на байт). Ако данните могат да се предават веднъж на секунда, скоростите на предаване са около 96 бита / сек или 96 бода. Екранът на дисплея опреснява стойността на данните веднъж на секунда.



Основи на серийния периферен интерфейс

SPI комуникацията означава сериен периферен интерфейс комуникационен протокол , разработен от Motorola през 1972 г. SPI интерфейсът е достъпен на популярни комуникационни контролери като PIC, AVR и ARM контролер и т.н. Той има синхронна серийна комуникационна връзка за данни, която работи в пълен дуплекс, което означава, че сигналите за данни носят едновременно двете посоки.

SPI протоколът се състои от четири проводника като MISO, MOSI, CLK, SS, използвани за главна / подчинена комуникация. Главният е микроконтролер, а подчинените са други периферни устройства като сензори, GSM модем и GPS модем и т.н. Множеството подчинени са свързани към главния чрез серийна шина SPI. Протоколът SPI не поддържа комуникацията Multi-master и се използва за кратко разстояние в рамките на платка.

Основи на серийния периферен интерфейс

Основи на серийния периферен интерфейс

SPI линии

MISO (Master in Slave out) : Линията MISO е конфигурирана като вход в главно устройство и като изход в подчинено устройство.


MOSI (Master out Slave in) : MOSI е линия, конфигурирана като изход в главно устройство и като вход в подчинено устройство, където се използва за синхронизиране на движението на данните.

SCK (сериен часовник) : Този сигнал винаги се задвижва от главното устройство за синхронен трансфер на данни между главното устройство и подчиненото устройство. Използва се за синхронизиране на движението на данни както навътре, така и навън през линиите MOSI и MISO.

SS (Избор на подчинен) и CS (Избор на чип) : Този сигнал се управлява от главното устройство за избор на отделни подчинени устройства / периферни устройства. Това е входен ред, използван за избор на подчинените устройства.

Главна подчинена комуникация със серийна шина SPI

Внедряване на SPI на един главен и на един подчинен

Тук комуникацията винаги се инициира от капитана. Главното устройство първо конфигурира тактовата честота, която е по-малка или равна на максималната честота, която поддържащото устройство поддържа. След това главният избира желания slave за комуникация, като плъзга линията за избор на чип (SS) на това конкретно slave устройство, за да премине в ниско състояние и да е активен. Главният генерира информацията към MOSI линията, която пренася данните от главен към подчинен.

Главна робска комуникация

Главна робска комуникация

Реализации на единичен главен и множество подчинени

Това е конфигурация с множество подчинени устройства с един главен и множество подчинени устройства през серийната шина SPI. Множеството подчинени устройства са свързани паралелно към главното устройство със серийната шина SPI. Тук всички тактови линии и линии за данни са свързани заедно, но щифтът за избор на чип от всяко подчинено устройство трябва да бъде свързан към отделен щифт за подбор на подчинени устройства на устройството maser.

Единичен господар и множество роби

Единичен господар и множество роби

В този процес управлението на всяко подчинено устройство се извършва чрез линия за избор на чип (SS). ПИНът за избор на чип става нисък, за да активира подчиненото устройство, а високият, за да деактивира подчиненото устройство.

Прехвърлянето на данни се организира чрез използване на регистрите за смяна както на главното, така и на подчинените устройства с даден размер на думите около 8-битов и 16-битов, съответно. И двете устройства са свързани под формата на пръстен, така че стойността на регистъра на мазерния сдвиг се предава през линията MOSI, а след това подчиненото измества данните в своя регистър на смяна. Данните обикновено се преместват първо с MSB и се преместват нови LSB в същия регистър.

Прехвърляне на данни между главен и подчинен

Прехвърляне на данни между главен и подчинен

Значение на полярността и фазата на часовника

Обикновено предаването и приемането на данни се извършва по отношение на тактовите импулси при нарастващи и падащи ръбове. Разширените микроконтролери имат две честоти: вътрешна честота и външна честота. SPI периферните устройства могат да бъдат добавени чрез споделяне на линиите MISO, MOSI и SCLK. Периферните устройства са от различни видове или скорости като ADC, DAC и т.н. Така че трябва да променим настройките на SPCR между трансферите към различни периферни устройства.

SPCR регистър

SPCR регистър

SPI шината работи в един от 4-те различни режима на трансфер с тактова полярност (CPOL) и тактова фаза (CPHA), която определя тактовия формат, който да се използва. Тактовата полярност и фазовите тактови честоти зависят от това кое периферно устройство се опитвате да комуникирате с главното устройство.
CPHA = 0, CPOL = 0: Първият бит започва като по-нисък сигнал - данните се вземат проби при нарастващ ръб и данните се променят при падащ ръб.

CPHA = 0, CPOL = 1: Първият бит започва с по-нисък часовник - данните се вземат проби при падащ ръб и данните се променят при нарастващ ръб.

CPHA = 1, CPOL = 0: Първият бит започва с по-висок часовник - данните се вземат проби при падащ ръб и данните се променят при нарастващ ръб.

CPHA = 1, CPOL = 1: Първият бит започва с по-висок часовник - данните се вземат проби при нарастващ ръб, а данните се променят при падащ ръб.

Времена на SPI шина

Времена на SPI шина

Протокол за комуникация SPI

Много микроконтролери имат вградени SPI протоколи, които обработват всички изпращащи и получаващи данни. Всяка от операциите в режим на данни (R / W) се контролира от регистри за контрол и състояние на протокола SPI. Тук можете да наблюдавате EEPROM интерфейса към микроконтролера PIC16f877a чрез протокола SPI.

Тук 25LC104 EEROM е памет от 131072 байта, в която микроконтролерът прехвърля два байта данни към EEROM памет през серийна шина SPI. Програмата за това взаимодействие е дадена по-долу.

Комуникация Master-Slave чрез серийна шина SPI

Комуникация Master-Slave чрез серийна шина SPI

#include
Sbit SS = RC ^ 2
Sbit SCK = RC ^ 3
Sbit SDI = RC ^ 4
Sbit SDO = RC ^ 5
Празнина инициализира EEROM ()
Главно празно ()
{
SSPSPAT = 0x00
SSPCON = 0x31
SMP = 0
SCK = 0
SDO = 0
SS = 1
EE_adress = 0x00
SPI_write (0x80)
SPI_write (1234)
SS = 0
}

Предимства на протокола SPI

  • Това е пълна дуплексна комуникация.
  • Това е високоскоростна шина за данни 10MHzs.
  • Не се ограничава до 8 бита при прехвърляне
  • Хардуерното взаимодействие е лесно чрез SPI.
  • Slave използва главен часовник и не се нуждае от скъпоценни осцилатори.

Това е всичко за SPI комуникациите и нейните взаимодействие с микроконтролер . Оценяваме вашия жив интерес и внимание към тази статия и следователно очакваме вашата гледна точка по тази статия. Освен това, за всяко свързано кодиране и помощ, можете да ни попитате, като коментирате по-долу.

Кредити за снимки: