我是四川理工學院 電信系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 的功能
THE CYPRESS SEMICONDUCTOR EZ——USB FX2 除了具有USB 2。0 的功能外與不同情況CYPRESS SEMICONDUCTOR USB FX 系列無區別
1.2 AN INTRODUCTION OF USB
USB
A. LOW SPEED(1.5Mbit/sec)滑鼠,鍵盤等
B. FULL SPEED (12Mbit/sec) 揚聲器,掃描儀等
C. HIGH SPEED (480Mbit/sec) 硬碟驅動器等
FX2的功能
1.3 THE USB SPECIFICATION
THE USB SPECIFICATION VERSION 2.0 可在WWW.USB.ORG 找到
1.4 HOST IS MASTER (主機是大腦)
1.5 USB DIRECTIONG(傳輸方向)
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 | |||||||
|
| ACK |
TOKEN PACKET | DATA PACKET(數據包) | H/S PACKET | |||||||
|
| 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.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.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設備后,主機將進行以下步驟:
[admin via 研發互助社區 ] CYPRESS FX2(USB2.0 單片機)讀書筆記已經有7753次圍觀
http://cocdig.com/docs/show-post-44935.html