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

硬件中斷引入方法及中斷深度性能測試

2014-03-11 01:00:04蔡文齋
計算機與網絡 2014年23期
關鍵詞:信號

蔡文齋

(中國電子科技集團公司第三十九研究所陜西西安 710065)

硬件中斷引入方法及中斷深度性能測試

蔡文齋

(中國電子科技集團公司第三十九研究所陜西西安 710065)

討論了Windows操作系統下硬件中斷產生的方法,使用硬件DIO輸出卡對設計的中斷服務程序作了多種時序下試驗,做了Windows系統下中斷服務工作時的干擾試驗,在中斷線程和工作線程內部提出了多種試驗方法,深入研究了Windows系統下的內核級調度執行相關代碼段所需的時間,測試了多種時鐘的精確度,設計了工程實用的中斷服務程序。

中斷 定時器 性能測試 線程 事件

1 引言

某項目要求開發一套高分辨率天線監控系統,工作時序為10 ms級。設計一套硬件中斷策略,使控制系統嚴格按時序執行任務,在設計及開發這一系統時,進一步測試是否可以設計出更快的硬件中斷,做為未來更快時序下實時控制系統監控軟件使用。

2 硬件中斷設計

Windows系統下硬件中斷一般使用2種方式引入,一種方式為RS-232電平形式,另一種使用TTL電平形式。串口形式下實際是采用Modem狀態變化來檢查中斷信號,TTL電平形式使用I/O卡檢查中斷信號。串口形式下的硬件中斷在軟件系統中使用串口的Modem狀態檢測編程,檢測狀態變化,注意從低電平變到高電平或者從高電平變到低電平全要計算在內[1],所以軟件檢測是需要小技巧的,作者使用異或XOR技術解決了該問題。串口編程有多種方法:①Windows API函數;②OCX控件形式編程;③串行卡設備廠家提供的動態鏈接庫,比如MOXA庫函數;④Delphi或者C++builder下的vcl組件形式,比如comport、nrcomm和TMS串行口控件等等[2]。

無論采用什么形式,作為中斷檢測時全是檢查Modem狀態變化。首先將硬件時碼器的RS-232C形式的硬件信號接入某COM口,例如COM1,下面給出使用MOXA庫函數形式的檢查CTS和DSR狀態變化的關鍵代碼段:

第二種引入中斷的形式是TTL電平形式,由某一硬件設備(一般為B碼時統設備)輸出TTL電平信號,在計算機一端使用帶有中斷控制功能的I/O卡檢測中斷。該類檢測方法與商用板卡有關,比如研華的PCI1751卡等I/O卡就具備該功能。

研華公司的PCI-1751卡為48路I/O卡,支持兩路中斷接入功能,不提供中斷硬件辨識功能,需要軟件開發者想辦法判斷到底是哪路中斷。例如時碼器提供了50PPS和1PPS兩種形式的中斷,軟件檢測時應提供辨識代碼,50PPS信號作為監控軟件同步中斷使用,1PPS信號提供每秒的校時中斷使用,作者使用在中斷線程中檢查不同端口狀態變化的方法給出了辨識方法。

下為Delphi檢測中斷的關鍵代碼段,中斷線程省略[3]。

以下加判斷語句。

中斷服務程序要求編寫的盡量簡捷,主要功能就是檢查中斷到來否,中斷服務程序一旦檢測到中斷,需要有一種通知機制去告知其他工作線程去工作。采用事件通知機制是最快捷的方式[4]。作者測試了事件通知到另一個線程的時刻,是微秒級別的,幾乎不影響毫秒級的調度,Windows下中斷線程流程圖如圖1所示。

圖1 中斷線程流程圖

中斷服務程序一旦檢查到中斷,即通知工作線程去工作,通知為內核對象Event,工作線程開始工作后,一直在等待該通知事件對象,一旦等到,立即復位該事件對象到無信號狀態,再等待下一次事件到有信號狀態,注意這個事件的有信號狀態為中斷線程中設置的,這樣,中斷線程只負責檢查中斷到來否則,一旦到來,置通知事件有信號,中斷線程又轉到下一次的中斷檢查開始處;工作線程就是你的監控程序的控制流線程,一直等中斷線程的通知事件,如果等到該事件有信號,表示通知已經到達,則轉入自己的正式工作,正式工作在監控程序中表現的就是你的各種數據處理函數,控制函數等等,各種業務邏輯的該類函數是各異的,但核心的工作線程機制是相同的[5],為作者團隊將工作線程改為中斷測試線程的流程圖,將中斷測試的代碼段放置該線程的不同的地方就可以做不同的測試了,如圖2所示。

圖2 工作線程流程圖

3 中斷試驗方法

編寫好中斷服務線程和主工作線程后,下面就要求做嚴格的中斷服務程序的測試,這不同與Windows下一般的程序,時間要求不太嚴格差一點無所謂,軍用系統要求非常嚴格。

試驗環境:一臺雙核工控機,帶4個PCI插槽,軟件環境為Windows xp sp3,準備已經計量過的三用表,示波器,一臺有硬件組專門設計的可通過跳線設置的各種時序的時碼器,該試驗中斷程序使用delphi和C++Builder編程,在中斷線程和工作線程內輸出DO信號,使用硬件方法(示波器)檢查中斷線程或者工作線程是否正常。

通過在中斷線程和工作線程中不同地方輸出DIO信號,在示波器一端觀察并記錄這些輸出,即可測出你欲測試的時序是否正常。當中斷程序執行時,在Windows環境下此時加載大內存程序,例如Word、Excel、開發工具C++Builder或者其他程序。極小化窗口,拖動窗口等動作,觀察示波器一端波形是否變化,即可判斷出你的中斷服務是否正常(干擾信號)。如果示波器輸出不受上述操作影響。說明你接入的中斷信號在你設計的服務程序中可使用。如果受影響,說明該中斷服務軟件不可用。然后不斷變換輸入時序信號,從50 ms開始,每隔10 ms接入中斷信號,直到1 ms級的試驗。從10 ms級以下每隔1 ms做一次試驗,重復以上試驗步驟,觀察你的輸出受影響否。作者帶領的團隊成員編制了這一試驗專用程序,使用DelphiC++Builder兩種語言比較得到了多組結果,這2種語言開發的程序對中斷的測試結果差別很小。

下面介紹幾組試驗方法:

①中斷線程中交替輸出DIO為1或者0,可以在示波器一端測試出中斷是否嚴格按時序出現;

②中斷線程中輸出DIO為1,工作線程中輸出DIO為0,可以測出工作線程中等待事件的調度時間。(Windows API的WaitForSingleObject函數[6]);

③中斷線程中不輸出DIO,只在工作線程中交替輸出1或者0,可以測試出你設計的中斷服務工作后,主工作線程是否按嚴格時序執行任務;

④中斷線程中插幾句Windows API函數,在插入前后分別輸出1或者0,可以測出Windows API化費的時間;

⑤在中斷線程中上下兩句程序中交替輸出1或者0,可以測出DIO輸出的快慢;

⑥在工作線程的你的控制函數前后分別輸出DIO的1或者0,可以測出你的執行主工作函數所花費的時間,等等。

有些讀者可能質疑為什么不使用高性能計數器呢[7],因為在測試時要加入干擾,比如拖動窗口等等,只有硬件級的測試才是最令人信服的,示波器可以捕獲到如何微小的變化。課題組做了從50 ms直至1 ms級的信號接入測試,設計的中斷服務可以工作在兩毫秒級別上都不受干擾影響,這已經大大超出了原工程科研項目的要求。

4 其他相關實驗

在做這些中斷試驗中,作者另外也做了相關的其他輔助試驗,例如以下一些試驗也頗有意義[8]:Windows多媒體時鐘、毫秒級精確度測試、Windows線程級時鐘及毫秒級精確度測試;其他由Delphi組件開發的時鐘精確度測試;Windows消息(用戶消息從發到收)耗時測試;Windows高性能計數器精確度測試;Windows線程級調度測試(從A線程設置事件,到B線程等到事件所花費的時間),這些測試全在硬件DIO卡上完成;

課題組經測試:Windows多媒體時鐘可以達到1 ms級精確度,高性能計數器也可以達到毫秒級精確度。線程時鐘及其他幾個Delphi組件時鐘受窗口移動影響[9]。通過測試發現Windows線程中使用Event對象同步是非常快的,在微妙級。消息調度是不可靠的,受窗口操作影響,Windows定時器消息在實時監控程序中不可做為中斷使用的,離要求差的太遠。

5 結束語

在軍用的實時控制項目中,使用硬件中斷接入是最保險的手段,雖然Windows多媒體時鐘可達到1 ms級精確度,但不可作為中斷使用,因為無法同其他時鐘設備同步。硬件信號可以提供的非常快,但作為中斷服務使用時一定要檢測軟件系統是否受影響。通過以上各種測試程序檢測,作者團隊接入的信號中斷方式工作在2 ms級不受其他操作干擾影響,已經超出原設計目標,希望該文對廣大讀者有益。

[1]趙蘭濤,蘇彥華.DELPHI串口通信技術與工程實踐[M].北京:人民郵電出版社,2004.

[2]潭燕,趙磊,李之明.Delphi高級輔助工具精解[M].北京:中國鐵道出版社,2003.

[3]JEFFREY J,CHRISTOPHE N.Windows核心編程[M].葛子昂,周靖,廖敏,譯.北京:清華大學出版社,2008.

[4]范文慶,周彬彬,安靖.精通Windows API--函數接口編程實例[M].北京:人民郵電出版社,2009.

[5]飛思科技產品研發中心.Delphi下深入Windows核心編程[M].北京:電子出版社,2003.

[6]李存賓,汪兵.Delphi深度編程及其項目應用開發[M].北京:中國水利水電出版社,2003.

[7]RICHTER J.Windows高級編程指南[M].王書洪,劉光明,譯.北京:清華大學出版社,1999.

[8]張龍卿.Delphi 6深入編程技術[M].北京:希望電子出版社, 2002.

[9]明日科技.Delphi組件參考大全[M].北京:人民郵電出版社, 2006.

Introducing Method of Hardware Interruption and Depth Performance Test of Interruption

CAI Wen-zhai
(The 39th Research Institute of CETC,Xi'an Shaanxi 710065,China)

This paper discusses the generation method of hardware interruption in Windows operation system.The designed interruption service procedure is tested in various time sequences by using hardware DIO output card,and the interference test is carried out when interruption service works in Windows system.Multiple test methods within the interruption threads and work threads are proposed,the required time of implementing the relevant code segment by kernel level scheduling in Windows system is studied intensively,the accuracy of multiple timers is tested,and the interruption service procedure is designed for engineering purpose.

interruption;timer;performance test;thread;event

TP39

A

1008-1739(2014)23-54-4

定稿日期:2014-11-12

猜你喜歡
信號
信號
鴨綠江(2021年35期)2021-04-19 12:24:18
完形填空二則
7個信號,警惕寶寶要感冒
媽媽寶寶(2019年10期)2019-10-26 02:45:34
孩子停止長個的信號
《鐵道通信信號》訂閱單
基于FPGA的多功能信號發生器的設計
電子制作(2018年11期)2018-08-04 03:25:42
基于Arduino的聯鎖信號控制接口研究
《鐵道通信信號》訂閱單
基于LabVIEW的力加載信號采集與PID控制
Kisspeptin/GPR54信號通路促使性早熟形成的作用觀察
主站蜘蛛池模板: 呦女精品网站| 色哟哟国产精品| 亚洲av无码久久无遮挡| 免费国产黄线在线观看| 久久久精品无码一二三区| 国产女人18毛片水真多1| 88国产经典欧美一区二区三区| 国产精品一老牛影视频| 久久精品嫩草研究院| 国产在线观看成人91| 中字无码av在线电影| 欧美激情,国产精品| 真人高潮娇喘嗯啊在线观看| 毛片视频网址| 热久久国产| 狼友视频一区二区三区| 白浆免费视频国产精品视频 | 亚洲精品成人片在线观看| 日韩欧美91| 亚洲无码免费黄色网址| 91口爆吞精国产对白第三集| 日韩精品欧美国产在线| 日韩精品久久无码中文字幕色欲| 国产欧美视频一区二区三区| 久久免费视频6| 91久草视频| 国产不卡在线看| 国产一级二级在线观看| 成人蜜桃网| 强乱中文字幕在线播放不卡| 亚洲国产精品日韩专区AV| 国产激爽爽爽大片在线观看| 一区二区理伦视频| 欧美成人日韩| 亚洲综合第一页| 国产一二三区视频| 99视频在线观看免费| 四虎永久在线| 日韩福利在线观看| 久久大香香蕉国产免费网站| 99在线视频精品| 国产伦精品一区二区三区视频优播 | 亚洲欧美一区二区三区蜜芽| 欧美成人午夜视频免看| 欧美中文字幕第一页线路一| 无码精品福利一区二区三区| 青青久视频| 国产幂在线无码精品| 国产精品13页| 国产主播一区二区三区| 99热最新在线| AV天堂资源福利在线观看| 在线免费观看a视频| 福利在线不卡| 国产精品视频a| 国产成人狂喷潮在线观看2345| 久久中文无码精品| 中文字幕免费视频| 黄色三级毛片网站| 国产精品欧美日本韩免费一区二区三区不卡| 麻豆国产原创视频在线播放| 亚洲精品无码久久久久苍井空| 欧美成人日韩| 国产视频自拍一区| 亚洲人成影院午夜网站| 久久精品女人天堂aaa| 狼友视频国产精品首页| 国产精品yjizz视频网一二区| 国产男女免费完整版视频| 啪啪啪亚洲无码| 久久精品视频一| 日韩久草视频| 国产青榴视频| 欧美午夜小视频| 欧类av怡春院| 亚洲V日韩V无码一区二区| 国产亚洲精品97在线观看 | 一级毛片免费播放视频| 天堂中文在线资源| 国产一区二区三区免费观看| 亚洲一欧洲中文字幕在线| 九九九精品成人免费视频7|