<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 測試測量 > 設計應用 > 一種用于飛行器下高速數據采集存儲系統設計

一種用于飛行器下高速數據采集存儲系統設計

作者: 時(shí)間:2011-08-16 來(lái)源:網(wǎng)絡(luò ) 收藏
一個(gè)典型的PCI總線(xiàn)上的寫(xiě)數據傳輸時(shí)序如圖2-2中所示。首先用于傳輸的數據必須要提前從本地的緩沖區中讀出,然后出現在總線(xiàn)AD信號線(xiàn)上,當IRDY信號和TRDY信號同時(shí)有效時(shí)(為低電平時(shí)),被目標設備獲取。當傳輸結束時(shí),最后一個(gè)從本地緩沖區中預讀出的數據(如圖中陰影的數據3),并不會(huì )被傳輸到目標設備。而本地的緩沖區控制模塊會(huì )認為數據已經(jīng)傳輸,這時(shí)如果不采取措施就會(huì )導致數據丟失。


在傳輸結束的時(shí)候,PCI總線(xiàn)傳輸狀態(tài)機會(huì )切換到備份數據的狀態(tài),在這個(gè)狀態(tài)下,緩沖區的控制模塊會(huì )檢測是否存在已經(jīng)讀出而未傳輸的數據,如果存在這樣的情況,控制模塊則采取措施防止數據丟失。對于雙口RAM這種存儲結構而言,數據讀出以后,只要沒(méi)有在同一地址寫(xiě)入數據,那么數據是不會(huì )丟失的,因此要實(shí)現前面的功能只需要簡(jiǎn)單的修改一下讀指針目前指向的地址就可以實(shí)現。
2.4 傳輸控制模塊的設計
傳輸控制模塊的核心是一個(gè)傳輸控制狀態(tài)機。它通過(guò)檢測存儲緩沖區的情況,來(lái)控制傳輸的進(jìn)行。當輸入緩沖區中數據存儲滿(mǎn)或輸出緩沖區空以后,自動(dòng)請求一次數據傳輸,由此保證數據流的連續。
3 驅動(dòng)與應用程序的開(kāi)發(fā)
驅動(dòng)程序的開(kāi)發(fā)是采用標準的WDM(Windows Driver Model)設備驅動(dòng)程序模型,利用DriverStudio的驅動(dòng)程序開(kāi)發(fā)工具包來(lái)進(jìn)行開(kāi)發(fā)的。關(guān)于WDM的驅動(dòng)程序模型,限于篇幅的原因就不作詳細的介紹。
一個(gè)典型的數據傳輸過(guò)程是這樣進(jìn)行的。首先驅動(dòng)程序完成設備的初始化,如在內存中開(kāi)辟緩沖區,硬件設備的初始化等等。完成初始化以后硬件就處于等待傳輸的狀態(tài)。當用戶(hù)通過(guò)應用程序發(fā)出傳輸數據的指令以后,驅動(dòng)程序處理這一請求,并對硬件發(fā)出指令開(kāi)始數據傳輸。由于數據傳輸的時(shí)間可能比較長(cháng),所以應用程序采用多線(xiàn)程的設計,傳輸線(xiàn)程會(huì )等待驅動(dòng)程序在傳輸結束時(shí)發(fā)出的信號,而同時(shí)應用程序還能完成與用戶(hù)的交互工作。當傳輸結束后,驅動(dòng)程序向硬件寫(xiě)入停止指令,中止傳輸,并向應用程序發(fā)出傳輸結束信號。驅動(dòng)程序對應用程序的通信是通過(guò)創(chuàng )建Win32事件來(lái)實(shí)現通信的。
4 設計的仿真和驗證
為了驗證設計的正確性,首先需要對設計進(jìn)行邏輯功能仿真。為了驗證設計是否能正常的工作在PCI總線(xiàn)上,那么就需要仿真PCI總線(xiàn)上的各種總線(xiàn)事務(wù),驗證設計是否能響應各種總線(xiàn)命令。仿真是在Xilinx公司提供的PCI總線(xiàn)接口仿真實(shí)例的基礎上實(shí)現的。按照PCI總線(xiàn)規范設計了一個(gè)簡(jiǎn)單的總線(xiàn)仲裁器,用來(lái)仿真主設備申請總線(xiàn)占用的過(guò)程。此外還設計了一個(gè)PCI總線(xiàn)上的從設備,用來(lái)仿真主設備與從設備之間的數據傳輸過(guò)程。此外還仿真了總線(xiàn)上對設備的自動(dòng)配置過(guò)程。通過(guò)觀(guān)察仿真波形圖,發(fā)現設計完全滿(mǎn)足PCI總線(xiàn)的數據傳輸規范,而且數據傳輸的結果正確。
在仿真驗證正確的基礎上,將設計實(shí)現于Xilinx公司型號為virtexII2v1000-fg456-5的FPGA中。將數據接口卡安裝于測試計算機上,利用數據接口卡的自回路數據傳輸功能以及單向輸入輸出功能,對系統進(jìn)行了驗證和性能測試,結果如表格1中所示。
從結果可以看出,當輸入輸出速率保持在160Mbps以下時(shí),可以保證自身回路數據傳輸無(wú)錯進(jìn)行,但是當速率提高到200Mbps以后,傳輸就會(huì )出現數據丟失,導致接收的數據與發(fā)送數據不一致。因此,為了保證數據的無(wú)錯傳輸,自身回路數據傳輸測試速率應該不高于160Mbps。

單向輸入輸出測試時(shí),當輸入速率或者輸出速率小于300Mbps,系統的功能是完全正確的,而當工作于400Mbps的時(shí)候,則會(huì )出現數據丟失的情況。與自身回路傳輸測試的數據比較可以看出,當在自身回路數據傳輸測試速率為200Mbps的時(shí)候,由于此時(shí)系統接收和輸出同時(shí)進(jìn)行,共同分時(shí)使用總線(xiàn),此時(shí)相當于單獨接收或者單獨輸出測試時(shí)400Mbps的傳輸速率。兩次測試結果的一致性也說(shuō)明了測試的可靠性。
5 結語(yǔ)
通過(guò)對系統的測試驗證,證明了本設計能夠完全滿(mǎn)足高速實(shí)時(shí)數據流對數據采集存儲系統的要求。為了方便以后進(jìn)一步的工作,在測試時(shí)也對緩沖區大小和傳輸速率之間的關(guān)系進(jìn)行了簡(jiǎn)單的測試。將緩沖區大小從8KB改變到16KB以后,傳輸速率只是稍微有些提高,對性能的改善十分不明顯。結果說(shuō)明簡(jiǎn)單的擴大硬件緩沖區并不會(huì )帶來(lái)數據傳輸速率的明顯改觀(guān),同時(shí)還會(huì )占用FPGA內部寶貴的RAM資源。究其原因在于,數據傳輸速率主要受到32位/33MHzPCI總線(xiàn)帶寬自身的限制,以及硬盤(pán)讀寫(xiě)的峰值速率的限制,而并不是緩沖區大小的影響??梢灶A見(jiàn)如果采用64位/66MHz的PCI總線(xiàn)并采用更多的磁盤(pán)來(lái)構成RAID磁盤(pán)陣列以提高磁盤(pán)讀寫(xiě)速率,那么整體的性能會(huì )有很大的提升。


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

關(guān)鍵詞: 飛行器 高速數據采集存儲

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>