<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > TMS320C54XX DSP的USB接口實(shí)現(xiàn)

          TMS320C54XX DSP的USB接口實(shí)現(xiàn)

          作者: 時(shí)間:2008-02-18 來(lái)源:網(wǎng)絡(luò) 收藏
          通用串行總線(Universal Serial Bus)應(yīng)用由三部分組成:具有的PC系統(tǒng)、能夠支持的系統(tǒng)軟件和使用USB的設(shè)備。USB應(yīng)用采用通用連接技術(shù),外設(shè)的簡(jiǎn)單快速連接,借以達(dá)到方便用戶、降低成本、擴(kuò)展PC機(jī)連接外設(shè)范圍的目的。USB的特點(diǎn)如下:

          (1)連接靈活、使用方便 現(xiàn)在計(jì)算機(jī)系統(tǒng)連接外圍設(shè)備的并無(wú)統(tǒng)一的標(biāo)準(zhǔn),如鍵盤用PS/2接口,打印機(jī)用25針的并行接口等。USB則將這些不同的接口統(tǒng)一起來(lái),由一組微小的矩型插座和軟件構(gòu)成。用戶插入外設(shè)后,計(jì)算機(jī)系統(tǒng)能夠自動(dòng)識(shí)別接人的外設(shè),而不需要重新啟動(dòng)系統(tǒng),用戶可以帶電插拔;為USB設(shè)計(jì)的驅(qū)動(dòng)程序和應(yīng)用軟件可以自動(dòng)啟動(dòng),無(wú)需用戶干預(yù)USB設(shè)備,也不涉及IRQ沖突等問(wèn)題;USB單獨(dú)使用自己的保留中斷,不會(huì)同其它設(shè)備爭(zhēng)用PC機(jī)的有限資源。

          (2)為外設(shè)提供電源 USB能自動(dòng)識(shí)別外設(shè)所需的電源,并通過(guò)USB電纜向該設(shè)備供電(最高可達(dá)500mA)。

          (3)速度快 USB的最高傳輸率可達(dá)12Mbit/s,比串口速度快100倍,比并口速度快近10倍。USB端口的傳輸速率比目前PC機(jī)平臺(tái)上的任何其它類型端口的傳輸速率都快。預(yù)計(jì)今后USB的速度將會(huì)提高到100Mbit/s以上。

          (4)支持多媒體 USB提供了對(duì)電話的兩路數(shù)據(jù)支持,它可支持異步及等時(shí)數(shù)據(jù)傳輸,使電話可與PC機(jī)集成,共享語(yǔ)音郵件及其它功能。由于USB音頻信息生成于計(jì)算機(jī)外,因而減少了電子噪音干擾聲音質(zhì)量的機(jī)會(huì),從而使音頻系統(tǒng)具有更高的保真度。

          1 USB接口芯片AN2131Q

          目前市場(chǎng)上USB接口芯片很多,使用較為廣泛的是Crypress公司的AN2131系列的USB接口芯片AN2131Q。AN2131Q具有以下優(yōu)點(diǎn):

          (1)基于RAM的“軟”系統(tǒng)解決方案(SOFT,RAMBASED),不需要ROM或其它的固化存儲(chǔ)器,而只使用片內(nèi)的程序/數(shù)據(jù)RAM。通過(guò)主機(jī)下載的方式來(lái)配置USB接口,因而使接口系統(tǒng)的修改和升級(jí)變得非常簡(jiǎn)單,使外設(shè)硬件的更新和升級(jí)變得更為方便。

          (2)數(shù)據(jù)吞吐量完全達(dá)到USB協(xié)議要求,可以向用戶提供足夠的端口、緩沖區(qū)和傳輸速度;提供USB協(xié)議要求的全部四種傳輸方式(控制傳輸、中斷傳輸、批量傳輸和同步傳輸),可以滿足用戶對(duì)各種類型數(shù)據(jù)傳輸?shù)男枨蟆?/P>

          (3)片上的串行接口處理機(jī)(SIE)完成大部分的USB協(xié)議操作,使用戶可以擺脫復(fù)雜的協(xié)議細(xì)節(jié),簡(jiǎn)化了用戶配置代碼,加快了開發(fā)過(guò)程。

          (4)內(nèi)嵌增強(qiáng)型8051處理器,兼容8051指令系統(tǒng);一個(gè)指令周期僅需四個(gè)時(shí)鐘周期,可提供標(biāo)準(zhǔn)8051三倍以上的處理能力;雙數(shù)據(jù)指針,方便數(shù)據(jù)塊搬移;使用片內(nèi)RAM作為數(shù)據(jù)/程序存儲(chǔ)器,非復(fù)用數(shù)據(jù)/地址總線,使程序執(zhí)行速度更快,并且其同外部器件的連接更加簡(jiǎn)單。

          (5)休眠模式可以降低系統(tǒng)功耗,延長(zhǎng)器件的使用壽命。

          AN2131Q的功能框圖如圖1所示。

          USB收發(fā)器和PC機(jī)的接口只有四根導(dǎo)線:+5V、GND、D+、D-。數(shù)據(jù)以12Mb/s的全速信號(hào)或者以1.5Mb/s的低速信號(hào)在D+和D信號(hào)線上差分傳輸。收發(fā)器固化在芯片上,不需要外部電路,最多只需要用來(lái)選擇全速或者低速的上拉電阻。

          串行接口引擎(SIE)通過(guò)包排序、信號(hào)產(chǎn)生及檢測(cè)、CRC產(chǎn)生及校驗(yàn)、NRZI數(shù)據(jù)編碼、位填充以及包標(biāo)識(shí)產(chǎn)生及解碼等功能塊處理USB通信協(xié)議,并保證傳送到USB電纜上的數(shù)據(jù)字節(jié)以LSB開頭。

          AN2131Q采用通用的8051微控制器及片上RAM,其編程語(yǔ)言為51系列單片機(jī)的通用語(yǔ)言,使用方便。

          2 和AN2131Q接口芯片的硬件連接

          芯片選用TI公司的TMS320VC5409,TMS320VC5409是定點(diǎn)芯片,它使用改進(jìn)的哈佛結(jié)構(gòu),8級(jí)流水線操作,最高速度可以達(dá)到166MIPS。

          在AN2131Q芯片和 DSP芯片之間采用FIFO(First In First Out SRAM)芯片連接,可以使USB接口芯片和DSP之間的最大數(shù)據(jù)交換速度超過(guò)USB總線的速度,使之不成為數(shù)據(jù)傳輸?shù)钠款i,從而使DSP和主機(jī)間的數(shù)據(jù)傳輸速度只受USB協(xié)議限制。

          由于AN2131Q芯片內(nèi)嵌8位8051處理器,所以使用兩片8位FIFO芯片USB接口和DSP之間的雙向通信。FIFO選用具有1K9bit內(nèi)存的IDT72V02。從AN2131Q或者DSP傳輸?shù)臄?shù)據(jù)首先保存在FIFO中,然后再由DSP或者AN2131Q讀走,從而使得數(shù)據(jù)的傳輸不會(huì)出現(xiàn)堵塞情況,其硬件連接框圖如圖2所示。

          由于選用的FIFO只有雙端數(shù)據(jù)總線和狀態(tài)信號(hào),沒(méi)有地址總線,所以DSP采用I/O譯碼方式訪問(wèn)FIFO。FIFO狀態(tài)信號(hào)有空(EF)、半滿(HF)和滿(FF),它們都是低有效。合理利用這三個(gè)信號(hào)可以很有效地提高FIFO的讀寫效率。例如利用HF,如果其無(wú)效,表示FIFO中的數(shù)據(jù)沒(méi)有達(dá)到半滿,此時(shí)不用查詢FF就可以向FIFO中寫入一塊數(shù)據(jù),只要數(shù)據(jù)塊的大小等于或小于FIFO容量的一半,F(xiàn)IFO肯定不會(huì)滿溢出。這樣就可以大大提高FIFO的寫入速度。

          3 TMS320C54XX DSP芯片和AN2131Q芯片的軟件連接

          AN2131Q芯片和TMS320C54XX DSP芯片之間的軟件連接包括四個(gè)部分:AN2131Q對(duì)FIF01的寫、AN2131Q對(duì)FIF02的讀、DSP對(duì)FIF01的讀、DSP對(duì)FIF02的寫。為了描述方便,將FIF01的三個(gè)狀態(tài)信號(hào)稱之為:EF1、HFl和FF1,將FIF02的狀態(tài)信號(hào)稱為EF2、HF2和FF2。

          3.1 AN2131Q寫FIF01

          當(dāng)USB總線上有數(shù)據(jù)要傳送至DSP時(shí),AN2131Q查詢HFl。若HFl無(wú)效,AN2131Q一次向FIF01寫入一個(gè)數(shù)據(jù)包。包大小要小于或等于FIF01容量的一半,寫每一個(gè)字節(jié)時(shí)不需再查詢FFl。

          3.2 DSP讀FIF01

          DSP每次從FIF01中讀人一個(gè)數(shù)據(jù)包。每讀一個(gè)字節(jié)前,DSP需要查詢EFl,只有當(dāng)EFl無(wú)效(FIF01不空)時(shí),DSP才可能進(jìn)行讀操作。

          3.3 DSP寫FIF02

          當(dāng)DSP有數(shù)據(jù)要傳送至主機(jī)時(shí),DSP把數(shù)據(jù)打包,每次向FIF02中寫入一包數(shù)據(jù)。方法同AN2131Q寫FIF01,只不過(guò)DSP查詢的信號(hào)是HF2。寫完一包后,DSP向AN2131Q發(fā)一個(gè)中斷信號(hào),DSP在寫下一包數(shù)據(jù)時(shí)要等待AN2131Q的應(yīng)答。AN2131Q應(yīng)答的方法是利用DSP的外部中斷INTl中斷DSP。

          3.4 AN2131Q讀FIF02

          AN2131Q收到DSP發(fā)出的中斷信號(hào),應(yīng)答DSP后,從FIF02中讀人一包數(shù)據(jù),不用再查詢EF2。

          3.5數(shù)據(jù)包格式

          每個(gè)數(shù)據(jù)包由包頭和數(shù)據(jù)兩部分構(gòu)成,如圖3所示。包頭長(zhǎng)度為一個(gè)字節(jié),指明以字節(jié)為單位包中數(shù)據(jù)(不含包頭)的長(zhǎng)度。包中的數(shù)據(jù)要少于或等于64字節(jié),即最大的包總長(zhǎng)度為65字節(jié)。

          包頭

          數(shù) 據(jù)

          圖3數(shù)據(jù)包格式

          3.6 DSP中斷AN2131Q的方法

          通過(guò)操作控制字向AN2131Q發(fā)一個(gè)負(fù)脈沖,下降沿有效,時(shí)序要求如圖4所示。

          3.7 DSP讀FIFO狀態(tài)

          方法一是DSP通過(guò)讀I/0地址OXXX XXXX XXXX X010b可獲得狀態(tài)信號(hào)EFl和HF2。方法二是DSP通過(guò)置TMS320VC5409狀態(tài)寄存器STl中的XF位,從BIO引腳上獲取狀態(tài)信號(hào)。當(dāng)XF置1時(shí),BIO引腳反映HF2的電平,當(dāng)XF置0時(shí)反映EFl的電平。

          4 AN2131Q芯片驅(qū)動(dòng)程序的

          AN2131Q芯片的一個(gè)特點(diǎn)就是能夠按照個(gè)人需要通過(guò)“下載”和“重列舉”動(dòng)態(tài)地改變?cè)O(shè)備性能。AN2131Q芯片內(nèi)部有不可改變的存儲(chǔ)單元存放特有的代理號(hào)(VID)和產(chǎn)品號(hào)(PID),VID/PID將綁定主機(jī)中的某個(gè)設(shè)備驅(qū)動(dòng)程序,而該驅(qū)動(dòng)程序的唯一任務(wù)就是向AN2131Q下載程序代碼。

          用戶需要編寫三個(gè)程序來(lái)實(shí)現(xiàn)USB設(shè)備的使用。―個(gè)是負(fù)責(zé)USB接口調(diào)用程序,用于PC機(jī)識(shí)別USB設(shè)備;另一個(gè)是安裝USB的信息文件,用于對(duì)USB設(shè)備的一些說(shuō)明;第三個(gè)是AN2131Q使用的程序,用于對(duì)數(shù)據(jù)的傳輸。下面對(duì)這三個(gè)程序分別做一些簡(jiǎn)單的說(shuō)明。

          4.1負(fù)責(zé)USB接口調(diào)用程序

          Cypress提供了制作該程序的模板。首先,將KEIL51編譯生成的16進(jìn)制文件轉(zhuǎn)換為可寫入U(xiǎn)SB RAM中的二進(jìn)制文件。然后將該二進(jìn)制文件拷人模板中,調(diào)用DDK(Device Driver Kit),在DDK環(huán)境下對(duì)模板進(jìn)行編譯,生成驅(qū)動(dòng)程序的系統(tǒng)文件。USB通過(guò)GPD(General Purpose Driver)實(shí)現(xiàn)上層軟件與USB的通信。GPD提供一種用戶模式的界面,完成USB設(shè)備的請(qǐng)求和數(shù)據(jù)傳輸。Cypress的開發(fā)工具包中提供了其開發(fā)面板的源程序,而其開發(fā)面板的設(shè)計(jì)就是基于GPD的。這使得開發(fā)者在例子程序的指引下,能快速地編寫出用于通信的應(yīng)用軟件。GPD的設(shè)計(jì)思想是服務(wù)于一般用戶的,其接口函數(shù)具有通用性。通過(guò)GPD提供的接口函數(shù)的原型,可以實(shí)現(xiàn)各種USB操作。包括實(shí)現(xiàn)負(fù)責(zé)USB設(shè)備的請(qǐng)求(即打開USB設(shè)備);負(fù)責(zé)USB的I/O口控制;通過(guò)改變IOCTL(I/O Control Code)實(shí)現(xiàn)各種操作。

          4.2安裝USB的信息文件

          安裝文件的任務(wù)就是將驅(qū)動(dòng)程序文件綁定到特定的VID/PID。主要說(shuō)明哪一個(gè)文件是負(fù)責(zé)USB接口調(diào)用程序,哪一個(gè)文件是AN2131Q需要下載的文件。Crypress公司提供了一個(gè)標(biāo)準(zhǔn)的USB安裝信息文件。然而用戶還需要將自己對(duì)USB設(shè)備的描述(包括說(shuō)明、版本號(hào)、日期、生產(chǎn)商等信息)加到安裝信息文件中。

          4.3 AN2131Q使用的程序

          AN2131Q使用的程序是在PC機(jī)找到USB設(shè)備后下載到AN2131Q芯片內(nèi)的程序,此程序?qū)崿F(xiàn)AN2131Q對(duì)FIFO和USB接口的監(jiān)控和讀寫數(shù)據(jù)。這個(gè)文件因?yàn)樯婕暗较聦佑布倪B接,不可能提供通用的模板,需要用戶自己編寫。



          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();