Основи SPI протокол

SPI (сериен периферен Bus) - сериен периферен протокол. Това пункция е разработен от Motorola. но сега се използва от много производители. Той е предназначен за комуникация между микроконтролер, както и всички видове периферни устройства: датчици D конвертор, чиповете памет часа. И все пак, най-честата употреба на SPI - тя записва програма в памет на микроконтролера. микроконтролер AVR С. чрез SPI флаш микроконтролер може да не vypaivaya на борда, този метод се нарича фърмуер ISP (В Системно програмиране). Въпреки че името на SPI и ISP е много в унисон, това не е едно и също нещо, в AVR SPI се използва като ниво физическо ISP. т.е. използване SPI линии за пренос на данни, но самата (софтуер слой) протокол е различен.

За да прехвърлите данни в SPI използва три линии:

Мишо (магистър Input Output Slave) - тази линия Master (магистър) получава данни от Slave (роб).

MOSI (магистър Output Slave Input) - тази линия Магистър изпраща данни към роб.

SCK (Serial Clock) - служи за предаване на сигнал часовник до устройството за роб.

Използва се и ред SS (Slave Изберете). което определя устройството, с което Учителят ще обменят данни.

Основи SPI протокол


Поради факта, че много производители използват SPI в своите устройства, констатациите на името може да са малко по-различни. Таблицата по-долу с алтернативни имена.

Основи SPI протокол


SPI е от два вида хардуер и софтуер. При използване на софтуера SPI. ние трябва да зададете ръчно сигнал към съответните краката Мишо, MOSI, SS с дърпането на SCK. За SPI за изпълнение хардуер ние предават данни на специалния регистър, а самата микроконтролера се справя по-горе манипулация, според предварителни настройки.

Физическа реализация на SPI. Той представлява две смени регистри, свързани заедно.

Основи SPI протокол


В зависимост от това, което логично ниво на SCK на сигнала. Това се случва, главен и подчинен синхронизация, както и за да е край на улавяне и смяна на данни, осигуряващи 4 режим SPI.

Основи SPI протокол


  • CPOL = 0 - пакетен сигнал започва с ниско ниво;
  • CPOL = 1 - пакетен сигнал започва с високо ниво;
  • CPHA = 0 - Данните се вземат проби за нарастващ фронт на синхронизиращ сигнал;
  • CPHA = 1 - Данните се вземат проби на задния ръб времето сигнал.

На осцилограми-долу показва как публикуване 0h17 изглежда в различни режими.
CPOL = CPHA = 0 0

Основи SPI протокол


CPOL = 1 CPHA = 0

Основи SPI протокол


CPOL = 0 CPHA = 1

Основи SPI протокол


CPOL = 1 CPHA = 1

Основи SPI протокол

SPI - синхронен интерфейс, това е, за да получите някои данни от роб. Магистър трябва да изпрати нещо. Изглежда, всичко е ясно, но какво ще стане ако магистър изпраща един байт, а робът трябва да го върне два? В този случай майстор трябва да му изпрати нещо 2 пъти, като 0x00.

Това е всичко, по-горе код проба, взета от работния проект.