簡易檢索 / 詳目顯示

研究生: 韓增穎
Han, Tseng-Ying
論文名稱: 兼容Arduino具除錯及無線功能之多核多工FPGA實作
A Multi-Core Multi-Tasking Arduino Compatible FPGA System
指導教授: 蘇文鈺
Su, Wen-Yu
學位類別: 碩士
Master
系所名稱: 電機資訊學院 - 資訊工程學系
Department of Computer Science and Information Engineering
論文出版年: 2017
畢業學年度: 105
語文別: 英文
論文頁數: 49
中文關鍵詞: ArduinoFPGA多核多工除錯及無線
外文關鍵詞: Arduino, FPGA, Multi-Core/Task, Functions of Debug and Wireless
相關次數: 點閱:104下載:0
分享至:
查詢本校圖書館目錄 查詢臺灣博碩士論文知識加值系統 勘誤回報
  • 隨著自造者運動(Maker Movement)的崛起,越來越多Makers開始使用開發板來打造屬於自己的科技藝術作品。其中又以 Arduino 最為熱門,因為 Arduino 的使用方式簡單,讓非電資相關背景的人也可以輕鬆學會。Arduino簡單好用但是很容易受限於周邊硬體不足,造成Maker們必須購買各式各樣的擴充裝置才可以完成專案。因此我們提供給Maker們一種解決方案:URduino開發板,只需一塊開發板,就能解決周邊硬體不足而造成開發上的問題。

    「URduino」這個平台分成網站、硬體、軟體三個部分。首先網站的目的在於提供使用者可以選擇自己想要的周邊配置,我們提供給使用者Arduino必備的周邊輸出入埠(I/O Port),譬如GPIO,PWM,UART等核心功能。只需在網頁的圖形介面的對應腳位上選擇周邊的類型,並指定所需的核心後,歷經數分鐘到數十分鐘後,負責產生電路檔以及其對應Arduino APIs的伺服器,即會產生完畢,交由使用者下載使用。硬體部分,則由可程式化的FPGA以及其他固定的硬體元件組成。FPGA的電路占了整個硬體的大部分結構,包含一個開源的OpenRISC多核架構,網頁指定生成的周邊,與SRAM, Flash, ADC, USB等硬體元件的硬體溝通部份,以及跟除錯和無線操控有關的硬體。軟體部分則分成幾個類別,分別是由gnu toolchain, FreeRTOS, 以及URduino API為核心組成的韌體產生類別;包含燒錄硬體韌體,無線上傳,動態任務管理等有關傳輸的類別;以及gdb和serial monitor等與除錯有關的系統軟體。

    比起一般的Arduino來說,URduino提供的不僅是擁有數量優勢的周邊。比如其周邊在功能上,因為硬體能自由修改,能作到更強大的事情;同時我們加入的多核多工架構,不僅提供更多的計算能力,也使這塊開發板更能駕馭數量龐大的IO;而簡易的除錯工具GDB,則能幫助使用者解決靠近底層的除錯問題;另外我們也提供了可以無線操控的機制,使得使用者可以無線載入任務,重要的是可以在系統運行狀態,動態的改變韌體內容,不必停下其他的任務(task)。

    URduino旨在提供一個硬體和軟體全開源,並且相容於Arduino的開發環境。使用者可以選擇保留Arduino簡單的特性,只當作周邊電路數目不足的解決方案;也能夠作為一個開源的,從硬體到軟體,擁有完整架構流程的嵌入式系統。

    With to the rise of the Maker Movement, 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. Though Arduino is simple and easy to use, sometimes it is limited by the insufficient I/O pins and the lacking of hardware peripherals on boards. Makers may have to purchase several kinds of expansion devices in order to complete their projects. Therefore we propose a new development board solution such that Makers can use only one board to meet most of their project needs.

    There are three parts of the “URduino” system, including web, hardware and software. First, the web support the users to select the peripherals they want, they only have to choose pin number, peripheral kind and core id on the GUI, then wait for a few minutes, the corresponding circuit bitstream file and URduino APIs would be generated. Second, the hardware consists of programmable circuit of FPGA, and other electronic components. The circuit of FPGA account for the majority, including the asymmetric multiprocessing architecture of open-source OpenRISC cores, the peripherals assigned by web, connection of the electronic component, such as SRAM, Flash, ADC and USB, and the hardware support for debugging and wireless control. Third, the software consists of three parts, including firmware generation, transmission and debugging. The firmware is mainly composed of modified FreeRTOS kernel and URdunio APIs. And there are two way to upload, cable and wireless, we also support dynamic task management to upload task in runtime. Finally the GDB debugger is ported to help users debug via USB cable.

    The features of URduino is its open-source hardware/software and compatibility with Arduino. Users can choose to keep the simplicity, and regard it as a solution for lack of peripherals, or a complete open-source embedded system.

    Chapter 1 Introduction 1 1.1 Motivation 1 1.2 Background 2 1.2.1 OpenRISC 2 1.2.2 URduino Board 4 1.3 Related Work 6 1.3.1 FPGA Implementation of Programmable Arduino Compatible System 6 1.3.2 iDuino, A Web-Based HW/SW Reconfigurable Arduino Compatible System Environment 7 1.3.3 Improvement 8 Chapter 2 System Overview 9 2.1 Web 10 2.2 Hardware 12 2.3 Software 13 Chapter 3 Implementation 16 3.1 Peripherals 16 3.1.1 Digital Input/ Output 17 3.1.2 Timer 20 3.1.3 The Others 21 3.2 Multi-Core System 22 3.2.1 Asymmetrical Multi-Processing 23 3.2.2 Inter-Core Communication 25 3.2.3 Inter-Task Communication among Cores 26 3.2.4 Serial Monitor for Multi-Core 29 3.3 GDB Debugger 30 3.3.1 Stub 31 3.3.2 Debug Interface 33 3.4 Wireless Upload 36 3.4.1 MediaTek MT7688 37 3.4.2 Wireless Upload Firmware 37 3.4.3 Wireless Dynamic Task Management 39 Chapter 4 Experiments and Results 43 4.1 Inter-Task Communication among Cores 43 4.2 GDB Debugger 44 4.3 Wireless Dynamic Task Management 45 Chapter 5 Conclusion and Future Work 46 5.1 Conclusion 46 5.2 Future Work 47 Reference 49

    [1] Arduino official website [Online]: http://www.arduino.cc/
    [2] SMIMS Technology Corp. Official website [Online]: http://tw.smims.com/index.php?active=AboutUs
    [3] Julius Baxter, OpenRISC 1200 IP Core Specification (Preliminary Draft) v 0.11, January, 19, 2011.
    [4] FPGA Implementation of Programmable Arduino Compatible System [Online]: http://etds.lib.ncku.edu.tw/etdservice/view_metadata?etdun=U0026-0308201516140700
    [5] iDuino A Web-Based HW/SW Reconfigurable Arduino Compatible System Environment [Online]: http://ir.lib.ncku.edu.tw/handle/987654321/171523
    [6] WebSocket Introduction [Online]: https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API/Writing_WebSocket_client_applications
    [7] The source of UART16550 [Online]: https://github.com/lgeek/orpsoc/tree/master/rtl/verilog/uart16550
    [8] Multicore basics: AMP and SMP [Online]:
    http://www.embedded.com/design/mcus-processors-and-socs/4429496/Multicore-basics
    [9] FreeRTOS official website [Online]: http://www.freertos.org/
    [10] Debugging physical targets (FPGA/ASIC) of OpenRISC [Online]: https://opencores.org/or1k/Debugging_physical_targets_(FPGA/ASIC)
    [11] The datasheet of MT7688 [Online]: https://labs.mediatek.com/en/download/50WkbgbH

    無法下載圖示 校內:2022-09-01公開
    校外:不公開
    電子論文尚未授權公開,紙本請查館藏目錄
    QR CODE