Satura rādītājs:

Arduino programmēšana pa gaisu (OTA) - Ameba Arduino: 4 soļi
Arduino programmēšana pa gaisu (OTA) - Ameba Arduino: 4 soļi

Video: Arduino programmēšana pa gaisu (OTA) - Ameba Arduino: 4 soļi

Video: Arduino programmēšana pa gaisu (OTA) - Ameba Arduino: 4 soļi
Video: CS50 2013 - Week 9 2024, Novembris
Anonim
Arduino programmēšana pa gaisu (OTA) - Ameba Arduino
Arduino programmēšana pa gaisu (OTA) - Ameba Arduino

Tirgū ir daudz Wi-Fi mikrokontrolleru, daudziem ražotājiem patīk programmēt savu Wi-Fi mikrokontrolleru, izmantojot Arduino IDE. Tomēr viena no stilīgākajām Wi-Fi mikrokontrollera piedāvātajām funkcijām parasti netiek ņemta vērā, tas ir, koda programmēšana un augšupielāde attālināti un bezvadu režīmā, izmantojot OTA (bezvadu) funkciju.

Šajā pamācībā es parādīšu, kā iestatīt OTA savā Wi-Fi mikrokontrollerī, izmantojot visuresošo Arduino IDE Ameba Arduino Wi-Fi mikrokontrollerī!

Piegādes

Ameba Arduino x 1

1. darbība: OTA

OTA
OTA

OTA (Over-The-Air) attiecas uz tiešsaistes jaunināšanas mehānismu, izmantojot internetu.

Arduino IDE piedāvā OTA funkciju, kas seko darbplūsmai iepriekš redzamajā attēlā.

(i) Arduino IDE, izmantojot mDNS, meklē ierīces ar Arduino IDEOTA pakalpojumu vietējā tīklā.

(ii) Tā kā pakalpojumā Ameba darbojas mDNS pakalpojums, Ameba reaģē uz mDNS meklēšanu un savienojumam atver konkrēto TCP portu.

(iii) Lietotājs izstrādā programmu Arduino IDE. Kad esat pabeidzis, izvēlieties tīkla portu.

(iv) Noklikšķiniet uz augšupielādēt. Pēc tam Arduino IDE nosūta OTA attēlu Ameba, izmantojot TCP, Ameba saglabā attēlu uz noteiktu adresi un iestata sāknēšanas opciju, lai nākamreiz sāktu šo attēlu.

Darbplūsma sastāv no trim daļām: mDNS, TCP un OTA attēla process. Sīkāka informācija par mDNS ir aprakstīta mDNS apmācībā. TCP ligzdas programmēšana tiek izmantota attēlu pārsūtīšanai, un tā jau ir nodrošināta OTA API.

Nākamajā sadaļā mēs apspriedīsim, kā apstrādāt OTA attēlu, un iepazīstināsim ar pamatzināšanām par Ameba zibatmiņas izkārtojumu un sāknēšanas plūsmu.

2. darbība: Ameba zibatmiņas izkārtojums

Ameba zibatmiņas izkārtojums
Ameba zibatmiņas izkārtojums

Ameba RTL8195A zibatmiņas izmērs ir 2 MB, svārstās no 0x00000000 līdz 0x00200000. Tomēr Ameba RTL8710 zibatmiņas apjoms ir 1 MB. Lai pielāgotos dažādu dēļu izmantošanai, mēs pieņemam, ka zibatmiņas izkārtojums ir 1 MB.

Kā parādīts attēlā, Ameba programma aizņem trīs zibatmiņas daļas:

- sāknēšanas attēls;

Tas ir, sāknēšanas ielādētājs. Kad Ameba sāk darboties, tas ievieto sāknēšanas attēlu atmiņā un veic inicializāciju. Turklāt tas nosaka, kur rīkoties pēc sāknēšanas ielādētāja. Bootloader aplūko OTA adresi un atkopšanas tapu sistēmas datu apgabalā un nosaka, kurš attēls tiks izpildīts pēc tam. Sāknēšanas ielādētāja beigās tas ievieto attēlu atmiņā un turpina to izpildīt.

- 2. noklusējuma attēls.

Izstrādātāja kods ir ievietots šajā daļā, adrese sākas no 0x0000B000. Pirmie 16 baiti ir attēla galvene, 0x0000B008 ~ 0x0000B00F ietver parakstu, ko izmanto, lai pārbaudītu, vai attēls ir derīgs. Paraksta laukā ir divas derīgas vērtības, lai atšķirtu jauno attēlu no vecā attēla.

- OTA attēls?

Dati šajā daļā ir arī izstrādātāja kods. Pēc noklusējuma šī atmiņas daļa sākas no 0x00080000 (var mainīt). Galvenās atšķirības starp OTA attēlu un noklusējuma attēlu 2 ir zibatmiņas adrese un paraksta vērtība.

Papildus kodam ir daži datu bloki:

- Sistēmas dati?

Sistēmas datu bloks sākas no 0x00009000. Ir divi ar OTA saistīti dati:

1. OTA adrese : 4 baitu dati, sākot no 0x00009000. Tas norāda OTA attēla adresi. Ja OTA adreses vērtība nav derīga (t.i., 0xFFFFFFFF), OTA attēlu zibatmiņā nevar ielādēt pareizi.

2. Atkopšanas tapa : 4 baitu dati, sākot no 0x00009008. Atkopšanas tapa tiek izmantota, lai noteiktu, kurš attēls (noklusējuma 2. attēls vai OTA attēls) jāizpilda, ja abi attēli ir derīgi. Ja atkopšanas tapas vērtība nav derīga (t.i., 0xFFFFFFFF), jaunais attēls tiks izpildīts pēc noklusējuma.

Sistēmas dati tiks noņemti, kad augšupielādēsim programmu Ameba, izmantojot DAP. Tas nozīmē, ka OTA adrese tiks noņemta, un Ameba noteiks, ka nav OTA attēla.

- Kalibrēšanas dati : Šajā blokā tiek ievietoti perifērās kalibrēšanas dati. Parasti šos datus nevajadzētu dzēst.

3. solis: sāknēšanas plūsma

Boot plūsma
Boot plūsma

No attēla iepriekš, Mēs apspriežam šādus scenārijus: (i) OTA netiek izmantots, programmas augšupielādei izmantojiet DAP:

Šādā gadījumā sāknēšanas ielādētājs pārbauda noklusējuma 2. attēla parakstu un OTA adresi. Tā kā OTA adrese ir noņemta, tiks izpildīts noklusējuma 2. attēls.

(ii) OTA attēls tiek pārsūtīts uz Ameba, OTA adrese ir iestatīta pareizi, atkopšanas tapa nav iestatīta.

Ameba ir saņēmusi atjauninātu attēlu, izmantojot OTA, noklusējuma 2. attēla paraksts tiks iestatīts uz veco parakstu.

Bootloader pārbauda noklusējuma 2. attēla parakstu un OTA adresi. Tas atradīs, ka OTA adrese satur derīgu OTA attēlu. Tā kā atkopšanas tapa nav iestatīta, tā izvēlas izpildāmo jauno attēlu (t.i., OTA attēlu).

(iii) OTA attēls tiek pārsūtīts uz Ameba, OTA adrese ir iestatīta pareizi, atkopšanas tapa ir iestatīta.

Ameba ir saņēmusi atjauninātu attēlu, izmantojot OTA, noklusējuma 2. attēla paraksts tiks iestatīts uz veco parakstu.

Bootloader pārbauda noklusējuma 2. attēla parakstu un OTA adresi. Tas atradīs, ka OTA adrese satur derīgu OTA attēlu. Pēc tam pārbaudiet atkopšanas tapas vērtību. Ja atkopšanas tapa ir pievienota LOW, jaunais attēls (ti, OTA attēls) tiks izpildīts. Ja atkopšanas tapa ir pievienota HIGH, tiks izpildīts vecais attēls (t.i., noklusējuma 2. attēls).

4. darbība. Piemērs

Piemērs
Piemērs
Piemērs
Piemērs
Piemērs
Piemērs
Piemērs
Piemērs

Lai izmantotu OTA funkciju, lūdzu, jauniniet DAP programmaparatūru uz versiju> 0.7 (v0.7 nav iekļauta). Rūpnīcas noklusējuma DAP programmaparatūra ir versija 0.7. Lūdzu, izpildiet norādījumus, lai atjauninātu DAP programmaparatūru:

Atveriet piemēru: "Fails" -> "Piemēri" -> "AmebaOTA" -> "ota_basic"

Ievadiet ssid un paroles informāciju tīkla savienojuma parauga kodā.

Ir daži parametri, kas saistīti ar OTA:

§ MY_VERSION_NUMBER first Pirmajā versijā mums ir jāiestata OTA adrese un atkopšanas PIN. Tā kā šoreiz augšupielāde, izmantojot USB, ir pirmā versija, mums šī vērtība nav jāmaina.

§ OTA_PORT : Arduino IDE atradīs Ameba, izmantojot mDNS. Ameba pateiks Arduino IDE, ka tā atver TCP portu 5000, lai gaidītu OTA attēlu.

§ RECOVERY_PIN : Konfigurējiet atkopšanai izmantoto tapu. Šeit mēs izmantojam tapu 18.

Tad mēs izmantojam USB augšupielādes programmu Ameba. Noklikšķiniet uz Rīki -> Porti, pārbaudiet izmantojamo seriālo portu :

Lūdzu, ņemiet vērā, ka Arduino IDE augšupielādes programmai un izvades žurnālam izmanto vienu portu. Lai izvairītos no situācijas, kad žurnālu nevar izvadīt, kad izmantojam OTA, žurnāla ziņojuma skatīšanai mēs izmantojam citu seriālā porta termināli (piemēram, Tera term vai tepe), nevis seriālo monitoru.

Pēc tam noklikšķiniet uz augšupielādes un nospiediet atiestatīšanas pogu.

Žurnāla ziņojumā:

1. Starp “===== Enter Image 1 ====” un “Enter Image 2 ====” var atrast “Flash Image 2: Addr 0xb000”. Tas nozīmē, ka Ameba nolemj palaist no noklusējuma 2. attēla pie 0xb000.

2. Pēc “Enter Image 2 ====” jūs varat atrast “This is version 1”. Šis ir žurnāla ziņojums, ko mēs pievienojam skicē.

3. Pēc tam, kad Ameba ir pievienots AP un iegūst IP adresi “192.168.1.238”, tā aktivizē mDNS un gaida klientu.

Pēc tam mēs mainām “MY_VERSION_NUMBER” uz 2.

Noklikšķiniet uz "Rīki" -> "Ports", jūs varat redzēt "Tīkla portu" sarakstu. Atrodiet “MyAmeba 192.168.1.238 (Ameba RTL8195A)”, MyAmeba ir mDNS ierīces nosaukums, ko mēs iestatījām parauga kodā, un “192.168.1.238” ir Ameba IP.

Ja nevarat atrast Ameba tīkla portu, lūdzu, apstipriniet:

- vai jūsu dators un Ameba atrodas vienā vietējā tīklā?

- mēģiniet restartēt Arduino IDE.

- pārbaudiet žurnāla ziņojumu Serial Monitor, lai redzētu, vai Ameba ir veiksmīgi savienots ar AP.

Pēc tam noklikšķiniet uz augšupielādēt. Šoreiz programma tiks augšupielādēta, izmantojot TCP. Žurnāla terminālī var redzēt informāciju par klienta savienojumu.

Kad OTA attēls ir veiksmīgi lejupielādēts, Ameba tiks atsāknēts un žurnāls tiks parādīts žurnālā.

- Starp “===== Enter Image 1 ====” un “Enter Image 2 ====” jūs varat redzēt žurnāla ziņojumu “Flash Image 2: Addr 0x80000”. Tas nozīmē, ka Ameba nosaka sāknēšanu no OTA attēla ar 0x80000.

- Pēc “Enter Image 2 ====” žurnāls “This is version 2” ir ziņojums, ko mēs pievienojam skicē.

Lai atjaunotu iepriekšējo attēlu pēc OTA attēla lejupielādes Ameba, lūdzu, pievienojiet skicē noteikto atkopšanas tapu (t.i., 18. tapu) HIGH (3.3V) un nospiediet atiestatīšanu.

Pēc tam sāknēšanas laikā tiks izvēlēts noklusējuma attēls 2. Ņemiet vērā, ka lejupielādētais OTA attēls netiek izdzēsts, tiklīdz atkopšanas tapa ir atvienota no HIGH, OTA attēls tiks izpildīts.

Mēs apkopojam attīstības plūsmu, izmantojot OTA, nākamajā attēlā.

Ieteicams: