INHOUDSOPGAWE:

Arduino Over the Air (OTA) programmeer - Ameba Arduino: 4 stappe
Arduino Over the Air (OTA) programmeer - Ameba Arduino: 4 stappe

Video: Arduino Over the Air (OTA) programmeer - Ameba Arduino: 4 stappe

Video: Arduino Over the Air (OTA) programmeer - Ameba Arduino: 4 stappe
Video: Telnet объяснил 2024, November
Anonim
Arduino Over the Air (OTA) programmeer - Ameba Arduino
Arduino Over the Air (OTA) programmeer - Ameba Arduino

Daar is baie Wi-Fi-mikrobeheerder op die mark, baie vervaardigers geniet dit om hul Wi-Fi-mikrokontroleerder te programmeer met behulp van Arduino IDE. Een van die coolste funksies wat 'n Wi-Fi-mikrobeheerder kan bied, word egter meestal oor die hoof gesien, dit is om u kode op afstand en draadloos op te laai met behulp van OTA (Over-The-Air) -funksie.

In hierdie instruksies sal ek u wys hoe u OTA op u Wi-Fi-mikrobeheerder kan instel met behulp van alomteenwoordige Arduino IDE op Ameba Arduino Wi-Fi-mikrobeheerder!

Voorrade

Ameba Arduino x 1

Stap 1: OTA

OTA
OTA

OTA (Over-The-Air) verwys na die aanlyn-opgraderingsmeganisme via internet.

Arduino IDE bied die OTA -funksie aan, wat die werkstroom in die figuur hierbo volg.

(i) Arduino IDE soek via mDNS na toestelle met Arduino IDEOTA -diens in die plaaslike netwerk.

(ii) Aangesien mDNS -diens op Ameba loop, reageer Ameba op die mDNS -soektog en maak die spesifieke TCP -poort oop vir verbinding.

(iii) Gebruiker ontwikkel program in Arduino IDE. As u klaar is, kies die netwerkpoort.

(iv) Klik oplaai. Dan stuur Arduino IDE die OTA -beeld na Ameba via TCP, Ameba stoor die prentjie na 'n spesifieke adres en stel die opstartopsie in om die volgende keer vanaf hierdie prent te begin.

Die werkstroom bestaan uit drie dele: mDNS, TCP en OTA beeldproses. Besonderhede rakende mDNS word beskryf in die mDNS -tutoriaal. TCP -sokprogrammering word gebruik vir die oordrag van beeld en word reeds in die OTA API verskaf.

In die volgende afdeling sal ons bespreek hoe om die OTA -beeld te verwerk, en 'n paar basiese kennis oor Ameba -geheue -uitleg en opstartvloei bekend te stel.

Stap 2: Ameba Flash Memory Layout

Ameba Flash Memory -uitleg
Ameba Flash Memory -uitleg

Die flitsgeheue -grootte van Ameba RTL8195A is 2MB, wissel van 0x00000000 tot 0x00200000. Die flitsgeheue -grootte van Ameba RTL8710 is egter 1MB. Om die gebruik van verskillende borde te pas, neem ons aan dat die flitsgeheue -uitleg 1 MB is.

Soos in die figuur hierbo getoon, beslaan Ameba -program drie dele van die flitsgeheue:

- Bootbeeld:

Dit wil sê, die selflaaiprogram. As Ameba opstart, plaas dit die opstartbeeld in die geheue en word dit geïnitialiseer. Verder bepaal dit waarheen u moet gaan na die selflaaiprogram. Bootloader kyk na die OTA -adres en herstelpen in die stelseldatagebied en bepaal watter prent daarna uitgevoer sal word. Aan die einde van die selflaaiprogram plaas dit die beeld in die geheue en gaan dit voort om dit uit te voer.

- Standaardbeeld 2:

Die ontwikkelaarkode word in hierdie deel geplaas, die adres begin vanaf 0x0000B000. Die eerste 16 grepe is die beeldopskrif, 0x0000B008 ~ 0x0000B00F bestaan uit die handtekening, wat gebruik word om te verifieer of die beeld geldig is. Die handtekeningveld het twee geldige waardes om die nuwe beeld van die ou beeld te onderskei.

- OTA Beeld:

Die data in hierdie deel is ook ontwikkelaarkode. Hierdie deel van die geheue begin standaard by 0x00080000 (kan verander word). Die belangrikste verskille tussen OTA -beeld en standaardbeeld 2 is die flitsgeheue -adres en die handtekeningwaarde.

Afgesien van die kode, is daar 'n paar datablokke:

- Stelseldata:

Stelseldatablok begin vanaf 0x00009000. Daar is twee OTA-verwante data:

1. OTA -adres: data van 4 grepe vanaf 0x00009000. Dit vertel die OTA Image -adres. As die OTA -adreswaarde ongeldig is (dws 0xFFFFFFFF), kan die OTA -prent in die flitsgeheue nie korrek gelaai word nie.

2. Herstelpenne: data van 4 grepe vanaf 0x00009008, die herstelpennetjie word gebruik om te bepaal watter beeld (standaardprent 2 of OTA -prent) moet uitgevoer word wanneer beide beeld geldig is. As die waarde van die herstelspeld ongeldig is (0xFFFFFFFF), word die nuwe prent standaard uitgevoer.

Stelseldata sal verwyder word as ons die program via DAP na Ameba oplaai. Dit wil sê, die OTA -adres sal verwyder word en Ameba sal bepaal dat daar geen OTA -beeld is nie.

- Kalibrasie data: Die perifere kalibrasie data word in hierdie blok geplaas. Gewoonlik moet hierdie data nie verwyder word nie.

Stap 3: opstartvloei

Bootstroom
Bootstroom

Uit die prent hierbo, Ons bespreek die volgende scenario's: (i) OTA word nie gebruik nie, gebruik DAP om die program op te laai:

In hierdie situasie kontroleer die laai -laaier die handtekening van die standaardbeeld 2 en die OTA -adres. Aangesien die OTA -adres verwyder is, word die standaardprent 2 gekies om uit te voer.

(ii) OTA -beeld word na Ameba oorgedra, OTA -adres is korrek ingestel, herstelpen is nie ingestel nie:

Ameba het 'n opgedateerde beeld via OTA ontvang, die handtekening van standaardbeeld 2 sou op ou handtekening gestel word.

Bootloader kontroleer die handtekening van die standaardbeeld 2 en OTA -adres. Die OTA -adres bevat 'n geldige OTA -prent. Aangesien die herstelpen nie ingestel is nie, kies dit die nuwe beeld (dit wil sê OTA -beeld) wat uitgevoer moet word.

(iii) OTA -beeld word na Ameba oorgedra, OTA -adres is korrek ingestel, herstelpen is gestel:

Ameba het 'n opgedateerde beeld via OTA ontvang, die handtekening van standaardbeeld 2 sou op ou handtekening gestel word.

Bootloader kontroleer die handtekening van die standaardbeeld 2 en OTA -adres. Die OTA -adres bevat 'n geldige OTA -prent. Kontroleer dan die waarde van die herstelpen. As die herstelpen aan LOW gekoppel is, word die nuwe beeld (dws OTA -beeld) uitgevoer. As die herstelpen aan HIGH gekoppel is, word die ou prentjie (dws standaardbeeld 2) uitgevoer.

Stap 4: Voorbeeld

Voorbeeld
Voorbeeld
Voorbeeld
Voorbeeld
Voorbeeld
Voorbeeld
Voorbeeld
Voorbeeld

Om die OTA -funksie te gebruik, moet u die DAP -firmware opgradeer na weergawe> 0.7 (v0.7 is nie ingesluit nie). Die standaard DAP -firmware in die fabriek is weergawe 0.7. Volg die instruksies om die DAP-firmware op te gradeer:

Maak die voorbeeld oop: "File" -> "Voorbeelde" -> "AmebaOTA" -> "ota_basic"

Vul die ssid- en wagwoordinligting in die voorbeeldkode vir netwerkverbinding in.

Daar is 'n paar parameters wat verband hou met OTA:

§ MY_VERSION_NUMBER: In die eerste weergawe moet ons die OTA -adres en die herstelpen instel. Aangesien hierdie keer dat ons via USB die eerste weergawe is, hoef ons nie hierdie waarde te verander nie.

§ OTA_PORT : Arduino IDE sal Ameba via mDNS vind. Ameba sal vir Arduino IDE vertel dat dit TCP -poort 5000 oopmaak om op OTA -beeld te wag.

§ RECOVERY_PIN: Stel die pen wat vir herstel gebruik word, in. Ons gebruik pen 18 hier.

Dan gebruik ons 'n USB -oplaai -program na Ameba. Klik op Tools -> Ports, kyk na die seriële poort om te gebruik:

Let daarop dat Arduino IDE een poort gebruik vir die oplaai van program en outputlog. Om die situasie te vermy dat die logboek nie uitgevoer kan word as ons OTA gebruik nie, gebruik ons 'n ander seriële poortterminal (byvoorbeeld Tera -term of stopverf) in plaas van 'n seriële monitor om na die logboodskap te kyk.

Klik dan op oplaai en druk op die herstelknoppie.

In die logboodskap:

1. Tussen “===== Tik prent 1 ====” en “Tik prent 2 ====”, kan u “Flash Image 2: Addr 0xb000” vind. Dit beteken dat Ameba besluit om vanaf standaardbeeld 2 by 0xb000 op te laai.

2. Na “Enter Image 2 ====”, kan u “This is version 1” vind. Dit is die logboodskap wat ons in die skets byvoeg.

3. Nadat Ameba aan AP gekoppel is en die IP -adres “192.168.1.238” gekry het, aktiveer dit mDNS en wag vir die kliënt.

Vervolgens verander ons "MY_VERSION_NUMBER" na 2.

Klik op "Tools" -> "Poort", u kan 'n lys met "netwerkpoort" sien. Soek "MyAmeba op 192.168.1.238 (Ameba RTL8195A)", MyAmeba is die mDNS -toestelnaam wat ons in voorbeeldkode stel, en "192.168.1.238" is die IP van Ameba.

As u nie die netwerkpoort van Ameba kan vind nie, bevestig asseblief:

- of u rekenaar en Ameba in dieselfde plaaslike netwerk is?

- probeer om Arduino IDE weer te begin.

- kyk na die logboodskap in Serial Monitor om te sien of Ameba suksesvol aan AP gekoppel is.

Klik dan op oplaai. Hierdie keer sal die program via TCP opgelaai word. In die log -terminale kan u inligting oor die kliëntverbinding sien.

As die OTA -prent suksesvol afgelaai is, sal Ameba herlaai en die volgende log sal in die logboekterminaal verskyn.

- Tussen "===== Tik prent 1 ====" en "Tik prent 2 ====", kan u 'n logboodskap "Flash Image 2: Addr 0x80000" sien. Dit beteken dat Ameba besluit om vanaf OTA Image te begin by 0x80000.

- Na "Tik prent 2 ====", is die logboek "Dit is weergawe 2" die boodskap wat ons in die skets byvoeg.

Om na die vorige prent te herstel nadat die OTA -prent na Ameba afgelaai is, koppel die herstelpen wat ons in die skets (dws pen 18) met HIGH (3.3V) gestel het, en druk reset.

Dan word standaardbeeld 2 gekies tydens die oplaai. Let daarop dat die afgelaaide OTA -prent nie uitgevee word nie, sodra die herstelpen van HIGH ontkoppel is, word die OTA -beeld uitgevoer.

Ons gee 'n opsomming van die ontwikkelingsvloei met behulp van OTA in die volgende figuur.

Aanbeveel: