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