Indholdsfortegnelse:

Programmering af Arduino Over the Air (OTA) - Ameba Arduino: 4 trin
Programmering af Arduino Over the Air (OTA) - Ameba Arduino: 4 trin

Video: Programmering af Arduino Over the Air (OTA) - Ameba Arduino: 4 trin

Video: Programmering af Arduino Over the Air (OTA) - Ameba Arduino: 4 trin
Video: Telnet объяснил 2024, December
Anonim
Programmering af Arduino Over the Air (OTA) - Ameba Arduino
Programmering af Arduino Over the Air (OTA) - Ameba Arduino

Der er mange Wi-Fi mikrokontroller derude på markedet, mange producenter nyder at programmere deres Wi-Fi mikrokontroller ved hjælp af Arduino IDE. En af de sejeste funktioner, som en Wi-Fi-mikrokontroller har at tilbyde, er dog tilbøjelig til at blive overset, det vil sige at programmere og uploade din kode eksternt og trådløst ved hjælp af OTA (Over-The-Air) -funktion.

I denne Instructable vil jeg vise dig, hvordan du konfigurerer OTA på din Wi-Fi-mikrokontroller ved hjælp af allestedsnærværende Arduino IDE på Ameba Arduino Wi-Fi-mikrokontroller!

Forbrugsvarer

Ameba Arduino x 1

Trin 1: OTA

OTA
OTA

OTA (Over-The-Air) refererer til online opgraderingsmekanismen via internettet.

Arduino IDE tilbyder OTA -funktion, som følger arbejdsgangen i figuren ovenfor.

(i) Arduino IDE søger via mDNS efter enheder med Arduino IDEOTA -service i det lokale netværk.

(ii) Da mDNS -service kører på Ameba, reagerer Ameba på mDNS -søgningen og åbner den specifikke TCP -port til forbindelse.

(iii) Bruger udvikler program i Arduino IDE. Når du er færdig, skal du vælge netværksport.

(iv) Klik på upload. Derefter sender Arduino IDE OTA -billedet til Ameba via TCP, Ameba gemmer billedet til en bestemt adresse og indstiller opstartsmulighed til at starte fra dette billede næste gang.

Arbejdsgangen består af tre dele: mDNS, TCP og OTA -billedproces. Detaljer relateret til mDNS er beskrevet i mDNS -selvstudiet. TCP -sokkelprogrammering bruges til at overføre billeder og findes allerede i OTA API.

I det næste afsnit vil vi diskutere, hvordan man behandler OTA -billedet, og introducere noget grundlæggende viden om Ameba flash -hukommelseslayout og boot -flow.

Trin 2: Ameba Flash -hukommelseslayout

Ameba Flash -hukommelseslayout
Ameba Flash -hukommelseslayout

Flashhukommelsesstørrelsen på Ameba RTL8195A er 2MB, spænder fra 0x00000000 til 0x00200000. Flashstørrelsen på Ameba RTL8710 er dog 1 MB. For at passe til brugen af forskellige tavler antager vi, at flashhukommelseslayoutet er 1MB.

Som vist i figuren ovenfor optager Ameba -programmet tre dele af flashhukommelsen:

- Boot billede:

Det vil sige bootloaderen. Når Ameba starter op, placerer det boot -billedet i hukommelsen og udfører initialisering. Desuden bestemmer den, hvor den skal fortsætte efter bootloaderen. Bootloader ser på OTA -adressen og gendannelsesnålen i systemdataområdet og bestemmer, hvilket billede der skal udføres bagefter. I slutningen af bootloaderen placerer billedet i hukommelsen og fortsætter med at udføre det.

- Standardbillede 2:

Udviklerkoden er placeret i denne del, adressen starter fra 0x0000B000. De første 16 bytes er billedhovedet, 0x0000B008 ~ 0x0000B00F omfatter signaturen, som bruges til at kontrollere, om billedet er gyldigt. Signaturfeltet har to gyldige værdier for at skelne det nye billede fra det gamle billede.

- OTA -billede:

Dataene i denne del er også udviklerkode. Som standard starter denne del af hukommelsen fra 0x00080000 (kan ændres). De største forskelle mellem OTA -billede og standardbillede 2 er flashhukommelsesadressen og signaturværdien.

Bortset fra koden er der nogle datablokke:

- Systemdata:

Systemdatablok starter fra 0x00009000. Der er to OTA-relaterede data:

1. OTA -adresse: 4 bytes data fra 0x00009000. Det fortæller OTA Image -adressen. Hvis OTA -adresseværdien er ugyldig (dvs. 0xFFFFFFFF), kan OTA -billedet i flashhukommelsen ikke indlæses korrekt.

2. Gendannelsesnål: 4 bytes data fra 0x00009008, Gendannelsesnålen bruges til at bestemme hvilket billede (standardbillede 2 eller OTA -billede), der skal udføres, når begge billeder er gyldige. Hvis værdien til gendannelsesnålen er ugyldig (dvs. 0xFFFFFFFF), udføres det nye billede som standard.

Systemdata vil blive fjernet, når vi uploader program til Ameba via DAP. Det vil sige, at OTA -adressen vil blive fjernet, og Ameba vil bestemme, at der ikke er noget OTA -billede.

- Kalibreringsdata: De perifere kalibreringsdata er placeret i denne blok. Normalt bør disse data ikke slettes.

Trin 3: Boot Flow

Boot Flow
Boot Flow

Fra billedet ovenfor, Vi diskuterer følgende scenarier: (i) OTA bruges ikke, brug DAP til at uploade program:

I denne situation kontrollerer bootloader underskriften på standardbillede 2 og OTA -adressen. Da OTA -adressen er fjernet, vælges standardbillede 2 til udførelse.

(ii) OTA -billede overføres til Ameba, OTA -adresse er indstillet korrekt, genoprettelsesnål er ikke indstillet :

Ameba har modtaget opdateret billede via OTA, underskriften på standardbillede 2 ville blive sat til gammel signatur.

Bootloader kontrollerer signaturen af standardbillede 2 og OTA -adresse. Den finder, at OTA -adressen indeholder et gyldigt OTA -billede. Da genoprettelsesnålen ikke er indstillet, vælger den det nye billede (dvs. OTA -billede), der skal udføres.

(iii) OTA -billede overføres til Ameba, OTA -adresse er indstillet korrekt, gendannelsesnål er indstillet :

Ameba har modtaget opdateret billede via OTA, underskriften på standardbillede 2 ville blive sat til gammel signatur.

Bootloader kontrollerer signaturen af standardbillede 2 og OTA -adresse. Den finder, at OTA -adressen indeholder et gyldigt OTA -billede. Kontroller derefter gendannelsesnålens værdi. Hvis genoprettelsesnål er forbundet til LOW, vil det nye billede (dvs. OTA -billede) blive eksekveret. Hvis genoprettelsesnål er forbundet til HIGH, vil det gamle billede (dvs. standardbillede 2) blive eksekveret.

Trin 4: Eksempel

Eksempel
Eksempel
Eksempel
Eksempel
Eksempel
Eksempel
Eksempel
Eksempel

For at bruge OTA -funktionen skal du opgradere DAP -firmware til version> 0.7 (v0.7 er ikke inkluderet). Fabriksstandard DAP -firmware er version 0.7. Følg venligst instruktionen for at opgradere DAP-firmware:

Åbn eksemplet: "Fil" -> "Eksempler" -> "AmebaOTA" -> "ota_basic"

Udfyld ssid- og adgangskodeoplysningerne i prøvekoden til netværksforbindelse.

Der er nogle parametre relateret til OTA:

§ MY_VERSION_NUMBER : I første version skal vi indstille OTA -adresse og gendannelsesnål. Da denne gang vi uploader via USB er den første version, behøver vi ikke at ændre denne værdi.

§ OTA_PORT: Arduino IDE finder Ameba via mDNS. Ameba vil fortælle Arduino IDE, at den åbner TCP -port 5000 for at vente på OTA -billede.

§ RECOVERY_PIN: Konfigurer den pin, der bruges til gendannelse. Vi bruger pin 18 her.

Derefter bruger vi USB -uploadprogram til Ameba. Klik på Værktøjer -> Porte, tjek den serielle port for at bruge:

Bemærk, at Arduino IDE bruger en port til uploadprogram og outputlog. For at undgå den situation, at loggen ikke kan udsendes, når vi bruger OTA, bruger vi en anden seriel portterminal (f.eks. Tera -term eller kit) i stedet for seriel skærm til at se logbeskeder.

Klik derefter på upload, og tryk på nulstillingsknappen.

I logbeskeden:

1. Mellem “===== Indtast billede 1 ====” og “Indtast billede 2 ====” kan du finde “Flash Image 2: Addr 0xb000”. Det betyder, at Ameba beslutter at starte fra standardbillede 2 på 0xb000.

2. Efter “Indtast billede 2 ====” kan du finde “Dette er version 1”. Dette er logbeskeden, vi tilføjer i skitse.

3. Efter at Ameba er forbundet til AP og får IP -adressen “192.168.1.238”, aktiverer den mDNS og venter på klienten.

Dernæst ændrer vi "MY_VERSION_NUMBER" til 2.

Klik på "Værktøjer" -> "Port", du kan se en liste over "Netværksporte". Find "MyAmeba på 192.168.1.238 (Ameba RTL8195A)", MyAmeba er det mDNS -enhedsnavn, vi angav i prøvekode, og "192.168.1.238" er IP -adressen til Ameba.

Hvis du ikke kan finde Amebas netværksport, skal du bekræfte:

- om din computer og Ameba er i det samme lokale netværk?

- prøv at genstarte Arduino IDE.

- tjek logbesked i Serial Monitor for at se, om Ameba er forbundet til AP med succes.

Klik derefter på upload. Denne gang uploades programmet via TCP. I logterminalen kan du se klientforbindelsesoplysninger.

Når OTA -billedet er downloadet, genstarter Ameba, og den følgende log vil blive vist i logterminalen.

- Mellem "===== Indtast billede 1 ====" og "Indtast billede 2 ====" kan du se en logbesked "Flash Image 2: Addr 0x80000". Det betyder, at Ameba beslutter at starte fra OTA Image på 0x80000.

- Efter "Indtast billede 2 ====" er loggen "Dette er version 2" den meddelelse, vi tilføjer i skitsen.

For at gendanne til forrige billede, efter at OTA -billede er downloadet til Ameba, skal du slutte den gendannelsesnål, vi satte i skitsen (dvs. pin 18) til HIGH (3.3V), og trykke på reset.

Derefter vælges standardbillede 2 ved opstart. Bemærk, at det downloadede OTA -billede ikke slettes, når genoprettelsesnålen er koblet fra HIGH, vil OTA -billedet blive eksekveret.

Vi opsummerer udviklingsstrømmen ved hjælp af OTA i den følgende figur.

Anbefalede: