Ako generovať Manchester kódované dáta v hardvéri a firmvéru

Esoteric Agenda - Best Quality with Subtitles in 13 Languages (Apríl 2019).

Anonim

Ako generovať Manchester kódované dáta v hardvéri a firmvéru


Tento článok sa zaoberá detailmi implementácie pre jednoduchú, ale účinnú techniku, ktorá môže zlepšiť vašu digitálnu komunikáciu.

V predchádzajúcom článku (veľmi minulý, podobne ako pred rokom) som písal o kódovaní "čo a prečo" v Manchestri, tj čo presne je kódovanie v Manchestri a prečo by ste ho mohli začleniť do pevného alebo bezdrôtového dátového spojenia, V tomto článku po krátkom prečítaní informácií o tom, čo a prečo, budeme diskutovať o niečom pomerne užitočnom, konkrétne o tom, ako skutočne generovať údaje kódované v Manchestri, keď ste sa rozhodli, že to môže byť prospešné pre váš systém.

Manchester kódovanie je forma modulácie, ale nebojte sa, je to oveľa jednoduchšie, než RF techniky (FSK, PSK, atď), ktoré sú bežnejšie spojené s týmto slovom. Táto schéma modulácie vyžaduje iba digitálne údaje, príslušný hodinový signál a trochu hardvéru alebo firmvéru. Rozdiely medzi modulovanými údajmi a pôvodnými údajmi sú nasledujúce:

  • Údaje sú reprezentované pomocou logických úrovní prechodov skôr ako logických úrovní.
  • Hodinový signál sa nemusí odoslať do prijímača, pretože hodiny sú vložené do modulovaného dátového toku.

Nasledujúci diagram znázorňuje, ako dvojica údajov plus hodín zodpovedá signálu kódovanému v Manchestri.

Okrem toho, že eliminuje potrebu prenášaného hodinového signálu, kódovanie v Manchestri umožňuje použitie AC spojky, pretože modulovaný signál nezostáva dlhodobo logicky vysoký ani logicky nízky. Dôležitou nevýhodou kódovania v Manchestri je znížená rýchlosť prenosu dát: pretože sú nuly a nuly reprezentované pomocou prechodov namiesto logických úrovní, jeden logický stav v pôvodnom signále sa zmení na dve logické stavy v signáli Manchesteru.

Manchester cez hardvér

Teoreticky je extrémne jednoduché vytvárať dátový tok zakódovaný v Manche cez hardvér. Na rozdiel od starostlivo navrhnutých analógových obvodov alebo výkonných digitálnych signálových procesorov, ktoré sa používajú pri pokročilých technikách modulácie RF, kódovanie Manchesteru vyžaduje len bránu XOR.

Môžete to jednoducho overiť pomocou vyššie uvedeného časového diagramu: ak sú hodiny a dáta na rovnakej logickej úrovni, signál Manchester je nízky; keď sú na rôznych logických úrovniach, signál Manchesteru je vysoký.

Dôvodom, že ide o "teoretickú" implementáciu, je to, že výstup brány XOR bude podliehať nepravdivým prechodom, aka záväzkom. Toto je netriviálny problém, pretože kódovanie Manchesteru je o prechode. Tieto nesprávne prechody sa vyskytujú, pretože brána XOR je veľmi jednoduché zariadenie. Všetko, čo robí, je porovnať dva vstupy a generovať výstup podľa tabuľky pravdy XOR. Ak nie sú hodinové a dátové signály dokonale zarovnané (a nikdy nie je dobré očakávať dokonalosť), jeden prechádza pred druhým a brána XOR je dostatočne rýchla na aktualizáciu svojho výstupu na základe tejto prechodnej (a chyby) kombinácie dva vstupné signály.

Nemyslím si, že prístup nič, ale iba XOR je zbytočný. Ak dokážete zabezpečiť veľmi dobrú synchronizáciu dátových a hodinových signálov - napríklad keď sú dva signály generované a XORed vnútri FPGA - pravdepodobne to bude celkom dobre. Účinok nedokonalého synchronizovania je tiež menej významný, keď je dátové obdobie veľmi dlhé v porovnaní s dĺžkou trvania závady, pretože (vyššie frekvencie) falošných prechodov je možné odfiltrovať pred tým, ako sa dáta Manchesteru interpretovať prijímačom.

Pokiaľ viem, problém tohto problému nemožno vyriešiť jednoducho pridaním brány alebo flip-flopu. Vyhľadávania na internete neprodukujú veľa informácií, pravdepodobne preto, že v súčasnosti je oveľa bežnejšie generovať údaje Manchesteru v firmvéri (pozri nasledujúcu časť). Zdá sa však, že Harris A. Quesnell Jr. bol odhodlaný generovať Manchester bez údajov bez pomoci firmvéru a môžete si prečítať o jeho okruhu v patentovej dokumentácii.

Toto je diagram uvedený v patente .

Ako som povedal, nie to, čo môžete dosiahnuť pridaním pár brán alebo flip-flop. Vážim si hardvérové ​​riešenia, ale v tomto prípade vám odporúčam, aby ste sa buď vyrovnali s problémami, alebo presunúť akciu Manchesteru na firmvér.

Manchester cez Firmware

Implementácia firmvéru eliminuje falošné prechody, pretože pôvodné dáta sú predtým, ako sa stanú normálnym elektrickým signálom, premenené na Manchesterskú sekvenciu tých a núl. Jediné, čo musíte urobiť, je posunúť túto sekvenciu jednotiek a núl na kolík GPIO a skončíte. V tomto prípade sú výhody oproti implementácii hardvéru pomerne významné. Väčšina systémov v týchto dňoch už zahŕňa procesor, ktorý by túto úlohu zvládol.

Nie je veľa čo povedať o podrobnostiach potrebných na vykonanie kódovania na báze firmvéru. Zoberiete pôvodné dáta a nahradíte každú jednu alebo nulu dvojicou s nulovou nulovou hodnotou (tj prechodom s klesajúcou hranou) alebo párom nula-jedna (tj prechodom na zvyšujúcom sa okraji). Mohli by ste potom riadiť tieto Manchester bity na výstupný kolík pomocou rutiny služby prerušenia spojenej s časovačom, ktorý pretečie podľa požadovanej dátovej rýchlosti. Ďalšou možnosťou je použiť jednu z periférií sériovej komunikácie procesora.

Prístup založený na mikrokontroléroch a hardvéri

Silicon Labs vyrába mikrokontroléry, ktoré obsahujú konfigurovateľnú logickú jednotku (CLU). CLU obsahuje niektorý typický digitálny hardvér, ktorý môže používateľ prispôsobiť. Inými slovami, je to ako malá FPGA, ktorá umožňuje mikrokontroléru vykonávať určité úlohy bez zásahu CPU. V každom prípade táto príloha od spoločnosti Silicon Labs predstavuje niekoľko príkladov implementácie CLU a jeden z týchto príkladov (strana 10) je kodér / dekodér Manchester. Schéma SiLabs používa periférne zariadenie SPI v spojení s dvoma CLU na generovanie údajov Manchesteru (pravdepodobne bez glitchov).

Grafy prevzaté z poznámky k aplikácii Silicon Labs .

Ak očakávate, že v systéme budete mať mikrokontrolér, ale nechcete venovať významné zdroje procesora pre konverziu v Manchestri, navrhujem, aby ste túto implementáciu podrobne preskúmali.

záver

Stručne sme skontrolovali hlavné charakteristiky kódovania v Manchestri a diskutovali sme o technikách založených na hardvéri a firmvéri na konverziu pôvodných údajov na logickej úrovni do signálu Manchesteru. V ďalšom článku sa budeme zaoberať ďalším veľmi dôležitým aspektom tejto témy, konkrétne ako previesť manchesterské údaje späť do štandardného sériového dátového toku.