新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > ADSP-TS101的USB 2.0接口擴展

        ADSP-TS101的USB 2.0接口擴展

        ——
        作者: 時間:2007-12-17 來源: 收藏

          1 引 言

          現(xiàn)代系統(tǒng)通常涉及到上位機與機之間的數(shù)據(jù)通訊,如何建立機與上位機的通訊接口成為系統(tǒng)設計中必須解決的一個問題。通常情況下,對于數(shù)據(jù)傳輸速度要求不太高的應用,可以使用普通串行口作為通訊鏈路。在本系統(tǒng)中,由于采用多片高性能浮點數(shù)字信號作為,產生了大量的處理結果,并且要求實時傳輸處理結果,傳輸速度必須達到1 MB/s,因此普通的串行通訊口已經不能滿足要求。若采用PCI接口,雖然在速度上可以滿足要求,但需要單獨在上位機占用一個PCI插槽,另外由于系統(tǒng)還有其他模塊需要與信號處理機進行高速數(shù)據(jù)傳輸,因此在供電設計、系統(tǒng)中模塊間的連接布線、開發(fā)調試中都存在一定的困難,在使用中也會因為其不具備熱插拔功能而相對繁瑣。考慮到這些因素,選擇USB 2.0接口作為通訊鏈路,因為其具有傳輸速度高、使用簡單、成本低廉的優(yōu)點。

          USB(Universal Serial Bus)是一種通用串行總線,由COMPAQ,InteI,Microsoft和NEC等公司共同開發(fā),并成為標準,現(xiàn)今已廣泛運用于各種數(shù)字系統(tǒng)中。USB總線具有用戶使用方便、成本低廉、易于與PC接口、支持熱插拔、傳輸速度高、易于升級等優(yōu)點。USB 2.0的最高傳輸速率可達480 Mb/s,比一般的串口快1 000倍以上。

          USB總線主要包括主機和設備、物理構成、邏輯構成以及客戶軟件與設備功能接口的關系4個部分,圖1展示了USB總線組成關系。

          

          2 系統(tǒng)設計

          2.1 系統(tǒng)結構

          圖2為本文所論及的信號處理系統(tǒng)的結構框圖。在本系統(tǒng)中,上位機將設置好的參數(shù)發(fā)送給信號處理機,由信號處理機將參數(shù)轉發(fā)給系統(tǒng)其他模塊,并根據(jù)此參數(shù)進行相應的信號處理,最后再將處理結果傳回上位機。

          

          2.2 ISP1581簡介

          ISP1581是Philips公司的一款高性價比的USB 2.0接口芯片。他完全遵循USB 2.0規(guī)范,支持7個IN端點,7個OUT端點和一個固定控制IN/OUT端點。ISP1581支持USB 2.0的自檢工作模式和USB 1.1的返回工作模式,可以在高速或全速條件下正常運行。內部集成有串行接口引擎(SIE),PIE,8 kB的FIFO存儲器,數(shù)據(jù)收發(fā)器,PLL的12 MHz晶體振蕩器和3.3 V的電壓調整器。同時,可通過軟件控制與USB總線的連接。

          2.3 硬件電路設計

          由和ISP1581構成的USB 2.0接口電路如圖3所示。其中在系統(tǒng)中同時完成信號處理和充當微控制器完成對ISP1581的控制。ADSP-TS101和ISP1581以通用總線的方式連接,即數(shù)據(jù)總線和地址總線分離的方式。ISP1581的片選信號連接到ADSP-TS101的MS0,映射到ADSP-TS101的地址空間為0X8000000~0X80000FF,TS101通過對這些地址上的寄存器進行讀寫來控制ISP1581,完成與上位機的USB傳輸。ISP1581的中斷輸出引腳連接到ADSP-TS101的中斷請求輸入引腳IRQ2,通過中斷方式與DSP通訊。ISP1581的復位可通過硬件和軟件觸發(fā),硬件復位引腳連接到系統(tǒng)復位信號,系統(tǒng)上電復位或熱復位時同時復位ISP1581。

          

          3 固件程序設計

          由于ISP158l本身沒有集成的微控器,固件程序將在TS101中運行。固件程序在結構上采用中斷驅動方式,TS101通常情況下在自身的運算任務下運行,當上位機有通訊請求時,通過中斷方式通知TSl01。在TSl01的中斷服務程序中,通過讀ISPl581的內部寄存器判斷具體的請求類型,然后設置相應的標志。從程序的實現(xiàn)方式來說,固件程序主要就是一系列請求函數(shù)的集合,主要包括實現(xiàn)設備枚舉的標準請求和與具體應用相關的廠商請求,不同的請求根據(jù)建立包中的數(shù)據(jù)來區(qū)分,固件程序的主要流程圖如圖4所示。

          

          3.1 ISPl581的初始化

          為兼容USB 1.1接口,器件初始配置為全速模式,若上位機支持USB 2.0接口,可在設備枚舉的過程中更改為高速模式。器件支持7個IN和7個OUT端點,分別可以配置成為中斷方式、同步方式和批量方式,其中批量方式適合高速的數(shù)據(jù)傳輸要求,中斷方式可以用于命令數(shù)據(jù)的傳輸。在此雷達系統(tǒng)中,為滿足應用要求,共配置2個批量輸出端點用于處理結果傳輸、1個中斷輸出端點用于命令響應和1個中斷輸入端點用于接收命令,其他的端點保留不用。

          3.2 設備枚舉

          USB設備的枚舉至關重要,直接影響到設計的成功與否,這需要嚴格依據(jù)USB 2.0協(xié)議規(guī)范來設計。這部分程序主要由一系列標準請求函數(shù)構成,在USB任務處理中被調用,主要包括獲取設備描述符、設置設備地址、配置設備、配置端點等。USB設備的枚舉一般按照如下步驟進行:

          (1)設備連接,總線復位,ISP1581將發(fā)送高速(HS)模式檢測信號,若接收到一個高速(HS)握手信號,則將轉換到高速(HS)狀態(tài),否則仍工作在全速(FS)狀態(tài);

          (2)通過默認地址0獲取設備描述符;

          (3)給設備分配惟一的地址;

          (4)通過分配的地址重新獲取設備描述符;

          (5)獲取配置描述符;

          (6)獲取設備描述符集合,包括配置描述符、接口描述符、端點描述符;

          (7)若為第一次連接則提示找到新硬件,要求安裝驅動程序,否則根據(jù)設備描述符加載設備驅動程序;

          (8)配置設備,至此設備枚舉完成。

          3.3 廠商請求

          本應用中的廠商請求主要包括發(fā)送控制命令和讀取處理結果。由于控制命令的數(shù)據(jù)量很小,故采用中斷方式進行傳輸,而處理結果數(shù)據(jù)量較大,為提高傳輸速度,采用批量傳輸方式傳輸。為防止數(shù)據(jù)異常更新,數(shù)據(jù)緩沖區(qū)采用乒乓緩沖方式,USB發(fā)送完成某個緩沖區(qū)的數(shù)據(jù)前,信號處理的結果只能存放在另一緩沖區(qū)中。圖5為控制命令-設置模式字的廠商請求處理流程圖。

          

          4 驅動程序

          驅動程序用于處理底層通信細節(jié),實現(xiàn)具體的通信協(xié)議,為應用程序提供透明的傳輸接口。USB設備驅動程序的設計是基于WDM(Windows Driver Model,Windows驅動模型)的。WDM采用分層驅動程序模型,對于USB設備來說,可以分為USB總線驅動程序和USB功能驅動程序。USB總線驅動程序是由操作系統(tǒng)提供,USB功能驅動程序是由設備開發(fā)者編寫的,他位于USB總線驅動程序的上面,通過向USB總線驅動程序發(fā)送IRP(I/O Re-quest Packet,I/O請求包),來實現(xiàn)對USB設備信息的發(fā)送與接收。

          USB設備驅動程序的開發(fā)工具有Windows DDK,KRFTech公司的WinDriver,Compuware公司的DriverWorks等。其中WinDriver使用簡單,開發(fā)者幾乎不需要編寫任何代碼即可為開發(fā)的設備生成可用的驅動程序。為縮短開發(fā)周期,設備驅動程序用WinDriver開發(fā),并用InstallShield為驅動程序制作了單一的安裝包,以方便用戶安裝使用。

          5 設備調試中遇到的問題及解決辦法

          在USB設備的開發(fā)過程中,設備的調試工作一個重點和難點,下面針對ISP1581,對在調試過程中可能遇到的問題做出簡要的說明。

          (1)不能正常讀寫ISP1581內部的寄存器。

          出現(xiàn)此問題的可能原因主要有兩個:第一,ISP1581的時鐘信號不穩(wěn)定,ISP1581需要穩(wěn)定的12 MHz時鐘頻率;第二,ISPl581上電復位不正常,可以在程序起始位置,重新復位ISPl581,延時20 ms后再對ISP1581進行操作。

          (2)連接設備后,上位機提示“不可識別的USB設備”。

          出現(xiàn)此提示,說明ISP1581已經設置好軟連接,真正與上位機連接,但是由于沒有正確響應上位機的請求,導致枚舉失敗,上位機不能正確識別USB設備。要解決此問題,最好使用調試工具來輔助,例如bushound等。運行該軟件,分析USB總線上傳輸?shù)臄?shù)據(jù)流,觀察USB設備與上位機的請求與響應狀態(tài)以及響應的具體內容,與標準的USB枚舉過程進行比對,從而查出問題所在。

          (3)設備枚舉成功,且正常加載驅動,但是無法對USB設備進行讀寫操作。

          導致此問題可能是固件程序、驅動程序以及應用程序的問題。應先排除應用程序和驅動程序的問題,使用WinDriver重新生成設備的驅動程序,并根據(jù)WinDriver提供的例程和API函數(shù)手冊,仔細檢查應用程序。固件程序故障的排除相對復雜,可利用WinDriver提供的端點測試工具,結合合理的固件程序斷點設置,按照USB數(shù)據(jù)傳輸?shù)牧鞒蹋鸺墮z查。

          USB設備的調試是一個復雜的過程,需要清楚地了解USB設備的枚舉過程和USB數(shù)據(jù)傳輸過程,通過細心的檢查找出問題所在,才能將問題根本解決。

          6 結 語

          本設計通過為ADSP-TSl01擴展USB接口,實現(xiàn)了信號處理機與上位機的USB 2.0接口,并在實際使用中取得了良好的效果,實際傳輸速度大于1.2 MB/s。設計中,ISP1581通過通用總線方式與TS101連接,如果希望取得更高的傳輸速度,可以考慮采用ISP1581的DMA模式。USB 2.0接口性能優(yōu)越,使用簡單,成本低廉,在計算機與外設的互聯(lián)中得到了廣泛的應用,并逐漸成為計算機與外設的標準結構,因此USB接口的設計在實際應用中具有重要的地位和意義。



        評論


        相關推薦

        技術專區(qū)

        關閉
        主站蜘蛛池模板: 高淳县| 龙胜| 松桃| 六盘水市| 房山区| 阜新市| 铜川市| 灵山县| 翼城县| 全南县| 丰宁| 正蓝旗| 望江县| 平舆县| 台江县| 阿克| 承德市| 麦盖提县| 台安县| 偃师市| 仙桃市| 周口市| 奉新县| 黄山市| 临汾市| 贵阳市| 上思县| 塔河县| 凤山市| 凤山县| 绥芬河市| 门源| 河源市| 霍林郭勒市| 呼玛县| 临漳县| 桂平市| 云林县| 饶阳县| 莲花县| 汶川县|