你的位置:首頁 > 互連技術 > 正文

基于DSP平臺的USB接口設計

發(fā)布時間:2011-01-08 來源:單片機與嵌入式系統(tǒng)應用

中心議題:
  • 設計要求
  • 硬件方案選擇與設計
  • 軟件設計
  • 結果及分析

USB接口(Universal Serial Bus)是一種通用的高速串行接口。它最主要的特點是它的高速傳輸特性。USB1.1理論速度極限可以達到12Mb/s,USB2.0可達到 480Mb/s。這樣,它可以很好解決大數(shù)據(jù)量的數(shù)據(jù)在嵌入式系統(tǒng)與PC機之間的互傳問題;同時,它支持熱插拔,并且最多同時支持127個外設,非常適合嵌入式系統(tǒng)的應用。

本次設計是在一個已有的DSP圖像采集嵌入式系統(tǒng)的基礎上,為它配接上一個USB1.1的接口,以達到DSP圖像采集系統(tǒng)高速地將圖像數(shù)據(jù)回傳到PC機中的目的。設計的要求主要有:

①在原有平臺提供的接口基礎上,加入一個低成本、高速度的USB接口;

②通過USB接口,實現(xiàn)PC機對DSP圖像采集系統(tǒng)的操作與控制;

③實現(xiàn)圖像數(shù)據(jù)在DSP攝像系統(tǒng)與PC機之間高速的雙向傳輸。

基于以上幾點可以看出,本方案最主要的特點是成本低廉且傳輸速度高。

1 硬件方案選擇與設計

1.1 方案選擇

對于基于DSP平臺的USB接口設計,經(jīng)過綜合考慮了幾種方案之后決定,采用一個不帶MCU內(nèi)核的USB接口芯片PDIUSBD12(成 本非常低,一片PDIUSBD12的價格僅為20元),再加上簡單的外圍電路和時序調(diào)整電路。

這種芯片僅僅完成USB底層的數(shù)據(jù)鏈路級交換,并提供給本地微控制器一個并行的接口,但是它并不完成協(xié)議層的工作。協(xié)議層的工作需要對微控制器 編程,控制USB接口芯片來實現(xiàn)USB協(xié)議。所以,開發(fā)難度相對來說大一些,要做的編程工作也多一點。但是這套方案的成本非常低,而且由于直接用DSP作 為微控制器,沒有原單片機的瓶頸限制,所以可以實現(xiàn)很高的數(shù)據(jù)傳輸速率。該系統(tǒng)的原理框圖如圖1所示。

                                           該系統(tǒng)的原理框圖
                                                             圖1 該系統(tǒng)的原理框圖

由于PDIUSBD12的并行接口時序較慢,只能達到2MB/s。這個速度相對于DSP來說比較低,而且有些地方不是簡單地在程序中加入延時就 可以調(diào)整,所以需要一個時序調(diào)整電路來完成它們之間的配合。

1.2 PDIUSBD12芯片

PDIUSBD12芯片是由Philips公司推出的一種USB1.1接口芯片。它可以工作在5V或者3.3V的工作電壓下;具有8位數(shù)據(jù)總線,且有完全自治的DMA傳輸操作。它還具有可控制的軟件連接(SoftConnect)功能,可以保證在微控制器可靠完成初始化之后再連接上USB總 線。另外,它還有一個LED驅(qū)動腳,可以外接LED來監(jiān)測USB的枚舉過程和數(shù)據(jù)傳輸過程。當USB接口枚舉完成,并且成功配置以后,LED將會一直點亮;而在枚舉過程以及USB數(shù)據(jù)通信過程中,LED只是有節(jié)奏地閃爍。

PDIUSBD12只占用微控制器的兩個地址資源。也就是說,它只有一根地址線。其中一個地址用來向芯片中寫命令,另外一個地址用來向燕片中寫 數(shù)據(jù)或者從芯片中讀取數(shù)據(jù)。

PDIUSBD12一共有三組端點:端點0完成控制傳輸;端點1可以配置成中斷傳輸;端點2是主要的數(shù)據(jù)傳輸端點。它有64B的緩沖區(qū),如果加上它的雙緩沖機制,就有128B的緩沖區(qū);它可以配置成批量傳輸模式,或者同步傳輸模式。

總的來說,PDIUSBD12是一款性能優(yōu)異,價格相對軟低的USB接口芯片。

1.3 時序芯片

為了降低成本、簡化電路,本方案不使用DMA傳輸方式,而以TI公司的TMS320C2XX作為微控 制器(使用20MHz晶振)。它的并口速度非常高,遠遠高于PDIUSBD12所要求的最高限制2MB/s。此處是硬件設計最關鍵的地方。

經(jīng)過詳細的時序分析發(fā)現(xiàn),大部分問題可以通過在DSP固件設計的加入延時,或者設置DSP的WSGR寄存器來解決。但是有一個問題,必須在硬件 上加以解決。圖2是DSP(TMS320C2XX)的寫時序。
[page]

                                      DSP(TMS320C2XX)的寫時序
                                             圖2  DSPTMS320C2XX)的寫時序
 
圖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無效之后)。
                           PDIUSBD12所要求的寫時序
                                              圖3 PDIUSBD12所要求的寫時序
 
由此可以看出,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)對它的軟件和手動復位。

2 軟件設計

2.1 固件設計

由于采用的是不帶MCU內(nèi)核的USB接口芯片,所以關于USB1.1協(xié)議規(guī)范的實現(xiàn)都必須靠DSP(TMS320C2XX)控制 PDIUSBD12芯片來完成。固件的主要設計任務是:在DSP(TMS320C2XX)的平臺上編寫程序,以完成 USB1.1規(guī)范所要求的標準請求及用戶根據(jù)產(chǎn)品需要自己定義的請求。
[page]
為了不影響程序的執(zhí)行效率,本方案采用中斷方式完成固件的編寫;同時,為了保證程序的模塊化及良好的可移植性,在設計中采用分層結構進行固件的 編寫,如圖4所示。

                                       中斷方式完成固件的編寫
                                                             圖4 中斷方式完成固件的編寫

最下層是硬件接口層,完成硬件上PDIUSBD12與DSP(TMS320C2XX)的對接。主要是DSP(TMS320C2XX)向PDIUSBD12 中寫入數(shù)據(jù)或者命令,以及從中讀取數(shù)據(jù)。

中間層主要有兩個模塊,用來完成PDIUSBD12的命令接口和中斷處理子程序。命令接口是指按照PDIUSBD12的命令格式,完成DSP對它的控制。它的基本命令格式是:DSP先向其中的命令地址寫入某一條命令,接著從它的數(shù)據(jù)地址寫入或者讀出一系列的數(shù)據(jù)。中斷處理子程序是判斷中斷的產(chǎn)生 源,然后跳轉(zhuǎn)到相應的處理子程序。這些子程序不做過多的處理,而僅僅是將命令數(shù)據(jù)讀出然后置標志位,或者是將某些數(shù)據(jù)送出。

最上層是主循環(huán)程序,以及對于USB1.1標準協(xié)議請求(這些請求主要是在USB1.1協(xié)議規(guī)范的第九章中定義的)和用戶自定義請求的處理程 序。主循環(huán)的主要工作是檢查標志位。如果標志位被置位,則調(diào)用處理子程序,判斷是標準請求還是用戶自定義請求,然后調(diào)用相應的處理程序加以處理,完成請求。

這樣分層的好處是:主循環(huán)程序在檢查標志位以外的時間可以進行其它工作,提高固件的運行效率。

編程過程中,由于涉及了一些嚴格的接口時序配合問題,所以,整個固件的編寫工作全部采用DSP(TMS320C2XX)的匯編語言;用的是 CC2000編程開發(fā)工具。

2.2 PC機軟件的設計

PC機的驅(qū)動程序由Philips公司提供。然后,用VC++6.0,通過調(diào)用API函數(shù),編寫PC的應用程序。這樣即可實現(xiàn)PC機對 DSP(TMS320C2XX)攝像系統(tǒng)的攝像控制以及圖像的傳輸。

主要使用的API函數(shù)是DeviceIOControl()、ReadFile()、 WriteFile()。其中DeviceIOControl()用于PC(主機)向DSP圖像采集系統(tǒng)發(fā)送請求;ReadFile()和 WriteFile()分別用于從圖像采集系統(tǒng)中讀出數(shù)據(jù)以及向圖像采集系統(tǒng)中寫入數(shù)據(jù)。

在設計過程中必須注意的問題是:由于USB接口是主-從方式的接口,它的一切傳輸過程都必須通過主機向外設發(fā)送請求后才可以開始,所以在使用 ReadFile()、WriteFile()讀寫數(shù)據(jù)之前,必須先通過 DeviceIOControl()向圖像采集系統(tǒng)發(fā)送請求。

3 結果及分析

設計方案完成后,在最后的測試當中,通過USB1.1接口,PC機與DSP系統(tǒng)的通信速率最高達到了580KB/s(4.6Mb/s)以上。這個速率指的是有效數(shù)據(jù)傳輸速率,不包括數(shù)據(jù)傳輸聯(lián)絡的頭信息部分,所以這個速率還是比較令人滿意的?,F(xiàn)在,傳輸一張幅面為352×288像素的黑白圖片(大小為 99KB),耗時不到1s。如果實現(xiàn)動態(tài)的拍攝及顯示,那么,整個系統(tǒng)每秒可以拍攝并完成顯示3~4幅不經(jīng)壓縮的幅畫為352×288像素大小的黑白圖片。

測試結果表明,該系統(tǒng)運行可靠(已將程序燒寫進片內(nèi)Flash中),各項性能指標都已達到了最初的設計要求,能夠很好地實現(xiàn)圖像數(shù)據(jù)在PC機與 DSP之間高速的雙向傳輸。并且,這套USB接口方案只采用了1片PDIUSBD12接口芯片和1片 74LS245,器件成本只有20元左右,這個成本是比較低的。同時,由于采用了DSP作為控制器,所以它的通信速率可以很高;因此,可以說本方案達到了低成本,高速率的USB1.1接口設計要求。
要采購微控制器么,點這里了解一下價格!
特別推薦
技術文章更多>>
技術白皮書下載更多>>
熱門搜索
壓控振蕩器 壓力傳感器 壓力開關 壓敏電阻 揚聲器 遙控開關 醫(yī)療電子 醫(yī)用成像 移動電源 音頻IC 音頻SoC 音頻變壓器 引線電感 語音控制 元件符號 元器件選型 云電視 云計算 云母電容 真空三極管 振蕩器 振蕩線圈 振動器 振動設備 震動馬達 整流變壓器 整流二極管 整流濾波 直流電機 智能抄表
?

關閉

?

關閉