FPGA在嵌入式测试系统中的优势和设计_第1页
FPGA在嵌入式测试系统中的优势和设计_第2页
FPGA在嵌入式测试系统中的优势和设计_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、FPGA在嵌入式测试系统中的优势和设计挑战有多种方式可以在系统中加入智能化功能,其中一种常见的技术就是现场可编程门阵列(FPGA )。将算法编入FPGA中可为最终产品在成本、尺寸和性能方面带来很多好处。本文主要介绍在要求测量和控制功能的系统中使用FPGA可得到的好处和面临的挑战。嵌入式系统”这个词范围很广,从数字式电子表到变电站电力检测系统中的PC都可归于这一范畴。大多数情况下,嵌入式系统是一个独立且具有专门用途的系统,它应能在没有技术人员操作的情况下运行。许多嵌入式系统都有某种类型的用户界面,但有一些以傻瓜型”方式运作,这些系统需要与外界通过传感器、网络等进行交流。系统智能化可以通过由操作系

2、统控制的微处理器实现,或者系统大部分功能也可由一个 单独的专用芯片完成。不同的嵌入式系统其设计要求相去甚远。如果设计的是手持式设备(如PDA),那么功耗是主要问题;而对机场或电影院售票设备,可靠性和安全将是主要考虑因素。当然,用户界面在上述两种系统中都是主要组成部分,但也有许多嵌入式系统还必须和传感器和执行器相连,这些 系统要求对实际的激励做岀迅速反应并生成复杂输岀模式作为响应,完成这些动作需要处理引擎和系统输入输岀端口紧密结合。让我们来看一下嵌入式系统和外界进行交流的方式。掌上计算器具有非常简单的用户界面,包括键盘和LCD显示器,它不需要与传感器或通信总线连接的接口。而对于一个汽车引擎控制单

3、元,它虽然没有用户界面,但是需要与传感器和执行器进行通信,而且车辆网络总线也是很 重要的部分。当汽车进行维修保养时,技术人员会使用一种设备作为汽车电路的用户界面,对大多数需要这种功能的现代嵌入式系统,用户 界面往往像这样通过在设备上增加一个以太网端口,然后运行web服务器作为嵌入式系统功能的一部分来实现。路由器就是这样一种设备,通常以傻瓜”方式运行,但可通过一个 web浏览器对其进行配置。可以选择多种方法和器件将智能化功能加入系统中,并且可将这些方法和器件进行混合配对以便以最佳方式达到设计要求。最灵活的平台类 型是将微处理器和操作系统结合起来,这种架构可以采取单板机带实时操作系统(RTOS)内

4、核的形式,比如在 ATM机或自动售货机中。更复杂的系统则嵌入一个完整的 PC,上面运行 Windows或其它操作系统,这样做可以利用现成的网络接口功能连接到标准打印机上。对于有的系统而言,PC或单板机可能太大或成本太高,而且它们或许也不能满足性能需求。这时可以通过将现成的专用集成电路芯片(ASIC)集成到设计中来实现所要求的功能,如用DSP、运算放大器和通信总线收发器等,这种方法的缺陷是项目需要增加板级设计,而如果使用PC平台,只需要将精力集中在系统级设计上即可。但如果PC不能满足需求,而且也没有现成部件可以完成系统,那该怎么办呢?这时不仅要考虑进行板级设计,而且还包括芯片级设计,需要设计并制

5、造自己的 ASIC或者是使用现成的可配置芯片:FPGA。其中一个需确定的因素是最终产品的数量,如果设计的是大批量产品如蜂窝电话,那么为了节约设计和装配成本最好自行开发ASIC ;但如果目标市场很小,则可以通过使用FPGA来减少成本。FPGA可以在更改系统时不必开发新的 ASIC,如果系统需要升级或修改以便满足特殊客户的需要,这样的方式是极为有利的。今天,FPGA已广泛应用在打印机、复印机、测量设备、消费电子产品和自动控制模块等嵌入式系统中。测量和控制用FPGAFPGA是一种具有可重配置逻辑门的芯片,与供应商提供功能定义的ASIC芯片不同,FPGA可根据每个应用的不同需要而进行配置和重新配置。由

6、于FPGA允许在硬件中实现自定义算法,因此它具有精确时序和同步、快速决策及并行任务同时执行等优点。在PC或带有RTOS和微处理器的平台上,处理器必须对多个任务进行分时处理,而FPGA则可以配置为多个独立的并行计算资源,简言之,就像芯片上有多个微处理器一样,且这些微处理器都针对特定的任务进行了优化。FPGA的性能和灵活性使得它们成为处理输入输岀非常有效的技术。假如想计算那些比计数器处理的简单上升或下降沿更有趣的模拟或数字事件,或者要确认一个基于特定事件顺序或自定义通信协议的输入模式,然后在几纳秒后触发一个模拟操作,这时就可以利用FPGA监视输入信号,快速决定并做岀反应。另外可以创建一个系统读取脉

7、宽调制信号并迅速计算占空比,更进一步,还可以对FPGA进行配置以利用自 定义数字协议进行通信,如对输入信息进行解码,然后将信息组合编码作为输出数据包再发送出去,这种快速解码在与非标准编码器连接时 有助于读取和解读出位置和速度信息。你可能甚至希望同时进行上述所有操作,并使得这些操作互相同步,且和其它输入和输出任务同步。那么输出的情况是怎样的呢?通过自定义数字协议进行通信和生成 PWM 信号是这种类型很好的例子,也可以模拟一个连接到物理系统的电 子器件或传感器。如果是用一个基于软件的系统完成此项工作,即使使用 RTOS ,输出的性能也可能不一定够。对于主控制算法,或许只需 运行在几千赫兹频率上,这

8、会造成 CPU 资源闲置,而且它只是告诉输出做什么以及何时做,并没有指明该怎样做。具体来说,假定你的嵌入 式系统是一个客户用来测试引擎控制模块的引擎模拟器,对汽车引擎建立了模型并且系统基于该模型进行实时模拟,通过模拟和数字 I/O 与 控制器进行通信。如果在某个特定测试里模型按照控制器的指示进行操作,引擎开始运转,但是不断实时调整汽缸压力传感器模拟输出以使 控制器相信它是与一个真实运转的引擎相连是非常困难的,输出信号必须在运转过程中形成以便对控制器的命令做出响应。但如果使用的是 FPGA ,就可以通过对其进行配置使其生成基于模拟模型的高级输出信号。面临的挑战将 FPGA 集成到嵌入式系统最大的

9、挑战是如何配置 FPGA 的逻辑, 以及将传感器输入和控制输出与它连接起来。 许多嵌入式系统设计人员对 于在实时操作系统下运行的微处理器上编程非常熟练,但他们不喜欢在芯片级对硬件进行定义,这需要有设计工具和语言如 VHDL 方面的知 识。当然,冒昧进入芯片级领域还意味着需要设计和构建芯片周边的电路板,虽然这对于一些嵌入式系统设计人员来说已经过时了,但仍然 有许多设计人员宁愿尽可能地使用现成的硬件,特别是当硬件必须精确地测量出传感器数据并对其作数字化处理时。目前有许多 FPGA 配置工具,有些工具需要 VHDL 或其它语言编码完成硬件定义,有些工具提供了图形配置环境,还有的工具允许你使用熟 悉的

10、工具编写软件,然后将代码下载到 FPGA 中。在选择哪种方式适合时需要考虑几个问题,其中一个考虑因素是你的背景。你是否是一个 富有经验的硬件开发人员并对 FPGA 的基本操作有深入的认识?如果是,就可以利用低级工具充分发挥你的经验并深入实地进行配置。也许 你不是硬件工程师,但你是一位优秀的程序员并且能很容易掌握新的编程语言,那么你可能需要选择一个能够让你充分运用数据结构和程序 细节进行编程的工具。另外一个可能是你既不是硬件专家也不是软件专家,但由于你对整个系统内在的理论或系统所投入的应用非常熟悉而 来设计系统,如果是这种情况,那么应该选择一个可以让你以自己的语言进行设计的工具,而不必学习复杂的

11、 FPGA 或硬件描述语言。另一个很重要的考虑因素是你计划设计的系统所要求达到的功能是什么。如果正在设计多个不同类型的系统,可能通用硬件设计工具最为适 合。有许多人花费很多时间成为使用这些工具的专家,你也可以加入其中。如果想将涉及面缩小一些,那么也有工具去处理那些“常规 ”事务,而让你专注于可以增值的地方。举个例子,有许多工具可以帮助你很快开发出信号处理系统并将其配置到 FPGA 中去,也有一些经优化的工 具专门用来增加测量和控制功能。还需要考虑系统配置希望怎样设置的问题。要有怎样的尺寸?与 PC 连接吗?有的 FPGA 开发工具要求你开发 FPGA 周边所有硬件,另一些 则要求使用一种特殊的

12、内建有 FPGA 的电路板。对于后者,很多和板上其它资源如 I/O 与总线连接的工作都已做好,这样可以大大加快开发 的进度,因为你无须关注诸如抗噪性、稳定时间和串扰之类的事项。对于此类系统,你应该确保与 I/O 的连接只有一些简单功能。如果系统 需要大量与运行 Windows 或 RTOS 的 PC 连接,那么应选择那些能够跨平台的设计工具。如果用于开发 PC 端接口的 API 很有限的话,设 计效率将受到一定的影响。设计系统设计一个完整系统的第一步是确定你的算法哪一部分需要放到 FPGA 中并执行, 有以下几种可能性。 第一,整个应用都可以在 FPGA 上执行, 你无须通过键盘、显示器或鼠标

13、等用户交互方式,在这种情况下,用软件开发就可以完成所有工作。第二,也可能将应用嵌入到 FPGA 中去, 但你想有一个在 PC 上运行的 Windows 用户界面,这就意味着需要开发一个在 Windows 下运行的程序来和 FPGA 进行通信。这要看你的开 发工具是否按照这种思路开发,可能很棘手,也可能很简单。第三,另一个常见的情况是,你希望在 FPGA 和一个微处理器平台如单板机或 运行 RTOS 的嵌入式 PC 之间分配你的应用程序,在这种情况下可能也需要一个 Windows 用户界面。有几个原因你可能无法将整个应用程序嵌入到 FPGA 中去。应用程序大小是其中之一, FPGA 的逻辑门数量

14、有限,并且最终放入 FPGA 中的 代码因编程人员以及生成代码的自动系统不同而效率可能很高也可能很低,另外 FPGA 上供用户使用的 RAM 容量也很有限,而基于 PC 的 平台一般都带有相对较大的内存和硬盘空间。 另外一个需要考虑的问题是 FPGA 设计常常无法进行浮点运算, 市面上有在 FPGA 上执行浮点 运算的工具,但它们可能可以也可能无法与你正在使用的开发工具兼容,如果无法全部以整型算法运行整个计算,可以放一部分在 PC 上执 行。PC还可以提供一些其它好处,而这些好处在 FPGA上无法容易地实现,包括文件 I/O、网络操作、打印能力和基于 PC的测量和控制能 力,如图形识别 /处理、 GPIB/VXI 工具控制以及与工业总线如 CAN 、 RS-232 和 RS-485 的接口等。本文小结FPGA 为嵌入式系统带来了在尺寸、成本和性能上的优点,特别对 I/O 处理加入智能特性非常有帮助,利用 FPGA 可以实现基于软件且运行 RTOS 的系统无法实现的时序和同步。你可以通过微处

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论