基于SOC fpga的开发教程
SoC 芯片, 相较于传统的单一 ARM 处理器或 FPGA 芯片, Intel Cyclone V SoCFPGA 既拥有了 ARM 处理器灵活高效的数据运算和事务处理能力, 同时又集成了 FPGA 的高速并行处理优势, 同时, 基于两者独特的片上互联结构, 使用时可以将 FPGA 上的通用逻辑资源经过配置,映射为 ARM 处理器的一个或多个具有特定功能的外设。目录目录基于 Cyclone V SoC FPGA的嵌入式系统设计教程.1ntel Cyclone SoC FPGA介绍SOC FPGA的基木概念soPC的基本概念SoPC与 SOC FPgA之间的差异SOC FPGA架构的优势基于 Cyclone V SoC FPGA器件的重要电路设计FPGA IO和时钟SOC FPGA JTAG电路设计569AC501SoC开发板介绍11布局及组件11轻触按键用户LED……14时钟输入....::.::::::.:::∴15GP|O接∏15DDR3 SDRAM重着::::::....:::...通用显示扩展接口USB to uart∴………以太网收发器,21SOC EPGA开发板的FPGA配置数据下载和固化…….…SOC FPGA启动配置方式介绍∴23sof文件烧写方式.24JC文件生成和烧写26SOC FPGA开发流程简介31SOCEPGA开发流程使件开发.31软什开发AC501 SOC FPGA开发板黄金参考设计说明34什么是GHRD…34GHRD FOR AC501-SoC34打开和查看GHRD.…34clk o38sysid qsys39led_pio...,.,…,…………39button pIospIi2c 042alt vip vfr tft0.......……………42alt vip itc_ 044总结Step by step为HPS添加UART外设,45目录修改GHRD工程打开GHRD工程45添加 UART IP.246关于HPS与FPGA数据交互连接UART|P信号端口分配组件基地址…49生成Qsys系统的HDL文件50添加uat_1的端口到 Quartus工程中51分配FPGA管脚生成配置数据二进制文件54制作 Preloader Image打开 SOCEDS工具生成bsp文件56编译 preloader和 uboot60更新 preloader和 uboot62使用新的 Uboot启动SoC.:::::::::::·::·制作设备树设备树制作流程...64准备所需文件65生成dts文件…生成dtb文件.…67运行修改后的工程.68使用Ds-5编写和调试SoC的 Linux应用程序,,,…70启动DS-5创建C工程…72编详工程.176建立SSH远程连接77创建远程连接复制文件到目标板3运行应用程序85远程调试…GDB设置GDB连接和调试287总结使用 Win sCp在 Windows和 Linux系统之间传输文件……91为什么要使用 Winscp.安装 Win SCP.…91建立远程主机连接91新建远程连接.94调用 putty终端基丁虚拟地址映射的 Linux硬件编程....….….97什么是虚拟地址映射97虚拟地址映射的实现:::::::::.:a·基于虚拟地址映射的PIO编程应用目录P|O外设的虚拟地址映射…在DS-5中建立PO应用工程.102添加和包含HPS库文件.103添加FPGA侧外设硬件信息P|O|P核介绍108Po核寄存器映射110P|O|P核应用实例..112合理的程序退出机制.…116关于按键消抖.基于虚拟地址映射的UART编程应用…..119UART(RS232 Serial port)核介绍UART(RS-232 Serial port)寄存器映射UART|P核应用实例……122在DS-5中建立UART应用工程…虚拟地址射122设置波特率.:::::::·:.::.·:.124字符发送124字符串发送…125字符接收125宇符串接收UART|P核板级调试131总结基于虚拟地址映射的12C编程应用……133Open Cores2CP简介133Open Cores2C|P奇存器哄射.134PRER:时钟频率预分频寄存尜134CTRL:控制寄存器.134TXR:发送数据寄存器CR:命令寄存器135SR:状态寄存器136l2CP核应用实例.….135在DS-5中建立12C应用工程136虚拟地址映射1362C|P核基本寄存器配冒,140使用12C|读写图像传感器寄存器1412C护P读写oV5640摄像头板级调试.146总结.152本章小节152基于 Linux应用程序的HPS配置FPGA……………………53制作 Quartus工程.153生成rbf格式配置数据……154编译 Linux配置FPGA应用稈序156在系统重配置FPGA实验…157本章小结159目录编译嵌入式LiuX系统内核160安装 VMware161安装 Ubuntu系统灬162下载 Linux系统源码172设置交叉编译环境…配置和编译内核∴……180快速配置内核180使能 Altera UART驱动182使能 Altera sp驱动使能OC12C控制器驱动.…184使能 Framereader驱动保存内核配置文件.187编详内核使用内核启动开发板本章小节192Linux设备树的原理与应用实例.:::::::::::..........:::..:193什么是设各树193设备树基木格式194设各树加载设备驱动原理编写12C控制器设备节点202加载OC12C驱动206使用RTC206使用 EEPROM∴211编写5P控制器设备节点211本章小节214基于 Linux标准文件/o的设备读写…………………………215什么是文件/O215基于文件|O操作的一般方法215文件描述符215打开设备(open)21向设各写入数据( write):::.::aa..216读取设备数据(read).216杂项操作( ioctl)…………217关闭设备(cose)……218其他操作218使用文件1O实现12C编程218本章小节.…221FPGA与HPS扃速数据交互应用222FPGA与HPS通信介绍.……………………………………22H2 LW AXI Master桥H2FAX| Master桥224F2 H AXI Slave桥225AX与 Avalon-MM总线的互联……225Ayalon-MM总线225目录Avalon-MM Slave接口227基本Aa|on- MM Slave iP设计框架29PWM控制器设计…1233Avalon-MM Master接口.253常见的通用 Avalon mm master主札………….…253高速数据采集系统……261Linux驱动编写与编译..273基本字符型设备驱动274字符型设备驱动框架275头文件包含276变量和宏定义.………277en方法278e方法278read方法.278write方法279ioct|方法:::::.::::::::::..a:::a.:....:280fops定义..281模块初始化代码282模块退出代码…284模块声明…284PWM控制器驱动完整源码.….284驱动编译 Makefile289Ubuntu卜编译设备驱动291字符型设备驱动验证292安装驱动文件292设计测试程序…::::::::::.:.:.·:...:::·293基于DMA的字符型设备驱动Avalon -MM Master Write驱动…297Avalon-MM Master Write测试303安装驱动文件303设计测试程序.::::·303本章小节310介绍介绍的基本概念(原于年发布的一款在单一芯片上集成了双核的处理器和逻辑瓷源的新型芯片,相较于传统的单处理器或片既拥有了处理器灵活高效的数据运算和事务处理能力,同时又集成的高速并行处理优势,同时,基于两者独特的片上互联结构,使用时可以将上的通用逻辑资源经过配置,映射为处理器的一个或多个具有特定功能的外设,通过高达位宽的高速总线进行通信,完成数据和控制命令的交互。出于片上的处理器是经过布局布线的硬线逻辑,因此其能工作的时钟主频较高,因此单位时间内能够执行的指令也更多。的基本概念在技术推出之前,各大厂家已经推广了有多年的技术。和不相同的是,是在单纯的心片上使用的逻辑和存储器资源搭建一个软核系统,由该软核实现所需处理器的完整功能。由于是使用的通用逻辑搭建的,因此具有一定的灵活性,用户可以根据自己的需求对进行定制裁剪,增加一些专用功能,例如除法或浮点运算单元,用于提升在某些专用运算方面的性能,或者删除些在系统里面使用不到的功能,以节约逻辑资源。另外也可以根据用户的实际需求,为添加各种标准或定制的外设,例如等标准接口外设,同时,用户也可以自己使用的逻辑资源,编写各种专用的外设,然后连接到总线上,由进行控制,以实现软硬件的协同工作,在保证系统性能的同时,増加了系统的灵活性。而且,如果单个的软核无法满足用户需求,可以添加多个软核,搭建多核系统,通过多核协同工作,让系统拥有更加灵活便捷的控制能力但是,由于是使用的通用逻辑资源搭建的,相较使用经过布局布线优化的硬核处理器来说,软核处理器够运行的最高实时钟主频要低一些,而且也会相应的消耗较多的逻辑资源以及片上存储器资源,因此方案仅适用于对于数处理器整体性能要求不高的应用,例如整个系统的初始化配置,人机交互,多个功能模块问的协调控制等功能介绍与之间的差异从架构的角度来说,和是统一的,都是由部分和处理器部分组成。在中,嵌入的是公司的硬核处理器,简称技术中,嵌入的是软核处理器,两者指令集不一样,处理器性能也不一样核处理器性能远远高于软核处理器。片上的部分,不仅集成了有双核的硬核处理器,还集成了各种高性能外设,如控制器控制器等,有这些外设,部分就可以运行成熟的操作系统,提供统一的系统,降低开发者的软件开发难度。而软核虽然可以通过配置,用逻辑资源来搭建相应的控制器以支持相应功能,但是从性能和开发难度上来说,基于架构进行设计开发是比较好的选择。另外,虽然片上既包含了有又包含了有,但是两者一定程度上是相互独立的,芯片上的处理器核并非是包含于逻辑单元内部的,和()处理器只是封装到同一个芯片接冂、电源引脚和外设的接口引脚都是独立的,因此,如果使用芯片进行设计,即使不使用到片上的处理器,处理器部分占用的芯片资源也无法释放岀来,不能用作通用的资源。而」是使用通用逻辑和存储器资源搭建的,当不使用时部分占用的资源可以被释放,重新用作通用资源。架构的优势嵌入式处理器开发人员面对的一个最大挑战就是如何选择一个满足其应用要求的处理器。现在口有数百种嵌入式处理器,每种处理器都具备一组不同的外设、存储器、接口和性能特性,用户很难做出一个合理的选择:要么为∫匹配实际应川所需的外设和接口要求而不得不选择在某些性能上多余的处理器要么为」保持成本的需求而达不到原先预计的理想方案。采用集成架构的芯片,用户将不会局限于预先制造的处理器技杺,而是根捃自己的要求定制处理器,按照需要选择合适的外设、存储器和接口。此外,用户还可以轻松集成自己专有的功能(如,用户逻辑),创建一款“完美”的处理器,如图所示,使用户的设计具有独特的竞争优势。介绍vOFLASHlo LIcCPUFLASH1/OSDRAMFPGADSPFPGACPU CPU DSPSDRAM用户所需要的嵌入式设备主控制器,应该能够满足当前和今后的设计功能及性能需求。由于今后发展具有不确定性,因此,设计人员必须能够更改其设计,例如为处理器加入新的功能电路,定制硬件加速器,或者加入协处理器,以达刭新的性能日标,而基于的系统能够满足以上要求。采川芯片,用户不仅可以使川处理器的高性能运算和事务处理能力,还可以根据需要定制功能。在单个中实现高性能处理器、外设、存储器和接口功能,可以降低用户的系统总体成本。开发人员希望快速将产品推向市场并保持一个较长的产品生命周期,避免更新换代。基于的系统在以下几个方面可以帮助用户实现此目标≯缩短产品的上市时间—可编程的特性使其具有最快的产品上市速度。许多的设计通过简单的修改都可以被快速地实现到设计处理器能够运行成熟的操作系统,基于操作系统,用户能够非常简单高效的编写应用程序,加快软件开发周期。而系统的灵活性和快速上市的特性源于提供完整的开发套件、众多的参考设计、强大的硬件开发工具(和软件开发工具(套件。用户可以借助厂商提供的参考设计和易用的开发工具。在几个小吋内就完成自己的设计原型。建立有竞争性的优势一维持一个基于通用硬件平台的产品的竞争优势是非常困难的。而器件,能够充分发挥的可编程特性,设讣独有的硬件加速和协处理逻辑,配合处理器协同工作,具备硬件加速、定制的可裁剪的外设等的系统,具备了竞争的优势>延长了产品的生存时间一使川器件的产品带来的一个独特优势就是能够对硬件进行升级。即使产品口绎交付给客户,仍可以定期升级。这些特性可以解决很多问题:
- 2020-12-06下载
- 积分:1
基于QT的电子地图设计与实现
毕业设计是基于QT的电子地图设计与实现 ,用于C语言的开发。2010届本科生毕业设计目录摘要ABSTRACT前言.1.1概述1.2研究背景1.3研究目标1.4需求分析1.41用户需求分析1.4.2功能需求分析1.5本章小结2qT简介2.1QT的背景介绍2.2qT实现的结构原理.2.3 QT GraphicsⅤ iew Framework简介2.3.1 Graphics view层次结构2.3. 2 QGraphicsItem2.4QT应用程序的实现2.5本章小结3 mapinfo绘制电了地图3.1 Mapinfo professiona1简介122010届本科生毕业设计3.2 Mapinfo地图图表3.3 Mapinfo地图图层与图元.143.3.1地图图层.3.3.2地图图元3.4地图的来源3.5电了地图绘制3.5.1 Mapinfo professional地图绘制工具3.5.2 Mapinfo professional绘制地图3.6来MIF和求.MID文件3.7本章小结204系统框架描述214.1系统模块申非214.2主要功能4.3平台简介224.4UP- TECHPXA270-S核心模块资源234.5本章小结.....245详细设计,,255.1程序流程图...255.2界面设计.....275.2.1主窗体设计..,,,,.275.2.2子窗休设计285.3地图的显示..,,,,,,..,,.292010届本科生毕业设计5.3.1地图坐标转换5.3.2地图图元的显示305.3.3显示效果设计.,,,,,,,,,,335.4单源最短路径算法365.4.1 Dijkstra(迪杰斯特拉)算法365.4.2路径节点的存储,,,,,,,375.5木章小结416测试及运行结果6.1测试目标6.2测试预期结果426.3运行结果.6.3.1地图浏览功能.....436.3.2路径规划功能446.4木章小结看鲁457论文总结46参考文献.47谢辞482010届本科生毕业设计前言1.1概述随着新的ARM芯片不断问世以及这些芯片的价格下降,嵌入式产品开始潜移默化的取代早期的些单片机,并在社会各行各业中占有越来越重要的位置,嵌入式产品也由此成为众多工程师选择开发高端产品的芯片首选。QT具备跨平台,易扩展,界面华丽,性能稳定等优点。因此,以嵌入式处理器作为使件半台,以QT作为程序框架,两者的完美结合必将成为未来技术的发展方向1.2研究背景现在,汽车正在普及,道路不断建设,城际间的经济往来更加频繁,活动的区域也越来越大。为了提高生活质量,大量的休活动、探险活动的举行使我并不局限在自己认识的一小块区域中,不认识道路,找不到目的地的情况也屡有发生。就此,各种各样的导航仪逐渐走进我们的生活。无论仆么导航仪最主要的部分都是电子地图。开发电子地图成为了导航仪的关键。根据调査,电了地图制作困难而且价格相当昂贵,给导航伩的开发带来了很多不便。自主绘制电子地图,编写电子地图应用程疗,不管是从经济上还是研究上都具有非常大的意义市面上的嵌入式产品各式各样,用到的嵌入式操作系统自然也是有所不同。如果拥有一个跨平台的程序的话,那将会给我们的开发节省了大量的时间。QT正是一个支持多平台的C+图形用户界面应用程序框架。它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。Q是完仝面向对象的很容易扩展,并且允许真正地组件编程。所以使用QT作为应用程序框架是一个不错的选择1.3研究目标基于上述背景,开发一个电子地图项目,使用 windOws cD5.0搭配PXA270开发板来构建这个项目。仗用 mapinfo电子地图绘制软件自主绘制电子地图。利用QT4作为系统应用层的程序框架。根据系统的需求,裁减、移植 windOwsce内核。分析系统功能和接口,添加各种驱动程序,如:USB驱动,(∽M口驱动等根据应用程序屮的钶个功能模块,分析各个模块的用户界面接口和对人机交互图2010届本科生毕业设计形化用户界面的接口设计。1.4需求分析1.4.1用户需求分析目前,我们可以通过各种途径接触电子地图,例如以网页形式的电子地图,如 Google地图、 Google earth、百度地图等,以车载GPS导航仪的电子地图,如 garmin饪我游、纽曼、新科、城际通等,还有以手机导航功能出现的电子地图,越来越多的亍杋将支持导航功能,诺基亚2010年在大规模普及手机导航对此,本顶目采用免费版的QT作为程序框架,并且可以跨平台使用,在廾发成本上有着很大的优势。未来几年,配备电子地图的电子产品市场将逐渐走向成熟,市场需求和产品销量会保持大幅增长,产品供应链中的各类企业将获得曰大商机。尤其是随着产品价格的不断下降,这种快速发展的态势公愈加明显。电子地图在中国市场必然会获得更大的发展空间。由此,本项日也适应用户需求,开发电子地图的相关功能:地图显示功能卫星定位功能、路径导航功能、语音提示功能等。1.4.2功能需求分析根据用户需求,和对产品的定位,划分以下功能表1-1用户需求功能支持功能所需硬件1地图显示2实时定位UP- TECHPXA270-S为硬件开发平台3路径导航4语音提示2010届本科生毕业设计攴持功能分析:1.地图显示:显示当前位置地理信息,包括道路、河流、建筑物,以及标志性建筑的名称,可以通过地图了解的所在位置的周边情况。实时定位:通过不断对对COⅧM凵接收到的信息进行分析,获取当前所在位置并且显示在地图的相应位置上3.路径导航:可以设置日的地点,系统将通过路径优先算法显示最优路径,完成导航功能。4.语音提示:通过简单的语言提示来配合路径导航。所需硬件分析:需要的硬件模块在UP一 TECHPXA270-S硬件实验平台上已一应俱全。在此平台上还配制了8英寸的TFT真彩液晶屏,支持640*480的分辨率。UP一 TECHPXA270S在存储系统方面也有着很高的配置,内置了高性能价格比的 NAND FLASH6M内存,支持大谷量的用户差异图形图片和媒休文件的存储。CPU的能力当然是毋庸置疑的, Intel xscale结构芯片的PXA270在各方面都表现了很强悍的能力,在日前市场上来说也是一款很先进的处理器芯片PXA270处理器是 Intel公司目前性能最为强劲的移动处理器,已经成为高端移动设备屮最受欢迎的处理器之一。PXA270最高主频可达624Mz,它引入了X86架构奔腾4系列上的多媒体技术——MⅨ技术,能够大大提升多媒体处理能力,用户通过该技术可以在VGA上面播放高质量的MPG4视频:同时加入了 Inte lSpeedstep动态电源管理技术,在保证CPU性能的情况下,最大限度地降低移动设备功耗。1.5本章小结木章主要介绍本项目的选题背景、意义,选题目标和项目需求分析,根据品市场和本人技术水平情况,按需求划分软件功能模块,还根据软件功能和现有瓷源的性能对使件需求做」详细分析。2010届本科生毕业设计20T简介2.1QT的背景介绍Qt/ Embedded是著名的Qt库开发商 Trolltech公司开发的面向嵌入式系统的Qt版本,开发人员多为KDE项日的核心开发人员。许多基于Qt的XWindow程序可以非常方便地移植到Qt/ Embedded上,与X11版本的Qt在最大程度上接口兼容,延续了在Ⅹ上的强大功能,在底层彻底摒弃了X1ib,仅米用 framebuffer作为底层图形接口。Qt/ Embedded类库完全采用C++封装。丰富的控件资源和较好的可移植性是Qt/ Embedded最为优秀的·方面,使用Ⅹ下的开发工具 Qt Designer可以直接开发基于Qt/ Embedded的UI(用户操作接口)界面。越来越多的第三方软件公司也开始采用Qt/ Embedded廾发嵌入式下的应用软件。2.20T实现的结构原理Qt/ Embedded是 Trolltech公司开发的面向嵌入式系统的Qt版本,与Ⅹ11版本的Qt在最大程度上接口兼容,采用帧缓存( framebuffer)作为底层图形接口。Qt/ Embedded类库完全采用C艹+封装,并且有着丰富的控件资源以及较好的可移植性,大范围的Qt/ Embedded apl可用于多种开发项∏。Qt/ Embedded的实现结构如下:QT的应用程序QT的图形事件QT/EmbeddedFrameBuffer设备驱动操作系统硬件平台图21QT的实现结构图2010届本科生毕业设计Qt/ Embedded的底层图形引擎基于 framebuffer。 Framebuffer驱动程序的实现分为两个方面:一方面是对LCD及其相关部分的初始化,包括画在缓冲区的创建和对DMA通道的设置;另外一方面是对画面缓冲区的读写,具体到代码为read、 write、 Iseek等系统调用接凵。至于将画面缓冲区的内容输出到LCD显示屏上,则由硬件自动完成。对于软件来说是透明的。当对于DMA通道和画面缓冲区设置完成后,DMA开始正常工作,并将缓冲区中的内容不断发送到LCD上。这个过程是基于DMA对于LCD的不断刷新的基于该特性, framebuffer驱动程序必须将画面缓冲区的存储空间(物理空间)重新映射到一个不加高缓存和写缓存的虚拟地址区间中,这样能才保证应用程序通过map将该缓存映射到用户空间后,对于该画面缓存的写操作能够实时的体现在LCD上。QT程序是基于C+编写的,图形用户界面编程同时需要运行效率和高水平的灵活性。Qτ通过结合C+的速度为这一领域提供了Qt对象模型。Qt把下面这些特性添加到了C++当中和被称为信号和槽的非常强大的机制;可查询和可设计的属性项;强大的事件和事件过滤器:根据上下文进行国际化的字符串翻译;完善的时间间隔驱动的计时器等。许多Qt的特性是基于Q0 bject的继承,通过标准C++投术实现的。Q^ pplication是必须构造的吐t主对象,需要在一开始的时候就构造这个对象,并把命令行参数传递给这个对象,每个Qt应用程序有且仪有一个APplication对象,该对象必须在做其他事之前创建,这个对象处理一些底层操作,如事件处理、字符串本地化和控制界面外观等。信号和信号处理函数是(UⅠ应用程序用来响应用户输入的基本机制,乜是所有GUI库的核心特征,Qt的信号处理机制由信号( signa1)和槽(slot)构成,它们相当于GTK+中的信号和回调函数。在Qt中回调函数就叫做槽。信号和槽用于对象间的通讯,它的基本语法为:connect(objectl, signal, object2, slot1)2.3 QT Gr aphics view Framework简介2.3.1 Graphics view层次结构Graphics view提供一个强人的自定义2D平面图元并处理它们之间相互作用的接口,以及将一个这些图元视化的view控件,它支持旋转和缩放。该框架还包含个事件传递机制,允许画布和画布上的图元之问精确
- 2020-12-08下载
- 积分:1