基于DSP与CPLD的多通道数据采集系统
,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之间的硬件与软件设计,该系统在笔者参与的嵌入式测量控制系统中得到了成功的应用。
- 在采用FPGA设计DSP系统中仿真的重要性 (06-21)
- 基于 DSP Builder的FIR滤波器的设计与实现(06-21)
- 达芬奇数字媒体片上系统的架构和Linux启动过程(06-02)
- FPGA的DSP性能揭秘(06-16)
- 用CPLD实现DSP与PLX9054之间的连接(07-23)
- DSP+FPGA结构在雷达模拟系统中的应用(01-02)