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_KEY,DEVICE_NAME,DEVICE_SECRET以及DEVICE_SECRET (將設備證書信
息燒錄進ECC608);
3.2) 修改wifi信息
根據可連接公網的wifi路由信息修改文件“AVR_IoT_Alibaba_Cloud_Sensor_Node\Header Files\config\conf_winc.h”中的
CFG_MAIN_WLAN_SSID,CFG_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個密鑰、證書或數據。