UNI/O - UNI/O

Příklad sběrnice UNI/O: jeden hlavní a čtyři podřízené
Příklad UNI/O zařízení v SOT-23 a balíčcích čipových balíčků na úrovni čipu sedících na přední straně amerického penny

UNI / O bus / ˌ ju n i / je asynchronní sériová sběrnice vytvořen Microchip Technology pro nízkou rychlost komunikace ve vestavěných systémech . Sběrnice používá konfiguraci master/slave , která vyžaduje jeden signál pro přenos dat mezi zařízeními. První zařízení podporující sběrnici UNI/O byla vydána v květnu 2008.

Rozhraní

Sběrnice UNI/O vyžaduje jeden logický signál:

  • SCIO - Sériové hodiny, vstup/výstup dat

Na jednu sběrnici je povoleno pouze jedno hlavní zařízení, ale k jedné sběrnici UNI/O lze připojit více podřízených zařízení. Jednotliví podřízení jsou vybíráni prostřednictvím 8bitové až 12bitové adresy zahrnuté v režii příkazu .

Jak hlavní, tak podřízená zařízení používají pro připojení ke SCIO trojstranný , push-pull I/O pin, přičemž pin je umístěn ve stavu vysoké impedance, když neřídí sběrnici. Protože se používají push-pull výstupy, výstupní ovladač na podřízených zařízeních je omezen proudem, aby se zabránilo vysokým systémovým proudům během kolizí sběrnice.

Pohotovostní stav sběrnice UNI/O je logicky vysoký . Pomocí pull-up rezistoru lze zajistit, že sběrnice zůstane nečinná, když žádné zařízení nepohání SCIO, ale není pro provoz vyžadováno.

Kódování dat

Bitové kódování

Příklady bitového kódování UNI/O

Hodinové a datové signály jsou kombinovány a sdělovány na sběrnici prostřednictvím Manchesterova kódování . To znamená, že každý datový bit je přenášen v pevně daném čase (nazývá se „ bitové období “).

Specifikace UNI/O klade na bitovou periodu určitá pravidla:

  • Určuje to pán.
  • Může to být v rozmezí 10 µs a 100 µs (což odpovídá bitové rychlosti 100 kbit/s až 10 kbit/s).
  • Je vyžadováno, aby byl opraven pouze v rámci jedné sběrnicové operace (pro nové sběrnicové operace si master může zvolit jinou bitovou periodu).

V souladu s Manchesterovým kódováním je bitová hodnota definována přechodem signálu uprostřed bitové periody. UNI/O používá k definování hodnot 0 a 1 konvenci IEEE 802.3 :

  • Přechod z vysokého na nízký znamená 0 .
  • Přechod z nízké na vysokou znamená 1 .

Bitové periody se vyskytují zády k sobě, přičemž není povoleno žádné zpoždění mezi bitovými periodami.

Datová slova

Datový byte UNI/O a potvrzovací sekvence

UNI/O používá ke komunikaci 8bitová datová slova . Nejprve se přenášejí bajty msb .

Potvrzovací sekvence

Aby se usnadnila detekce chyb , je na konec každého přeneseného datového bajtu připojena 2bitová široká „ potvrzovací sekvence“. První bit se nazývá „hlavní potvrzení“ (zkráceno na „MAK“) a je vždy generován masterem. Druhý bit, nazývaný „potvrzení podřízeného“ (zkráceno na „SAK“), je vždy generován podřízeným.

Bit MAK se používá následujícím způsobem:

  • Master vysílá 1 bit ( MAK ), aby indikoval slave, že provoz sběrnice bude pokračovat.
  • Master vysílá 0 bitů ( NoMAK ), což znamená, že předchozí bajt byl posledním bajtem pro tuto sběrnicovou operaci.

Bit SAK se používá následujícím způsobem:

  • Jakmile byla přenesena úplná adresa zařízení (a byla vybrána platná podřízená jednotka), pokud byl předchozí datový bajt a následující bit MAK přijat správně, podřízený vysílá 1 bit ( SAK ).
  • Pokud dojde k chybě, slave se automaticky vypne a ignoruje další komunikaci, dokud není přijat pohotovostní impuls. V tomto scénáři nebude během bitové periody SAK nic přenášeno. Tento chybějící přechod může být detekován masterem a je považován za bit NoSAK .

Struktura velení

Pohotovostní puls

UNI/O definuje signální impuls, nazývaný „pohotovostní impuls“, který může generovat master, aby přinutil podřízená zařízení do stavu resetování (označovaného jako „pohotovostní režim“). Aby generoval pohotovostní impuls, musí master řídit sběrnici na logickou úroveň po dobu minimálně 600 µs.

Za určitých podmínek je nutné generovat pohotovostní impuls:

  • Před spuštěním příkazu při výběru nového zařízení (včetně po události POR /BOR)
    • Pokud je příkaz dokončen bez chyby, lze spustit nový příkaz pro stejné zařízení bez generování pohotovostního impulsu.
  • Po zjištění chyby

Spustit záhlaví

UNI/O startovací hlavička

Počáteční záhlaví je speciální bajtová sekvence definovaná specifikací UNI/O a slouží k zahájení nového příkazu. Startovací hlavička se skládá z následujících prvků:

  • Master řídí sběrnici na minimum po dobu 5 µs.
  • Master vydává datový bajt 0x55 .
    • Podřízená zařízení měří čas potřebný k přijetí bajtu 0x55 počítáním přechodů signálu. Tento čas pak používají podřízené jednotky k určení bitové periody a synchronizaci s masterem.
  • Master výstupy 1 pro bit MAK.
  • Slave zařízení nemusí reagovat během SAK bit po hlavičce startu. To má zabránit srážkám sběrnice, ke kterým by došlo u všech podřízených zařízení, která se pokusila reagovat současně.

Adresa zařízení

Po odeslání záhlaví startu musí master vyslat adresu zařízení, aby vybral požadované podřízené zařízení pro aktuální operaci. Jakmile je adresa zařízení odeslána, jakékoli podřízené zařízení s jinou adresou, než je uvedena, je nutné vypnout a ignorovat veškerou další komunikaci, dokud není přijat pohotovostní impuls.

UNI/O umožňuje jak 8bitové, tak 12bitové adresy zařízení. 8bitové adresování nabízí lepší propustnost dat díky menší režii příkazů, zatímco 12bitové adresování umožňuje, aby na jedné sběrnici existovalo více podřízených se společným rodinným kódem. Když je navrženo podřízené zařízení, musí návrhář zvolit, jaké schéma adresování použít.

8bitové adresování

Pro 8bitové adresování je celá adresa zařízení přenášena v jednom bajtu. Nejvýznamnější 4 bity označují „rodinný kód“, který je definován společností Microchip ve specifikaci sběrnice UNI/O. Nejméně významné 4 bity označují kód zařízení. Kód zařízení umožňuje použití více podřízených zařízení se společným kódem rodiny na stejné sběrnici. Kód zařízení může být pro daný slave pevný nebo přizpůsobitelný uživatelem. Za výběr kódu zařízení a způsob jeho přizpůsobení (v případě potřeby) odpovídá designér podřízeného zařízení.

Aktuální rodinné kódy pro 8bitová zařízení k 22. listopadu 2009 jsou následující:

Rodinný kodex Popis
0000 Rezervováno
0011 Zobrazit ovladače
0100 Expandéry I/O portů
1000 Frekvenční / kvadraturní / PWM kodéry, hodiny v reálném čase
1001 Teplotní čidla
1010 EEPROM
1011 Šifrovací/ověřovací zařízení
1100 Převodníky DC/DC
1101 A/D převodníky
1111 12bitová adresovatelná zařízení

12bitové adresování

Pro 12bitové adresování je adresa zařízení odeslána ve dvou bajtech. Nejvýznamnější 4 bity prvního bajtu (což by odpovídalo rodinnému kódu v 8bitovém adresování) jsou nastaveny na „ 1111 “. Další 4 bity jsou rodinným kódem pro 12bitovou adresu a druhý bajt adresy je 8bitový široký kód zařízení. Kód zařízení se při definici řídí stejnými pokyny jako u 8bitového adresování.

Protože zadané podřízené zařízení není vybráno, dokud nebudou přijaty oba bajty adresy zařízení, během sekvence potvrzení po prvním bajtu adresy zařízení dojde k NoSAK.

Aktuální rodinné kódy pro 12bitová zařízení k 22. listopadu 2009 jsou následující:

Rodinný kodex Popis
0000 Rezervováno
1111 Rezervováno

Příkazový byte

Poté, co master vyslal adresu zařízení a vybral jednotlivou slave, musí master odeslat 8bitovou hodnotu pro konkrétní příkaz, který má slave provést. Dostupné příkazy jsou určeny konstruktérem každého podřízeného zařízení a budou se lišit od podřízeného k podřízenému, např. Sériová EEPROM bude pravděpodobně mít jiné příkazy než teplotní čidlo. Návrhář podřízených zařízení také určí, zda a kolik datových bytů je nezbytných pro provedení příkazu. Pokud jsou nějaké datové bajty nutné, jsou přenášeny buď masterem nebo slave (diktovaným typem příkazu) za příkazovým bytem.

Komunikace bude pokračovat, dokud buď master během sekvence potvrzení nevysílá 0 (NoMAK), nebo dokud nedojde k chybě. Za předpokladu, že nedojde k žádným chybám, to znamená, že příkazy mohou pokračovat neomezeně dlouho, pokud si to master vybere.

Reference

externí odkazy