《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 業(yè)界動態(tài) > 基于USB的DSP高速數(shù)據(jù)傳輸系統(tǒng)

基于USB的DSP高速數(shù)據(jù)傳輸系統(tǒng)

2008-04-11
作者:張 鑫1, 蘇東林1, 李保權(quán)

  摘 要:介紹了在TMS320C32系列DSP上,利用EZ-USB FX2微控制器擴(kuò)展USB接口的技術(shù),實現(xiàn)了DSP與計算機(jī)之間的高速數(shù)據(jù)傳輸。
  關(guān)鍵詞:USB DSP FX2 USB驅(qū)動 固件


  數(shù)字信號處理器DSP以其運(yùn)算速度快的特點已被廣泛應(yīng)用。但目前絕大部分DSP處理器僅提供了串口通訊方式,該方式僅適合少量數(shù)據(jù)的傳送,不能滿足通訊、圖像處理等需要高速數(shù)據(jù)交換場合的應(yīng)用。由于DSP運(yùn)算過程中產(chǎn)生的大量數(shù)據(jù)不能實時向計算機(jī)傳輸,從而成為拓展DSP應(yīng)用領(lǐng)域的一個瓶頸。而近幾年發(fā)展起來的通用串行總線USB技術(shù),能夠滿足設(shè)備間的高速數(shù)據(jù)傳輸。如果將USB技術(shù)應(yīng)用到DSP處理器上,就可以徹底地解決DSP設(shè)備與計算機(jī)間大數(shù)據(jù)量的交換問題,從而極大地擴(kuò)展了DSP的應(yīng)用領(lǐng)域。本文實現(xiàn)了在TMS320C32系列DSP上,利用EZ-USB FX2微控制器擴(kuò)展USB接口的技術(shù),實現(xiàn)了DSP與計算機(jī)之間的高速數(shù)據(jù)傳輸。
1 USB簡介
  通用串行總線USB的概念自1995年被提出以來,至今已經(jīng)歷了規(guī)范1.0、1.1和2.0。現(xiàn)在的USB2.0規(guī)范在原有的低速模式(low speed)1.5Mbps、全速模式(full speed)12Mbps的基礎(chǔ)上又支持高達(dá)480Mbps的高速模式(high speed),從而使USB總線真正成為能滿足高速應(yīng)用場合的標(biāo)準(zhǔn)連接總線。在USB2.0中,每毫秒可發(fā)送8~10微幀,這是USB1.1傳輸速率的40倍,同時對緩存的要求也大大降低了。USB2.0向下完全兼容,最高可以連接127個設(shè)備。另外,在端口擴(kuò)充的同時,各種采用USB2.0的設(shè)備仍可以維持在480Mbps的最高傳輸速度[1]
2 系統(tǒng)構(gòu)成
2.1 EZ-USB FX2性能特點
  Cypress Semiconductor公司的EZ-USB FX2(以下簡稱FX2)是世界上第一款集成USB2.0的微處理器,它集成了USB2.0收發(fā)器、SIE(串行接口引擎)、增強(qiáng)的8051微控制器和可編程的外圍接口。FX2這種獨(dú)創(chuàng)性結(jié)構(gòu)可使數(shù)據(jù)傳輸率達(dá)到56MBps,即USB2.0允許的最大帶寬。在FX2中,智能SIE可以硬件來處理許多USB1.1和USB2.0協(xié)議,從而減少了開發(fā)時間和確保了USB的兼容性。GPIF(General Programmable Interface)和主從端點FIFO(8位或16位數(shù)據(jù)總線)為ATA、UTOPIA、EPP、PCMCIA和DSP等提供了簡單和無縫連接接口。FX2的原理框圖如圖1所示。


  為了實現(xiàn)USB2.0的高速帶寬,把FX2的端點FIFO和從屬FIFO(實現(xiàn)和外部邏輯器件或處理器接口的FIFO)集成在一起以減少內(nèi)部數(shù)據(jù)傳輸時間。并且FX2的FIFO有獨(dú)特的“量子”特性[2],根據(jù)USB分組大小,外部可以一次提交多達(dá)4 096個字節(jié)的數(shù)據(jù),而不是每次一個字節(jié)。如果用經(jīng)典的FIFO,當(dāng)產(chǎn)生壞的CRC(循環(huán)校驗碼)時,所有的數(shù)據(jù)必然泛濫流出;如果CRC校驗正確,則分組信息能從USB域交換到I/O" title="I/O">I/O域。端點緩沖器可通過固件" title="固件">固件設(shè)置為雙、三或四緩沖器,與所需的數(shù)據(jù)量或靈活性有關(guān)。FX2的FIFO量子特性及可編程設(shè)置多緩沖為滿足USB2.0所需帶寬提供了保障。
2.2 TMS320C32性能特點
  數(shù)字信號處理器采用TI公司的TMS320C32,這是TI公司的第一代浮點DSP芯片。TMS320C32的性能特點:具有16M字的空間,每字32位。這16M字空間包括程序存儲區(qū)、數(shù)據(jù)存儲區(qū)和I/O空間;為32位處理器,具有32位內(nèi)部存儲器、32/40位內(nèi)部寄存器、32位內(nèi)部總線,還支持8位、16位數(shù)據(jù)操作,并且包含了兩個512×32位的快速RAM塊;C32通過24位的地址總線、32位的數(shù)據(jù)總線和三組選通信號IOSTRB、STRB0和STRB1訪問外部存儲器;TMS320C32是在TMS320C30和TMS320C31基礎(chǔ)上進(jìn)行了簡化和改進(jìn)。在結(jié)構(gòu)上的改進(jìn)包括可變寬度的存儲器接口、更快速的指令周期時間、可設(shè)置優(yōu)先級的雙通道DMA處理器、靈活的引導(dǎo)程序裝入方式、可重定位的中斷向量表以及可選的邊緣/電平觸發(fā)中斷方式等。特別是其增強(qiáng)的外部存儲器接口,使得對外部數(shù)據(jù)的操作更加方便,存儲器接口電路的設(shè)計也更加靈活,因此在許多實時數(shù)據(jù)采集和信號處理的系統(tǒng)中得到了廣泛的應(yīng)用[3~4]
2.3 系統(tǒng)設(shè)計
  FX2有三種工作模式:端口、GPIF和從FIFO(Slave FIFO)模式。在本系統(tǒng)中,F(xiàn)X2工作于從FIFO模式下,TMS320C32作為主控(Master),直接控制FIFO數(shù)據(jù)的讀寫。4KB的FIFO空間全部分配給了EP2端點,使其形成四重1 024字節(jié)的緩沖。當(dāng)C32向其中一個FIFO寫“滿”時,F(xiàn)X2自動將該FIFO轉(zhuǎn)換到外部接口端,排隊等候PC機(jī)讀取;并將EP2中下一個為“空”的FIFO轉(zhuǎn)移上來,供C32繼續(xù)寫數(shù)據(jù)。
  USB的數(shù)據(jù)傳輸有四種模式:塊傳輸(Bulk Transfers)、中斷傳輸(Interrupt Transfers)、同步傳輸(Isochronous Transfers)、控制傳輸(Control Transfers)。當(dāng)需要快速傳輸大批量的準(zhǔn)確數(shù)據(jù)時,一般采用塊傳輸模式;而當(dāng)傳輸實時性較強(qiáng)的數(shù)據(jù)時,則應(yīng)采用中斷傳輸模式。在該系統(tǒng)中采用了塊傳輸模式。
  TMS320C32與FX2的連接如圖2所示。其中,I/O和WR#分別是C32的一個通用I/O信號和讀寫使能信號,PKTEND用于強(qiáng)制FX2發(fā)送FIFO內(nèi)部數(shù)據(jù)。例如,將EP2設(shè)置為自動傳送模式,當(dāng)C32向EP2中寫滿1 024個字節(jié)后,EP2自動將數(shù)據(jù)轉(zhuǎn)移至USB端口,供上位機(jī)讀取;當(dāng)C32發(fā)送的數(shù)據(jù)不是1 024的整數(shù)倍時,最后一個數(shù)據(jù)包因為比1 024小所以不會被EP2發(fā)送。這時有兩種方法:一是用無效數(shù)據(jù)將EP2補(bǔ)充滿;二是使用PKTEND信號在PKTEND的上跳沿處,F(xiàn)X2將EP2內(nèi)的剩余數(shù)據(jù)轉(zhuǎn)移至USB[5]


3 軟件設(shè)計
3.1 固件設(shè)計

  在該系統(tǒng)中,F(xiàn)X2的固件完成如下工作:
  (1)配置如下描述符。
  ;; Endpoint Descriptor
  db  DSCR_ENDPNT_LEN      ;; 描述符長度
  db  DSCR_ENDPNT        ;; 描述符類型
  db  82H            ;; 端點號是2,輸出OUT
  db  ET_BULK          ;; 端點類型
  db  00H            ;; 包的大小,低字節(jié)(LSB)
  db  04H            ;; 包的大小,高字節(jié)(MSB)
  db   00H            ;; 檢測間隔
  (2)初始化一些寄存器的值,使之滿足系統(tǒng)設(shè)計。下面是采用keil C51編寫的C語言固件程序的主要代碼:
  void TD_Init(void)
  {
  CPUCS = 0x10; //CLKSPD[1:0]=10, 48MHz
  IFCONFIG = 0xCB; //異步從FIFO模式
  REVCTL = 0x03;
  EP2CFG=0xE8; //方向OUT,塊傳輸,四緩沖,1024字節(jié)
  PORTACFG = 0x40; //將PA7管腳設(shè)置為SLCS,從FIFO的片選信號
  FIFORESET = 0x80;
  FIFORESET = 0x02;
  FIFORESET = 0x00;
  EP2FIFOCFG = 0x0D; //配置EP2為自動方式,16位總線
  EP2AUTOINLENH=0x04;//數(shù)據(jù)包大小為1024字節(jié)
  EP2AUTOINLENL=0x00;
  }
  可以看出,一旦FX2芯片上電后、CPU完成以上寄存器的初始化時,就不再干預(yù)FIFO的工作了,C32直接通過FIFO就建立起了與PC機(jī)之間的USB通道。
3.2 驅(qū)動程序
  USB設(shè)備驅(qū)動程序" title="設(shè)備驅(qū)動程序">設(shè)備驅(qū)動程序采用一種新的驅(qū)動模型——WDM(Windows Driver Model)。WDM通過提供一種靈活的方式來簡化驅(qū)動程序的開發(fā),在實現(xiàn)對新硬件支持的基礎(chǔ)上減少并降低所必須開發(fā)的驅(qū)動程序的數(shù)量和復(fù)雜性。整個驅(qū)動程序體系的流程可以這樣來描述:應(yīng)用程序" title="應(yīng)用程序">應(yīng)用程序通過WIN 32提供的API向WIN 32子系統(tǒng)發(fā)出命令。WIN 32子系統(tǒng)通過標(biāo)準(zhǔn)的系統(tǒng)調(diào)用與內(nèi)核層的I/O管理器" title="管理器">管理器通訊,將用戶程序的API 調(diào)用轉(zhuǎn)換成IRP(I/O Request Package) 包,I/O管理器將IRP 包傳遞給指定的設(shè)備驅(qū)動程序;USB設(shè)備驅(qū)動程序接收到這個IRP包后,根據(jù)IRP中包含的具體操作代碼構(gòu)造相應(yīng)USB請求塊(URB),并把此URB放到一個新的IRP中,然后把它傳遞給USB總線驅(qū)動程序;USB總線驅(qū)動程序根據(jù)IRP中所含的URB執(zhí)行相應(yīng)的操作(與USB主機(jī)控制器進(jìn)行數(shù)據(jù)交換),并把操作的結(jié)果返回給USB設(shè)備驅(qū)動程序;USB設(shè)備驅(qū)動程序接收到此返回的IRP后,將操作結(jié)果通過IRP返還給I/O管理器,最后I/O管理器將此IRP操作結(jié)果傳回給應(yīng)用程序。至此應(yīng)用程序?qū)υO(shè)備的一次I/O操作完成[6]。WDM型的USB驅(qū)動程序體系結(jié)構(gòu)如圖3所示。


  該系統(tǒng)采用Cypress公司提供的GPD(General Purpose Driver)模板。該模板提供了一個上層的程序代碼來實現(xiàn)底層的驅(qū)動程序的編寫,能夠完成USB設(shè)備的標(biāo)準(zhǔn)請求及Cypress公司的電路所特定的請求和數(shù)據(jù)的傳輸。GPD所提供的接口函數(shù)具有通用性,包括打開、關(guān)閉設(shè)備及USB的I/O操作等[7]。本應(yīng)用在沒有改變所提供的EZUSB.SYS的驅(qū)動程序的情況下,實現(xiàn)主機(jī)和外設(shè)的數(shù)據(jù)通信。
3.3 應(yīng)用程序設(shè)計
  應(yīng)用程序是用戶操作計算機(jī)的界面,界于用戶與底層驅(qū)動之間。應(yīng)用程序通過調(diào)用WIN32的API函數(shù)實現(xiàn)和驅(qū)動程序之間的通訊,完成對USB外設(shè)的讀取和發(fā)送。首先,打開設(shè)備(程序打開設(shè)備“DeviceName”的方式為通用讀寫方式,文件共享讀寫):
  HANDLE hDevice=CreateFile (
  DeviceName,                //指向文件名的指針
  GENERIC_WRITEIGENERIC_READ,       //訪問模式(寫/讀)
  FILE_SHARE_WRITE—FILE_SHARE_READ,   //共享模式
  NULL,                  //指向安全屬性的指針
  OPEN_EXISTING,             //如何創(chuàng)建
  0,                   //文件屬性
  NULL                  //用于復(fù)制文件句柄
  );
  然后進(jìn)行數(shù)據(jù)傳輸,其代碼為:
  BOOL bResult = DeviceloControl (
  hDevice,
  direction,
  &Control,
  sizeof (xxxx_TRANSFER_CONTROL),
  buffer,
  length,
  (unsigned long*)&nBytes,
  NULL
   ),
  其中,hDevice為設(shè)備句柄;direction為數(shù)據(jù)傳輸?shù)姆较颍籆ontrol為四種USB數(shù)據(jù)傳輸?shù)姆绞竭x擇;size(xxxx_TRANSFER_CONTROL)為數(shù)據(jù)格式所需存儲空間的大小;buffer為所傳輸數(shù)據(jù)的緩沖區(qū)地址指針;nBytes為傳輸完成后實際傳輸?shù)臄?shù)據(jù)個數(shù)。數(shù)據(jù)傳輸格式為USB設(shè)備的統(tǒng)一規(guī)范,可參照Windows DDK中的相應(yīng)文件。
  本系統(tǒng)用于CCD成像檢測系統(tǒng)中,設(shè)備成像后的圖像經(jīng)USB向計算機(jī)傳輸。如果使用傳統(tǒng)的串口傳輸,即使在115 200bps的速率下,傳送完一幅圖像也需要7分鐘。而采用本文所述的方法,DSP向計算機(jī)傳送同樣大小的圖像僅用18秒,速度提高了23倍,并且可靠性和誤碼率也達(dá)到了理想效果。本文所述的方法具有一定的普遍性,可用于多種微處理擴(kuò)展USB接口的方案中,有助于提高系統(tǒng)數(shù)據(jù)傳輸速率。
參考文獻(xiàn)
1 許永和. EZ-USB FX系列單片機(jī)USB外圍設(shè)備設(shè)計與應(yīng)用.北京:北京航空航天大學(xué)出版社, 2002
2 宋吉超, 易克初,陸維佳. 基于EZ-USB FX2的USB 2.0系統(tǒng)軟件開發(fā). 現(xiàn)代電子技術(shù),2005:(2)58~65
3 遲 男, 陸 俊,劉 杰. TMS320C32浮點DSP存儲器接口設(shè) 計.電子技術(shù)應(yīng)用,2000;(11):70~72
4 張雄偉,陳 亮,徐光輝.DSP芯片的原理與開發(fā)應(yīng)用(第3版). 北京:電子工業(yè)出版社, 2004
5 鄧鵬飛, 李小波,張劍云. USB2.0在DSP與計算機(jī)通信中的應(yīng)用. 計算機(jī)與數(shù)字工程, 2005;(6):123~126
6 蓋素麗,常 青. USB接口的驅(qū)動程序開發(fā). 河北省科學(xué)院學(xué)報,2005;(6):17~20
7 趙 闖,張劍云.基于CY7C646xx的通用串行總線接口.電子元器件應(yīng)用,2004;(5):27~29

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 影音先锋在线亚洲精品推荐 | 亚洲日本va中文字幕婷婷 | 国产精品伦一区二区三级视频 | 天天碰天天摸天天操 | 亚洲欧美日韩网站 | 日韩色在线观看 | 国产精品一区在线麻豆 | 香蕉在线精品亚洲第一区 | 美女很黄很黄 | 激情丁香小说 | 一区二区视频在线免费观看 | 国产一国产一级毛片视频在线 | 天堂中文在线乱码 | 亚洲欧美在线视频免费 | 一级特黄aaa免费 | 欧美午夜在线观看理论片 | 美国十次色| 国内精品视频在线观看 | 国产麻豆福利a v在线播放 | 天天干天天草天天 | 人人做人人澡人人人爽 | 亚洲欧美日韩在线播放 | 亚洲欧美另类日本久久影院 | 日批在线观看视频 | 日批在线看 | 日日噜噜夜夜狠狠视频欧美人 | 日本99热 | 九九热精品免费视频 | 性xxx视频在线观看 性国产videofree另类 | m3u8久久国产精品影院 | 一级一黄在线观看视频免费 | 久久久香蕉视频 | 欧美日韩a级a | 亚洲成人福利在线 | 久久中国视频 | 中文字幕网站 | 欧美亚洲国产第一页草草 | 欧美video巨大粗暴多人 | 国产欧美日韩不卡一区二区三区 | 在线 | 一区二区三区 | 日韩色视频一区二区三区亚洲 |