亚洲爆乳成AV人在线视菜奈实_欧美一进一出抽搐大尺度视频 _日本十八禁免费看污网站_国产一区二区怡红院_6080YY新视觉影院_蜜臀AV无码人妻精品_成人影院YY111111在线_成人欧美一区二区三区1314_少妇饥渴偷公乱A级无码

首頁(yè) 新聞 工控搜 論壇 廠商論壇 產(chǎn)品 方案 廠商 人才 文摘 下載 展覽
中華工控網(wǎng)首頁(yè)
  P L C | 變頻器與傳動(dòng) | 傳感器 | 現(xiàn)場(chǎng)檢測(cè)儀表 | 工控軟件 | 人機(jī)界面 | 運(yùn)動(dòng)控制
  D C S | 工業(yè)以太網(wǎng) | 現(xiàn)場(chǎng)總線 | 顯示調(diào)節(jié)儀表 | 數(shù)據(jù)采集 | 數(shù)傳測(cè)控 | 工業(yè)安全
  電 源 | 嵌入式系統(tǒng) | PC based | 機(jī)柜箱體殼體 | 低壓電器 | 機(jī)器視覺(jué)
入式微控制器應(yīng)用中的無(wú)線(OTA)更新:設(shè)計(jì)權(quán)衡與經(jīng)驗(yàn)教訓(xùn)
亞德諾
收藏本文     查看收藏

摘要

許多嵌入式系統(tǒng)部署在操作人員難以或無(wú)法接近的地方。物聯(lián)網(wǎng)(IoT)應(yīng)用尤其如此,這些應(yīng)用通常大量部署并且電池壽命有限。實(shí)例包括監(jiān)控人員或機(jī)器健康狀況的嵌入式系統(tǒng)。這些挑戰(zhàn)加上快速迭代的軟件生命周期,導(dǎo)致許多系統(tǒng)需要支持無(wú)線(OTA)更新。OTA更新用新軟件替換嵌入式系統(tǒng)的微控制器或微處理器上的軟件。雖然很多人非常熟悉移動(dòng)設(shè)備上的OTA更新,但在資源受限的系統(tǒng)上設(shè)計(jì)和實(shí)施會(huì)帶來(lái)許多不同的挑戰(zhàn)。本文將介紹針對(duì)OTA更新的若干不同軟件設(shè)計(jì),并討論其優(yōu)缺點(diǎn)。我們將了解OTA更新軟件如何利用兩款超低功耗微控制器的硬件特性。

構(gòu)建模塊

服務(wù)器和客戶端

OTA更新用新軟件替換器件上的當(dāng)前軟件,新軟件以無(wú)線方式下載。在嵌入式系統(tǒng)中,運(yùn)行此軟件的器件通常是微控制器。微控制器是一種小型計(jì)算器件,其存儲(chǔ)器、速度和功耗均很有限。微控制器通常包含微處理器(核心)和用于執(zhí)行特定操作的數(shù)字硬件模塊(外設(shè))。工作模式下典型功耗為30μA/MHz至40μA/MHz的超低功耗微控制器是此類應(yīng)用的理想選擇。使用這些微控制器上的特定硬件外設(shè)并將其置于低功耗模式,是OTA更新軟件設(shè)計(jì)的重要組成部分。圖1顯示了一個(gè)可能需要OTA更新的嵌入式系統(tǒng)實(shí)例。可以看到,一個(gè)微控制器與無(wú)線電和傳感器相連,這可用在物聯(lián)網(wǎng)應(yīng)用中,利用傳感器收集有關(guān)環(huán)境的數(shù)據(jù),并利用無(wú)線電定期報(bào)告數(shù)據(jù)。系統(tǒng)的這一部分稱為邊緣節(jié)點(diǎn)或客戶端,是OTA更新的目標(biāo)。系統(tǒng)的另一部分稱為云或服務(wù)器,是新軟件的提供者。服務(wù)器和客戶端利用收發(fā)器(無(wú)線電)通過(guò)無(wú)線連接進(jìn)行通信。

1.示例嵌入式系統(tǒng)中的服務(wù)器/客戶端架構(gòu)

何為軟件應(yīng)用程序?

OTA更新過(guò)程的大部分操作是將新軟件從服務(wù)器傳輸?shù)娇蛻舳恕\浖䦶脑锤袷睫D(zhuǎn)換為二進(jìn)制格式之后,作為一個(gè)字節(jié)序列進(jìn)行傳輸。轉(zhuǎn)換過(guò)程會(huì)編譯源代碼文件(例如ccpp),將其鏈接成一個(gè)可執(zhí)行文件(例如exeelf),然后將可執(zhí)行文件轉(zhuǎn)換為可移植的二進(jìn)制文件格式(例如binhex)。概言之,這些文件格式包含一個(gè)字節(jié)序列,此字節(jié)序列屬于微控制器中存儲(chǔ)器的特定地址。通常,我們將通過(guò)無(wú)線鏈路發(fā)送的信息概念化為數(shù)據(jù),例如更改系統(tǒng)狀態(tài)的命令或系統(tǒng)收集的傳感器數(shù)據(jù)。就OTA更新而言,數(shù)據(jù)就是二進(jìn)制格式的新軟件。在很多情況下,二進(jìn)制文件非常大,無(wú)法通過(guò)單次傳輸從服務(wù)器發(fā)送到客戶端,這意味著需要將二進(jìn)制文件放入多個(gè)不同的數(shù)據(jù)包中,此過(guò)程稱為“分包”。為了更好地說(shuō)明此過(guò)程,圖2演示了軟件的不同版本如何生成不同的二進(jìn)制文件,從而在OTA更新期間發(fā)送不同的數(shù)據(jù)包。在這個(gè)簡(jiǎn)單例子中,每個(gè)數(shù)據(jù)包包含8字節(jié)數(shù)據(jù),前4個(gè)字節(jié)表示客戶端存儲(chǔ)器中用來(lái)存儲(chǔ)后4個(gè)字節(jié)的地址。

主要挑戰(zhàn)

基于對(duì)OTA更新過(guò)程的這種高層次描述,OTA更新解決方案必須應(yīng)對(duì)三大挑戰(zhàn)。第一個(gè)挑戰(zhàn)與存儲(chǔ)器有關(guān)。軟件解決方案必須將新軟件應(yīng)用程序組織到客戶端器件的易失性或非易失性存儲(chǔ)器中,以便在更新過(guò)程完成時(shí)可以執(zhí)行它。解決方案必須確保將前一版本的軟件保留為后備應(yīng)用程序,以防新軟件出現(xiàn)問(wèn)題。此外,當(dāng)復(fù)位和斷電重啟時(shí),我們必須讓客戶端器件的狀態(tài)——例如當(dāng)前運(yùn)行的軟件版本以及它在存儲(chǔ)器中的位置——保持不變。第二大挑戰(zhàn)是通信。新軟件必須以離散數(shù)據(jù)包的形式從服務(wù)器發(fā)送到客戶端,每個(gè)數(shù)據(jù)包都要放在客戶端存儲(chǔ)器中的特定地址。分包方案、數(shù)據(jù)包結(jié)構(gòu)和數(shù)據(jù)傳輸協(xié)議必須在軟件設(shè)計(jì)中考慮周全。最后一個(gè)主要挑戰(zhàn)是安全性。當(dāng)新軟件以無(wú)線方式從服務(wù)器發(fā)送到客戶端時(shí),我們必須確保服務(wù)器是可信任方。這種安全挑戰(zhàn)稱為身份驗(yàn)證。我們還必須對(duì)新軟件進(jìn)行模糊處理以防觀察者偷窺,因?yàn)槠渲锌赡馨舾行畔ⅰ_@種安全挑戰(zhàn)稱為保密。安全性的最后一個(gè)要素是完整性,即確保新軟件在通過(guò)無(wú)線方式發(fā)送時(shí)不會(huì)損壞。

2.軟件應(yīng)用程序的二進(jìn)制轉(zhuǎn)換和分包過(guò)程

第二階段引導(dǎo)加載程序(SSBL)

了解引導(dǎo)序列

主引導(dǎo)加載程序是一種軟件應(yīng)用程序,永久駐留在微控制器的只讀存儲(chǔ)器中。主引導(dǎo)加載程序所在的存儲(chǔ)區(qū)域稱為信息空間,有時(shí)用戶無(wú)法訪問(wèn)。每次復(fù)位都會(huì)執(zhí)行該應(yīng)用程序,一般完成一些必要的硬件初始化,并且可能將用戶軟件加載到存儲(chǔ)器中。但是,如果微控制器包含片內(nèi)非易失性存儲(chǔ)器(如閃存),則引導(dǎo)加載程序不需要進(jìn)行任何加載,只需將控制權(quán)轉(zhuǎn)移到閃存中的程序即可。如果主引導(dǎo)加載程序不支持OTA更新,則必須有第二階段引導(dǎo)加載程序。與主引導(dǎo)加載程序一樣,SSBL會(huì)在每次復(fù)位時(shí)運(yùn)行,但將實(shí)施OTA更新過(guò)程的一部分。此引導(dǎo)序列如圖3所示。本節(jié)將說(shuō)明為什么需要第二階段引導(dǎo)加載程序,并解釋如何指定此應(yīng)用程序的作用是一個(gè)重要設(shè)計(jì)權(quán)衡。

經(jīng)驗(yàn)教訓(xùn):務(wù)必有一個(gè)SSBL

從概念上講,省略SSBL并將所有OTA更新功能放入用戶應(yīng)用程序似乎更簡(jiǎn)單,因?yàn)檫@樣的話,OTA過(guò)程可以無(wú)縫利用現(xiàn)有的軟件框架、操作系統(tǒng)和設(shè)備驅(qū)動(dòng)程序。圖4顯示了一個(gè)選擇此方法的系統(tǒng)的存儲(chǔ)器映射和引導(dǎo)序列。

應(yīng)用程序A是部署在現(xiàn)場(chǎng)微控制器上的原始應(yīng)用程序。此應(yīng)用程序包含OTA更新相關(guān)軟件,當(dāng)服務(wù)器請(qǐng)求時(shí),利用該軟件可下載應(yīng)用程序B。下載完成且應(yīng)用程序B經(jīng)過(guò)驗(yàn)證之后,應(yīng)用程序A將對(duì)應(yīng)用程序B的復(fù)位處理程序執(zhí)行分支指令,以將控制權(quán)轉(zhuǎn)移給應(yīng)用程序B。復(fù)位處理程序是一小段代碼,用作軟件應(yīng)用程序的入口點(diǎn),并在復(fù)位時(shí)運(yùn)行。在這種情況下,復(fù)位是通過(guò)執(zhí)行一個(gè)分支來(lái)模擬,這相當(dāng)于函數(shù)調(diào)用。這種方法有兩大問(wèn)題:

  • 許多嵌入式軟件應(yīng)用程序采用實(shí)時(shí)操作系統(tǒng)(RTOS),其允許將軟件拆分為多個(gè)并發(fā)任務(wù),每個(gè)任務(wù)在系統(tǒng)中具有不同的職責(zé)。例如,圖1所示的應(yīng)用程序可能有用于讀取傳感器的RTOS任務(wù),對(duì)傳感器數(shù)據(jù)運(yùn)行某種算法的RTOS任務(wù),以及與無(wú)線電接口的RTOS任務(wù)。RTOS本身始終處于活動(dòng)狀態(tài),負(fù)責(zé)根據(jù)異步事件或特定的基于時(shí)間的延遲切換這些任務(wù)。因此,從RTOS任務(wù)分支到新程序是不安全的,因?yàn)槠渌蝿?wù)會(huì)在后臺(tái)繼續(xù)運(yùn)行。對(duì)于實(shí)時(shí)操作系統(tǒng),終止某個(gè)程序的唯一安全方法是通過(guò)復(fù)位。

 

3.使用SSBL的存儲(chǔ)器映射和引導(dǎo)流程示例

4.沒(méi)有SSBL的存儲(chǔ)器映射和引導(dǎo)流程示例

  • 基于圖4,上述問(wèn)題的解決辦法是讓主引導(dǎo)加載程序分支到應(yīng)用程序B而不是應(yīng)用程序A。但在某些微控制器上,主引導(dǎo)加載程序總是運(yùn)行具有中斷向量表(IVT)的程序;IVT是應(yīng)用程序的一個(gè)關(guān)鍵部分,描述中斷處理函數(shù),位于地址0。這意味著必須以某種形式重定位IVT,使其復(fù)位映射到應(yīng)用程序B。如果在IVT重定位期間發(fā)生斷電重啟,則系統(tǒng)可能會(huì)處于永久破損狀態(tài)。

將SSBL固定在地址0可以解決這些問(wèn)題,如圖3所示。SSBL不是RTOS程序,因此可以安全地分支到新應(yīng)用程序。地址0處的SSBL的IVT永遠(yuǎn)不會(huì)重新定位,所以不必?fù)?dān)心斷電重啟會(huì)將系統(tǒng)置于災(zāi)難性狀態(tài)。

設(shè)計(jì)權(quán)衡:SSBL的作用

我們花了很多時(shí)間討論SSBL及其與應(yīng)用軟件的關(guān)系,但SSBL程序有何作用?至少,該程序必須確定當(dāng)前應(yīng)用程序是什么(其開(kāi)始位置),然后分支到該地址。微控制器存儲(chǔ)器中各種應(yīng)用的位置一般保存在目錄(ToC)中,如圖3所示。這是持久內(nèi)存中的一個(gè)共享區(qū)域,SSBL和應(yīng)用軟件均利用它來(lái)相互通信。當(dāng)OTA更新過(guò)程完成時(shí),新的應(yīng)用程序信息會(huì)更新ToC。OTA更新功能的某些部分也可以被推送到SSBL。開(kāi)發(fā)OTA更新軟件時(shí),確定推送哪些部分是重要的設(shè)計(jì)決策。上述最小SSBL將非常簡(jiǎn)單,易于驗(yàn)證,并且在應(yīng)用程序的生命周期中很可能不需要修改。但是,這意味著每個(gè)應(yīng)用程序都要負(fù)責(zé)下載和驗(yàn)證下一個(gè)應(yīng)用程序。這可能導(dǎo)致無(wú)線電堆棧、設(shè)備固件和OTA更新軟件的代碼重復(fù)。另一方面,我們可以選擇將整個(gè)OTA更新過(guò)程推送到SSBL。在這種情況下,應(yīng)用程序只需在ToC中設(shè)置一個(gè)標(biāo)志以請(qǐng)求更新,然后執(zhí)行復(fù)位。SSBL隨后執(zhí)行下載序列和驗(yàn)證過(guò)程。這將最大限度地減少代碼重復(fù)并簡(jiǎn)化應(yīng)用專用軟件。然而,這會(huì)引入一個(gè)新的挑戰(zhàn),那就是可能需要更新SSBL本身(即更新更新代碼)。最終,決定SSBL中放置哪些功能將取決于客戶端器件的存儲(chǔ)器限制、下載的應(yīng)用程序之間的相似性以及OTA更新軟件的可移植性。

設(shè)計(jì)權(quán)衡:緩存和壓縮

OTA更新軟件中的另一個(gè)關(guān)鍵設(shè)計(jì)決策是在OTA更新過(guò)程中如何組織存儲(chǔ)器中傳入的應(yīng)用程序。微控制器上通常有兩類存儲(chǔ)器:非易失性存儲(chǔ)器(例如閃存)和易失性存儲(chǔ)器(例如SRAM)。閃存用于存儲(chǔ)應(yīng)用程序的程序代碼和只讀數(shù)據(jù),以及其他系統(tǒng)級(jí)數(shù)據(jù),例如ToC和事件日志。SRAM用于存儲(chǔ)軟件應(yīng)用程序的可修改部分,例如非常數(shù)全局變量和堆棧。圖2所示的軟件應(yīng)用程序二進(jìn)制文件僅包含非易失性存儲(chǔ)器中存在的程序的某些部分。在啟動(dòng)例程期間,應(yīng)用程序?qū)⒊跏蓟瘜儆谝资源鎯?chǔ)器的部分。

在OTA更新過(guò)程中,每次客戶端器件從服務(wù)器收到一個(gè)包含該二進(jìn)制文件一部分的數(shù)據(jù)包時(shí),便會(huì)將其存儲(chǔ)到SRAM中。該數(shù)據(jù)包可以是壓縮的,也可以是未壓縮的。壓縮應(yīng)用程序二進(jìn)制文件的好處是文件會(huì)變小,從而要發(fā)送的數(shù)據(jù)包會(huì)減少,下載過(guò)程中存儲(chǔ)數(shù)據(jù)包所需的SRAM空間相應(yīng)地減小。這種方法的缺點(diǎn)是壓縮和解壓縮會(huì)增加更新過(guò)程的處理時(shí)間,并且必須在OTA更新軟件中捆綁壓縮相關(guān)代碼。

新應(yīng)用軟件屬于閃存,但在更新過(guò)程中到達(dá)SRAM,因此OTA更新軟件需要在更新過(guò)程中的某個(gè)時(shí)刻執(zhí)行對(duì)閃存的寫(xiě)操作。暫時(shí)將新應(yīng)用程序存儲(chǔ)在SRAM中的操作稱為緩存。概言之,OTA更新軟件可以采取三種不同的緩存方法。

  • 不緩存:每次包含新應(yīng)用程序一部分的數(shù)據(jù)包到達(dá)時(shí),便將其寫(xiě)入閃存中的目標(biāo)位置。這種方案非常簡(jiǎn)單,可以最大限度地減少OTA更新軟件中的邏輯數(shù)量,但要求完全擦除新應(yīng)用程序?qū)?yīng)的閃存區(qū)域。此方法會(huì)消磨閃存并增加開(kāi)銷。

  • 部分緩存:保留一個(gè)SRAM區(qū)域用于緩存,當(dāng)新數(shù)據(jù)包到達(dá)時(shí),將其存儲(chǔ)在該區(qū)域中。當(dāng)該區(qū)域填滿時(shí),將數(shù)據(jù)寫(xiě)入閃存以清空該區(qū)域。如果數(shù)據(jù)包無(wú)序到達(dá)或新應(yīng)用程序二進(jìn)制文件中存在間隙,這種方案可能會(huì)變得很復(fù)雜,因?yàn)樾枰环N方法來(lái)將SRAM地址映射到閃存地址。一種策略是讓緩存充當(dāng)閃存一部分的鏡像。閃存被劃分為若干稱為頁(yè)面的小區(qū)域,這是可供擦除的最小區(qū)域。得益于這種自然劃分,一個(gè)好辦法是在SRAM中緩存閃存的一頁(yè),當(dāng)其填滿或下一數(shù)據(jù)包屬于其他頁(yè)面時(shí),便將該頁(yè)寫(xiě)入閃存以清空緩存。
  • 完全緩存:在OTA更新過(guò)程中將整個(gè)新應(yīng)用程序存儲(chǔ)在SRAM中,只有從服務(wù)器完全下載好新應(yīng)用程序之后才將其寫(xiě)入閃存。這種方法克服了前述方法的缺點(diǎn),寫(xiě)入閃存的次數(shù)最少,OTA更新軟件無(wú)需復(fù)雜的緩存邏輯。但是,這會(huì)限制所下載新應(yīng)用程序的大小,因?yàn)橄到y(tǒng)的可用SRAM量通常遠(yuǎn)小于可用閃存量。

5.使用SRAM緩存閃存的一頁(yè)

圖5顯示了OTA更新過(guò)程中的第二種方案——部分緩存,來(lái)自圖3和圖4的應(yīng)用程序A所對(duì)應(yīng)的閃存部分被放大,并且顯示了用于SSBL的SRAM的功能存儲(chǔ)器映射。示例閃存頁(yè)面大小為2 kB。最終,此設(shè)計(jì)決策將取決于新應(yīng)用程序的大小和OTA更新軟件容許的復(fù)雜度。

安全和通信

設(shè)計(jì)權(quán)衡:軟件與協(xié)議

OTA更新解決方案還必須解決安全和通信問(wèn)題。如圖1所示,許多系統(tǒng)會(huì)在硬件和軟件中實(shí)現(xiàn)通信協(xié)議,以支持系統(tǒng)的普通(非OTA更新相關(guān))操作,例如交換傳感器數(shù)據(jù)。這意味著服務(wù)器和客戶端之間已經(jīng)建立了(可能是安全的)無(wú)線通信的方法。類似圖1所示的嵌入式系統(tǒng)可以使用的通信協(xié)議有低功耗藍(lán)牙® (BLE)或6LoWPAN等。有時(shí)候,這些協(xié)議支持安全性和數(shù)據(jù)交換,OTA更新軟件在OTA更新過(guò)程中可以利用。

OTA更新軟件中必須構(gòu)建的通信功能量最終將取決于現(xiàn)有通信協(xié)議提供的抽象程度。現(xiàn)有通信協(xié)議具有用于在服務(wù)器和客戶端之間發(fā)送和接收文件的工具,OTA更新軟件可以簡(jiǎn)單地將該工具用于下載過(guò)程。但是,如果通信協(xié)議較為原始,只有發(fā)送原始數(shù)據(jù)的工具,那么OTA更新軟件可能需要執(zhí)行分包處理,并提供元數(shù)據(jù)和新應(yīng)用程序二進(jìn)制文件。這也適用于安全挑戰(zhàn)。如果通信協(xié)議不支持,OTA更新軟件可能要負(fù)責(zé)對(duì)無(wú)線保密發(fā)送的字節(jié)進(jìn)行解密。

總之,在OTA更新軟件中實(shí)施哪些功能,例如自定義數(shù)據(jù)包結(jié)構(gòu)、服務(wù)器/客戶端同步、加密和密鑰交換等,將取決于系統(tǒng)的通信協(xié)議提供了什么內(nèi)容以及對(duì)安全性和穩(wěn)健性的要求。下一節(jié)將提出一個(gè)完整的安全解決方案,其解決了之前介紹的所有挑戰(zhàn),我們將展示如何在此解決方案中利用微控制器的加密硬件外設(shè)。

解決安全挑戰(zhàn)

我們的安全解決方案需要讓新應(yīng)用程序以無(wú)線方式保密發(fā)送,檢測(cè)新應(yīng)用程序中的任何損壞,并驗(yàn)證新應(yīng)用程序是從受信任的服務(wù)器而不是惡意方發(fā)送的。這些挑戰(zhàn)可通過(guò)加密操作來(lái)解決。具體而言,該安全解決方案可以使用兩種加密操作:加密和哈希處理。加密使用客戶端和服務(wù)器共享的密鑰(密碼)來(lái)對(duì)無(wú)線發(fā)送的數(shù)據(jù)進(jìn)行模糊處理。微控制器的加密硬件加速器可能支持的特定加密類型是AES-128或AES-256,具體取決于密鑰大小。除了加密數(shù)據(jù),服務(wù)器還可以發(fā)送一個(gè)摘要以確保沒(méi)有損壞。摘要通過(guò)對(duì)數(shù)據(jù)包進(jìn)行哈希處理來(lái)生成,這是一種用于生成唯一代碼的不可逆數(shù)學(xué)函數(shù)。在服務(wù)器產(chǎn)生消息或摘要之后,如果其任何部分遭到修改,比如在無(wú)線通信期間有一位發(fā)生翻轉(zhuǎn),則客戶端在對(duì)數(shù)據(jù)包執(zhí)行相同的哈希函數(shù)處理并比較摘要時(shí),會(huì)注意到此修改。微控制器的加密硬件加速器可能支持的特定哈希處理類型是SHA-256。圖6顯示了微控制器中的加密硬件外設(shè)的框圖,OTA更新軟件駐留在Cortex-M4應(yīng)用層中。此圖還顯示了其支持將受保護(hù)密鑰存儲(chǔ)在外設(shè)中,OTA更新軟件解決方案可以利用這一點(diǎn)來(lái)安全存儲(chǔ)客戶端密鑰。

6.ADuCM4050上的加密加速器的硬件框圖

解決身份驗(yàn)證這一最終挑戰(zhàn)的常見(jiàn)技術(shù)是使用非對(duì)稱加密。對(duì)于此操作,服務(wù)器會(huì)生成一個(gè)公鑰-私鑰對(duì)。私鑰只有服務(wù)器知道,客戶端知道公鑰。服務(wù)器使用私鑰可以生成給定數(shù)據(jù)塊的簽名,例如要無(wú)線發(fā)送的數(shù)據(jù)包的摘要。簽名被發(fā)送給客戶端,后者可以使用公鑰驗(yàn)證簽名。這樣,客戶端就能確認(rèn)消息是從服務(wù)器而不是惡意第三方發(fā)送的。此序列如圖7所示,實(shí)線箭頭表示函數(shù)輸入/輸出,虛線箭頭表示無(wú)線發(fā)送的信息。

7.使用非對(duì)稱加密驗(yàn)證消息

多數(shù)微控制器沒(méi)有用于執(zhí)行這些非對(duì)稱加密操作的硬件加速器,但可以使用Micro-ECC等專門針對(duì)資源受限器件的軟件庫(kù)來(lái)實(shí)現(xiàn)。該庫(kù)需要一個(gè)用戶定義的隨機(jī)數(shù)生成功能,這可以利用微控制器上的真隨機(jī)數(shù)發(fā)生器硬件外設(shè)來(lái)實(shí)現(xiàn)。雖然這些非對(duì)稱加密操作解決了OTA更新期間的信任挑戰(zhàn),但是會(huì)消耗大量處理時(shí)間,并且需要將簽名與數(shù)據(jù)一同發(fā)送,這會(huì)增加數(shù)據(jù)包大小。我們可以在下載結(jié)束時(shí)使用最后數(shù)據(jù)包的摘要或整個(gè)新軟件應(yīng)用程序的摘要執(zhí)行一次此檢查,但如此的話,第三方將能把不受信任的軟件下載到客戶端,這不太理想。理想情況下,我們希望驗(yàn)證所收到的每個(gè)數(shù)據(jù)包都來(lái)自我們信任的服務(wù)器,而且沒(méi)有每次都需要簽名的開(kāi)銷。這可以利用哈希鏈來(lái)實(shí)現(xiàn)。

哈希鏈將本節(jié)討論的加密概念整合到一系列數(shù)據(jù)包中,以便在數(shù)學(xué)上將它們聯(lián)系在一起。如圖8所示,第一個(gè)數(shù)據(jù)包(編號(hào)0)包含下一個(gè)數(shù)據(jù)包的摘要。第一個(gè)數(shù)據(jù)包的有效載荷不是實(shí)際的軟件應(yīng)用程序數(shù)據(jù),而是簽名。第二個(gè)數(shù)據(jù)包(編號(hào)1)的有效載荷包含二進(jìn)制文件的一部分和第三個(gè)數(shù)據(jù)包(編號(hào)2)的摘要。客戶端驗(yàn)證第一個(gè)數(shù)據(jù)包中的簽名并緩存摘要H0以供以后使用。當(dāng)?shù)诙䝼(gè)數(shù)據(jù)包到達(dá)時(shí),客戶端對(duì)有效載荷進(jìn)行哈希處理并將其與H0進(jìn)行比較。如果它們匹配,客戶端便可確定該后續(xù)數(shù)據(jù)包來(lái)自可信服務(wù)器,而無(wú)需費(fèi)力進(jìn)行簽名檢查。生成此鏈的高開(kāi)銷任務(wù)留給服務(wù)器完成,客戶端只需在每個(gè)數(shù)據(jù)包到達(dá)時(shí)進(jìn)行緩存和哈希處理,確保到達(dá)的數(shù)據(jù)包完整無(wú)損并驗(yàn)明正身。

8.將哈希鏈應(yīng)用于數(shù)據(jù)包序列

實(shí)驗(yàn)設(shè)置

解決本文所述存儲(chǔ)器、通信和安全設(shè)計(jì)挑戰(zhàn)的超低功耗微控制器是ADuCM3029和ADuCM4050.這些微控制器包含本文討論的用于OTA更新的硬件外設(shè),例如閃存、SRAM、加密加速器和真隨機(jī)數(shù)發(fā)生器。這些微控制器的器件系列包(DFP)為在這些器件上構(gòu)建OTA更新解決方案提供了軟件支持。DFP包含外設(shè)驅(qū)動(dòng),以便為使用硬件提供簡(jiǎn)單靈活的接口。

硬件配置

為了驗(yàn)證本文討論的概念,我們利用ADuCM4050創(chuàng)建了OTA更新軟件參考設(shè)計(jì)。對(duì)于客戶端,一個(gè)ADuCM4050 EZ-KIT®使用收發(fā)器子板馬蹄形連接器連接到ADF7242。客戶端器件如圖9左側(cè)所示。對(duì)于服務(wù)器,我們開(kāi)發(fā)了一個(gè)在Windows PC上運(yùn)行的Python應(yīng)用程序。Python應(yīng)用程序通過(guò)串行端口與另一個(gè)ADuCM4050 EZ-KIT通信,后者也以與客戶端相同的配置連接一個(gè)ADF7242。但是,圖9中右邊的EZ-KIT不執(zhí)行OTA更新邏輯,只是將從ADF7242接收到的數(shù)據(jù)包中繼給Python應(yīng)用程序。

9.實(shí)驗(yàn)硬件設(shè)置

軟件組件

軟件參考設(shè)計(jì)對(duì)客戶端器件的閃存進(jìn)行分區(qū),如圖3所示。主要客戶端應(yīng)用程序具有非常好的移植性和可配置性,以便其他方案或其他硬件平臺(tái)也可以使用。圖10顯示了客戶端器件的軟件架構(gòu)。請(qǐng)注意,雖然我們有時(shí)將整個(gè)應(yīng)用程序稱為SSBL,但在圖10中,并且從現(xiàn)在開(kāi)始,我們?cè)谶壿嬌蠈⒄嬲腟SBL部分(藍(lán)色)與OTA更新部分(紅色)分開(kāi),因?yàn)楹笳卟灰欢ㄐ枰耆谏鲜鰬?yīng)用程序中實(shí)現(xiàn)。圖10所示的硬件抽象層使OTA客戶端軟件可移植并獨(dú)立于任何底層庫(kù)(以橙色顯示)。

10.客戶端軟件架構(gòu)

軟件應(yīng)用程序?qū)崿F(xiàn)圖3中的引導(dǎo)序列(一個(gè)用于從服務(wù)器下載新應(yīng)用程序的簡(jiǎn)單通信協(xié)議)和哈希鏈。通信協(xié)議中的每個(gè)數(shù)據(jù)包都有12字節(jié)的元數(shù)據(jù)頭、64字節(jié)的有效載荷和32字節(jié)的摘要。此外,它還有如下特性:

  • 緩存:根據(jù)用戶配置,支持不緩存或緩存閃存的一頁(yè)。
  • 目錄:ToC設(shè)計(jì)為僅容納兩個(gè)應(yīng)用程序,并且新應(yīng)用程序總是下載到最舊的位置,以保留一個(gè)備用應(yīng)用程序。這稱為A/B更新方案。
  • 消息傳遞:支持ADF7242或UART進(jìn)行消息傳遞,具體取決于用戶配置。使用UART進(jìn)行消息傳遞可免除圖9左側(cè)的EZ-KIT,僅保留右側(cè)套件用于客戶端。這種有線更新方案對(duì)初始系統(tǒng)啟動(dòng)和調(diào)試很有用。

結(jié)果

除了滿足功能要求并通過(guò)各種測(cè)試之外,軟件的性能對(duì)于判斷項(xiàng)目成功與否也很重要。通常使用兩個(gè)指標(biāo)來(lái)衡量嵌入式軟件的性能:占用空間和周期數(shù)。占用空間是指軟件應(yīng)用程序在易失性(SRAM)和非易失性(閃存)存儲(chǔ)器中占用的空間大小。周期數(shù)是指軟件執(zhí)行特定任務(wù)所使用的微處理器時(shí)鐘周期數(shù)。它與軟件運(yùn)行時(shí)間相似,但在執(zhí)行OTA更新時(shí),軟件可能進(jìn)入低功耗模式,此時(shí)微處理器處于非活動(dòng)狀態(tài),不消耗任何周期。雖然軟件參考設(shè)計(jì)沒(méi)有針對(duì)任何一個(gè)指標(biāo)進(jìn)行優(yōu)化,但它們對(duì)于程序基準(zhǔn)測(cè)試和比較設(shè)計(jì)權(quán)衡非常有用。

圖11和圖12顯示了在ADuCM4050上實(shí)現(xiàn)的OTA更新軟件參考設(shè)計(jì)的占用空間(不緩存)。這些圖根據(jù)圖10所示的組件進(jìn)行劃分。如圖11所示,整個(gè)應(yīng)用程序使用大約15 kB的閃存。鑒于ADuCM4050包含512 kB閃存,此占用空間非常小。真正的應(yīng)用軟件(為OTA更新過(guò)程開(kāi)發(fā)的軟件)僅需1.5 kB左右,其余用于庫(kù),例如DFP、Micro-ECC和ADF7242堆棧。這些結(jié)果有助于說(shuō)明SSBL應(yīng)在系統(tǒng)中扮演什么角色的設(shè)計(jì)權(quán)衡。15 kB占用空間的大部分是用于更新過(guò)程。SSBL本身僅占用大約500字節(jié)的空間,另外還有1 kB到2 kB的DFP代碼,用于訪問(wèn)閃存驅(qū)動(dòng)器之類的器件。

11.閃存占用空間(字節(jié))

12.SRAM占用空間(字節(jié))

為了評(píng)估軟件的開(kāi)銷,我們?cè)诿看谓邮諗?shù)據(jù)包時(shí)計(jì)數(shù)周期,然后計(jì)算每個(gè)數(shù)據(jù)包平均消耗的周期數(shù)。每個(gè)數(shù)據(jù)包都需要AES-128解密、SHA-256哈希處理、閃存寫(xiě)入和某種數(shù)據(jù)包元數(shù)據(jù)驗(yàn)證。數(shù)據(jù)包有效載荷為64字節(jié)且不緩存時(shí),處理單個(gè)數(shù)據(jù)包的開(kāi)銷為7409個(gè)周期。使用26 MHz內(nèi)核時(shí)鐘時(shí),大約需要285微秒的處理時(shí)間。該值是利用ADuCM4050 DFP中的周期計(jì)數(shù)驅(qū)動(dòng)程序計(jì)算的(未調(diào)整周期數(shù)),并且是100 kB二進(jìn)制文件下載期間(約1500個(gè)數(shù)據(jù)包)的平均值。為使每個(gè)數(shù)據(jù)包的開(kāi)銷最小,DFP中的驅(qū)動(dòng)程序應(yīng)利用ADuCM4050上的直接存儲(chǔ)訪問(wèn)(DMA)硬件外設(shè)來(lái)執(zhí)行總線事務(wù),并且驅(qū)動(dòng)程序在每次事務(wù)處理期間將處理器置于低功耗休眠狀態(tài)。每個(gè)事務(wù)中不存在一個(gè)萬(wàn)能的狀態(tài)如果我們禁用DFP中的低功耗休眠并將總線事務(wù)更改為不使用DMA,則每個(gè)數(shù)據(jù)包的開(kāi)銷將增加到17,297個(gè)周期。這說(shuō)明了高效使用器件驅(qū)動(dòng)程序?qū)η度胧杰浖?yīng)用程序是有影響的。雖然減少每個(gè)數(shù)據(jù)包的數(shù)據(jù)字節(jié)數(shù)也可以降低開(kāi)銷,但每個(gè)數(shù)據(jù)包的數(shù)據(jù)字節(jié)數(shù)翻一倍達(dá)到128時(shí),周期數(shù)僅有少量增加,相同實(shí)驗(yàn)得到的周期數(shù)為8362。

周期數(shù)和占用空間也解釋了先前討論的權(quán)衡——緩存數(shù)據(jù)包數(shù)據(jù)而不是每次都寫(xiě)入閃存。使能緩存一頁(yè)閃存后,每個(gè)數(shù)據(jù)包的開(kāi)銷從7409減少到5904個(gè)周期。此20%減幅來(lái)自于更新過(guò)程跳過(guò)了大多數(shù)數(shù)據(jù)包的閃存寫(xiě)入,僅在緩存已滿時(shí)才執(zhí)行閃存寫(xiě)入。其代價(jià)是SRAM占用面積增加。不使用緩存時(shí),HAL只需要336個(gè)字節(jié)的SRAM,如圖12所示。但是,當(dāng)使用緩存時(shí),必須保留一個(gè)相當(dāng)于閃存一整頁(yè)的空間,故SRAM占用增加到2388字節(jié)。HAL使用的閃存也會(huì)少量增加,原因是需要額外代碼來(lái)判斷緩存何時(shí)必須清空。

這些結(jié)果證明,設(shè)計(jì)決策對(duì)軟件性能會(huì)有切實(shí)的影響。不存在一個(gè)萬(wàn)能的解決方案,每個(gè)系統(tǒng)都有不同的要求和約束,OTA更新軟件需要視具體情況具體對(duì)待。希望本文闡明了在設(shè)計(jì)、實(shí)現(xiàn)和驗(yàn)證OTA更新軟件解決方案時(shí)遇到的常見(jiàn)問(wèn)題和權(quán)衡。

參考文獻(xiàn)

Nilsson、Dennis Kengo和Ulf E. Larson。“智能車輛的無(wú)線安全固件更新”。ICC研討會(huì)——2008年IEEE國(guó)際通信會(huì)議,2008年5月。


 

狀 態(tài): 離線

公司簡(jiǎn)介
產(chǎn)品目錄

公司名稱: 亞德諾
聯(lián) 系 人: 曹赟
電  話: 0755-82823086
傳  真:
地  址: 福田區(qū)濱河路國(guó)通大廈
郵  編: 518048
主  頁(yè):
 
該廠商相關(guān)技術(shù)文摘:
ADI公司推出首款用于3D景深測(cè)量和視覺(jué)系統(tǒng)的高分辨率模塊
ADI公司低抖動(dòng)頻率合成器支持GSPS數(shù)據(jù)轉(zhuǎn)換器方案實(shí)現(xiàn)優(yōu)異性能
利用PMBus數(shù)字電源系統(tǒng)管理器進(jìn)行電流檢測(cè)——第二部分
利用PMBus數(shù)字電源系統(tǒng)管理器進(jìn)行電流檢測(cè)——第一部分
USB供電的5.8 GHz RF LNA接收器,帶輸出功率保護(hù)功能
可實(shí)現(xiàn)高降壓比的三種緊湊型解決方案
適合工業(yè)應(yīng)用的魯棒SPI/I2C通信
新推出的同步SAR模數(shù)轉(zhuǎn)換器的片內(nèi)校準(zhǔn)優(yōu)勢(shì)
ADI公司精密信號(hào)鏈平臺(tái)可輕松實(shí)現(xiàn)高精度設(shè)計(jì)
在自動(dòng)駕駛汽車中實(shí)現(xiàn)5G和DSRC V2X
異步DC-DC升壓轉(zhuǎn)換器(包含續(xù)流二極管)還能實(shí)現(xiàn)低輻射嗎?
ADI公司的安全認(rèn)證器以加密方式保護(hù)產(chǎn)品并通過(guò)1-Wire®輕松實(shí)現(xiàn)集成
更多文摘...
立即發(fā)送詢問(wèn)信息在線聯(lián)系該技術(shù)文摘廠商:
用戶名: 密碼: 免費(fèi)注冊(cè)為中華工控網(wǎng)會(huì)員
請(qǐng)留下您的有效聯(lián)系方式,以方便我們及時(shí)與您聯(lián)絡(luò)

關(guān)于我們 | 聯(lián)系我們 | 廣告服務(wù) | 本站動(dòng)態(tài) | 友情鏈接 | 法律聲明 | 不良信息舉報(bào)
工控網(wǎng)客服熱線:0755-86369299
版權(quán)所有 中華工控網(wǎng) Copyright©2022 Gkong.com, All Rights Reserved

久久中文字幕人妻丝袜| 在线播放免费人成毛片软件| 一本久久A精品一区二区| 中国又粗又大XXXXBBBB| AV无码电影一区二区三区| 被强迫的爱人 电影| 公交车上摸到花蒂进去了视频| 国产精品无码素人福利| 好满射太多了装不下了APP| 久久精品亚洲熟妇少妇任你躁| 美日韩AV成人影院| 漂亮人妻偷人精品视频| 十八禁午夜私人在线观看影院| 西西GOGO大胆啪啪艺术| 亚洲欧美成人综合久久久| 在线 | 一区二区三区| FREE紧VIDEOXX粗又长| 东京热无码人妻一区二区AV | 锕锕锕锕锕锕好多水APP网站| 丁香色欲久久久久久综合网 | 麻花传媒MV在线播放高清MBA| 哦┅┅快┅┅用力啊┅警花少妇 | 中文字幕乱码人妻无码久久| 锕锕锕锕锕锕锕好疼JK漫画| 国产成人久久综合第一区| 好男人在线观看无遮挡版| 久久亚洲精品成人AV无码网站| 欧美黑人暴力深喉囗交| 色窝窝无码一区二区三区色欲 | CHINESE中年熟妇FREE| 丰满熟女一区二区三区蜜桃臀 | 国产乱XXXX搡XXXXX搡| 九月在线 视频 在线观看| 妺妺窝人体色WWW网站厕所盗摄| 日本WINDOWS免费吗| 五十路熟妇无码专区| 亚洲色成人网站WWW永久| 99国产精品久久99久久久| 第一福利视频500| 国产又色又刺激高潮免费视频试看| 久久久久久久极品内射| 欧美性色欧美A在线播放| 熟悉妇人妻av无码毛片| 亚洲国产成人爱AV在线播放| 中文精品久久久久人妻| 成熟丰满熟妇AV无码| 国产一区内射最近更新| 老女人性饥渴XXXXⅩHD另| 人妻夜夜爽天天爽| 午夜精品久久久久成人| 一本大道东京热无码视频| YY1111111少妇无码影院| 国产精品白丝久久AV网站| 久久精品人妻少妇一区二区| 欧美性极品少妇精品网站| 偷拍区小说区图片区另类呻吟| 亚洲欧美另类视频| HEZYO东京热无码专区| 国产精品久久久久7777| 久久久久久久精品免费看人女| 人妻丰满熟妇aⅴ无码HD| 无遮挡呻吟娇喘视频免费播放| 亚洲中文字幕无码久久2020| 爸的比老公大两倍儿媳妇叫什么呢 | 久久精品亚洲精品无码金尊| 人妻激情乱人伦视频| 小婷又软又嫩又紧水又多的软件| 伊人久久大香线蕉午夜AV| 被主人调教边C边打屁股作文 | 亚洲欧美偷国产日韩| BT天堂资源种子在线| 国产精品一线二线三线有什么区别| 久久久久久人妻精品一区二区三区| 人人妻人人狠人人爽天天综合网| 亚洲AⅤ国产成人AV片妓女| 中文字幕AV一区中文字幕天堂| 丰满人妻被公侵犯日本| 精品无人区一线二线三线区别| 欧洲无人区码SUV| 性欧美XXXX乳| 1000部无遮挡拍拍拍免费视频| 国产GV无码永久精品同性男男| 久久成人国产精品免费软件| 人妻少妇精品无码系列| 亚洲AV无码精品国产成人| 93久久精品日日躁夜夜躁欧美| 国产精品第20页| 老熟女HDXX中国老熟女| 日韩欧美亚洲综合久久影院D3| 亚洲国产精品久久久久久久| A一区二区三区乱码在线 | 欧| 国产裸模视频免费区无码| 美国一面亲上边一面膜下边| 丝袜国偷自产中文字幕| 亚洲最大AV无码网址| 处破初破苞一区二区三区| 精品人妻少妇一区二区三区| 人妻无码久久一区二区三区免费| 亚洲AV永久无码精品古装片| AV无码波多野结衣| 国产中年熟女高潮大集合| 欧产日产国产精品精品| 午夜成人爽爽爽视频在线观看| 中文字幕三级人妻无码视频| 国产成人免费无码AV在线播放| 久久无码人妻丰满熟妇区毛片| 少妇人妻陈艳和黑人教练| 野花日本免费完整版高清版8| 大粗鳮巴久久久久久久久| 久久精品高清一区二区三区| 日韩AV无码中文一区二区三区| 亚洲欧美日韩另类| 成人无码特黄特黄AV片在线| 久99久无码精品视频免费播放 | 日本人妻丰满熟妇久久久久久| 亚洲精品无码激情AV| 草木影视在线视频免费观看| 精品人妻无码区二区三区密桃 | 亚洲欧美日韩愉拍自拍| 成人污污污WWW网站免费| 久久精品A亚洲国产V高清不卡 | 国语做受对白XXXXmp4| 欧美一区二区三区性视频野战 | 午夜私人理论电影| 99RE6在线视频精品免费| 国内精品一区二区三区| 人伦亲情父母儿女的句子简短| 亚洲国产欧美在线成人| 成人A级毛片免费观看AV不卡| 久久国产色欲AV38| 少妇与大狼拘作爱| 中文国产成人精品久久水蜜桃 | 母亲とが话していま在线观看 | H国产小视频福利免费视频| 狠狠躁夜夜躁人人爽天天古典 | 亚洲色偷偷综合亚洲AV伊人 | 久久久久久久亚洲AV无码| 特区爱奴在线观看| 18禁爆乳无遮挡免费观看日本动 | 国产超薄肉色丝袜视频| 免费的视频BGM大全软件下载| 性欧美ⅩXX1819内谢| YES4444视频在线观看| 久久99久久99精品免观看| 深夜成人毛片天堂| 主人地下室惩罚骚奴的法律后果| 国产无遮挡又黄又爽免费吃瓜视频| 欧美最猛黑人XXXX黑人猛交9| 亚洲精品乱码久久久久久蜜桃| 得到超级肉禽系统的小说怎么办| 看中国日B大片大片| 掀开老师的裙子挺进去| WWW性久久久COM| 久久精品中文字幕有码| 偷拍区小说区图片区另类呻吟| 99久久夜色精品国产网站| 精品国产一区二区AV片 | 亚洲综合激情另类小说区| 国产黄在线观看免费观看不卡| 欧美丰满熟妇性XXXX| 亚洲精品自在在线观看| 国产AV无码专区亚洲AV果冻传 | 久久亚洲AⅤ精品网站| 无码专区一ⅤA亚洲V天堂| 锕锕锕锕锕锕锕锕好疼小视频软件| 久久久久久久性潮| 洗澡被公强奷30分钟视频| 被黑人的大JJ干得很舒服吗| 久久综合九色综合欧美狠狠| 性饥渴姓交HDSEX| 纯肉无遮挡H肉动漫在线观看国产| 麻豆久久久9性大片| 亚洲AV综合色区无码一区偷拍| 东京热无码人妻精品一区二区三区| 免费午夜爽爽爽WWW视频十八禁| 亚洲国产成人精品无码区在线播放| 丰满大屁股熟女偷拍内射| 欧美成人A猛片在线观看| 亚洲人成色A777777在线观| 国产精品99无码一区二蜜桃| 青草草97久热精品视频| 一二三四视频社区在线| 国产一区二区三区导航| 日日狠狠久久偷偷色综合免费| 19岁MACBOOKPRO高清| 精品久久久中文字幕人妻| 我当着我老公面给人C| А√天堂资源地址在线官网BT| 老头挺进娇妻身体| 亚洲GV永久无码天堂网| 国产AV夜夜欢一区二区三区| 欧美性爱一区二区三区四区| 一本色道久久综合亚州精品蜜桃 | 亚洲一区二区三区在线网址| 国产精品自在线拍国产电影| 日本不卡一区二区三区| 最新无码人妻在线不卡| 精品无人区一线二线三线区别| 无码一区二区三区亚洲人妻| 成人网站在线观看丰满少妇电影|