Innholdsfortegnelse:

Programmering av Arduino Over the Air (OTA) - Ameba Arduino: 4 trinn
Programmering av Arduino Over the Air (OTA) - Ameba Arduino: 4 trinn

Video: Programmering av Arduino Over the Air (OTA) - Ameba Arduino: 4 trinn

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

Det er mange Wi-Fi-mikrokontroller der ute på markedet, mange produsenter liker å programmere sin Wi-Fi-mikrokontroller ved hjelp av Arduino IDE. En av de kuleste funksjonene som en Wi-Fi-mikrokontroller har å tilby har en tendens til å bli oversett, det vil si å programmere og laste opp koden eksternt og trådløst ved hjelp av OTA (Over-The-Air) -funksjonen.

I denne instruksen vil jeg vise deg hvordan du konfigurerer OTA på din Wi-Fi-mikrokontroller ved hjelp av allestedsnærværende Arduino IDE på Ameba Arduino Wi-Fi-mikrokontroller!

Rekvisita

Ameba Arduino x 1

Trinn 1: OTA

OTA
OTA

OTA (Over-The-Air) refererer til den elektroniske oppgraderingsmekanismen via Internett.

Arduino IDE tilbyr OTA -funksjon, som følger arbeidsflyten i figuren ovenfor.

(i) Arduino IDE søker via mDNS etter enheter med Arduino IDEOTA -tjeneste i det lokale nettverket.

(ii) Siden mDNS -tjenesten kjører på Ameba, svarer Ameba på mDNS -søket og åpner den spesifikke TCP -porten for tilkobling.

(iii) Bruker utvikler program i Arduino IDE. Når du er ferdig, velger du nettverksport.

(iv) Klikk på opplasting. Deretter sender Arduino IDE OTA -bildet til Ameba gjennom TCP, Ameba lagrer bildet til en bestemt adresse og angir oppstartsalternativ for å starte opp fra dette bildet neste gang.

Arbeidsflyten består av tre deler: mDNS, TCP og OTA bildeprosess. Detaljer relatert til mDNS er beskrevet i mDNS -opplæringen. TCP -sokkelprogrammering brukes til å overføre bilder og finnes allerede i OTA API.

I den neste delen vil vi diskutere hvordan du behandler OTA -bildet, og introdusere litt grunnleggende kunnskap om Ameba flash -minneoppsett og oppstart.

Trinn 2: Ameba Flash Memory Layout

Ameba Flash Memory Layout
Ameba Flash Memory Layout

Flash -minnestørrelsen på Ameba RTL8195A er 2 MB, varierer fra 0x00000000 til 0x00200000. Imidlertid er flashminnestørrelsen på Ameba RTL8710 1MB. For å passe til bruk av forskjellige kort antar vi at flashminnelayoutet er 1 MB.

Som vist på figuren over, opptar Ameba -programmet tre deler av flashminnet:

- Boot Image:

Det vil si bootloader. Når Ameba starter opp, plasserer det oppstartsbildet i minnet og utfører initialisering. Videre bestemmer den hvor den skal fortsette etter oppstartslasteren. Bootloader ser på OTA -adressen og gjenopprettingsnålen i systemdataområdet og bestemmer hvilket bilde som skal kjøres etterpå. På slutten av oppstartslasteren plasserer den bildet i minnet og fortsetter å utføre det.

- Standardbilde 2:

Utviklerkoden er plassert i denne delen, adressen starter fra 0x0000B000. De første 16 byte er bildehodet, 0x0000B008 ~ 0x0000B00F består av signaturen, som brukes til å kontrollere om bildet er gyldig. Signaturfeltet har to gyldige verdier for å skille det nye bildet fra det gamle bildet.

- OTA -bilde:

Dataene i denne delen er også utviklerkode. Som standard starter denne delen av minnet fra 0x00080000 (kan endres). De viktigste forskjellene mellom OTA -bilde og standardbilde 2 er flashminneadressen og signaturverdien.

Bortsett fra koden er det noen datablokker:

- Systemdata:

Systemdatablokk starter fra 0x00009000. Det er to OTA-relaterte data:

1. OTA -adresse: 4 bytes data fra 0x00009000. Den forteller OTA Image -adressen. Hvis OTA -adresseverdien er ugyldig (dvs. 0xFFFFFFFF), kan ikke OTA -bildet i flashminnet lastes inn riktig.

2. Gjenopprettingsnål: 4 bytes data fra 0x00009008. Gjenopprettingsnålen brukes til å bestemme hvilket bilde (standardbilde 2 eller OTA -bilde) som skal utføres når begge bildene er gyldige. Hvis verdien for gjenopprettingsnålen er ugyldig (dvs. 0xFFFFFFFF), blir det nye bildet utført som standard.

Systemdata vil bli fjernet når vi laster opp program til Ameba via DAP. Det vil si at OTA -adressen vil bli fjernet og Ameba vil avgjøre at det ikke er noe OTA -bilde.

- Kalibreringsdata: Perifere kalibreringsdata er plassert i denne blokken. Normalt skal disse dataene ikke slettes.

Trinn 3: Oppstartsflyt

Boot Flow
Boot Flow

Fra bildet over, Vi diskuterer følgende scenarier: (i) OTA brukes ikke, bruk DAP for å laste opp program:

I denne situasjonen sjekker bootloader signaturen til standardbilde 2 og OTA -adresse. Siden OTA -adressen er fjernet, velges standardbilde 2 som skal kjøres.

(ii) OTA -bildet overføres til Ameba, OTA -adressen er riktig angitt, gjenopprettingsnålen er ikke angitt:

Ameba har mottatt oppdatert bilde via OTA, signaturen til standardbilde 2 vil bli satt til gammel signatur.

Bootloader kontrollerer signaturen til standardbilde 2 og OTA -adresse. Den finner at OTA -adressen inneholder et gyldig OTA -bilde. Siden gjenopprettingsnålen ikke er angitt, velger den det nye bildet (dvs. OTA -bildet) som skal kjøres.

(iii) OTA -bildet overføres til Ameba, OTA -adressen er riktig angitt, gjenopprettingsnålen er angitt:

Ameba har mottatt oppdatert bilde via OTA, signaturen til standardbilde 2 vil bli satt til gammel signatur.

Bootloader kontrollerer signaturen til standardbilde 2 og OTA -adresse. Den finner at OTA -adressen inneholder et gyldig OTA -bilde. Sjekk deretter verdien for gjenopprettingsnålen. Hvis gjenopprettingsnålen er koblet til LOW, vil det nye bildet (dvs. OTA -bildet) bli utført. Hvis gjenopprettingsnålen er koblet til HIGH, vil det gamle bildet (dvs. standardbilde 2) bli utført.

Trinn 4: Eksempel

Eksempel
Eksempel
Eksempel
Eksempel
Eksempel
Eksempel
Eksempel
Eksempel

For å bruke OTA -funksjonen, vennligst oppgrader DAP -fastvaren til versjon> 0.7 (v0.7 er ikke inkludert). Standard DAP -fastvare fra fabrikk er versjon 0.7. Følg instruksjonene for å oppgradere DAP-fastvare:

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

Fyll ut ssid- og passordinformasjon i eksempelkoden for nettverkstilkobling.

Det er noen parametere relatert til OTA:

§ MY_VERSION_NUMBER : I den første versjonen må vi angi OTA -adresse og gjenopprettingsnål. Siden denne gangen vi laster opp via USB er den første versjonen, trenger vi ikke å endre denne verdien.

§ OTA_PORT: Arduino IDE finner Ameba via mDNS. Ameba vil fortelle Arduino IDE at den åpner TCP -port 5000 for å vente på OTA -bilde.

§ RECOVERY_PIN : Konfigurer pinnen som brukes til gjenoppretting. Vi bruker pin 18 her.

Deretter bruker vi USB -opplastingsprogram til Ameba. Klikk på Verktøy -> Porter, sjekk den serielle porten for å bruke:

Vær oppmerksom på at Arduino IDE bruker en port for opplasting av program og outputlog. For å unngå situasjonen at loggen ikke kan sendes ut når vi bruker OTA, bruker vi annen seriell portterminal (f.eks. Tera -term eller kitt) i stedet for seriell skjerm for å se loggmelding.

Klikk deretter på opplasting og trykk på tilbakestillingsknappen.

I loggmeldingen:

1. Mellom “===== Skriv inn bilde 1 ====” og “Skriv inn bilde 2 ====” kan du finne “Flash Image 2: Addr 0xb000”. Dette betyr at Ameba bestemmer seg for å starte opp fra standardbilde 2 på 0xb000.

2. Etter “Enter Image 2 ====” kan du finne “This is version 1”. Dette er loggmeldingen vi legger til i skisse.

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

Deretter endrer vi "MY_VERSION_NUMBER" til 2.

Klikk "Verktøy" -> "Port", du kan se en liste over "Nettverksporter". Finn "MyAmeba på 192.168.1.238 (Ameba RTL8195A)", MyAmeba er mDNS -enhetsnavnet vi angir i prøvekoden, og "192.168.1.238" er IP -adressen til Ameba.

Hvis du ikke finner nettverksporten til Ameba, må du bekrefte:

- om datamaskinen og Ameba er i det samme lokale nettverket?

- prøv å starte Arduino IDE på nytt.

- sjekk loggmeldingen i Serial Monitor for å se om Ameba er koblet til AP.

Klikk deretter på opplasting. Denne gangen blir programmet lastet opp via TCP. I loggterminalen kan du se klientforbindelsesinformasjon.

Når OTA -bildet er lastet ned, vil Ameba starte på nytt og den følgende loggen vises i loggterminalen.

- Mellom “===== Enter Image 1 ====” og “Enter Image 2 ====” kan du se en loggmelding “Flash Image 2: Addr 0x80000”. Dette betyr at Ameba bestemmer seg for å starte opp fra OTA Image på 0x80000.

- Etter "Skriv inn bilde 2 ====", er loggen "Dette er versjon 2" meldingen vi legger til i skissen.

For å gjenopprette til forrige bilde etter at OTA -bilde er lastet ned til Ameba, vennligst koble gjenopprettingsnålen vi satte i skissen (dvs. pin 18) til HIGH (3.3V), og trykk på reset.

Standardbilde 2 vil da bli valgt ved oppstart. Vær oppmerksom på at det nedlastede OTA -bildet ikke blir slettet. Når gjenopprettingsnålen er koblet fra HIGH, blir OTA -bildet utført.

Vi oppsummerer utviklingsflyten ved å bruke OTA i figuren nedenfor.

Anbefalt: