打印

基于FPGA的实时可编程高精度信号源设计

[复制链接]
1751|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cooran|  楼主 | 2012-8-27 14:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  摘要:以16 位高精度D/A转换器为核心构建波形重构电路,将单片机和FPGA 组合实现总体控制,完成了基于FPGA的实时可编程高精度信号源设计。利用单片机集成的16 位高精度A/D 构建了一个闭环控制系统,提高了系统的整体精度。此外,应用USB 总线技术完成波形数据和命令的实时下载,实现了信号源的实时可编程。对测试结果进行分析,信号源精度达到0.01%,满足设计要求,且系统稳定可靠。
  1 引言
  信号源作为一种电子测量和计量设备,通常可产生大量的标准信号和用户定义信号。由于它具有高精度、高稳定性、可重复性和易操作性等特点,而被广泛用于自动控制系统、震动激励、通讯和仪器仪表领域。它不仅可以模拟各种复杂信号,还可对频率、幅值、相移、波形进行动态、及时的控制,并能与其它仪器进行通讯,组成自动测试系统。在各种实验应用和实验测试处理中,既可根据使用者的要求,作为激励源来仿真各种测试信号,并提供给被测电路,以满足测量或各种实际需要,也可作为一种测量仪器来完成一定的测试功能。然而,由于应用背景的不同和对测试、测量技术要求的提高,对信号源的频率精度、幅值精度、信号形式等要求也越来越高,因此开发高精度信号源具有重大的意义。
  所设计的高精度信号源可对存储测试系统、数据采集系统及导弹匹配装置进行测试,并可检测目标设备的工作状态和各项性能指标,为及时查找被测物体在运作中可能发生故障的原因,提供有效的测试手段,为产品设计与问题故障分析提供依据。

相关帖子

沙发
cooran|  楼主 | 2012-8-27 14:34 | 只看该作者
  2 系统总体方案设计
  测试系统通过USB 接口与计算机相连,由计算机软件生成数据并完成下载,实现波形实时可控输出。系统原理框图如图1 所示。
  
  信号源的工作过程如下:计算机发出命令和波形数据,通过USB 总线传送给USB 接口芯片,经高速串行总线下传到单片机C8051F060,单片机对其接收到的指令和波形数据诠释后下传给FPGA,由FPGA 完成数据存储、D/A 转换、功能指示及其他逻辑控制。D/A 转换后的模拟信号经调理电路后输入到32 选1 开关电路进行选通,再经运放跟随和自激振荡消除电路处理后即可输出。信号输出的同时再输入到反馈信号选择电路,由C8051F060 自带的16 位AD 采集反馈信号,与理论值进行比较并动态调整,组成闭环控制系统,以提高输出信号的精度。

使用特权

评论回复
板凳
cooran|  楼主 | 2012-8-27 14:35 | 只看该作者
  3 系统实现
  硬件实现主要包括元器件的选择、波形重构电路设计、信号调理技术、降噪技术等多种硬件处理技术。根据上述方案,主控制芯片选用全集成混合信号在片系统单片机C8051F060,FLASH 存储器还具有重新编程能力,可在线调试。C8051F060 自带16 位ADC,可采集反馈信号,符合信号源的需要,组成闭环控制系统,大大提高了系统的精度。设计中选用AD768 型D/A 转换器,它具有16 位的分辨率,理论精度为1/216=0.002%,满足该信号源0.01%的精度要求。该器件具有良好的直流和交流特性,最大数据更新速率为30MSPS,片上集成2.5 V 带隙参考电压,可保证输出电压的精度和稳定性。AD768 特殊的内部结构使其具有优越的动态精确度,并且单线控制,操作方便。
  软件设计主要是指计算机产生各种控制命令和波形数据,制定相关通信协议,按照既定协议把命令和数据实时下传给单片机,保证计算机与单片机之间的正确通信。USB 串行总线每次下传8 位数据,但要求信号源精度为0.01%,用8 位数据不能达到要求,故选用了AD768.首先由计算机产生16 位的波形数据,并把每个16 位数据分离成3 个8 位数据,其他空余位用来标识高低位。在D/A 转换前,控制模块单片机C8051F060 和FPGA 的工作之一就是要把它们还原成原来的16 位数据,也就是数据的二次编码,这样AD768 收到的就是二次编码后完整的16 位数据。

使用特权

评论回复
地板
cooran|  楼主 | 2012-8-27 14:36 | 只看该作者
  4 闭环控制系统的实现
  闭环控制系统是指从输出端到输入端带有反馈通道的控制系统,亦称为反馈控制系统,如图2 所示。该系统能对输出量与参考输入量进行比较,并将它们的偏差作为控制手段,以保持两者之间的预定关系。在该系统中,控制单元与受控对象之间不仅有顺向作用,而且还有逆向联系。作为输入信号与反馈信号之差的误差信号被传送到控制单元,以便减小误差,并使系统的输出达到期望值。
  

使用特权

评论回复
5
cooran|  楼主 | 2012-8-27 14:36 | 只看该作者
  采用反馈可使系统的响应对外部干扰和系统内部的参数变化不敏感,系统可达到较高的控制精度和较强的抗干扰能力。对于给定的被控对象,就有可能采用不太精密且成本较低的元件来构成比较精确的控制系统,这在开环情况下,是不可能做到的。闭环控制主要通过对反馈信号进行回采校正实现。在模拟信号的输出端增设反馈、校正模块,可任意选择某一路信号进行反馈,由C8051F060 集成ADC 采集。反馈采集命令和反馈通道都是由计算机发出。在此使用SAR ADC0,其初始化和采集流程图见图3。
  
  将反馈电压采集回来的电压通过单片机的串口上传到计算机,与给定值比较,进行输入校正,直至其输出精度达到0.01%.反馈闭环控制使该信号源的响应对外部干扰和系统内部的参数变化不敏感,达到了较高的控制精度和较强的抗干扰能力。

使用特权

评论回复
6
cooran|  楼主 | 2012-8-27 14:37 | 只看该作者
  5 测试结果及分析
  对信号源的输出测量主要包括幅值精度测量和通道干扰测量。前者主要测量信号输出的线性度及硬件输出的重复性,即利用单片机生成波形数据,在FPGA 控制下,启动D/A 转换并稳定后保持10 s,利用高精度万用表对信号输出的幅值进行测量。
  5.1 线性度测量
  当为波形重构电路提供的波形数据按线性规律变化时,在理论上波形输出应为一条直线。在波形重构电路中,采用的AD768 理论步长为65 536.当波形数据在从0~65 535 变化时,最终的信号幅值将在- 12.5~+12.5 V 之间变化。对波形数据从0 开始以6 为公差进行自加,其中的一次典型测量所获得的数据拟合后见图4.经计算,当以6 个理论步长自加时,信号输出幅值的平均变化为2.28 mV,则输出精度为2.58mV/25 V≈0.009 12%.对应于图4 可算得信号输出幅值的平均变化为2.32 mV,则输出精度为2.32mV/25 V≈0.009 28%,实际精度接近理论精度,满足了设计要求。
  
  5.2 重复性测量
  重复性测量旨在测试信号源输出的重复性,通过为波形重构电路提供循环的波形数据来考察信号源的输出能力。其典型数据拟合波形见图5.由该图可见,该信号源有较好的一致性输出能力。
  
  6 结束语
  所设计的高精度信号源将单片机、FPGA、信号调理等技术进行了有机的结合,构建了一个闭环控制自检系统,能提供正弦、方波、三角、锯齿及不规则信号。利用USB 总线技术,可实现计算机数据和命令的实时下载,信号源功能均通过计算机发出命令下传给硬件实现,具有实时可编程的优点。经实验测量,信号源输出信号精度可达0.01%,且信号线形度和输出重复性较好,满足设计要求,运行良好,性能稳定。

使用特权

评论回复
7
ledaa| | 2012-8-27 15:59 | 只看该作者
不错哦,哈

使用特权

评论回复
8
nongfuxu| | 2012-8-28 05:52 | 只看该作者
高精度信号源设计
。。信号源输出信号精度可达0.01%

轻拍:
1)“信号源输出信号精度可达0.01%”是指频率还是幅度?
2)若是指前者,那精度只能说一般般,有违高精度三个字;若是后者,那只能说LZ在瞎扯。
3)说波形的精度,正弦波有失真指标,0.01%是指它?那么在什么频率范围内达到此参数?
4)若是说脉冲波,讲究上升沿、下降沿好坏。LZ的在50ns以内吗?
5)。。。

使用特权

评论回复
9
nongfuxu| | 2012-8-28 05:56 | 只看该作者
6)LZ的输出信号精度可达0.01%是在开路状态下测量得到的嘛?若接负载,则LZ的信号源输出阻抗的误差是多少?
综合上述分析,LZ说的高精度,是否仅指在低频段的正弦波的失真达到0.01%?

使用特权

评论回复
10
liugp25| | 2012-8-28 14:05 | 只看该作者
楼上的高手 :handshake

使用特权

评论回复
11
luckyone| | 2012-8-28 17:00 | 只看该作者
谢谢不错哈:)

使用特权

评论回复
12
dayu1111| | 2012-8-28 17:01 | 只看该作者
好资料

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:||当你停止尝试时,就是失败的时候.

36

主题

1130

帖子

29

粉丝