Turinys:

„Arduino over the Air“(OTA) programavimas - Ameba Arduino: 4 žingsniai
„Arduino over the Air“(OTA) programavimas - Ameba Arduino: 4 žingsniai

Video: „Arduino over the Air“(OTA) programavimas - Ameba Arduino: 4 žingsniai

Video: „Arduino over the Air“(OTA) programavimas - Ameba Arduino: 4 žingsniai
Video: How to Perform the OTA Upload to an ESP32 Board Using Arduino Cloud 2024, Gruodis
Anonim
„Arduino over the Air“(OTA) programavimas - Ameba Arduino
„Arduino over the Air“(OTA) programavimas - Ameba Arduino

Rinkoje yra daug „Wi-Fi“mikrovaldiklių, daugeliui gamintojų patinka programuoti „Wi-Fi“mikrovaldiklį naudojant „Arduino IDE“. Tačiau viena iš nuostabiausių „Wi-Fi“mikrovaldiklio siūlomų funkcijų yra linkusi nepastebėti, tai yra programavimas ir kodo įkėlimas nuotoliniu būdu ir belaidžiu būdu naudojant OTA (belaidžio ryšio) funkciją.

Šioje instrukcijoje aš jums parodysiu, kaip nustatyti „OTA“„Wi-Fi“mikrovaldiklyje naudojant visur esantį „Arduino IDE“naudojant „Ameba Arduino Wi-Fi“mikrovaldiklį!

Prekės

Ameba Arduino x 1

1 žingsnis: OTA

OTA
OTA

OTA (Over-The-Air) reiškia internetinį atnaujinimo mechanizmą internetu.

„Arduino IDE“siūlo OTA funkciją, kuri seka aukščiau esančio paveikslo darbo eigą.

i) „Arduino IDE“per mDNS ieško įrenginių su „Arduino IDEOTA“paslauga vietiniame tinkle.

(ii) Kadangi „mDNS“paslauga veikia „Ameba“, „Ameba“reaguoja į „mDNS“paiešką ir atidaro konkretų TCP prievadą prisijungimui.

(iii) Vartotojas kuria programą „Arduino IDE“. Baigę pasirinkite tinklo prievadą.

(iv) Spustelėkite įkelti. Tada „Arduino IDE“siunčia OTA atvaizdą „Ameba“per TCP, „Ameba“išsaugo vaizdą konkrečiu adresu ir nustato įkrovos parinktį, kad kitą kartą būtų paleista iš šio vaizdo.

Darbo eiga susideda iš trijų dalių: mDNS, TCP ir OTA vaizdo proceso. Išsami informacija, susijusi su mDNS, aprašyta mDNS vadovėlyje. TCP lizdo programavimas naudojamas perduodant vaizdą ir jau pateiktas OTA API.

Kitame skyriuje aptarsime, kaip apdoroti OTA atvaizdą, ir pristatysime keletą pagrindinių žinių apie „Ameba“atminties išdėstymą ir įkrovos srautą.

2 žingsnis: „Ameba Flash“atminties išdėstymas

„Ameba Flash“atminties išdėstymas
„Ameba Flash“atminties išdėstymas

„Ameba RTL8195A“atminties dydis yra 2 MB, svyruoja nuo 0x00000000 iki 0x00200000. Tačiau „Ameba RTL8710“„flash“atminties dydis yra 1 MB. Kad būtų galima naudoti skirtingas plokštes, darome prielaidą, kad „flash“atminties išdėstymas yra 1 MB.

Kaip parodyta aukščiau esančiame paveikslėlyje, „Ameba“programa užima tris „flash“atminties dalis:

- įkrovos vaizdas

Tai yra, įkrovos tvarkyklė. Kai „Ameba“įsijungia, jis įkelia įkrovos vaizdą į atmintį ir atlieka inicijavimą. Be to, jis nustato, kur tęsti po įkrovos įkėlimo. „Bootloader“peržiūri OTA adresą ir atkūrimo kaištį sistemos duomenų srityje ir nustato, kuris vaizdas bus vykdomas vėliau. Įkrovos įkėlimo programos pabaigoje vaizdas įdedamas į atmintį ir pradedamas vykdyti.

- Numatytasis vaizdas 2.

Šioje dalyje patalpintas kūrėjo kodas, adresas prasideda nuo 0x0000B000. Pirmieji 16 baitų yra vaizdo antraštė, 0x0000B008 ~ 0x0000B00F apima parašą, kuris naudojamas patikrinti, ar vaizdas yra tinkamas. Parašo lauke yra dvi galiojančios reikšmės, leidžiančios atskirti naują vaizdą nuo seno.

- OTA vaizdas?

Šios dalies duomenys taip pat yra kūrėjo kodas. Pagal numatytuosius nustatymus ši atminties dalis prasideda nuo 0x00080000 (gali būti pakeista). Pagrindiniai skirtumai tarp OTA vaizdo ir numatytojo 2 vaizdo yra „flash“atminties adresas ir parašo reikšmė.

Be kodo, yra keletas duomenų blokų:

- Sistemos duomenys.

Sistemos duomenų blokas prasideda nuo 0x00009000. Yra du su OTA susiję duomenys:

1. OTA adresas : 4 baitų duomenys, pradedant nuo 0x00009000. Jis nurodo OTA vaizdo adresą. Jei OTA adreso vertė neteisinga (t. Y. 0xFFFFFFFF), OTA atvaizdo į „flash“atmintį negalima įkelti tinkamai.

2. Atkūrimo kaištis : 4 baitų duomenys, pradedant nuo 0x00009008, atkūrimo smeigtukas naudojamas nustatyti, kurį vaizdą (numatytasis vaizdas 2 arba OTA vaizdas) vykdyti, kai abu vaizdai galioja. Jei atkūrimo kaiščio vertė neteisinga (t. Y. 0xFFFFFFFF), naujas vaizdas bus vykdomas pagal numatytuosius nustatymus.

Sistemos duomenys bus pašalinti, kai įkelsime programą į „Ameba“per DAP. Tai reiškia, kad OTA adresas bus pašalintas ir „Ameba“nustatys, kad nėra OTA vaizdo.

- Kalibravimo duomenys this Periferiniai kalibravimo duomenys pateikiami šiame bloke. Paprastai šie duomenys neturėtų būti ištrinti.

3 žingsnis: įkrovos srautas

Įkrovos srautas
Įkrovos srautas

Iš aukščiau esančio vaizdo, Aptariame šiuos scenarijus: (i) OTA nenaudojama, programai įkelti naudokite DAP:

Esant tokiai situacijai, įkrovos tvarkyklė patikrina numatytojo vaizdo 2 parašą ir OTA adresą. Kadangi OTA adresas pašalinamas, vykdymui bus pasirinktas numatytasis 2 vaizdas.

(ii) OTA vaizdas perkeliamas į „Ameba“, OTA adresas nustatytas teisingai, atkūrimo kaištis nenustatytas.

„Ameba“gavo atnaujintą vaizdą per OTA, numatytojo 2 vaizdo parašas bus nustatytas kaip senas parašas.

„Bootloader“patikrina numatytojo 2 vaizdo parašą ir OTA adresą. Jis ras, kad OTA adrese yra galiojantis OTA vaizdas. Kadangi atkūrimo kaištis nenustatytas, jis pasirenka naują vaizdą (t. Y. OTA atvaizdą), kurį vykdyti.

(iii) OTA vaizdas perkeliamas į „Ameba“, OTA adresas nustatytas teisingai, nustatytas atkūrimo kaištis :

„Ameba“gavo atnaujintą vaizdą per OTA, numatytojo 2 vaizdo parašas bus nustatytas kaip senas parašas.

„Bootloader“patikrina numatytojo 2 vaizdo parašą ir OTA adresą. Jis ras, kad OTA adrese yra galiojantis OTA vaizdas. Tada patikrinkite atkūrimo kaiščio vertę. Jei atkūrimo kaištis prijungtas prie LOW, naujas vaizdas (t. Y. OTA vaizdas) bus vykdomas. Jei atkūrimo kaištis prijungtas prie HIGH, bus vykdomas senas vaizdas (t. Y. Numatytasis 2 vaizdas).

4 žingsnis: pavyzdys

Pavyzdys
Pavyzdys
Pavyzdys
Pavyzdys
Pavyzdys
Pavyzdys
Pavyzdys
Pavyzdys

Jei norite naudoti OTA funkciją, atnaujinkite DAP programinę įrangą į> 0.7 versiją (v0.7 neįtraukta). Gamykloje numatytoji DAP programinė įranga yra 0.7 versija. Vadovaukitės instrukcija atnaujinti DAP programinę įrangą:

Atidarykite pavyzdį: „Failas“-> „Pavyzdžiai“-> „AmebaOTA“-> „ota_basic“

Tinklo ryšio pavyzdiniame kode įveskite ssid ir slaptažodžio informaciją.

Yra keletas parametrų, susijusių su OTA:

§ MY_VERSION_NUMBER : Pirmoje versijoje turime nustatyti OTA adresą ir atkūrimo PIN kodą. Kadangi šį kartą įkėlėme per USB, tai yra pirmoji versija, mums nereikia šios vertės keisti.

§ OTA_PORT : „Arduino IDE“suras „Ameba“per mDNS. „Ameba“pasakys „Arduino IDE“, kad atidaro TCP prievadą 5000 ir laukia OTA vaizdo.

§ RECOVERY_PIN : Konfigūruokite atkūrimui naudojamą kaištį. Čia mes naudojame 18 kaištį.

Tada mes naudojame USB įkėlimo programą į „Ameba“. Spustelėkite Įrankiai -> Prievadai, patikrinkite, kokį serijinį prievadą naudoti :

Atminkite, kad „Arduino IDE“naudoja vieną prievadą įkėlimo programai ir išvesties žurnalui. Kad išvengtume situacijos, kad žurnalo negalima išvesti, kai naudojame OTA, mes naudojame kitą nuoseklaus prievado terminalą (pvz., „Tera term“arba „glaistas“), o ne serijinį monitorių, kad stebėtume žurnalo pranešimą.

Tada spustelėkite įkelti ir paspauskite atstatymo mygtuką.

Žurnalo pranešime:

1. Tarp „===== Enter Image 1 ====“ir „Enter Image 2 ====“rasite „Flash Image 2: Addr 0xb000“. Tai reiškia, kad „Ameba“nusprendžia paleisti iš numatytojo 2 vaizdo esant 0xb000.

2. Po „Enter Image 2 ====“galite rasti „This is version 1“. Tai žurnalo pranešimas, kurį pridedame prie eskizo.

3. Kai „Ameba“prisijungia prie AP ir gauna IP adresą „192.168.1.238“, ji suaktyvina mDNS ir laukia kliento.

Tada pakeisime „MY_VERSION_NUMBER“į 2.

Spustelėkite „Įrankiai“-> „Uostas“, galite pamatyti „Tinklo prievadų“sąrašą. Raskite „MyAmeba 192.168.1.238 (Ameba RTL8195A)“, „MyAmeba“yra mDNS įrenginio pavadinimas, kurį nustatėme pavyzdiniame kode, o „192.168.1.238“yra „Ameba“IP adresas.

Jei nerandate „Ameba“tinklo prievado, patvirtinkite:

- ar jūsų kompiuteris ir „Ameba“yra tame pačiame vietiniame tinkle?

- pabandykite iš naujo paleisti „Arduino IDE“.

- patikrinkite žurnalo pranešimą „Serial Monitor“, kad pamatytumėte, ar „Ameba“sėkmingai prijungtas prie AP.

Tada spustelėkite įkelti. Šį kartą programa bus įkelta per TCP. Žurnalo terminale galite matyti kliento prisijungimo informaciją.

Kai OTA vaizdas bus sėkmingai atsisiųstas, „Ameba“bus paleista iš naujo ir sekantis žurnalas bus rodomas žurnalo terminale.

- Tarp „===== Enter Image 1 ====“ir „Enter Image 2 ====“galite matyti žurnalo pranešimą „Flash Image 2: Addr 0x80000“. Tai reiškia, kad „Ameba“nusprendžia paleisti iš OTA vaizdo esant 0x80000.

- Po „Enter Image 2 ====“, žurnalas „This is version 2“yra pranešimas, kurį pridedame prie eskizo.

Jei norite atkurti ankstesnį vaizdą po to, kai OTA vaizdas yra atsisiųstas į „Ameba“, prijunkite eskizo nustatytą atkūrimo kaištį (t. Y. 18 kaištį) prie HIGH (3.3V) ir paspauskite reset.

Tada paleidžiant bus pasirinktas numatytasis 2 vaizdas. Atminkite, kad atsisiųstas OTA vaizdas nėra ištrinamas, kai atkūrimo kaištis bus atjungtas nuo HIGH, OTA vaizdas bus vykdomas.

Toliau pateiktame paveikslėlyje apibendriname kūrimo srautą naudojant OTA.

Rekomenduojamas: