物聯(lián)網(wǎng)嵌入式軟件設(shè)計的挑戰(zhàn)及應(yīng)對之道
再也沒有比現(xiàn)在更容易創(chuàng)辦一家硬件公司了。被許多人稱為嵌入式運算未來的「物聯(lián)網(wǎng)」(IoT),如今被視為一種更可負擔的軟、硬件融合平臺。然而,于此同時,軟件的復雜性又使得物聯(lián)網(wǎng)設(shè)計過程成為「適者生存」(survival of the fittest)的經(jīng)典案例。
物聯(lián)網(wǎng)設(shè)計無法「一勞永逸」,因為多樣化的傳感器和連接解決方案要求新的設(shè)計理念。另外,物聯(lián)網(wǎng)項目一般被認為具有高性能、低成本和低功耗等特點,而這些特性都和嵌入式軟件作業(yè)的某個方面密切相關(guān)。
例如,以高性能和低成本的特點而言,這意味著重復利用前項項目的可能性非常有限,軟件工程團隊也不可能因此而按比例擴增。由于無法隨意擴大軟件團隊和提高項目的成本預(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è)計工程師承擔不起先打造次系統(tǒng)后再觀察是否有效作業(yè)的后果。而如果從頭開始設(shè)計不僅增加項目成本,也會對于異質(zhì)的物聯(lián)網(wǎng)設(shè)計世界帶來更嚴格的上市時間限制。
因此,物聯(lián)網(wǎng)設(shè)計解決方案——從傳感器的數(shù)據(jù)擷取到云端的數(shù)據(jù)分析——都要求必須提早在工程師為物聯(lián)網(wǎng)產(chǎn)品進行芯片設(shè)計之前先進行設(shè)計驗證。因此,無疑地,在處理伴隨以無縫方式連接大量裝置的挑戰(zhàn)而來的復雜過程中,端到端的軟硬件平臺和連接解決方案套件至關(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)域,以及引導思考如何以高效和高性價比的方式執(zhí)行軟件作業(yè)。
軟件復雜性在嵌入式設(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等安全工具庫;這些軟件的編寫必須符合特定的標準。這一類軟件組成在很久以前即已編寫,并經(jīng)過時間的進展變得日益完善,因此,對于時間緊迫的物聯(lián)網(wǎng)開發(fā)人員來說,如果還要重新編寫而不善加利用這些現(xiàn)有軟件,實在沒什么道理。
事實上,從頭開始開發(fā)這類軟件可能面臨的風險是發(fā)現(xiàn)一些現(xiàn)實中曾經(jīng)出現(xiàn)過并已解決的問題。
圖2:面對物聯(lián)網(wǎng)設(shè)計的復雜性,建立完整的軟件生態(tài)系統(tǒng)至關(guān)重要 (來源:Atmel)
提示與技巧:
· 因應(yīng)物聯(lián)網(wǎng)應(yīng)用建置更多功能帶來的軟件復雜性,集成開發(fā)環(huán)境(IDE)是第一道防線。
· 當物聯(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的目標,因此具有無與倫比的靈活性。