0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

AliOS Things的基本架構(gòu)和如何在MCU上應(yīng)用AliOS Things的介紹

5RJg_mcuworld ? 來源:未知 ? 作者:易水寒 ? 2018-11-11 11:29 ? 次閱讀

隨著物聯(lián)網(wǎng)設(shè)備的普及,物聯(lián)網(wǎng)操作系統(tǒng)也成了廣大開發(fā)者熱烈討論的話題之一,很多的組織和廠商都推出了在物聯(lián)網(wǎng)節(jié)點上的基礎(chǔ)軟件——物聯(lián)網(wǎng)操作系統(tǒng),如服務(wù)器巨頭Alibaba推出的AliOS Things,Amazon公司的Amazon FreeRTOS,再如開源社區(qū)領(lǐng)袖Linux基金會推出的Zephyr,以及在國內(nèi)知名度很高的RT-Thread等等。

這些物聯(lián)網(wǎng)操作系統(tǒng)各具優(yōu)勢,小編參與過AliOS Things的開發(fā),今天就講講AliOS Things的基本架構(gòu)。

在恩智浦MCU上使用AliOS Things

討論AliOS Things之前,先來看看恩智浦在這上面做了哪些工作,有哪些產(chǎn)品可以支持這一物聯(lián)網(wǎng)操作系統(tǒng)。

恩智浦的工程師和廣大開發(fā)者,在AliOS Things上已經(jīng)完成了大量的平臺移植工作。在AliOS Things的GITHUB上,已經(jīng)有數(shù)十款MCU通過了AliOS Things的認(rèn)證測試,并獲得了設(shè)備認(rèn)證。

下面是已經(jīng)獲得認(rèn)證的部分恩智浦MCU的列表:

MCU系列 產(chǎn)品型號 (RAM/Flash容量 KB)
LPC LPC54102(104 / 512)
LPC54101(104 / 512或 104 / 256)
LPC54113(192 /256或96 /128)
LPC54114(192 /256)
LPC54605(136 /256 或 200 / 512)
LPC54606(136 /256 或 200 / 512)
LPC54607(136 /256 或 200 / 512)
LPC54616(136 /256 或 200 / 512)
LPC54618(200 /512)
LPC54628(200 /512)
LPC54005(360 / 無片上閃存)
LPC54016(360 / 無片上閃存)
LPC54018(360 / 無片上閃存)
Kinetis MKL17Z32 (8 / 32)
MKL17Z64 (16 / 64)
MKL17Z128(32 / 128)
MKL17Z256(32 / 256)
MKL27Z32 (8 / 32)
MKL27Z64(16 / 64)
MKL27Z128(32 / 128)
MKL27Z256(32 / 256)
MKL33Z128(16 / 128)
MKL33Z256(32 / 256)
MKL43Z128(16 / 128)
MKL43Z256(32 / 256)
i.MX RT MIMXRT1052(512 / 無片上閃存)
MIMXRT1051(512 /無片上閃存)
MIMXRT1021(256 /無片上閃存)

從這個表里可以看出,很多恩智浦主流的MCU產(chǎn)品都已經(jīng)支持了AliOS Things。另一個要點是,表中可以看到這些MCU的存儲容量跨度很大,最小只有8KB RAM和32KB Flash,這說明AliOS Things可以適應(yīng)非常廣泛的MCU配置,適應(yīng)性很強。

下面就詳細(xì)看看AliOS Things的內(nèi)部模塊和功能配置。

AliOS Things是什么?

AliOS Things是阿里巴巴推出的物聯(lián)網(wǎng)設(shè)備端軟件框架,物聯(lián)網(wǎng)設(shè)備可以通過AliOS Things設(shè)備框架接入阿里云,使用云服務(wù)器提供的相關(guān)物聯(lián)網(wǎng)設(shè)備服務(wù)。

AliOS Things軟件框架是基于APACHE2.0協(xié)議的開源軟件,項目地址為

https://github.com/alibaba/AliOS-Things

AliOS Things軟件架構(gòu)可以從下到上分為四層,硬件和硬件抽象層、AOS操作系統(tǒng)層、應(yīng)用框架層和應(yīng)用層,下層組件為上層業(yè)務(wù)邏輯的實現(xiàn)提供支撐機(jī)制。

下圖是AliOS Things的整體框圖:

1. 硬件和硬件抽象層

物聯(lián)網(wǎng)節(jié)點應(yīng)用的多樣性,導(dǎo)致物聯(lián)網(wǎng)硬件的巨大差異。

物聯(lián)網(wǎng)節(jié)點設(shè)備上的傳感器、通信模塊、微控制器的內(nèi)核架構(gòu),外設(shè)組件等都不相同,物聯(lián)網(wǎng)操作系統(tǒng)在不同硬件平臺的可移植性,是其成功與否的一大挑戰(zhàn)。

為了增加物聯(lián)網(wǎng)操作系統(tǒng)在不同硬件平臺的可移植性,AliOS Things對物聯(lián)網(wǎng)硬件提供了3組不同層級的硬件接口,包括微控制器內(nèi)核架構(gòu)模塊(圖中的CPU模塊),片上系統(tǒng)片上外設(shè)模塊(圖中的HAL模塊),和基于電路板的模塊(圖中的BSP模塊)。

在Github的項目中,CPU相關(guān)源碼位于/AliOS-Things/platform/arch目錄,HAL相關(guān)源碼位于/AliOS-Things/platform/mcu目錄,API定義文件為/kernel/hal/include/hal/hal.h,BSP相關(guān)源碼位于/AliOS-Things/board目錄。

2. AOS操作系統(tǒng)層

AOS操作系統(tǒng)層主要由核心組件(Kernel)、網(wǎng)絡(luò)協(xié)議棧(Protocol Stack)和安全組件構(gòu)成。

核心組件

Rhino是一個實時操作系統(tǒng)內(nèi)核。和其他操作系統(tǒng)內(nèi)核類似,Rhino提供了操作系統(tǒng)的基本功能,如多任務(wù)管理、任務(wù)間通信、內(nèi)存管理等。內(nèi)核也支持軟件定時器及功耗管理。如果讀者希望對Rhino內(nèi)核有更多的了解,可以參考AliOS Things百科

https://github.com/alibaba/AliOS-Things/wiki/AliOS-Things-FreeRTOS-Porting-Guide.zh,文章介紹了更多關(guān)于Rhino內(nèi)核的移植、性能、代碼尺寸等信息。

VFS是一個虛擬文件系統(tǒng),提供了設(shè)備文件接口。類似于Linux系統(tǒng),除了存儲在存儲器上的文件外,硬件設(shè)備(如傳感器、麥克風(fēng)等)也可以通過VFS設(shè)備接口訪問。

YLoop是一個用于進(jìn)程間通信的異步事件框架,提供了在任務(wù)中接收/處理/發(fā)布系統(tǒng)消息、定時器消息、用戶消息、IO消息(傳感器、WiFi)的機(jī)制。Yloop機(jī)制廣泛的用于AliOS Things的設(shè)備框架層和應(yīng)用程序中。

Key-Value Pair(KV)鍵值對,提供了鍵值對在Flash或EEPROM上的增加、刪除、修改、查詢等接口。上層業(yè)務(wù)可以通過鍵值對接口,完成對硬件設(shè)備數(shù)據(jù)(Sensor校準(zhǔn)參數(shù))或用戶數(shù)據(jù)(WiFi SSID)的管理。

除此以外,核心組件還提供了POSIX兼容接口和低功耗的支持。

核心組件的相關(guān)源碼位于/AliOS-Things/kernel目錄。

網(wǎng)絡(luò)協(xié)議棧(Protocol Stack)

AliOS Things網(wǎng)絡(luò)協(xié)議棧包括IP和非IP設(shè)備的網(wǎng)絡(luò)協(xié)議。對于IP網(wǎng)絡(luò),協(xié)議棧既提供基于LWIP的支持,也提供了MCU + Wi-Fi模塊或Wi-Fi片上系統(tǒng)的支持。對于非IP網(wǎng)絡(luò),協(xié)議棧包括藍(lán)牙、LoRa WAN、zigbee等。

在物聯(lián)網(wǎng)節(jié)點中使用的Wi-Fi模塊并非統(tǒng)一規(guī)格。在總線連接方式上,Wi-Fi模塊的接口可能支持UART/SPI/SDIO的一種或幾種;在訪問方式上,有的Wi-Fi模塊使用基于AT命令的控制方式,有的Wi-Fi模塊使用裸Socket形式的API。

套接字適配層SAL(Socket Adapter Layer)旨在抽象Wi-Fi模塊的差別,以提供應(yīng)用層網(wǎng)絡(luò)服務(wù)或者網(wǎng)絡(luò)應(yīng)用程序的可移植性,向上層提供BSD Socket接口。

對于設(shè)備組網(wǎng),AliOS Things網(wǎng)絡(luò)協(xié)議棧還提供基于不同平臺的uMesh庫。

網(wǎng)絡(luò)協(xié)議棧相關(guān)源碼在/AliOS-Things/network目錄。

安全組件

AliOS Things對于安全的支持要有以下方面:

基于mbed tls提供TLS支持,用于建立服務(wù)器和IoT節(jié)點的安全可信通信連接。

提供軟件密碼學(xué)引擎

提供安全存儲的接口

提供基于ID2的預(yù)置可信根和相關(guān)認(rèn)證機(jī)制

提供可信執(zhí)行環(huán)境TEE的例子

安全相關(guān)源碼位于/AliOS-Things/security目錄。

3. 應(yīng)用框架(中間件)

應(yīng)用框架包括固件升級框架、傳感器采集框架、物聯(lián)網(wǎng)通信協(xié)議、語音服務(wù)、Java Script解釋器和工具。

Linkkit中間件支持各種適用于物聯(lián)網(wǎng)的應(yīng)用層協(xié)議,包括MQTT、CoAP、ALink、HTTP、HTTP2等。

uData提供了傳感器采集框架,在uData框架中,傳感器數(shù)據(jù)表示成為傳感器類型,傳感器數(shù)據(jù)和時間戳的實例。

Tiny Engine是一個Java Script腳本解釋器,為實現(xiàn)最終應(yīng)用的跨硬件平臺的運行能力。

固件升級FOTA,基于網(wǎng)絡(luò)的固件升級在物聯(lián)網(wǎng)終端節(jié)點非常普及。物聯(lián)網(wǎng)設(shè)備固件存放在AliCloud中,AliCloud管理入網(wǎng)設(shè)備和對應(yīng)的固件版本。在物聯(lián)網(wǎng)設(shè)備和AliCloud建立可信安全連接后,物聯(lián)網(wǎng)設(shè)備通過MQTT升級主題訂閱,或者Alink相關(guān)協(xié)議實現(xiàn)待升級固件的下載。在物聯(lián)網(wǎng)應(yīng)用中,由于網(wǎng)絡(luò)的不穩(wěn)定,實現(xiàn)固件升級通常需要實現(xiàn)“雙備份”升級方式,物聯(lián)網(wǎng)設(shè)備的Flash一般會劃分有獨立的存儲升級文件的區(qū)域,這也要求物聯(lián)網(wǎng)節(jié)點設(shè)備比傳統(tǒng)設(shè)備需要更多的存儲空間。

此外,AliOS Things還提供了語音云服務(wù)接口LinkVoice,物聯(lián)網(wǎng)終端節(jié)點可以上傳語音數(shù)據(jù),使用阿里云的諸如語音識別等的云服務(wù)。

AliOSThings應(yīng)用框架及中間件相關(guān)源碼位于/AliOS-Things/middleware目錄。

4. 應(yīng)用實例

AliOS Things提供了各種應(yīng)用實例,指導(dǎo)開發(fā)者如何使用AliOS Things提供的各種機(jī)制,以完成物聯(lián)網(wǎng)設(shè)備和AliCloud之間的互聯(lián)通信。

通過BUILD系統(tǒng)和交叉編譯工具鏈,這些應(yīng)用可以在支持AliOS Things的硬件平臺上運行。

AliOS Things應(yīng)用實例的源碼位于/AliOS-Things/app目錄。

結(jié)束語

恩智浦長期致力于物聯(lián)網(wǎng),以及在AliOS Things平臺下的開發(fā)和移植工作。如果您心意的MCU不在列表中,請讓我們知道,我們有足夠的經(jīng)驗和知識,可以幫助您進(jìn)行平臺的移植和設(shè)備認(rèn)證。

1.2018年第11期《單片機(jī)嵌入式系統(tǒng)應(yīng)用》電子刊新鮮出爐!

2.翻臉如翻書!聯(lián)電宣布暫停與晉華合作

3.對于邊緣計算,其實嵌入式系統(tǒng)一點兒都不陌生!

4.邊緣計算對嵌入式系統(tǒng)實現(xiàn)物聯(lián)網(wǎng)應(yīng)用的影響,究竟有多大?

5.你的應(yīng)用適合選擇哪個Linux版本?這里有答案。。。

6.在北京當(dāng) Python 程序員,能買起房嗎?

免責(zé)聲明:本文系網(wǎng)絡(luò)轉(zhuǎn)載,版權(quán)歸原作者所有。如涉及作品版權(quán)問題,請與我們聯(lián)系,我們將根據(jù)您提供的版權(quán)證明材料確認(rèn)版權(quán)并支付稿酬或者刪除內(nèi)容。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    17148

    瀏覽量

    351212
  • 物聯(lián)網(wǎng)
    +關(guān)注

    關(guān)注

    2909

    文章

    44635

    瀏覽量

    373386
  • 操作系統(tǒng)
    +關(guān)注

    關(guān)注

    37

    文章

    6825

    瀏覽量

    123333

原文標(biāo)題:如何在MCU上應(yīng)用AliOS Things?

文章出處:【微信號:mcuworld,微信公眾號:嵌入式資訊精選】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    使用STM32快速開發(fā)AliOS Things硬件與軟件環(huán)境

    AliOS ThingsAliOS 家族旗下的、面向 IoT 領(lǐng)域的、輕量級物聯(lián)網(wǎng)嵌入式操作系統(tǒng)。
    的頭像 發(fā)表于 01-22 09:17 ?1.8w次閱讀

    AliOS Things v1.1.2新特性

    Things Testsuite,LoRaWAN協(xié)議棧,網(wǎng)絡(luò)適配架構(gòu)SAL,F(xiàn)OTA CoAP支持,及CK802T TEE支持。 更多信息請參考githubRelease Note。重點特性說明
    發(fā)表于 12-26 17:45

    AliOS Things網(wǎng)絡(luò)連接技術(shù)概述

    部分除了功能性介紹,還會根據(jù)場景給出AliOSThings網(wǎng)絡(luò)組件的建議使用方法。自組織網(wǎng)絡(luò)AliOS Things核心組件之一uMesh提供了AliOS
    發(fā)表于 01-05 11:59

    AliOS Things藍(lán)牙協(xié)議棧及應(yīng)用開發(fā)框架介紹

    摘要: AliOS Things從1.2.0版本開始支持藍(lán)牙協(xié)議棧(BLE),及基于藍(lán)牙協(xié)議棧的應(yīng)用層開發(fā)框架。本文分為三部分對藍(lán)牙組件進(jìn)行介紹:藍(lán)牙組件,藍(lán)牙協(xié)議棧介紹及接口說明,和
    發(fā)表于 01-11 11:36

    AliOS Things lorawanapp應(yīng)用介紹

    摘要: 文本旨介紹AliOS Things的lorawanapp的示例,完成一個LoRaWAN網(wǎng)絡(luò)的構(gòu)建和數(shù)據(jù)傳輸,并通過該示例讓大家對AliOS
    發(fā)表于 01-22 16:43

    AliOS Things 持續(xù)集成(CI)系統(tǒng)介紹

    的要求。本文介紹AliOS Things的CI系統(tǒng)的實現(xiàn)方式及思考。點此查看原文:http://click.aliyun.com/m/41052/背景簡介AliOS
    發(fā)表于 01-26 15:34

    AliOS Things最新資料5篇(Markdown文檔)

    1、AliOS Things開發(fā):讓你的開發(fā)板支持AliOS Studio燒錄2、AliOS Things開發(fā):讓你的開發(fā)板支持
    發(fā)表于 10-11 16:24

    AliOS Things 3.0 OTA專輯

    主要介紹基于AliOS Things 3.0和阿里云物聯(lián)網(wǎng)平臺設(shè)備OTA:整包升級、壓縮升級、差分升級等三種放。
    發(fā)表于 10-16 11:21

    使用AliOS Things 3.0快速構(gòu)建用戶應(yīng)用 BlinkAPP

    本帖最后由 阿里云AIoT 于 2019-10-16 17:04 編輯 簡介: AliOS Things 3.0版本于9月27日在云棲大會正式發(fā)布,在新版本中帶來了全新的應(yīng)用開發(fā)框架,幫助用戶
    發(fā)表于 10-16 17:02

    AliOS Things開發(fā):AliOS Studio使用說明

    簡介: AliOS Studio 是一套基于vscode的開發(fā)環(huán)境,支持windows、linux、macOS。 給AliOS Things一顆STAR(前往GitHub關(guān)注我們)目錄介紹
    發(fā)表于 10-16 17:18

    AliOS Things 3.0應(yīng)用筆記:http client簡單應(yīng)用

    簡介: AliOS Things 3.0版本新增加了httpc組件(http 客戶端組件),httpc組件支持多種RESTful的API調(diào)用,包括GET、POST、PUT、HEAD等,也支持
    發(fā)表于 10-17 11:23

    AliOS Things 3.0 應(yīng)用開發(fā)指南

    簡介: 應(yīng)用開發(fā)指南 目錄應(yīng)用開發(fā)框架介紹使用條件快速開始第一步:下載AliOS Things 3.0源碼第二步:添加AOS_SDK_PATH環(huán)境變量第三步:AliOS Studio中
    發(fā)表于 10-17 13:48

    AliOS Things 3.0 入門與實踐:視頻教程+學(xué)習(xí)筆記

    3.0快速構(gòu)建用戶應(yīng)用 BlinkAPPLinkkit SDK 用戶手冊aos-cube命令速查表AliOS Things 啟動流程其他如何快速git clone github的源碼首先git
    發(fā)表于 10-21 16:14

    何在WIN10系統(tǒng)下安裝AliOS Things的編譯環(huán)境

    本文檔的主要內(nèi)容詳細(xì)介紹的是如何在WIN10系統(tǒng)下安裝AliOS Things的編譯環(huán)境。
    發(fā)表于 05-15 18:09 ?1次下載
    如<b class='flag-5'>何在</b>WIN10系統(tǒng)下安裝<b class='flag-5'>AliOS</b> <b class='flag-5'>Things</b>的編譯環(huán)境

    AliOS Things從環(huán)境安裝到入門的5篇資料合集免費下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是AliOS Things從環(huán)境安裝到入門的5篇資料合集免費下載 1、AliOS Things開發(fā):
    發(fā)表于 10-12 08:00 ?2次下載