基於MicroChip ATmega4808的阿里雲IOT連接開發套件方案

MicroChip(MCHP)的ATmega4808阿里雲IOT連接開發套件(簡稱套件)由功能強大的AVR 8-bit MCU ATmega4808加密認證IC ATECC608A及經過認證的ATWINC1510 Wi-Fi模塊組成用戶簡單的操作即可快速連接到阿里雲IOT平台。



藉助該套件用戶可快速開發智慧家庭、智慧城市、智慧工廠等相關產品;例如在智慧家庭中通過阿里雲平台遠程控制洗衣機、探測環境光亮度後智能調節窗簾開合、門磁及求助報警等。
硬體上,套件集成溫度、亮度傳感器、LDE指示燈以及板載調試器;高度集成、即插即用,無需其它部件即可完成IOT連接及應用開發。
軟體方面,使用免費開發環境Atmel Studio 或MPLAB X IDE進行代碼開發,藉助Atmel START或MPLAB Code Configurator(MCC)提供的代碼等快速開發相關應用,極大的縮短開發周期。

採用8-bit MCU極大的優化了成本、降低開發難度,MCHP通過Atmel START提供了阿里雲IOT開發源碼,用戶將代碼導入後MPLAB X IDE,根據阿里雲IOT平台設備證書信息進行少量的修改後,即可將套件連接到阿里雲IOT平台;用戶可藉助MCC生成MCU外設初始化及操作API函數,無需耗費時間查閱晶片手冊通過寄存器操作,縮減了開發周期。


經過全面認證(美國、加拿大、歐洲、日本、韓國、中國、印度和台灣均有認證)的ATWINC1510 Wi-Fi模組支持802.11 b/g/n;SOC所需外部元器件非常少;固件包含TCP/IP協議棧,支持TLS v1.2以及Wi-Fi AP和直連等;MCU通過SPI接口連接模組後,代碼調用WiFi API函數即可獲得無線連接能力,加速IOT產品聯網的開發。




加密認證器件ATECC608A基於硬體的密鑰存儲與硬體加密加速器;具備為每一個物聯網硬體設備硬體設備創建唯一、信任且受保護的身份,構建完整的信任鏈的能力。本方案中ATECC608A用於用於存儲設備證書信息(包含設備秘鑰)、根據Client ID通過和設備密鑰HMAC計算獲得Password(Client ID包含時間戳,可以保證每次生成的HMAC都不同);

        簡而言之,使用ATmega4808阿里雲IOT連接開發套件可以低成本、快速的開發安全的IOT產品

一、硬體設計
        設計原文件可以參考附件中的“AVR-IoT_WG_SCH_PCB_DesignFiles(AltiumDesigner格式)”

1) 原圖設計
        方案原理圖核心部分如下:
 
1.1) 連接WiFi模組
        MCU與wifi模組連接參考如下資料進行設計,使用MCU 8個IO口(4線SPI、EN、RESET、WAKE、IRQ);
 
2) 連接ECC608
        MCU使用IIC總線與ECC608進行連接,注意需要外部上拉電阻
 
2) PCB設計
2.1) 套件PCB
        下圖分別是套件PCB的走線圖、Top視圖、Bottom視圖;





2) WiFi模塊布局要點
        PCB設計時,按照常規走線進行設計,需要注意的主要是wifi模組的布局,請參考以下圖原則進行設計;
 
二、代碼設計
1) 下載源碼
        打開網址“https://start.atmel.com”,點擊“Browse example”;在打開的網頁中的“Search”欄中輸入“Alibaba”,點選查找的結果激活下載選項,點擊“DOWNLOAD SELECTED EXAMPLE”下載源碼;

        點選下載後,服務器開始生成代碼,耐心等待一小會,等待生成後,自動下載;
 
2) 導入及編譯源碼
        首導代碼前,要確保已經安裝MPLAB X IDE(方案編寫時版本為:v5.30)及MPLAB® XC8 Compiler,(方案編寫時版本為:v2.10,
方案中使用的是v2.05);
        安裝完成後打開IDE,依次選擇“File”-->“Import”-->“START MPLAB Project”;

        在新窗口中,根據要求選擇下載的文件的存儲路徑,並點擊“Next”;
 
        選擇編譯器;
 
        點擊菜單欄中的“錘子 ”圖標,編譯工程;
 
        若操作你沒有錯誤,應能編譯成功;
 
3) 修改代碼
        下文操作一定要仔細核對,避免出錯導致雲平台設備無法上線
3.1) 根據設備證書信息修改代碼
        依據阿里雲IOT平台設備證書信息修改文件“AVR_IoT_Alibaba_Cloud_Sensor_Node\Header Files\config
\IoT_Sensor_Node_config.h”中的如下宏定義:PRODUCT_KEYDEVICE_NAMEDEVICE_SECRET以及DEVICE_SECRET (將設備證書信
息燒錄進ECC608);
 
3.2) 修改wifi信息
        根據可連接公網的wifi路由信息修改文件“AVR_IoT_Alibaba_Cloud_Sensor_Node\Header Files\config\conf_winc.h”中的
CFG_MAIN_WLAN_SSIDCFG_MAIN_WLAN_PSK建議使用手機熱點功能作為wifi路由,路由的SSID及密碼不要過於複雜
 
4) 編譯下載修改後的固件
        完成以上修改後,點擊菜單欄中的“錘子 ”圖標,編譯修改後的工程,如操作無誤應能順利編譯通過;
 
        通過USB連接線將開發板連接到電腦,點擊菜單欄的“ 編程”圖標,下載生成的固件;
 
        若順利應能看到選擇工具界面,若未找到開發板,重新啟動IDE後重新操作以上步驟
 
        若操作無誤,應能順利下載固件;若需要更新調試器固件,按照提示操作即可;
 
        固件燒錄成功後,重新給開發板上電;稍等片刻應亮“藍燈+綠燈”若紅燈亮,檢查修改設備證書信息以及WiFi信息是否正確
5) 定製外設代碼建議
        如果用戶自己設計PCB並且不使用套件的引腳配置,可在下載源碼前通過“Atmel Start”進行外設、引腳及時鐘的配置;
 


6) 部分代碼解讀
        為了加速用戶應用落地,對源碼部分代碼進行分析,拋磚引玉;
        首先從main.c文件中的main函數開始,main函數主要代碼如下:
            application_init();
            while (1) {
                runScheduler();
            }
        我們這裡主要分析application_init()
        runScheduler();這個函數通過定時器機制調度各個"任務”;
        a) application_init()函數中調用了“wifi_init(wifiConnectionStateChanged, mode)”初始化wifi模組獲得聯網能力;同時調
用“CLOUD_init(attDeviceID)”連接雲平台;
 
        b) CLOUD_init()函數創建“CLOUD_taskTimer”任務;CLOUD_taskTimer實際是"CLOUD_task”;
 

        c) CLOUD_task調用connectMQTT();
 
        d) connectMQTT函數調用updateJWT();
 
        e) updateJWT函數中看到使用設備證書信息及HMAC計算

三、主要操作步驟
        詳細步驟參考附件中的文檔“ AVT_IOT_Aliyun_Getting Started (SAC)”
1) 阿里雲平台中新建設備並獲取設備證書
1.1) 登錄阿里雲IOT平台後新建產品並增加功能;

1.2) 添加設備並獲取設備證書;

2) 修改代碼並燒錄固件
        參考“代碼設計”章節進行操作;
3) 設備上線及在線調試
3.1) 設備上線
        登錄到阿里雲IOT平台,設備狀態從“未激活”變為的“在線”;

3.2) 查看運行狀態
        點擊“設備”頁面“查看”操作後,在新頁面中點擊“運行狀態”,查看設備的運行狀態,增加照明等方式改變環境光亮度,此時頁面中的“亮度”值應增加;

3.3) 在線調試
        在“在線調試”頁面,“調試功能”選擇擇“黃燈狀態”,“方法”選擇“設置”修改值為“0”或 “1”;查看開發板黃燈狀態(0對應關,1對應開);
        電腦上使用串口調試工具(如putty),打開開發板對應串口,波特率4800;

4)手機APP
        該功能最新狀體已經下線,若以前的IOT項目仍能繼續使用;

►場景應用圖

►產品實體圖

►展示板照片

►方案方塊圖

►核心技術優勢

1)套件高度集成,主要部件使用8-bit MCU簡化開發、全面認證的Wi-Fi模塊縮短開發舟曲、安全認證IC增加安全性能;板載調試器及溫度、亮度傳感器及指示燈,不使用外部器件即可快速開發IOT產品; 2)開發快捷,Atmel START提供了套件連接阿里雲IOT源碼,源碼導入免費的開發環境MPLAB X IDE後,少量修改後即可連接到阿里雲IOT平台(方案附件提供詳細的操作步驟);若工程師環境具備,操作時間大概30分鐘左右; 3)高安全,經過全面認證的ATWINC1510 Wi-Fi模組固件支持TLS v1.2,ATECC608A為每一個物聯網硬體設備硬體設備創建唯一、信任且受保護的身份,構建完整的信任鏈。

►方案規格

1)套件尺寸:63.5mm x 25mm; 2)主控MCU:ATmega4808,AVR 8bit,20 MHz,48 KB Flash,6 KB SRAM,Core Independent Peripherals; 3)Wifi模組:ATWINC1510,802.11 b/g/n,集成閃存,SPI接口,內置硬體WLAN協議和安全加速器(AES和TKIP),全面認證,掉電模式下的功耗小於4 μA; 4)安全認證IC:ATECC608A,硬體支持ECDH、ECDSA、SHA-256、AES-128,I2C接口,安全存儲多達16個密鑰、證書或數據。

技術文檔

類型標題檔案
硬件Schematics
硬件BOM
硬件Schematics
操作手冊User Guide
操作手冊Getting start