基于ARM+FPGA架构的三维图形加速系统

发布者:来来去去来来最新更新时间:2015-04-14 来源: eechina关键字:ARM  FPGA架构  三维图形  加速系统 手机看文章 扫描二维码
随时随地手机看文章
引言
 
在传统的嵌入式系统上,三维图形处理通常由嵌入式CPU独自在软件上完成。但随着三维图形应用程序功能的不断强大,面对图形处理的巨额运算量,CPU变得不堪重负。此时,需要使用特定的硬件设备来为嵌入式CPU承担图形处理的任务。
 
具有三维图形硬件加速能力的ARM+FPGA架构嵌入式图形系统就是其中一种解决方案。其中,ARM处理器负责运行嵌入式操作系统、执行上层图形应用程序,而三维图形处理所需的大量运算则由FPGA实现的GPU(图形处理单元)进行。
 
图形API简介
 
在图形系统中预先定义了一组图形API,作为一个抽象层将图形应用程序和图形系统的具体实现隔离开来。具体的图形应用程序都将通过这些图形API来完成所有与绘制图形相关的工作。这样,同样的应用程序就可以在不同的目标图形系统上运行。
 
目前应用较为广泛的标准图形API主要有Direct3D和OpenGL。OpenGL定义了与具体硬件实现无关的软件接口,并且不受制于具体的窗体系统。
 
本文选用23条OpenGL中最常用的API作为本系统的图形API。在执行应用程序时,具体的图形API被转换成GPU可以处理的渲染列表数据格式,从而将计算任务转交由GPU完成,实现对三维图形处理的硬件加速。
 
系统硬件设计
 
系统硬件结构
 
本文设计的嵌入式图形系统由基于ARM处理器的最小系统、FPGA实现的图形加速、LCD控制器等功能模块,以及常用外设接口电路组成,如图1所示。
 
1.gif 
图1 系统硬件结构
 
基于ARM处理器的最小系统是本系统的核心模块,主要由嵌入式处理器、系统内存SDRAM和FLASH存储器组成。SDRAM为处理器运行操作系统和执行应用程序提供内存空间,FLASH用来存放系统引导代码、操作系统内核和应用程序。
 
图形加速模块是使用FPGA实现的嵌入式GPU,是系统能够实现硬件加速的关键部件。它通过内部图形处理流水线处理CPU生成的渲染列表,并最终形成像素数据写入帧缓冲SRAM中供LCD进行显示。该模块在三维图形处理中使用固定功能的图形处理流水线,如图2所示。
 
2.gif 
图2 图形处理流水线示意图
 
图形加速模块在一片SRAM中生成完整帧数据后将其控制权交给LCD控制器,并使用另一片SRAM继续下一帧数据的计算。在新的一帧数据完成后便再次与 LCD控制器交换控制权。LCD控制器通过SRAM仲裁模块从当前显示的帧缓存中读出帧数据,生成符合LCD显示屏要求的时序,完成三维数据的显示。
 
系统中存在两组LCD总线。一组是ARM处理器提供的LCD总线,用来显示嵌入式操作系统的图形用户界面;另一组是进行三维图像显示的LCD控制器的LCD总线。总线切换模块负责两类总线的切换,将合适的LCD总线挂接到LCD屏上进行显示。
 
系统硬件实现
 
本文选用S3C2410嵌入式处理器和Cyclone II系列FPGA实现图形加速以及其他功能模块,辅以LCD屏、串口等外围电路实现整个图形系统。硬件电路如图3所示。
 
3.gif 
图3 系统硬件电路
 
电源设计
 
本系统需要多个不同电压值的直流电源供电,包括5V、3.3V、1.8V和1.2V。其中5V电源从外部直流电源直接引入,而其他电压值则由5V电压变换得到。
 
S3C2410的内核电压为1.8V,外部I/O和存储器电压为3.3V。系统选用低压差稳压器AS1117实现这两种电压的转换,固定输出时只需三个引脚,如图4所示。
 
4.gif 
图4 1.8V电源电路
 
本文使用TPS70345为FPGA提供1.2V内核电压和3.3V IO电压。
 
ARM与FPGA接口电路
 
生成三维图形时,嵌入式微处理器上运行的图形应用程序生成三维图形的渲染列表,并将渲染列表写入到FPGA的渲染列表缓冲区中,等待图形加速模块的处理。 ARM与FPGA接口电路既要保证可以完成渲染列表的写操作,又要能够对FPGA中总线接口模块、图形加速模块、LCD控制器等的内部寄存器进行读写操作。接口电路如图5所示。
 
5.gif 
图5 ARM与FPGA接口电路
 
系统软件设计
 
系统软件架构
 
本文使用FPGA实现整个三维图形处理流水线,由硬件完成三维图形生成和处理。运行在操作系统上的图形应用程序通过调用图形API实现具体应用,而驱动程序将图形API的调用转换成渲染列表,从而将具体的三维图形处理任务交给硬件完成,如图6所示。
 
6.gif 
图6 系统软件架构
 
考虑到嵌入式图形系统除了进行三维图形处理之外,还应当能够为用户提供友好的用户图形操作界面,本文采用了Windows CE操作系统。
 
驱动程序设计
 
设备驱动程序在操作系统和硬件设备之间建立了一个桥梁,让操作系统能够识别设备并为应用程序提供设备服务。
 
本文中FPGA实现的图形加速模块作为一个设备挂接在系统中。系统在软件上只需要将渲染列表写到该设备的地址空间,因此本文使用了简单的流式接口驱动,所有的流接口驱动程序都使用相同的一组流接口函数。
 
渲染列表的传递是不需要反馈的,系统将渲染列表写入设备(GPU)后并不需要从设备中获取数据,因此流接口函数GPU_Read()并不需要实现具体功能,只在GPU_Write()中将渲染列表写入到设备中。另外,系统在普通图形界面和三维显示两种显示模式下使用的是不同的LCD控制器。前者使用 S3C2410中集成的LCD控制器,而后者使用的是FPGA模块中实现的LCD控制器,两种模式下通过LCD总线切换模块进行切换。
 
结语
 
本文设计了基于ARM和FPGA的嵌入式图形系统,使用FPGA在硬件上实现三维图形处理,缓解嵌入式CPU在处理三维图形时因计算量过大而导致系统效率降低的问题。图像显示符合人眼对图像连续性的要求。另外,作为嵌入式图形系统,本文选用通用的图形应用程序接口标准OpenGL作为图形API,使得系统具有较好的通用性和实用价值。
 
参考文献
 
1. 汪小澄,池诚. 基于S3C2410嵌入式系统的网络接口设计[J]. 微计算机信息,2007,23(5-2),131~133
2. 蔡弘,戴胜华. 基于ARM+FPGA的高速信号采集系统设计[J]. 仪器仪表标准化与计量,2007(6),38~40
 
关键字:ARM  FPGA架构  三维图形  加速系统 引用地址:基于ARM+FPGA架构的三维图形加速系统

上一篇:基于ARM+FPGA架构的三维图形加速系统
下一篇:使用BSRR和BRR寄存器直接操作STM32的I/O端口

推荐阅读最新更新时间:2024-03-16 13:58

君正:MIPS架构授权促成本降至ARM一半
    获MIPS架构授权 较ARM生产成本降50%   周生雷谈起君正并没有刻意的拔高,他形容的君正就是一群草根工程师创建的技术公司,要在CPU领域内做出自己的成绩,他承认,目前ARM架构是市场主流,也有很多国内的电子公司用ARM内核开发出了不错的产品,但他认为,切入移动互联网领域必须要有所差异化,必须在性能和功耗上超越对手,否则难以生存。   他介绍,目前移动计算领域主流CPU架构有三大架构,X86架构,代表厂商是英特尔;ARM架构,代表厂商是高通、苹果;MIPS架构的代表厂商就是君正。其中X86架构的优势是性能与工艺;ARM架构的优势是功耗优势、成本优势和先发优势;MIPS的优势是效率更高。   据悉,在移动CPU领域,厂商生
[手机便携]
ARM之未定义指令异常和SVC异常
异常向量表的概述 在上一章,我们学习了建立异常向量表,这里我们可以通过看arm的手册,我们每一种异常都对应一个工作模式,下面我就来尝试触发一下未定义指令异常和SVC异常 异常发生的说明 简单的来说就是先保存现场,之后恢复现场 保存现场:我们使用的是arm指令集,所以我们先将pc保存在lr中,并将pc-4(原本写pc默认的是pc+4),再将cpsr寄存器保存在spsr中 恢复现场:将lr写入pc,spcp写入cpsr,(通过ldm指令) int main(void) { rebuild_vectors_table(); __asm__ __volatile__( .word 0x54546411nt .w
[单片机]
<font color='red'>ARM</font>之未定义指令异常和SVC异常
英伟达收购ARM,道路曲折
去年9月,英伟达宣布将以400亿美元收购ARM,如果这笔交易达成,将创下半导体行业单笔并购交易金额的记录。不过,这一交易从宣布之初就备受关注和争议。 英伟达创始人兼首席执行官黄仁勋说收购ARM是一生仅有一次的机会。ARM联合创始人Hermann Hauser却说这笔收购会是一场灾难,还建立了“Save ARM(拯救ARM)”的网站,呼吁更多人参与阻止ARM卖给英伟达。 这笔交易能否最终达成的关键是各国监管机构,Seeking Alpha网站的作者Paulo Santos对于几个重要国家和地区是否会通过这笔并购进行了分析,雷锋网进行了不改变愿意的编译。 尽管交易价格高昂,但英伟达从软银收购ARM看起来十分有趣,因
[嵌入式]
英伟达收购<font color='red'>ARM</font>,道路曲折
ARM9的bootloader---vivi
vivi是韩国mizi 公司开发的bootloader, 适用于ARM9处理器。Vivi有两种工作模式:启动加载模式和下载模式。启动加载模式可以在一段时间后(这个时间可更改)自行启动linux内核,这时vivi的默认模式。在下载模式下,vivi为用户提供一个命令行接口,通过接口可以使用vivi提供的一些命令,如下:   命令   功能   Load   把二进制文件载入Flash或RAM   Part   操作MTD分区信息。显示、增加、删除、复位、保存MTD分区   Param   设置参数   Boot   启动系统   Flash   管理Flash,如删除
[单片机]
ARM CEO:没有绝对安全 芯片漏洞可能再次发生
在承认现代智能手机芯片存在重大安全漏洞后,ARM公司的负责人又发布更多令人沮丧的消息。 ARM公司首席执行官Simon Segars在近日接受采访时表示:“现实情况是,可能还有其他一些东西,比如多年来一直被认为是安全的。”“如果一个人的思维被扭曲到思考安全威胁的程度,他可能会找到其他方法来利用那些原本被认为是完全安全的系统。” 今年1月初,有消息称,最新发现的大多数现代处理器的漏洞可能会让你的电脑或手机容易受到攻击。英特尔、ARM等芯片采用的芯片设计技术可以让黑客从设备的内存中获取私人数据。这一问题影响了处理器的运行长达20多年,黑客可以在应用中获取密码、加密密钥或敏感信息。 漏洞中尤其具有毁灭性的,被称为“幽灵”(Spectre
[半导体设计/制造]
Mali-D71 与新一代显示解决方案
此前 几个月, 我们推出了新一代显示处理器 特别的 预览 ,代号为“Cetus” 。当时 , 我们已经明确讨论过该款显示处理器可以为整体的图形流水线和Mali多媒体家族 (包括图形,视频和显示处理器)所 带来 的 改善,尤其 我们的技术 在该领域 所 取得的重大 飞跃 。 随着 Mali-D71 显示处理器正式发布 ( 即当时的 Cetus ), 我们现在可以详细介绍 这款 名为“Komeda”的全新架构,以及它为支持最新、最复杂 用户场景 所提供的 令人惊叹的 显示技术框架。 我们此前已经就 相对上一代产品的 技术创新所带来的惊人回报和 相应的 架构技术变革展开了深入讨论。 此次 ,我们将讨论 具体的 性能提升以及为终端用
[家用电子]
Mali-D71 与新一代显示解决方案
SCA平台ARM组件的设计
软件无线电是一个无线通信系统(从低容量的移动电话到高容量的多信道无线电台)。在这个系统中,可通过在灵活的信号处理硬件上运行专业的软件来实现专用的通信和传输特性。它和传统依靠单一的硬件非常不同,其好处是可复用或共享单一系统平台来完成多种通信目的。实际上,在底层硬件物理限制内,任何通信任务都可以通过加载软件来实现,包括广泛的领域升级和维护。 SCA的出现使得软件无线电的民用成为现实,SCA是通信平台组件可移植性、可交换性、互用性、软件可重用性、体系结构可扩展性的一个标准,这个标准主要体现在以下4个方面:1)使移植费用降到最低;2)使一个波形应用在不同厂商的多个平台(比如操作系统、硬件、主机环境)上能实现最大无缝移植;3)多使用
[单片机]
SCA平台<font color='red'>ARM</font>组件的设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved