Americká firma Teledyne LeCroy je známa jako jeden z nejvýznamnějších světových výrobců high-end real-time osciloskopů, o jejichž výjimečných funkcionalitách a schopnostech zde bylo již mnohé napsáno. Osciloskopy Teledyne LeCroy získaly u uživatelů značnou oblibu také díky propracovaným dekodérům sériových sběrnic s pokročilými možnostmi dekódování a spouštění. Možnost dekódování a spouštění pro sériové embedded sběrnice I2C, SPI, UART, RS-232, sběrnici USB, CAN či jiné z nich činí nepostradatelné pomocníky při vývoji dnešních elektronických zařízení.
Obecně lze říci, že dekodér sériové sběrnice se podívá na pulzy v analogovém časovém průběhu signálu a přes tento analogový průběh nám zobrazí jejich význam v podobě identifikátoru rámce, přenášených dat a případně dalších pomocných přenášených údajů. Díky tomu umožňují osciloskopy vidět vzájemné souvislosti dekódovaných dat a dějů na fyzické vrstvě sběrnice, jako jsou kupříkladu úrovně napětí, rušení a podobně. Co se týká dekódovaní sběrnic, zde schopnosti většiny osciloskopů končí.
S osciloskopy Teledyne LeCroy je ale možné při analýze sériových sběrnic zajít mnohem dále. Tímto dalším krokem je soubor pokročilých funkcí v nadstavbě dekodérů sériových sběrnic, označovaný jako PROTObus MAG Serial Debug Toolkit, který je použitelný na osciloskopech Teledyne LeCroy řady WaveRunner, 12bitových osciloskopech řady HDO6000 (obr. 1) a všech vyšších.
Obr. 1 12bitový osciloskop Teledyne LeCroy řady HDO
Tyto funkce umožňují automatická měření časování mezi zprávou na sériové sběrnici a zvolenou analogovou událostí (např. hrana na jiném kanálu) nebo naopak, automatické měření doby mezi určitými zprávami nebo skupinami zpráv, a to na stejné sběrnici nebo i na různých sběrnicích i různých standardů (např. mezi I2C a CAN), automatické měření časů příchodu zpráv, dále pak měření celkového časového využití sběrnice nebo využití sběrnice vybranými zprávami, efektivní bitrate určitých zpráv a čítání počtu zpráv určitých vlastností. Jednou z nejzajímavějších možností je ale možnost extrakce dat ze sběrnice a zobrazení těchto dat v podobě analogového průběhu. Tyto možnosti si dále popíšeme detailněji na konkrétní aplikaci.
Zadání problému je následující –máme sběrnici standardu I2C, po které stále probíhá komunikace mezi více zařízeními. Nás z této komunikace zajímají pouze zprávy ze skupiny zařízení s adresami XC, kde X zastupuje libovolnou hodnotu. V těchto zprávách nás zajímají jen dolní čtyři bity z 15. bajtu. Tyto čtyři bity mohou nést hodnotu 0 až 15 a my bychom chtěli vidět, jak se v čase ve vybraných zprávách tato hodnota vyvíjí.
Připojíme signály sběrnice I2C k osciloskopu –Data na kanál C1 a Clock na kanál C2, zvolíme dekódování I2C a přiřadíme k signálům sběrnice zvolené kanály osciloskopu. Pro přehlednost budeme zobrazovat pouze datový signál.
Nejdříve vybereme z komunikace jen požadované zprávy. K tomu využijeme hardwarové spouštění na adresu XC, jak je to uvedeno na obr. 2. Na osciloskopu zvolíme režim spouštění Normal, který spouští jen a pouze na události zadaného typu, a časovou základnu nastavíme tak, abychom vždy zachytili jednu celou zprávu.
Obr. 2 Nastavení spouštění na adresu XC
Na obr. 3 je zobrazen signál s dekódovanou zprávou, zoom oblasti, ze které se budou extrahovat požadovaná data, a nastavení samotné extrakce dat. Do parametru P1 nastavíme měření MsgToValue, které umožňuje extrakci dat ze sběrnice. Vpravo v záložce Value pak nastavujeme, jaká data se mají vybrat. Start Position určuje, od kterého bitu dat budeme bity extrahovat (počítáno od nuly), a # Bits určuje počet bitů, které reprezentují požadované číslo. Protože chceme načíst dolní čtyři bity z 15. bajtu, zadáme počáteční bit (15 ×8 –4) = 116 a počet bitů 4. Dále je možné nastavit konverzi dat typu a × Data + b, (změna měřítka a posunutí), kde můžeme zadat konstanty a a b a přiřadit výsledku libovolnou jednotku.
Obr. 3 Dekódovaný rámec a Zoom oblasti s extrahovanými daty
V našem případě necháme pro jednoduchost převod 1:1 a jednotku V, tzn. že číslo 1 bude prezentováno jako 1 V, 2 jako 2 V atd. V konkrétním příkladě, zobrazeném na obr. 3, jsou extrahovaná data 0110, což odpovídá hodnotě 6, která je převedena 1:1 na hodnotu 6 V do parametru P1. Nakonec na parametr P1, který teď obsahuje požadovanou hodnotu, aplikujeme funkci Trend. Ta slouží k dlouhodobému záznamu hodnot automatických měření a v tomto případě tedy bude průběžně vykreslovat, jak se mění v čase hodnota parametru P1. Tím získáme požadovaný časový vývoj extrahovaných dat ze sběrnice (obr. 4).
Obr. 4 Vložení extrahovaných dat do měřeného parametru P1 a časový záznam extrahovaných hodnot
Podrobnější informace o osciloskopech Teledyne LeCroy získáte u výhradního zástupce firmy Blue Panther s. r. o. (www.blue-panther.cz).