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