模拟技术学习
直播中

郭燕

7年用户 270经验值
私信 关注
[问答]

单片机如何生成高精度电压信号?

 在对某型发射装置进行检测时.需要提供三组以11.50伏为基准的精确直流电压信号。为配合测试流程,这三组信号需要在不同的时段取18个不同的直流电压值,幅度分布在9.33-12.13伏范围之内。原有的测试仪采用22个精密电阻组成的分压器,配合波段开关选择来产生这18种不同的精确直流电压信号。这种设计方法价格昂贵,并且不能实现自动化检测,需要通过手工拨动波段开关来实现测试步骤的转换。为了实现对发射装置的自动测试。采用微机技术设计了新型的检测仪。新的检查仪以CPU模块为核心,通过程序控制D/A转换器来产生这三组精确直流电压信号,简化了设计,降低了成本,实现了测试步骤的自动切换。但是在检测仪的使用过程中发现经常出现重测合格 (RTOK)现象,即检测仪测定某件装备不合格,但是更换仪器或重新开机后再对该装备进行测试时结果良好.这种状况严重影响装备单位的使用和维护。后经分析.认为主要是检测仪中产生这三组精确信号的模拟电路存在工作点漂移问题,精度不高。电压输出不稳定,从而导致测试状态不正确。为了解决这个问题,本文基于C8051F410单片机。采用PWM调制技术和负反馈测量技术设计了~种新的精确信号模拟电路,有效抑制了工作点漂移问题提高了模拟电路输出精度.解决了装备维护使用工作中存在的实际问题。
  1 电路结构及原理
  电路设计采用了闭环控制结构,如图l所示。电路以C8051F410单片机为核心.通过程序设定需要输出电压的初始参数,控制单片机内部的可编程计数器阵列(PCA)产生适当占空比的PWM波形,经二级信号放大电路和推挽式输出电路放大后得到精确直流电压信号。为了抑制-亡作点漂移并保证足够的输出精度,将输出信号经分压后引回至C8051F410单片机,利用单片机内部的数/模转换器测量该电压,并与初始设定参数相比较.通过程序调节PWM波形的占空比.从而得到具有高可靠性和较高精度的直流电压输出信号。
  
  图1电路结构框图
  本电路的基本思想就是利用单片机具有的PWM端口,在不改变PWM方渡周期的前提下.通过软件的方法调整单片机的PWM控制寄存器来调整PWM的占空比,从而得到所需要的电压信号。本电路所要求的单片机必须具有ADC端口和PWM端口这两个必需条件,ADC的位数要求尽鼍高,单片机的工作速度要求尽量快。在调整输出电压前,单片机先快速读取输出电压的大小.然后把设定的输出电压与实际读取到的输出电压进行比较,若实际电压值偏小,则向增加输出电压的方向调整PWM的占空比:若实际电压偏大,则向减小输出电压的方向调整PWM的占空比。经选型发现,C8051F410单片机处理器最高运行时钟可达 50MHz:具有6个PCM模块.可实现PWM输出;具有1个12位ADC模块,满足电压测量精度要求。

回帖(2)

薛丽娜

2019-8-8 18:01:42
2 硬件设计
  整个电路的硬件设计主要包括C8051F410单片机的外围电路设计、放大电路设计以及电压反馈测量前置电路设计三个部分。如图2所示。
  
  图2硬件电路示意图
  整个电路以C805IF410单片机为核心。C805IF410单片机具有P0、P1、和P2数字/模拟可配置的I/0 口,所有的数字和模拟资源都可以通过这三组24个I/O引脚使用。输出一路精确模拟信号,需要设置—个引脚作为PWM输出口,一个作为ADC输入口。在这里,我们设置PO.1为PWM输出口,P0.2为ADC输人口。                                                                             

  C8051F410单片机外围电路设计主要包括在线调试和下载电路、外部参考电压电路和滤波电路设计。本文利用单片机提供的C2调试接口设计了在线调试和下载电路.如图2左上侧电路所示.通过计算机串口实现单片机的快速编程和系统在线调试。图2下右侧为外部参考电压电路琏接到单片机的Vref引脚.为单片机ADC等模块提供2.048伏电压参考.可通过电位器进行调校。
  放大电路包括二级电压放大电路和推挽式功率输出电路两个部分.如图2右侧电路所示。二级信号放大电路和推挽式输出电路均为经典电路,在此不再赘述。
  电压反馈测量前置电路如图2右侧上部所示,实质为分压电路。由于设定C8051F410单片机参考电压为2.048伏,而输出电压最大值为12伏左右,因此选择电阻R15=4.3K,R16=20K,电位器Pv1标称电阻为5K,并可通过调节电位器来改变电压倍数。
举报

李倩

2019-8-8 18:01:50
  3 软件设计
  本电路中运用c语言编程来实现PWM控制,利用C8051F410芯片的可编程计数器阵列组成PWM发生器。C805IF410芯片的可编程计数器阵列由一个专用的16位计数器/定时器和3个16位捕捉/比较模块组成.捕捉/比较模块有六种工作方式:边沿触发捕捉、软件定时器、高速输出、频率输出、8位PWM和16位PWM。每个捕捉,比较模块的丁作方式都可以被独立配置。对PCA的配置和控制是通过系统控制器的特殊功能寄存器来实现的.主要有以下几个:
  1) PCAOCN可编程计数器阵列控制寄存器。该寄存器包括溢出标志、运行控制标志以及捕捉/比较标志。
  2) PCAOMD可编程计数器阵列方式寄存器。该寄存器用于设置可编程计数器阵列的工作模式及时钟源。
  3) PCAOCPMn可编程计数器阵列捕捉/比较寄存器。该寄存器可进行捕捉/比较模块n的工作方式。
  4) PCAOCPn可编程计数器阵列捕捉,比较寄存器(高低字节)。该寄存器用于设置捕捉/比较模块n的高低字节。
  本电路主要利用PCA模块2来产生PWM波形。初始设置PCAOCN为0x40.置位PCA模块2捕捉/比较标志.在发生一次捕捉时该位由硬件置位,该位置‘1’将导致CPU转向PCA中断服务程序。初始设置PCAOMD为0x08.PCA计数器,定时器时钟选择系统时钟。初始设置 PCAOCPM2为0xc2,使能16位脉冲宽度调制、比较器功能和PCA模块2的脉宽调制方式。PCAOCP2的值将在程序流程中实时设定。软件流程如图3所示。
  
  图3软件流程图
  具体实现方法与步骤如下:
  1)初始设置:根据设定电压值生成初始PWM波形和频率参数。
  2)电压测最:测量此时输出电压和设定值之间的偏差,用于调整PWM参数。
  3)调整PWM参数:把设定的输出电压与实际读取到的输出电压进行比较.若实际电压值偏小,则向增加输出电压的方向调整PWM的占空比;若实际电压偏大,则向减小输出电压的方向调整PWM的占空比。
  4)使能PWM输出。
  另外.在软件PWM的调整过程中还要注意ADC的读数偏差和电源工作电压等引入的纹波干扰。合理采用算术平均法等数字滤波技术。
  4 结论
  本电路针对装备维护存在的实际问题。基于C8051F410单片机,利用PWM调制技术和负反馈测量技术克服了原电路因工作点不稳定的问题。经实验验证,将本电路替换掉原来的模拟电路模块后,榆测设备重测合格的现象不再出现。本电路从处理器到被控系统信号都是数字形式的,无需进行数模转换,抗噪性能强,工作稳定,具有较高的输出精度,对于同类电路的设计具有一定的借鉴意义。
  本文作者创新点:本文基于C8051F410单片机,采用PWM调制技术和负反馈测量技术设计了一种新的精确信号模拟电路,能程控输出高精度模拟电压信号,无需进行数模转换,抗噪性能强,有效抑制了信号产生电路普遍存在的工作点漂移问题,具有一定的借鉴意义。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分