標籤:android style http io ar color os 使用 sp
ARM公司將在近日發布一款名為mbed OS的全新作業系統:它旨在彌合各類計算系統晶片之間的種種差異,從而協助高層應用程式順利與感應器以及其它裝置實現互動——無論它們使用的晶片來自Atmel、Marvell、ST、Freescale、NXP還是其它同類廠商。
這款軟體將在加利福尼亞州聖克拉拉市當地時間本周三上午舉辦的ARM TechCon 2014大會上正式得到披露,不過該產品尚未真正投放市場。雖然暫時還無法見識其廬山真面目,但我們已經掌握了以下相關資訊。
它基本上由兩部分構成:從底層角度看,mbed作業系統核心運行在小型感測裝置的系統晶片當中:這款作業系統還提供驅動程式,能夠與周邊硬體進行互動並同外部環境實現溝通。程式員們能夠編寫出軟體並將其直接運行在這款核心之上,而這部分代碼將負責控制裝置的運作方式。
而在作為另一半的堆棧方面,ARM則為我們帶來了名為mbed Device Server的伺服器端軟體方案,能夠運行在諸多大型x86或者ARM計算裝置當中。該軟體能夠與各類高層應用程式相對接,例如網路後端以及個別物聯裝置; 它還允許使用者以智能化方式管理多種軟體,同時將其中部分作用不明顯的部分從管理對象當中排除出去。
各類互連網串連網關——可以是智能手機、平板裝置或者碗椀中的感測裝置——都能通過短程通訊裝置(例如Wi-Fi或者藍芽機制)與之進行通訊,隨後再將資訊路由至mbed Device Server處。該伺服器可以運行在雲環境當中,也可以由本地裝置負責充當。有條件允許的情況下,接入裝置可以跳過網關階段直接與該伺服器相對接。總而言之,這是一套非常靈活的架構方案。
這套堆棧中的主要組成部分,特別是從底層角度來講,源自ARM於2009年起即在推進的mbed社區:這裡匯聚了規模龐大的資源與工具鏈,旨在利用C以 及C++構建ARM單片機。根據我們掌握的情況,目前已經有超過七萬名程式員加入到了mbed.org社區網站當中,並在為成千上萬項目貢獻自己的力量 ——現在由mbed代碼支援的原型及開發項目超過三十個。
根據目前的情況看,ARM開始將所有要素匯聚在一起並加以整合,這樣高層應用程式開發人員就能夠更為便捷地為基於ARM架構的感應器與功能性組件提供原型設計方案——而這對於一套剛剛起步的架構平台而言可算是一種通行且定位良好的基礎。
ARM方面的計劃是利用開放標準,例如TLS以及DTLS之上的HTTP以及MQTT,為裝置之間的通訊流程乃至軟體策劃方案以安全方式交付資料。該軟體支援Bluetooth Smart; 2G、3G、LTE以及CDMA行動電話通訊; GoogleThread; Wi-Fi以及6LoWPAN。據我們所知,ARM並沒有在其TLS加密機制當中使用開源庫。
這套堆棧還隱藏了諸如裝置可用性在內的多 種特性:舉例來說,高層伺服器端軟體可以發出命令以擷取來自處於節電睡眠模式的感測裝置的資料,這部分資訊將在對應裝置被喚醒之後實現交付,並被傳遞至高 層應用程式處。這種方式簡化了該堆棧的頂層架構,能夠有效協助開發人員更快地編寫代碼並將成果發布給使用者。
這條訊息對於那些熱衷於親手利用組合語言染指單片機編程工作的技術人員們而言也許有些令人沮喪,但mbed的核心實質在於儘可能讓系統晶片裝置所帶來的困擾與混亂遠離開發人員的視野——只留下一套更簡潔、更通用的處理介面。
“時下流行的各類編譯工具已經相當出色,”ARM公司CTO、同時也是該公司聯合創始人Mike Muller告訴我們。
“我們已經不用再像上世紀八十年代時那樣大量使用組合語言了; 時至今日,大家完全可以採取更具效率的處理方式,而在開發流程當中、時間因素真的非常重要。”
深入剖析
新的mbed作業系統專門針對Cortex-M晶片家族所設計,也就是ARM公司的32位單片機核心系列。此類晶片的售價僅為每塊五到十美元,效能由低到高依次有M0、M4以及M7等方案供使用者選擇。這套mbed作業系統所使用的並非像運行在iPhone 6 ARM加密副處理器上的L4微核心、多款汽車儀表板所採用的QNX或者無處不在的ARM GNU/Linux以及uClinux那種移植版核心。
根據我們掌握的情況,這款全新作業系統採用ARM代碼,此外再加上由硬體製造廠商以及mbed社區所提供的驅動程式以及原始碼。與大家對於單片機操作系 統的一貫認知相同,mbed作業系統非常小巧、完全可以通過Cortex-M系統晶片實現運行效果。一套典型的M0以上封裝方案所存在的快閃記憶體儲存容量通常 在8KB到128KB之間,而記憶體則最高為16KB,其時脈速率則最高為48MHz; 常見或者增強版M4系統晶片的時脈速率則最高為180MHz,並包含32KB到2MB快閃記憶體以及最高256KB SRAM。我們可以砍,mbed作業系統在設計上完全符合目標裝置所提供的快閃記憶體容量水平。
這套作業系統是由事件驅動而非典型的即時型方案,ARM公司物聯網技術營銷事務負責人Zach Shelby告訴我們。換句話來說,這並不是一套複雜的、將處理器根據時間段加以拆分的先佔式多任務核心; 其中不存在背景狀態切換或者定時器截止機制。相反,mbed作業系統將始終處於休眠狀態,直到來自感應器或者其它周邊裝置將其喚醒,這時它才開始運作並處理相應事件、決定是否觸發上層堆棧組件、最終在事件完成後再次進入休眠狀態。
如果大家曾經進行過單片機層面的開發工作,那麼這樣的機制估計並不會讓各位感到驚訝。對於此類資源受限性環境而言,這樣的處理方式頗具實際意義——也就 是說,能夠起到很好的能耗削減效果。“電池續航能力可不會受到摩爾定律的引導,”Shelby指出,並提醒我們如今的移動處理器仍然受到孱弱供電能力的嚴 重製約。
為ARM提供的mbed作業系統分層示意; 基本上,作為一位開發人員,大家需要關注的只有最上端的藍色區塊,也就是應用程式與庫。其餘部分則構成了mbed Device Server,這部分內容主要是對底層軟體與iOS及Android應用程式或者其它服務的互動機制進行了抽象化總結。
對設計思路加以 總結,ARM公司是希望那些利用C++、JavaScript、HTML、Swift以及其它程式設計語言為智能手機、平板裝置以及台式機開發應用程式的編程 人員們能夠將與硬體相關的所有環節隱藏在mbed堆棧當中,從而協助他們輕鬆完成自己的本職工作。這些程式員用不著瞭解未公開寄存器與控制碼,也沒必要 掌握困擾著整個系統晶片領域的佔先機制; 這些工作都被mbed以抽象化方式解決了,這些零散但複雜的難題不應該成為應用程式開發人員面前的阻礙。
不過這一切到底是為了什嗎?這個問題指向的正是核心所在。事實上,如果直接要求嵌入式工程技術人員們為物聯網打造出樣本性感測裝置以及表現出色的配套應 用程式,那麼這次對話恐怕會陷入短暫但卻極其尷尬的沉默當中。實際情況是,我們仍然處於“建設物聯網且堅信物聯網終將成為現實”的“起步階段”。
ARM正與IBM公司攜手打造智慧城市項目。這意味著市區內的路燈能夠通過Wi-Fi或者藍芽機制檢測出附近有多少行人,並以此藉助運行有mbed Device Server的系統來判斷具體照明效果。此類機制能夠更為準確、更細緻地發揮運動探測器的功能。
家庭環境同樣是物聯網的 普及重點,在這裡使用者可以在櫥櫃門上安裝動作感應器,從而協助爸爸媽媽瞭解自己的小寶寶有沒有偷偷跑去大啖甜食——在這種情況下,家長既可以選擇利用自己 的智能手機接收提醒,也可以直接將其與小朋友的平板裝置對接起來。換句話來說,偷吃餅乾的小孩兒就不能在自己的平板上玩遊戲了。為什麼不直接把櫥櫃鎖上 呢?這個嘛,也許有時候小朋友表現很出色,這樣家長就能更靈活地加以控制、在適當時將甜食作為獎勵。
也許大家更希望單純通過自己的智能手機對家中的烤箱加以控制。ARM希望更多商家加入到這一領域中來,通過解決使用者的迫切需求實現產品銷售並藉此賺取利潤。當然,這也意味著ARM能夠從此類產品中獲得更多授權收益。
ARM公司指出,他們已經拉攏了大批企業開發新型mbed項目——從IBM公司著力打造的智慧城市項目到系統晶片製造商描繪的Cortex-M核心發展藍圖並以此為中心設計周邊產品。這些製造商希望能從晶片到主板全方位為mbed作業系統提供支援。
根據我們掌握的訊息,這款mbed作業系統應該會在2014年第四季度被交付至ARM的夥伴手中; 不過在2015年之前應該不會有任何採用該軟體的裝置產品被正式投放市場。Mike Muller認為整個開發流程大概需要三年時間,到那時供應商才能真正拿出理想的mbed物聯網產品——當然,前提是這套平台得到廣泛認可。而mbed Device Server目前顯然已經準備好進入生產流程。
該軟體被描述為一款免費且部分開源的解決方案,但是……好吧,事情好像總有但是。據我們 所知,mbed作業系統可供大家免費使用,而且其中很大一部分組件都將最終開源。不過韌體當中仍然存在二進位機制,而且其中一部分將以受到嚴密保護的閉源 驅動程式形式提供給由晶片製造商推出的系統晶片產品; 這一部分是考慮到安全保護需要,另一部分原因在於某部分代碼需要在徹底完成之後才能以開源方式呈現。
舉例來說,大家應該可以對處於運行當中的單片機韌體進行更新,因此我們肯定希望對升級過程進行嚴格加密、從而避免攻擊者將任意惡意代碼上傳至裝置當中。也就是說,快閃記憶體當中將包含有公用密鑰。
當然,有一部分人會將這種機制稱為控制,但ARM自身卻將其形容為一致性。大家可以對mbed堆棧當中的開源部分進行調整與完善,但ARM希望保留讓特 定組件維持一致性的能力,從而使整套平台實現全面相容——特別是在安全及無線廣播這類完全由代碼支撐起具體裝置的硬體層。
當mbed作業系統開始啟動時,對應裝置將能夠擷取並安裝最適合周邊機制的韌體方案; 為了實現這一目標,系統晶片需要進行初始化,並以安全狀態運行其可信命令; 如果裝置本身已經遭到入侵,那麼再理想的安全更新機制也將形同虛設。
再次強調,二進位組件仍將在系統當中發揮重要作用。不過ARM公司的夥伴們將獲准對這部分原始碼加以訪問。
根據我們得到的訊息,這套平台的安全機制貫穿到整個系統始終、而非後來添加或者作為額外功能。其核心在設計上已經充分考慮到了晶片軟體運行所處的“加密 盒”機制——這是一種沙箱類方案,旨在阻止代碼對於裝置安全性的破壞。Cortex-M家族並不提供記憶體管理單元或者TrustZone等功能,因此安全 機制必須以軟體方式實現。
在更多睿智的技術人員開始通過越獄手段讓此類價值5美元的感測系統晶片運行任意代碼之前,ARM公司仍然能夠利用堆棧當中的二進位部分保證對韌體的牢牢掌控,從而避免項目陷入片段化深淵並引導團隊始終將注意力集中在單一平台身上。
“開源機制能夠大大簡化平台改進工作,並讓人們更輕鬆地找到並修複漏洞,”ARM公司的Shelby補充稱。
與此同時,mbed Device Server還供大家免費使用並將其作為開發平台,不過我們首先必須獲得將其作為商業用途的許可。這畢竟是ARM,許可技術正是其擷取收益的主要途徑。
========================================================================
做為全球最大的IP供應商,ARM遙遙領先於其他競爭者,其營收是競爭者市場老二的兩倍多,近來意識到必須深耕新的物聯網市場,特別是因為ARM的主要產品線便是處理器IP系列,而MCU或CPU肯定居於SmarCoT中的“智能”部分的基礎地位。事實上,ARM允許其客戶針對物聯網應用自由開發任何晶片(只要他們支付授權許可費和版稅)。不過現在,ARM的市場行銷人員做了大量認真的工作,從他們的角度定義物聯網市場,並基於ARM Cortex-M處理器系列提出了針對物聯網應用的解決方案。
這是一種新型生態系統的構建,顯然ARM深喑此道,甚至可以說,正是ARM公司在半導體行業內引入了生態系統的概念!一個生態系統的建立需要多個夥伴的參與,ARM定義了三種類別的夥伴:雲端(提供服務)、夥伴(提供開發工具)和提供技術的矽夥伴。這三群組成員構成了mbed夥伴生態系統(實際上,mbed是ARM為支援物聯網應用而開發的作業系統)。
在上述的計劃中,一個比較有趣的現象是,你看不到任何IC或任何CPU和MPU IP,不過很容易猜到,在圖中右側那些“物聯網裝置”中會發現這些IP的身影,例如在下面的智能家居解決方案中。
圖中的多款家電應用和控制裝置是圍繞ARM Cortex M而開發,同時運行mbed OS的智慧型裝置(SmarCoT),可以通過一個網關串連到互連網(該網關整合了Cortex A CPU,運行Linux)。事實上,mbed OS讓支援IPv4或IPv6的低功耗無線裝置可以與家庭/移動網關和電子計量器輕鬆整合,以提供互連網路由。家庭自動化領域的一個新標準是Thread - 這個基於IPv6的標準使IP地址近乎無邊界,它的功率消耗很低,同時支援家電間的網狀網路。它運行在低功率射頻(802.15.4)MAC和PHY上。
如果你對智能城市感興趣,那麼同樣,mbed OS也可用於支援大規模的有安全保障的物聯網街道。
類似於Web伺服器可以接受來自手機或網路瀏覽器的串連,裝置伺服器也可以處理來自物聯網(IOT)裝置(或“小資料”)的串連。對雲端服務供應商、電訊廠商和企業進行產業部署並訪問物聯網的擴容市場而言,該裝置伺服器是一個關鍵的推動者,它可以把終端節點裝置帶入Web服務的世界。該裝置伺服器可以把物聯網世界中的小資料節點串連到大資料應用情境中。
ARM針對以下mbed OS夥伴設計了一種特定的策略:
對mbed平台做出技術性貢獻;
在自己的解決方案中採用mbed OS進行開發;
與ARM一起開展市場營銷工作。
他們也將從生態系統中受益。技術上的優勢包括可以在ARM公開該平台之前,更早獲得平台資源的訪問權,開展代碼移植和方案整合,並獲得來自mbed設計團隊的支援。夥伴還可以得到最新版本裝置伺服器的開發許可證。營銷上的好處包括出現在mbed開發人員網站和社會媒體渠道上,參與新聞發布、視頻以及ARM mbed的一些活動。
ARM聲稱開發人員社區已經有超過70,000個成員,而且如果費心看一下夥伴的標識,可以看到MPU領域幾乎所有的大牌廠商,如愛特梅爾、飛思卡爾、恩智浦、瑞薩和意法半導體都是mbed OS的夥伴。還有巨量資料服務供應商,如阿爾卡特朗訊、IBM和愛立信等,這一系統的積極意義在於可以協助建立和大力發展物聯網所需要的一個新產業。ARM非常善於建設生態系統,這樣的生態系統會協助推動新的和非傳統的客戶、夥伴之間建立更密切的關係。
mbed OS物聯網作業系統