MAX1300在伺服功率驱动系统中的应用

2015-01-04 08:51:36冯宴铭陆小龙
电子设计工程 2015年12期
关键词:高精度增益单片机

于 洋,冯宴铭,曾 婷,陆小龙

(四川大学 制造学院,四川 成都 610025)

伺服功率驱动系统是液压伺服控制器的重要组成部分,该部分的设计不仅要为伺服系统提供足够的驱动能力,同时也要完成对电流反馈信号、电压反馈信号以及门限电压的实时采集、转换与显示。此外,为了保证整个系统在控制器工作过程中的良好表现,需要同时完成对两路信号的采集和转换。这对该系统中数据采集的速度、精度以及时序控制的准确度提出了较高的要求。

使用常见的8位、12位模数转换芯片 (如 ADC0809、MAX197等)设计的系统简单且成本较低,但无法满足高精度系统的设计要求[1]。本文提出了一种基于C8051F120单片机为核心控制器件,使用16位A/D转换器MAX1300的双通道信号采集、处理方案,经过实验测试和理论分析,能够实现较高的采集精度和速度[2]。

1 硬件设计

该伺服功率驱动板中完成实时数据采集检测系统选用C8051F120作为核心控制器进行设计[3]。系统硬件框图如图1所示,主要由单片机、A/D转换、LED液晶显示和报警电路等组成。

图1 系统硬件结构图Fig.1 Structure diagram of the system

本系统中选用22.118 MHz的外部晶振时钟以保证电路的稳定可靠。为满足系统中各设备的供电要求,采用5 V的输入电源供电。上位机与采集系统的数据通信利用串口完成,通过MAX232完成电平转换。液晶显示采用LCD5110模块完成,模拟量采集部分的A/D转换使用MAX1300实现[4]。

硬件电路部分的设计中使用MAX1300内部4.096 V的电压基准。为了提升系统性能,在设计电路时加入了独立的模拟地和数字地、模拟电源和数字电源。同时,由于供电电源的高频噪声也会对ADC中的高速比较器的工作性能,在每一个模拟电源和数字电源上都使用一个0.1μF的陶瓷电容旁路到最近的地。CH0~CH7分别为采集模拟量的输入通道。在每个通道前,加入了RC滤波电路。采集电路设计如图2所示。

2 软件设计

A/D采集部分的程序主要使用的开发软件为Keil uVision2。程序主要包括初始化程序、配置输入方式和输入量程的字节、配置芯片的工作模式、写入启动信号0x80、等待8个时钟、读出AD转换的数据位等部分。软件流程图如图3所示。

图2 AD采集电路设计Fig.2 Circuit diagram of the data acquisition

图3 软件流程图Fig.3 Schematic diagram of the software test system

MAX1300有3种可供选择的转换模式,分别为外部时钟模式、外部采集模式和内部时钟模式。本文中选择外部时钟模式,在该模式下,SCLK在控制模拟信号采集的同时,也控制着模拟信号的转换,便于精确的控制采集模拟信号的时间,并且这种模式可获得最高的吞吐率。此外,MAX1300具有7种单端输入范围和3种差分输入范围,能够满足本系统采集正负电压的需要。

依照图4中模式控制字节的写入方式完成MAX1300芯片的单极性或双极性输入范围、单端或差分输入通道配置、采集工作模式的配置。

图4 模拟输入配置和模式控制字节的时序Fig.4 Analog input configuration and mode control byte sequence

在Keil下进行编程并在线调试。在连接好电路之后,单片机启动AD转换程序并将采集的数据通过串口发送到PC机。驱动程序如下:

SPI_Write_Cmd (0x89); //配置 CH0和 CH1为差分输入方式

SPI_Write_Cmd(0x88); //0x88为外部模式0

SPI_Write_Start(0x80); //启动转换信号

MAX_DATA=SPI_Read(); //读取转换数据

3 实验结果及分析

在采集精度测试中,使用信号源输入不同的电压值,将A/D转换后液晶显示的电压值与采样电阻两端的实际输出电压值进行比较,得到的实验结果如表1所示。

实验结果表明,该单片机设计的AD采集板具有较高的精度,但仍存在着一定的误差。在高精度数据采集系统中,ADC的误差在很大程度上影响着系统的精度[5]。因此需要对AD转换器件MAX1300的各主要误差源进行分析计算[6]。

表1 A/D转换结果Tab.1 Test result of A/D conversion circuit

MAX1300 的差分非线性(DNL)为(-1LSB,+2LSB),其DNL误差值存在偏移,也就是说ADC的转换函数会发生变化,但是在以-1LSB为底限的情况下在理论上仍然可以保证不丢码。

INL是DNL误差的积分,在实际计算ADC的精度过程中,通常选用INL误差。INL误差可通过公式(1)得到,

MAX1300的INL误差为±1LSB,声明为无丢码(16位精度),则它的分辨率误差是0.001 526%。

MAX1300双极性输入的增益误差为±0.3%FSR,意味着在其最大输出时,会带来8位 (197)的误差,其增益误差0.012 2%。一般情况下,在采用片内基准时将会产生更大的增益误差,可以通过采用片外基准的方式减小增益误差。

ENOB(有效位数)可由公式(2)计算得出,

假设系统允许0.1%的误差,ADC允许0.075%的误差。我们在设计中选择的MAX1300,其具有(-1LSB,+2LSB)的DNL,INL误差为±1LSB(0.001 526%),增益误差 0.012 2%,0.01%的失调误差,1 ppm/℃的温漂系数,在50℃范围内产生0.001%的误差,共计0.027 4%的误差。还有0.047 6%的误差供基准电压源使用,在这种情况下,有较多的选择余地。可以采取校正失调误差和增益误差,并选择低噪声的电压基准,以达到提高系统精度的目的。

4 结 论

本文主要介绍了使用高精度16位A/D转换器MAX1300完成双通道信号的采集处理系统设计的过程。给出了系统硬件及软件的详细设计,通过实验测试和对A/D转换芯片产生的误差的进行量化分析,得出本系统具有高精度、较快的转换速度、较低的CPU占用率等特点,能够很好地满足使用要求。

[1]许亚男,高清维,翟寄文,等.基于MAX197的高精度数据采集系统[J].电子技术,2009(6):22-23.XU Ya-nan,GAO Qing-wei,ZHAI Ji-wen,et al.A high accuracy data acquisition system based on MAX197[J].Electronic Technology,2009(6):22-23.

[2]张迎新,雷文,姚静波.C8051F系列SOC单片机原理及应用[M].北京:国防工业出版社,2005.

[3]潘琢金,译.C5081F02x单片机数据手册[S].深圳:新华龙电子有限公司,2005.

[4]Maxim Intergrated Products.MAX1300/MAX1301 DataBook[R].2011.

[5]Walt Kester.Analog-Digital Conversion[M].2004.

[6]刘丰观,杨虎.高速ADC系统动态性能指标评估方法的研究[J].国外电子测量技术,2012(12):13-16.LIU Feng-guan,YANG Hu.Research on evalution for dynamic performance of high speed ADC systems[J].Foreign Electronic Measurement Technology,2012(12):13-16.

猜你喜欢
高精度增益单片机
基于增益调度与光滑切换的倾转旋翼机最优控制
基于单片机的SPWM控制逆变器的设计与实现
电子制作(2019年13期)2020-01-14 03:15:28
基于单片机的程控增益放大器设计
电子制作(2019年19期)2019-11-23 08:41:36
基于单片机的层次渐变暖灯的研究
电子制作(2019年15期)2019-08-27 01:12:10
基于单片机的便捷式LCF测量仪
电子制作(2019年9期)2019-05-30 09:42:02
基于Multisim10和AD603的程控增益放大器仿真研究
电子制作(2018年19期)2018-11-14 02:37:02
高抗扰高精度无人机着舰纵向飞行控制
船载高精度星敏感器安装角的标定
基于高精度测角的多面阵航测相机几何拼接
高精度免热处理45钢的开发
山东冶金(2015年5期)2015-12-10 03:27:41