999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種MCU的測試解決方案

2017-03-16 03:40:48元,高
電子測試 2017年2期
關(guān)鍵詞:指令單片機(jī)功能

陳 元,高 劍

(集成電路測試技術(shù)北京市重點(diǎn)實(shí)驗(yàn)室,北京自動測試技術(shù)研究所,北京,100088)

一種MCU的測試解決方案

陳 元,高 劍

(集成電路測試技術(shù)北京市重點(diǎn)實(shí)驗(yàn)室,北京自動測試技術(shù)研究所,北京,100088)

對MCU進(jìn)行測試時,如何高效生成測試向量是測試的難點(diǎn)。文章以8位MCU STC12C5410AD為例,詳細(xì)地介紹了通過使用仿真環(huán)境,以C語言編寫功能測試程序,完成芯片寄存器控制和主要邏輯單元運(yùn)算,然后使用集成電路測試系統(tǒng)直接生成測試向量的解決方案。使用此解決方案,可根據(jù)測試要求,在較短時間內(nèi)開發(fā)出MCU測試程序,節(jié)約測試開發(fā)成本。

單片機(jī);MCU測試;測試向量

0 引 言

MCU(Micro Controller Unit)微控制單元,又稱單片微型計(jì)算機(jī),簡稱單片機(jī),是隨著大規(guī)模集成電路的出現(xiàn)和發(fā)展,將計(jì)算機(jī)的CPU、RAM、ROM、定時器和多種I/O 接口集成在一片芯片上,形成的芯片級計(jì)算機(jī),為不同的應(yīng)用場合做不同組合控制[1]。它具有體積小、使用靈活方便、成本低、易于產(chǎn)品化、抗干擾能力強(qiáng)等特點(diǎn),在工業(yè)控制、智能儀表、外設(shè)控制、家用電器、機(jī)器人、軍事裝置等方面得到了廣泛地應(yīng)用。MCU的廣泛應(yīng)用和發(fā)展也給測試帶來了挑戰(zhàn),集成電路測試一般采用實(shí)際速度下的功能測試,但半導(dǎo)體技術(shù)的發(fā)展使得測試開發(fā)工程資源按幾何規(guī)律增長[2],測試成本也隨之不斷攀升。此外,由于MCU 芯片的復(fù)雜度越來越高,人工編寫測試向量的工作量是極其巨大的。

本文以STC(宏晶科技)的STC12C5410AD 8位MCU為例,使用在仿真環(huán)境下編程生成測試向量的方法開發(fā)測試程序。首先以對芯片主要功能的應(yīng)用為目的,編寫了C語言程序;其次使用芯片開發(fā)器將編譯無誤的程序作為測試代碼,將測試代碼轉(zhuǎn)化為矢量向量并下載到測試系統(tǒng)圖形板卡中;最后將芯片通過適配器與測試系統(tǒng)相連,對芯片施加激勵向量,同時從輸出端監(jiān)測測試結(jié)果,若測試結(jié)果與預(yù)期的響應(yīng)向量一致,則說明激勵與響應(yīng)向量和實(shí)際MCU運(yùn)行時的輸入輸出電平狀態(tài)變化相一致,從而實(shí)現(xiàn)了對STC12C5410AD的測試。使用此方法對MCU進(jìn)行測試開發(fā),能針對MCU芯片應(yīng)用開發(fā)人員關(guān)心的測試集合產(chǎn)生測試向量,高效并節(jié)約開發(fā)時間,可較好的控制測試成本。

1 MCU的測試方法簡述

數(shù)字IC的測試主要包括功能測試和直流參數(shù)測試兩個方面[3]。在MCU測試中,由于直流參數(shù)測試方法比較固定且簡單,而功能測試中測試向量的生成是MCU測試的難點(diǎn),所以本文著重介紹MCU功能測試中測試向量的生成。

1.1傳統(tǒng)方法

1.1.1 偽隨機(jī)測試向量生成法

偽隨機(jī)測試向量生成法經(jīng)歷了三個階段的發(fā)展:簡單無系統(tǒng)的隨機(jī)測試向量生成階段,復(fù)雜約束模型和語言增強(qiáng)正向制導(dǎo)的隨機(jī)測試向量生成階段及覆蓋率驅(qū)動的測試向量生成階段。這類方法主要用于IC設(shè)計(jì)驗(yàn)證,在成測中較少直接使用,一般會通過借鑒或結(jié)合此方法的某些特點(diǎn),將程序改進(jìn)為更適合具體測試要求的測試向量。可以說偽隨機(jī)測試向量生成法對成測來說是一種啟發(fā)性的方法。

1.1.2 確定性測試向量生成法

采用確定性測試向量生成法可根據(jù)各種故障模型測試不同的模塊, 包括中央處理單元、RAM 、中斷/定時系統(tǒng)等等。用這種方法編寫的測試程序通常包括成千上萬條指令, 將指令翻譯成測試向量的工作非常繁瑣和重復(fù)。雖然這種方式可以很好地把握測試的進(jìn)度和針對性, 但由于需要逐條翻譯指令、逐行編寫測試代碼,實(shí)際開發(fā)測試程序的難度很大[4]。

1.1.3 學(xué)習(xí)法測試向量生成法

學(xué)習(xí)法測試向量生成法是汲取了偽隨機(jī)測試向量生成法和確定性測試向量生成法各自優(yōu)點(diǎn)的一種方法,是通過使用硬件學(xué)習(xí)功能的思路開發(fā)的一種測試向量生成方法。應(yīng)用此方法首先要對單片機(jī)搭建最小系統(tǒng),如適配器上除了被測器件,一般還包括EEPROM和RAM及數(shù)據(jù)鎖存器等,這些器件及構(gòu)成的外圍電路是用于輔助生成測試代碼的。首先ATE為適配器上所有元器件提供電源、接地及其他必要的信號,使DUT能穩(wěn)定地工作在某種狀態(tài)。其次,DUT與EEPROM及RAM之間有數(shù)據(jù)交換,同時這里的數(shù)據(jù)被ATE監(jiān)控,即DUT所有的輸入輸出數(shù)據(jù)都會被ATE記錄下來。在軟件、硬件的配合與支持下,DUT運(yùn)行在EEPROM中的檢測程序,由ATE記錄所有的數(shù)據(jù)(高、低電平)。DUT工作時的外部時鐘由ATE按照要求給定,所以ATE記錄數(shù)據(jù)也是嚴(yán)格與DUT的工作時鐘同步。最后通過整理,包括區(qū)分輸入輸出信號、定義管腳等后期工作,就可以得到測試代碼[5]。學(xué)習(xí)法需要測試開發(fā)人員對芯片進(jìn)行系統(tǒng)的學(xué)習(xí),從而設(shè)計(jì)故障模型和用于輸入端的測試代碼,且輸出端數(shù)據(jù)正確與否的判斷標(biāo)準(zhǔn)不明確。需要分析測試結(jié)果,不斷修改并裝載測試向量,逐行得到正確的測試向量集[6]。

1.2在仿真環(huán)境下編程生成測試向量的方法

使用C語言對MCU功能模塊的運(yùn)行進(jìn)行編程,借助對應(yīng)的MCU開發(fā)工具產(chǎn)生測試代碼,再由專用的測試向量生成器生成測試向量。測試向量生成后,通過自動測試系統(tǒng)的軟件開發(fā)環(huán)境下載到測試系統(tǒng)圖形卡中,啟動測試程序,激勵向量依序施加到被測MCU的輸入端口,同時對輸出端口進(jìn)行監(jiān)測比較獲得測試結(jié)果。測試向量生成器如圖1所示。

圖1 測試向量生成器

這種方法不苛刻地追求故障覆蓋率,能靈活地針對MCU芯片應(yīng)用開發(fā)人員關(guān)心的測試集合產(chǎn)生測試向量,因?yàn)楸容^高效,測試成本也能控制在比較低的水平上。

2 STC12C5410AD的測試

2.1 STC12C5410AD系列單片機(jī)簡介

STC12C5410AD系列單片機(jī)是宏晶科技生產(chǎn)的單時鐘/機(jī)器周期的高速/低功耗/超強(qiáng)抗干擾的新一代8051單片機(jī),指令代碼完全兼容傳統(tǒng)8051,但速度快8~12倍。

STC12C5410AD系列單片機(jī)的內(nèi)部結(jié)構(gòu)框圖如下圖所示。包含中央處理器(CPU)、運(yùn)算單元(算術(shù)邏輯單元ALU,累加器ACC,B寄存器)、程序存儲器(Flash)、數(shù)據(jù)存儲器(SRAM)、定時/計(jì)數(shù)器、中斷系統(tǒng)、UART串口、I/O接口、高速A/D轉(zhuǎn)換、SPI接口、PCA、看門狗及片內(nèi)R/C振蕩器和外部晶體振蕩電路等模塊。其主要功能包括CPU計(jì)算功能、指令系統(tǒng)功能、定時及中斷功能、串口及并口功能、程序和數(shù)據(jù)存儲、最小系統(tǒng)擴(kuò)展功能。

STC12C5410AD的主要功能與MCS-51系列單片機(jī)相同,但也有個別不同的結(jié)構(gòu)并有一些擴(kuò)展的功能。其中MCS-51系列中一些單片機(jī)需要使用片外程序存儲器,其外部總線結(jié)構(gòu)不同于STC12C5410AD,沒有P0口或ALE/~PROG允許地址鎖存輸出/編程脈沖輸入口、~PSEN外程序存儲器讀選通信號輸出口和~EA/ Vpp片內(nèi)、片外程序存儲器選擇輸出/編程電壓輸入口。

對擁有外部存儲器結(jié)構(gòu)的MCS-51系列單片機(jī),在系統(tǒng)上電后,會逐條從外部存儲器中讀取指令并運(yùn)行程序。CPU 開始向外部存儲器取指令時,地址鎖存允許信號 ALE 升高,8位地址/數(shù)據(jù)總線上的地址被設(shè)置到所要求的狀態(tài)。在 ALE 信號的下降沿,外部存儲器控制電路將該地址鎖存起來,從而達(dá)到把地址信號從地址/數(shù)據(jù)總線上分離出來的目的。隨后讀信號~RD 變低,這時候外部存儲器應(yīng)把有效數(shù)據(jù)提供到總線上,以便 MCU 讀入數(shù)據(jù)。當(dāng)~RD 升高時,數(shù)據(jù)被 MCU 取走[7]。這些管腳的狀態(tài)變化和P0口的數(shù)據(jù)輸出都可作為使用確定性測試向量生成法的測試依據(jù),測試系統(tǒng)模擬MCU取指令的方式為其發(fā)送指令和數(shù)據(jù),從而控制芯片進(jìn)行測試。

圖2 STC12C5410AD系列單片機(jī)的內(nèi)部結(jié)構(gòu)框圖

STC12C5410AD在執(zhí)行指令時,由于它沒有外部存儲器,也沒有P0或ALE/~PROG等管腳,總線結(jié)構(gòu)和CPU取指令的方式不同于上述片外存儲器結(jié)構(gòu)的MCS-51單片機(jī),若使用確定性測試向量生成法,則無法通過翻譯指令編寫測試代碼。此時,就需要使用不同于確定性測試向量生成法的方法對STC12C5410AD進(jìn)行指令功能的測試。

2.2測試STC12C5410AD

在仿真環(huán)境下使用C語言編程生成測試向量的方法測試STC12C5410AD的具體操作如以下步驟所示。

首先添加STC仿真驅(qū)動到keil軟件中并按要求編寫程序;其次,使用編程器將程序燒入MCU,由MCU測試向量生成器生成測試向量,通過BC3192V50集成開發(fā)環(huán)境下載到測試系統(tǒng)圖形卡中。最后,將MCU通過適配器與BC3192V50相連,啟動測試程序,激勵向量依序施加到被測MCU的輸入端口,同時對輸出端進(jìn)行監(jiān)測比較獲得測試結(jié)果。

在完成測試向量生成步驟的過程中,最核心的部分是對程序的設(shè)計(jì)。

MCU的主要功能是控制指令執(zhí)行和外設(shè)運(yùn)行。MCU執(zhí)行一條指令的流程可歸結(jié)為:取指令、譯碼、取操作數(shù)、執(zhí)行、保存結(jié)果。指令集存儲在CPU內(nèi)部,F(xiàn)lash負(fù)責(zé)存儲程序代碼和為MCU提供指令,SFR和RAM提供ALU所需的操作數(shù)并存儲ALU處理后的結(jié)果[8], ALU的功能是對數(shù)據(jù)進(jìn)行處理[9],包括對數(shù)據(jù)的運(yùn)算處理和傳送操作。外設(shè)部分的功能包括定時/計(jì)數(shù)器、中斷控制、UART串口、并行I/O口。設(shè)計(jì)功能測試程序控制指令執(zhí)行和外設(shè)運(yùn)行即可對CPU、Flash、SFR等模塊的功能進(jìn)行測試。

設(shè)計(jì)程序?yàn)槌朔ㄟ\(yùn)算和串口發(fā)送字符串?dāng)?shù)據(jù),生成測試代碼用以驗(yàn)證芯片主要功能。程序設(shè)計(jì)如下:

(1)串口初始化:設(shè)置系統(tǒng)時鐘,可使用片內(nèi)R/C振蕩器或者外接晶振,設(shè)置使用片內(nèi)R/C振蕩器時鐘,在5V單片機(jī)常溫下頻率約6MHz(XTAL1和XTAL2管腳浮空);設(shè)置時鐘是否分頻,要對時鐘分頻寄存器CLK_DIV進(jìn)行設(shè)定。設(shè)置串口的工作方式,即設(shè)置串行接口控制寄存器SCON。設(shè)置波特率發(fā)生器(可用定時器1作波特率發(fā)生器),需要設(shè)定TMOD和SMOD,確定波特率。再進(jìn)行啟動定時器,允許串行接口中斷,CPU開中斷。

(2)發(fā)送數(shù)據(jù)或字符串:等待前面的數(shù)據(jù)發(fā)送完成;數(shù)據(jù)送入累加器ACC(奇偶校驗(yàn)位P始終體現(xiàn)累加器ACC中的1的個數(shù)的奇偶性),根據(jù)P來設(shè)置奇偶校驗(yàn)位;奇偶位送TB8;數(shù)據(jù)由ACC送到UART數(shù)據(jù)寄存器SBUF中。發(fā)送字符串則需要檢測字符串結(jié)束標(biāo)志位后,發(fā)送當(dāng)前字符。

(3)中斷服務(wù)程序:發(fā)送/接收串口數(shù)據(jù)/字符串,響應(yīng)中斷后,RI/TI需要軟件清零。

(4)運(yùn)算:STC12C5410AD中的指令與MCS-51兼容。

設(shè)置進(jìn)行乘法運(yùn)算,用到MUL AB指令,即累加器ACC中的8位無符號二進(jìn)制數(shù)乘以B寄存器中的8位無符號二進(jìn)制數(shù),將乘積低8位送ACC累加器,高8位送B寄存器。如果乘積大于256,即高位B寄存器不為0,則OV置1;否則OV清0,CY總是清0。

使用Keil做乘法運(yùn)算編程,往往只需要利用乘法表達(dá)式來編譯,只要編譯通過Keil就會自動地尋找寄存器把運(yùn)行結(jié)果存放在里面。通常可編寫一個乘法表達(dá)式把乘積結(jié)果賦值給一個存儲單元[10]。

程序的基本流程圖如圖3所示。

圖3 生成器法程序流程圖

通過使用測試向量生成器,最終生成測試向量,可對MCU進(jìn)行功能測試。

3 測試實(shí)驗(yàn)

本文采用國產(chǎn)集成電路測試系統(tǒng)BC3192V50 對STC12C5410AD進(jìn)行了測試,具體的程序設(shè)計(jì)說明如下:

(1)串口初始化設(shè)置

設(shè)置使用片內(nèi)R/C振蕩器時鐘,時鐘不分頻時,CLK_ DIV=0x00。

設(shè)置串口以方式3工作,SCON=0xDA。

選擇定時器,TMOD = 0x20,即選擇定時器1為波特率發(fā)生器,定時方式為方式2。

設(shè)SMOD=1,電源控制寄存器PCON=0x80。

設(shè)TH1=TL1=0xFF。

所以,當(dāng)實(shí)時片內(nèi)振蕩器時鐘頻率為5.9MHz時,波特率=2 x 5.9MHz/32=357100 bps。

啟動定時器1,TR1=1。

允許串行接口中斷,ES=1。

CPU開放中斷,EA=1。

(2)發(fā)送數(shù)據(jù)或字符串設(shè)置

設(shè)置發(fā)送字符串“BJ TEST/n”,字符串可從TxD管腳按二進(jìn)制格式(低位在前)輸出,字符對應(yīng)的二進(jìn)制數(shù)如表1所示。

字符串的正確輸出測試了定時/計(jì)數(shù)器模塊、中斷控制模塊、UART串口模塊、CPU、Flash、ACC累加器和SBUF寄存器等。

表1 字符對應(yīng)二進(jìn)制數(shù)

(3)中斷服務(wù)程序設(shè)置

發(fā)送數(shù)據(jù),中斷響應(yīng)后,TI軟件清零。

(4)運(yùn)算設(shè)置

只需要利用乘法表達(dá)式來編譯,通過編譯即可。

判斷運(yùn)算結(jié)果是否正確,結(jié)果正確由并口輸出規(guī)定數(shù)據(jù),既測試了運(yùn)算所用到的CPU、ALU、ROM、Flash、ACC累加器和B寄存器,也測試了并口I/O功能。

圖4 TxD管腳輸出第一和第二個字符的波形圖

圖5 TxD管腳輸出第一至第六個字符的波形圖

4 結(jié)語

使用上述方法編制MCU測試程序,簡單易操作,可以縮短編制測試向量的時間,按照測試要求增加測試向量的故障覆蓋率,節(jié)省測試程序的開發(fā)成本。

[1]呂藝,張可.高效低成本的MCU測試解決方案[J]電子工業(yè)專用設(shè)備,2007(146):23-27.

[2]蔣常斌,生曉坤,李杰等.ARM Cortex-M3 微處理器測試方法研究[J]電子測試,2013(4):8,9,26.

[3]電子計(jì)量測試應(yīng)用手冊編委會.電子計(jì)量測試應(yīng)用手冊[M]北京:電子工業(yè)部電子計(jì)量測試研究中心站,1986.

[4]胡勇,李軒冕,賀志容.單片機(jī)測試向量生成技術(shù)研究[J]計(jì)算機(jī)與數(shù)字工程,2010(9):90-92,150.

[5]趙雪蓮,楊新濤,李坤.一種CPU測試程序的開發(fā)方法與實(shí)現(xiàn)[J]國外電子測量技術(shù),2006(2):37-41.

[6]趙雪蓮.微控制器測試向量生成方法的研究和實(shí)現(xiàn)[D]西南交通大學(xué),2006.

[7]席筱穎.8位MCU設(shè)計(jì)驗(yàn)證及測試向量故障覆蓋率分析[D]哈爾濱理工大學(xué),2007.

[8]姚土生.一款兼容MCS-51指令8位微控制器的研究與設(shè)計(jì)[D]西安電子科技大學(xué),2011.

[9]劉海濤.基于8位MCU核的智能編碼ASIC設(shè)計(jì)[D]電子科技大學(xué),2003.

[10]嚴(yán)克劍,張淼,黃先偉.單片機(jī)C語言編程中多位乘法運(yùn)算問題探討[J]廣東工業(yè)大學(xué)學(xué)報(bào),2006(12):23-26

MCU Test Solution

Chen Yuan,Gao Jian
(Beijing Key Laboratory of Integrated Circuit Testing Technology, Beijing Institute of Auto-Testing Technology, Beijing 100088, China)

How to quickly and efficiently generate the test pattern is a difficulty for MCU Test. This article introduces a test solution for STC12C5410AD 8-bit MCU, which can also be applied to test MCU with the similar structure. The solution of test is introduced in detail in this paper. C-language is applied in the programming for the control register and main logical operations in simulation environment first, and then the test vectors are generated directly by ATE. By this solution, MCU test program can be developed in a relatively short period of time according to the test requirements.

MCU; MCU test; test vectors

北京市自然科學(xué)基金委員會-北京市科學(xué)技術(shù)研究院聯(lián)合資助項(xiàng)目(資助編號:L150009)

陳元,學(xué)士,主要研究方向?yàn)閮x器與測試技術(shù)。

猜你喜歡
指令單片機(jī)功能
聽我指令:大催眠術(shù)
也談詩的“功能”
中華詩詞(2022年6期)2022-12-31 06:41:24
基于單片機(jī)的SPWM控制逆變器的設(shè)計(jì)與實(shí)現(xiàn)
電子制作(2019年13期)2020-01-14 03:15:28
基于單片機(jī)的層次漸變暖燈的研究
電子制作(2019年15期)2019-08-27 01:12:10
基于單片機(jī)的便捷式LCF測量儀
電子制作(2019年9期)2019-05-30 09:42:02
ARINC661顯控指令快速驗(yàn)證方法
LED照明產(chǎn)品歐盟ErP指令要求解讀
電子測試(2018年18期)2018-11-14 02:30:34
關(guān)于非首都功能疏解的幾點(diǎn)思考
Microchip推出兩個全新PIC單片機(jī)系列
中西醫(yī)結(jié)合治療甲狀腺功能亢進(jìn)癥31例
主站蜘蛛池模板: 亚洲国产日韩在线成人蜜芽| 午夜日本永久乱码免费播放片| 亚洲精品福利视频| a级毛片网| 午夜啪啪福利| 九九九精品视频| 国产精品林美惠子在线播放| 免费在线看黄网址| 国产精品对白刺激| 综合亚洲网| 国产一区二区三区免费| 国产夜色视频| 三上悠亚在线精品二区| 国产菊爆视频在线观看| 亚洲欧洲日韩久久狠狠爱| 国产va在线观看| 性做久久久久久久免费看| 国产精品久久久久久久久| 亚洲综合专区| 亚洲欧州色色免费AV| 在线日韩一区二区| 国产精品一线天| 亚洲五月激情网| 国产精品区网红主播在线观看| 久久精品中文字幕免费| 亚洲欧美自拍中文| jizz在线观看| 亚洲第一福利视频导航| 国产幂在线无码精品| 国产高清在线丝袜精品一区| 午夜少妇精品视频小电影| 原味小视频在线www国产| 日韩小视频在线播放| 久久久久国色AV免费观看性色| 久久亚洲国产最新网站| 99视频免费观看| 国产精品免费久久久久影院无码| 中文字幕av无码不卡免费| 日本在线欧美在线| 欧美成人日韩| 国产激情无码一区二区免费 | 国产不卡网| 国产老女人精品免费视频| 国产大全韩国亚洲一区二区三区| 日本高清视频在线www色| 永久免费av网站可以直接看的 | 污视频日本| 国产主播福利在线观看| 亚瑟天堂久久一区二区影院| 欧美综合区自拍亚洲综合绿色| 亚洲国产高清精品线久久| 免费人欧美成又黄又爽的视频| 怡红院美国分院一区二区| 亚洲精品视频免费看| 亚洲国产精品无码AV| 国产精品第页| 日本午夜精品一本在线观看| 国内99精品激情视频精品| 欧美日韩中文国产va另类| 无码丝袜人妻| 国产h视频免费观看| 中文字幕va| 成人亚洲天堂| 日本午夜网站| 欧美激情成人网| 丝袜美女被出水视频一区| 91色在线视频| 久久综合丝袜日本网| a级毛片一区二区免费视频| 亚洲AV无码不卡无码| 久久超级碰| 国产一级精品毛片基地| 国产成人亚洲精品无码电影| 熟女视频91| 亚洲美女一区| 亚洲AV无码不卡无码 | 婷婷色中文网| 国产女人18水真多毛片18精品 | 一区二区三区精品视频在线观看| 亚洲欧洲自拍拍偷午夜色| 国产一区二区影院| 欧美区一区二区三|