APP下载

基于DSP的光电探测器数据采集

2011-01-23蔡钧璞陆亦怀

关键词:管脚PC机寄存器

蔡钧璞, 陆亦怀

(中国科学院安徽光学精密机械研究所,安徽合肥 230031)

数字信号处理(Digital Signal Processing,简称DSP)技术是基于可编程超大规模集成电路技术和计算机技术发展起来的一门重要技术。DSP芯片的快速数据采集与处理功能以及片上集成的各功能模块为DSP广泛应用提供可能。数据采集是DSP的最基本应用领域,也是控制过程中的重要环节,因此有必要对基于DSP的数据采集系统的设计方法进行研究。本文采用 TI公司的TMS320F2812DSP芯片实现了对滨淞公司的NMOS线阵器件数据采集系统,系统软件在CCS3.3平台下开发。

TMS320F2812是TI公司推出的功能强大的定点DSP,它最大的特点是速度相比之前的DSP芯片有了质的飞跃,达到150 MHz,指令周期为6.67 ns,处理数据位数达到32位定点。此外TMS320F2812拥有EVA、EVB事件管理器和配套的12位16通道的AD数据采集,以及丰富的外设接口,如SPI、SCI等[1]。

1 系统总体结构

数据采集系统应具备驱动光电探测器,将光电探测器输出的模拟信号转换为数字信号,接收数字信号以及完成数据上传功能。

TMS320F2812事件管理器的通用定时器产生PWM波形来驱动光电探测器C5964-0910,探测器输出的数据通过A/D转换芯片MAX195进行A/D转换,由DSP的SPI串行I/O模块采集并储存在片上存储器内,最后通过串行通信接口(SCI)上传给 PC机。

系统总体结构如图1所示。

图1 系统总体结构图

2 光电探测器的驱动和控制

系统采用HAMAMATSU公司C5964系列512像素的C5964-0910型NMOS线阵探测器,测量波长范围覆盖紫外至近红外区域(最大达到1 000 nm),其主要信号引脚包括模拟信号输出脚DATA VIDEO、探测器的时钟信号管脚CLK、探测器数据输出起始信号管脚START、中断触发信号管脚TRIGGER以及停止信号管脚EOS。

2.1 C5964-0910型探测器的硬件连接

为完成对光电探测器的驱动和控制,需要生成2路PWM波形作为探测器的CLK和START输入信号。TMS320F2812包含EVA和EVB 2个事件管理器,每个事件管理器都有2个通用计时器,而每个通用计时器都可以独立生成PWM波。本采集系统中,使用的是EVA事件管理器的2个定时器。图2所示为光电探测器与DSP主要管脚的硬件连接,T1PWM为定时器GP1生成波形的输出脚,T2PWM为定时器GP2生成波形的输出脚。DSP的T1PWM管脚与探测器的 CLK管脚相连,为探测器提供周期为4 μ s、占空 比为 50%的 方波信 号。DSP的T2PWM管脚与探测器的START管脚相连,为探测器提供周期为25 ms,脉宽为2个CLK周期(8 μ s)的信号 。

T RIGGER脚与 TMS320F2812的非可屏蔽中断引脚(NMI)相连,触发中断采集程序,进行数据采集;EOS脚与XINT2中断引脚相连,当光电探测器数据输出完毕后将发出该中断,在中断服务程序中关闭数据采集程序。

图2 DSP2812与C5964-0910的硬件连接示意图

2.2 探测器驱动的软件设计

TMS320F2812用30 M外部晶体提供时钟,使能片上PLL电路后通过对PLL控制寄存器PLLCR低4位控制,确定PLL倍频系数。根据设计要求,通过PLL倍频及高速外设时钟预定标分频为EVA的定时器提供频率为60 MHz的时钟信号。每个定时器都有各自独立的计数寄存器(T xCNT)、比较寄存器(TxCMPR)、周期寄存器(T xPR)和控制寄存器(TxCON)。下面通过对这些寄存器进行配置,生成驱动光电探测器所需的2路PWM 信号[2]。

生成CLK信号的部分配置代码如下:

生成START信号的部分配置代码如下:

配置时设置了定时器 2的周期中断,这样START信号的每个脉冲下降沿都会产生一个中断,DSP将在这个中断里采集和上传数据[3]。

3 光电探测器数据的A/D转换和采集

给光电探测器输入符合要求的CLK信号和START信号后,在DATA VIDEO管脚上会有模拟数据输出。这些数据需要经过A/D转换后才能被DSP的SPI模块采集并且上传给PC机。

3.1 TMS320F2812的SPI模块简介

TMS320F2812提供的串行外设接口(SPI)是一个高速同步的串行输入输出接口,其通信速率和通信数据长度都是可编程的。在简单工作模式下,SPI通过移位寄存器实现数据交换,即通过SPIDAT寄存器移入和移出数据。此外还可以通过可编程寄存器设置SPI接口的工作方式及工作时的各个参数。

在本系统中,使用SPI模块的主动工作方式,SPISOMI作为输入引脚,用来锁存ADC输出的每一位数据;SPISIMO作为输出引脚将其悬空;SPICLK引脚为整个串行通信网络提供时钟,ADC的CLK由SPICLK提供时钟脉冲,从而保证其与SPI工作的周期匹配;SPIST E引脚作为对ADC的片选信号,可以由SPI自动驱动,在本系统中选择用软件手动驱动[4]。

3.2 MAX195的功能及工作方式

本系统中使用Maxim公司生产的16位逐次逼近式串行模数转换器MAX195作为转换工具。MAX195有异步转换传输方式和同步转换传输方式,本系统中使用同步转换传输方式,即在转换周期中以CLK时钟频率将转换好的上一个数据位输出。这种工作方式可以实现最大的转换传输速度。

3.3 MAX195的硬件连接

根据同步转换传输方式的需要及采集系统时序的要求,将SCLK管脚和EOC管脚接地、参考电压输入端(REF)接4.096 V电压、Ain管脚与光电探测器的模拟数据输出端相连、Dout管脚与DSP的SPI串行模块数据输入管脚(SPISOMI)相连、时钟信号 CLK接 DSP的SPI模块SPICLK管脚(保证 MAX195与SPI模块时序同步)、CS片选信号与SPI的SPISTE信号相连、转换开始控制信号(CONV)及复位信号(RESET)分别与DSP上的自定义I/O管脚GPIOA15和GPIOA14相连,如图3所示[5]。

图3 M AX195硬件连接示意图

3.4 MAX195进行A/D转换的时序控制

图4所示为MAX195工作时序图。CS信号与CONV信号并为一路,可以简化硬件连接及程序设计。A/D转换从CS的下降沿开始,在第2个时钟脉冲的下降沿输出转换数据的第1个数据位MSB,并锁存在输出端口Dout,往后的每个时钟脉冲下降沿输出一位转换后的数据位,直至将数据的第16位(最低位)输出至 Dout后,CS与CONV信号置为高电平,EOC信号置低,完成一个输入数据的A/D转换[6]。

因为MAX195的最大工作频率为1.7 MHz,而其时钟信号使用的是SPI的SPICLK信号,所以必须将SPI工作频率限制在1.7 MHz以内。配置SPI波特率寄存器:SpiaRegs.SPIBRR=19,由波特率计算公式,波特率=LSPCLK/(spibrr+1)=30 M/20=1.5 M,其中 LSPCLK为低速外设时钟。

图4 M AX195同步转换传输方式时序图

其次,MAX195要求CONV信号的下降沿出现在CLK信号为低电平时,因此,需要将SPI配置为数据在上升沿输出且输入数据锁存在下降沿,当无SPI数据发送时,SPICLK处于低电平。寄存器设置如下:

此外,一个转换周期结束到下一个转换周期开始,必须经过至少3个CLK周期的等待时间。在实际应用中,将EOC管脚与CONV管脚直接相连,因此当一次转换结束后,EOC变为低电平,CONV脚也将被拉低,从而启动下一次转换。

4 DSP综合设计及功能实现

在完成光电探测器的驱动控制以及MAX195ADC与DSP的SPI串行模块时序协调的基础上,通过设置中断和循环控制进一步综合编程,并最终实现将数据上传PC机。图5所示为完整的采集系统流程。

图5 完整的光电探测器数据采集流程图

4.1 DSP系统初始化及中断设置

在DSP上电后对其进行一系列初始化过程,在初始化中断向量表之后,要根据程序中具体使用到的中断重新分配中断服务的中断向量,这样才能保证相应的中断被触发后能正确进入中断服务子程序。在该数据采集系统中,一共用到了3个中断,分别是EVA定时器2的周期中断、光电探测器发出的 TRIGGER中断和EOS中断。因此,要将中断向量表中相应的向量与中断服务子程序建立一一对应的关系,并通过软件使能这些中断。部分设置代码如下:

根据图5的流程,在整个采集系统中会出现中断嵌套,即在EVA的GP2周期中断服务程序中产生TRIGGER信号中断及EOS信号中断,故在相应的中断程序中要正确地禁止或使能中断,以保证整个流程运行正常,不会因出现非法中断而导致程序停滞[7]。

4.2 数据初步处理

SPI模块接收到的MAX195A/D转换结果数据,并不是需要的准确数据,还需要进行一些简单的处理。MAX195是16位A/D转换器,其输出数据为16位二进制数。SPI模块的串行接收缓冲寄存器(SPIRXBUF)及用来发送和接收数据的位移寄存器(SPIDAT)均为16位,然而根据图5所示的MAX195转换时序,其每次转换都要在2个时钟周期之后的第3个脉冲下降才输出第1位转换数据,当脉冲信号出现后SPI模块就会在每个脉冲下降沿锁存SPISOMI引脚上的数据。因此,为读取MAX195转换的16位二进制数据,需要通过SPI的SPIDAT寄存器向SPIRXBUF寄存器移入2组数据,再将这2组数据中相应的有效数据位进行组合,得到16位A/D转换的输出结果。

4.3 数据上传

采集到数据后,由DSP的SCI串行口将数据上传给PC机,数据可以在收到每个EOS中断信号后自动上传也可以通过设置DSP的SCI接收中断,由PC机给DSP发出指令,DSP收到指令后将缓冲区的数据上传。注意将DSP的SCI串行口的传输速率设置成与PC机上串口接收工具相吻合,否则会接收到不正确的数据[8]。

5 结束语

本文设计的采集系统可以实现光电探测器数据自动采集上传,也可根据需要发送命令进行手动数据采集。如果将程序中的诸如CCD的START信号周期用变量来表示,可以方便地更改探测器的积分时间,使采集系统在使用上更加灵活,也更易控制。

该数据采集系统也有需要改进的地方。由于串行口的传输速率较慢,通过DSP的SCI上传数据给PC机会占用很多的时间,如果需要连续采集数据,会出现DSP缓冲区不够用,这样有的数据还未上传就被新的数据覆盖。因此,可以尝试使用DSP片上携带的以太网芯片,通过与PC机进行网络连接来实现数据上传。

[1]苏奎峰,吕 强,耿庆锋,等.TMS320F2812原理与开发[M].北京:电子工业出版社,2006:1-55.

[2]宋正勋,胡 贞,许红梅.DSP器件的原理及应用[J].长春光学精密机械学院学报,1999,22(2):62-67.

[3]赵 峰,罗俊卿.一种基于PC机的多DSP系统设计[J].电子技术,1998,35(8):34-36.

[4]苏奎峰,吕 强,常天庆,等.TMS320X281XDSP原理及C程序开发[M].北京:北京航空航天大学出版社,2008:124-145.

[5]李 慧,马宝甫,徐小平.A/D转换器MAX195的应用[J].电子元器件应用,2001,3(9):16-18.

[6]孙丽明.TMS320F2812原理及其C语言程序开发[M].北京:清华大学出版社,2008:66-95.

[7]陆幼青,潘宏侠.基于 DSP的数据采集系统的开发与实现[J].机械工程与自动化,2007,140(1):68-72.

[8]苏祖辉,陈钟鸣,唐 伟.DSP Builder实现 MP3音频解码中的IM DCT[J].合肥工业大学学报:自然科学版,2005,28(2):168-170.

猜你喜欢

管脚PC机寄存器
Lite寄存器模型的设计与实现
基于PC机与单片机的多机通信技术及抗干扰方法
基于三菱FXPLC的感应淬火机床与PC机的串行通信实现
分簇结构向量寄存器分配策略研究*
VC.NET下实现dsPIC单片机与PC机的通信
基于图像处理的异型电子元器件管脚偏移误差检测方法研究
CMOS数字IC管脚电容的估算与测量
HC08芯片JVT测试方法的探究
高速数模转换器AD9779/AD9788的应用
一种可重构线性反馈移位寄存器设计