- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于单片机的数据信号采集实验报告
摘 要
本文完成了基于51系列单片机的数据采集系统的硬件研发及相应的软件设计,对系统的主要性能指标进行了测试研究。
系统的硬件研究内容主要包括:单片机型号、通讯方式、系统电源的选择,设计系统原理图、PCB板图,制作PCB板。选择C8051F350单片机作为系统控制核心,芯片自带A/D转换模块,有增益放大功能。通讯方式选择RS-485通讯,可以有较远的传输距离,又能保证高的通讯速率。系统电源选用5V直流电源,局部电路采用稳压芯片转换供电。系统原理图和PCB板图的设计是在Altium Designer中完成。原理图设计时要保证电源信号的稳定性,消弱外界信号波动的影响;PCB板图设计时要保证元器件的布局及布线的合理,降低各元器件及电路之间的相互干扰。软件的设计内容主要包括:编译器的选择、流程图设计及相关程序的开发。
主要研究了数据采集系统的A/D转换速率和A/D转换精度。首先测试分析系统的A/D转换速率,确定最高转换速率值,讨论实际转换速率与理论值之间的关系。再者研究探讨A/D转换的精度,由于A/D转换精度与转换速率之间存在紧密的联系,第一步主要研究不同速率下的实际转换精度;由于随机误差对系统测试精度的影响,第二步主要研究在求均值的方式下系统A/D转换精度;由于系统误差对A/D转换精度的影响,第三步主要研究误差补偿后A/D转换精度。
关键词:数据采集;C8051F350;通讯方式;A/D精度
5.2 A/D转换精度的测试研究
本实验系统的信号源,稳定的直流电压输入到采集端。数据采集模块中核心处理器的内置AD最高允许输入的电压值为V左右。为了安全起见,实验最高输入电压限定在2V左右。
(5.2)
式中 D ——模数转换得到的数字量
UA——模拟通道输入电压
N ——AD转换器位数,本系统中N=12
UG——AD转换参考地,由于是单端输入,所以取零
UK——参考基准电压值
根据式(5.2)可知,每一个电压模拟信号都有其对应的数字量。实验中,输入稳定的直流电压信号,读取AD转换后的数字量,通过实际采集数字量与理论数字量的比较来考核AD转换的精度。
由干电池供电,利用稳压芯片和分压电路,分别产生接近0.5V、2.0V的两种直流电压信号,输入到数据采集系统模块输入端口进行AD转换实验。由式(5.2)计算得到两种电压对应的理论数字量,对比得到每种情况下的A/D精度。
对于每一种电压值,做三次实验,每次实验采集500个数据。在每种电压条件下随机抽取某一次实验采集的500个数据,按照与理论数字量之间的偏差进行量化统计,观察分析系统达到的精度。
5.2.1 使用内部参考基准电压时A/D精度测试
因为研制的数据采集系统的A/D转换精度与A/D转换速率之间存在紧密的关系,所以分别测试速率为100ksps、50ksps、10ksps、5ksps、1ksps下的A/D转换精度。
1)A/D转换速率为100ksps
当设定转换速率为100ksps时,对三种电压模拟信号分别进行测试,对于每一种电压值,做三次实验,每次实验采集500个数据。在每种电压条件下随机抽取某一次实验测试采集的500个数据,按照与理论数字量之间的偏差进行量化统计,统计结果如表5.2所示。
从表5.2中可以看出,数据采集过程中,对于某一个随机电压信号测量值,该C8051F350单片机内置的24位AD能保证的实际转换精度仅仅是在6位左右,与标称的24位分辨率相差甚远,实际工程测试中这样的进度也很难满足要求。因此,需要用编程方法,从软件上进行误差的校正[21],改善系统性能。
//-----------------------------------------------------------------------------
// F41x_ADC0_ExternalInput.c
//-----------------------------------------------------------------------------
// Copyright 2006 Silicon Laboratories, Inc.
//
//
// Program Description:
// --------------------
//
// This example code takes and averages 2048 analog measurements from input
// P1.1 using ADC0, then prints the results to a terminal window via the
文档评论(0)