在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于PCI總線模塊的多通道串行數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)

            基于PCI總線模塊的多通道串行數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)

            作者: 時(shí)間:2012-09-17 來(lái)源:網(wǎng)絡(luò) 收藏

            3 軟件開(kāi)發(fā)

            3.1 驅(qū)動(dòng)程序

            設(shè)備的硬件資源由Windows操作根據(jù)PC機(jī)中所有設(shè)備對(duì)資源的占有來(lái)統(tǒng)一分配。為了保證的安全和穩(wěn)定性,在Windows2000及其后的微軟操作系統(tǒng)中,運(yùn)行在ring3層的用戶應(yīng)用程序無(wú)法直接訪問(wèn)硬件,而必須通過(guò)運(yùn)行于ring0層的設(shè)備驅(qū)動(dòng)程序來(lái)訪問(wèn)。設(shè)備驅(qū)動(dòng)不僅要實(shí)現(xiàn)對(duì)硬件的操作,還要為用戶應(yīng)用程序提供專用的API函數(shù)庫(kù),以方便用戶實(shí)現(xiàn)對(duì)硬件的操作訪問(wèn)。

            Windows XP操作系統(tǒng)下的驅(qū)動(dòng)程序一般是WDM(Windows Driver Model)模型開(kāi)發(fā)的。該模型中的上層應(yīng)用程序通過(guò)調(diào)用Win32 API函數(shù)發(fā)出對(duì)設(shè)備的訪問(wèn)請(qǐng)求,I/O管理器則根據(jù)這個(gè)請(qǐng)求構(gòu)造合適的IRP(I/O Request Packet,I/O請(qǐng)求包),并將其傳給設(shè)備驅(qū)動(dòng)程序,接著由驅(qū)動(dòng)程序直接訪問(wèn)硬件完成IRP處理,最后由I/O管理器把數(shù)據(jù)和結(jié)構(gòu)返回給應(yīng)用程序。

            WDM驅(qū)動(dòng)比較常用的有以下三種方法:

            第一種是直接使用Windows DDK(Device

            Driver Kit,驅(qū)動(dòng)程序開(kāi)發(fā)包)開(kāi)發(fā)的驅(qū)動(dòng)程序面向Windows內(nèi)核,該方法工作穩(wěn)定,效率更高。但必須精通Windows內(nèi)部體系結(jié)構(gòu)及設(shè)備驅(qū)動(dòng)程序的體系結(jié)構(gòu)等,因此開(kāi)發(fā)難度較大。

            第二種是使用DriverStudio。此工具軟件已經(jīng)做了很多基礎(chǔ)性工作,也進(jìn)行了一些封裝。

            第三種是使用WinDriver,使用該方法時(shí),開(kāi)發(fā)者只需要在用戶模式下編寫(xiě)程序來(lái)調(diào)用它提供的通用驅(qū)動(dòng)即可。其中Drvier Wizard可以進(jìn)行硬件診斷和自動(dòng)代碼生成。另外還可以將對(duì)速度要求較高的插入內(nèi)核運(yùn)行來(lái)獲取更好的性能。本系統(tǒng)即采用WinDriver開(kāi)發(fā)方法。

            3.2 WinDriver中的重要函數(shù)

            利用WinDriver開(kāi)發(fā)驅(qū)動(dòng)程序通常有兩種方法:第一種是利用Driver Wizard生成的代碼進(jìn)行修改;第二種是直接利用WinDriver提供的API函數(shù)來(lái)編寫(xiě)自己的程序。本系統(tǒng)即采用這種方法,開(kāi)發(fā)時(shí)首先要注意包含所有相關(guān)的頭文件。其基本驅(qū)動(dòng)程序的結(jié)構(gòu)及API函數(shù)如下:

            3.3 中斷實(shí)現(xiàn)

            的通信方式有查詢和中斷兩種方式。查詢方式實(shí)現(xiàn)簡(jiǎn)單,但是難以適應(yīng)實(shí)時(shí)性要求較高的場(chǎng)合,而且上位機(jī)軟件資源占用率過(guò)大;中斷方式則可克服以上缺點(diǎn),可以實(shí)現(xiàn)數(shù)據(jù)的實(shí)時(shí)傳輸。本系統(tǒng)將數(shù)據(jù)經(jīng)過(guò)處理后存入RAM,存滿一幀數(shù)據(jù),硬件便發(fā)出中斷請(qǐng)求信號(hào),上位機(jī)響應(yīng)中斷請(qǐng)求后,即可讀取一幀數(shù)據(jù)。

            要實(shí)現(xiàn)中斷機(jī)制,就要建立一個(gè)獨(dú)立的中斷響應(yīng)線程,并在主函數(shù)中完成中斷的使能、屏蔽及中斷線程的啟動(dòng)。另外,使用WinDriver處理電平中斷時(shí),還必須建立傳輸命令(INTCSR)來(lái)應(yīng)答中斷。

            其中斷處理過(guò)程分為四步:

            第一步,調(diào)用WDC_IntEnable(),此函數(shù)的功能是分配并初始化WC_INTERRUPT結(jié)構(gòu)體,自動(dòng)創(chuàng)建中斷處理線程,同時(shí)在其中包含WD_Int-Wait()函數(shù),作用是使線程休眠直至有中斷發(fā)生。另外,還可以調(diào)用底層API函數(shù)InterruptEnable()或WD_Enable(),但此時(shí)需要由用戶自己創(chuàng)建中斷線程;

            第二步是中斷線程無(wú)限循環(huán)以等待中斷發(fā)生。中斷發(fā)生時(shí),WinDriver在內(nèi)核中執(zhí)行傳輸命令,當(dāng)操作返回到用戶模式時(shí),驅(qū)動(dòng)的用戶模式中斷處理例程將被調(diào)用;之后,中斷處理例程返回,但中斷等待循環(huán)繼續(xù);最后在不再使用中斷時(shí),調(diào)用’WDC_IntDisable()、底層API函數(shù)Inter-mptDisable()或WD_IntDisable()來(lái)關(guān)閉中斷。

            3.4 驅(qū)動(dòng)的分發(fā)及安裝

            驅(qū)動(dòng)的分發(fā)是指在目標(biāo)機(jī)上不用安裝WinDriver開(kāi)發(fā)包即可應(yīng)用其開(kāi)發(fā)的設(shè)備驅(qū)動(dòng)。需要準(zhǔn)備的分發(fā)包應(yīng)包括windrvr6.sys、windrvr-6.inf、wd921.cat、waapi921.dll、difxapi.dll、自己的INF(Information File)等文件,而且即使是自己開(kāi)發(fā)內(nèi)核驅(qū)動(dòng)。也應(yīng)包含在內(nèi)。

            Windows操作系統(tǒng)依靠INF文件來(lái)得到即插即用設(shè)備的驅(qū)動(dòng)程序信息。WinDriver會(huì)自動(dòng)檢測(cè)PC機(jī)上的即插即用設(shè)備。并為相應(yīng)硬件生成I-NF文件,而且只需稍作修改即可。INF文件可引導(dǎo)系統(tǒng)找到硬件所需要的驅(qū)動(dòng)程序,由WinDriver生成的INF文件中列出了默認(rèn)的拷貝文件win-drvr6.sys。設(shè)備驅(qū)動(dòng)可通過(guò)工作于內(nèi)核模式的windrvr6.sys訪問(wèn)硬件。之后在目標(biāo)機(jī)上裝入驅(qū)動(dòng)分發(fā)包及INF文件,即可通過(guò)應(yīng)用程序控制設(shè)備。

            4 結(jié)束語(yǔ)

            該數(shù)據(jù)傳輸系統(tǒng)的PCI接口邏輯和數(shù)據(jù)傳輸、處理、緩存等用戶邏輯可集成于一片F(xiàn)PGA中。因而可極大的提高資源利用率,并可滿足大量數(shù)據(jù)高速傳輸?shù)囊蟆I衔粰C(jī)應(yīng)用程序采用中斷方式讀取數(shù)據(jù)可大大提高系統(tǒng)的性能。目前,經(jīng)多次試驗(yàn),該系統(tǒng)已完全可以滿足工程需要。


            上一頁(yè) 1 2 3 下一頁(yè)

            評(píng)論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉