CYPRESS FX2(USB2.0 單片機)讀書筆記

admin @ 2014-03-26 , reply:0

    我是四川理工學院 電信系2001級 自動化 的一名學生。我正在做關於USB的一個畢業設計,我有幸借到一本關於CYPRESS晶元的英文書。我想把它翻譯出與大家共享。由於時間,我不會字字翻譯,我把我認為重要的且我有能力翻譯的獻給大家。以下只是一部分,我有空再繼續貼在網上。如有不足,請指教。
以下是我看CYPRESS 公司的FX2(USB2.0的單片機)一英文書的心得,也可說是“讀書筆記”吧?請各位多多包涵。

EX——USB FX2
TECHNICAL   REFERENCE   MANNAL
CYPRESS 

CHAPTER 1 INTRODUCING EZ-USB FX2
1.1 INTRODUCION
USB 2.0 的功能

  1. 具有480Mbits/sec的信號速度
  2. 對USB1。1設備和電纜完全兼容
  3.  新的集線器結構能向USB1。1設備埠提供複雜的12Mbits/sec數據流。

THE CYPRESS SEMICONDUCTOR EZ——USB FX2 除了具有USB 2。0 的功能外與不同情況CYPRESS SEMICONDUCTOR USB FX 系列無區別 

1.2  AN INTRODUCTION OF USB
USB

  1.  即插即入
  2.  USB不使用電源,跳線,開關,配置程序等,不與I/O,DMA, MEMORY(,IRQ等發生衝突。
  3.  USB集線器能接多個設備。
  4.  USB能滿足印表機,硬碟驅動器等的需要。
  5. USB 的各速度的應用場合

 A. LOW SPEED(1.5Mbit/sec)滑鼠,鍵盤等
 B. FULL SPEED (12Mbit/sec) 揚聲器,掃描儀等
 C. HIGH SPEED (480Mbit/sec) 硬碟驅動器等

FX2的功能

  1. 有8051
  2. 有RAM的軟體結構
  3. 使用EZ——USB晶元的USB設備不被埠數,大小,傳輸速度限制
  4. 代碼簡單,易學易用。

1.3  THE USB SPECIFICATION
THE USB SPECIFICATION VERSION 2.0 可在WWW.USB.ORG 找到

1.4   HOST IS MASTER (主機是大腦)

  1. 一切數據傳輸要聽主機的。除了當主機把設備設置為“SUSPEND(掛起)”模式時設備能發出“REMOTE WAKE UP”信號,例外。
  2.  採用這種“HOST——CENTRIC MODE”的原因是減低成本。

1.5   USB DIRECTIONG(傳輸方向)

  1. OUT 指 HOST到DEVICE。
  2. IN   指DEVICE 到HOST。

1.6 TOKENS AND PIDS

1. 這節將提出以下幾個問題?A,什麼時候這個主機將送“IN”TOKEN。B,這些“TERMS”(我看書猜是指令,如TOKEN,DATA,HANDSHAKE,SPECIAL)是什麼意思?

 2.接下來我要說的是,USB PIDS(IT IS SPECIAL CODES CALLED PACKET IDS)既USB的數據包代碼。

PID TYPE類型
PID NAME名字
TOKEN
IN,OUT,SOF,SETUP
DATA數據
DATA0,DATA1, DATA 2,MDATA
HANDSHAKE握手
ACK,NAK,STALL,NYET
SPECIAL特殊
PRE,ERR,SPLIT,PING

 3. 以下是數據傳輸格式DATA1,DATA0,這兩個是重複數據,確保在1數據丟失時,0可補上。不至於數據丟失。

TOKEN PACKET
DATA PACKET(數據包)
H/S PACKET
OUT
ADDR
ENDP
CRC5循環冗餘
DATA1
PAYLOAD DATA
CRC16循環冗餘
ACK

TOKEN PACKET
DATA PACKET(數據包)
H/S PACKET
OUT
ADDR
ENDP
CRC5循環冗餘
DATA0
PAYLOAD DATA
CRC16循環冗餘
ACK

 4.  USB “OUT” PACKET的傳輸過程。(不是USB 有兩個數據指令嗎?“IN”AND“OUT”這兒講的是“OUT”它是有主機到USB設備的傳輸。
   A.  主機送數據到匯流排上。
   B.  數據傳輸到設備。
   C.  USB設備送“ACK”到主機表明接受成功。

 5.  在“FULL SPEED(12MBITS/SEC)”和在“HIGHT SPEED(480MBITS/SEC)”上傳送“OUT PACKET”有不同。
   A.  在“FULL SPEED”,主機重複送“OUT DATA”。
   B.  在“HIGHT SPEED”,首先,主機送“PING ”指令到“OUT(輸出)”終端,詢問在外圍設備中,這兒是否有空間為“OUT DATA(輸出數據)”。僅僅當主機收到回答,既收到“ACK”,主機才會送“OUT TOKEN  AND DATA(輸出指令和數據)。
(我想就是因為這個改進,一部份提高了傳輸速度,這就是“HIGHT SPEED”和“FULL SPEED”的差別)

 6.  這兒有兩個重複的DATA  PIDS (數據包IDS),這是由於USB嚴格的查錯機制。其查錯過程如下:A,設備的ACK握手信號,表明設備接受數據無誤,(而且我認為它的CRC循環冗餘,也是其數據嚴格的表現)B,如果設備不回復,表示數據可能丟失,主機自然會重發的。(那你說,發了兩個重複數據,如沒丟,不多了嗎?這不多,設備自然會處理多的那個)

 7.  接下來我會講解各PIDS。
   A.   SETUP TOKEN(SETUP領牌)是唯一的用來“控制”傳輸的。
   B.  SOF TOKEN(START OF FRAME,開始幀)。在FULL SPEED(12MBITS/SEC)下,SOF TOKEN 每MS(毫秒)發生。在HIGH SPEED下,125MS一幀,而每幀包含一個SOF TOKEN。
   C.  ACK (ACKONWLEDGE)表示數據接收成功。
   D.  NAK(NEGATIVE ACKONWLEDGE)是設備表示自己很忙,請主機再傳。注意它不是“ERROR(出錯)”,當USB設備發現傳輸有錯時,它會選擇不“回答”。
   E.  STALL 表示出現主機不可預知的錯誤。
   F.  NYET(NOT YET)它只出現在HIGH SPEED模式下,表示設備數據傳輸成功,但還沒準備好接受下個設備。
   G.  PRE 這個出現在LOW SPEED(1。5MBITS/SEC)下,FX2不支持。

1.5.1 RECEIEING DATA FROM THE HOST(接受來自主機的數據)。

 1.  以下我將寫這的過程。
   A.  首先主機送給設備,數據和“OUT”(記住OUT在數據后哦)。
   B.  接下就是設備回復主機了,這兒分三種情況1,設備有接受數據的空間,設備回復“ACK”。2,如果這兒沒多空,它會送“NACK”到主機。3,如果設備發現主機傳來的數據有誤,它會什麼也不發(我想這也是加快其運行速度的好方法),主機在規定時間內沒收到任何來自設備的信號,它會重發數據。

1.6.2 SENDING DATA TO THE HOST(送數據到主機)

  1.   USB設備不會傳數據到主機,(這是我自己翻譯的,我不知道是否理解正確,我把原文寫下“A USB DEVICE NEVER SPONTANEOUSLY SENDS DATA TO THE HOST”)。
  2.   當主機送一個“IN”請求到FX2,數據將被外圍設備通過埠送到主機。

1.7 USB FRAMES(USB 幀)
 1.  USB 主機每毫秒(MILLISECOND)傳輸一個SOF(START OF FRAME,開始幀)給 所有USB設備。
 2.  SOF包中 每幀由11位組成。其當前幀(其幀號[0-2047])可在任意時間從FX2內部寄存器讀出。
 3.  在HIGH SPEED(480MBIT/S)每一秒毫秒(ONE MILLISECOND)幀被分成8個125微秒(MICROSECOND),每個包含1個SOF包。而幀號以毫秒(MILLISECOND)計數,既一秒一個,因此這8個幀有相同的幀號。為跟蹤當前的微秒幀(MICROFRAME[0-7]),FX2提供了一個可讀的微秒幀計數器(MICROFRAME COUNT)。
 4,當FX2收到一個SOF,它將產生一個中斷請求。
A在FULL SPEED 情況下,每毫秒一次(ONCE EVERY MILLISECOND),
B在HIGH SPEED情況下,每125微秒一次(ONCE EVERY 125 MICROSECOND)。
這個SOF中斷應用於,比如服務同步數據時使用。

1.8 USB FRANSFER TYPES(USB傳輸類型)
它有四個類型,以在匯流排上傳輸方式而定。
1.8.1 BULK TRANSFERS (塊傳輸)

輸入IN
ADDR
ENDP
CRC5
 
DATA1
有效數據PAYLOAD DATA
循環冗餘
CRC16
 
應答ACK
令牌包
TOKEN PACKET
數據包
DATA PACKET
握手包H/S PKT
 

輸出OUT
ADDR
ENDP
CRC5
 
DATA1
有效數據PAYLOAD DATA
循環冗餘
CRC16
 
ACK
TOKEN PACKET
DATA PACKET
H/S PKT

它的特性,

  1.  突發性(BURSTY)。
  2. A在FULL SPEED (12Mbits/Sec)情況下 每數據包包含8,16,32,64個位元組。
    B在HIGH SPEED (480Mbits/Sec)情況下 每數據包包含512個位元組。
  3.  精確性。
  4.  可用於印表機,掃描儀等。

1.8.2 INTERRUPT TRANSFER (中斷傳輸)

1 中斷數據與塊傳輸數據格式相同,如下圖

輸入IN
ADDR
ENDP
CRC5
 
DATA1
有效數據PAYLOAD DATA
循環冗餘
CRC16
 
應答ACK
令牌包
TOKEN PACKET
數據包
DATA PACKET
握手包H/S PKT

1 .8. 2 INTERRUPT TRANSFERS (中斷傳輸)

IN(輸入)
ADDR(地址)
ENDP
CRC5(循環冗餘)
 
DATA1(數據)
PAYLOAD DATA(有效數據)
CRC16(循環冗餘)
 
ACK(應答)
TOKEN PACKET(令牌)
DATA PACKET(數據包)
H/S PKT(握手)

 1.  中斷數據傳輸的數據與塊傳輸的數據類似。

 2.  中斷傳輸 在FULL SPEED (12Mbits/Sec)情況下,它的傳輸位元組可在1之64個位元組間。在HIGH SPEED (480Mbits/Sec)情況下,它的傳輸位元組可高達1024個位元組。

 3.  它使用了IN 令牌(TOKEN)。

1.8.3 ISOCHRONOUS TRANSFERS(同步傳輸) 

IN(輸入)
ADDR(地址)
ENDP
CRC5(循環冗餘)
 
DATA1(數據)
PAYLOAD DATA(有效數據)
CRC16(循環冗餘)
 
ACK(應答)
TOKEN PACKET(令牌)
DATA PACKET(數據包)
H/S PKT(握手)

 1.  同步傳輸適用於音響或視頻。

 2.  同步傳輸 在FULL SPEED (12Mbits/Sec)情況下,它的傳輸位元組每包可在1之1023個位元組間。在HIGH SPEED (480Mbits/Sec)情況下,它的傳輸位元組每包可在1之1024個位元組間。

 3.   A.同步傳輸中,時間非常重要。
  B.在USB幀中,分配了一定的USB帶寬給同步傳輸。
  C.同步傳輸沒有握手(NO HANDSHAKE ,SUCH AS ACK/NAK/STALL/NYET),沒有重發(NO RETRIES)。而查錯被限制在16-bit CRC。 
  D.同步傳輸不使用數據輪換機制(DATA-TROGGLE MECHANISM),在FULL SPEED (12Mbits/Sec)情況下,僅僅有DATA0。在HIGH SPEED (480Mbits/Sec)情況下,有DATA0,DATA1,DATA2,MDATA,
  E.同步傳輸每幀每個端點傳輸的包量。在FULL SPEED (12Mbits/Sec)情況下,每幀每個端點傳輸可傳輸一個同步數據包;在HIGH SPEED (480Mbits/Sec)情況下,每幀每個端點可傳輸高達3個同步數據包。 

1.8.4 CONTROL TRANSFERS (控制傳輸)
以下將介紹控制傳輸的三個階段:SETUP STAGE(SETUP 階段),DATA STAGE(DATA 階段,此階段可根據需要預設),STATUS STAGE(STATUS 階段)。
如下圖:

 1.  A.CONTROL TRANSFERS (控制傳輸)配置和送控制命令到主機。
  B.CONTROL TRANSFERS (控制傳輸)非常重要,它使用最廣泛的USB錯誤檢測。
  C.主機為控制傳輸在USB幀中保留了一部分空間。

 2.控制傳輸由二或三個階段構成(DATA 階段,此階段可根據需要預設)。
  A.SETUP STAGE(SETUP 階段)包含了8位元組的USB控制數據。
  B.DATA STAGE(DATA 階段)如果需要可預設。
  C.STATUS STAGE(STATUS 階段)也可稱(HANDSHAKE,握手)在這個階段,允許設備直接顯示CONTROL傳輸成功。

1.9 ENUMERQTION(枚舉)

 1.USB設備的即插即入(PLUG AND PLAY),這是大家都知道的USB的一個很大的特點。但這就導出下面一個問題:"這一切如何發生?"在每個USB 設備中,這兒有個描述符表,這表包含了設備所有特性和要求。

 當插入USB設備后,主機將進行以下步驟:

  1. 主機發出Get-Descriptor/Device(獲取描述符表/設備)的請求到地址0(設備第一個連接時必須響應地址0)。
  2. 設備響應回答送ID data到主機。
  3. 主機送Set  Address請求為設備安排唯一地址。
  4. 主機送更多Get  Descriptor請求要求設備送更多設備信息,以便了解設備端點數,電源要求,匯流排帶寬要求,驅動程序的裝載。



[admin via 研發互助社區 ] CYPRESS FX2(USB2.0 單片機)讀書筆記已經有1761次圍觀

http://cocdig.com/docs/show-post-44935.html