淡江大學覺生紀念圖書館 (TKU Library)
進階搜尋


下載電子全文限經由淡江IP使用) 
系統識別號 U0002-0709201119305400
中文論文名稱 FPGA為基礎之開機載入器設計與實現
英文論文名稱 Design and implementation of FPGA-base boot loader
校院名稱 淡江大學
系所名稱(中) 電機工程學系碩士在職專班
系所名稱(英) Department of Electrical Engineering
學年度 99
學期 2
出版年 100
研究生中文姓名 林正大
研究生英文姓名 Cheng-Ta Lin
學號 798440169
學位類別 碩士
語文別 中文
口試日期 2011-07-18
論文頁數 99頁
口試委員 指導教授-翁慶昌
委員-許陳鑑
委員-李世安
委員-周建興
中文關鍵字 FPGA  USB  U-Boot  Nios 
英文關鍵字 FPGA  USB  U-Boot  Nios 
學科別分類 學科別應用科學電機及電子
中文摘要 本論文主要提出一個USB開機載入器(Boot Loader)與一個FPGA架構為基礎之雙Nios II處理器系統開機載入器的設計與實現。首先本文所用的FPGA實驗板為友晶公司的出的DE2-70開發板為實驗平台。此平台上具有一顆USB控制晶片,本文以U-Boot程式為基礎去撰寫程式並驅動FPGA實驗板上的USB裝置,最後順利從USB隨身碟內讀取事先做好的uCLinux核心映像檔程式,並成功在FPGA實驗板上將uCLinux作業系統開啟。透過此方法可節省每次燒錄FLASH記憶體的時間且增加FPGA實驗板上的FLASH記憶體使用壽命、且方便更新作業系統程式,達到多人共享開發平台等優點。另外本文在FPGA晶片內設計雙Nios II處理器系統設計架構,由實驗結果得知本文成功讓兩顆Nios II處理器分別開機載入執行各自程式,未來當機器人系統需要多處理器來控制時,便可用此方法來啟動多核心處理器系統。
英文摘要 This paper proposed a boot loader design method based on U-Boot architecture to drive a USB FLASH disk and read an uClinux kernel to boot system. A DE2-70 FPGA board is used as an experimental platform. This platform has a USB controller chip. This paper discusses a way to write an application to drive the USB controller chip on the FPGA development board based on the U-Boot program. Then the application retrieves the uCLinux kernel image from the USB flash drive and boots up the uCLinux on the FPGA development board. Next, a uCLinux kernel image is read from the USB flash disk and completes the boot loader action. Via this way, some advantages can be obtained for saving the programming time of FLASH memory, increasing the life cycle of FLASH memory, updating operation system convenient and sharing development platform. Additionally, the paper designed a dual Nios II processor architecture in the FPGA chip. From the experimenal results, we know that this paper can make each Nios II processor run different program as it is booted. In the future, it can be utilized to boot multi-core systems for requests of multi-processors in the systems.
論文目次 目 錄
目 錄 I
圖目錄 III
表目錄 V
第一章 緒論 1
1.1 研究背景 1
1.2 研究目的 4
1.3 論文架構 5
第二章 U-Boot介紹 6
2.1 U-Boot介紹 7
2.2 Nios U-Boot根目錄檔案介紹 8
2.3 Nios U-Boot啟動介紹 10
2.4 新增U-Boot新增系統命令 15
第三章 USB介紹 18
3.1 USB設計原理 19
3.2 USB資料傳輸格式介紹 20
3.3 封包格式介紹 21
3.4 USB傳輸協定介紹巨量傳輸 25
第四章 USB硬體設備介紹 32
4.1 DE2-70主版介紹 32
4.2 USB ST-Ericsson ISP1362簡介 35
4.3 ISP1362 Chip驅動說明 38
4.4 撰寫U-Boot內ISP1362晶片驅動流程 53
第五章 U-Boot於雙NiosII處理器應用 60
5.1 將DE2-70上FPGA切割為兩個CPU 60
5.2 讀取雙核心開機資訊 61
5.3 製作U-Boot雙核心開機程式 62
第六章 實驗結果 64
6.1 USB開機載入器執行結果 64
6.2 NIOS雙核心開機載入器執行結果 66
第七章 結論 70
附錄A ISP1362 Datasheet暫存器說明 71
參考文獻 98

圖目錄
圖2. 1  硬體元件初始流程圖 11
圖2. 2  平台初始化流程圖 14
圖2. 3  SDRAM空間分配 15
圖3. 1  USB Server/Client示意圖 18
圖3. 2  USB Server流程圖 20
圖4. 1 DE2-70功能區塊圖 34
圖4. 2 ISP1362內部區塊圖 36
圖4. 3 變更為各控制模組後的腳位變化 39
圖4. 4 記憶體緩衝區說明 39
圖4. 5 各緩衝區區域說明 40
圖4. 6 PTD資料欄位說明 41
圖4. 7 每一端點資料長度說明 42
圖4. 8 存取記憶體緩衝器區塊圖 42
圖4. 9 DMA存取記憶體緩衝器區塊圖 43
圖4. 10 PIO存取內部控制暫存器 43
圖4. 11 IC內部連接介面變化示意圖 44
圖4. 12 IC內部控制暫存器變化示意圖 44
圖4. 13 控制PIO暫存器時IC腳位波形 45
圖4. 14 HC控制流程 47
圖4. 15 U-Boot研讀 54
圖4. 16 USB規格研讀 54
圖4. 17 U-Boot中ISP1362驅動程式撰寫 55
圖5. 1 bootCPU不同應用程式運作核心核心線路區塊圖 61
圖5. 2 uCLinux作業系統核心線路區塊圖 61
圖5. 3 DE2-70雙核心載入器資訊讀取 62
圖5. 4 架構示意圖以及記憶體映射位址 63
圖6. 1 USB啟動程式指令 65
圖6. 2 載入系統核心映像檔 65
圖6. 3 系統開機畫面 66
圖6. 4 將FPGA的硬體SOF檔載入 67
圖6. 5 ucCPU啟動結果 68
圖6. 6 啟動 bootCPU 開機 69




表目錄
表1. 1 BootLoader比較表 3
表2. 1 U_BOOT_CMD參數說明表 16
表3. 1 Token Packets封裝格式 22
表3. 2 PID內容格式 22
表3. 3 Handshake PID說明表 23
表3. 4 ADDR內容格式 24
表3. 5 ENDP內容格式 24
表3. 6 Data Packets內容格式 25
表3. 7 Data Packets不同傳輸速度最大傳送位元 25
表3. 8 傳輸速度對巨量傳輸的限定對照表 26
表3. 9 傳輸速度對等時傳輸的限定對照表 26
表3. 10 Data Packets類別及所佔資料長度 27
表3. 11 bmRequestTye資料內容說明 27
表3. 12 bRequest資料內容說明 27
表3. 13 USB Get Status 28
表3. 14 USB Set Feature 28
表3. 15 USB Clear Feature 28
表3. 16 USB Set Address 29
表3. 17 USB Get Descripter 29
表3. 18 USB Set Descriptor 29
表3. 19 USB Get Configuration 29
表3. 20 USB Set Configuration 30
表3. 21 USB Get Interface 30
表3. 22 USB Set Interface 30
表3. 23 USB Sync Frame 30
表3. 24 中斷傳輸各模式對照表 31
表4. 1 DE2-70周邊硬體映射RAM記憶體位址 35
表4. 2 DMA channel 46
表4. 3 利用OTG設定PORT1 48
表4. 4 PTD設定結構(reserved的部分設0) 49
表4. 5 ATL、Interrupt、ISO設定(Reserved的部分設0) 50
表A. 1 ISP1362 HcRevision暫存器 71
表A. 2 ISP1362 HcControl暫存器 72
表A. 3 ISP1362 HcCommandStatus暫存器 73
表A. 4 ISP1362 HcInterruptStatus暫存器 74
表A. 5 ISP1362 HcInterruptEnable暫存器 75
表A. 6 ISP1362 HcInterruptDisable暫存器 76
表A. 7 ISP1362 HcFmInterval暫存器 77
表A. 8 ISP1362 HcFmRemaining暫存器 78
表A. 9 ISP1362 HcFmNumber暫存器 79
表A. 10 ISP1362 HcLSThreshold暫存器 79
表A. 11 ISP1362 HcRghDescriptorA暫存器 80
表A. 12 ISP1362 HcRhDescriptorB暫存器 81
表A. 13 ISP1362 HcRhStatus暫存器 82
表A. 14 ISP1362 HcRhPortStatus暫存器 84
表A. 15 ISP1362 HcChipID暫存器 86
表A. 16 ISP1362 HcScratch暫存器 86
表A. 17 ISP1362 HcSoftwareReset暫存器 86
表A. 18 ISP1362 HcBufferStatus暫存器 87
表A. 19 ISP1362 HcDirectAddressLength暫存器 88
表A. 20 ISP1362 HcDirectAddressData暫存器 89
表A. 21 ISP1362 HcATLBufferSize暫存器 89
表A. 22 ISP1362 HcATLBufferPort暫存器 89
表A. 23 ISP1362 HcATLPTDDoneMap暫存器 90
表A. 24 ISP1362 HcATLPTDSkipMap暫存器 92
表A. 25 ISP1362 HcATLLastPTD暫存器 92
表A. 26 ISP1362 HcATLCurrentActivePTD暫存器 93
表A. 27 ISP1362 HcATLPTDDoneThresholdCount暫存器 93
表A. 28 ISP1362 HcATLPTDDoneThresholdTimeOut暫存器 94
表A. 29 FPGA NIOS一般暫存器 94
表A. 30控制暫存器一覽表 96

參考文獻 [1] Boot loader說明,URL: http://baike.baidu.com/view/1223454.html?fromTaglist
[2] 長高科技股份有限公司,行動裝置嵌入式系統與軟體,2010年6 月。
[3] U-Boot下載原始碼網址,URL:http://sourceforge.net/project/U-Boot
[4] U-Boot討論網站網址,URL: http://sourceforge.net/mailarchive/forum.php?forum_name=U-Boot-users
[5] Philips corporation, ST-ERICSSON ISP1362 Datasheet Rev7, 2009 09 02出版
[6] 邊海龍和賈少華編著,USB2.0設計與應用,文魁資訊股份有限公司出版,2005年6月。
[7] FAT Partition 標頭檔說明,URL:http://tw.myblog.yahoo.com/jw!iGDql7qQSE.gxSmpGembVQ--/article?mid=43
[8] B. Croft, and J. Gilmore, BOOTSTRAP Protocol (BOOTP), RFC 951, Stanford and SUN Microsytems, September 1985.
[9] W. Wimer, Clarifications and Extensions for the Bootstrap Protocol, RFC1532, Carnegie Mellon University, October 1993.
[10] S. Alexander, and R. Droms, “DHCP Options and BOOTP Vendor Extensions”, RFC 1533, Lachman Technology, Inc., Bucknell University, October 1993.
[11] K. Sollins, THE TFTP PROTOCOL (REVISION 2), RFC 1350, MIT, July 1992
[12] R. Finlayson, T. Mann, J. Mogul, and M. Theimer, A Reverse Address Resolution Protocol, RFC 903, Stanford, June 1984.
[13] Sun Microsystems Inc., Network File System specification, RFC 1094, March 1989.
[14] 廖裕評和陸瑞強編著,系統晶片設計與使用NiosII,全華圖書股份有限公司出版,2008年10月。
[15] Quartus II install and download, URL:http://www.altera.com
[16] 駱詩軒、駱詩富和鄧俊修編著,作業系統原理,台灣東華書局股份有限公司,民國97年2月。
[17] 林昭宏 譯,Embedded Linux開發實務徹底研究,旗標出板股份有限公司,民國96年11月。
[18] 徐千洋編著,Linux C 函式庫詳解辭典,旗標出版股份有限公司,民國95年9月。
[19] Jonathan corbet, Aalessandro Rubini and Greg Kroah-Hartman原著,林長毅譯,Linux驅動程式,美商歐萊禮股份有限公司,2005年2月。
論文使用權限
  • 同意紙本無償授權給館內讀者為學術之目的重製使用,於2016-09-14公開。
  • 同意授權瀏覽/列印電子全文服務,於2016-09-14起公開。


  • 若您有任何疑問,請與我們聯絡!
    圖書館: 請來電 (02)2621-5656 轉 2281 或 來信