基于PWM技术的A/D转换电路的设计
1. 引言
对测控现场的被测模拟信号的处理一般常用A/D或V/F转换技术,两种方法各有特点:A/D转换技术一般用于被测信号速率较高,但干扰不是太严重的场合,而V/F转换技术由于具有较强的抗干扰性且便于实现信号的远传和隔离,因此往往用于现场的干扰较为严重、且信号传输距离较远的场合。但由于V/F变换的采样速率较低,在对分辨率、采样速率和抗干扰性要求都较高时,则采用V/F转换技术往往也难以满足采样要求。尽管A/D转换的采样速率较高,但由于其抗干扰性较差,从而使系统的可靠性、稳定性和测试精度都会受到影响,有时甚至无法正常工作。
本文提出一种采用PWM技术的新型的高性能模数转换器的设计方法,利用MCU内部的定时器,结合改进的逐次逼近的对分试探算法,只须采用普通元器件即可设计出具有高分辨率的A/D转换器,以实现对模拟电压的测量,通过实验证明该设计能够达到较高的精度和分辨率,电路简单、可靠、成本低、传输信号线少,便于远传或隔离,抗干扰能力强,具有较好的应用价值。
2. 基于PWM技术的A/D转换工作原理及接口电路设计
一般模数转换包括采样、保持、量化和编码四个过程。采样就是将一个连续变化的信号x (t) 转换成时间上离散的采样信号x (n) 。通常采样脉冲的宽度tw 是很短的,故采样输出是断续的窄脉冲。要把一个采样输出信号数字化,需要将采样输出所得的瞬时模拟信号保持一段时间,这就是保持过程。量化是将连续幅度的抽样信号转换成离散时间、离散幅度的数字信号,量化的主要问题就是量化误差。编码是将量化后的信号编码成二进制代码输出。这些过程有些是合并进行的。例如,采样和保持就利用一个电路连接完成,量化和编码也是在转换过程同时实现的,且所用时间又是保持时间的一部分[1]。
PWM即脉冲宽度调制,PWM信号是一种周期(T)固定、占空比变化的数字信号。当对其进行积分或低通滤波后,便可获得与其脉冲宽度呈正比的模拟电压,于是将该电压作为试探值与被测模拟量进行比较便可获得与被测模拟量相对应的PWM值或数字量。本设计是利用定时器产生PWM脉冲输出信号,利用比较器作为试探结果状态标志,采用改进的逐次逼近试探算法来实现对被测模拟量的A/D变换。由于一般单片机内部都有定时器,因此可直接利用片内定时器来产生PWM信号即可[2],本设计采用的是MSP430单片机,由于其内部的定时器A具有比较/捕获功能,且内部具有多个捕获/比较器:CCR0--CCRn,因此利用这种功能可更方便的产生PWM信号,从而实现A/D转换。PWM波形的产生是利用定时器A输出模式中的“复位/置位”模式。例如可利用其中的捕获/比较器CCR0来控制PWM的周期,而用CCR1通道控制PWM的占空比,从而可方便的获得PWM信号
只要改变CCR1和CCR0的值就可以改变输出波形的脉冲宽度和脉冲周期,例如,以CCR0信号作为脉冲周期控制,当CCR1的值改变时即可改变PWM信号的脉冲宽度或占空比,输出信号就是PWM信号。
若PWM信号的占空比随时间变化,那么经过低通滤波后的输出信号将是幅度变化的模拟信号,因此通过控制PWM信号的占空比,就可以产生不同的模拟信号。本设计中,采用MSP430单片机的定时器A的CCR0来控制周期,采用CCR1来控制占空比,从而产生所需要的PWM信号。
A/D转换通过MSP430单片机的内部定时器A产生的PWM信号,通过P23口输出,经过两级RC低通滤波后得到与其对应的模拟信号,然后通过运算放大器构成的电压跟随器进行阻抗变换后,作为试探值送电压比较器LM393的一端,在比较器的另一端接入被测模拟量,两信号在比较器中进行比较,通过检测比较器的输出电平状态即可反映出试探值的大小,由比较器的输出状态调整PWM信号的占空比,产生下一次PWM信号的输出,于是通过不断的试探并修正PWM信号的占空比即可使试探值接近或等于被测量,则此时的脉冲值即为被测量的A/D转换值,可以达到16位的转换精度。另外,由原理图4可知,由于整个电路比较简单且该转换器与系统的连接只有两条信号线:即PWM信号输入线和用于将试探值与被测模拟量进行比较的比较器信号输出线,因此在进行抗干扰隔离时将很容易实现,而在采用普通A/D转换器的电路中进行抗干扰隔离时则要麻烦的多。
3. 微控制器MCU的选型
为方便使用和操作,本设计不但设计简单,而且功耗要低,因此经多方面综合、对比决定采用TI公司的具有SOC特点的MSP430系列MCU,这是一种超低功耗的16位混合信号控制器,其内部集成了大量的外围模块和温度传感器,特别适用于电池供电的手持式设备或需要对环境温度进行补偿的测试仪器。
MSP430单片机采用最新的低功耗技术,工作在1.8~3.6V 电压下,有正常工作模式( A M ) 和4 种低功耗工作模式;在最小功耗模式下其工作电流仅为0.1μA,而且可以方便地在各种工作模式之间切换。它的超低功耗性在实际应用中, 尤其是在电池供电的便携式设备中表现尤为突出。在系统初始化后便进入待机模式,当有允许的中断请求时,CPU 将在6μs的时间内被唤醒, 进入活动模式,执行中断服务程序。执行完毕,在RETI 指令之后,系统返回到中断前的状态,继续低功耗模式。
本设计所采用的是MSP430F1232微控制器,具有非常高的集成度,除内部带有具有PWM功能的定时器外,片内还集成了10通道的1 0位A / D转换、温度传感器、USART、看门狗定时器、片内数控振荡器DCO、大量的具有中断功能的I/O 端口、大容量的片内Flash 和RAM 以及信息Flash 存储器[4]。其中的16位定时器A中带有3个捕获/比较通道,内部的Flash 存储器可以实现掉电保护和软件升级。由此采用MSP430单片机作为该设计的处理器,不但可简化系统电路设计、缩短开发周期,降低系统功耗,还可利用其内部集成的温度传感器,方便的对被测模拟量进行温度补偿,从而使系统的测试精度得以提高。
4. A/D 转换分辨率分析及主程序设计
由于采用PWM技术的A/D转换器的分辨率取决于控制PWM脉冲占空比的定时器的计数值位数或字长,因此可通过改变定时器计数位数来改变A/D转换的分辨率,而MSP430单片机的内部定时器A中的计数器字长为16位,因此其PWM信号占空比的调整范围为0~216-1,于是当系统定时器的计数器字长为16位时,采用PWM技术的A/D转换器的最大分辨率可达16位。由于单片机内部的16位定时器采用晶振作为内部计数器的工作时钟,因此其定时精度一般都较高,且其计数值与PWM脉冲占空比成严格的线性关系,输入脉冲精确,因此A/D转换的线性度和精度较好,线性度误差小于1%。转换速率与分辨率和选取的PWM信号的周期有关,分辨率越高,转换时间越长,但同采用V/F方式相比较,转换速度要快的多。
为了能够缩短试探时间提高在高分辨率下的采样速度,采用改进的逐次逼近的对分试探法使得试探值能够迅速逼近被测模拟量。常规的对分试探法是每次试探开始时,首先将最大计数值的一半(即字长对分值)作为试探初值并将其转换成PWM信号输出,相当于输出1:1占空比的PWM脉冲信号,然后测试比较器的状态,以确定当前试探值的大小,若试探值小于被测模拟量,则保留当前试探值,否则去掉,然后再将剩余值的一半(即:剩余对分值)作为新的增量与上次保留值相加后产生新的试探值并将其转换成PWM脉冲信号输出,再测试比较器的状态,若大于被测模拟量,则去掉当前增量,否则保留,随后每次的输出都将剩余对分值作为增量进行试探,一直持续的试探下去,直到试探完与分辨率相当的次数,例如:实现具有16位分辨率的A/D转换就要试探16次。由于该方法在采样时无论当前采样值试探值多么接近被测值,其每次采样的试探次数都相同,为减小试探次数提高采样速率,在本设计中采用了一种改进的逐次逼近试探算法,可大大减少试探次数,其具体实现的方法是:当第一次试探完并获得采样值后,保留当前采样值,不再以剩余对分值作为新的增量,而是以最小值作为初次增量(即:将最低位置1,可将其看作权值),与上次保留值相加并转换成PWM信号输出,通过测试比较器输出确定当前增量值是否需要保留,若试探值小于被测模拟量,则保留当前试探值,否则去掉。若需要增大试探值时,则可将权值左移一位再与上次试探值相加,以形成新的试探值,这样可以使逐次逼近试探值总处在跟踪试探状态,从而大大减少了试探次数。由于在实际测试过程中被测模拟量一般很少有突变情况发生,大都处在缓变增加或缓变减小状态,因此采用这种改进的逐次逼近的试探算法,将会有效的提高A/D转换器的采样速率。
采用PWM技术的A/D转换器的主程序,采用汇编语言编写。
5. 结束语
采用普通元器件利用MCU内部定时器结合PWM技术设计高分辨率的A/D转换器,改变A/D转换的分辨率只须修改PWM定时器的有关参数即可,灵活方便,稳定性好,线性度高,由于该转换器与系统的连接仅为两条信号线,因此,可以很方便的采用光电隔离技术提高系统的抗干扰能力,另外由于电路中的低通滤波环节,使得电路本身也具有一定的抗干扰能力,这比较适合在具有较强的干扰环境中使用,采用改进的逐次逼近试探算法实现对模拟电压的测量或A/D变换,提高了采样速率,转换电路设计及算法实现简单,测试分辨率和精度较高,具有较好的应用价值。
本文创新点:利用PWM技术实现对模拟电压的测量或A/D变换,既具有较高的分辨率,又具有较好的抗干扰性,且便于采用光电隔离。同时结合利用改进的逐次逼近试探算法大大减少了试探次数,转换电路的设计及转换算法实现简单,A/D转换分辨率可以根据需要任意设置,具有较好的应用价值。
目前市场上14—16位的A/D转换器芯片的销售价格大约在100元—300元之间,具有相应分辨率的V/F转换模块的销售价格约为100—150元,而采用PWM技术设计的A/D转换器中所用到的主要芯片或元器件为:运放:8元;高速比较器LM311或LM393:2元;MCU:15元(但采用A/D转换器芯片时也必须要用MCU,当采用用户系统中的MCU时此费用可省),即:总费用包括MCU时才不超过30元,按照保守用量计算:若A/D芯片加V/F转换模块的年需求总量为十万片(块)时,其经济效益是相当可观的。