基于80C196KB单片机实现A/D采集及数据处理系统的设计

发布时间:2023-05-31  

前言

80C196KB是MCS-96系列产品中的采用CHMOS工艺的器件,其片内集成了A/D转换模块,包括一个8通道的模拟多路开关,一个采样和保持电路以及一个10位的逐次逼近A/D转换器。充分利用80C196KB的片上A/D转换资源即可以简化硬件,降低成本,又简单容易实现。国内供货也相对容易。本文就是利用80C196KB的片上A/D转换完成了数据采集系统。


系统的硬件结构

本系统以80C196KB为核心,进行了必要的扩展。系统结构框图如图1所示。键盘用于输入及功能选择,LCD用于显示测量结果,RAM用于存储采集的数据和处理的数据。另外,因为80C196KB本身不带ROM,所以要扩展外部ROM作为程序存储器

基于80C196KB单片机实现A/D采集及数据处理系统的设计

A/D转换接口电路

80C196KB模拟输入端的外部电路应根据应用的需要来设计,它的好坏直接影响变换器的性能。在设计外部电路时,应当考虑到输入端的泄漏电流、采样电容的大小以及多路开关的串联电阻等重要因素。


80C196KB模拟输入端的等效电路如图2所示。V为外加信号源,Rs为信号源内阻,外部输入信号必须通过Ri才能对采样电容Cs充电。输入端的泄漏电流为Ix。就80C196KB而言。在模拟信号的输入端外接一个足够大的电容可以降低信号源内阻的影响。80C196KB片内采样电容约为2pF,外接一个0.005mF(2048×2pF)的电容时,可以提供约±0.5LSB精确度的输入电压。如果该电容本身有漏电流,应适当增加电容值以补偿漏电流。


假设只有80C196KB的3mA直流漏电流,那么这0.005mF的外接电容在1mS内仅下降0.6mV(小于0.15LSB)。因此这一外接电容一般至少为0.005mF,这样有利于提高转换精度。


图3给出了根据上述原则构成的一个简单的模拟输入接口。图中还增加了过压和反压保护二极管,起保护作用。当输入出现反压时,D2正向导通,把外部输入信号箝位于-0.6V。由于片内也设置了输入引脚最低可达-0.3V,这样,在270W的电阻上大约有0.3V的压降或大约1mA的电流,从而可对芯片起保护作用。

软件算法

数据处理的准备

读AD_RESULT寄存器可以得到A/D转换的状态。新的转换启动后,AD_RESULT被清零,所以寄存器中的值要及时读出,转换结果是输入电压与参考电压之间的比率,计算公式如(1):10位结果:

可见,标定过程用到了加法、乘法和除法。为了提高标定的精度必然要用到浮点计算。下面分析最终A/D转换结果应保留的位数:

(1)A/D转换为10位,量程为5V,5V/1023=0.00489V,这里取0.005V。

(2)浮点运算精度远高于此精度,所以最终结果保留3位小数是有意义的,再高就没意义了。

采用四字节浮点数运算对采集数据进行处理浮点数有各种各样的表示方法,为了统一浮点数的格式,IEEE提出一种浮点数标准。它有几种精度,其中包括单精度(4字节)、双精度(8字节)和扩展精度(10字节)。其中最常用的是单精度浮点数。但在编写运算程序时,IEEE标准的单精度浮点数有两个方面的问题:

(1) 阶码虽然为8位,但它的地址不为一个字节,运算寻址不太方便。

(2) 尾数为大于等于1小于2的混合小数,在执行乘法时不太方便,特别是不容易实现快速除法。

为了避免这两个问题,本文采用的是一种与IEEE标准的浮点数格式基本相同,但结构略有不同的四字节浮点数,格式如下:

该格式中,最高位为数符位,后面23位为尾数。由于该四字节浮点数必须为规格化数,所以除了零以外,尾数最高位总为1。为了节省存储空间,在存放时,采用IEEE标准的方式,不存放最高位的1。这样,23位尾数还需加上隐含的最高位1,构成一个定点原码24位小数,即尾数为小于1大于等于0.5的小数。最低8位为阶码,它采用移位,与IEEE标准相同,阶码等于实际阶码数值加上127。这种四字节浮点数的取值范围为:±(5.9×10-39~1.7×1038),精度为24位二进制数,即截断误差小于1/16777216。


单精度的浮点数运算的精度远高于80C196片上A/D转换的10位二进制数,足可以满足要求。


由于A/D转换结果的低位寄存器只用了高两位,为了方便存储,用两个字节存储。高字节存高8位,低字节只用高两位来存放转换结果的最后两位,低字节的后6位置零。


另外,因为最后结果要保留3位小数,而如果运算过程中涉及小数会使运算比较麻烦,因而将要处理的数据都扩大1000倍。这样,只要在最后结果显示时将小数点前移3位即可。综上,用浮点运算进行数据处理的流程如图4所示。

通过实验改进处理过程

按上面所描述的方法,对采集结果进行标定,由初次实验得到的实验数据发现,测得数据比实验数据偏高,进一步发现当输入电压为零时系统仍测得为0.02V,也就是说存在零点误差。而测得电压一直比实际电压高也是由此零点误差引起的。通过在软件中消去直流误差,同时从参考电压 方面考虑,为了提高测量结果的精度,采取了两种措施:①硬件上用专门的电源芯片提供高精度的参考电压。②软件上对参考电压的误差进行补偿。后者灵活性较大,简单易行。


系统完成后,由于电路上的压降及各个芯片的影响,测得进入单片机的参考电压实际只有4.91V,用这个电压值来修正开始值 ,再进行实验,其实验结果就比较理想了。最终,测量的相对误差在0.5%以内,绝对误差也不超过0.02V。


结语

在10位A/D转换满足精度要求的前提下,充分利用80C196KB的片上A/D转换,既可以简化系统又简单易行。而对高精度测试测量,浮点运算是必不可少的。而且A/D转换中,模拟信号接口电路、零点误差的消除,以及参考电压的修正都是必要的,因而本文介绍的A/D采集及数据处理有很强的通用性。尤其是对高精度测量系统,有一定参考价值。


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>