《电子技术应用》
您所在的位置:首页 > 其他 > 业界动态 > 基于AD7366/AD7367的高速数据采集模块设计

基于AD7366/AD7367的高速数据采集模块设计

2009-05-05
作者:王启伟, 韩 骏, 董 峰

  摘 要: 介绍了AD7366/AD7367的主要特点,并搭建了以AD7366/AD7367和FPGA为基础的电磁层析成像高速数据采集模块。以AD7366为例给出了高速数据采集模块的实现方法和仿真结果。
  关键词: 电磁层析成像; AD7366/AD7367; 数据采集; FPGA

 

  数据采集是获取信息的重要途径。数据采集的好坏,主要取决于它的精度和速度。在保证精度的条件下应有尽可能提高采样速度,以满足实时采集、实时处理和实时控制对速度的要求。在电磁层析成像EMT(Electromagnetic Tomography)数据采集系统中,共有16路数据采集通道,每路数据采集通道通过16路模拟开关分时切换到A/D模块进行数据转换和处理,数据信息量非常大,这对AD转换器速度要求非常高,而且需要很强的数据处理和传输能力[1-2]。串行AD7366/AD7367芯片具有速度快、体积小、功耗低、占用数据口少等优点,而且作为可编程逻辑器件的FPGA,集成上百万的逻辑门,支持反复地编程、擦除和使用,开发周期短,运用成本低,处理速度高等优点,因此,选择以FPGA为平台对AD7366/AD7367的高速转换数据进行传送、存储和相应的数据处理。
1 数据采集模块
1.1 数据采集模块组成
  基于数据采集系统的功能与特点,综合考虑了数据采集系统对数据处理的速度、精度和实时性等要求,本文设计的数据采集模块主要由A/D转换电路、FPGA和PCI总线三大部分组成[3]。具体数据采集模块框图如图1所示。

 

1.2 AD7366/AD7367
  AD7366/AD7367[4]是Analog Devices公司生产的8通道、12位/14位、高速、低功耗、单/双极性转换的高精度串行逐次逼近型ADC,采样速率最高可达到1MS/s。在连续采样的情况下,完成一次转换的时间(包括数据的读取)不会超过1μs。在一般模式下,最低消耗电流为8.3mA;若工作于关闭模式,消耗电流可降低到320nA。AD7366/AD7367还具有可编程选择模拟输入电压范围的功能,有3个不同的输入范围可供选择:±10V、±5V及0~10V。AD7366/AD7367的引脚图如图2所示。

 


    AD7366和AD7367的转换过程和控制时序都是一致的,惟一不同的是,AD7366是12位的串行ADC,AD7367是14位的串行ADC,即转换结果位数不同。因此,在高速数据采集模块设计过程中,均以AD7366为例来说明。
1.3 存储器
  综合考虑了数据转换结果的精度和速度,选择了FPGA开发板上集成的IS61LV25616AL型SRAM芯片,容量为512KB,字长为16bit。本系统使用的是12bit的A/D转换器,IS61LV25616AL型SRAM的字长和容量都能满足系统要求。IS61LV25616AL型SRAM芯片的读写主要由控制信号来支配,控制信号主要有:
2 数据采集接口设计
2.1 数据采集流程
  在整个数据采集接口设计中,利用VHDL语言[5]依次实现了时钟匹配、AD7366的启动、查询和停止,以及数据串并转换和数据存储等数据采集过程。具体采集流程图如图3所示。

2.2 时钟匹配单元设计
  电磁层析成像高速数据采集系统采用的是CycloneⅡ系列的EP2C35F484C8型FPGA,它提供的时钟信号频率为50MHz,AD7366/AD7367的最大时钟信号频率为1MHz,所以必须设计相应的分频单元解决AD7366/AD7367与FPGA时钟频率匹配问题。分频的基本原理如下:假设一个3位的二进制字符串,最先初始化为“0”,然后每来一个FPGA时钟信号,该字符串自动加1,则会依次出现以下字符串:000,001,010,011,100,101,110,111,000,001……。通过以上字符串可以看出其规律:它的最高位由“0”变到“1”和由“1”变到“0”都要经过4个连续的FPGA时钟信号,并且在这4个连续的FPGA时钟信号期间,这个3位的二进制字符串的最高位都恒为“1”或“0”,接收到8个FPGA时钟信号后才会接收到1个二进制字符串最高位组成的周期信号。因此,利用3位的二进制字符串的累加实现8分频。如果字符串的长度为n,则可以实现2n分频。
    综上所述,为了把FPGA提供的时钟信号频率50MHz分频到1MHz以下,解决AD7366/AD7367与FPGA的时钟频率匹配问题,可以设置一个长度为6的字符串,实现64分频,满足数据采集时钟频率要求。
2.3 AD7366/AD7367时序控制单元设计
    AD7366/AD7367时序控制单元主要处理两种信号:控制信号和状态信号。AD7366/AD7367的主要控制信号是转换开始信号和芯片选择信号CS,主要状态信号是转换完成信号BUSY。
    利用FPGA提供转换开始信号的下降沿触发AD7366/AD7367,开启模数转换,随后转换完成信号BUSY会自动置为高电平。在模数转换期间,BUSY信号会一直保持高电平,直到本次转换完成BUSY信号才会再自动跳变为低电平。下降沿到来后,再过两个进程才重新将信号置为高电平,保证了t1至少不得短于10ns的要求。然后该代码又设置检测转换完成的语句,即利用检测BUSY信号的下降沿来判断转换是否完成。从开启模数转换开始到完成,一直都将置为高电平,直到检测到BUSY信号的下降沿的到来后,即代表本次模数转换已经完成后,才将置为低电平,允许转换结果的输出。在输出转换结果的过程中,又设置了相应的循环判断数据是否已经输出完毕。当检测到结果输出完毕时,又将信号置为高电平,表示本次转换已经彻底结束。如果需要进行下一步的模数转换,则重新进行以上操作。
2.4 串并转换单元设计
  AD7366/AD7367是串行输出芯片,为了方便数据的存储和运算处理,有必要设计一个串并转换单元实现串行数据转换为并行数据的功能。
  在高速数据采集模块的设计过程中,为解决串并转换问题,采用了移位操作的方法。考虑到AD7366的转换结果是12位,设置了一个13位的移位寄存器,即一个13位的字符串temp_data_ad66。当检测到BUSY信号的下降沿后,在下一个进程开始数据的串并转换。串并转换的具体操作是:首先对设置的移位寄存器temp_data_ad66赋初值“1111111111110”,每当来一个SCLK的下降沿,把移位寄存器temp_data_ad66的数值往左平移一位,并把此时芯片的输出端DOUTA的输出结果放到寄存器temp_data_ad66的最低位,即把移位寄存器temp_data_ad66的原有数据的低12位和AD7366输出端DOUTA的输出数据组合在一起构成一个新的13位的位串存放在移位寄存器temp_data_ad66中。每来一个SCLK信号,移位寄存器temp_data_ad66的数据则向左移动一位,AD7366输出端DOUTA的输出数据则自动依照先后顺序存放在寄存器temp_data_ad66的最低位;相应地,temp_data_ad66中初始化存放的字符串“1111111111110”中的“1”就会减少一个,只要检测到的SCLK信号的下降沿总数少于12个,即移位操作次数少于12次时,temp_data_ad66的最高位都会是“1”,不会是“0”。当且仅当移位操作次数等于12次时,其最高位才会为“0”,同时,此时寄存器temp_data_ad66的低12位存放的数据恰好就是AD7366的转换结果。据此,可以通过检测移位寄存器temp_data_ad66的最高位是否为“0”来判断串并转换是否结束。AD7366的输出端DOUTA是按照依次先输出高位再输出低位的顺序输出A/D转换结果。结合串并转换过程可知,当串并转换完成时,寄存器temp_data_ad66中存放的数据顺序正好与A/D转换真实结果一致。
2.5 数据存储单元设计
  数据存储过程中,AD7366都被置于关闭状态。在进行写操作之前,控制信号都置为高电平,存储器停止工作。准备进行写操作时,将控制信号置为低电平,其他控制信号仍然保持高电平,同时向地址输入线送入数据存储地址。在下一个进程到来时,把控制信号也置为低电平,其他控制信号保持原来状态。SRAM在接收到输出使能控制信号WE的下降沿时,通过地址寻址,自动把输入/输出总线上的数据送到地址线数据对应的存储单元,完成数据的写操作,下一个进程来时,把控制信号再次置为高电平。
3 实验仿真结果
  在高速数据采集模块设计过程中,使用的仿真软件是Altera公司提供的QuartusⅡ开发系统[6]。以下实验结果都是以AD7366为例,利用QuartusⅡ仿真得到的。
3.1 实现时钟匹配实验结果
  由前面的分析可知,要实现AD7366与FPGA的时钟匹配,需要对FPGA提供的时钟信号进行64分频。经QuartusⅡ仿真实现了64分频,clk为FPGA时钟信号,clk0为AD7366时钟信号,如图4所示。

 


3.2 AD7366工作时序仿真结果
  图5是AD7366在一个完整周期内的工作时序仿真图。

 


3.3 数据存储
  在数据存储过程中,输出使能信号OE始终为高电平。当接到A/D传来的存储信号时,SRAM的片选信号CE跳变为低电平,一个进程后,写使能信号WE、高低字节选择信号UB和LB都被置为低电平,写数据开始。具体仿真图可参见图5。
  针对电磁层析成像数据采集系统对数据采集速度和精度的要求,设计了一套基于FPGA的高速数据采集模块,使用了高速高精度的串行模数转换器AD7366/AD7367进行数据转换,利用FPGA编程控制AD7366/AD7367的启动、停止和状态查询,同时进行FPGA与AD7366/AD7367时钟匹配、串并转换、高速数据缓冲、数据存储等处理,实现了电磁层析成像(EMT)数据采集系统数据信息的高速采集,提高了EMT系统数据采集模块的数据处理能力和传输能力。


参考文献
[1]  YU Z Z, PEYTON A J, XU L A, et al. Electromagnetic inductance tomography(EMT): sensor, electronics and image reconstruction algorithm for a system with a rotatable parallel excitation field[J]. IEE Proceedings-Science, Measurement and Technology, 1998, 145(1):20-25.
[2]  PEYTON A J, YU Z Z, LYON G, et al. An overview of electromagnetic inductance tomography: description of three  different systems[J]. Measurement Science and Technology,  1996,7(3):261-271.
[3]  周振安,数据采集系统的设计与实践[M].北京:地震出版社,2005.
[4]  Analog Devices公司.AD7366/AD7367芯片手册, 2007.
[5]  潘松,黄继业.EDA技术实用教程[M]. 北京:科学出版社,2004.
[6]  Altera公司. QuartusⅡ使用说明. 2003.

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。