高精度直流微电阻测试仪的研究与开发-----软件系统设计
4.6数据处理算法
这部分程序主要进行阻值计算、误差校正、数字滤波、代码转换等处理。数据处理程序思路:先将存储于数据存储器RAM的电压二进制数据合并为12位二进制数,再进行回路电阻值参数计算,并进行误差校正和算术平均滤波。将测试得到的电压值和计算的回路电阻值转化为BCD码,进行LED显示。数据处理程序如图4.4所示。为进一步提高系统抗干扰能力,确保测试的高精度,对获得的测量值进行数字滤波处理,进行八次测量后剔除最大值和最小值后取平均值,经过软、硬件滤波处理后的系统误差将会明显的降低。
数字滤波部分:用软件来减小或消除测量误差或电压值中的无用的部分,输入信号为模拟信号经采样和A/D转换后的数字量,对转换后的数字量进行计算。对多次计算的回路接触电阻值进行算术平均滤波,算术平均滤波就是连续取n个数字量值进行采样,然后进行平均数算术。采样值的个数n视具体情况而定,计算阻值时取8.采用单片机软件校正系统误差:对标准电阻进行检测,用标准电阻的测量值去校正被测电阻的测量值的误差,以校正0PI"放大器放大倍数和ADs78os型A/D转换器增益在内的综合增益系数。
为了提高计算精度,可以采用浮点数计算或用双精度、高精度(分别为2、4字节数)。因为测试电流峰值为1的A,回路电阻测试范围取0.01m几一1.9999k.,所以接触电压范围为0一2/105拼V.触头电压以升uv为单位时,存储时应该占3个字节,但是为了考虑计算精度,在计算回路电阻和数字滤波时,本系统均采用4字节数来进行计算。
4.7LBD显示子程序
本测试仪采用的是显示驱动芯片是MAX7219,其显示子程序首先初始化中断,使中断工作在方式1,再读取显示缓冲区内的数据,显示缓冲区主要是用来存放即将要显示的数据。LED显示子程序流程图如图4.5所示。
将每个数字的字形码以16进制数从小到大的次序依次存放在存储器中的固定区域中,则构成显示代码表。当要显示某个电阻值时,把表格的起始地址送入数据指针寄存器DPTR中作为基址,然后将显示缓冲区内的数据作为偏移量送入变址寄存器A,随后执行查表指令‘,MOvCA,@A+DPTR",则累加器A中得到的结果即表格中取出的对应数字的字形码。
4.8CPU内部定时器/计数器设计
本系统的CPU内部定时器/计数器设计采用的是以下的这种方法:定时器的工作方式1:定时器/计数器是按16位加1计数器工作的,该计数器由高8位TH和低8位TL组成。在定时器/计数器启动工作前,CPU先要为它装入方式控制字,以设定其工作方式,然后在为它装入定时器/计数器初值,并通过指令启动其工作。
16位计数器按加1计数器计数,计数满为零时能自动向CPU发出溢出中断请求,但若要它再次计数,CPU必须在其中断服务程序中为它重装初值。定时主程序包括对单片机内部定时器兀的初始化和设定软件计数器初值等。由于需要定时器定时50Ins,故兀必须工作于方式l.T0的定时初值为:
在上式中,M为模值,乓数是单片机时钟周期的12倍,兀为定时器的定时初值15,。cPu内部定时器/计数器程序流程图见图4.6.
4.9软件方面的可靠性设计
在提高硬件系统抗干扰能力的同时,还要进行软件抗干扰的设计。
软件方面的可靠性设计通常有以下几种方法:
1.数字滤波
(1)算术平均法对某一点的数值连续多次采样,取其算术平均值,这种方法可以减小系统的随机干扰对数据采集的影响;
(2)比较取舍法对某一点数据连续采样多次,剔除较大偏差;
(3)中值法对某一点数值连续采样多次,依次排序,取其中间值作为采样结果;
(4)一阶递推数字滤波法
这种方法是利用软件完成Rc低通滤波器的算法,代替硬件实现Rc滤波.本系统在数字滤波方面采用了算术平均法,即对某一点的数值连续多次采样并且剔除最大值和最小值,然后取其算术平均值,这种方法的好处就是取值能够比较的符合实际电阻值,偏差较小,可以减小系统的随机干扰对数据采集的影响和滤波方面的误差。
2.设置软件陷阱
当系统受到干扰后可能引起程序计数器PC值的改变,使系统程序没有按照预定的顺序执行,而是执行其他程序区的程序,或使PC值超出程序区,将非程序区的随机数作为指令码运行,影响了系统的正常运行。
为此,本系统也采用了设置软件陷阱的方法来确保系统的软件可靠性。在本软件系统中,在非程序区安排指令强迫系统复位,不论PC失控后飞到非程序区的哪个字节,都能使系统复位。
3.应用"看门狗"技术
设置软件陷阱能解决一部分程序失控的问题,但当程序进入某种非正常的死循环时,软件陷阱可能不起作用。本软件系统同时也设置
直流微电阻测试仪 相关文章:
- 高精度直流微电阻测试仪的研究与开发-----硬件可靠性设计与软件设计(01-16)
- 高精度直流微电阻测试仪的研究与开发-----理论研究(02-27)