ADl871型模/数转换器在数据采集系统中的应用

发布者:innovator8最新更新时间:2006-09-13 来源: 国外电子元器件关键字:采样  单片机  速率 手机看文章 扫描二维码
随时随地手机看文章

1 引言
  科学技术的发展对数据采集系统的采样速率、分辨率、精度、接口及抗干扰能力等提出越来越高的要求。ADl871是目前市场上动态范围、采样速率和采样精度等指标都很突出数据的一款24位ADC,它的推出为设计高速、高精度数据采集系统提供了一种较好的解决方案。由于其输出为串行输出,当其和MCU直接相连时,会使采样系统的采样速率大大降低。

  如果MCU的I/O端口的实际最高速率是1MHz(单片机的速率通常是这个数量级),那么I/O端13传输1Bit的最短时间间隔为1μs,当ADl871输出2路各24Bit时,需要实际串行输出64Bit,故采样速率下降为1MHz/64=15.625kHz,这个速率远远低于ADl871的96kHz,另外,单片机把64位串行数据再处理为2个24位的并行数据时,速度会进一步降低。

  为此,笔者采用现场可编程门阵列(FPGA)设计了ADl871和MCU之间的接口,由FPGA完成对ADl871的控制,并将其输出的串行数据在FPGA的内部变为并行数据,并行后的数据以8位或12位为一组发给MCU。由于FPGA的实际传输速率可以满足和ADl871的传输速率要求,故上述“瓶颈”得以解决。

2 接口设计
2.1 时钟设计
  
图1示出A/D转换器的输入时钟设计,MD转换器工作在从模式下时,需要外部提供RLCLK和BCLK。在主时钟MCLK的输入下,通过对MCLK 4分频得到BCLK的信号,用来作为位数据提取的信号。RLCLK是通过对BCLK的32分频得到的,用来区分左右通道的数据,同时输出EN信号作为后续处理的同步信号。

2.2 接口设计
  在图2中,输入为MCLK(主时钟)、RESET(启动信号)和SHIFTIN(A/D输出数据),输出为RL(左右帧信号)、BCLK(A/D数据位时钟),TXT(并行数据读取控制)和SHIFTOUT(并行数据输出)。通过时钟控制输出BCLK和RLCLK到AD1871,AD1871传出数据SHIFTIN进入SHIFT模块,SHIFT模块在正确的位时钟下读取SHIFTIN的输入数据,并进行串,并转换,之后输出8位或12位的数据。同时输出TXT并行数据读取控制。

2.3 SHIFT模块程序

Emity shifill is
PORT(BCLK:IN STD_LOGIC;一输入的BCLK位信号
CR :IN STD_LOGIC;--输入的使能信号
SHIFTIN:IN STD_LOGIC:--AD输入的串行信号
RLEN:IN STD_LOGIC;--输入的RLCLK使能,帧对准信号
TXTS:OUT STD_LOGIC;--8位的组信号输出控制信号
sddddd:OUT STD_LOGIC_VECTOR (7DOWNTO 0); --8位并行信号输出);
end shift11:
architecture Behavioral of shift11 is
SIGNAL TEMPDATE:STD_LOGIC_VEC—TOR(8 DOWNTO 0);
SIGNAL TEMPO11:STD_LOGIC_VECTOR(7DOWNTO 0):=“00000000”;
SIGNAL Q:INTEGER RANGE 0 T0 7;
一并行信号计数8位产生一个脉冲;
SIGNAL Q4:INTEGER RANGE 0 TO 3;
--有用信号选择,选择32位中的24位;

  笔者用MaxPlus II对以上设计进行仿真后得到图3所示的时序图,完全满足设计要求,从图3可以看出串行输入的数据(shiflin)变成并行的数据(shiftout)输出,在此过程中数据延时8个周期,每个txts的上升沿提取数据能保证数据的正确性。因为从数据的变动到txts的上升沿有400ns,大于FPGA的数据建立时间(25ns~50ns),可以保证提取数据的正确性。


3 小型采样系统
  图4示出采用ADl871构成的采样系统结构。整个系统在1个FPGA上实现,分为3部分:并转换模块;ADC控制和配置;UART通信。

  具体的功能是实现ADC的初始化、信号的采集存储及UART通信。

  工作原理是由ADC控制模块来接收PC的数据,转发控制数据到ADC,对ADC的工作状态进行配置。完成后ADC采样并储存在FIFO中,通过控制向单片机传送数据。

  从仿真结果看,整个系统的工作正常,说明接口设计的正确性和可行性。

4 结束语
  由ADl871构成的数据采集系统具有高分辨率、宽动态范围、高信噪比等特点,特别适用于高精度数据采集系统。∑-△型ADC具有抗干扰能力强、量化噪声小、分辨率高、线性度好、转换速度较高、价格合理等优点,因此越来越多地受到电子产品用户及设计人员的重视。解决这类ADC的接口问题在实际设计中具有重大意义。笔者设计的接口使单片机从接收数据的困境中解脱出来,大大提高了单片机的采样速率,原来处理一帧数据需要读64次,现在只需要6次,在12位输出的情况下只需要4次,也就是说采用FPGA后单片机的I/O口可以达到1MHz/6=166.66kHz的采样速率,大大超过了96kHz的采样速率,使单片机有时间对数据进行一些处理。

关键字:采样  单片机  速率 引用地址:ADl871型模/数转换器在数据采集系统中的应用

上一篇:基于Nios II的非一般模式类设备设计与集成
下一篇:采用先进的设计流程加快系统级封装设计

推荐阅读最新更新时间:2024-05-13 18:14

MSP430单片机基本特点
MSP430单片机已经用于各个领域,尤其是仪器仪表、监测、医疗器械以及汽车电子等领域。 下面简单来说一下它的主要特点:(1)低电源电压范围,1.8~3.6V。 (2)超低功耗,拥有5种低功耗模式。 (3)灵活的时钟使用模式。 (4)高速的运算能力,16位RISC架构,125ns指令周期。 (5)丰富的功能模块,这些功能模块包括:A:多通道10-14位AD转换器;B:双路12位DA转换器;C:比较器;D:液晶驱动器;E:电源电压检测;F:串行口USART(UART/SPI);G:硬件乘法器;H:看门狗定时器,多个16位、8位定时器(可进行捕获,比较,PWM输出);I:DMA控制器。 (6)FLASH存储器,不需要额外的高
[单片机]
80C51单片机程序(3)
80C51单片机程序 点亮数码管(一位0-9循环显示) #include reg52.h //包含reg52.h头文件 #define uint unsigned int //宏定义uint的数据类型为unsigned int型 #define uchar unsigned char //宏定义uchar的数据类型为unsigned char型 sbit D1=P2^6; sbit W1=P2^7; uchar num; uchar code table = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //共阴数码管0-9 void del
[单片机]
给学单片机学生的一些忠告
在大学里,必须掌握一些基础知识(这是必要的,毕竟你还不知道毕业后将干什么工作),基础知识主要有模拟电路和数字电路以及高等数学知识(必修课)。然后重点学习一些别的知识,比如单片机,FPGA,PCB设计,DSP(这些都是选修课),不要什么都学,自己感兴趣的,有条件的学一学。 有些人的求职简历写着学了什么什么,罗列一大堆,我认为这种人是吹牛,或者是学而不精。每个领域,要想精通,不要说一年两年,可能10年8年,都有的学。如果我去招聘,我反而看重简历里学的知识不是很杂,但有所精通的人。这些人一般有比较多的实践经验。实践比理论要重要的多,对于搞电子的来说。特别是高频,理论通,实践往往不通,但是实践通的,理论上又难于解析。   对于单片机来说,
[单片机]
业界首个带片上高速USB器件的闪存微控制器
  日前,爱特梅尔公司 (Atmel Corporation) 宣布推出业界首款集成了高速 (480 Mbps) USB 器件兼收发器 (Device-and-Transceiver)、4位192 Mbps SDIO/SDCard 2.0、8位384 Mbps MMC 4.3 主机和片上48 MbpsSPI 接口之ARM Cortex-M3 闪存微控制器 SAM3U。SAM3U 的连通性,配合96 MHz/1.25 DMIPS/MHz工作频率,使其成为独特的 Cortex-M3 器件,适合于具有密集通信需求的应用,如工业、医疗、数据处理和消费应用中的高速网关。SAM3U 的面世扩展了爱特梅尔包括了 ARM 及AVR32产品的 32
[单片机]
学习单片机的捷径是什么?
所谓捷径就是少走弯路。我刚开始学单片机时走了不少弯路,很多朋友和我都有相似的经历,刚开始接触单片机,面对琳琅满目的图书教材,不知选择哪本;想实践时不知到哪买单片机;不知如何编程下载程序…… A 对于初学者仔细看本文就是学习单片机的捷径之一。 B 到图书馆或者书店在数十本单片机书中选一本你能看懂,而且觉得案例有趣的“实在、生动、活泼”的单片机书做为你的入门读物。 C 建议先从51单片机学起。掌握51后再学AVR,然后学ARM、DSP等。 D 在学习过程中实践非常必要。你需要一台电脑。如果是台式电脑,你可以花十几元购买25针并口下载线,如果是笔记本电脑,你只能购买几十元到几百元的USB ISP编程器。 E 用万用板自己焊一个单片机最
[单片机]
单片机C语言教程第二课-初步认识51芯片
上一课我们的第一个项目完成了,可能有懂C语言的朋友会说, 这和PC机上的C语言没有多大的区别呀 。的确没有太大的区别,C语言只是一种程序语言的统称,针对不同的处理器相关的C语言都会有一些细节的改变。编写PC机的C程序时,如要对硬件编程你就必须对硬件要有一定的认识,51单片机编程就更是如此,因它的开发应用是不可与硬件脱节的,所以我们先要来初步认识一下51苾片的结构和引脚功能。MSC51架构的芯片种类很多,具体特点和功能不尽相同(在以后编写的附录中会加入常用的一些51芯片的资料列表),在此后的教程中就以Atmel公司的AT89C51和AT89C2051为中心对象来进行学习,两者是AT89系列的典型代表,在爱好者中使用相当的多,应用资料
[单片机]
<font color='red'>单片机</font>C语言教程第二课-初步认识51芯片
AVR单片机对数码管数据P0口与P2口的控制设计
//数码管数据P0口,数码管控制P2口 #include #include #include #include #include #define code PROGMEM #define uchar unsigned char #define uint unsigned int code const ucharLED_7[16] = {0x28, 0x7E, 0xA2, 0x62, 0x74, 0x61, 0x21, 0x7A, 0x20, 0x60,0xff};//common of + code const uchar posi ti on[8] = {0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0x
[单片机]
AVR<font color='red'>单片机</font>对数码管数据P0口与P2口的控制设计
51单片机——按键操作
在51单片机开发板上,对按键设置进行操作,其中包括按键的按下,显示对应位置,以及按键密码锁 1.按下按键显示对应位置 main.c #include REGX52.H #include Delay.h #include LCD1602.h #include MatrixKey.h unsigned char KeyNum; void main() { LCD_Init(); LCD_ShowString(1,1, helloworld ); while(1) { KeyNum=MatrixKey(); if(KeyNum) { LCD_ShowNum(2,1,KeyNum,
[单片机]
小广播
最新应用文章
换一换 更多 相关热搜器件

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 医疗电子 工业控制

词云: 1 2 3 4 5 6 7 8 9 10

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved