原创 FPGA在嵌入式测试系统中的优势和设计挑战

2008-7-4 01:30 2379 7 7 分类: 测试测量

有多种方式可以在系统中加入智能化功能,其中一种常见的技术就是现场可编程门阵列(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方面的知识。当然,冒昧进入芯片级领域还意味着需要设计和构建芯片周边的电路板,虽然这对于一些嵌入式系统设计人员来说已经过时了,但仍然有许多设计人员宁愿尽可能地使用现成的硬件,特别是当硬件必须精确地测量出传感器数据并对其作数字化处理时。




1 ? 2 下一页 末页

文章评论0条评论)

登录后参与讨论
我要评论
0
7
关闭 站长推荐上一条 /2 下一条