A/D转换器设计与应用

本文作者:admin       点击: 2003-07-01 00:00
前言:
一、前言
HOLTEK微控器是由盛群所开发,而盛群在1998年12月在竹科正式开始营运,在短短的四年间即推出14种不同系列的微控器,其范围包括有通用型与专用型微控器(MCU),除一般应用领域外,更涵盖语音、通讯、计算机外设、家电等各专业领域,此外并提供各种电源管理,非易失性内存等微控制器外围组件,本文主要锁定在具内嵌式之模拟/数字转换器之微控器,它可应用于交换式电源供应、电磁炉、电毯、电饭锅、洗衣机、烘碗机、多功能电池充电器等。

二、A/D系列之微控器
HT46系列的微控器具内嵌式之模拟/数字转换器,如表1所示。该系列的微控器是以是否含有LCD驱动器,将它们分成两大类八种微控器,每一种都包含两种型式,其一为C型的MASK版本,适合大量生产使用;另一为R型的OTP版本,适合于少量或实验的场合。HT46X47(X是指R或C)微控制器适用于电池快速充电器的设计应用,其内嵌式之模拟/数字转换器A/D及具脉波宽度调变的数字/模拟转换器(PWM D/A),对于设计电池充电器时,能省略外部A/D、PWM D/A、及模拟开关等组件,使得生产成本大大地降低,PWM D/A之设计更是采用高频设计,其优点为可降低系统电力输出级之电感线圈、尺寸与重量及提升电力运用效率,而A/D 转换器共有四个信道,其分辨率为9 bits,信道的选择及A/D选项均采用软件方式控制,在设计应用上非常方便。
三、工作原理
以HT46R47微控器为例,其内嵌式之模拟/数字转换器之工作原理系利用四个特殊缓存器来完成,分别是ADRL(20H)、ADRH(21H)、ADCR(22H)、和ACSR(23H)。ADRL和ADRH分别代表A/D转换完成后的低、高字节,因此这两个缓存器仅具有只读的特性。而ADCR是控制A/D转换的工作缓存器,它被用来定义A/D转换的可用信道的数目、那一个模拟信道被选择、开始转换位、及完成指示旗标等,其位定义如表二所示。此外,ACSR缓存器可以被用来设定转换的时序来源,如表三所示。
模拟/数字转换器之使用方法如下:
1. 首先以PCR0-PCR2定义好端口B的配置,如表二所示,对于不需要用的信道建议关闭,以节省电源消耗。换言之,选择刚好够用的模拟信道数目,且从端口B的位0开始依序指定,例如需要三个模拟信道、则可以使用位0、位1、及位2、。
2. 再来用ACS0-ACS2来选择工作的模拟信道,如表2所示。
3. 然后再将START位给于上升及下降的讯号变化,如:0→1→0。当START位由0→1时EOC会被设定成1。
4. 最后,等待EOC位变成0即表示转换完成,其转换后的结果存在ADRL和ADRH,其位的配置如表四所示。
模拟/数字转换器使用方法的最后步骤,必须经常查看EOC旗标,因此会浪费许多宝贵的时间,HOLTEK也设计使用中断的方法,来取得A/D转换后的结果,其中断形成的先决条件有三:其一为A/D转换完毕;其二是激活中断向量;最后堆栈尚有空间,也就是说不会造成堆栈溢出的情形。当此三个条件满足后,程序会直接跳至地址00CH处。

四、范例:三点式温度检知器
本节依据HT46R47微控器具有四组模拟/数字转换器之特性,,我们分别使用了J型热电耦(电压型)、AD590(电流型)、及PT100(电阻型)三种温度感知器,来说明模拟/数字转换器之使用。以下将就硬件设计、功能规划、和软件设计三方面详加说明,在硬件规划方面将分成主电路和感测电路,而在功能规划方面则说明显示器及按键的功能,最后则说明本系统的三支主要程序。

 主电路的规划
HT46R47微控器主电路及显示电路如图一所示,规划使用PA3-PA0经由74LS47译码IC控制四个共阳型七段显示器之数字、PA4控制四个共阳型七段显示器之小数点、PA6-PA5经由74LS139译码IC控制四个共阳型七段显示器之电源供扫瞄显示及扫瞄按键、PA7读取按键值,图中四个二极管主要隔离作用、当数个按键同时按下时可以避免74LS139译码IC之输出短路。
AD590(电流型)、PT100(电阻型)及K型热电耦(电压型)温度感测电路如图2、图3、及图4所示,经由OP07放大器将讯号放大、当温度从摄氏0度至100度变化时输出电压范围为0~5V之间,再分别接入HT46R47微控器的PB0~PB2接脚。利用PD0以脉波宽度调变方式(PWM)经由继电器来控制加热器的启闭,考量PD0重置时为高电位,因此使用晶体管设计成反相器,当PD0送出低电位时激活加热器;反之,PD0送出高电位时可关闭加热器。
四颗共阳极七段显示器显示规划如表5所示,编号DS1用来标示第几信道,例如:显示“0”表示信道AN0(AD590传感器),编号DS2-DS4七段显示器系显示温度DS2为拾位数、DS4为小数点第一位,显示范围为99.9-0.00。为了区隔显示目前温度与设定温度,故在显示目前温度时以正常方式显示,反之显示设定温度时则以闪烁显示方式处理。
 按键功能归划
在本系统中共有四个按键,而工作模式共有显示目前温度、设定温度、察看其它组目前温度、察看其它组温度设定情形及设定温度控制组别等模式,必须使用复合键(双键同按),按键功能规划如表六所示。

 软件程序规划
在软件规划方面,分成三大部份:主程序、计时中断程序、A/D中断程序,流程图如图5所示。计时中断程序(如图6a所示)主要产生250us中断时间基频,每中断一次将CO_NUMB_0内存值增加一,主程序依据CO_NUMB_0值产生5 ms信号做扫瞄显示及扫瞄按键使用。A/D中断程序(如图六b所示)主要将每一个模拟信号信道之ADRH及ADRL的值取样128次后取平均值,考量HT46微控器其堆栈系以地址堆栈方式,因此在执行A/D中断时先将ACC及STATUS缓存器存入内存ACC_B及STATUS_B中、执行完毕再从内存ACC_B及STATUS_B取回原先之值,避免影响主程序的执行。主程序负责工作包括:依据计时中断所产生时间基频做扫瞄显示、扫瞄按键、温度转换、及以PWM方式进行温度控制,经由按键做查询各信道目前温度、设定温度、及调整更换设定温度。
五、结论
HOLTEK微控器采用精简指令集架构设计而成,具有很强的运算能力,再加上它根据不同的需求设计专用的微控器,除了提升效能外,也大量减少硬件电路设计的成本,以本文所介绍的模拟/数字转换器为例,一般通用型的微控器不但要增加模拟/数字转换芯片,而且对于有多信道的需求,要兼顾到成本的考量,往往只用一颗模拟/数字转换芯片搭配一颗模拟开关,而采用HT46系列的微控器,上述两颗芯片都可以省略,而且使得应用电路更加的简洁。