基于DSP和專用接口芯片的USB實(shí)現(xiàn)方案
發(fā)布時(shí)間:2008/8/20 0:00:00 訪問次數(shù):486
自1994年11月提出通用串行總線(usb)以來,usb以其傳輸速率高、支持熱插拔、易于擴(kuò)展的突出優(yōu)勢,發(fā)展速度驚人,迅速席卷電子產(chǎn)品世界。在市場需求的強(qiáng)力驅(qū)動(dòng)下,從1998年開始,usb接口進(jìn)入測量儀器領(lǐng)域,并逐步被許多著名儀器公司接納。在測量儀器中擴(kuò)展usb接口已經(jīng)成為一種發(fā)展趨勢。針對(duì)不同的測量儀器,尋求一種普遍適用的usb接口解決方案,對(duì)于測量儀器的開發(fā)設(shè)計(jì)有十分重要的意義。
方案選擇
開發(fā)usb設(shè)備一般有三種方式:一種是使用帶usb接口的專用微控制器(mcu),這類mcu有自己的系統(tǒng)結(jié)構(gòu)和指令,從底層專用于usb控制,比如cypress公司的cy7c63xxx和cy7c64013,這類mcu的開發(fā)需要用專用工具,且性能有限;第二種方式是使用帶usb接口的通用mcu,這類mcu只是基于一般芯片內(nèi)核增加了usb接口,比如intel公司的8x931、8x930以及cypress公司的ezusb等,這類mcu的開發(fā)語言和開發(fā)工具都和一般mcu相似,因而較易入手,但其缺點(diǎn)是成本較高;第三種方式是使用純粹的usb接口芯片,通過外加mcu對(duì)其控制。如philips公司的pdiusbd12、isp1581以及national公司的usbn9602、南京沁恒公司的ch372、ch375等。這類usb接口芯片價(jià)格較低、接口方便、靈活性高,針對(duì)不同的硬件環(huán)境可以配合多種mcu使用,如單片機(jī)、dsp、fpga都可以。綜合各方面因素考慮,本設(shè)計(jì)選用第三種方式,即采用專用usb接口芯片為測量儀器擴(kuò)展usb接口。
硬件設(shè)計(jì)
usb控制器
usb控制器通過控制usb接口芯片實(shí)現(xiàn)協(xié)議處理和數(shù)據(jù)交換。在本設(shè)計(jì)中選用dsp芯片tms320vc33作為微控制器,這主要是基于兩方面的考慮:一是其運(yùn)算速度較快,指令周期僅為13ns,可以最大限度地發(fā)揮usb接口芯片的潛力;二是該dsp芯片性價(jià)比高,且具有浮點(diǎn)運(yùn)算功能,擴(kuò)展浮點(diǎn)精度可達(dá)40位。
usb接口芯片
usb接口芯片用以完成usb通信底層的數(shù)據(jù)鏈路級(jí)交換,并對(duì)本地微控制器提供一個(gè)并行接口。
本文選用philips公司的pdiusbd12作為usb接口芯片。該芯片可與任何微控制器實(shí)現(xiàn)高速并行接口(2mb/s),允許使用現(xiàn)存的體系結(jié)構(gòu)并使固件投資減到最小。這種靈活性減少了開發(fā)時(shí)間、風(fēng)險(xiǎn)和成本,是開發(fā)高效低成本的usb外圍設(shè)備的一種快捷途徑。
pdiusbd12一共有三組端點(diǎn):端點(diǎn)0完成控制傳輸;端點(diǎn)1可以配置成中斷傳輸;端點(diǎn)2有128b的緩沖區(qū),是主要的數(shù)據(jù)傳輸端點(diǎn)。
接口電路
采用單獨(dú)地址/數(shù)據(jù)總線配置,即用dsp的某地址線控制pdiusbd12的a0引腳,實(shí)現(xiàn)命令數(shù)據(jù)的選擇。a0=1表示傳送命令,a0=0表示傳送數(shù)據(jù)。片選(cs )及掛起(suspend)信號(hào)分別由dsp的i/o口控制。讀寫選通信號(hào)wr 、rd 可以用dsp的r/w引腳及其取反后控制。但這樣需要在電路中增加反相器,為了節(jié)約器件從而縮小電路體積,可以另外選擇一個(gè)i/o口控制pdiusbd12的讀選通rd。本設(shè)計(jì)中選用page1,通過對(duì)不同地址的訪問來區(qū)分對(duì)pdiusbd12的讀寫操作。這樣pdiusbd12只占用微控制器的三個(gè)地址資源,其一用來向pdiusbd12寫命令,其二用來向pdiusbd12寫數(shù)據(jù),另外一個(gè)用來從pdiusbd12讀數(shù)據(jù)。對(duì)dsp而言,pdiusbd12就相當(dāng)于一個(gè)有8位數(shù)據(jù)總線和3個(gè)地址的存儲(chǔ)器件。
設(shè)備采用自供電方式,需要將eot 通過一個(gè)10k?的電阻接至usb電纜的vcc(+5v)端,并加1m?下拉電阻,借此檢測usb設(shè)備是否已經(jīng)連接到usb口。
軟件設(shè)計(jì)
usb軟件設(shè)計(jì)包括固件(firmware)程序、pc端的驅(qū)動(dòng)程序和應(yīng)用程序。其中固件程序要求編寫者對(duì)復(fù)雜的usb通信協(xié)議有深刻的理解,編程難度較高,在本論文中將詳細(xì)介紹。
固件編程
固件程序是寫入mcu內(nèi)的程序,使mcu可以完全按照usb協(xié)議,識(shí)別接收到的信息包類型,對(duì)包的內(nèi)容、意義進(jìn)行分析,并按照要求完成相應(yīng)的動(dòng)作。通過這些不同類型包的傳遞,完成mcu與接口芯片的命令及數(shù)據(jù)交換,進(jìn)而實(shí)現(xiàn)主機(jī)與設(shè)備間的通信。
固件程序設(shè)計(jì)成中斷驅(qū)動(dòng)模式,采用模塊化設(shè)計(jì)。
主循環(huán)
主循環(huán)中主要完成dsp的寄存器及端口初始化,向pdiusbd12發(fā)送設(shè)置模式命令,接通softconnect。判斷是否接收到建立包(setup package),若收到則調(diào)用標(biāo)準(zhǔn)請(qǐng)求處理程序進(jìn)行處理,若收到主機(jī)請(qǐng)求信號(hào),則調(diào)用數(shù)據(jù)發(fā)送程序發(fā)送數(shù)據(jù)。
中斷處理程序
中斷處理程序是整個(gè)固件程序設(shè)計(jì)的重點(diǎn)。將dsp設(shè)置為下降沿觸發(fā),當(dāng)pdiusbd12接收到主機(jī)發(fā)送的信息包時(shí),觸發(fā)dsp進(jìn)入中斷。首先通過讀取pdiusbd12的中斷寄存器判斷所發(fā)生中斷的類型,然后根據(jù)具體的中斷類型進(jìn)入相應(yīng)的處理子程序。
自1994年11月提出通用串行總線(usb)以來,usb以其傳輸速率高、支持熱插拔、易于擴(kuò)展的突出優(yōu)勢,發(fā)展速度驚人,迅速席卷電子產(chǎn)品世界。在市場需求的強(qiáng)力驅(qū)動(dòng)下,從1998年開始,usb接口進(jìn)入測量儀器領(lǐng)域,并逐步被許多著名儀器公司接納。在測量儀器中擴(kuò)展usb接口已經(jīng)成為一種發(fā)展趨勢。針對(duì)不同的測量儀器,尋求一種普遍適用的usb接口解決方案,對(duì)于測量儀器的開發(fā)設(shè)計(jì)有十分重要的意義。
方案選擇
開發(fā)usb設(shè)備一般有三種方式:一種是使用帶usb接口的專用微控制器(mcu),這類mcu有自己的系統(tǒng)結(jié)構(gòu)和指令,從底層專用于usb控制,比如cypress公司的cy7c63xxx和cy7c64013,這類mcu的開發(fā)需要用專用工具,且性能有限;第二種方式是使用帶usb接口的通用mcu,這類mcu只是基于一般芯片內(nèi)核增加了usb接口,比如intel公司的8x931、8x930以及cypress公司的ezusb等,這類mcu的開發(fā)語言和開發(fā)工具都和一般mcu相似,因而較易入手,但其缺點(diǎn)是成本較高;第三種方式是使用純粹的usb接口芯片,通過外加mcu對(duì)其控制。如philips公司的pdiusbd12、isp1581以及national公司的usbn9602、南京沁恒公司的ch372、ch375等。這類usb接口芯片價(jià)格較低、接口方便、靈活性高,針對(duì)不同的硬件環(huán)境可以配合多種mcu使用,如單片機(jī)、dsp、fpga都可以。綜合各方面因素考慮,本設(shè)計(jì)選用第三種方式,即采用專用usb接口芯片為測量儀器擴(kuò)展usb接口。
硬件設(shè)計(jì)
usb控制器
usb控制器通過控制usb接口芯片實(shí)現(xiàn)協(xié)議處理和數(shù)據(jù)交換。在本設(shè)計(jì)中選用dsp芯片tms320vc33作為微控制器,這主要是基于兩方面的考慮:一是其運(yùn)算速度較快,指令周期僅為13ns,可以最大限度地發(fā)揮usb接口芯片的潛力;二是該dsp芯片性價(jià)比高,且具有浮點(diǎn)運(yùn)算功能,擴(kuò)展浮點(diǎn)精度可達(dá)40位。
usb接口芯片
usb接口芯片用以完成usb通信底層的數(shù)據(jù)鏈路級(jí)交換,并對(duì)本地微控制器提供一個(gè)并行接口。
本文選用philips公司的pdiusbd12作為usb接口芯片。該芯片可與任何微控制器實(shí)現(xiàn)高速并行接口(2mb/s),允許使用現(xiàn)存的體系結(jié)構(gòu)并使固件投資減到最小。這種靈活性減少了開發(fā)時(shí)間、風(fēng)險(xiǎn)和成本,是開發(fā)高效低成本的usb外圍設(shè)備的一種快捷途徑。
pdiusbd12一共有三組端點(diǎn):端點(diǎn)0完成控制傳輸;端點(diǎn)1可以配置成中斷傳輸;端點(diǎn)2有128b的緩沖區(qū),是主要的數(shù)據(jù)傳輸端點(diǎn)。
接口電路
采用單獨(dú)地址/數(shù)據(jù)總線配置,即用dsp的某地址線控制pdiusbd12的a0引腳,實(shí)現(xiàn)命令數(shù)據(jù)的選擇。a0=1表示傳送命令,a0=0表示傳送數(shù)據(jù)。片選(cs )及掛起(suspend)信號(hào)分別由dsp的i/o口控制。讀寫選通信號(hào)wr 、rd 可以用dsp的r/w引腳及其取反后控制。但這樣需要在電路中增加反相器,為了節(jié)約器件從而縮小電路體積,可以另外選擇一個(gè)i/o口控制pdiusbd12的讀選通rd。本設(shè)計(jì)中選用page1,通過對(duì)不同地址的訪問來區(qū)分對(duì)pdiusbd12的讀寫操作。這樣pdiusbd12只占用微控制器的三個(gè)地址資源,其一用來向pdiusbd12寫命令,其二用來向pdiusbd12寫數(shù)據(jù),另外一個(gè)用來從pdiusbd12讀數(shù)據(jù)。對(duì)dsp而言,pdiusbd12就相當(dāng)于一個(gè)有8位數(shù)據(jù)總線和3個(gè)地址的存儲(chǔ)器件。
設(shè)備采用自供電方式,需要將eot 通過一個(gè)10k?的電阻接至usb電纜的vcc(+5v)端,并加1m?下拉電阻,借此檢測usb設(shè)備是否已經(jīng)連接到usb口。
軟件設(shè)計(jì)
usb軟件設(shè)計(jì)包括固件(firmware)程序、pc端的驅(qū)動(dòng)程序和應(yīng)用程序。其中固件程序要求編寫者對(duì)復(fù)雜的usb通信協(xié)議有深刻的理解,編程難度較高,在本論文中將詳細(xì)介紹。
固件編程
固件程序是寫入mcu內(nèi)的程序,使mcu可以完全按照usb協(xié)議,識(shí)別接收到的信息包類型,對(duì)包的內(nèi)容、意義進(jìn)行分析,并按照要求完成相應(yīng)的動(dòng)作。通過這些不同類型包的傳遞,完成mcu與接口芯片的命令及數(shù)據(jù)交換,進(jìn)而實(shí)現(xiàn)主機(jī)與設(shè)備間的通信。
固件程序設(shè)計(jì)成中斷驅(qū)動(dòng)模式,采用模塊化設(shè)計(jì)!
主循環(huán)
主循環(huán)中主要完成dsp的寄存器及端口初始化,向pdiusbd12發(fā)送設(shè)置模式命令,接通softconnect。判斷是否接收到建立包(setup package),若收到則調(diào)用標(biāo)準(zhǔn)請(qǐng)求處理程序進(jìn)行處理,若收到主機(jī)請(qǐng)求信號(hào),則調(diào)用數(shù)據(jù)發(fā)送程序發(fā)送數(shù)據(jù)。
中斷處理程序
中斷處理程序是整個(gè)固件程序設(shè)計(jì)的重點(diǎn)。將dsp設(shè)置為下降沿觸發(fā),當(dāng)pdiusbd12接收到主機(jī)發(fā)送的信息包時(shí),觸發(fā)dsp進(jìn)入中斷。首先通過讀取pdiusbd12的中斷寄存器判斷所發(fā)生中斷的類型,然后根據(jù)具體的中斷類型進(jìn)入相應(yīng)的處理子程序!
熱門點(diǎn)擊
- 存儲(chǔ)器的地址線(Address Line)數(shù)
- 一套數(shù)字音頻采集、播放和傳輸系統(tǒng)的實(shí)現(xiàn)
- 1-Wire總線與DS18B20應(yīng)用仿真
- 在嵌入式系統(tǒng)中應(yīng)用NAND Flash閃存作
- 韋爾推出用于超高速接口的靜電保護(hù)芯片ESDA
- 基于μPD780822型單片機(jī)的客車CAN總
- 基于USB的ARINC429總線接口模塊設(shè)計(jì)
- 賽普拉斯2Mb/8Mb nvSRAM無需電池
- ST7267單片機(jī)與SIM卡的接口設(shè)計(jì)
- 基于鐵電存儲(chǔ)器FM25640在電表數(shù)據(jù)存儲(chǔ)中
推薦技術(shù)資料
- 100A全集成電源模塊R
- Teseo-VIC6A GNSS車用精準(zhǔn)定位
- 高效先進(jìn)封裝工藝
- 模數(shù)轉(zhuǎn)換器 (Analog-to-Digit
- 集成模數(shù)轉(zhuǎn)換器(ADC)
- 128 通道20 位電流數(shù)字轉(zhuǎn)換器̴
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動(dòng)IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計(jì)
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究