基于DSP芯片TMS320LF2407A和EPM570T100C5N实现多路数据采集系统设计

用于实时控制系统的嵌入式系统经常需要对模拟量进行测量,通常的方法是以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之间的硬件与软件设计,该系统在笔者参与的嵌入式测量控制系统中得到了成功的应用。


投入式陶瓷电容液位传感器在海水液位测量中的应用
中兴发布下一代8K大视频智能机顶盒
CSP将如何用来规划和优化5G网络
关于锂电池安全问题的详细分析
霸气侧漏的丰田霸道改装芬朗汽车音响
基于DSP芯片TMS320LF2407A和EPM570T100C5N实现多路数据采集系统设计
易云系统可在设备参数列表高级版功能模块中通过表格形式汇总、展示
单相电子式电能表ADL200 可编程 液晶显示 复费率电能统计
传统企业转型路上,供应链开启全新模式加速创新
PK传统诊断法,ADI峰值和起始点检测算法更加可靠!
苹果收购Shazam真正的目的是计算机视觉识别技术
【新专利介绍】一种恒定湿热试验箱
APS生产排产提升企业车间管理质量
中电港与香港百特达成战略合作,拓宽 MCU领域影响力
如何将FC1接口中定义的ANY指针传递给SFC14及SFC15呢
解锁智能手表的最后一环是什么
PID传感器在石油和天然气行业的VOCs监测中的应用解决方案
全项目食品检测仪的检测项目及功能特点
自制用数字万用表作显示的对讲机场强仪,Field Strength Meter
千元内哪款蓝牙耳机比较好?千元内耐用的蓝牙耳机推荐