中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于1394b總線仿真設備的WDM驅動開發(fā)

        基于1394b總線仿真設備的WDM驅動開發(fā)

        作者: 時間:2016-10-15 來源:網(wǎng)絡 收藏

        IEEE-1394b總線協(xié)議具有實時性、可靠性、確定性等特性,這些特性使其在點對點通信方面表現(xiàn)突出。IEEE-1394b作為F22猛禽戰(zhàn)機的總線,同時也使用在F35、NASA的航天飛機上以及DV設備上。而總線的仿真驗證設備需要圖形化的界面軟件,這就要求其工作環(huán)境支持PC機環(huán)境。作為硬件與軟件橋梁的驅動程序主要工作是保證軟硬件協(xié)調工作,提供安全簡單的操作接口,保證通信數(shù)據(jù)的可靠性、實時性、確定性等。

        本文引用地址:http://www.antipu.com.cn/article/201610/307352.htm

        1 硬件系統(tǒng)簡介

        圖1是以Xilinx的V6系列的FPGA為核心的硬件框圖。該設備具有3個余度,并且三余度之間能夠獨立工作,互不影響。硬件采用三路Link和PHY芯片,三路獨立供電。由于仿真設備運行的環(huán)境的封閉性,從而設計軟件和硬件兩種供電控制開關。軟件電源控制信號由FPGA控制可編程的電源控制芯片來遠程控制設備。設備供電無需外接電源,直接利用PC機的PCI或者PCIe總線插槽供電,硬件提供電源管理系統(tǒng)進行電壓轉換。該設備支持速率S100Mbps和S400Mbps,硬件提供S100Mbps和S400Mbps端口速率切換按鈕,F(xiàn)PGA內(nèi)部通信速率由邏輯控制完成。

        基于1394b總線仿真設備的WDM驅動開發(fā)

        FPGA邏輯功能框如圖2所示,F(xiàn)PGA邏輯對PCI/PCIe總線協(xié)議和1394b總線進行協(xié)議封裝以及協(xié)議解析;對內(nèi)存空間,IO空間以及中斷號等進行劃分;對操作寄存器進行定義;對發(fā)送數(shù)據(jù)的DM口,接收數(shù)據(jù)的GRF口進行控制;開放LINK和PHY的軟件訪問權限,便于實現(xiàn)遠程訪問功能;對DPRAM進行雙口切換操作,以保證數(shù)據(jù)通信的可靠性;設計退避算法防止總線競爭失敗數(shù)據(jù)丟失;支持操作,實現(xiàn)通信的實時性。

        基于1394b總線仿真設備的WDM驅動開發(fā)

        2 驅動設計

        驅動程序是硬件廠商根據(jù)硬件工作環(huán)境的操作系統(tǒng)編寫的配置文件,其運行于操作系統(tǒng)內(nèi)核態(tài),是設備與計算機交互的橋梁,它把硬件的功能告訴操作系統(tǒng),同時也將系統(tǒng)

        的指令傳達給硬件。驅動軟件分為軟件驅動和硬件驅動。軟件驅動是把工作最終交給CPU處理,對CPU依賴性比較高,對操作系統(tǒng)影響比較大;而硬件驅動能夠最大化的避免CPU的調度,提高硬件資源的利用率、增加傳輸?shù)膶崟r性、減少設備對計算機的依賴性等。

        本設備驅動程序采用硬件驅動,開發(fā)工具為DDK(Device Development Kit),調試工具為Debug view,其工作流程如圖3所示。

        基于1394b總線仿真設備的WDM驅動開發(fā)

        由于Windows是多任務非實時的操作系統(tǒng),每個進程占用處理器的時間應小于50微秒,如果需要長時間的硬件訪問應采用系統(tǒng)線程的方法,本設計采用三余度三個內(nèi)核線程對數(shù)據(jù)處理用以保證訪問的準確性。由于該設備硬件的快捷性和軟件的延時性,并且突發(fā)大數(shù)據(jù)量傳輸發(fā)生概率比較高。所以驅動程序在發(fā)送模塊上使用了,在接收模塊使用了,保證數(shù)據(jù)能夠平滑的通信,在突發(fā)大數(shù)據(jù)量操作時保證了數(shù)據(jù)的完整性和確定性。由于中斷函數(shù)(wdmISR)的系統(tǒng)優(yōu)先級最高,其工作占用CPU資源能夠影響到整個系統(tǒng)的運行,所以中斷需盡可能的簡短、盡可能避免使用浮點操作、盡可能的將處理移交給任務處理。所以設計了中斷延時處理函數(shù)DPC(Deferred Procedure Call)對系統(tǒng)進行資源合理利用保證通信的有效性。中斷服務程序功能框圖如圖4所示。

        基于1394b總線仿真設備的WDM驅動開發(fā)

        :為了提高硬件資源利用率以及設備工作的安全性。本設備設計為三余度(兩個余度為主節(jié)點,一個余度為備用節(jié)點)一體設備,三節(jié)點能夠獨立進行工作。1394b總線協(xié)議允許發(fā)送物理層包訪問遠程節(jié)點,并且能夠通過遠程訪問包對設備節(jié)點進行遠程控制。所以當任意一個主節(jié)點出現(xiàn)故障,備用節(jié)點可以通過遠程命令斷開故障主節(jié)點,從而啟用備用節(jié)點,增加設備運行的安全性。

        單功能多設備的運行對驅動程序而言每個設備都有自己的內(nèi)存空間、I/O空間以及中斷號,運行互不影響。軟件對硬件的操作,在方面只需要對操作進行排隊處理,就能夠避免軟件對硬件的并行操作。而三余度多功能多樣性設備的運行對驅動而言,使用的可能有很多的共享資源(如等資源),并且軟件對3個余度的操作有可能是并行的,驅動軟件設計在節(jié)點間共享資源進行加鎖處理保證通信的獨立性及確定性。

        能夠有效的避免資源訪問沖突,能夠以不同優(yōu)先級級別控制各個功能,能夠以不同頻率控制各個功能,有效的提高了軟件對硬件操作的安全性。該驅動設計了節(jié)點間公共資源訪問設置互斥信號量(KeWaitForMultipleObjects),只有信號的擁有者才能釋放信號量。同時設計了保護節(jié)點內(nèi)共享資源的保護措施,如中斷掛接IoCionnect Intei Tupt函數(shù)下的自旋鎖。對上層操作進行堆棧處理,保證操作的有效性,并且對該操作進行風險評估(如對鏈路層操作可能影響設備收發(fā)數(shù)據(jù)操作),達到對硬件的全面保護。

        內(nèi)核線程:由于該設備應用于通信方面,突發(fā)性大數(shù)據(jù)量傳輸發(fā)生率比較高,而windows環(huán)境下每個進程占用處理器的時間應小于50微秒,所以該驅動在PNP(Plug and Play)

        為每個節(jié)點設置一個線程(PsCreateSvstemThread)對突發(fā)的大數(shù)據(jù)量數(shù)據(jù)進行平滑處理,以保證數(shù)據(jù)平穩(wěn)的交由上層,該線程為事件驅動類型。并且通過KeCetCurrentThread和KeSetPriorityThread調整線程優(yōu)先級。

        當中斷發(fā)生,中斷處理函數(shù)記錄中斷狀態(tài)并清除中斷,判斷中斷是否為空,如果不為空則通過IoRequestDpc請求DPC,同時把相應的中斷狀態(tài)傳給DPC。DPC通過中斷狀態(tài)判斷中斷類型和發(fā)生中斷的節(jié)點,并且置位對應線程的線程事件。線程觸發(fā)后,從阻塞態(tài)變?yōu)榫途w態(tài),當該進程得到處理器資源,調用數(shù)據(jù)處理函數(shù)處理數(shù)據(jù)。

        :Windows是多任務非實時的操作系統(tǒng),而DMA可以有效的避免CPU的調度而節(jié)省時間,提高設備的實時性。系統(tǒng)要求DMA的使用率盡可能的減少并且盡可能的快捷。本設計使用硬件側DMA,由FPGA邏輯實現(xiàn),DMA控制由驅動控制。

        驅動軟件對DMA進行初始化,當中斷服務程序被調用,驅動程序根據(jù)DPRAM的0、1區(qū)標志獲取新數(shù)據(jù)存放區(qū)域,并從該區(qū)獲取新數(shù)據(jù)的刷新標記。如有新數(shù)據(jù),則服務程序申請DMA資源,獲取到DMA資源后,鎖定DMA資源并啟動(DMA源地址、目的地址、數(shù)據(jù)搬運長度、控制命令)I/O端口到主存區(qū)的DMA。DMA完成后上報完整中斷并釋放DMA資源。當上層調用IRP_MJ_DEVICE_CONTROL對DPRAM進行寫操作時,驅動程序判斷用戶該次操作的DPRAM的內(nèi)存大小,如果在32K~2048K字節(jié)之間,則啟動主存區(qū)到I/O端口的DMA,如果大于則分次啟動DMA,如果小于32K字節(jié)則單拍或者多拍操作。操作流程與啟動接收DMA相同,操作完成則上報中斷。

        :快捷性是硬件的特性之一,而應用層相對于硬件是及其緩慢的。并且由于PCI數(shù)據(jù)包封包的影響,其總線實際帶寬只有133 Mbps/s,而本1394b設備支持S100Mbps

        和S400Mbps兩種傳輸速率。所以為避免設備長時間工作帶來內(nèi)存遞增、內(nèi)存泄漏以及突發(fā)大數(shù)據(jù)量給PCI總線通信超負荷運轉造成數(shù)據(jù)丟失現(xiàn)象,驅動利用IoAllocateMdl申請一塊3M的內(nèi)存區(qū),供硬件軟件交互循環(huán)利用的用以保證傳輸?shù)挠锌煽啃裕约鞍踩浴?/p>

        當中斷服務程序被調用時,驅動啟動DMA或者讀寫寄存器操作把數(shù)據(jù)從指定DPRAM區(qū)搬運到主存區(qū),更新新的數(shù)據(jù)指針并通過軟中斷方式通知上層軟件。上層軟件通過Deviee IoCo ntrol對設備進行控制,當應用層對驅動進行操作時,驅動根據(jù)寫指針與讀指針的差值提供可操作的內(nèi)存塊給上層軟件。

        不僅能夠提高帶寬的利用率,并且能夠有效避免硬件與軟件操作沖突情況的出現(xiàn),并且避免了資源訪問沖突的重試耗時,提高傳輸?shù)挠行浴崟r性。驅動收發(fā)模塊乒乓操作如圖5和圖6所示。

        基于1394b總線仿真設備的WDM驅動開發(fā)

        發(fā)送模塊中,驅動軟件與應用層交互,采用兩塊地址內(nèi)存區(qū)。內(nèi)存塊操作由用戶層軟件操作,操作完成后切換內(nèi)存區(qū)并通知驅動最新數(shù)據(jù)存放位置。驅動軟件與硬件交互也采用兩塊DPRAM區(qū)。DPRAM的0、1區(qū)的切換操作由驅動軟件進行操作,數(shù)據(jù)更新完畢的DPRAM交由邏輯處理并進行換區(qū)操作。

        接收模塊中,驅動軟件設計循環(huán)隊列與上層軟件進行交互。硬件與驅動軟件交互同樣采用乒乓原理,該操作由硬件邏輯操作,驅動軟件根據(jù)最新數(shù)據(jù)存放的DPRAM區(qū),以及消

        息新舊標記來進行數(shù)據(jù)處理。處理完成后完成數(shù)據(jù)新舊標志切換,并軟中斷方式通知應用層有新數(shù)據(jù)到達,應用層驅動返回的地址指針和內(nèi)存大小獲取最新數(shù)據(jù)。

        3 驗證分析

        本設備提供DLL(Dynamic Link Library),采用Microsoft Visual Studio 2008專業(yè)版開發(fā),封裝為標準的動態(tài)鏈接庫。提供Demo程序,圖7為CC(Control computer)的發(fā)送數(shù)據(jù)窗口測試圖,圖8為RN(Remote Node)的接收數(shù)據(jù)的窗口測試圖。

        基于1394b總線仿真設備的WDM驅動開發(fā)

        由上圖可見驅動程序實現(xiàn)了1394b的S400 Mbps速率和PCI的S133 Mbps速率的跨速率通信數(shù)據(jù)不丟失,避免了軟硬件交互產(chǎn)生的誤碼,使在S100 Mbps通信速率下平均帶寬達到79.2 Mbps,在S400Mbps通信速率下平均帶寬達到231.7 Mbps,實現(xiàn)了數(shù)據(jù)延時控制在us級別,實現(xiàn)了操作的準確性,保證了數(shù)據(jù)傳輸?shù)拇_定性。

        4 結束語

        自2011年中國面臨著國外大規(guī)模技術轉移封鎖以來,國內(nèi)自研設備百花齊放,尤其是軟件硬化無疑已經(jīng)成為焦點。作為硬件靈魂的驅動程序越來越受到人們的重視。本文根據(jù)軟硬件的特性進行軟硬件工作協(xié)調,提高了硬件資源的利用率,提高了仿真通信的實時性,確定性,可靠性。由于需求要求該設備為PCI總線設備,通信的帶寬受到限制,所以準備利用PCIe總線和實時操作系統(tǒng)提高設備的通信帶寬。



        評論


        相關推薦

        技術專區(qū)

        關閉