<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > USB2.0接口IP核的開(kāi)發(fā)與設計

USB2.0接口IP核的開(kāi)發(fā)與設計

作者: 時(shí)間:2012-02-08 來(lái)源:網(wǎng)絡(luò ) 收藏
隨著(zhù)PC機和外圍設備的發(fā)展,傳統的并行接口和串行接口RS-232在易用性(即插即用) 和端口擴展等方面存在著(zhù)一定的缺陷,這就使之越來(lái)越成為通信的瓶頸,因此通用串行總線(xiàn)(universal serial bus,USB)接口也就應運而生。1994年Compaq,IBM,Intel,Microsoft ,NEC 等公司共同提出了USB 協(xié)議規范,1996 年制定出了比較成熟的USB 1.1協(xié)議標準,最高傳輸速度為12Mbps。隨著(zhù)通信的發(fā)展,其速度明顯不能滿(mǎn)足需求,因此2000年提出了USB 2.0標準,增加了高速模式,使傳輸速度提高了40倍,達到了480 Mbps.憑借價(jià)格低廉、使用簡(jiǎn)單、協(xié)議靈活,接口標準化和易于端口擴展等優(yōu)點(diǎn),USB 接口被越來(lái)越多的外圍設備所應用。

系統結構設計

  本文所設計的USB 2. 0 接口完全依據于USB 2. 0的協(xié)議,可以完成協(xié)議的處理和數據的交換。整個(gè)系統采用了MCU 固件和硬件電路相結合的設計方法,根據不同的功能以及軟硬件實(shí)現的難易程度,進(jìn)行了相應的模塊劃分。從圖1 中可以看出,硬件電路分成4 個(gè)模塊:收發(fā)器,USB 協(xié)議控制器,工作模式控制器和緩存控制器。這些模塊將在下面具體介紹。

  根據協(xié)議可知,USB 定義了四種傳輸類(lèi)型:控制傳輸、批量傳輸、中斷傳輸和同步傳輸。 其中控制傳輸是用于支持在設備和主機之間關(guān)于設置信息、命令信息和狀態(tài)信息的傳送,是必不可少的,而其他三種傳輸方式是真正有用的數據傳輸,是可選的。MCU 作為固件,其功能是協(xié)助完成USB 的控制傳輸,這可使設計簡(jiǎn)單,因為如果這部分功能使用硬件電路來(lái)實(shí)現將會(huì )變得非常復雜。雖然單片機的速度很慢,遠遠低于硬件電路,但是對于整個(gè)系統來(lái)說(shuō),控制傳輸只發(fā)生在主機和設備連接的開(kāi)始階段和其他傳輸之前,因此速度稍慢一些對整個(gè)系統的在傳輸速度方面的性能影響不大;但是對于其他傳輸方式,尤其是同步傳輸和批量傳輸來(lái)說(shuō),這樣會(huì )降低USB 2. 0 高速傳輸的性能,是不能容忍的,所以這就決定了其不能參與USB 其他方式的數據傳輸。

模塊設計

收發(fā)器( Transceiver)

  根據UTMI(USB Transceiver Macrocell Interface) ①可知,USB 2. 0 接口的收發(fā)器主要負責時(shí)鐘和數據的恢復、位填充和位剝離、NRZI(非歸零反轉) 的編碼和解碼、串并和并串的轉換、同步字段和包結束碼的檢測和生成等功能,同時(shí)支持高速和全速傳輸,提供30 MHz(16 位并行數據) 時(shí)鐘和60 MHz(8位并行數據) 時(shí)鐘。

  因為這部分是USB 2. 0 接口的模擬前端,并且是高速(480 MHz) 的串行信號處理,為了降低設計難度和減小開(kāi)發(fā)周期,本文直接采用了CYPRESS 公司的CY7C 68000 芯片。  

工作模式控制器( Work Mode Controller)

  根據協(xié)議可知,從USB 設備連接到主機的USB 接口的過(guò)程中,USB 設備有多種可能的狀態(tài)。不同的狀態(tài)實(shí)現不同的功能。特別注意的是,如果USB 設備在一段特定的時(shí)間內探測不到總線(xiàn)活動(dòng)時(shí),必須進(jìn)入掛起態(tài),此時(shí)USB 設備保持當前的狀態(tài)、地址及配置,這樣可以有效地降低功耗。當檢測到總線(xiàn)上任何非空閑信號時(shí),設備必須被喚醒,回到原來(lái)的工作狀態(tài)。

  該模塊主要負責USB 設備的狀態(tài)轉換,包括設備與主機的高速握手信號檢測、主機復位信號檢測、掛起和喚醒狀態(tài)檢測等功能。具體的狀態(tài)轉化過(guò)程如圖2 所示。

  當USB 設備剛剛和主機建立連接時(shí),工作在全速狀態(tài),主機發(fā)送復位信號,在復位過(guò)程中,設備發(fā)送Chirp K 信號給主機,支持USB 2. 0 的主機接收到此信號后發(fā)送3 組交替的Chirp K和Chirp J信號。設備探測到此信號后,在復位信號結束后就工作在高速(480Mbps) 工作狀態(tài),否則USB 設備工作在全速(12 Mbps) 狀態(tài).當設備工作在高速模式下時(shí),直接使用收發(fā)器提供的30MHz 的時(shí)鐘;當設備工作在全速模式下時(shí),此模塊要對收發(fā)器提供的時(shí)鐘進(jìn)行40分頻,然后再供給USB 的其他模塊單元。這是因為在全速工作模式時(shí),數據傳輸的串行速率是12Mbps ,僅為高速傳輸的1/ 40。檢測總線(xiàn)狀態(tài),當接收到來(lái)自主機的軟復位信號時(shí),此模塊負責產(chǎn)生復位信號給整個(gè)USB 接口電路。處在任何一種狀態(tài)的設備都必須接收主機的復位信號。

  檢測總線(xiàn)狀態(tài),當USB設備發(fā)現總線(xiàn)上的連續空閑(高速時(shí)總線(xiàn)狀態(tài)為SE0 ,全速時(shí)總線(xiàn)狀態(tài)為J ) 時(shí)間超過(guò)3 ms 時(shí),該模塊產(chǎn)生掛起(suspend) 信號給整個(gè)USB 2. 0 接口電路,使之進(jìn)入掛起狀態(tài),所有模塊都不工作,此時(shí)整個(gè)電路的功耗會(huì )變得很低;處在掛起狀態(tài)的設備,探測到總線(xiàn)上的非空閑(總線(xiàn)狀態(tài)一般為K態(tài)) 信號時(shí)則產(chǎn)生喚醒信號,使整個(gè)電路在一定時(shí)間內回到全速或高速工作狀態(tài)。

USB協(xié)議控制器( USB Protocol Controller)

  這部分是USB 2. 0 接口電路的核心單元,處理大部分USB2. 0 的協(xié)議請求,完成數據的通信。USB總線(xiàn)是一種輪訊方式的總線(xiàn),主機控制端口初始化所有的數據傳輸。每一次傳輸可以由多個(gè)事務(wù)構成,每一個(gè)事務(wù)最多可以傳送3個(gè)數據包,分別為標記包(Token Packet) 、數據包(Data Packet) 和握手包(Handshake Packet)。傳輸開(kāi)始時(shí),由標志包來(lái)標志數據的傳輸方向,然后發(fā)送端開(kāi)始發(fā)送包含有用信息的數據包或者零數據的數據包(根據傳輸的不同階段而有所不同) ,接收端則要相應地發(fā)送一個(gè)握手包表明傳送。

  該模塊的具體工作流程如圖3 所示,在接收數據時(shí),首先對包標識符( PID) 進(jìn)行解析,如果是標記包(Token Packet) ,則用5 位CRC 進(jìn)行校驗; 如果校驗錯誤,則忽略該信息包,校驗正確后將數據送入USB 邏輯控制器,針對不同的PID 進(jìn)行相應的處理。如果是數據包(Data Packet) ,則用16 位CRC 校驗,然后將有效數據送入緩存控制器進(jìn)行緩存,再根據傳輸類(lèi)型,分別送入不同的模塊; 在控制傳輸方式下, 則將數據傳送給MCU ,利用MCU 完成主機對設備相應的配置工作以及完成和主機配置方面的數據交換,在其他傳輸方式下,則直接通過(guò)DMA 總線(xiàn)將數據傳送到SDRAM 中存儲。

  如果是握手包(handshake Packet) ,則不需要CRC 校驗,因為其已經(jīng)包含自身反碼的校驗字段,直接將解析后的PID 送入USB 邏輯控制器。在發(fā)送數據時(shí),如果是數據包,首先從緩存控制器模塊得到所需數據,然后生成16 位CRC 校驗碼和相應數據包的PID ,傳送到收發(fā)器中進(jìn)行發(fā)送;如果是握手包,則直接生成相應握手包(ACK,NAK,STALL) 的PID ,然后送到收發(fā)器中發(fā)送.同時(shí),USB 協(xié)議是通過(guò)切換從屬于數據發(fā)送器和接收器的時(shí)序位來(lái)實(shí)現高速數據傳輸同步的。僅在接收器接受到帶有正確的數據PID的無(wú)錯數據包時(shí),接收器時(shí)序位才切換;而僅在數據發(fā)送器收到合法的ACK握手PID 時(shí),發(fā)送器時(shí)序位才切換。如果同步失敗,則根據具體情況重傳或丟棄該數據包,這樣可以保證數據傳輸的正確性。

  USB 邏輯控制器負責將設備的地址和端點(diǎn)號放入狀態(tài)寄存器,只有標記包中的地址(先使用缺省地址,然后更改為主機配置的地址) 正確時(shí)才接受相應的數據包,然后根據標記包中的端點(diǎn)號來(lái)區分不同的傳輸模式:控制傳輸是雙向端口,只有一個(gè)端點(diǎn)號,一般將編號為0 的端點(diǎn)作為控制端點(diǎn)以響應控制事務(wù)的輸入輸出;其他傳輸模式是單向端口,輸入和輸出方向都定義為不同的端點(diǎn)號。

pid控制相關(guān)文章:pid控制原理


pid控制器相關(guān)文章:pid控制器原理



上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: USB2.0接口 IP核 傳輸速率

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>