• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      一種面向IR46電能表的單芯片軟件設(shè)計(jì)

      2020-02-03 05:47:48王修全
      電子技術(shù)與軟件工程 2020年11期
      關(guān)鍵詞:服務(wù)程序固件電能表

      王修全

      (上海復(fù)旦微電子集團(tuán)股份有限公司 上海市 200433)

      隨著物聯(lián)網(wǎng)技術(shù)和電能表技術(shù)的發(fā)展,具有聯(lián)網(wǎng)功能的電能表越來(lái)越多的被使用,這類(lèi)電能表將逐漸被賦予除基本電能計(jì)量計(jì)費(fèi)功能外的更多功能,比如家庭能源管理網(wǎng)關(guān)等。因此,國(guó)內(nèi)外電能表市場(chǎng)的逐漸采用符合IR46 標(biāo)準(zhǔn)的智能電能表,然而IR46 要求電能表計(jì)量的關(guān)鍵部件,無(wú)論是軟件或硬件部分,不允許被電能表的其他部分影響[1]。IR46 標(biāo)準(zhǔn)對(duì)于電能表的軟件部分提出軟件分離的要求,即相關(guān)法制軟件部分與其他部分固件進(jìn)行通訊,則固件接口應(yīng)被明確定義,所有通訊應(yīng)通過(guò)此唯一接口,并且法制固件部分和接口應(yīng)清晰描述,以使型式批準(zhǔn)機(jī)構(gòu)確定固件子集的正確性[2]。

      本文主要研究基于FM33A06xE 芯片實(shí)現(xiàn)單芯片固件分離方案。法制固件部分包含MCU 的硬件抽象驅(qū)動(dòng)層、法制芯片接口驅(qū)動(dòng)、法制計(jì)量應(yīng)用及法制數(shù)據(jù)接口等部分,運(yùn)行在MPU 保護(hù)的特權(quán)模式;非法制固件則包含RTOS、驅(qū)動(dòng)及API、升級(jí)管理非法制應(yīng)用等。

      1 系統(tǒng)總體框架設(shè)計(jì)

      本方案根據(jù)IR46 標(biāo)準(zhǔn)的軟件分離要求,一方面,將系統(tǒng)固件從認(rèn)證維度劃分法制固件部分和非法制固件部分;另一方面,從內(nèi)核MPU 的保護(hù)維度將固件劃分為特權(quán)區(qū)和非特權(quán)區(qū)。在符合設(shè)計(jì)需求的微處理器中,本文選擇應(yīng)用較為廣泛的上海復(fù)旦微電子公司的FM33A06xE 微處理器作為系統(tǒng)主控處理器。FM33A06xE 是一款使用ARM 公司CortexM0+內(nèi)核的MCU,該芯片具有存儲(chǔ)器保護(hù)單元(MPU)、FLASH 存儲(chǔ)器支持應(yīng)用代碼保護(hù)機(jī)制、支持多種加解密算法及Hash 算法加速器,并且擁有最大80K RAM 及512K Embedded Flash,非常適合作為電能表的主控制器。

      圖1:系統(tǒng)總體設(shè)計(jì)框圖

      圖2:固件存儲(chǔ)分割示意圖

      圖3:固件運(yùn)行示意圖

      圖4:法制與非法制變量分離示意圖

      如圖1 所示,本方案將系統(tǒng)劃分為法制和非法制固件。

      法制部分主要由MCU內(nèi)核、硬件抽象層(HAL)、法制設(shè)備驅(qū)動(dòng)、法制計(jì)量應(yīng)用及接口API 組成。MCU 內(nèi)核、硬件驅(qū)動(dòng)層以及法制和非法制共享的外部設(shè)備(RTC、EEPROM 等)是法制應(yīng)用穩(wěn)定、安全運(yùn)行的重要組成部分,其應(yīng)當(dāng)歸屬于法制部分,非法制部分不應(yīng)具有直接操作的權(quán)限,該方案中將法制部分劃分在MPU 的特權(quán)模式中。主控制器具有FLASH 訪(fǎng)問(wèn)權(quán)限控制功能,在實(shí)際應(yīng)用中,為保證法制部分代碼不被竊取,可以將法制固件區(qū)域的FLASH 讀寫(xiě)權(quán)限關(guān)閉,只保留代碼執(zhí)行權(quán)限。

      非法制部分主要包括操作系統(tǒng)層、法制設(shè)備驅(qū)動(dòng)、非法制升級(jí)管理、以及非法制應(yīng)用部分。其中除非法制應(yīng)用外,其他部分在業(yè)務(wù)上雖然不屬于非法制固件,但由于其對(duì)與整個(gè)系統(tǒng)的穩(wěn)定性具有重要意義,因此該部分歸屬在特權(quán)模式。而非法制應(yīng)用在智能電能表的應(yīng)用中隨著業(yè)務(wù)的拓展應(yīng)屬于可升級(jí)部分。

      本方案基于IR46 標(biāo)準(zhǔn)中法制和非法制固件分離的要求以及系統(tǒng)穩(wěn)定性要求,將非法制應(yīng)用固件劃分在用戶(hù)模式,其他部分劃分在特權(quán)模式。即可以實(shí)現(xiàn)IR46 標(biāo)準(zhǔn)的要求,又解決系統(tǒng)穩(wěn)定要求。合理使用ARM 內(nèi)核的MPU 特性,可以做到特權(quán)模式和用戶(hù)模式的訪(fǎng)問(wèn)權(quán)限控制。

      2 系統(tǒng)關(guān)鍵技術(shù)詳細(xì)設(shè)計(jì)

      為實(shí)現(xiàn)概述設(shè)計(jì)中的要求,系統(tǒng)設(shè)計(jì)中涉及法制和非法制的固件分離設(shè)計(jì)以及法制和非法制的變量分離設(shè)計(jì)。

      2.1 法制與非法制固件設(shè)計(jì)

      法制和非法制固件在電能表中一般存儲(chǔ)在非易失的Embedded Flash 存儲(chǔ)器,微控制器可以直接運(yùn)行該固件,不需要運(yùn)行前加載,各功能在Flash 中存儲(chǔ)位置如圖2 所示。法制固件根據(jù)IR46 標(biāo)準(zhǔn)的要求,不允許其運(yùn)行中升級(jí);非法制固件的操作系統(tǒng)及相關(guān)功能與電能表的硬件息息相關(guān),一般在實(shí)際應(yīng)用中并不需要升級(jí)。因此除了非法制應(yīng)用固件外,其他部分均采用位置相關(guān)設(shè)計(jì)。

      2.1.1 法制與非法制中斷向量表

      為保證法制固件運(yùn)行不被電能表其他部分影響,MCU 的中斷向量表應(yīng)屬于法制固件,其運(yùn)行和存儲(chǔ)不受非法制影響,因此中斷向量表應(yīng)分為法制向量表和非法制向量表。法制向量表為內(nèi)核的原生向量表,引導(dǎo)區(qū)執(zhí)行結(jié)束時(shí)將內(nèi)核的中斷向量重映射寄存器(VTOR)設(shè)置為法制向量表的地址,非法制中斷向量表的執(zhí)行必須通過(guò)法制向量表中轉(zhuǎn)。MCU 的中斷源被觸發(fā)后,內(nèi)核從法制中斷向量表中獲得對(duì)應(yīng)中斷服務(wù)程序地址,如果中斷源為法制中斷源,則執(zhí)行相對(duì)應(yīng)的服務(wù)程序;否則,內(nèi)核調(diào)用中斷中轉(zhuǎn)服務(wù)程序,然后在中斷中轉(zhuǎn)服務(wù)程序中調(diào)用非法制中斷服務(wù)程序。

      CortexM0+內(nèi)核的中斷程序狀態(tài)寄存器(IPSR)包含了當(dāng)前中斷服務(wù)程序的異常編號(hào)ISR NUMBER。根據(jù)ISR_NUMBER 可以經(jīng)過(guò)簡(jiǎn)單運(yùn)算獲得非法制向量表的中斷服務(wù)程序向量,其算法如下所示:

      非法制中斷服務(wù)程序向量地址 = 非法制中斷向量基地址+(ISR_NUMBER<<2)

      通過(guò)中斷服務(wù)中轉(zhuǎn)的方法,非法制固件未被注冊(cè)啟用或固件異常時(shí),中斷服務(wù)可以被法制固件接管,可以由法制固件進(jìn)行異常處理或禁止。如果非法制固件未安裝或異常運(yùn)行時(shí),法制固件可以接管非法制的中斷處理,從而實(shí)現(xiàn)監(jiān)控非法制固件或非法制固件異?;貪L的。

      2.1.2 法制固件運(yùn)行機(jī)制

      為減少非法制固件運(yùn)行時(shí)對(duì)法制固件的影響,法制固件可以運(yùn)行在低優(yōu)先級(jí)中斷服務(wù)程序中。通過(guò)中斷服務(wù)程序中執(zhí)行電能表的法制固件,可以最大限度減少非法制固件的干擾。為保證系統(tǒng)的實(shí)時(shí)性,中斷服務(wù)程序一般不應(yīng)過(guò)久占用CPU 資源,該方法會(huì)造成法制固件運(yùn)行時(shí)間碎片化,且會(huì)包含大量狀態(tài)機(jī)。因此,本方案為提高軟件的模塊化,降低軟件開(kāi)發(fā)的復(fù)雜度,引入contiki 操作系統(tǒng)。Contiki 操作系統(tǒng)是瑞典計(jì)算機(jī)科學(xué)研究院開(kāi)發(fā)的一款由C 語(yǔ)言開(kāi)發(fā)的輕量級(jí)協(xié)程和事件機(jī)制完美結(jié)合的微操作系統(tǒng),該操作系統(tǒng)的協(xié)程共用系統(tǒng)??臻g,所需內(nèi)存極小。該操作系統(tǒng)在物聯(lián)網(wǎng)和無(wú)線(xiàn)傳感器網(wǎng)絡(luò)等小型、低耗場(chǎng)景中被廣泛應(yīng)用。

      SC000 內(nèi)核嵌套向量控制器(NVIC)最多支持32 個(gè)中斷源,實(shí)際應(yīng)用中一般并不會(huì)全部使用。因此,可以選擇不常用的中斷源作為法制固件的主任務(wù)。NVIC 允許通過(guò)使能對(duì)應(yīng)中斷源并設(shè)置中斷掛起寄存器(ISPR)來(lái)實(shí)現(xiàn)可掛起的中斷,其效果與PendSV 一致。因此,可以利用該特性,將法制固件的主任務(wù)部署在最低優(yōu)先級(jí)的中斷服務(wù)程序中。電能表法制部分主要包含計(jì)量、顯示、通信、按鍵、存儲(chǔ)等功能,以時(shí)間觸發(fā)和事件觸發(fā)兩種模型為主。當(dāng)時(shí)間觸發(fā)或事件觸發(fā)發(fā)生時(shí),觸發(fā)模塊根據(jù)當(dāng)前觸發(fā)原因發(fā)送消息至主任務(wù)消息隊(duì)列中,并設(shè)置ISPR 寄存器以啟動(dòng)固件主任務(wù)。

      (1)時(shí)間觸發(fā)模型的應(yīng)用,可以使用周期定時(shí)中斷服務(wù)實(shí)現(xiàn)。因此,對(duì)于電能表中需要定時(shí)處理的業(yè)務(wù),可以在RTC 的中斷服務(wù)中執(zhí)行。以FM33A068E 芯片為例,可以選擇該芯片的支持高精度調(diào)校的實(shí)時(shí)時(shí)鐘RTC_B,該外設(shè)支持周期可調(diào)且最小周期為1/1024 秒的定時(shí)中斷。由于電能表的瞬時(shí)能量累計(jì)主要由計(jì)量芯片完成,因此,法制部分對(duì)實(shí)時(shí)性要求不高,可以選擇1/256 秒的中斷源。

      以計(jì)量采集為例,一方面,電能表應(yīng)用為防止計(jì)量芯片運(yùn)行中出現(xiàn)復(fù)位或計(jì)量參數(shù)異常等情況發(fā)生,每隔一段時(shí)間會(huì)進(jìn)行參數(shù)檢查;另一方面,每隔0.5秒需要獲取計(jì)量芯片中記錄的當(dāng)前實(shí)時(shí)電壓、電流、功率等瞬時(shí)工況數(shù)據(jù)。為實(shí)現(xiàn)該目標(biāo),電能表固件程序可以向回調(diào)定時(shí)器分別注冊(cè)一個(gè)以一分鐘和0.5 秒為周期的調(diào)用函數(shù),在回調(diào)函數(shù)中發(fā)出一分鐘周期消息或0.5 秒周期消息或至計(jì)量管理主任務(wù)的消息隊(duì)列。主任務(wù)協(xié)程在接收到消息后,根據(jù)消息類(lèi)型分別處理。如果收到的是一分鐘周期消息,則執(zhí)行計(jì)量芯片的運(yùn)行狀態(tài)和參數(shù)檢查;否擇,執(zhí)行每0.5 秒的瞬時(shí)工況數(shù)據(jù)讀取。

      (2)事件觸發(fā)模型的應(yīng)用,在事件發(fā)生時(shí)將事件消息發(fā)送至對(duì)應(yīng)任務(wù)的先進(jìn)先出(FIFO)隊(duì)列中并觸發(fā)法制主任務(wù),法制主任務(wù)獲取隊(duì)列中的事件消息后根據(jù)消息號(hào)分類(lèi)執(zhí)行。

      例如,當(dāng)電能表的工作電壓檢測(cè)組件發(fā)現(xiàn)電壓低于設(shè)計(jì)門(mén)限值時(shí),可以向法制主任務(wù)發(fā)送電壓低消息,之后法制主任務(wù)接收到該消息后啟動(dòng)電源跌落處理流程。通過(guò)該方法不僅可以將電壓檢測(cè)與主流程解耦,而且可以降低軟件處理復(fù)雜度。

      因此,在中斷服務(wù)程序中執(zhí)行基于contikiOS 的法制固件,不僅減少非法制計(jì)量的干擾,而且減小了應(yīng)用程序的耦合度及復(fù)雜度。

      2.2 法制與非法制接口

      對(duì)于一個(gè)完整的產(chǎn)品來(lái)說(shuō),不可避免的法制和非法制數(shù)據(jù)需要直接或間接的訪(fǎng)問(wèn)。然而IR46 對(duì)雙方的接口部分提出必須明確定義,并且只能通過(guò)接口訪(fǎng)問(wèn)。

      法制部分固件主要負(fù)責(zé)基礎(chǔ)電能、電費(fèi)、瞬時(shí)電參數(shù)的計(jì)算或采集,一方面該部分固件為非法制固件提供電能量、瞬時(shí)電力有效值、費(fèi)控等數(shù)據(jù)的采集和計(jì)算以及數(shù)據(jù)安全的加解密等功能組件。法制固件對(duì)于非法制固件來(lái)說(shuō),其主要運(yùn)行模式是數(shù)據(jù)生產(chǎn)者,一般被動(dòng)訪(fǎng)問(wèn)。因此,為解決兩部分固件的隔離以及遵守MPU 的規(guī)則,該方案采用CortexM 內(nèi)核的SVC 中斷來(lái)實(shí)現(xiàn)雙方的數(shù)據(jù)訪(fǎng)問(wèn)或代碼執(zhí)行。

      2.3 法制與非法制內(nèi)存變量分離

      法制與非法制固件運(yùn)行過(guò)程中,均會(huì)使用內(nèi)存存放堆、棧及變量等信息,兩組固件在同一個(gè)芯片上運(yùn)行,這些變量互相存在被訪(fǎng)問(wèn)的可能。為保證法制固件的變量等內(nèi)存數(shù)據(jù)安全,本方案采用內(nèi)核的MPU 進(jìn)行法制和非法制數(shù)據(jù)的區(qū)分,如圖4 所示。

      操作系統(tǒng)的堆、棧、靜態(tài)變量及非法制固件的中斷向量表默認(rèn)屬于特權(quán)模式,其數(shù)據(jù)只允許特權(quán)狀態(tài)進(jìn)行訪(fǎng)問(wèn);由于法制固件是運(yùn)行于中斷服務(wù)程序中,而且其數(shù)據(jù)對(duì)非法制固件來(lái)說(shuō)屬于保密數(shù)據(jù),所以也歸屬于特權(quán)模式訪(fǎng)問(wèn);非法制固件在系統(tǒng)中的安全等級(jí)并不高,可設(shè)置在用戶(hù)態(tài)。根據(jù)MPU 的特性,將特權(quán)模式的RAM設(shè)置為用戶(hù)模式不可訪(fǎng)問(wèn),可以防止非法制數(shù)據(jù)的隨意訪(fǎng)問(wèn)。

      3 結(jié)束語(yǔ)

      本文結(jié)合IR46 對(duì)于電能表固件的隔離要求以及電能表的應(yīng)用需求,并結(jié)合ARM Cortex-M0+內(nèi)核的特點(diǎn),提出一種在單芯片實(shí)現(xiàn)法制和非法制分離的方案。下一代電能表將會(huì)逐漸成為配網(wǎng)自動(dòng)化的“末梢”感知節(jié)點(diǎn)、多種能源結(jié)束的“網(wǎng)關(guān)”節(jié)點(diǎn),其非法制固件隨著業(yè)務(wù)變化而多變[3][4]。因此,該方案通過(guò)以法制計(jì)量運(yùn)行在特權(quán)模式的中斷服務(wù)程序與用戶(hù)態(tài)的FreeRTOS 實(shí)時(shí)多任務(wù)相結(jié)合,既解決法制固件與非法制固件在運(yùn)行模式下的隔離,且滿(mǎn)足法制固件的應(yīng)用響應(yīng)實(shí)時(shí)性問(wèn)題,又滿(mǎn)足了業(yè)務(wù)多變及實(shí)時(shí)性的設(shè)計(jì)需求。同時(shí),該方案與多芯片方案相比,更能節(jié)省成本,具有良好的經(jīng)濟(jì)價(jià)值。

      猜你喜歡
      服務(wù)程序固件電能表
      基于移動(dòng)終端的人事信息員工自助服務(wù)系統(tǒng)設(shè)計(jì)
      巧數(shù)電能表
      基于C#的進(jìn)程守護(hù)程序的設(shè)計(jì)
      視聽(tīng)(2020年3期)2020-06-11 14:28:18
      認(rèn)識(shí)電能表
      基于固件的遠(yuǎn)程身份認(rèn)證
      水利工程施工監(jiān)理服務(wù)程序及質(zhì)量控制
      提取ROM固件中的APP
      電能表自動(dòng)化檢定機(jī)器人可靠掛卸表方案設(shè)計(jì)與實(shí)現(xiàn)
      基于MSP430+ATT7022B的三相三線(xiàn)多回路多功能電能表的研究
      一種通過(guò)USB接口的可靠固件升級(jí)技術(shù)
      寻乌县| 巴塘县| 景宁| 岗巴县| 伊宁市| 张家港市| 侯马市| 栾川县| 天柱县| 阳谷县| 普陀区| 瑞丽市| 临洮县| 长汀县| 红河县| 太仓市| 江达县| 远安县| 安岳县| 吕梁市| 洪洞县| 潮安县| 中山市| 泽普县| 灯塔市| 五大连池市| 澜沧| 眉山市| 微山县| 永清县| 甘泉县| 云林县| 庄浪县| 桑植县| 石门县| 唐海县| 志丹县| 沧源| 蕉岭县| 抚松县| 华池县|