Mündəricat:

Arduino Havada Proqramlaşdırma (OTA) - Ameba Arduino: 4 addım
Arduino Havada Proqramlaşdırma (OTA) - Ameba Arduino: 4 addım

Video: Arduino Havada Proqramlaşdırma (OTA) - Ameba Arduino: 4 addım

Video: Arduino Havada Proqramlaşdırma (OTA) - Ameba Arduino: 4 addım
Video: Leap Motion SDK 2024, Dekabr
Anonim
Arduino Havada Proqramlaşdırma (OTA) - Ameba Arduino
Arduino Havada Proqramlaşdırma (OTA) - Ameba Arduino

Bazarda bir çox Wi-Fi mikro nəzarətçisi var, bir çox istehsalçı Arduino IDE istifadə edərək Wi-Fi mikro nəzarətçisini proqramlaşdırmaqdan zövq alır. Bununla birlikdə, bir Wi-Fi mikro nəzarətçisinin təklif etdiyi ən gözəl xüsusiyyətlərdən biri, kodunuzu uzaqdan və simsiz olaraq OTA (Over-The-Air) funksiyasından istifadə edərək proqramlaşdırmaq və yükləməkdir.

Bu Təlimat kitabında, Ameba Arduino Wi-Fi mikro nəzarətçisində hər yerdə olan Arduino IDE-dən istifadə edərək Wi-Fi mikro nəzarətçinizdə OTA qurmağı sizə göstərəcəyəm!

Təchizat

Ameba Arduino x 1

Addım 1: OTA

OTA
OTA

OTA (Over-The-Air) İnternet üzərindən onlayn təkmilləşdirmə mexanizminə aiddir.

Arduino IDE, yuxarıdakı şəkildə iş axınını izləyən OTA xüsusiyyətini təqdim edir.

(i) Arduino IDE yerli şəbəkədə Arduino IDEOTA xidməti olan cihazlar üçün mDNS vasitəsilə axtarış aparır.

(ii) mDNS xidməti Ameba üzərində işlədiyi üçün Ameba mDNS axtarışına cavab verir və əlaqə üçün xüsusi TCP portunu açır.

(iii) İstifadəçi Arduino IDE -də proqram hazırlayır. Tamamlandıqda, şəbəkə portunu seçin.

(iv) Yükləmə düyməsini basın. Arduino IDE, OTA görüntüsünü TCP vasitəsi ilə Ameba'ya göndərir, Ameba görüntüyü müəyyən ünvana saxlayır və növbəti dəfə bu şəkildən yükləmək üçün açılış seçimini təyin edir.

İş axını üç hissədən ibarətdir: mDNS, TCP və OTA görüntü prosesi. MDNS ilə bağlı təfərrüatlar mDNS təlimatında təsvir edilmişdir. TCP yuva proqramlaşdırması görüntünün ötürülməsində istifadə olunur və artıq OTA API -də təqdim olunur.

Növbəti hissədə, OTA görüntüsünün necə işlənəcəyini müzakirə edəcəyik və Ameba flash yaddaş düzeni və açılış axını haqqında bəzi əsas bilikləri təqdim edəcəyik.

Addım 2: Ameba Flash Yaddaş Düzeni

Ameba Flash Yaddaş Düzeni
Ameba Flash Yaddaş Düzeni

Ameba RTL8195A -nın flash yaddaş ölçüsü 2 MB, 0x00000000 ilə 0x00200000 arasında dəyişir. Bununla birlikdə, Ameba RTL8710 -un flash yaddaş ölçüsü 1MB -dir. Fərqli lövhələrin istifadəsinə uyğun olaraq, flash yaddaşın 1MB olduğunu düşünürük.

Yuxarıdakı şəkildə göstərildiyi kimi, Ameba proqramı flash yaddaşın üç hissəsini tutur:

- Boot Şəkil:

Yəni önyükleyici. Ameba açıldıqda, önyükleme görüntüsünü yaddaşa yerləşdirir və işə salır. Bundan əlavə, önyükleyicidən sonra hara gedəcəyinizi müəyyənləşdirir. Bootloader, sistem məlumat sahəsindəki OTA ünvanına və bərpa pininə baxır və sonra hansı görüntünün icra ediləcəyini təyin edir. Yükləyicinin sonunda görüntünü yaddaşa yerləşdirir və icra etməyə davam edir.

- Varsayılan Şəkil 2:

Geliştirici kodu bu hissəyə yerləşdirilib, ünvan 0x0000B000 -dən başlayır. İlk 16 bayt şəkil başlığıdır, 0x0000B008 ~ 0x0000B00F, görüntünün etibarlı olub olmadığını yoxlamaq üçün istifadə olunan İmzanı ehtiva edir. İmza sahəsində yeni görüntünü köhnə şəkildən ayırmaq üçün iki etibarlı dəyər var.

- OTA Şəkil:

Bu hissədəki məlumatlar da geliştirici kodudur. Varsayılan olaraq, yaddaşın bu hissəsi 0x00080000 -dən başlayır (dəyişdirilə bilər). OTA görüntüsü ilə Varsayılan Şəkil 2 arasındakı əsas fərqlər flash yaddaş ünvanı və İmza dəyəridir.

Koddan başqa bəzi məlumat blokları var:

- Sistem məlumatları:

Sistem məlumat bloku 0x00009000 -dən başlayır. OTA ilə əlaqəli iki məlumat var:

1. OTA ünvanı: 0x00009000 -dən başlayaraq 4 bayt məlumat. OTA Image ünvanını bildirir. OTA ünvan dəyəri etibarsızdırsa (yəni 0xFFFFFFFF), flash yaddaşdakı OTA görüntüsü düzgün yüklənə bilməz.

2. Bərpa Pin: 0x00009008 -dən başlayaraq 4 bayt məlumat, Bərpa pin hər iki şəkil etibarlı olduqda hansı görüntünün (standart Şəkil 2 və ya OTA Şəkili) icra olunacağını təyin etmək üçün istifadə olunur. Bərpa pin dəyəri etibarsızdırsa (yəni 0xFFFFFFFF), yeni şəkil standart olaraq icra olunacaq.

Proqramı DAP vasitəsilə Ameba'ya yüklədiyimiz zaman sistem məlumatları silinəcəkdir. Yəni, OTA ünvanı silinəcək və Ameba OTA görüntüsünün olmadığını müəyyən edəcək.

- Kalibrləmə Məlumatları: Periferik kalibrləmə məlumatları bu blokda yerləşdirilir. Adətən bu məlumatlar silinməməlidir.

Addım 3: Boot Flow

Boot Flow
Boot Flow

Yuxarıdakı şəkildən, Aşağıdakı ssenariləri müzakirə edirik: (i) OTA istifadə edilmir, proqramı yükləmək üçün DAP istifadə edin:

Bu vəziyyətdə, bootloader standart şəkil 2 və OTA ünvanının imzasını yoxlayır. OTA ünvanı silindiyindən, icra etmək üçün standart şəkil 2 seçiləcək.

(ii) OTA görüntüsü Ameba'ya köçürülür, OTA ünvanı düzgün qurulur, bərpa pimi təyin olunmur:

Ameba OTA vasitəsilə yenilənmiş bir şəkil aldı, standart şəkil 2 -nin imzası köhnə imzaya qoyulacaq.

Bootloader, standart şəkil 2 və OTA ünvanının imzasını yoxlayır. OTA ünvanının etibarlı bir OTA şəkli olduğunu tapacaq. Bərpa pin təyin olunmadığı üçün icra ediləcək yeni görüntünü (yəni OTA görüntüsünü) seçir.

(iii) OTA görüntüsü Ameba'ya köçürülür, OTA ünvanı düzgün qurulur, bərpa pimi təyin olunur:

Ameba OTA vasitəsilə yenilənmiş bir şəkil aldı, standart şəkil 2 -nin imzası köhnə imzaya qoyulacaq.

Bootloader, standart şəkil 2 və OTA ünvanının imzasını yoxlayır. OTA ünvanının etibarlı bir OTA şəkli olduğunu tapacaq. Sonra bərpa pin dəyərini yoxlayın. Bərpa pin LOW -a bağlıdırsa, yeni görüntü (yəni OTA görüntüsü) icra ediləcək. Bərpa pinini HIGH -a bağlasanız, köhnə şəkil (yəni standart şəkil 2) icra olunacaq.

Addım 4: Nümunə

Misal
Misal
Misal
Misal
Misal
Misal
Misal
Misal

OTA xüsusiyyətindən istifadə etmək üçün, lütfən, DAP firmware -ni> 0.7 versiyasına yüksəldin (v0.7 daxil deyil). Standart DAP firmware proqramı 0.7 versiyasıdır. Zəhmət olmasa DAP firmware proqramını təkmilləşdirmək üçün təlimatları izləyin:

Misalı açın: "Fayl" -> "Nümunələr" -> "AmebaOTA" -> "ota_basic"

Şəbəkə bağlantısı üçün nümunə kodunda ssid və parol məlumatlarını daxil edin.

OTA ilə əlaqəli bəzi parametrlər var:

§ MY_VERSION_NUMBER: Birinci versiyada OTA ünvanını və bərpa pinini təyin etməliyik. Bu dəfə USB ilə yüklədiyimiz ilk versiya olduğu üçün bu dəyəri dəyişdirməyimizə ehtiyac yoxdur.

§ OTA_PORT: Arduino IDE, Ameba'yı mDNS vasitəsilə tapacaq. Ameba, Arduino IDE -yə OTA görüntüsünü gözləmək üçün TCP 5000 portunu açdığını söyləyəcək.

§ RECOVERY_PIN: Bərpa üçün istifadə olunan pimi konfiqurasiya edin. Burada 18 pin istifadə edirik.

Sonra Ameba'ya USB yükləmə proqramından istifadə edirik. Alətlər -> Limanlar vurun, istifadə etmək üçün serial portunu yoxlayın:

Unutmayın ki, Arduino IDE yükləmə proqramı və çıxışlar üçün bir port istifadə edir. OTA istifadə edərkən qeydin çıxıla bilməyəcəyi vəziyyətdən qaçmaq üçün, günlük mesajını izləmək üçün serial monitor yerinə digər seriyalı port terminalını (məsələn, Tera termini və ya macunu) istifadə edirik.

Sonra yükləyin və sıfırlama düyməsini basın.

Günlük mesajında:

1. “===== Şəkil 1 ==== daxil edin” və “Şəkil 2 daxil edin ====” arasında “Flash Şəkil 2: Addr 0xb000” tapa bilərsiniz. Bu o deməkdir ki, Ameba Default Image 2 -dən 0xb000 -də açılmağa qərar verir.

2. "Şəkil 2 -ə daxil olun ====" dan sonra "Bu versiya 1" -i tapa bilərsiniz. Bu eskizdə əlavə etdiyimiz qeyd mesajıdır.

3. Ameba AP -yə qoşulduqdan və "192.168.1.238" IP ünvanını aldıqdan sonra mDNS -i aktivləşdirir və müştərini gözləyir.

Sonra "MY_VERSION_NUMBER" nömrəsini 2 olaraq dəyişdiririk.

"Alətlər" -> "Liman" a vurun, "Şəbəkə portları" nın siyahısını görə bilərsiniz. "MyAmeba 192.168.1.238 (Ameba RTL8195A)" tapın, MyAmeba nümunə kodunda təyin etdiyimiz mDNS cihaz adıdır və "192.168.1.238" Ameba IP -dir.

Ameba şəbəkə portunu tapa bilmirsinizsə, zəhmət olmasa təsdiqləyin:

- kompüterinizlə Ameba eyni lokal şəbəkədədirmi?

- Arduino IDE -ni yenidən başladın.

- Ameba -nın AP -yə uğurla qoşulduğunu görmək üçün Serial Monitordakı giriş mesajını yoxlayın.

Sonra yüklə vurun. Bu dəfə proqram TCP vasitəsilə yüklənəcək. Giriş terminalında müştəri əlaqəsi məlumatlarını görə bilərsiniz.

OTA şəkli uğurla yükləndikdə, Ameba yenidən başlayacaq və aşağıdakı qeyd log terminalında göstəriləcək.

- "===== Şəkil 1 ====" və "Şəkil 2 daxil edin ====" arasında "Flash Image 2: Addr 0x80000" qeyd mesajını görə bilərsiniz. Bu o deməkdir ki, Ameba 0x80000 -də OTA Image -dən yükləməyi qərara alır.

- "Şəkil 2 daxil edin ====" dən sonra "Bu versiya 2" jurnalı eskizdə əlavə etdiyimiz mesajdır.

OTA görüntüsü Ameba'ya endirildikdən sonra əvvəlki görüntüyə qayıtmaq üçün zəhmət olmasa eskizdə qoyduğumuz bərpa pinini (yəni pin 18) YÜK (3.3V) ilə bağlayın və sıfırlama düyməsini basın.

Sonra açılış zamanı Default image 2 göstəriləcək. Nəzərə alın ki, yüklənmiş OTA görüntüsü silinmir, bərpa pinini HIGH -dan ayırdıqdan sonra OTA görüntüsü icra olunacaq.

Aşağıdakı şəkildə OTA istifadə edərək inkişaf axınını ümumiləşdiririk.

Tövsiyə: