嵌入式AD接口实验作文类.docx
《嵌入式AD接口实验作文类.docx》由会员分享,可在线阅读,更多相关《嵌入式AD接口实验作文类.docx(15页珍藏版)》请在冰豆网上搜索。
嵌入式AD接口实验作文类
接口实验
一、实验目的
了解在环境下对芯片的通道位的操作与控制。
二、实验内容
学习接口原理,了解实现系统对于系统的软件和硬件要求。
阅读芯片文档,掌握的相关寄存器的功能,熟悉系统硬件的相关接口。
利用外部模拟信号编程实现循环采集全部前路通道,并且在超级终端上显示。
三、预备知识
¾有语言基础。
¾掌握在下常用编辑器的使用。
¾掌握的编写和使用。
¾掌握下的程序编译与交叉编译过程。
四、实验设备及工具
硬件:
嵌入式实验平台、机以上,硬盘以上。
软件:
机操作系统++开发环境
五、实验原理
、转换器
转换器是模拟信号源和之间联系的接口,它的任务是将连续变化的模拟信号转换为数字信号,以便计算机和数字系统进行处理、存储、控制和显示。
在工业控制和数据采集及许多其他领域中,转换是不可缺少的。
转换器有以下类型:
逐位比较型、积分型、计数型、并行比较型、电压-频率型,主要应根据使用场合的具体要求,按照转换速度、精度、价格、功能以及接口条件等因素来决定选择何种类型。
常用的有以下两种:
¾双积分型的转换器双积分式也称二重积分式,其实质是测量和比较两个积分的时间,一个是对模拟输入电压积分的时间,此时间往往是固定的。
另一个是以充电后的电压为初值,对参考电源反向积分,积分电容被放电至零所需的时间。
模拟输入电压与参考电压之比,等于上述两个时间之比。
由于、固定,而放电时间可以测出,因而可计算出模拟输入电压的大小(与符号相反)。
由于、为已知的固定常数,因此反向积分时间与输入模拟电压在时间内的平均值成正比。
输入电压愈高,愈大,就愈长。
在开始时刻,控制逻辑同时打开计数器的控制门开始计数,直到积分器恢复到零电平时,计数停止。
则计数器所计出的数字即正比于输入电压在时间内的平均值,于是完成了一次转换。
由于双积分型转换是测量输入电压在时间内的平均值,所以对常态干扰(串摸干扰)有很强的抑制作用,尤其对正负波形对称的干扰信号,抑制效果更好。
双积分型的转换器电路简单,抗干扰能力强,精度高,这是突出的优点。
但转换速度比较慢,常用的转换芯片的转换时间为毫秒级。
例如位的积分型芯片,其转换时间为。
因此适用于模拟信号变化缓慢,采样速率要求较低,而对精度要求较高,或现场干扰较严重的场合。
例如在数字电压表中常被采用。
¾逐次逼近型的转换器
逐次逼近型(也称逐位比较式)的转换器,应用比积分型更为广泛,其原理框图如图
所示,主要由逐次逼近寄存器、转换器、比较器以及时序和控制逻辑等部分组成。
它的实质是逐次把设定的寄存器中的数字量经转换后得到电压与待转换
模拟电压。
进行比较。
比较时,先从的最高位开始,逐次确定各位的数码应是“”还
是“”,其工作过程如下:
转换前,先将寄存器各位清零。
转换开始时,控制逻辑电路先设定寄存器的最高位为“”,其余位为“”,此试探值经转换成电压,然后将与模拟输入电压比较。
如果≥,说明最高位的“”应予保留。
如果<,说明该位应予清零。
然后再对寄存器的次高位置“”,依上述方法进行转换和比较。
如此重复上述过程,直至确定寄存器的最低位为止。
过程结束后,状态线改变状态,表明已完成一次转换。
最后,逐次逼近寄存器中的内容就是与输入模拟量相对应的二进制数字量。
显然转换器的位数决定于的位数和的位数。
图()表示四位转换器的逐次逼近过程。
转换结果能否准确逼近模拟信号,主要取决于和的位数。
位数越多,越能准确逼近模拟量,但转换所需的时间也越长。
逐次逼近式的转换器的主要特点是:
转换速度较快,在—μ以内,分辨率可以达位,特别适用于工业控制系统。
转换时间固定,不随输入信号的变化而变化。
抗干扰能力相对积分型的差。
例如,对模拟输入信号采样过程中,若在采样时刻有一个干扰脉冲迭加在模拟信号上,则采样时,包括干扰信号在内,都被采样和转换为数字量,这就会造成较大的误差,所以有必要采取适当的滤波措施。
图逐次逼近式转换器
、转换的重要指标
¾分辨率()
分辨率反映转换器对输入微小变化响应的能力,通常用数字输出最低位()所对应的
模拟输入的电平值表示。
位能反应满量程的模拟输入电平。
由于分辨率直接与
转换器的位数有关,所以一般也可简单地用数字量的位数来表示分辨率,即位二进制数,最低位所具有的权值,就是它的分辨率。
值得注意的是,分辨率与精度是两个不同的概念,不要把两者相混淆。
即使分辨率很高,也可能由于温度漂移、线性度等原因,而使其精度不够高。
¾精度()
精度有绝对精度()和相对精度()两种表示方法。
绝对误差:
在一个转换器中,对应于一个数字量的实际模拟输入电压和梦想的模拟输入电压之差并非
是一个常数。
我们把它们之间的差的最大值,定义为“绝对误差”。
通常以数字量的最小有效位()的分数值来表示绝对误差,例如:
±等。
绝对误差包括量化误差和其它所有误差。
相对误差是指整个转换范围内,任一数字量所对应的模拟输入量的实际值与理论值之差,用模拟电
压满量程的百分比表示。
例如,满量程为,位芯片,若其绝对精度为±,则其最小有效位的量化单位:
,其绝对精度为=,其相对精度为。
转换时间()
转换时间是指完成一次转换所需的时间,即由发出启动转换命令信号到转换结束信号开始有效的时间间隔。
转换时间的倒数称为转换速率。
例如的转换时间为,其转换速率为。
电源灵敏度()
电源灵敏度是指转换芯片的供电电源的电压发生变化时,产生的转换误差。
一般用电源电压变化%时相当的模拟量变化的百分数来表示。
量程
量程是指所能转换的模拟输入电压范围,分单极性、双极性两种类型。
例如,单极性量程为~,~,~。
双极性量程为~,~。
输出逻辑电平
多数转换器的输出逻辑电平与电平兼容。
在考虑数字量输出与微处理的数据总线接口时,应注意是否要三态逻辑输出,是否要对数据进行锁存等。
工作温度范围
由于温度会对比较器、运算放大器、电阻网络等产生影响,故只在一定的温度范围内才能
保证额定精度指标。
一般转换器的工作温度范围为(),军用品的工作温度范围为()
¾自带的十位转换器
芯片自带一个8路位转换器,并且支持触摸屏功能。
开发板只用作路转换器,其最大转换率为,非线性度为正负1位,其转换时间可以通过下式计算:
如果系统时钟为,比例值为,则为
转换器频率=()
转换时间=()(相当于)
表采样控制寄存器的设置
寄存器
地址
读写
描述
复位值
控制寄存器
表采样控制寄存器的位描述
位
描述
初始设置
[]
().
[]
.
[]
.
()
.
[]
()
[]
.
[]
.
[]
.
.
.
该寄存器的位是转换使能位,写表示转换开始。
位是读操作使能转换,写1表示转
换在读操作时开始。
、、位是通道号。
[]位为转换比例因子。
位为比例因子有效位,位为转换标志位(只读)。
表转换结果数据寄存器的设置
寄存器
地址
读写
描述
复位值
转换数据寄存器
:
转换结果数据寄存器。
该寄存器的十位表示转换后的结果,全为时为满量程
伏。
¾转换器在扩展板的连接
转换器在扩展板的接法如图所示,前三路通过电位器接到电源上。
图转换器在扩展板上的接法
六、程序分析(关键代码分析)
驱动对用户来说只是下面的一个文件结构。
在用户程序里只需要用到、、
、等内核函数即可。
本实验采用的是模块方式加载,可以在实验箱的
中找到的驱动程序。
{
:
,,,
:
};
下面我们对驱动部分重要函数进行说明。
驱动在内核里的代码我们放到了本次实验的文件下,里为头文件初始化的部分。
所有代码也可以到内核里面去阅读。
关于驱动知识的基本介绍请见第章第一小节,本节只作为应用实验的简单例子。
(*,*)
{
();(());;;;("\");
;
}通道和比例因子初始化
(***)
{
;
(()){
("\"());
;
}
(,);();();
("\",,);
;
}告诉内核驱动读哪一个通道的数据和设置比例因子
()\
{\
()(());\;\
}()
左移使位比例因子有效。
左移位设置比例因子。
左移位选择通道。
;为置,准备采集数据
(**,,*)
{
;
(())
;(,);();
;
;把数据寄存器内容放入变量
("[]\",);
(,(*)());
();
();
把变量的内容传给用户缓冲区
}由内核采集通道数据后把数据放回用户区
的代码如下:
************************************************\
*
<>
*
*
*
\***********************************************
<>
<>
<>
<>
<>
<>
<>
""
"";
()
{
((())<){
("\");
;
}
}
()
{
;
(,);
(,());(,,());;
}
;
*(*)
{
();
;
;
}
()
{
;
;
;
*;
(()<)
;
**
(,);
("\!
\");
(){
(;<){采样路值
(()()*);
("\");
}();("\");
}
*.*
(,);
("\");
;
}
七、实验步骤
、阅读理解源码
进入目录,使用编辑器或其他编辑器阅读理解源代码。
、编译应用程序
运行产生可执行文件
[][]
[]
、下载调试
换到终端窗口,使用开发主机的到目录。
[]
[]
[][][]
!
我们可以通过调节开发板上的三个黄色的电位器,来查看、、的变化。
八、思考题
.逐次逼近型的转换器原理是什么?
.转换的重要指标包括哪些?
.的功能的相关寄存器有哪几个,对应的地址是什么?
.如何启动开始转换,有几种方式?
转换开始时是如何知道转换哪路通道的?
如何判断转换结束?