8 输入输出接口设计.docx
- 文档编号:8230410
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:30
- 大小:271.21KB
8 输入输出接口设计.docx
《8 输入输出接口设计.docx》由会员分享,可在线阅读,更多相关《8 输入输出接口设计.docx(30页珍藏版)》请在冰豆网上搜索。
8输入输出接口设计
8输入输出接口设计2
8.1A/D接口电路2
8.1.1A/D转换器概述2
8.1.2AD574A/D转换接口实例3
8.1.3TLC2543A/D转换接口实例6
8.2D/A接口电路8
8.2.1D/A转换器概述8
8.2.2AD7846D/A转换接口实例11
8.2.3AD5320D/A转换接口实例13
8.3开关量输入和输出通道17
8.3.1开关量输入通道17
8.3.2开关量输出通道20
8.3.3开关量输入/输出通道的抗干扰20
8输入输出接口设计
在嵌入式系统中,输入输出接口单元是很重要的电路装置,无论是在嵌入式系统中额外加上扩展内存,以执行更多的指令或是处理更多的数据,或者是外接信号输入的外围装置,这些都需要嵌入式系统的输入输出接口硬件架构。
输入输出接口主要分为模拟量输入、模拟量输出、开关量输入和开关量输出。
在嵌入式系统中,模拟量必须转换成数字量后才能输入到ARM中进行处理。
ARM处理的结果,也常常需要转换成模拟信号。
实现模拟量转换成数字量或数字量转换为模拟量的器件主要是A/D和D/A转换器。
现在已经有很多介绍A/D、D/A转换技术与原理的专著,本章就不再累述。
在大规模集成电路技术迅速发展的今天,对嵌入式系统的设计人员来说,只需要合理的选用商品化的打规模A/D、D/A集成电路芯片,了解他们的引脚、功能以及与ARM的接口方法。
本章分别从A/D、D/A接口电路和开关量输入输出通道分别介绍嵌入式的输入输出接口。
8.1A/D接口电路
模拟量输入通道的主要任务是完成模拟量的采集并将其转换成数字量输入到嵌入式系统中。
根据被控参量和控制要求的不同,模拟量输入通道的结构也不相同,但是基本都是采用A/D接口电路的形式。
本节就详细介绍了A/D接口电路。
8.1.1A/D转换器概述
A/D转换器(ADC)是将模拟电压或电流转换成数字量的器件或设备,它是模拟系统与数字系统(如计算机)之间的接口。
随着超大规模集成电路技术的飞速发展,A/D转换器的新设计思想和制造技术层出不穷。
为满足各种不同的检测及控制任务的需要,大量结构不同、性能各异的A/D转换芯片应运而生。
1.A/D转换器的分类
尽管A/D转换器的种类很多,但目前应用较广泛的主要有以下几种类型:
逐次比较式转换器、双积分式转换器、
式A/D转换器和V/F式A/D转换器。
逐次比较型A/D转换器,在精度、速度和价格上都适中,是最常用的A/D转换器件。
双积分A/D转换器,具有精度高、抗干扰性好、价格低廉等优点,但转换速度慢,近年来在嵌入式系统应用领域中也得到广泛应用。
式A/D转换器具有积分式与逐次比较式ADC的双重优点。
它对工业现场的串模干扰具有较强的抑制能力,不亚于双积分ADC,它比双积分ADC有更高的转换速度,与逐次比较式ADC相比,有较高的信噪比,分辨率高,线性度好,不需要采样保持电路。
由于上述优点,
式ADC得到了重视,目前已有多种
式A/D芯片投向市场。
而V/F式A/D转换器适用于转换速度要求不太高,需进行远距离信号传输的A/D转换过程。
2.A/D转换器的主要技术指标
A/D转换器的品种相当繁多,它们的性能也不尽相同。
下面我们介绍A/D转换器的主要技术指标。
(1)转换时间和转换速率
转换时间即A/D完成一次转换所需要的时间。
转换时间的倒数为转换速率。
并行式A/D转换器,转换时间最短约为20~50ns,速率为2×107~5×107次/s;双极性逐次比较式转换时间约为0.4
,速率为2.5×106次/s。
(2)分辨率
A/D转换器的分辨率习惯上用输出二进制位数或BCD码位表示。
例如AD574,可输出二进制12位,即用212个数进行量化,其分辨率为1LSB,用百分数表示为
。
又如双积分式输出BCD码的A/D转换器MC14433,其分辨率为
位,即三位半。
若满字位为1999,用百分数表示其分辨率为1/1999×100%。
量化过程引起的误差为量化误差。
量化误差是由于有限位数字量对模拟量进行量化而引起的误差。
量化误差理论上规定为1个单位分辨率的±1/2LSB,提高分辨率可减少量化误差。
(3)转换精度
A/D转换器的转换精度定义为一个实际A/D转换器与一个理想A/D转换器在量化值上的差值。
可用绝对误差或相对误差表示。
3.A/D转换器的选择
A/D转换器按照输出代码的有效位数分为4位、8位、10位、12位、14位、16位和BCD码输出的
位、
位、
位等多种;按照转换速度可分为超高速(转换时间
1ns)、高速(转换时间
1
s)、中速(转换时间
1ms)、低速(转换时间
1s)等几种不同转换速度的芯片。
为适应系统集成的需要,有些转换器还将多路转换开关、时钟电路、基准电压源、二/十进制译码器和转换电路集成在1个芯片内,为用户提供了很多方便。
在设计数据采集系统、测控系统和智能仪器仪表时,重要的难题就是如何选择合适的A/D转换器以满足应用系统设计的要求。
下面从不同角度介绍选择A/D转换器的要点。
(1)A/D转换器位数的确定
A/D转换器位数的确定与整个测量控制系统所要测量控制的范围和精度有关,但又不能惟一确定系统的精度。
因为系统精度涉及的环节较多,包括传感器变换精度,信号预处理电路精度和A/D转换器及输出电路、控制机构精度,甚至还包括软件控制算法。
然而估算时,A/D转换器的位至少要比总精度要求的最低分辨率高一位(虽然分辨率与转换精度是不同的概念,但没有基本的分辨率就谈不上转换精度,精度是在分辨率的基础上反映的。
实际选取的A/D转换器的位数应与其他环节所能达到的精度相适应。
只要不低于它们就行,选得太高既没有意义,而且价格还要高得多。
一般把8位以下的A/D转换器归为低分辨率A/D转换器,9~12位的称为中分辨率,13位以上的为高分辨率。
(2)A/D转换器转换速率的确定
A/D转换器从启动转换到转换结束,输出稳定的数字量,需要一定的时间。
这就是A/D转换器的转换时间。
转换时间的倒数就是每秒钟能完成的转换次数,称为转换速率。
用不同原理实现的A/D转换器其转换时间是大不相同的。
总的来说,积分型、电荷平衡型和跟踪比较型A/D转换器转换速度慢,转换时间从几毫秒到几十毫秒不等,只能构成低速A/D转换器。
一般适用于对温度、压力、流量等缓变参量的检测和控制。
逐次比较型的A/D转换器的转换时间可从1~100
s,属于中速A/D转换器,常用于工业多通道嵌入式控制系统和声频数字转换系统等。
转换时间最短的高速A/D转换器是那些用双极型或CMOS工艺制成的全并行型、串并行型和电压转移函数型的A/D转换器。
转换时间仅20~100ns。
高速A/D转换器适用于雷达、数字通信、实时光谱分析、实时瞬态记录、视频数字转换系统等。
如用转换时间为100
的集成A/D转换器,其转换速率为1×104次/s。
根据采样定理和实际需要,1个周期的波形需采10个点,那么这样的A/D转换器最高也只能处理1kHz的信号。
把转换时间减小到10
,信号频率可提高到100kHz。
对一般微处理机而言,要在10
内完成A/D转换器转换以外的工作,如读数据、再启动、存数据、循环计数等已经比较困难。
要继续提高采集数据的速度就不能用CPU来控制,必须采用直接存储器访问(DMA)技术来实现。
(3)是否要加采样保持器
原则上直流和变化非常缓慢的信号可不用采样保持器。
其他情况都要加采样保持器。
根据分辨率、转换时间、信号带宽,可得到如下数据作为是否要加采样保持器的参考:
如果A/D转换器的转换时间是100ms、ADC是8位、没有采样保持器时,信号的允许频率是0.12Hz;如果ADC是12位,该频率为0.0077Hz。
如果转换时间是100
,ADC是8位时,该频率为12Hz,12位时是0.77Hz。
(4)工作电压和基准电压
有些A/D转换器需要
的工作电压,也有一些可在+12V~+15V范围内工作,这就需要多种电源。
如果选择使用单一+5V工作电压的芯片,与嵌入式系统可共用1个电源就比较方便。
基准电压源是提供给A/D转换器在转换时所需要的参考电压,这是保证转换精度的基本条件。
在要求较高精度时,基准电压要单独用高精度稳压电源供给。
8.1.2AD574A/D转换接口实例
1.AD574(逐次比较型)概况
AD574是12位逐次比较型A/D转换器。
转换时间为25
,转换精度为0.05%,由于芯片内有三态输出缓冲电路,因而可直接与各种典型的8位或16位的微处理器相连,而无须附加逻辑接口电路,且能与CMOS及TTL兼容。
AD574多为28引脚双列直插式封装,其引脚如图8.1所示。
图8.1AD574引脚
AD574共有5个控制引脚,功能如下。
:
片选信号端
CE:
片启动信号引脚
:
读出/转换控制信号引脚
:
数据输出格式选择信号引脚。
当
=1,12条数据线同时输出转换结果;当
=0,转换结果为单字节输出,即只有高8位或低4位有效。
A0:
字节选择控制线。
在转换期间,当A0=0,AD574进行全12位转换,转换时间为25
;当A0=1,进行8位转换,转换时间为16
。
在读出期间,当A0=0,高8位数据有效;当A0=1,低4位数据有效,中间4位为0,高4位为三态。
因此当采用2次读出12位数据时,12位数据遵循左对齐原则。
AD574的上述5个控制信号组合的真值表如表8.1所示。
表8.1AD574控制信号真值表
CE
A0
操作
0
X
1
1
1
1
1
X
1
0
0
0
0
0
X
X
0
0
1
1
1
X
X
X
X
+5V
接地
接地
X
X
0
1
X
0
1
无操作
无操作
初始化为12位转换器
初始化为8位转换器
允许12位并行输出
允许高8位输出
允许低4位+4位尾0输出
STS:
输出状态信号引脚。
转换开始时,STS为高电平,转换过程中保持高电平。
转换完成时为低电平。
STS引脚信号可作为相关信息被CPU查询,也可以用它的下跳沿向CPU发出中断申请,通知CPUA/D转换已完成,可以读取转换结果。
AD574的工作状态由CE、
、
、
、A0五个控制信号决定,见表8.1。
由表8.1可见,当CE=1,
=0同时满足时,AD574才能处于工作状态。
当AD574处于工作状态时,
=0时启动A/D转换;
=1时进行数据读出。
和A0端用来控制转换字长和数据格式。
A0=0时启动转换,则按完整的12位A/D转换方式工作,如果A0=1时启动转换,则按8位A/D转换方式工作。
当AD574处于数据读出工作状态(
=1)时,A0和
成为数据输出格式控制端。
=1时,对应12位并行输出;
=0时则对应8位双字节输出。
其中A0=0时输出高8位。
A0=1时输出低4位,并以4个0补足尾随的4位。
必须指出
端与TTL电平不兼容,故只能直接接至+5V或0V上。
另外A0在数据输出期间不能变化。
如果要求AD574以独立方式工作,只需将CE、
端接入+5V,
和A0接至0V,将
作为数据读出和数据转换启动的控制。
当
=1时,数据输出端出现被转换后的数据,
=0时,即启动1次A/D转换。
在延时0.5
后,STS=1表示转换正在进行。
经过1个转换周期(典型值为25
)后,STS端跳回低电平表示A/D转换完毕,可以从数据输出端读取新的数据。
注意,只有在CE=1和
=0时才启动转换,在启动信号有效前,
端必须为低电平,否则将产生读取数据的操作。
2.AD574电路设计
AD574与S3C4510B的接口电路如图8.2所示。
其中CS接S3C4510B的nECS0,
接高电平,AD574的A0接地址总线的A0,故可知其地址为0x03fd0000。
转换结束信号STS接到P8(设置为外部中断0)上,可用查询方式,也可采用中断方式采集数据。
以查询方式为例,编程如下。
图8.2AD574与S3C4510B的接口电路
//**************************************
//名称:
AD574_Read
//功能:
AD574驱动模块
//输入参数:
无
//输出参数:
ad转换值
//**************************************
#defineAD574(*(volatileunsigned*)0x03FD0000)//AD574控制寄存器
LongAD574_Read(void)
{
Longvalue=0;
AD574=0x00;//启动AD574
While(P8);//等待转换结束
Value=AD574;//读转换结果
returnvalue;//返回转换结果
}
8.1.3TLC2543A/D转换接口实例
1.TLC2543概况
TLC2543是美国德州仪器公司开发的一种11通道,数据输出长度可调的12位串行A/D,它以很少的引脚提供快速、高精度的模数转换,同时还具有系统采样保持电路。
(1)TLC2543的特点
1)11通道输入,12位A/D转换器,在工作温度范围内转换时间为10
;
2)3种内建的自检模式,在系统采样保持电路;
3)最大1/4096的线性误差;
4)内置系统时钟,转换结束标志位;
5)单/双极性输出,可支持软件关机;
6)输入输出的顺序可编程(高位还是低位在前),输出数据长度可编程。
2.TLC2543的引脚及逻辑结构
TL2543为20管脚,有双列直插和方形贴片两种,引脚和内部结构如图8.3所示。
图8.3TLC2543引脚和内部结构
引脚说明如表8.2所示。
表8.2TLC2543引脚说明
AIN0~AIN10
模拟输入通道
EOC
转换结束信号
片选
SCLK(I/OCLOCK)
输入输出同步时钟
DIN
串性数据输入
REF
正的转换参考电压
DOUT
转换结束数据输出
REF
负的转换参考电压
TLC2543内部由通道选择器、采样保持电路、12位模数变换器、输出寄存器、并行到串行转换器以及控制逻辑电路组成。
通道选择器根据输入地址寄存器中存放的模拟输入通道地址,选择输入通道,并将输入通道中的信号送到采样保持电路中,然后在12位模数转换器中将采样的模拟量进行量化编码,转换成数字量,存放到输出寄存器中,这些数据经过并行到串行转换器转换成串行数据,经TLC2543的DOUT端输出到单片机中。
3.TLC2543的命令字
TLC每次转换都要写入命令字,以便确定下一次转换用哪一通道,下次转换结果用多少位输出,转换结果输出是用低位在前还是高位在前。
命令字的输入高位在前,命令字格式如下。
通道选择位
输出数据长度控制位
输出顺序控制位
极性选择位
D7D6D5D4
D3D2
D1
D0
通道选择位D7D6D5D4:
用以选择模拟输入通道。
输出数据长度控制位D3D2:
控制下次的转换结果用多少位输出。
D3D2=01时,8位输出;D3D2=11时,16位输出。
输出顺序控制位D1:
控制转换结果的输出顺序。
D1=0时,高位在前;D1=1时,低位在前。
极性选择位D0:
输出数据符号位选择。
D0=0时,输出数据为无符号整型;D0=1时,输出数据为带符号整型。
4.S3C4510B与TLC2543的SPI接口
(1)SPI(SerialPerpheralInterface)是一种串行接口标准,串行通信的双方用4根线进行通信,分别是:
片选信号线、串行输入、串行输出和I/O时钟。
(2)TLC2543与S3C4510B接口及程序
图8.4是S3C4510B与TLC2543的连接电路。
S3C4510B的P4口用于控制
,P2作为数据输入线,P3作为命令输出线,P1提供I/OCLK,P1编程产生时钟。
S3C4510B将用户的命令字通过P2输入到TLC2543中,等待20
开始读数据,同时写下一次的命令字。
图8.4S3C4510B与TLC2543的连接电路
//**************************************
//名称:
delay
//功能:
延时模块
//输入参数:
n要延时的周期数
//输出参数:
无
//***************************************
voiddelay(ucharn)
{
uchari;
for(i=0;i } //*************************************** //名称: read2543 //功能: TLC254311通道A/D驱动模块 //输入参数: port通道号 //输出参数: ad转换值 //*************************************** longad_2543(unsignedcharport) { unsignedinti; longad_value=0; CLOCK=0; CS2543=0; EOC=1; port<<=4; for(i=0;i<12;i++) { if(D_OUT) ad_value|=0x01; D_IN=(bit)(port&0x80); CLOCK=1; delay(3); CLOCK=0; delay(3); port=port<<1; ad_value=ad_value<<1; } CS2543=1; ad_value=ad_value>>1; returnad_value; } 8.2D/A接口电路 模拟量输出通道的主要任务是将嵌入式系统的运算结果转换为模拟量,并输出到被选中的某一控制回路上,对执行机构进行控制。 模拟量输出通道主要由D/A接口电路组成。 8.2.1D/A转换器概述 D/A转换器(DAC)是模拟量输出通道中的关键器件,它用来将计算机测控系统内的数字量转换为连续变化的电流或电压。 1.D/A转换器的主要技术指标 D/A转换器的主要技术指标包括静态指标、动态指标及环境和工作条件指标。 静态指标主要有分辨率和精度指标。 动态指标通常以建立时间和尖峰等参数表示。 而环境条件指标主要有反映环境、温度影响的各种温度系数。 实际上,用户在选择时最为关心的主要是转换精度和转换时间等。 (1)分辨率 D/A转换器的分辨率指的是输入一个数码就有一个相应的最小能识别的量化输出电压,称为量化单位或量化步长。 分辨率通常用输入数字量只有最低有效位为1时的最小输出电压与输入数字有效位全为1时的对应最大输出电压之比表示。 因此,当n位数很大时,分辨率就等于1/2n,如对于10位D/A转换器,其分辨率为1/210=1/1024≌0.001,表示它可以对满量程的1/1024的增量作出反映。 显然,位数越多,分辨率就越高。 转换时,对应数字输入量信号最低位的模拟电压量值越小,也就越灵敏。 所以,习惯上常用输入二进制数位来给出分辨率,例如转换器DAC0832的分辨率为8位,AD7542的分辨率为12位等。 (2)转换精度 D/A转换器的转换精度有绝对精度和相对精度之分。 绝对精度指的是转换器实际输出压与理论值之间的误差,该误差是由于D/A转换器的增益误差、零点误差、非线性误差和噪电等因素造成的。 通常用数字量位数作为度量绝对精度的单位。 如精度为±1/2LSB,如果满量程为10V,则12位转换器的绝对精度为1.22mV。 相对精度是指满刻度已校准的情况下,对应于任一数码的模拟量与理论值之差相对于满刻度的百分比。 如10位D/A的相对精度为1.22mV。 相对精度亦称线性度。 值得注意的是,精度和分辨率是两个不同的概念。 精度是指转换后所得实际结果对于理想值的接近程度,而分辨率是指能够对转换结果发生影响的最小输入量。 即便对于分辨率很高的D/A转换器,可能由于温度、漂移、线性度不良等原因,并不一定具有很高的精度。 (3)转换时间 D/A转换器的转换时间,又称建立时间,是描述D/A转换速度快慢的一个重要参数。 所谓建立时间,是指D/A转换器中输入代码有满度值的变化时,其输出模拟电压(或电流)达到满度值±1/2LSB时所需要的时间。 不同型号的D/A转换器,其建立时间不同。 电流型D/A转换较快,一般在几百纳秒到几微秒之内;而电压型D/A转换器较慢,建立时间主要取决于运算放大器的响应时间。 D/A转换器中的电阻网络、模拟开关和驱动电路均为非理想电阻性器件,各种寄生参量及开关电路的延迟响应特性均会使转换器产生过渡过程。 实际建立时间的长短不仅与转换器本身的转换速率有关,还与数字量变化的大小有关。 输入数字量从全0或从全1(或从全1变到全0)时,建立时间最长,称为满量程变化的建立时间。 一般手册上给出的都是满量程变化的建立时间。 (4)非线性误差 D/A转换器的非线性误差定义为实际转换特性曲线与理想特性曲线之间的最大偏差,并用该偏差相对满量程的百分数度量。 非线性误差反映了D/A转换器在输入数字量变化时输出模拟量按比例关系变化的程度。 理想的D/A转换器是线性的,但实际上有误差,一般要求非线性误差不大于±1/2LSB。 除上述几项指标外,还有建立时间、电源抑制比、动静态参数等,必要时请参考有关资料。 几种常见的DAC芯片的技术指标如表8.3所示。 表8.3几种常见的DAC芯片的技术指标 型号 位数 建立时 间/ 非线性 误差 工作电压/V 基准电压 /V 功耗 /mW 输 出 数据总线接口 路 数 DAC0832 8 1 0.2%FSR +5~+15 -10~+10 20 I 并行 1 AD7524 8 0.5 0.1%FSR +5~+15 -10~+10 20 I 并行 1 MAX506 8 6 ±1LSB +5或+15 0~5或+5 25 U 并行 4 MAX518 8 6 ±1LSB +5 0~5 12.5 U 串行 2 MAX503 10 25 ±1LSB +5 2.048(内部) 1.25 U 并行 1 MAX515 10 25 ±1LSB +5 0~3 0.7 U 串行 1 AD7520 10 0.5 0.2%FSR +5~+15 -25~+25 20 I 并行 1 DAC1210 12 1 0.05%FSR +5~+15 -10~+10 20 I 并行 1 MAX538 12 25 ±1LSB +5 0~3 0.7 U 串行 1 2.D/A转换器的分类 D/A转换器一般可以按如下方式分类。 (1)按输出是电流还是电压分为电压输出器件和电流输出器件 电压输出型D/A转换器虽有直接从电阻阵列输出电压的,但一般采用内置输出放大器以低阻抗输出。 直接输出电压的器件仅用于高阻抗负载,由于无输出放大器部分的延迟,故常作为高速D/A转换器使用。 电流输出型D/A转换器很少直接利用电流输出,有两种外接电流—电压转换电路,一是只在输出引脚上接负载电阻而进行电流—电压转换,二是外接运算放大器。 一般而言,采用外接运算放大器的方法较为普遍。 (2)按能否作乘法运算等分类,分为乘算型
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 输入输出接口设计 输入输出 接口 设计