基于引言DSP平臺的USB接口設計
1.3 時序芯片
為了降低成本、簡化電路,本方案不使用DMA傳輸方式,而以TI公司的TMS320C2XX作為微控制器(使用20MHz晶振)。它的并口速度非常高,遠遠高于PDIUSBD12所要求的最高限制2MB/s。此處是硬件設計最關鍵的地方。
經(jīng)過詳細的時序分析發(fā)現(xiàn),大部分問題可以通過在DSP固件設計的加入延時,或者設置DSP的WSGR寄存器來解決。但是有一個問題,必須在硬件上加以解決。圖2是DSP(TMS320C2XX)的寫時序。
圖2中,參數(shù)th(W-D)是指在WE信號變高(無效)以后,所寫的數(shù)據(jù)將仍然保持有效的時間。這個值最小為3ns,最大為14ns,所以所寫的數(shù)據(jù)在WE信號無效以后還會維持有效,大約3~14ns(實際的延時介于這兩個值之間)。
圖3是PDIUSBD12所要求的寫時序。圖中,參量tWDH是與DSP (TMS320C2XX)參量th(W-D)相對應的另外一個參量。這個參量反映了PDIUSBD12要求微控制器在向其中寫數(shù)據(jù)時,所寫的數(shù)據(jù)在WR信號無效之后,要繼續(xù)保持有效的時間。這個參量最小值為10ns。也就是說,PDIUSBD12要求所寫的數(shù)據(jù)最少要保持有效10ns(在WR無效之后)。
由此可以看出,DSP(TMS320C2XX)的寫時序不能可靠地保證滿足 PDIUSBD12的要求,而且這個問題無法通過軟件加延時的方法來解決,必須通過硬件來處理。經(jīng)過分析對比,最后決定采用一個很簡單但是后來事實證明非常有效的方法來調(diào)整它們之間的時序。那就是在DSP(TMS320C2XX)與PDIUSBD12的總線之間加一個雙向緩沖器-74LS245。這個芯片可以在它們的時序之間引入一個延時。雖然這個延時并不可靠、但是由于DSP(TMS320C2XX)本身會在WR無效后,繼續(xù)保持數(shù)據(jù)有效一段時間(前面已講過),這要僅僅需要將延時適當延長一點就可以了。74LS245所造成的延時典型值為15ns,最小也為8ns。這樣,加上原來DSP寫時序的延時,就可以滿足PDIUSBD12所要求的寫時序了。
另外由于加入74LS245所造成的對其它接口時序的影響,可以通過設置DSP(TMS320C2XX)的WSGR寄存器來消除,所以這個方案是可行的。(事實上,后來制造好的電路也證明了這個方案是完全可行的)
對其余時序上的配合,經(jīng)過仔細的計算與核對證明,也是完全可行的。在硬件上,哂方案還采用了一片GAL(16V8)來實現(xiàn)對PDIUSBD12芯片的片選,以及實現(xiàn)對它的軟件和手動復位。硬件總體框圖如圖4所示。
2 軟件設計
2.1 固件設計
由于采用的是不帶MCU內(nèi)核的USB接口芯片,所以關于USB1.1協(xié)議規(guī)范的實現(xiàn)都必須靠DSP(TMS320C2XX)控制PDIUSBD12芯片來完成。固件的主要設計任務是:在DSP(TMS320C2XX)的平臺上編寫程序,以完成 USB1.1規(guī)范所要求的標準請求及用戶根據(jù)產(chǎn)品需要自己定義的請求。
為了不影響程序的執(zhí)行效率,本方案采用中斷方式完成固件的編寫;同時,為了保證程序的模塊化及良好的可移植性,在設計中采用分層結(jié)構(gòu)進行固件的編寫,如圖5所示。
評論