| 研究生: |
李彥柏 Lee, Yan-Po |
|---|---|
| 論文名稱: |
兼容Arduino可程式化系統之FPGA實作 FPGA Implementation of Programmable Arduino Compatible System |
| 指導教授: |
蘇文鈺
Su, Wen-Yu |
| 學位類別: |
碩士 Master |
| 系所名稱: |
電機資訊學院 - 資訊工程學系 Department of Computer Science and Information Engineering |
| 論文出版年: | 2015 |
| 畢業學年度: | 103 |
| 語文別: | 英文 |
| 論文頁數: | 48 |
| 中文關鍵詞: | Arduino 、FPGA 、OpenRISC |
| 外文關鍵詞: | Arduino, FPGA, OpenRISC |
| 相關次數: | 點閱:145 下載:19 |
| 分享至: |
| 查詢本校圖書館目錄 查詢臺灣博碩士論文知識加值系統 勘誤回報 |
隨著 Maker 文化的崛起,越來越多 Maker 開始使用開發板來打造屬於自己 的科技藝術作品,其中又以 Arduino 最為熱門,因為 Arduino 的使用方式簡 單,讓非電資相關背景的人也可以輕鬆學會。Arduino 簡單好用但是很容易受限 於 I/O pin 或是周邊硬體不足,造成 Maker 們必須購買各式各樣的擴充裝置才可 以完成專案。本篇論文的主旨是提供 Maker 們只用一塊開發板即可完成大部分 的專案,解決 Maker 們因為 I/O pin 或周邊硬體不足而造成開發上的問題。
本篇論文提供了一個可程式化系統平台叫「URduino」,這個平台分成硬體 與軟體兩個部分,硬體以 FPGA 開發板作為基礎,並提供不同配置的電路檔案讓 使用者下載,電路檔以 OpenRISC 作為主要核心,搭載我們設計的周邊電路包含 GPIO、Timer、External interrupt、UART 等等;軟體部分,我們提供了一個修改過 的 Arduino IDE 作為開發的環境,將原本編譯與燒錄 Arduino 開發板的流程針對 FPGA 開發板做修改,並將 API 實作修改為 URduino 電路的設計實作。其操作流 程與原本 Arduino IDE 無異。此外,URduino 是一個全開源的開發系統,提供 Makes 高自由度之編程環境。URduino 結合 Arduino 的簡易性與 FPGA 的可擴充 性,希望為 Maker 打造一個方便的開發平台,讓 Maker 們可以方便地完成各式 各樣的專案。
With the Maker culture is being on the rise, more and more Makers begin to use development boards to implement their projects in both technology and art fields. Among those development boards, Arduino is the most popular one for its simplicity. It allows makers who do not have an EE or CS background to develop their own projects easily and quickly. Arduino is simple and easy to use, but it is sometimes limited by the insufficient I/O pins and the lacking of hardware peripherals on board. Makers may have to purchase several kinds of expansion devices in order to complete their projects. The main objective of this thesis is to propose a new development board solution such that Makers can use only one board to fulfill most of their project needs.
In this thesis, a programmable system platform called "URduino" has been proposed and designed. This platform is divided into hardware and software parts. In the hardware part, we not only provide different circuit generation files for downloading to FPGA, where OpenRISC is benchmarked as the main processor. We also implement the peripheral circuits including GPIO, Timer, External Interrupt, UART, and etc. In the software part, we modify the original Arduino IDE and implement the responsive APIs for compiling and programming our proposed FPGA development board. For
transparency, the operating process of Arduino IDE remains the same as before.
Moreover, URduino is a completely open-source development system, which provides makers a high degree of freedom in programming and modification. URduino is a new development board solution that combines Arduino's simplicity and FPGA's scalability, and it provides Makers a more convenient platform to complete all kind of projects more easily.
[1] Arduino official website [Online]: http://www.arduino.cc/
[2] Arduino boards information [Online]: http://www.arduino.cc/en/Main/Boards
[3] Arduino github [Online]: https://github.com/arduino/Arduino
[4] Arduino products compare [Online]: http://www.arduino.cc/en/Products.Compare
[5] IC CD74HC4067spec. [Online]: http://www.ti.com/lit/ds/symlink/cd74hc4067.pdf
[6] 32 Channel Servo Controller Manual [Online]: http://letsmakerobots.com/files/32_Servo_Controller_Manual.pdf
[7] Xilinx Spartan6 Family Overview [Online]: http://www.xilinx.com/support/documentation/data_sheets/ds160.pdf
[8] 8-bit AVR® Microcontroller with 4/8/16/32K Bytes In-System Programmable Flash [Online]: Available: http://www.atmel.com/Images/doc8161.pdf
[9] AVR068: STK500 Communication Protocol [Online]: http://www.atmel.com/images/doc2591.pdf
[10] Tong, Jason G., Ian DL Anderson, and Mohammed AS Khalid. "Soft-core processors for embedded systems." Microelectronics, 2006. ICM'06. Internat ional Conference on. IEEE, 2006.
[11] OpenRISC Alekto. [Oline]: http://www.electronicnetwork.ca/en/openrisc-alekt o.html
[12] OpenCores, “OpenRISC 1000 Architecture Manual”, July 13, 2004.
[13] Julius Baxter, OpenRISC 1200 IP Core Specification (Preliminary Draft) v0.11, January, 19, 2011.47
[14] SMIMS VEX-T2_manual_2012Q2
[15] http://opencores.com/project,systemverilog-uart16550
[16] OpenRISC toolchain [Online]: http://opencores.org/or1k/OpenRISC_GNU_tool_chain