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

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

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

宋 杰, 丁志遠

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

?

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

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

宋 杰, 丁志遠

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

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

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

0 引 言

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

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

1 中斷控制系統

中斷機制是現代計算機系統中的重用基礎機制,它在系統中協調系統對各種外部事件的響應和處理。中斷是CPU對系統發生的某個事件作出的一種反應,中斷系統是計算機的重要組成部分。中斷系統的應用大大提高了計算機性能和效率。

2 基于8259A的中斷仿真模擬系統

2.1 建立中斷仿真模擬系統

8259A是專門對中斷控制而設計的可編程中斷控制器。單個的8259A能管理8級向量優先級中斷,最多可以級聯成64級的向量優先級中斷系統。8259A有多種工作方式,各種工作方式的設定是在初始化時通過軟件進行的[13]。仿真電路采用經典的電路結構,如圖1所示。

圖1 基于8259A的中斷仿真模擬系統電路圖

2.2 仿真模擬系統程序設計

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

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

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

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

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

3.1 仿真驗證

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

3.2 中斷仿真失敗的數據分析

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

(2) 8259寄存器。點擊中斷觸發按鈕后,8259中的中斷服務寄存器的值為10000000B,說明8259已經對中斷觸發按鈕進行了響應,并對其進行了處理。

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

3.3 失敗原因推理

通過上述數據分析,中斷向量寫入正確,則仿真失敗的原因應該與8086芯片以及8259芯片有關。8259的中斷服務寄存器中的值表明8259以對中斷進行了響應,而8086中的IP與CS寄存器沒能得到正確的中斷向量,由此可推測8086芯片與8259芯片中的信息聯絡出現問題。

由上述原理、數據分析可進行如下兩種假設:

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

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

3.4 分析仿真失敗原因實驗設計

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

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

把整個中斷向量表全部寫入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

實驗結果:可得到仿真的預想的效果,即8086可以正確跳轉到INT0中斷子程序。

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

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

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

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

OUT DX,AL

JMP LI

實驗結果:可得到仿真的預想的效果,即8086可以正確的跳轉到INT0中斷子程序。

3.5 兩種假設的判定實驗設計

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

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

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

圖2 邏輯分析儀捕獲圖

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

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

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

3.6 兩種假設的最終實驗結論

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

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

MOV DX,800H ;任意外設地址

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

OUT DX,AX ;目的是將60H輸出至數據總線

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

結論:第二個假設是正確的,即8259發出了正確的中斷類型號,但8086接收出錯,即問題出現在8086芯片上。

4 中斷實驗的應對解決方法和注意事項

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

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

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

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

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

5 結 語

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

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

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

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

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

[5] 江世明.基于Proteus的單片機應用技術[M].北京:電子工業出版社, 2009 .

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

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

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

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

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

[11] 楊驍涵. 微機原理與接口技術虛擬實驗平臺的設計與實現[D].北京郵電大學, 2012.

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

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

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

[15] 沈美明,溫冬嬋.IBM PC匯編語言程序設計[M].北京:清華大學出版社,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

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

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

E-mail:jsong@ahu.edu.cn

TP 391.9; G 434

A

1006-7167(2015)08-0081-04

猜你喜歡
單片機實驗
記一次有趣的實驗
微型實驗里看“燃燒”
基于單片機的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
小議PLC與單片機之間的串行通信及應用
電子制作(2018年12期)2018-08-01 00:48:04
基于單片機的平衡控制系統設計
電子制作(2017年19期)2017-02-02 07:08:27
NO與NO2相互轉化實驗的改進
實踐十號上的19項實驗
太空探索(2016年5期)2016-07-12 15:17:55
主站蜘蛛池模板: 波多野结衣二区| 国产精品性| 欧美色综合久久| 日韩精品成人网页视频在线 | 亚洲精品午夜无码电影网| 亚洲精品无码在线播放网站| 国产91麻豆视频| 日韩视频精品在线| 精品一区二区三区无码视频无码| 亚洲第一视频免费在线| 制服丝袜亚洲| 色精品视频| 在线免费看片a| 欧美一级在线| 国产在线无码一区二区三区| 3344在线观看无码| 老司国产精品视频91| 亚洲电影天堂在线国语对白| 精品乱码久久久久久久| 又黄又湿又爽的视频| 亚洲无码一区在线观看| 大香伊人久久| 东京热av无码电影一区二区| 国产在线自乱拍播放| 红杏AV在线无码| 99re这里只有国产中文精品国产精品| 欧美一道本| 又爽又大又光又色的午夜视频| 免费国产好深啊好涨好硬视频| 亚洲九九视频| 亚洲Av综合日韩精品久久久| 国产精品林美惠子在线播放| 一级做a爰片久久毛片毛片| 中国成人在线视频| 激情无码视频在线看| 国产精品不卡永久免费| 精品视频在线一区| 久久动漫精品| 欧美精品亚洲精品日韩专| 亚洲无码久久久久| 欧美午夜视频| 无码国产伊人| 午夜精品久久久久久久无码软件| www.国产福利| 日韩高清中文字幕| 免费国产黄线在线观看| 亚洲人成网站18禁动漫无码| 色哟哟国产精品| 亚洲中文字幕日产无码2021| 欧美另类精品一区二区三区| 亚洲无码视频喷水| 狼友av永久网站免费观看| 欧美成人精品高清在线下载| 色悠久久综合| 亚欧美国产综合| 亚洲欧美日韩精品专区| www.av男人.com| 精品人妻系列无码专区久久| 国产欧美综合在线观看第七页| 国产乱人激情H在线观看| 亚洲伊人天堂| 理论片一区| 亚洲精品国产成人7777| 国产成人h在线观看网站站| 久久人人妻人人爽人人卡片av| 亚洲人成在线免费观看| 日韩天堂网| 国产一区二区三区视频| 亚洲手机在线| 亚洲最大在线观看| 国产乱人乱偷精品视频a人人澡| 日韩精品无码不卡无码| 日韩av电影一区二区三区四区| 国产白浆一区二区三区视频在线| 人禽伦免费交视频网页播放| 欧美一级大片在线观看| 亚洲无线国产观看| 亚洲成年人片| 波多野结衣一区二区三区AV| 伊人久久大香线蕉影院| 男人天堂伊人网| 国产福利观看|