جدول المحتويات:

برمجة Arduino عبر الأثير (OTA) - Ameba Arduino: 4 خطوات
برمجة Arduino عبر الأثير (OTA) - Ameba Arduino: 4 خطوات

فيديو: برمجة Arduino عبر الأثير (OTA) - Ameba Arduino: 4 خطوات

فيديو: برمجة Arduino عبر الأثير (OTA) - Ameba Arduino: 4 خطوات
فيديو: How to Perform the OTA Upload to an ESP32 Board Using Arduino Cloud 2024, شهر نوفمبر
Anonim
برمجة Arduino عبر الأثير (OTA) - Ameba Arduino
برمجة Arduino عبر الأثير (OTA) - Ameba Arduino

هناك العديد من وحدات التحكم الدقيقة لشبكة Wi-Fi في السوق ، ويستمتع العديد من المصنّعين ببرمجة متحكم Wi-Fi الخاص بهم باستخدام Arduino IDE. ومع ذلك ، فإن واحدة من أروع الميزات التي يقدمها متحكم Wi-Fi يميل إلى التغاضي عنها ، وهي برمجة وتحميل الكود الخاص بك عن بُعد ولاسلكيًا باستخدام وظيفة OTA (Over-The-Air).

في Instructable ، سأوضح لك كيفية إعداد OTA على متحكم Wi-Fi الخاص بك باستخدام Arduino IDE في كل مكان على متحكم Ameba Arduino Wi-Fi!

اللوازم

أميبا اردوينو × 1

الخطوة 1: عبر الهواء

OTA
OTA

يشير OTA (Over-The-Air) إلى آلية الترقية عبر الإنترنت عبر الإنترنت.

يوفر Arduino IDE ميزة OTA ، والتي تتبع سير العمل في الشكل أعلاه.

(ط) يبحث Arduino IDE عبر mDNS عن الأجهزة المزودة بخدمة Arduino IDEOTA في الشبكة المحلية.

(2) نظرًا لأن خدمة mDNS تعمل على Ameba ، فإن Ameba تستجيب لبحث mDNS وتفتح منفذ TCP المحدد للاتصال.

(3) يقوم المستخدم بتطوير البرنامج في Arduino IDE. عند الانتهاء ، اختر منفذ الشبكة.

(4) انقر فوق تحميل. ثم يرسل Arduino IDE صورة OTA إلى Ameba من خلال TCP ، ويحفظ Ameba الصورة إلى عنوان محدد ويعين خيار التمهيد للتمهيد من هذه الصورة في المرة القادمة.

يتكون سير العمل من ثلاثة أجزاء: عملية صورة mDNS و TCP و OTA. التفاصيل المتعلقة بـ mDNS موصوفة في البرنامج التعليمي mDNS. تُستخدم برمجة TCP socket في نقل الصورة وهي متوفرة بالفعل في OTA API.

في القسم التالي ، سنناقش كيفية معالجة صورة OTA ، وتقديم بعض المعرفة الأساسية حول تخطيط ذاكرة فلاش Ameba وتدفق التمهيد.

الخطوة 2: تخطيط ذاكرة فلاش Ameba

تخطيط ذاكرة فلاش Ameba
تخطيط ذاكرة فلاش Ameba

حجم ذاكرة فلاش Ameba RTL8195A هو 2 ميغا بايت ، ويتراوح من 0x00000000 إلى 0x00200000. ومع ذلك ، فإن حجم ذاكرة فلاش Ameba RTL8710 هو 1 ميغا بايت. لتتناسب مع استخدام اللوحات المختلفة ، نفترض أن تخطيط ذاكرة الفلاش هو 1 ميغا بايت.

كما هو موضح في الشكل أعلاه ، يحتل برنامج Ameba ثلاثة أجزاء من ذاكرة الفلاش:

- صورة الحذاء :

هذا هو محمل الإقلاع. عندما يقوم Ameba بالتمهيد ، فإنه يضع صورة التمهيد في الذاكرة ويقوم بإجراء التهيئة. علاوة على ذلك ، فإنه يحدد مكان المتابعة بعد أداة تحميل التشغيل. يبحث Bootloader في عنوان OTA ودبوس الاسترداد في منطقة بيانات النظام ويحدد الصورة التي سيتم تنفيذها بعد ذلك. في نهاية محمل الإقلاع ، فإنه يضع الصورة في الذاكرة ويمضي في تنفيذها.

- الصورة الافتراضية 2 :

يتم وضع رمز المطور في هذا الجزء ، يبدأ العنوان من 0x0000B000. أول 16 بايت هي رأس الصورة ، 0x0000B008 ~ 0x0000B00F يشتمل على التوقيع ، والذي يستخدم للتحقق مما إذا كانت الصورة صالحة. يحتوي حقل التوقيع على قيمتين صالحتين لتمييز الصورة الجديدة عن الصورة القديمة.

- صورة OTA :

البيانات الموجودة في هذا الجزء هي أيضًا كود المطور. بشكل افتراضي ، يبدأ هذا الجزء من الذاكرة من 0x00080000 (يمكن تغييره). الاختلافات الرئيسية بين صورة OTA والصورة الافتراضية 2 هي عنوان ذاكرة الفلاش وقيمة التوقيع.

بصرف النظر عن الكود ، هناك بعض كتل البيانات:

- بيانات النظام:

تبدأ كتلة بيانات النظام من 0x00009000. هناك نوعان من البيانات المتعلقة بـ OTA:

1. عنوان OTA بيانات 4 بايت تبدأ من 0x00009000. يخبر عنوان صورة OTA. إذا كانت قيمة عنوان OTA غير صالحة (على سبيل المثال ، 0xFFFFFFFF) ، فلا يمكن تحميل صورة OTA في ذاكرة الفلاش بشكل صحيح.

2. بيانات الاسترداد : 4 بايت تبدأ من 0x00009008 ، يتم استخدام دبوس الاسترداد لتحديد الصورة (الصورة الافتراضية 2 أو صورة OTA) التي سيتم تنفيذها عندما تكون كلتا الصورتين صالحتين. إذا كانت قيمة رقم التعريف الشخصي للاسترداد غير صالحة (على سبيل المثال ، 0xFFFFFFFF) ، فسيتم تنفيذ الصورة الجديدة افتراضيًا.

ستتم إزالة بيانات النظام عندما نقوم بتحميل البرنامج إلى Ameba عبر DAP. أي ، ستتم إزالة عنوان OTA وسيحدد Ameba عدم وجود صورة OTA.

- بيانات المعايرة يتم وضع بيانات المعايرة الطرفية في هذه الكتلة. عادة لا ينبغي حذف هذه البيانات.

الخطوة 3: تدفق التمهيد

تدفق التمهيد
تدفق التمهيد

من الصورة أعلاه

نناقش السيناريوهات التالية: (1) لا يتم استخدام OTA ، استخدم DAP لتحميل البرنامج:

في هذه الحالة ، يتحقق برنامج bootloader من توقيع الصورة الافتراضية 2 وعنوان OTA. منذ إزالة عنوان OTA ، سيتم تحديد الصورة الافتراضية 2 للتنفيذ.

(2) يتم نقل صورة OTA إلى Ameba ، ويتم تعيين عنوان OTA بشكل صحيح ، ولم يتم تعيين دبوس الاسترداد :

تلقت Ameba صورة محدثة عبر OTA ، سيتم تعيين توقيع الصورة الافتراضية 2 على التوقيع القديم.

يتحقق Bootloader من توقيع الصورة الافتراضية 2 وعنوان OTA. سيجد عنوان OTA يحتوي على صورة OTA صالحة. نظرًا لعدم تعيين دبوس الاسترداد ، فإنه يختار الصورة الجديدة (أي صورة OTA) ليتم تنفيذها.

(3) يتم نقل صورة OTA إلى Ameba ، ويتم تعيين عنوان OTA بشكل صحيح ، ويتم تعيين دبوس الاسترداد :

تلقت Ameba صورة محدثة عبر OTA ، سيتم تعيين توقيع الصورة الافتراضية 2 على التوقيع القديم.

يتحقق Bootloader من توقيع الصورة الافتراضية 2 وعنوان OTA. سيجد عنوان OTA يحتوي على صورة OTA صالحة. ثم تحقق من قيمة دبوس الاسترداد. إذا كان دبوس الاسترداد متصلاً بـ LOW ، فسيتم تنفيذ الصورة الجديدة (أي صورة OTA). إذا كان دبوس الاسترداد متصلاً بـ HIGH ، فسيتم تنفيذ الصورة القديمة (أي الصورة الافتراضية 2).

الخطوة 4: مثال

مثال
مثال
مثال
مثال
مثال
مثال
مثال
مثال

لاستخدام ميزة OTA ، يرجى ترقية البرنامج الثابت DAP إلى الإصدار> 0.7 (لم يتم تضمين الإصدار 0.7). البرنامج الثابت الافتراضي من المصنع DAP هو الإصدار 0.7. يرجى اتباع التعليمات لترقية البرنامج الثابت DAP:

افتح المثال: "ملف" -> "أمثلة" -> "AmebaOTA" -> "ota_basic"

املأ معلومات SSID وكلمة المرور في نموذج التعليمات البرمجية لاتصال الشبكة.

هناك بعض المعلمات المتعلقة بـ OTA:

§ MY_VERSION_NUMBER : في الإصدار الأول ، نحتاج إلى تعيين عنوان 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 ====” ، يمكنك أن تجد “Flash Image 2: Addr 0xb000”. هذا يعني أن Ameba تحدد التمهيد من الصورة الافتراضية 2 عند 0xb000.

2. بعد "أدخل الصورة 2 ====" ، يمكنك أن تجد "هذا هو الإصدار 1". هذه هي رسالة السجل التي نضيفها في الرسم التخطيطي.

3. بعد توصيل Ameba بـ AP والحصول على عنوان IP "192.168.1.238" ، يقوم بتنشيط mDNS وينتظر العميل.

بعد ذلك ، نقوم بتعديل "MY_VERSION_NUMBER" إلى 2.

انقر فوق "أدوات" -> "منفذ" ، يمكنك مشاهدة قائمة "منافذ الشبكة". ابحث عن "MyAmeba عند 192.168.1.238 (Ameba RTL8195A)" ، MyAmeba هو اسم جهاز mDNS الذي قمنا بتعيينه في نموذج التعليمات البرمجية ، و "192.168.1.238" هو عنوان IP الخاص بـ Ameba.

إذا لم تتمكن من العثور على منفذ شبكة 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.3 فولت) ، ثم اضغط على إعادة التعيين.

ثم سيتم اختيار الصورة الافتراضية 2 عند التشغيل. لاحظ أنه لا يتم حذف صورة OTA التي تم تنزيلها ، بمجرد فصل دبوس الاسترداد عن HIGH ، سيتم تنفيذ صورة OTA.

نلخص تدفق التطوير باستخدام OTA في الشكل التالي.

موصى به: