AMMI v2 » Historie » Revize 9
Revize 8 (Jednatel J.H., 2016-10-11 19:33) → Revize 9/10 (Jednatel J.H., 2016-10-11 19:34)
{{>toc}}
h1(#top). Advance Machine Machine Interface ([[AMMI]])
Firmware [[AMMI]] poskytuje komunikační protokol jednotlivých [[DKE#diagram|komponent DKE]]. [[AMMI]] je součástí libovolného [[PAC-AT90|DKE-PAC]]. Označení MMI představuje komunikaci mezi zařízeními, jako jsou například počítače, kontroléry, mobilní telefony, chytré senzory... a písmeno A (Advance) informuje o pokročilosti a komplexnosti této komunikace. Cílem AMMI je inteligentní kybernetické řízení. [[AMMI]] protokol je určený spíše pro zařízení, než pro uživatele a je optimalizovaný pro rychlost a spolehlivost. Pro přímou komunikaci uživatele a [[PAC-AT90|DKE-PAC]] je vhodné instalovat [[HMI]] software. Aktuální vývojová verze [[AMMI]] podporuje [[PAC-AT90]] a má implementovány protokoly:
* [[MMI|DKE-MMI-USB]]
** Převodník, dekodér nebo kodér komunikačního rozhraní. Označení USB představuje komunikační standard Universal Serial Bus 2.0.
* [[MMI|DKE-MMI-BT]]
** Převodník, dekodér nebo kodér komunikačního rozhraní. Označení BT představuje komunikační bezdrátový standard Bluetooth.
** Aplikovaný komunikační protokol je závislý na použitém [[DKE-PAC]].
* [[MMI|DKE-MMI-WIFI]]
** Převodník, dekodér nebo kodér komunikačního rozhraní. Označení WIFI představuje komunikační bezdrátový standard IEEE 802.11.
** Aplikovaný komunikační protokol je závislý na použitém [[DKE-PAC]].
-------------------------------------------------------------
h2(#spec). Specifikace protokolu
Fyzická, linková, síťová a transportní vrstvy vychází z níže uvedených protokolů. Uvádíme zde pouze konkrétní odlišnosti a informace potřebné pro snadnou implementaci. Sledy vodičů, napěťové úrovně, napájení a vodiče jsou specifikovány u [[PAC-AT90]].
## USART
*** TTL (5 V, 3,3 V)
*** RS232
*** RS485
*** USB 2.0
## IEEE 802.11 (Wi-Fi)
*** 2,4 GHz
*** TCP/UDP
*** client/server
Relační, prezentační a aplikační vrstvy společně zajišťují přenos informací mezi zařízeními. Převážně se jedná o sériový přenos dat a je optimalizovaný pro minimální datový tok. Dále uvádíme pouze tělo rámce (rámec definován užitou linkou). Tělo rámce [[AMMI]] je v podobě sekvence bajtů. Prvním B je počet následujících B. Druhý B je adresa [[PAC-AT90|DKE-PAC]]. Třetí B je sdělení. 4. B až 5. B obsahuje hodnotu sdělení. Sdělení a jeho možné hodnoty jsou popsány níže uvedenou tabulkou (slovníkem [[AMMI]]).
h3(#tx). Struktura odchozího těla rámce (aplikace posílá do [[PAC-AT90]] bajty skrze předchozí vrstvy)
|1. B | 2. B | 3. B | 4.-5. B |
|*počet následujících B*|*adresa [[DKE-PAC]]*|*sdělení (příkaz)*|*hodnota (data)*|
|B0 | B1|\3=. B2 | B3 | B4 | B5 | B6 |
|*ΣB* |*adredsa*|*sdělení* |hex kód | popis |*data B 1* |*data B 2* |*data B 3*|*data B 4*|
|4 |1:255 |OUTPUT_OFF | 0xC0| vypne výstup [[IOPE]] (vysoká impedance) | číslo výstupu MSB | číslo výstupu LSB| | |
|4 |1:255 |OUTPUT_ON | 0xC1| sepne výstup [[IOPE]] (otevřený kolektor)| číslo výstupu MSB | číslo výstupu LSB| | |
|4 |1:255 |OUTPUT_BLK | 0xC2| invertuje výstup [[IOPE]] | číslo výstupu MSB | číslo výstupu LSB| | |
|/6^.3|/6^.1:255|/6^.OUTPUTS |/6^.0xC3|/6^.nastaví všechny výstupy [[IOPE]] | | | | |
| 0x00 = vše vypnout | | | |
| 0x01 = vše zapnout | | | |
| 0x02 = vše invertovat | | | |
| 0x03 = náhodná kombinace | | | |
| 0xF0 = vrať stavy výstupů | | | |
|3 |1:255 |OUTPUTS_PWM | 0xC4| nastaví PWM na všechny výstupy [[IOPE]] | _hodnota_ střídy <0;100> % | | | |
|4 |1:255 |REPEAT | 0xCF| opakuje poslední zadaný příkaz |\2. perioda (_16bit-číslo_*10ms) | | |
|/3^.4|/3^.1:255|/3^.TRANSLATOR|/3^.0x01|/3^.vlastnosti překladače | 0x01 = zapne informaci o chybách| | | |
| 0x02 = vypne informaci o chybách| | | |
| 0x0E = posílat zpět přijaté B | | | |
|6 |1:255 | IOPE | 0xCC| umožňuje přístup na konkrétní [[IOPE]] | sběrnice (1:3) |adresa (0:7)|PORTA(MSB)|PORTB(LSB)|
|3 |1:255 | RELE1 | 0x41| ovládá relé 1 | 0x01 = ON, 0x00 = OFF | | | |
|3 |1:255 | RELE2 | 0x42| ovládá relé 2 | 0x01 = ON, 0x00 = OFF | | | |
|3 |1:255 | RELE3 | 0x43| ovládá relé 3 | 0x01 = ON, 0x00 = OFF | | | |
|3 |1:255 | RELE4 | 0x44| ovládá relé 4 | 0x01 = ON, 0x00 = OFF | | | |
h3. Struktura příchozího těla rámce ([[PAC-AT90]] posílá do aplikace bajty skrze předchozí vrstvy)
|1. B | 2. B | 3. B | 4.-5. B |
|*počet B*|*adresa*|*sdělení*|*hodnota*|
|*sdělení* |hex kód | popis |*hodnota* |*počet B*|
| OUTPUTS | 0xC3| Informace o aktivním nastavení výstupů [[IOPE]]| sekvence bitů (1=ON, 0=OFF) |3|
|/6^.TRANSLATOR|/6^.0x01|/6^. Informace z překladače. Aktivní pouze v případě, že je překladač zapnut.|UNKNOW_DEV (0x0C) neznámé zařízení |2|
| UNKNOW_COM (0x0D) neznámý příkaz |2|
| UNKNOW_VAL (0x0E) neplatná hodnota |2|
| TIMEEXPIRE (0x0A) vypršel čas komunikace |2|
| ERROR_PROCS (0x0B) chyba při provádění příkazu |2|
| ERROR_TRANS (0x0F) chyba překladače |2|
h3. Příklad komunikace a)
# aplikace otevře TCP port
# aplikace pošle |0x03|0x01|0xC3|0x03|
# aplikace zavře TCP port
Aplikace přikázala skrze Wi-Fi aby [[PAC-AT90]] na adrese 1 náhodně nastavil výstupy [[IOPE]] na 1 a 0.
h3. Příklad komunikace b)
# aplikace otevře TCP port
# aplikace pošle |0x03|0x01|0x01|0x0E|
# [[PAC-AT90]] pošle |0x03|0x01|0x01|0x0E|
# aplikace pošle |0x04|0x01|0xC3|0x32E6|
# [[PAC-AT90]] pošle |0x04|0x01|0xC3|0x32E6|
# aplikace zavře TCP port
Aplikace skrze Wi-Fi zapnula echo na [[PAC-AT90]] a přikázala [[PAC-AT90]] zapnout a vypnout výstupy [[IOPE]] dle schématu 0011 0010 1110 0110.
-------------------------------------------------------------
h2(#dev). Vývojové informace
Vývojové informace mohou procházet uživatelé s bezpečnostní prověrkou reportér a vyšší.
# Aktuální vývojová verze: [[versions|2.x]]
# Developments Issues: #485
# "Components List":https://www.tme.eu/cz/Profile/Parking/740721.html
-------------------------------------------------------------
h2(#atch). Přílohy