Logikai analizátor

Néhány alkalmazás nem-működése esetén felmerül a kérdés:
  • a software van elrontva,
  • a hardware okoz problémát, vagy
  • az alkalmazott eljárásban van valami hiba...

Ezekben a vizsgálandó az esetekben sokszor nem is fontos az, hogy a jel lefutása/túllövései hogyan alakulnak - hanem egyszerű logikai alacsony/magas megfelelést kell csak nézni, a kapott jeleket ellenőrizni és a jelsorozatot visszafejteni. Számos esetben párhuzamosan, egyidejűleg több csatornát kell vizsgálni - például SPI busz esetén legalább 4 darabra lenne szükség.

Minthogy nem kell analóg jelelemzést végezni, így az egyszerű logikai jelekre szorítkozunk csak. Nem mindenki olyan mázlista, hogy tárolós oszcilloszkópot hozott neki a nyári mikulás :).

A kulcsszó ebben a mérésben: az elemzésre...

Logikai jelanalizátor vagy röviden LA

Az eszköz viszonylag egyszerű: a bemeneten levő jelek H illetve L logikai jelszinteket kell beolvasni, ezt letárolni és/vagy a PC-re eljuttatni. A port beolvasásával még nem is lenne gond, de ezt letárolni igen sok jelet (és helyet) jelent. Számos kísérlet volt már erre...

AVR alapú rendszer

Az AVR chipek sokmindenre jók. Pont erre ne lenne megfelelő?

Első AVR-es logikai analizátor

Első lépcsőben a komplett 8-bites port beolvasása a feladat és utána ezt a belső SRAM-ba mentjük el. Ezzel kész is a céleszköz! Előnye a nagyon egyszerű szoftver, a hátránya, hogy kevés adat menthető el és a szoftver - AVR alkalmazása esetén - kb. 1 MHz sávszélességnyi adatot tud letárolni (kb. 20 órajel időtartamot vesz igénybe a portkezelés és a SRAM-ba mentés). A beolvasott adat így kb. 1-2 msec időt fog át. Ezt a jel begyűjtést az indítóimpulzus fel- vagy lefutó éléhez igazíthatjuk, hogy lássunk is valamit...

Arduino alapú megvalósításban egy grafikus kijelzővel összeépítve (a kép a blogból származik): http://bobdavis321.blogspot.ca/2013/06/six-channel-3-million-samples-per.html

A második nekifutás

AVR alapon egyszerűsíthetünk picit, hogyha külső SRAM-mal tuningoljuk a kapacitást. Így bonyolult hardware lesz a kezünkben, ám a belső 1..4 kbyte memória helyett 64 kbyte helyünk van. Így legjobb esetben is már néhány 10 msec adatot tudunk tárolni. Ez még mindig igen kevés egy jel elemzéséhez..

Legyen nagyobb tárolónk és küldjük át PC-re!

A legegyszerűbb PC kapcsolat a sorosport. Ekkor RS-232 kapcsolat esetén 115.200 bps, míg USB-Soros átalakítóval 1 Mbit/s a maximális adatsebességünk. A program is végtelenül egyszerű: egy portolvasás és azonnali adatküldés. Esetleg cifrázhatjuk a szoftvert - de a maximális adatsebesség akkor sem változik. A jelek feldolgozását kicsit még az AVR kód optimalizálásával fokozhatjuk, így kb. 1-2 MHz jelsebesség tartható marad.

Dobjuk ki az AVR-t!

Legyen helyette például az FT245 chip! Így a portolvasás azonnal meg is van és soros felületre is illesztettük (a chip egy egyszerű USB-re csatlakozó 8-bites portbővítő). Amilyen kézenfekvő lenne a dolog, annyira kevesen valósították meg. 1-2 találatot hozott csak ki erre a Google is.

Dobjuk ki a soros portot!

Ha az AVR-hez ragaszkodunk - akkor dobjuk ki a sorosportot. Sima USB megoldást és kötegelt (ún. bulk) átvitelt alkalmazzunk a kommunikációra. Ez jó, mert a belső USB hardware elvégzi a csomagműveleteket, nekünk csak az USB belső puffert kell újabb adatokkal feltölteni... Így a szoftverünk sem lesz leterhelve mindenféle haszontalan funkciókkal.

PC szoftver

És el is jutottunk nagyon hamar oda, hogy nem a jel bevitele az érdekes feladat, hanem, hanem maga a tényleges jelfeldolgozás. Így  PC szoftver lesz az a végén, amit jól kell megírni. A megjelenítés még csak-csak, de az egyes jelek elemzése, egymáshoz képesti viszonya az igényel némi adatfeldolgozást és adatelemzést. Persze ezeket nem magunk akarjuk megírni, hanem valamely gyári/szabad szoftvert használjuk ki. Mintaként egy nyolccsatornás logikai analizátor kerül terítékre, mellyel a TavIR Ext1 áramkör részeinek működését ellenőrizzük le.

A logikai analizátor igen hasznos kiegészítése az önzáró csiptető, mivel így nem kell hat kezet növeszteni, hogy a mérőpontokon a jeleket megfogjuk...

A legegyszerűbb feladat és teszt a soros kommunikációba történő belehallgatás:

LA - belső trükk

Az analizátor hardware a korábban említett bulk módú adatátvitelt használja, belül egy 8051-es processzort az USB slave eszközzel egybeépítve. A stabil, nagysebességű működés miatt a mintavételkor az USB csomóponton semmi sem lehet, ami az adatátvitelt lassítja. Lehetőleg még egy egér sem! Ezt legegyszerűbben az USBView szoftverrel ellenőrizhetjük:

Ha minden csatlakozás szabad az eszköz mellett - nyertünk. Ha nem, akkor legalább a nagy adatmennyiséget mozgató eszközöket helyezzük át! A legtöbb analizátorhoz elegendő az USB 2.0 illesztés (az USB 3.0 kiszolgálásához a mikrokontroller teljesítménye kevés - csak pazarlás ilyen hardware-kiszolgálóval egybeépíteni; az USB 1.1 pedig már régen túlhaladott (bár az eszköz csökkent adatátviteli sebességgel használható ezesetben is)).

Az LA lelke

A logikai analizátorok lelke a feldolgozó szoftver. A nyers adatokból az időzítések, a jelek egyidejűségei, a bitfolyamok jelentései mindenképp kiolvasandóak. Így még a jelfolyam megjelenítése mellett az egyes csatornák jelentését is megnézhetőek. Ha kézzel kellene a biteket számolni - hamar sok ősz hajszálunk lenne.

Elemezzünk!

A logikai analizátorunk a Salaea szoftverét használja. A mintavétel beállítása nagyon egyszerű, gyakorlatilag elegendő csak a mintavételi sebességet kiválasztani és elindítani a rögzítést.

A maximális mintamennyiség 500 millió pont és 24 MHz sebesség. Ez kb. 20 másodpercnyi rögzítést jelent!

Fontos! Az eszközt a vezérlőszoftver telepítése után csatlakoztassuk csak a PC-re! Így a driver automatikusan települ. Ha ez nem történik meg, akkor egyszerűen a meghajtószoftver frissítésével korrigálhatjuk. A kezelőszoftverben a 8-csatornás eszközt válasszuk ki a jobboldalt fenn megbújó Options-Preferences menüpontból. Majd kapcsolódjunk a vizsgálandó áramkörünk GND pontjára a csiptetővel és majd csak ezután a vizsgálandó pontokra.

Tipp! A mintavételezés frekvenciája legalább a vizsgálandó frekvencia tízszerese legyen!

Például egy I2C kommunikáció elemzése:

A logikai analizátor számos protokoll elemzésére alkalmas: I2C, SMB, SPI, CAN, 1-Wire, Microwire, DMX-512, UART kommunikáció. Az eszköz 0/5V illetve 0/3.3V jelek elemzésére alkalmas, ám negatív illetve +5V feletti feszültség a készüléket károsítja!

Tipp: a logikai analizátorok általában egyéb szoftverekkel is használhatók, mint a hozzáadottak. A Salaea Logic Analyzer mellett a Sigrok-ot is érdemes kipróbálni. Főleg, hogy a Salaea csak Windows alá készült el.

 

Kapcsolódó oldalak

TavIR-Facebook