欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種適用于多中斷數(shù)據(jù)接收的系統(tǒng)驅(qū)動(dòng)方法與流程

文檔序號(hào):11654012閱讀:285來(lái)源:國(guó)知局
一種適用于多中斷數(shù)據(jù)接收的系統(tǒng)驅(qū)動(dòng)方法與流程
本發(fā)明涉及數(shù)據(jù)處理
技術(shù)領(lǐng)域
,具體涉及一種適用于多中斷數(shù)據(jù)接收的系統(tǒng)驅(qū)動(dòng)方法。
背景技術(shù)
:數(shù)據(jù)接收卡是一種廣泛應(yīng)用的測(cè)試設(shè)備,為了便于數(shù)據(jù)接收卡使用,通常利用windows系統(tǒng)的可視化界面,實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)、分析與顯示,因此,需要開(kāi)發(fā)基于windwos系統(tǒng)的驅(qū)動(dòng),完成數(shù)據(jù)接收卡與用戶應(yīng)用程序間的橋接?,F(xiàn)有技術(shù)中的接收板卡在采集多種類(lèi)型數(shù)據(jù)時(shí)會(huì)出現(xiàn)輸出多中斷的情況,而一般的驅(qū)動(dòng)方法不能實(shí)時(shí)、穩(wěn)定、有效地響應(yīng)中斷,無(wú)法滿足實(shí)際工程中實(shí)時(shí)采集存儲(chǔ)多種數(shù)據(jù)類(lèi)型的需求。技術(shù)實(shí)現(xiàn)要素:本發(fā)明針對(duì)傳統(tǒng)驅(qū)動(dòng)不能有效響應(yīng)部分中斷的情況,設(shè)計(jì)了一種提高驅(qū)動(dòng)數(shù)據(jù)處理效率,有效響應(yīng)多中斷的驅(qū)動(dòng)方法,以實(shí)現(xiàn)接收卡穩(wěn)定的采集數(shù)據(jù),提高了數(shù)據(jù)采集的實(shí)時(shí)性。為了解決上述技術(shù)問(wèn)題,本發(fā)明采用了如下的技術(shù)方案:一種適用于多中斷數(shù)據(jù)接收的系統(tǒng)驅(qū)動(dòng)方法,包括以下步驟:s1.創(chuàng)建并初始化驅(qū)動(dòng)功能模塊;s2.讀取系統(tǒng)上存在的硬件設(shè)備的配置信息,查找匹配設(shè)備,判斷系統(tǒng)上存在的硬件設(shè)備是否為匹配設(shè)備,若是,則進(jìn)入步驟s3,若否,則退出驅(qū)動(dòng)功能模塊;s3.將硬件設(shè)備的物理地址映射轉(zhuǎn)換成系統(tǒng)能夠識(shí)別的虛擬地址,實(shí)現(xiàn)驅(qū)動(dòng)程序?qū)τ布O(shè)備的直接訪問(wèn)與操作;s4.初始化硬件設(shè)備中斷及通道,接收上層應(yīng)用程序的io控制請(qǐng)求,寫(xiě)入寄存器;s5.多中斷數(shù)據(jù)處理模塊進(jìn)行中斷處理,建立中斷類(lèi)型緩存表和數(shù)據(jù)緩存表,與硬件設(shè)備建立握手;s6.啟動(dòng)延遲過(guò)程調(diào)用,建立延遲過(guò)程調(diào)用函數(shù);s7.延遲過(guò)程調(diào)用函數(shù)根據(jù)中斷類(lèi)型緩存表的存儲(chǔ)類(lèi)型進(jìn)行不同數(shù)據(jù)類(lèi)型的數(shù)據(jù)存儲(chǔ),注冊(cè)事件,與上層的應(yīng)用程序進(jìn)行通信;s8.上層應(yīng)用程序下發(fā)接收數(shù)據(jù)指令,通知上層應(yīng)用程序性從數(shù)據(jù)緩存中搬移數(shù)據(jù)。進(jìn)一步地,所述的步驟s5中的中斷處理包括以下步驟:s5-5.建立中斷類(lèi)型緩存表和中斷處理函數(shù),初始化中斷處理函數(shù)中的讀計(jì)數(shù)與寫(xiě)計(jì)數(shù);s5-6.在中斷處理函數(shù)中接收硬件設(shè)備中斷,根據(jù)寄存器存儲(chǔ)的硬件設(shè)備中斷類(lèi)型將不同的中斷類(lèi)型標(biāo)志位寫(xiě)入中斷類(lèi)型緩存表,累加相應(yīng)中斷類(lèi)型的讀計(jì)數(shù);s5-7.根據(jù)中斷類(lèi)型標(biāo)志位預(yù)判是否存在其他類(lèi)型數(shù)據(jù),若存在,寫(xiě)入中斷類(lèi)型緩存表,若不存在,進(jìn)入步驟s5-3;s5-8.中斷類(lèi)型預(yù)判完成后,向寄存器寫(xiě)入數(shù)據(jù),輸出脈沖,多中斷數(shù)據(jù)處理模塊與硬件設(shè)備完成握手,通知硬件設(shè)備將高電平的中斷信號(hào)拉低,釋放中斷。進(jìn)一步地,所述的步驟s6中的延遲過(guò)程調(diào)用函數(shù)包括以下步驟:s6-4.啟動(dòng)延遲過(guò)程調(diào)用函數(shù);s6-5.根據(jù)中斷類(lèi)型緩存表中的中斷類(lèi)型在延遲過(guò)程調(diào)用函數(shù)中進(jìn)行數(shù)據(jù)搬移,并累加相應(yīng)中斷類(lèi)型緩存表中的中斷類(lèi)型的寫(xiě)計(jì)數(shù);s6-6.根據(jù)不同類(lèi)型事件,通知上層應(yīng)用程序從數(shù)據(jù)緩存中搬移數(shù)據(jù)。進(jìn)一步地,所述的通道為dma通道。進(jìn)一步地,所述的硬件設(shè)備的物理地址包括io地址和memory地址。進(jìn)一步地,使用標(biāo)準(zhǔn)入口函數(shù)driverentry創(chuàng)建并初始化驅(qū)動(dòng)功能模塊。進(jìn)一步地,所述的中斷處理函數(shù)中用write函數(shù)進(jìn)行讀計(jì)數(shù),所述的中斷處理函數(shù)中用read函數(shù)進(jìn)行寫(xiě)計(jì)數(shù)。本發(fā)明由于采用以上技術(shù)方案,使之與現(xiàn)有技術(shù)相比,具有以下的優(yōu)點(diǎn)和積極效果:1.采用多中斷數(shù)據(jù)處理模塊進(jìn)行中斷處理,使中斷處理函數(shù)與硬件設(shè)備建立握手,主動(dòng)控制硬件設(shè)備輸出的中斷脈沖寬度,解決了驅(qū)動(dòng)程序不能實(shí)時(shí)穩(wěn)定地響應(yīng)固定脈寬中斷的情況,提高了接收設(shè)備數(shù)據(jù)采集的穩(wěn)定性,解決了驅(qū)動(dòng)處理數(shù)據(jù)時(shí)出現(xiàn)的丟數(shù)問(wèn)題,提高了數(shù)據(jù)接收卡的實(shí)時(shí)性與穩(wěn)定性;2.建立中斷類(lèi)型緩存表以存儲(chǔ)不同類(lèi)型的數(shù)據(jù)標(biāo)志,將應(yīng)該在中斷處理函數(shù)中完成數(shù)據(jù)搬移的過(guò)程轉(zhuǎn)移到低優(yōu)先級(jí)的延遲過(guò)程調(diào)用處理函數(shù)中,大大縮短了中斷處理函數(shù)的處理時(shí)間,提高了驅(qū)動(dòng)接收數(shù)據(jù)的實(shí)時(shí)性;3.改變了傳統(tǒng)的應(yīng)用程序查詢內(nèi)核數(shù)據(jù)搬移情況讀取數(shù)據(jù)的模式,在數(shù)據(jù)搬移完成后主動(dòng)通知上層應(yīng)用程序進(jìn)行數(shù)據(jù)搬移,提高了上層的應(yīng)用程序進(jìn)行數(shù)據(jù)處理與存儲(chǔ)的執(zhí)行效率,有效降低了cpu使用率。附圖說(shuō)明圖1是本發(fā)明中的驅(qū)動(dòng)方法的流程圖;圖2是本發(fā)明中的驅(qū)動(dòng)方法的中斷處理和延遲過(guò)程調(diào)用的流程圖;圖3是本發(fā)明實(shí)施例2中接受板卡的接受數(shù)據(jù)方式。具體實(shí)施方式以下結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明提出的技術(shù)方案進(jìn)一步詳細(xì)說(shuō)明。根據(jù)下面說(shuō)明和權(quán)利要求書(shū),本發(fā)明的優(yōu)點(diǎn)和特征將更清楚。需說(shuō)明的是,附圖均采用非常簡(jiǎn)化的形式且均使用非精準(zhǔn)的比率,僅用于方便、明晰地輔助說(shuō)明本發(fā)明實(shí)施例的目的。本發(fā)明是根據(jù)自主研發(fā)板卡需要采集多種類(lèi)型數(shù)據(jù),針對(duì)數(shù)據(jù)接收卡產(chǎn)生突發(fā)多中斷脈沖,且不同類(lèi)型中斷脈沖間隔可能會(huì)很短的實(shí)際情況,采用與硬件設(shè)備建立握手機(jī)制的方式實(shí)時(shí)釋放中斷電平信號(hào),主動(dòng)控制硬件設(shè)備輸出的中斷脈沖寬度,解決了驅(qū)動(dòng)程序不能實(shí)時(shí)穩(wěn)定地響應(yīng)固定脈寬中斷的情況,接收卡能實(shí)時(shí)穩(wěn)定地接收數(shù)據(jù),同時(shí)建立中斷類(lèi)型緩存表,將數(shù)據(jù)搬移過(guò)程放在低優(yōu)先級(jí)的延遲過(guò)程調(diào)用函數(shù)中,大大縮短了中斷函數(shù)處理時(shí)間,提高中斷處理函數(shù)的執(zhí)行效率?,F(xiàn)通過(guò)實(shí)施例對(duì)發(fā)明的技術(shù)方案進(jìn)行進(jìn)一步陳述。實(shí)施例1參見(jiàn)圖1,本發(fā)明通過(guò)總線級(jí)驅(qū)動(dòng)查找并識(shí)別硬件設(shè)備、地址映射的功能,主要是在內(nèi)核級(jí)中建立功能級(jí)驅(qū)動(dòng)模塊,實(shí)現(xiàn)數(shù)據(jù)搬移存儲(chǔ),該驅(qū)動(dòng)方法的具體步驟為:s1.創(chuàng)建并初始化驅(qū)動(dòng)功能模塊;s2.讀取系統(tǒng)上存在的硬件設(shè)備的配置信息,查找匹配設(shè)備,判斷系統(tǒng)上存在的硬件設(shè)備是否為匹配設(shè)備;若是,則進(jìn)入步驟s3,若否,則退出驅(qū)動(dòng)功能模塊;s3.將硬件設(shè)備的物理地址映射轉(zhuǎn)換成系統(tǒng)能夠識(shí)別的虛擬地址,實(shí)現(xiàn)驅(qū)動(dòng)程序?qū)τ布O(shè)備的直接訪問(wèn)與操作,其中,物理地址可包括硬件設(shè)備的io地址及memory地址;s4.初始化硬件設(shè)備中斷及通道,同時(shí),接收上層應(yīng)用程序的io控制請(qǐng)求,寫(xiě)入寄存器,以便開(kāi)啟中斷,從而能接收硬件設(shè)備的中斷;s5.多中斷數(shù)據(jù)處理模塊進(jìn)行中斷處理,建立中斷類(lèi)型緩存表和數(shù)據(jù)緩存表,當(dāng)然,建立中斷類(lèi)型緩存表和數(shù)據(jù)緩存表的過(guò)程也可在步驟s4中實(shí)現(xiàn),多中斷數(shù)據(jù)處理模塊是通過(guò)中斷處理函數(shù)接收中斷,并與硬件設(shè)備建立握手,存儲(chǔ)不同中斷類(lèi)型的標(biāo)志位;s6.啟動(dòng)延遲過(guò)程調(diào)用,建立延遲過(guò)程調(diào)用函數(shù);對(duì)于步驟s5和步驟s6的處理過(guò)程將在后續(xù)的說(shuō)明中進(jìn)行具體詳述;s7.延遲過(guò)程調(diào)用函數(shù)根據(jù)中斷類(lèi)型緩存表的存儲(chǔ)類(lèi)型進(jìn)行不同數(shù)據(jù)類(lèi)型的數(shù)據(jù)存儲(chǔ),注冊(cè)事件,與上層的應(yīng)用程序進(jìn)行通信;s8.上層應(yīng)用程序下發(fā)接收數(shù)據(jù)指令,通知上層應(yīng)用程序性從數(shù)據(jù)緩存中搬移數(shù)據(jù),從而完成內(nèi)核層到應(yīng)用層數(shù)據(jù)的搬移,由于在數(shù)據(jù)搬移完成后能主動(dòng)通知上層應(yīng)用程序進(jìn)行數(shù)據(jù)搬移,提高了上層的應(yīng)用程序進(jìn)行數(shù)據(jù)處理與存儲(chǔ)的執(zhí)行效率,有效降低了cpu使用率。參見(jiàn)圖2,圖2為中斷處理和延遲過(guò)程調(diào)用的流程圖,在該過(guò)程中建立了中斷類(lèi)型緩存表以存儲(chǔ)不同類(lèi)型的數(shù)據(jù)標(biāo)志,將應(yīng)該在中斷處理函數(shù)中完成數(shù)據(jù)搬移的過(guò)程轉(zhuǎn)移到低優(yōu)先級(jí)的延遲過(guò)程調(diào)用處理函數(shù)中,從大大縮短了中斷處理函數(shù)的處理時(shí)間,提高了驅(qū)動(dòng)接收數(shù)據(jù)的實(shí)時(shí)性,具體步驟如下:s5-1.建立中斷類(lèi)型緩存表和中斷處理函數(shù),初始化中斷處理函數(shù)中的讀計(jì)數(shù)與寫(xiě)計(jì)數(shù),讀計(jì)數(shù)與寫(xiě)計(jì)數(shù)可以用write函數(shù)或read函數(shù)編寫(xiě);s5-2.在中斷處理函數(shù)中接收硬件設(shè)備中斷,根據(jù)寄存器存儲(chǔ)的硬件設(shè)備中斷類(lèi)型將不同的中斷類(lèi)型標(biāo)志位寫(xiě)入中斷類(lèi)型緩存表,累加相應(yīng)中斷類(lèi)型的讀計(jì)數(shù);s5-3.根據(jù)中斷類(lèi)型標(biāo)志位預(yù)判是否存在其他類(lèi)型數(shù)據(jù),若存在,寫(xiě)入中斷類(lèi)型緩存表,若不存在,進(jìn)入步驟s5-3;s5-4.中斷類(lèi)型預(yù)判完成后,向寄存器寫(xiě)入數(shù)據(jù),輸出脈沖,多中斷數(shù)據(jù)處理模塊與硬件設(shè)備完成握手,通知硬件設(shè)備將高電平的中斷信號(hào)拉低,釋放中斷,有效防止驅(qū)動(dòng)程序由于中斷處理函數(shù)的處理時(shí)間較長(zhǎng)而未能響應(yīng)其他中斷脈沖信號(hào)的情況的發(fā)生。在步驟s5后,進(jìn)入步驟s6,步驟s6中的延遲過(guò)程調(diào)用函數(shù)包括以下步驟:s6-1.啟動(dòng)延遲過(guò)程調(diào)用函數(shù),此時(shí),可釋放中斷處理函數(shù),繼續(xù)接收其他類(lèi)型中斷,提高中斷處理效率;s6-2.根據(jù)中斷類(lèi)型緩存表中的中斷類(lèi)型在延遲過(guò)程調(diào)用函數(shù)中進(jìn)行數(shù)據(jù)搬移,并累加相應(yīng)中斷類(lèi)型緩存表中的中斷類(lèi)型的寫(xiě)計(jì)數(shù);s6-3.根據(jù)不同類(lèi)型事件,通知上層應(yīng)用程序從數(shù)據(jù)緩存中搬移數(shù)據(jù)。實(shí)施例2在計(jì)算機(jī)上開(kāi)發(fā)的基于windows系統(tǒng)的驅(qū)動(dòng)程序設(shè)計(jì)接收中斷電平信號(hào),實(shí)時(shí)采集不同類(lèi)型數(shù)據(jù),采用握手方式實(shí)時(shí)釋放中斷電平信號(hào),同時(shí)建立中斷類(lèi)型緩存表,在低優(yōu)先級(jí)的延遲過(guò)程調(diào)用函數(shù)中利用中斷緩存表的標(biāo)志信號(hào)進(jìn)行數(shù)據(jù)搬移,提高了中斷處理函數(shù)的執(zhí)行效率。在實(shí)施例中將對(duì)本發(fā)明的整個(gè)過(guò)程詳述,接受板卡的接受數(shù)據(jù)方式如圖3所示,數(shù)據(jù)接收卡實(shí)時(shí)接收不同類(lèi)型的空空接口信號(hào),通過(guò)cpci接口傳輸?shù)接?jì)算機(jī)平臺(tái)進(jìn)行數(shù)據(jù)分析。該接收設(shè)備采集信號(hào)的基本信息如表1所示。表1設(shè)備采集信號(hào)基本信息信號(hào)類(lèi)型中斷間隔數(shù)據(jù)量自主控制數(shù)據(jù)0.5s1mbps顯示數(shù)據(jù)1s320bps飛船狀態(tài)數(shù)據(jù)1s500bps圖像數(shù)據(jù)0.1s2mbps關(guān)鍵遙測(cè)數(shù)據(jù)0.7s1.2mbps本發(fā)明的驅(qū)動(dòng)方法詳細(xì)可分為驅(qū)動(dòng)處理流程和多中斷處理流程,驅(qū)動(dòng)處理流程的步驟包括:第一步:創(chuàng)建并初始化驅(qū)動(dòng)功能模塊,具體來(lái)說(shuō),可通過(guò)進(jìn)入標(biāo)準(zhǔn)入口函數(shù)driverentry,創(chuàng)建和初始化功能對(duì)象fdo;第二步:讀取系統(tǒng)上存在的硬件設(shè)備的配置信息,查找匹配設(shè)備,判斷系統(tǒng)上存在的硬件設(shè)備是否為匹配設(shè)備;輪訓(xùn)系統(tǒng)總線上存在的cpci設(shè)備,對(duì)于數(shù)據(jù)接收卡則是根據(jù)讀取的數(shù)據(jù)接收卡epprom配置信息來(lái)查找匹配設(shè)備;若是,則進(jìn)入下一步,若否,則退出驅(qū)動(dòng)功能模塊;第三步:將硬件設(shè)備的物理地址映射轉(zhuǎn)換成系統(tǒng)能夠識(shí)別的虛擬地址,實(shí)現(xiàn)驅(qū)動(dòng)程序?qū)τ布O(shè)備的直接訪問(wèn)與操作,其中,物理地址可包括硬件設(shè)備的io地址及memory地址;第四步:初始化硬件中斷及dma通道,建立中斷類(lèi)型緩存表、不同類(lèi)型數(shù)據(jù)緩存表;第五步:接收上層應(yīng)用程序的io指令,寫(xiě)入寄存器,以便開(kāi)啟中斷,從而能接收硬件設(shè)備的中斷;第六步:中斷處理函數(shù)接收中斷,建立握手,存儲(chǔ)不同中斷類(lèi)型標(biāo)志位;第七步:?jiǎn)?dòng)延遲過(guò)程調(diào)用,此時(shí)可開(kāi)啟延遲過(guò)程調(diào)用函數(shù);延遲過(guò)程調(diào)用函數(shù)根據(jù)中斷類(lèi)型緩存表的存儲(chǔ)類(lèi)型進(jìn)行不同數(shù)據(jù)類(lèi)型的數(shù)據(jù)存儲(chǔ),注冊(cè)事件,與上層的應(yīng)用程序進(jìn)行通信;第八步:上層應(yīng)用程序下發(fā)接收數(shù)據(jù)指令,通知上層應(yīng)用程序性從數(shù)據(jù)緩存中搬移數(shù)據(jù)。二、多中斷處理流程主要是建立握手機(jī)制第一步:建立中斷類(lèi)型緩存表和中斷處理函數(shù),初始化中斷處理函數(shù)中的讀計(jì)數(shù)write_count_n=0與寫(xiě)計(jì)數(shù)read_count_n=0;第二步:在中斷處理函數(shù)中接收中斷,根據(jù)寄存器存儲(chǔ)的中斷類(lèi)型將不同的標(biāo)志位寫(xiě)入中斷類(lèi)型緩存表,相應(yīng)中斷類(lèi)型的write_count_n加1,并根據(jù)中斷類(lèi)型標(biāo)志位預(yù)判是否有其他中斷到達(dá);第三步:中斷類(lèi)型預(yù)判完成后,向固定io寄存器中寫(xiě)入1,后寫(xiě)入0,輸出脈沖,與硬件設(shè)備完成握手,通知硬件將高電平的中斷信號(hào)拉低,有效防止驅(qū)動(dòng)程序由于中斷處理函數(shù)的處理時(shí)間較長(zhǎng)而未能響應(yīng)其他中斷脈沖信號(hào)的情況的發(fā)生;第四步:?jiǎn)?dòng)延遲過(guò)程調(diào)用,啟動(dòng)延遲過(guò)程調(diào)用函數(shù),釋放中斷處理函數(shù),繼續(xù)接收其他類(lèi)型中斷,提高中斷處理效率;第五步:根據(jù)中斷類(lèi)型緩存表類(lèi)型在延遲過(guò)程調(diào)用函數(shù)中進(jìn)行不同數(shù)據(jù)的搬移,并將相應(yīng)中斷類(lèi)型的read_count_n加1,根據(jù)數(shù)據(jù)類(lèi)型置不同類(lèi)型事件,通知上層應(yīng)用程序從數(shù)據(jù)緩存中搬移數(shù)據(jù)。顯然,本領(lǐng)域的技術(shù)人員可以對(duì)發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。當(dāng)前第1頁(yè)12
當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
东平县| 商洛市| 茶陵县| 万山特区| 株洲市| 临朐县| 崇阳县| 成安县| 宜章县| 大荔县| 平谷区| 辽阳县| 广河县| 绥宁县| 西吉县| 兰西县| 高台县| 丽江市| 乐山市| 吴川市| 荣成市| 环江| 泾源县| 溆浦县| 桦南县| 土默特左旗| 兴仁县| 珲春市| 丰宁| 齐河县| 色达县| 大洼县| 呼伦贝尔市| 汉川市| 自贡市| 马龙县| 肥东县| 武穴市| 元氏县| 拉萨市| 尖扎县|