• <blockquote id="fficu"><optgroup id="fficu"></optgroup></blockquote>

    <table id="fficu"></table>

    <sup id="fficu"></sup>
    <output id="fficu"></output>
    1. ACS880-07C
      關(guān)注中國自動(dòng)化產(chǎn)業(yè)發(fā)展的先行者!
      橫河電機-23年10月11日
      2024
      工業(yè)智能邊緣計算2024年會(huì )
      2024中國自動(dòng)化產(chǎn)業(yè)年會(huì )
      2023年工業(yè)安全大會(huì )
      OICT公益講堂
      當前位置:首頁(yè) >> 案例 >> 案例首頁(yè)

      案例頻道

      基于PCI總線(xiàn)的LON適配卡驅動(dòng)程序開(kāi)發(fā)
      • 企業(yè):控制網(wǎng)     領(lǐng)域:工業(yè)以太網(wǎng)     行業(yè):其他    
      • 點(diǎn)擊數:1950     發(fā)布時(shí)間:2004-12-01 13:50:00
      • 分享到:

       

      王郁平 凌志浩 吳勤勤

      1  引言

          現代計算機硬件功能的強大,使其操作系統也變得復雜,Windows 2000憑借其良好的安全性和穩定性成為目前主流操作系統。然而由于Windows 2000的安全機制使得用戶(hù)應用程序不能對系統的硬件資源進(jìn)行直接訪(fǎng)問(wèn),這樣就需要在應用程序與硬件之間構筑驅動(dòng)程序模塊。在實(shí)際工控應用中需要對自行開(kāi)發(fā)的硬件設備進(jìn)行控制,這樣就需要開(kāi)發(fā)特定的設備驅動(dòng)程序來(lái)跨越操作系統邊界對硬件資源進(jìn)行操作,并與用戶(hù)應用程序進(jìn)行通信。本文給出了一個(gè)基于PCI總線(xiàn)的LonWorks智能通信適配卡驅動(dòng)程序開(kāi)發(fā)與應用實(shí)例,實(shí)現了應用程序與適配卡中雙口RAM之間的數據通信。

      2  WDM驅動(dòng)模型

      2.1  Windows 2000的系統結構

          要寫(xiě)驅動(dòng)程序,必須要了解操作系統的結構。在WDM體系中,Windows 2000操作系統是最標準的實(shí)現方式,圖1顯示了Windows 2000系統結構。在Windows 2000操作系統環(huán)境下,一部分組件運行在用戶(hù)模式下,其它的則運行在內核模式下。

          用戶(hù)模式下的應用程序對Windows子系統進(jìn)行Win32 API的調用,這個(gè)調用由系統服務(wù)接口作用到I/O管理器,I/O管理器進(jìn)行必要的參數匹配和操作安全性檢查,然后創(chuàng )建一個(gè)稱(chēng)為IRP(IO Request Package,IO請求包)的數據結構,并把此IRP作為參數傳遞給驅動(dòng)程序。這樣,驅動(dòng)程序處理這個(gè)請求包,通過(guò)識別IRP中的物理設備對象(Physical Device Object,PDO)來(lái)區別是發(fā)送給哪個(gè)設備的,當要訪(fǎng)問(wèn)硬件時(shí),驅動(dòng)程序通過(guò)調用硬件抽象層函數來(lái)實(shí)現。硬件抽象層是Windows體系中的一個(gè)重要概念,它屏蔽了不同硬件平臺的差異,向操作系統上層提供統一接口。當驅動(dòng)程序處理完這個(gè)請求后,會(huì )將處理結果返回給I/O管理器,最后再由I/O管理器將執行結果返回給用戶(hù)模式下的應用程序。

       

      1  Windows 2000系統結構

      2.2  WDM驅動(dòng)程序模型

          在WDM驅動(dòng)程序模型中,每個(gè)硬件設備至少有兩個(gè)驅動(dòng)程序:一個(gè)稱(chēng)為功能(function)驅動(dòng)程序,它了解使硬件工作的所有細節,負責初始化I/O操作,處理I/O操作完成時(shí)所帶來(lái)的中斷事件,為用戶(hù)提供一種設備適合的控制方式;另一個(gè)稱(chēng)為總線(xiàn)(bus)驅動(dòng)程序,它負責管理硬件與計算機的連接。

          一個(gè)驅動(dòng)程序通常包含許多例程,當操作系統遇到一個(gè)IRP包時(shí),就調用驅動(dòng)程序中相應的例程來(lái)執行該IRP的操作,基本驅動(dòng)例程有:

          (1)  DriverEntry例程:負責驅動(dòng)程序的初始化,主要是初始化驅動(dòng)程序范圍的數據結構和資源。所有驅動(dòng)程序都必須包含此例程,當驅動(dòng)程序被裝載時(shí),PnP管理器為每個(gè)驅動(dòng)程序調用一次DriverEntry例程。

          (2)  AddDevice例程:PnP管理器調用此例程來(lái)初始化由該驅動(dòng)程序所控制的設備。當系統運行時(shí),一旦有新設備被枚舉,系統將調用AddDevice例程。

          (3)  Upload例程:負責釋放由DriverEntry例程所分配的驅動(dòng)程序范圍內的資源。

      3  WDM驅動(dòng)程序開(kāi)發(fā)

      3.1  硬件背景

          LON適配卡硬件接口如圖2所示,現場(chǎng)智能節點(diǎn)通過(guò)LonWorks總線(xiàn)將數據傳到監控計算機的LON適配卡時(shí),Neuron芯片通過(guò)總線(xiàn)收發(fā)器讀入數據,通過(guò)轉換和運算后,按規定的協(xié)議寫(xiě)入雙口RAM中,這樣監控計算機就可以通過(guò)PCI總線(xiàn)控制器讀取雙口RAM中的數據,來(lái)得到各智能節點(diǎn)送來(lái)的數據,實(shí)現監控功能。反之當計算機要發(fā)送參數或控制信息給智能節點(diǎn)時(shí),PCI總線(xiàn)控制器把PC機發(fā)送來(lái)的數據按照一定的協(xié)議寫(xiě)入到雙口RAM中,Neuron芯片讀取雙口RAM中的信息,然后通過(guò)總線(xiàn)收發(fā)器發(fā)送到LonWorks總線(xiàn)網(wǎng)絡(luò )中去。

       

      2  適配卡硬件接口原理圖

      3.2  驅動(dòng)開(kāi)發(fā)工具的選擇

          現在比較流行的驅動(dòng)開(kāi)發(fā)工具主要有3種:Windows DDK,DriverWorks,Windriver。表1簡(jiǎn)單對這3種工具作了分析和比較。在此,選擇DriverWorks開(kāi)發(fā)工具和Visual C++語(yǔ)言來(lái)對LON適配卡的驅動(dòng)程序進(jìn)行開(kāi)發(fā)。

      1  開(kāi)發(fā)工具的分析比較

      3.3  WDM驅動(dòng)程序框架

              DriverWizardDriverWorks創(chuàng )建WDM框架程序的工具,其簡(jiǎn)單易用的開(kāi)發(fā)向導能夠幫助開(kāi)發(fā)人員迅速開(kāi)發(fā)出特定的硬件設備驅動(dòng)程序框架,其主要步驟包括:

              (1)  選擇運行平臺:有WDM Driver,NT4.0 Style Driver,Empty Driver Project,Simple C++ Driver,如果選擇WDM Driver則會(huì )進(jìn)一步要求選擇WDM類(lèi)型,包括WDM Function DriverWDM Filter Driver等。

              (2)  選擇總線(xiàn)類(lèi)型:有ISA、PCI、USB、PCMCIA

      熱點(diǎn)新聞

      推薦產(chǎn)品

      x
      • 在線(xiàn)反饋
      1.我有以下需求:



      2.詳細的需求:
      姓名:
      單位:
      電話(huà):
      郵件:
      欧美精品欧美人与动人物牲交_日韩乱码人妻无码中文_国产私拍大尺度在线视频_亚洲男人综合久久综合天

    2. <blockquote id="fficu"><optgroup id="fficu"></optgroup></blockquote>

      <table id="fficu"></table>

      <sup id="fficu"></sup>
      <output id="fficu"></output>