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

一種MCU的測試解決方案

2017-03-16 03:40:48元,高
電子測試 2017年2期
關鍵詞:指令單片機功能

陳 元,高 劍

(集成電路測試技術北京市重點實驗室,北京自動測試技術研究所,北京,100088)

一種MCU的測試解決方案

陳 元,高 劍

(集成電路測試技術北京市重點實驗室,北京自動測試技術研究所,北京,100088)

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

單片機;MCU測試;測試向量

0 引 言

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

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

1 MCU的測試方法簡述

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

1.1傳統方法

1.1.1 偽隨機測試向量生成法

偽隨機測試向量生成法經歷了三個階段的發展:簡單無系統的隨機測試向量生成階段,復雜約束模型和語言增強正向制導的隨機測試向量生成階段及覆蓋率驅動的測試向量生成階段。這類方法主要用于IC設計驗證,在成測中較少直接使用,一般會通過借鑒或結合此方法的某些特點,將程序改進為更適合具體測試要求的測試向量??梢哉f偽隨機測試向量生成法對成測來說是一種啟發性的方法。

1.1.2 確定性測試向量生成法

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

1.1.3 學習法測試向量生成法

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

1.2在仿真環境下編程生成測試向量的方法

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

圖1 測試向量生成器

這種方法不苛刻地追求故障覆蓋率,能靈活地針對MCU芯片應用開發人員關心的測試集合產生測試向量,因為比較高效,測試成本也能控制在比較低的水平上。

2 STC12C5410AD的測試

2.1 STC12C5410AD系列單片機簡介

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

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

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

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

圖2 STC12C5410AD系列單片機的內部結構框圖

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

2.2測試STC12C5410AD

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

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

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

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

設計程序為乘法運算和串口發送字符串數據,生成測試代碼用以驗證芯片主要功能。程序設計如下:

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

(2)發送數據或字符串:等待前面的數據發送完成;數據送入累加器ACC(奇偶校驗位P始終體現累加器ACC中的1的個數的奇偶性),根據P來設置奇偶校驗位;奇偶位送TB8;數據由ACC送到UART數據寄存器SBUF中。發送字符串則需要檢測字符串結束標志位后,發送當前字符。

(3)中斷服務程序:發送/接收串口數據/字符串,響應中斷后,RI/TI需要軟件清零。

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

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

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

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

圖3 生成器法程序流程圖

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

3 測試實驗

本文采用國產集成電路測試系統BC3192V50 對STC12C5410AD進行了測試,具體的程序設計說明如下:

(1)串口初始化設置

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

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

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

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

設TH1=TL1=0xFF。

所以,當實時片內振蕩器時鐘頻率為5.9MHz時,波特率=2 x 5.9MHz/32=357100 bps。

啟動定時器1,TR1=1。

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

CPU開放中斷,EA=1。

(2)發送數據或字符串設置

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

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

表1 字符對應二進制數

(3)中斷服務程序設置

發送數據,中斷響應后,TI軟件清零。

(4)運算設置

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

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

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

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

4 結語

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

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

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

[3]電子計量測試應用手冊編委會.電子計量測試應用手冊[M]北京:電子工業部電子計量測試研究中心站,1986.

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

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

[6]趙雪蓮.微控制器測試向量生成方法的研究和實現[D]西南交通大學,2006.

[7]席筱穎.8位MCU設計驗證及測試向量故障覆蓋率分析[D]哈爾濱理工大學,2007.

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

[9]劉海濤.基于8位MCU核的智能編碼ASIC設計[D]電子科技大學,2003.

[10]嚴克劍,張淼,黃先偉.單片機C語言編程中多位乘法運算問題探討[J]廣東工業大學學報,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

北京市自然科學基金委員會-北京市科學技術研究院聯合資助項目(資助編號:L150009)

陳元,學士,主要研究方向為儀器與測試技術。

猜你喜歡
指令單片機功能
聽我指令:大催眠術
也談詩的“功能”
中華詩詞(2022年6期)2022-12-31 06:41:24
基于單片機的SPWM控制逆變器的設計與實現
電子制作(2019年13期)2020-01-14 03:15:28
基于單片機的層次漸變暖燈的研究
電子制作(2019年15期)2019-08-27 01:12:10
基于單片機的便捷式LCF測量儀
電子制作(2019年9期)2019-05-30 09:42:02
ARINC661顯控指令快速驗證方法
測控技術(2018年5期)2018-12-09 09:04:26
LED照明產品歐盟ErP指令要求解讀
電子測試(2018年18期)2018-11-14 02:30:34
關于非首都功能疏解的幾點思考
Microchip推出兩個全新PIC單片機系列
中西醫結合治療甲狀腺功能亢進癥31例
主站蜘蛛池模板: 黄片一区二区三区| 欧美在线观看不卡| 日韩天堂网| 亚洲天堂视频在线观看| 奇米精品一区二区三区在线观看| 国产乱人乱偷精品视频a人人澡| 找国产毛片看| 1769国产精品免费视频| 亚洲中字无码AV电影在线观看| 国产精品永久免费嫩草研究院| 欧美全免费aaaaaa特黄在线| 伊人激情久久综合中文字幕| 丁香婷婷激情综合激情| 香蕉视频在线精品| 国产超碰在线观看| 国产精品大白天新婚身材| 一本大道在线一本久道| 精品小视频在线观看| 成年网址网站在线观看| 538精品在线观看| 亚洲成年网站在线观看| 久草性视频| 日本一本在线视频| 四虎AV麻豆| 真人高潮娇喘嗯啊在线观看| 她的性爱视频| 国产欧美日韩综合在线第一| 国产91线观看| 日韩专区欧美| 免费在线a视频| 毛片最新网址| 99久久99这里只有免费的精品| 国产95在线 | 少妇精品久久久一区二区三区| 国产日韩欧美黄色片免费观看| 亚洲最大看欧美片网站地址| 高清乱码精品福利在线视频| 欧美区国产区| 欧美、日韩、国产综合一区| 亚洲AV成人一区国产精品| 在线观看国产精品第一区免费| 欧美在线天堂| 欧洲在线免费视频| 免费高清a毛片| 波多野结衣一区二区三区AV| 五月婷婷综合在线视频| 亚洲精选高清无码| 又爽又大又黄a级毛片在线视频| 久久午夜夜伦鲁鲁片无码免费| 国产成人亚洲综合A∨在线播放| 国产色网站| 欧美成人免费午夜全| 国产99久久亚洲综合精品西瓜tv| 欧美亚洲日韩中文| 成人一区在线| 亚洲人成网站日本片| 亚欧美国产综合| 制服丝袜无码每日更新| 成人午夜福利视频| 欧美97欧美综合色伦图| 亚洲一区毛片| 国产精品无码久久久久久| 国产产在线精品亚洲aavv| 国产精品任我爽爆在线播放6080 | 97久久超碰极品视觉盛宴| 国产区在线看| 亚洲成a人在线播放www| 波多野结衣视频网站| 一级香蕉人体视频| 国产福利免费观看| 国产一二三区视频| 欧美性精品| 沈阳少妇高潮在线| 国产精品无码在线看| 欧美午夜一区| 国产欧美在线观看一区| 制服丝袜亚洲| 思思热在线视频精品| 欧美在线伊人| 男女猛烈无遮挡午夜视频| 欧美亚洲国产一区| 91久久国产热精品免费|