多中斷辨識(shí)技術(shù)實(shí)驗(yàn)
工控應(yīng)用已遍及各行各業(yè),特別是隨著計(jì)算機(jī)的普遍降價(jià),由PC機(jī)建構(gòu)的控制系統(tǒng)已越來越多,該類控制系統(tǒng)的優(yōu)點(diǎn)是可以用高級(jí)語言及大量的現(xiàn)有軟件快速建構(gòu)自己的軟件系統(tǒng)。特別對(duì)航天控制類應(yīng)用項(xiàng)目,中斷引入及多中斷辨識(shí)技術(shù)是測(cè)控軟件中的關(guān)鍵技術(shù),嚴(yán)格的時(shí)序是測(cè)控軟件的必須嘲條件。通過試驗(yàn)討論了2種商用帶中斷的I/0板卡的中斷引入及多中斷辨識(shí)技術(shù),介紹研華及凌華的相應(yīng)中斷處理技術(shù)及中斷編程的要點(diǎn),希望讀者在使用時(shí)少走彎路。
2 研華中斷引入方法
研華的中斷支持卡為部分I/O卡,依據(jù)典型的PCIl75l為例,PCIl751為48路I/O卡,帶兩路中斷支持功能,I/O端口地址分別為0~5,安裝好驅(qū)動(dòng)程序和設(shè)備管理器后,在設(shè)備管理器中加入PCIl751設(shè)備,這時(shí)在軟件界面可以看到該卡對(duì)應(yīng)的設(shè)備號(hào),該號(hào)為用戶訪問時(shí)使用的設(shè)備號(hào)。下一段代碼演示中斷引入方法,研華的中斷例子在設(shè)備初始化時(shí)太繁,前面一大段代碼是作為搜索設(shè)備使用的,在設(shè)備管理器軟件界面一般用戶已經(jīng)知道該設(shè)備號(hào),所以可以在自己的代碼段省略掉該部分,下一段為Delphi代碼:
3 研華的中斷處理及多中斷辨識(shí)技術(shù)
研華的中斷處理例子并沒有多辨識(shí)部分,需要使用者自己想辦法,通過多次試驗(yàn),使用中斷前讀一次端口,中斷后再讀一次中斷口的辦法,判斷讀人數(shù)據(jù)變化即可以辨識(shí)哪個(gè)中斷發(fā)生。
4 凌華的中斷安裝
依據(jù)PCIl48卡為例演示中斷安裝及處理,PCIl48卡提供144路I/O,其中提供4路中斷,作者使用Visual C++代碼展示,凌華給出的例子較舊,是SDK形式或者DOS形式,凌華的I/O所有端口均使用一個(gè)端口,該企業(yè)給出的中斷安裝例子容易產(chǎn)生誤解,開始作者一直以為它的4個(gè)中斷需要分別安裝,經(jīng)多次試驗(yàn)后才發(fā)現(xiàn)不是這樣的:
評(píng)論