USB2.0控制器CY7C68013特點(diǎn)與應用
關(guān)鍵詞:USB2.0 高速模式 端點(diǎn)
本刊2002年到2、3期已對EZ-USB單片機的介紹。本文在此只重點(diǎn)介紹USB2.0的特殊之處以及芯片CY7C68013的主要特點(diǎn)。*
1 USB2.0的主要特點(diǎn)
USB協(xié)議的2.0版本于2000年4月推出。支持以下3種速度模式:
低速模式(low speed) 1.5Mb/s;
全速模式(full speed) 12Mb/s
高速模式(high speed) 480Mb/s
USB2.0協(xié)議支持現存的所有USB設備,既可以把USB1.1設備插入USB1.1的PC機接口,并且在電氣上兼容USB1.1的連接線(xiàn)。
1.1 數據包
USB傳輸的數據包的類(lèi)型用稱(chēng)之為Packet Ids(PIDs)的特定代碼來(lái)定義。USB包中共有4種PID類(lèi)型,如表1所列。
表1 USB2.0的數據包類(lèi)型
PID類(lèi)型 | PID名稱(chēng) |
令牌 | IN,OUT,SOF,SETUP |
數據 | DATA0,DATA1,DATA2,MDATA |
握手 | ACK,NAK,STALL,NYET |
特殊類(lèi)型 | PRE,ERR,SPLIT,PIN |
注:黑體字表示USB2.0增加的PID類(lèi)型。
在全速模式時(shí),每個(gè)OUT傳輸發(fā)送OUT數據包,不考慮外設是否處于“忙”狀態(tài)而不能接收數據。針對這種浪費帶寬的情況,在高速模式時(shí)推薦使用新的PID類(lèi)型“PING”。主機先對OUT端點(diǎn)發(fā)出個(gè)較短的“PING”令牌,訪(fǎng)問(wèn)當前外設是否有數據文憑間來(lái)存放OUT的數據包。僅僅當外部設備回答“ACK”時(shí),主機才發(fā)送較長(cháng)OUT數據包。
SETUP鄰牌只用于控制傳輸。它數據包中的前8個(gè)字節。通過(guò)這8個(gè)字節,外設對主機的設備請求進(jìn)行譯碼。
SOF令牌代表一個(gè)USB幀的開(kāi)始。
ACK(Acknowlegde)表示成功,數據接收無(wú)誤。
NAK(Negavite Acknowlegde)表示忙,得發(fā)。這并不是出錯,USB外設沒(méi)有應答表示出錯。
STALL表示未知錯誤,外設未能理解主機發(fā)出的設備請求,可能是外設端出錯,或是主機訪(fǎng)問(wèn)并存在的資源。USB協(xié)議提供了從stall狀態(tài)恢復的方法。
其它PID詳見(jiàn)參考文獻[1]。
1.2 幀結構
USB主機每毫秒向所有的USB設備發(fā)送1上SOF包(Start of Frame),以此來(lái)提供時(shí)間基準。SOF包括1個(gè)自增的11位幀序號。FX2隨時(shí)可以從寄存器中讀出這個(gè)范圍在[0~2047]的幀序號。
地高速模式下(480Mb/s),每個(gè)1ms長(cháng)的幀被分成了8個(gè)125μs長(cháng)的微幀。每個(gè)微幀也都由一個(gè)SOF包開(kāi)始。幀序號還是每個(gè)毫秒自增1次,所以這8個(gè)微幀都含有相同的幀序號。為了區別每個(gè)微幀FX2提供1個(gè)只讀的微幀計數器,并且FX2能在收到SOF包時(shí)產(chǎn)生1個(gè)中斷請求,即在全速模式下1ms/次,高速模式下125μs/次。
1.3 傳輸類(lèi)型
為了適用480 Mb/s的高速數據傳輸,USB.0協(xié)議擴大了各種傳輸類(lèi)型數據包長(cháng)度,與USB1.1的對照如表2所列。
表2 USB2.0與USB1.1數據包長(cháng)度的對照
傳輸類(lèi)型 | 數據包度/B | |
USB1.1 | USB2.0 | |
控制傳輸 | 8,16,32,64 | 64 |
塊傳輸 | 8,16,32,64 | 512 |
中斷傳輸 | 1~64 | 1024 |
同步傳輸 | 1023 | 1024 |
1.4 高速模式和全速模式的檢測
USB2.0規范要求高速設備必須能在全速模式下枚舉。每個(gè)高速設備都在全速模式下開(kāi)始枚舉過(guò)程。當與主機達成“Chirp”協(xié)議后設備再切換到高速工作模式下。詳細內容見(jiàn)參考文獻[1]第7章。FX2能自動(dòng)檢測高速主機,并切換到高速模式下。
1.5 傳輸性能分析
以USB硬盤(pán)為例分析USB2.0的高速傳輸性能。圖1為USB2.0與硬盤(pán)接口的帶寬分析。
每分轉速7200帶有2MB緩存的ATA100硬盤(pán),接口數據傳輸速率可達100MB/s,可持續的有效傳輸速率只有39MB/s。
USB2.0在每個(gè)上微幀中最大可傳輸13個(gè)塊傳輸包,而每個(gè)微幀長(cháng)固定為125μs,所以其最大傳輸速率為:5121381000=53MB/s。
2 EX-USB FX2的主要特點(diǎn)
2.1 芯片結構
EZ-USB FX2芯片包括1個(gè)8051處理器、1個(gè)串行接口引擎(SIE)、1個(gè)USB收發(fā)器、8.5KB片上RAM、4KB FIFO存儲器以及1個(gè)通用可編程接口(GPIF),如圖2所示。FX2是一個(gè)全面集成的解決方案,它占用更少的電路板空間,并縮短開(kāi)發(fā)時(shí)間。
EZ-USB FX2擁有1個(gè)獨特的架構,其中包括1個(gè)智能串行接口引擎(SIE)。它執行所有基本的USB功能,將嵌入式MCU解放出來(lái)以用于實(shí)現專(zhuān)用的功能,并保證其持續的高性能的傳輸速率。FX2還包括2個(gè)通用可編程接口(GPIF),允許它“無(wú)膠粘接”,即可與任何ASIC或DSP進(jìn)行連接,并且它還支持所有通用總線(xiàn)標準,包括ATA、UTOPIA、EPP和PCMCIA。EZ-USB FX2完全適用于USB2.0,并向下兼容USB1.1。
FX2有3種封裝形式:56腳 SOPP、100腳的TQFF(薄形四方扁平封裝)、128腳的TQFP。引腳數的區別在于輸入、輸出引腳數的不同,以針對不同的應用要求。
2.2 結構特點(diǎn)
當大部分USB1.1器件都需要微控制器參與數據從端點(diǎn)FIFOs到應用環(huán)境轉移,如圖3所示。顯然,微控制器本身的工作頻率在相當程度上限制了帶寬的進(jìn)一步提高。雖然在12Mb/s的全速模式下,這種限制并不明顯,但當速度提升至480 Mb/s時(shí),在成本嚴格控制下微控制器就必然成為整個(gè)系統的帶寬并頸。
EZ-USB FX2提供了一種獨持架構,使USB接口和應用環(huán)境直接共享FIFO,而微控制器可不參與數據傳輸但允許以FIFO或RAM的方式訪(fǎng)問(wèn)這些共享FIFO,如圖4所示。這種被稱(chēng)之為“量子FIFO”(Quantum FIFO)的處理架構,較好地解決了USB高速模式的帶寬問(wèn)題。
具體來(lái)說(shuō),如圖5所示,USB執行OUT傳輸,將EP2端點(diǎn)設成512字節重FIFO(如2.3小節所述)。在USB端和外部接口端都并不知道有四重FIFO??磥?lái),USB端只要有1個(gè)FIFO為“半滿(mǎn)”,就可以繼續發(fā)送數據。當膠操作的FIFO寫(xiě)“滿(mǎn)”時(shí),FX2自動(dòng)將其轉換到外部接口端,排除等候讀??;并將USB接口隊列中下一個(gè)為“空”的FIFO轉移到USB接口上,供其繼續寫(xiě)數據。外部接口端與此類(lèi)似,只要1有個(gè)FIFO為“半滿(mǎn)”,就可以繼續讀取數據。當前操作的FIFO讀“空”時(shí),FX2自動(dòng)將其轉換到USB接口端,排除等候寫(xiě)入;并將外部接口隊列中下一個(gè)為“滿(mǎn)”的FIFO轉移到外部接口上,供其繼續讀取數據。
2.3 端點(diǎn)緩存
USB協(xié)議定義了端點(diǎn)作為數據的接收器和發(fā)送器。主機發(fā)送4個(gè)bit的地址和1個(gè)bit的方向來(lái)選擇端點(diǎn),因此USB最多可有32個(gè)端點(diǎn)定義:IN0~IN15和OUT0~OUT15。
FX2定義了7個(gè)端點(diǎn),在高速模式下的端點(diǎn)緩存結構如圖6所示。EP0INOUT、EP1IN、EP1OUT是64byte的端點(diǎn)緩存。EP0是默認的控制傳輸端點(diǎn),既是IN端點(diǎn)也是OUT端點(diǎn)。EP1IN、EP1OUT支持塊、中斷和同步傳輸。EP0、EP1IN和EP1OUT只能由FX2的固件訪(fǎng)問(wèn);而EP2、4、6和8無(wú)需固件干涉即可同片外互傳高速數據。
FX2端點(diǎn)配置方式非常靈活。EP2、4、6和8是大容量高帶寬的數據傳輸端點(diǎn),可設為IN或OUT端點(diǎn)的一種,能配置成多種形式以適應帶寬需要。在圖6中,每一列代表1種配置方式。帶陰影的方框可包括2、3、4個(gè)512或1024字節的緩存,分別表示端點(diǎn)可配置成雙重、三重和四重緩存。雙緩存是指USB可以讀或寫(xiě)1個(gè)數據包,而另一個(gè)數據包(同一個(gè)端點(diǎn)內另一個(gè)緩沖存儲器中的)可供外部接口操作;三重緩存加了第3個(gè)數據包存儲器可供USB和外部接口需要的一方使用;四重緩存增加了第4個(gè)數據包存儲器。多緩存的結構以在讀寫(xiě)雙方速度相似時(shí)有效地改善帶寬,平滑帶寬抖動(dòng),減少雙方的互相等待時(shí)間。
3 EZ-USB FX2的接口方式
FX有2種接口方式:Slave FIFOs和可編程接口GPIF。
Slave FIFOs方式是從機方式,外部控制器可像普通FIFO一樣對FX2的多層緩沖FIFO進(jìn)行讀寫(xiě)。FX2的Slave FIFOs工作方式可設為同步或異步;工作時(shí)鐘可選為內部產(chǎn)生或外部輸入;其它控制信號也可靈活地設置為高有效或低有效。
可編程接口GPIF是主機方式,可以軟件編程讀寫(xiě)控制波形,幾乎可以對任何8/16 bit接口的控制器、存儲器和總線(xiàn)進(jìn)行數據的主動(dòng)讀寫(xiě),非常靈活。
4 EZ-USB FX2的開(kāi)發(fā)工具
如同EZ-USB系列的其它控制器一樣,Cypress公司對FX2也提供了較為完備的開(kāi)發(fā)套件CY3681。它包括帶128腳CY7C68013的硬件開(kāi)發(fā)板和相應的控制面板(Control panel)、GPIF代碼自動(dòng)生成軟件(GPIFTool)以及固件方面豐富的例子和大量的幫助文檔??梢员M量節省學(xué)習時(shí)間,加快開(kāi)發(fā)速度。
pid控制器相關(guān)文章:pid控制器原理
評論