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