Përmbajtje:

Programimi i Arduino mbi Ajrin (OTA) - Ameba Arduino: 4 hapa
Programimi i Arduino mbi Ajrin (OTA) - Ameba Arduino: 4 hapa

Video: Programimi i Arduino mbi Ajrin (OTA) - Ameba Arduino: 4 hapa

Video: Programimi i Arduino mbi Ajrin (OTA) - Ameba Arduino: 4 hapa
Video: Как запрограммировать модуль реле Wi-Fi ESP8266 ESP-01 2024, Nëntor
Anonim
Programimi i Arduino mbi Ajrin (OTA) - Ameba Arduino
Programimi i Arduino mbi Ajrin (OTA) - Ameba Arduino

Ka shumë mikrokontrollues Wi-Fi atje në treg, shumë krijues kënaqen duke programuar mikrokontrolluesin e tyre Wi-Fi duke përdorur Arduino IDE. Sidoqoftë, një nga veçoritë më interesante që duhet të ofrojë një mikrokontrollues Wi-Fi ka tendencë të anashkalohet, që është programimi dhe ngarkimi i kodit tuaj nga distanca dhe pa tel duke përdorur funksionin OTA (Over-The-Air).

Në këtë udhëzues, unë do t'ju tregoj se si të vendosni OTA në mikrokontrolluesin tuaj Wi-Fi duke përdorur Arduino IDE të kudogjendur në mikrokontrolluesin Ameba Arduino Wi-Fi!

Furnizimet

Ameba Arduino x 1

Hapi 1: OTA

OTA
OTA

OTA (Over-The-Air) i referohet mekanizmit të azhurnimit në internet përmes Internetit.

Arduino IDE ofron funksionin OTA, i cili ndjek rrjedhën e punës në figurën e mësipërme.

(i) Arduino IDE kërkon përmes mDNS për pajisje me shërbimin Arduino IDEOTA në rrjetin lokal.

(ii) Meqenëse shërbimi mDNS po funksionon në Ameba, Ameba i përgjigjet kërkimit të mDNS dhe hap portën specifike TCP për lidhje.

(iii) Përdoruesi zhvillon programin në Arduino IDE. Kur të përfundoni, zgjidhni portën e rrjetit.

(iv) Klikoni ngarkimin. Pastaj Arduino IDE dërgon imazhin OTA tek Ameba përmes TCP, Ameba e ruan imazhin në adresë specifike dhe vendos opsionin e nisjes për të nisur nga ky imazh herën tjetër.

Rrjedha e punës përbëhet nga tre pjesë: procesi i imazhit mDNS, TCP dhe OTA. Detajet që lidhen me mDNS përshkruhen në tutorialin e mDNS. Programimi i foleve TCP përdoret në transferimin e imazhit dhe tashmë ofrohet në OTA API.

Në pjesën tjetër, ne do të diskutojmë se si të përpunojmë imazhin OTA dhe do të prezantojmë disa njohuri bazë mbi paraqitjen e kujtesës flash Ameba dhe rrjedhën e nisjes.

Hapi 2: Paraqitja e kujtesës Ameba Flash

Paraqitja e kujtesës Ameba Flash
Paraqitja e kujtesës Ameba Flash

Madhësia e kujtesës flash të Ameba RTL8195A është 2MB, varion nga 0x00000000 në 0x00200000. Sidoqoftë, madhësia e kujtesës flash të Ameba RTL8710 është 1MB. Për t'iu përshtatur përdorimit të tabelave të ndryshme, supozojmë se faqosja e kujtesës flash është 1MB.

Siç tregohet në figurën e mësipërme, programi Ameba zë tre pjesë të kujtesës flash:

- Imazhi i nisjes

Kjo është, bootloader. Kur Ameba fillon, vendos imazhin e nisjes në memorje dhe kryen fillimin. Për më tepër, ajo përcakton se ku të vazhdohet pas bootloader. Bootloader shikon adresën OTA dhe pinin e rimëkëmbjes në zonën e të dhënave të sistemit dhe përcakton se cili imazh do të ekzekutohet më pas. Në fund të ngarkuesit, ai vendos imazhin në kujtesë dhe vazhdon ta ekzekutojë atë.

- Imazhi i paracaktuar 2 :

Kodi i zhvilluesit vendoset në këtë pjesë, adresa fillon nga 0x0000B000. 16 bajtët e parë janë titulli i figurës, 0x0000B008 ~ 0x0000B00F përmban Nënshkrimin, i cili përdoret për të verifikuar nëse imazhi është i vlefshëm. Fusha e nënshkrimit ka dy vlera të vlefshme për të dalluar imazhin e ri nga imazhi i vjetër.

- Imazhi OTA

Të dhënat në këtë pjesë janë gjithashtu kodi i zhvilluesit. Si parazgjedhje, kjo pjesë e kujtesës fillon nga 0x00080000 (mund të ndryshohet). Dallimet kryesore midis imazhit OTA dhe Imazhit të paracaktuar 2 janë adresa e kujtesës flash dhe vlera e Nënshkrimit.

Përveç kodit, ka disa blloqe të të dhënave:

- Të dhënat e sistemit

Blloku i të dhënave të sistemit fillon nga 0x00009000. Ekzistojnë dy të dhëna të lidhura me OTA:

1. Adresa OTA data 4 bajt të dhëna duke filluar nga 0x00009000. Ai tregon adresën e Imazhit OTA. Nëse vlera e adresës OTA është e pavlefshme (d.m.th., 0xFFFFFFF), imazhi OTA në kujtesën flash nuk mund të ngarkohet saktë.

2. Rimëkëmbja Pin : 4 bajt të dhëna duke filluar nga 0x00009008, Pika e rimëkëmbjes përdoret për të përcaktuar se cila imazh (Imazhi i paracaktuar 2 ose Imazhi OTA) do të ekzekutohet kur të dy imazhet janë të vlefshme. Nëse vlera e kunjit të rimëkëmbjes është e pavlefshme (d.m.th., 0xFFFFFFF), imazhi i ri do të ekzekutohet si parazgjedhje.

Të dhënat e sistemit do të hiqen kur ngarkojmë programin në Ameba përmes DAP. Kjo do të thotë, adresa OTA do të hiqet dhe Ameba do të përcaktojë që nuk ka imazh OTA.

- Të dhënat e kalibrimit data Të dhënat e kalibrimit periferik vendosen në këtë bllok. Normalisht këto të dhëna nuk duhet të fshihen.

Hapi 3: Boot Flow

Rrjedha e çizmave
Rrjedha e çizmave

Nga imazhi i mësipërm, Ne diskutojmë skenarët e mëposhtëm: (i) OTA nuk përdoret, përdorni DAP për të ngarkuar programin:

Në këtë situatë, bootloader kontrollon nënshkrimin e imazhit të paracaktuar 2 dhe adresën OTA. Meqenëse adresa OTA është hequr, imazhi i paracaktuar 2 do të zgjidhet për t'u ekzekutuar.

(ii) Imazhi OTA transferohet në Ameba, adresa OTA është vendosur si duhet, kunja e rimëkëmbjes nuk është vendosur

Ameba ka marrë imazh të azhurnuar përmes OTA, nënshkrimi i imazhit të paracaktuar 2 do të vendoset në nënshkrimin e vjetër.

Bootloader kontrollon nënshkrimin e imazhit të paracaktuar 2 dhe adresën OTA. Do të zbulojë se adresa OTA përmban një imazh të vlefshëm OTA. Meqenëse kunja e rimëkëmbjes nuk është vendosur, ajo zgjedh imazhin e ri (p.sh., imazhin OTA) që do të ekzekutohet.

(iii) Imazhi OTA transferohet në Ameba, adresa OTA është vendosur si duhet, kunja e rimëkëmbjes është vendosur

Ameba ka marrë imazh të azhurnuar përmes OTA, nënshkrimi i imazhit të paracaktuar 2 do të vendoset në nënshkrimin e vjetër.

Bootloader kontrollon nënshkrimin e imazhit të paracaktuar 2 dhe adresën OTA. Do të zbulojë se adresa OTA përmban një imazh të vlefshëm OTA. Pastaj kontrolloni vlerën e pinit të rimëkëmbjes. Nëse kunja e rimëkëmbjes është e lidhur me LOW, imazhi i ri (p.sh., imazhi OTA) do të ekzekutohet. Nëse kunja e rimëkëmbjes është e lidhur me HIGH, imazhi i vjetër (p.sh., imazhi i paracaktuar 2) do të ekzekutohet.

Hapi 4: Shembull

Shembull
Shembull
Shembull
Shembull
Shembull
Shembull
Shembull
Shembull

Për të përdorur funksionin OTA, azhurnoni firmware DAP në versionin> 0.7 (v0.7 nuk përfshihet). Firmware i paracaktuar i fabrikës DAP është versioni 0.7. Ndiqni udhëzimet për të azhurnuar firmware DAP:

Hap shembullin: "Skedari" -> "Shembuj" -> "AmebaOTA" -> "ota_basic"

Plotësoni informacionin ssid dhe fjalëkalimin në kodin shembull për lidhjen me rrjetin.

Ka disa parametra që lidhen me OTA:

§ MY_VERSION_NUMBER : Në versionin e parë, ne duhet të vendosim adresën OTA dhe pinin e rimëkëmbjes. Meqenëse këtë herë që ngarkojmë përmes USB është versioni i parë, nuk kemi nevojë ta ndryshojmë këtë vlerë.

§ OTA_PORT : Arduino IDE do të gjejë Ameba përmes mDNS. Ameba do t'i tregojë Arduino IDE se hap portën TCP 5000 për të pritur për imazhin OTA.

§ RECOVERY_PIN : Konfiguroni kunjin e përdorur për rikuperim. Ne përdorim pinin 18 këtu.

Pastaj ne përdorim programin e ngarkimit USB në Ameba. Klikoni Veglat -> Portet, kontrolloni portën serike për t'u përdorur

Ju lutemi vini re se Arduino IDE përdor një port për ngarkimin e programit dhe outputlog. Për të shmangur situatën që regjistri nuk mund të dalë kur përdorim OTA, ne përdorim terminalin tjetër të portit serik (p.sh. termi Tera ose stuko) në vend të monitorit serik për të parë mesazhin e regjistrit.

Pastaj klikoni ngarkimin dhe shtypni butonin e rivendosjes.

Në mesazhin e regjistrit:

1. Mes “===== Fut Imazhin 1 ====” dhe “Fut Imazhin 2 ====”, mund të gjesh “Flash Image 2: Addr 0xb000”. Kjo do të thotë që Ameba vendos të fillojë nga Imazhi i Parazgjedhur 2 në 0xb000.

2. Pas "Enter Image 2 ====", mund të gjeni "This is version 1". Ky është mesazhi i regjistrit që shtojmë në skicë.

3. Pasi Ameba është e lidhur me AP dhe merr adresën IP "192.168.1.238", aktivizon mDNS dhe pret klientin.

Tjetra, ne modifikojmë "MY_VERSION_NUMBER" në 2.

Klikoni "Tools" -> "Port", mund të shihni një listë të "Porteve të Rrjetit". Gjeni "MyAmeba në 192.168.1.238 (Ameba RTL8195A)", MyAmeba është emri i pajisjes mDNS që kemi vendosur në kodin mostër, dhe "192.168.1.238" është IP e Ameba.

Nëse nuk mund të gjeni portin e rrjetit të Ameba, ju lutemi konfirmoni:

- nëse kompjuteri juaj dhe Ameba janë në të njëjtin rrjet lokal?

- përpiquni të rinisni Arduino IDE.

- kontrolloni mesazhin e regjistrit në Serial Monitor për të parë nëse Ameba është e lidhur me AP me sukses.

Pastaj klikoni ngarkimin. Këtë herë programi do të ngarkohet përmes TCP. Në terminalin e regjistrit, mund të shihni informacionin e lidhjes së klientit.

Kur imazhi OTA shkarkohet me sukses, Ameba do të rindizet dhe regjistri i mëposhtëm do të shfaqet në terminalin e regjistrit.

- Midis "===== Fut Imazhin 1 ====" dhe "Fut Imazhin 2 ====", mund të shihni një mesazh log "Flash Image 2: Addr 0x80000". Kjo do të thotë që Ameba vendos të fillojë nga OTA Image në 0x80000.

- Pas "Fut Imazhin 2 ====", regjistri "Ky është versioni 2" është mesazhi që shtojmë në skicë.

Për tu rikuperuar në imazhin e mëparshëm pasi imazhi OTA është shkarkuar në Ameba, ju lutemi lidhni kunjin e rimëkëmbjes që vendosëm në skicë (d.m.th., pin 18) në HIGH (3.3V) dhe shtypni reset.

Pastaj imazhi i paracaktuar 2 do të zgjidhet kur fillon. Vini re se imazhi i shkarkuar OTA nuk fshihet, pasi kunja e rimëkëmbjes të shkëputet nga HIGH, imazhi OTA do të ekzekutohet.

Ne përmbledhim rrjedhën e zhvillimit duke përdorur OTA në figurën e mëposhtme.

Recommended: