基于HT47系列RISC单片机的智能化仪表设计
发布时间:2007/4/23 0:00:00 访问次数:548
摘 要: 介绍了以HT47系列单片机为核心部件的常见智能化仪表的设计过程。
关键词: RISC单片机;R-F型A/D转换;分段线性插值法
HT47系列MCU是盛群(Holtek)半导体公司近年推出的8位精简指令系统(RISC)单片机,它除了具有RISC类单片机特有的指令数量少、易记忆、采用流水线式指令执行方式、运行速度快等优点外,其片内的两通道R-F型A/D转换电路,动态lcd液晶驱动电路以及软件狗定时器等硬件资源,为设计小型乃至便携式智能化仪器仪表提供了极大的方便,全部硬件由传感器+HT47C20+液晶片+少量阻容元件构成。
图1 HT47C20的两通道R-F型A/D转换电路
图2 R-F型A/D转换过程
图3 (c)温度θ和计算值Nt的关系曲线
图4 用分段线性插值法处理θ-Nt 关系曲线
R-F型A/D
图1给出了HT47C20的两通道R-F型A/D转换电路的结构。
图中,Timer A和Timer B是两个16 位可编程计数器,其计数初值可以由程序设定。Timer A对系统时钟(System Clock)或系统时钟4分频信号(System Clock/4)或实时时钟的溢出信号(RTC Output)计数;Timer B对通道1或通道2的RC振荡电路产生的脉冲信号计数。下面我们以利用通道1构成的温度仪表为例,对其温度测量原理和设计方法作一介绍。
利用图2可以清晰地说明R-F型A/D转换过程:
1.见图2(a),Timer B对参考电阻Rs、参考电容Cs组成的振荡电路产生的振荡脉冲计数,Timer A对系统时钟计数。通过置位有关特殊功能寄存器相关位可使 Timer A、Timer B同时启动。Timer B由初值0000H-NS计数到0000H(溢出);Timer A由初值0000H计到m,两者同时停止计数。NS的数值要保证Timer B先溢出,这段时间即为闸门时间。
2.见图2(b),Timer A初值改为0000H-m, Timer B初值改为0000H。Timer B对传感器(NTC热敏电阻)电阻Rt、参考电容Cs组成的振荡电路产生的振荡脉冲计数,Timer A还是对系统时钟计数。再次同时启动,当Timer A溢出时两者同时停止计数且申请中断。可以看出两次计数的闸门时间相等,此时Timer B的计数值为Nt。
从上述过程可以看出:NS·(1 /fs)=Nt·(1/ft)
所以 Nt=NS·ft/fs (1)
而 fs=1/(ks·Rs·Cs)
ft=1/(kt·Rt·Cs)
式中ks和kt是和电源电压、环境温度以及RsCs或RtCs乘积有关的常数(一般取 1.9~2.3),此处可看作近似相等,故有:
ft/fs=Rs/Rt
将此式代入上述Nt的表达式中,可得:
Nt=NS·Rs/Rt (2)
从上文可知,NS是Timer B在规定的闸门时间内对参考电阻Rs、参考电容Cs组成的振荡电路产生的振荡脉冲的计数值,和Rs一样,都是事先设定的常数。式(2)表示了计数值Nt和传感器电阻Rt近似成反比,它们之间的关系如图3(a)所示。
热敏电阻本身的电阻-温度关系曲线如图3(b)所示,通过图形变换可以得到被测温度和计数值Nt之间的关系曲线如图3(c)所示。
用分段线性插值法对被测温度和计数值Nt之间的关系曲线进行处理,即可从计数值Nt计算出对应的被测温度。
把图4的q-Nt关系曲线分成若干段,每段曲线用一段对应的折线来代替。相对于每一段折线,可求出q-N的线性函数:
q = a· Nt+b
式中:a为该段折线的斜率,b为截距。
值得指出的是,利用HT47C20片内的两个通道R-F型A/D转换电路作温度测量,Timer B对外部RC振荡电路的两次计数,使用同一个振荡电容Cs(即参考电容)。
摘 要: 介绍了以HT47系列单片机为核心部件的常见智能化仪表的设计过程。
关键词: RISC单片机;R-F型A/D转换;分段线性插值法
HT47系列MCU是盛群(Holtek)半导体公司近年推出的8位精简指令系统(RISC)单片机,它除了具有RISC类单片机特有的指令数量少、易记忆、采用流水线式指令执行方式、运行速度快等优点外,其片内的两通道R-F型A/D转换电路,动态lcd液晶驱动电路以及软件狗定时器等硬件资源,为设计小型乃至便携式智能化仪器仪表提供了极大的方便,全部硬件由传感器+HT47C20+液晶片+少量阻容元件构成。
图1 HT47C20的两通道R-F型A/D转换电路
图2 R-F型A/D转换过程
图3 (c)温度θ和计算值Nt的关系曲线
图4 用分段线性插值法处理θ-Nt 关系曲线
R-F型A/D
图1给出了HT47C20的两通道R-F型A/D转换电路的结构。
图中,Timer A和Timer B是两个16 位可编程计数器,其计数初值可以由程序设定。Timer A对系统时钟(System Clock)或系统时钟4分频信号(System Clock/4)或实时时钟的溢出信号(RTC Output)计数;Timer B对通道1或通道2的RC振荡电路产生的脉冲信号计数。下面我们以利用通道1构成的温度仪表为例,对其温度测量原理和设计方法作一介绍。
利用图2可以清晰地说明R-F型A/D转换过程:
1.见图2(a),Timer B对参考电阻Rs、参考电容Cs组成的振荡电路产生的振荡脉冲计数,Timer A对系统时钟计数。通过置位有关特殊功能寄存器相关位可使 Timer A、Timer B同时启动。Timer B由初值0000H-NS计数到0000H(溢出);Timer A由初值0000H计到m,两者同时停止计数。NS的数值要保证Timer B先溢出,这段时间即为闸门时间。
2.见图2(b),Timer A初值改为0000H-m, Timer B初值改为0000H。Timer B对传感器(NTC热敏电阻)电阻Rt、参考电容Cs组成的振荡电路产生的振荡脉冲计数,Timer A还是对系统时钟计数。再次同时启动,当Timer A溢出时两者同时停止计数且申请中断。可以看出两次计数的闸门时间相等,此时Timer B的计数值为Nt。
从上述过程可以看出:NS·(1 /fs)=Nt·(1/ft)
所以 Nt=NS·ft/fs (1)
而 fs=1/(ks·Rs·Cs)
ft=1/(kt·Rt·Cs)
式中ks和kt是和电源电压、环境温度以及RsCs或RtCs乘积有关的常数(一般取 1.9~2.3),此处可看作近似相等,故有:
ft/fs=Rs/Rt
将此式代入上述Nt的表达式中,可得:
Nt=NS·Rs/Rt (2)
从上文可知,NS是Timer B在规定的闸门时间内对参考电阻Rs、参考电容Cs组成的振荡电路产生的振荡脉冲的计数值,和Rs一样,都是事先设定的常数。式(2)表示了计数值Nt和传感器电阻Rt近似成反比,它们之间的关系如图3(a)所示。
热敏电阻本身的电阻-温度关系曲线如图3(b)所示,通过图形变换可以得到被测温度和计数值Nt之间的关系曲线如图3(c)所示。
用分段线性插值法对被测温度和计数值Nt之间的关系曲线进行处理,即可从计数值Nt计算出对应的被测温度。
把图4的q-Nt关系曲线分成若干段,每段曲线用一段对应的折线来代替。相对于每一段折线,可求出q-N的线性函数:
q = a· Nt+b
式中:a为该段折线的斜率,b为截距。
值得指出的是,利用HT47C20片内的两个通道R-F型A/D转换电路作温度测量,Timer B对外部RC振荡电路的两次计数,使用同一个振荡电容Cs(即参考电容)。
上一篇:油喷雾阀监测装置的开发与设计