首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

高精度直流微电阻测试仪的研究与开发-----软件系统设计

高精度直流微电阻测试仪的研究与开发-----软件系统设计

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.应用“看门狗”技术

设置软件陷阱能解决一部分程序失控的问题,但当程序进入某种非正常的死循环时,软件陷阱可能不起作用。本软件系统同时也设置了软件“看门狗”,应用“看门狗”技术能够使程序从死循环中恢复到正常状态,“看门狗”就是一个时间监视器,软时钟是利用片内定时/计数器,定时时间比正常执行一次程序循环所需时间要长。

程序正常运行未受干扰时,CPu每隔一段时间就对软时钟重置时间常数并使其复位,复位时间应比设定的定时时间要短,使系统不受影响地正常工作。当受到干扰使程序不能正常运行陷入死循环时,因不能及时发出复位脉冲,软时钟运行至既定的定时时间,软时钟可产生中断,在中断服务子程序中进行相应处理。

软件“看门狗”应用一个内部定时器来定时,此时应将它的溢出中断设定为高级中断。

启动软件“看门狗”以后,在系统运行正常时,程序必须在定时器的定时间内重新设定定时器的定时时间常数,从而使定时器不产生溢出中断;当程序陷入死循环后,不能在定时器的定时时间内重新设其定时时间常数,使得定时器产生溢出中断,程序通过执行中断处理而退出死循环。在中断处理程序中要进行错误处理并用软件使系统复位。

在本系统中应用了“看门狗”软件,目的就是为了保证软件运行的可靠性,这也是众多测试测量仪器所通用的防止系统出现非正常死循环时的方法。
the king of nerds
返回列表