AMMI v3 » Historie » Verze 1
  Jednatel J.H., 2017-05-10 22:47 
  
| 1 | 1 | Jednatel J.H. | {{>toc}} | 
|---|---|---|---|
| 2 | |||
| 3 | h1(#top). Advance Machine Machine Interface ([[AMMI_v3|AMMI]]) ver.3.x  | 
||
| 4 | |||
| 5 | Pokročilé rozhraní zařízení-zařízení ve zkratce ([[AMMI_v3|AMMI]]) poskytuje komunikační protokol jednotlivých [[DKE#diagram|komponent DKE]]. [[AMMI_v3|AMMI]] je součástí libovolného [[PAC|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_v3|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 [[AHMI]] software. Aktuální vývojová verze [[AMMI_v3]] podporuje [[PAC-AT90_v3]] a má implementovány protokoly:  | 
||
| 6 | * [[MMI#usb|DKE-MMI-USB]] je převodník, dekodér nebo kodér komunikačního rozhraní. Označení USB představuje metalický komunikační standard Universal Serial Bus 2.0.  | 
||
| 7 | * [[MMI#wifi|DKE-MMI-WIFI]] je převodník, dekodér nebo kodér komunikačního rozhraní. Označení WIFI představuje bezdrátový komunikační standard IEEE 802.11.  | 
||
| 8 | * [[MMI#uart|DKE-MMI-UART]] je převodník, dekodér nebo kodér komunikačního rozhraní. Označení UART představuje metalický komunikační standard ANSI EIA/TIA-232.  | 
||
| 9 | |||
| 10 | -------------------------------------------------------------  | 
||
| 11 | |||
| 12 | h2(#spec). Specifikace protokolu  | 
||
| 13 | |||
| 14 | 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 v [[PAC-AT90]].  | 
||
| 15 | |||
| 16 | ## USART  | 
||
| 17 | *** TTL (5 V, 3,3 V)  | 
||
| 18 | *** RS232  | 
||
| 19 | *** USB 2.0  | 
||
| 20 | ## IEEE 802.11 (Wi-Fi)  | 
||
| 21 | *** 2,4 GHz  | 
||
| 22 | *** TCP/UDP  | 
||
| 23 | *** client/server  | 
||
| 24 | |||
| 25 | 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_v3|AMMI]] je v podobě sekvence bajtů:  | 
||
| 26 | # B je počet následujících B těla rámce;  | 
||
| 27 | # B je adresa [[PAC-AT90|DKE-PAC]];  | 
||
| 28 | # B je adresa zařízení;  | 
||
| 29 | # B je příkaz/sdělení;  | 
||
| 30 | # B až N. B jsou určeny pro data zařízení, data příkazu nebo data sdělení.  | 
||
| 31 | |||
| 32 | Zařízení, sdělení, příkazy a jejich možné hodnoty jsou popsány níže uvedenou tabulkou (slovníkem [[AMMI_v3|AMMI]]).  | 
||
| 33 | |||
| 34 | h3(#tx). Struktura odchozího těla rámce (aplikace posílá do [[PAC-AT90]] bajty skrze předchozí vrstvy)  | 
||
| 35 | |||
| 36 | |=. B0 |=. B1 |=. B2 |\2=. B3 |=. B4 |=. B5 |=. B6 |  | 
||
| 37 | |*ΣB* |*adredsa* |*zařízení* |*sdělení/příkaz* |popis |*data B 1* |*data B 2* |*data B 3*|*data B 4*|  | 
||
| 38 | |/6^.4 |/6^.1:255 |/6^.KERNEL(0x00) |/3^.TRANSLATOR(0x01)|/3^.vlastnosti překladače | 0x01 = zapne informaci o chybách| | | |  | 
||
| 39 | | 0x02 = vypne informaci o chybách| | | |  | 
||
| 40 | | 0x0E = posílat zpět přijaté B | | | |  | 
||
| 41 | |/3^.DEVICES |/3^.správa zařízení | 0x01 = zapne informaci o chybách| | | |  | 
||
| 42 | | 0x02 = vypne informaci o chybách| | | |  | 
||
| 43 | | 0x0E = posílat zpět přijaté B | | | |  | 
||
| 44 | |/28^.4|/28^.1:255|/28^.IOPE(0x01:0xFF)|/6^.COLLECTORS(0xC3)|/6^.nastaví všechny výstupy [[IOPE]]| | | | |  | 
||
| 45 | | 0x00 = vše vypnout | | | |  | 
||
| 46 | | 0x01 = vše zapnout | | | |  | 
||
| 47 | | 0x02 = vše invertovat | | | |  | 
||
| 48 | | 0x03 = náhodná kombinace | | | |  | 
||
| 49 | | 0xF0 = vrať stavy výstupů | | | |  | 
||
| 50 | |COFF(0xC0) |vypne výstup [[IOPE]] (vysoká impedance) | 0x00:0x0F = číslo kolektoru | | | |  | 
||
| 51 | |CON(0xC1) |sepne výstup [[IOPE]] (otevřený kolektor)| 0x00:0x0F = číslo kolektoru | | | |  | 
||
| 52 | |CTGL(0xC2) |invertuje výstup [[IOPE]] | 0x00:0x0F = číslo kolektoru | | | |  | 
||
| 53 | |/6^.PWM(0xD0:0xDF) |/6^.správa PWM pro jednotlivé výst. | 0x00 = PWM vypnout | | | |  | 
||
| 54 | | 0x01 = PWM zapnout | | | |  | 
||
| 55 | | 0x02 = PWM perioda | | | |  | 
||
| 56 | | 0x03 = PWM střída | | | |  | 
||
| 57 | | 0x04 = efekt1 | | | |  | 
||
| 58 | | 0xF0 = vrať aktuální nastavení | | | |  | 
||
| 59 | |/4^.ADC(0xA0:0xAF) |/4^.správa kanálů ADC | 0x00 = ADC vypnout | | | |  | 
||
| 60 | | 0x01 = ADC zapnout | | | |  | 
||
| 61 | | 0x02 = vrať hodnotu ADC kanálu | | | |  | 
||
| 62 | | 0xF0 = vrať aktuální nastavení | | | |  | 
||
| 63 | |/9^.ENCODER(0x60) |/9^.příkazy inkrementálního enkodéru| 0x01 = kontrola délky cyklů | | | |  | 
||
| 64 | | 0x02 = vrátí délka cyklů | | | |  | 
||
| 65 | | 0x03 = kontrola počtu cyklů | | | |  | 
||
| 66 | | 0x04 = vrátí počet cyklů | | | |  | 
||
| 67 | | 0x05 = vrátí směr rotace | | | |  | 
||
| 68 | | 0x06 = nastaví minimální délu | DELKA | | |  | 
||
| 69 | | 0x07 = nastaví maximální délu | DELKA(MSB) |DELKA(LSB)| |  | 
||
| 70 | | 0x08 = vyčistí čítače a hodnoty | | | |  | 
||
| 71 | | 0x09 = nastaví rozlišení čítače | ROZLISENI(0:255)| | |  | 
||
| 72 | |||
| 73 | |||
| 74 | h3. Struktura příchozího těla rámce ([[PAC-AT90]] posílá do aplikace bajty skrze předchozí vrstvy)  | 
||
| 75 | |||
| 76 | |1. B | 2. B | 3. B | 4.-5. B |  | 
||
| 77 | |*počet B*|*adresa*|*sdělení*|*hodnota*|  | 
||
| 78 | |||
| 79 | |*sdělení* |hex kód | popis |*hodnota* |*počet B*|  | 
||
| 80 | | OUTPUTS | 0xC3| Informace o aktivním nastavení výstupů [[IOPE]]| sekvence bitů (1=ON, 0=OFF) |3|  | 
||
| 81 | |/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|  | 
||
| 82 | | UNKNOW_COM (0x0D) neznámý příkaz |2|  | 
||
| 83 | | UNKNOW_VAL (0x0E) neplatná hodnota |2|  | 
||
| 84 | | TIMEEXPIRE (0x0A) vypršel čas komunikace |2|  | 
||
| 85 | | ERROR_PROCS (0x0B) chyba při provádění příkazu |2|  | 
||
| 86 | | ERROR_TRANS (0x0F) chyba překladače |2|  | 
||
| 87 | |||
| 88 | h3. Příklad komunikace a)  | 
||
| 89 | |||
| 90 | # aplikace otevře TCP port  | 
||
| 91 | # aplikace pošle |0x03|0x01|0xC3|0x03|  | 
||
| 92 | # aplikace zavře TCP port  | 
||
| 93 | |||
| 94 | Aplikace přikázala skrze Wi-Fi aby [[PAC-AT90]] na adrese 1 náhodně nastavil výstupy [[IOPE]] na 1 a 0.  | 
||
| 95 | |||
| 96 | h3. Příklad komunikace b)  | 
||
| 97 | |||
| 98 | # aplikace otevře TCP port  | 
||
| 99 | # aplikace pošle |0x03|0x01|0x01|0x0E|  | 
||
| 100 | # [[PAC-AT90]] pošle |0x03|0x01|0x01|0x0E|  | 
||
| 101 | # aplikace pošle |0x04|0x01|0xC3|0x32E6|  | 
||
| 102 | # [[PAC-AT90]] pošle |0x04|0x01|0xC3|0x32E6|  | 
||
| 103 | # aplikace zavře TCP port  | 
||
| 104 | |||
| 105 | 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.  | 
||
| 106 | |||
| 107 | -------------------------------------------------------------  | 
||
| 108 | |||
| 109 | h2(#dev). Vývojové informace  | 
||
| 110 | |||
| 111 | Vývojové informace mohou procházet uživatelé s bezpečnostní prověrkou reportér a vyšší.  | 
||
| 112 | |||
| 113 | # Aktuální vývojová verze: [[versions|2.x]]  | 
||
| 114 | # Developments Issues: #485  | 
||
| 115 | # "Components List":https://www.tme.eu/cz/Profile/Parking/740721.html  | 
||
| 116 | |||
| 117 | -------------------------------------------------------------  | 
||
| 118 | |||
| 119 | h2(#atch). Přílohy  |