本设计所采用的是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转换器的采样速率。