多路输出电阻信号发生器
(一)技术领域
本发明涉及自动控制及仪表显示的调试、检验专用标准电阻信号仪器,特别是涉及多路输出电阻信号发生器。
(二)背景技术
在工厂的很多产品的自动控制及温度仪表的调试中,都需要用标准的直流电阻箱来模拟PT100型铂电阻进行校验。但是传统的直流电阻箱一般采用锰铜电阻丝绕制成许多固定的电阻,然后用旋转开关选择其中的组合,以得到所需的电阻值。虽然开始使用的时候准确度较高,但是在使用一段时间后,随着旋转开关的使用老化后,接触电阻增大,使其精确度下降,而且它的体积一般较大,不适用于现场的工作环境中使用。它还有一个在使用中的不可克服的缺点,就是不能实现多路功能,一个电阻箱只能输出一路标准电阻信号,如果需要多路电阻信号就要好几台电阻箱,占用调试空间大。另外,在校验温度仪表过程中,还需要操作人员熟记温度与电阻的对照表,加大了操作难度且不准确。
(三)发明内容
本发明要解决的技术问题,是提供一种体积小、精确度高,可以在正常的工作环境下取代传统的直流电阻箱,在校验温度仪表时不需要经过对照表进行温度与电阻的对照,以单片机为中心数字电路与模拟电路混合设计的高精度智能化的多路输出电阻信号发生器。
采用的技术方案是:
多路输出电阻信号发生器,由仪器外壳、单片机及单片机硬件、单片机软件构成。仪器外壳设有前面板和后面板,前面板布设有4×4小键盘和LED数码管,后面板布设有输出插孔。所述的单片机及硬件,其设计基本理论,是依据欧姆定律R=U/I,利用放大器的“虚短”、“虚断”的原理,以放大器设计成一个恒流源电路(图2所示),其电路上的负载电阻RL接放大器,经RL的一端B点的电压与输入电压Vi相等,Vi在Rb上形成电流Ib=Vi/Rb,由于放大器的输入阻抗极高,视放大器的输入端电流为零,所以负载电流IL只能由运放的输出端提供,即有IL=Ib,可得公式:
IL=Ib=Vi/Rb 式(1)
从公式(1)中可以看出,当Vi一定时,IL与负载电阻RL无关,即Vi一定时,构成一个恒流源。
再依据所述恒流源电路再设一个有源电阻电路(图3所示),设C、D两端的等效电阻Rcd,根据公式(1)得:
Rcd=Ucd/Icd=Ucd/IL=Ucd×Rb/Vi 式(2)
显然,当Vi一定时,Rcd却并不是个常数,为了使Rcd为常数,必须有Ucd/Vi=常数,要想实现这个等式,设计使用D/A转换器,根据D/A转换的工作原理,对应于n位的D/A转换器,有:
Vout=(X/2n)Vref
公式中Vout为D/A转换器的输出电压,X为数字输入端二进制码对应的十进制数,Vref为D/A转换器的输入参考电压,对有源电阻电路采用适当的连接和改变,使得Ucd=Vref,Vout=Vi,并根据公式(1)、(2),得有:
Rcd=Ucd×Rb/[(X/2n)Ucd]=2n×Rb/X
式中:Rcd——电源C、D两端的等效电阻
Rb——输出端B点的电阻
X——D/A转换器数字输入端二进制码对应的十进制数
n——D/A转换器位数
根据上面公式要想得到需要的电阻,只要改变相应的X值即可,根据这个最终的公式为理论依据,以单片机为核心及其相应的硬件设计了标准电阻信号源电路,即输出电阻信号发生器电路,其电路包括:型号AT89C52的单片机、隔离变压器AD208、D/A转换器MAX541、运算放大器ICL7650、键盘及显示接口通用处理芯片8155、报警蜂鸣器。隔离变压器AD208的正向输入端和反向输入端分别接C、D两端,隔离变压器AD208输出端接D/A转换器MAX541的Vref参考输入电压端,A/D转换器MAX541的Vout电压输出端接运算放大器ICL7650正向输入端,运算放大器ICL7650反向输入端接电阻Rb,D/A转换器MAX541的CS、SCLK、DIN引脚分别与单片机AT89C52的P2.0、TXD、RXD引脚相连接,构成一路电阻输出,在选择三路电阻输出时通过AT89C52的P2.1引脚、P2.2引脚依次和相应的MAX541的CS引脚连接,并将AT89C52的RXD、TXD引脚接在每个MAX541的SCLK、DIN引脚上。装在前面板上的LED数码管和4×4小键盘通过处理芯片8155接口与单片机AT89C52的P1引脚连接,报警蜂鸣器与AT89C52的P2.7引脚连接,构成三路输出电阻信号发生器。
上述的D/A转换器MAX541与单片机AT89C52完成一路电阻输出连接,再通过AT89C52的P2.1、P2.2引脚和两个相应的MAX541的CS相连接,并将AT89C52的RXD、TXD接在每个MAX541的SCLK、DIN引脚上,构成三路输出电阻信号发生器。
上述的多路电阻输出为三路电阻输出,三路输出电阻信号分别与后面板上设有的三个插孔电连接。
上述的LED数码管显示由键盘输入所需要的温度值,经单片机转换得到设定温度所对应的电阻值。
上述的单片机软件,是采用模块化设计,将相应的功能设计成相对独立的单元,最后由主程序来一一调用。
主程序,包括:
用于设置外部中断和定时器,完成所有***器件初始化的步骤;
用于设定温度输入方式或直接电阻输入方式的步骤;
用于设置按键标志为0的步骤;
用于设置通道标志为1的步骤;
用于循环调用键盘检测子程序的步骤;
键盘检测子程序,包括:
用于调整键盘初始化的步骤;
有键按下判断是否为数字键程序;若是,调用数字键程序;若不是,调用功能键处理程序的步骤;
用于判断调用的数字键程序是否标志位>5,若是,置标志位为0的步骤;
D/A转换子程序,包括:
用于取出输入电阻数据的步骤;
用于取出通道数据的步骤;
用于D/A转换的步骤;
恢复数据返回主程序的步骤;
显示子程序,包括:
用于传入主程序参数的步骤;
用于取出缓冲区电阻数据的步骤;
用于取出通道数据的步骤;
用于送入P1引脚显示的步骤;
结束返回主程序。
本发明依据欧姆定律的理论,以单片机为中心,数字电路与模拟电路混合设计的高精度智能多路电阻信号发生器,其体积小,精确度高,具有数字化接口和自我保护功能,可以在正常的工作环境下取代传统的直流电阻箱,弥补了多路数字电阻箱的一个空白,并使其成为可以校验温度仪表的一种标准仪器,用户在校验温度仪表时可根据需要进行选择温度或电阻值输入方法,当选择温度输入,只需要输入需要的温度值即可,仪器自动输出对应的电阻值,具有体积小,精确度高,使用方便,智能化输出多路电阻信号的优点。
(四)附图说明
图1为本发明的硬件原理框图。
图2为本发明所构造的恒流源电路原理图。
图3为本发明所构造的有源电阻电路原理图。
图4为AD208内部原理电路图。
图5为D/A转换器MAX541与单片机89C52连接示意图。
图6为放大器ICL7650内部原理电路图。
图7为主程序框图。
图8为键盘检测子程序框图。
图9为D/A转换子程序框图。
图10为显示子程序框图。
图11为前面板外观布设图。
图12为后面板外观布设图。
(五)具体实施方式
多路输出电阻信号发生器,由仪器外壳、单片机及单片机硬件、单片机软件构成。仪器外壳设有前面板和后面板,前面板采用简洁的塑胶CRT4×4小键盘和高亮的LED数码管,使之能在各种光线环境下使用,前面板外观设计见图11。后面板设有三路电阻信号输出插孔见图12。所述的单片机及硬件的设计基本理论(有源电阻理论):
实现电子式有源电阻的基本理论依据是:欧姆定律R=U/I,根据这个理论,使用放大器作出了一个相应的电路如图2,具体分析如下:根据放大器的“虚短”“虚断”的概念,B点电压与Vi(输入电压)相等,Vi在Rb上形成电流Ib=Vi/Rb,由于放大器的输入阻抗极高,所以放大器的输入端电流基本为零,所以IL(负载电流)只能由运放的输出端提供,即有IL=Ib,可得公式
IL=Ib=Vi/Rb (1)
从公式(1)中可以看出,当Vi一定时,IL与负载电阻RL无关,即Vi一定时,构成一个恒流源。见图2。
根据上面的恒流源电路理论,再构造一个新的电路如图3,在图3的电路中,假如用欧姆表测量CD两端的等效电阻Rcd,根据公式(1),得:
Rcd=Ucd/Icd=Ucd/IL=Ucd×Rb/Vi (2)
显然,当Vi一定时,Rcd却并不是个常数,为了使Rcd为常数,必须有Ucd/Vi=常数,要想实现这个等式,于是设计中使用D/A转换器。根据D/A转换器的工作原理,对应于n位的D/A转换器,有
Vout=(X/2n)Vref (2)
上面的公式中,Vout为D/A转换器的输出电压,X为数字输入端二进制码对应的十进制数,Vref为D/A转换器的输入参考电压,对图3的电路采用适当的连接和改变,使得Ucd=Vref,Vout=Vi,并根据公式(1)(2),有
Rcd=Ucd×Rb/((X/2n)Ucd)=2n*Rb/X (3)
根据上面的公式可以看出,要想得到需要的电阻,只要改变相应的X值即可。根据这个最终的理论,以单片机为核心及其相应的硬件设计了标准电阻信号电路,其电路包括:型号AT89C52的CPU、隔离变压器AD208、D/A转换器MAX541、运算放大器ICL7650、键盘CRT及显示接口通用处理芯片8155、报警蜂鸣器。隔离变压器AD208的正向输入端和反向输入端分别接C、D两端,隔离变压器AD208输出端接D/A转换器MAX541的Vref参考输入电压端,DA转换器MAX541的Vout电压输出端接运算放大器ICL7650正向输入端,运算放大器ICL7650反向输入端接电阻Rb,D/A转换器MAX541的CS、SCLK、DIN引脚分别与单片机AT89C52的P2.0、RXD、TXD引脚相连接,构成一路电阻输出,通过AT89C52的P2.1引脚、P2.2引脚依次和相应的MAX541的CS引脚连接,并将AT89C52的RXD、TXD引脚接在每个MAX541的SCLK、DIN引脚上,构成二路和三路电阻输出分别与后面板上三个插孔连接。装在前面板上的LED数码管和4×4小键盘CRT通过处理芯片8155接口与单片机AT89C52的P1引脚连接,报警蜂鸣器与AT89C52的P2.7引脚连接,由键盘输入需要测的温度值在LED显示,经单片机可转换得到设定温度所对应的电阻值,不必在给定的温度下进行繁琐的PT100铂电阻表格的对照。
多路输出电阻信号发生器基本工作原理:
当外线测量电压Vi从CD两端输入后,经过隔离放大器AD208隔离放大(1∶1)后,送入D/A转换器的Vref端,D/A转换器在CPU的控制下,采用两种方式处理(1)在温度输入方式下,在键盘上输入所需要的温度值,CPU调用查表转换程序将温度值转换为PT100铂电阻对应的电阻值,送入内部缓冲区,经过BCD码变换成为二进制数值,然后判断面板上的通道值后,将这个二进制的数值送入与面板通道值相对应的D/A芯片中,输出对应的电压Vout,最后在Vi输入端得到用户需要的电阻值。用户不必进行烦琐的PT100铂电阻表格的对照,就可以很方便的得到设定温度所对应的电阻值。(2)在直接电阻输入方式下,在键盘上输入需要的电阻值,然后CPU将这个电阻值送入内部缓冲区中变换后,同(1)的一样方式输出与用户输入相对应的电阻值。只是中间省略了温度与电阻的转换过程。这个功能是为了弥补仪表能作为别的分度的热电阻校验和具有基本的电阻箱的输出功能。
相应的硬件原理图
隔离变压器:
隔离变压器使用了高线性度和隔离性能的AD208,时钟驱动采用了AD246,并将AD208接成单位增益,电路见图4。
D/A转换器MAX541:
MAX541是一个16位的串行输出的D/A芯片,参考输入电压0~2.5V,输出电压为0~x*2.5/65535V,(x为用户输入的十进制的代码,最大为65535,它和单片机的接口如下(只画出一路),见图5。
高精度放大器ICL7650:
此运算放大器为***运放,见图6,特点是超低失调和超低漂移,高增益,高输入阻抗,性能极为优越,非常适合作为电阻发生电路的放大器,可以使电阻发生电路精度在不用***补偿电路的前提下就可以提高很多,它的接法和其他运放一样,只是要注意,电容Ca,Cb为外接补偿电容,取值一般为0.1μF左右。
单片机及***电路:
采用AT89C52作为主CPU,可以不用再外接存储器,使电路简洁。键盘及显示接口采用了通用处理芯片8155,报警电路采用了蜂鸣器报警,这些电路为公知。
多路输出电阻信号发生器软件设计原理:
软件是单片机控制类仪器的心脏和灵魂,没有合适的软件,硬件就不能发挥其应有的功效,甚至无法工作。在这个仪器中,采用了目前较为通用的模块化设计原则,即将相应的功能设计成相对独立的单元,最后由主程序来一一调用,这样程序比较严谨,易懂,调试起来也比较容易。
单片机软件程序,包括:
主程序:
完成所有***器件的初始化,设置外部中断和定时器,并循环调用键盘检测子程序,主程序包括下列步骤:
用于设置外部中断和定时器,完成所有***器件初始化的步骤;
用于设定温度输入方式或直接电阻输入方式的步骤;
用于设置按键标志为0的步骤;
用于设置通道标志为1的步骤;
用于循环调用键盘检测子程序的步骤;其程序框图见附图7。
键盘检测子程序:
完成对用户输入的数据和通道的响应,并将用户输入的十进制温度数据经过BCD码转换,处理后存入显示内存单元60H-62H,通道数据存入70H中,并调用D/A转换程序,显示子程序,键盘检测子程序,包括:
用于调整键盘初始化的步骤;
有键按下判断是否为数字键程序;若是,调用数字键程序;若不是,调用功能键处理程序的步骤;
用于判断调用的数字键程序是否标志位>5,若是,置标志位为0的步骤;其程序框图见附图8。
DA转换子程序:
根据对从内部缓冲区取来的键盘输入数据,控制D/A转换器将输入的参考电压变换成所需要求输出电压值,D/A转换子程序,包括:
用于取出输入电阻数据的步骤;
用于取出通道数据的步骤;
用于D/A转换的步骤;
恢复数据返回主程序的步骤;其程序框图见附图9。
显示子程序:
将内部缓冲区60H-62H的数据进行变换后,存放在内部显示缓冲区71H-74H,并进行标度变换,并且根据通道号,输出电阻和温度两种数据到数码管LED显示器中,供用户对照与参考,显示子程序,包括:
用于传入主程序参数的步骤;
用于取出缓冲区电阻数据的步骤;
用于取出通道数据的步骤;
用于送入P1引脚显示的步骤;
结束返回主程序。其程序框图见附图10。