You are on page 1of 96

電機工程系碩士班

碩士學位論文

以 FPGA 設計與實作串列介面引擎與
USB PHY 晶片整合
Design and Implementation of Serial Interface
Engine integrated with USB PHY Chip by FPGA

研究生:林志豪

指導教授:于治平 博士
方志鵬 博士

中華民國一百零四年七月
摘 要
論文名稱:以 FPGA 設計與實作串列介面引擎與 USB PHY 晶片整合

校所別:國立臺北科技大學電機工程系碩士班 頁數:84 頁

畢業時間:一百零三學年度第二學期 學位:碩士

研究生:林志豪 指導教授:于治平 博士

方志鵬 博士

關鍵詞:FPGA、Verilog 硬體描述語言、通用序列匯流排、SIE、USB PHY

近年來消費電子產品資料的傳遞速度相當的快速且方便,而現今資料

的傳輸介面方式有 I2C、SPI、RS-232、USB 等串列傳輸,其中通用序列

匯流排 (USB) 介面已成為重要的一種標準連接介面,提供方便、快速的

資料傳輸功能,簡化 PC 周邊裝置介面,很多裝置都採用 USB 介面來實

現與電腦的連接,如滑鼠、鍵盤、行動硬碟、印表機等。各個周邊與 PC 間

資料量與資料傳輸的速度需求不同,故 USB 架構的設計不斷提升資料傳

輸速度以及改善資料量的大小。

本論文系統是利用 Verilog 硬體描述語言設計與模擬資料傳輸的介面

電路。研究將資料透過串列介面引擎 SIE 架構做處理,使資料進行有效

封包傳輸,且符合 USB 封包格式,並藉由 Cypress 公司的 USB PHY 晶

片與 SIE 架構整合,將數位的封包資料轉成類比差動訊號 (D+/D-),連接

USB Cable 傳送與接收資料,透過兩塊現場可編輯邏輯閘陣列 (FPGA) 板

分為傳送端與接收端,並整合與驗證系統功能。

i
.

ABSTRACT

Title : Design and Implementation of Serial Interface Engine integrated with USB

PHY Chip by FPGA

School : National Taipei University of Technology Pages : 84

Department : Graduate Institute of Automation Technology

Time : June, 2015 Degree : Master

Researcher : Jhih-Hao Lin Advisor : Dr. Chih-Ping Yu

Dr. Jyh-Perng Fang

Keywords : FPGA, Verilog HDL, USB ,serial interface engine,USB PHY.

The data transmission is fairly quick and easy in recent years. Nowadays,

there are a lot of serial data transmission methods, such as I2C,SPI, RS-232,

USB (Universal Serial Bus) etc. At present, USB provides convenient and fast

data transmission function to simplify PC peripherals device interface. Due to

the amount of data and transmission speed are different between PC and it’s

peripherals, the USB design of architecture keeps upgrading transmission

speed and data.

The data via serial interface engine system of effective transmission in the

paper. The design and simulation interface circuit of system by Verilog HDL,

And using FPGA to integrate with USB PHY and verify the system of function.

After verification, use TSMC 0.18-μm CMOS technology implement the SIE

IP core. The proposesd SIE IP performs with the gate count of 14,547, the

dynamic power of 2.6742mW.

ii
誌 謝

二年研究生生涯稍縱即逝,這段時間非常感謝指導教授于治平老師和

方志鵬老師在專業領域上的教導與鼓勵,讓我受益良多,在此本人致上最

高的謝意。還要感謝口委宋國明老師、謝祥圓博士提供專業上的意見,使

我能夠有所突破,在論文評審時不吝惜指教,使本篇論文更完善。

感謝文敦、祥均學長們,在研究所期間給予學弟我的照顧與教導,教

導我專業上的不足,也讓我感受到研究室的和諧;感謝同窗兩年的同學昱

齊、子軒、永吉、秉錞、昌政、映涵,在研究生涯中一同患難與共;還有

可愛的學弟們礧玟、宇鵬、銘瑋、宏原,處理實驗室的大小事情,好讓我

們可以專心研究也讓我的研究生涯多采多姿。

此外最感謝的是我親愛的父母親以及哥哥、姐姐的陪伴與鼓勵,你們

的支持給予我鼓勵及精神上的安慰,讓我度過每個難關,使我能專心於學

業之中,順利完成碩士學位。感謝所有幫助與關心我的家人與朋友們,感

謝你們的祝福。

林志豪

104 年 8 月於台北科大

iii
目錄

摘 要 ............................................................................................................ i

ABSTRACT ................................................................................................... ii

誌 謝 .......................................................................................................... iii

目錄 .............................................................................................................. iv

表目錄 ......................................................................................................... vii

圖目錄 ........................................................................................................ viii

第一章 緒論 ...................................................................................................1

1.1 研究動機 .......................................................................................... 1

1.2 研究方法 .......................................................................................... 2

1.3 內容大綱 .......................................................................................... 3

第二章 資料傳輸與基礎技術 ........................................................................4

2.1 資料傳輸概述 .................................................................................. 4

2.2 相關串列技術 .................................................................................. 7

2.2.1 I2C 匯流排介紹 .................................................................... 8

2.2.2 SPI 介面技術 ..................................................................... 11

2.2.3 RS232 介面技術 ................................................................ 13

2.3 USB 原理與規範 ........................................................................... 16

2.3.1 USB 歷史沿革 ................................................................... 16

2.3.2 匯流排架構 ........................................................................ 18

2.3.3 USB 管線與端點概念 ....................................................... 20

2.3.4 硬體介面特性 ..................................................................... 21

2.3.5 訊號編碼 ............................................................................ 24


iv
2.3.6 訊號狀態格式 ..................................................................... 25

2.3.7 欄位類別 ............................................................................ 26

2.3.8 傳輸封包格式 ..................................................................... 29

2.3.9 通訊協定 ............................................................................ 30

2.3.10 USB 裝置要求 .................................................................... 35

2.4 串列介面引擎(SIE) ........................................................................ 38

2.5 Cypress CY7C68003 晶片介紹 ..................................................... 39

2.6 現場可程式邏輯陣列(FPGA)介紹 ................................................ 40

第三章 系統架構設計與實作 ...................................................................... 42

3.1 簡介 ............................................................................................... 42

3.2 Quartus IP 使用說明 ...................................................................... 44

3.3 非同步 FIFO 模組 ....................................................................... 46

3.4 串列介面引擎 SIE 架構 .............................................................. 48

3.4.1 Data control ........................................................................ 49

3.4.2 PISO (Parallel In Serial Out) ............................................... 49

3.4.3 PID Check ( Packet ID Check) ............................................ 51

3.4.4 CRC 5 檢驗........................................................................ 52

3.4.5 CRC16 檢驗 ....................................................................... 52

3.4.6 Bit – Stuffing 位元填充 ..................................................... 53

3.4.7 NRZI Encode ...................................................................... 54

3.4.8 NRZI Decode ...................................................................... 54

3.4.9 Bit – Unstuffing 位元反填充 ............................................. 55

3.4.10 SIPO (Serial In Parallel Out) ............................................... 57

3.5 USB PHY 子板 ............................................................................. 58

第四章 模擬與電路驗證 .............................................................................. 60

v
4.1 USB Plug In 測試 .......................................................................... 60

4.2 Quartus IP....................................................................................... 62

4.2.1 PLL IP 模擬 ....................................................................... 62

4.2.2 ROM IP 模擬 ..................................................................... 64

4.3 非同步 FIFO 模擬 ........................................................................ 65

4.4 SIE 模組模擬 ................................................................................ 66

4.5 系統實現與結果 ............................................................................ 73

第五章 數位積體電路流程 .......................................................................... 76

5.1 介紹 ............................................................................................... 76

5.2 電路合成 ....................................................................................... 77

5.3 自動佈局與繞線 ............................................................................ 78

第六章 結論與未來研究 .............................................................................. 81

6.1 結論 ............................................................................................... 81

6.2 未來研究工作 ............................................................................... 82

參考文獻 ....................................................................................................... 83

vi
表目錄

表 2.1 常用電腦介面比較 .............................................................................. 6


表 2.2 DB9 腳位說明 .................................................................................. 14
表 2.3 USB 發展規格 .................................................................................. 17
表 2.4 USB A 型與 B 型連接器 ................................................................. 21
表 2.5 各種封包的格式................................................................................ 27
表 2.6 執照封包格式 ................................................................................... 29
表 2.7 資料封包格式 ................................................................................... 29
表 2.8 交握封包格式 ................................................................................... 29
表 2.9 SETUP 封包裝置要求格式 .............................................................. 35
表 2.10 USB 標準要求的格式之一 ............................................................. 36
表 2.11 USB 標準要求的格式之二 ............................................................. 37
表 3.1 非同步 FIFO 接腳 ........................................................................... 47
表 6.1 串列介面引擎晶片規格 .................................................................... 81

vii
圖目錄

圖 1.1 資料傳輸動作圖.................................................................................. 2
圖 1.2 開發平台示意圖.................................................................................. 2
圖 2.1 串列、並列傳輸圖 .............................................................................. 4
圖 2.2 資料傳輸方向圖.................................................................................. 5
圖 2.3 同步與非同步電路示意圖 .................................................................. 7
圖 2.4 I²C 位元傳輸圖 .................................................................................... 8
圖 2.5 I²C 的啟始與結束條件 ......................................................................... 9
圖 2.6 I²C 完整傳輸資料 .............................................................................. 10
圖 2.7 I²C 回應 ACK ..................................................................................... 10
圖 2.8 SPI 控制介面圖 .................................................................................. 11
圖 2.9 Master 與 Slave 動作說明圖 ............................................................. 12
圖 2.10 RS232 (DB9) 實體接腳圖 .............................................................. 13
圖 2.11 電腦鮑率類別 .................................................................................. 13
圖 2.12 RS-232 位元傳輸圖 ........................................................................ 15
圖 2.13 USB 匯流排拓樸結構 .................................................................... 18
圖 2.14 傳輸方向定義示意圖 ...................................................................... 18
圖 2.15 完整 USB 系統架構圖 .................................................................. 19
圖 2.16 虛擬管線示意圖 .............................................................................. 20
圖 2.17 連接線內部示意圖 .......................................................................... 21
圖 2.18 裝置連接與拔離偵測示意圖 .......................................................... 22
圖 2.19 傳輸速率的判別 .............................................................................. 23
圖 2.20 信號編碼波形圖 .............................................................................. 24
圖 2.21 SOP 與 EOP 信號(全速)示意圖 ...................................................... 25
圖 2.22 PID 欄位 ......................................................................................... 26
圖 2.23 整體通訊協定架構 .......................................................................... 30
圖 2.24 資料緊密連結 ................................................................................. 31
圖 2.25 控制傳輸交易示意圖 ...................................................................... 32
圖 2.26 等時傳輸交易示意圖 ...................................................................... 32
圖 2.27 巨量傳輸交易示意圖 ...................................................................... 33
圖 2.28 中斷傳輸交易示意圖 ...................................................................... 34
圖 2.29 USB 裝置系統架構圖 .................................................................... 38
圖 2.30 CY7C68003 內部架構圖 ................................................................ 39
圖 2.31 Altera DE2-70 開發平台 ................................................................ 40
viii
圖 2.32 Altera DE2 的功能方塊圖 ............................................................... 41
圖 3.1 系統主架構圖 ................................................................................... 42
圖 3.2 USB 轉 RS-232 使用圖 ..................................................................... 43
圖 3.3 RS-232 接收狀態圖 .......................................................................... 43
圖 3.4 Qutarus 提供 IP 資料 ...................................................................... 44
圖 3.5 PLL IP 應用示意圖 ........................................................................... 45
圖 3.6 ROM IP 應用示意圖 ........................................................................ 45
圖 3.7 非同步 FIFO 內部架構 ................................................................... 46
圖 3.8 SIE 整體架構 ................................................................................... 48
圖 3.9 PISO 動作流程圖 ............................................................................. 49
圖 3.10 執行 PID Check 狀態圖 ................................................................ 50
圖 3.11 PID Check 動作流程圖 ................................................................... 51
圖 3.12 CRC5 硬體架構 .............................................................................. 52
圖 3.13 CRC16 硬體架構 ............................................................................ 53
圖 3.14 位元填充流程圖 .............................................................................. 53
圖 3.15 NRZI 編碼流程圖 .......................................................................... 54
圖 3.16 NRZI 解碼流程圖 .......................................................................... 55
圖 3.17 位元反填充流程圖 .......................................................................... 56
圖 3.18 偵測中止狀態機 .............................................................................. 56
圖 3.19 SIPO 動作流程圖 ........................................................................... 57
圖 3.20 子板製作示意圖 .............................................................................. 58
圖 3.21 (a)子板實體及(b)量測接腳 ............................................................. 59
圖 3.22 進入正常模式狀態機 ...................................................................... 59
圖 4.1 RS-232 接收電路模擬 ...................................................................... 60
圖 4.2 測試 RS-232 接收電路 ...................................................................... 61
圖 4.3 SignalTap 觀察 USB 插入情形 ........................................................ 61
圖 4.4 SignalTap 顯示輸入資料 .................................................................. 61
圖 4.5 鎖相環(PLL)與除頻器連接圖 ........................................................... 62
圖 4.6 PLL 使用模擬圖................................................................................ 62
圖 4.7 SignalTap 取樣重複 ........................................................................... 63
圖 4.8 使用 ROM IP 模擬結果 .................................................................... 64
圖 4.9 FPGA 驗證 ROM 資料 ...................................................................... 64
圖 4.10 非同步 FIFO 架構之 RTL Veiw ....................................................... 65
圖 4.11 非同步 FIFO 模擬圖 ....................................................................... 65
圖 4.12 Data-Control 模組模擬圖 ................................................................ 66
圖 4.13 並轉串模擬圖 ................................................................................. 66
圖 4.14 串轉並模擬圖 ................................................................................. 67
圖 4.15 PISO 與 SIPO 結合模擬圖 .............................................................. 67
ix
圖 4.16 PID Check 模擬結果 ....................................................................... 68
圖 4.17 CRC5 模擬結果 ............................................................................... 68
圖 4.18 CRC16 模擬結果 ............................................................................. 69
圖 4.19 位元填充模擬圖 .............................................................................. 69
圖 4.20 反位元填充模擬圖 .......................................................................... 69
圖 4.21 進入中止測試 ................................................................................. 70
圖 4.22 NRZI 編碼與解碼模擬結果 ............................................................ 70
圖 4.23 SIE 整體架構圖 ............................................................................... 71
圖 4.24 SIE 模組模擬圖 ............................................................................... 72
圖 4.25 晶片狀態控制 ................................................................................. 73
圖 4.26 晶片各模式結果圖 .......................................................................... 74
圖 4.27 資料透過 USB 傳遞 ........................................................................ 75
圖 5.1 數位 IC 設計流程 .............................................................................. 76
圖 5.2 合成電路圖 ....................................................................................... 77
圖 5.3 合成前、後模擬比對圖 .................................................................... 77
圖 5.4 佈局規劃圖 ....................................................................................... 78
圖 5.5 電源佈局規劃 ................................................................................... 78
圖 5.6 腳位間隙填充和佈局 ........................................................................ 79
圖 5.7 電路填充和繞線................................................................................ 79
圖 5.8 焊墊和假金屬 ................................................................................... 80
圖 5.9 APR 前、後模擬比對圖 .................................................................. 80
圖 6.1 架構示意圖 ....................................................................................... 82

x
第一章 緒論

1.1 研究動機
通用串列匯流排 (USB) 自發展出來以來,使得電腦周邊裝置相對比

傳統電腦連結外部裝置還節省空間,逐漸變成目前主流的電腦資料傳輸介

面。目前大部分的裝置都有支援 USB 介面,如滑鼠、鍵盤、行動硬碟等,

讓使用者在使用上方便許多,最初由 Intel 公司以及 Compaq、NEC、

Digital、Northern、IBM、Microsoft 等公司成立 USB-IF (USB Implementers

Forum) 組織[1],主要是能夠統一 USB 規格標準,讓其他公司一同併進

新介面的世代。目前 USB 介面已是標準資料傳遞的介面,與 PC 或者周

邊裝置進行連接時,可不必重新配置系統,即可對裝置進行資料傳輸,當

設備連接 USB 介面電腦就會自動配置位址,並執行相對應的驅動程式進

行通訊,以達到隨插即用與熱插拔的功能。使用者可以很便利的將周邊裝

置與電腦連接,奠定了 USB 在消費電子產品中不可或缺的介面技術,帶

來相對龐大的商機。

由於使用 USB 介面的需求越來越多,例如:資料傳遞的速度提升、資

料封包擴大,為了能夠充分的利用 USB 介面做大量資料傳輸且不費時,

本論文重點在設計出串列介面引擎 (Serial Interface Engine) 硬體架構,使

串列資料透過 SIE 進行封包處理,並整合 USB PYH 晶片以傳遞資料,

提供數位資料透過 SIE 有效處理成 USB 封包形式,進行資料溝通與傳遞。

1
1.2 研究方法
本文資料傳輸的動作流程如圖 1.1 所示,在圖中的 ROM 區塊圖是使

用 Altera 公司[2]的開發工具 Quartus II 裡的 MegaWizard IP 資料庫,產

生所要傳送的資料並先暫存起來,再由 FIFO 區塊對資料做緩衝處理,為

了避免資料過多,造成遺失。而 SIE 資料處理區塊是本論文主要研究部

分,其功能是使資料透過 SIE 處理 USB 封包再傳送或接收,會將於第三

章詳細說明該區塊設計架構以及功能。最後透過 Cypress 公司 USB 收發

晶片將資料由數位轉成類比,可在 USB 線上進行傳輸。

圖 1.1 資料傳輸動作圖

本研究所用的 USB 收發埠是由外部製作連接板,透過 Altera DE2-70

的 GPIO 埠接出,如圖 1.2 所示,整個系統的開發平台,分為傳送端以及

接收端,先透過 Altera 公司的開發工具將 Verilog code[3]編譯完成後,再

使用電腦端的 USB Blaster Cable 燒錄至 FPGA 晶片中,之後連接 USB

PHY 進行資料傳輸,並確認傳遞的資料無誤。

圖 1.2 開發平台示意圖

2
1.3 內容大綱
本論文以 FPGA 整合串列介面引擎與 USB PYH 晶片實現 USB 封

包傳輸處理,內容共六章,分別為:

第一章 緒論

說明本論文的研究動機、背景與採用的方法。

第二章 資料傳輸與基礎技術

介紹相關串列資料傳輸技術,以及 USB 介面和封包形式。

第三章 系統架構設計與實作

詳述 SIE 內部設計架構及如何整合 Cypress USB 收發晶片。

第四章 模擬與驗證

說明軟、硬體模擬結果與實驗結果。

第五章 數位積體電路流程

詳細說明如何以標準單元設計方式來完成其設計、驗證及製作流程。

第六章 結論與未來研究工作

對整個設計研究進行討論,並且提出結論及未來研究工作。

3
第二章 資料傳輸與基礎技術

2.1 資料傳輸概述
在電腦與數位系統設備中,資料的傳輸方式可分為串列式傳輸 (Serial

transmission) 以及並列式傳輸 (Parallel transmission) 如圖 2.1 所示,串列

式一次傳送一個位元 (bit) 的資料,適合長距離的通訊傳輸,而並列式一

次傳送多個位元,通常為 8 位元,當並列與串列傳輸速度相等時,並列一

次傳多筆位元相對比較快,由於並列傳輸線路數使用的多,線路費用相對

提高,線路阻抗匹配以及雜訊問題也會比較多,不適合長距離的資料傳輸。

Serial Data

Transmitter Bit3 Bit2 Bit1 Bit0 Receiver

Parallel Data

Bit7 Bit7 Bit7

Bit6 Bit6 Bit6

Bit5 Bit5 Bit5

Bit4 Bit4 Bit4


Transmitter Receiver
Bit3 Bit3 Bit3

Bit2 Bit2 Bit2

Bit1 Bit1 Bit1

Bit0 Bit0 Bit0

圖 2.1 串列、並列傳輸圖

4
資料傳輸發展因各個設備所需而有所不同,資料傳輸時通常以每秒傳

送多少位元為速率計算的單位「位元/秒(BPS)」
,而資料傳輸的方向性如圖

2.2 所示,分別為:

 單工傳輸 (Simplex transmission)

在傳輸線路中,只允許單方向的資料傳送,另一端只能接收,不能改

變方向。此傳輸方式如電視台將節目訊號送到家用電視,至於在電腦通訊

方面則很少採單工傳輸。

 半雙工傳輸 (Half-duplex transmission)

在傳輸線路中,允許雙向相互傳輸資料,但是不能同時進行,必須分

開進行,類似對講機,一方講話時佔線,則另一方只能聽。

 全雙工傳輸 (Full-duplex transmission)

在傳輸線路中,允許同時雙向相互傳輸資料,任何一方可以隨時傳送

或接收資料,全雙工為目前常見的資料傳輸方式。

圖 2.2 資料傳輸方向圖

5
電腦與外部設備連接需要透過介面裝置將資料進行傳輸,如: RS232、

並列埠、ISA 介面、PS/2、USB 等介面來實現與電腦的通訊,以表 2.1[4]

比較各介面技術的速度,可以了解並列傳輸速度不一定比串列資料快,而

目前資料傳輸的方式大多是串列傳輸。

表 2.1 常用電腦介面比較

介面類型 資料格式 傳輸速率

I2C 串列 400 kbit/s、3.4Mbit/s

SPI 串列 21 Mbits/s、32Mbits/s

RS232 串列 20kbit/s

USB 串列 1.5Mbit/s、12Mbit/s、480Mbit/s

IEEE-1394 串列 400Mbit/s、3.2Gbit/s

乙太網路 串列 10Mbit/s、100Mbit/s、1Gbit/s

並列埠 並列 8Mbits/s

ISA 並列 128Mbit/s

PCI 並列 1056Mbit/s、2112Mbit/s

AGP 並列 高於 2112Mbit/s

6
2.2 相關串列技術
資料以串列方式進行傳送,傳送端與接收端要有一定的資料校準,資

料由發射端至接收端可能會造成資料讀取錯誤,需要時脈或者特殊制定規

範以確保資料的正確性,如圖 2.3 所示,串列通訊的方式有「同步」以及

「非同步」類型,同步方式主要是使用同一個時脈 (Clock) 進行資料的校

準,因此傳送與接收兩端可以確保資料正確;而非同步是傳送與接收兩端

時脈互相獨立,傳送與接收時脈頻率不完全同步(允許一定的誤差)的情況

下進行傳送。

Synchronous

Tx
Clock clk signal

Rx
TX
Circuit
Circuit 0 1 1 0 0 1 0 0

Serial Data

Asynchronous
Tx Rx
Clock Clock

TX 0 1 1 0 0 1 0 0 Rx
Circuit Serial Data Circuit

圖 2.3 同步與非同步電路示意圖

本論文研究先探討串列資料 I2C、SPI、RS232 之技術,再逐漸進入

USB 研究其資料傳輸技術,後續章節分別介紹各串列技術,並於第 2.3 節

詳細介紹本論文主要 USB 介面串列技術。

7
2.2.1 I2C 匯流排介紹
I2C BUS 為飛利浦 (Philips) 在 1980 年代所發展的雙向二線式同步

串列匯流排標準,I2C (Inter-Integrated Circuit) 不需要設計 IC 的介面,因

為 I2C 的元件可以直接整合進 IC 裡,無論加入或者移去都不會影響原來

的電路設計,由於 I2C 的兩線式的 Bus ,除錯以及維修都變得容易許多。

主要是用情況為:

 系統包含微控制器及其他週邊。

 希望將連接的成本降至最低。

 系統不需很快的傳輸速度。

I²C 的位元傳輸如圖 2.4[5] 所示,圖中序列時脈線 (SCL) 的時脈會在

資料線穩定 (data line stable) 和有效資料 (data valid) 的範圍內由低電位

(Low Level) 轉為高電位 (High Level),當序列時脈線為高電位時,即可以

取到資料線的資料,當序列時脈線由高電位轉為低電位時候可以允許資料

線變更資料,也是資料線最不穩定的時間。

圖 2.4 I²C 位元傳輸圖

8
I²C 在傳送資料之前需要有啟始條件 (Start Condition) 如圖 2.5[5],啟

始條件主要是通知所有在匯流排上面的設備準備要開始傳送資料。啟始條

件的特徵就是當序列時脈線維持在高電位時,資料線從高電位變到低電位,

這個狀態是獨一無二的狀態(Unique situation),因為在一般的資料傳輸時,

資料線 (SDA) 可以改變的時機只有序列時脈 (SCL) 為低電位才可以變

更,序列時脈為高電位時,資料線是不被允許變動的。

當資料都已經傳送完後,要在最後送出結束條件(Stop Condition),結

束條件主要通知匯流排上所有的設備目前匯流排已使用完畢,已經沒有任

何的設備在使用匯流排,所以處於屬於閒置(Idle)狀態。

圖 2.5 I²C 的啟始與結束條件

在圖 2.6 [5]表示一個完整的 I²C 傳輸,傳輸資料可以分成讀取及寫入,

先讀取或寫入之前會送出 7 個位元的位址資料,送出的第 1 個位元為最高

位元 MSB(Most Significant Bit) 也就是最大的位元數值,從最大的位元數

值先送,最後是最小的位元值。

接下來要送出讀取 (Read) 或寫入 (Write) 的資訊,當要執行讀取的

動作,就要輸入高電位表示這次要執行的動作是要讀設備設上的資訊,反

之如果輸入為低電位,就是要執行寫入的動作。

9
填完了讀取或寫入的資訊之後,受控端 (Slave) 要送出一個回應 ACK

(Acknowledgement) 的訊號通知主控端 (Master) (如圖 2.7 [5]),表示受控

端已經收到主控端所傳送的資料。

圖 2.6 I²C 完整傳輸資料

圖 2.7 I²C 回應 ACK

10
2.2.2 SPI 介面技術
SPI(Serial Peripheral Interface Bus),類似 I²C,是一種四線同步串列

資料協定如圖 2.8 [6],適用於可攜式裝置平台系統,主要的通信是用使用

四個接腳的配置,進行資料的傳輸,其說明各腳位功能,MOSI (Master

output Slave input) 腳分別是當主控端 (Master) 時,為資料傳送用,而當

受控端 (Slave) 時,為資料接受;MISO (Master input Slave output)腳當

受控端 (Slave) 時,為資料傳送用,而當主控端 (Master) 時,為資料接受,

與 MOSI 方向相反。CLK 為主控端所產生的時脈信號給受控端使用,而

資料傳送 (輸入或輸出) 和時脈達到同步,而最後 SS (Slave Select) 為受

控端要求主控端提取資料的控制線,唯有受控端可使用,而主控端將這隻

腳位視為 GPIO (通用型之輸入/輸出腳),狀態 0 ( state 0) 主控端與受控端

接口開啟,並開始資料傳送,狀態 1 (state 1) 主控端與受控端接口關閉,

進入閒置 (Idle) 狀態。

圖 2.8 SPI 控制介面圖

11
SPI 介面動作程序如圖 2.9 所示,說明 Master 端及 Slave 端將 8bit

資料進行傳輸,在 CLK 為 High (Rising Edge) 時,資料會被存入暫存器

中,在 CLK 為 Low (Falling edge) 時,把資料送出去,而 SPI 沒有指定

的控制,所以沒有應答 (ACK) 的功能,由圖中透過 CLK generator 作為

同步傳輸的時脈,在 Master 端的資料由 MOSI 傳給 Slave 端,同時也

傳送時脈給 Slave 端,資料是從最高位元 (MSB) 開始傳送,與 I2C 相同,

但不同於 I2C 介面是不需要先傳送位址 (Address) 再傳送資料,主要使用

SS 腳用來控制所需選擇 Slave,而 SS 接腳另一功能是當 Slave 有資料

要傳給 Master 時的保護機制。當 Master 需要接收資料時,啟動 SS 開

啟 MISO 接口,關閉 MOSI 接口,這樣就可以使 Slave 端傳送資料給

Master 端進行讀取。

圖 2.9 Master 與 Slave 動作說明圖

12
2.2.3 RS232 介面技術
RS-232 是美國電子工業聯盟 (EIA) 制定的串列資料通訊的介面標

準,而此傳輸方式從有個人電腦以來一直是電腦間標準通訊方式,在電腦

上的應用相當普及,由於其通訊速度,無法隨著個人電腦的發展而提高,

甚至許多筆記型電腦已不提供此設備裝置,RS-232 類型分為 DB25、DB15、

DB9,如章節 2.2 提到串列通訊的方式可以分為「同步式(Synchronous)」

及「非同步式(Asynchronous)」兩種,而 RS232 DB9 就屬於非同步傳輸,

如圖 2.10 所示 DB9 實體接腳圖。

圖 2.10 RS232 (DB9) 實體接腳圖

當發送端與接收端要傳輸資料時,需要以相同的鮑率 (Baud Rate),即

單位為位元/每秒 (bit/Sec), 如圖 2.11 所示目前電腦提供的鮑率類別[7]。

圖 2.11 電腦鮑率類別

13
以下表 2.2 說明 DB9 個接腳的相關說明,TXD、DTR 和 RTS 訊號

是由傳送端產生的,RXD、DSR、CTS、DCD 和 RI 訊號是由接收端產生。

表 2.2 DB9 腳位說明

腳 位 簡 寫 意 義 說 明

Pin1 DCD Carrier Detect 接收端通知傳送端有載波被偵測

Pin2 RxD Receiver 接收資料

Pin3 TxD Transmit 傳送資料

Pin4 DTR Data Terminal Ready 傳送端通知接收端可以進行傳輸

Pin5 GND Ground 地線

Pin6 DSR Data Set Ready 接收端通知傳送端一切就緒

Pin7 RTS Request To Send 傳送端要求接收端將資料送出

Pin8 CTS Clear To Send 接收端通知傳送端可傳資料過來

Pin9 RI Ring Indicator 接收端通知傳送端有電話進來

RS-232 主要是利用兩隻接腳 (傳送 Tx 及接收 Rx),在一定速度下(相

同的鮑率) 傳送或接收一個位元 (bit),這樣簡單的傳輸方式,也容易發生

錯誤,例如,傳送端與接收端不知道何時開始,因為沒有同步訊號,或是

接收端來不及處理所接收的資料,所以就衍生了流量控制 (RTS 及 CTS)

兩組訊號腳,傳送端只能在 CTS 訊號有效時才會將資料傳送出去,而 RTS

意義是接收端已準備好可以接收資料,若在接收端正在處理別的工作,無

法接收,RTS 就會被設定為無效、不可動作。

14
圖 2.12 所示,RS-232 通常傳輸的規則是以 1bit 的 “0” 為低電位

(start bit),以 1bit 的 “1” 為高電位 (stop bit),在資料傳送完後,送出同

位元 (parity bit ) 作為檢測碼,同位元可依照先前送出的資料,送出 “0”

或者 “1” 來確定資料的正確性,通常使用上不送同位元,當有資料要傳時,

一端的 Tx 會先被拉低電位,而另一端的 Rx 接收到低電位開始接收資料,

這個動作叫送 Start bit (起始位元),傳送的資料 (DATA) 是以最低位元

(LSB) 先送,當 Tx 又回復到高電位時,送 Stop bit(結束位元) 表示已完

成一次的傳輸,而 Rx 又回到等待 Tx 下次傳送資料。

Tx Rx

Transmitter Receiver
Rx Tx

LSB MSB

0 0/1 1
MARK MARK
DATA
Start Parity Stop
Bit Bit Bit

圖 2.12 RS-232 位元傳輸圖

依上述說明傳輸位元的前後順序組合起來之後,要完成一次傳輸就需

要起始位元、傳送資料 (通常為 8 bit)、同位位元、停止位元四項,構成

傳輸封包 (Packet),以最少的傳輸封包單位量為 10 位元,假設採用 9600

bps 的鮑率,則依(2.1)式,每秒鐘可傳送 960 (Bytes) 的資料量。


𝐵𝑢𝑎𝑑𝑟𝑎𝑡𝑒
𝑄𝑢𝑎𝑛𝑡𝑖𝑡𝑦 𝑜𝑓 𝑑𝑎𝑡𝑎 = 𝑙𝑒𝑎𝑠𝑡 𝑝𝑎𝑐𝑘𝑒𝑡 (2.1)

15
2.3 USB 原理與規範
通用串列匯流排 USB (Universal Serial Bus) 為目前市面上最普遍的

連接器,像是在電腦上做為裝置連接埠、在智慧型手機上可當作充電連接

線等,已取代許多傳統連接埠介面,而對於周邊裝置的製造商可以減少製

造成本,因為無需再為每一個周邊裝置,分別設計各個所需的連接埠,而

USB 介面統一整合在各種周邊裝置上,就像是萬用接頭,USB 還有其他

的特點就是可隨插即用 (Plug-and-Play) 和熱插拔 (Hot Attach & Detach)

的功能,對於 USB 介面整體功能就是可簡化周邊裝置的連接埠類型 (如:

印表機的並列埠、數據機的串列埠等),並能迅速的使用周邊裝置,此外,

在電腦的使用上最大的好處就是可不必重新開機的情況下安裝 USB 的裝

置驅動,而 USB 介面在設計上可連接高達 127 個周邊裝置在 USB 匯流

排上同時運作,並擁有比 RS-232 串列與並列介面更快的資料傳輸速度。

2.3.1 USB 歷史沿革


USB 速度比並列埠(Parallel Port)與串列埠(Serial Port,如 RS-232)

等傳統電腦用標準匯流排快上許多,不論是電腦相關應用產品或者通訊的

器材設備,甚至影像視訊裝置上,都可以看到 USB 介面連接埠,這表示

USB 介面已經深入在各領域的應用上。

USB 的發展從 1996 年 USB 1.0 規範剛公布,可是難以吸引週邊與裝

置製造商的青睞,因為 USB 1.0 規範只定義了 1.5 Mbps 的傳輸速度,在資

料通信上難以實現使用者所需要的效率,而在當時 IEEE 1394a 的傳輸界

面,傳輸速度高達 400 Mbps。為了提昇競爭力,2000 年的時候推出 USB 2.0

,傳輸高達 480 Mbps,隨後於 2008 年公佈了 USB3.0 SS


HS(High Speed)

(Super Speed)
,傳輸速度高達 5 Gbps,在目前市面上是相當主流的介面,

16
充分的運用各式外接市場上,如:外接式硬碟機、固態硬碟(SSD)…等,

而在近期也推出了 USB 3.1 (Type C)新規格,支援高達 10 Gbps 的傳輸速度,

並更名為 USB 3.1 Super Speed Gen 2,參照表 2.3 為 USB 發展規格,不僅

速度更快,且支援正反面都可插入,使用者將不再需要分辨正反面,更容

易將接口插入,增加使用上的便利性,但 USB Type-C 與現行 USB 連接

埠並不相容,若是在舊的手機或是電腦上使用,得配上轉換器才可使用,

目前市場上尚未出現已搭配 USB 3.1 連接埠的裝置,USB 介面發展的速度

將不斷的提升,處理的資料量也越來越多,提供便利的資料傳遞方式,時

代在進步,加速汰換規格的腳步,啟動新一代 USB 介面規格新世代。

表 2.3 USB 發展規格

Year of Version Data rate Maximum

publication transfer rate

1996 USB1.0 Low Speed 1.5 Mbps

1998 USB1.1 full Speed 12 Mbps

2000 USB2.0 High speed & backward USB 1.0 480 Mbps

2008 USB3.0 Super speed & backward USB 2.0 5Gbps

2014 USB3.1 Super speed Gen2 10Gbps

17
2.3.2 匯流排架構
USB 的匯流排結構如圖 2.13 所示[8]是採用階梯式星狀 (trered star)

的拓樸 (topology) 結構,從主機端 (Host) 的連線往下連接集線器 (Hub),

每一個裝置 (Device) 透過集線器上的連接埠做連接,而集線器可連接至

下個集線器或裝置,以階梯式的一層一層往下擴展開來,最大可擴展到六

階層,每個的星狀連接點數目不一定,一共可連接到 127 個裝置。

圖 2.13 USB 匯流排拓樸結構

依照上述 USB 匯流排架構,系統是一個主機可以連接一個或多個裝

置進行溝通,如圖 2.14 所示,傳輸資料的方向定義 In 為裝置傳送資料給

主機,Out 為主機傳送資料給裝置。

Data Transceiver

In
USB USB
Host Device
Out

圖 2.14 傳輸方向定義示意圖

18
在 USB 系統上的溝通主要是由 PC 主機軟體控制下所啟動,在 PC

主機裡的裝置管理員的「通用串列匯流排控制器」選項中可看到 USB 主

機控制器 (USB Host Controller) 以及 USB 根集線器 (USB Root Hub) 兩

種硬體裝置,欲達到資料傳輸,如圖 2.15 [8]PC 端主要的組成單元有客戶

端軟體、USB 整合系統軟體以及 USB 主機控制器,而裝置端則是 USB 匯

流排介面、USB 邏輯裝置和功能,需要硬體與軟體的組成及配合才能建構

出完整的 USB 系統,由圖 2.15 所示可分為以下三層級[9]:

(1) 功能層 (Function Layer):

提供每個 USB 裝置所需的特定功能,主機端的這功能是由客戶端軟

體與裝置驅動程式所提供。

(2) 裝置層 (Device Layer):

主要是提供 USB 基本的通訊協定,執行 USB 裝置的各種操作與要

求,可透過系統軟體與邏輯裝置之間執行資料的交換。

(3) USB 介面層 (USB Interface):

實現實體訊號與資料封包的交換,也屬主機端的主機控制器與裝置端

的 USB 匯流排介面之間傳輸的實際資料流。

圖 2.15 完整 USB 系統架構圖

19
2.3.3 USB 管線與端點概念
每一個 USB 裝置的組成是由許多的配置、介面與端點所組合而成的,

以 USB 介面主機與裝置之間的通訊可視為一種虛擬管線的概念[9][10],

如圖 2.16 所示包含了”大管線”以及 127 個小管線,而”小管線”就如同 USB

裝置的連接線,而每一個連接到裝置的小管線又可再分為許多”微管線”,

這些微管線比擬為端點 (Endpoint),而每一個小管線最多有 4 個位元的端

點位址,所以可在分為 16 組 (輸入/輸出) 的端點,其定義 In 或 Out 兩

種類型,這端點是用來儲存資料多個位元的緩衝區,由於每個裝置實際上

就是一個專用處理器或者 ASIC 晶片,而端點就是其內含的多組記憶體、

RAM 或 FIFO,不論是 PC 主機傳送資料、提取資料或傳送指令,都會先

放置在個別的緩衝區,亦指不同的端點,在傳送資料前,主機與裝置間就

要先建立好虛擬管線,每個裝置所需具備端點 0 的位址 (預設位址)的管線,

若是裝置從匯流排上拔離,此虛擬管線就會被主機移走。

圖 2.16 虛擬管線示意圖

20
2.3.4 硬體介面特性
如表 2.4 所示[8],USB 的實體連接器可以分為 A 型與 B 型兩種,A

型連接器是連接到電腦主機端 (Upstream),而 B 型連接器則是連接裝置

端(Downstream),以避免連接錯誤。

表 2.4 USB A 型與 B 型連接器

A 型 連 接 器 B 型 連 接 器

一般標準的 USB 2.0 連接器內部是有 4 條纜線所組成,分別為電源線

(VBUS)、接地線 (GND)、兩條差動訊號資料線 (D+ & D-),而 USB 3.0

具備額外的 SSTX+、SSTX-、SSRX+、SSRX-等 4 條資料傳輸線路,支援

雙單工模式可同時雙向傳輸如圖 2.17[8][11][12],規格定義電源線長度必

須大於資料線,以確保電源信號優先被裝置所連接。

USB3.0 Cable
USB2.0 Cable

圖 2.17 連接線內部示意圖

21
在 USB 裝置連線後,系統會自動判別此連接所採用的資料傳輸速率為

低速、全速或高速,傳輸速率是以裝置端的 D+ 與 D- 資料線上所連接的

電阻不同區分,如圖 2.18 所示[13][14],主控器或集線器上的 D+ 與 D- 資

料線上,當沒有裝置連接過來時,下拉電阻 (Rpd) 使得兩條資料線都為接

地,如有裝置連接後,兩條資料線的電壓就會有所變化 (15/(15+1.5)Vcc 的

電壓),而保持著接地電壓,若此情狀維持 2.5 us 以上,主控器或集線器

就會判定有裝置連接,而後進行速率的判別,依照圖 2.19 所示[14][15],

當上拉電阻 (Rpu) 連接到 D- 再連接至 3.3V (Vdc),裝置速率為低速

(Low-Speed),而當上拉電阻 (Rpu) 連接到 D+再連接至 3.3V,裝置速率

為全速 (Full-Speed),當裝置要以高速傳輸時,需先以全速速率與主機做

通訊,將上拉電阻 (Rpu) 連接到 D+再連接至 3.3V 後,再由軟體控制開

關 (D+ 資料線與 Rpu 之間),此軟體通常被整合在裝置內部。

D+/D-

D+/D-

圖 2.18 裝置連接與拔離偵測示意圖

22
Vdc

Rpd Rpu

D+ D+

Host or Hub Low-speed


USB Cable
Port Function
Rpd = 15kΩ
D- D-
Rpu = 1.5kΩ
Rpd

Vdc

Rpd Rpu

D+ D+

Host or Hub Full-speed


USB Cable
Port Function
Rpd = 15kΩ
D- D-
Rpu = 1.5kΩ
Rpd

Vdc

Rpu
Rpd

D+ D+

Host or Hub High-speed


USB Cable
Port Function
Rpd = 15kΩ
D- D-
Rpu = 1.5kΩ
Rpd

圖 2.19 傳輸速率的判別

23
2.3.5 訊號編碼
所有連接的裝置透過主機端的根集線器接收相同訊號,經由主機配置

位址給裝置後,僅有一個裝置會做出回應,為了要正確的接收到主機發出

的 D+、D- 資料訊號及回應的訊號,所以發展出一套通道編碼的機制,以

解決 USB 線上的信號延遲而造成誤差之問題。

USB 介面具有位元填充 (Bit Stuffing) 和 NRZI (Non-Return to Zero

Invert) 不歸零反轉這兩種編碼方式[13][15],如圖 2.20 所示[16],NRZI 編

碼是當資料為”0”時轉換目前的狀態,為”1”時繼續維持目前狀態,如有多

個連續”0”位元資料發送進來,即編碼會在每個”0”資料進來時不停地轉換

狀態,藉由此編碼的方式,使得無須傳送時脈的訊號產生時脈出來,以達

到傳送端與接收端的起始同步訊號。

另一個編碼位元填充其功能是在資料連續有六個”1”位元後,強制插入

一個“0”位元,主要是能避免資料長時間無法轉換,而導致「塞車」的狀況,

使讀取的時序發生嚴重的錯誤。

圖 2.20 信號編碼波形圖

24
2.3.6 訊號狀態格式
USB 定義了資料線 D+ 與 D- 的差動訊號分為 J 狀態與 K 狀態,

此兩種狀態在全速及低速模式下剛好相反,USB 匯流排都以 SOP (Star of

Packet) 信號開始,以 EOP (End of Packet) 信號結束,信號結束後,D+ 與

D- 為浮接 (Floating),所以信號為高阻抗 (Hi-Z),如圖 2.21 所示[9][17],

由於提升電阻在全速與低速裝置連接的位置不同,全速是在 D+ 資料線上,

而低速是在 D- 資料線上,J 狀態的表示方式以全速模式下 D+ 為”1”,而

低速模式下 D- 為”1”,對於 K 狀態的表示方式以全速模式下 D- 為”1”,

而低速模式下 D+ 為”1”,在兩者速率下,狀態剛好相反。

當信號為閒置(Idel)狀態時,全速的資料線 D+ 相對較為正電壓,而低

速的資料線 D- 相對較為正電壓,及透過集線器判別出裝置為低速還是全

速,如果 D+ 及 D- 電壓值都為低電位,在 USB 裡稱為單端 0 (SE0,

Single-Ended Zero),用來脫離以及重置狀態,而都為高電位時,稱為單端 1

(SE1,Single-Ended One),此為無效的匯流排狀態。

圖 2.21 SOP 與 EOP 信號(全速)示意圖

25
2.3.7 欄位類別
USB 是以串列傳輸的方式 (LSB 先送) 進行傳送端與接收端的通訊,

然而一連串 D+與 D-差動的資料線傳送時,需要給其定義,將串列的資料

進行位元分組,而組合的個別位元群組即稱為欄位(field)
,再透過欄位的

組合構成封包(packet)
,而封包就能構成訊框(frame)或交易(transaction)

等通訊類型,這此介紹欄位的格式與功能[18]。

 同步列 (Synchronization Sequence,SYNC) 欄位

SYNC 欄位於閒置狀態時發送,為每個封包的第一個欄位,SYNC 是

由 8 bits 所組成,其值固定為”00000001”(0x80)
,並透過上個章節提到的

NRZI 編碼用來產生同步的訊號,當 USB 匯流排從閒置狀態轉變為同步

列的狀態時,表示有新的資料封包到達,即 SOP 狀態, SYNC 欄位的第一

個位元會發出 SOP 訊號至主機 。

 封包辨識元 (Packet Identifier,PID) 欄位

PID 欄位為 8 位元寬,位於 SYNC 欄位之後,如圖 2.22 所示,前四

個位元(PID[0:3])包含編碼過的值,代表傳輸的封包類型(Token、Data、

Handshake、Special)、封包格式、與錯誤偵測的類型參照表,後四個位元

(PID[4:7])為確認欄位,其功能是確認傳送的 PID 有沒有發生錯誤,而確認

欄位是藉由執行 PID 的 1 的補數 (即反向 )而產生 ,如果 PID[0:3] 與

PID[4:7] 互為 1 的補數,就表示該傳送的 PID 值為正確。

LSB PID0 PID1 PID2 PID3 PID0 PID1 PID2 PID3 MSB

PID PID 1's

圖 2.22 PID 欄位

26
在表 2.5 中,列表出由 PID[0:1] 兩位元欄位所辨識出四種封包的類型,

其可分為執照、資料、交握、特殊封包,此外,可由 PID [2:3] 兩位元定

義封包的格式,如執照封包可再分為 IN、OUT 等封包格式[9][10][11]。

表 2.5 各種封包的格式

封包格式 PID 名稱 PID [3:0]

OUT 0001

執照封包 IN 1001

(Token Packet) SOF 0101

SETUP 1101

DATA0 0011

資料封包 DATA1 1011

(Data Packet) DATA2 0111

MDATA 1111

ACK 0010

交握封包 NAK 1010

(Handshake Packet) STALL 1110

NYET 0110

PRE 1100

特殊封包 ERR 1100

(Special Packet) SPLIT 1000

PING 0100

Reserved 0000

27
 位址(Address,ADDR)欄位

Address 欄位包含 7 個位元,允許 127 個的裝置置於 USB,在 USB 主

機訊號重置之後,會指定裝置預設的位址 0,而後主機負責分配一個新的

位址給匯流排上的裝置,位址會依照列舉出來的過程來分配,一次分配一

個裝置,在傳送每個封包時,Address 欄位會接在 PID 之後。

 端點(Endpoint,ENDP)欄位

ENOP 欄位是由 4bits 所組成,章節 2.3.3 有提到端點就像微管線的

概念,可定義出 16 個端點,透過端點描述元的 IN 與 OUT 方向設定,則

可定址出 32 個端點,ENOP 是接在 Address 欄位之後。

 循環多餘檢核(Cycle Redundancy Checks,CRC)欄位

循環冗餘檢核是一種數位通訊中常用通道編碼技術,於 CRC 欄位用來

偵測 Token 封包與 Data 封包傳輸期間所發生的錯誤檢核的位元,CRC 的

計算是把欲傳輸的資料構成一個整數值,並且除以一個特定的除數,此除

數稱為多項式 (Generation Polynomoal),Token 封包是使用 5 bits CRC (稱

為 CRC5) 做檢測,如 2.2 式為 CRC5 的多項式。

𝐺(𝑥) = 𝑥 5 + 𝑥 2 + 1 (2.2)

而 Data 封包則是使用 16 bits CRC (稱為 CRC16)來做檢測,如 2.3 式

為 CRC16 的多項式,對於這兩個 CRC,在每一個封包開始時檢查元都

會重置。

𝐺(𝑥) = 𝑥16 + 𝑥15 + 𝑥 2 + 1 (2.3)

 資料(Data)欄位

根據不同的傳輸型態,擁有不同的位元組大小,USB2.0 規格資料量

是從 0 ~1024 的位元組,而 USB 1.X 則是 0~1023 的位元組。

28
2.3.8 傳輸封包格式
由上述所介紹的欄位格式以組合成 USB 的封包格式[10][11][19],其

封包可分為下列三種:

 執照封包 (Token Packet):

由於 USB 在進行資料傳輸時,是先由主機端所啟動,而第一個封包

是執照封包,做為每筆資料交易前的起始,如表 2.6 其封包是由 SYNC、

PID、ADDR、ENDP 與 CRC5 五個欄位所組成的。

表 2.6 執照封包格式

8 bits 8 Bits 7 Bits 4 Bits 5 Bits

SYNC PID PID ADDR ENDP CRC 5

 資料封包 (Data Packet):

主要資訊為 USB 的匯流排管理、資料傳輸以及裝置對主機提出的要

求做出回應的動作,如表 2.7 其封包是由 SYNC、PID、ADDR、CRC16 欄

位所組成的。

表 2.7 資料封包格式

8 bits 8 Bits 0 ~ 8192 Bits 16 Bits

SYNC PID PID ADDR CRC 16

 交握封包 (Handshake Packet):

交握封包主要為如已收到主機或裝置要執行描述的命令或要求,則會

透過交握封包做回應,如表 2.8 其封包是由 SYNC、PID 兩個欄位組成的。

表 2.8 交握封包格式

8 bits 8 Bits

SYNC PID PID

29
2.3.9 通訊協定
通訊協定即主機與裝置間資料溝通的協定,透過 USB 線將連接的差

動訊號定義出有意義的封包,把個別類型的封包組合起來就成了一筆資料

的交易,而每次的傳輸內含有許多所要交易的資料[9][11],如圖 2.23 所示,

USB 傳輸的通訊協定整體架構,當主機要與周邊裝置進行通訊時,則會啟

始一個傳輸,用來處理與執行相關的通訊要求,電腦應用程式將會透過

API 函式取得裝置的代碼 (Handle),可透過端點 0 (Endpoint 0) 將裝置中

的各種描述元讀取出來,開啟與周邊裝置間的通訊管道,作業系統會傳送

適當的驅動程式,將主機的控制器開啟,並能開始互相傳輸資料。

圖 2.23 整體通訊協定架構

30
若 一 筆 傳 輸 需 要 多 個 資 料 交 易 , 就 需 要 透 過 資 料 緊 密 連 結 (Data

Toggle) 位元保持傳送端與接收端同步化[9][11],避免交易資料被遺失,如

圖 2.24 所示,資料緊密連結位元是放置在資料封包 (DATA Packet) 的 PID

欄位中,以圖中 DATA0 的 8bits 值為 “11000011”(以 LSB 先傳)以及

DATA1 的 8 bits 值為 “11010010”,在傳輸的過程中,DATA1 與 DATA0

相互交替傳送,直到資料傳送為止。

SYNC
PID DATA
CRC16
... SYNC
PID DATA
CRC16
... SYNC
PID ...
(DATA0) Field (DATA1) Field (DATA0)

11000011 11010010 11000011

圖 2.24 資料緊密連結

為了因應不同的 USB 周邊裝置需求,考量不同周邊裝置的傳送速率、

響應時間及錯誤偵測等,而定義了不同的傳輸類型來傳送資料及讀取資料,

傳輸的類型分為四種:控制傳輸、等時傳輸、大量傳輸及中斷傳輸,低速

僅支援控制傳輸與中斷傳輸[9][10][11],以下做詳細說明:

 控制傳輸 (Control Transfer)

控制傳輸是 USB 傳輸類型中最重要的傳輸,唯有正確的傳送控制傳

輸後,才能傳送其他的傳輸類型,此傳輸是提供主機與裝置之間的配置、

命令或狀態的通訊協定,所以傳輸速率與傳輸時間並無要求,控制傳輸可

針對任何目的的傳送與接收,並傳送自訂的要求,以雙向傳輸來達到此要

求,而所有的 USB 裝置都必須支援控制傳輸的功能。

如圖 2.25 所示,控制傳輸分為三階段包含 SETUP 、 DATA0、ACK

封包,先由主機傳送 SETUP 執照封包給裝置,而 DATA0 封包主要是存

放主機要對裝置的描述要求,如果裝置有收到即回應 ACK 交握封包給主

31
機回覆有收到資料。

圖 2.25 控制傳輸交易示意圖

 等時傳輸 (Isochronous Transfer)

等待傳輸屬於一種資料串流傳輸,能即時的傳輸資料,可單向或雙向

傳輸,此傳輸需要固定的傳輸速度,其特點是資料即時性比資料正確性還

要重要,就算發送錯誤,也不會重新傳送,像是數位影像的傳輸,需要即

時的將畫面傳送出去,但有時會因為網路影響,造成停頓的現象,但隨即

的畫面會繼續更新,如圖 2.26 所示,主機在執照封包傳送 IN 封包,則裝

置端會立即的將資料回傳給主機,就算有錯誤也即時回傳給主機。

圖 2.26 等時傳輸交易示意圖

32
 巨量傳輸 (Bulk Transfer)

巨量傳輸是應用在時間並非重要時,作為一種資料傳輸的方式,此傳

輸類型是傳輸大量的資料,並沒有固定的傳輸速率,但需要準確的資料傳

輸,根據目前匯流排的擁擠狀況,調整傳輸速率,如果匯流排是閒置的,

則巨量傳輸會非常快。

如圖 2.27 所示,巨量傳輸交易包含執照、資料、交握三個階段,對於

低速與全速的裝置可支援 IN 與 OUT 的交易,而對於高速則多出 PING

的交易方式,為確保資料的正確性,每次傳送資料都必須有 ACK 回應,

如果在執照封包傳送 IN 封包,而沒 ACK 回應,則會回到 NAK,

或者該端點被停止,則會回到 STALL,整個狀態就會處於閒置狀態,等

待下一個執照封包重發。

圖 2.27 巨量傳輸交易示意圖

33
 中斷傳輸 (Interrupt Transfer)

中斷傳輸支援全部的傳輸速率,而所有的裝置不一定有支援中斷傳輸,

而人機界面裝置 (HID,Human Interface Device) 一定有支援此傳輸類型,

如:鍵盤、滑鼠等裝置,都只需支援 IN 封包傳輸,中斷傳輸是一種”輪詢”

(Polling) 的過程,當鍵盤輸入字元,由主機週期性的輪詢將資料接收。

如圖 2.28 所示,中斷傳輸包含 IN 執照封包與 OUT 執照封包,類似

巨量傳輸,差別在巨量傳輸並沒有設定傳輸的時間間隔,中斷傳輸的採單

向傳輸將 IN 資料交易與 OUT 資料交易分開,一次只傳送一種資料交易

類型。

圖 2.28 中斷傳輸交易示意圖

34
2.3.10 USB 裝置要求
主機端與裝置端如要達到互相通訊,則需要透過特定的命令格式─「裝

置要求」來做設定,而這些裝置要求的設定需透過控制傳輸的資料交易來

傳輸,以達成雙方的通訊,首先,主機會先傳送 SETUP 封包裝置要求之

命令給裝置,當裝置接收到後,則會回應相對資料,表 2.9 列出了 USB 規

格中裝置要求的定義[9][14][15]。

表 2.9 SETUP 封包裝置要求格式

偏移量 欄位值 大小(Byte) 敘 述

D[7]資料方向 D[6:5]型態 D[4:0]接收端

00 = 標準 00000=裝置

0 bmRequest 1 0 = 主機至裝置
01 = 群組 00001=介面
Type

10=販賣商 00010=端點

1 = 裝置至主機
11 = 保留 00011=其他

1 bRequest 1 指定描述元的要求

2 wValue 2 描述元要求參數,欄位長度是要求而定

4 wIndex 2 傳遞索引或者位移量

6 wLength 2 表示所要傳輸的位元組數量

35
除了上述的表 2.9 的資料格式之外,還需與”標準要求”配合才可以執

行完整的標準要求,如下表 2.10 與表 2.11 列出 8 位元組 (8 Byte) 是放置

於 SETUP 執照封包後的資料封包欄位內,這 8 位元的標準裝置要求在一

般的 USB 晶片中通常使用一個暫存器陣列或是特定的 FIFO (First In

First Out) 陣列來儲存重要的 SETUP 資料[4][9]。

表 2.10 USB 標準要求的格式之一

beRequestType bRequest wValue wIndex wLengh DATA

(1 Byte) (1 Byte) (2 Byte) (2 Byte) (2 Byte)

00h Clear_Feature Feature 0 -

01h (01H) 選擇 介面 0000h -

02h 端點 -

80h Get_Configuration 0000h 0000h 0001h 設定值

(08H)

80h Get_Descriptor 描述元型 0000h 或 描述元 各個描述元

(06H) 態與指標 語言 ID 長度

81h Get_Interface 0000h 介面 0001h 切換介面

(0AH)

80h Get_Status 0000h 0 0002h 裝置介面或

81h (00H) 介面 端點狀態

82h 端點

36
表 2.11 USB 標準要求的格式之二

beRequestType bRequest wValue wIndex wLengh DATA

(1 Byte) (1 Byte) (2 Byte) (2 Byte) (2 Byte)

00h Set_Address 裝置位址 0000h 0000h -

(05H)

00h Set_Configuration 設定值 0000h 0000h -

(09H)

00h Set_Descriptor 描述元型 0000h 或 描述元 描述元長度

(03H) 態與指標 語言 ID 長度

00h Set_Feature Feature 0 0000h -

01h (03H) 選擇 介面 -

02h 端點 -

01h Set_Interface 切換設定 介面 0000h -

(03H)

82h Sync_Frame 0000h 端點 0002h Frame 號碼

(0CH)

37
2.4 串列介面引擎(SIE)
USB 通訊協定與裝置列舉的動作無法只用微處理機做處理,而且微處

機並沒有類比電路產生 D+/D- 的資料訊號,更別說處理 NRZI 編碼與解碼

以及填塞(Stuffing) 與反填充 (Unstuffing) 的機制,所以通常在 USB

系 統 中 元 件 包 括 儲 存 USB 資 料 的 緩 衝 器, 一 般 稱 為 「 端 點 緩衝 器 」

、串列介面引擎 (Serial Interface Engine;SIE)


(Endpoint Buffer) 、USB 收

發器(PHY)
、配置⁄狀態⁄控制暫存器、以及儲存多種 USB 軟體程式記憶體。

如圖 2.29 所示,由控制器將資料存取至端點,而端點緩衝器採用 FIFO

的架構儲存 USB 資料,SIE 是 USB 介面最重要的功能,SIE 可分為 SIE

控制邏輯與端點邏輯,其功能則是傳送和接收來自端點緩衝器的資料,SIE

會將進來的資料處理成標準 USB 封包格式,同時會為負責與 PHY 通訊

的並列匯流排上的 USB 資料進行編碼和解碼,而 PHY 則是一個類比轉

換器,它是置於 SIE 的並列匯流排和 USB 連接器 D+ / D- 資料線訊號之

間的硬體介面[4][9][11]。

圖 2.29 USB 裝置系統架構圖

38
2.5 Cypress CY7C68003 晶片介紹
如 圖 2.30 所 示 , 由 Cypress 公 司 推 出 的 USB 2.0 收 發 器 (USB

Transceiver Macrocell,UTM) 晶片,型號 CY7C68003 為設計 USB 系統前

段實體 (PHY) 部分[20],需配合 SIE 的資料處理程序,將資料透過標準

介面 UTMI (USB Transceiver Macrocell Interface) 負責產生 USB 匯流排

上 的 信 號 , 而 此 晶 片 是 屬 於 UTMI 腳 位 減 少 的 晶 片 , 稱 ULPI(UTMI

Low-Pin Interface)的規範,如所示 CY7C68003 內部的架構圖,此晶片特點

是可以由外部訊號連接至 XI,可不必使用石英震盪器,透過 PLL 會鎖住

USB 所需要的時脈,並提供給系統使用,由於晶片的腳位少,節省在電路

板上的空間,並提供休眠模式讓整體晶片可達到超低耗電之功能。

圖 2.30 CY7C68003 內部架構圖

39
2.6 現場可程式邏輯陣列(FPGA)介紹
在本論文實驗及驗證的部份是使用 Altera DE2-70 Cyclone II FPGA 的

EP2C70F896C6 晶片,如圖 2.31 所示,Cyclone II 是 Altera 公司 Cyclone

系列的第二代產品[21],Cyclone FPGA 是目前 ASIC 應用的低成本替代

方案,由於 ASIC 開發需要耗費龐大工程資源、模擬設計和驗證,需要進

行多次重製,相對的所耗的成本相當的高。 Cyclone FPGA 系列避免了

ASIC 昂貴的開發費用,降低了開發設計的風險。

Cyclone 系列 FPGA 的價格和功能滿足了市場對於創新的需求,不論

在消費類、通訊、電腦週邊設備、工業和汽車等都可以使用 Cyclone FPGA

來開發。

FPGA 板在剛啟動時,內部的 ROM 會啟動自我測試,將顯示板子上

元件所有的功能,讓使用者可以確認是否有誤,此開發板需透過 Altera 公

司自行推出的 Quartus II 軟體搭配使用,此軟體有 RTL Code 語法檢查、

電路編譯(Complier)、電路模擬(Simulation)以及晶片規劃(Programming)等

功能,對於晶片開發前的驗證相當有幫助。

圖 2.31 Altera DE2-70 開發平台

40
圖 2.32 為 Altera DE2 的功能方塊圖,Cyclone II 2C70 FPGA 支援了

35,000 Les (邏輯單元),在記憶體方面有 2 個 32MB SDRAM,和一個 2MB

的 SRAM,Flash Memory 為 8MB,並支援 SPI 及 SD 1-bit 的 SD 卡

讀取模式。

在開發時可以透過內建的 USB Blaster 使用於 FPGA 程式下載或控

制。在擴充槽部份有兩組 40 個接腳擴充槽,可以外接 Terasic LCM 的顯

示面板與 1.3M 畫素 數位相機模組,而本論文是透過 40 個接腳擴充槽

(GPIO) 連接自己製作的子板 (Cy7c68003 晶片轉接板),將資料轉成 USB

D+/D- 訊號傳輸之功能。

50 MHz / 27MHz / Ext In

USB2.0 Host/Device 16 bit Audio CODEC

10/100 Ethernet Phy/Mac VGA 10-bit Video DAC

SD Card TV Decoder

IrDA Transceiver Cyclone II User Green LEDs x 9

Flash Memory FPGA User Red LEDs x 18

SDRAM 2C70 16 x 2 LCD

SRAM PS2 & RS-232 Port

7-Segment Display Toggle Switches x 18

Expansion Header Pushbutton Switch x 4

USB
EEPROM
Blaster

圖 2.32 Altera DE2 的功能方塊圖

41
第三章 系統架構設計與實作

3.1 簡介
本論文系統的整體架構主要分為四大部分,如圖 3.1 所示包含 DATA

儲存、非同步的 FIFO、USB PHY 子板以及主要的 SIE 模組,整體系統

的動作流程為:

(1) 先運用 ROM 存取 USB 的資料,資料依照 FPGA 基頻 50 MHz 送

給非同步 FIFO。

(2) 非同步 FIFO 會依照 SIE 模組的控制線要求提取資料。

(3) SIE 模組將接收到的資料處理成所需的封包資料再傳給 USB PHY

晶片,而此 SIE 模組的時脈是由 PHY 晶片所提供的。

(4) CY7C68003 的晶片會將接收的 SIE 模組的封包轉成類比訊號傳給

至接收端,於接收端 FPGA 板上七段顯示器顯示出所傳送的封包值

(以 8 bits 顯示)。

詳細的說明於下面章節做各模組架構流程說明及功能介紹以及 USB

PHY 子板的製作。

圖 3.1 系統主架構圖

42
在建立系統前,如圖 3.2 所示,論文以電腦與 FPGA 板間建立 USB

轉 RS-232 傳輸介面(同為非同步傳輸)作為資料傳輸的測試,為了方便觀察

USB,當插入電腦時,是否有資料會從電腦的主控器傳送出來,先利用軟

體「超級終端機」在電腦中建立連接埠,測試圖 3.3 論文提出的 RS-232 接

收 電 路是否正確, 設定好欲傳輸的資料速度 (使用鮑率:115200bps),而

FPGA 也要建立好 RS-232 接收的電路且速度一致,確定接收電路正確後,

再連接測試電腦主控器是否會有資料傳出來。

圖 3.2 USB 轉 RS-232 使用圖

圖 3.3 RS-232 接收狀態圖

43
3.2 Quartus IP 使用說明
由 Altera 公司推出的 Quartus 軟體是一個操作方便且易於實現硬體

架構,Altera 巨集功能模組是複雜的高級建構模組,可以在 Quartus II 設

計檔中與邏輯閘和觸發器基本單元一起使用,提供的參數化巨集功能模組

和 LPM 功能均為 Altera 元件結構做了最佳化,使用巨集功能模組提供一

些 Altera 專用元件的功能,例如,記憶體、DSP 模、LVDS 驅動器、PLL

以及 SERDES 和 DDIO 電路。

MegaWizard 外 掛程 式 管 理 器 (MegaWizard Plug-In Manager) 建 立

Altera 巨集功能、LPM 功能和 IP 功能,用於 Quartus II 軟體和 EDA 設

計輸入與合成工具中的設計[22],如圖 3.4 所示,透過 Tool 選單,選擇所

需要的 IP 使用,方便及快速實現整體架構,本論文是運用到 PLL (Phase

Locked Loops) 以及 ROM 的 IP 使用,用途如下說明。

圖 3.4 Qutarus 提供 IP 資料

44
 使用 PLL IP

如 圖 3.5 所 示,使 用 PLL 的 IP 功 能 主要 將原本 FPGA 的基 頻

50MHz 生成 USB PHY 晶片所需的 26 MHz 頻率,以圖中也顯示出各模

組所需要的頻率,特別注意的是 SIE 模組使用 PHY 晶片產生的頻率。

圖 3.5 PLL IP 應用示意圖

 使用 ROM IP

如圖 3.6 所示,使用 ROM IP 主要功能是存放欲傳送的資料,使用

ROM IP 必須要有 MIF(Memory Initialzation File) 紀錄資料內容,再以

Address Count 模組進行資料位址位移,提供位址控制,將 ROM 的資料

一筆一筆的讀出來。

圖 3.6 ROM IP 應用示意圖

45
而論文在 ROM IP 上提出一個 EN_data 模組,其功能是控制資料在什麼

時間點才需送出,當資料傳送出去後,後端的模組處理完後,會再產生一

個致能訊號,將 Addrss Counter 模組做計數,帶動 ROM 將資料送出去,

為了方便檢查資料是否正確,並使用了 FPGA 板上提供的七段顯示器進

行確認。

3.3 非同步 FIFO 模組


FIFO (First In First Out) 先進先出電路是一種實現資料先進先出的存

儲硬體電路,通常做為資料緩衝器,而 FIFO 的存儲能力是由內部的儲存

暫存器的數量決定的,依照 FIFO 工作的時脈,可將 FIFO 分為「同步

FIFO」和「非同步 FIFO」,同步與非同步不同的點在於同步 FIFO 是指讀

取時脈和寫入時脈為相同時脈,在時脈正緣觸發時同時進行讀寫資料,而

相對地,非同步 FIFO 是指讀取與寫入的時脈不同,讀寫時脈是互相獨立

的,本論文是採用非同步 FIFO 分別使用 FPGA 提供的時脈與晶片產生

的時脈,以解決資料進出之問題,如圖 3.7 為本系統所使用的非同步 FIFO

內部架構。

圖 3.7 非同步 FIFO 內部架構

46
本系統採用的非同步 FIFO 架構中,分為三個模組,中間是一個雙埠

RAM (dual port) 的存儲空間,主要存取寫與讀取的資料與位址,左邊區塊

是寫入資料控制的部分,由寫入模組控制 wr_en 訊號和寫入資料位址

(wr_addr),而右邊區塊模組為讀取資料控制的部分,主要是控制讀取資料

rd_en 訊號與讀取資料位址 (rd_addr),而空(empty)與滿(full)訊號是由旗標

訊號 (flag) 比較寫入與讀取位址而產生空或滿的訊號。

如表 3.1 說明各接腳功能:

表 3.1 非同步 FIFO 接腳

接 腳 名 I/O 腳 說 明

rst I 清除 RAM 資料

wr_data I 寫入資料

rd_data O 讀取資料

wr_clk I 寫入使用的時脈

rd_clk I 讀取使用的時脈

wr_en I 致能資料寫入控制

rd_en I 致能資料讀取控制

full O 位址空間資料已滿

empty O 位址空間無資料

其整體動作流程如下說明:

1. 當 rst = 0 清空各模組暫存器中的資料,清空於位址空間的資料,此時

full = 0、empty = 1,rst = 1 開始動作 (位址起始為 0)。

2. 當 wr_en = 1 時,表示寫入資料有效,寫入模組於 wr_clk 為正緣觸

發將 wr_data 存放至中間 RAM 的位址空間,wr_addr 開始計數。

47
3. 當 wr_ addr 開始計數,則 flag 訊號向上計數,直到計數至位址空間

上限時,full 訊號就會為高電位,表示無位址空間可存放資料。

4. 當 rd_en = 1 時,表示讀取資料有效,讀取模組於 rd_clk 為正緣觸發

將 RAM 位址空間的資料讀取出來,rd_addr 開始計數。

5. 當 rd_ addr 開始計數,則 flag 訊號向下計數,直到計數至位址空間

無資料時,empty 訊號就會為高電位,表示目前位址空間並無資料。

3.4 串列介面引擎 SIE 架構


本章節說明本論文主要架構串列介面引擎 SIE 模組,如圖 3.8 所示

SIE 整體架構,此主要架構裡內分為傳送端(圖上半部)與接收端(圖下半部),

在傳送端部份主要是將進來的資料先行做資料判斷封包格式及分類,做好

封包處理後,並傳送出去,而接收端是將接收到的資料判斷是否有錯誤,

如有會出現錯誤訊號告知系統資料錯誤。在 SIE 架構裡可細分出 Data

control、PISO、SIPO、PID ckeck、CRC 校驗、填充與反填充、NRZI 編

碼與解碼模組,接下來的各節介紹各模組功能及動作流程。

圖 3.8 SIE 整體架構

48
3.4.1 Data control
Data control 模 組 主 要 是 控 制 其 他 模 組 的 資 料 處 理 動 作 , 當 Data

control 給有效資料 (Valid enable) 的訊號給該模組,則該模組才可以進行

進行動作,而沒有接收到訊號的模組,會維持在閒置狀態,不做任何動作。

3.4.2 PISO (Parallel In Serial Out)


PISO 模組的功能是將 FIFO 進來的並列資料轉換成串列資料,如圖

3.9 所示,首先判斷資料是否有進來,如有資料進來就先把資料存至暫存

器 (依照資料位元數大小就存幾個暫存器) 裡,接著以 LSB (即 Data[0])

先送出,以一個位元接連送去給下一級模組,直到送完該資料全部位元後,

等待下筆資料進來。

圖 3.9 PISO 動作流程圖

49
為了依照 USB 封包格式送出,本論文在 PISO 模組裡加上可以控制

PID Check 的狀態機,如圖 3.10 所示,當進來的資料為 8’b1000_0000

(SYNC 欄位) 時,進入等待狀態,此狀態是等待 SYNC 資料的處理時間,

等待完後,下一筆即是 PID 欄位,需做 PID Check 確定封包 PID 類型,

所以產生出 En_PID 的控制訊號,開啟 PID Check 模組進行判斷,判斷

完後,En_PID 就會回到低電位,使 Check PID 模組進入閒置狀態。

圖 3.10 執行 PID Check 狀態圖

50
3.4.3 PID Check ( Packet ID Check)
PID Check 模組是用來判別資料是屬於哪種封包資訊,請參照章節

2.3.7 提 到封包 類別 , 如 圖 3.11 所示,當 資料進 來後 , 首先會 先 存在

Data_out[7:0] 暫存器裡,等待 PISO 狀態機的 En_PID 訊號是否致能,

如果 En_PID = 1,進行 PID[7:4] 與 PID[3:0] 是否互為 1 的補數,如果是

的話,就判斷封包及分類,反之,產生 Error 訊號,表示該 PID 欄位是

錯誤且無效的。

圖 3.11 PID Check 動作流程圖

51
3.4.4 CRC 5 檢驗
CRC5 循環多餘檢核在第二章有提到 CRC5 的多項式,主要檢驗憑證

(Token) 封包並加入至封包最後,如圖 3.12 為 CRC5 的硬體架構,此檢驗

的方式為每一位位元資料輸入時,先與 CRC5[4] (起始 CRC5 值為 5b’0000)

做互斥或(XOR)運算,再透過五個 D Flip-Flop 做移位暫存器將資料一步

步地計算出來,表示會延遲 5 個時脈,結果才計算出來。此部分將 CRC5 值

的位元先做組合,將並列的位元值直接做 CRC5 並列運算,在下個時脈

正緣觸發時,就可立即計算 CRC5 值。

圖 3.12 CRC5 硬體架構

3.4.5 CRC16 檢驗
CRC 16 檢驗主要是檢驗資料 (DATA) 封包,因為資料封包相對的比

其他的封包量還要多,需要 CRC 16 做資料確認的檢驗,如圖 3.13 為

CRC16 的硬體架構,透過 16 個 D-flip flop 的移位暫存器做資料的計算,

而 CRC16 是 USB 資料檢驗模組,其原因是傳送端與接收端都有 CRC16

檢驗模組,經由傳送端傳送資料及 CRC16 的檢測值給接收端,在接收端還

會在做一次 CRC16 檢驗,確認每筆進來的位元都正確,避免因為在傳送

的過程中,某些外在因素造成位元值錯誤,而讓最後讀出的資料是錯誤的,
52
算是一種將資料長度編碼,再由接收端做解碼,取得正確的資料。

圖 3.13 CRC16 硬體架構

3.4.6 Bit – Stuffing 位元填充


位元填充模組是提供資料不會一直維持在高電位,而造成資料長時間

無轉變,使得傳送與接收的時脈會錯亂,如圖 3.14 所示,當資料為 1 時,

cnt 計數器就開始計數,計數到連續 6 個 1 時,進入狀態 0,en_ok 就會為

1,此時當下送出去的資料會先傳送一個 “0 “位元再接續後面的位元,如

果後續資料都沒有轉態則跳至狀態 1,繼續填充位元值”0”。

圖 3.14 位元填充流程圖

53
3.4.7 NRZI Encode
如圖 3.15 所示 NRZI 編碼流程,在硬體實現比位元填充相對簡單,主

要是判斷進來的 Data_in 值為 “0” 還是 “1”,在第二章有介紹過 NRZI 編

碼的方式,首先當 Reset 為 “0” 時,初始值輸出時為”1”,只要 Data_in 的

值為”0”,則輸出的目前值轉態 (ex: 1→0→1),反之,如果為 “1” 的話,

則輸出的目前值不變 (ex: 1→1→1)。

圖 3.15 NRZI 編碼流程圖

3.4.8 NRZI Decode


有 NRZI 編碼就會有 NRZI 的解碼,如圖 3.16 所示,NRZI 解碼的

流程,首先當 Reset 為 “0” 時,初始值輸出時為”1”,而 Data_in 的

資料進到此模組主要是判斷 Data_in 的資料是否有轉態 (0→1、1→0),當

資料轉態時,表示輸出的質料為”0”,當資料沒有轉態時,輸出為”1”,不

管是編碼還是解碼,在資料的計算上最好是有對著時脈的 D-flip flop 做運

算,可以比較相對時間的資料做比對,也能改善非預期的現象,該現象是
54
因為組合邏輯在 0→1 轉態時,會出現突波 (Glitch) 的現象。

圖 3.16 NRZI 解碼流程圖

3.4.9 Bit – Unstuffing 位元反填充


位元反填充模組是將以填充位元的 “0” 位元移除掉,由於多了填充出

來的位元值不無法直接從中做移除,因為已佔據一個時脈的時間,論文在

硬 體 架 構 上 增 加 Valid 資 料 控 制 線 提 供 後 級 模 組 做 資 料 的 判 定 有 效

(Valid = 1) 或無效 (Valid = 0) 資料的處理,如圖 3.17 所示,位元反填充

的流程,Valid 初始為高電位,當 Data_in 為 ”1”,counter 計數器就開始

計數,當計數到連續 6 個”1”時,在下個時脈,Valid 就會轉態為 “0”,之

後又回到判斷式 Data_in 是否為 “1”, 如圖 3.18 所示,在此模組還有另

一項功能就是當偵測到 Data_in 不斷連續為”1”,而都沒有轉態時 (大於

3ms,Idel_cnt > 150000 計算如下式 3.1),則會進入中止狀態,則將 Valid

處於低電位,資料不進行處理,要等待全電路再重新 reset 後,才重新開始

做資料處理。

1⁄50𝑀𝐻𝑧 = 20 𝑛𝑠 , 3𝑚𝑠⁄20𝑛𝑠 = 150,000𝑇 (𝑐𝑦𝑐𝑙𝑒𝑠) ( 3.1)


55
圖 3.17 位元反填充流程圖

圖 3.18 偵測中止狀態機

56
3.4.10 SIPO (Serial In Parallel Out)
此為 SIE 最後一個模組,SIPO 模組主要是接收進來的資料做串列轉

並列的功能,如圖 3.19 所示,串列資料進來後會存在左移移位暫存器裡 (因

LSB 先傳),待此暫存器位元值數滿後,再將資料送出去,這裡接收到的

資料要 Valid = 1 時,才把資料存至移位暫存器,否則資料就不進行更新,

維持在上個位元值。

圖 3.19 SIPO 動作流程圖

57
3.5 USB PHY 子板
本論文用到的 USB PHY 晶片 CY7C68003 屬於 QFN 封裝的 IC,

QFN 是一種無引腳的封裝,呈正方形或矩形,封裝底部中央位置有一個大

面積金屬焊盤用來導熱 (Ground),為了方便使用此 IC,因此,使用 24 Pin

QFN 轉接 DIP 板,能夠讓接出腳位出來,也方便進行測量,如圖 3.20 所

示,該子板除了轉接板外,再於 IC 所要連接的 Power 接腳 (Pin3、10、

19、24) 上多並聯一個電容 (33uF),主要是穩定輸入的電壓值,USB 的

D+/D- (Pin 23 、22) 腳位,連接 USB A 型與 B 型插座,而資料線則連接

至 GPIO 腳位,方便與 FPGA 板做結合。

圖 3.20 子板製作示意圖

圖 3.21 (a)為子板製作的實體,當子板銲接後,要做接腳是否有連接的

測試,測試方法為使用三用電表轉至二極體量測檔位,紅棒連接接地腳位,

而黑棒碰觸其他資料、控制腳位,如圖 3.21(b)所示,因為腳位對接地有二

極體的測試電路,所以當量測時,會出現二極體順向偏壓,表示該晶片連

接無浮接。

58
(a) (b)

圖 3.21 (a)子板實體及(b)量測接腳

依照晶片的使用,此晶片是的狀態模式是由 RESET_N、CS_N 兩接腳

控制(參照 2.5 章)[20],如圖 3.22 所示,本論文建立了啟動晶片切換至正常

模式的控制狀態機電路,因為正常操作 (Normal operation) 模式為資料發

送與接收的模式,進入此狀態後,才可以進行資料互傳的功能。

圖 3.22 進入正常模式狀態機

59
第四章 模擬與電路驗證

4.1 USB Plug In 測試


圖 4.1 為 RS-232 接收電路的模擬結果,可以看到 RS-232 的資料是由

起始位元 “0” 開始接收資料,在結束位元” 1 “接收完成,而資料接收的值

由最低位元先存入 8 位元暫存器裡,當暫存器滿後,則接收到該傳送的資

料,byte_ready 則為”1”等待下一筆資料進來,資料的速度是以 baud_clk

(鮑率=115200bps) 來接收資料。

圖 4.1 RS-232 接收電路模擬

圖 4.2 所示,使用超級終端機透過 USB 轉 RS-232 埠傳送值給 FPGA,

圖中超級終端機輸入”8”,則在 FPGA 上顯示的值為 ASCII 碼,數值“8”

的值轉為 ASCII 碼為“38”,可確定接收硬體電路無誤。

60
圖 4.2 測試 RS-232 接收電路

圖 4.3 是以 Quartus II 內部的提供的 SignalTap 程式觀察,當 USB 端

插入電腦是否有資料出來,圖中 LED (即 data),顯示結果並沒有資料被讀

取出來,其原因是本論文使用台灣萬平科技所生產的 PL2303 轉換晶片[7],

其提供的驅動程式裡,已經有自動交握的功能,使得原本預期將有資料會

顯示出來,但在韌體就先被處理了,如圖 4.4 所示,只能顯示出欲傳送的

資料值,並無法顯示出原本剛插入電腦主控端的封包形式。

圖 4.3 SignalTap 觀察 USB 插入情形

圖 4.4 SignalTap 顯示輸入資料

61
4.2 Quartus IP
使用 Quartus IP 可以加快本論文實現系統的時間,透過以調整最佳化

的 IP 功能,讓系統可以依照所需的 IP 實現功能,並測試各 IP 的使用

功能及接腳的使用,並撰寫硬體程式與 IP 結合,透過模擬驗證系統所需

要的功能。

4.2.1 PLL IP 模擬
如圖 4.5 所示,產生 USB PHY 所需要的時脈電路圖,首先將 FPGA

50MHz 的頻率經過 PLL 產生出 130 MHz 的頻率,再經由除頻器將頻率

降到 26 MHz 給 PHY 晶片使用,圖 4.6 為模擬的結果圖,電路裡做一個

致能控制時脈的 (en) 訊號,當 en = 1 時,才將頻率給 PHY 晶片使用。

圖 4.5 鎖相環(PLL)與除頻器連接圖

圖 4.6 PLL 使用模擬圖

62
將 PLL IP 除頻以 SignalTap 去做電路的模擬,如圖 4.7 所示,結果發

現 26 MHz 的頻率出現有規律性重複現象,這是因為邏輯分析儀的取樣頻

率與被取樣點的關係,稱為連貫取樣 (Coherent Sampling)。

圖 4.7 SignalTap 取樣重複

如式 4.1 所示連貫取樣之計算公式,取樣頻率(fin)與被取樣頻率(fs)相

除(Mcycles : 被取樣週期;Nsamples:取樣週期),計算出該取樣值是否為整數

倍,當除數不為整數倍時,就會發生連續取樣的現象,該取樣值重複取樣。

以下為例: Mcycles = 14ns、Nsamples = 5ns,相除結果為 2.8,表示被取樣

頻率在每個周期會被取樣 2.8 次,即表示半個週期會被取樣 1.4 次,而在

第 3 次半個周期時,取樣為 4.2 次(取整數 4),所以在第三次半個週期會被

取樣取樣兩次,就會看到如圖 4.7 重複的”1”值,雖然看到的值週期有重複,

但實際電路產生的週期是沒重複,差別在於取樣的頻率,證實並不是產生

的週期本身的錯誤。

1
𝑓𝑖𝑛 : 𝑆𝑎𝑚𝑝𝑙𝑖𝑛𝑔 𝑓𝑟𝑒𝑞𝑢𝑒𝑛𝑐𝑦 𝑁𝑠𝑎𝑚𝑝𝑙𝑒𝑠 = 𝑓
𝑖𝑛

1
𝑓𝑠 : 𝑛𝑢𝑚𝑏𝑒𝑟 𝑜𝑓 𝑐𝑦𝑐𝑙𝑒 𝑀𝑐𝑦𝑐𝑙𝑒𝑠 = 𝑓
𝑠

𝑓𝑖𝑛 𝑀𝑐𝑦𝑐𝑙𝑒𝑠
Coherent Sampling = =𝑁 (4.1)
𝑓𝑠 𝑠𝑎𝑚𝑝𝑙𝑒𝑠

63
4.2.2 ROM IP 模擬
圖 4.8 為本論文使用 ROM IP 資料讀取模擬結果,圖中 en_data 為控

制 ROM 的位址,當 en_data 為正緣觸發時,致能 address counter 會往上

計數,開始依照該位址所存放的資料,將資料從 ROM 裡讀出來。

圖 4.8 使用 ROM IP 模擬結果

實際驗證功能以 FPGA 板驗證,比對顯示的資料和位址是否與 Mif 檔

所建立的資料相同,由圖 4.9 顯示驗證正確。

圖 4.9 FPGA 驗證 ROM 資料

64
4.3 非同步 FIFO 模擬
圖 4.10 為非同步 FIFO 於 Quartus II 產生的 RLT Veiw 架構圖,圖

中為了測試讀取與寫入的時脈互為獨立,而使用 clk_generator 模組產生

兩個不同的時脈(clk1、clk2),以圖 4.11 模擬的結果,發現資料在寫入以及

讀取的訊號為高電位時,將資料寫入以及讀取,並將寫入與讀取的資料為

相同,而當資料滿或空時,訊號會致能起來,表示非同步 FIFO 功能正常。

圖 4.10 非同步 FIFO 架構之 RTL Veiw

圖 4.11 非同步 FIFO 模擬圖

65
4.4 SIE 模組模擬
圖 4.12 為資料控制的模擬結果,圖中依照狀態機控制哪些模組需要開

始動作,當致能訊號為 1 時,表示該模組才可以執行動作處理資料,否則

就維持目前狀態。

圖 4.12 Data-Control 模組模擬圖

圖 4.13 為並轉串模組的模擬圖,當 load = 1 時,會將並列資料讀進

來做串列處理,透過移位暫存器將資料一位元一位元送出 (LSB 先送),

當判定到資料為 10000000(SYNC 欄位)時,在下筆資料進來後,會致能

en_crc 的訊號,表示將該資料進行 PID Check 模組檢驗資料類型。

圖 4.13 並轉串模擬圖

66
圖 4.14 所示,可以看到暫存器 data_s 將串列資料存儲滿後,就會將

資料由 data_out 送出來,圖中可以看到資料要等下一次存滿後會被更新。

圖 4.14 串轉並模擬圖

圖 4.15 是將並轉串與串轉並模組結合,驗證原本輸入的並列資料與輸

出的值是否一樣,圖中驗證資料是一致的,表示兩個模組沒有錯誤。

圖 4.15 PISO 與 SIPO 結合模擬圖

在 en_crc 致能起來後,該資料會進到 PID Check 模組裡判斷封包類

別,如圖 4.16 所示,當 pid_p 與 pid_n 互為 1 的補數,進行判斷,圖中為 DATA

封包,所以 Data 控制線會致能起來,並分類出類別。

67
圖 4.16 PID Check 模擬結果

圖 4.17 為 CRC5 模組模擬結果,先將值 10101010 做 CRC5 計算,

計算出來的值為 11000 與模擬結果是一致的,確定此模組的功能正確。

圖 4.17 CRC5 模擬結果

68
圖 4.18 為 CRC16 模 組 模 擬 結 果 , 與 CRC5 測 試 一 樣 , 先 將 值

10101010 做 CRC16 計算,計算出來的值為 0001010010100000 與模擬結

果做比對,確定此模組的功能正確。

圖 4.18 CRC16 模擬結果

USB 重要的編碼模組位元填充,如圖 4.19 所示,可以看到當資料連

續出現六個”1”時,會補上一個”0”,再接續後面的資料,功能驗證無誤。

圖 4.19 位元填充模擬圖

有位元填充將原始的資料做處理,在接收端會將被填充的原始資料反

填充回來,恢復成原本的資料,在圖 4.20 上可看到有 data_valid 控制線,

此控制線主要是做為後級模組的資料判斷,如果為”1”時,資料讀取才有效,

透過計數器計數六個”1”後,就會使 data_valid 為低電位,告知後級模組

該資料不處理。

圖 4.20 反位元填充模擬圖

69
在反位元填充模組裡,多一道機制,就是判斷中止,如圖 4.21 所示。

資料線一直維持在同狀態太久,而沒有變化時(至少 3ms 時間),致能 stay

訊號,通知系統進入中止,在重新 rst 後,系統才開始動作。

圖 4.21 進入中止測試

USB 的另一個重要編碼為 NRZI 模組,圖 4.22 所示,En-NRZI 為編

碼模組,如果遇到資料為”0”就反轉,為”1”就維持狀態,而 De-NRZI 為

解碼,將轉換的 NRZI 編碼轉譯為原始的資料,在轉換過程中會延遲 1 個

時脈,主要是因為在最後資料要送出時,會先通過暫存器,所以造成延遲。

圖 4.22 NRZI 編碼與解碼模擬結果

70
每個模組驗證功能都正確後,將各模組連接起來,如圖 4.23 為全模組

連接起來的整個架構圖 (RTL View),在連接後的模組,會因為讀取資料的

時間點會有些衝突,所以需要 control 模組的輔助,才可正確的讀到資料。

圖 4.23 SIE 整體架構圖

71
圖 4.24 為 SIE 模組模擬圖,其顯示出主要的一些資料線與控制線,在

傳送端丟值 (Patten) 進到模組測試,確認最後 NRZI 的編碼是否編碼正確,

以及 CRC 模組是否有做驗證的處理,由圖中可看到輸入的資料及解完編

碼後的資料是相同的,驗證正確後,本論文將 SIE 模組做數位晶片的流

程,將此模組成一顆 IP 使用。

圖 4.24 SIE 模組模擬圖

72
4.5 系統實現與結果
由於使用的 CY7C68003 USB PHY 晶片有提供多種狀態模式,而本論

文只需要用到一般模式 (Normal mode) 進行資料傳輸功能,依照晶片提供

的規格書,建立可進入正常模式的控制電路,先將晶片進入正常模式再處

理資料的傳遞。

如圖 4.25 所示,晶片的模式是由 RESET_N 與 CS_N 兩隻接腳所控

制,首先會先從閒置模式 (Idel mode) 開始,最後才進入正常模式。

圖 4.25 晶片狀態控制

圖 4.26 所示,在各模式的模擬結果,在 Idel 模式下,資料都為 0xFF

表示資料都處於等待資料的變化,維持在高電位,而在 Normal 模式是在

等待要傳送的資料,而 Configuration 則是要確定使用的時脈方式,當進入

此模式會判定有幾次的 Pulse 而確定時脈的使用,在此本論文是用外部進

入 26MHz 時脈,所以在該部分是不用產生 Pulse,最後 Tristate 表示各

接腳都浮接,各接腳檢測結果會出現”0” 、“1” 不定的變化。

73
(a) Idel mode

(b) Normal operation mode

(c) Configuration mode

(d) Tristate interface output mode

圖 4.26 晶片各模式結果圖

74
圖 4.27 所示系統實際在 Altera DE2-70 FPGA 板上驗證的結果,由圖

中可以看到有傳送子板與接收子板相互連接,透過 USB 連接線傳遞資料,

為了能夠方便檢測資料是否有正確的傳送,在傳送端與接收端各加入除頻

器,讓速度減慢,否則七段顯示器與 LED 燈都只會呈現全亮的狀態,圖中

“Cb” 就是欲傳送的資料,由 ROM 模組提取資料,把資料傳至接收端顯

示出來,在傳送端的左邊七段顯示器上也有個“Cb”的值,主要是可以比對

接收端的資料是否正確,綠色 LED 顯示 ROM 位址目前的資料,而最右

邊的七段顯示出目前位址值,而紅色 LED 為接收到資料值。

圖 4.27 資料透過 USB 傳遞

75
第五章 數位積體電路流程

5.1 介紹
在經過 FPGA 的驗證後,使用可合成的語法並且套用製程專用的 I/O

Pad,將此數位電路製作成全制定式的特定應用積體電路 (ASIC),具有體

積小、重量輕、功耗低、性能高等優點,圖 5.1 為數位 IC 流程大致步驟。

1. 使用硬體描述語言 Verilog 撰寫 RTL 程式碼。

2. 使用 Design Vision 合成優化轉換成 Gate Level Netlist。

3. 使用 Design Vision 和 Tetra MAX 進行 DFT 並計算 Fault Coverage。

4. 使用 SOC Encounter 將 Gate Level Netlist 執行 APR 得到 GDS 檔,類

比 GDS 電路利用 Abstract Generator 產出 LEF 檔,與 Netlist 製作混波電路。

5. 將 GDS 檔利用 Calibre 執行驗證 DRC 與 LVS 之規則項目和電路比對。

6. 利用 NanoSim 執行 Post-Layout Simulation。

7. 晶片下線(Tape-Out) 圖

圖 5.1 數位 IC 設計流程

76
5.2 電路合成
合成需使用 HDL Compiler 支援的語法,例如 delay、initial、forever

不支援,系統庫路徑則記在.synopsys_dc.setup 檔,設計完成之演算法經過

整個行為描述模擬完成後,便開始進行電路合成,初始合成為暫存器傳輸

層,接著轉換成基本邏輯閘電路,而基本邏輯閘電路是利用 ARM 公司利

用 CMOS 元件所設計出來的[23]。最後,整個邏輯閘電路再考量面積、功

耗、效能等因素來進行優化,圖 5.2 為電路合成圖。

圖 5.2 合成電路圖

如圖 5.3 所示,電路合成完後,要進行 Gate Level 電路模擬,並比對

合成完後的電路是否與 RTL 模擬一致(Pre-Simulation)


,由於 Gata Level

圖 5.3 合成前、後模擬比對圖

77
電路都已有元件的延遲時間,而 RTL 是屬於理想化的模擬結果,所以需

加入電路延遲參數 (.SDF 檔),如果相同表示合成前、後電路功能正確。

5.3 自動佈局與繞線
將合成後的 Gate Level Netlist 加入 ioc 檔和 LEF 檔及 LIB 檔,可以使

用 Encounter 進行數位電路的 APR[24]。

1.圖 5.4 為佈局規劃,主要設定 core area 面積及 core area 與 I/O Pad 的間距。

圖 5.4 佈局規劃圖

2.圖 5.5 為電源佈局規劃,主要設定 ring 與 stripe 之線寬與數量,在 Global


power 設定 VDD 及 VSS,將 power pad 連至 ring 再經 stripe 與 core 相連。

圖 5.5 電源佈局規劃

78
3.圖 5.6 為腳位間隙填充和佈局,加入由寬至窄的 filler pad 以連結所有 I/O

pad、power pad 與 corner pad,並放入 cell 到 core,可以設定密度,密度過

高可能會造成 cell 重疊,之後可以進行 CTS 觀察延遲情況,藍色表示延遲

較短。

圖 5.6 腳位間隙填充和佈局

4.圖 5.7 為電路填充和繞線,將所有輸入與輸出與電路內部元件相連,並

以 corefiller 填滿內部空餘部分。

圖 5.7 電路填充和繞線

79
5.圖 5.8 為焊墊和假金屬,加入 Dummy Metal 可使電晶體上的 poly 寬度一

致,藉此提升良率,加入 Bonding Pad 在晶片邊緣做為打線用。

圖 5.8 焊墊和假金屬

當合成完的電路做自動佈局與繞線後,要進行實體電路模擬,並比對

合成完後的電路是否一致,此部分是以 APR Tool 所產生的 Verilog 檔,

並無使用真實的實體製成檔,圖 5.9 只是先做初步比對模擬結果,可以看

到模擬結果相同,表示自動佈局與繞線前、後電路功能都正確。

圖 5.9 APR 前、後模擬比對圖

80
第六章 結論與未來研究

6.1 結論
本研究利用硬體描述語言實現串列介面引擎(SIE)的電路,並且結合

ROM IP 的使用,將欲傳送的資料先行建立.mif 檔,接著驗證出 SIE 電路

可成功處理資料成 USB 封包,並透過非同步 FIFO 電路解決與 CY7C68003

USB PHY 晶片不同時脈之問題,整合出可傳輸 USB 資料的系統,並使用

Altera DE2-70 板先驗證各模組功能,再將整個模組組合來做總功能驗證,

最後與實作的子板連接,確認傳送端與接收端資料傳遞的功能正確。

本研究的 SIE 功能正確後,使用製程為 TSMC 0.18µm 的數位晶片流

程,最後合成完後晶片面積 0.7 x 0.67 mm2 含 Pad,功耗為 2.6742mW。

表 6.1 串列介面引擎晶片規格

Item Specification

Technology TSMC 0.18μm

Supply voltage +1.8 V

Chip size 0.7 x 0.67 (mm2)

Gate count 14,547

Operation frequency 50 MHz

Power consumption 2.6742 mW

Total pins 40

81
6.2 未來研究工作
本研究的系統能夠初步的將 ROM 資料透過 USB 傳輸出去,並以七段

顯示器驗證資料正確,使用資料的傳遞不只是傳輸值,成功地達到資料的

傳遞,往後可依照需求,透過語音 IC 或者影像晶片再加入整合,將資料

組合成聲音或者圖像顯示出來,如圖 6.1 之示意圖,由於本論文所用的 USB

PHY 礙於硬體的架構,實驗測試使用 USB2.0 規格,這是因為目前高速

USB3.0 晶片接腳多為 BGA 接腳,難以實驗研究系統。如市面上有提供高

速 USB3.0 PHY 接口的硬體電路子板,那就可修改 SIE 主體架構,使符合

USB3.0 的 通 訊 規 格 , 並 且 使 用 的 FPGA 板 也 需 要 支 援 高 速 埠 (HSTC

Connectors),利用 LVDS 訊號進行資料傳輸,進而達到更快速的傳輸。

圖 6.1 架構示意圖

82
參考文獻

[1] USB-IF Web and Technology introduction, “Developers list,” available at

http://www.usb.org/,2014.

[2] FPGA CPLD and ASIC from Altera, http://www.altera.com.

[3] 鄭信源, Verilog 硬體描述語言數位電路設計實務,台北:儒林出版公

司,2013。

[4] 薛園園,USB 應用開發大全,台北:文魁資訊出版,2008。

[5] THE I²C-BUS SPECIFICATION VERSION 2.1, Philips Semiconductors,

2000.

[6] 新茂國際科技股份有限公司, http://www.syncmos.com.tw, 2008.

[7] 萬平科技 PL2303 HXD Datasheet, http://www.oneping.com.tw/

[8] Intel,“Universal Serial Bus 3.0 and 2.0 Specifications,” available at

http://www.intel.com/content/www/us/en/io/universal-serialbus/universal-

serial-bus-specifications.html, 2014.

[9] 許永和, USB 規格與理論剖析,台北:儒林出版公司,2009。

[10] 趙建領、薛圓圓,王者歸來 ─ USB3.0 應用開發寶典,台北:佳魁資訊

出版,2011。

[11] 徐瑞明、陳黎光,USB 2.0 Wireless USB & USB OTG 技術徹底研究,

台北:旗標出版公司,2005。

[12] Sanjiv Kumar, ” SuperSpeed USB 3.0 Specification Revolutionizes An

Established Standard,” NOV, 2008.

[13] 洪義豪,超高速通用串列匯流排矽智財之設計,碩士論文,義守大學,

高雄,2012。

83
[14] 張奕通,USB2.0 裝置控制器之矽智產元件開發,碩士論文,國立高雄

第一科技大學,高雄,2008。

[15] 黃南溢,通用串列匯流排控制器硬體設計之實現與應用,碩士論文,

國立成功大學,新竹,2004。

[16] De Maria, E.A.A. , “A Low Cost FPGA based USB Device Core”, IEEE

Programmable LogicSouthern Conference on, No.4,2008, pp149-154.

[17] Shashank Mehta,Design synthesizable USB 3.0 using Verilog HDL and

simulate design using Cadence, Ph.D. Thesis, California State University,

Northridge,2012.

[18] Gary Hsu,USB2.0 信號分析技巧,中和:孕龍科技,2011。

[19] K.V.Suresh babu and Prof.A.S.Srinivasarao and D.Srinivasa Rao, “VLSI

Implementation Of Physical Layer Coding Used In Super Speed USB

Using Verilog”, Global Journal of Advanced Engineering Technologies,

Vol1. 4, 2012, pp.218-222.

[20] Cypress Perform,MoBL-USBTM TX2UL USB2.0 ULPI Transceiver,2015.

[21] DE2 User Manual v1.31, Terasic Tech., http://www.terasic.com.tw.

[22] 王敏志,深入理解 Altera FPGA 應用設計,北京:北京航太航天大學

出版社, 2014。

[23] 王旭昇, Logic Synthesis with Design compiler ,訓練教材,國家晶片

系統設計中心,2013。

[24] 張年翔, Cell-Based IC Physical Design and Verification with SOC

Encounter,訓練教材,國家晶片系統設計中心,2013。

84

You might also like