亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        一種MCU的測試解決方案

        2017-03-16 03:40:48元,高
        電子測試 2017年2期
        關(guān)鍵詞:測試程序寄存器串口

        陳 元,高 劍

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

        一種MCU的測試解決方案

        陳 元,高 劍

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

        對MCU進(jìn)行測試時(shí),如何高效生成測試向量是測試的難點(diǎn)。文章以8位MCU STC12C5410AD為例,詳細(xì)地介紹了通過使用仿真環(huán)境,以C語言編寫功能測試程序,完成芯片寄存器控制和主要邏輯單元運(yùn)算,然后使用集成電路測試系統(tǒng)直接生成測試向量的解決方案。使用此解決方案,可根據(jù)測試要求,在較短時(shí)間內(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、定時(shí)器和多種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)相連,對芯片施加激勵(lì)向量,同時(shí)從輸出端監(jiān)測測試結(jié)果,若測試結(jié)果與預(yù)期的響應(yīng)向量一致,則說明激勵(lì)與響應(yīng)向量和實(shí)際MCU運(yùn)行時(shí)的輸入輸出電平狀態(tài)變化相一致,從而實(shí)現(xiàn)了對STC12C5410AD的測試。使用此方法對MCU進(jìn)行測試開發(fā),能針對MCU芯片應(yīng)用開發(fā)人員關(guān)心的測試集合產(chǎn)生測試向量,高效并節(jié)約開發(fā)時(shí)間,可較好的控制測試成本。

        1 MCU的測試方法簡述

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

        1.1傳統(tǒng)方法

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

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

        1.1.2 確定性測試向量生成法

        采用確定性測試向量生成法可根據(jù)各種故障模型測試不同的模塊, 包括中央處理單元、RAM 、中斷/定時(shí)系統(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í)這里的數(shù)據(jù)被ATE監(jiān)控,即DUT所有的輸入輸出數(shù)據(jù)都會(huì)被ATE記錄下來。在軟件、硬件的配合與支持下,DUT運(yùn)行在EEPROM中的檢測程序,由ATE記錄所有的數(shù)據(jù)(高、低電平)。DUT工作時(shí)的外部時(shí)鐘由ATE按照要求給定,所以ATE記錄數(shù)據(jù)也是嚴(yán)格與DUT的工作時(shí)鐘同步。最后通過整理,包括區(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)生測試代碼,再由專用的測試向量生成器生成測試向量。測試向量生成后,通過自動(dòng)測試系統(tǒng)的軟件開發(fā)環(huán)境下載到測試系統(tǒng)圖形卡中,啟動(dòng)測試程序,激勵(lì)向量依序施加到被測MCU的輸入端口,同時(shí)對輸出端口進(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)的單時(shí)鐘/機(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)、定時(shí)/計(jì)數(shù)器、中斷系統(tǒng)、UART串口、I/O接口、高速A/D轉(zhuǎn)換、SPI接口、PCA、看門狗及片內(nèi)R/C振蕩器和外部晶體振蕩電路等模塊。其主要功能包括CPU計(jì)算功能、指令系統(tǒng)功能、定時(shí)及中斷功能、串口及并口功能、程序和數(shù)據(jù)存儲、最小系統(tǒng)擴(kuò)展功能。

        STC12C5410AD的主要功能與MCS-51系列單片機(jī)相同,但也有個(gè)別不同的結(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)上電后,會(huì)逐條從外部存儲器中讀取指令并運(yùn)行程序。CPU 開始向外部存儲器取指令時(shí),地址鎖存允許信號 ALE 升高,8位地址/數(shù)據(jù)總線上的地址被設(shè)置到所要求的狀態(tài)。在 ALE 信號的下降沿,外部存儲器控制電路將該地址鎖存起來,從而達(dá)到把地址信號從地址/數(shù)據(jù)總線上分離出來的目的。隨后讀信號~RD 變低,這時(shí)候外部存儲器應(yīng)把有效數(shù)據(jù)提供到總線上,以便 MCU 讀入數(shù)據(jù)。當(dāng)~RD 升高時(shí),數(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í)行指令時(shí),由于它沒有外部存儲器,也沒有P0或ALE/~PROG等管腳,總線結(jié)構(gòu)和CPU取指令的方式不同于上述片外存儲器結(jié)構(gòu)的MCS-51單片機(jī),若使用確定性測試向量生成法,則無法通過翻譯指令編寫測試代碼。此時(shí),就需要使用不同于確定性測試向量生成法的方法對STC12C5410AD進(jìn)行指令功能的測試。

        2.2測試STC12C5410AD

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

        首先添加STC仿真驅(qū)動(dòng)到keil軟件中并按要求編寫程序;其次,使用編程器將程序燒入MCU,由MCU測試向量生成器生成測試向量,通過BC3192V50集成開發(fā)環(huán)境下載到測試系統(tǒng)圖形卡中。最后,將MCU通過適配器與BC3192V50相連,啟動(dòng)測試程序,激勵(lì)向量依序施加到被測MCU的輸入端口,同時(shí)對輸出端進(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è)部分的功能包括定時(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)時(shí)鐘,可使用片內(nèi)R/C振蕩器或者外接晶振,設(shè)置使用片內(nèi)R/C振蕩器時(shí)鐘,在5V單片機(jī)常溫下頻率約6MHz(XTAL1和XTAL2管腳浮空);設(shè)置時(shí)鐘是否分頻,要對時(shí)鐘分頻寄存器CLK_DIV進(jìn)行設(shè)定。設(shè)置串口的工作方式,即設(shè)置串行接口控制寄存器SCON。設(shè)置波特率發(fā)生器(可用定時(shí)器1作波特率發(fā)生器),需要設(shè)定TMOD和SMOD,確定波特率。再進(jìn)行啟動(dòng)定時(shí)器,允許串行接口中斷,CPU開中斷。

        (2)發(fā)送數(shù)據(jù)或字符串:等待前面的數(shù)據(jù)發(fā)送完成;數(shù)據(jù)送入累加器ACC(奇偶校驗(yàn)位P始終體現(xiàn)累加器ACC中的1的個(gè)數(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就會(huì)自動(dòng)地尋找寄存器把運(yùn)行結(jié)果存放在里面。通??删帉懸粋€(gè)乘法表達(dá)式把乘積結(jié)果賦值給一個(gè)存儲單元[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振蕩器時(shí)鐘,時(shí)鐘不分頻時(shí),CLK_ DIV=0x00。

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

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

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

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

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

        啟動(dòng)定時(shí)器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所示。

        字符串的正確輸出測試了定時(shí)/計(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管腳輸出第一和第二個(gè)字符的波形圖

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

        4 結(jié)語

        使用上述方法編制MCU測試程序,簡單易操作,可以縮短編制測試向量的時(shí)間,按照測試要求增加測試向量的故障覆蓋率,節(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)用手冊編委會(huì).電子計(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é)基金委員會(huì)-北京市科學(xué)技術(shù)研究院聯(lián)合資助項(xiàng)目(資助編號:L150009)

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

        猜你喜歡
        測試程序寄存器串口
        淺談AB PLC串口跟RFID傳感器的通訊應(yīng)用
        Lite寄存器模型的設(shè)計(jì)與實(shí)現(xiàn)
        基于Castle型機(jī)械手的三溫量產(chǎn)測試平臺實(shí)現(xiàn)
        分簇結(jié)構(gòu)向量寄存器分配策略研究*
        手機(jī)APP交互界面人因適合性測試程序的設(shè)計(jì)與實(shí)現(xiàn)
        中心主導(dǎo)制訂的《VHF/UHF頻率范圍內(nèi)測向系統(tǒng)測向靈敏度的測試程序》等兩項(xiàng)國際標(biāo)準(zhǔn)在ITU官網(wǎng)正式發(fā)布
        USB接口的多串口數(shù)據(jù)并行接收方法探索
        基于藍(lán)牙串口適配器的GPS接收機(jī)與AutoCAD的實(shí)時(shí)無線通信
        地礦測繪(2015年3期)2015-12-22 06:27:26
        電氣自動(dòng)化控制設(shè)備可靠性測試探討
        基于并行控制的FPGA多串口拓展實(shí)現(xiàn)
        国产av人人夜夜澡人人爽| 中文字幕久久精品一二三区| 日韩人妻美乳中文字幕在线| 色婷婷综合激情| 免费人成视频在线| 国产情侣一区二区| 久久青青草原一区网站| 日韩av一区二区毛片| 秋霞鲁丝片av无码| 性久久久久久| 99久久精品一区二区国产| 囯产精品无码一区二区三区AV| 国产剧情麻豆女教师在线观看| 无码h黄肉3d动漫在线观看| 日韩精品国产精品亚洲毛片| 99免费视频精品| 久久久国产精品ⅤA麻豆| 日韩精品久久久肉伦网站| 99e99精选视频在线观看| 国产高清在线精品一区不卡 | 欧美精品区| 人妻无码αv中文字幕久久琪琪布| 亚洲狠狠婷婷综合久久久久| 日韩av在线手机免费观看| 中日韩字幕中文字幕一区| 日本污视频| 久久亚洲精品ab无码播放| 亚洲av日韩av在线观看| 中文区中文字幕免费看| 国产精品成人av一区二区三区| 肉丝高跟国产精品啪啪| 日韩一区二区不卡av| japanesehd中国产在线看 | 午夜不卡久久精品无码免费| 成人精品视频一区二区| 情爱偷拍视频一区二区| 熟女人妻一区二区三区| 国产精品人成在线765| 国产91第一页| 国产偷2018在线观看午夜| 国产成人精品三级麻豆|