Агуулгын хүснэгт:

Arduino -г агаарт програмчлах (OTA) - Амеба Ардуино: 4 алхам
Arduino -г агаарт програмчлах (OTA) - Амеба Ардуино: 4 алхам

Видео: Arduino -г агаарт програмчлах (OTA) - Амеба Ардуино: 4 алхам

Видео: Arduino -г агаарт програмчлах (OTA) - Амеба Ардуино: 4 алхам
Видео: Как сделать ПЛК LDmicro Arduino с ЖК-дисплеем I2C 2024, Арваннэгдүгээр
Anonim
Arduino Over Air програмчлал (OTA) - Амеба Ардуино
Arduino Over Air програмчлал (OTA) - Амеба Ардуино

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

Энэхүү зааварт би Ameba Arduino Wi-Fi микроконтроллер дээр хаа сайгүй байдаг Arduino IDE-ийг ашиглан Wi-Fi микроконтроллер дээрээ OTA-ийг хэрхэн тохируулахыг танд үзүүлэх болно.

Хангамж

Амеба Ардуино x 1

Алхам 1: OTA

OTA
OTA

OTA (Over-The-Air) нь интернетээр дамжуулан онлайн шинэчлэх механизмыг хэлдэг.

Arduino IDE нь дээрх зураг дээрх ажлын урсгалыг дагаж OTA функцийг санал болгодог.

(i) Arduino IDE нь дотоод сүлжээнд Arduino IDEOTA үйлчилгээтэй төхөөрөмжүүдийг mDNS -ээр хайх.

(ii) mDNS үйлчилгээ нь Ameba дээр ажиллаж байгаа тул 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 санах ойн зохион байгуулалт

Ameba Flash санах ойн зохион байгуулалт
Ameba Flash санах ойн зохион байгуулалт

Ameba RTL8195A флаш санах ойн хэмжээ нь 2MB бөгөөд 0x00000000 -аас 0x00200000 хооронд хэлбэлздэг. Гэсэн хэдий ч Ameba RTL8710 -ийн флаш санах ойн хэмжээ нь 1MB юм. Янз бүрийн хавтанг ашиглахын тулд флаш санах ойн зохион байгуулалтыг 1MB гэж үздэг.

Дээрх зурагт үзүүлсэн шиг Ameba програм нь флаш санах ойн гурван хэсгийг эзэлдэг.

- Ачаалах зураг:

Энэ бол ачаалагч юм. Амеба ачаалах үед ачаалах дүрсийг санах ойд байрлуулж, эхлүүлэх ажлыг гүйцэтгэдэг. Цаашилбал, энэ нь ачаалагчийг ачаалсны дараа хаашаа явахаа тодорхойлдог. Bootloader нь системийн өгөгдлийн талбайн OTA хаяг болон сэргээх зүүг хараад дараа нь ямар дүрсийг гүйцэтгэх болохыг тодорхойлдог. Ачаалагчийн төгсгөлд энэ нь зургийг санах ойд байрлуулж, түүнийг гүйцэтгэх болно.

- Анхдагч зураг 2:

Хөгжүүлэгчийн кодыг энэ хэсэгт байрлуулсан бөгөөд хаяг нь 0x0000B000 -аас эхэлдэг. Эхний 16 байт нь зургийн толгой бөгөөд 0x0000B008 ~ 0x0000B00F нь гарын үсэг агуулдаг бөгөөд энэ нь зураг хүчинтэй эсэхийг шалгахад хэрэглэгддэг. Гарын үсгийн талбар нь шинэ дүрсийг хуучин зургаас ялгах хоёр хүчин төгөлдөр утгатай байна.

- OTA зураг:

Энэ хэсгийн өгөгдөл нь мөн хөгжүүлэгчийн код юм. Анхдагч байдлаар санах ойн энэ хэсэг нь 0x00080000 -аас эхэлдэг (өөрчлөх боломжтой). OTA дүрс ба Default Image 2 -ийн гол ялгаа нь флаш санах ойн хаяг болон гарын үсгийн утга юм.

Кодоос гадна зарим өгөгдлийн блокууд байдаг:

- Системийн мэдээлэл:

Системийн мэдээллийн блок 0x00009000 -аас эхэлдэг. OTA-тай холбоотой хоёр мэдээлэл байна:

1. OTA хаяг: 0x00009000 -аас эхлэн 4 байтын өгөгдөл. Энэ нь OTA Image хаягийг хэлдэг. Хэрэв OTA хаягийн утга буруу байвал (өөрөөр хэлбэл 0xFFFFFFFFF) флаш санах ой дахь OTA зургийг зөв ачаалах боломжгүй байна.

2. Сэргээх зүү: 0x00009008 -аас эхлэн 4 байт өгөгдөл, Сэргээх зүү нь аль зураг хүчинтэй байх үед аль дүрсийг (үндсэн зураг 2 эсвэл OTA дүрс) гүйцэтгэхээ тодорхойлоход хэрэглэгддэг. Хэрэв сэргээх зүү утга буруу байвал (өөрөөр хэлбэл 0xFFFFFFFF) шинэ зургийг анхдагчаар гүйцэтгэх болно.

Бид програмыг Ameba -д DAP -ээр байршуулах үед системийн өгөгдлийг устгах болно. Өөрөөр хэлбэл, OTA хаягийг устгаж, Ameba нь OTA дүрс байхгүй болохыг тодорхойлох болно.

- Калибровкийн өгөгдөл: Захын шалгалт тохируулгын өгөгдлийг энэ блокт байрлуулсан болно. Дүрмээр бол эдгээр өгөгдлийг устгах ёсгүй.

Алхам 3: Ачаалах урсгал

Ачаалах урсгал
Ачаалах урсгал

Дээрх зургаас харахад

Бид дараах хувилбаруудыг хэлэлцдэг: (i) OTA ашиглагддаггүй, програмыг байршуулахын тулд DAP -ийг ашиглана уу.

Энэ тохиолдолд bootloader нь үндсэн зураг 2 болон OTA хаягийн гарын үсгийг шалгадаг. OTA хаягийг устгасан тул 2 -р зургийг сонгож гүйцэтгэх болно.

(ii) OTA дүрсийг Ameba руу шилжүүлсэн, OTA хаягийг зөв тохируулсан, сэргээх зүү тохируулаагүй байна:

Амеба OTA -ээр дамжуулан шинэчилсэн зургийг хүлээн авсан бөгөөд үндсэн зураг 2 -ийн гарын үсгийг хуучин гарын үсэг болгон тохируулах болно.

Bootloader нь үндсэн зураг 2 болон OTA хаягийн гарын үсгийг шалгадаг. OTA хаяг нь хүчинтэй OTA дүрсийг агуулсан болохыг олж мэдэх болно. Сэргээх зүү тохируулагдаагүй тул гүйцэтгэх шинэ зургийг (өөрөөр хэлбэл OTA дүрс) сонгоно.

(iii) OTA дүрсийг Ameba руу шилжүүлсэн, OTA хаягийг зөв тохируулсан, сэргээх зүүг тохируулсан:

Амеба OTA -ээр дамжуулан шинэчилсэн зургийг хүлээн авсан бөгөөд үндсэн зураг 2 -ийн гарын үсгийг хуучин гарын үсэг болгон тохируулах болно.

Bootloader нь үндсэн зураг 2 болон OTA хаягийн гарын үсгийг шалгадаг. OTA хаяг нь хүчинтэй OTA дүрсийг агуулсан болохыг олж мэдэх болно. Дараа нь сэргээх зүүгийн утгыг шалгана уу. Хэрэв сэргээх зүү нь LOW -тэй холбогдсон бол шинэ дүрсийг (өөрөөр хэлбэл OTA дүрс) гүйцэтгэх болно. Хэрэв сэргээх зүү нь HIGH -д холбогдсон бол хуучин дүрсийг (өөрөөр хэлбэл үндсэн зураг 2) гүйцэтгэх болно.

Алхам 4: Жишээ

Жишээ
Жишээ
Жишээ
Жишээ
Жишээ
Жишээ
Жишээ
Жишээ

OTA функцийг ашиглахын тулд DAP firmware -ийг> 0.7 (v0.7 оруулаагүй болно) болгон сайжруулна уу. Үйлдвэрийн үндсэн DAP програм хангамж нь 0.7 хувилбар юм. DAP програмыг шинэчлэх зааврыг дагана уу:

Жишээг нээнэ үү: "Файл" -> "Жишээ" -> "AmebaOTA" -> "ota_basic"

Сүлжээний холболтын дээжийн кодонд ssid болон нууц үгийн мэдээллийг бөглөнө үү.

OTA -тай холбоотой зарим параметрүүд байдаг.

§ MY_VERSION_NUMBER: Эхний хувилбарт бид OTA хаяг болон сэргээх зүүг тохируулах хэрэгтэй. Энэ удаад USB -ээр дамжуулан байршуулах нь анхны хувилбар тул бид энэ утгыг өөрчлөх шаардлагагүй болно.

§ OTA_PORT: Arduino IDE нь Ameba -г mDNS -ээр дамжуулан олох болно. Ameba нь Arduino IDE -д OTA дүрсийг хүлээхийн тулд TCP 5000 портыг нээдэг гэж хэлэх болно.

§ RECOVERY_PIN: Сэргээхэд ашигладаг зүүг тохируулна уу. Бид энд 18 -р зүү ашигладаг.

Дараа нь бид USB байршуулах програмыг Ameba руу ашигладаг. Хэрэгслүүд -> Портууд дээр дарж ашиглах сериал портыг шалгана уу:

Arduino IDE нь нэг програмыг байршуулах програм болон гаралтын бүртгэлд ашигладаг болохыг анхаарна уу. OTA -ийг ашиглах үед бүртгэлийг гаргах боломжгүй байдлаас зайлсхийхийн тулд бид бүртгэлийн мессежийг үзэхийн тулд цуваа мониторын оронд бусад цуваа порт терминал (жишээ нь, Тера нэр томъёо эсвэл шаваас) ашигладаг.

Дараа нь байршуулах дээр дарж дахин тохируулах товчийг дарна уу.

Бүртгэлийн мессеж дээр:

1. “===== Зураг оруулах 1 ====” ба “Зураг оруулах 2 ====” хоёрын хооронд та “Flash Image 2: Addr 0xb000” -ийг олох боломжтой. Энэ нь Ameba Default Image 2 -ээс 0xb000 дээр ачаалахаар шийдсэн гэсэн үг юм.

2. “Зураг 2 оруулна уу ====” дараа “Энэ бол 1 -р хувилбар” -ыг олох боломжтой. Энэ бол ноорог дээр бидний оруулсан бүртгэлийн мессеж юм.

3. Амеба 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 -ийг дахин эхлүүлэхийг оролдоорой.

- Sereb Monitor дахь бүртгэлийн мессежийг шалгаад Ameba AP -тэй амжилттай холбогдсон эсэхийг шалгаарай.

Дараа нь байршуулах дээр дарна уу. Энэ удаад програмыг TCP -ээр байршуулах болно. Бүртгэлийн терминал дээр та үйлчлүүлэгчийн холболтын мэдээллийг харах боломжтой.

OTA дүрсийг амжилттай татаж авсны дараа Ameba дахин асах бөгөөд дараах бүртгэлийг бүртгэлийн терминал дээр харуулна.

- “===== Зураг оруулах 1 ====” ба “Зураг оруулах 2 ====” хоёрын хооронд та “Flash Image 2: Addr 0x80000” гэсэн мессежийг харж болно. Энэ нь Ameba 0x80000 дээр OTA Image -ээс ачаалахаар шийдсэн гэсэн үг юм.

- "Зураг 2 оруулна уу ====" дараа "Энэ бол хувилбар 2" гэсэн бүртгэл нь ноорог дээр бидний оруулсан зурвас юм.

OTA дүрсийг Ameba -д татаж авсны дараа өмнөх дүр төрхийг сэргээхийн тулд ноорог (өөрөөр хэлбэл 18 -р зүү) дээр тогтоосон сэргээх зүүг HIGH (3.3V) руу холбоод дахин тохируулах товчийг дарна уу.

Дараа нь ачаалах үед Default image 2 гарч ирнэ. Татаж авсан OTA зургийг устгахгүй бөгөөд сэргээх зүүг HIGH -аас салгасны дараа OTA дүрсийг гүйцэтгэх болно.

Дараах зураг дээр бид OTA ашиглан хөгжлийн явцыг тоймлон харуулав.

Зөвлөмж болгож буй: