機電之家資源網(wǎng)
單片機首頁|單片機基礎(chǔ)|單片機應(yīng)用|單片機開發(fā)|單片機文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
DSP6416的主機接口(HPI)與USB接口的連接與設(shè)計
DSP6416的主機接口(HPI)與USB接口的連接與設(shè)計
 更新時間:2009-6-5 9:11:28  點擊數(shù):2
【字體: 字體顏色
摘 要:本文以基于3G 技術(shù)的移動自組織網(wǎng)(MANET)的研究為背景,用現(xiàn)在較為流行的高速USB接口與DSP的主機接口HPI相連接,成功地解決了MANET移動終端與主機之間的數(shù)據(jù)交換問題。本文在介紹了TI公司DSP芯片TMS320C6416和CYPRESS公司的USB接口控制芯片CY7C68013特點以后,介紹了兩者連接的一種硬件設(shè)計以及USB芯片的固件的編寫和調(diào)試。
  關(guān)鍵詞:移動自組織網(wǎng);HPI接口;USB接口;固件;波形描述符

一、引言
  
當(dāng)前,數(shù)字信號處理器(DSP) 芯片以其強大的運算能力在通信、電子、圖像處理等各個領(lǐng)域得到了廣泛的應(yīng)用。使用DSP的系統(tǒng)可以按處理器使用的數(shù)目分為單處理器系統(tǒng)和多處理器系統(tǒng)。單 DSP的系統(tǒng)盡管結(jié)構(gòu)簡單,但系統(tǒng)的功能將不可避免地有所限制。在使用DSP的多處理器系統(tǒng)中,由于DSP的控制功能不是非常強大,因此往往把DSP作為一個相對獨立的子系統(tǒng)專門負(fù)責(zé)復(fù)雜的運算,而另外使用一個主機(PC機或是單片機)對整個系統(tǒng)的運行進行控制。所以,在使用DSP的多處理器系統(tǒng)中,主機 (單片機、PC機或另一個DSP芯片)與子系統(tǒng) DSP的數(shù)據(jù)交互就成為應(yīng)用系統(tǒng)設(shè)計中必須考慮的重要問題。
  
在基于3G 技術(shù)的移動自組織網(wǎng)的研究項目中需要設(shè)計一個MANET移動終端,該移動終端由一臺PC(或PDA)和一個無線收發(fā)設(shè)備組成。無線收發(fā)設(shè)備完成物理層和 MAC層的數(shù)據(jù)處理,其中DSP完成部分物理層的解調(diào)功能和MAC層的協(xié)議數(shù)據(jù)處理功能;而網(wǎng)絡(luò)層和網(wǎng)絡(luò)層以上的部分由PC機或PDA承擔(dān)。這樣就需要設(shè)計一個接口完成DSP與主機之間的數(shù)據(jù)交互。由于USB接口具有熱插拔、速度快(包括低、中、高模式)和外設(shè)容量大(理論上可掛接127個設(shè)備)等特點,使其成為PC機的外圍設(shè)備擴展中應(yīng)用日益廣泛的接口標(biāo)準(zhǔn)。因此我們選擇了USB作為無線收發(fā)設(shè)備和PC機之間的接口方式。結(jié)合MANET移動終端的實際需要,我們設(shè)計了DSP芯片與PC機之間進行通信的接口。該接口通過TI公司的TMS320C6416(7E3)DSP芯片(以下簡稱DSP6416)的 HPI-16總線與CYPRESS公司的FX2系列的CY7C68013相連,可使PC機通過USB2.0接口實時地與DSP進行數(shù)據(jù)交互,從而將DSP 從數(shù)據(jù)傳輸中解放了出來,解決了MAC層與網(wǎng)絡(luò)層之間的數(shù)據(jù)交互問題。

二、背景知識
1.USB協(xié)議
  USB總線是INTEL、NEC、MICROSOFT、IBM等公司于1995年聯(lián)合提出的一種串行總線規(guī)范。為了適應(yīng)高速數(shù)據(jù)傳輸?shù)男枰@些公司又于2000年4月在原協(xié)議1.1版本的基礎(chǔ)上制定了USB2.0協(xié)議規(guī)范,使其傳輸速度可高達480Mbps。
  
由于USB協(xié)議非常復(fù)雜,開發(fā)者不可能直接在USB底層協(xié)議的基礎(chǔ)上進行開發(fā)。目前,市場上已經(jīng)有許多對USB協(xié)議進行了封裝的接口芯片,如:National Semiconductor公司的USBN9602、Phillips公司的PDIUSBD12等。本項目中選用的是CYPRESS公司帶單片機內(nèi)核的FX2系列USB接口芯片CY7C68013。
2.芯片介紹
  (1)DSP芯片
  DSP6416是 TI公司的TMS320C6000系列DSP中一款性能極高的定點DSP芯片。它是TI公司基于第二代、高性能的超常指令集結(jié)構(gòu)(VelociTI.2TM)而研發(fā)的一款DSP。在工作時鐘為720 MHz時,其最高處理能力能夠達到5 760 MIPS,并且具有極強的并行處理能力,因此在高速DSP處理應(yīng)用領(lǐng)域中具有不可替代的卓越性能。
  (2)DSP芯片的主機接口(HPI)
  DSP6416芯片的主機接口是一個16/32 bit寬度的、由主機直接訪問DSP存儲空間的并行端口。HPI與DSP存儲空間的連接是通過DMA或者增強性DMA(EDMA)控制器完成的。借助專門的地址寄存器(HPIA)、數(shù)據(jù)寄存器(HPID)和控制寄存器(HPIC),通過DMA或EDMA輔助通道,主機可對DSP的存儲空間進行直接訪問。
  (3)USB接口芯片
  本項目中采用的USB接口芯片CY7C68013屬于Cypress公司的FX2系列產(chǎn)品。EZUSB FX2是Cypress生產(chǎn)的世界上第一個USB2.0的集成微控制器。其性能詳見參考文獻[3]。
  CY7C68013與外設(shè)有主/從兩種接口方式:可編程接口GPIF和 Slave FIFO?删幊探涌贕PIF是主機方式,可以由軟件編寫讀寫控制時序,靈活方便,幾乎可以和所有8/16 bit接口的控制器、存儲器和總線進行無縫連接。Slave FIFO方式是從機方式,外部控制器可以像對待普通FIFO一樣對FX2內(nèi)的多個緩沖區(qū)進行讀寫。Slave FIFO接口也可以靈活配置以適應(yīng)不同的需要。在本項目的設(shè)計中,我們采用的是可編程接口GPIF方式。

三、接口的設(shè)計與調(diào)試
1.基本工作流程
  
在本系統(tǒng)中,無線收發(fā)設(shè)備中的DSP 與主機之間的接口主要由3個部分組成:主機(能夠支持USB2.0協(xié)議的PC機),內(nèi)含一個51核及高速緩存的USB接口芯片(CY7C68013)和高速DSP芯片(TMS320C6416-7E3),如圖1所示。其基本工作流程是:當(dāng)USB設(shè)備插入計算機時,計算機和USB設(shè)備之間會產(chǎn)生一個枚舉過程:計算機檢測到有設(shè)備插入,自動發(fā)出查詢請求;USB設(shè)備回應(yīng)這個請求,送出設(shè)備的Vendor ID和Product ID;計算機根據(jù)這兩個ID裝載相應(yīng)的設(shè)備驅(qū)動程序,完成枚舉過程。枚舉過程結(jié)束后即可以進行數(shù)據(jù)的交互,在接收數(shù)據(jù)即DSP有數(shù)據(jù)要傳送給PC機時,它首先向FX2發(fā)送一個硬件中斷信號,F(xiàn)X2接收到該中斷后,啟動接收程序,并通過HPI接口設(shè)置DSP6416的HPIC寄存器的HINT標(biāo)志位(將其置 1),使DSP下一次仍然可以通過該位發(fā)出中斷;然后通過端口6將固定長度(512字節(jié))的數(shù)據(jù)讀入FIFO;在端口6讀取數(shù)據(jù)的過程中為了保證較高的傳輸速度,F(xiàn)X2中的CPU是不干預(yù)該過程的,當(dāng)FIFO中的數(shù)據(jù)達到一定數(shù)量后FX2自動將數(shù)據(jù)打包傳送給USB總線;在發(fā)送數(shù)據(jù)即PC機有數(shù)據(jù)要發(fā)送時,它將數(shù)據(jù)包直接傳給FX2,F(xiàn)X2收到后,按指定的字節(jié)長度將數(shù)據(jù)讀到發(fā)送端口2的FIFO中,然后自動啟動GPIF,將數(shù)據(jù)傳送給DSP,接下來 FX2通過HPI接口設(shè)置DSP6416的HPIC寄存器中的DSPINT位(將其置1),向DSP6416發(fā)起中斷,通知DSP6416有數(shù)據(jù)包到。同樣,為保證較高的傳輸速度,在發(fā)送數(shù)據(jù)時FX2的CPU也是不進行干預(yù)的。

2.硬件電路設(shè)計及原理
  
由于DSP的HPI接口是主從模式的,且DSP作為從模式,因此CY7C68013須以主模式參與連接,這樣我們選擇可編程控制接口GPIF方式與DSP HPI的接口進行連接。電路設(shè)計原理圖如圖2所示。
  
圖中兩個芯片的管腳說明請參見參考文獻[2]和[3],具體的電路連接方面不是很復(fù)雜,但是有幾點需要說明:
  (1) 該電路中,我們采用的是CY7C68013的56 SSOP管腳封裝的芯片進行設(shè)計的,但是建議在固件和驅(qū)動沒有進行調(diào)試或沒有調(diào)試經(jīng)驗的情況下最好使用100或128管腳封裝的芯片,因為這兩種封裝的芯片帶有串口,這在固件和驅(qū)動的調(diào)試中可以通過串口進行單步調(diào)試,這樣會在調(diào)試過程中減少很多不必要的麻煩;
  (2)FX2有3種啟動后的固件加載方式:① 通過主機的驅(qū)動進行加載;②通過I2C總線外掛E2PROM加載;③通過外掛存儲器ROM進行加載。我們在該設(shè)計中采用的是第一種方式,所以SCL和SDA兩個管腳應(yīng)該上拉;
  (3)為了更好地與各種不同的接口進行無縫連接,CY7C68013提供了多個輸入和輸出控制管腳,這些管腳在讀寫時的時序都可以在固件中編程實現(xiàn),使得GPIF方式使用起來極為方便靈活。在該設(shè)計中,HCNTL[0-1]和HINT這些輸入控制邏輯信號連接至PA0~PA2輸入管腳上;HHWIL、 HDS1和H/#R,這些輸出邏輯信號連接至CTL0~CTL2輸出管腳上;HRDY與68013的RDY0專門與Ready信號連接的管腳相連;
  (4)由于沒有地址和數(shù)據(jù)總線復(fù)用的情況,所以DSP6416的#HAS管腳應(yīng)上拉;
  (5)DSP6416的HPI接口有32 bit和16 bit兩種工作模式,其工作模式的選擇是通過芯片在復(fù)位時讀取HD5管腳的電平來決定的。當(dāng)HD5為高電平時,DSP工作于HPI32模式下;當(dāng)HD5 為低時,DSP工作于HPI16模式下。為使DSP工作于HPI16模式,應(yīng)將HD5管腳下拉。

3.固件程序設(shè)計與調(diào)試
  (1)固件的設(shè)計
  固件是在USB 接口芯片加電后,由其它設(shè)備加載到CY7C68013中并在其中運行完成接口數(shù)據(jù)傳送功能的一段程序。在本接口中采用的是由PC機通過USB接口加載固件的方式(在前面已經(jīng)提到)。固件的功能主要包括:①加載后于主機驅(qū)動配合完成接口設(shè)備的第二次枚舉;②處理與DSP6416的HPI接口的數(shù)據(jù)交換;③處理與主機之間的USB接口的數(shù)據(jù)交換。
   
在68013芯片中數(shù)據(jù)的交換是通過不同的數(shù)據(jù)端口來實現(xiàn)的。FX2一共有十幾個端口可以使用,其中0端口是控制端口,用于傳送主機驅(qū)動命令;
  端口1有2個,一個是輸入端口一個是輸出端口;余下的是幾個通用的數(shù)據(jù)端口,端口2、4、6、8,這幾個端口的性質(zhì)(包括輸入或輸出、端口緩沖區(qū)大塊數(shù)和大小等)參數(shù)需要在固件中進行配置的。本例中的端口配置如表1所示。  

  固件程序的編寫主要分幾個大的模塊:
  
1) 主模塊,主要完成設(shè)備的初始化、固件運行后的“重新枚舉”、進入循環(huán)不斷接收PC機發(fā)送的一些命令并等待數(shù)據(jù)的傳送;
  
2) 數(shù)據(jù)收發(fā)模塊,主要完成初始化數(shù)據(jù)傳送端口,并且處理0端口發(fā)出的命令。當(dāng)輸出端口有數(shù)據(jù)時把數(shù)據(jù)通過GPIF按照給定的時序把數(shù)據(jù)傳送到預(yù)先指定的 DSP存儲空間,并向DSP發(fā)出中斷,通知它有數(shù)據(jù)包到;當(dāng)收到DSP有數(shù)據(jù)要傳入的中斷時,啟動GPIF的HPI接收時序,把DSP中的數(shù)據(jù)接收到輸入端口的緩沖區(qū),并通知PC機,PC機通過USB接口將數(shù)據(jù)取走,接著清除DSP中HPI端口的控制寄存器的中斷標(biāo)志位;
  
3) GPIF模塊,主要是對DSP6416 HPI接口的時序進行編程,使得自己與DSP之間的接口時序完全與DSP HPI的時序相一致,這種時序的編程具體來說就是設(shè)定一個個波形描述符,每個波形包含有S0~S6七個有效狀態(tài)和一個空閑狀態(tài)。一共有4個波形描述符:兩個單字的寫時序(前后兩個字的寫時序不一樣)、一個批量數(shù)據(jù)的讀時序、一個批量數(shù)據(jù)的寫時序。GPIF波形描述符的編程一般使用Cypress公司提供的 GPIFTOOL工具進行配置;
  4)設(shè)備描述模塊,該模塊唯一的功能就是提供主機啟動在重新枚舉設(shè)備時所需要的VID和PID以及其它一些必要的設(shè)備描述符。這個模塊的格式是基本固定的,除了VID和PID外一般不需要改動。
  
在固件的編寫中關(guān)鍵的是GPIF波形描述符的編寫。波形描述符的編寫首先必須弄清楚HPI的讀寫時序,設(shè)置好輸入和輸出控制信號。
  
以下以HPI16接口的批量數(shù)據(jù)讀時序為例,列出部分波形描述符的源代碼(包括控制信號的設(shè)置以及時序的編程)供大家參考。GPIF波形圖的具體編程參見參考文獻[4]。 


  固件程序框圖如圖3所示。
  (2)固件的調(diào)試
  一般固件的調(diào)試方法很多,我們采用的是用Cypress公司提供的EZ USB Control Panel與TI公司的CCS加上DSP的仿真器聯(lián)合進行調(diào)試的。如果用100或128管腳的CY7C68013芯片,可以通過串口用Keil C進行固件加載后的單步調(diào)試,這樣會方便很多。
  
調(diào)試的大致過程為:首先啟動Control Panel和CCS,然后在CCS中將預(yù)先約定的數(shù)據(jù)收發(fā)緩存去清零,接著通過Control Panel下載固件到CY7C68013中,重新枚舉后,在Control Panel中通過0端口設(shè)置所要傳輸?shù)淖止?jié)數(shù)和要傳輸?shù)臄?shù)據(jù)在DSP中的首地址,接著向端口2發(fā)送數(shù)據(jù),在CCS中通過內(nèi)存地址查看工具查看從首地址開始的內(nèi)存地址內(nèi)容,看DSP對應(yīng)的地址中是否有剛才寫入的數(shù)據(jù)。如果有,說明固件的數(shù)據(jù)發(fā)送已經(jīng)沒有問題了。接著再通過端口0設(shè)置讀入首地址,在CCS中運行HPI中斷出發(fā)程序,通過DSP向FX2發(fā)起中斷,固件收到中斷后會自動運行中斷服務(wù)程序,從端口6中讀入一批長度為512字節(jié)的數(shù)據(jù),如果讀入的數(shù)據(jù)與DSP中對應(yīng)的地址中的數(shù)據(jù)一致說明固件的數(shù)據(jù)接收也通過了。剩下的工作就是在和驅(qū)動的調(diào)試中與驅(qū)動之間的傳輸協(xié)議的調(diào)試了。

四、結(jié)束語
  在基于TD -SCDMA的MANET移動終端的具體實現(xiàn)中,用CY7C68013芯片將DSP的HPI與主機的USB接口進行連接,既很好地利用了該芯片接口可編程靈活和外圍電路簡單的特點,而且也提高了數(shù)據(jù)傳輸?shù)姆(wěn)定性和速度。運用DSP芯片提供的HPI接口進行MAC層與網(wǎng)絡(luò)層的數(shù)據(jù)傳送,使得DSP基本無需參與這部分?jǐn)?shù)據(jù)的傳輸,從而減輕了DSP的負(fù)擔(dān)。目前,該技術(shù)已經(jīng)成功的應(yīng)用到具體項目中,并取得了良好的效果。

參考文獻

[1]TMS320C6000 DSP Host Port Interface(HPI)Reference Guide (Literature Number:SPRU578)[Z].Texas Instruments Incorporated,2003.
[2] TMS320C6414, TMS320C6415, TMS320C6416 Fixed-Point Digital Signal Processors (Revised) [Z].Texas Instruments Incorporated,2003 .
[3]CY7C68013EZ-USB FX2TMUSB Microcontroller High-speed USB Peripheral Controller[Z].Cypress Semiconductor Corporation,2002.
[4]EZ-USB FX2 Technical Reference Manual[Z].Cypress Semiconductor Corporation,2002.
[5]許永和. EZ-USB FX 系列單片機USB外圍設(shè)計和應(yīng)用[M]. 北京:北京航空航天大學(xué)出版社,2002.

<!--插入廣告JS代碼-->
  • 上一篇: DSP在電能表中的應(yīng)用
  • 下一篇: DSP系統(tǒng)的通信與控制接口設(shè)計
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機電之家 | 會員助手 | 免費鏈接

    點擊這里給我發(fā)消息66821730(技術(shù)支持)點擊這里給我發(fā)消息66821730(廣告投放) 點擊這里給我發(fā)消息41031197(編輯) 點擊這里給我發(fā)消息58733127(審核)
    本站提供的機電設(shè)備,機電供求等信息由機電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實性、準(zhǔn)確性和合法性。
    機電之家對此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請聯(lián)系機電之家,機電之家將及時作出處理。
    Copyright 2007 機電之家 Inc All Rights Reserved.機電之家-由機電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機電一體化學(xué)會
    中國行業(yè)電子商務(wù)100強網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1