您好,  [请登录] [QQ登录]  [支付宝登录[免费注册]

商品分类

分享到: 百度搜藏 搜狐微博 新浪微博 腾讯微博 QQ收藏 人人网 Facebook Twitter

直面FPGA在嵌入式测试体系中的计划挑衅

发布日期:2011-04-17

 
   有多种方法可以在体系中参加智能化成果,此中一种常见的技能便是现场可编程门阵列(FPGA)。将算法编入FPGA中可为终极产品在本钱、尺寸和性能方面带来很多长处。本文重要先容在请求丈量和控制成果的体系中利用FPGA可得到的长处和面对的挑衅。

   “嵌入式体系”这个词范畴很广,从数字式电子表到变电站电力检测体系中的PC都可归于这一范畴。大多数环境下,嵌入式体系是一个独立且具有专门用途的体系,它应能在没有技能职员操纵的环境下运行。很多嵌入式体系都有某种范例的用户界面,但有一些以“傻瓜型”方法运作,这些体系必要与外界通过传感器、网络等举行交换。体系智能化可以通过由操纵体系控制的微处理惩罚器实现,大概体系大部分成果也可由一个单独的专用芯片完成。 


   差别的嵌入式体系其计划请求相去甚远。要是计划的是手持式配置(如PDA),那么功耗是重要题目;而对机场或影戏院售票配置,可靠性和寂静将是重要思量因素。固然,用户界面在上述两种体系中都是重要构成部分,但也有很多嵌入式体系还必须和传感器和实行器相连,这些体系请求对实际的鼓励做出敏捷反响并天生巨大输出模式作为相应,完成这些举措必要处理惩罚引擎和体系输入输出端口精密连合。 


   让我们来看一下嵌入式体系和外界举行交换的方法。掌上谋略用具有非常大略的用户界面,包括键盘和LCD表现器,它不必要与传感器或通讯总线连接的接口。而对付一个汽车引擎控制单位,它固然没有效户界面,但是必要与传感器和实行器举行通讯,并且车辆网络总线也是很紧张的部分。当汽车举行维修保养时,技能职员会利用一种配置作为汽车电路的用户界面,对大多数必要这种成果的当代嵌入式体系,用户界面每每像如许通过在配置上增长一个以太网端口,然后运行web办事器作为嵌入式体系成果的一部分来实现。路由器便是如许一种配置,通常以“傻瓜”方法运行,但可通过一个web欣赏器对其举行配置。 


   可以选择多种要领和器件将智能化成果参加体系中,并且可将这些要领和器件举行殽杂配对以便以最佳方法到达计划请求。最机动的平台范例是将微处理惩罚器和操纵体系连合起来,这种架构可以采取单板机带及时操纵体系(RTOS)内核的情势,比如在ATM机或主动售货机中。更巨大的体系则嵌入一个完备的PC,上面运行Windows或别的操纵体系,如许做可以利用现成的网络接口成果连接到标准打印机上。 


   对付有的体系而言,PC或单板机大概太大或本钱太高,并且它们大概也不克不及餍足性能需求。这时可以通过将现成的专用集成电路芯片(ASIC)集成到计划中来实现所请求的成果,如用DSP、运算放大器和通讯总线收发器等,这种要领的缺陷是项目必要增长板级计划,而要是利用PC平台,只必要将精力会合在体系级计划上即可。 


   但要是PC不克不及餍足需求,并且也没有现成部件可以完成体系,那该怎么办呢?这时不但要思量举行板级计划,并且还包括芯片级计划,必要计划并制造本身的ASIC大概是利用现成的可配置芯片:FPGA。此中一个需确定的因素是终极产品的数量,要是计划的是大批量产品如蜂窝德律风,那么为了节省计划和装置本钱最好自行开辟ASIC;但要是目标市场很小,则可以通过利用FPGA来淘汰本钱。FPGA可以在变动体系时不必开辟新的ASIC,要是体系必要升级或修改以便餍足特别客户的必要,如许的方法是极为有利的。本日,FPGA已遍及应用在打印机、复印机、丈量配置、斲丧电子产品和主动控制模块等嵌入式体系中。


丈量和控制用FPGA 


   FPGA是一种具有可重配置逻辑门的芯片,与提供商提供成果定义的ASIC芯片差别,FPGA可根据每个应用的差别必要而举行配置和重新配置。由于FPGA容许在硬件中实现自定义算法,因此它具有正确时序和同步、快速决定计划及并行任务同时实行等好处。在PC或带有RTOS和微处理惩罚器的平台上,处理惩罚器必须对多个任务举行分时处理惩罚,而FPGA则可以配置为多个独立的并行谋略资源,简言之,就像芯片上有多个微处理惩罚器一样,且这些微处理惩罚器都针对特定的任务举行了优化。 


   FPGA的性能和机动性使得它们成为处理惩罚输入输出非常有效的技能。倘若想谋略那些比计数器处理惩罚的大略上升或降落沿更风趣的模仿或数字变乱,大概要确认一个基于特定变乱次序或自定义通讯协议的输入模式,然后在几纳秒后触发一个模仿操纵,这时就可以利用FPGA监督输入信号,快速决定并做出反响。别的可以创建一个体系读取脉宽调制信号并敏捷谋略占空比,更进一步,还可以对FPGA举行配置以利用自定义数字协议举行通讯,如对输入信息举行解码,然后将信息组合编码作为输出数据包再发送出去,这种快速解码在与非标准编码器连接时有助于读取和解读出位置和速率信息。你大概乃至盼望同时举行上述全部操纵,并使得这些操纵相互同步,且和别的输入和输出任务同步。 


   那么输出的环境是怎样的呢?通过自定义数字协议举行通讯和天生PWM信号是这种范例很好的例子,也可以模仿一个连接到物理体系的电子器件或传感器。要是是用一个基于软件的体系完成此项事变,纵然利用RTOS,输出的性能也大概不肯定够。对付主控制算法,大概只需运行在几千赫兹频率上,这会导致CPU资源闲置,并且它只是报告输出做什么以及何时做,并没有指明该怎样做。详细来说,假定你的嵌入式体系是一个客户用来测试引擎控制模块的引擎模仿器,对汽车引擎创建了模型并且体系基于该模型举行及时模仿,通过模仿和数字I/O与控制器举行通讯。要是在某个特定测试里模型根据控制器的指示举行操纵,引擎开始运转,但是不绝及时调解汽缸压力传感器模仿输出以使控制器信托它是与一个真实运转的引擎相连黑白常困难的,输出信号必须在运转进程中形成以便对控制器的下令做出相应。但要是利用的是FPGA,就可以通过对其举行配置使其天生基于模仿模型的高级输出信号。


面对的挑衅 


   将FPGA集成到嵌入式体系最大的挑衅是怎样配置FPGA的逻辑,以及将传感器输入和控制输出与它连接起来。很多嵌入式体系计划职员对付在及时操纵体系下运行的微处理惩罚器上编程非常纯熟,但他们不喜好在芯片级对硬件举行定义,这必要有计划东西和语言如VHDL方面的知识。固然,造次进入芯片级范畴还意味着必要计划和构建芯片周边的电路板,固然这对付一些嵌入式体系计划职员来说已颠末期了,但仍旧有很多计划职员甘心尽大概地利用现成的硬件,分外是当硬件必须正确地丈量出传感器数据并对其作数字化处理惩罚时。 


   如今有很多FPGA配置东西,有些东西必要VHDL或别的语言编码完成硬件定义,有些东西提供了图形配置环境,另有的东西容许你利用熟习的东西编写软件,然后将代码下载到FPGA中。在选择哪种方法适适时必要思量几个题目,此中一个思量因素是你的背景。你是否是一个富有经历的硬件开辟职员并对FPGA的根本操纵有深入的了解?要是是,就可以利用低级东西充分发挥你的经历并深入实地举行配置。大概你不是硬件工程师,但你是一位良好的步伐员并且能很容易掌握新的编程语言,那么你大概必要选择一个可以或许让你充分运用数据结会商步伐细节举行编程的东西。别的一个大概是你既不是硬件专家也不是软件专家,但由于你对整个体系内涵的理论或体系所投入的应用非常熟习而来计划体系,要是是这种环境,那么应该选择一个可以让你以本身的语言举行计划的东西,而不必学习巨大的FPGA或硬件形貌语言。 


   另一个很紧张的思量因素是你筹划计划的体系所请求到达的成果是什么。要是正在计划多个差别范例的体系,大概通用硬件计划东西最为得当。有很多人耗费很多时间成为利用这些东西的专家,你也可以参加此中。要是想将涉及面缩小一些,那么也有东西去处理惩罚那些“老例”事件,而让你专注于可以增值的地方。举个例子,有很多东西可以资助你很快开辟出信号处理惩罚体系并将其配置到FPGA中去,也有一些经优化的东西专门用来增长丈量和控制成果。 


   还必要思量体系配置盼望怎样设置的题目。要有怎样的尺寸?与PC连接吗?有的FPGA开辟东西请求你开辟FPGA周边全部硬件,另一些则请求利用一种特别的内建有FPGA的电路板。对付后者,很多和板上别的资源如I/O与总线连接的事变都已做好,如许可以大大加快开辟的进度,由于你无须存眷诸如抗噪性、稳固时间和串扰之类的事变。对付此类体系,你应该确保与I/O的连接只有一些大略成果。要是体系必要大量与运行Windows或RTOS的PC连接,那么应选择那些可以或许跨平台的计划东西。要是用于开辟PC端接口的API很有限的话,计划服从将受到肯定的影响。


计划体系 


   计划一个完备体系的第一步是确定你的算法哪一部分必要放到FPGA中并实行,有以下几种大概性。第一,整个应用都可以在FPGA上实行,你无须通过键盘、表现器或鼠标等用户交互方法,在这种环境下,用软件开辟就可以完成全部事变。第二,也大概将应用嵌入到FPGA中去,但你想有一个在PC上运行的Windows用户界面,这就意味着必要开辟一个在Windows下运行的步伐来和FPGA举行通讯。这要看你的开辟东西是否根据这种思路开辟,大概很棘手,也大概很大略。第三,另一个常见的环境是,你盼望在FPGA和一个微处理惩罚器平台如单板机或运行RTOS的嵌入式PC之间分派你的应用步伐,在这种环境下大概也必要一个Windows用户界面。 


   有几个缘故起因你大概无法将整个应用步伐嵌入到FPGA中去。应用步伐大小是此中之一,FPGA的逻辑门数量有限,并且终极放入FPGA中的代码因编程职员以及天生代码的主动体系差别而服从大概很高也大概很低,别的FPGA上供用户利用的RAM容量也很有限,而基于PC的平台一样平常都带有相对较大的内存和硬盘空间。别的一个必要思量的题目是FPGA计划通常无法举行浮点运算,市道市面上有在FPGA上实行浮点运算的东西,但它们大概可以也大概无法与你正在利用的开辟东西兼容,要是无法全部以整型算法运行整个谋略,可以放一部分在PC上实行。PC还可以提供一些别的长处,而这些长处在FPGA上无法容易地实现,包括文件I/O、网络操纵、打印本领和基于PC的丈量和控制本领,如图形辨认/处理惩罚、GPIB/VXI东西控制以及与产业总线如CAN、RS-232和RS-485的接口等。


本文小结 


   FPGA嵌入式体系带来了在尺寸、本钱和性能上的好处,分外对I/O处理惩罚参加智能特性非常有资助,利用FPGA可以实现基于软件且运行RTOS的体系无法实现的时序和同步。你可以通过微处理惩罚器和RTOS平台如嵌入式PC实行大多数应用步伐,但必要芯片级办理方案举行信号解码和编码或天生输出信息;同样,你也可以在FPGA上实行大多数应用步伐,但必要另一个平台来完成更高级的任务。利用FPGA有一些挑衅,但有很多东西可以资助你办理这些题目。最重要的思量因素是你的技能特点,体系必要完成什么任务以及体系怎样设置。