基于A/D芯片AD1674设计的数据采集电路

最新更新时间:2006-05-07来源: 电子技术应用关键字:8253定时器  DMA方式 手机看文章 扫描二维码
随时随地手机看文章

    摘要:介绍了基于AD1671芯片设计的数据采集电路,该电路具有查询、中断和DMA三种数据传输功能,并且采用8253定时脉冲和端口写两种A/D启动方式,适合于不同的应用场合。

随着科学技术的发展,计算机在测量与控制中的应用日益广泛。为了使外部世界的模拟信号与计算机接口,需要进行模/数转换,该转换一般通过A/D芯片来完成。目前市场上出现了各种A/D芯片,且各种A/D芯片具有不同的控制方式和应用条件。对于高速数据采集,最大采样频率取决于A/D的转换时间以及数据的传输时间。提高最大采样频率可通过缩短A/D的转换时间或提高数据的传输速度来实现。如果与PC机接口,数据的传输速度决定于PC机的主频以及数据的传输方式,常用的有查询和中断方式,若采用DMA传输方式则可进一步提高数据的传输速度。本文选取AD1674芯片,设计具有查询、中断和DMA三种数据传输方式的数据采集电路。该电路既可以采用定时器定时,通过8253定时器的控制设煊可变的采样变(步进间隔为1μs),获得高准确的采样间隔;也可以采用软件定时,通过端口写启动A/D来实现。在时序方面,该电路解决了A/D控制信号与计算机时序匹配问题,可能与高档PC机进行接口。

1 硬件设计

1.1 AD1674接口电路

文献[1]详细介绍了AD1674芯片的性能和控制信号的时序。在完全受控方式下,最好是用逻辑控制信号CE启动数据读或A/D转换;在CE有效时,片选信号CS应有效,并且控制信号R/C和A0已确定,只有满足这种时序,AD1674才能正常工作。

1.2 A/D转换及数据的读时序

对A/D接口电路而言,只有PC机的时序与AD1674的要求时序匹配才能保证电路的正常工作。该电路的A/D转换及数据的读时序如图1所示。

A在/D转换时,8253的定时脉冲或端口写脉冲QD经过延时和调节定时宽度后,使A/D的使能控制CE开始启动A/D转换。同时QD宽度为1μs的低电平脉冲(在端口写启动方式下,1μs的低脉冲是由端口写脉冲经调节定时宽度后获得)使R/C的转换有效,A0及片选CS可在A/D转换前设置为有效。当读取A/D转换后的数据时,端口读信号或DMA读信号D直接使A/CD的使能控制CE启动数据读,此时R/C=1,R/C的读有效,开始12位数据的读取。当A0=0时,读取高八位数据;当A0=1时,读取数据低四位,读完后A0=0,准备下一次A/D转换。可见该时序既能与PC机接口,又能使AD1674正常工作。

1.3 A/D转换及数据读取的实现电路

本电路的AD1674工作在完全受控方式。A/D转换为12位,而转换后数据分两次读取,即先读数据的高八位,后读数据的低四位。

1.3.1 A/D转换的启动方式

A/D转换的启动方式有两种:8253定时器硬件启动和写端口软件启动。

8253定时器启动方式应用于对数据采集的时隔要求准确的场合,该方式是利用8253的定时脉冲启动A/D转换,通过8253数据总线缓冲器(端口地址为&0X23F)输出鉴别通道的计数初值,通过向6位锁存器74LS174(端口地址为&0X23B)写入控制字设定8253的控制字以及A/D片选控制位。6位锁存器数据位定义说明如下:

A1A0=00:&0X23D口输出的数据为计数器0的计数值。

A1A0=01:&0X23F口输出的数据为计数器1的计数值。

A1A0=10:&0X23F口输出的数据为计数器2的计数值。

A1A0=11:&0X23F口输出的数据为计数器8253的方式字。

G0&G1=1:起动计数器0和计数器1;G0&G=0:禁止计数器0和计数器1。

CS=1:选中A/D芯片CS=0;不选中A/D芯片。

具体的实现电路如图2所示。首先将8253定时通道0与通道1串联起来定时,通道0的时钟输入CLK0的频率是2MHz,工作在方式3(方波比率发生器)下,通道0的输出OUT0为频率1MHz的方波,作为通道1的输入时钟CLK1。通道1设定为方式2,即通道1的输出OUT1从输出开始一直维持高电平,计数回零后,输出为低电平并自动重新装入原计数值,低电平维持一个时钟周期后,输出恢复高电平并重新作减法计数。输出OUT1分为两路信号,一路通过与门U18A输出,作为AD1674的R/C控制信号;另一路经过单稳触发器U24延时和调节定时宽度后,再通过或门U15C输出作为AD1674的CE控制信号。当OUT1输出宽度为1μs的低电平脉冲时,一方面使控制信号R/C的转换有效,同时经延时和调节定时宽度后,使A/D的使能控制CE开始启动A/D转换。因此在装入计数初值以后,只要设置6位锁存器U8的控制字,就可利用8253定时器启动A/D。

写启动A/D方式应用于软件定时,即通过对端口(地址为&0X23D)写来触发A/D转换。如图2所示,端口写信号一方面经过单稳触发器U6A调节定时宽度(宽度为1μs)后,作为AD1674的R/C控制信号,同时经过另一单稳触发器U24延时和调节定时宽度后,再通过或门U15C输出作为AD1674的CE控制信号。

可见两种启动A/D转换的过程相似。相比较而言,前者的采样间隔是由8253定时脉冲的周期决定的,属于可编程定时器方式定时,共特点是采样间隔准确;后者则由相邻两次写端口(地址为&0X23D)的时间差决定采样间隔,为软件定时方式,特点是灵活方便。

1.3.2 A/D转换数据的读取方式

在数据采集系统中,计算机读取A/D转换数据的方式一般有三种,即查询、中断和DMA方式。其中查询方式就是通过查询标志位来判断A/D是否转换完毕,如果A/D转换完毕则读入转换的数据。这种方式下CPU主动查询,通过CPU读取A/D转换的数据,故实现的硬件电路简单,但数据读取速度慢,同时在WINDOWS的多任务执行方式下,存在着A/D转换数据不能及时读入的问题。中断方式是利用A/D转换完毕的标志位触发一硬中断,然后中断管理器向CPU提出中断申请。在中断允许的情况下,执行中断服务程序读入转换的数据。这种方式实现的硬件电路也比较简单,但中断服务程序的介入,引起数据采集程序的断点的不可预测性,这样会导致数据采集程序的失控。DMA方式利用A/D转换完毕的标志位向DMA控制器提出DMA申请,当DMA控制器从CPU取得总线控制权时,接口便与内存之间直接地进行数据交换(不经过CPU)。这种方式下,由于不经过CPU读入数据,故提高了数据传输速度。同时由于A/D转换器主动申请数据传输,而DMA申请比外设中断申请的优先级高,A/D转换数据能够及时读入,系统性能也得到了提高,但实现的硬件电路较前两种方式复杂。

本电路设计有查询、中断和DMA三种数据传输方式。通过一拨码盘开关来选择不同的的传输方式。如图3所示,当A/D转换完毕时,标志位STS由高电平变为低是电平,从而引起D触发器U20A触发,U20A的输出Q由低电平变成高电平。当拨码盘开关S1选择为查询方式时,该U20A的输出Q通过一个三态门(端口地址为&0X23F)与数据线D6相连,提供计算机查询;在中断方式下,该U20A的输出Q直接与硬中断引脚IRQ2相连,当Q由低电平变成高电平时,引起计算机中断。在前两种方式下,通过软件编程,向一锁存器U22的最低位写入0或1,选择读取A/D转换数据的高八位或低四位,且由专门的端口(地址为&0X23D)读取A/D转换的数据。实现的硬件电路简单。而在DMA方式下,通过应答信号DACK1寻址,并不由专门的端口读取A/D转换的数据,故选择A/D转换数据的高八位或低四位的功能必须由硬件电路来实现,比较而言,电路更复杂一些。

    下面介绍DMA方式下的具体实现电路。DMA请求电路由两个D触发器组成,当A/D转换完毕时,U20A的输出Q由低电平变成高电平,DRQ1=1,DMA通道1发出请求,DRQ1被认可后进行两次DMA传输。在第一次DMA传输期间,触发器U20B的输出Q为低电平,A/D转换数据的高八位传输到指定内存单元。在第一次DMA传输结束时,DACK1由低电平变成高电平,触发器U20B的输出为高电平,但触发器U20A的输出Q仍然是高电平,该电平申请第二次DMA传输。在第二次DMA传输期间,触发器U20B的输出为高电平,A/D转换数据的低四位传输到指定的内存单元。当第二次DMA传输结束时,DACK1由低电平变成高电平,使触发U20B输出低电平,同时触发器U20A的输出Q变为低电平,DRQ1=0变为低电平,DRQ1=0,DMA通道1的请求被撤销,结束一次A/D转换12位数据传输过程。

2 软件设计

该接口电路支持各种带有口指令操作的高级语言和8086/8088汇编语言。以下就以Turbo C为例对相应的部分编程,经供参考。

2.1 A/D编程

该编程适合于中断或查询方式下的编程,端口地址=0x238~0x23f。

outportb(0x23c,0x00); /*初始化清零*/

outportb(0x23a,0x00); /*选择传输高8位数据并为A/D转换作准备*/

{

}; /*启动A/D并检查A/D是否转换完毕*/

dh=inportb(0x23d); /*输入高八位数据*/

outporth(0x23a,0x01); /*选择传输低四位数据*/

dl=inportb(0x23d); /*输入低四位数据*/

outportb(0x23a,0x00); /*选择传输高8位数据并为A/D转换作准备*/

dl=dl>>4;

dh1=dh;

dl=(dh1<<4)+dl;

dh=dh>>4; /*将高八位低四位数据转化为高四位低八位数据*/

d=dh*256+dl; /*拼合12位数据*/

u=(d-2047)*10.0/4096; /*转换电压值*/

2.2 写启动和查询方式的编程

outportb(0x23d,0x00); /*写启动A/D转换*/

if(inporth(0x23e)&0x80);/*D7=1则A/D转换完毕*/

2.3 8253定时器编程

outportb(0x23b,0x03); /*set 8253 timer into writing mode word state*/

outportb(0x23f,0x36); /*set 0 channel working with mode 3*/

outportb(0x23f,0x74); /*set 1 channel working with mode 2*/

outportb(0x23b,0x00); /*set to write data to 0 Channel mode */

outportb(0x23f,0x02); /*write low data to 0 channel*/

outportb(0x23f,0x00); /*write high data to 0 channel*/

outportb(0x23b,0x01); /*set to write data to 1 channel*/

outportb(0x23f,LC1); /*write low data to 1 channel*/

outportb(0x23f,HC1); /*write high data to 1 channel*/

outportb(0x23b,0x0c); /*启动CH0,CH1工作*/

其中采样频率决写入计数器1的计数值。

2.4 DMA方式下PC主机中8237A DMA控制器编程

8237A DMA控制器具有4个DMA通道,该接口电路使用通道1。

outportb(0x0x,0x05); /*mask DMA channel 1*/

outportb(0x0c,0x00); /*clear byet pointer flip*/

outportb(0x0b,0x55); /*write mode word.demand mode,address tincrease,autoinitialization,write trasfer and select 1*/

outportb(0x83,SEG); /*write page number*/

outportb(0x02,LA); /*write low 8 bit address*/

outportb(0x02,HA); /*write hige 8 bit address*/

outportb(0x03,LC); /*write low 8 bit count data*/

outportb(0x03,HC); /*write hige 8 bit count data*

outportb(0x03,0x01); /*clear mask bit of DMA channel*/

其中写入11口的数值应按照具体的工作方式来确定,写入131口的页地址SEG取20位绝对地址的最高4位的数值,而将低16位地址的数值写入地址寄存器。写基值字节计数寄存器的字节总数值应为需要传输的字节数减1。

2.5 中断服务程序的编写以有中断向量的装入

void interrupt int9() /*中断服务程序*/

{ disable();

ah5=inportb(0x23d); /*输入高八位数据*/

outportb(0x23a,0x01); /*选择传输低四位数据*/

dl5=inportb(0x23d); /*输入低四位数据*/

outportb(0x23a,0x00); /*选择传输高8位数据并为A/D转换作准备*/

outportb(0x23c,0x00); /*A/D转换完毕的标志位清零*/

outportb(0x20,0x20);

enable();

}

void stall 1(void interrupt(*faddr)())

{

disable();

setvect(INT1,faddr); /*装入中断服务程序*/

enable();

}

本文介绍一种基于AD1674设计的接口电路,该电路具有查询、中断和DMA三种数据传输功能,同时采用8253定时脉冲或端口写两种A/D启动方式。其中DMA方式实现了数据的快速传输,而两种A/D启动方式将会使采样率的设定更加灵活。应用本文原理设计的可插入通用PC机的数据采集板已用于我们的高频多谱勒和到达角探测分析系统中,取得了满意的效果。这些设计方法和原理在其它实际数据采集系统的设计过程中,也会具有重要的参考价值。

关键字:8253定时器  DMA方式 编辑:赵思潇 引用地址:基于A/D芯片AD1674设计的数据采集电路

上一篇:24位高精度A/D芯片CS5524的应用
下一篇:浅谈电子产品的可靠性设计

推荐阅读最新更新时间:2023-10-12 20:11

12位串行A/D转换器的原理及应用开发
1 引言   MAXl224/MAXl225系列12位模/数转换器(ADC)具有低功耗、高速、串行输出等特点,其采样速率最高可达1.5Ms/s,在+2.7V至+3.6V的单电源下工作,需要1个外部基准源;可进行真差分输入,较单端输入可提供更好的噪声抑制、失真改善及更宽的动态范围;同时,具有标准SPITM/QSPITM/MI-CROWWIRETM接口提供转换所需的时钟信号,可以方便地与标准数字信号处理器(DSP)的同步串行接口连接。   MAX1224允许单极性模拟输入,MAX1225允许双极性模拟输入。该系列转换器可运行于局部关断模式和完全关断模式,能够将2次转换之间的电源电流分别降低至1mA(典型值)和1μA(最大值);具有1个
[模拟电子]
STM32F0使用LL库实现DMA方式AD采集
在本次项目中,限于空间要求我们选用了STM32F030F4作为控制芯片。这款MCU不但封装紧凑,而且自带的Flash空间也非常有限,所以我们选择了LL库实现。在本文中我们将介绍基于LL库的ADC的DMA采集方式。 1、概述 这次我们使用DMA方式实现对AD的采集,在遗忘我们使用HAL库和标准库都做过,这次我们使用LL库来实现。接下来我们简单了解一下STM32F030F4中的ADC和DMA。 首先看一看ADC,STM32F030F4是12位的ADC。它有多达19个多路复用通道,允许它测量来自16个外部和2个内部源的信号。各种通道的A/D转换可采用单通道、连续通道、扫描通道或不连续通道进行。ADC的结果存储在左对齐或右对齐的1
[单片机]
FPGA控制CLC5958型A/D转换器高速PCI采集
   引言   随着信息技术的发展,基于微处理器的数字信号处理在测控、通讯、雷达等各个领域得到广泛的应用。被处理的模拟信号也在向高频、宽带方面发展,但这需要高速、高分辨率的数字采集卡以将模拟信号数字化。美国国家半导体公司新推出的系列高速、高分辨率模/数转换器(如CLC5958)就非常适用于需要高速、高分辨率的信号采集系统。   用于PC的采集系统以前大多有用ISA总线结构,这种结构的最大缺点是传输速率低,无法实现高速数据的实时传输。而PCI总线则以其卓越的性能受到了广泛的应用。32位PCI总线的最大传输数据速率可达132MB/s,64位PCI总线的最大传输速率可达528MB/s。实际上,采用高性能的总线已经成为高速采集
[嵌入式]
FPGA控制CLC5958型<font color='red'>A</font>/<font color='red'>D</font><font color='red'>转换</font>器高速PCI采集
ROHM确立了适用于高音质音响设备D/A转换器IC的产品化技
全球知名半导体制造商ROHM(总部位于日本京都)确立了D/A转换器IC(以下简称“DAC芯片”※)的产品化技术,该技术非常适用于播放高分辨率音源*1的Hi-Fi音响*2等高音质音响设备。该产品(DAC芯片)实现了全球最高级别的低噪声和低失真特性(S/N比和THD+N特性),而这是音响产品最重要的特性。另外还通过反复试听评估来打造高音质。该产品预计于2019年夏推出第一批样品。 近年来,随着高分辨率音源的普及,音响设备对更高音质的需求日益高涨。在这种背景下,音响用DAC芯片被称为音响设备中决定音质的最重要元器件之一,要求其在完全保持音源信息的前提下对高分辨率数字音源数据进行模拟转换。 ROHM基于50年的音频IC产品开发经验
[家用电子]
ROHM确立了适用于高音质音响设备<font color='red'>D</font>/<font color='red'>A</font><font color='red'>转换</font>器IC的产品化技
基于单片机系统采用DMA块传输方式实现高速数据采集
   摘 要: 介绍一种基于单片机系统设计的DMA硬件电路,以字块传输方式与高速A/D接口。结合在数字式磁通表设计中的应用给出其硬件软件设计方案实例。     关键词: 单片机系统 直接存储器存取(DMA)方式 高速A/D     PC机中外设与内存储器之间数据直接传输的DMA功能以其高效、高速、CPU资源占用少等特点已被广泛应用,这一功能通过安装在主板上的专用DMA控制器芯片或集成在外围控制芯片来实现。单片机的应用领域也常常需要有高速数据传输或数据采集,虽然近些年单片机速度有所提高,仍然无法应付类似单脉冲信号捕获、周期信号频谱分析等需要采用高速A/D的场合。对于速率在100ksps以上的数据采集或传输一般的中
[工业控制]
基于FPGA的高速A/D转换芯片ADC08D1000应用
   0 引 言   美国国家半导体公司的超高速ADC-ADC08D1000是一款高性能的模/数转换芯片。它具有双通道结构,每个通道的最大采样率可达到1.6 GHz,并能达到8位的分辨率;采用双通道“互插”模式时,采样速率可达2 GSPS;采用128脚LQFP封装,1.9 V单电源供电;具有自校准功能,可通过普通方式或扩展方式对其进行控制;可工作在SDR,DDR等多种模式下。下面对该芯片进行详细介绍。    1 ADC08D1000的结构和管脚说明   1.1 ADC08D1000的结构   ADC08D1000的结构如图1所示,主通道由输入多路模拟开关、采样保持电路、8位ADC和1:2分离器/锁存器组成。
[嵌入式]
可编程逻辑器件在高准确度A/D转换器中的应用
1 引 言   可编程逻辑器件(PLD)是当今国际上流行的新一代数字系统逻辑器件。它主要是一种“与-或”两级式结构器件,除了具有高速度、高集成度性能之外,其最大的特点就是用户可定义其逻辑功能。因此PLD能够适应各种需求,大大简化系统设计,缩小系统规模,提高系统可靠性,受到广大工程技术人员的青睐。   可编程逻辑器件种类繁多,性能各异,主要有以下几种基本类型:可编程只读存储器(PROM),现场可编程逻辑阵列(FPGA),编程阵列逻辑(PAL),通用阵列逻辑(GAL)。通用阵列逻辑GAL(Generic ArrayLogic)是新一代的可编程逻辑器件,是采用先进的E2CMOS工艺制造的大规模集成电路,是新产品设计的理想器件
[模拟电子]
可编程逻辑器件在高准确度<font color='red'>A</font>/<font color='red'>D</font><font color='red'>转换</font>器中的应用
使高分辨率A/D转换器获得更高性能
如何才能使 A/D 转换器实现最高性能呢?明显的答案就是采用良好的设计和板面布局,除此之外,我们还可采用其他技术获得性能提升。我们实际上可采用一些简单的技术来推动 A/D 转换器性能,使之优于规范的要求。为了实现这一点,我们应了解 A/D 转换器误差的来源和类型。 本文的目的是解释 A/D 转换器最常见的误差源,并介绍进行上述误差补偿的方法。某些误差补偿的方法理解和实施起来都比较容易,而有些方法则不那么显浅易懂。如果采用方法得当的话,上述方法可大幅提高系统整体性能。 我们不妨先来看看理想的 A/D 转换器应该是什么样的,了解哪些类型的误差会阻碍我们获得最佳性能。简而言之,理想的 A/D 转换器会为我们提供几乎理想的数据
[模拟电子]
小广播
最新模拟电子文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved