用于实时控制系统的嵌入式系统经常需要对模拟量进行测量,通常的方法是以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所示。
[1] [2] [3] 下一页