TMS320F2812是美国德州仪器公司推出的C2000 家族中最新一代产品。先进的内部和外设结构使得该处理器主要用于大存储设备管理、高性能的控制场合。在F2812构成的应用系统中,需要设计一些逻辑控制电路来保证系统正常有序地工作。这里,我们采用CPLD 来设计外围电路的译码及逻辑控制,使DSP 系统达到小型化、集成化和高可靠性。
2 CPLD在TMS320F2812系统中的应用
2.1 TMS320F2812介绍
TMS320F2812 数字信号处理器是在F24X的基础上开发的高性能定点芯片。能够运行24x 开发的代码程序,并且F2812 采用32bit 操作大大提高了处理能力。它的主要特点如下:
● 采用高性能的静态CMOS 技术,主频可以工作在150 MHZ(时钟周期可达6.67ns);
● 高性能的 32 位中央处理器,可以进行16 位X16 位以及32 位X32 位的乘且累加操作;
● 片内大容量存储器,128 K×16 bits 的Flash 和18 K×16 bits 的数据/程序存储器;
● 高速外设接口,最多可扩展1.5 M×16 bit 存储器;
● 3 个32-bit CPU 定时器,其中CPU 定时器1 和CPU 定时器2 被保留用作实时操作系统OS。CPU 定时器0 可供用户使用,作为独立的,全局性的定时中断控制;
● 具有 12-bit 的 ADC 流水线变换时间最小60 ns,单变换200 ns;可选择两个时间管理器触发功能;
● 改进的 eCAN 2.0B 接口模块;
● 多种串行通信接口(2 个UART、1 个SPI 及1 个MCBSP);
● 高性能低功耗,采用1.8V 内核电压和3.3V 外围接口电压;
2.2 硬件结构介绍
我们采用 Altera 公司的EPM7064S 芯片来完成内部逻辑管理及与总线接口工作。该芯片采用快闪存储技术(FastFLASH),功耗较低。宏单元数达到64 个,完全满足设计的逻辑要求。引脚到引脚的延时为4ns,计数器频率可达151MHZ。其输出电压为3.3V 或5V,可以通过设置VCCIO 引脚来选择不同的输出电压。I/O 引脚可接受5V、3.3V 和2.5V 的混合电压输入,在多电源混合系统中,这一特性非常有用,可以节省大量的电平转换器。
TMS320F2812 应用系统需要外扩一些必要的电路,包括支持内部程序运行的RAM 和EEROM,以及D/A 转换电路等,其系统结构框图如图1 所示:
2.2.1 数模转换器的应用
在 TMS320F2812 中,片外扩展是通过TMS320F2812 中的外设接口XINTF 来实现的。
它类似于C240X 的外部接口,但也做了改进:
(1)在C240X中,程序存储空间、数据存储空间和I/O 空间映射在相同的地址(0000~FFFF),对它们的访问通过控制线( DS , PS , IS )来区分;而在F2812 中,外部存储器接口分成了5个固定的存储映像区域,可寻址1MB 的片外存储器空间,具有独立的地址,没有了控制线( DS , PS , IS )。
(2) 每个 F2812 的XINTF 区都有一个片选信号。其中,有的区域的片选信号在内部是“与”在一起的,组成了一个共享的芯片选择,比如XZCS0 和XZCS1共享一个片选信号XZCS0AND1,XZCS6和XZCS7共享一个片选信号XZCS6AND7。在这种方式下,同一个存储器可被连到两个区或者我们可以用外部译码逻辑来区分这两个区。
(3)5 个固定的存储映像区域的每一个区还可以分别指定等待状态数,选通信号的建立时间,激活时间和保持时间。这些特征使得接口与外部存储器及外设脱离了联系,可以灵活独立地进行外部扩展。在本次设计中,除了液晶显示模块和键盘外,所有的外扩寄存器和存储器全部映射在XINTFZONE 2(0x080000~0x0FFFFF)译码的空间内。我们使用了DAC7625 作为数模转换芯片,该芯片为4 通道12 位双缓冲的DAC 芯片,工作电压可以是+5V 或-5V~+5V 的模拟电压。
输出电压是0~3.3V 的直流电压。功能框图如图2 所示:
其中,DAC7625 芯片中LDAC 引脚为载入DAC 引脚,当为低电平时,所有寄存器为透明,保持寄存器里的数据送到转换器输出通道;A1、A0 引脚为寄存器选择引脚,CPLD根据地址总线译码选通不同的A1、A0 组合,从而将1 ~ 4 通道的保持寄存器映射到0xC0000~0xC0003 的地址空间。此外,我们还设计了传送寄存器(DACTLR),映射地址为0xC0004,这个寄存器的所有数据位都无效,既不可读也不可写。对这个寄存器执行任何读或写操作都会产生一个内部信号,将LDAC 引脚置为低电平,启动转换器工作。其中,整个译码逻辑都是由CPLD 芯片完成。下面介绍译码逻辑的部分VHDL 语言描述:
process(reset,xzcs2)
begin
if(reset=’0’) then
daccs<=’1’;daca0<=’1’daca1<=’1’; --复位状态
--选通0xC0000~0xC0003
elsif(xzcs2='0' and a18='1' and a17=’0’ and a16=’0’ and a3=’0’ and a2=’0’) then
daccs<='0';
case a1_a0(1downto 0) is
when "00"=>dac_a1_a0<="00";--选择A,B,C,D 数据保持通道
when "01"=>dac_a1_a0<="01";
when "10"=>dac_a1_a0<="10";
when "11"=>dac_a1_a0<="11";
when thers=>null;
end case;
--选通传送寄存器
elsif(xzcs2='0' and a18='1' and a3=’0’ and a2=’1’and a1_a0=”00”) then
daccs<='0';
ldac<=’0’;
end if;
end if;
end if;
end process;
2.2.2 串行非易失型存储器X25650芯片的应用
在这里,我们外扩了SPIOER 寄存器来控制DSP 与X25650 的SPI 接口,它的作用是连A18-A0XZCS2XWETMS320F2812XR/WD11-D0CSA0A1LDACDAC7625R/WDB11-DB0CPLD 译码逻辑daccsdaca0daca1DACTLR ldac图 2通或割断DSP 与X25625 的连接。当需要F2812 的SPI 接口与SPI515(SPI 接口型)仿真器连接,实现仿真操作时,可以通过寄存器屏蔽SPI 对X25650 的操作。SPIOER 控制寄存器的地址为0xC0002,使用了外部总线来对其进行读写,它的使用:
SPIOE 位:当SPIOE 位为“1”时,DSP 与X25650 各引脚接通;当为“0”时各个引脚断开,此时,DSP 上的SPI 引脚为高阻态,可以连接其他设备。上电复位时为“1”。该寄存器由CPLD 内部编程构成。
在 F2812 中,SPI 模块支持125 种不同的波特率,通过向波特率寄存器(SPIBRR)写入设定值,可以与不同速率要求的外设通信。其波特率设定如下:
当 SPIBRR=3-127 时, SPI 波特率=LSPCLK/(SPIBRR+1)。当SPIBRR=0,1,2 时, SPI波特率=LSPCLK/4在这里:LSPCLK=设备的低速外围时钟频率。SPIBRR=主SPI 设备中SPIBRR 的内容。
这里,通过配置低速外设时钟预定标器寄存器(LOSPCP)和SPI 波特率寄存器(SPIBRR)中的内容,使DSP 的波特率达到5MHZ,满足X25650 的要求。
2.2.3 字符型液晶显示器的应用
本系统将字符型液晶显示器MDL(S)16263 作为DSP 的一个慢速显示设备,映射在XZCS6 区域。该模块共有11 条信号线,RS 是寄存器选择,低电平选择指令寄存器,高电平选择数据寄存器。R/W 是读写控制端,低电平写显示模块,高电平读显示模块。E 为允许输入信号线(数据读写操作允许信号),高电平有效。DB0~DB7 为数据线。
但是相比较 DSP 而言,LCD 是慢速设备,在设计器件时要考虑时序匹配问题,加入合适的等待状态。该液晶模块读写周期Tcyc 最小为1000ns,脉冲宽度Pw 最小为450ns,读写操作数据保持时间最小为10ns,而F2812 的XINTF 外设接口的读写访问默认情况下为最大值,为26 个XTIMCLK 周期(XTIMCLK 默认为SYSCLK/2,13ns.),也就是说最大读写周期为346ns,其中读或写访问的建立阶段默认为6 个XTIMCLK 周期、激活阶段默认为14 个XTIMCLK 周期、跟踪阶段默认为6 个XTIMCLK 周期。因此,读写周期需要加入等待状态。
当对DSP 的XREADY 引脚采样为低电平时,激活阶段将扩展一个XTIMCLK 周期,在下一个XTIMCLK 周期期间,XREADY 再次被采样。这一个过程一直被采样,直至XREADY采样为高,正常地完成访问。这里,我们利用CPLD 芯片将DSP 的XREADY 信号置为低电平,保持50 个XTIMCLK 周期,从而产生合适的等待状态。如图3 所示:
3 结论
本系统的开发采用了 DSP+CPLD 的结构,这种结构将DSP 较强的数据运算能力与CPLD 的高集成性、硬件可重复编程性结合在一起,使系统的设计过程更加的合理、紧凑和简化。并且,该系统经过扩展后可以应用在工业控制的多种场合,具有一定的实际参考价值。