物聯(lián)網(wǎng)嵌入式軟件設(shè)計(jì)的挑戰(zhàn)及應(yīng)對(duì)之道
掃描二維碼
隨時(shí)隨地手機(jī)看文章
再也沒(méi)有比現(xiàn)在更容易創(chuàng)辦一家硬件公司了。被許多人稱為嵌入式運(yùn)算未來(lái)的「物聯(lián)網(wǎng)」(IoT),如今被視為一種更可負(fù)擔(dān)的軟、硬件融合平臺(tái)。然而,于此同時(shí),軟件的復(fù)雜性又使得物聯(lián)網(wǎng)設(shè)計(jì)過(guò)程成為「適者生存」(survival of the fittest)的經(jīng)典案例。
物聯(lián)網(wǎng)設(shè)計(jì)無(wú)法「一勞永逸」,因?yàn)槎鄻踊膫鞲衅骱瓦B接解決方案要求新的設(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ò)增。由于無(wú)法隨意擴(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)重要 (來(lái)源: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ì)世界帶來(lái)更嚴(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)證。因此,無(wú)疑地,在處理伴隨以無(wú)縫方式連接大量裝置的挑戰(zhàn)而來(lái)的復(fù)雜過(guò)程中,端到端的軟硬件平臺(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等安全工具庫(kù);這些軟件的編寫必須符合特定的標(biāo)準(zhǔn)。這一類軟件組成在很久以前即已編寫,并經(jīng)過(guò)時(shí)間的進(jìn)展變得日益完善,因此,對(duì)于時(shí)間緊迫的物聯(lián)網(wǎng)開發(fā)人員來(lái)說(shuō),如果還要重新編寫而不善加利用這些現(xiàn)有軟件,實(shí)在沒(méi)什么道理。
事實(shí)上,從頭開始開發(fā)這類軟件可能面臨的風(fēng)險(xiǎn)是發(fā)現(xiàn)一些現(xiàn)實(shí)中曾經(jīng)出現(xiàn)過(guò)并已解決的問(wèn)題。
圖2:面對(duì)物聯(lián)網(wǎng)設(shè)計(jì)的復(fù)雜性,建立完整的軟件生態(tài)系統(tǒng)至關(guān)重要 (來(lái)源:Atmel)
提示與技巧:
· 因應(yīng)物聯(lián)網(wǎng)應(yīng)用建置更多功能帶來(lái)的軟件復(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ì)中。舉例來(lái)說(shuō),如果一位嵌入式開發(fā)人員在其設(shè)計(jì)中增加了一個(gè)USB組件,Atmel Software Framework (ASF)會(huì)自動(dòng)將底層的USB驅(qū)動(dòng)程序加入設(shè)計(jì)中。
· 透過(guò)使用諸如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),因此具有無(wú)與倫比的靈活性。