Professional Documents
Culture Documents
FB 240328093500
FB 240328093500
碩士學位論文
以 FPGA 設計與實作串列介面引擎與
USB PHY 晶片整合
Design and Implementation of Serial Interface
Engine integrated with USB PHY Chip by FPGA
研究生:林志豪
指導教授:于治平 博士
方志鵬 博士
中華民國一百零四年七月
摘 要
論文名稱:以 FPGA 設計與實作串列介面引擎與 USB PHY 晶片整合
校所別:國立臺北科技大學電機工程系碩士班 頁數:84 頁
畢業時間:一百零三學年度第二學期 學位:碩士
研究生:林志豪 指導教授:于治平 博士
方志鵬 博士
近年來消費電子產品資料的傳遞速度相當的快速且方便,而現今資料
現與電腦的連接,如滑鼠、鍵盤、行動硬碟、印表機等。各個周邊與 PC 間
輸速度以及改善資料量的大小。
分為傳送端與接收端,並整合與驗證系統功能。
i
.
ABSTRACT
Title : Design and Implementation of Serial Interface Engine integrated with USB
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
the amount of data and transmission speed are different between PC and it’s
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
ii
誌 謝
二年研究生生涯稍縱即逝,這段時間非常感謝指導教授于治平老師和
方志鵬老師在專業領域上的教導與鼓勵,讓我受益良多,在此本人致上最
高的謝意。還要感謝口委宋國明老師、謝祥圓博士提供專業上的意見,使
我能夠有所突破,在論文評審時不吝惜指教,使本篇論文更完善。
感謝文敦、祥均學長們,在研究所期間給予學弟我的照顧與教導,教
導我專業上的不足,也讓我感受到研究室的和諧;感謝同窗兩年的同學昱
齊、子軒、永吉、秉錞、昌政、映涵,在研究生涯中一同患難與共;還有
可愛的學弟們礧玟、宇鵬、銘瑋、宏原,處理實驗室的大小事情,好讓我
們可以專心研究也讓我的研究生涯多采多姿。
此外最感謝的是我親愛的父母親以及哥哥、姐姐的陪伴與鼓勵,你們
的支持給予我鼓勵及精神上的安慰,讓我度過每個難關,使我能專心於學
業之中,順利完成碩士學位。感謝所有幫助與關心我的家人與朋友們,感
謝你們的祝福。
林志豪
104 年 8 月於台北科大
iii
目錄
摘 要 ............................................................................................................ i
ABSTRACT ................................................................................................... ii
誌 謝 .......................................................................................................... iii
目錄 .............................................................................................................. iv
第一章 緒論 ...................................................................................................1
3.1 簡介 ............................................................................................... 42
v
4.1 USB Plug In 測試 .......................................................................... 60
5.1 介紹 ............................................................................................... 76
6.1 結論 ............................................................................................... 81
參考文獻 ....................................................................................................... 83
vi
表目錄
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) 自發展出來以來,使得電腦周邊裝置相對比
傳統電腦連結外部裝置還節省空間,逐漸變成目前主流的電腦資料傳輸介
邊裝置進行連接時,可不必重新配置系統,即可對裝置進行資料傳輸,當
行通訊,以達到隨插即用與熱插拔的功能。使用者可以很便利的將周邊裝
來相對龐大的商機。
1
1.2 研究方法
本文資料傳輸的動作流程如圖 1.1 所示,在圖中的 ROM 區塊圖是使
圖 1.1 資料傳輸動作圖
PHY 進行資料傳輸,並確認傳遞的資料無誤。
圖 1.2 開發平台示意圖
2
1.3 內容大綱
本論文以 FPGA 整合串列介面引擎與 USB PYH 晶片實現 USB 封
包傳輸處理,內容共六章,分別為:
第一章 緒論
說明本論文的研究動機、背景與採用的方法。
第二章 資料傳輸與基礎技術
第三章 系統架構設計與實作
第四章 模擬與驗證
說明軟、硬體模擬結果與實驗結果。
第五章 數位積體電路流程
詳細說明如何以標準單元設計方式來完成其設計、驗證及製作流程。
第六章 結論與未來研究工作
對整個設計研究進行討論,並且提出結論及未來研究工作。
3
第二章 資料傳輸與基礎技術
2.1 資料傳輸概述
在電腦與數位系統設備中,資料的傳輸方式可分為串列式傳輸 (Serial
次傳送多個位元,通常為 8 位元,當並列與串列傳輸速度相等時,並列一
次傳多筆位元相對比較快,由於並列傳輸線路數使用的多,線路費用相對
提高,線路阻抗匹配以及雜訊問題也會比較多,不適合長距離的資料傳輸。
Serial Data
Parallel Data
圖 2.1 串列、並列傳輸圖
4
資料傳輸發展因各個設備所需而有所不同,資料傳輸時通常以每秒傳
送多少位元為速率計算的單位「位元/秒(BPS)」
,而資料傳輸的方向性如圖
2.2 所示,分別為:
在傳輸線路中,只允許單方向的資料傳送,另一端只能接收,不能改
變方向。此傳輸方式如電視台將節目訊號送到家用電視,至於在電腦通訊
方面則很少採單工傳輸。
在傳輸線路中,允許雙向相互傳輸資料,但是不能同時進行,必須分
開進行,類似對講機,一方講話時佔線,則另一方只能聽。
在傳輸線路中,允許同時雙向相互傳輸資料,任何一方可以隨時傳送
或接收資料,全雙工為目前常見的資料傳輸方式。
圖 2.2 資料傳輸方向圖
5
電腦與外部設備連接需要透過介面裝置將資料進行傳輸,如: RS232、
比較各介面技術的速度,可以了解並列傳輸速度不一定比串列資料快,而
目前資料傳輸的方式大多是串列傳輸。
表 2.1 常用電腦介面比較
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 相關串列技術
資料以串列方式進行傳送,傳送端與接收端要有一定的資料校準,資
料由發射端至接收端可能會造成資料讀取錯誤,需要時脈或者特殊制定規
準,因此傳送與接收兩端可以確保資料正確;而非同步是傳送與接收兩端
時脈互相獨立,傳送與接收時脈頻率不完全同步(允許一定的誤差)的情況
下進行傳送。
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 同步與非同步電路示意圖
7
2.2.1 I2C 匯流排介紹
I2C BUS 為飛利浦 (Philips) 在 1980 年代所發展的雙向二線式同步
主要是用情況為:
系統包含微控制器及其他週邊。
希望將連接的成本降至最低。
系統不需很快的傳輸速度。
取到資料線的資料,當序列時脈線由高電位轉為低電位時候可以允許資料
線變更資料,也是資料線最不穩定的時間。
8
I²C 在傳送資料之前需要有啟始條件 (Start Condition) 如圖 2.5[5],啟
始條件主要是通知所有在匯流排上面的設備準備要開始傳送資料。啟始條
件的特徵就是當序列時脈線維持在高電位時,資料線從高電位變到低電位,
這個狀態是獨一無二的狀態(Unique situation),因為在一般的資料傳輸時,
更,序列時脈為高電位時,資料線是不被允許變動的。
當資料都已經傳送完後,要在最後送出結束條件(Stop Condition),結
束條件主要通知匯流排上所有的設備目前匯流排已使用完畢,已經沒有任
何的設備在使用匯流排,所以處於屬於閒置(Idle)狀態。
值先送,最後是最小的位元值。
動作,就要輸入高電位表示這次要執行的動作是要讀設備設上的資訊,反
之如果輸入為低電位,就是要執行寫入的動作。
9
填完了讀取或寫入的資訊之後,受控端 (Slave) 要送出一個回應 ACK
端已經收到主控端所傳送的資料。
10
2.2.2 SPI 介面技術
SPI(Serial Peripheral Interface Bus),類似 I²C,是一種四線同步串列
四個接腳的配置,進行資料的傳輸,其說明各腳位功能,MOSI (Master
控端要求主控端提取資料的控制線,唯有受控端可使用,而主控端將這隻
11
SPI 介面動作程序如圖 2.9 所示,說明 Master 端及 Slave 端將 8bit
Master 端進行讀取。
12
2.2.3 RS232 介面技術
RS-232 是美國電子工業聯盟 (EIA) 制定的串列資料通訊的介面標
準,而此傳輸方式從有個人電腦以來一直是電腦間標準通訊方式,在電腦
上的應用相當普及,由於其通訊速度,無法隨著個人電腦的發展而提高,
圖 2.11 電腦鮑率類別
13
以下表 2.2 說明 DB9 個接腳的相關說明,TXD、DTR 和 RTS 訊號
是由傳送端產生的,RXD、DSR、CTS、DCD 和 RI 訊號是由接收端產生。
腳 位 簡 寫 意 義 說 明
錯誤,例如,傳送端與接收端不知道何時開始,因為沒有同步訊號,或是
意義是接收端已準備好可以接收資料,若在接收端正在處理別的工作,無
法接收,RTS 就會被設定為無效、不可動作。
14
圖 2.12 所示,RS-232 通常傳輸的規則是以 1bit 的 “0” 為低電位
或者 “1” 來確定資料的正確性,通常使用上不送同位元,當有資料要傳時,
Tx Rx
Transmitter Receiver
Rx Tx
LSB MSB
0 0/1 1
MARK MARK
DATA
Start Parity Stop
Bit Bit Bit
依上述說明傳輸位元的前後順序組合起來之後,要完成一次傳輸就需
15
2.3 USB 原理與規範
通用串列匯流排 USB (Universal Serial Bus) 為目前市面上最普遍的
連接器,像是在電腦上做為裝置連接埠、在智慧型手機上可當作充電連接
線等,已取代許多傳統連接埠介面,而對於周邊裝置的製造商可以減少製
造成本,因為無需再為每一個周邊裝置,分別設計各個所需的連接埠,而
印表機的並列埠、數據機的串列埠等),並能迅速的使用周邊裝置,此外,
在電腦的使用上最大的好處就是可不必重新開機的情況下安裝 USB 的裝
等傳統電腦用標準匯流排快上許多,不論是電腦相關應用產品或者通訊的
USB 介面已經深入在各領域的應用上。
(Super Speed)
,傳輸速度高達 5 Gbps,在目前市面上是相當主流的介面,
16
充分的運用各式外接市場上,如:外接式硬碟機、固態硬碟(SSD)…等,
並更名為 USB 3.1 Super Speed Gen 2,參照表 2.3 為 USB 發展規格,不僅
速度更快,且支援正反面都可插入,使用者將不再需要分辨正反面,更容
埠並不相容,若是在舊的手機或是電腦上使用,得配上轉換器才可使用,
將不斷的提升,處理的資料量也越來越多,提供便利的資料傳遞方式,時
2000 USB2.0 High speed & backward USB 1.0 480 Mbps
17
2.3.2 匯流排架構
USB 的匯流排結構如圖 2.13 所示[8]是採用階梯式星狀 (trered star)
下個集線器或裝置,以階梯式的一層一層往下擴展開來,最大可擴展到六
主機,Out 為主機傳送資料給裝置。
Data Transceiver
In
USB USB
Host Device
Out
圖 2.14 傳輸方向定義示意圖
18
在 USB 系統上的溝通主要是由 PC 主機軟體控制下所啟動,在 PC
主機裡的裝置管理員的「通用串列匯流排控制器」選項中可看到 USB 主
流排介面、USB 邏輯裝置和功能,需要硬體與軟體的組成及配合才能建構
體與裝置驅動程式所提供。
求,可透過系統軟體與邏輯裝置之間執行資料的交換。
實現實體訊號與資料封包的交換,也屬主機端的主機控制器與裝置端
的 USB 匯流排介面之間傳輸的實際資料流。
19
2.3.3 USB 管線與端點概念
每一個 USB 裝置的組成是由許多的配置、介面與端點所組合而成的,
以 USB 介面主機與裝置之間的通訊可視為一種虛擬管線的概念[9][10],
裝置的連接線,而每一個連接到裝置的小管線又可再分為許多”微管線”,
種類型,這端點是用來儲存資料多個位元的緩衝區,由於每個裝置實際上
放置在個別的緩衝區,亦指不同的端點,在傳送資料前,主機與裝置間就
若是裝置從匯流排上拔離,此虛擬管線就會被主機移走。
圖 2.16 虛擬管線示意圖
20
2.3.4 硬體介面特性
如表 2.4 所示[8],USB 的實體連接器可以分為 A 型與 B 型兩種,A
端(Downstream),以避免連接錯誤。
A 型 連 接 器 B 型 連 接 器
雙單工模式可同時雙向傳輸如圖 2.17[8][11][12],規格定義電源線長度必
須大於資料線,以確保電源信號優先被裝置所連接。
USB3.0 Cable
USB2.0 Cable
圖 2.17 連接線內部示意圖
21
在 USB 裝置連線後,系統會自動判別此連接所採用的資料傳輸速率為
低速、全速或高速,傳輸速率是以裝置端的 D+ 與 D- 資料線上所連接的
地,如有裝置連接後,兩條資料線的電壓就會有所變化 (15/(15+1.5)Vcc 的
為全速 (Full-Speed),當裝置要以高速傳輸時,需先以全速速率與主機做
D+/D-
D+/D-
圖 2.18 裝置連接與拔離偵測示意圖
22
Vdc
Rpd Rpu
D+ D+
Vdc
Rpd Rpu
D+ D+
Vdc
Rpu
Rpd
D+ D+
圖 2.19 傳輸速率的判別
23
2.3.5 訊號編碼
所有連接的裝置透過主機端的根集線器接收相同訊號,經由主機配置
位址給裝置後,僅有一個裝置會做出回應,為了要正確的接收到主機發出
的 D+、D- 資料訊號及回應的訊號,所以發展出一套通道編碼的機制,以
解決 USB 線上的信號延遲而造成誤差之問題。
碼是當資料為”0”時轉換目前的狀態,為”1”時繼續維持目前狀態,如有多
個連續”0”位元資料發送進來,即編碼會在每個”0”資料進來時不停地轉換
狀態,藉由此編碼的方式,使得無須傳送時脈的訊號產生時脈出來,以達
到傳送端與接收端的起始同步訊號。
另一個編碼位元填充其功能是在資料連續有六個”1”位元後,強制插入
一個“0”位元,主要是能避免資料長時間無法轉換,而導致「塞車」的狀況,
使讀取的時序發生嚴重的錯誤。
圖 2.20 信號編碼波形圖
24
2.3.6 訊號狀態格式
USB 定義了資料線 D+ 與 D- 的差動訊號分為 J 狀態與 K 狀態,
由於提升電阻在全速與低速裝置連接的位置不同,全速是在 D+ 資料線上,
而低速模式下 D+ 為”1”,在兩者速率下,狀態剛好相反。
當信號為閒置(Idel)狀態時,全速的資料線 D+ 相對較為正電壓,而低
速的資料線 D- 相對較為正電壓,及透過集線器判別出裝置為低速還是全
Single-Ended Zero),用來脫離以及重置狀態,而都為高電位時,稱為單端 1
(SE1,Single-Ended One),此為無效的匯流排狀態。
25
2.3.7 欄位類別
USB 是以串列傳輸的方式 (LSB 先送) 進行傳送端與接收端的通訊,
進行位元分組,而組合的個別位元群組即稱為欄位(field)
,再透過欄位的
組合構成封包(packet)
,而封包就能構成訊框(frame)或交易(transaction)
等通訊類型,這此介紹欄位的格式與功能[18]。
SYNC 欄位於閒置狀態時發送,為每個封包的第一個欄位,SYNC 是
由 8 bits 所組成,其值固定為”00000001”(0x80)
,並透過上個章節提到的
個位元(PID[0:3])包含編碼過的值,代表傳輸的封包類型(Token、Data、
Handshake、Special)、封包格式、與錯誤偵測的類型參照表,後四個位元
LSB PID0 PID1 PID2 PID3 PID0 PID1 PID2 PID3 MSB
圖 2.22 PID 欄位
26
在表 2.5 中,列表出由 PID[0:1] 兩位元欄位所辨識出四種封包的類型,
表 2.5 各種封包的格式
OUT 0001
執照封包 IN 1001
SETUP 1101
DATA0 0011
MDATA 1111
ACK 0010
NYET 0110
PRE 1100
PING 0100
Reserved 0000
27
位址(Address,ADDR)欄位
機訊號重置之後,會指定裝置預設的位址 0,而後主機負責分配一個新的
位址給匯流排上的裝置,位址會依照列舉出來的過程來分配,一次分配一
端點(Endpoint,ENDP)欄位
計算是把欲傳輸的資料構成一個整數值,並且除以一個特定的除數,此除
𝐺(𝑥) = 𝑥 5 + 𝑥 2 + 1 (2.2)
會重置。
資料(Data)欄位
根據不同的傳輸型態,擁有不同的位元組大小,USB2.0 規格資料量
28
2.3.8 傳輸封包格式
由上述所介紹的欄位格式以組合成 USB 的封包格式[10][11][19],其
封包可分為下列三種:
由於 USB 在進行資料傳輸時,是先由主機端所啟動,而第一個封包
表 2.6 執照封包格式
位所組成的。
表 2.7 資料封包格式
交握封包主要為如已收到主機或裝置要執行描述的命令或要求,則會
表 2.8 交握封包格式
8 bits 8 Bits
29
2.3.9 通訊協定
通訊協定即主機與裝置間資料溝通的協定,透過 USB 線將連接的差
動訊號定義出有意義的封包,把個別類型的封包組合起來就成了一筆資料
USB 傳輸的通訊協定整體架構,當主機要與周邊裝置進行通訊時,則會啟
始一個傳輸,用來處理與執行相關的通訊要求,電腦應用程式將會透過
的各種描述元讀取出來,開啟與周邊裝置間的通訊管道,作業系統會傳送
適當的驅動程式,將主機的控制器開啟,並能開始互相傳輸資料。
圖 2.23 整體通訊協定架構
30
若 一 筆 傳 輸 需 要 多 個 資 料 交 易 , 就 需 要 透 過 資 料 緊 密 連 結 (Data
Toggle) 位元保持傳送端與接收端同步化[9][11],避免交易資料被遺失,如
相互交替傳送,直到資料傳送為止。
SYNC
PID DATA
CRC16
... SYNC
PID DATA
CRC16
... SYNC
PID ...
(DATA0) Field (DATA1) Field (DATA0)
圖 2.24 資料緊密連結
響應時間及錯誤偵測等,而定義了不同的傳輸類型來傳送資料及讀取資料,
傳輸的類型分為四種:控制傳輸、等時傳輸、大量傳輸及中斷傳輸,低速
僅支援控制傳輸與中斷傳輸[9][10][11],以下做詳細說明:
輸後,才能傳送其他的傳輸類型,此傳輸是提供主機與裝置之間的配置、
命令或狀態的通訊協定,所以傳輸速率與傳輸時間並無要求,控制傳輸可
針對任何目的的傳送與接收,並傳送自訂的要求,以雙向傳輸來達到此要
31
機回覆有收到資料。
圖 2.25 控制傳輸交易示意圖
等待傳輸屬於一種資料串流傳輸,能即時的傳輸資料,可單向或雙向
傳輸,此傳輸需要固定的傳輸速度,其特點是資料即時性比資料正確性還
要重要,就算發送錯誤,也不會重新傳送,像是數位影像的傳輸,需要即
時的將畫面傳送出去,但有時會因為網路影響,造成停頓的現象,但隨即
置端會立即的將資料回傳給主機,就算有錯誤也即時回傳給主機。
圖 2.26 等時傳輸交易示意圖
32
巨量傳輸 (Bulk Transfer)
巨量傳輸是應用在時間並非重要時,作為一種資料傳輸的方式,此傳
輸類型是傳輸大量的資料,並沒有固定的傳輸速率,但需要準確的資料傳
輸,根據目前匯流排的擁擠狀況,調整傳輸速率,如果匯流排是閒置的,
則巨量傳輸會非常快。
如圖 2.27 所示,巨量傳輸交易包含執照、資料、交握三個階段,對於
或者該端點被停止,則會回到 STALL,整個狀態就會處於閒置狀態,等
待下一個執照封包重發。
圖 2.27 巨量傳輸交易示意圖
33
中斷傳輸 (Interrupt Transfer)
中斷傳輸支援全部的傳輸速率,而所有的裝置不一定有支援中斷傳輸,
如:鍵盤、滑鼠等裝置,都只需支援 IN 封包傳輸,中斷傳輸是一種”輪詢”
(Polling) 的過程,當鍵盤輸入字元,由主機週期性的輪詢將資料接收。
巨量傳輸,差別在巨量傳輸並沒有設定傳輸的時間間隔,中斷傳輸的採單
類型。
圖 2.28 中斷傳輸交易示意圖
34
2.3.10 USB 裝置要求
主機端與裝置端如要達到互相通訊,則需要透過特定的命令格式─「裝
置要求」來做設定,而這些裝置要求的設定需透過控制傳輸的資料交易來
格中裝置要求的定義[9][14][15]。
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 的資料格式之外,還需與”標準要求”配合才可以執
02h 端點 -
(08H)
(06H) 態與指標 語言 ID 長度
(0AH)
82h 端點
36
表 2.11 USB 標準要求的格式之二
(05H)
(09H)
(03H) 態與指標 語言 ID 長度
01h (03H) 選擇 介面 -
02h 端點 -
(03H)
(0CH)
37
2.4 串列介面引擎(SIE)
USB 通訊協定與裝置列舉的動作無法只用微處理機做處理,而且微處
系 統 中 元 件 包 括 儲 存 USB 資 料 的 緩 衝 器, 一 般 稱 為 「 端 點 緩衝 器 」
發器(PHY)
、配置⁄狀態⁄控制暫存器、以及儲存多種 USB 軟體程式記憶體。
控制邏輯與端點邏輯,其功能則是傳送和接收來自端點緩衝器的資料,SIE
間的硬體介面[4][9][11]。
38
2.5 Cypress CY7C68003 晶片介紹
如 圖 2.30 所 示 , 由 Cypress 公 司 推 出 的 USB 2.0 收 發 器 (USB
上 的 信 號 , 而 此 晶 片 是 屬 於 UTMI 腳 位 減 少 的 晶 片 , 稱 ULPI(UTMI
USB 所需要的時脈,並提供給系統使用,由於晶片的腳位少,節省在電路
板上的空間,並提供休眠模式讓整體晶片可達到超低耗電之功能。
39
2.6 現場可程式邏輯陣列(FPGA)介紹
在本論文實驗及驗證的部份是使用 Altera DE2-70 Cyclone II FPGA 的
ASIC 昂貴的開發費用,降低了開發設計的風險。
來開發。
元件所有的功能,讓使用者可以確認是否有誤,此開發板需透過 Altera 公
電路編譯(Complier)、電路模擬(Simulation)以及晶片規劃(Programming)等
功能,對於晶片開發前的驗證相當有幫助。
40
圖 2.32 為 Altera DE2 的功能方塊圖,Cyclone II 2C70 FPGA 支援了
讀取模式。
D+/D- 訊號傳輸之功能。
SD Card TV Decoder
USB
EEPROM
Blaster
41
第三章 系統架構設計與實作
3.1 簡介
本論文系統的整體架構主要分為四大部分,如圖 3.1 所示包含 DATA
的動作流程為:
給非同步 FIFO。
(以 8 bits 顯示)。
詳細的說明於下面章節做各模組架構流程說明及功能介紹以及 USB
PHY 子板的製作。
圖 3.1 系統主架構圖
42
在建立系統前,如圖 3.2 所示,論文以電腦與 FPGA 板間建立 USB
轉 RS-232 傳輸介面(同為非同步傳輸)作為資料傳輸的測試,為了方便觀察
USB,當插入電腦時,是否有資料會從電腦的主控器傳送出來,先利用軟
再連接測試電腦主控器是否會有資料傳出來。
43
3.2 Quartus IP 使用說明
由 Altera 公司推出的 Quartus 軟體是一個操作方便且易於實現硬體
計檔中與邏輯閘和觸發器基本單元一起使用,提供的參數化巨集功能模組
圖 3.4 Qutarus 提供 IP 資料
44
使用 PLL IP
使用 ROM IP
一筆一筆的讀出來。
45
而論文在 ROM IP 上提出一個 EN_data 模組,其功能是控制資料在什麼
時間點才需送出,當資料傳送出去後,後端的模組處理完後,會再產生一
行確認。
取時脈和寫入時脈為相同時脈,在時脈正緣觸發時同時進行讀寫資料,而
內部架構。
46
本系統採用的非同步 FIFO 架構中,分為三個模組,中間是一個雙埠
(wr_addr),而右邊區塊模組為讀取資料控制的部分,主要是控制讀取資料
訊號 (flag) 比較寫入與讀取位址而產生空或滿的訊號。
如表 3.1 說明各接腳功能:
接 腳 名 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 清空各模組暫存器中的資料,清空於位址空間的資料,此時
47
3. 當 wr_ addr 開始計數,則 flag 訊號向上計數,直到計數至位址空間
上限時,full 訊號就會為高電位,表示無位址空間可存放資料。
無資料時,empty 訊號就會為高電位,表示目前位址空間並無資料。
SIE 整體架構,此主要架構裡內分為傳送端(圖上半部)與接收端(圖下半部),
在傳送端部份主要是將進來的資料先行做資料判斷封包格式及分類,做好
封包處理後,並傳送出去,而接收端是將接收到的資料判斷是否有錯誤,
碼與解碼模組,接下來的各節介紹各模組功能及動作流程。
48
3.4.1 Data control
Data control 模 組 主 要 是 控 制 其 他 模 組 的 資 料 處 理 動 作 , 當 Data
進行動作,而沒有接收到訊號的模組,會維持在閒置狀態,不做任何動作。
3.9 所示,首先判斷資料是否有進來,如有資料進來就先把資料存至暫存
先送出,以一個位元接連送去給下一級模組,直到送完該資料全部位元後,
等待下筆資料進來。
49
為了依照 USB 封包格式送出,本論文在 PISO 模組裡加上可以控制
50
3.4.3 PID Check ( Packet ID Check)
PID Check 模組是用來判別資料是屬於哪種封包資訊,請參照章節
錯誤且無效的。
51
3.4.4 CRC 5 檢驗
CRC5 循環多餘檢核在第二章有提到 CRC5 的多項式,主要檢驗憑證
正緣觸發時,就可立即計算 CRC5 值。
3.4.5 CRC16 檢驗
CRC 16 檢驗主要是檢驗資料 (DATA) 封包,因為資料封包相對的比
的過程中,某些外在因素造成位元值錯誤,而讓最後讀出的資料是錯誤的,
52
算是一種將資料長度編碼,再由接收端做解碼,取得正確的資料。
1,此時當下送出去的資料會先傳送一個 “0 “位元再接續後面的位元,如
果後續資料都沒有轉態則跳至狀態 1,繼續填充位元值”0”。
圖 3.14 位元填充流程圖
53
3.4.7 NRZI Encode
如圖 3.15 所示 NRZI 編碼流程,在硬體實現比位元填充相對簡單,主
資料轉態時,表示輸出的質料為”0”,當資料沒有轉態時,輸出為”1”,不
算,可以比較相對時間的資料做比對,也能改善非預期的現象,該現象是
54
因為組合邏輯在 0→1 轉態時,會出現突波 (Glitch) 的現象。
來的位元值不無法直接從中做移除,因為已佔據一個時脈的時間,論文在
硬 體 架 構 上 增 加 Valid 資 料 控 制 線 提 供 後 級 模 組 做 資 料 的 判 定 有 效
做資料處理。
圖 3.18 偵測中止狀態機
56
3.4.10 SIPO (Serial In Parallel Out)
此為 SIE 最後一個模組,SIPO 模組主要是接收進來的資料做串列轉
LSB 先傳),待此暫存器位元值數滿後,再將資料送出去,這裡接收到的
維持在上個位元值。
57
3.5 USB PHY 子板
本論文用到的 USB PHY 晶片 CY7C68003 屬於 QFN 封裝的 IC,
QFN 是一種無引腳的封裝,呈正方形或矩形,封裝底部中央位置有一個大
圖 3.20 子板製作示意圖
圖 3.21 (a)為子板製作的實體,當子板銲接後,要做接腳是否有連接的
測試,測試方法為使用三用電表轉至二極體量測檔位,紅棒連接接地腳位,
而黑棒碰觸其他資料、控制腳位,如圖 3.21(b)所示,因為腳位對接地有二
極體的測試電路,所以當量測時,會出現二極體順向偏壓,表示該晶片連
接無浮接。
58
(a) (b)
圖 3.21 (a)子板實體及(b)量測接腳
送與接收的模式,進入此狀態後,才可以進行資料互傳的功能。
圖 3.22 進入正常模式狀態機
59
第四章 模擬與電路驗證
由最低位元先存入 8 位元暫存器裡,當暫存器滿後,則接收到該傳送的資
(鮑率=115200bps) 來接收資料。
60
圖 4.2 測試 RS-232 接收電路
其提供的驅動程式裡,已經有自動交握的功能,使得原本預期將有資料會
資料值,並無法顯示出原本剛插入電腦主控端的封包形式。
61
4.2 Quartus IP
使用 Quartus IP 可以加快本論文實現系統的時間,透過以調整最佳化
功能及接腳的使用,並撰寫硬體程式與 IP 結合,透過模擬驗證系統所需
要的功能。
4.2.1 PLL IP 模擬
如圖 4.5 所示,產生 USB PHY 所需要的時脈電路圖,首先將 FPGA
圖 4.5 鎖相環(PLL)與除頻器連接圖
62
將 PLL IP 除頻以 SignalTap 去做電路的模擬,如圖 4.7 所示,結果發
現 26 MHz 的頻率出現有規律性重複現象,這是因為邏輯分析儀的取樣頻
如式 4.1 所示連貫取樣之計算公式,取樣頻率(fin)與被取樣頻率(fs)相
除(Mcycles : 被取樣週期;Nsamples:取樣週期),計算出該取樣值是否為整數
倍,當除數不為整數倍時,就會發生連續取樣的現象,該取樣值重複取樣。
但實際電路產生的週期是沒重複,差別在於取樣的頻率,證實並不是產生
的週期本身的錯誤。
1
𝑓𝑖𝑛 : 𝑆𝑎𝑚𝑝𝑙𝑖𝑛𝑔 𝑓𝑟𝑒𝑞𝑢𝑒𝑛𝑐𝑦 𝑁𝑠𝑎𝑚𝑝𝑙𝑒𝑠 = 𝑓
𝑖𝑛
1
𝑓𝑠 : 𝑛𝑢𝑚𝑏𝑒𝑟 𝑜𝑓 𝑐𝑦𝑐𝑙𝑒 𝑀𝑐𝑦𝑐𝑙𝑒𝑠 = 𝑓
𝑠
𝑓𝑖𝑛 𝑀𝑐𝑦𝑐𝑙𝑒𝑠
Coherent Sampling = =𝑁 (4.1)
𝑓𝑠 𝑠𝑎𝑚𝑝𝑙𝑒𝑠
63
4.2.2 ROM IP 模擬
圖 4.8 為本論文使用 ROM IP 資料讀取模擬結果,圖中 en_data 為控
64
4.3 非同步 FIFO 模擬
圖 4.10 為非同步 FIFO 於 Quartus II 產生的 RLT Veiw 架構圖,圖
讀取的訊號為高電位時,將資料寫入以及讀取,並將寫入與讀取的資料為
65
4.4 SIE 模組模擬
圖 4.12 為資料控制的模擬結果,圖中依照狀態機控制哪些模組需要開
始動作,當致能訊號為 1 時,表示該模組才可以執行動作處理資料,否則
就維持目前狀態。
圖 4.13 並轉串模擬圖
66
圖 4.14 所示,可以看到暫存器 data_s 將串列資料存儲滿後,就會將
圖 4.14 串轉並模擬圖
圖 4.15 是將並轉串與串轉並模組結合,驗證原本輸入的並列資料與輸
出的值是否一樣,圖中驗證資料是一致的,表示兩個模組沒有錯誤。
67
圖 4.16 PID Check 模擬結果
68
圖 4.18 為 CRC16 模 組 模 擬 結 果 , 與 CRC5 測 試 一 樣 , 先 將 值
果做比對,確定此模組的功能正確。
續出現六個”1”時,會補上一個”0”,再接續後面的資料,功能驗證無誤。
圖 4.19 位元填充模擬圖
有位元填充將原始的資料做處理,在接收端會將被填充的原始資料反
此控制線主要是做為後級模組的資料判斷,如果為”1”時,資料讀取才有效,
該資料不處理。
圖 4.20 反位元填充模擬圖
69
在反位元填充模組裡,多一道機制,就是判斷中止,如圖 4.21 所示。
圖 4.21 進入中止測試
碼模組,如果遇到資料為”0”就反轉,為”1”就維持狀態,而 De-NRZI 為
時脈,主要是因為在最後資料要送出時,會先通過暫存器,所以造成延遲。
70
每個模組驗證功能都正確後,將各模組連接起來,如圖 4.23 為全模組
71
圖 4.24 為 SIE 模組模擬圖,其顯示出主要的一些資料線與控制線,在
以及 CRC 模組是否有做驗證的處理,由圖中可看到輸入的資料及解完編
程,將此模組成一顆 IP 使用。
72
4.5 系統實現與結果
由於使用的 CY7C68003 USB PHY 晶片有提供多種狀態模式,而本論
的規格書,建立可進入正常模式的控制電路,先將晶片進入正常模式再處
理資料的傳遞。
圖 4.25 晶片狀態控制
73
(a) Idel mode
圖 4.26 晶片各模式結果圖
74
圖 4.27 所示系統實際在 Altera DE2-70 FPGA 板上驗證的結果,由圖
為了能夠方便檢測資料是否有正確的傳送,在傳送端與接收端各加入除頻
示出來,在傳送端的左邊七段顯示器上也有個“Cb”的值,主要是可以比對
75
第五章 數位積體電路流程
5.1 介紹
在經過 FPGA 的驗證後,使用可合成的語法並且套用製程專用的 I/O
Pad,將此數位電路製作成全制定式的特定應用積體電路 (ASIC),具有體
7. 晶片下線(Tape-Out) 圖
圖 5.1 數位 IC 設計流程
76
5.2 電路合成
合成需使用 HDL Compiler 支援的語法,例如 delay、initial、forever
不支援,系統庫路徑則記在.synopsys_dc.setup 檔,設計完成之演算法經過
整個行為描述模擬完成後,便開始進行電路合成,初始合成為暫存器傳輸
用 CMOS 元件所設計出來的[23]。最後,整個邏輯閘電路再考量面積、功
圖 5.2 合成電路圖
圖 5.3 合成前、後模擬比對圖
77
電路都已有元件的延遲時間,而 RTL 是屬於理想化的模擬結果,所以需
5.3 自動佈局與繞線
將合成後的 Gate Level Netlist 加入 ioc 檔和 LEF 檔及 LIB 檔,可以使
1.圖 5.4 為佈局規劃,主要設定 core area 面積及 core area 與 I/O Pad 的間距。
圖 5.4 佈局規劃圖
圖 5.5 電源佈局規劃
78
3.圖 5.6 為腳位間隙填充和佈局,加入由寬至窄的 filler pad 以連結所有 I/O
較短。
圖 5.6 腳位間隙填充和佈局
以 corefiller 填滿內部空餘部分。
圖 5.7 電路填充和繞線
79
5.圖 5.8 為焊墊和假金屬,加入 Dummy Metal 可使電晶體上的 poly 寬度一
圖 5.8 焊墊和假金屬
當合成完的電路做自動佈局與繞線後,要進行實體電路模擬,並比對
到模擬結果相同,表示自動佈局與繞線前、後電路功能都正確。
80
第六章 結論與未來研究
6.1 結論
本研究利用硬體描述語言實現串列介面引擎(SIE)的電路,並且結合
最後與實作的子板連接,確認傳送端與接收端資料傳遞的功能正確。
表 6.1 串列介面引擎晶片規格
Item Specification
Total pins 40
81
6.2 未來研究工作
本研究的系統能夠初步的將 ROM 資料透過 USB 傳輸出去,並以七段
顯示器驗證資料正確,使用資料的傳遞不只是傳輸值,成功地達到資料的
傳遞,往後可依照需求,透過語音 IC 或者影像晶片再加入整合,將資料
圖 6.1 架構示意圖
82
參考文獻
http://www.usb.org/,2014.
司,2013。
2000.
http://www.intel.com/content/www/us/en/io/universal-serialbus/universal-
serial-bus-specifications.html, 2014.
出版,2011。
台北:旗標出版公司,2005。
[13] 洪義豪,超高速通用串列匯流排矽智財之設計,碩士論文,義守大學,
高雄,2012。
83
[14] 張奕通,USB2.0 裝置控制器之矽智產元件開發,碩士論文,國立高雄
第一科技大學,高雄,2008。
[15] 黃南溢,通用串列匯流排控制器硬體設計之實現與應用,碩士論文,
國立成功大學,新竹,2004。
[16] De Maria, E.A.A. , “A Low Cost FPGA based USB Device Core”, IEEE
[17] Shashank Mehta,Design synthesizable USB 3.0 using Verilog HDL and
Northridge,2012.
出版社, 2014。
系統設計中心,2013。
Encounter,訓練教材,國家晶片系統設計中心,2013。
84