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

        ?

        基于Proteus的X86中斷仿真異常問題探究和對策

        2015-06-07 11:59:48丁志遠(yuǎn)
        實驗室研究與探索 2015年8期
        關(guān)鍵詞:單片機實驗

        宋 杰, 丁志遠(yuǎn)

        (安徽大學(xué) 計算機科學(xué)與技術(shù)學(xué)院,安徽 合肥 230039)

        ?

        ·專題研究———虛擬仿真實驗( 24)·

        基于Proteus的X86中斷仿真異常問題探究和對策

        宋 杰, 丁志遠(yuǎn)

        (安徽大學(xué) 計算機科學(xué)與技術(shù)學(xué)院,安徽 合肥 230039)

        X86系列的CPU及其系統(tǒng)一直是“微機原理”課程的主流內(nèi)容,其中中斷是此課程的核心部分。目前,核心實驗仍然是采取使用真實硬件進(jìn)行實驗的方式,但這種方式也帶來實驗項目受限,元器件易損壞等問題。隨著Proteus對8086系列的CPU提供仿真功能,很多高校也開始將X86系列的微機原理實驗向上移植。仿真實驗便于實驗內(nèi)容擴展,便于學(xué)生自行實驗,沒有實驗場地約束,破解了實驗時間、地點的難題。仿真實驗畢竟和物理實驗有所差異,有不夠完善之處,在移植過程中,實現(xiàn)中斷的8259實驗出現(xiàn)了一些問題。本文就此問題進(jìn)行了研究和實驗,剖析了產(chǎn)生問題的原因,并給出了多種解決問題的方法。

        Proteus; intel 8086; 中斷; intel 8259; 仿真

        0 引 言

        Proteus軟件不僅具有其他EDA工具軟件的仿真功能[1-2],還能仿真單片機、ARM及外圍器件及虛擬儀器[3-5],在單片機領(lǐng)域獲得了巨大的成就,在仿真設(shè)計和實驗方面的功效已得到了廣泛的認(rèn)可[6]。用虛擬軟件代替實驗箱的硬件電路,形象具體,增強了學(xué)生的感性認(rèn)識,有助于對實驗原理的理解,通過軟件仿真,不僅節(jié)約了硬件資源,拓展了實驗范圍,而且提高了教學(xué)效率[7]。

        Proteus V7.6版本后開始提供對8086CPU的仿真,使原先只是針對單片機系列的仿真逐漸擴展到X86領(lǐng)域[8]。國內(nèi)很多高校已開展了研究[9-12],在實踐過程中,大部分仿真都獲得了理想的結(jié)果,但在仿真8259中斷時,或多或少遇到了問題。本文從多角度、多方法對此問題進(jìn)行了分析、驗證并提供了解決對策。

        1 中斷控制系統(tǒng)

        中斷機制是現(xiàn)代計算機系統(tǒng)中的重用基礎(chǔ)機制,它在系統(tǒng)中協(xié)調(diào)系統(tǒng)對各種外部事件的響應(yīng)和處理。中斷是CPU對系統(tǒng)發(fā)生的某個事件作出的一種反應(yīng),中斷系統(tǒng)是計算機的重要組成部分。中斷系統(tǒng)的應(yīng)用大大提高了計算機性能和效率。

        2 基于8259A的中斷仿真模擬系統(tǒng)

        2.1 建立中斷仿真模擬系統(tǒng)

        8259A是專門對中斷控制而設(shè)計的可編程中斷控制器。單個的8259A能管理8級向量優(yōu)先級中斷,最多可以級聯(lián)成64級的向量優(yōu)先級中斷系統(tǒng)。8259A有多種工作方式,各種工作方式的設(shè)定是在初始化時通過軟件進(jìn)行的[13]。仿真電路采用經(jīng)典的電路結(jié)構(gòu),如圖1所示。

        圖1 基于8259A的中斷仿真模擬系統(tǒng)電路圖

        2.2 仿真模擬系統(tǒng)程序設(shè)計

        在對8259A進(jìn)行編程時,首先必須進(jìn)行初始化。一般先使用CLI 指令將所有的可屏蔽中斷禁止,然后寫入初始化命令字。在初始化主片8259 時,寫入初始化命令字的順序是:ICW1、ICW2、ICW3然后是ICW4[14]。關(guān)鍵代碼由如下部分構(gòu)成:

        (1)8259A的初始化代碼。

        (2)設(shè)置中斷向量代碼(實驗設(shè)中斷向量為60H)。

        (3)中斷處理子程序(代碼略)。

        3 基于8259A的中斷仿真失敗原因的探究

        3.1 仿真驗證

        按下單次脈沖單元按鍵,觸發(fā)外部中斷,即可控制K0~K7控制LED0至LED7的亮與暗,當(dāng)K0~K7全部閉合時,中斷子程序自動返回到原程序。但是,仿真表明,若按照上述原理以及8259A的編程操作,并不能通過Proteus軟件的到預(yù)想的仿真結(jié)果。

        3.2 中斷仿真失敗的數(shù)據(jù)分析

        (1) 8086寄存器。點擊中斷觸發(fā)按鈕后,IP寄存器的值為00B8H,CS寄存器的值為8E00H。而非在代碼中設(shè)置的中斷向量60H*4。這說明8086并未按照正確的中斷向量執(zhí)行中斷處理子程序。

        (2) 8259寄存器。點擊中斷觸發(fā)按鈕后,8259中的中斷服務(wù)寄存器的值為10000000B,說明8259已經(jīng)對中斷觸發(fā)按鈕進(jìn)行了響應(yīng),并對其進(jìn)行了處理。

        (3) 內(nèi)存空間。查找在代碼中設(shè)置的中斷向量地址,即60H*4號地址的單元,發(fā)現(xiàn)其連續(xù)的4個空間的值分別為:30H、00H、00H、00H,即中斷子程序的地址為30H。表明中斷向量寫入正確。

        3.3 失敗原因推理

        通過上述數(shù)據(jù)分析,中斷向量寫入正確,則仿真失敗的原因應(yīng)該與8086芯片以及8259芯片有關(guān)。8259的中斷服務(wù)寄存器中的值表明8259以對中斷進(jìn)行了響應(yīng),而8086中的IP與CS寄存器沒能得到正確的中斷向量,由此可推測8086芯片與8259芯片中的信息聯(lián)絡(luò)出現(xiàn)問題。

        由上述原理、數(shù)據(jù)分析可進(jìn)行如下兩種假設(shè):

        (1)8259沒有向8086發(fā)出或發(fā)出了不正確的中斷類型號,即問題出現(xiàn)在8259芯片上。

        (2)8259發(fā)出了正確的中斷類型號,但8086接收出錯,即問題出現(xiàn)在8086芯片上。

        3.4 分析仿真失敗原因?qū)嶒炘O(shè)計

        為了對仿真失敗的原因進(jìn)行探究,從空間和時間的角度設(shè)計如下兩個實驗。

        (1) 實驗1。根據(jù)8086的數(shù)據(jù)分析可知,8086沒有得到正確的中斷向量,故跳轉(zhuǎn)到了錯誤的中斷處理子程序的入口地址。下面從空間的角度,將原源代碼進(jìn)行如下修改:

        把整個中斷向量表全部寫入INT0中斷子程序的入口地址,即添加如下代碼[15]:

        MOV AX,OFFSET INT0 ;取INT0的偏移地址

        MOV BX,SEG INT0 ;取INT0的段地址

        L: MOV [SI],AX ;將整個中斷向量表全部寫入INT0的入口地址

        MOV [SI+2],BX

        ADD SI,4

        LOOP L

        實驗結(jié)果:可得到仿真的預(yù)想的效果,即8086可以正確跳轉(zhuǎn)到INT0中斷子程序。

        (2) 實驗2。由于8086不能跳轉(zhuǎn)到正確的中斷子程序入口地址,從時間角度入手,將原源代碼進(jìn)行如下修改:

        在源程序的末尾以循環(huán)的方式不斷向數(shù)據(jù)總線輸入INT0的中斷子程序的入口地址,即將源程序末尾的JMP 語句換為如下代碼:

        LI: MOV DX,800H ;將任意外設(shè)地址寫入DX

        MOV AL,60h ;中斷類型號為60H

        OUT DX,AL

        JMP LI

        實驗結(jié)果:可得到仿真的預(yù)想的效果,即8086可以正確的跳轉(zhuǎn)到INT0中斷子程序。

        3.5 兩種假設(shè)的判定實驗設(shè)計

        根據(jù)兩種假設(shè),要想知道問題出現(xiàn)在8086還是8259芯片上,需要了解8259是否發(fā)出了正確的中斷向量。因此,使用虛擬邏輯分析儀對數(shù)據(jù)總線上的數(shù)據(jù)進(jìn)行監(jiān)控[6]。

        (1) 線路連接。將數(shù)據(jù)總線的低八位鏈接在虛擬邏輯分析儀的A0~A7,8086的INTA引腳鏈接邏輯分析儀的A8引腳,如圖1所示。

        (2) 操作步驟。將邏輯分析儀的捕捉分辨率設(shè)為0.2 m,設(shè)置A0至A8的觸發(fā)條件為任意條件觸發(fā)。開始仿真后,獲得捕捉的邏輯波形,如圖2所示。

        圖2 邏輯分析儀捕獲圖

        (3) 實驗結(jié)果。觀察捕獲的波形可發(fā)現(xiàn),8086通過INTA引腳發(fā)出連續(xù)的兩個負(fù)脈沖(A8引腳),在第二個脈沖期間,8259送出了正確的中斷類型號60H。

        在仿真的過程中查看仿真日志,就可以發(fā)現(xiàn),日志上記錄的信息表明8259發(fā)送了正確的中斷類型號。

        這個實驗從另一角度更加確切地證明了此結(jié)論。

        3.6 兩種假設(shè)的最終實驗結(jié)論

        前述實驗結(jié)果,可以證明8259芯片向8086發(fā)送了正確的中斷類型號。進(jìn)一步對代碼進(jìn)行修改,并用邏輯分析儀進(jìn)行捕捉。

        在主程序末尾添加如下代碼:

        MOV DX,800H ;任意外設(shè)地址

        MOV AX,60H ;中斷類型號為60H

        OUT DX,AX ;目的是將60H輸出至數(shù)據(jù)總線

        使用邏輯分析儀捕捉數(shù)據(jù),可發(fā)現(xiàn)無論8259向8086發(fā)送的中斷類型碼是多少(如:將中斷類型號設(shè)置為50H,而實際的中斷類型號仍為60H),8086識別的中斷類型號都是最后輸出至數(shù)據(jù)總線的數(shù)據(jù),亦即中斷源發(fā)送中斷請求前最后一次出現(xiàn)在數(shù)據(jù)總線上的數(shù)據(jù)。

        結(jié)論:第二個假設(shè)是正確的,即8259發(fā)出了正確的中斷類型號,但8086接收出錯,即問題出現(xiàn)在8086芯片上。

        4 中斷實驗的應(yīng)對解決方法和注意事項

        根據(jù)前面得出的結(jié)論可知,由于8086芯片的故障,使得中斷仿真失敗。為了可以正常進(jìn)行8059中斷實驗,在當(dāng)前情況下,給出兩個主要的應(yīng)對解決方法:

        (1) 方法一。根據(jù)實驗一可知,從空間的角度,將原源代碼進(jìn)行修改,即把整個中斷向量表全部寫入INT0中斷子程序的入口地址。

        (2) 方法二。由實驗二可知,從時間角度入手,將原源代碼進(jìn)行修改,即在源程序的末尾以循環(huán)的方式不斷向數(shù)據(jù)總線輸入INT0的中斷子程序的入口地址。

        通過以上兩種方法,在無中斷嵌套的情況下可以進(jìn)行正確的中斷仿真。

        但是,需特別指出,在需要進(jìn)行中斷嵌套的情況下,由于8086識別的中斷類型號是中斷源發(fā)送中斷請求前最后一次出現(xiàn)在數(shù)據(jù)總線上的數(shù)據(jù),而且中斷源發(fā)送中斷的時間具有隨機性,故無法通過代碼的方式來保證8086接受到正確的中斷類型號。所以在中斷嵌套的情況下,目前無法進(jìn)行正確的仿真。

        5 結(jié) 語

        X86系列的Proteus仿真實驗大都獲得了較好的結(jié)果,但在8259中斷實驗不夠圓滿,這說明仿真實驗具有一定的局限性,我們可以通過某些方法進(jìn)行改進(jìn)、克服。同時也要通過實驗告訴學(xué)生這個問題的本質(zhì),促進(jìn)他們對微機系統(tǒng)更深入的了解。

        [1] 方天紅,張升義. Proteus在“數(shù)字邏輯電路”課程項目驅(qū)動教學(xué)中的應(yīng)用[J]. 實驗室研究與探索,2014(4):195-198.

        [2] 郭亞琴,王正群,秦 燕. Proteus軟件在電子產(chǎn)品設(shè)計與制作中的應(yīng)用[J]. 實驗室研究與探索,2013(12):101-104.

        [3] 周潤景,袁偉停.基于PROTEUS的ARM虛擬開發(fā)技術(shù)[M].北京:北京航空航天大學(xué)出版社,2007.

        [4] 周潤景,張麗娜.基于Proteus的電路及單片機系統(tǒng)設(shè)計與仿真[M].北京:北京航空航天大學(xué)出版社,2006.

        [5] 江世明.基于Proteus的單片機應(yīng)用技術(shù)[M].北京:電子工業(yè)出版社, 2009 .

        [6] 周潤景,張麗娜.PROTEUS入門實用教程[M].北京:北京航空航天大學(xué)出版社,2006.

        [7] 王海燕,楊艷華.Proteus和Keil軟件在單片機實驗教學(xué)中的應(yīng)用[J]. 實驗室研究與探索,2012(5):88-91.

        [8] 顧 輝,梁惺彥.微機原理與接口技術(shù)——基于8086和Proteus仿真[M].北京:電子工業(yè)出版社.2011.

        [9] 張亞軍. Proteus在《微型機原理》課程教學(xué)中的應(yīng)用[J]. 科技視界,2014(13):177-179.

        [10] 王 娟. Proteus軟件在單片機專題實訓(xùn)中的應(yīng)用[J]. 實驗技術(shù)與管理,2010(8):73-77.

        [11] 楊驍涵. 微機原理與接口技術(shù)虛擬實驗平臺的設(shè)計與實現(xiàn)[D].北京郵電大學(xué), 2012.

        [12] 李現(xiàn)國,張 艷.Proteus仿真在微機原理及接口技術(shù)教學(xué)中的應(yīng)用[J]. 實驗技術(shù)與管理,2010(12):125-127.

        [13] 周荷琴,吳秀清.微型計算機原理與接口技術(shù)[M].5版.合肥:中國科學(xué)技術(shù)大學(xué)出版社,2013.

        [14] 徐 晨,陳繼紅,王春明,等.微機原理及應(yīng)用[M].北京:高等教育出版社,2004.

        [15] 沈美明,溫冬嬋.IBM PC匯編語言程序設(shè)計[M].北京:清華大學(xué)出版社,2002.

        The Analysis and Resolution on Error Simulation of X86 Interrupt with Proteus

        SONGJie,DINGZhi-yuan

        (Computer Science and Technology School, Anhui University, Hefei 230039, China)

        X86 CPU and its interface system are popular in "Computer Principle" course, and interrupt is one of the most important contents. Now, physical experiment is still the main method, but experiment items are limited and the electrical components are easy to be damaged. Many universities are doing simulation experiments on Proteus because it provides the simulation of 8086 CPU. Experiment item is easy expanded by simulation, and students can do it by themselves. The experiment time and location are flexible. Simulation experiments still have a few differences with physical experiment, and are not very perfect. There are still some problems with 8259 interrupt experiment. Some studies and experiments have been done on this problem. The analysis of the causes and solutions of the simulation are presented.

        Proteus; Intel 8086; interrupt; Intel 8259; simulation

        2015-01-08

        國家自然科學(xué)基金(61271352);安徽省高等教育振興計劃重大教學(xué)改革研究項目(2013zdjy040)

        宋 杰(1966-),男,安徽合肥人,博士,副教授,安徽大學(xué)網(wǎng)絡(luò)工程系主任,研究方向:嵌入式系統(tǒng)、智能計算。

        E-mail:jsong@ahu.edu.cn

        TP 391.9; G 434

        A

        1006-7167(2015)08-0081-04

        猜你喜歡
        單片機實驗
        記一次有趣的實驗
        微型實驗里看“燃燒”
        基于單片機的SPWM控制逆變器的設(shè)計與實現(xiàn)
        電子制作(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
        小議PLC與單片機之間的串行通信及應(yīng)用
        電子制作(2018年12期)2018-08-01 00:48:04
        基于單片機的平衡控制系統(tǒng)設(shè)計
        電子制作(2017年19期)2017-02-02 07:08:27
        NO與NO2相互轉(zhuǎn)化實驗的改進(jìn)
        實踐十號上的19項實驗
        太空探索(2016年5期)2016-07-12 15:17:55
        久久精品国产亚洲av日韩一| 提供最新的在線欧美综合一区| 国产主播无套内射一区| 北岛玲亚洲一区二区三区| 国产白浆在线免费观看| 人人妻人人爽人人澡人人| 久久青草伊人精品| 国产亚洲一区二区三区三州| 久久精品女人av一区二区| 中文字幕人妻少妇引诱隔壁| 久久精品国产四虎| 日韩精品不卡一区二区三区| 亚洲一区二区三区四区地址| 日本一卡2卡3卡4卡无卡免费网站| 欧美色综合高清视频在线| 一本久久a久久精品综合| av日韩一区二区三区四区| 国产午夜福利片| 中文字幕无码专区一VA亚洲V专 | 青青草在线免费视频播放| 夜鲁很鲁在线视频| 国产又色又爽又刺激视频| 精品中文字幕久久久人妻| 国产国产精品人在线视| 一本无码人妻在中文字幕免费| 精品少妇人妻成人一区二区| 蓝蓝的天空,白白的云| 色五月丁香五月综合五月| 亚洲国产精品尤物yw在线观看| 国产一区二区三区av免费观看| 国产免费在线观看不卡| 亚洲人成网址在线播放| 老色鬼永久精品网站| 国产我不卡在线观看免费| 人妻少妇精品无码专区| 精品久久久久久久久久久aⅴ| 美女福利一区二区三区在线观看| 女女同恋一区二区在线观看| 亚洲精品无码专区在线| 色综合色综合久久综合频道| 精品人妻av一区二区三区四区|