




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、一種 USB2.0 數(shù)據(jù)傳輸?shù)膶?shí)現(xiàn)方式摘 要: USB (Universal Serial Bus ,通用串行總線 )是外圍設(shè)備與計(jì)算機(jī)進(jìn)行連接的新型接口,其誕生對(duì)計(jì)算機(jī)外設(shè)連接技術(shù)產(chǎn)生重大變革。對(duì) Philips 公司的工業(yè)級(jí) USB2.0 控制芯片 ISP1581 的性能特點(diǎn)作了介紹,并重點(diǎn)討論了其硬件電路及固件程序的設(shè)計(jì)。此外還簡(jiǎn)要提及了其上層程序的編寫。關(guān)鍵詞: USB2.0 ; ISP1581; DMA 傳輸中圖分類號(hào): TP301 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào):1672-7800( 2011) 09-0040-030 引言 ?通用串行總線USB(Universal Serial Bu
2、s) 接口是近年來(lái)開始普遍應(yīng)用于PC 領(lǐng)域的新型接口;同時(shí),USB2.0 在USB1.1 的基礎(chǔ)上又有了質(zhì)的提高,其理論速度可以達(dá)到480Mbps 。 ?目前市場(chǎng)上供應(yīng)的USB2.0 控制器主要有兩種:帶USB接口的單片機(jī)和純粹的USB 接口芯片。但此類芯片基本上用于商業(yè)領(lǐng)域,無(wú)法適用工控領(lǐng)域的惡劣環(huán)境;純粹的USB接口芯片僅處理USB 通信,必須有個(gè)外部微控制器/處理器來(lái)進(jìn)行協(xié)議處理和數(shù)據(jù)交換。純粹的 USB 接口芯片主要特點(diǎn)是接口方便、可靠性強(qiáng)、適用范圍廣,尤其Philips 公司提供的 ISP1581 芯片,能夠在40 85的溫度范圍內(nèi)正常工作,十分適合工控領(lǐng)域數(shù)據(jù)傳輸?shù)男枰?1 IS
3、P1581的芯片性能特點(diǎn)?ISP1581是一款性能非常出眾的USB2.0控制器,它實(shí)現(xiàn)了 USB2.0/1.1 物理層以及數(shù)據(jù)協(xié)議層需要完成的任務(wù), 接口速度可達(dá) 12.5M 字節(jié) /s 或 12.5M 字 /s;同時(shí)還做到可以與大部分類型的微控制器 /處理器相連, 非常適合做很多外圍設(shè)備與 PC 的通訊接口。其一些具體的性能特點(diǎn)如下: ISP1581 含有 7 個(gè) IN 端點(diǎn), 7 個(gè) OUT 端點(diǎn)和 2 個(gè)控制端點(diǎn)。芯片的工作頻率為 12MHZ ,同時(shí)內(nèi)部集成了一個(gè) 40 PLL 時(shí)鐘乘法器可產(chǎn)生 480MHZ 的內(nèi)部抽樣時(shí)鐘;通過(guò) Philips 串行接口引擎( SIE)來(lái)完成所有 US
4、B 協(xié)議層的功能,主要完成以下功能:同步方式的識(shí)別、并行 /串行的轉(zhuǎn)換、位填充 /解除填充等。 考慮到速度, 它是全硬件的, 不需要軟硬件介入;通過(guò) MMU 和集成 RAM 實(shí)現(xiàn)了 USB 總線和微控制器 /處理器或 DMA 控制器之間的速度轉(zhuǎn)換。 DMA 控制器接收到 DMA 命令后,可直接把數(shù)據(jù)從內(nèi)部 RAM 傳送到外部 DMA 設(shè)備或從外部 DMA 設(shè)備傳送給內(nèi)部 RAM ;在分離總線模式下,通過(guò) DMA 模塊來(lái)實(shí)現(xiàn) ISP581 芯片與 DMA 數(shù)據(jù)源或數(shù)據(jù)接收端的數(shù)據(jù)傳輸, 不需要微控制器 /處理器參與, 提高傳輸速度。 ?2 ISP1581 硬件電路設(shè)計(jì) ?ISP1581 與系統(tǒng)的
5、微控制器接口模式有兩種:通用處理器模式與分離總線模式。相對(duì)于通用處理器模式,分離總線模式采用 DMA 方式直接傳輸數(shù)據(jù),在保證系統(tǒng)性能的前提下降低對(duì)微處理器的要求。故此處Atmel89C51(以下簡(jiǎn)稱89C51) 與ISP1581連接采用分離總線模式,即多路復(fù)用8 位地址 /數(shù)據(jù)總線和單獨(dú)的8 位/16位DMA總線。由89C51和ISP1581構(gòu)成的USB2.0接口電路如圖1 所示。?在硬件系統(tǒng)中, 89C51 與 ISP1581 的通訊采用中斷方式,當(dāng) ISP1581 接收到主機(jī)信號(hào)后引發(fā) 89C51 的 INT0 中斷,使 89C51 進(jìn)行下一步工作。 RPU 引腳通過(guò) 1.5k電阻器上拉
6、; RREF 引腳通過(guò) 12.0k 精密電阻器接數(shù)字地; BUS_CONF引腳的功能是選擇總線模式,接地后為分離總線模式;MODE0 引腳用來(lái)選擇讀/寫功能,上拉后為 8051 型;MODE1引腳在分離總線模式下用于ALE/A0 的功能選擇,接地后選擇 ALE 功能。ISP1581 內(nèi)部集成了復(fù)位電路 , 將 RESET 引腳直接接高電平即可復(fù)位。 (DMA 傳輸引腳 EOT 、DIOR/W 、DATAi 等信號(hào)不由 89C51 提供,由 DMA 數(shù)據(jù)源或數(shù)據(jù)接收端提供符合 ISP1581 DATASHEET 要求的 DMA 時(shí)序信號(hào)即可,不涉及 USB 協(xié)議內(nèi)容, 相對(duì)簡(jiǎn)單。 因?yàn)閳D片排版問(wèn)
7、題此處沒有提供圖例,類似還有系統(tǒng)供電濾波部分。詳細(xì)可參見參考文獻(xiàn) 2 ISP1581 Product Datasheet)。圖 1 USB2.0 接口電路原理圖 2 固件程序主流程?3 ISP1581 固件程序設(shè)計(jì) ?在 USB2.0 協(xié)議中規(guī)定, 所有 USB 通信都必須由主機(jī)發(fā)起,設(shè)備只能響應(yīng)來(lái)自主機(jī)的命令。 在這種結(jié)構(gòu)下, ISP1581的固件編程采取中斷驅(qū)動(dòng)的方式。主機(jī)對(duì) 1SP1581 的任何操作都會(huì)引起ISP1581 對(duì)相應(yīng)的中斷位置位,同時(shí)引發(fā)89C51中斷; 89C51 通過(guò)查詢 ISP1581 中斷源寄存器判斷并處理中斷。這樣一方面保證了快速的數(shù)據(jù)傳輸和較好的軟件結(jié)構(gòu),另一方
8、面簡(jiǎn)化了編程和測(cè)試。 ?固件程序主循環(huán)流程如圖 2 所示。在系統(tǒng)上電后,首先初始化 89C51 和 ISP1581。初始化主要完成 89C51 中斷設(shè)置與 ISP1581 預(yù)設(shè)寄存器設(shè)置,主要包括地址寄存器,方式寄存器,中斷寄存器, DMA 寄存器,及端點(diǎn)寄存器等。地址寄存器設(shè)置 USB 的分配地址并激活 USB 設(shè)備(一般設(shè)置默認(rèn)地址 0,在 SETUP 過(guò)程中改設(shè)為主機(jī)提供的地址) ;方式寄存器控制著重新開始、掛起和喚醒行為、中斷行為、軟件復(fù)位、時(shí)鐘信號(hào)和軟件連接操作;中斷寄存器控制中斷使能以及決定 INT 輸出的動(dòng)作和極性; DMA 寄存器中, DMA 配置寄存器和 DMA 硬件寄存器設(shè)
9、置 DMA 模式及信號(hào)觸發(fā)極性;端點(diǎn)寄存器包括設(shè)置端點(diǎn)緩存大小,端點(diǎn)傳輸類型,以及端點(diǎn)使能等(端點(diǎn)寄存器的設(shè)置要與準(zhǔn)備提供的端點(diǎn)描述符相一致) 。 ?初始化完成后,系統(tǒng)循環(huán)等待主機(jī)命令引發(fā)的中斷,主要中斷有 SETUP 中斷 (即 USB 控制傳輸中斷 )、總線掛起中斷、總線喚醒中斷、各端點(diǎn)數(shù)據(jù) IN 或 OUT 中斷和兩個(gè)廠商請(qǐng)求中斷 (固件版本查詢中斷和 DMA 傳輸使能中斷 )。中斷服務(wù)程序流程如圖 3 所示。系統(tǒng)進(jìn)入中斷服務(wù)程序后,讀取 ISP1581 中斷寄存器內(nèi)容并拷貝到全局中斷,然后清除 ISP1581 中斷源,以免再次觸發(fā)。 ?當(dāng)固件接受到第一個(gè)SETUP 中斷后,進(jìn)入U(xiǎn)SB
10、枚舉過(guò)程。枚舉過(guò)程與USB 協(xié)議關(guān)系最為密切,其過(guò)程是主機(jī)發(fā)出一系列 USB 標(biāo)準(zhǔn)設(shè)備請(qǐng)求并要求及時(shí)得到設(shè)備響應(yīng),使主機(jī)能為該設(shè)備準(zhǔn)備其所請(qǐng)求的資源,建立好兩者之間的信息溝通機(jī)制。主要枚舉過(guò)程如下:?主機(jī)使用默認(rèn)地址下發(fā)GetDeviceDescriptorA (80 0600 01 00 00 40 00),設(shè)備上發(fā)18 位設(shè)備描述符,確定USB規(guī)范版本號(hào)與廠商ID 、產(chǎn)品 ID ,不用返回64 位數(shù)據(jù);主機(jī)發(fā)送含有指定地址命令SetAddress( 00 05 02 00 00 00 0000),在主機(jī)只有一個(gè)USB 設(shè)備的時(shí)候,此地址一般是2,最大地址可為127,即 USB 協(xié)議中規(guī)定可
11、以連接127 個(gè)設(shè)備。固件設(shè)置 ISP1581 的地址寄存器,進(jìn)入新地址狀態(tài),主機(jī)以后會(huì)在新的指定地址處訪問(wèn)設(shè)備;主機(jī)使用新地址下發(fā)GetDeviceDescriptorB ( 80 06 00 01 00 00 12 00),設(shè)備重新上發(fā) 18 位設(shè)備描述符;主機(jī)使用新地址下發(fā)GetDeviceDescriptorC ( 80 06 00 02 00 00 09 00),設(shè)備上發(fā) 9位配置描述符,確定接口數(shù)目以及電源獲取方式等;主機(jī)使用新地址下發(fā)GetDeviceDescriptorD ( 80 06 00 02 00 00 FF00),設(shè)備上發(fā)全部描述符,包括配置描述符號(hào)、接口描述符號(hào)、端
12、點(diǎn)描述符,確定接口與端點(diǎn)詳細(xì)信息;讀取全部ConfigDescriptor 后,主機(jī)將找到新設(shè)備, 提示安裝驅(qū)動(dòng)程序;在設(shè)備能通信前,主機(jī)給出SetConfiguration ( 00 00 09 010 00 00 00)請(qǐng)求,設(shè)備收到后調(diào)整有關(guān)信息,使設(shè)備能被客戶軟件利用枚舉過(guò)程涉及大量USB 協(xié)議中規(guī)定的內(nèi)容, 其重點(diǎn)是 USB 描述符所代表的具體含義,如最大信息包、 接口數(shù)目、端點(diǎn)數(shù)目、電源配置等。在提示安裝驅(qū)動(dòng)程序前,可使用 BusHound 對(duì) USB 傳輸數(shù)據(jù)進(jìn)行監(jiān)。驅(qū)動(dòng)可先使用philips 的驅(qū)動(dòng),待系統(tǒng)完成后再根據(jù)性能考慮是否需要驅(qū)動(dòng)的更新。枚舉過(guò)程中數(shù)據(jù)傳輸皆通過(guò)ISP1
13、581 的端點(diǎn) 0 實(shí)現(xiàn),使用 USB 的控制傳輸類型。圖 3 中斷服務(wù)程序流程圖 4 BusHound 對(duì) USB 口數(shù)據(jù)流的監(jiān)控結(jié)果 ?枚舉結(jié)束,系統(tǒng)又處于循環(huán)等待主機(jī)其他命令狀態(tài),一旦得到主機(jī)要求,就開始傳輸數(shù)據(jù)。 相對(duì)于控制傳輸來(lái)說(shuō),USB 的其他幾種傳輸模式都比較好處理。ISP1581 的 7 個(gè) IN端點(diǎn)和 7 個(gè) OUT 端點(diǎn)均可通過(guò)編程設(shè)置為批量傳輸、中斷傳輸或等時(shí)傳輸模式。在芯片處于分離總線模式下,89C51與 DMA 數(shù)據(jù)源或數(shù)據(jù)接收端均可以與主機(jī)進(jìn)行數(shù)據(jù)交換,一般少量控制命令數(shù)據(jù)由 89C51 實(shí)現(xiàn),大批量數(shù)據(jù)由 DMA數(shù)據(jù)源或數(shù)據(jù)接收端通過(guò)DMA 傳輸引腳提供或接收,兩
14、者需分別通過(guò)ISP1581 不同的端點(diǎn)進(jìn)行傳輸。?89C51 與主機(jī)通信, 通過(guò)設(shè)置 ISP1581 的端點(diǎn)索引寄存器、數(shù)據(jù)端口寄存器、緩沖區(qū)長(zhǎng)度寄存器來(lái)實(shí)現(xiàn)(枚舉階段固件程序相相似) 。89C51 上傳主機(jī)數(shù)據(jù)的程序段主要內(nèi)容如下:?ISP_Cntrl_Reg.ISP_ENDPT_INDEX = port; /選擇端點(diǎn)?ISP_Cntrl_Reg.ISP_BUFFER_LENGTH_LSB =(unsigned char) len;?ISP_Cntrl_Reg.ISP_BUFFER_LENGTH_MSB =(unsigned char) (len8); / 數(shù)據(jù)長(zhǎng)度 ?while(len -
15、 != 0)? ISP_Cntrl_Reg.ISP_DATA_PORT_LSB = *buf; /填寫FIFO , buf為數(shù)據(jù)地址?buf+;? ?89C51 接收主機(jī)數(shù)據(jù)的程序段主要內(nèi)容如下:?ISP_Cntrl_Reg.ISP_ENDPT_INDEX = port; /選擇端點(diǎn)?len = ISP_Cntrl_Reg.ISP_BUFFER_LENGTH_MSB;?len 8);?ISP_Cntrl_Reg.ISP_DMA_TRANSFER_COUNTER_MSB_L = 0;?ISP_Cntrl_Reg.ISP_DMA_TRANSFER_COUNTER_MSB = 0;?ISP_Cntr
16、l_Reg.ISP_DMA_COMMAND =DMA_Write_Command; / 啟動(dòng) DMA 傳輸 ?while(!DMA_Int_Flag.BITS.DMA_DONE& !DMA_Int_Flag.BITS.INT_EOT)? if(USB_Int_Flag.BITS.SUSP |Kernel_Flag.BITS.Bus_Reset | ?USB_Int_Flag.BITS.EP0SETUP)? ISP_Cntrl_Reg.ISP_DMA_COMMAND =DMA_RESET;?DMA_Init();?break;? ? / 循環(huán)判斷是否DMA 傳輸結(jié)束或系統(tǒng)強(qiáng)制結(jié)束DMA_Int_
17、Flag.BITS.DMA_DONE = 0;?DMA_Int_Flag.BITS.INT_EOT = 0; /復(fù)位系統(tǒng)標(biāo)志?設(shè)置接收主機(jī)數(shù)據(jù)的程序段主要內(nèi)容(略 )。?4 主機(jī)程序設(shè)計(jì)?主機(jī)程序設(shè)計(jì)包括驅(qū)動(dòng)程序設(shè)計(jì)與應(yīng)用程序設(shè)計(jì)。?主機(jī)的驅(qū)動(dòng)程序可以使用USB芯片廠商提供的驅(qū)動(dòng)( Philips 公司提供了 ISP1581 的驅(qū)動(dòng) , ?在 Philips 網(wǎng)站( www.P )上可獲得),也可以自己編寫。編寫主機(jī)的驅(qū)動(dòng)程序是 USB 開發(fā)中較困難的事情 ,通常采用 WindowsDDK來(lái)實(shí)現(xiàn)。目前有許多第三方開發(fā)軟件, 使用他們開發(fā)要簡(jiǎn)單許多,有WinDriver Wizard ,Driv
18、erStudio 等 (這部分在參考文獻(xiàn) 4 Windows2000 設(shè)備驅(qū)動(dòng)程序設(shè)計(jì)指南中已有很詳細(xì)說(shuō)明)。 ?應(yīng)用程序設(shè)計(jì)相對(duì)比較簡(jiǎn)單,它調(diào)用驅(qū)動(dòng)程序提供的函數(shù)即可,包括初始化USB 設(shè)備,發(fā)送操作命令,關(guān)閉USB設(shè)備等。應(yīng)用程序也可先用Bus Hound 替代,它可以監(jiān)控USB 口上數(shù)據(jù)流的一舉一動(dòng),是調(diào)試主機(jī)應(yīng)用程序和固件的有力工具。上面介紹系統(tǒng)程序的運(yùn)行結(jié)果,用 Bus Hound 監(jiān)控的得到數(shù)據(jù)如圖 4 所示,從圖中可以看到從 USB 口讀進(jìn)來(lái)的數(shù)據(jù)有設(shè)備描述符數(shù)據(jù)、管道信息數(shù)據(jù)以及從數(shù)據(jù)端點(diǎn)上讀進(jìn)來(lái)的數(shù)據(jù)塊。 ?5 結(jié)束語(yǔ) ?本文詳細(xì)介紹了基于ISP1581 芯片的 USB2.0 接口設(shè)計(jì)。ISP1581 是一款性能優(yōu)化的USB 接口芯片 , 具有同外部微控制器接口簡(jiǎn)單、應(yīng)用靈活、調(diào)試方便和性價(jià)比較高、適用于工業(yè)領(lǐng)域等優(yōu)點(diǎn)。采用ISP1581 可以快速開發(fā)出高性能的USB2.0 設(shè)備??梢灶A(yù)見, 它將在大容量存儲(chǔ)器、音頻視頻等高速大流量的數(shù)據(jù)傳輸場(chǎng)合得
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 地方課程課題申報(bào)書
- 亞馬遜購(gòu)買店鋪合同范本
- 動(dòng)漫授權(quán)協(xié)議合同范本
- mcn公司合伙合同范例
- 合同范本理解寫好
- 個(gè)人軟件銷售合同范本
- 合伙餐飲采購(gòu)合同范本
- 知識(shí)產(chǎn)權(quán)保護(hù)高地建設(shè)的實(shí)施計(jì)劃
- 推動(dòng)農(nóng)業(yè)新質(zhì)生產(chǎn)力發(fā)展路徑探索
- 民營(yíng)經(jīng)濟(jì)高質(zhì)量發(fā)展推動(dòng)力的關(guān)鍵措施
- 2023年中學(xué)班容班貌要求
- 2023年高血壓指南
- 《危險(xiǎn)化學(xué)品重點(diǎn)縣專家指導(dǎo)服務(wù)手冊(cè)》
- 中建《危大工程安全專項(xiàng)施工方案編制指南》
- 2023南郵數(shù)字信號(hào)處理真題
- 河北省醫(yī)療保險(xiǎn)診療項(xiàng)目目錄
- 弘揚(yáng)新時(shí)代的工匠精神大國(guó)匠心精益求精PPT(含完整內(nèi)容)
- 花城版三年級(jí)上冊(cè)音樂教學(xué)計(jì)劃
- GB/T 845-2017十字槽盤頭自攻螺釘
- GB/T 31821-2015電梯主要部件報(bào)廢技術(shù)條件
- GB/T 22267-2008整孜然
評(píng)論
0/150
提交評(píng)論