在以DSP为主的嵌入式应用系统中,经常用到前端数据采集单元,在该单元中对所采集的信号进行滤波,然后经过A/D转换器进行模数转换,最后将采集到的信号传入DSP芯片中。这里给出了一种采用TI公司的C5000系列定点DSP芯片TMS320VC5509和ADI Device公司的2通道的、软件可选的、双极性输入的、最高转换速率是1MSpS、12位的带符号的逐次逼近型串行AD7322的数据采集系统。
1 关键硬件接口电路实现
1.1 CCD模块
采用东芝公司的TCD1206SUP线阵CCD,TCD1206SUP器件是一种典型的双沟道线阵CCD器件,具有较高的灵敏度和很低的暗电流噪声,光敏像元数目为2160,每个光敏单元的尺寸为14μm、14μm高,中心距亦为14μm,光敏元阵列总长为30.24 mm。有4档驱动频率可以设定,分别为500 kHz,250 kHz,125 kHz,62.25 kHz。对外接口采用标准的9针(DB9)连接。其中FC为行同步脉冲信号,其高电平到来标志着一行输出的开始。SP为像元同步脉冲,对应一行中每一个点的输出。U0为经过放大输出的视频信号,A0~A3为积分时间设置端口,+5 V和+12 V为直流电源,GND为地线,驱动器的地线与DB9连接口的外壳相连。积分时间控制信号A0~A3均为标准TTL电平控制,0000~1111分别控制16档积分时间变换;0000时间最短,1111时间最长。
1.2 低通滤波电路
由于CCD输出的视频信号中,混杂有幅度较大的复位脉冲干扰和携带有高频噪声信号,为了削弱频率较高的干扰、噪声,在CCD与AD转换器之间加一个二阶有源低通滤波电路,滤去高频干扰信号,以保证硬件电路的系统精度。低通滤波电路如图1所示。
图2中的放大器为精密低噪声运算放大器OPA121,它是一个低成本高速FET场效应管差分输入精密运算放大器,差模和共模阻抗都很高。偏置采用共射共基电路,具有很低的输入偏流,并且有调零输出端。片内有经激光修正、电解质绝缘防护和新的电路设计,使芯片获得了极小的偏流噪声和很低的漂移。OPA121的8脚为芯片基底连接,一般不需要调零。但是若要调零,在1、5脚与负电源接入10 kΩ多圈电位器即可,调整范围为±10 mV。在使用时要对输入端适当进行保护,否则就会失去运放的固有特性。而且电容C的容量不易超过1μF,因为大容量的电容器体积大,而且价格高,应尽量避免使用。其中电阻R2=R3=R=6.4 kΩ,电容C10=C11=C=0.1pF,这样计算出该滤波电路的截止频率和增益分别如下式:
f-3dB=1/2πRC=250kHz (1)
G=1+(R5/R4)=1.57 (2)
1.3 A/D转换
AD7322是ADI Device公司的2通道的、软件可选的、双极性输入的、最高转换速率是1MSpS、12位的带符号的逐次逼近型串行AD。它有以下特点:软件可选的输入电压范围有±10 V,±5 V,±2.5 V,0 V~+10 V;2个模拟输入通道,可以配置成单端模拟输入、真差分模拟输入、伪差分模拟输入;低功耗,其最大功耗30 mW;自动节电功能;模拟输入阻抗高;内置2.5 V的参考电压。
AD7322的功能结构如图2所示。其中是片选信号,低有效。这个脚的输入电平有两个功能,一个是AD7322转换初始化的标识,一个是串行数据搬移帧的标识。VIN0、VIN1是模拟输入通道0和模拟输入通道1,模拟输入通道的转换是通过控制寄存器的通道地址位ADD0来进行选择。如前文所述,输人通道可以接收±10 V,±5 V,±2.5 V的双极性电压输入,也可以接收0~+10 V范围的单极性电压输入。VSS是为模拟输入部件提供的负极性电压,VDD是为模拟输入部件提供的正极性电压。VCC是提供给AD7322片上的ADC的核心电压2.7~5.25 V,该端去耦到模拟地。VDRIVE提供输入的逻辑电压,这个电压决定了片上接口工作的电压范围,该引脚去耦到数字地,而且该电压可能与VCC引脚上的电压不相同,但是不能超过VCC电压的0.3V。REFIN/OUT是输入输出参考电压,AD7322包含一个2.5 V的内部参考电压,当选用内部参考电压时,在这个引脚上要放置一个680nF的电容,当使用外部参考电压时,内部参考电压失效。DIN是数据输入引脚,该引脚上的数据是写到片上寄存器中的数据,并在SCLK时钟的下降沿打入到寄存器中。DOUT是串行数据输出引脚,转换的输出数据以一个串行数据流形式输出在该引脚上,并且这些数据位在输入SCLK的下降沿被输出,经过16个SCLK后才可以访问这些数据。这个数据流包含2个前导0,1个通道说明位,1个符号位,12个转换数据位。输出的数据的第一位以高字节开始。SCLK是串行时钟输入,一个串行时钟输入需要提供给SCLK来用做从AD7322访问数据的时钟。这个时钟也用做转换过程的时钟源。
1.4 DSP模块
DSP芯片采用Ti公司的TMS320VC5509,它是一种高性能、低功耗、定点数字信号处理器,其主要特点如下:
1)最高主频能够达到144MHz,指令周期6.94ns。
2)CPU的内部总线结构包括一条程序总线,三条数据读总线,两条数据写总线及用于外设和DMA控制器的总线。这些总线使得C5509能在一个时钟内完成三次数据读操作和两次数据写操作。5509还拥有两个乘法累加器(MAC),每个累加器都能够在一个周期内执行一个17bitx17bit的乘法运算。
3)128 kx16 Bit的片上ROM,包括64 k Bytes的DARAM(8块,每块4 kx16 Bit),192K Bytes的SARAM(24块,每块4 kxl6 Bit)。
4)64 k Bytes的一等待片上ROM(32 k×16 Bit)。
5)最大可寻址8 Mxl6 Bit的外部存储空间。16位的外部存储器扩展接口可实现与异步存储器件(SRAM、EPROM)和同步存储器件(SDRAM)的无缝连接。
6)片上外设包含:
2个20 Bit的定时器;
1个看门狗定时器;
1个六通道的直接存储器访问控制器(DMA);
1个主机接口(HPI);
3个多通道缓冲串行口(Mcbsp);
2个多媒体卡(MMC)或安全数字存储卡(SD Card);
1个可编程的数字锁相环时钟发生器;
7个通用输入输出口(GPIO)和1个外部标志输出引脚(XF);
1个通用串行USB接口(12 Mbps);
1个内部集成电路模块(I2C);
1个实时时钟(RTC);
1个两通道的10Bit的逐次逼近式模数转换器(ADC)。
7)JTAG仿真接口,符合IEEE1941.1标准(JTAG)边界扫描逻辑。
1.5 A/D转换器和CCD以及DSP的接口设计
AD7322在数据转换过程中,采用SCLK引脚上的串行时钟用做转换时钟和控制从ADC中搬移数据的时钟。的下降沿使得采样与保持电路进入保持状态并使总线为三态输出,然后模拟输入信号被采样。一旦转换开始,总共需要16个SCLK时钟周期才能完成。在第14个SCLK的上升沿,采样与保持电路回到跟踪模式,在第16个SCLK的下降沿DOUT脚回到三态输出状态。如果经过16个SCLK时钟周期,的上升沿到来,则转换被中止,且DOUT脚回到三态输出状态。根据在什么时候信号的电平变高,被选择的相应寄存器才有可能被更新。具体的串口时序如图3所示。
具体的连接方法是将CCD的行同步信号FC接入DSP的通用输入输出引脚GPI04脚。将CCD的像元同步信号SP接入DSP的McBSP帧同步输入脚FSR,控制每一个像元的采样与转换。将DSP的帧同步输出脚FSX脚接入AD7322的CS脚作为A/D芯片的选通信号。将DSP的McBSP的时钟输出脚CLKX和时钟输入脚CLKR接至AD7322的串行时钟SCLK,保证A/D转换器和McBSP工作在同一时钟下。将CCD的模拟输出信号U0经一个二阶有源低通滤波电路滤波并经过一个双运放OP2177进行驱动后的两个输出接入AD7322的两个模拟输入端VIN0和VIN1。将DSP的数据输出引脚DX接入AD73 22的DIN引脚,作为对ADC的控制信号。将AD7322的输出引脚D0与McBSP的数据输入引脚DR相连。另外,本系统中的AD7322的参考电压用的是ADC内部的参考电压,所以需要在REFIN/OUT引脚要用一个680 nF的电容去耦到模拟地。
由于在信噪比和谐波失真有严格要求的情况下,AD7322的模拟输入必须由一个低阻抗信源驱动,高阻抗信源很明显地影响ADC的交流特性。所以本系统中采用一个双运放OP2177,OP2177是ADI公司生产的高精度、低偏置、低功耗的集成运算放大器,片内集成了两个运放,可灵活的组成各类放大和滤波电路。
2 数据采集过程
1)Mcbsp的接收器进行复位操作。
2)根据需要,对Mcbsp的寄存器进行编程。
3)使能Mcbsp的接收器。
4)检测DSP的Gpio4的电平状态,这里CCD的FC给DSP的Gpio4,一旦Gpio4为高,则说明CCD的行同步FC的上升沿到来,也就是说CCD的有效像元开始输出了。
5)启动A/D,DSP的Gpio4为高后,等待1μs的时间,让FSX脚输出低电平,选通A/D转换器。
这里等待1μs的原因是A/D的CS变低后,要检测FS的电平,而FS的信号就是SP的信号,当FC为高时,SP也同时为高,且保持1 μs的高电平的时间,如果不等待1μs的话,CS下降沿检测FS不为高,则认为A/D没有正确进入DSP模式,所以为了保证AD能正常进入DSP模式,等待1μs后,SP和FS都变为低电平,这时在检测FS的电平就能说明AD进入DSP模式了,而SP的占空比是1:7,也就是SP和FS在下一次变高时还有7μs的低电平时间,这个7 μs足以保证DSP正确锁定在DSP模式下。
6)采集数据:选通A/D转换器后,在SP脉冲上升沿到来时开始数据采样与转换。一个像元的转换输出数据被McBSP接收完毕后,McBSP将发出一个接收中断到CPU,CPU响应此中断后将数据从McBSP的缓冲寄存器中读入存储器内存,然后退出中断,进行下一个点信号的接收。我们还需要设置一个计数变量,在每一次中断后对其进行加一操作,当计数变量的值达到2160时,撤销选通信号,这样一个完整的对CCD一行的输出信号的A/D转换完成。
DSP的CPU或DMA控制器与Mcbsp的通信,是通过16 Bit的寄存器访问内部的外设总线来实现的。Mcbsp的数据接收寄存器有2个,DRR1和DRR 2,当字长小于16 Bit时使用DRR1。把Mcbsp要传输的串行字定义成为16 Bit(刚好是10 Bit A/D转换数据出的6个0+10 bit二进制数),并自行定义Mcbsp传输数据的一帧就是16 Bit,也就是说CCD的一个SP就被转换成6个0+10 Bit的二进制数,这样对于Mcbsp的一帧来说,就CCD的一个SP。Mcbsp接收完一帧数据后,就触发中断,进行这一帧数据的存储,然后进行下一个SP像元点的采样转换与传输,直到所有的像元采集完毕。
7)关闭A/D:把DSP的RSX原来的选通A/D的低电平变为高电平,以关闭A/D。
3 结束语
文中以TMS320VC5509 DSP芯片和AD7322模数转换芯片为例,详细讨论了数据采集系统的关键硬件接口电路设计和采集过程。目前该数据采集系统已经安装在一维条码识别系统中,实践证明,该数据采集系统能够正确采集数据,达到了设计目的和应用要求。
作者:高峰 来源:电子设计工程