您现在的位置: 范文先生网 >> 理工论文 >> 电子通信论文 >> 正文

利用DSP和CPLD增强数据采集的可扩展性

时间:2007-1-20栏目:电子通信论文

要实现这样的控制时序,各个阶段对芯片的片选控制如下:在初始化阶段,所以A/D芯片的片选信号有效,此时可以对每片芯片写入相同的模式选择信号,同时启动采样脉冲和转换脉冲;在转换阶段,所有片选信号全部无效,此时芯片本身在内部完成模/数转换,同时将转换完成的数据放置在芯片内部的寄存器中;在数据输出阶段,首先是第一片芯片的片选有效,此时若有一个脉冲下降

沿到A/D芯片的RD端口,则芯片1的转换完成,第一路数据将浮出到数据总线上,而其它芯片由于片选信号无效,虽然有RD输入也不会有数据输出,不会造成总线冲突。对于芯片1而言,接下来的几个RD脉冲可以分别使得转换完成后的几路数据浮现在数据总线上。芯片1的数据全部输出完成后,片选1无效,此时可使芯片2的片选信号有效。依此类推,就可以完成4片芯片的转换及数据输出。

2.2 CPLD接口模块的实现

整个CPLD接口模块实际上就是一片ALTERA公司的7000系列的CPLD(外部时钟电路除外),它控制ADC模块的初始化,同时接收并分析DSP过来的I/O端口读取信号,为DSP和ADC之间搭起一个通道。

在DSP要求读取数据时,CPLD将DSP过来的IOSTROBE作为A/D芯片的RD信号,同时对I/O地址总线的第3位至第5位译码产生A/D芯片的片选信号,这样只要是地址按照每次递增1的方式读取数据,就可以使得8片A/D分时片选有效,完全符合上面提到的读取数据的要求。另外,还依靠最高位地址确定CPLD到DSP的数据输出总线是否定义成高阻态来避免总线冲突。
利用DSP和CPLD增强数据采集的可扩展性
    由于A/D芯片是采用5V供电的,所以其输出高电平将高于DSP输入高电平所能承受的范围。解决这个总是的方法之一是采用降压芯片(比如LVT系列)用3.3V供电,3.3V供电可以承受5V的输入,同时输出也和3.3V兼容,但是这种方法需要单独外接几片LVT芯片,占据宝贵的PCB板空间;方法之二是给CPLD芯片提供双电源,其中提供给I/O脚的电源为3.3V,此时输入电压可以和5V及3.3V系统兼容,同时电平可以达到3.3V,符合A/D芯片高电平最低电压2.4V的要求。所以,数据总线通过CPLD到DSP实际上是因为电平转换的需要。

2.3 DSP处理模块

DSP处理模块在硬件电路上是非常简单的,主要由一片DSP芯片、一片EEPROm以及一片介于这两者之间的用作电平转换的LVT系列的芯片组成。

DSP通过地址总线可以区分访问的模拟通道的标号。需要注意的是:由于采用的A/D芯片是通过对RD脉冲信号计数来确定访问的是同一片芯片内部4路中的哪一路,所以实际上地址总线的低两位是没有选择功能的,对一片A/D芯片访问时,最后两位地址一定要从00开始递增到11,否则所读取的数据就是乱的。例如,转换完成后的DSP若想越过前两个通道来获得第3个通道的数据,它必须给出两个读取I/O端口的指令,紧接着这两个指令后的读取端口指令才可以获得3个通道的有效数据。

当然,可以通过CPLD首先将所有转换完成的数据缓存下来,然后分析I/O地址来将对应的通道的数据浮现到数据总线上。这样做使得DSP可以自由地选择需要访问的通道,但需要比较大的缓存,利用CPLD作缓存是非常不经济的。

3 仿真和调试

本系统的软件开发主要包括两部分,一是DSP读取I/O口的程序,二是CPLD的时序控制程序。前一程序的开发采用的是TI公司的CCS开发环境,并且利用DSP内部的BOOTLOADER在起电时将存储在外挂EPROM中的程序装载进DSP的程序空间。而后一程序的开发采用的是ALTERA公司的MAXPLUSII,利用这个环境,完成了程序的编制、仿真以及时序分析,并在找出关键路径的基础上优化了整个芯片的内部延时。

在调试的过程中,利用DSP提供的JTAG接口实时地观察采集进来的数据。当对32路模拟通道分别提供不同频率的正弦信号时,可以看到相对应的通道的数字信号也按照固定的频率来变化,并且各个通路不存在串扰的情况。经过测试获得本系统的各种参数如下:

单路模拟信号采样率:5kHz

系统模拟信号采样率:50kHz×32=1.6MHz

单个采样点读取时间:80ns(受ADC芯片的限制)

DSP(5402)单指令周期:10ns

上一页  [1] [2] [3] 下一页

下页更精彩:1 2 4 下一页