Analýza protokolu UART

1. Základ dohody

1.1. Úvod k dohodě

UART je “Universal Asynchronous Receiver/Transmitter”, zkratka pro Universal Asynchronous Transceiver. V 1860. letech 232. století, aby vyřešil problém komunikace počítače a dálnopisu, vynalezl Bell protokol UART, který převádí paralelní vstupní signály na sériové výstupní signály. Díky své jednoduché a praktické povaze se UART stal velmi široce používaným komunikačním protokolem. Sériové porty, kterým jsme denně vystaveni, RS485, RSXNUMX a další sběrnice, vnitřní použití je v podstatě protokol UART.

Abychom lépe porozuměli a analyzovali vztah mezi protokoly a sběrnicemi, obvykle rozdělujeme kompletní specifikaci komunikace na fyzické vrstvy, protokolové vrstvy a aplikační vrstvy. Fyzická vrstva pouze definuje skutečné charakteristiky signálu (jako je napětí, proud, budicí kapacita atd.) a shodu mezi elektrickým signálem a logickým signálem 0 a 1; Protokolová vrstva se nestará o to, jak jsou implementovány základní 0 a 1, ale pouze specifikuje protokolové specifikace logických signálů a komunikačního procesu (jako je začátek, data a konec atd.); Aplikační vrstva se nestará o to, jak jsou data získávána, ale pouze definuje význam reprezentace dat a jak implementovat konkrétní obchodní logiku.

Nejjednodušší aplikace protokolu UART, obvykle fyzická vrstva potřebuje pouze dvě přenosové linky, jednu pro přenos a jednu pro příjem, čímž se dosáhne plně duplexní komunikace. Pro jednosměrné přenosy můžete také použít pouze jednu přenosovou linku. Nejtypičtějším příkladem takové aplikace jsou vzájemně propojené porty RX/TX mikrokontroléru, které umožňují komunikaci UART na úrovni TTL. Pro různé přenosové vzdálenosti a požadavky na spolehlivost lze nahrazením různých implementací fyzické vrstvy získat naše běžné komunikační sběrnice RS232, RS485 a další.

1.2. Různé implementace fyzické vrstvy

Protože vstupem do vrstvy protokolu UART je signál logické 0/1, lze signál logické 0/1 ve fyzické vrstvě odlišit různými standardy úrovně. Pro různé komunikační potřeby lze použít různé fyzické vrstvy. Například jednoduchou komunikaci na desce nebo běžné scénáře ladění zařízení, komunikaci protokolu UART mezi dvěma zařízeními lze provádět pomocí jednoduché úrovně LVTTL/TTL.

Univerzální sériový port využívá úroveň RS232, která může zvýšit přenosovou vzdálenost a odolat určité míře rušení signálu. Náklady spočívají v tom, že na fyzické vrstvě je vyžadován odpovídající překladový čip, vysílač potřebuje převést interní signál vysoké a nízké úrovně na signál vyššího napětí +/- a přijímací konec musí převést +/ - napěťový signál do vnitřního signálu vysoké a nízké úrovně.

V případě průmyslové komunikace se za účelem dalšího zlepšení přenosové vzdálenosti a zvýšení spolehlivosti signálu obecně používá standard úrovně RS485. Obyčejné signály vysoké a nízké úrovně jsou na vysílacím konci převedeny na pár diferenciálních signálů a na přijímacím konci jsou diferenciální signály převedeny na běžné signály vysoké a nízké úrovně. RS485 navíc umožňuje připojení až 128 transceiverů na sběrnici, zatímco TTL nebo RS232 jsou spojení point-to-point.

1.2.1. Komunikace UART na bázi TTL

Komunikace UART založená na TTL je nejjednodušším případem použití aplikací protokolu UART. To znamená, že vysoké a nízké úrovně digitálního I/O výstupu jsou přímo přenášeny jako skutečný fyzický signál. Pokud jde o fyzické připojení, pouze zařízení musí mít společnou zem a jednosměrná komunikace zařízení může být dokončena prostřednictvím signálního vedení. Pokud je požadován obousměrný plný duplex, použijí se dvě signální linky.

Abychom porovnali rozdíly v implementaci různých fyzických vrstev, můžeme pozorovat, jak se skutečné signály různých fyzických vrstev liší, když jsou odesílána stejná data. Zde, vezměte si jako příklad vysílací znak „D“, pomocí kamenného osciloskopu přímo sledujte signál vysílaný TTL (zemní svorka sondy je připojena ke společnému uzemňovacímu konci zařízení a konec signálu sondy je připojen k modrá signální čára na obrázku výše) a lze získat křivku signálu zobrazenou na obrázku 1-4. Jak je patrné z průběhu, když nedochází k přenosu dat, signál UART zůstane na vysoké úrovni (konkrétní amplituda signálu je určena napájecím napětím I/O), signál bude během přenosu dat přeskakovat a signál se po dokončení přenosu vrátí do klidového stavu vysoké úrovně.

1.2.2. Komunikace UART na bázi RS232

Aby se zlepšila schopnost měniče zvýšit přenosovou vzdálenost a spolehlivost, využívá sběrnice RS232 pro fyzický přenos bipolární napěťový signál. Před odesláním/přijetím signálu jsou interní signál a signál sběrnice vzájemně převedeny pomocí čipu pro posun úrovně. Způsob připojení je naprosto stejný jako u úrovně TTL a celá fyzická vrstva je jen další vrstvou překladu úrovně.

Také s použitím vysílacího znaku 'D' jako příkladu je sonda osciloskopu Pushi připojena ke konci signálu a lze zachytit aktuální tvar vlny znázorněný na obrázku 1-6. Je vidět, že tvar vlny RS232 je záporné napětí, když je nečinný, a když probíhá přenos dat, signál začíná přeskakovat mezi kladným a záporným napětím a po dokončení přenosu se vrátí do stavu nečinného záporného napětí.

1.2.3. Komunikace UART na bázi RS485

RS485 je navržena pro komplexní průmyslová prostředí a největší vlastností sběrnice RS485 je použití diferenciálního přenosu signálu ve srovnání s fyzickými vrstvami jiných protokolů UART. Před odesláním signálu je jednokoncový signál převeden na diferenciální signál transceiverem RS485 a poté odeslán na sběrnici k přenosu; Také před příjmem je diferenciální signál na sběrnici převeden transceiverem na signál s jedním zakončením a poté odeslán do řadiče UART pro příjem. Na sběrnici RS485 jsou pro plně duplexní obousměrnou komunikaci zapotřebí dva páry diferenciálních signálových linek (tj. 4 signálové linky). Pokud se provádí pouze poloduplexní obousměrná komunikace, je zapotřebí pouze dvojice diferenciálních signálů.

Opět s použitím vysílacího znaku 'D' jako příkladu lze skutečný průběh znázorněný na obrázku 1-8 získat pomocí dvou kanálových sond (běžně označovaných) sond osciloskopu Pushi, které jsou připojeny ke koncům A/B. jednoho z diferenciálních signálů. Je vidět, že průběh na konci A/B je komplementární. Tvar vlny na A-konci má dopřednou logiku (kladné napětí při nečinnosti) a tvar vlny na B-konci má zpětnou logiku (záporné napětí při nečinnosti).

2. Specifikace protokolu

2.1. Rámová struktura UART

V úvodu předchozí části jsme pozorovali skutečný tvar vlny UART přes kamenný osciloskop, tak jak přesně je tento tvar vlny přesně rozpoznán jako znak 'D' a ne něco jiného? To zahrnuje definici struktury rámce protokolu UART. Jak je znázorněno na obrázku 2-1:

Když dvě zařízení potřebují komunikovat přes protokol UART, musí se současně dohodnout na následujícím:

  • Délka času na signál T (přenosová rychlost = 1/T)
  • Konkrétní počet bitů v každé položce ve struktuře rámce
  • Zda existuje kontrolní číslice a mechanismus kontrolní číslice (lichá/sudá/…). )

S těmito konvencemi potřebuje přijímací zařízení pouze čekat na příchod počátečního bitu a poté vzorkovat následný průběh v pravidelných intervalech, aby získalo konkrétní přenášené informace. Vezmeme-li jako příklad průběh znaku „D“, proces rozlišení je znázorněn na obrázku 2-2:

2.1.1. Přenosová rychlost

Přenosová rychlost je velmi důležitým pojmem protokolu UART nebo všech asynchronních sériových protokolů, to znamená počet bitů, které mohou být reprezentovány za jednotku času (1 sekunda), nebo může být také vyjádřena jako převrácená hodnota bitové šířky. . Například průběh UART s přenosovou rychlostí 115200 znamená, že může pojmout 115200 bitů za sekundu, což znamená, že každý bit dat představuje asi 8.68 uS času.

Asynchronní sériové protokoly, jako je UART, mají za účelem zjednodušení fyzického připojení signálů a snížení nákladů na komunikaci obecně pouze jednu signálovou linku a nemohou přenášet data a hodinové signály současně. Aby transceiver/vysílací zařízení správně rozlišilo tvar vlny, musí mít stejnou přenosovou rychlost. Stejný průběh využívající různé přenosové rychlosti může získat zcela odlišné informace. Pro přijímací zařízení může být jako synchronizační bod rámce dat použit pouze počáteční bit a ostatní data jsou určena přenosovou rychlostí pro určení konkrétního místa vzorkování.

Opět, použijeme-li jako příklad tvar vlny znaku 'D', jak je znázorněno na obrázku 2-4, pokud je přijímán při špatné přenosové rychlosti, můžete získat zcela nesprávné informace o datech.

2.1.2. Nečinné bity

Když se data mezi zařízeními nepřenášejí, trvale vysoká úroveň indikuje nečinnost. Čím delší je doba nečinnosti bitu a čím delší je interval mezi dvěma datovými rámci, tím méně dat se přenese za jednotku času.

2.1.3. Start Bit

Přijímač UART vždy detekuje změnu úrovně na signálovém vedení a když jsou data přenášena, odesílatel přetáhne signální vedení z vysoké úrovně na konec nízké úrovně do klidového stavu a udržuje trochu času. Když přijímač detekuje posun na vysoké úrovni, začne přijímat signály.

2.1.4. Datové bity

Datový bit obsahuje aktuální přenášená data, která jsou dlouhá 5 až 8 bitů, pokud je použita parita, a 5 až 9 bitů, pokud není použita parita. Obecně jsou datové bity 8 bitů a data jsou odesílána jako první z nejméně významného bitu a na druhém místě jsou vysoké bity.

2.1.5. Zkontrolujte číslice

Kontrolní číslice lze použít ke zlepšení spolehlivosti přenosu. Pokud je signál v důsledku interference v procesu přenosu chybný a způsobí chybu v úrovni některých pozic, lze určit, zda se přijatá data a kontrolní číslice shodují výpočtem, zda se přijatá data a kontrolní číslice shodují, takže jako poskytnout platné informace aplikační vrstvě, aby se rozhodla přijmout/zrušit odpovídající data.

2.1.6. Stop Bit

Stop bit představuje konec rámce dat a skutečný signál je časový úsek vysoký. Délku stop bitu lze nastavit na stop bit 1, 1.5 nebo 2 bity. Ve většině případů se používá stop bit 1 bit.

Protože UART je asynchronní protokol, začátek každého rámce může být synchronizován se skokovou hranou, ale stop bit může vypočítat relativní polohu pouze pomocí přenosové rychlosti, a pokud je na koncové pozici rozpoznána nízká úroveň, chyba rámce je generován. V komunikačním procesu, aby se snížil problém způsobený chybou přenosové rychlosti, lze nastavit různé délky stop bitů, aby se přizpůsobily.

3. Analyzujte komunikaci UART pomocí logického analyzátoru

3.1. Osciloskop vs logický analyzátor

Jako hlavní univerzální testovací a měřicí přístroj mají osciloskopy přirozenou výhodu při pozorování detailů analogových signálů. Například provoz v reálném čase s vysokou obnovovací frekvencí tvaru vlny může snadno pozorovat náhlé abnormální signály; Například při provádění vyhodnocení šumu a optimalizace kvality signálu může osciloskop porovnávat podobnosti a rozdíly signálů na stejné sběrnici a různých uzlech, aby našel skryté problémy s integritou signálu.

Osciloskop má však přirozeně i některá nevhodná místa, kromě několika kanálů je obrazovka obecně malá, ovládání není flexibilní a ovladatelné počítačem + myší tyto morfologické problémy, pro získávání a analýzu digitálních signálů, největší Problém osciloskopu je v tom, že hloubka uložení je příliš malá. Osciloskop v hodnotě několika set tisíc juanů může mít také hloubku uložení pouze několik stovek Mpt. Současně kvůli omezení hloubky uložení, kdy je nutné provést o něco delší čas snímání, skutečná vzorkovací frekvence osciloskopu prudce klesne, což má za následek, že shromážděný průběh nemůže obnovit skutečný signál a ztratí se význam analýzy.

Logické analyzátory jsou testovací a měřicí přístroje speciálně navržené pro digitální získávání a analýzu signálu a shromážděné výsledky tvaru vlny mají pouze vysokou a nízkou úroveň (tj. logická 0 a 1). Vyrovnává však nedostatek osciloskopů při získávání a analýze digitálních signálů.

  1. 1. Většina logických analyzátorů je provozována na PC s vysokým výkonem stolních procesorů a interaktivní zkušeností vyspělých operačních systémů, což výrazně zlepšuje pohodlí a efektivitu analýzy digitálního signálu.
  2. 2. Počet kanálů logického analyzátoru je velký, analyzátor logiky DSLogic základní úrovně má 16 kanálů, které lze shromažďovat současně, a uživatel může také získat produkty logického analyzátoru s desítkami nebo dokonce stovkami kanálů za velmi rozumnou cenu. náklady.
  3. 3. Hloubka úložiště logického analyzátoru je větší, například DSLogic může dosáhnout hloubky úložiště 16G v režimu streamu a současně udržovat poměrně vysokou vzorkovací frekvenci, která daleko převyšuje akviziční schopnost většiny osciloskopů.
  4. 4. Logické analyzátory obecně poskytují bohaté funkce dekódování protokolů, které mohou provádět hloubkovou analýzu digitálních signálů. Například DSLogic aktuálně podporuje více než 100 dekódovacích protokolů. Většina osciloskopů má omezené možnosti dekódování a většina z nich vyžaduje zakoupení příslušných zásuvných modulů samostatně.

Dále se zaměříme na to, jak využít logické analyzátory pro získávání a analýzu signálů UART v různých situacích.

3.2. Vytvořte testovací prostředí pro logické analyzátory

3.2.1. Připojení k DSLogic

DSLogic je přenosný logický analyzátor založený na USB připojení. Hostitel DSLogic je zodpovědný za získávání signálu a ukládání do mezipaměti a poté přenáší data přes USB do softwaru hostitelského počítače DSView na PC. DSView je zodpovědný za zpracování dat, zobrazení, analýzu a odpovídající funkce interakce člověk-počítač.

Při použití jednoduše připojte hostitele DSLogic přímo k portu USB na desce PC pomocí datového kabelu USB, otevřete software DSView a potvrďte, že se INDIKÁTOR na hostiteli DSLogic stává evergreenem. V tomto okamžiku je připojení a inicializace logického analyzátoru dokončena. Jak je znázorněno na obrázku 3-4, v softwaru DSView lze sledovat aktuální název zařízení v levém horním rohu a odpovídající stav připojení.

3.2.2. Připojení signálu UART

Pro všechna měření musí být testovací zařízení a měřený signál založeny na společné referenční rovině, která se běžně nazývá uzemnění, aby bylo možné správně získat a změřit měřený signál. V některých případech neexistuje žádné explicitní uzemnění, ale výsledky měření se zdají být bez problémů, je to proto, že měřicí zařízení a měřený signál jsou spojeny se zemí jinými způsoby, jako je stejný použitý napájecí zdroj nebo referenční zem je současně připojena k zemnicí svorce sítě. Při provádění přísných měření by však mělo být měřicí zařízení uzemněno podle testovaného signálu. Čím větší je plocha smyčky svorky uzemnění signálu od měřeného signálu k měřicímu zařízení, tím snáze může být signál rušen, což má za následek chyby měření nebo dokonce chyby měření.

U signálů UART při přístupu k logickému analyzátoru v nejjednodušším případě stačí připojit 2 vodiče, jeden k referenční zemi a jeden k měřenému signálu. Pro různé implementace fyzické vrstvy protokolu UART, které jsme zmínili dříve, se způsob připojení signálů bude mírně lišit.

Například pro signál UART na úrovni TTL je kromě připojení referenční země potřeba pouze připojit testovaný signál (TX nebo RX) k odpovídajícímu kanálu vstupu logického analyzátoru.

U signálů sběrnice RS232 můžeme buď měřit signál sběrnice po překladu úrovně (DSLogic má na kabelovém vstupu rozsah výdržného napětí +-30V a rozsah signálu +-15V RS232 lze přímo připojit), nebo můžeme měřit interní digitální signál před překladem úrovně. Jeho způsob zapojení je konzistentní se signálem TTL, jediné, co je třeba poznamenat, je, že signál RS232 překlopí úroveň (záporné napětí při nečinnosti, tedy nízká úroveň), při dekódování protokolu UART můžeme obrátit odpovídající úroveň signálu v okno nastavení dekódování DSView (možnost Invertovat signál je nastavena na ano).

Sběrnice RS485 využívá diferenciální signály, a když použijeme pro sběr signálu logický analyzátor, musíme věnovat zvláštní pozornost připojení měřeného signálu. Nejprve musí být referenční místo logického analyzátoru připojeno k referenční zemi odpovídajícího testovaného zařízení RS485 transceiveru, aby bylo možné zaručit, že logický analyzátor má správnou úroveň referenční roviny; Za druhé, pro diferenciální signály potřebuje logický analyzátor pouze získat vysokou a nízkou úroveň homopolarity s vnitřním signálem. Z pohledu digitálních signálů rozdílový způsob pouze zlepšuje spolehlivost přenosu signálu bez přidávání dalších informací. Jak je znázorněno na obrázku 3-7, při testování signálu sběrnice 485 pomocí logického analyzátoru propojte referenční zem transceiveru odpovídajícího zařízení a signál A+ na diferenciální sběrnici.

Samozřejmě, pokud lze sbírat pouze B-signál, můžeme také nastavit dekodér UART tak, aby signál obrátil, abychom získali správný výsledek rozlišení protokolu při dekódování v DSView.

3.2.3. Nastavení prahu

Prahová hodnota logického analyzátoru je posuzovací napětí vysoké a nízké úrovně, to znamená, že když je napětí vstupního signálu vyšší než prahové napětí, akvizice je vysoká; Když je napětí vstupního signálu pod prahovým napětím, je akvizice nízká.

U protokolu UART jsme již dříve uvedli, že má různé implementace fyzické vrstvy a různé implementace fyzické vrstvy mají různé úrovně standardů. Potřebujeme pouze zvolit odpovídající práh, abychom v různých případech rozlišili mezi vysokou a nízkou úrovní. Prahové hodnoty zobrazené na obrázku 3-8 mohou v zásadě splnit tento požadavek.

V některých případech se může rozdílová amplituda signálu sběrnice RS485 měnit v širokém rozsahu v důsledku konfigurace nebo ladění. Protože specifikace RS485 stanoví, že pokud je rozdíl napětí mezi AB větší než 200 mV, lze jej považovat za vysoký. V tomto okamžiku můžeme pomocí kamenného osciloskopu pozorovat skutečnou amplitudu úrovně signálu a poté rozhodnout o vhodném nastavení prahu. Musíte se pouze ujistit, že prahové napětí, které nastavíte, dokáže rozumně rozlišit mezi vysokou a nízkou úrovní.

3.3. Jednoduché získávání signálu UART

Většina signálů UART jsou signály s nízkou rychlostí, jako je nejběžněji používaná přenosová rychlost 115200, což naznačuje, že frekvence signálu je pouze 115.2 kHz. Takové signály lze získat přímo pomocí výchozího nastavení DSLogic. Zde, s pevným 1s intervalem hostitele a opakovaným zasíláním znaku 'D' jako příkladu, popisuje, jak použít logický analyzátor k získání a analýze takových UART signálů.

3.3.1. Akvizice signálu

Po přípravě hardwaru a připojení signálu klikněte přímo na tlačítko „Start“ softwaru DSView, abyste získali testovaný signál ve výchozím nastavení (doba akvizice 1 MHz vzorkovací frekvence 1 s). Pokud chcete upravit vzorkovací frekvenci a dobu akvizice, vyberte odpovídající parametry přímo v odpovídajícím rozevíracím poli. Princip nastavení vzorkovací frekvence se doporučuje 10násobek nebo více maximální frekvence měřeného signálu, například pro signály UART s přenosovou rychlostí 115200 baudů je nejrychlejší frekvence signálu 115.2 kHz, když je vzorkovací frekvence 1M vybráno, každý bitový signál bude mít 8 nebo 9 vzorkovacích bodů a odpovídající fázová chyba je +-1/8 (12.5 %); Když je zvolena vzorkovací frekvence 10M, bude 86 nebo 87 vzorkovacích bodů na bit signálu, což odpovídá fázové chybě +-1/86 (1.16 %). Samozřejmě se obecně nedoporučuje používat příliš vysokou vzorkovací frekvenci, protože čím vyšší je vzorkovací frekvence, tím kratší je doba, po kterou může být shromažďována, a příliš vysoká vzorkovací frekvence může nasbírat více skoků na jeden skok. okraj pomalého signálu, což způsobuje potíže při dekódování protokolu. Obrázek 3-9 ukazuje výsledný průběh signálu získaný pomocí výchozího nastavení.

Jak je vidět na obrázku 3-9, kanál 0 získává signál, který je trvale vysoký, ale nenachází žádné skoky. Pečlivě sledujte časové pravítko nad oknem průběhu a posuvník ve spodní části okna, abyste věděli, že aktuální okno zobrazuje pouze část shromážděného průběhu, nikoli všechny signály. V tomto okamžiku můžete přiblížit pomocí kolečka myši nebo kliknout pravým tlačítkem do oblasti průběhu, abyste zobrazili všechny průběhy po celou dobu trvání akvizice. Získejte výsledek znázorněný na obrázku 3-10.

Na základě výše uvedeného obrázku se chceme podívat pouze na přechodovou část kanálu 0. Zobrazení průběhu ostatních kanálů můžete vypnout v okně Options a upravit výšku zobrazení signálu kanálu. Poté namiřte myší na cílovou křivku a současně pomocí kolečka myši zvětšete křivku zamířené polohy; Případně můžete vybrat oblast průběhu, kterou chcete přiblížit, podržením pravého tlačítka myši v rámečku. Také podržte levé tlačítko myši, chcete-li pohybovat křivkou doleva a doprava. Získejte podrobnosti o průběhu zobrazené na obrázku 3-11.

Při pozorování křivky lze umístěním myši nad křivku pulzu zobrazit informace, jako je šířka pulzu, perioda, frekvence a pracovní cyklus aktuálního signálu. Současně můžete také přidat kurzor dvojitým kliknutím levého tlačítka myši a při pohybu kurzorem se automaticky přichytí k blízké skokové hraně.

3.3.2. UART dekódování

Křivka signálu shromážděná logickým analyzátorem se mění pouze v čase na vysokých a nízkých úrovních (0/1), což není příznivé pro naši cílenou analýzu procesu a obsahu přenosu signálu. Přestože můžeme pouhým okem přeložit obsah protokolu odpovídající tvaru vlny podle specifikace protokolu, značně to sníží efektivitu analýzy. Vestavěný dekodér DSView poskytuje bohatý obsah pro dekódování protokolů a mění nudné křivky na smysluplné znaky, značky a datový obsah. Inženýrům výrazně usnadňuje analýzu a pochopení signálů při hledání chybových zpráv nebo kritických dat.

V softwaru DSView je protokolové dekódování získaného průběhu velmi jednoduché, stačí otevřít panel „Decode“, vyhledat odpovídající dekodér (zde vybereme 1: protokol UART) a nastavit odpovídající možnosti dekodéru (včetně zobrazení/kanálu /struktura/formát rámce atd.). Po určení začne software dekódovat protokol UART na zvoleném kanálu. Dekódovaný výsledek se zobrazí v kanálu protokolu. To je znázorněno na obrázku 3-12.

Při výběru dekodéru poskytuje DSView pohodlnou funkci vyhledávání protokolu, stačí zadat klíčové znaky do vyhledávacího pole protokolu, DSView zobrazí seznam všech dekodérů obsahujících tyto znaky, kde si uživatel může vybrat správný dekodér. Jak je znázorněno na obrázku 3-13, existují dva protokoly související s UART 0: UART a 1: UART, kde 0: UART je zjednodušený dekodér, který neanalyzuje bitové informace, ani nepodporuje stohování protokolů vyšší úrovně, když chceme získat pouze data odpovídající tvaru vlny, můžete tento zjednodušený protokol použít ke snížení doby dekódování a snížení paměťových prostředků.

Okno nastavení dekodéru má mnoho možností nastavení souvisejících s dekódováním a obsah okna nastavení různých protokolů se bude lišit. Existují některé možnosti, které musí nastavit všechny dekodéry, jako je korespondence mezi signály kanálu a protokolu. Zde používáme signál UART zachycený kanálem 0, takže odpovídající kanál, který je třeba dekódovat, by měl být nastaven na kanál 0.

A možnosti nastavení související s protokolem jsme podrobně vysvětlili v části struktura rámce, ve skutečném provozu lze získat tyto informace také prostřednictvím softwaru hostitelského počítače sériového portu (asistent ladění sériového portu atd.). To je znázorněno na obrázku 3-14.

Pro dekódovaný datový obsah podporuje DSView různé formáty zobrazení. Například dříve získaný signál UART zobrazuje znak 'D' ve formě kódů ASCII, nebo jej lze upravit do režimu zobrazení hexadecimálního (Hex) a výsledek zobrazí 0x44. To je znázorněno na obrázku 3-15. Aktuálně podporované formáty zobrazení jsou: hex (hexadecimální), dec (desítkový), oct (osmičkový), bin (binární) a ascii kód.

3.4. Pořízení jednoho přenosu UART

Když je křivka, kterou chceme zachytit, příležitostný signál, nevíme, kdy se křivka objeví, a pokud použijeme metodu přímého získávání, můžeme být schopni většinu času zachytit pouze křivku nečinného signálu a nemůžeme zachytit signál v době skutečného přenosu.

V tuto chvíli jej lze zachytit spuštěním. Nastavením odpovídajících spouštěcích podmínek můžeme řídit čas začátku akvizice signálu podle změny tvaru vlny tak, abychom přesně zachytili tvar vlny, kterou chceme vidět.

3.4.1. Vyrovnávací režim

DSLogic podporuje dva režimy získávání dat: režim streamování a režim vyrovnávací paměti. Data shromážděná v režimu Stream jsou přenášena do PC v reálném čase a následně zpracována pomocí DSView. Data shromážděná v režimu vyrovnávací paměti jsou nejprve uložena do mezipaměti interní hardwarové mezipaměti DSLogic a poté přenesena do PC po dokončení akvizice a zpracována pomocí DSView.

Kromě výhod dosažení vyšších vzorkovacích frekvencí podporuje režim Buffer také více možností a nastavení spouštění, jako je víceúrovňové spouštění, sériové spouštění a nastavení pozic spouštění. Streamový režim na druhou stranu podporuje pouze jednoduché spouštění.

3.4.2. Nastavení spouštění

Pro jednoduché spouštění můžeme nastavit volbu spouštění přímo vedle kanálu. Postupně odpovídá vzestupné hraně, vysoké, sestupné hraně, nízké úrovni a libovolnému spouštění hrany. Stačí ponechat výchozí jednoduchý režim spouštění na panelu spouštění. Například pro přenos UART, který neví, kdy k němu dojde, můžeme zvolit spuštění sestupné hrany. Když signál UART zůstane nečinný, spouštění není splněno. DSLogic čeká, až nastane spouštěcí podmínka, jak je znázorněno na obrázku 3-17.

Když UART začne vysílat první start bit, aktivuje se spouštěcí podmínka a DSLogic získá tvar vlny signálu v okamžiku spouštění. To je znázorněno na obrázku 3-18.

Podívejme se na složitější spouštěcí scénář, například zařízení A neustále náhodně odesílá data do zařízení B a zařízení B odpovídá na různá data podle obsahu dat odeslaných zařízením A. Pokud chceme vědět, jaká data zařízení A odeslalo do zařízení B před odesláním dat 0, jak nastavíme spouštěcí podmínku pro zachycení průběhu v odpovídajícím okamžiku?

Zde jsou dva problémy, které je třeba vyřešit, nejprve musíme nastavit umístění spouště, abychom viděli data před spouští, nikoli data za spouští; Za druhé, musíme najít charakteristiky tvaru vlny zařízení B odesílajícího data 0 a převést je na odpovídající spouštěcí podmínku.

Analýza protokolu UART

Obrázek 3-19 Poloha spouště

Podle protokolových pravidel UART bude průběh, který odesílá data 0, relativně široký nepřetržitý nízkoúrovňový pulzní signál. Pokud je přenosová rychlost UART 115200 a námi nastavená vzorkovací frekvence je 1MHz, průběh dat 0 je znázorněn na obrázku 3-20, což bude nízkoúrovňový puls asi 78.125uS.

Pro nastavení pokročilého spouštění nebo pozice spouštění vyžaduje podporu režimu vyrovnávací paměti, musíte nejprve nastavit „Režim běhu“ na „Režim vyrovnávací paměti“ v „Možnosti“ a nevybírejte možnost „RLE hardwarová komprese“. Nastavte podmínku pokročilého spouštění na kanál 1 s nepřetržitým minimem 75 vzorkovacích bodů (odpovídající vzorkovací frekvenci 1 MHz, což je nízká úroveň 75 us) a nastavte pozici spouštění na 80 %, abyste usnadnili pozorování dat před spuštěním. Konkrétní nastavení jsou znázorněna na obrázku 3-21.

Podle této spouštěcí podmínky se spouští, když zařízení B odešle data 0 a získaný tvar vlny je znázorněn na obrázku 3-22.

3.4.3. Opakujte sbírku

V některých případech potřebujeme dynamicky sledovat stav některých signálů, jako je obsah dat odesílaných Burst pokaždé, ale nevíme, kdy jsou data odeslána, a není možné často klikat na tlačítko „Start“. . DSView poskytuje režim „opakovaného“ získávání, který automaticky získává a aktualizuje křivky, když je splněno spouštění. Když ladíme některé periodické burst signály, je velmi vhodné sledovat výsledky dynamické akvizice a analýzy protokolu prostřednictvím režimu opakování.

Režim opakování lze nastavit podle obrázku 3-23. Interval opakování je minimální doba prodlevy mezi dvěma vzorky pro usnadnění pozorování tvaru vlny a výsledků dekódování předchozího pořízení.

3.5. Pořízení dlouhodobých přenosů UART

Když je potřeba získat ultra dlouhé průběhy pro analýzu, můžeme použít režim Stream. DSLogic může dosáhnout hloubky vzorkování 16G na kanál v režimu Stream. Při vzorkovací frekvenci 1MHz může doba akvizice dosáhnout 16G/1M ≈ 16000s, což je více než 4 hodiny.

3.5.1. Režim streamování

Nastavení režimu toku je znázorněno na obrázku 3-24 a různé verze hardwaru DSLogic podporují různé možnosti kanálu režimu toku. Pro U3Pro16, založený na portu USB3.0, může dosáhnout 3 kanálů @ vzorkovací frekvence až 1 GHz, 6 kanálů @ vzorkovací frekvence až 500 MHz, 12 kanálů @ vzorkovací frekvence až 250 MHz a 16 kanálů @ vzorkovací frekvence 125 MHz.

Když je množství shromážděných dat relativně velké, lze k dekódování použít protokol 0:UART ve srovnání s protokolem 1:UART, který vynechává výstup bitových informací, nepodporuje vrstvení protokolů na vysoké úrovni a může zkrátit dobu dekódování. a snížit zabírání paměti. Ostatní funkce jsou stejné jako u 1: UART. Efekt dekódování je znázorněn na obrázku 3-25.

3.5.2. Zobrazí se seznam protokolů

Jak je znázorněno na následujícím obrázku, výsledek grafického dekódování je zcela synchronizován se získaným průběhem v čase, což nám pomáhá porozumět průběhu a najít problém, ale zároveň vzhledem k měřítku zobrazení času není přispívá k zobrazení výsledku dekódování. Zobrazení seznamu tento nedostatek kompenzuje a usnadňuje prohlížení a analýzu velkého množství dekódovaného obsahu.

DSView poskytuje způsob, jak přeskakovat mezi grafickými výsledky a výsledky seznamu. Kliknutím na libovolný řádek v seznamu výsledků automaticky přeskočíte na odpovídající výsledek křivky a můžete si také vybrat, zda chcete křivku při přeskakování automaticky přiblížit, nebo opravit aktuální sloupec poměru zoomu křivky. Navíc, když si v určitém okamžiku prohlížíme průběh, pokud chceme přeskočit do pozice, kde je v seznamu zobrazen výsledek dekódování odpovídající tomuto průběhu, stačí kliknout na tlačítko pro polohování v pravém horním rohu okna okno zobrazení seznamu.

Kromě toho lze dekódovaný obsah exportovat do souboru prostřednictvím zobrazení seznamu. Jak je znázorněno na obrázku výše, kliknutím na tlačítko „Uložit“ zobrazené v seznamu si můžete vybrat export aktuálně dekódovaného obsahu do souboru csv nebo txt, což je vhodné pro další zpracování dat třetích stran, jako je vstup do matlabu. pro analýzu nebo jako vstup dat pro jiný software.

3.5.3. Dekódování vyhledávání dat

Další výhodou zobrazení seznamu je, že dekódované výsledky lze použít jako řetězce pro vyhledávání výsledků, jako je hledání konkrétních operací nebo konkrétních bajtů dat, které mohou rychle najít místo, které je třeba zobrazit.

Zadejte klíčové slovo, které chcete vyhledat, do vyhledávacího pole, poté stisknutím tlačítek vpřed/vzad najděte dekódovaný obsah obsahující klíčové slovo a rozhraní křivky přeskočí na vhodné místo pro analýzu. Pokud analyzujete výsledky segmentu, můžete kliknout na řádek v kontrolním seznamu a tlačítka Dopředu/Zpět vyhledávají předchozí a následující shody počínaje tímto chováním, nikoli od začátku.

Pro protokol UART podporuje DSView také víceřádkové vyhledávání dat. Lze jej použít k nalezení některých výsledků souvislých řetězců, které se objevují ve vašich datech. Jak je znázorněno na obrázku 3-29, víceřádkové vyhledávání dat spojuje více klíčových slov se znakem „-“.

3.5.4. Vyhledávání tvaru vlny

DSView podporuje nejen vyhledávání dekódovaných výsledků, ale také funkci vyhledávání původního průběhu. Průběhy lze rychle lokalizovat v mnoha scénách. Například, když je průběh přenášen náhle, protože doba nečinnosti je relativně dlouhá, není možné vidět podrobný průběh přenášený vícekrát současně, můžete použít vyhledávání tvaru vlny a okamžitě přejít na další skok po zobrazení průběhu v předchozím okamžiku, aby bylo zajištěno, že se poměr přiblížení nezmění.

Zkontrolujte panel nástrojů „Hledat“, pod oknem softwaru se zobrazí pole pro vyhledávání, klikněte na pole pro vyhledávání, zobrazte okno nastavení vyhledávání, určete hranu skoku kanálu, můžete hledat průběh, který splňuje kritéria, vlevo a vpravo klíče. Současně můžete také ručně přesunout vyhledávací kurzor a určit, kde vyhledávání začíná.

Když je vybráno vyhledávání, objeví se kurzor se značkou „S“, výchozí stav je šedý, pokud kliknete doleva/doprava pro hledání a najdete křivku, která splňuje kritéria, kurzor zmodrá a automaticky se přesune na místo hledání . Pokud ručně přesunete kurzor „S“, kurzor opět zešedne.

3.5.5. Použití kurzoru

DSView podporuje širokou škálu kurzorových operací, což umožňuje nejen měření časování pomocí kurzoru, ale také označování a sledování speciálních křivek pomocí kurzoru. Když je průběh nečinný nebo je interval dlouhý, můžete vložit kurzor na každou pozici zájmu, a když chcete přeskočit na požadovaný průběh, stačí kliknout pravým tlačítkem myši do oblasti pravítka a poté kliknout na pořadové číslo kurzoru, na které chcete přeskočit, které může přeskočit na odpovídající pozici kurzoru.

Pokud chcete přesunout kurzor, stačí najet myší poblíž kurzoru, když se kurzor zobrazí tučně, kliknutím levým tlačítkem myši vyberte, kurzor bude sledovat pohyb myši, určete polohu a znovu klikněte levým tlačítkem pro uvolnění kurzoru. Chcete-li, aby se kurzor přichytil k jedné z hran skoku určitého tvaru vlny kanálu, stačí přesunout myš blízko okraje skoku a kurzor se automaticky přichytí k okraji skoku.

3.5.6. Měření myši

Kromě měření pomocí kurzoru poskytuje DSView pohodlnější měření myší. Například měření aktuální šířky pulzu, periody, pracovního cyklu a frekvence (stačí umístit myš na měnící se pulz); Měření počtu hran (kliknutím na počáteční a koncovou pozici na průběhu se automaticky spočítají skokové hrany tohoto intervalu); a měření vzdálenosti od okraje (klikněte myší na počáteční hranu a přesuňte se na koncovou hranu).

Jak je znázorněno na obrázku 3-31, přesuňte myš do pozice počáteční přechodové hrany, klikněte levým tlačítkem myši, vyberte počáteční přechodovou hranu, přesuňte myš do pozice koncové přechodové hrany a vzdálenost mezi oběma zobrazí se přechodové hrany (bod trvání/intervalu vzorkování) a opětovným kliknutím levého tlačítka myši dokončíte měření.

4. Často kladené otázky

4.1. Určete neznámou přenosovou rychlost

Když nemůžeme předem získat přenosovou rychlost průběhu UART, můžeme také odhadnout skutečnou přenosovou rychlost podle získaného průběhu. DSView poskytuje dekodér „Guess bitrate“ pro odhad parametrů přenosové rychlosti libovolného řetězce tvaru vlny. Princip bitové rychlosti Guess spočívá v nalezení nejužší šířky pulsu ve tvaru vlny v pořadí jako šířky křivky bitu a poté vypočítat její převrácenou hodnotu jako přenosovou rychlost. Může tedy existovat více výsledků, musíme pouze sledovat, zda má odpovídající pulz přiměřenou šířku pulzu, a poté vybrat výsledek maximální přenosové rychlosti. To je znázorněno na obrázku 4-1.

Jakmile je získána přenosová rychlost, lze ji nastavit na možnosti pro dekodér UART. Protože protokol UART znovu synchronizuje každý počáteční bit, chyba přenosové rychlosti se bude hromadit pouze v jednom datovém rámci a pokud chyba v rámci jednoho rámce nepřesáhne hranici bitového bitu, lze získat správný výsledek dekódování. .

Samozřejmě, pokud existuje malý vzorek tvaru vlny, například žádný puls o jedné bitové šířce ve tvaru vlny, pak je uhádnutá přenosová rychlost pravděpodobně nesprávná, což má za následek nesprávný výsledek dekódování. Pokud existuje křivka, která neodpovídá protokolu, dekodér UART také poskytne možné chyby, jako je chyba snímku, jak je znázorněno na obrázku 4-2. Zkušení inženýři mohou upravit přenosovou rychlost sledováním průběhu a výsledků dekódování, aby získali správné výsledky dekódování.

4.2. Dekódování antidůvěry

V předchozí části jsme zmínili, že protokol UART může být přenášen různými fyzickými signály a některé signály fyzické vrstvy mohou mít inverzní vztah se signálem protokolu (zaměnitelné na vysoké a nízké úrovni), jako je RS232 nebo signál B v rozdílový signál RS485. Když je signál, který shromažďujeme, obrácený, dekodér UART DSView lze také nastavit tak, aby získal správný výsledek dekódování.

Uživatel potřebuje pouze nahradit "Invert Signal?" v nastavení dekodéru UART. Možnost je nastavena na „ano“. Dekódování zpětného signálu je znázorněno na následujícím obrázku.

4.3. Dekódování víceskupinové UART komunikace

Dekodér UART společnosti DSView je záměrně navržen jako jednokanálový přístup, který umožňuje libovolné nastavení kanálu pro multiplexní komunikaci při dekódování. Například pro plně duplexní UART komunikaci, která má signál TX i signál RX, potřebujeme přidat pouze dva dekodéry UART, aby odpovídaly dekódování TX a RX.

Jak je znázorněno na obrázku níže, jedná se o případ, kdy jsou současně dekódovány tři signály UART.

4.4. Chyba dekódování způsobená počáteční pozicí

Pro jakýkoli komunikační proces musí zařízení začít z počátečního stavu, aby správně přijalo komunikační obsah, tj. správně identifikovalo a analyzovalo rámec protokolu. Totéž platí pro logické analyzátory, pokud získávání signálu začíná přesně uprostřed rámce dat, pak nesprávná počáteční pozice pravděpodobně povede k nesprávnému výsledku dekódování. Jak je znázorněno na následujícím obrázku, zařízení stále odesílá řetězec „DreamSourceLab“, ale protože umístění prvního zachycení je přesně uprostřed datového rámce, dekódování prvního průběhu je zkomolené.

Abychom se vyhnuli nesprávnému dekódování dat, můžeme uměle nastavit počáteční a koncovou pozici dekódování tak, aby nedocházelo k chybám dekódování způsobeným zkrácenými datovými rámci. Pozice dekódování může být zadaná pozice libovolného kurzoru a operace potřebuje pouze nastavit odpovídající počáteční a koncovou pozici v nastavení dekodéru po vložení odpovídajícího kurzoru. Jak je znázorněno na následujícím obrázku, nastavením počáteční polohy zabráníte nesprávnému dekódování prvního zkráceného průběhu.

5. Pokročilá analýza

5.1. Analýza vícevrstvého protokolu

UART je velmi široce používaný základní protokol a mnoho přenosových protokolů používaných v praktických aplikacích je rozšířeno na základě UART. Například: DMX512, LIN, MIDI a Modbus atd., základem komunikace je protokol UART. 、

Podle této funkce DSView také podporuje parsovací stohování vícevrstvých protokolů. Když přidáme dekodér složitého protokolu, DSView automaticky sestaví celý zásobník protokolů od nejvyšší úrovně, díky čemuž jsou výsledky dekódování bohatší a dokonalejší, což je velmi užitečné pro hloubkovou analýzu uživatele a pochopení protokolu.

Vezměme si Modbus RTU jako příklad, abychom pochopili proces DSView analyzující vícevrstvé protokoly. Na základě funkce přenosu bajtů UART Modbus RTU podrobně specifikuje specifický význam každého bajtu, takže rámcová struktura Modbus je tvořena kombinací více rámců protokolu UART dohromady. To je znázorněno na následujícím obrázku.

Při použití DSView pro takové dekódování protokolu stačí zadat odpovídající protokol do vyhledávacího pole protokolu a přidat jej. DSView automaticky vytvoří stránku nastavení pro celý protokol stohování, jak je znázorněno na následujícím obrázku, a uživatel může provést odpovídající nastavení.

Jak je znázorněno na následujícím obrázku, stohovací strukturu protokolu lze jasně vidět z výsledku dekódování Modbus RTU. Modbus pro každý rámec se skládá z 8 UART bytových rámců. Obsah rámce Modbus bude mít také jasné komentáře označující jeho konkrétní význam. Když dojde k chybě přenosu, může takový výsledek dekódování velmi jasně lokalizovat místo chyby a také příčinu chyby (ať už se jedná o problém se základním UART nebo problém s vrstvou protokolu Modbus). Pokud nechcete vidět základní podrobnosti, můžete skrýt odpovídající dekódovaný obsah na stránce nastavení dekodéru.

Buď první, kdo ohodnotí tento článek

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.


*