Мазмуну:

Ардуинону аба аркылуу программалоо (OTA) - Амеба Ардуино: 4 кадам
Ардуинону аба аркылуу программалоо (OTA) - Амеба Ардуино: 4 кадам

Video: Ардуинону аба аркылуу программалоо (OTA) - Амеба Ардуино: 4 кадам

Video: Ардуинону аба аркылуу программалоо (OTA) - Амеба Ардуино: 4 кадам
Video: От нуля до BA Hero: путешествие в бизнес-анализ 2024, Ноябрь
Anonim
Программалоо Ардуино Абада (OTA) - Амеба Ардуино
Программалоо Ардуино Абада (OTA) - Амеба Ардуино

Базарда көптөгөн Wi-Fi микроконтроллери бар, көптөгөн өндүрүүчүлөр Arduino IDE менен Wi-Fi микроконтроллерин программалоону жактырышат. Бирок, Wi-Fi микроконтроллери сунуштаган эң сонун өзгөчөлүктөрдүн бири-кодду алыстан жана зымсыз OTA (Over-The-Air) функциясын колдонуу менен программалоо жана жүктөө.

Бул Нускоодо, мен сизге Ameba Arduino Wi-Fi микроконтроллериндеги бардык жерде Arduino IDEди колдонуп, Wi-Fi микроконтроллеринде OTA орнотууну көрсөтөм!

Жабдуулар

Ameba Arduino x 1

1 -кадам: OTA

OTA
OTA

OTA (Over-The-Air) Интернет аркылуу онлайн жаңыртуу механизмин билдирет.

Arduino IDE, жогоруда көрсөтүлгөн сүрөттөгү жумуш процессине ылайык келген OTA өзгөчөлүгүн сунуштайт.

(i) Arduino IDE жергиликтүү тармакта Arduino IDEOTA кызматы бар түзмөктөрдү mDNS аркылуу издейт.

(ii) mDNS кызматы Амебада иштеп жаткандыктан, Ameba mDNS издөөгө жооп берет жана байланыш үчүн конкреттүү TCP портун ачат.

(iii) Колдонуучу Arduino IDEде программаны иштеп чыгат. Бүткөндөн кийин, тармак портун тандаңыз.

(iv) Жүктөө дегенди басыңыз. Андан кийин Arduino IDE OTA сүрөтүн TCP аркылуу Ameba'га жөнөтөт, 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 программасы флеш -эстин үч бөлүгүн ээлейт:

- Жүктөө сүрөтү:

Башкача айтканда, жүктөгүч. Амеба жүктөлгөндө, жүктөө сүрөтүн эс тутумуна жайгаштырат жана инициализацияны аткарат. Мындан тышкары, ал жүктөгүчтөн кийин кайда барууну аныктайт. Жүктөгүч OTA дарегине жана тутумдун маалымат аймагындагы калыбына келтирүүчү пинге карап, андан кийин кайсы сүрөт аткарыларын аныктайт. Жүктөгүчтүн аягында, ал сүрөттү эстутумга жайгаштырат жана аны аткарууга киришет.

- Демейки сүрөт 2:

Иштеп чыгуучунун коду бул бөлүктө жайгаштырылган, дарек 0x0000B000ден башталат. Биринчи 16 байт - бул сүрөт башы, 0x0000B008 ~ 0x0000B00F - бул сүрөттүн жарактуу экендигин текшерүү үчүн колдонулган Кол тамгадан турат. Кол талаасы жаңы сүрөттү эски сүрөттөн айырмалоо үчүн эки жарактуу мааниге ээ.

- OTA Сүрөтү:

Бул бөлүктөгү маалыматтар дагы иштеп чыгуучунун коду. Демейки боюнча, эс тутумдун бул бөлүгү 0x00080000дөн башталат (өзгөртүлүшү мүмкүн). OTA сүрөтү менен Демейки Сүрөт 2нин ортосундагы негизги айырмачылыктар флеш -эстин дареги жана Кол тамгасы.

Коддон тышкары, кээ бир маалымат блоктору бар:

- Системалык маалыматтар:

Системалык маалымат блогу 0x00009000ден башталат. OTAга байланыштуу эки маалымат бар:

1. OTA дареги: 0x00009000ден башталган 4 байт маалымат. Бул OTA Image дарегин айтат. Эгерде OTA дарегинин мааниси жараксыз болсо (б.а. 0xFFFFFFFF), флеш -эстеги OTA сүрөтү туура жүктөлбөйт.

2. Калыбына келтирүүчү пин: 0x00009008ден башталган 4 байт маалыматтар, Калыбына келтирүүчү пин эки сүрөт тең жарактуу болгондо кайсы сүрөттү (демейки сүрөт 2 же OTA сүрөтү) аткаруу керектигин аныктоо үчүн колдонулат. Эгерде калыбына келтирүүчү пиндин мааниси жараксыз болсо (б.а. 0xFFFFFFFF), жаңы сүрөт демейки боюнча аткарылат.

Программаны Ameba'га DAP аркылуу жүктөгөндө тутумдун маалыматы өчүрүлөт. Башкача айтканда, OTA дареги алынып салынат жана Ameba OTA сүрөтү жок экенин аныктайт.

- Калибрлөө маалыматы: перифериялык калибрлөө маалыматы бул блокко жайгаштырылган. Адатта бул маалыматтар өчүрүлбөшү керек.

3 -кадам: Boot Flow

Boot Flow
Boot Flow

Жогорудагы сүрөттөн, Биз төмөнкү сценарийлерди талкуулайбыз: (i) OTA колдонулбайт, программаны жүктөө үчүн DAP колдонуңуз:

Бул учурда, жүктөгүч демейки сүрөт 2 жана OTA дарегинин колун текшерет. OTA дареги алынып салынгандыктан, аткаруу үчүн демейки сүрөт 2 тандалат.

(ii) OTA сүрөтү Амебага өткөрүлүп берилген, OTA дареги туура коюлган, калыбына келтирүүчү пин орнотулган эмес:

Ameba OTA аркылуу жаңыртылган сүрөттү алды, демейки сүрөттүн 2 колу эски кол коюлат.

Жүктөгүч демейки сүрөт 2 жана OTA дарегинин колун текшерет. Бул OTA дареги жарактуу OTA сүрөтүн камтыйт. Калыбына келтирүүчү пин орнотулбагандыктан, ал аткарыла турган жаңы сүрөттү (б.а. OTA сүрөтүн) тандайт.

(iii) OTA сүрөтү Амебага өткөрүлүп берилет, OTA дареги туура коюлган, калыбына келтирүүчү пин орнотулган:

Ameba OTA аркылуу жаңыртылган сүрөттү алды, демейки сүрөттүн 2 колу эски кол коюлат.

Жүктөгүч демейки сүрөт 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: Биринчи версияда биз OTA дарегин жана калыбына келтирүүчү пин орнотушубуз керек. Бул жолу USB аркылуу жүктөө биринчи версия болгондуктан, бул маанини өзгөртүүнүн кажети жок.

§ OTA_PORT: Arduino IDE Амебаны mDNS аркылуу табат. Ameba Arduino IDEге OTA сүрөтүн күтүү үчүн TCP 5000 портун ачаарын айтат.

§ RECOVERY_PIN: Калыбына келтирүү үчүн колдонулган пинти конфигурациялаңыз. Биз бул жерде 18 -пинди колдонобуз.

Андан кийин биз USB жүктөө программасын Ameba колдонобуз. Куралдар -> Порттарды басыңыз, колдонуу үчүн сериялык портту текшериңиз:

Сураныч, Arduino IDE программаны жүктөө жана чыгаруу үчүн бир портту колдонот. Биз OTAны колдонуп жатканда журналды чыгаруу мүмкүн болбогон кырдаалды болтурбоо үчүн, журналдын билдирүүсүн көрүү үчүн сериялык монитордун ордуна башка сериялык порт терминалын (мис., Tera мөөнөтү же замаска) колдонобуз.

Андан кийин жүктөөнү чыкылдатып, кайра орнотуу баскычын басыңыз.

Журнал билдирүүсүндө:

1. “===== Image 1 ====” жана “Image 2 ====” киришинин ортосунда сиз “Flash Image 2: Addr 0xb000” таба аласыз. Бул Ameba 0xb000 боюнча Default Image 2ден жүктөөнү чечет дегенди билдирет.

2. "Enter Image 2 ====" кийин, "Бул 1 версиясын" таба аласыз. Бул биз эскизге кошкон журнал билдирүүсү.

3. Ameba APге туташып, "192.168.1.238" IP дарегин алгандан кийин, mDNSти иштетет жана кардарды күтөт.

Андан кийин, "MY_VERSION_NUMBER" дегенди 2ге өзгөртөбүз.

"Куралдар" -> "Порт" чыкылдатыңыз, сиз "Тармак портторунун" тизмесин көрө аласыз. "MyAmeba 192.168.1.238 (Ameba RTL8195A)" дегенди табыңыз, MyAmeba - бул биз үлгү кодуна койгон mDNS түзмөгүнүн аталышы, ал эми "192.168.1.238" - Ameba IPи.

Эгерде сиз Amebaнын портун таба албасаңыз, ырастаңыз:

- Сиздин компьютер менен Ameba бир эле жергиликтүү тармакта болобу?

- Arduino IDEди кайра баштоого аракет кылыңыз.

- Ameba APге ийгиликтүү туташкандыгын билүү үчүн Serial Monitor журналын текшериңиз.

Андан кийин жүктөөнү чыкылдатыңыз. Бул жолу программа TCP аркылуу жүктөлөт. Журнал терминалында сиз кардардын байланыш маалыматын көрө аласыз.

OTA сүрөтү ийгиликтүү жүктөлгөндө, Ameba кайра жүктөлөт жана кийинки журнал журнал терминалында көрсөтүлөт.

- “===== Enter Image 1 ====” жана “Enter Image 2 ====” ортосунда сиз “Flash Image 2: Addr 0x80000” деген журналды көрө аласыз. Бул Ameba 0x80000 боюнча OTA Image жүктөөнү чечет дегенди билдирет.

- "Сүрөт 2ге кирүү ====" кийин, "Бул 2 -версия" журналы эскизге кошкон билдирүүбүз.

OTA сүрөтү Ameba'га жүктөлгөндөн кийин мурунку сүрөттү калыбына келтирүү үчүн, биз эскизде орнотулган калыбына келтирүүчү пинди (б.а. 18 -пин) HIGH (3.3V) менен туташтырып, баштапкы абалга келтирүү керек.

Андан кийин Жүктөө учурунда Демейки сүрөт 2 пайда болот. Жүктөлүп алынган OTA сүрөтү жок кылынбайт, калыбына келтирүү пини HIGHдон ажыратылганда, OTA сүрөтү аткарылат.

Биз төмөнкү сүрөттө OTA аркылуу өнүгүү агымын жыйынтыктайбыз.

Сунушталууда: