ad1674应用电路
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 机的数据采集板已用于我们的高频多谱勒和到达角探测分析系统中,取得了满意的效果。这些设计方法和原理在其它实际数据采集系统的设计过程中,也会具有重要的参考价值。
应用电路
图6 为某新型国产机载武器系统的数
据采集处理部分的电路原理框图。来自保
传感器的十六路模拟信号经过多路开关切
换后送至高精密运放进行缓冲放大,同时
还要保持信号的采样精度。AD1674T 被接
在±10V 双极模拟电压输入模式,使用的是
内部基准源和时钟。从开关选通模拟信号
到A/D 转换以及数据输出均由ADSP2100
微处理器进行逻辑控制,每个这样的变换
周期均为64μs,因而完成16 个通道的模拟转换大约需要1ms 的时间,可以符合该系统的响应技术要
求。
上一篇:数据采集和AD转换电路图
下一篇:ad9850-c程序-设计源代码
推荐阅读最新更新时间:2023-10-12 20:41
- 热门资源推荐
- 热门放大器推荐
- 电子技术综合实验指导书 (华北电力大学电子技术课程组)
- 电子线路设计·实验·测试 (谢自美)
- 模拟电子电路及技术基础 (第三版) (孙肖子)
- 模拟电子技术 第2版 ((美)Robert L.Boylestad,(美)Louis Nashelsky著)
An error occurred.
Sorry, the page you are looking for is currently unavailable.
Please try again later.
If you are the system administrator of this resource then you should check the error log for details.
Faithfully yours, OpenResty.
- Allegro MicroSystems 在 2024 年德国慕尼黑电子展上推出先进的磁性和电感式位置感测解决方案
- 左手车钥匙,右手活体检测雷达,UWB上车势在必行!
- 狂飙十年,国产CIS挤上牌桌
- 神盾短刀电池+雷神EM-i超级电混,吉利新能源甩出了两张“王炸”
- 浅谈功能安全之故障(fault),错误(error),失效(failure)
- 智能汽车2.0周期,这几大核心产业链迎来重大机会!
- 美日研发新型电池,宁德时代面临挑战?中国新能源电池产业如何应对?
- Rambus推出业界首款HBM 4控制器IP:背后有哪些技术细节?
- 村田推出高精度汽车用6轴惯性传感器
- 福特获得预充电报警专利 有助于节约成本和应对紧急情况