Această secțiune continuă. Sistem încorporat O altă interfață de comunicare serială în protocolul de interfață de comunicare hardware - SPI 。 În comparație cu protocolul portului serial UART, SPI Are propria sa unicitate.
Adresa este citată astfel: https://www.eepw.com.cn/article/201812/396060.htm
scurta introducere
SPI (SerialPeripheral Interface), interfață serială periferică.
SPI este prescurtarea SerialPeripheral Interface. SPI este un bus de comunicare sincron cu viteză mare, duplex complet, și ocupă doar patru linii pe pinul cipului. Acesta economisește pinii cipului și economisește spațiu și comoditate pentru aspectul PCB. Datorită acestei caracteristici simple și ușor de utilizat, tot mai multe cipuri au integrat acest protocol de comunicare, cum ar fi AT91RM9200.
- din enciclopedia Baidu
Interfața a fost dezvoltată de Motorola la mijlocul anilor '80 și a devenit un standard de facto.
- de la Wiki
Din „standardul de fapt” pe care Wikipedia l-a consultat, putem obține un punct orb al cunoștințelor în știință.
Standardele de fapt se referă la cele care nu sunt formulate de organizațiile de standardizare, ci de întreprinderi și grupuri de afaceri care se află în poziția de lider a tehnologiei. Unele dintre ele au nevoie și de aprobarea organizațiilor de alianță din industrie, cum ar fi standardele DVD care trebuie aprobate de forumul DVD și standardele tehnice acceptate de piață.
- din enciclopedia Baidu
Interfața SPI definește o arhitectură de gazdă și mai multă comunicare. Pe același autobuz SPI, există o singură gazdă și există mai multe calculatoare slave. O astfel de arhitectură restricționează inițiativa comunicării doar pe partea gazdă, gazda inițiază o comunicare și sclavul face ceea ce este dorit.
Linia de semnal
SPI este numit bus serial cu patru fire, iar liniile sale de semnal sunt:
SCLK: ceas serial (ieșire gazdă)
MOSI: ieșire principală de la intrarea slave sau de la ieșirea gazdă la ieșire (date de la gazdă).
MISO: intrarea principală din ieșire sau intrarea principală din ieșire (din ieșirea datelor de ieșire).
SS: selecția sclavilor (de obicei eficiență scăzută, ieșire gazdă).
Numirea liniilor de semnal este de asemenea variată.
Ceas de port serial:
SCLK: SCK
Ieșirea principală -> de la intrare (MOSI):
SIMO, MTSR - corespund MOSI între dispozitivul principal și dispozitivul sclav.
SDI, DI, DIN, SI - de la dispozitiv; conectați-vă la MOSI pe dispozitivul principal sau conectați-vă la următoarea conexiune.
SDO, DO, DOUT, SO - pe dispozitivul principal; conectați-vă la MOSI-ul stației slave sau conectați-vă la conexiunea de mai sus.
主 输入 <--- 从="" 输出="">--->
SOMI, MRST - corespund MISO între dispozitivul principal și dispozitivul sclav.
SDO, DO, DOUT, SO - de pe dispozitiv; conectați-vă la MISO pe dispozitivul principal sau conectați-vă la următoarea conexiune.
SDI, DI, DIN, SI - dispozitiv principal; MISO conectat la sclav sau conexiune superioară.
Selectarea sclavilor:
SS: SSEL, CS, CE, nSS, / SS, SS #
Denumirile de mai sus sunt SDO, SDI, DOUT, DIN și așa mai departe, toate trebuind să fie văzute separat în echipamentul principal sau doar în echipament. Dar, în general, încercați să scrieți specificații clare, ceea ce nu este ușor să creați ambiguitate.
SPI, ca interfață serială sincronă, poate fi considerată ca având două semnale sincrone. Prima dintre ele este selectarea semnalelor SS de la mașina sclavă, informarea sclavului selectat, pregătirea comunicării SPI, iar a doua este sincronizarea semnalului de ceas SCLK. Atunci când părțile transceiver interacționează cu datele, acestea sunt transmise și prelevate de biți pe baza saltului SCLK.
Cele patru linii de semnal nu sunt toate necesare, în funcție de modul de lucru, ele pot fi configurate în două linii și trei linii.
Pe pagina de configurare a instrumentului STM32CubeMX, puteți vedea clar cât de diferite sunt pinii cip pentru diferite moduri de funcționare.



Comparația a constatat că diferența dintre cele patru și trei linii ale duplexului complet este semnalul sclav NSS. Această situație se datorează, în general, că autobuzul SPI are o singură arhitectură de comunicare principală și una sclavă, iar semnalul NSS sclav a fost întotdeauna la nivel scăzut.
Momentul semnalului
Secvența de timp a interfeței SPI cu patru fire este întotdeauna întotdeauna întâi scăzută, selectați linia de semnal SS de la mașină, apoi ieșiți SCLK și luați datele MOSI, în acest moment MISO este o stare de impedanță ridicată. După cum urmează:

De obicei, există dispozitive de interfață SPI și vor exista diagrame de secvență corespunzătoare pe Spec. Interfața SPI este interceptată, respectiv. Modelul FLASH este GD25Q32C, interfața SPI Modelul OLED este QG-2832TLBFG04, iar piesele Spec ale celor două dispozitive sunt prezentate după cum urmează: două capturi de ecran:


Nu este dificil să descoperiți că specificația diagramei de sincronizare definește ordinea și timpul de întârziere a fiecărui nivel de ieșire a liniei de semnal și definește „alinierea” semnalului de ceas care se saltă împreună cu semnalul de date. „Alinierea” aici este de fapt ieșirea și eșantionarea datelor.
În mod similar, această specificație de sincronizare specifică caracteristicile semnalului de interfață SPI ale dispozitivelor SPI, inclusiv creșterea ceasului, timpul căderii muchiei, întârzierea dintre selecția cipului și marginea de prindere a ceasului și durata marginii ceasului și a liniei de date.
Aceste caracteristici de sincronizare definesc domeniul de aplicare al gazdei SPI atunci când comunică cu aceasta sau nu depășește scopul definiției sale, altfel va duce la o comunicare anormală din răspunsul pieselor mașinii.
Diferitele dispozitive au cerințe de temporizare diferite pentru interfața SPI. Prima diagrama de secvență simplă și pe baza acestei diagrame de secvență, interfața SPI poate configura, de asemenea, diferiți parametri de configurare a interfeței.
Element de configurare a interfeței
În general, configurația opțională a interfeței este: modul interfață (configurația reală este selecția modului unic și duplex), modul sclav master principal, lățimea datelor, polaritatea ceasului (CPOL :), faza de ceas (CPHA), viteza de ceas, bit de date dimensiunea și selectarea terminalului.
Mod de interfață
Interfața standard SPI cu patru fire utilizează comunicarea între gazdă și sclav pentru interacțiunea datelor, iar cele două părți au procesul de primire și trimitere a datelor. În interfața SPI LCD / OLED, nu este nevoie ca datele să fie returnate gazdei ca dispozitiv al dispozitivului. Trebuie doar să primească informații de control și să afișeze date de la gazdă.
Pe baza acestui scenariu, acesta poate fi configurat ca o comunicare simplex cu trei fire, adică numai SS, ceas SCLK și ieșire de date MOSI pot fi selectate de pe aparat.
Modul sclav principal de dispozitiv
Această configurație trebuie, în general, să vadă dacă cipul acceptă sau nu și poate fi configurat ca o gazdă SPI sau o mașină sclavă, astfel încât să poată fi integrat mai bine în sistemul de proiect.
Lățimea datelor
După cum sugerează și numele, trimiterea datelor poate fi configurată în 8 biți, 16 biți și așa mai departe, ceea ce este determinat și în funcție de cip.
Polaritatea ceasului și faza ceasului
Cele două sunt CPOL (polaritatea ceasului) și CPHA (faza cu ceas). Polaritatea înseamnă un nivel înalt și scăzut. Aceasta definește autobuzul SPI în stare de repaus, ceasul păstrează un nivel ridicat sau scăzut, deoarece atunci când vine vorba de comunicarea SPI, primul muchie de săritură este în creștere și în jos. Faza se referă la marginea de salt a ceasului, specificând ieșirea semnalului de date și modul în care eșantionarea este aliniată la ceas.
Cele două configurații au fost interpretate foarte clar în enciclopedia Wiki și Baidu.


Frecvența
Selecția de viteză definește rata de rotație a liniei de semnal a ceasului în transmisia de date, care este intervalul de viteză care poate fi susținut în diagrama secvenței de interfață definită de fiecare cip. Dacă viteza gazdei este setată prea repede și răspunsul mașinii slave este prea lent, comunicarea nu va reuși.
Mărimea bitului de date și selectarea finalului
Datele de trimitere a bitului prioritar configurabile, din primul protocol UART se poate ști, UART a specificat prioritatea de date bit0, iar acest SPI este prioritar configurabil pentru a trimite bit, poate seta poziția cea mai mică sau cea mai înaltă.
Din capturile de ecran din seria FLASH model GD25Q32 și OLED QG-2832TLBFG04, putem vedea că aceste două dispozitive acordă prioritate MSB, adică cea mai mare prioritate.
Apoi comparați instrucțiunile pentru un cip de caractere GT21L16S2W pentru citire:

Se poate observa că prioritatea de transmisie a MSB este adoptată în mod obișnuit în dispozitivele SPI.
Rezumați interfața de comunicare SPI, o singură gazdă și arhitectură de comunicare slave multiple. Modul standard are patru linii de semnal, începe comunicarea cu semnalul SS selectat, semnalul de ceas SCLK realizează ieșirea de biți și prelevarea de probe, configurând timpul de prelevare și acordând prioritate bitului de emisie.
