FPGA的应用领域
目录1.视频图像处理领域1.1视频编解码1.2目标识别1.3图像处理支持资源 2.通信领域2.1有线通信2.2无线通信 2.3通信领域支持资源 3. 数字信号处理领域3.1数字处理系统模型 3.2 DSP实现方式 通用处理器ASIC硬件专用的数字信号处理器(DSP处理器)专用的FPGA 硬件3.3 FPGA做数字信号处理优势 3.4DSP支持资源 4. 嵌入式领域4.1创新挑战和机遇 4.2嵌入式支持资源
FPGA最初的应用领域也是传统的应用领域,通信领域,但随着信息产业以及微电子计数发展,FPGA的应用范围编辑航空航天、汽车、医疗、工业控制等领域。下面分4个方面介绍FPGA的用武之地:视频图像处理、通信领域、数字信号处理和其他领域。
1.视频图像处理领域视频图像处理是多媒体领域中的热门技术,因为视频图像处理的数据量越来越大。基于这些大量的数据,可分为视频编解码和目标识别两大类。
1.1视频编解码从信道容量的角度考虑数据的传输带宽,如何压缩图像,采用什么样的算法这已经相对成熟了。目前正在用的视频编解码器可达数百种,但常用的还是少数的几种。
MPEG-2
比如很老但还在使用的MPEG-2,主要在广播信号和DVD电影的编码,但随着高清DVD逐渐采用VC-1和H.264标准进行编码,MPEG-2将会逐渐退出。
MPEG-4
相比MPEG-2,其能够以更低的速率传送视频却能保持相同的图像质量。它引入了描述自然的或合成的 对象等新概念来构成场景,并支持与用户交互,给视频节目制作商提供了改进的内容保护功能 和创建更加灵活、可复制内容的能力。 这些优点,使得其在卫星视频传送中得到应用
H.264
它其实是MPEG-4中的第十部分,主要以其高数据压缩率和质量走红。
还有一些JPEG等算法。
1.2目标识别目标识别主要是用来提取相关信息,比如图像边缘提取,同时结合一些人工智能等方面的知识,相对来讲还是处在一个快速发展阶段,也是图像处理研究的前沿内容。特别是移动目标检测与跟踪技术,在机器人视觉、交通检测、机器导航等民用领域有着广泛的应用,同时在火力拦截、导弹电视和红外视频制导等军用方面也发挥着重要作用。
可识别的视频行为包括:突然入侵、移动物体、运动路径、遗留物体、指向接近、移走物体六大类检测。试想,动车上应该也有这个视频检测技术,车头应该有检测多少范围内前方是否有车,当然这肯定不是视野范围内的,采用雷达或者其他测试手段,但是肯定有视频图像传输与识别制导系统。原因在这不探讨,但是既然发生这样撞尾事件,我们视频检测制导还是很有我们需要提高的,去努力的方向。
有人会说,不是有专门的视频处理的DSP器件么,DSP书上说它做这个,FPGA也说做这个,到底是哪个做这个?似乎有自夸自的嫌疑。对传统上是采用DSP处理,只是我们列出的这些算法和应用对计算性能的要求已远远超出了传统DSP处理器的能力,即使采用高端的DSP处理器,如果将DSP单做这部分的话完全可以,只是在应用中,DSP做的事情比较多,这个时候,FPGA就可以用做协处理器来承担性能关键的处理工作。与标准DSP处理器相比,FPGA构造的并行计算特性可支持更高的采样速率和更大的数据吞吐能力,同时计算功效也更高。
1.3图像处理支持资源(1)相关IP核
Xilinx和ALTERA都提供了视频IP核组,以供视频监控系统中快速设计、仿真、实现和验证视频和图像处理算法,其中包括设计用的基本基元和高级算法。
CCM、CFA插值、DPC:
GammaCorrction
等等大量的IP资源。
2.通信领域通信领域是FPGA应用的传统领域,到如今依旧是FPGA应用的热点和研究的热点。这里将无线通信领域分为有线通信领域和无线通信领域介绍。
2.1有线通信有线通信,顾名思义,借助线缆传送信号的通信方式。线缆可以指金属导线、光纤等有形媒质传送方式,信号可以指代声音、文字、图像等。 有线通信的另一种叫法称为固网,我们不得不信,很多的进步都是基于很大的欲望的驱使,仅仅是十几年的时间,全世界被一个叫做 Internet 的网络给连接在一起。这是有线通信的最大的一个实例,当然有线通信的例子还有一些我们近的不能再近的有线网络,最开始用的座机电话网、有线电视网等。 在维持和保证这些网络给我们带来幸福的同时,无形的促进了一些技术的产生,这些技术包括交换机、路由器、防火墙、网关、数据收发器、高速接口等网络设备方面的开发技术。有线网络的网络质量的好坏直接决定于这些网络设备的提高。当年做网络设备的中兴、华为如今已成为该领域的巨头。 有线网络如火如荼的发展了十几年至到今天,虽说已经比较成熟了,但是依然充满着很大的挑战和冲击,电信市场正在经历新一轮整合发展时期,因特网的需求仍在继续推动产业的创新。目前,家庭视频和高级商业服务业务的快速发展对全球电信网络的带宽提出了更大挑战。这一挑战始于网络接入边缘,并直接延伸到城域网络和核心网络。为了响应上述需求,运营商正在追求包括40GbpsSONET(OC-768和OTU3)以及40G以太网在内的更高的端口速率。越来越多的运营商更是将瞄准了100G端口速率。 商业和经济的发展形势迫切地需要可扩展的、灵活的且高效益成本的技术解决方案,从而满足电信行业不断变化的需求和标准。为了跟上这些变化,加快超高带宽系统的部署,有线通信设备生产商正在从传统的专用集成电路(ASIC)和成品(ASSP)芯片转向可编程硬件平台和IP解决方案。
2.2无线通信在有线通信的基础上,人们在传输上为了更方便、距离更远,无线通信技术在以前所未有的速度向前发展。无线发报机、BB机、大哥大这些是我们很早用到的无线通信终端,再到我们现在用的2G、3G手机,已足以见得发展的迅猛。 无线系统通信类型可以分为微波通信系统、无线电寻呼系统、蜂窝移动通信、无绳电话系统、集群无线通信系统、卫星通信系统、分组无线网等典型的通信系统,其中的移动通信技术在世界范围内获得了广泛的应用,从以模拟系统为特征的第一代带今天的一征缴频分复用接入(OFDMA)和多输入多输出(MIMO为特征的第四代数字系统。其表现就是要求越来越高的数据服务。
为了满足我们这个高数据率服务,有越来越大的宽带无线接入技术的需求就浮出了,这就需要一个可以提供较宽处理带宽,具有产品及时面市优势的灵活硬件平台来满足这些需求。 以上是从大方向的角度考虑FPGA在今后无线通信应用领域的需求,细化起来,就设计到标准通信系统的各个模块了,标准的数字通信系统框图如图:
从图上分析信源、信宿、信源编译码,信道编译码一般属于基带,调制又可分为一级调制、二级调制,通过一级调制将信号调制到中频,通过二级调制将信号调制到可以发射出去的射频。
在基带中涉及到如何将信号采样,信号量化;各种信源编码译码算法,比如简单点 等长码,复杂点变长码,典型的是这个Huffman编码,图像数据的话比如MEPG-2、H.264等; 信道编码译码算法,又分为线性分组码、循环码、BCH码、卷积码、纠正码、交织、Turbo码等等,典型OFDM系统中的用到这个RS码、LDPC码、交织等信道相关处理。
调制过程中用到这个调制方式,采用调频、调幅还是调相,调相是采用是QPSK还是用更高效率的NQPSK,以及相对应的解调处理;还包括这些功能模块在系统中数据传送的通信接口协议,低速的有这个典型的RS232,高速的有这个百兆千兆以太网、吉比特IO、光纤等等。从上面的分析看出,FPGA在通信系统领域的使用说虽是传统依然热是有道理的,还需大家的力量融入其中。
2.3通信领域支持资源由于FPGA在通信领域的成熟性,不管是哪个FPGA厂商,对通信领域的IP的支持都是很丰富的,这里将Xilinx和altera两大巨头在这个领域的支持的IP陈列出来,具体的IP核功能描述大家可以参看附录XX。
Altera IP:略
3. 数字信号处理领域数字信号处理(Digital Signal Processing,DSP)。我们最初使用的系统都是模拟系统,比如第一代的移动通信系统,以及最初用的模拟电视,还是黑白的。随着数字时代的到来,很多模拟系统以及模拟产品都转向了数字化,手机上也弄了一个模拟接收器,开始转向第二代移动通信系统。数字系统相比于模拟系统有如下几大优点:
(1) 抗干扰性强;(2) 便于进行各种数字信号处理;(3) 易于实现集成化;(4) 经济效益超过模拟通信(5) 传输与交换可结合起来,传输电话与传输数据也可以结合起来,成为一个统一体,有利于实现综合业务通信网;(6) 便于多路复用;
3.1数字处理系统模型数字系统虽然有这些优点,但是我们实际传送过程中还都是模拟信号,包括最开始的信号来源,和最终传送发送出去的信号都是模拟信号。所以我们要进行数字处理,就必须采用两种器件将我们这个模拟世界和数字世界给连接起来,这两种器件分别是模数转换器ADC和数模转换器DAC。我们可以得到典型的数字信号处理的一个模型,如图。
模数转化器ADC周期性的对输入的模拟信号采样,并做量化,其实ADC是由采样保持和量化编码器构成的。采样需要满足奈奎斯特采样定理,采样位宽数和采样速率决定了后期数字信号处理的精度。 采样得到的数字数据后,开始在做DSP处理了,应用不同,处理的算法和过程就不一样,目前数字信号可以干的事情可以列表如表。
从表中可以看出,广泛的看几乎是采用数字的系统和产品应用里都涉及到数字信号的处理,包括表中还列出了前面我们讲到的通信领域和视频图像处理领域相关的应用,同时表中列出了通用领域的一些算法,这是数字信号处理较普遍性、较专对性的。经过数字信号处理之后,得到的仍然是数字信号,数模转换器DAC将会对这些数字信号进行模拟化后发送出去,在通信过程中一般是在射频或是中频做这个处理。
3.2 DSP实现方式讲到数字信号处理的实现方式很多人的第一反映就是数字信号处理器,就是我们这个硬件DSP。没错它是一个专门做数字信号处理的,但是除此之外,其实还有几种做数字信号处理的方式,所以在本节最开始的时候就讲到大家要区分一下我们这里数字信号处理DSP和数字信号处理器DSP,以免内心一直存在这么一个纠结的问题影响这一节的学习。
除了专用的硬件DSP外,通用微处理器、专用的ASIC硬件、还有专用的FPGA也可以做数字信号处理。我们来一一分析一下。
通用处理器首先是通用微处理器,也可以称为中央处理器(CPU)或者微处理器(MPU),通过在处理器中运行适当的DSP算法可以执行DSP任务。特别是在近几年来很火的GPU,这个专门做图像处理的处理器里,它内部采用很多个处理器并行操作,在数字图像的相关处理可谓相当的专业,在一些高端显卡里面一般都配置有GPU。
ASIC硬件其次是专用的ASIC硬件,这一块主要是客户化的执行DSP任务的硬件实现,相对来说,实现的功能单一,只能实现实现定义好的功能。这一类的器件比如数字滤波器芯片、数码相机里的专用图像处理芯片等等。但是优点是功能经过全面的验证,并优化后,做成ASIC化,运行非常稳定,速度也非常快。
专用的数字信号处理器(DSP处理器)第三种就是专用的数字信号处理器,它是一种特殊的微处理器芯片,经过了专门的设计,执行DSP任务时比通用的微处理器要快更高效,同时也比专用ASIC更加灵活。那么它特殊在哪里呢?在我们上一小节列举的那些DSP算法中,有一个共同地方就是,需要大量的乘法和加法来完成,再怎么复杂的算法也都是有许许多多的这样的乘加来构成的。而乘法在硬件里用逻辑来搭建的话不管是面积上还是速度性能上都不是很理想,在通用的微处理器里,即使有硬件乘法器,数量也是有限,做其复杂算法来,速度性能上还是欠佳。于是硬件DSP这样拥有大量的乘加结构的处理器出现了,这就是它的特殊之处。
缺点:尽管是专门做数字信号处理的器件,但是它依然存在问题,针对它的开发依然是基于串行的任务队列的软件模式开发,效率和灵活性依然有限。
专用的FPGA 硬件第四种就是专用的FPAG硬件,刚才我们有讲到列举的那些DSP算法的一个共同特点是大量用到乘加操作,如果想要把DSP算法做好,确实是需要这些做这些乘加操作的硬件支持。细心的读者会发现,这里说的是专用的FPGA硬件,和之前在FPGA原理里提到的各种FPGA并没有很大的出路,只是在它们的基础上再添加了这些专用用来做DSP的乘加硬件,如图
专用来做DSP的硬件用FPGA来做数字信号处理的好处在于,完全是硬件化并行化编程操作,可以在速度和面积之间的转变有很大的灵活性,在下一节里我们将通过一个例子来看看它的体现。
3.3 FPGA做数字信号处理优势这里给出DSP处理的最基本的乘加例子,实现的算方表达式如下:
Y=(A1∗A2)+(A3∗A4)
采用FPGA的并行机制,假设乘法器都是并行操作,我们得到如下图实现的电路。从图上我们看到,这种方式执行的时间相当与一个乘法器和一个加法器实现的时间,速度非常快,但是他却消耗了两个乘法器和一个加法器。
由于FPGA的编程的灵活性,我们也可以采用 资源共享 的方式来得到一个 串行的实现电路
在图中可以看到,它消耗了两个二选一多路器、一个乘法器、一个加法器和一个触发器。虽然多了两个二选一多路器和一个触发器,但是这资源比乘法器的资源还是节约了不少。但是它的速度就降下来了,通过开关Sel来控制,先做A1和A2的乘法,结果在时钟驱动下保留在寄存器中,然后翻转Sel,再做A3和A4的乘法,结果和上次运行的存放在寄存器中的结果做加法,在第二个时钟驱动下存储最终结果。这样共享用一个乘法器,速度相比第一种情况慢,好的地方就是节约了面积。但是需要提的是,即使是这样的共享式的实现速度也会比DSP专用芯片的软实现速度要快。
相比之下得出,采用专用的FPGA做DSP,不但可以在速度和面积上灵活调节,至少实现速度还是比专用的DSP要快一点。通常我们很多场合,专用DSP的使用还是如日中天,一个原因是我们专用的FPGA的做DSP的资源还不是很富足,二个原因是专用DSP的开发采用的是软件式开发,而FPGA采用的是硬件开发,这对很多工程师来讲还是会选择前者的,第三个原因是这个成本问题,毕竟传统的专用的DSP芯片比专用的FPGA芯片要便宜。
3.4DSP支持资源各FPGA厂商对数字信号处理的资源支持还是比较强大的,这包括前面提到的在通信领域和图像处理领域提供的支持资源,有相关的IP核、相关的使用工具和一些参考设计方案,这里我们就不再重复,只是做一些补充。
4. 嵌入式领域
传统的 控制系统 都是在 微处理器 的控制下执行各种控制和数据的处理应用,这些微处理器包括单片机、ARM、PowerPC等等。随着FPGA的使用普遍性,越来越多的系统 用FPGA作为高速数据接口 粘合以及做一些协同处理。出现了微处理器+FPGA的片上系统的架构。 通常这样的架构是在单板上设计,如下图 所示的一个系统:
单板系统从图上看到,除了微处理器外还有DSP器件、FLASH与SDRAM存储器。系统安排 CPU做整体的控制 ,FPGA做一些接口逻辑粘合和一些信号的预处理, DSPs做一个复杂的算法 ,FLASH和SDRAM分别作为程序存储和数据缓存。这样的系统安排在一块或者数块PCB板上,不仅调试难度大,而且系统维护也不是方便。关键的问题是电路板上如果有这么些器件的话,成本是一个问题,而且占用了相当的面积,增加了很多焊点,每一个焊点都是对电路的稳定性构成威胁。
于是,提出了一种 基于FPGA的片上系统的替代的方案 ,如图所示
FPGA内嵌DSP和CPU在FPGA内部集成了CPU、DSP以及各种接口控制模块,对有些存储量要求不大的系统甚至外部的FLASH和SDRAM都集成了。这样做的思想会给带来带来哪些挑战和机遇呢?这是我们接下来需要探讨的问题。
4.1创新挑战和机遇传统的嵌入式开发完全是纯软件形式,而在FPGA平台上,首先要面对的是怎么去规划FPGA,哪些是作为CPU,如何实现?其实,系统中有硬件开发部分和软件开发部分,如何在设计的时候支持这种硬件开发语言和软件开发语言混合验证,以保证系统正常工作?当然这些问题在现在来讲已经解决了,但是我们能够带着这些问题来学习在后面的知识,这些问题在后面支持资源里都能够得到解答。 那么机遇在哪?刚才有提到,首先如果一个系统有如图似的需求的时候,采用FPGA内嵌的方式占用的板级面积小,焊点少系统稳定,同时成本相比低,当然这里并不包括一些只需控制器做一些控制的系统和产品,如果将FPGA纯当一个控制器用的话,成本相对单片机、ARM来说还是有些高,这也是FPGA开发的一个问题,但是低端的FPGA芯片也能支持嵌入式处理器,资源有限。当哪天FPGA价格能够等同于这些微处理器的时候,这些微处理器也将面临退役了。其实是它可以很灵活的配置硬件外设,用来做控制系统验证,对系统构架设计者来说,非常有用。最后是对一个工程师来讲,不但要会做硬件程序开发还得会软件开发,于公司来讲,更愿意招这样的全才。 基于FPGA的嵌入式的优点只有用的时候才能真正感受,同时,你也能感受其缺点。虽说在建好硬件平台的之后是软件开发,但是如果你是一个习惯于软件开发的工程师,相信这里的软件开发会让你的意志力得到很大的提高,这种方式软件开发编译过程比传统嵌入式开发要满很多,这是各厂家有待需要提高的。
4.2嵌入式支持资源(1)硬核与软核
硬核指的是一种专用的预定好的硬线逻辑块实现的内核,各好的理解就是直接将那位微处理器给放到FPGA芯片里。目前主流的FPGA厂商都会选择一个特定的处理器来实现硬核。如下表,开发者可以直接在相关开发平台上使用这些硬核。
软核与硬核不同,是将一组逻辑资源块配置成一个微处理器。同时,还提供了很多外围设备,比如定时器、中断控制器、各种内存控制器、各种通信接口驱动等软核,注意这里指代的软核包括以RTL级网表形式,也包括布局布线后的LUT级形式。 需要说明的是,相比于硬核,软核的速度要慢一些,这很好理解,但是软核更简单。在资源允许的情况下,我们可以配置多核,这个是硬核不行的,有多少个硬核你只能用几个。同样,主流的FPGA厂商也会做一个软核,如表 所示,其中NIOS是有16位和32位两种架构,分别支持16位和32位数据宽度,而MicroBlaze只有32位的架构,Q90C1XX确是一个9位的微控制器。
人工智能技术应用的领域主要有哪些
随着智能家电、穿戴设备、智能机器人等产物的出现和普及,人工智能技术已经进入到生活的各个领域,引发越来越多的关注。那么,人工智能目前都应用在哪些领域,运用了怎样的技术原理呢?
什么是人工智能?人工智能是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学,是认知、决策、反馈的过程。曾经有很多人戏称,人工智能就像一列火车,你苦苦期盼,它终于来了,然后它呼啸而过,把你抛在身后。虽然这是一种笑谈,但也反应了人工智能技术发展的迅速和无法想象的快,可能一个不小心,你就被远远甩在身后。
##人工智能技术的细分领域有哪些?人工智能技术应用的细分领域:深度学习、计算机视觉、智能机器人、虚拟个人助理、自然语言处理—语音识别、自然语言处理—通用、实时语音翻译、情境感知计算、手势控制、视觉内容自动识别、推荐引擎等。
1、深度学习深度学习作为人工智能领域的一个应用分支,不管是从市面上公司的数量还是投资人投资喜好的角度来说,都是一重要应用领域。说到深度学习,大家第一个想到的肯定是AlphaGo,通过一次又一次的学习、更新算法,最终在人机大战中打败围棋大师李世石。百度的机器人“小度”多次参加最强大脑的“人机大战”,并取得胜利,亦是深度学习的结果。
深度学习的技术原理:
1.构建一个网络并且随机初始化所有连接的权重;2.将大量的数据情况输出到这个网络中;3.网络处理这些动作并且进行学习;4.如果这个动作符合指定的动作,将会增强权重,如果不符合,将会降低权重;5.系统通过如上过程调整权重;6.在成千上万次的学习之后,超过人类的表现;
2、计算机视觉计算机视觉是指计算机从图像中识别出物体、场景和活动的能力。计算机视觉有着广泛的细分应用,其中包括,医疗成像分析被用来提高疾病的预测、诊断和治疗;人脸识别被支付宝或者网上一些自助服务用来自动识别照片里的人物。同时在安防及监控领域,也有很多的应用……
计算机视觉的技术原理:
计算机视觉技术运用由图像处理操作及其他技术所组成的序列来将图像分析任务分解为便于管理的小块任务。比如,一些技术能够从图像中检测到物体的边缘及纹理。分类技术可被用作确定识别到的特征是否能够代表系统已知的一类物体。
3、语音识别语音识别技术最通俗易懂的讲法就是语音转化为文字,并对其进行识别认知和处理。语音识别的主要应用包括医疗听写、语音书写、电脑系统声控、电话客服等。
语音识别技术原理:
1、对声音进行处理,使用移动窗函数对声音进行分帧;2、声音被分帧后,变为很多波形,需要将波形做声学体征提取,变为状态;3、特征提起之后,声音就变成了一个N行、N列的矩阵。然后通过音素组合成单词;
4、虚拟个人助理说到虚拟个人助理,可能大家脑子里还没有具体的概念。但是说到Siri,你肯定就能立马明白什么是虚拟个人助理。除了Siri之外,Windows10的Cortana也是典型代表。
虚拟个人助理技术原理:(以Siri为例)
1、用户对着Siri说话后,语音将立即被编码,并转换成一个压缩数字文件,该文件包含了用户语音的相关信息;2、由于用户手机处于开机状态,语音信号将被转入用户所使用移动运营商的基站当中,然后再通过一系列固定电线发送至用户的互联网服务供应商(ISP),该ISP拥有云计算服务器;3、该服务器中的内置系列模块,将通过技术手段来识别用户刚才说过的内容。总而言之,Siri等虚拟助理软件的工作原理就是“本地语音识别+云计算服务”。
5、语言处理自然语言处理(NLP),像计算机视觉技术一样,将各种有助于实现目标的多种技术进行了融合,实现人机间自然语言通信。
语言处理技术原理:
1、汉字编码词法分析;2、句法分析;3、语义分析;4、文本生成;5、语音识别;
6、智能机器人智能机器人在生活中随处可见,扫地机器人、陪伴机器人……这些机器人不管是跟人语音聊天,还是自主定位导航行走、安防监控等,都离不开人工智能技术的支持。
智能机器人技术原理:
人工智能技术把机器视觉、自动规划等认知技术、各种传感器整合到机器人身上,使得机器人拥有判断、决策的能力,能在各种不同的环境中处理不同的任务。
智能穿戴设备、智能家电、智能出行或者无人机设备其实都是类似的原理。7、引擎推荐不知道大家现在上网有没有这样的体验,那就是网站会根据你之前浏览过的页面、搜索过的关键字推送给你一些相关的网站内容。这其实就是引擎推荐技术的一种表现。
Google为什么会做免费搜索引擎,目的就是为了搜集大量的自然搜索数据,丰富他的大数据数据库,为后面的人工智能数据库做准备。
引擎推荐技术原理:
推荐引擎是基于用户的行为、属性(用户浏览网站产生的数据),通过算法分析和处理,主动发现用户当前或潜在需求,并主动推送信息给用户的信息网络。快速推荐给用户信息,提高浏览效率和转化率。
关于人工智能的展望除了上面的应用之外,人工智能技术肯定会朝着越来越多的分支领域发展。医疗、教育、金融、衣食住行等等涉及人类生活的各个方面都会有所渗透。
当然,人工智能的迅速发展必然会带来一些问题。比如有人鼓吹人工智能万能、也有人说人工智能会对人类造成威胁,或者受市场利益和趋势的驱动,涌现大量跟人工智能沾边的公司,但却没有实际应用场景,过分吹嘘概念。
转自:http://www.arduino.cn/thread-45848-1-1.html