Reconfigurable Peripheral Manager for Embedded Robotic Systems

Reconfigurable Peripheral Manager for Embedded Robotic Systems

FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO Reconfigurable peripheral manager for embedded robotic systems Filipe Miguel Monteiro Lopes Mestrado Integrado em Engenharia Eletrotécnica e de Computadores Supervisor: José Carlos dos Santos Alves July 30, 2015 c Filipe Lopes, 2015 ii Resumo Uma preocupação crescente em relação à poupança energética tem permitido o crescimento de sistemas computacionais de baixo consumo no mundo da robótica. Este facto combinado com o aumento da diversidade da robótica no dia a dia, torna essencial que os sistemas robóticos possuam a capacidade de serem facilmente reconfigurados. No entanto, apesar do crescente interesse em volta do desenvolvimento de hardware por parte da comunidade tecnológica juntamente com ferramentas cada vez mais user-friendly ainda existe pouco interesse e conhecimento em relacão nesta área. Este trabalho aproxima o utilizador comum do desenvolvimento de hardware e reconfigurabil- idade usando um computador de baixo consumo, BeagleBone Black, Logi-Bone uma placa com FPGA, e uma ferramenta capaz de facilmente e sem necessidade de conhecimentos adicionais gerar um projecto de hardware completo. A ferramenta desenvolvida e explicada em detalhe neste documento permite gerar um projeto de hardware completo para a Logi-Bone contendo os periféricos mais comuns da robótica, usando uma linguagem simples e intuitiva. E providência as APIs necessárias para uma fácil integração dos periféricos gerados na FPGA com o software presente na BeagleBone. Finalmente, para atrair utilizadores com algum conhecimento em desenvolvimento de hard- ware a ferramenta permite a integração de blocos feitos à medida no projecto. iii iv Abstract Nowadays there is a huge concern with power consumption, opening the doors to small and low energy consumption computers in the world of robotics. With the advance of electronic technol- ogy and attempts to delegate further tasks to robots daily, a reconfigurable system is of utmost importance. However, although the increase in interest regarding digital design and related tools user- friendlier than ever, the adoption of hardware development by the developer community is ratter low. This work brings digital design and system reconfigurability to the common user, using the low energy consumption, powerful and small computer, BeagleBone Black, the Logi-Bone, a device that contains a FPGA, attached to it and a software tool used to easily generate the full hardware project for the FPGA, without needing any particular hardware design knowledge. This tool, developed and explored in detail through the length of the document, is capable of generating full hardware design containing most of the common peripherals used in robotics for the Logi-Bone via simple and intuitive language. Furthermore, this tool also provides the APIs necessary to easily interface with the peripherals chosen by the user and implemented in the FPGA. Finally, in an attempt to captivate hardware designers, the software tool also allows inclusion of one or more custom blocks in a project. v vi Agradecimentos Em primeiro gostaria de agradecer ao meu orientador Professor José Carlos Alves, pelo o apoio, auxilio e conselhos dados ao longo desta dissertação é de louvar o entusiasmo deste professor pelo o seu trabalho que me permitiu continuar a trabalhar entusiasticamente mesmo nas fases menos boas da dissertação. Muitos outros professores também merecem o meu agradecimento pelo todo o apoio prestado durante o meu percurso académico. Fica aqui um obrigado à minha família por me proporcionar tudo o que necessitei para concluir esta jornada. Ao meu gato, a princesa da minha vida, o meu Bart, por pareceres saber sempre como me sinto e estares à minha beira naqueles dias mais complicados. Quero deixar um agradecimento também às palavras de apoio dadas pela dona Zeza e à Brigite, incrível como uma rapariga tão nova tem tanta sabedoria. Ao Sr. Eng. Tiago Souto, deixo um obrigado e um abraço pelos gelados tomados depois do trabalho e por seres aquela pessoa que está comigo desde o inicio. Ao pessoal do costume, Orelhinhas, Armandalho, Investimento, Cebolinha, Monstro, Mãe Susana, DiMarina, Batares, SraDeArtes, Cláudia, etc um obrigado por os almoços, jogos de cartas, piadas, companhia, etc. E finalmente, o meu maior agradecimento vai para ti, por teres sido a melhor coisa que me aconteceu, por saber que me apoias apesar de tudo, por me teres levantado do chão, mostrado o mundo e feito sorrir, por seres um orgulho e admiração para mim, por tudo e por nada, pelas palavras e pelos silêncios. Obrigado por tudo, Rainha. Filipe vii viii "Multiply it by infinity, and take it to the depth of forever, and you will still have barely a glimpse of what I’m talking about." William Parrish (Meet Joe Black) ix x Contents 1 Introduction1 1.1 Problem definition . .2 1.2 Thesis organization . .3 2 State of art5 2.1 CPU-FPGA embedded platform . .5 2.1.1 CPU and FPGA in a SoC . .5 2.1.2 FPGA and Softcore CPU . 13 2.1.3 Discrete CPU and discrete FPGA . 15 2.2 Development tools . 18 2.2.1 Xilinx Software Development Kit (SDK) and Vivado Design Suite . 18 2.2.2 Qsys Altera’s System Integration Tool . 19 2.2.3 Valentf(x) Skeleton . 19 2.3 Conclusion . 20 3 BeagleBone Black, Logi-Bone and Tools 21 3.1 BeagleBone Black and Logi-Bone . 21 3.2 Valentf(x) Tools . 23 3.2.1 Skeleton . 24 3.3 Xilinx ISE . 25 3.4 Communication between BeagleBone Black and Logi-Bone . 26 3.5 Conclusion . 28 4 Hardware Project 29 4.1 BeagleBone and FPGA Synchronization . 29 4.2 Wishbone . 30 4.3 Registers and Memories . 32 4.3.1 Registers . 33 4.3.2 Memory . 37 4.4 Generation of block, parameters and techniques . 39 4.5 I/O Ports . 41 4.6 Peripherals . 42 4.6.1 Digital I/O . 42 4.6.2 PWM Unidirectional . 43 4.6.3 PWM H-Bridge . 43 4.6.4 UART . 44 4.6.5 Servo Controller . 44 4.6.6 SPI . 45 xi xii CONTENTS 4.6.7 Custom blocks . 45 4.7 Conclusion . 48 5 Project Configuration and implementation 49 5.1 Language . 49 5.2 Tool . 51 5.3 APIs . 54 5.4 Work Flow . 55 5.4.1 Complete project . 55 5.4.2 Complete Project with custom blocks . 57 5.5 Conclusion . 59 6 Conclusion 61 6.1 Future work . 61 List of Figures 2.1 Virtex-II Pro Generic Architecture Overview . .6 2.2 CoreConnect Block Diagram . .7 2.3 Xilinx Zynq-7000 diagram . .9 2.4 Altera Cyclone V SoC block diagram . 10 2.5 Altera Arria V SoC block diagram . 11 2.6 SmartFusion block diagram . 12 2.7 SmartFusion 2 block diagram . 12 2.8 LatticeMico32 block diagram . 14 2.9 Leon 3 block diagram . 15 2.10 Armadeus APF51 memory bus . 16 2.11 Logi Bone board . 17 2.12 Logi Pi board . 17 2.13 Logi Stack Overview . 18 2.14 Skeleton editor . 19 3.1 BeagleBone Black board . 22 3.2 Logi Bone board . 23 3.3 Skeleton interface with a simple project configuration . 24 3.4 Blocks and parameters generated . 25 3.5 Xilinx ISE program . 26 3.6 Read operation in GPMC bus . 27 3.7 Write operation in GPMC bus . 27 3.8 Layers of communication between the BeagleBone Black and the FPGA . 28 4.1 Two flip-flop synchronizer diagram . 29 4.2 GPMC and Whisbone read signals . 31 4.3 GPMC and Whisbone write signals . 31 4.4 GPMC to Whisbone block diagram . 32 4.5 Map of the 16-bit GPMC address space . 33 4.6 Block W_RO illustrating the method used to have a parameterizable number of registers . 37 4.7 Block RW_RI with a single register . 38 4.8 Distribution of the memory address space . 39 4.9 H-Bridge . 43 5.1 Error port unknown . 51 5.2 Error port already in use . 52 5.3 Error frequency unknown . 52 5.4 Peripherals and parameters generated . 53 xiii xiv LIST OF FIGURES 5.5 Include file, used to interact with the peripherals . 54 5.6 Block.txt file with the peripherals written . 55 5.7 ./start script running in terminal . 56 5.8 End result of the script . 56 5.9 Files in the BeagleBone Black . 56 5.10 Application for running in the BeagleBone Black . ..

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    87 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us