再也沒有比現(xiàn)在更容易創(chuàng)辦一家硬件公司了。被許多人稱為嵌入式運(yùn)算未來的「物聯(lián)網(wǎng)」(IoT),如今被視為一種更可負(fù)擔(dān)的軟、硬件融合平臺(tái)。然而,于此同時(shí),軟件的復(fù)雜性又使得物聯(lián)網(wǎng)設(shè)計(jì)過程成為「適者生存」(survival of the fittest)的經(jīng)典案例。
物聯(lián)網(wǎng)設(shè)計(jì)無法「一勞永逸」,因?yàn)槎鄻踊?a href="http://www.wenjunhu.com/v/tag/117/" target="_blank">傳感器和連接解決方案要求新的設(shè)計(jì)理念。另外,物聯(lián)網(wǎng)項(xiàng)目一般被認(rèn)為具有高性能、低成本和低功耗等特點(diǎn),而這些特性都和嵌入式軟件作業(yè)的某個(gè)方面密切相關(guān)。
例如,以高性能和低成本的特點(diǎn)而言,這意味著重復(fù)利用前項(xiàng)項(xiàng)目的可能性非常有限,軟件工程團(tuán)隊(duì)也不可能因此而按比例擴(kuò)增。由于無法隨意擴(kuò)大軟件團(tuán)隊(duì)和提高項(xiàng)目的成本預(yù)算,物聯(lián)網(wǎng)產(chǎn)品開發(fā)人員只能寄望于新一代的工具鏈,協(xié)助他們實(shí)現(xiàn)更高的軟件生產(chǎn)力。
圖1:在異質(zhì)的物聯(lián)網(wǎng)設(shè)計(jì)中,全方位的軟件工具鏈至關(guān)重要 (來源:Atmel)
打造物聯(lián)網(wǎng)設(shè)計(jì)必須善于權(quán)衡折衷,一方面也因?yàn)槠渲写嬖谠S多可變動(dòng)組件,設(shè)計(jì)工程師承擔(dān)不起先打造次系統(tǒng)后再觀察是否有效作業(yè)的后果。而如果從頭開始設(shè)計(jì)不僅增加項(xiàng)目成本,也會(huì)對(duì)于異質(zhì)的物聯(lián)網(wǎng)設(shè)計(jì)世界帶來更嚴(yán)格的上市時(shí)間限制。
因此,物聯(lián)網(wǎng)設(shè)計(jì)解決方案——從傳感器的數(shù)據(jù)擷取到云端的數(shù)據(jù)分析——都要求必須提早在工程師為物聯(lián)網(wǎng)產(chǎn)品進(jìn)行芯片設(shè)計(jì)之前先進(jìn)行設(shè)計(jì)驗(yàn)證。因此,無疑地,在處理伴隨以無縫方式連接大量裝置的挑戰(zhàn)而來的復(fù)雜過程中,端到端的軟硬件平臺(tái)和連接解決方案套件至關(guān)重要。
本文將討論物聯(lián)網(wǎng)設(shè)計(jì)領(lǐng)域中的主要軟件挑戰(zhàn),并介紹正確的工具鏈選擇如何有助于因應(yīng)這些嵌入式設(shè)計(jì)挑戰(zhàn)。文中主要關(guān)注于物聯(lián)網(wǎng)軟件生態(tài)系統(tǒng)中的三大關(guān)鍵領(lǐng)域,以及引導(dǎo)思考如何以高效和高性價(jià)比的方式執(zhí)行軟件作業(yè)。
軟件復(fù)雜性
在嵌入式設(shè)計(jì)項(xiàng)目中,「硬件-軟件」任務(wù)的比重分配一般是40:60。然而,針對(duì)物聯(lián)網(wǎng)設(shè)計(jì)項(xiàng)目,更偏重于軟件生態(tài)系統(tǒng)。
為了實(shí)現(xiàn)更高性能以及增強(qiáng)聯(lián)機(jī)能力、繪圖顯示和云端運(yùn)算等方面的功能,物聯(lián)網(wǎng)開發(fā)人員正從8位和16位微控制器(MCU)轉(zhuǎn)向32位組件。
這要求新的軟件運(yùn)用平臺(tái),以便高效率地執(zhí)行通訊和云端運(yùn)算協(xié)議堆棧。然后執(zhí)行諸如實(shí)時(shí)采樣傳感器數(shù)據(jù)、組件配置、安全密鑰、應(yīng)用程序以及數(shù)據(jù)分析等任務(wù)。
另外,物聯(lián)網(wǎng)設(shè)計(jì)中有許多軟件涉及TCP/IP等通訊協(xié)議堆棧以及SSL、TLS等安全工具庫;這些軟件的編寫必須符合特定的標(biāo)準(zhǔn)。這一類軟件組成在很久以前即已編寫,并經(jīng)過時(shí)間的進(jìn)展變得日益完善,因此,對(duì)于時(shí)間緊迫的物聯(lián)網(wǎng)開發(fā)人員來說,如果還要重新編寫而不善加利用這些現(xiàn)有軟件,實(shí)在沒什么道理。
事實(shí)上,從頭開始開發(fā)這類軟件可能面臨的風(fēng)險(xiǎn)是發(fā)現(xiàn)一些現(xiàn)實(shí)中曾經(jīng)出現(xiàn)過并已解決的問題。
圖2:面對(duì)物聯(lián)網(wǎng)設(shè)計(jì)的復(fù)雜性,建立完整的軟件生態(tài)系統(tǒng)至關(guān)重要 (來源:Atmel)
提示與技巧:
· 因應(yīng)物聯(lián)網(wǎng)應(yīng)用建置更多功能帶來的軟件復(fù)雜性,集成開發(fā)環(huán)境(IDE)是第一道防線。
· 當(dāng)物聯(lián)網(wǎng)設(shè)計(jì)者為其應(yīng)用增加服務(wù)時(shí),與其相關(guān)的軟件部份和驅(qū)動(dòng)程序會(huì)自動(dòng)增加至物聯(lián)網(wǎng)設(shè)計(jì)中。舉例來說,如果一位嵌入式開發(fā)人員在其設(shè)計(jì)中增加了一個(gè)USB組件,Atmel Software Framework (ASF)會(huì)自動(dòng)將底層的USB驅(qū)動(dòng)程序加入設(shè)計(jì)中。
· 透過使用諸如Atmel START這樣的在線軟件配置和部署引擎,能夠進(jìn)一步加快嵌入式軟件的創(chuàng)建。Atmel START是一種基于網(wǎng)絡(luò)的工具,讓開發(fā)人員能以圖形化的方式選擇和配置軟件組件,并將其整合于所需的硬件和中間件等資源中。這種工具完全獨(dú)立于操作系統(tǒng),在使用前也不需要在使用者的PC上進(jìn)行安裝。此外,它所產(chǎn)生的項(xiàng)目可以成為任何嵌入式IDE的目標(biāo),因此具有無與倫比的靈活性。
程序代碼規(guī)模和密度
對(duì)嵌入式設(shè)計(jì)者來說,同時(shí)影響硬件和軟件效率的另一個(gè)關(guān)鍵挑戰(zhàn)是程序代碼的規(guī)模和密度。一方面,物聯(lián)網(wǎng)系統(tǒng)要求更高的智能,這將導(dǎo)致更多的軟件和算法;另一方面,物聯(lián)網(wǎng)解決方案還必須具有低成本和低功耗的優(yōu)點(diǎn)。
物聯(lián)網(wǎng)應(yīng)用很容易就堆積成千上萬行程序代碼,因此除了埋頭編寫應(yīng)用程序代碼外還有大量的任務(wù)必須完成。程序代碼的數(shù)量增加意味著需要更多的閃存(flash)和RAM,進(jìn)而導(dǎo)致更大且更昂貴的芯片。這不僅增加了物聯(lián)網(wǎng)設(shè)計(jì)的成本,同時(shí)也提高了功耗。
在物聯(lián)網(wǎng)設(shè)計(jì)領(lǐng)域,如果執(zhí)行速度是管理軟件復(fù)雜性的關(guān)鍵指針,那么能效將與大量程序代碼的使用密切相關(guān)。對(duì)于新手來說,可以利用傳感器網(wǎng)絡(luò)程序代碼將傳感器數(shù)據(jù)移動(dòng)到物聯(lián)網(wǎng)邊緣節(jié)點(diǎn)或網(wǎng)關(guān)。
另外,用于以太網(wǎng)絡(luò)控制器的TCP/IP協(xié)議堆棧通常要占用50KB到100KB的空間。同樣地,諸如藍(lán)牙、Wi-Fi、ZigBee等連接鏈路帶來了由網(wǎng)絡(luò)管理、認(rèn)證和加密組成的協(xié)議堆棧,所需的內(nèi)存空間將是TCP/IP堆棧的兩倍。
圖3:Atmel Data Visualizer可以辨識(shí)由程序代碼特定部份導(dǎo)致的功耗突波 (來源:Atmel)
提示與技巧:
· 新一代的微控制器都配備了緊密耦合的內(nèi)存(TCM)功能,可為CPU提供單周期存取,從而提升外圍裝置發(fā)出的高優(yōu)先級(jí)延遲關(guān)鍵型請(qǐng)求。物聯(lián)網(wǎng)開發(fā)人員可以校準(zhǔn)要求零等待執(zhí)行性能的程序代碼數(shù)量,從而將TCM資源指定給這些程序代碼區(qū)段和數(shù)據(jù)區(qū)塊。
· 判斷哪一部份的軟件程序消耗太多功率是相當(dāng)困難的。然而,透過像Atmel Power Probe等工具有助于開發(fā)人員快速確定哪一部份的程序代碼的能耗較高。
· 接著,采用像Atmel Data Visualizer插件這一類工具,可以分析物聯(lián)網(wǎng)應(yīng)用的功率使用情況,作為標(biāo)準(zhǔn)除錯(cuò)過程的一部份。實(shí)時(shí)的功率測(cè)量可以在應(yīng)用執(zhí)行期間進(jìn)行擷取,功耗使用情況也可以輕松地與應(yīng)用程序的來源碼直接關(guān)聯(lián)。另外,藉由點(diǎn)選功率樣本,該工具可以突顯采樣時(shí)執(zhí)行的程序代碼,使其易于針對(duì)低功耗應(yīng)用實(shí)現(xiàn)優(yōu)化,它還能以示波器的方式觀察GPIO和UART等訊號(hào)。
· 新一代的高能效微控制器可以分別在工作和閑置期間智慧地通電和斷電,并在睡眠時(shí)消耗極低電流。以電池供電的物聯(lián)網(wǎng)應(yīng)用有助于為永不斷電的傳感器作業(yè)節(jié)省大量功耗,其方式是喚醒硬件、執(zhí)行任務(wù)以及回到睡眠模式。
云端與巨量資料
云端和巨量數(shù)據(jù)是物聯(lián)網(wǎng)軟件難題中第三個(gè)同樣重要的部份。針對(duì)云端通訊的軟件協(xié)議堆棧必須完成諸如裝置配置、文件傳輸以及基于規(guī)則的數(shù)據(jù)分析與響應(yīng)等任務(wù)。
首先也是最重要的,強(qiáng)大的數(shù)據(jù)分析功能為來自傳感器、機(jī)器或連接云端的裝置所產(chǎn)生的數(shù)據(jù),發(fā)揮著創(chuàng)造實(shí)際價(jià)值的重要作用。其次,安全功能將透過應(yīng)用白名單阻止未授權(quán)的程序代碼,確保經(jīng)驗(yàn)證的真實(shí)數(shù)據(jù)連接到云端。
中、小規(guī)模的物聯(lián)網(wǎng)系統(tǒng)面臨著獲得且高效率使用軟件工具鏈進(jìn)行數(shù)據(jù)擷取、處理和分析的巨大挑戰(zhàn)。此外,它們還要求軟件生態(tài)系統(tǒng)能夠因應(yīng)高度分化的物聯(lián)網(wǎng)設(shè)計(jì)領(lǐng)域。
這也表明了端到端解決方案在物聯(lián)網(wǎng)環(huán)境中為什么至關(guān)重要,以及正確的工程決策在物聯(lián)網(wǎng)軟件生態(tài)系統(tǒng)中極其關(guān)鍵的原因。業(yè)界需要全新的設(shè)計(jì)工具以因應(yīng)大量的連網(wǎng)傳感器需求,這些工具將有助于中小規(guī)模的物聯(lián)網(wǎng)設(shè)計(jì)團(tuán)隊(duì)因應(yīng)云端服務(wù)不斷增加、從而提高軟件開銷的問題。
提示與技巧:
· 一般來說,云端通訊超出了許多物聯(lián)網(wǎng)產(chǎn)品開發(fā)人員的核心專業(yè)知識(shí)范疇,因此這些開發(fā)人員與基于云端的物聯(lián)網(wǎng)平臺(tái)供貨商展開合作將更有意義?;谠贫说奈锫?lián)網(wǎng)套件包括商業(yè)級(jí)嵌入式軟件、用于嵌入式裝置的SDK、物聯(lián)網(wǎng)參考設(shè)計(jì)、裝置和應(yīng)用API以及高度可擴(kuò)展的通訊服務(wù)。
· 為了能夠快速部署連網(wǎng)裝置,開發(fā)人員提供現(xiàn)成可用的組件連接庫,并使其作為初始技術(shù)評(píng)估過程的一部份顯得越來越重要。
· 諸如Atmel等公司與多家端對(duì)端云端解決方案供貨商的合作,有助于為開發(fā)人員解決這些方面的所有問題。云端生態(tài)系統(tǒng)的合作伙伴們每一家都有自已的特色功能,很容易就能找到滿足特定使用案例和需求的解決方案。
評(píng)論
查看更多