První nastavení NCP (koordinátora)
Po úvodním resetu a dohodnutí verze komunikačního protokolu je potřeba definovat základní nastavení NCP. NCP má dva typy konfigurovatelných paměťových buněk.
- EZSP Configuration value; Instrukce 0052 / 0053
- EZSP Value; Instrukce 00AA / 00AB
Adresy těchto paměťových buněk se označují jako EzspConfigId a EzspValueId. Mají velikost 1 bajt, takže jejich maximální hodnota je 0xFF. Pochopitelně lze jejich obsah nejen číst, ale i přepisovat. U instrukce 0053 je ale časové omezení jen do chvíle připojení k síti. Později už pokus o zápis vrátí chybu EZSP_ERROR_INVALID_CALL. U instrukce 00AB dokumentace podobné omezení neuvádí. Právě tyto buňky se úvodním resetem vrátí do továrního nastavení. Význam uložených hodnot si můžete nastudovat v dokumentu EZSP Reference Guide.
- Instrukce 0052 - GetConfigurationValue; Přečte obsah paměťové buňky EZSP Configuration value. Hodnota má velikost 1 Word
- Instrukce 0053 - SetConfigurationValue; Zapíše novou hodnotu paměťové buňky EZSP Configuration value na adresu EzspConfigId
- Instrukce 00AA - GetValue; Přečte obsah paměťové buňky EZSP Value. Hodnota je pole bajtů
- Instrukce 00AB - SetValue; Zapíše novou hodnotu paměťové buňky EZSP Value na adresu EzspValueId
Jaké konkrétní úpravy se obvykle provádějí po příkazu Reset zjistíte ve výpisu komunikace. Přehled uvádím i v následující tabulce v pořadí, jak jsem je nalogoval.
Úvodní nastavení konfigurační paměti EZSP Configuration value | |||
Adresa (EzspConfigId) | Původní hodnota | Nová hodnota | Orientační popis (google překlad) |
1A | 00C8 | - | Velikost zdrojové směrovací tabulky. |
13 | 0008 | 0008 | Maximální doba, po kterou může potomek koncového zařízení čekat mezi dotazy. |
38 | 012C | 005A | Doba v sekundách, po kterou trust center umožní opětovné připojení pro zařízení, které používá známý klíč link. |
12 | 0BB8 | 1E00 | Maximální doba, po kterou MAC podrží zprávu pro nepřímý přenos k potomkovi. |
0C | 0000 | 0002 | Určuje profil zásobníku. |
2D | 0001 | - | Počet podporovaných sítí. |
06 | 0010 | - | Maximální počet skupin vícesměrového vysílání, kterých může být zařízení členem. |
19 | 0000 | 0002 | Maximální počet přidružení EUI64 k síťové adrese, které může trust center udržovat. |
0D | 0005 | 0005 | Úroveň zabezpečení použitá pro zabezpečení na MAC a síťové vrstvě. |
05 | 0010 | - | Maximální počet přidružení EUI64 k síťové adrese, který může zásobník pro aplikaci udržovat. |
22 | 0002 | 0002 | Počet zpráv o konfliktu ID PAN, které musí správce sítě obdržet do jedné minuty, aby vyvolal změnu ID PAN. |
1E | 000C | - | Velikost tabulky klíčů používané pro ukládání jednotlivých klíčů link (pokud je zařízením Trust Center) nebo klíčů Application Link (pokud je zařízením běžný node). |
11 | 0020 | - | Maximální počet potomků koncových zařízení, které bude router podporovat. |
2A | 0000 | 0003 | Toto je bitová maska, která řídí, které příchozí zprávy požadavku ZDO jsou předány aplikaci. |
01 | 00FF | 00FF | NCP již nepodporuje konfiguraci počtu vyrovnávací paměti paketů za běhu pomocí tohoto parametru. |
Zatím netuším, proč se uvedené hodnoty takto mění, tedy jaké mají praktické důsledky pro činnost NCP. Ani proč se na některé adresy zapisují ty stejné hodnoty, které tam už jsou. Možná test zapisovatelnosti?
Úvodní změna obsahu buněk typu EZSP Value je jen jedna. Adresa EzspValueId = 3A obsahuje hodnotu 00. Ve výpisu se mění na hodnotu 01. Google překládá popis takto: Počet neúspěšných pokusů CSMA z důvodu selhání CCA provedených MAC před pokračováním v přenosu s deaktivovaným CCA. Hodnota 00 funkci vypíná. :-) Budiž.