Het analyseren van de Serial Peripheral Interface (SPI) bus

een seriële bus kan efficiënter zijn dan de traditionele parallelle bus. Maar er zijn uitdagingen in het vertegenwoordigen en zinvol maken van de seriële gegevensstroom in de context van klok timing. Deze problemen kunnen worden opgelost door gebruik te maken van de multi-channel mogelijkheden van geavanceerde oscilloscopen zoals de Tektronix serie 3000 instrumenten.

tek-serie 3000
de Tektronix-serie 3000 oscilloscopen kunnen seriële busactiviteit weergeven, inclusief gegevens en kloksignalen op dezelfde tijdas.

de sleutel tot het begrijpen en interpreteren van de seriële gegevens-en klokstromen ligt in het begrijpen van de interne werking van elk afzonderlijk type gegevensbus. Denk in het bijzonder aan de Serial Peripheral Interface (SPI) bus. Het lijkt op de I2C bus, maar er zijn aanzienlijke verschillen. Beide zijn georganiseerd rond master/slave architecturen. Maar de bedrading tussen meester en slaaf is radicaal anders.

SPI-architectuur
de SPI-busverbindingen bestaan uit MOSI, MISO en een aparte slave select-lijn van de master naar elke slave. Logica-lage spanning maakt de slave actief.

doorgaans werkt SPI met één master-apparaat en een aantal slaves, hoewel zo weinig als één slave mogelijk is. De regels zijn als volgt:
• een seriële kloklijn loopt van de master naar elke slave. De klok bestaat in de meester en een vierkant-Golf kloksignaal wordt overgebracht naar de slaaf die actief is. De klokfrequentie wordt door de gebruiker gekozen, maar kan niet sneller zijn dan toegestaan voor het langzaamste slave-apparaat. Bij het opzetten van het systeem moeten dus individuele slave-gegevensbladen worden geraadpleegd.

* Master-out, slave-in (MOSI). Dit is de lijn die gegevens overbrengt zoals die door de meester worden doorgegeven aan welke slaaf dan ook die actief is. De lijn loopt naar alle slaven, maar degenen die niet actief zijn negeren het.
* Master-in, slave-out (MISO). Deze lijn brengt gegevens van de actieve slaaf naar de meester. Omdat MOSI en MISO gescheiden lijnen zijn, kunnen gegevens gelijktijdig in beide richtingen worden overgebracht, ten nadele van geen van beide.
* Slave select (SS). Een aparte lijn wordt uitgevoerd naar elke slaaf. Normaal gesproken, wanneer het systeem wordt ingeschakeld, is een logic-high voltage van de master aanwezig op de SS-pin van elk slave-apparaat. Om een slave te activeren schakelt de master de spanning op die SS lijn naar logic low. Deze methode van slave selectie is in plaats van het adresseringsconcept zoals geïmplementeerd in de I2C bus.

de SPI-bus wordt soms een driedraads schema genoemd, of een vierdraads schema als je een SS-lijn meetelt voor een enkele slave. Onnodig te zeggen, elk van deze draden is eigenlijk een twee-draads circuit, dus een grond retourlijn is vereist, maar het wordt niet beschouwd in de numerieke nomenclatuur. Een geaarde geleider is voldoende om al deze circuits te voltooien.

het Tektronix MDO Demo 1-bord biedt talrijke uitgangen, waaronder I2C-en SPI-busklok-en datasignalen. Het is bedoeld om te gaan met de Tektronix mdo4000 serie oscilloscopen, maar het werkt ook goed met de mdo3000 serie instrumenten.

het Tektronix MDO Demo 1-bord ontvangt stroom via een ongebruikelijke T-type USB-kabel met dubbele USB Type A-connectoren aan één uiteinde. Ze steken in de twee oscilloscoop USB-sleuven. De grondgedachte is dat de stroomvereisten van de demo Board 1 zodanig zijn dat als een standaard USB-kabel zou worden gebruikt, het een enkele USB-uitgang op de oscilloscoop zou overbelasten.

een rode en twee groene LED ‘ s geven de ontvangst van het vermogen van de oscilloscoop aan en geven aan dat het bord klaar is voor gebruik. Er zijn tal van uitgang terminals op het bord. Ze zijn geschikt voor sonde verbinding met behulp van sonde haak tips en grond return lead alligator clips.

SPI signaalweergave
SPI klok, MOSI en MISO signalen weergegeven in Tektronix mdo3104 scope.

voor het weergeven van SPI-bussignalen, TPP 1000 10:1 sondes in analoge ingangen 1, 2 en 3. Alle grondterugloopkabels zijn verbonden met een van de grondterminals van het bord en de drie sondepunten zijn aangesloten op de SPI clock, MISO en MOSI signaalterminals. Zoals altijd, de grond return leads moet eerst worden aangesloten, voordat de sonde tips.

men zou een vierde oscilloscoopkanaal kunnen gebruiken om een slave-select signaal weer te geven. Maar omdat dit signaal slechts EEN logic-high of logic-low voltage is, kan het aan beide uiteinden van de SPI bus worden geverifieerd met behulp van een standaard hoog-impedantie multimeter of logic probe.

de oscilloscoop geeft vervolgens de SPI-gegevens en kloksignalen weer. Met behulp van de schaalknoppen Channel One, Channel Two EN Channel Three, gevolgd door Autoset, kunnen de pulsen worden vergroot voor leesbaarheid en kan de acquisitie worden gestopt om het beeldscherm stabieler te maken. De Wave Inspector knoppen kunnen worden gebruikt om de sporen te pannen en in te zoomen voor een kijkje. Dan is het een eenvoudige kwestie om punten op de klok en gegevensstromen te vergelijken om de logicatoestand (hoog of laag) op om het even welk punt in tijd vast te stellen. De verticale cursor, bewogen door het draaien van multifunctionele knop a, is nuttig om te zien hoe deze sporen line-up met betrekking tot de tijd.

we hebben gezien hoe seriële busgegevens en kloksignalen van SPI kunnen worden gevisualiseerd met behulp van een oscilloscoop. De sondes kunnen worden aangesloten op soortgelijke terminals in een werkend (of niet-functionerend) stuk elektronische apparatuur. (Zorg ervoor dat u de overname terug te draaien om te draaien.)

in tegenstelling tot I2C is er geen enkele standaard voor SPI. In de jaren 1980 werd het ontwikkeld door Motorola voor gebruik door de 68000-serie microcontroller. SPI is een de facto in plaats van officiële standaard, en als zodanig blijft het organisch en onderhevig aan verandering.

andere fabrikanten hebben SPI met variaties ingevoerd. Dus bij de uitvoering van het ontwerp is het noodzakelijk om data sheets te raadplegen. Bijvoorbeeld, sommige slave-apparaten vereisen een vallende Rand in het SS-signaal om communicatie te starten. Wanneer er meerdere slave types zijn, zijn verschillende initiërende signalen van de master vereist. Net als I2C, SPI is een korte afstand seriële bus. Vanwege de lage stroombehoefte wordt het vaak gebruikt in mobiele telefoons, persoonlijke digitale assistenten en soortgelijke mobiele apparatuur om interactie tussen CPU, beeldscherm, toetsenbord en geïntegreerde schakelingen te implementeren.

variaties omvatten het weglaten van de MISO-lijn wanneer communicatie van slaaf naar meester niet noodzakelijk is. Ook is de SS-lijn niet nodig wanneer er slechts een enkele slave is, en de slave-select-pin is geaard, zodat deze altijd actief is.Hoewel het waar is dat SPI een synchrone seriële interface (SSI) is, verschilt het radicaal van het SSI-protocol, dat gekenmerkt wordt door differentiële signalering en een enkel enkelvoudig communicatiekanaal.

SPI-schakelregisterser is full-duplex transmissie, zowel MOSI als MISO, tijdens elk kloksignaal. Een bit wordt in elke richting verzonden op de twee afzonderlijke lijnen. De gebruikelijke procedure maakt gebruik van twee ploegenregisters, één in de meester en één in de slaaf. Duplex transmissie gaat door een voldoende aantal klokcycli om de transmissie te voltooien. Op deze manier, meester en slaaf verwerven de registers zoals overgebracht over de twee lijnen. Als er meer gegevens overblijven, worden de shift registers opnieuw geladen en begint de transmissie opnieuw.

dit proces gaat door zoveel klokcycli als nodig is, waarna de master het select signaal naar logic high laat gaan en de slave deselecteert. Transmissies zijn vaak 8-bit, maar er zijn variaties zoals 12-bit voor veel DAC ’s en ADC’ s, en 16-bit voor Touchscreen controllers.

vanwege verschillen in hardware en de facto in protocol heeft de SPI-bus een spectrum van voor-en nadelen ten opzichte van I2C en andere bustypes. Voordelen zijn onder meer full-duplex vermogen alleen door het toevoegen van een andere lijn. Bovendien is er een goede signaalintegriteit, hoge snelheidstransmissie en meer potentiële datatransmissie in vergelijking met I2C. ook is de berichtinhoud onbeperkt en niet beperkt tot 8-bits gegevenseenheden. Over het algemeen is de stroombehoefte minder dan in I2C omdat pull-up weerstanden overbodig zijn. SPI is ook betrouwbaar omdat het geen arbitrage nodig heeft en er geen behoefte is aan unieke slave-adressen. Omdat er geen maximale kloksnelheid behalve slave apparaat beperkingen, is er de mogelijkheid voor high-speed werking.

zoals in elke technologie zijn er nadelen ten opzichte van sommige andere protocollen. Omdat er geen slavenherkenning is, kan de meester, zich niet bewust dat er iets mis is, in een leegte praten zonder toehoorder. Ook kan het ontbreken van een enkele geformaliseerde standaard conformiteitsvalidatie onpraktisch maken. Ook, het bestaan van tal van ongereguleerde SI variaties kan de overname van hardware problematisch te maken.

in de toekomst is het denkbaar dat SPI een grotere mate van codificatie zou kunnen zien. Deze ontwikkeling zal verdere SPI verbeteringen die de verwarring die nu bestaat zou kunnen verminderen betekenen. Dat gezegd hebbende, zoals momenteel geïmplementeerd, SPI is heel gebruiksvriendelijk, met name in de behoefte aan weinig macht.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.

More: