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

相关专题: 芯片

用于实时控制系统的嵌入式系统经常需要对模拟量进行测量,通常的方法是以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转换结果的中断程序的设计。

来源:维库开发网


微信扫描分享本文到朋友圈
扫码关注5G通信官方公众号,免费领取以下5G精品资料
  • 1、回复“YD5GAI”免费领取《中国移动:5G网络AI应用典型场景技术解决方案白皮书
  • 2、回复“5G6G”免费领取《5G_6G毫米波测试技术白皮书-2022_03-21
  • 3、回复“YD6G”免费领取《中国移动:6G至简无线接入网白皮书
  • 4、回复“LTBPS”免费领取《《中国联通5G终端白皮书》
  • 5、回复“ZGDX”免费领取《中国电信5GNTN技术白皮书
  • 6、回复“TXSB”免费领取《通信设备安装工程施工工艺图解
  • 7、回复“YDSL”免费领取《中国移动算力并网白皮书
  • 8、回复“5GX3”免费领取《R1623501-g605G的系统架构1
  • 本周热点本月热点

     

      最热通信招聘

    业界最新资讯


      最新招聘信息

    最新技术文章

    最新论坛贴子