Seriële communicatie-interface - SPI In embedded hardware communicatie-interfaceprotocol

Sep 16, 2019

Laat een bericht achter

Deze sectie gaat verder. Een andere seriële communicatie-interface in het hardware communicatie-interfaceprotocol - 。 Vergeleken met het UART seriële poortprotocol, Het heeft zijn eigen uniekheid.

Het adres is als volgt geciteerd: Http://www.eepw.com.cn/article/201812/396060.htm

korte introductie

(SerialPeripheral Interface), seriële randinterface.

SPI is de afkorting van SerialPeripheral Interface. SPI is een high-speed, full-duplex, synchrone communicatiebus en bezet slechts vier lijnen op de pin van de chip. Het bespaart de pinnen van de chip en bespaart ruimte en gemak voor de lay-out van PCB. Vanwege dit eenvoudige en gemakkelijk te gebruiken kenmerk, hebben meer en meer chips dit communicatieprotocol geïntegreerd, zoals AT91RM9200.

- van Baidu Encyclopedia

De interface werd ontwikkeld door Motorola in het midden van de jaren tachtig en is de facto standaard geworden.

--van Wiki

Uit de "feitenstandaard" die Wikipedia heeft geraadpleegd, kunnen we een blinde vlek van kennis in de wetenschap krijgen.

Feitelijke normen verwijzen naar normen die niet zijn geformuleerd door de standaardisatieorganisaties, maar door ondernemingen en bedrijfsgroepen die een vooraanstaande positie in de technologie innemen. Sommigen van hen hebben ook de goedkeuring nodig van de industriealliantieorganisaties, zoals de dvd-normen die moeten worden goedgekeurd door het dvd-forum en de technische normen die door de markt worden geaccepteerd.

- van Baidu Encyclopedia

De SPI-interface definieert een host en meer communicatie-architectuur. Op dezelfde SPI-bus is er slechts één host en zijn er meerdere slavecomputers. Een dergelijke architectuur beperkt het communicatie-initiatief alleen aan de hostzijde, de host initieert een communicatie en de slaaf maakt de gewenste.

De signaallijn

SPI wordt de vierdraads seriële bus genoemd en de signaallijnen zijn:

SCLK: seriële klok (hostuitgang)

MOSI: hoofduitvoer van slave-invoer of host-uitvoer slave-invoer (uitvoergegevens van host).

MISO: de hoofdinvoer van de uitvoer of de hoofdinvoer van de uitvoer (van de uitvoergegevensuitvoer).

SS: slave-selectie (meestal laag rendement, hostoutput).

De naamgeving van signaallijnen is ook gevarieerd.

Seriële poortklok:

SCLK: SCK

De hoofduitvoer -> van invoer (MOSI):

SIMO, MTSR - komt overeen met MOSI tussen hoofdapparaat en slave-apparaat.

SDI, DI, DIN, SI - van het apparaat; maak verbinding met de MOSI op het hoofdapparaat of maak verbinding met de volgende verbinding.

SDO, DO, DOUT, SO - op het hoofdapparaat; maak verbinding met de MOSI van het slave-station of maak verbinding met de bovenstaande verbinding.

主 输入 <--- 从="" 输出="">

SOMI, MRST - komt overeen met MISO tussen hoofdapparaat en slave-apparaat.

SDO, DO, DOUT, SO - van het apparaat; maak verbinding met de MISO op het hoofdapparaat of maak verbinding met de volgende verbinding.

SDI, DI, DIN, SI - hoofdapparaat; MISO verbonden met slave of bovenste verbinding.

Slave selectie:

SS: SSEL, CS, CE, nSS, / SS, SS #

De bovenstaande verwarrende namen zijn SDO, SDI, DOUT, DIN, enzovoort, die allemaal afzonderlijk moeten worden gezien in de hoofdapparatuur of alleen van de apparatuur. Maar probeer over het algemeen duidelijke specificaties te schrijven, wat niet eenvoudig is om dubbelzinnigheid te creëren.

SPI, als een synchrone seriële interface, kan worden beschouwd als twee synchrone signalen. De eerste is om SS-signalen van de slave-machine te selecteren, om de geselecteerde slave te informeren, om zich voor te bereiden op SPI-communicatie, en de tweede is om het kloksignaal SCLK te synchroniseren. Wanneer de zijden van de zendontvanger communiceren met de gegevens, worden ze uitgevoerd en bemonsterd per bit op basis van de sprong van SCLK.

De vier signaallijnen zijn niet allemaal nodig, afhankelijk van de werkmodus, ze kunnen worden geconfigureerd in twee lijnen en drie lijnen.

Op de configuratiepagina van de STM32CubeMX-tool kunt u duidelijk zien hoe verschillend de chippennen zijn voor verschillende bedrijfsmodi.







Uit de vergelijking bleek dat het verschil tussen de vier en drie lijnen van de volledige duplex het slave-signaal NSS is. Deze situatie komt meestal omdat de SPI-bus slechts één hoofd- en één slave-communicatiearchitectuur heeft en het slave NSS-signaal altijd van een laag niveau is geweest.

Signaaltiming

De tijdvolgorde van de vierdraads SPI-interface is altijd altijd eerst laag, selecteer de signaallijn SS van de machine, voer vervolgens de SCLK uit en neem de gegevens-MOSI, op dit moment is MISO een hoge impedantietoestand. Als volgt:



Er zijn meestal SPI-interface-apparaten en er zijn overeenkomstige sequentiediagrammen op Spec. De SPI-interface wordt respectievelijk onderschept. Het FLASH-model is GD25Q32C, het SPI-interface OLED-model is QG-2832TLBFG04 en de Spec-delen van de twee apparaten worden als volgt geïntroduceerd: twee screenshots:





Het is niet moeilijk om te vinden dat de specificatie van het timingdiagram de volgorde en tijdsvertraging van elk signaallijnuitgangsniveau definieert en de "uitlijning" van het kloksignaal bepaalt dat samen met het gegevenssignaal springt. De "uitlijning" hier is eigenlijk de uitvoer en bemonstering van de gegevens.

Evenzo specificeert deze timingspecificatie de SPI-interface-signaalkarakteristieken van SPI-apparaten, inclusief de klokstijging, de tijd van dalende flank, de vertraging tussen chipselectie en klokhoppingflank en de duur van de klokflank en datalijn.

Deze timingkarakteristieken bepalen de reikwijdte van de SPI-host wanneer deze ermee communiceert, of deze overschrijdt de reikwijdte van zijn definitie niet, anders zal dit leiden tot abnormale communicatie door de reactie van de machineonderdelen.

Verschillende apparaten hebben verschillende timingvereisten voor de SPI-interface. Het eerste eenvoudige sequentiediagram en op basis van dit sequentiediagram kan de SPI-interface ook verschillende interfaceconfiguratieparameters configureren.

Interface configuratie-item

Over het algemeen is de optionele configuratie van de interface: interfacemodus (werkelijke configuratie is selectie van enkelvoudige en duplexmodus), master-slave-modus van apparaat, gegevensbreedte, klokpolariteit (CPOL :), klokfase (CPHA), kloksnelheid, gegevensbitbit grootte en terminal selectie.

Interfacemodus

De standaard vierdraads SPI-interface gebruikt de communicatie tussen de host en slave voor gegevensinteractie, en de twee partijen hebben het gegevensontvangst- en verzendproces. In de LCD / OLED SPI-interface hoeven er geen gegevens naar de host te worden geretourneerd als het apparaat van het apparaat. Het hoeft alleen besturingsinformatie te ontvangen en gegevens van de host weer te geven.

Op basis van dit scenario kan het worden geconfigureerd als een drie-draads simplex-communicatie, dat wil zeggen dat alleen SS, klok SCLK en data-uitvoer MOSI kunnen worden geselecteerd vanaf de machine.

Device master slave-modus

Deze configuratie moet in het algemeen zien of de chip ondersteunt of niet en kan worden geconfigureerd als een SPI-host of slave-machine, zodat deze beter in het projectsysteem kan worden geïntegreerd.

Gegevensbreedte

Zoals de naam al aangeeft, kan het verzenden van gegevens worden geconfigureerd in 8bit, 16bit enzovoort, wat ook wordt bepaald aan de hand van de chip.

Klokpolariteit en klokfase

De twee zijn CPOL (Clock Polarity) en CPHA (Clock Phase). Polariteit betekent hoog en laag niveau. Dit definieert de SPI-bus in inactieve toestand, de klok houdt hoog of laag niveau, want als het gaat om SPI-communicatie, is de eerste klokspringrand stijgende en dalende flank. De fase verwijst naar de sprongrand van de klok en geeft de uitvoer van het gegevenssignaal aan en hoe de bemonstering is uitgelijnd met de klok.

De twee configuraties zijn heel duidelijk geïnterpreteerd in Wiki en Baidu encyclopedie.





Kloksnelheid

Snelheidsselectie definieert de draaisnelheid van de kloksignaallijn bij gegevensoverdracht, dat is het snelheidsbereik dat kan worden gehandhaafd in het interface-sequentiediagram dat door elke chip wordt gedefinieerd. Als de snelheid van de host te snel is ingesteld en de reactie van de slave-machine te langzaam is, zal de communicatie mislukken.

Gegevensbit bitgrootte en eindselectie

Gegevens verzendende prioriteit bit configureerbaar, van het eerste UART-protocol kan weten, UART gespecificeerde gegevensprioriteit bit0, en deze SPI is configureerbare prioriteit om bit te verzenden, kan de laagste of de hoogste positie instellen.

Uit de screenshots van tijdreeksen van FLASH-model GD25Q32 en OLED QG-2832TLBFG04 kunnen we zien dat deze twee apparaten allemaal prioriteit geven aan MSB, dat wil zeggen de hoogste prioriteit.

Vergelijk vervolgens de instructie van een lettertype-chip GT21L16S2W voor het lezen:



Het is te zien dat de transmissieprioriteit van MSB algemeen wordt aangenomen in SPI-apparaten.

Vat de SPI-communicatie-interface, een host en meerdere slave-communicatiearchitectuur samen. De standaardmodus heeft vier signaallijnen, start communicatie met het geselecteerde signaal SS, het kloksignaal SCLK voert bituitvoer en bemonstering uit, configureert bemonsteringstijd en geeft prioriteit aan uitgiftebit.


Aanvraag sturen