在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,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首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于1394b總線仿真設備的WDM驅動開發(fā)

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

            作者: 時間:2016-10-15 來源:網絡 收藏

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

            本文引用地址:http://www.biyoush.com/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端口速率切換按鈕,FPGA內部通信速率由邏輯控制完成。

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

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

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

            2 驅動設計

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

            和S400Mbps兩種傳輸速率。所以為避免設備長時間工作帶來內存遞增、內存泄漏以及突發(fā)大數據量給PCI總線通信超負荷運轉造成數據丟失現象,驅動利用IoAllocateMdl申請一塊3M的內存區(qū),供硬件軟件交互循環(huán)利用的用以保證傳輸的有可靠性,以及安全性。

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

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

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

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

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

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

            3 驗證分析

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

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

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

            4 結束語

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



            評論


            相關推薦

            技術專區(qū)

            關閉