浅谈TMS320C672x系列浮点DSP的EMIF研究与应用

时间:2011-09-01

  目前,DSP技术已广泛用于信号处理、通信和雷达等领域。数字信号处理(DigitalSignalProcessing,简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。20世纪60年代以来,随着计算机和信息技术的飞速发展,数字信号处理技术应运而生并得到迅速的发展。在过去的二十多年时间里,数字信号处理已经在通信等领域得到极为广泛DSP技术图解的应用。数字信号处理是利用计算机或专用处理设备,以数字形式对信号进行采集、变换、滤波、估值、增强、压缩、识别等处理,以得到符合人们需要的信号形式。数字信号处理是将信号以数字方式表示并处理的理论和技术。数字信号处理与模拟信号处理是信号处理的子集。

  TMS320C672x系列浮点DSP的EMIF性能优良,增强了与外部1、2或4区的16位或32位SDRAM和异步器件连接的方便性和灵活性。TMS320C6722和TMS320C6726 EMIF宽度为16位,支持的SDRAM可达128 Mb。

  异步存储器接口是从并行的8位、16位或32位NOR Flash实现系统自启动。若使用大容量的Flash,EMIF连接Flash的高位地址线可通过外部器件CPLD或自身GPIO口扩展。外部存储器接口(EMIF),External Memory Interface,是TMS DSP器件上的一种接口。一般来说,EMIF可实现DSP与不同类型存储器(SRAM、Flash RAM、DDR-RAM等)的连接。一般EMIF与FPGA相连,从而使FPGA平台充当一个协同处理器、高速数据处理器或高速数据传输接口。设计接口提供了一个FPGA块至RAM的无缝连接。在读/写、FIFO或存储器模式中,双端口块RAM的一侧被用来实现与DSP的通信。另一侧用于实现与内部FPGA逻辑电路或平台-FPGA嵌入式处理器的通信。在使用DSP的过程中,需要设计外部存储器接口时可以参考TI的TMS320XX DSP External Memory Interface (EMIF) Reference Guide。其中XX代表某一种具体的dsp处理器。

  1 EMIF接口

  EMIF接口具有很强的外设连接能力,可寻址空间一般比较大,数据吞吐较快。EMW接口支持的器件包括同步突发静态RAM(SBSRAM)、同步动态RAM(SDRAM)、各种异步设备(SRAM、ROM和FIFO)以及同步FIFO。TMS320C672x的EMIF引脚结构如图1所示。

  其主要引脚功能如下:

  EM_A[x:0]:EMIF地址总线。当与SDRAM器件连接时,地址总线主要为SDRAM提供行地址和列地址。当与异步器件连接时,这些引脚与EM_BA引脚提供器件地址。

  EM_BA[1:0]:EMIF存储区地址线。与SDRAM连接时,为SDRAM提供存储区地址。与异步器件连接时,这些引脚与EM_A引脚共同提供器件地址。

  EM_WE_DQM[x:0]:低电平有效写触发或字节使能引脚。与SDRAM连接时,这些引脚与SDRAM的DQM引脚连接。在数据访问中分别使能/禁止每一字节。与异步器件连接时,这些引脚可作为字节使能(DQM)或字节写触发(WE)。SDRAM:Synchronous Dynamic Random Access Memory,同步动态随机存储器,同步是指 Memory工作需要同步时钟,内部的命令的发送与数据的传输都以它为基准;动态是指存储阵列需要不断的刷新来保证数据不丢失;随机是指数据不是线性依次存储,而是自由指定地址进行数据读写。

  EM_CS[0]和[2]:CS[0]为SDRAM器件低电平有效芯片使能引脚,当访问异步器件时此引脚失效,在完成异步存取后自动恢复其功能;CS[2]为低电平有效异步器件使能引脚,仅在访问异步存储器时有效。

  EM_RAS:低电平有效行地址选通引脚,与SDRAM的RAS引脚连接,用于向此器件发送命令。

  EM_CAS:低电平有效列地址选通引脚,与SDRAM的CAS引脚连接,用于向此器件发送命令。

  EM_CKE:时钟使能引脚,与SDRAM的CKE连接,发出自刷新命令,使器件进入自刷新模式。

  EM_CLK:SDRAM时钟引脚,EMIF时钟来自DSP的PLL控制器的SYSCLK3时钟模块。

  2 EMIF与SDRAM的设计

  这里以SDRAM(HY57V281620A)为例,说明EMIF和SDRAM的接口与配置,HY57V281620A是4 Bankx2MBx16 bit的SDRAM器件,可与TMS320C67 22 DSP无缝连接。图2是TMS320C6722型DSP与HY57V281620A型SDRAM的电路连接。

  2.1 SDRAM的软件配置

  在TMS320C6722的EMIF中有一组存储器映射寄存器,通过设置这些寄存器便可完成对SDRAM的配置,包括配置寄存器SDCR、刷新控制寄存器SDRCR、时序寄存器SDTIMR和自刷新退出时序寄存器SDSRETR。具体的配置代码如下:

  2.2 SDRAM的软件操作

  根据上面软件配置中IBANK和PAGESIZE字段的设置,图3列出了C6722 EMIF连接16位4区256字页面的SDRAM地址映射关系,其他系列地址映射关系参考TI资料。SDRAM读/写程序流程如图4所示。

  EMIF控制SDRAM工作时,当行地址选通引脚EM_RAS有效时,SDRAM通过A0~A11获取行地址;当列选通引脚EM_CAS有效时,SDRAM通过A0~A11获取列地址。EMIF访问的外部SDRAM空间地址映射为0x80000000-0x8FFFFFFF,由表1的地址映射知,如果要存储16位的short int型数据到SDRAM,每次逻辑地址需要加2,如:*(short int*)(0x80000000+i*2)=short int i;存储32位的int型数据每次地址需要加4,如:*(int*)(0x80000000+i*4)=int i。

  3 EMIF与Flash的设计

  当DSP脱机运行时,系统上电或复位后,DSP系统自带的Bootloader将一段存储在外部的非易失性存储器中的代码搬移到内部高速存储单元中执行。这样既利用了外部存储单元扩展DSP本身有限的ROM资源,又充分发挥了DSP内部资源的效能。TMS320C672x系列DSP只支持一种硬启动选项,即从内部ROM地址0x00000000启动,其他启动选项由存储于ROM的软启动器实现。软启动器使用CFGPIN0和CFGPIN1寄存器,这2个寄存器在复位时捕捉相关器件引脚的状态,以决定进入那种启动模式。ROM是只读内存(Read-Only Memory)的简称,是一种只能读出事先所存数据的固态半导体存储器。其特性是一旦储存资料就无法再将之改变或删除。通常用在不需经常变更资料的电子或电脑系统中,资料并且不会因为电源关闭而消失。英文简称ROM。ROM所存数据,一般是装入整机前事先写好的,整机工作过程中只能读出,而不像随机存储器那样能快速地、方便地加以改写。ROM所存数据稳定 ,断电后所存数据也不会改变;其结构较简单,读出较方便,因而常用于存储各种固定程序和数据。除少数品种的只读存储器(如字符发生器)可以通用之外,不同用户所需只读存储器的内容不同。为便于使 用和大批 量 生产 ,进一步发展了可编程只读存储器(PROM)、可擦可编程序只读存储器(EPROM)和电可擦可编程只读存储器(EEPROM)。例如早期的个人电脑如Apple II或IBM PC XT/AT的开机程序(操作系统)或是其他各种微电脑系统中的韧体(Firmware)。

  3.1 Flash的硬件连接

  AM29LV800BB~90EC型Flash具有19根地址线,而TMS320C6722 EMIF只有14根地址线(EBA0~EBA1、EA0~EA11)。因此,EMIF与Flash连接时地址线不够用,需要扩展高位地址线。

  3.1.1 GPIO扩展

  TMS320C672X MCASP通道的各功能引脚都可以作为通用的I/O接口,直接与Flash存储器的高位地址线连接。硬件原理图如图5所示研。图5中,任何在复位时可下拉的GPIO引脚都可用于控制Flash启动器的地址线A。

  3.1.2 CPLD地址锁存器扩展

  在CPID中设计一个地址锁存器74L273,通过74L273的输出口扩展7根高位地址线A11~A17,分别与Flash的A12~A18连接。EMW的EM_A[11]作为CPLD锁存器的输入选通端选,EMIT数据线作为锁存器的输入,如图6所示。

  3.2 FLash的软件配置

  在EMIF异步接口中,AICR是需要编程的寄存器。根据Flash器件的特性,配置如下:

  3.3 Flash的软件操作

  TMS320C672x DSP的存储器中EMIF访问的外部异步器件Flash空间地址映射为0x90000000~0x9FFFFFFF之间。由于Flash数据总线宽度为16位,因此在硬件设计时选用半字寻址,即EMIF的BA连接Flash的A。访问异步器件时TMS320C6722中内部地址和EMIF地址引脚对应如表1所示。

  Flash在读操作中类似于普通的ROM,在写操作中需要使用一些特殊命令字,按一定的顺序编程,且可随时编程,编程命令根据器件参考资料。对Flash的读/写流程如图7所示。

  由表1知,对Flash进行16位数据写操作时每次偏移地址需要左移1位,即:*(short int*)(0x90000000+i*2)=shortint i://对Flash的i地址写入16位数据i由于此Flash高位地址线为扩展的地址线,必然导致访问Flash时地址不连续。每次只能连续访问Flash内部4 Kx16 Bit空间,即0x9000_0000~0x9000_1FFE。

  4 EMIF并行Flash自启动

  4.1 Flash自启动过程

  在实际应用中通常把代码和数据表存放在外部的非易失性存储器Flash中。TMS320C672X系列DSP片上的Bootloader工具只能将1KB的代码搬移到内部RAM。但是在通常情况下,用户应用程序的大小都会超过1 KB,所以需要在外部Flash的前1 KB范围内预先存放一小段程序,待片上Bootloader工具把此段代码搬移入内部并开始执行后,由此段代码将Flash中剩余的用户应用程序搬移入内部RAM中。Flash中前1 KB代码为二级Bootloader。系统上电或复位时,DSP内部固化的启动代码会自动将位于Flash地址空间(0x90000000~0x9FFFFFFF)开头的1 KB代码传输到RAM存储空间,这就是引导。很明显,引导的代码并不能满足绝大多数编程者对代码长度的要求,因此就需要二次引导过程。二次引导是将DSP引导的1 KB代码编写成一个搬移程序,搬移程序将用户的主程序搬移到高速RAM中,并且搬移完成后自动跳转至主程序入口处运行主程序。由于硬件设计中Flash的地址不连续,图8为使用二级Bootloader的流程图。

  4.2 Flash的烧写方法

  应用程序和二次Boot编写和编译完成之后,便可使用TI公司提供的FlashBurn工具完成Flash烧写,烧写完成后需要重新上电或复位,便可实现自启动。此FlashBurn工具虽然烧写方法较为直观,但是过程复杂,首先需要一个。out文件(FBTC)至DSP系统中,实现对Flash的操作;其次FlashBurn工具不能识别。out文件,只能接收。hex的十六进制文件,必须将。out文件转换为。

  因此,用户可以自己根据Flash器件的操作方法编写烧写程序,避免文件格式转换的繁琐。首先把用户应用程序(包括二级Bootloader)编译生成的。out文件转载到DSP的RAM中,然后根据要求编写Flash烧写程序,把烧写程序的。out文件装载到DSP的另一块区域(注意修改cmd文件中地址范围,避免两次装载可能产生的地址覆盖),执行程序完成Flash的烧写。

  5 结束语

  本文主要研究了TMS320C672x系列DSP EMIF接口的功能和使用方法,并针对SDRAM和Flash器件讨论了EMIF的具体硬件接口设计和软件配置;同时分析了TMS320C672x系列的自启动过程,提出了两种烧写Flash的方法。


  

参考文献:

[1]. CPLD datasheet https://www.dzsc.com/datasheet/CPLD_1136600.html.
[2]. ROM datasheet https://www.dzsc.com/datasheet/ROM_1188413.html.
[3]. HY57V281620A datasheet https://www.dzsc.com/datasheet/HY57V281620A_390393.html.
[4]. A11 datasheet https://www.dzsc.com/datasheet/A11_1818106.html.
[5]. EPROM datasheet https://www.dzsc.com/datasheet/EPROM_1128137.html.
[6]. A17 datasheet https://www.dzsc.com/datasheet/A17_1819429.html.
[7]. A12 datasheet https://www.dzsc.com/datasheet/A12_1818348.html.


上一篇:解析异构应用系统业务协同工作流平台设计与实现
下一篇:解析温湿度传感器SHT15在嵌入式系统中的应用

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料