基于DSP与CPLD的多通道数据采集系统的设计

时间:2009-10-21

  用于实时控制系统的嵌入式系统经常需要对模拟量进行测量,通常的方法是以MCU为主产生采集控制时序控制模数转换器,并通过中断或查询的方式读取转换后的结果。由MCU产生采集控制时序将占用较多的系统软硬件资源。而在一般复杂的多路信号测控系统中,MCU需要进行数据存储,通讯,数据处理等多项工作,如果再需要其频繁地产生模数转换控制器的控制时序,将会影响系统的性能,严重时将会成为系统的瓶颈。本文采用CPLD产生A/D转换器的控制时序,使得CPLD主要实现A/D时序控制的功能,DSP主要实现闭环控制算法的功能。

  1 系统总体结构

  系统以DSP和CPLD为,模拟信号从模拟多路开关CD4067接人,利用CPLD进行使能其输入。使用DSP的GPIO口作为模拟多路开关的通道号的选择。A/D转换器使用MAXIM公司的MAX194,其控制时序由CPLD产生。当A/D转换结束后,将会产生一个EOC信号,该信号作为LF2407的外部中断,当DSP接收到该转换结束信号,进入相应的外部中断程序,使用SPI总线来接收A/D转换的数字值,并进行相应的处理。系统的总体结构图如图1所示。

  2 硬件设计

  2.1 主控DSP芯片TMS320LF2407A

  系统的主控制器采用了TMS320LF2407A,3.3 V静态CMOS工艺,40 MIPS,具有16位地址总线,16位数据总线,3个独立的存储空间,包括可用的64 kB程序空间,35.5 kB数据空间以及64 kB的I/O空间。访问不同的存储空间时,DSP有相应的引脚作为选通信号,PS对应程序空间,DS对应数据空间,IS对应IO空间,均为低电平有效。本系统将MAX194 A/D转换器映射到I/O空间0000H-7fffH,其使能的逻辑表达式为:CS=A15+IS。多路模拟开关映射到I/O空间的8000H-ffffH,其使能逻辑表达式为:CS=A15+IS。式中IS是I/O空间选通信号线。

  TMS320LF2407A的内部具有32 kB FLASH程序存储器,2.5 kB RAM数据存储器。FLASH可满足DSP系统程序存储的需要,而2.5 kB的数据存储器可能不够。而且研发阶段一般将程序写在RAM上,所以设计选用了Cypress Semiconductor公司的CY7C1021V33的SRAM,该SRAM为64 kB,设计中设定0000H-7ffffH为程序空间,8000H-ffffH为数据空间。外扩SRAM的逻辑表达式为:CS=(A15+PS+DS)(A15+PS+DS)。式中CS是SRAM的片选信号线,A15是DSP的第16根地址线,PS是程序空间选通信号线,DS是数据空间选通信号线。

  2.2 模数转换模块MAX194

  TMS320LF2407A芯片内置16通道A/D转换器,但是只能输入单极性电压,只有10位的分辨率,很不理想,所以需要外扩A/D转换芯片。经过多方比较,笔者选用了MAXIM公司的MAXl94芯片,它是一种逐渐次比较型的模数转换器,具有高,低功耗等特点。MAX194的内部设有校准电路,用于保证全温度范围内的线性度,且不需要外部的调整电路。分开的模拟和数字供电,限度地减少了数字耦合噪声。其主要特征有:14位分辨率,1/2 LSB非线性度,82 dB的信噪比,低功耗,单极性或双极性输入,三态串行输出。

  MAX194具有两种接口模式:同步模式和异步模式。同步模式:MAX194在转换过程中,每转换完一个,数据位就输出一位。此时,SCLK应该接地,CLK即作为ADC的转换时钟又作为串行接口的移位输出时钟。异步模式:DSP只能在MAX194完成转换之后才能将转换结果读出,然后启动下的转换。这种模式降低了MAX194连续转换的速度。

  使用CPLD来控制MAX194,可以方便地控制MAX194工作在同步或者异步状态,而不需要对硬件电路做任何改动,仅需要修改CPLD中的程序即可。本设计将MAX194设定在异步工作模式下,MAX194异步模式时序图如图2所示。

  根据图2所示的时序图,将采样控制过程分成了4个状态:

  (1)初始状态:MAX194采样控制信号初始化,各采样控制状态置零。

  (2)启动采样状态:将MAX194的启动转换信号START置低并保持至少两个CLK周期。

  (3)转换结束状态:将MAX194的启动信号START置高并检测转换结束状态信号EOC,当它由高电平变成低电平时即表示转换已经结束。因此,这个状态与上个状态一样是看EOC信号是否有变化,若是有变化,则转到下个状态,若是没有变化,则将一直在这个状态中循环,直到EOC信号有变化为止。

  (4)转换结果输出状态:将MAX194的芯片使能信号CS置低,DSP通过SPI口将A/D转换得到的数据传人DSP中。

  根据以上工作状态的描述,使用了VHDL语言编写了A/D转换采样控制模块的程序,并进行了仿真,仿真结果如图3所示。从仿真图中看出设计的A/D转换控制模块是完全符合设计要求的。

  3 软件设计

  TMS320LF2407A是基于C2000平台的,提供两种编程语言:C/C+十语言或汇编语言。其中,C语言编写的程序可读性、可移植性强,且大大缩短了开发周期,但执行效率低,程序出错时不易诊断。汇编语言程序效率高,但编写比较繁琐。通常做法是程序部分(即经常调用部分)采用汇编语言编写,以提高整个系统的执行效率,对实时性要求不高的部分采用C语言编写以降低程序的复杂度,提高程序的可读性和可修改性。本文采用C语言和汇编语言混合编写的多文件结构,主要包括主程序、读取A/D转换结果的中断程序的设计。
  软件流程如图4所示。主要分成三部分:SPI配置部分,模拟开关控制部分,A/D转换控制和转换结果的读取。

  3.1 SPI配置部分

  对于LF2407A,串行SPI外设接口有9个寄存器,用于控制其操作。在本设计中将LF2407A的SPI接口设定在主模式下,在该模式下,采用主控制器发送伪数据,从控制器发送数据。主控制器可在任何时刻启动数据传送,因为它控制着SPICLK信号。但软件决定了主控制器如何检测从控制器何时准备发送数据。SPI接口模块的初始化程序如下:

  3.2 模拟多路开关选通部分

  由于多路模拟开关映射到DSP的I/O空间中的0X8000-0XFFFF之间,所以在DSP程序中,对0X8000-0XFFFF之间进行一个读操作,由DSP的GPIO选择的通道就被选通,信号由CD4067输出到A/D转换器MAXl94。

  读地址产生的低电平信号CS的保持时间由访问I/O空间的等待时间决定的,通过设置等待状态寄存器来保证获得有效的延时时间。

  3.3 MAX194转换控制部分

  由于A/D映射DSP的I/O空间的0x0000~0x7fff之间,类似于模拟多路开关,也需要对该空间进行一个读操作。

  4 结语

  多路数据采集系统在嵌入式测控系统中具有很强的实用价值。本文设计了一个基于TMS320LF2407A与EPM570T100C5N的MAX194的多通道采集系统,详细描述了MAX194,CPLD与DSP之间的硬件与软件设计,该系统在笔者参与的嵌入式测量控制系统中得到了成功的应用。


  

参考文献:

[1]. CPLD datasheet https://www.dzsc.com/datasheet/CPLD_1136600.html.
[2]. MAXIM datasheet https://www.dzsc.com/datasheet/MAXIM_1062568.html.
[3]. MAX194 datasheet https://www.dzsc.com/datasheet/MAX194_721139.html.
[4]. TMS320LF2407A datasheet https://www.dzsc.com/datasheet/TMS320LF2407A_309789.html.
[5]. A15 datasheet https://www.dzsc.com/datasheet/A15_1244519.html.
[6]. EPM570T100C5N datasheet https://www.dzsc.com/datasheet/EPM570T100C5N_2559108.html.


上一篇:DSP与PCI网卡接口设计
下一篇:基于单片机和USB接口的数据采集系统设计

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料