没有合适的资源?快使用搜索试试~ 我知道了~
模拟技术中的利用80C196KB片上A/D转换实现的高精度数据采集系统
0 下载量 12 浏览量
2020-12-09
02:27:15
上传
评论
收藏 96KB PDF 举报
温馨提示
试读
2页
摘 要:本文介绍了利用80C196KB片上集成的A/D模块完成了高精度的数据采集系统。系统硬件上考虑了输入模拟信号的接口电路,软件上采用了四字节的浮点运算,并对非标准的参考电压进行了修正,最后通过实验对结果的精度进行了进一步的提高。系统最终对直流电压信号测量的相对误差在0.5%以内,绝对误差不超过0.02V。关键词:80C196KB;A/D转换;浮点运算;电压测量 前言80C196KB是MCS-96系列产品中的采用CHMOS工艺的器件,其片内集成了A/D转换模块,包括一个8通道的模拟多路开关,一个采样和保持电路以及一个10位的逐次逼近A/D转换器。充分利用80C196KB的片上A/D转换
资源详情
资源评论
资源推荐
模拟技术中的利用模拟技术中的利用80C196KB片上片上A/D转换实现的高精度数据转换实现的高精度数据
采集系统采集系统
摘 要:本文介绍了利用80C196KB片上集成的A/D模块完成了高精度的数据采集系统。系统硬件上考虑了输入模
拟信号的接口电路,软件上采用了四字节的浮点运算,并对非标准的参考电压进行了修正,最后通过实验对结
果的精度进行了进一步的提高。系统最终对直流电压信号测量的相对误差在0.5%以内,绝对误差不超过
0.02V。关键词:80C196KB;A/D转换;浮点运算;电压测量 前言80C196KB是MCS-96系列产品中的采用
CHMOS工艺的器件,其片内集成了A/D转换模块,包括一个8通道的模拟多路开关,一个采样和保持电路以及
一个10位的逐次逼近A/D转换器。充分利用80C196KB的片上A/D转换
摘 要:本文介绍了利用80C196KB片上集成的A/D模块完成了高精度的数据采集系统。系统硬件上考虑了输入模拟信号的接口
电路,软件上采用了四字节的浮点运算,并对非标准的参考电压进行了修正,最后通过实验对结果的精度进行了进一步的提
高。系统最终对直流电压信号测量的相对误差在0.5%以内,绝对误差不超过0.02V。
关键词:80C196KB;A/D转换;浮点运算;电压测量
前言
80C196KB是MCS-96系列产品中的采用CHMOS工艺的器件,其片内集成了A/D转换模块,包括一个8通道的模拟多路开
关,一个采样和保持电路以及一个10位的逐次逼近A/D转换器。充分利用80C196KB的片上A/D转换资源即可以简化硬件,降
低成本,又简单容易实现。国内供货也相对容易。本文就是利用80C196KB的片上A/D转换完成了数据采集系统。
系统的硬件结构
本系统以80C196KB为核心,进行了必要的扩展。系统结构框图如图1所示。键盘用于输入及功能选择,LCD用于显示测量结
果,RAM用于存储采集的数据和处理的数据。另外,因为80C196KB本身不带ROM,所以要扩展外部ROM作为程序存储器。
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位结果:
D= (1)
于是,对采集结果的标定就可按公式(2)进行:
(ANGND与VSS相连,为零) (2)
系统设计时,Vref直接与VCC相连,而VCC是由稳压电源提供的5V电压。另外,为了减小随机误差,每次都采集100个数据然
后取平均来作为采集的结果。这样标定公式变为(3):
(3)
式中Di为采集的第i个数据(i=1,2..100)。
可见,标定过程用到了加法、乘法和除法。为了提高标定的精度必然要用到浮点计算。下面分析最终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标准的浮点数格式基本相同,但结构略有不同的四字节浮点数,格式如下:
31 30 8 7 0
数符 尾数(23位) 阶 码
该格式中,最高位为数符位,后面23位为尾数。由于该四字节浮点数必须为规格化数,所以除了零以外,尾数最高位总为1。
为了节省存储空间,在存放时,采用IEEE标准的方式,不存放最高位的1。这样,23位尾数还需加上隐含的最高位1,构成一
个定点原码24位小数,即尾数为小于1大于等于0.5的小数。最低8位为阶码,它采用移位,与IEEE标准相同,阶码等于实际阶
码数值加上127。这种四字节浮点数的取值范围为:±(5.9×10-39~1.7×1038),精度为24位二进制数,即截断误差小于
weixin_38737630
- 粉丝: 1
- 资源: 929
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 当然,我将为您提供一个带有详细注释的个人简介网页HTML和CSS代码示例 这将帮助您理解每一部分代码的功能 HTML代码 (
- 当然,我将为您提供一个带有详细注释的个人简介网页HTML和CSS代码示例 这将帮助您理解每一部分代码的功能 HTML代码 (
- 当然,我将为您提供一个带有详细注释的个人简介网页HTML和CSS代码示例 这将帮助您理解每一部分代码的功能 HTML代码 (
- 网络安全odel-for-network-ids-开发笔记
- jupyter notebook2023C-maste开发笔记
- C数据库课程设计mysqlCUMCM-2023C开发笔记
- 瑞萨ntion-model-for-network-ids-开发笔记
- 基于stm32的毕业设计n-model-for-network-id开发笔记
- 数据库课程设计mysqlUMCM-2023C开发笔记
- 模拟退火算法matlab代码-model-for-network-i开发笔记p
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0