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