文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.179013
中文引用格式: 周芝梅,趙東艷,張海峰,等. 基于IR46標(biāo)準(zhǔn)的雙芯電能表主控關(guān)鍵技術(shù)研究[J].電子技術(shù)應(yīng)用,2017,43(10):7-11,19.
英文引用格式: Zhou Zhimei,Zhao Dongyan,Zhang Haifeng,et al. Research on the key technology of the dual MCUs on the energy meter for the IR46 standard[J].Application of Electronic Technique,2017,43(10):7-11,19.
0 引言
我國(guó)第一代智能電表,目前已掛裝并運(yùn)行5年多,為我國(guó)智能電網(wǎng)的建設(shè)提供了重要支撐。然而我國(guó)標(biāo)準(zhǔn)體系對(duì)電能表的軟件和硬件要求比較固化,電能表均為一體化設(shè)計(jì),一旦出現(xiàn)硬件或軟件故障,只能采取更換整表的方式來(lái)保障電力計(jì)量工作順利進(jìn)行。并且出于防止篡改電能表程序的安全角度考慮,目前的電能表不允許軟件的在線升級(jí),因此對(duì)越來(lái)越多的智能應(yīng)用需求形成了限制。為此我國(guó)將在下一代智能電表標(biāo)準(zhǔn)上采用基于IR46(International Recommendation46)標(biāo)準(zhǔn)的雙芯智能電表方案,核心解決的是計(jì)量功能與其他管理類(lèi)功能的分離,支持非計(jì)量部分軟件在線升級(jí),且非計(jì)量部分的故障和升級(jí)不影響計(jì)量部分的準(zhǔn)確性和穩(wěn)定性。
1 雙芯電能表方案
目前掛裝的智能電表方案應(yīng)用框圖如圖1所示,可完成電能計(jì)量、數(shù)據(jù)的安全保護(hù)、本地RTC計(jì)時(shí)以及支持電表通信功能,包括485通信、SPI、I2C和紅外等功能[1-2]。智能電表用到的功能芯片包括一顆主控芯片、一顆RTC芯片、一顆安全芯片、一顆EEPROM和一顆計(jì)量芯片,全部整體設(shè)計(jì)在一塊電表主板上。
基于IR46的雙芯智能電表標(biāo)準(zhǔn)方案,將電表功能分成計(jì)量芯和功能芯兩個(gè)互不干擾的獨(dú)立部分。計(jì)量芯部分完成的功能包括計(jì)量、電量數(shù)據(jù)存儲(chǔ)、RTC計(jì)時(shí)等,計(jì)量芯獨(dú)立運(yùn)行,法制認(rèn)證,不允許軟件升級(jí)。管理芯部分包括智能電卡接口、ESAM、顯示、存儲(chǔ)器、負(fù)控管理和對(duì)外通信等功能。由于計(jì)量芯部分和管理芯部分各自獨(dú)立自成系統(tǒng),在新的電表方案中,計(jì)量部分和管理部分都會(huì)各自需要一顆MCU主控芯片,兩顆主控完成的功能和核心關(guān)鍵指標(biāo)也會(huì)不同,這是實(shí)現(xiàn)基于IR46標(biāo)準(zhǔn)的雙芯電表方案的關(guān)鍵。
2 計(jì)量芯主控功能和關(guān)鍵技術(shù)
2.1 計(jì)量芯主控功能和架構(gòu)
計(jì)量芯部分要完成的功能包括計(jì)時(shí)、電能計(jì)量、電能和時(shí)間的存儲(chǔ)以及與管理芯的通信。本文設(shè)計(jì)的計(jì)量芯主控功能上包含RTC功能模塊,接口上包括串口、I2C、GPIO等,通過(guò)SPI通信口與管理芯進(jìn)行數(shù)據(jù)和指令交互,功能框圖如圖2所示。CPU采用ARM Cortex-M0 CPU,內(nèi)置128 KB Flash存儲(chǔ)器、8KB RAM,集成4通道DMA;串口負(fù)責(zé)與485通信、SPI與管理芯進(jìn)行通信;通過(guò)I2C操作EEPROM進(jìn)行數(shù)據(jù)存儲(chǔ);另有多路TIMER、看門(mén)狗等功能。
IR46標(biāo)準(zhǔn)要求在運(yùn)行模式下,計(jì)量芯的電源不能被控制或干涉,計(jì)量芯RTC持續(xù)工作10年以上,且計(jì)時(shí)精度要滿足國(guó)網(wǎng)電能表計(jì)時(shí)精度要求??偨Y(jié)以上需求可知,計(jì)量芯主控的高精度計(jì)時(shí)和低功耗工作是該主控的核心關(guān)鍵指標(biāo)。
2.2 計(jì)量芯主控的高精度計(jì)時(shí)技術(shù)
計(jì)量主控RTC采用32 768 Hz石英晶體,晶體的振蕩頻率會(huì)隨溫度變化,稱(chēng)之為晶體的溫度特性。32 768 Hz晶體的振蕩頻率與溫度呈類(lèi)二次函數(shù)關(guān)系[3],低溫和高溫區(qū)晶體的頻率偏差很大,無(wú)法滿足國(guó)網(wǎng)對(duì)智能電表的計(jì)時(shí)精度要求,必須加入溫度補(bǔ)償電路以提高計(jì)時(shí)精度。
本文設(shè)計(jì)RTC電路,除了包括了RTC的計(jì)時(shí)功能,還包括關(guān)鍵的晶體溫度補(bǔ)償功能,模塊包含RTC計(jì)時(shí)模塊、溫度傳感器、專(zhuān)用的晶體溫度補(bǔ)償電路和一塊緩存Flash,F(xiàn)lash用于存儲(chǔ)晶體的溫度調(diào)校系數(shù),如圖3所示。RTC計(jì)時(shí)電路定時(shí)觸發(fā)調(diào)校電路開(kāi)始工作,從溫度傳感器讀取當(dāng)前溫度值,然后根據(jù)溫度值從Flash中讀取對(duì)應(yīng)的調(diào)校系數(shù),由調(diào)校電路對(duì)RTC的計(jì)時(shí)電路進(jìn)行調(diào)校補(bǔ)償。
用32 768 Hz晶體振蕩器設(shè)計(jì)實(shí)時(shí)時(shí)鐘,計(jì)數(shù)滿32 768個(gè)周期為1 s,所以計(jì)數(shù)器的一個(gè)計(jì)數(shù)周期相對(duì)于秒周期的改變量為:
即如果簡(jiǎn)單的對(duì)秒脈沖進(jìn)行數(shù)字補(bǔ)償,能獲得的補(bǔ)償精度是30.5 ppm,對(duì)于小于30.5 ppm的頻率偏差,無(wú)法得到補(bǔ)償而帶來(lái)偏差,且隨著計(jì)時(shí)時(shí)間的加長(zhǎng),計(jì)時(shí)偏差會(huì)越來(lái)越大。本文設(shè)計(jì)的主控芯片提出并采用了基于累積誤差控制的補(bǔ)償算法[4]。補(bǔ)償算法如式(2)所示:
式中,Xn為當(dāng)前時(shí)刻根據(jù)晶體溫度從Flash讀取得到的需要補(bǔ)償?shù)念l率誤差值(單位ppm);Yn-1為上次溫度補(bǔ)償后遺留剩余誤差值;N為根據(jù)當(dāng)前Xn和Yn-1計(jì)算出來(lái)的需要補(bǔ)償?shù)恼麜r(shí)鐘周期數(shù);Yn為本次數(shù)字補(bǔ)償后剩余的頻率偏差值,用于下次補(bǔ)償時(shí)積累誤差用。由于對(duì)補(bǔ)償值N進(jìn)行了四舍五入,所以剩余誤差值Y的值會(huì)小于15.3 ppm,且由于本次補(bǔ)償?shù)氖S嗾`差會(huì)累積到下次需要補(bǔ)償?shù)恼`差值中,所以計(jì)時(shí)誤差不會(huì)隨著計(jì)時(shí)時(shí)間的變長(zhǎng)累積變大。該補(bǔ)償電路的功能框圖如圖4所示,理論的精度效果圖如圖5所示。
該補(bǔ)償電路采用全數(shù)字方式實(shí)現(xiàn),受集成電路工藝波動(dòng)的影響小,且實(shí)現(xiàn)簡(jiǎn)單。該主控芯片的RTC經(jīng)賽西實(shí)驗(yàn)室測(cè)試,在-45 ℃~85 ℃溫度范圍內(nèi),計(jì)時(shí)誤差在4 ppm以內(nèi)。
2.3 計(jì)量芯主控的低功耗設(shè)計(jì)技術(shù)
計(jì)量芯主控另一關(guān)鍵核心技術(shù)是低功耗設(shè)計(jì),以支撐計(jì)量芯10年不間斷工作。CMOS邏輯電路的功耗可以分為動(dòng)態(tài)功耗和靜態(tài)功耗兩部分。動(dòng)態(tài)功耗是指當(dāng)芯片處于激活(active)狀態(tài)時(shí),也即信號(hào)發(fā)生跳變時(shí)的功耗,靜態(tài)功耗是指芯片處于未激活狀態(tài)或者沒(méi)有信號(hào)跳變時(shí)的功耗[5-6]。動(dòng)態(tài)功耗70%源自開(kāi)關(guān)電容電流功耗[6],開(kāi)關(guān)電容的功耗定義如式(3)所示:
2.3.1 動(dòng)態(tài)功耗優(yōu)化
根據(jù)式(3)的理論,設(shè)計(jì)上降低動(dòng)態(tài)功耗的方法主要是降低數(shù)字電路的翻轉(zhuǎn)率,主要包括以下技術(shù)。
(1)門(mén)控時(shí)鐘技術(shù)
對(duì)每個(gè)功能模塊設(shè)計(jì)單獨(dú)的時(shí)鐘門(mén)控,在不需要模塊工作時(shí),關(guān)閉模塊時(shí)鐘,減少時(shí)鐘電路的翻轉(zhuǎn)功耗。同時(shí),在對(duì)芯片的RTL代碼進(jìn)行綜合時(shí),插入時(shí)鐘門(mén)控單元,這樣寄存器輸入端的時(shí)鐘在信號(hào)不翻轉(zhuǎn)時(shí)就不會(huì)翻轉(zhuǎn),極大地降低了時(shí)鐘的動(dòng)態(tài)功耗[7]。
(2)低功耗總線技術(shù)
總線技術(shù)引入到SoC設(shè)計(jì)使得芯片設(shè)計(jì)進(jìn)入模塊化結(jié)構(gòu)設(shè)計(jì)階段,方便了系統(tǒng)的集成,也有利于系統(tǒng)的擴(kuò)展。但另一方面, AHB總線和APB總線信號(hào)伸展到了芯片的每一個(gè)功能模塊,而從總線訪問(wèn)的互斥性可以看到,總線的主設(shè)備同一時(shí)刻只會(huì)訪問(wèn)一個(gè)從設(shè)備,但是不被訪問(wèn)的從設(shè)備的輸入總線信號(hào)還是會(huì)跟隨翻轉(zhuǎn),所以總線的無(wú)效翻轉(zhuǎn)功耗很高。
本設(shè)計(jì)首先對(duì)總線上的地址和寫(xiě)數(shù)據(jù)總線進(jìn)行選擇門(mén)控,只有送往被操作外設(shè)的地址和數(shù)據(jù)總線是有效翻轉(zhuǎn)的,其余外設(shè)的地址和寫(xiě)數(shù)據(jù)總線保持靜止。此外,采用總線反相技術(shù),總線矩陣處理模塊將總線上當(dāng)前數(shù)據(jù)總線值與上一個(gè)數(shù)據(jù)值進(jìn)行比較,選擇是發(fā)送原碼還是反碼,以及依據(jù)哪一種碼導(dǎo)致總線的翻轉(zhuǎn)更少。設(shè)計(jì)時(shí)需要總線增加一位極性信號(hào),以讓接收模塊正確地恢復(fù)總線上的數(shù)據(jù)。通過(guò)這兩種方式,極大地減小了總線的動(dòng)態(tài)功耗,將總線功耗占整芯片動(dòng)態(tài)功耗的比例從32%降到了26%。
(3)異步電路設(shè)計(jì)
在同步電路中,系統(tǒng)由全局時(shí)鐘控制,在每個(gè)時(shí)鐘脈沖到來(lái)時(shí),只要在翻轉(zhuǎn)時(shí)鐘控制下的所有寄存器都會(huì)消耗動(dòng)態(tài)功耗,無(wú)論該寄存器的數(shù)據(jù)是否變化。
而異步電路設(shè)計(jì)技術(shù),整個(gè)設(shè)計(jì)不需要有統(tǒng)一的時(shí)鐘,電路僅在需要翻轉(zhuǎn)的時(shí)候才會(huì)啟動(dòng)工作,沒(méi)有這種無(wú)效的功耗浪費(fèi),完成工作之后就恢復(fù)靜止?fàn)顟B(tài),處于靜止?fàn)顟B(tài)的電路單元僅僅消耗漏電流,不會(huì)有動(dòng)態(tài)功耗[7]。本文設(shè)計(jì)的主控在RTC模塊、看門(mén)狗模塊中,均采用了異步電路設(shè)計(jì),確保芯片在電池供電下正常計(jì)時(shí),并保持最低功耗。
該芯片在TSMC 180 nm eFlash工藝上流片,芯片實(shí)測(cè)動(dòng)態(tài)功耗數(shù)據(jù)為:芯片供電電壓為3.0 V,配置LDO為1.7 V,主時(shí)鐘選擇2 MHz時(shí),在溫度-40℃~85℃范圍內(nèi),芯片總功耗為表1所示。
2.3.2 靜態(tài)功耗優(yōu)化
根據(jù)電表的不同應(yīng)用場(chǎng)景合理設(shè)計(jì)芯片工作模式。電表在正常調(diào)試完成后的工作狀態(tài)分3種。第一種為電表在庫(kù)房尚未掛裝現(xiàn)場(chǎng),此時(shí)只需要RTC精確計(jì)時(shí),不需要計(jì)量、通信等其他功能,也不需要RAM數(shù)據(jù)的存儲(chǔ)保留,這種工作模式下,可以通過(guò)局部掉電做到最低功耗;第二種工作場(chǎng)景應(yīng)用于電表正常掛裝工作時(shí),電表保持全功能工作模式,此種模式下,主控芯片的要求是盡量降低芯片的動(dòng)態(tài)功耗;第三種場(chǎng)景對(duì)應(yīng)于電表掛裝后市電掉電,而以電池供電的工作模式,此時(shí)需要保留電表掉電時(shí)的現(xiàn)場(chǎng)狀態(tài),RTC正常計(jì)時(shí)。對(duì)應(yīng)于主控的工作模式,需要保持RTC正常工作和正常的晶體溫度補(bǔ)償,同時(shí)RAM和CPU等都需要保持帶電以保留工作現(xiàn)場(chǎng),來(lái)電喚醒和觸發(fā)喚醒電路保持工作,其他電路都將時(shí)鐘關(guān)閉以降低功耗。
根據(jù)上述3種工作場(chǎng)景,該芯片設(shè)計(jì)了stop、sleep和active模式。active時(shí)主控正常工作;sleep模式下,RTC和喚醒源保持工作,其他模塊保持有電但靜止模式;stop下,除RTC和喚醒源外,其余模塊直接掉電,以達(dá)到最低功耗。3種模式可以互相轉(zhuǎn)換,如圖6所示。
芯片sleep模式下,供電電壓3.0 V,LDO配置為1.8 V,RTC使能,所有其他的外設(shè)均不使能,在溫度-40 ℃~105 ℃范圍內(nèi),芯片的總功耗測(cè)試數(shù)據(jù)如表2。
3 管理芯主控功能和關(guān)鍵技術(shù)
3.1 管理芯主控功能
雙芯智能電表的管理芯主要負(fù)責(zé)費(fèi)控管理、顯示、事件記錄、負(fù)荷控制等任務(wù),同時(shí)提供一系列對(duì)外通信接口。本文設(shè)計(jì)的管理芯部分主控芯片的功能框圖如圖7所示。
IR46與傳統(tǒng)智能電表的最大特點(diǎn)是管理芯要支持程序的遠(yuǎn)程或本地的在應(yīng)用升級(jí)。管理芯主控需要提供合理完善的解決方案,滿足電表穩(wěn)定、可靠、高效地進(jìn)行電表程序的本地和遠(yuǎn)程升級(jí),這是管理芯區(qū)別于以前電表主控需要完成的一個(gè)關(guān)鍵功能。
3.2 管理芯主控在應(yīng)用升級(jí)關(guān)鍵技術(shù)
主控的遠(yuǎn)程或本地升級(jí)主要指的是對(duì)MCU芯片內(nèi)部的Flash存儲(chǔ)器的數(shù)據(jù)進(jìn)行擦除及重新下載。MCU對(duì)Flash存儲(chǔ)器的編程一般可以分成3種方式[8]:JTAG、ISP(In System Program)和IAP(In Application Program)。JTAG編程一般用于產(chǎn)品應(yīng)用開(kāi)發(fā)階段的調(diào)試;ISP強(qiáng)調(diào)芯片在應(yīng)用系統(tǒng)現(xiàn)場(chǎng)的升級(jí),但不要求程序升級(jí)時(shí)芯片繼續(xù)保持工作狀態(tài),可以終止應(yīng)用軟件的運(yùn)行,適用于便攜式設(shè)備的升級(jí);IAP和ISP最重要的區(qū)別是IAP支持應(yīng)用程序正常運(yùn)行的情況下,對(duì)Flash存儲(chǔ)器中的部分程序進(jìn)行擦除和重寫(xiě)操作,為終端固件的遠(yuǎn)程自動(dòng)升級(jí)帶來(lái)了很大的方便。雙芯電表方案的管理芯,采用的是IAP方式,支持程序的遠(yuǎn)程或本地的在應(yīng)用升級(jí)。
為了保障電表程序在應(yīng)用升級(jí)的正確性,管理芯主控設(shè)計(jì)在程序升級(jí)的不同階段,都進(jìn)行指令和程序的正確性檢查。首先確認(rèn)升級(jí)軟件包的接收是否完整正確,接收正確后,將新程序?qū)懙紽lash,并對(duì)編寫(xiě)結(jié)果進(jìn)行校驗(yàn)確認(rèn);校驗(yàn)正確后,將對(duì)新更新程序進(jìn)行自檢,如果自檢沒(méi)通過(guò),則需要有方式能將此部分程序恢復(fù)到升級(jí)前的一個(gè)版本。硬件上需要有足夠的空間對(duì)被替換的老版本程序進(jìn)行備份并記錄;能支持PC指針的靈活跳轉(zhuǎn);流程上要保證每一步都需要校驗(yàn)確認(rèn)正確后再轉(zhuǎn)到下一步。同時(shí),軟件上要求管理芯的主控程序采用模組化設(shè)計(jì)方案,即顯示模塊、通信模塊、費(fèi)控模塊、事件模塊等模塊的獨(dú)立設(shè)計(jì),互不影響,以保證電能表軟件支持對(duì)各模塊的獨(dú)立升級(jí),這樣避免了軟件整體升級(jí)帶來(lái)的升級(jí)效率低、硬件存儲(chǔ)和通信開(kāi)銷(xiāo)大的缺點(diǎn)。
應(yīng)用升級(jí)控制流程圖如圖8所示。該芯片在UMC55工藝上流片成功,用該芯片研發(fā)的樣表進(jìn)行在應(yīng)用升級(jí)的測(cè)試,模擬升級(jí)過(guò)程中程序傳輸出錯(cuò)、程序?qū)懗鲥e(cuò),在升級(jí)的各個(gè)環(huán)節(jié)發(fā)生電表掉電,芯片均能正確處理,報(bào)告出錯(cuò)環(huán)節(jié),并給出信號(hào)開(kāi)始下次升級(jí),并最終升級(jí)成功。
4 總結(jié)
本文研究了基于IR46標(biāo)準(zhǔn)的雙芯智能電能表方案,根據(jù)計(jì)量芯和管理芯各自完成的功能,設(shè)計(jì)了計(jì)量芯部分主控芯片和管理芯主控芯片。針對(duì)計(jì)量芯的高精度計(jì)時(shí)需求,提出了基于累積誤差控制的溫度補(bǔ)償電路;針對(duì)低功耗需求,采用了降低動(dòng)態(tài)和靜態(tài)功耗的一系列關(guān)鍵技術(shù)。管理芯主控部分,重點(diǎn)研究了高可靠安全的在應(yīng)用升級(jí)相關(guān)技術(shù),實(shí)現(xiàn)管理芯主控應(yīng)用程序的遠(yuǎn)程升級(jí)。本文研究?jī)?nèi)容對(duì)未來(lái)IR46標(biāo)準(zhǔn)的雙芯電表和電表主控芯片的開(kāi)發(fā)具有很好的參考意義。
參考文獻(xiàn)
[1] 國(guó)家電網(wǎng)公司企業(yè)標(biāo)準(zhǔn)Q/GDW1364-2013,單相智能電能表技術(shù)規(guī)范[S].
[2] 申斌.智能電表系統(tǒng)的設(shè)計(jì)與研究[D].南京:南京林業(yè)大學(xué),2013.
[3] 鄒云.溫度補(bǔ)償晶體振蕩器的研究[D].天津:南開(kāi)大學(xué),2010.
[4] 趙東艷,周芝梅.一種基于累積誤差控制的RTC補(bǔ)償算法及電路[J].電子技術(shù)應(yīng)用,2014,40(12).
[5] 馬芝.低功耗方法在SoC芯片設(shè)計(jì)中的應(yīng)用[J].中國(guó)集成電路,2010(7).
[6] 崔義智.低功耗技術(shù)在后端設(shè)計(jì)中的應(yīng)用[D].上海:復(fù)旦大學(xué),2008.
[7] 郭宏泓.超低功耗異步電路設(shè)計(jì)研究[D].鎮(zhèn)江:江蘇大學(xué),2009.
[8] 彭井花,蔡聲鎮(zhèn).基于GPRS的嵌入式系統(tǒng)軟件的遠(yuǎn)程在線升級(jí)[J].現(xiàn)代電子技術(shù),2009(4).
作者信息:
周芝梅1,2,趙東艷1,2,張海峰1,2,杜 君1,2,王維彬1,2
(1.北京智芯微電子科技有限公司,國(guó)家電網(wǎng)公司重點(diǎn)實(shí)驗(yàn)室電力芯片設(shè)計(jì)分析實(shí)驗(yàn)室,北京100192;
2.北京智芯微電子科技有限公司,北京市電力高可靠性集成電路設(shè)計(jì)工程技術(shù)研究中心,北京100192)