上海市信息網(wǎng)絡(luò)有限公司 許國泰 陳 兵 王子瑋
隨著物聯(lián)網(wǎng)的發(fā)展和集成電路技術(shù)的進(jìn)步,電子標(biāo)簽作為物聯(lián)網(wǎng)不可分割的部分亦日益滲透進(jìn)社會(huì)生活的方方面面。如,物流業(yè)、零售業(yè)、醫(yī)療行業(yè)、身份識(shí)別、防偽、資產(chǎn)管理、交通運(yùn)輸、圖書館、軍事等,電子標(biāo)簽的廣泛應(yīng)用離不開集成電路系統(tǒng)的良好質(zhì)量和強(qiáng)大功能,特別是電子標(biāo)簽內(nèi)存儲(chǔ)的敏感數(shù)據(jù),對(duì)電子標(biāo)簽EEPROM(帶電可擦可編程只讀存儲(chǔ)器)的安全性、可靠性提出了更高的要求。電子標(biāo)簽存儲(chǔ)交換數(shù)據(jù)的模塊是EEPROM,是一種可以通過已定義的指令進(jìn)行動(dòng)態(tài)更新的組件,在更新過程中為避免出現(xiàn)數(shù)據(jù)紊亂、信息更新不徹底導(dǎo)致電子標(biāo)簽無法使用,需對(duì)電子標(biāo)簽EEPROM備份還原、掉電保護(hù)機(jī)制的設(shè)計(jì)進(jìn)行全面的驗(yàn)證。因此,有必要對(duì)電子標(biāo)簽的EEPROM掉電保護(hù)機(jī)制的測試進(jìn)行研究。
電子標(biāo)簽又稱射頻標(biāo)簽,是一種非接觸式自動(dòng)識(shí)別技術(shù)的產(chǎn)物,通過射頻信號(hào)識(shí)別目標(biāo)對(duì)象并且獲取相關(guān)數(shù)據(jù),識(shí)別工作無須人工干預(yù),具有防水、防磁、耐高溫、使用壽命長、讀取距離大、標(biāo)簽上數(shù)據(jù)可加密、儲(chǔ)存數(shù)據(jù)容量大、存儲(chǔ)信息更改方便等優(yōu)點(diǎn)。
電子標(biāo)簽內(nèi)部各模塊功能如下:
(1)天線,用來接收電子標(biāo)簽讀寫器發(fā)送來的信號(hào),并且把要求的數(shù)據(jù)發(fā)送回給讀寫器。
(2)電壓調(diào)節(jié)器,把由電子標(biāo)簽讀寫器送來的射頻信號(hào)轉(zhuǎn)換成直流電源,由大電容存儲(chǔ),經(jīng)穩(wěn)壓電路以提供穩(wěn)定的電源。
(3)調(diào)制器,邏輯控制電路送出的數(shù)據(jù)經(jīng)調(diào)制電路調(diào)制后加載到天線發(fā)送給電子標(biāo)簽讀寫器。
(4)解調(diào)器,去除載波以取出真正的調(diào)制信號(hào)。
(5)邏輯控制單元,用于譯碼電子標(biāo)簽讀寫器送來的信號(hào),并依據(jù)要求回送數(shù)據(jù)給讀寫器。
(6)存儲(chǔ)單元,包括EEPROM和ROM,作為系統(tǒng)運(yùn)行和存放識(shí)別數(shù)據(jù)的位置,這里的EEPROM也是本文研究的測試對(duì)象。
機(jī)房巡檢系統(tǒng)電子標(biāo)簽。
驗(yàn)證和確認(rèn)機(jī)房巡檢系統(tǒng)電子標(biāo)簽具有在供電不穩(wěn)定時(shí)文件更新保護(hù)機(jī)制,包括數(shù)據(jù)寫入機(jī)制,數(shù)據(jù)恢復(fù)機(jī)制,狀態(tài)機(jī)設(shè)計(jì)和文件備份區(qū)設(shè)計(jì)等。
測試所需的環(huán)境如表1所示:
表1 測試環(huán)境表
2.4.1 測試準(zhǔn)備
兩套電子標(biāo)簽仿真器:一套加載了掉電保護(hù)機(jī)制的電子標(biāo)簽仿真器(FPGA_0);一套沒有加載掉電保護(hù)機(jī)制的電子標(biāo)簽仿真器(FPGA_1)。
2.4.2 測試方案
本文將從場強(qiáng)關(guān)閉模式、掉電步長(每次增加延后掉電的時(shí)間)兩種組合前提條件來檢測電子標(biāo)簽掉電保護(hù)機(jī)制的完備性,以驗(yàn)證電子標(biāo)簽EEPROM具有在進(jìn)行寫數(shù)據(jù)時(shí),突然掉電后的備份還原機(jī)制;從而確認(rèn)電子標(biāo)簽EEPROM的安全性,可靠性。
場強(qiáng)關(guān)閉模式分兩種:
(1)直接,迅速關(guān)閉,一旦發(fā)送斷電指令,電子標(biāo)簽讀寫器場強(qiáng)為0;
(2)緩慢關(guān)閉,一旦發(fā)送斷電指令,電子標(biāo)簽讀寫器場強(qiáng)逐步減小,直至場強(qiáng)為0;
掉電步長不同,根據(jù)掉電讀卡器的精度,本文中的步長按照0.125微秒,0.500微秒,1.000微秒三種情況進(jìn)行測試。
先用FPGA_0這套仿真器進(jìn)行掉電保護(hù)測試,電子標(biāo)簽正在寫EEPROM的過程中,防拔讀寫器供電突然斷掉,驗(yàn)證電子標(biāo)簽在有掉電保護(hù)機(jī)制的前提下,進(jìn)行EEPROM寫操作后,電子標(biāo)簽數(shù)據(jù)等于原有數(shù)據(jù)或者待更新數(shù)據(jù)。
再用FPGA_1這套仿真器進(jìn)行掉電保護(hù)測試,電子標(biāo)簽正在寫EEPROM的過程中,防拔讀寫器供電突然斷掉,驗(yàn)證電子標(biāo)簽在沒有掉電保護(hù)機(jī)制的前提下,進(jìn)行EEPROM寫操作后,復(fù)現(xiàn)電子標(biāo)簽數(shù)據(jù)既不等于原有數(shù)據(jù),也不等于待更新的數(shù)據(jù)。
2.4.3 測試用例
(1)先用電子標(biāo)簽讀寫器對(duì)PFGA_0、PFGA_1在保證場強(qiáng)供應(yīng)穩(wěn)定的前提下,用EEPROM寫指令,分別對(duì)數(shù)據(jù)區(qū)某地址A寫入240個(gè)字節(jié)0xA5,然后用讀指令驗(yàn)證數(shù)據(jù)的正確性,并且同時(shí),用MP300測出在寫入240字節(jié)0xA5所需要消耗的時(shí)間,如500微秒。
(2)在測試平臺(tái)上用腳本設(shè)置防拔讀卡器參數(shù):
a)掉電的起始時(shí)間 為400微秒。
b)每次增加步長為0.125微秒/0.500微秒/1.000微秒。
(3)在場強(qiáng)延后關(guān)閉的400微秒+的時(shí)間內(nèi),發(fā)送寫EEPROM指令,對(duì)某地址A進(jìn)行寫操作,并且寫入的數(shù)據(jù)為240字節(jié)0x5A。并且在場強(qiáng)重新打開后,對(duì)某地址A進(jìn)行讀操作,獲取該電子標(biāo)簽數(shù)據(jù),用于后續(xù)備用。
(4)掉電測試結(jié)束判斷:重新上電后,讀取某地址A的數(shù)據(jù)后,如果該數(shù)據(jù)為舊值,那么步進(jìn)加一單位步長,直到該數(shù)據(jù)為新值或者既不等于新值也不等于舊值。
2.4.4 測試腳本
根據(jù)測試用例,用TCL語言編寫(一個(gè)工具命令語言)如下測試腳本:
set TestReport “機(jī)房巡檢系統(tǒng)RFID標(biāo)簽EEPROM掉電保護(hù)測試,步長0.125us”;#設(shè)置測試報(bào)告。
StartLog “[info script]” ;#啟用日志
Insert; #1-1 供場通信
SelectRFIDAPP; #1-2 選擇電子標(biāo)簽應(yīng)用
set sOldData [string repeat “A5” 240];#1-3 初始化EE數(shù)據(jù)A5
WriteEE: $sOldData;#正常寫EE操作
set sTime [expr 400/0.125];#1-4 設(shè)置延后掉電初始時(shí)間
while {$sTime} {
#1-5 設(shè)置延后掉電時(shí)間,這個(gè)是防拔讀卡器切斷供電控制指令
SENDCMD: “140A[format “%06x” $sTime]”;JudgeSw 9000
#1-6 更新EEPROM原有數(shù)據(jù)240個(gè)字節(jié)A5為5A
set sNewData [string repeat “5A” 240]
WriteEE: $sNewData;#1-7 寫入新數(shù)據(jù)
Insert;#1-8 重新供電
SelectRFIDAPP; #1-9 選擇電子標(biāo)簽應(yīng)用
ReadEE; #1-10 讀取EEPROM數(shù)據(jù)
#1-11 while循環(huán)完成判斷,ResponseData為讀EEPROM數(shù)據(jù)后返回的數(shù)據(jù)
if {$ResponseData==$sOldData} {
puts “掉電保護(hù)機(jī)制繼續(xù)進(jìn)行,增加0.125us”
incr sTime 1;#1-12 這里可以修改步長
} elseif {$ResponseData==$sNewData} {
puts “掉電保護(hù)機(jī)制成功執(zhí)行,預(yù)期數(shù)據(jù)已經(jīng)寫入EEPROM”
} else {
error “EEPROM數(shù)據(jù)既不是舊數(shù)據(jù)也不是新數(shù)據(jù),EEPROM寫入紊亂,掉電機(jī)制不符合要求,測試不通過”
}
}
}
WriteReport $TestReport;#寫日志
2.4.5 測試執(zhí)行
在Eclipse平臺(tái),加載腳本后,點(diǎn)擊Run As,選擇掉電保護(hù)腳本后,執(zhí)行該腳本。
2.4.6 測試結(jié)果
測試結(jié)果記錄如表2所示:
表2 測試結(jié)果表
2.4.7 測試分析
根據(jù)兩套電子標(biāo)簽PFGA_0和PFGA_1在不同場強(qiáng)關(guān)閉模式下執(zhí)行現(xiàn)象和結(jié)果,作如下分析:
(1)對(duì)于有掉電保護(hù)機(jī)制的電子標(biāo)簽仿真器FPGA_0,在不同步長模式,經(jīng)過不斷增加步進(jìn),直到滿足寫數(shù)據(jù)要求的時(shí)間后,無論在哪種場強(qiáng)關(guān)閉模式下,均能成功更新某地址A數(shù)據(jù)為240個(gè)字節(jié)0x5A,并且通過變化步長為0.125微秒/0.500微秒/1.000微秒后,電子標(biāo)簽經(jīng)過多次掉電測試,EEPROM數(shù)據(jù)穩(wěn)定可靠;另外,對(duì)于為何要選擇更新的數(shù)據(jù)為A5和5A,簡單說明一下,A5的二進(jìn)制(10100101),5A的二進(jìn)制(01011010),這樣設(shè)置數(shù)據(jù),有利于放大電子標(biāo)簽在寫數(shù)據(jù)時(shí)的錯(cuò)誤現(xiàn)象;
(2)對(duì)于沒有掉電保護(hù)機(jī)制的電子標(biāo)簽仿真器FPGA_1,步長為0.125微秒,經(jīng)過不斷增加步進(jìn),在場強(qiáng)直接,迅速關(guān)閉的情況下,電子標(biāo)簽?zāi)车刂稟的數(shù)據(jù)變化成0xA5和0x5A的組合,數(shù)據(jù)紊亂,測試終止;并且變化步長后,現(xiàn)象也是類似,符合失敗的預(yù)期,達(dá)到掉電測試的目的;但是在另外一種場強(qiáng)關(guān)閉模式,緩慢關(guān)閉下,如果寫的數(shù)據(jù)夠短,還是由可能成功的,所以這里需要注意的一點(diǎn)是,測試的數(shù)據(jù)一定要足夠長。
本文主要分析了電子標(biāo)簽掉電保護(hù)測試的黑盒測試方法,從黑盒測試的角度,闡述了如何驗(yàn)證和確認(rèn)電子標(biāo)簽產(chǎn)品中掉電保護(hù)機(jī)制,以便給產(chǎn)品的商用提供幫助,至于其他諸如動(dòng)態(tài)測試,靜態(tài)測試,白盒測試,灰盒測試等,對(duì)于電子標(biāo)簽這類產(chǎn)品來說,可以作為一種黑盒測試之外的補(bǔ)充,比如數(shù)字邏輯代碼的走讀,模擬,數(shù)字設(shè)計(jì)規(guī)范的審核等等;這里需要特別說明的是,對(duì)于本文中涉及的掉電保護(hù)機(jī)制測試策略,在集成電路的其他設(shè)計(jì)數(shù)據(jù)存儲(chǔ)的其他形態(tài)產(chǎn)品,諸如銀行卡、社???、公交卡,SD卡,MCU等,也有很好的借鑒意義。