§ 瀏覽學位論文書目資料
  
系統識別號 U0002-0709201119305400
DOI 10.6846/TKU.2011.00238
論文名稱(中文) FPGA為基礎之開機載入器設計與實現
論文名稱(英文) Design and implementation of FPGA-base boot loader
第三語言論文名稱
校院名稱 淡江大學
系所名稱(中文) 電機工程學系碩士在職專班
系所名稱(英文) Department of Electrical and Computer Engineering
外國學位學校名稱
外國學位學院名稱
外國學位研究所名稱
學年度 99
學期 2
出版年 100
研究生(中文) 林正大
研究生(英文) Cheng-Ta Lin
學號 798440169
學位類別 碩士
語言別 繁體中文
第二語言別
口試日期 2011-07-18
論文頁數 99頁
口試委員 指導教授 - 翁慶昌(iclabee@gmail.com)
委員 - 許陳鑑(jhsu@ntnu.edu.tw)
委員 - 李世安(lishyhan@gmail.com)
委員 - 周建興(chchou@mail.tku.edu.tw)
關鍵字(中) 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月。
論文全文使用權限
校內
紙本論文於授權書繳交後5年公開
同意電子論文全文授權校園內公開
校內電子論文於授權書繳交後5年公開
校外
同意授權
校外電子論文於授權書繳交後5年公開

如有問題,歡迎洽詢!
圖書館數位資訊組 (02)2621-5656 轉 2487 或 來信