基於DSP平台的USB接口設計
發布時間:2011-01-08 來源:單片機與嵌入式係統應用
中心議題:
USB接口(Universal Serial Bus)是一種通用的高速串行接口。它最主要的特點是它的高速傳輸特性。USB1.1理論速度極限可以達到12Mb/s,USB2.0可達到 480Mb/s。這樣,它可以很好解決大數據量的數據在嵌入式係統與PC機之間的互傳問題;同時,它支持熱插拔,並且最多同時支持127個外設,非常適合嵌入式係統的應用。
本次設計是在一個已有的DSP圖像采集嵌入式係統的基礎上,為它配接上一個USB1.1的接口,以達到DSP圖像采集係統高速地將圖像數據回傳到PC機中的目的。設計的要求主要有:
①在原有平台提供的接口基礎上,加入一個低成本、高速度的USB接口;
②通過USB接口,實現PC機對DSP圖像采集係統的操作與控製;
③實現圖像數據在DSP攝像係統與PC機之間高速的雙向傳輸。
基於以上幾點可以看出,本方案最主要的特點是成本低廉且傳輸速度高。
1 硬件方案選擇與設計
1.1 方案選擇
對於基於DSP平台的USB接口設計,經過綜合考慮了幾種方案之後決定,采用一個不帶MCU內核的USB接口芯片PDIUSBD12(成 本非常低,一片PDIUSBD12的價格僅為20元),再加上簡單的外圍電路和時序調整電路。
這種芯片僅僅完成USB底層的數據鏈路級交換,並提供給本地微控製器一個並行的接口,但是它並不完成協議層的工作。協議層的工作需要對微控製器 編程,控製USB接口芯片來實現USB協議。所以,開發難度相對來說大一些,要做的編程工作也多一點。但是這套方案的成本非常低,而且由於直接用DSP作 為微控製器,沒有原單片機的瓶頸限製,所以可以實現很高的數據傳輸速率。該係統的原理框圖如圖1所示。

圖1 該係統的原理框圖
由於PDIUSBD12的並行接口時序較慢,隻能達到2MB/s。這個速度相對於DSP來說比較低,而且有些地方不是簡單地在程序中加入延時就 可以調整,所以需要一個時序調整電路來完成它們之間的配合。
1.2 PDIUSBD12芯片
PDIUSBD12芯片是由Philips公司推出的一種USB1.1接口芯片。它可以工作在5V或者3.3V的工作電壓下;具有8位數據總線,且有完全自治的DMA傳輸操作。它還具有可控製的軟件連接(SoftConnect)功能,可以保證在微控製器可靠完成初始化之後再連接上USB總 線。另外,它還有一個LED驅動腳,可以外接LED來監測USB的枚舉過程和數據傳輸過程。當USB接口枚舉完成,並且成功配置以後,LED將會一直點亮;而在枚舉過程以及USB數據通信過程中,LED隻是有節奏地閃爍。
PDIUSBD12隻占用微控製器的兩個地址資源。也就是說,它隻有一根地址線。其中一個地址用來向芯片中寫命令,另外一個地址用來向燕片中寫 數據或者從芯片中讀取數據。
PDIUSBD12一共有三組端點:端點0完成控製傳輸;端點1可以配置成中斷傳輸;端點2是主要的數據傳輸端點。它有64B的緩衝區,如果加上它的雙緩衝機製,就有128B的緩衝區;它可以配置成批量傳輸模式,或者同步傳輸模式。
總的來說,PDIUSBD12是一款性能優異,價格相對軟低的USB接口芯片。
1.3 時序芯片
為了降低成本、簡化電路,本方案不使用DMA傳輸方式,而以TI公司的TMS320C2XX作為微控 製器(使用20MHz晶振)。它的並口速度非常高,遠遠高於PDIUSBD12所要求的最高限製2MB/s。此處是硬件設計最關鍵的地方。
經過詳細的時序分析發現,大部分問題可以通過在DSP固件設計的加入延時,或者設置DSP的WSGR寄存器來解決。但是有一個問題,必須在硬件 上加以解決。圖2是DSP(TMS320C2XX)的寫時序。
[page]

圖2 DSP(TMS320C 2XX)的寫時序
圖2中,參數th(W-D)是指在WE信號變高(無效)以後,所寫的數據將仍然保持有效的時間。這個值最小為3ns,最大為14ns,所以所寫的數據在 WE信號無效以後還會維持有效,大約3~14ns(實際的延時介於這兩個值之間)。
圖3是PDIUSBD12所要求的寫時序。圖中,參量tWDH是與DSP (TMS320C2XX)參量th(W-D)相對應的另外一個參量。這個參量反映了PDIUSBD12要求微控製器在向其中寫數據時,所寫的數據在WR信號無效之後,要繼續保持有效的時間。這個參量最小值為10ns。也就是說,PDIUSBD12要求所寫的數據最少要保持有效10ns(在WR無效之後)。

圖3 PDIUSBD12所要求的寫時序
由此可以看出,DSP(TMS320C2XX)的寫時序不能可靠地保證滿足 PDIUSBD12deyaoqiu,erqiezhegewentiwufatongguoruanjianjiayanshidefangfalaijiejue,bixutongguoyingjianlaichuli。jingguofenxiduibi,zuihoujuedingcaiyongyigehenjiandandanshihoulaishishizhengmingfei 常有效的方法來調整它們之間的時序。那就是在DSP(TMS320C2XX)與PDIUSBD12的總線之間加一個雙向緩衝器-74LS245。這個芯片 可以在它們的時序之間引入一個延時。雖然這個延時並不可靠、但是由於DSP(TMS320C2XX)本身會在WR無效後,繼續保持數據有效一段時間(前麵 已講過),這要僅僅需要將延時適當延長一點就可以了。74LS245所造成的延時典型值為15ns,最小也為8ns。這樣,加上原來DSP寫時序的延時, 就可以滿足PDIUSBD12所要求的寫時序了。
另外由於加入74LS245所造成的對其它接口時序的影響,可以通過設置DSP(TMS320C2XX)的WSGR寄存器來消除,所以這個方案 是可行的。(事實上,後來製造好的電路也證明了這個方案是完全可行的)
對其餘時序上的配合,經過仔細的計算與核對證明,也是完全可行的。在硬件上,哂方案還采用了一片GAL(16V8)來實現對PDIUSBD12 芯片的片選,以及實現對它的軟件和手動複位。
2 軟件設計
2.1 固件設計
由於采用的是不帶MCU內核的USB接口芯片,所以關於USB1.1協議規範的實現都必須靠DSP(TMS320C2XX)控製 PDIUSBD12芯片來完成。固件的主要設計任務是:在DSP(TMS320C2XX)的平台上編寫程序,以完成 USB1.1規範所要求的標準請求及用戶根據產品需要自己定義的請求。
[page]
為了不影響程序的執行效率,本方案采用中斷方式完成固件的編寫;同時,為了保證程序的模塊化及良好的可移植性,在設計中采用分層結構進行固件的 編寫,如圖4所示。

圖4 中斷方式完成固件的編寫
最下層是硬件接口層,完成硬件上PDIUSBD12與DSP(TMS320C2XX)的對接。主要是DSP(TMS320C2XX)向PDIUSBD12 中寫入數據或者命令,以及從中讀取數據。
中間層主要有兩個模塊,用來完成PDIUSBD12的命令接口和中斷處理子程序。命令接口是指按照PDIUSBD12的命令格式,完成DSP對它的控製。它的基本命令格式是:DSP先向其中的命令地址寫入某一條命令,接著從它的數據地址寫入或者讀出一係列的數據。中斷處理子程序是判斷中斷的產生 源,然後跳轉到相應的處理子程序。這些子程序不做過多的處理,而僅僅是將命令數據讀出然後置標誌位,或者是將某些數據送出。
最上層是主循環程序,以及對於USB1.1標準協議請求(這些請求主要是在USB1.1協議規範的第九章中定義的)和用戶自定義請求的處理程 序xu。主zhu循xun環huan的de主zhu要yao工gong作zuo是shi檢jian查zha標biao誌zhi位wei。如ru果guo標biao誌zhi位wei被bei置zhi位wei,則ze調tiao用yong處chu理li子zi程cheng序xu,判pan斷duan是shi標biao準zhun請qing求qiu還hai是shi用yong戶hu自zi定ding義yi請qing求qiu,然ran後hou調tiao用yong相xiang應ying的de處chu理li程cheng序xu加jia以yi處chu理li,完wan成cheng請qing求qiu。
這樣分層的好處是:主循環程序在檢查標誌位以外的時間可以進行其它工作,提高固件的運行效率。
編程過程中,由於涉及了一些嚴格的接口時序配合問題,所以,整個固件的編寫工作全部采用DSP(TMS320C2XX)的彙編語言;用的是 CC2000編程開發工具。
2.2 PC機軟件的設計
PC機的驅動程序由Philips公司提供。然後,用VC++6.0,通過調用API函數,編寫PC的應用程序。這樣即可實現PC機對 DSP(TMS320C2XX)攝像係統的攝像控製以及圖像的傳輸。
主要使用的API函數是DeviceIOControl()、ReadFile()、 WriteFile()。其中DeviceIOControl()用於PC(主機)向DSP圖像采集係統發送請求;ReadFile()和 WriteFile()分別用於從圖像采集係統中讀出數據以及向圖像采集係統中寫入數據。
在設計過程中必須注意的問題是:由於USB接口是主-從方式的接口,它的一切傳輸過程都必須通過主機向外設發送請求後才可以開始,所以在使用 ReadFile()、WriteFile()讀寫數據之前,必須先通過 DeviceIOControl()向圖像采集係統發送請求。
3 結果及分析
設計方案完成後,在最後的測試當中,通過USB1.1接口,PC機與DSP係統的通信速率最高達到了580KB/s(4.6Mb/s)yishang。zhegesulvzhideshiyouxiaoshujuchuanshusulv,bubaokuoshujuchuanshulianluodetouxinxibufen,suoyizhegesulvhaishibijiaolingrenmanyide。xianzai,chuanshuyizhangfumianwei352×288像素的黑白圖片(大小為 99KB),耗時不到1s。如果實現動態的拍攝及顯示,那麼,整個係統每秒可以拍攝並完成顯示3~4幅不經壓縮的幅畫為352×288像素大小的黑白圖片。
測試結果表明,該係統運行可靠(已將程序燒寫進片內Flash中),各項性能指標都已達到了最初的設計要求,能夠很好地實現圖像數據在PC機與 DSP之間高速的雙向傳輸。並且,這套USB接口方案隻采用了1片PDIUSBD12接口芯片和1片 74LS245,器件成本隻有20元左右,這個成本是比較低的。同時,由於采用了DSP作為控製器,所以它的通信速率可以很高;因此,可以說本方案達到了低成本,高速率的USB1.1接口設計要求。
- 設計要求
- 硬件方案選擇與設計
- 軟件設計
- 結果及分析
USB接口(Universal Serial Bus)是一種通用的高速串行接口。它最主要的特點是它的高速傳輸特性。USB1.1理論速度極限可以達到12Mb/s,USB2.0可達到 480Mb/s。這樣,它可以很好解決大數據量的數據在嵌入式係統與PC機之間的互傳問題;同時,它支持熱插拔,並且最多同時支持127個外設,非常適合嵌入式係統的應用。
本次設計是在一個已有的DSP圖像采集嵌入式係統的基礎上,為它配接上一個USB1.1的接口,以達到DSP圖像采集係統高速地將圖像數據回傳到PC機中的目的。設計的要求主要有:
①在原有平台提供的接口基礎上,加入一個低成本、高速度的USB接口;
②通過USB接口,實現PC機對DSP圖像采集係統的操作與控製;
③實現圖像數據在DSP攝像係統與PC機之間高速的雙向傳輸。
基於以上幾點可以看出,本方案最主要的特點是成本低廉且傳輸速度高。
1 硬件方案選擇與設計
1.1 方案選擇
對於基於DSP平台的USB接口設計,經過綜合考慮了幾種方案之後決定,采用一個不帶MCU內核的USB接口芯片PDIUSBD12(成 本非常低,一片PDIUSBD12的價格僅為20元),再加上簡單的外圍電路和時序調整電路。
這種芯片僅僅完成USB底層的數據鏈路級交換,並提供給本地微控製器一個並行的接口,但是它並不完成協議層的工作。協議層的工作需要對微控製器 編程,控製USB接口芯片來實現USB協議。所以,開發難度相對來說大一些,要做的編程工作也多一點。但是這套方案的成本非常低,而且由於直接用DSP作 為微控製器,沒有原單片機的瓶頸限製,所以可以實現很高的數據傳輸速率。該係統的原理框圖如圖1所示。

圖1 該係統的原理框圖
由於PDIUSBD12的並行接口時序較慢,隻能達到2MB/s。這個速度相對於DSP來說比較低,而且有些地方不是簡單地在程序中加入延時就 可以調整,所以需要一個時序調整電路來完成它們之間的配合。
1.2 PDIUSBD12芯片
PDIUSBD12芯片是由Philips公司推出的一種USB1.1接口芯片。它可以工作在5V或者3.3V的工作電壓下;具有8位數據總線,且有完全自治的DMA傳輸操作。它還具有可控製的軟件連接(SoftConnect)功能,可以保證在微控製器可靠完成初始化之後再連接上USB總 線。另外,它還有一個LED驅動腳,可以外接LED來監測USB的枚舉過程和數據傳輸過程。當USB接口枚舉完成,並且成功配置以後,LED將會一直點亮;而在枚舉過程以及USB數據通信過程中,LED隻是有節奏地閃爍。
PDIUSBD12隻占用微控製器的兩個地址資源。也就是說,它隻有一根地址線。其中一個地址用來向芯片中寫命令,另外一個地址用來向燕片中寫 數據或者從芯片中讀取數據。
PDIUSBD12一共有三組端點:端點0完成控製傳輸;端點1可以配置成中斷傳輸;端點2是主要的數據傳輸端點。它有64B的緩衝區,如果加上它的雙緩衝機製,就有128B的緩衝區;它可以配置成批量傳輸模式,或者同步傳輸模式。
總的來說,PDIUSBD12是一款性能優異,價格相對軟低的USB接口芯片。
1.3 時序芯片
為了降低成本、簡化電路,本方案不使用DMA傳輸方式,而以TI公司的TMS320C2XX作為微控 製器(使用20MHz晶振)。它的並口速度非常高,遠遠高於PDIUSBD12所要求的最高限製2MB/s。此處是硬件設計最關鍵的地方。
經過詳細的時序分析發現,大部分問題可以通過在DSP固件設計的加入延時,或者設置DSP的WSGR寄存器來解決。但是有一個問題,必須在硬件 上加以解決。圖2是DSP(TMS320C2XX)的寫時序。
[page]

圖2 DSP(TMS
圖2中,參數th(W-D)是指在WE信號變高(無效)以後,所寫的數據將仍然保持有效的時間。這個值最小為3ns,最大為14ns,所以所寫的數據在 WE信號無效以後還會維持有效,大約3~14ns(實際的延時介於這兩個值之間)。
圖3是PDIUSBD12所要求的寫時序。圖中,參量tWDH是與DSP (TMS320C2XX)參量th(W-D)相對應的另外一個參量。這個參量反映了PDIUSBD12要求微控製器在向其中寫數據時,所寫的數據在WR信號無效之後,要繼續保持有效的時間。這個參量最小值為10ns。也就是說,PDIUSBD12要求所寫的數據最少要保持有效10ns(在WR無效之後)。

圖3 PDIUSBD12所要求的寫時序
由此可以看出,DSP(TMS320C2XX)的寫時序不能可靠地保證滿足 PDIUSBD12deyaoqiu,erqiezhegewentiwufatongguoruanjianjiayanshidefangfalaijiejue,bixutongguoyingjianlaichuli。jingguofenxiduibi,zuihoujuedingcaiyongyigehenjiandandanshihoulaishishizhengmingfei 常有效的方法來調整它們之間的時序。那就是在DSP(TMS320C2XX)與PDIUSBD12的總線之間加一個雙向緩衝器-74LS245。這個芯片 可以在它們的時序之間引入一個延時。雖然這個延時並不可靠、但是由於DSP(TMS320C2XX)本身會在WR無效後,繼續保持數據有效一段時間(前麵 已講過),這要僅僅需要將延時適當延長一點就可以了。74LS245所造成的延時典型值為15ns,最小也為8ns。這樣,加上原來DSP寫時序的延時, 就可以滿足PDIUSBD12所要求的寫時序了。
另外由於加入74LS245所造成的對其它接口時序的影響,可以通過設置DSP(TMS320C2XX)的WSGR寄存器來消除,所以這個方案 是可行的。(事實上,後來製造好的電路也證明了這個方案是完全可行的)
對其餘時序上的配合,經過仔細的計算與核對證明,也是完全可行的。在硬件上,哂方案還采用了一片GAL(16V8)來實現對PDIUSBD12 芯片的片選,以及實現對它的軟件和手動複位。
2 軟件設計
2.1 固件設計
由於采用的是不帶MCU內核的USB接口芯片,所以關於USB1.1協議規範的實現都必須靠DSP(TMS320C2XX)控製 PDIUSBD12芯片來完成。固件的主要設計任務是:在DSP(TMS320C2XX)的平台上編寫程序,以完成 USB1.1規範所要求的標準請求及用戶根據產品需要自己定義的請求。
[page]
為了不影響程序的執行效率,本方案采用中斷方式完成固件的編寫;同時,為了保證程序的模塊化及良好的可移植性,在設計中采用分層結構進行固件的 編寫,如圖4所示。

圖4 中斷方式完成固件的編寫
最下層是硬件接口層,完成硬件上PDIUSBD12與DSP(TMS320C2XX)的對接。主要是DSP(TMS320C2XX)向PDIUSBD12 中寫入數據或者命令,以及從中讀取數據。
中間層主要有兩個模塊,用來完成PDIUSBD12的命令接口和中斷處理子程序。命令接口是指按照PDIUSBD12的命令格式,完成DSP對它的控製。它的基本命令格式是:DSP先向其中的命令地址寫入某一條命令,接著從它的數據地址寫入或者讀出一係列的數據。中斷處理子程序是判斷中斷的產生 源,然後跳轉到相應的處理子程序。這些子程序不做過多的處理,而僅僅是將命令數據讀出然後置標誌位,或者是將某些數據送出。
最上層是主循環程序,以及對於USB1.1標準協議請求(這些請求主要是在USB1.1協議規範的第九章中定義的)和用戶自定義請求的處理程 序xu。主zhu循xun環huan的de主zhu要yao工gong作zuo是shi檢jian查zha標biao誌zhi位wei。如ru果guo標biao誌zhi位wei被bei置zhi位wei,則ze調tiao用yong處chu理li子zi程cheng序xu,判pan斷duan是shi標biao準zhun請qing求qiu還hai是shi用yong戶hu自zi定ding義yi請qing求qiu,然ran後hou調tiao用yong相xiang應ying的de處chu理li程cheng序xu加jia以yi處chu理li,完wan成cheng請qing求qiu。
這樣分層的好處是:主循環程序在檢查標誌位以外的時間可以進行其它工作,提高固件的運行效率。
編程過程中,由於涉及了一些嚴格的接口時序配合問題,所以,整個固件的編寫工作全部采用DSP(TMS320C2XX)的彙編語言;用的是 CC2000編程開發工具。
2.2 PC機軟件的設計
PC機的驅動程序由Philips公司提供。然後,用VC++6.0,通過調用API函數,編寫PC的應用程序。這樣即可實現PC機對 DSP(TMS320C2XX)攝像係統的攝像控製以及圖像的傳輸。
主要使用的API函數是DeviceIOControl()、ReadFile()、 WriteFile()。其中DeviceIOControl()用於PC(主機)向DSP圖像采集係統發送請求;ReadFile()和 WriteFile()分別用於從圖像采集係統中讀出數據以及向圖像采集係統中寫入數據。
在設計過程中必須注意的問題是:由於USB接口是主-從方式的接口,它的一切傳輸過程都必須通過主機向外設發送請求後才可以開始,所以在使用 ReadFile()、WriteFile()讀寫數據之前,必須先通過 DeviceIOControl()向圖像采集係統發送請求。
3 結果及分析
設計方案完成後,在最後的測試當中,通過USB1.1接口,PC機與DSP係統的通信速率最高達到了580KB/s(4.6Mb/s)yishang。zhegesulvzhideshiyouxiaoshujuchuanshusulv,bubaokuoshujuchuanshulianluodetouxinxibufen,suoyizhegesulvhaishibijiaolingrenmanyide。xianzai,chuanshuyizhangfumianwei352×288像素的黑白圖片(大小為 99KB),耗時不到1s。如果實現動態的拍攝及顯示,那麼,整個係統每秒可以拍攝並完成顯示3~4幅不經壓縮的幅畫為352×288像素大小的黑白圖片。
測試結果表明,該係統運行可靠(已將程序燒寫進片內Flash中),各項性能指標都已達到了最初的設計要求,能夠很好地實現圖像數據在PC機與 DSP之間高速的雙向傳輸。並且,這套USB接口方案隻采用了1片PDIUSBD12接口芯片和1片 74LS245,器件成本隻有20元左右,這個成本是比較低的。同時,由於采用了DSP作為控製器,所以它的通信速率可以很高;因此,可以說本方案達到了低成本,高速率的USB1.1接口設計要求。
特別推薦
- 噪聲中提取真值!瑞盟科技推出MSA2240電流檢測芯片賦能多元高端測量場景
- 10MHz高頻運行!氮矽科技發布集成驅動GaN芯片,助力電源能效再攀新高
- 失真度僅0.002%!力芯微推出超低內阻、超低失真4PST模擬開關
- 一“芯”雙電!聖邦微電子發布雙輸出電源芯片,簡化AFE與音頻設計
- 一機適配萬端:金升陽推出1200W可編程電源,賦能高端裝備製造
技術文章更多>>
- 大聯大世平集團首度亮相北京國際汽車展 攜手全球芯片夥伴打造智能車整合應用新典範
- 2026北京車展即將啟幕,高通攜手汽車生態“朋友圈”推動智能化體驗再升級
- 邊緣重構智慧城市:FPGA SoM 如何破解視頻係統 “重而慢”
- 如何使用工業級串行數字輸入來設計具有並行接口的數字輸入模塊
- 意法半導體將舉辦投資者會議探討低地球軌道(LEO)發展機遇
技術白皮書下載更多>>
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索



