多用戶智能電表中的數(shù)據(jù)安全存儲(chǔ)技術(shù)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
多用戶智能電表是以MCU為核心、以大規(guī)模電量采集模塊而構(gòu)成的一種電量數(shù) 據(jù)采集儀表,具有多用戶電量采集、數(shù)據(jù)遠(yuǎn)程傳輸、用戶供電控制、復(fù)費(fèi)率電量計(jì)量等先進(jìn) 功能,體積小,功能強(qiáng),深受集中供電場所如高校學(xué)生宿舍、智能化小區(qū)等用戶歡迎。為提高儀表使用的靈活性,存在一些可編程的參數(shù),如儀表編號(hào)、計(jì)量戶數(shù)、通訊速率、電表脈沖常數(shù)、復(fù)費(fèi)率時(shí)段時(shí)間值、各戶供電狀態(tài)等,以及其計(jì)量的數(shù)據(jù),即各用戶的用電量。這些數(shù)據(jù)一旦受到干擾遭到破壞,不僅儀表不能正常工作,還將給用戶 造成經(jīng)濟(jì)損失,引發(fā)經(jīng)濟(jì)糾紛,因此必須保證數(shù)據(jù)的可靠性、安全性、非易失性。如何保護(hù) 這些要求非易失性存儲(chǔ)的關(guān)鍵數(shù)據(jù)不被破壞,確保數(shù)據(jù)的安全,對(duì)于多用戶智能電表設(shè)計(jì)具 有非常重要的意義。
儀表工作原理:各用戶的用電量,通過大規(guī)模電能計(jì)量集成電路(如BL0933、ADE7755等)將其轉(zhuǎn)化為與電量成正比的脈沖量,經(jīng)光電耦合電路后,由開關(guān)量輸入接口被CPU采入內(nèi)存中,CPU根據(jù)采集的脈沖量,對(duì)各用戶的用電量進(jìn)行累加,將其存入非易失存儲(chǔ)器中,并由顯示電路輪流顯示出各戶的用電量。通過遠(yuǎn)程通信接口電路(如RS485、CAN總線)實(shí)現(xiàn)測量數(shù)據(jù)的遠(yuǎn)程傳輸。
為提高儀表的可靠性,在數(shù)據(jù)采集電路和遠(yuǎn)程傳輸電路中都設(shè)計(jì)了光電隔離電路,設(shè)計(jì)了由X5045芯片構(gòu)成的獨(dú)立的看門狗電路,為實(shí)現(xiàn)參數(shù)和數(shù)據(jù)的非易失存儲(chǔ),儀表中采用了兩種存儲(chǔ)器,一種是X5045內(nèi)部的512字節(jié)的非易失存儲(chǔ)器;另一種是獨(dú)立的直接與CPU接口的非易失存儲(chǔ)器W24C16。兩種存儲(chǔ)器相互配合,配以軟件措施,實(shí)現(xiàn)數(shù)據(jù)的非易失、高可靠存儲(chǔ)。
影響數(shù)據(jù)安全的主要原因有以下幾個(gè)方面:
(1)上電、掉電、電源跌落過程中,電源沖擊對(duì)存儲(chǔ)器芯片的影響;
(2)上電、掉電、電源跌落過程中,CPU不能可靠復(fù)位,導(dǎo)致程序跑飛改寫數(shù)據(jù);
(3)程序運(yùn)行過程中受到各種干擾導(dǎo)致程序跑飛改寫數(shù)據(jù)。
針對(duì)以上原因,硬件、軟件設(shè)計(jì)應(yīng)采取相應(yīng)措施,確保數(shù)據(jù)存儲(chǔ)的安全可靠。?
2數(shù)據(jù)安全的硬件措施
(1)采用集成看門狗芯片X5045,將其復(fù)位輸出端直接與系統(tǒng)各芯片的復(fù)位端 相連,在上電、掉電、電源跌落過程中,實(shí)現(xiàn)可靠復(fù)位;同時(shí),當(dāng)程序跑飛時(shí),及時(shí)實(shí)現(xiàn)自動(dòng)復(fù)位,減少數(shù)據(jù)被改寫的可能性。
(2)采用多重存儲(chǔ)媒體
對(duì)于非易失數(shù)據(jù)存儲(chǔ),系統(tǒng)設(shè)計(jì)時(shí)采用了二重媒體存儲(chǔ)技術(shù),一是采用X5045內(nèi)帶有SPI接口的512字節(jié)的非易失存儲(chǔ)器;二是外擴(kuò)了一種非易失存儲(chǔ)器。將同一組數(shù)據(jù),存放到兩種存儲(chǔ)器中,可大大減少抗擾破壞的概率。正常運(yùn)行時(shí),為提高數(shù)據(jù)讀寫速度,其運(yùn)算都安排在CPU內(nèi)部進(jìn)行。
(3)正確選擇非易失存儲(chǔ)器
目前,在線可擦寫非易失存儲(chǔ)器種類很多,第1類是E2PROM,其特點(diǎn)是可實(shí)現(xiàn)在線數(shù)據(jù)修改,寫入時(shí)間長,典型值為5~10 ms,寫入次數(shù)有限,典型值為1~100萬次。并行接口E2PROM與CPU連線較多,體積較大,讀寫控制容易,讀出速度快;串行E2PROM與CPU接口簡單,連線少,讀寫時(shí)間長,讀寫控制較復(fù)雜,可分為SPI接口、I2C總線接口、MPS接口等;第2類是非易失RAM,與普通RAM兼容,讀寫速度快,內(nèi)含鋰電池和數(shù)據(jù)保護(hù)電路,可實(shí)現(xiàn)非易失存儲(chǔ),無寫保護(hù)引腳,價(jià)格較貴;第3類是FLASH MEMORY,主要用于大容量存儲(chǔ)數(shù) 據(jù)場所,如計(jì)算機(jī)的BIOS等;第4類是多功能芯片,如X5045中含有512字節(jié)的非易失存儲(chǔ)器,DS12887時(shí)鐘電路中含有256字節(jié)的非易失存儲(chǔ)器等。多用戶電表中的數(shù)據(jù),如用戶用電量,按每戶4字節(jié)計(jì)算(顯示范圍為:0.00~999 999.99),對(duì)16戶電表(適用于一梯兩戶、7層居民住宅、一戶一表、一路公用照明、一路備用),所需存儲(chǔ)容量僅為64字節(jié),因?yàn)榭偟拇鎯?chǔ)容量并不多,所以以選串行接口存儲(chǔ)器為宜;另外,系統(tǒng)對(duì)用戶電量的讀寫不是很頻繁,讀寫速度不要求很快,加以數(shù)據(jù)可靠性要求很高,系統(tǒng)中選擇了X5045多功能芯片和I2C總線接口的E2PROM W24C16。
(4)正確設(shè)計(jì)接口電路
數(shù)據(jù)被改寫的原因是隨機(jī)干擾信號(hào)滿足了芯片寫時(shí)序的要求,執(zhí)行了非法的寫操作。如并行接口的存儲(chǔ)器芯片的CS、WR同時(shí)為低電平時(shí)即可完成一次寫操作,所以其抗擾性能要低于串行的E2PROM。對(duì)于W24C16芯片,要改寫其內(nèi)部的數(shù)據(jù),除了寫入數(shù)據(jù)時(shí)滿足一定的時(shí)序外,芯片本身具有寫保護(hù)引腳,其高電平有效時(shí)方可對(duì)其進(jìn)行寫操作。該寫保護(hù)引腳一般不應(yīng)直接接到電源上,應(yīng)將其接到CPU的某一可編程引腳,由CPU來控制該引腳的電平信號(hào),以防止外來的干擾。?
3數(shù)據(jù)安全的軟件措施
硬件措施只是有效提高數(shù)據(jù)安全性的一個(gè)方面,在程序執(zhí)行過程中,系統(tǒng)受 到強(qiáng)烈干擾后,仍有跑飛改變數(shù)據(jù)的可能性,所以軟件設(shè)計(jì)中應(yīng)采取一定的措施,以正確識(shí) 別數(shù)據(jù)的有效性,對(duì)被破壞的數(shù)據(jù)采取一定的數(shù)據(jù)恢復(fù)措施,以盡可能地達(dá)到數(shù)據(jù)存儲(chǔ)的完整性、有效性。
3.1數(shù)據(jù)備份
在系統(tǒng)設(shè)計(jì)中,采用兩種方法實(shí)現(xiàn)數(shù)據(jù)備份操作:1)硬件設(shè)計(jì)中選用了X5045和W24C16兩種獨(dú)立的存儲(chǔ)器,實(shí)現(xiàn)存儲(chǔ)體的備份;2)在同一存儲(chǔ)體中,對(duì)同一批數(shù)據(jù)存于不同的存儲(chǔ)區(qū)域中,一般采用3重備份方案,這樣,同一時(shí)刻數(shù)據(jù)在兩種存儲(chǔ)器中有6個(gè)備份。采用不同的存儲(chǔ)器,并同時(shí)對(duì)采集數(shù)據(jù)進(jìn)行多個(gè)備份,可以大大提高數(shù)據(jù)的抗干擾性能。
3.2備份數(shù)據(jù)的表決
存于存儲(chǔ)器中的6份數(shù)據(jù),CPU定期對(duì)其進(jìn)行數(shù)據(jù)有效性檢驗(yàn),以觀察是否受到干擾。一般通過表決的方式,認(rèn)為其中有3份以上的數(shù)據(jù)相同,便認(rèn)為相同的數(shù)據(jù)為有效數(shù)據(jù),同時(shí)用其覆蓋掉不相同的數(shù)據(jù)備份,以保證數(shù)據(jù)的有效性和完整性。
3.3數(shù)據(jù)校驗(yàn)
一般情況下,通過備份數(shù)據(jù)表決可解決大部分的數(shù)據(jù)受擾問題,但在有些情況下,也會(huì)出現(xiàn) 數(shù)據(jù)表決失敗的情況。為此,還需對(duì)每一塊備份數(shù)據(jù)進(jìn)行校驗(yàn),并將校驗(yàn)值存于校驗(yàn)數(shù)據(jù)區(qū)域中。對(duì)備份數(shù)據(jù)表決失敗的情況,再對(duì)每一塊備份數(shù)據(jù)進(jìn)行校驗(yàn),比較其校驗(yàn)值是否和原來的一致,若一致,則認(rèn)為該備份數(shù)據(jù)有效,若不一致,則認(rèn)為該備份數(shù)據(jù)已遭到破壞。校 驗(yàn)算法可采用和校驗(yàn)、CRC校驗(yàn)等。對(duì)校驗(yàn)數(shù)據(jù)值亦可采用備份存儲(chǔ)的方法,以進(jìn)一步提高數(shù)據(jù)存放的可靠性。[!--empirenews.page--]
3.4寫方式控制
程序中有寫數(shù)據(jù)的要求,便存在數(shù)據(jù)被破壞的可能。為防止誤寫數(shù)據(jù),程序設(shè)計(jì)中設(shè)置寫請(qǐng)求口令變量,正常執(zhí)行的程序欲執(zhí)行一個(gè)寫流程時(shí),需先設(shè)置一個(gè)寫請(qǐng)求口令變量,才可以調(diào)用寫數(shù)據(jù)子程序。而在寫數(shù)據(jù)子程序中,只有寫請(qǐng)求口令變量值與該流程的標(biāo)志值相同,方可進(jìn)行寫操作,寫完成后將自動(dòng)復(fù)位寫請(qǐng)求口令變量。對(duì)不正確的寫請(qǐng)求口令變量值,寫子程序?qū)?duì)其不予理會(huì)并將其復(fù)位。
3.5回讀寫數(shù)據(jù)校驗(yàn)
對(duì)寫入串行E2PROM中的數(shù)據(jù),為防止在寫數(shù)據(jù)過程中受到干擾造成誤寫,寫完成后,再將剛寫入的數(shù)據(jù)讀出來,與要寫的數(shù)據(jù)相比較,看兩者是否一致,如一致,則說明數(shù)據(jù)已正確 寫入存儲(chǔ)器中,如不一致,則啟動(dòng)重寫操作,直到數(shù)據(jù)寫入正確為準(zhǔn)。
3.6寫入次數(shù)限制
串行E2PROM每個(gè)單元都有寫入次數(shù)限制,要保證在儀表的使用期限內(nèi)寫入次數(shù)不超過廠家推薦的值,保證數(shù)據(jù)可靠性。儀表預(yù)計(jì)最大計(jì)量數(shù)據(jù)為999 999.99kWh,將用戶計(jì)量電能值分成兩部分進(jìn)行存儲(chǔ),一部分為整數(shù)電量部分,最大數(shù)據(jù)為999 999,可滿足寫入次數(shù)限制;一部分為0.1 kWh存儲(chǔ)單元,如寫入次數(shù)被限制在10萬次,則每計(jì)量10 000 kWh,則需要更換存儲(chǔ)單元,程序根據(jù)整數(shù)電量滿10 000 kWh時(shí),便更換存儲(chǔ)單元。對(duì)0.01 kWh計(jì)量,只有系統(tǒng)掉電時(shí)將其存入E2PROM中,正常運(yùn)行時(shí)存儲(chǔ)在單片機(jī)內(nèi)部RAM中。X5045的存儲(chǔ) 器分配如表1所示。
4結(jié)束語
多用戶智能化電表屬于計(jì)量儀表,其測量數(shù)據(jù)的正確性和可靠性都關(guān)系到供電方和用電方的切身經(jīng)濟(jì)利益。通過采取以上軟、硬件措施,數(shù)據(jù)存放的可靠性得到很大提高。同時(shí),要想全面提高系統(tǒng)的可靠性和安全性,還要對(duì)系統(tǒng)的整體設(shè)計(jì)、系統(tǒng)應(yīng)用環(huán)境等進(jìn)行綜合考慮,采取電源濾波、儀表屏蔽、防雷等安全措施,才能取得最佳效果。