Բովանդակություն:

Arduino- ի օդում ծրագրավորում (OTA) - Ameba Arduino. 4 քայլ
Arduino- ի օդում ծրագրավորում (OTA) - Ameba Arduino. 4 քայլ

Video: Arduino- ի օդում ծրագրավորում (OTA) - Ameba Arduino. 4 քայլ

Video: Arduino- ի օդում ծրագրավորում (OTA) - Ameba Arduino. 4 քայլ
Video: How to use Prototyping Shield with breadboard for Arduino 2024, Դեկտեմբեր
Anonim
Arduino- ի օդում ծրագրավորում (OTA) - Ameba Arduino
Arduino- ի օդում ծրագրավորում (OTA) - Ameba Arduino

Շուկայում կան շատ Wi-Fi միկրոկառավարիչներ, շատ արտադրողներ վայելում են իրենց Wi-Fi միկրոկառավարիչի ծրագրավորումը Arduino IDE- ի միջոցով: Այնուամենայնիվ, Wi-Fi միկրոկառավարիչի առաջարկած ամենաթեժ հատկություններից մեկը, որպես կանոն, անտեսվում է, այն է ՝ ծրագրավորելն ու ձեր ծածկագրի հեռակա և անլար տեղադրումը ՝ օգտագործելով OTA (Over-The-Air) գործառույթը:

Այս Ուղեցույցում ես ձեզ ցույց կտամ, թե ինչպես տեղադրել OTA ձեր Wi-Fi միկրոկառավարիչի վրա ՝ օգտագործելով ամենուր Arduino IDE- ն Ameba Arduino Wi-Fi միկրոկոնտրոլերի վրա:

Պարագաներ

Ամեբա Արդուինո x 1

Քայլ 1: OTA

ՕՏԱ
ՕՏԱ

OTA (Over-The-Air) վերաբերում է ինտերնետի միջոցով առցանց արդիականացման մեխանիզմին:

Arduino IDE- ն առաջարկում է OTA գործառույթը, որը հետևում է վերևի նկարում ներկայացված աշխատանքային ընթացքին:

(i) Arduino IDE- ն mDNS- ի միջոցով փնտրում է Arduino IDEOTA ծառայություն ունեցող սարքեր տեղական ցանցում:

(ii) Քանի որ mDNS ծառայությունն աշխատում է Ameba- ի վրա, Ameba- ն արձագանքում է mDNS որոնմանը և բացում միացման համար հատուկ TCP նավահանգիստը:

(iii) Օգտվողը ծրագիր է մշակում Arduino IDE- ում: Ավարտելուց հետո ընտրեք ցանցի նավահանգիստ:

(iv) Սեղմեք վերբեռնում: Այնուհետեւ Arduino IDE- ն OTA պատկերն ուղարկում է Ameba- ին TCP- ի միջոցով, Ameba- ն պատկերը պահում է որոշակի հասցեում և հաջորդ անգամ այս պատկերից բեռնման տարբերակ է դնում:

Աշխատանքային գործընթացը բաղկացած է երեք մասից ՝ mDNS, TCP և OTA պատկերի գործընթաց: MDNS- ի հետ կապված մանրամասները նկարագրված են mDNS ձեռնարկում: TCP վարդակների ծրագրավորումն օգտագործվում է պատկերի փոխանցման համար և արդեն տրամադրված է OTA API- ում:

Հաջորդ բաժնում մենք կքննարկենք, թե ինչպես մշակել OTA պատկերը և կներկայացնենք որոշ հիմնական գիտելիքներ Ameba ֆլեշ հիշողության դասավորության և բեռնման հոսքի վերաբերյալ:

Քայլ 2: Ameba Flash Memory Layout

Ameba Flash Memory Layout
Ameba Flash Memory Layout

Ameba RTL8195A- ի ֆլեշ հիշողության չափը 2 ՄԲ է, տատանվում է 0x00000000 -ից մինչև 0x00200000: Այնուամենայնիվ, Ameba RTL8710 ֆլեշ հիշողության չափը 1 ՄԲ է: Տարբեր տախտակների օգտագործմանը համապատասխանելու համար մենք ենթադրում ենք, որ ֆլեշ հիշողության դասավորությունը 1 ՄԲ է:

Ինչպես ցույց է տրված վերևում նկարում, Ameba ծրագիրը զբաղեցնում է ֆլեշ հիշողության երեք մաս.

- Boot Image

Այսինքն, բեռնախցիկ: Երբ Ameba- ն բարձրանում է, այն տեղադրում է բեռնախցիկի պատկերը հիշողության մեջ և կատարում սկզբնականացում: Ավելին, այն որոշում է, թե որտեղ շարունակել բեռնիչից հետո: Bootloader- ը նայում է համակարգի տվյալների տարածքում OTA հասցեին և վերականգնման քորոցին և որոշում, թե որ պատկերն է կատարվելու դրանից հետո: Բեռնիչ սարքի վերջում այն տեղադրում է պատկերը հիշողության մեջ և շարունակում է այն կատարել:

- Կանխադրված պատկեր 2

Այս մասում տեղադրված է մշակողի կոդը, հասցեն սկսվում է 0x0000B000- ից: Առաջին 16 բայթերը պատկերի վերնագիրն են, 0x0000B008 ~ 0x0000B00F- ն պարունակում է Ստորագրություն, որն օգտագործվում է պատկերի վավերականության ստուգման համար: Ստորագրության դաշտը ունի երկու վավեր արժեք ՝ նոր պատկերը հին պատկերից տարբերելու համար:

- OTA պատկեր

Այս մասի տվյալները նույնպես մշակողի կոդ են: Լռելյայն, հիշողության այս հատվածը սկսվում է 0x00080000 -ից (կարող է փոխվել): OTA պատկերի և Default Image 2 -ի հիմնական տարբերությունները ֆլեշ հիշողության հասցեն և ստորագրության արժեքն են:

Կոդից բացի, կան որոշ տվյալների բլոկներ.

- Համակարգի տվյալներ

Համակարգի տվյալների բլոկը սկսվում է 0x00009000 -ից: Գոյություն ունեն OTA- ի հետ կապված երկու տվյալներ.

1. OTA հասցե : 4 բայթ տվյալներ ՝ սկսած 0x00009000 -ից: Այն պատմում է OTA Image հասցեն: Եթե OTA հասցեի արժեքը անվավեր է (այսինքն ՝ 0xFFFFFFFF), ֆլեշ հիշողության մեջ OTA պատկերը չի կարող ճիշտ բեռնվել:

2. Վերականգնման պին : 4 բայթ տվյալներ ՝ սկսած 0x00009008- ից, վերականգնման քորոցն օգտագործվում է որոշելու, թե որ պատկերը (կանխադրված պատկեր 2 կամ OTA պատկեր) կատարի, երբ երկու պատկերն էլ վավեր են: Եթե վերականգնման քորոցի արժեքն անվավեր է (այսինքն ՝ 0xFFFFFFFF), նոր պատկերը լռելյայն կկատարվի:

Համակարգի տվյալները կհեռացվեն, երբ ծրագիրը Ameba- ն վերբեռնենք DAP- ի միջոցով: Այսինքն, OTA հասցեն կհեռացվի, և Ameba- ն կորոշի, որ OTA պատկեր չկա:

- Կալիբրացիայի տվյալներ this Այս բլոկում տեղադրված են ծայրամասային չափագրման տվյալները: Սովորաբար այդ տվյալները չպետք է ջնջվեն:

Քայլ 3: Boot Flow

Boot Flow
Boot Flow

Վերևի պատկերից ՝

Մենք քննարկում ենք հետևյալ սցենարները. (I) OTA- ն չի օգտագործվում, օգտագործեք DAP ծրագիրը վերբեռնելու համար.

Այս իրավիճակում, bootloader- ը ստուգում է կանխադրված պատկերի 2 -ի և OTA հասցեի ստորագրությունը: Քանի որ OTA հասցեն հեռացված է, նախնական պատկերը 2 կընտրվի կատարման համար:

(ii) OTA պատկերը փոխանցվում է Ameba- ին, OTA հասցեն ճիշտ է դրված, վերականգնման քորոցը սահմանված չէ

Ameba- ն ստացել է թարմացված պատկեր OTA- ի միջոցով, կանխադրված պատկերի 2 -ի ստորագրությունը կդառնա հին ստորագրություն:

Bootloader- ը ստուգում է կանխադրված պատկերի 2 -ի և OTA հասցեի ստորագրությունը: Այն կգտնի, որ OTA հասցեն պարունակում է վավեր OTA պատկեր: Քանի որ վերականգնման քորոցը սահմանված չէ, այն ընտրում է կատարման նոր պատկերը (այսինքն ՝ OTA պատկերը):

(iii) OTA պատկերը փոխանցվում է Ameba- ին, OTA հասցեն ճիշտ է դրված, վերականգնման քորոցը `

Ameba- ն ստացել է թարմացված պատկեր OTA- ի միջոցով, կանխադրված պատկերի 2 -ի ստորագրությունը կդառնա հին ստորագրություն:

Bootloader- ը ստուգում է կանխադրված պատկերի 2 -ի և OTA հասցեի ստորագրությունը: Այն կգտնի, որ OTA հասցեն պարունակում է վավեր OTA պատկեր: Այնուհետեւ ստուգեք վերականգնման քորոցի արժեքը: Եթե վերականգնման քորոցը միացված է LOW- ին, ապա նոր պատկերը (այսինքն ՝ OTA պատկերը) կկատարվի: Եթե վերականգնման քորոցը միացված է HIGH- ին, հին պատկերը (այսինքն ՝ կանխադրված պատկերը 2) կկատարվի:

Քայլ 4: Օրինակ

Օրինակ
Օրինակ
Օրինակ
Օրինակ
Օրինակ
Օրինակ
Օրինակ
Օրինակ

OTA գործառույթն օգտագործելու համար խնդրում ենք բարձրացնել DAP որոնվածը մինչև> 0.7 տարբերակ (v0.7 ներառված չէ): Գործարանային լռելյայն DAP որոնվածը 0.7 տարբերակն է: Խնդրում ենք հետևել DAP որոնվածը թարմացնելու հրահանգին ՝

Բացեք օրինակը ՝ «Ֆայլ» -> «Օրինակներ» -> «AmebaOTA» -> «ota_basic»

Լրացրեք ssid և գաղտնաբառի տվյալները նմուշի ծածկագրում ցանցի միացման համար:

OTA- ի հետ կապված որոշ պարամետրեր կան.

§ MY_VERSION_NUMBER first Առաջին տարբերակում մենք պետք է սահմանենք OTA հասցեն և վերականգնման քորոցը: Քանի որ այս անգամ USB- ի միջոցով վերբեռնումը առաջին տարբերակն է, մեզ հարկավոր չէ փոխել այս արժեքը:

§ OTA_PORT : Arduino IDE- ն կգտնի Ameba- ն mDNS- ի միջոցով: Ameba- ն Arduino IDE- ին կասի, որ այն բացում է TCP 5000 նավահանգիստը `սպասելու OTA պատկերին:

§ RECOVERY_PIN : Կարգավորեք վերականգնման համար օգտագործվող քորոցը: Մենք այստեղ օգտագործում ենք քորոց 18 -ը:

Այնուհետև մենք օգտագործում ենք USB բեռնման ծրագիրը Ameba- ին: Կտտացրեք Գործիքներ -> Նավահանգիստներ, ստուգեք սերիական նավահանգիստը ՝ օգտագործելու համար:

Խնդրում ենք նկատի ունենալ, որ Arduino IDE- ն օգտագործում է մեկ պորտ ՝ բեռնման ծրագրի և ելքային բլոգի համար: Այն իրավիճակից խուսափելու համար, երբ տեղեկամատյան OTA- ն օգտագործելիս տեղեկամատյանը չի կարող դուրս գալ, մենք օգտագործում ենք սերիական պորտի այլ տերմինալ (օրինակ ՝ Tera տերմին կամ ծեփամածիկ) սերիական մոնիտորի փոխարեն դիտելու տեղեկամատյանային հաղորդագրությունը:

Այնուհետև կտտացրեք վերբեռնում և սեղմեք վերակայման կոճակը:

Մատյանային հաղորդագրության մեջ.

1. «===== Մուտքագրեք պատկեր 1 ====» և «Մուտքագրեք պատկեր 2 ====» միջև կարող եք գտնել «Ֆլեշ պատկեր 2. Addr 0xb000»: Սա նշանակում է, որ Ameba- ն որոշում է գործարկել Default Image 2 -ից 0xb000:

2. «Մուտքագրեք պատկերը 2 ====» -ից հետո կարող եք գտնել «Սա տարբերակ 1 է»: Սա տեղեկամատյանային հաղորդագրություն է, որը մենք ավելացնում ենք ուրվագծում:

3. Ameba- ն AP- ին միանալուց և «192.168.1.238» IP հասցե ստանալուց հետո այն ակտիվացնում է mDNS- ը և սպասում հաճախորդին:

Հաջորդը, մենք փոփոխում ենք «MY_VERSION_NUMBER» - ը 2 -ի:

Կտտացրեք «Գործիքներ» -> «Պորտ», կարող եք տեսնել «Networkանցային նավահանգիստների» ցուցակը: Գտեք «MyAmeba 192.168.1.238 հասցեով (Ameba RTL8195A)», MyAmeba- ն այն mDNS սարքի անունն է, որը մենք սահմանել ենք ընտրանքային կոդի մեջ, իսկ «192.168.1.238» -ը ՝ Ameba- ի IP- ն:

Եթե չեք կարողանում գտնել Ameba- ի ցանցային պորտը, խնդրում ենք հաստատել.

- արդյոք ձեր համակարգիչը և Ameba- ն նույն տեղական ցանցում են:

- փորձեք վերագործարկել Arduino IDE- ն:

- ստուգեք տեղեկամատյանների հաղորդագրությունը Serial Monitor- ում ՝ տեսնելու համար, թե արդյոք Ameba- ն հաջողությամբ միացված է AP- ին:

Այնուհետեւ կտտացրեք բեռնել: Այս անգամ ծրագիրը կբեռնվի TCP- ի միջոցով: Մատյանային տերմինալում կարող եք տեսնել հաճախորդի միացման տվյալները:

Երբ OTA պատկերը հաջողությամբ ներբեռնվի, Ameba- ն կվերագործարկվի, և հաջորդ տեղեկամատյանը կցուցադրվի տեղեկամատյանների տերմինալում:

- «===== Մուտքագրեք պատկեր 1 ====» և «Մուտքագրեք պատկեր 2 ====» միջև կարող եք տեսնել «Flash Image 2: Addr 0x80000» տեղեկամատյանային հաղորդագրություն: Սա նշանակում է, որ Ameba- ն որոշում է գործարկել OTA Image- ից 0x80000:

- «Մուտքագրեք պատկեր 2 ====» -ից հետո «Սա տարբերակ 2 է» տեղեկամատյանը այն հաղորդագրությունն է, որը մենք ավելացնում ենք ուրվագծում:

OTA պատկերը Ameba- ում ներբեռնելուց հետո նախկին պատկերը վերականգնելու համար խնդրում ենք միացնել էսքիզում (այսինքն ՝ 18 -րդ կապում) տեղադրված վերականգնման քորոցը HIGH (3.3V) և սեղմել վերականգնել:

Այնուհետև Default image 2 -ը կընտրվի բեռնման ժամանակ: Նկատի ունեցեք, որ ներբեռնված OTA պատկերը չի ջնջվում, երբ վերականգնման քորոցն անջատվի HIGH- ից, OTA պատկերը կկատարվի:

Մենք ամփոփում ենք զարգացման հոսքը `օգտագործելով OTA- ն հետևյալ նկարում:

Խորհուրդ ենք տալիս: