?? s3c2410usb控制器.htm
字號:
<TD vAlign=top>
<DIV align=center><IMG height=303
src="USB協議基礎及S3C2410 USB控制器.files/408.gif" width=390></DIV></TD></TR>
<TR>
<TD vAlign=top>
<DIV align=center>圖9-8 USB的通信流及信道 </DIV></TD></TR>
<TR>
<TD vAlign=top>
<DIV align=left>為實現多外設、多信道地同時工作,USB 總線使用資料包的方式來傳輸資料和控制信息。USB
數據傳輸中的每一個資料包都以一個同步字段開始(圖9-9),它的最后兩個 bit 作為 PID 字段開始的標志。緊跟在同步字段之后的一段
8bit 的脈沖序列稱為 PID (資料包標識字段,如圖9-10所示), PID
字段的前四位用來標記該資料包的類型,后四位則作為對前四位的校驗。 PID 字段被分為標記 PID (共有 IN 、 OUT 、
SETUP 或 SOF 四種)、資料 PID ( DATA0 或 DATA1 )、握手 PID( ACK、 NAK 或 STALL
)及特殊 PID 等。主機根據 PID 字段的類型來判斷一個資料包中所包含的數據類型,并執行相應的操作。</DIV></TD></TR>
<TR>
<TD vAlign=top>
<DIV align=center><IMG height=64
src="USB協議基礎及S3C2410 USB控制器.files/409.gif" width=420></DIV></TD></TR>
<TR>
<TD vAlign=top>
<DIV align=center>圖9-9 同步字段</DIV></TD></TR>
<TR>
<TD vAlign=top>
<DIV align=center><IMG height=69
src="USB協議基礎及S3C2410 USB控制器.files/410.gif" width=442></DIV></TD></TR>
<TR>
<TD vAlign=top>
<DIV align=center>圖9-10 PID字段</DIV></TD></TR>
<TR>
<TD vAlign=top>
<DIV align=left>當一個 USB 外設初次連接時, USB 系統會為這臺外設分配唯一的 USB
地址,這個地址通過地址寄存器( ADDR)來標記,以保證資料包不會傳送到別的 USB 外設。7bit 的 ADDR 使得 USB
系統最大尋址為 127 臺設備( ADDR 字段,如圖9-11所示)。由于一臺 USB 外設可能具有多個信道,因而在 ADDR
字段后會有一個附加的端點字段( Endpoint Field,簡標為 ENDP )來標記不同的信道(圖9-12)。所有的 USB
外設都必須支持 Endpoint 0信道,用0000來標記。對于高速設備,可以最大支持 16 個信道,而低速設備在 Endpoint 0
之外僅能有一個信道。</DIV></TD></TR>
<TR>
<TD class=text2 vAlign=center>
<DIV align=center><IMG height=58
src="USB協議基礎及S3C2410 USB控制器.files/411.gif" width=308></DIV></TD></TR>
<TR>
<TD class=text2 vAlign=center>
<DIV align=center>圖9-11 資料包的ADDR字段 </DIV></TD></TR>
<TR>
<TD class=text2 vAlign=center>
<DIV align=center><IMG height=79
src="USB協議基礎及S3C2410 USB控制器.files/412.gif" width=245></DIV></TD></TR>
<TR>
<TD class=text2 vAlign=center>
<DIV align=center>圖9-12 端點(Endpoint)字段</DIV></TD></TR>
<TR>
<TD class=text2 vAlign=center>數據域位作為一次 USB 數據傳輸的中心目的,在一個 USB
資料包中可以包含0~1203 Byte
的資料(圖9-13)。而幀數量字段則包含在幀開始資料包中,對有的應用場合,可以用幀數量字段作為資料的同步信號。
<BR>為保證控制、塊傳送及中斷傳送中資料包的正確性, CRC 校驗字段被引用到如標記、資料、幀開始( SOF )這樣的資料包中。
CRC 校驗(資料冗余校驗)可以給予資料以 100% 的正確性檢驗。<BR></TD></TR>
<TR>
<TD class=text2 vAlign=center>
<DIV align=center><IMG height=69
src="USB協議基礎及S3C2410 USB控制器.files/413.gif" width=435></DIV></TD></TR>
<TR>
<TD class=text2 vAlign=center>
<DIV align=center>圖9-13 USB的數據域位</DIV></TD></TR>
<TR>
<TD class=text2 vAlign=center>在 USB 系統中,有四種形式的資料包:信令包( Token
Packets)、DATA 資料包(DATA Packets)、幀開始包(SOF Packets)和握手包(Handshake
Packets)。<BR>(1) 信令包由 PID 、ADDR 、ENDP 和 CRC5 四個字段組成(圖9-14)。它因為 PID
字段的不同而分為輸入類型( IN )、輸出類型( OUT )和設置類型( SETUP )三種。信令包處于每一次 USB 傳輸的 DATA
資料包前面,以指明這次 USB 操作的類型(PID字段標記)、操作的對象(在 ADDR 和 ENDP 字段中指明)等信息。 5bit 的
CRC 校驗位用來確保標記資料包的正確性。<BR></TD></TR>
<TR>
<TD class=text2 vAlign=center>
<DIV align=center><IMG height=100
src="USB協議基礎及S3C2410 USB控制器.files/414.gif" width=331></DIV></TD></TR>
<TR>
<TD class=text2 vAlign=center>
<DIV align=center>圖9-14 標記數據包的組成</DIV></TD></TR>
<TR>
<TD class=text2 vAlign=center>(2) 我們已經指出, USB 主機會每隔 1ms 在 USB
總線上產生一個 SOF 的 USB 幀同步信號, SOF 資料包包含了這個脈沖序列的實際內容(圖9-15),它由 SOF 格式的 PID
字段、幀數量字段和 5bit 的 CRC 校驗碼組成。主機利用 SOF 資料包來同步資料的傳送和接收。</TD></TR>
<TR>
<TD class=text2 vAlign=center>
<DIV align=center><IMG height=89
src="USB協議基礎及S3C2410 USB控制器.files/415.gif" width=298></DIV></TD></TR>
<TR>
<TD class=text2 vAlign=center>
<DIV align=center>圖9-15 SOF 資料包的格式</DIV></TD></TR>
<TR>
<TD class=text2 vAlign=center>(3) 用于傳輸真正資料的 DATA 資料包(圖9-16),因為 PID
的不同可以分為 DATA0 和 DATA1 兩種。 DATA0 為偶數據包,DATA1 為奇數據包。DATA
資料包的奇偶性分類易于資料的雙流水處理,而用于控制傳輸的 DATA 資料包總是以 DATA0 來傳送資料。</TD></TR>
<TR>
<TD class=text2 vAlign=center>
<DIV align=center><IMG height=92
src="USB協議基礎及S3C2410 USB控制器.files/416.gif" width=455></DIV></TD></TR>
<TR>
<TD class=text2 vAlign=center>
<DIV align=center>圖9-16 DATA資料包的格式</DIV></TD></TR>
<TR>
<TD class=text2 vAlign=center>(4) 握手資料包僅僅包含一個 PID 字段( 圖9-17 ), ACK
形式的 PID 表明此次 USB 傳輸沒有發生錯誤,資料已經成功的傳輸;而 NAK 形式的握手資料包則向主機表明此次 USB 傳輸因為
CRC 校驗錯誤或別的原因而失敗了,從而使得主機可以進行資料的重新傳輸; STALL
形式的響應向主機報告外設此刻正處于掛起狀態而無法完成資料的傳輸。</TD></TR>
<TR>
<TD class=text2 vAlign=center>
<DIV align=center><IMG height=56
src="USB協議基礎及S3C2410 USB控制器.files/417.gif" width=170></DIV></TD></TR>
<TR>
<TD class=text2 vAlign=center>
<DIV align=center>圖9-17 握手資料包</DIV></TD></TR>
<TR>
<TD class=text2 vAlign=center>
<DIV align=center></DIV></TD></TR></TBODY></TABLE>
<TABLE height=49 cellSpacing=0 cellPadding=0 width="90%" align=center><!--DWLayoutTable-->
<TBODY>
<TR>
<TD vAlign=center>
<HR SIZE=1>
</TD></TR>
<TR>
<TD vAlign=top>需要指出的是,每個資料包的結束都會有兩個 bit 寬的 EOP
字段作為資料包結束的標志(圖7-18),EOP 在差模信號中表現為 D+ 和 D- 都處于“0”狀態。對于高速 USB
外設而言,這個脈沖寬度在 160~175ns 之間,而低速設備則在 1.25~1.50μs 之間。無論其后是否有其它的資料包,USB
線纜都會在 EOP 字段后緊跟 1bit 的總線空閑位。USB 主機或外設利用 EOP 來判斷一個資料包的結束。</TD></TR>
<TR>
<TD vAlign=top>
<DIV align=center><IMG height=101
src="USB協議基礎及S3C2410 USB控制器.files/418.gif" width=443></DIV></TD></TR>
<TR>
<TD vAlign=top>
<DIV align=center>圖9-18 EOP字段在差模信號中的電壓表現</DIV></TD></TR>
<TR>
<TD vAlign=top>
<DIV align=left>在前面我們已經提到,每一個 USB 信道對應著一個特定的 USB 傳輸模式,根據不同的需要,USB
外設可以為 USB 信道指定不同的 USB 傳輸模式。USB 總線支持四種數據傳輸模式:<BR>(1)
控制傳輸模式,控制傳輸用于在外設初次連接時對器件進行配置;對外設的狀態進行實時檢測;對控制命令的傳送等;也可以在器件配置完成后被客戶軟件用于其它目的。Endpoint
0信道只可以采用控制傳送的方式。<BR>(2) 塊傳送模式(圖9-19),塊傳送用于進行批量的、非實時的數據傳輸。如一臺 USB
掃描儀即可采用塊傳送的模式,以保證資料連續地、在硬件層次上的實時糾錯地傳送。采用塊傳送方式的信道所占用的 USB
帶寬,在實時帶寬分配中具有最高的優先級。<BR></DIV></TD></TR>
<TR>
<TD vAlign=top>
<DIV align=center><IMG height=223
src="USB協議基礎及S3C2410 USB控制器.files/419.gif" width=400></DIV></TD></TR>
<TR>
<TD vAlign=top>
<DIV align=center>圖9-19 塊傳送的流程</DIV></TD></TR>
<TR>
<TD vAlign=top>
<DIV align=left>(3)
同步傳輸模式(圖9-20),同步傳輸適用于那些要求資料連續地、實時地、以固定的數據傳輸率產生、傳送并消耗的場合,如數字錄像機等。為保證數據傳輸的實時性,同步傳輸不進行資料錯誤的重試,也不在硬件層次上響應一個握手資料包,這樣有可能使數據流中存在資料錯誤的隱患。為保證在同步傳輸數據流中致命錯誤的幾率小到可以容忍的程度,而數據傳輸的延遲又不會對外設的性能造成太大的影響,廠商必須為使用同步傳輸的信道選擇一個合適的帶寬(即必須在速度和品質之間做出權衡)。</DIV></TD></TR>
<TR>
<TD vAlign=top>
<DIV align=center><IMG height=155
src="USB協議基礎及S3C2410 USB控制器.files/420.gif" width=364></DIV></TD></TR>
<TR>
<TD vAlign=top>
<DIV align=center>圖9-20 同步傳輸的流程</DIV></TD></TR>
<TR>
<TD vAlign=top>
<DIV align=left>(4)
中斷傳輸模式(圖9-21),對于那些小批量的、點式、非連續的數據傳輸應用的場合,如用于人機交互的鼠標、鍵盤、游戲桿等,中斷傳輸的方式是最適合的。</DIV></TD></TR>
<TR>
<TD class=text2 vAlign=center>
<DIV align=center><IMG height=179
src="USB協議基礎及S3C2410 USB控制器.files/421.gif" width=339></DIV></TD></TR>
<TR>
<TD class=text2 vAlign=center>
<DIV align=center>圖9-21 中斷傳輸的流程</DIV></TD></TR>
<TR>
<TD class=text2 vAlign=center>
<DIV align=left>上述內容并不想詳細論述 USB
外設(本部分所說的USB外設如無特別說明均指USB功能器件)的設計細節,而只想介紹 USB 功能器件的一般組成,以此來幫助讀者了解
USB 外設的基本軟硬件構成,以便了解 USB 外設的工作過程和原理。<BR>組成外設的傳感器件和 DSP
因為外設的具體應用各異而有所不同。如對于一臺 CMOS 數字攝像頭,它的 CMOS 光電耦合器及其 DSP
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -