在通用自動(dòng)測試儀上實(shí)現SPI 存儲器測試的方法研究
串行存儲器大多采用I2C 或SPI 接口進(jìn)行訪(fǎng)問(wèn),其中以SPI 接口的芯片最多,主要包括EEPROM、FLASH memory、FRAM等類(lèi)型。與并行存儲器相比,串行存儲器引腳少、體積小、易于擴展、與單片機或控制器連接簡(jiǎn)單、工作可靠,而且大多擁有掉電保持數據的特性,所以越來(lái)越多地用在各類(lèi)電子產(chǎn)品和工業(yè)測控系統中。但SPI 存儲器所有輸入的內容全都由一個(gè)管腳完成,通用自動(dòng)測試儀無(wú)法分辨這些信息類(lèi)型,因此不便于實(shí)現地址自動(dòng)算法產(chǎn)生,這給使用通用測試儀測試該類(lèi)芯片帶來(lái)了很大難度。本文首先介紹了SPI 類(lèi)串行接口存儲器的結構,進(jìn)而以芯片AT25HP512 為例,講述了其工作原理及測試難點(diǎn),最后提出了一種能應用于通用自動(dòng)測試儀的SPI 存儲器測試方法。
1 SPI 串行接口存儲器的基本結構
1.1 SPI 總線(xiàn)的結構
SPI 是一種通用串行接口總線(xiàn),字長(cháng)為8 位或16 位,SPI接口利用SCK、SI 和SO 三根線(xiàn)進(jìn)行數據讀/ 寫(xiě)。其中,SCK 為時(shí)鐘信號,用于對數據傳輸的速率進(jìn)行同步,在每一個(gè)SCK 周期,有一位數據移入或移出串行存儲器。SI 為串行數據輸入,用于輸入命令和數據。SO 為串行數據輸出,用于輸出狀態(tài)和數據。本文將以一種典型的SPI EEPROM AT25HP512 為例分析其結構及訪(fǎng)問(wèn)方式。圖1 為AT25HP512 芯片的管腳定義,其他SPI存儲器通常也都有類(lèi)似的管腳。

1.2 AT25HP512 的讀/ 寫(xiě)方式
AT25HP512 容量64K 位,采取分頁(yè)存儲的結構,每頁(yè)128 位,既可隨機讀/ 寫(xiě)數據,又可以以序列方式連續讀/ 寫(xiě)。序列讀操作一旦執行,位地址可以自動(dòng)增加,直到讀出所有單元;序列寫(xiě)操作一旦執行,可以完成一頁(yè)的128 位寫(xiě)。圖2 為AT25HP512頁(yè)寫(xiě)操作的時(shí)序圖,利用該特性可快速完成數據的訪(fǎng)問(wèn)。

2 使用自動(dòng)測試儀測試SPI 存儲器的難點(diǎn)
2.1 數字集成電路自動(dòng)測試儀的特點(diǎn)
自動(dòng)測試儀(ATE),用于檢測集成電路功能的完整性。標準的數字ATE 可針對專(zhuān)用及通用數字電路提供高速、高通道數字控制、測試能力。芯片的測試程序通常會(huì )有許多個(gè)功能測試向量以測試不同的功能模塊,這些向量都會(huì )被加載ATE 內存中,以順序或并發(fā)方式被執行。在實(shí)際生產(chǎn)過(guò)程中,由于受ATE 內存大小(即圖形深度)的限制,如果向量過(guò)長(cháng),超過(guò)測試設備圖形深度,就要加載一段向量,測試一段向量,再加載一段向量,再測試。該做法會(huì )使測試成本大為增加,因此往往不允許多次加載,所有測試向量需要一次性加載或由算法自動(dòng)產(chǎn)生,以保證測試的連續性。
2.2 存儲器測試特點(diǎn)
存儲器雖然邏輯結構簡(jiǎn)單,但容量通常較大,而且由于存儲器各個(gè)存儲單元有可能出現相互打擾,即某個(gè)存儲單元的數據變化可能引起其他單元的變化,因此存儲器需要反復讀/ 寫(xiě)的測試,測試向量的總長(cháng)度往往超過(guò)ATE 的測試圖形深度。針對存儲器這種結構固定、可連續訪(fǎng)問(wèn)、測試算法固定的器件,需要ATE 能根據算法自動(dòng)產(chǎn)生測試圖形,用比較短的測試向量,按照固定地址產(chǎn)生邏輯自動(dòng)完成有規律的地址變化,實(shí)現連續讀/寫(xiě)操作。
通用ATE 一般都具備一組或多組地址產(chǎn)生器(APG),該單元模塊可完成地址保持(HOLD)、自加(INC)、自減(DEC)等操作,使用這些標準邏輯,就可以實(shí)現絕大多數的存儲器測試算法。以最常用的棋盤(pán)格測試算法為例。

如果順序寫(xiě)測試程序,需要4N 的測試向量深度(N 為存儲器容量),但是用測試算法,每一步流程只需要幾條向量,全部只需要用幾十條向量就能完成,具體方法如圖3 所示??梢?jiàn)利用自動(dòng)地址產(chǎn)生邏輯,可以實(shí)現極大深度的存儲器測試。
2.3 SPI 存儲器測試難點(diǎn)
上述方法可用于多數并行存儲器,但難以用于SPI 存儲器。
主要原因為:
(1)SPI 存儲器沒(méi)有獨立的數據總線(xiàn)和地址總線(xiàn),所有輸入都由SI 這一根線(xiàn)完成,SI 除要發(fā)送地址外,還要發(fā)送數據和指令,無(wú)法獨立應用于地址操作,也就無(wú)法完成對地址的算法產(chǎn)生,如INC 等;
(2)SPI 總線(xiàn)通常應用8 位寄存器,為完成一個(gè)數據傳輸需要在8 個(gè)時(shí)鐘周期,由8 條向量串行執行,這就大大增加了向量的長(cháng)度。因此,盡管ATE 有足夠的數據寬度,卻往往受限于數據位的深度不足,無(wú)法完成測試。
3 SPI 存儲器的測試實(shí)現方法
首先,SCK 信號要按測試需求產(chǎn)生測試時(shí)鐘,~CS、~WP 和~HOLD 給出相應控制信號。
其次,為了利用了測試儀的通道寬度,減少測試向量的深度,需要將串行發(fā)送的數據以并行的方式存儲于測試儀中。多數通用測試儀都設計了并行轉串行的邏輯模塊,即在多個(gè)通道上并行輸入數據,通過(guò)系統指令完成轉換,由一個(gè)通道將數據發(fā)送出來(lái)。如果ATE 不具備該功能,也可由外部邏輯實(shí)現。
最后,要最大限度地應用測試儀的AGP 模塊地址自動(dòng)產(chǎn)生邏輯,將串行程序算法并行化處理,最終給出區別存儲器地址和其他輸入信息的控制邏輯。
3.1 棋盤(pán)格算法測試
以AT25HP512 棋盤(pán)格測試為例,串行SPI 存儲器測試可分為以下步驟。
(1)并行轉串行。存儲器待收發(fā)的數據和指令都以8 位并行的方式放置在內部寄存器中,因此要借助ATE 并行轉串行輸出功能,將8 個(gè)通道的數據從一個(gè)通道輸出。以并行轉串行指令PTOS 為例,PTOS 00000101,相當于從SI 引腳在8 個(gè)周期串行輸出0 0 0 0 0 1 0 1 ;
(2)將指令寄存的數據以8 位并行方式連接到測試通道上。
以讀狀態(tài)寄存器命令為例,SI 要輸出的數據連接到不同通道,再由并轉串邏輯電路輸出。讀出的結果與預期值進(jìn)行比較。

表1 相當于執行了讀狀態(tài)寄存器命令RDSR,本例中讀回的預期結果為L(cháng)LLLLLLL.
(3)設置狀態(tài)寄存器。發(fā)送寫(xiě)狀態(tài)寄存器命令WRSR,設置存儲器為寫(xiě)READY 狀態(tài)。
(4)將8 位地址線(xiàn)連接到AGP 相關(guān)的通道上。
(5)為了能在SI 引腳上既能輸出地址又能輸出指令和數據,要設置多路選擇單元,完成切換。切換控制位可以由通道位完成。圖4 為測試通道控制的寄存器輸入切換,控制位為0,SI引腳切換至地址線(xiàn),控制位為1,SI 引腳切換至數據線(xiàn)和指令線(xiàn)。

應用該開(kāi)關(guān),就可以把需要使用算法的地址和不需要利用算法的指令和數據在通道上分開(kāi)。
(6) 完成向存儲單元寫(xiě)入數據的操作。表2 實(shí)現了連續寫(xiě)一頁(yè)的函數PAGEWRITE 操作,從0 地址開(kāi)始連續進(jìn)行128 個(gè)寫(xiě)操作,把00000000 和11111111 的棋盤(pán)格數據交替寫(xiě)入一頁(yè)中。

(7) 利用AGP,實(shí)現頁(yè)地址遞增操作。每一頁(yè)寫(xiě)都調用PAGEWRITE,每完成一次頁(yè)寫(xiě)操作,頁(yè)地址自動(dòng)加1,執行下一頁(yè)的寫(xiě)操作,直到全部頁(yè)的寫(xiě)操作完成。表3 為每調用一次單頁(yè)寫(xiě),頁(yè)地址自動(dòng)加1 的操作。
(8) 讀并檢驗結果操作。與寫(xiě)操作類(lèi)似,給出讀指令和起始地址后,可連續讀出所有單元。

以上方法,首先完成了逐頁(yè)的連續寫(xiě)操作,頁(yè)地址可自動(dòng)遞增,每完成一次正向棋盤(pán)格(按0101 格式)寫(xiě)操作后,再以0 地址為起始地址,完成整個(gè)器件地址自動(dòng)遞增的連續讀操作。然后再按照相同的方法執行一次反向棋盤(pán)格(按1010 格式)的寫(xiě)、讀,從而實(shí)現完整的棋盤(pán)格測試。
3.2 其他測試算法
在實(shí)際工程中應用最多的是存儲器測試法算法復雜度為N的測試算法,除棋盤(pán)格測試法外,較為常用的還有齊步法、列條圖形法和前進(jìn)后退法等。應用這些算法測試SPI 存儲器都與棋盤(pán)格測試類(lèi)似,只是AGP 自動(dòng)產(chǎn)生算法的方式不同,本文不再詳述。
4 結語(yǔ)
本文分析了SPI 串行存儲器的結構和訪(fǎng)問(wèn)方式,利用通用自動(dòng)測試儀的并行轉串行指令,增加了選通控制邏輯,為ATMEL公司的SPI 串行存儲器AT25HP512 編寫(xiě)了測試程序,該程序最終以二進(jìn)制代碼的形式順序存儲于測試儀中。實(shí)驗證明,該方法可以克服SPI 存儲器地址算法自動(dòng)產(chǎn)生的困難,對該類(lèi)芯片測試具有通用性。
評論