Tartalomjegyzék:

Az Arduino programozása a levegőben (OTA) - Ameba Arduino: 4 lépés
Az Arduino programozása a levegőben (OTA) - Ameba Arduino: 4 lépés

Videó: Az Arduino programozása a levegőben (OTA) - Ameba Arduino: 4 lépés

Videó: Az Arduino programozása a levegőben (OTA) - Ameba Arduino: 4 lépés
Videó: Как запрограммировать ПЛК Outseal Arduino — ROTON и SPWM 2024, November
Anonim
Arduino programozása az OTA -n keresztül - Ameba Arduino
Arduino programozása az OTA -n keresztül - Ameba Arduino

Sok Wi-Fi mikrokontroller létezik a piacon, sok gyártó szívesen programozza Wi-Fi mikrokontrollerét az Arduino IDE használatával. Azonban a Wi-Fi mikrokontroller által kínált egyik legmenőbb funkciót általában figyelmen kívül hagyják, vagyis a kód programozását és feltöltését távolról és vezeték nélkül az OTA (Over-The-Air) funkció segítségével.

Ebben az utasításban megmutatom, hogyan kell beállítani az OTA-t a Wi-Fi mikrokontrollerén az Ameba Arduino Wi-Fi mikrokontroller mindenütt jelenlévő Arduino IDE használatával!

Kellékek

Ameba Arduino x 1

1. lépés: OTA

OTA
OTA

Az OTA (Over-The-Air) az interneten keresztüli online frissítési mechanizmusra utal.

Az Arduino IDE OTA szolgáltatást kínál, amely a fenti ábrán látható munkafolyamatot követi.

(i) Az Arduino IDE az mDNS -en keresztül keres olyan eszközöket, amelyek Arduino IDEOTA szolgáltatással rendelkeznek a helyi hálózatban.

(ii) Mivel az mDNS szolgáltatás az Ameba rendszeren fut, az Ameba válaszol az mDNS keresésre, és megnyitja az adott TCP portot a csatlakozáshoz.

(iii) A felhasználó programot fejleszt az Arduino IDE -ben. Ha elkészült, válassza a hálózati portot.

(iv) Kattintson a feltöltés gombra. Ezután az Arduino IDE elküldi az OTA -képet az Ameba -nak a TCP -n keresztül, az Ameba egy adott címre menti a képet, és beállítja a rendszerindítási lehetőséget, hogy legközelebb erről a képről induljon.

A munkafolyamat három részből áll: mDNS, TCP és OTA képfeldolgozás. Az mDNS -hez kapcsolódó részleteket az mDNS bemutatója ismerteti. A TCP socket programozást a képek átvitelénél használják, és az OTA API már tartalmazza.

A következő részben az OTA kép feldolgozásának módjáról fogunk beszélni, és bemutatunk néhány alapvető tudást az Ameba flash memória elrendezéséről és a rendszerindítás folyamatáról.

2. lépés: Ameba Flash memória elrendezés

Ameba Flash memória elrendezés
Ameba Flash memória elrendezés

Az Ameba RTL8195A flash memória mérete 2 MB, 0x00000000 és 0x00200000 között. Az Ameba RTL8710 flash memória mérete azonban 1 MB. A különböző kártyák használatának feltételezése érdekében feltételezzük, hogy a flash memória elrendezése 1 MB.

Amint a fenti ábrán látható, az Ameba program a flash memória három részét foglalja el:

- Boot kép?

Vagyis a rendszerbetöltő. Amikor az Ameba elindul, a rendszerindító képet a memóriába helyezi és inicializálja. Ezenkívül meghatározza, hogy a rendszerbetöltő után merre tovább. A Bootloader megnézi az OTA címet és a helyreállítási PIN -kódot a rendszer adatterületén, és meghatározza, hogy melyik kép kerül végrehajtásra. A rendszerbetöltő végén a képet a memóriába helyezi, és végrehajtja.

- Alapértelmezett 2. kép.

Ebben a részben található a fejlesztői kód, a cím 0x0000B000 -től kezdődik. Az első 16 bájt a kép fejléce, a 0x0000B008 ~ 0x0000B00F az aláírást tartalmazza, amely a kép érvényességének ellenőrzésére szolgál. Az aláírás mező két érvényes értékkel rendelkezik, amelyek megkülönböztetik az új képet a régi képtől.

- OTA kép?

Az ebben a részben szereplő adatok szintén fejlesztői kódok. Alapértelmezés szerint a memória ezen része 0x00080000 -tól kezdődik (megváltoztatható). A fő különbségek az OTA kép és az alapértelmezett 2. kép között a flash memória címe és az aláírás értéke.

A kódon kívül van néhány adatblokk:

- Rendszeradatok?

A rendszer adatblokkja 0x00009000 -től kezdődik. Két OTA-val kapcsolatos adat létezik:

1. OTA -cím: 4 bájtos adat 0x00009000 -től. Megmondja az OTA Image címét. Ha az OTA cím értéke érvénytelen (azaz 0xFFFFFFFF), akkor a flash memóriában lévő OTA kép nem tölthető be megfelelően.

2. Helyreállító pin : 4 bájtos adatok 0x00009008 -tól kezdődően. A helyreállítási pin segítségével határozzák meg, hogy melyik képet (alapértelmezett 2. kép vagy OTA -kép) kell végrehajtani, ha mindkét kép érvényes. Ha a helyreállítási pin értéke érvénytelen (azaz 0xFFFFFFFF), akkor az új kép alapértelmezés szerint végrehajtásra kerül.

A rendszer adatait eltávolítjuk, amikor a DAP -on keresztül feltöltjük a programot az Ameba -ba. Vagyis az OTA -cím eltávolításra kerül, és az Ameba megállapítja, hogy nincs OTA -kép.

- Kalibrációs adatok : A perifériás kalibrálási adatok ebbe a mondatba kerülnek. Ezeket az adatokat általában nem szabad törölni.

3. lépés: Indítási folyamat

Boot Flow
Boot Flow

A fenti kép alapján, A következő forgatókönyveket tárgyaljuk: (i) az OTA nincs használatban, a DAP segítségével töltse fel a programot:

Ebben a helyzetben a rendszerbetöltő ellenőrzi az alapértelmezett 2. kép és az OTA -cím aláírását. Mivel az OTA -cím eltávolításra került, az alapértelmezett 2. kép kerül kiválasztásra a végrehajtáshoz.

(ii) Az OTA -kép átkerül az Ameba -ba, az OTA -cím helyesen van beállítva, a helyreállítási PIN -kód nincs beállítva.

Az Ameba frissített képet kapott OTA -n keresztül, az alapértelmezett 2. kép aláírása régi aláírásra van állítva.

A rendszerbetöltő ellenőrzi az alapértelmezett 2. kép aláírását és az OTA -címet. Megállapítja, hogy az OTA -cím érvényes OTA -képet tartalmaz. Mivel a helyreállítási gomb nincs beállítva, kiválasztja a végrehajtandó új képet (azaz az OTA -képet).

(iii) Az OTA -kép átkerül az Ameba -ba, az OTA -cím helyesen van beállítva, a helyreállítási pin be van állítva :

Az Ameba frissített képet kapott OTA -n keresztül, az alapértelmezett 2. kép aláírása régi aláírásra van állítva.

A rendszerbetöltő ellenőrzi az alapértelmezett 2. kép aláírását és az OTA -címet. Megállapítja, hogy az OTA -cím érvényes OTA -képet tartalmaz. Ezután ellenőrizze a helyreállító tű értékét. Ha a helyreállítási csap LOW -hoz van csatlakoztatva, akkor az új kép (azaz OTA -kép) végrehajtásra kerül. Ha a helyreállítási csap a HIGH -hez van csatlakoztatva, akkor a régi kép (azaz az alapértelmezett 2. kép) kerül végrehajtásra.

4. lépés: Példa

Példa
Példa
Példa
Példa
Példa
Példa
Példa
Példa

Az OTA szolgáltatás használatához frissítse a DAP firmware -t> 0.7 verzióra (a v0.7 nem tartozék). A gyári alapértelmezett DAP firmware a 0.7 verzió. Kérjük, kövesse az utasításokat a DAP firmware frissítéséhez:

Nyissa meg a példát: "Fájl" -> "Példák" -> "AmebaOTA" -> "ota_basic"

Töltse ki az ssid és a jelszó adatait a hálózati kapcsolat mintakódjában.

Van néhány paraméter az OTA -val kapcsolatban:

§ MY_VERSION_NUMBER : Az első verzióban be kell állítanunk az OTA címet és a helyreállítási PIN -kódot. Mivel ezúttal az USB -n keresztül történő feltöltés az első verzió, nem kell módosítanunk ezt az értéket.

§ OTA_PORT : Az Arduino IDE megtalálja az Amebát az mDNS -en keresztül. Az Ameba közli az Arduino IDE -vel, hogy megnyitja az 5000 -es TCP -portot, hogy megvárja az OTA -képet.

§ RECOVERY_PIN : Állítsa be a helyreállításhoz használt csapot. Itt a 18 -as csapot használjuk.

Ezután USB feltöltő programot használunk az Ameba -hoz. Kattintson az Eszközök -> Portok lehetőségre, ellenőrizze a használni kívánt soros portot :

Kérjük, vegye figyelembe, hogy az Arduino IDE egy portot használ a feltöltési programhoz és a kimeneti naplóhoz. Annak elkerülése érdekében, hogy az OTA használatakor a napló ne kerüljön kimenetre, a soros monitor helyett más soros portterminált (pl. Tera term vagy gitt) használunk a naplóüzenet megtekintésére.

Ezután kattintson a feltöltés gombra, és nyomja meg a visszaállítás gombot.

A naplóüzenetben:

1. A „===== Enter Image 1 ====” és az „Enter Image 2 ====” között megtalálható a „Flash Image 2: Addr 0xb000”. Ez azt jelenti, hogy az Ameba úgy dönt, hogy az alapértelmezett 2. képről indul 0xb000 -en.

2. Az „Enter Image 2 ====” után megtalálható az „This is version 1”. Ezt a naplóüzenetet adjuk hozzá a vázlathoz.

3. Miután az Ameba csatlakozott az AP -hez, és megkapta a „192.168.1.238” IP -címet, aktiválja az mDNS -t, és várja az ügyfelet.

Ezt követően módosítjuk a "MY_VERSION_NUMBER" értéket 2 -re.

Kattintson az "Eszközök" -> "Port" gombra, és megjelenik a "Hálózati portok" listája. Keresse meg a "MyAmeba a 192.168.1.238 (Ameba RTL8195A)" lehetőséget, a MyAmeba az mDNS eszköz neve, amelyet a mintakódban állítottunk be, és a "192.168.1.238" az Ameba IP címe.

Ha nem találja az Ameba hálózati portját, erősítse meg:

- a számítógép és az Ameba ugyanabban a helyi hálózatban vannak -e?

- próbálja meg újraindítani az Arduino IDE -t.

- ellenőrizze a naplóüzenetet a Serial Monitorban, hogy az Ameba sikeresen csatlakozott -e az AP -hez.

Ezután kattintson a feltöltés gombra. A program ezúttal TCP -n keresztül kerül feltöltésre. A naplóterminálban láthatja az ügyfélkapcsolat adatait.

Ha az OTA -kép letöltése sikeres, az Ameba újraindul, és a következő napló megjelenik a naplóterminálban.

- Az „===== Enter Image 1 ====” és az „Enter Image 2 ====” között megjelenik a „Flash Image 2: Addr 0x80000” naplóüzenet. Ez azt jelenti, hogy az Ameba úgy dönt, hogy 0x80000 -as OTA Image -ről indul.

- Az „Enter Image 2 ====” után a „This is version 2” napló az üzenet, amelyet a vázlathoz adunk hozzá.

Ha vissza szeretné állítani az előző képet, miután az OTA -képet letöltötte az Ameba -hoz, kérjük, csatlakoztassa a vázlatban beállított helyreállító csapot (azaz a 18. tüskét) a HIGH (3.3V) -hoz, és nyomja meg a reset gombot.

Ezután az alapértelmezett 2. kép jelenik meg indításkor. Ne feledje, hogy a letöltött OTA -kép nem törlődik, miután a helyreállítási tűt leválasztotta a HIGH -ról, az OTA -kép végrehajtásra kerül.

A fejlesztési folyamatot az OTA segítségével foglaljuk össze a következő ábrán.

Ajánlott: