ARM Cortex-M3 微處理器測(cè)試方法研究與實(shí)現(xiàn)
摘要:作為32 位RISC 微處理器主流芯片,ARM 芯片得到長(zhǎng)足發(fā)展和廣泛應(yīng)用.因而,ARM 芯片的測(cè)試需求更加強(qiáng)勁的同時(shí),測(cè)試工作量在加大,測(cè)試復(fù)雜度也在增加.本文給出了基于ARM Cortex-M3 的微處理器測(cè)試方法,該方法也可用于類似結(jié)構(gòu)的微處理器測(cè)試.
0 引言
隨著半導(dǎo)體技術(shù)的發(fā)展,集成電路制程工藝從深亞微米發(fā)展到納米級(jí),晶體管集成度的大幅提高使得芯片復(fù)雜度增加,單個(gè)芯片的功能越來(lái)越強(qiáng).二十世紀(jì)90 年代ARM 公司成立于英國(guó)劍橋,主要出售芯片設(shè)計(jì)技術(shù)的授權(quán).采用ARM 技術(shù)知識(shí)產(chǎn)權(quán)( IP 核)的微處理器,即ARM 微處理器,已遍及工業(yè)控制.消費(fèi)類電子產(chǎn)品.通信系統(tǒng).網(wǎng)絡(luò)系統(tǒng).無(wú)線系統(tǒng)等各類產(chǎn)品市場(chǎng),基于ARM 技術(shù)的微處理器應(yīng)用約占據(jù)了32 位RISC 微處理器七成以上的市場(chǎng)份額.ARM 芯片的廣泛應(yīng)用和發(fā)展也給測(cè)試帶來(lái)了挑戰(zhàn),集成電路測(cè)試一般采用實(shí)際速度下的功能測(cè)試,但半導(dǎo)體技術(shù)的發(fā)展使得測(cè)試開(kāi)發(fā)工程資源按幾何規(guī)律增長(zhǎng),自動(dòng)測(cè)試設(shè)備(ATE)的性能趕不上日益增加的器件I/O 速度的發(fā)展,同時(shí)也越來(lái)難以滿足ARM 等微處理器測(cè)試所用的時(shí)序信號(hào)高分辨率要求,因而必須不斷提高自動(dòng)測(cè)試設(shè)備的性能,導(dǎo)致測(cè)試成本不斷攀升.此外,因?yàn)锳RM 芯片的復(fù)雜度越來(lái)越高,為對(duì)其進(jìn)行功能測(cè)試,人工編寫測(cè)試向量的工作量是極其巨大的,實(shí)際上一個(gè)ARM 芯片測(cè)試向量的手工編寫工作量可能達(dá)到數(shù)十人年甚至更多.本文針對(duì)ARM Cortex 內(nèi)核的工作原理,提出了一種高效的測(cè)試向量產(chǎn)生方法,并在BC3192 測(cè)試系統(tǒng)上實(shí)現(xiàn)了對(duì)ARMCortex-M3 內(nèi)核微處理器的測(cè)試.
1 微處理器測(cè)試方法
集成電路測(cè)試主要包括功能測(cè)試和直流參數(shù)的測(cè)試,微處理器的測(cè)試也包括功能和直流參數(shù)測(cè)試兩項(xiàng)內(nèi)容.微處理器包含豐富的指令集,而且微處理器種類繁多,不同微處理器之間很難有統(tǒng)一的測(cè)試規(guī)范.為了使測(cè)試具有通用性,我們有必要對(duì)微處理器的測(cè)試建立一個(gè)統(tǒng)一的模型,如圖1 所示.芯片測(cè)試系統(tǒng)為被測(cè)微處理器提供電源和時(shí)鐘,并能夠模擬微處理器的仿真通信接口來(lái)控制微處理器工作,同時(shí)配合仿真時(shí)序施加激勵(lì)向量,從而達(dá)到測(cè)試目的.
按微處理器仿真通信接口大致分兩類,一類是具有仿真接口(如JTAG)的微處理器,一類是沒(méi)有仿真接口的微處理器,對(duì)于配備類似JTAG 接口的微處理器,測(cè)試儀通過(guò)仿真一個(gè)JTAG 接口對(duì)被測(cè)芯片進(jìn)行功能或參數(shù)測(cè)試.沒(méi)有配備仿真調(diào)試接口的芯片,可以根據(jù)芯片的外部接口和引導(dǎo)方式選擇測(cè)試模型.
1.1 跟蹤調(diào)試模式
大多數(shù)的微處理器都提供了跟蹤調(diào)試接口,例如最常用的JTAG 接口,Cortex-M3 內(nèi)核除了支持JTAG 調(diào)試外,還提供了專門的指令追蹤單元(ITM).JTAG(Joint Test Action Group,聯(lián)合測(cè)試行動(dòng)小組)是一種國(guó)際標(biāo)準(zhǔn)測(cè)試協(xié)議(IEEE 1149.1 兼容),主要用于芯片內(nèi)部測(cè)試.現(xiàn)在多數(shù)的高級(jí)器件都支持JTAG協(xié)議,如ARM.DSP.FPGA 器件等.標(biāo)準(zhǔn)的JTAG 接口是4 線:
TMS.TCK.TDI.TDO,分別為模式選擇.時(shí)鐘.數(shù)據(jù)輸入和數(shù)據(jù)輸出線.JTAG 最初是用來(lái)對(duì)芯片進(jìn)行測(cè)試的,因此使用JTAG 接口測(cè)試微處理器具有很多優(yōu)點(diǎn).
用JTAG 接口對(duì)微處理器進(jìn)行仿真測(cè)試,是通過(guò)測(cè)試系統(tǒng)用測(cè)試矢量模擬一個(gè)JTAG 接口實(shí)現(xiàn)對(duì)微處理器的仿真控制,其核心是狀態(tài)機(jī)的模擬,圖2 所示為測(cè)試系統(tǒng)使用的JTAG TAP 控制器的狀態(tài)轉(zhuǎn)換圖.
通過(guò)測(cè)試儀來(lái)模擬狀態(tài)轉(zhuǎn)換就可以實(shí)現(xiàn)JTAG 通信控制.
JTAG 在物理層和數(shù)據(jù)鏈路層具有統(tǒng)一的規(guī)范,但針對(duì)不同的芯片仿真測(cè)試協(xié)議可能略有差異.為了使測(cè)試模型具有通用性,我們對(duì)測(cè)試模型的JTAG 接口做了一個(gè)抽象層,如圖3 所示.圖中抽象層將類型多樣的控制函數(shù)轉(zhuǎn)化成芯片能識(shí)別的數(shù)據(jù)流來(lái)控制被測(cè)芯片的工作狀態(tài).
1.2 引導(dǎo)模式/FLASH 編程模式
針對(duì)沒(méi)有配備仿真調(diào)試接口的微處理器,可以利用引導(dǎo)功能實(shí)現(xiàn)對(duì)微處理器的測(cè)試.因沒(méi)有配備仿真調(diào)試功能,不能實(shí)現(xiàn)仿真測(cè)試.因此針對(duì)這一類的微處理器測(cè)試中,需要在芯片中加載測(cè)試代碼.大多數(shù)的微處理器芯片都具有上電引導(dǎo)功能,可以利用引導(dǎo)功能將測(cè)試代碼加載到微處理器中,進(jìn)而實(shí)現(xiàn)功能和直流參數(shù)測(cè)試.而對(duì)于內(nèi)部配備FLASH 的微處理器可以先將測(cè)試代碼下載到片內(nèi)FLASH 中,以實(shí)現(xiàn)對(duì)微處理器的功能和參數(shù)測(cè)試.
為了實(shí)現(xiàn)對(duì)微處理器的測(cè)試控制,通常,測(cè)試系統(tǒng)利用微處理器的片上通信接口與片上測(cè)試程序通信,互相配合完成功能和參數(shù)測(cè)試.
2 ARM Cortex-M3 的測(cè)試
2.1 ARM Cortex-M3 內(nèi)核簡(jiǎn)介
ARM Cortex-M 系列微處理器主要用于低成本和低功耗領(lǐng)域,如智能測(cè)量.人機(jī)接口設(shè)備.汽車和工業(yè)控制系統(tǒng).大型家用電器.消費(fèi)性產(chǎn)品和醫(yī)療器械等領(lǐng)域.圖4 為Cortex-M 系列微處理器的簡(jiǎn)要框圖.
ARM Cortex-M3 內(nèi)核搭載了若干種調(diào)試相關(guān)的特性.
最主要的就是程序執(zhí)行控制,包括停機(jī)(halting).單步執(zhí)行(stepping).指令斷點(diǎn).數(shù)據(jù)觀察點(diǎn).寄存器和存儲(chǔ)器訪問(wèn).性能速寫(profiling)以及各種跟蹤機(jī)制.Cortex-M3 的調(diào)試系統(tǒng)基于ARM 最新的CoreSight 架構(gòu),雖然內(nèi)核本身不再含有JTAG 接口,但是提供了調(diào)試訪問(wèn)接口(DAP)的總線接口.通過(guò)DAP 可以訪問(wèn)芯片的寄存器,也可以訪問(wèn)系統(tǒng)存儲(chǔ)器,并且可以在內(nèi)核運(yùn)行的時(shí)候訪問(wèn),這就對(duì)芯片的測(cè)試提供了接口支持.集成Cortex-M3 內(nèi)核的微處理器一般提供一個(gè)調(diào)試端口(DP)與DAP 相連,目前可用的調(diào)試端口包括SWJ〥P,既支持傳統(tǒng)的JTAG 調(diào)試,也支持新的串行線調(diào)試協(xié)議.Cortex-M3 內(nèi)核還能掛載一個(gè)嵌入式跟蹤宏單元(ETM).ETM 可以不斷地發(fā)出跟蹤信息,這些信息通過(guò)跟蹤端口接口單元(TPIU)送到內(nèi)核的外部,對(duì)于外部集成再跟蹤信息分析儀的ARM 芯片,可把TIPU 輸出的已執(zhí)行指令信息捕捉到,并且送給芯片測(cè)試系統(tǒng).
2.2 測(cè)試向量生成
用自動(dòng)測(cè)試設(shè)備(ATE)測(cè)試ARM 芯片是一種傳統(tǒng)的測(cè)試技術(shù),其優(yōu)點(diǎn)是可以靈活編制測(cè)試向量,專注于應(yīng)用相關(guān)的功能模塊和參數(shù).但是由于ARM 芯片的功能與應(yīng)用有相當(dāng)?shù)膹?fù)雜性,因此對(duì)測(cè)試系統(tǒng)所具有的能力也要求較高.這就要求測(cè)試設(shè)備本身必須要具備測(cè)試各種不同功能模塊的能力,包含對(duì)邏輯.模擬.內(nèi)存.高速或高頻電路的測(cè)試能力等等.同時(shí)測(cè)試系統(tǒng)最好是每個(gè)測(cè)試通道都有自己的獨(dú)立測(cè)試能力,避免采用資源共享的方式,以便能夠靈活運(yùn)用在各種不同的測(cè)試功能上.所以常規(guī)的ARM 芯片測(cè)試設(shè)備往往要求相當(dāng)高的配置才能應(yīng)對(duì)測(cè)試需求.
測(cè)試的含義非常廣泛,就ARM 芯片測(cè)試而言,可以定義多種類型的測(cè)試,不同類型的測(cè)試需要產(chǎn)生不同類型的測(cè)試向量.而測(cè)試向量生成的方法,雖然可以人工編制,但多數(shù)情況需要由測(cè)試向量生成工具(ATPG)生成,才能產(chǎn)生比較完備的測(cè)試集.本文介紹的ARM 芯片測(cè)試方法,借助對(duì)應(yīng)的ARM 芯片開(kāi)發(fā)工具產(chǎn)生測(cè)試代碼,再由專用的測(cè)試向量生成工具生成測(cè)試向量.這種方法的優(yōu)點(diǎn)是能針對(duì)ARM 芯片應(yīng)用開(kāi)發(fā)人員關(guān)心的測(cè)試集合產(chǎn)生測(cè)試向量,因而比較高效,測(cè)試成本也能控制在比較低的水平上.此外,可以借助大量的ARM 芯片應(yīng)用軟件來(lái)轉(zhuǎn)碼,能大幅減少工作量.缺點(diǎn)是不容易用算法來(lái)實(shí)現(xiàn)自動(dòng)生成完備的測(cè)試代碼.
圖5 為ARM 芯片測(cè)試向量生成器.測(cè)試代碼一般可以從ARM 芯片開(kāi)發(fā)例程中獲得,測(cè)試向量通過(guò)編譯器編譯成ARM 芯片可執(zhí)行代碼,然后與激勵(lì)向量和期望向量混合生成完整的ARM 芯片測(cè)試向量.ARM 芯片測(cè)試向量生成工具通過(guò)時(shí)間參數(shù)來(lái)確定測(cè)試代碼.激勵(lì)向量與期望向量之間的時(shí)序關(guān)系,ARM 芯片時(shí)間參數(shù)可從芯片手冊(cè)中獲得.測(cè)試向量生成后,通過(guò)BC3192 集成開(kāi)發(fā)環(huán)境下載到測(cè)試系統(tǒng)圖形卡中,啟動(dòng)測(cè)試程序,激勵(lì)向量依序施加到被測(cè)ARM 芯片的輸入端口,同時(shí)對(duì)輸出端進(jìn)行監(jiān)測(cè)比較獲得測(cè)試結(jié)果.綜上,測(cè)試向量的產(chǎn)生是ARM 芯片測(cè)試的核心,本文所述測(cè)試向量生成器通過(guò)輸入ARM 芯片可執(zhí)行代碼和芯片時(shí)間參數(shù)來(lái)產(chǎn)生測(cè)試邏輯,具有易用.高效的特點(diǎn),現(xiàn)已用于多個(gè)ARMCortex 內(nèi)核微處理器的測(cè)試中.
3 結(jié)論
本文通過(guò)分析ARM Cortex-M3 內(nèi)核的工作原理和跟蹤調(diào)試方法,利用通用的ARM 集成開(kāi)發(fā)環(huán)境,結(jié)合BC3192V50 測(cè)試系統(tǒng)的測(cè)試向量生成器,能夠快速高效產(chǎn)生基于ARM Cortex-M3 內(nèi)核的微處理器測(cè)試向量,進(jìn)而完成功能和直流參數(shù)測(cè)試.本案所述方法同樣適于其他微處理器的測(cè)試.