Цей розділ продовжується. Вбудована система Інший інтерфейс послідовного зв’язку в протоколі апаратного зв'язку - SPI 。 Порівняно з протоколом послідовного порту UART, SPI має свою унікальність.
Адреса цитується так: http://www.eepw.com.cn/article/201812/396060.htm
Короткий вступ
SPI (SerialPeripheral Interface), послідовний периферійний інтерфейс.
SPI - це абревіатура SerialPeripheral Interface. SPI - це швидкісний, повний дуплекс, синхронна шина зв'язку і займає лише чотири лінії на штирі чіпа. Це економить штифти мікросхеми та економить простір та зручність для компонування друкованої плати. Через цю просту і просту у використанні характеристику, все більше і більше мікросхем інтегрують цей протокол зв'язку, наприклад AT91RM9200.
- з Енциклопедії Байду
Інтерфейс був розроблений Motorola в середині 1980-х і став фактично стандартом.
--з Вікі
Із "стандарту фактів", з яким консультувалася Вікіпедія, ми можемо отримати сліпу пляму знань у науці.
Фактичні стандарти відносяться до тих, які не сформульовані організаціями зі стандартизації, а підприємствами та бізнес-групами, які займають провідні позиції в галузі технологій. Деякі з них також потребують схвалення галузевих організацій альянсу, таких як стандарти DVD, які необхідно затвердити на форумі DVD, та технічні стандарти, прийняті на ринку.
- з Енциклопедії Байду
Інтерфейс SPI визначає хост і більше архітектури зв'язку. На одній шині SPI є лише один хост, і є декілька рабовласницьких комп'ютерів. Така архітектура обмежує ініціативу спілкування лише на стороні хазяїна, хост ініціює спілкування, а раб робить бажане.
Сигнальна лінія
SPI називається чотирма провідними послідовними шинами, і його сигнальними лініями є:
SCLK: послідовний годинник (вихідний хост)
MOSI: основний вихід з підлеглого входу або вихідний підлеглий вхід (вихідні дані з хоста).
MISO: основний вхід з виходу або основний вхід з виходу (з виходу вихідних даних).
SS: вибір підлеглого (зазвичай низька ефективність, вихідний хост).
Найменування сигнальних ліній також різноманітні.
Серійний годинник порту:
SCLK: SCK
Основний вихід -> з входу (MOSI):
SIMO, MTSR - відповідають MOSI між основним пристроєм і веденим пристроєм.
SDI, DI, DIN, SI - від пристрою; підключіться до MOSI на головному пристрої або підключіться до наступного з'єднання.
SDO, DO, DOUT, SO - на головному пристрої; підключіться до MOSI підлеглого станції або підключіться до вищевказаного з'єднання.
主 输入 <--- 从="" 输出="">--->
SOMI, MRST - відповідають MISO між основним пристроєм і підлеглому пристроєм.
SDO, DO, DOUT, SO - з пристрою; підключіться до MISO на головному пристрої або підключіться до наступного з'єднання.
SDI, DI, DIN, SI - основний пристрій; MISO підключений до підлеглого або верхнього з'єднання.
Вибір раба:
SS: SSEL, CS, CE, nSS, / SS, SS #
Наведені вище заплутані назви: SDO, SDI, DOUT, DIN і так далі, і все це потрібно бачити окремо в основному обладнанні або тільки в апараті. Але загалом спробуйте написати чіткі специфікації, що створити неоднозначність непросто.
SPI як синхронний послідовний інтерфейс можна вважати таким, що має два синхронні сигнали. Перший - це вибір SS-сигналів з підлеглого машини, інформування вибраного веденого, підготовка до SPI-зв'язку, а другий - синхронізація синхросигналу SCLK. Коли сторони приймача взаємодіють з даними, вони виводяться та відбирають вибірку по бітах на основі стрибків SCLK.
Чотири сигнальні лінії не всі потрібні, відповідно до режиму роботи вони можуть бути налаштовані на дві лінії та три лінії.
На сторінці конфігурації інструменту STM32CubeMX ви чітко бачите, наскільки різними є штифти мікросхем для різних режимів роботи.



Порівняння встановило, що різниця між чотирма та трьома лініями повного дуплексу - ведений сигнал NSS. Ця ситуація, як правило, пояснюється тим, що шина SPI має лише одну основну та одну підлеглу архітектуру зв'язку, а ведений сигнал NSS завжди був низьким рівнем.
Час сигналу
Часова послідовність чотирьохпровідного інтерфейсу SPI завжди завжди спочатку низька, виберіть сигнальну лінію SS з машини, потім виведіть SCLK і візьміть дані MOSI, в цей час MISO - це стан високого опору. Так:

Зазвичай є інтерфейсні пристрої SPI, і на Spec будуть відповідні діаграми послідовностей. Інтерфейс SPI перехоплюється відповідно. Модель FLASH - це GD25Q32C, OLED-інтерфейс SPI - QG-2832TLBFG04, а деталі Spec двох пристроїв представлені наступним чином: два скріншоти:


Не важко знайти, що специфікація діаграми синхронізації визначає порядок і часову затримку кожного виходу рівня сигнальної лінії, а також визначає "вирівнювання" тактового сигналу, що стрибає разом із сигналом даних. "Вирівнювання" тут - це фактично вихід та вибірка даних.
Аналогічно, ця специфікація синхронізації визначає характеристики сигналу інтерфейсу SPI для SPI-пристроїв, включаючи підйом годин, час падаючої кромки, затримку між вибором мікросхеми та стрибком годинника, а також тривалість краю тактової лінії та лінії передачі даних.
Ці характеристики синхронізації визначають сферу дії хоста SPI під час спілкування з ним, або він не перевищує обсяг його визначення, інакше це призведе до ненормального зв’язку з боку відповіді деталей машини.
Різні пристрої мають різні вимоги до часу для інтерфейсу SPI. Перша проста діаграма послідовностей і на основі цієї діаграми послідовностей інтерфейс SPI також може налаштувати різні параметри конфігурації інтерфейсу.
Елемент конфігурації інтерфейсу
Загалом, необов'язковою конфігурацією інтерфейсу є: режим інтерфейсу (фактична конфігурація - вибір одно- та дуплексного режиму), головний ведений режим, ширина даних, полярність тактової частоти (CPOL :), тактова фаза (CPHA), тактова частота, біт даних розмір та вибір терміналу.
Інтерфейсний режим
Стандартний чотирипровідний інтерфейс SPI використовує зв'язок між хостом і веденим пристроєм для взаємодії даних, а дві сторони мають процес прийому та передачі даних. У інтерфейсі LCD / OLED SPI йому не потрібно повертати дані хосту в якості пристрою пристрою. Потрібно лише отримувати керуючу інформацію та відображати дані від хоста.
Виходячи з цього сценарію, він може бути налаштований як трипроводовий симплексний зв'язок, тобто з машини можуть бути обрані тільки SS, тактовий SCLK і вихідний MOSI.
Режим головного веденого пристрою
Ця конфігурація, як правило, повинна бачити, чи підтримує чіп чи ні, і він може бути налаштований як хост SPI або підлеглий апарат, щоб він міг краще інтегруватися в проектну систему.
Ширина даних
Як випливає з назви, передача даних може бути налаштована на 8 біт, 16 біт тощо, що також визначається відповідно до мікросхеми.
Полярність та тактова фаза
Ці два: CPOL (тактова полярність) і CPHA (тактова фаза). Полярність означає високий і низький рівень. Це визначає шину SPI в режимі очікування, годинник підтримує високий або низький рівень, тому що коли мова заходить про зв'язок SPI, то перший перехідний край годинника піднімається і падає. Фаза відноситься до краю стрибка годинника, вказуючи вихід сигналу даних та спосіб вибору вибірки з тактовою частотою.
Дві конфігурації дуже чітко трактовані в енциклопедії Вікі та Байду.


Тактова частота
Вибір швидкості визначає швидкість повороту лінії синхросигналу при передачі даних, яка є діапазоном швидкостей, який може підтримуватися в діаграмі послідовностей інтерфейсу, визначеній кожною мікросхемою. Якщо швидкість хоста встановлюється занадто швидко, а реакція підлеглого машини занадто повільна, зв’язок буде провалюватися.
Розмір біт даних та кінцевий вибір
Біт пріоритету передачі даних може бути налаштований, з першого протоколу UART можна знати, UART вказаний пріоритет біт даних 0, і цей SPI є налаштованим пріоритетом для надсилання біта, може встановлювати найнижчу або найвищу позицію.
З скріншотів часових рядів FLASH моделі GD25Q32 та OLED QG-2832TLBFG04 ми бачимо, що всі ці два пристрої надають пріоритет MSB, тобто найвищий пріоритет.
Потім порівняйте інструкцію шрифтового чіпа GT21L16S2W для читання:

Видно, що пріоритет передачі MSB зазвичай прийнятий у пристроях SPI.
Підсумуйте інтерфейс зв'язку SPI, один хост і декілька підлеглих архітектури зв'язку. У стандартному режимі є чотири сигнальні лінії, починається зв'язок з обраним сигналом SS, тактовий сигнал SCLK здійснює вихід бітів і вибірку, налаштовуючи час вибірки і надаючи пріоритет видачі бітів.
