如何調(diào)整現(xiàn)有設(shè)計使之應(yīng)用于物聯(lián)網(wǎng)(IoT)
2019-10-30
來源:Microchip Technology Inc. 業(yè)務(wù)拓展經(jīng)理(EMEA)Arild Rodland
對于許多人來說,當(dāng)前聯(lián)網(wǎng)家電數(shù)量的激增讓人回想起20世紀(jì)90年代越來越多的個人計算機連入互聯(lián)網(wǎng)的情形。當(dāng)時,關(guān)于這項技術(shù)僅僅是一個噱頭,還是確實會對社會產(chǎn)生持久影響,諸如此類的爭論此起彼伏。如今,聯(lián)網(wǎng)PC和手機已被認(rèn)為是必不可少的設(shè)備,許多人預(yù)見到聯(lián)網(wǎng)家電在全世界普及將成為必然趨勢。
能夠從全世界任何地方開啟咖啡機似乎并不是改變生活的技術(shù),但是咖啡機僅僅是家庭物聯(lián)網(wǎng)革命的起點。物聯(lián)網(wǎng)將成為在電器領(lǐng)域取得創(chuàng)新發(fā)展和尋求商機的基礎(chǔ)。機器學(xué)習(xí)和人工智能技術(shù)的不斷進步只會加速這一發(fā)展進程。從電器和傳感器收集原始數(shù)據(jù)的能力將開啟一個全新的世界,豐富的用例和機遇將接踵而至。
一些設(shè)計人員不確定是否要參與物聯(lián)網(wǎng)革命,因為他們擔(dān)心構(gòu)建帶有物聯(lián)網(wǎng)連接功能的嵌入式設(shè)計會是一項艱巨的任務(wù)。而現(xiàn)實情況是,這些需求很容易實現(xiàn)。支持物聯(lián)網(wǎng)的產(chǎn)品通常僅包含三個元素:處理器或單片機(“智能”元素)、網(wǎng)絡(luò)控制器(“連接”元素)以及確保與云安全通信的方法(“安全”元素)。
由于大多數(shù)設(shè)計人員已經(jīng)投入了大量時間和精力來打造出色的產(chǎn)品,因此重復(fù)使用大多數(shù)現(xiàn)有設(shè)計工作可帶來極大的優(yōu)勢。通常,僅需將連接元素和安全元素添加到現(xiàn)有設(shè)計中即可實現(xiàn)物聯(lián)網(wǎng)連接。無需從頭開始設(shè)計解決方案,而是可以通過快速轉(zhuǎn)換現(xiàn)有設(shè)計來連接到物聯(lián)網(wǎng)??梢酝ㄟ^采用軟件編程領(lǐng)域公認(rèn)的技術(shù)高效完成這項任務(wù),從而簡化和加速開發(fā)過程。
分解挑戰(zhàn),逐一擊破
嵌入式設(shè)計人員著手使現(xiàn)有產(chǎn)品能在物聯(lián)網(wǎng)中運行的任務(wù)時,可以向軟件編程人員學(xué)習(xí)一些技巧。面對復(fù)雜編程挑戰(zhàn)的編程人員一直以來都采用自上而下的設(shè)計方法或模塊化編程。這種方法涉及將較大的問題分解為較小的、更易于管理的子問題,而這些子問題又可以分解為更小的待處理任務(wù)。這是一種強大且經(jīng)過驗證的方法,能夠解決單一代碼難以處理的挑戰(zhàn)性問題。那么,如何將這種方法使用到嵌入式硬件系統(tǒng)中呢?
事實證明,嵌入式系統(tǒng)工程師可以通過對其系統(tǒng)開發(fā)進行模塊化處理來獲得同樣的好處。除了面臨純粹的編程挑戰(zhàn)之外,嵌入式系統(tǒng)通常還需要符合相應(yīng)標(biāo)準(zhǔn)并經(jīng)過嚴(yán)格的認(rèn)證流程。認(rèn)證后更改軟件或硬件可能需要重新認(rèn)證產(chǎn)品。僅出于這個原因,將需要認(rèn)證的部分拆分為多個子系統(tǒng)會帶來巨大的優(yōu)勢。這樣,一個子系統(tǒng)中的缺陷將不會影響其他子系統(tǒng)的性能。
例如,許多設(shè)計人員希望為新一代現(xiàn)有產(chǎn)品添加安全的互聯(lián)網(wǎng)連接,以改善用戶體驗及方便添加各種功能,包括遠程診斷、監(jiān)視功能、自動履行服務(wù)和統(tǒng)計數(shù)據(jù)收集,從而為未來的產(chǎn)品增強做好計劃。這種支持物聯(lián)網(wǎng)的產(chǎn)品需要以下三個主要功能:1)原始應(yīng)用;2)與互聯(lián)網(wǎng)的連接;3)一種保護應(yīng)用的方法。如圖1所示,這種支持物聯(lián)網(wǎng)的應(yīng)用本質(zhì)上是添加了安全功能和連接功能的原始應(yīng)用。
圖1:支持物聯(lián)網(wǎng)的應(yīng)用包括原始應(yīng)用、安全功能和連接功能
從實現(xiàn)的角度來看,這種設(shè)計挑戰(zhàn)可分為三個子任務(wù):原始應(yīng)用程序代碼可重復(fù)使用,僅添加了安全功能和連接功能。
不過,對于工程師而言,從頭開始添加安全功能和互聯(lián)網(wǎng)連接功能都很復(fù)雜。此外,將新功能集成到現(xiàn)有應(yīng)用程序中可能會干擾現(xiàn)有解決方案,從而降低組合應(yīng)用程序的質(zhì)量。開發(fā)人員通常會編寫針對當(dāng)前應(yīng)用程序進行了高度優(yōu)化的代碼。因此,很難保證在添加時序關(guān)鍵連接功能和計算任務(wù)繁重的安全功能的同時,又保證更新后的產(chǎn)品達到相同的性能水平標(biāo)準(zhǔn)。
圖2說明了這種組合方法。所有功能都作為單個解決方案實現(xiàn),這增加了編寫和調(diào)試應(yīng)用程序的復(fù)雜性。一部分代碼中的缺陷可能會影響其他關(guān)鍵功能的時序和性能,這可能會使簡單的缺陷造成負面影響,進而導(dǎo)致需要進行重新認(rèn)證。
圖2:在此集成解決方案中,所有代碼和功能都集成在單個器件中,這會增加代碼復(fù)雜性并延長代碼開發(fā)時間
采用模塊化方法將使設(shè)計人員能夠保持其現(xiàn)有代碼庫和IP不變,僅根據(jù)需要添加連接和安全功能。
使用這種方法,可以將安全和連接功能實現(xiàn)為單獨的軟件和硬件任務(wù),從而節(jié)省大量時間,并減少給定產(chǎn)品所需的工程師數(shù)量。該方法還可更方便地重復(fù)使用代碼和系統(tǒng),從而提供了更大的靈活性。例如,設(shè)計人員可能希望同時提供同一產(chǎn)品的Wi-Fi和低功耗藍牙(BLE)兩種型號。在這種情況下,模塊化方法可快速、方便地實現(xiàn)物聯(lián)網(wǎng)設(shè)計的創(chuàng)新。
圖3:借助模塊化解決方案,設(shè)計人員可以重復(fù)使用現(xiàn)有應(yīng)用程序,并將安全功能和連接功能隔離為與主應(yīng)用程序無關(guān)的更小、更易于管理的任務(wù)
模塊化方法的優(yōu)點是,在向產(chǎn)品添加物聯(lián)網(wǎng)連接時,不會丟失任何專注于優(yōu)化和調(diào)整現(xiàn)有系統(tǒng)的工作。設(shè)計人員可以輕松添加所需的功能,而不會影響系統(tǒng)的其他部分。
為了簡化過程,可以選擇經(jīng)過認(rèn)證的模塊實現(xiàn)安全功能和無線通信。這將極大縮短認(rèn)證時間以及新產(chǎn)品上市所需的時間。Microchip的ATECC608A器件就是一種經(jīng)過認(rèn)證的安全元件。此器件可處理與密鑰和證書的驗證以及安全存儲相關(guān)的所有任務(wù),無需編寫任何代碼即可提供安全的解決方案。同樣,經(jīng)過認(rèn)證的無線模塊可執(zhí)行安全連接到無線網(wǎng)絡(luò)所需的所有操作。
此外,使用經(jīng)過認(rèn)證的模塊實現(xiàn)安全功能和無線功能時,不需要設(shè)計人員是安全或通信領(lǐng)域的專家。這些模塊包含所有必需的代碼段,通常由通過UART、SPI或I2C等串行接口發(fā)送的簡單命令控制。
為了進一步簡化設(shè)計并縮短上市時間,諸如Microchip AVR-IoT WG開發(fā)板之類的開發(fā)板包含了這些模塊,以實現(xiàn)安全且易于部署的物聯(lián)網(wǎng)連接。利用這些工具,工程師只需花費30秒并通過幾次點擊便可將現(xiàn)有產(chǎn)品連接到Google Cloud IoT Core,然后開始傳輸數(shù)據(jù)。
圖4:AVR-IoT WG開發(fā)板結(jié)合了AVR單片機、安全元件IC和經(jīng)過認(rèn)證的Wi-Fi網(wǎng)絡(luò)控制器,可幫助設(shè)計人員在幾分鐘內(nèi)完成聯(lián)網(wǎng)設(shè)備的原型設(shè)計
如果能夠?qū)⒓译姾拖M產(chǎn)品連接到云,無論是為人工智能和機器學(xué)習(xí)應(yīng)用提供大數(shù)據(jù),還是僅提供一種執(zhí)行安全遠程固件更新的更安全方法,其潛在的價值都是巨大的。通過分解挑戰(zhàn)和使用經(jīng)過認(rèn)證的模塊來實現(xiàn)安全和通信功能,設(shè)計人員可以方便、快捷地調(diào)整當(dāng)前設(shè)計來利用這些機會。