物聯(lián)傳媒 旗下網(wǎng)站
登錄 注冊(cè)

基于 NI TestStand 的超高頻電子標(biāo)簽清點(diǎn)功能自動(dòng)化測(cè)試序列軟件的設(shè)計(jì)與實(shí)現(xiàn)

作者:集成電路應(yīng)用雜志
來源:RFID世界網(wǎng)
日期:2018-05-22 09:39:08
摘要:基于 NI TestStand 管理軟件,設(shè)計(jì)了一套測(cè)試軟件,實(shí)現(xiàn)了對(duì)符合 ISO/IEC 18000-63 協(xié)議的芯片清點(diǎn)功能的測(cè)試。本測(cè)試軟件使用 NI RFID 測(cè)試儀,根據(jù)測(cè)試設(shè)計(jì)人員的需求開發(fā)出自動(dòng)化測(cè)試序列,自動(dòng)完成與被測(cè)芯片的通信交互,實(shí)現(xiàn)對(duì)響應(yīng)的判斷,并完成結(jié)果的保存。該軟件充分采用了 NI TestStand,相比之前測(cè)試清點(diǎn)功能的傳統(tǒng)的手動(dòng)測(cè)試、半自動(dòng)測(cè)試,測(cè)試時(shí)間分別縮短了 5/6、2/3。實(shí)踐證明,使用本測(cè)試軟件可以提高對(duì)超高頻電子標(biāo)簽開展功能測(cè)試的效率。

  1 引言

  根據(jù)國際上對(duì)射頻工作頻率的劃分標(biāo)準(zhǔn)[1-5],超高頻(UHF,Ultra-high Frequency)的頻段為300 MHz~3 GHz。其中,超高頻電子標(biāo)簽的典型工作頻率為 433 MHz、860 MHz~960 MHz 以及 2.45 GHz。本文論述的超高頻電子標(biāo)簽是工作在 860 MHz~960 MHz之間的產(chǎn)品。這一頻段產(chǎn)品采用的國際協(xié)議主要為 ISO/IEC 18000-6(Type C)、EPC Gen2 等。本文論述的電子標(biāo)簽符合 ISO/IEC 18000-6(Type C)的 Part 63,即 ISO/IEC 18000-63 協(xié)議。該頻段標(biāo)簽已經(jīng)在制造、物流、醫(yī)療、運(yùn)輸、零售等領(lǐng)域得到應(yīng)用,目前已經(jīng)具有很好的市場(chǎng)前景。因此,開展對(duì)標(biāo)簽產(chǎn)品的全面的功能驗(yàn)證、保證電子標(biāo)簽的質(zhì)量變得越來越重要。

基于 NI TestStand 的超高頻電子標(biāo)簽清點(diǎn)功能自動(dòng)化測(cè)試序列軟件的設(shè)計(jì)與實(shí)現(xiàn)

  目前,ISO/IEC 18047-6 等協(xié)議可以用來對(duì)超高頻電子標(biāo)簽進(jìn)行一致性驗(yàn)證/互操作驗(yàn)證。但是,如何高效地對(duì)標(biāo)簽產(chǎn)品開展全面的功能驗(yàn)證,尚未發(fā)現(xiàn)有效的解決方法。手動(dòng)測(cè)試方式或者開發(fā)常用命令的自動(dòng)化測(cè)試(本文稱為半自動(dòng)化測(cè)試)具有效率較低、耗時(shí)較長(zhǎng)、容易出現(xiàn)漏項(xiàng)和錯(cuò)項(xiàng)的缺點(diǎn)。因此,華大半導(dǎo)體公司購買了美國國家儀器公司(National Instrument,簡(jiǎn)寫為 NI)的 NI RFID 測(cè)試儀。該設(shè)備不僅能夠解決命令/時(shí)間參數(shù)的限制,還能夠使用 NI TestStand 管理測(cè)試腳本,達(dá)到高效地對(duì)標(biāo)簽產(chǎn)品開展全面的功能驗(yàn)證的目的。本文從功能測(cè)試中測(cè)試項(xiàng)最為復(fù)雜、測(cè)試項(xiàng)數(shù)目最多的清點(diǎn)功能驗(yàn)證角度著手,基于 NI RFID 測(cè)試儀和 TestStand 管理軟件,設(shè)計(jì)和開發(fā)了一套超高頻電子標(biāo)簽清點(diǎn)功能自動(dòng)化測(cè)試序列軟件,目標(biāo)是高效完成清點(diǎn)功能驗(yàn)證。

  2 NI TestStand

  本文使用的是 NI 開發(fā)的管理軟件 TestStand,它是一個(gè)現(xiàn)成可用的自動(dòng)化測(cè)試管理軟件,用于從自動(dòng)化原型創(chuàng)建、設(shè)計(jì)認(rèn)證到執(zhí)行生產(chǎn)測(cè)試的整個(gè)過程。它與 NI LabVIEW、NI LabWindows/CVI、VB 和 VC 等所有給主流測(cè)試編程環(huán)境兼容,且能調(diào)用動(dòng)態(tài)鏈接庫(DLLs)、ActiveX 自動(dòng)化服務(wù)器、EXE 可執(zhí)行程序等。它建立在高速、多線程執(zhí)行引擎基礎(chǔ)上,可滿足最嚴(yán)格的測(cè)試吞吐量要求[6-8]。

  具體到本文論述的功能測(cè)試,關(guān)系到多條強(qiáng)制命令與自定義命令及其對(duì)應(yīng)的眾多參數(shù)域,全面遍歷對(duì)設(shè)備處理數(shù)據(jù)的能力有很高的要求。而 TestStand 的高速、多線程、高吞吐能力,將會(huì)滿足功能測(cè)試的要求。

  3 自動(dòng)化測(cè)試序列的工作原理

  3.1 硬件工作原理

  華大半導(dǎo)體現(xiàn)有的設(shè)備資源是上海聚星儀器有限公司提供的 NI RFID 測(cè)試系統(tǒng),由 2.7 GHz 上變頻轉(zhuǎn)換器 PXI-5610、2.7 GHz 下變頻轉(zhuǎn)換器 PXI-5600 以及以 FPGA 為基礎(chǔ)的中頻轉(zhuǎn)換器 PXIe-5641R組成,用于實(shí)時(shí)處理與被測(cè)標(biāo)簽之間的數(shù)據(jù)通信。以本文被測(cè)對(duì)象為例,當(dāng)超高頻標(biāo)簽進(jìn)入射頻場(chǎng)之后,PXIe-5641R 將上位機(jī)指定的命令轉(zhuǎn)換為 20 MHz 帶寬的數(shù)字信號(hào),再通過 D/A 轉(zhuǎn)換為模擬信號(hào)發(fā)送至上變頻轉(zhuǎn)換器,上變頻轉(zhuǎn)換器將信號(hào)轉(zhuǎn)換至上位機(jī)指定的工作信號(hào)(例如:載波 922.5 MHz /發(fā)射功率 15 dBm /調(diào)制深度 90%),并通過天線發(fā)送至標(biāo)簽。天線接收到標(biāo)簽的反射后,通過下變頻轉(zhuǎn)換器轉(zhuǎn)換至 20 MHz 的數(shù)字信號(hào),經(jīng) PXIe-5641R 中的 A/D 變換,轉(zhuǎn)換至 FPGA 可以處理的信號(hào),處理完畢后,上傳至上位機(jī),在上位機(jī)顯示相應(yīng)的波形和數(shù)據(jù)。

  3.2 上位機(jī)軟件的工作原理

  在芯片設(shè)計(jì)過程中,根據(jù)相關(guān)協(xié)議/技術(shù)規(guī)格書等文檔,編制了芯片樣品驗(yàn)證方案。芯片樣品驗(yàn)證方案中,列出所有命令的功能驗(yàn)證項(xiàng),尤以清點(diǎn)功能的循環(huán)遍歷驗(yàn)證最為復(fù)雜。清點(diǎn)功能對(duì)應(yīng)的驗(yàn)證為一條命令流的驗(yàn)證,包含 4 條命令,分別為 Select、Query、ACK、GetRN 命令,其中 Select 命令包括 6 個(gè)可變命令參數(shù)域(見表1),Query 命令包括 7 個(gè)可變命令參數(shù)域(見表2),ACK 命令與 GetRN 命令用于判斷清點(diǎn)功能驗(yàn)證的結(jié)果。由表 1、表 2 可以看出,實(shí)現(xiàn)清點(diǎn)功能的全覆蓋驗(yàn)證,測(cè)試項(xiàng)數(shù)目總計(jì)為 274,877,906,944(Select 命令指針數(shù)據(jù)域以 8 bit 計(jì)),測(cè)試工作量非常大。再加上設(shè)備開關(guān)空間場(chǎng)的時(shí)間、命令交互時(shí)間以及上位機(jī)處理時(shí)間,耗費(fèi)時(shí)間難以估計(jì),也就違背了使用 TestStand 的初衷。因此必須要對(duì)測(cè)試項(xiàng)數(shù)量做科學(xué)的處理。

  處理的原則是:(1)明確清點(diǎn)功能的驗(yàn)證是對(duì)標(biāo)簽匹配與否的驗(yàn)證。(2)對(duì)于存儲(chǔ)區(qū)掩碼匹配的驗(yàn)證,根據(jù)邊界測(cè)試的原理,將存儲(chǔ)區(qū)的掩碼匹配范圍指向界內(nèi)、邊界點(diǎn)、越界三種情況。(3)將對(duì)時(shí)隙計(jì)數(shù)器值的驗(yàn)證歸到防沖突驗(yàn)證項(xiàng)中。

  經(jīng)過精簡(jiǎn),測(cè)試項(xiàng)數(shù)目減少至 92,160。

  接下來論述測(cè)試項(xiàng)實(shí)現(xiàn)的方法。

  編寫測(cè)試序列時(shí),首先讀出標(biāo)簽的 TID(Tag Identifier,即標(biāo)簽的唯一識(shí)別符)信息,并在 UII 區(qū)(Unique Item Identifier)寫入固定信息,在驗(yàn)證過程中用于掩碼信息的對(duì)比。讀取 TID 信息及寫入 UII信息無誤后,下一步執(zhí)行清點(diǎn)功能的測(cè)試序列。根據(jù) Select 命令中目標(biāo)命令域?qū)ζヅ錁?biāo)志/盤點(diǎn)標(biāo)志的設(shè)置,為了便于分析標(biāo)簽匹配與否,將清點(diǎn)功能的自動(dòng)化測(cè)試序列分為 8 個(gè)序列,在每個(gè)序列中,對(duì)其他的命令域進(jìn)行遍歷,每個(gè)序列包含 11,520 個(gè)測(cè)試項(xiàng)。程序流程如圖 1 所示。

  經(jīng)過精簡(jiǎn)的清點(diǎn)功能測(cè)試序列,測(cè)試項(xiàng)總數(shù)為 92,160,在各個(gè)測(cè)試項(xiàng)之間加入 100 ms 的延時(shí)后,實(shí)際運(yùn)行時(shí)間約為 4 小時(shí),在一個(gè)工作日能夠至少完成 2 支標(biāo)簽的清點(diǎn)功能的全面驗(yàn)證。

  在測(cè)試的過程中,對(duì)標(biāo)簽的響應(yīng),與預(yù)期的響應(yīng)之間做出比對(duì),將不一致的結(jié)果寫入以當(dāng)前測(cè)試序列命名的 txt 文檔中,記錄格式為:“以‘|’為分隔符記錄當(dāng)前命令數(shù)據(jù)域的值, Expected:(期望的返回值) Real:(實(shí)際的返回值)”。在最終完成該測(cè)試序列后,將 txt 文檔保存至以該序列命名的文件夾中。

  4 關(guān)鍵技術(shù)

  編寫自動(dòng)化測(cè)試序列的思路是:(1)各個(gè)測(cè)試序列的程序流程一致,只需要簡(jiǎn)單修改輸入?yún)?shù)就能實(shí)現(xiàn)對(duì)不同命令的功能進(jìn)行自動(dòng)化測(cè)試。(2)應(yīng)當(dāng)盡可能地減少循環(huán)嵌套個(gè)數(shù),由于功能測(cè)試是針對(duì)命令的數(shù)據(jù)域進(jìn)行遍歷,不可避免的涉及循環(huán)嵌套的問題,而循環(huán)嵌套層數(shù)太多會(huì)導(dǎo)致調(diào)試?yán)щy。

  4.1 各個(gè)測(cè)試序列結(jié)構(gòu)的一致性

  在劃分測(cè)試序列時(shí),本文選取了以 Select 命令的目標(biāo)數(shù)據(jù)域作為分割的標(biāo)準(zhǔn)。因此各個(gè)測(cè)試序列在結(jié)構(gòu)上必然保持一致,只需要在對(duì)每個(gè)序列輸入盤點(diǎn)標(biāo)志 / 匹配標(biāo)志/保留值(目標(biāo)數(shù)據(jù)域 000b~011b 表示盤點(diǎn)標(biāo)志,100b 表示匹配標(biāo)志,101b~111b 表示保留值)就可以完成測(cè)試序列的編寫。同時(shí)也保持了各個(gè)測(cè)試序列之間的相對(duì)獨(dú)立性。如圖 2 所示。

  4.2 命令數(shù)據(jù)域遍歷結(jié)構(gòu)的一致性

  在如前所述,清點(diǎn)功能遍歷數(shù)據(jù)域?yàn)?12 個(gè),如果按照常用的實(shí)現(xiàn)方式,數(shù)據(jù)域的個(gè)數(shù)就是實(shí)現(xiàn)遍歷的程序中循環(huán)嵌套的個(gè)數(shù)。這種實(shí)現(xiàn)方式,優(yōu)點(diǎn)是簡(jiǎn)單,但循環(huán)嵌套次數(shù)過多,導(dǎo)致程序結(jié)構(gòu)復(fù)雜,調(diào)試不方便。

  基于以上原因,在實(shí)際開發(fā)過程中,采用了兩層循環(huán)嵌套的方式,將循環(huán)的數(shù)據(jù)域分為 3 組。一是主循環(huán)數(shù)據(jù)域 a,即 Select 命令的動(dòng)作數(shù)據(jù)域;二是次循環(huán)數(shù)據(jù)域 b,范圍是 Select 命令的動(dòng)作/存儲(chǔ)區(qū)/指針/長(zhǎng)度/截?cái)鄶?shù)據(jù)域以及 Query 命令的 DR/M/Trext/Sel/Session/ 目標(biāo)數(shù)據(jù)域;三是最底層數(shù)據(jù)域 c,即時(shí)隙計(jì)數(shù)器數(shù)據(jù)域 Q。實(shí)現(xiàn)流程圖如圖 3 所示,Index() 表示命令參數(shù)數(shù)據(jù)域?qū)?yīng)的索引值,Data()表示命令參數(shù)數(shù)據(jù)域的數(shù)值,Max() 表示命令參數(shù)數(shù)據(jù)域?qū)?yīng)的最大值。

  上述程序流程的實(shí)現(xiàn),使得清點(diǎn)功能的各個(gè)測(cè)試序列之間的結(jié)構(gòu)基本一致,單個(gè)測(cè)試序列內(nèi)部遍歷結(jié)構(gòu)復(fù)用性強(qiáng)。由于已經(jīng)具備超高頻標(biāo)簽符合性測(cè)試的程序,因此,將整個(gè)測(cè)試序列的實(shí)現(xiàn)過程集中于解析遍歷清點(diǎn)功能的響應(yīng),也就是解析 ACK 命令與 GetRN 命令的響應(yīng),產(chǎn)生預(yù)期結(jié)果的實(shí)現(xiàn)中,使得樣品驗(yàn)證人員的精力更多的關(guān)注于如何去實(shí)現(xiàn)標(biāo)簽的測(cè)試,如何能更高效的實(shí)現(xiàn)自動(dòng)化測(cè)試序列,而不是測(cè)試序列實(shí)現(xiàn)的本身。

  5 結(jié)語

  本測(cè)試序列的開發(fā)的初衷是,既要高效地完成測(cè)試項(xiàng)最為復(fù)雜的清點(diǎn)功能遍歷測(cè)試,又要對(duì)后續(xù)其他命令的功能測(cè)試提供參考。因此,選取TestStand,一方面解決了高速、多線程、大吞吐量的問題,另一方面實(shí)現(xiàn)了測(cè)試序列以及遍歷命令數(shù)據(jù)域的結(jié)構(gòu)一致性。該功能的引進(jìn)/使用對(duì)當(dāng)前測(cè)試及后續(xù)測(cè)試質(zhì)量與效率的提高均有積極作用,大大降低了以往手動(dòng)測(cè)試及半自動(dòng)化測(cè)試的耗時(shí),有效地提高了測(cè)試效率。

  表 3 列舉了手動(dòng)測(cè)試、半自動(dòng)化測(cè)試和本文設(shè)計(jì)的自動(dòng)化測(cè)試這三種測(cè)試方式在測(cè)試時(shí)間、測(cè)試項(xiàng)目完成程度、測(cè)試效率方面的對(duì)比。

  本軟件充分運(yùn)用了 TestStand 的優(yōu)勢(shì),解決了清點(diǎn)功能驗(yàn)證耗時(shí)長(zhǎng)、效率低的問題,提高了清點(diǎn)功能的自動(dòng)化驗(yàn)證的效率。本文可以為超高頻電子標(biāo)簽產(chǎn)品功能的全面驗(yàn)證工作提供思路和參考,為搭建超高頻電子標(biāo)簽樣品驗(yàn)證的自動(dòng)化測(cè)試平臺(tái)奠定了基礎(chǔ)。