Innehållsförteckning:

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

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

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

Det finns många Wi-Fi-mikrokontroller ute på marknaden, många tillverkare tycker om att programmera sin Wi-Fi-mikrokontroller med Arduino IDE. En av de coolaste funktionerna som en Wi-Fi-mikrokontroller har att erbjuda tenderar dock att förbises, det vill säga att programmera och ladda upp din kod på distans och trådlöst med OTA (Over-The-Air) -funktion.

I denna instruktionsbok kommer jag att visa dig hur du konfigurerar OTA på din Wi-Fi-mikrokontroller med allestädes närvarande Arduino IDE på Ameba Arduino Wi-Fi-mikrokontroller!

Tillbehör

Ameba Arduino x 1

Steg 1: OTA

OTA
OTA

OTA (Over-The-Air) hänvisar till online-uppgraderingsmekanismen via Internet.

Arduino IDE erbjuder OTA -funktion som följer arbetsflödet i figuren ovan.

(i) Arduino IDE söker via mDNS efter enheter med Arduino IDEOTA -tjänst i det lokala nätverket.

(ii) Eftersom mDNS -tjänsten körs på Ameba svarar Ameba på mDNS -sökningen och öppnar den specifika TCP -porten för anslutning.

(iii) Användaren utvecklar program i Arduino IDE. När du är klar väljer du nätverksport.

(iv) Klicka på uppladdning. Sedan skickar Arduino IDE OTA -bilden till Ameba via TCP, Ameba sparar bilden till en specifik adress och ställer in startalternativ för att starta från denna bild nästa gång.

Arbetsflödet består av tre delar: mDNS, TCP och OTA -bildprocess. Detaljer relaterade till mDNS beskrivs i mDNS -självstudien. TCP -sockelprogrammering används för att överföra bild och finns redan i OTA API.

I nästa avsnitt kommer vi att diskutera hur man bearbetar OTA -bilden och introducera några grundläggande kunskaper om Ameba -flashminneslayout och startflöde.

Steg 2: Ameba Flash -minneslayout

Ameba Flash Memory Layout
Ameba Flash Memory Layout

Flashminnesstorleken på Ameba RTL8195A är 2 MB, varierar från 0x00000000 till 0x00200000. Flashstorleken på Ameba RTL8710 är dock 1 MB. För att passa användning av olika kort antar vi att flashminneslayouten är 1 MB.

Som visas i figuren ovan upptar Ameba -programmet tre delar av flashminnet:

- Startbild:

Det vill säga startladdaren. När Ameba startar, placerar den startbilden i minnet och initierar. Dessutom avgör den var den ska gå vidare efter startladdaren. Bootloader tittar på OTA -adressen och återställningsnålen i systemdataområdet och avgör vilken bild som ska köras efteråt. I slutet av startladdaren placerar den bilden i minnet och fortsätter att köra den.

- Standardbild 2:

Utvecklarkoden är placerad i denna del, adressen börjar från 0x0000B000. De första 16 byten är bildrubriken, 0x0000B008 ~ 0x0000B00F består av signaturen, som används för att verifiera om bilden är giltig. Signaturfältet har två giltiga värden för att skilja den nya bilden från den gamla bilden.

- OTA -bild:

Data i denna del är också utvecklarkod. Som standard börjar den här delen av minnet från 0x00080000 (kan ändras). De viktigaste skillnaderna mellan OTA -bild och standardbild 2 är flashminnesadressen och signaturvärdet.

Förutom koden finns det några datablock:

- Systemdata:

Systemdatablocket börjar från 0x00009000. Det finns två OTA-relaterade data:

1. OTA -adress: 4 bytes data från 0x00009000. Den berättar OTA Image -adressen. Om OTA -adressvärdet är ogiltigt (dvs. 0xFFFFFFFF) kan OTA -bilden i flashminnet inte laddas korrekt.

2. Återställningsnål: 4 bytes data från 0x00009008, Återställningsnålen används för att bestämma vilken bild (standardbild 2 eller OTA -bild) som ska köras när båda bilden är giltig. Om värdet för återställningspinnen är ogiltigt (dvs. 0xFFFFFFFF) körs den nya bilden som standard.

Systemdata kommer att tas bort när vi laddar upp programmet till Ameba via DAP. Det vill säga att OTA -adressen kommer att tas bort och Ameba kommer att avgöra att det inte finns någon OTA -bild.

- Kalibreringsdata: Perifera kalibreringsdata placeras i detta block. Normalt bör dessa data inte raderas.

Steg 3: Startflöde

Boot Flow
Boot Flow

Från bilden ovan, Vi diskuterar följande scenarier: (i) OTA används inte, använd DAP för att ladda upp program:

I den här situationen kontrollerar bootloader signaturen för standardbild 2 och OTA -adress. Eftersom OTA -adressen har tagits bort kommer standardbild 2 att väljas att köras.

(ii) OTA -bilden överförs till Ameba, OTA -adressen är korrekt inställd, återställningsnålen är inte inställd:

Ameba har fått uppdaterad bild via OTA, signaturen på standardbild 2 skulle vara inställd på gammal signatur.

Bootloader kontrollerar signaturen för standardbild 2 och OTA -adress. Det kommer att hitta OTA -adressen innehåller en giltig OTA -bild. Eftersom återställningsnålen inte är inställd väljer den den nya bilden (dvs OTA -bilden) som ska köras.

(iii) OTA -bilden överförs till Ameba, OTA -adressen är korrekt inställd, återställningsnålen är inställd:

Ameba har fått uppdaterad bild via OTA, signaturen på standardbild 2 skulle vara inställd på gammal signatur.

Bootloader kontrollerar signaturen för standardbild 2 och OTA -adress. Det kommer att hitta OTA -adressen innehåller en giltig OTA -bild. Kontrollera sedan värdet för återställningsnålen. Om återställningspinnen är ansluten till LÅG, kommer den nya bilden (dvs. OTA -bilden) att köras. Om återställningspinnen är ansluten till HÖG, kommer den gamla bilden (dvs. standardbild 2) att köras.

Steg 4: Exempel

Exempel
Exempel
Exempel
Exempel
Exempel
Exempel
Exempel
Exempel

För att använda OTA -funktionen, uppgradera DAP -firmware till version> 0.7 (v0.7 ingår inte). Fabriksstandard DAP -firmware är version 0.7. Följ instruktionerna för att uppgradera DAP-firmware:

Öppna exemplet: "File" -> "Exempel" -> "AmebaOTA" -> "ota_basic"

Fyll i ssid- och lösenordsinformation i exempelkoden för nätverksanslutning.

Det finns några parametrar relaterade till OTA:

§ MY_VERSION_NUMBER : I den första versionen måste vi ange OTA -adress och återställningsnål. Eftersom den här gången vi laddar upp via USB är den första versionen behöver vi inte ändra detta värde.

§ OTA_PORT : Arduino IDE hittar Ameba via mDNS. Ameba kommer att berätta för Arduino IDE att den öppnar TCP -port 5000 för att vänta på OTA -bild.

§ RECOVERY_PIN : Konfigurera stiftet som används för återställning. Vi använder stift 18 här.

Sedan använder vi USB -uppladdningsprogram till Ameba. Klicka på Verktyg -> Portar, kontrollera den seriella porten som ska användas:

Observera att Arduino IDE använder en port för uppladdningsprogram och outputlog. För att undvika situationen att loggen inte kan matas ut när vi använder OTA använder vi andra seriella portterminaler (t.ex. Tera -term eller kitt) istället för seriell bildskärm för att titta på loggmeddelanden.

Klicka sedan på uppladdning och tryck på återställningsknappen.

I loggmeddelandet:

1. Mellan “===== Ange bild 1 ====” och”Ange bild 2 ====” hittar du”Flash Image 2: Addr 0xb000”. Det betyder att Ameba bestämmer sig för att starta från standardbild 2 vid 0xb000.

2. Efter”Ange bild 2 ====” hittar du”Detta är version 1”. Detta är loggmeddelandet vi lägger till i skiss.

3. När Ameba är ansluten till AP och får IP -adressen “192.168.1.238”, aktiverar den mDNS och väntar på klienten.

Därefter ändrar vi "MY_VERSION_NUMBER" till 2.

Klicka på "Verktyg" -> "Port", du kan se en lista över "Nätverksportar". Hitta "MyAmeba på 192.168.1.238 (Ameba RTL8195A)", MyAmeba är mDNS -enhetsnamnet vi ställde in i provkoden och "192.168.1.238" är IP -adressen för Ameba.

Om du inte hittar Amebas nätverksport, bekräfta:

- om din dator och Ameba är i samma lokala nätverk?

- försök starta om Arduino IDE.

- kontrollera loggmeddelandet i Serial Monitor för att se om Ameba är anslutet till AP framgångsrikt.

Klicka sedan på ladda upp. Den här gången laddas programmet upp via TCP. I loggterminalen kan du se klientanslutningsinformation.

När OTA -bilden laddas ner framgångsrikt kommer Ameba att starta om och följande logg visas i loggterminalen.

- Mellan "===== Ange bild 1 ====" och "Ange bild 2 ====" kan du se ett loggmeddelande "Flash Image 2: Addr 0x80000". Det betyder att Ameba bestämmer sig för att starta från OTA Image på 0x80000.

- Efter "Ange bild 2 ====" är loggen "Detta är version 2" meddelandet vi lägger till i skissen.

För att återställa till föregående bild efter att OTA -bild har laddats ner till Ameba, vänligen anslut återställningsstiftet som vi ställde in i skissen (dvs stift 18) till HÖG (3.3V) och tryck på reset.

Då kommer standardbild 2 att väljas vid uppstart. Observera att den nedladdade OTA -bilden inte raderas, när återställningsnålen har kopplats bort från HIGH kommer OTA -bilden att köras.

Vi sammanfattar utvecklingsflödet med OTA i följande figur.

Rekommenderad: