基于USB 2.0總線的航天設(shè)備地面檢測系統(tǒng)
本系統(tǒng)分別采用2和6號端點分別負責輸出和輸入數(shù)據(jù)的處理工作,兩個端點分別有512 B×4的FIFO,此時CY7C68013A的內(nèi)部FIFO配置如圖4所示。本文引用地址:http://butianyuan.cn/article/202441.htm
2.2 上位機應(yīng)用軟件
2.2.1 DMA傳輸方式
除了通信協(xié)議開銷、帶寬分配以及USB使用的電磁環(huán)境等之外,在高速數(shù)據(jù)傳輸系統(tǒng)中,還必須考慮操作系統(tǒng)對USB數(shù)據(jù)傳輸速率的影響。
PC機的通用操作系統(tǒng)Windows并不是一個嚴格的實時操作系統(tǒng),所以在進行USB數(shù)據(jù)傳輸?shù)倪^程中,操作系統(tǒng)的分時調(diào)度策略會給數(shù)據(jù)傳輸速率帶來很大的影響。Windows的每個時間片長度約為20 ms,如果要經(jīng)過操作系統(tǒng)的調(diào)度,USB數(shù)據(jù)收發(fā)進程將會在占用CPU一個時間片之后就交出控制權(quán),等待下次獲得CPU控制權(quán),從而導致數(shù)據(jù)收發(fā)速率的降低。
因此,為了提高USB傳輸速率,系統(tǒng)應(yīng)當采用DMA方式傳輸數(shù)據(jù),也就是使數(shù)據(jù)的傳輸不用經(jīng)過CPU的處理,從而減去操作系統(tǒng)分時機制的影響。Cypress公司提供了相關(guān)的支持DMA傳輸方式的接口即“CYAPI”,它較好將底層操作函數(shù)封裝為9個類,便于操作;同時CYAPI內(nèi)部集成了多線程的操作,數(shù)據(jù)開始傳輸之后用戶便可以返回繼續(xù)操作其他的內(nèi)容,不需要用戶在程序中自己處理相關(guān)的線程操作或者等到數(shù)據(jù)收發(fā)完畢再繼續(xù)進行其他工作。
2.2.2 軟件操作
為了提高數(shù)據(jù)處理能力,本系統(tǒng)不在數(shù)據(jù)接收的過程中處理數(shù)據(jù),而是將數(shù)據(jù)直接存儲,數(shù)據(jù)傳輸完畢之后再進行相關(guān)分析處理,因為數(shù)據(jù)處理過程也會引入操作系統(tǒng)時間片的延時。為了提高數(shù)據(jù)的接收和存儲速度,系統(tǒng)采用多線程結(jié)合乒乓存儲的方式接收、存儲數(shù)據(jù)。乒乓存儲是通常在硬件設(shè)計中使用的快速存儲方式,應(yīng)用到本系統(tǒng)中,一個線程接收數(shù)據(jù)的時候,另一個線程便存儲數(shù)據(jù),來回對2個內(nèi)存區(qū)域分別進行操作,從而減少系統(tǒng)延時,加快系統(tǒng)的處理速度,詳細的流程如圖5所示。
如圖5所示,本系統(tǒng)采用了兩個線程Read和Write用于數(shù)據(jù)的接收和存儲,線程Read專用于讀取USB接口傳輸?shù)臄?shù)據(jù)并存儲到Buffer中,線程Write則從Buffer中提取數(shù)據(jù)并存儲到文件中。兩個線程通過Full和Empty來互斥其對緩存操作,從而保證數(shù)據(jù)存儲的正確。
本系統(tǒng)采用Cypress公司設(shè)計的專用函數(shù)接口CYAPI進行軟件設(shè)計,CYAPI相對于以前的接口具有很大的優(yōu)點,它集成了DMA和多線程的操作,提高系統(tǒng)速度的同時簡化了用戶的軟件開發(fā)。使用CYAPI進行數(shù)據(jù)傳輸操作最主要的是正確的使用Begin-DataXfer、WaitForXfer和Fini-sh DataXfer三個函數(shù),同時應(yīng)該注意的是,在數(shù)據(jù)接收發(fā)送過程中應(yīng)該對函數(shù)FinishDataXfer的返回值加以判斷,否則在惡劣的電磁環(huán)境中會出現(xiàn)數(shù)據(jù)傳輸錯誤的情況。
3 結(jié)語
本系統(tǒng)利用USB 2.0總線實現(xiàn)了各種接口的轉(zhuǎn)換,利用PC機的一個USB口便轉(zhuǎn)換為多種接口,很好的契合了航天設(shè)備檢測中設(shè)備接口種類多,數(shù)據(jù)格式雜的應(yīng)用背景。利用一個USB接口便完成了系統(tǒng)需求,極大的節(jié)省了PC機資源,同時一個電路板便可以解決大量設(shè)備的檢測驗證工作,大大簡化便捷了相關(guān)的工作。采用可編程邏輯器件處理相關(guān)接口轉(zhuǎn)換及數(shù)據(jù)收發(fā)工作,只需要改變FPGA代碼便可以實現(xiàn)不同任務(wù)的需求,極大的提高的系統(tǒng)的可重復利用率。
實踐證明,USB 2.0的高速性能夠滿足多種接口速度的需要,熱插拔性極大的方便了該系統(tǒng)的使用,該地面檢測系統(tǒng)已經(jīng)運用于多個航天器的檢測中,很好的滿足了項目的需求,實現(xiàn)了系統(tǒng)設(shè)計的目的。
評論