第5章 DM642的外部存储器EMIFA接口文档
- 格式:doc
- 大小:33.50 KB
- 文档页数:4
TMS320DM642中文资料1.2 概述TMS320C64x DSP芯片(包括TMS320DM642)是在TMS320C6000 DSP平台上的高性能定点DSP。
TMS320DM642(DM642)是基于有TI开发的第二代高性能,先进VelociTI技术的VLIW结构(VelociTI1.2),从而使得这些DSP芯片成为数字多媒体的极好的选择。
DM642在主频720MHz下处理速度达到5760MIPS,并且给高性能DSP规划提供了廉价的解决方案。
DM642操作灵活的高速处理器和用数字表达容量的阵列处理器。
C64x DSP核具有64个32位字长的通用寄存器和8个独立的功能单元——两个结果为32位的乘法器和6个ALUs——是VelociTI1.2的升级版。
VelociTI1.2升级版在8个功能单元里包括新的指令,可以在视频和图像应用方面提高性能,并能对VelociTI结构进行扩充。
DM642每周期能够提供4个16位MACs,每秒可提供2880百万个MACs,或者8个8位MACs,每秒5760MMACs。
DM642具有特殊应用的硬件结构,片上存储器和与其它的C6000系列DSP平台相似的额外的片上外围设备。
DM642使用两级缓存,有一个强大的多变的外围设置。
一级程序缓存L1P是一个128Kbit的直接映射缓存,另一级数据缓存L1D是一个128Kbit双路结合设置缓存。
L2存储器能被配置成映射存储器,高速缓存或者两者结合。
外围设置包括:3个可配置的视频端口;1个10/100Mb/s的以太网控制器(EMAC);1个管理数据输入输出(MDIO);1个内插VCXO控制接口;1个McASP0;1个I2C总线;2个McBSPs;3个32位通用定时器;1个用户配置的16位或32位主机接口(HPI16/HPI32);1个PCI;1个16引脚的通用输入输出口(GP0),具有可编程中断/事件产生模式;1个64位IMIFA,可以与同步和异步存储器和外围设备相连。
TMS320DM642的外部存储器接口引导
潘睿元;张科
【期刊名称】《探测与控制学报》
【年(卷),期】2008(030)0z1
【摘要】详细介绍了TMS320DM642 DSP芯片引导的特点和EMIF引导的过程,设计了8位EMIF引导电路.最后,给出二次引导的部分程序代码.实践证明,该电路和方法在利用TMS320DM642 DSP芯片设计系统时非常简便,具有很大的实用性.【总页数】3页(P5-7)
【作者】潘睿元;张科
【作者单位】西北工业大学航天学院,陕西,西安,710072;西北工业大学航天学院,陕西,西安,710072
【正文语种】中文
【中图分类】TP274
【相关文献】
1.TMS320DM642的外部存储器接口引导 [J], 潘睿元;张科
2.Stratix Ⅱ器件的外部存储器接口选择 [J], Paul;Evans
3.基于VMM的外部存储器接口验证 [J], 刘兆勇;王进祥;李清波
4.YHFT-DSP外部同步存储器接口时序设计优化 [J], 黄彩霞;马剑武
5.一种外部存储器接口总线测试方法 [J], 李丹
因版权原因,仅展示原文概要,查看原文内容请购买。
Microcomputer Applications V ol.27,No.10,2011开发应用微型电脑应用2011年第27卷第10期3文章编号:1007-757X(2011)10-0043-04一种DM642外部NOR FLASH 分页操作与程序烧写自启动方法向伟,李波摘要:在TMS320DM642芯片被广泛应用的数字多媒体处理领域,对于主处理器外部扩展大容量程序存储器的需求十分迫切,而该芯片自身具有的外部程序存储器控制机制,却不能直接支持外部大容量程序存储器的操作。
针对这一问题,设计并实现了通过CPLD 对TMS320DM642外部大容量NOR FLASH 的分页控制,并在此基础上不依靠FLASHBURN 软件,直接在CCS 环境下对TMS320DM642外部大容量FLASH 芯片进行程序烧写的方法,最终实现了使TMS320DM642由外部大容量NOR FLASH 自启动的目标,为TMS320DM642在大程序项目中的应用,提供了一种方便而又通用的可行方案。
关键词:DM642;NOR FLASH;分页操作;程序烧写;自启动中图分类号:TP311文献标志码:A0引言TMS320DM642[1]是TI (德州仪器)公司推出的一款高性能定点数字信号处理器。
该芯片内部集成TMS320C64xDSP 核,在600MHz 主频下,峰值处理能力可达到4800MIPS 。
另外,该处理器采用V elociTI 指令结构,可在一个时钟周期内执行8条32位字长的指令[2]。
其强大的运算能力足以支持CIF 格式实时视频的H.264编码运算。
该芯片由于具有高性能、体积小和功耗低的优点而在数字多媒体处理领域得到了广泛应用。
当前,人们对于数字多媒体处理终端的移动和便携性能要求日益提高,这就要求所设计的终端产品具有完全的脱机运行的能力。
要实现这一目标,就需要掌握对外部程序存储器的控制,程序的烧写以及系统上电自启动功能的实现这几项关键技术。
EDMA增强型直接内存存取(EDMA),Enhanced Direct Memory Access,是数字信号处理器(DSP)中用于快速数据交换的重要技术,具有独立于CPU的后台批量数据传输的能力,能够满足实时图像处理中高速数据传输的要求。
以TI公司的TMS320DM642型DSP为例,介绍EDMA控制器的特点。
结合实例给出EDMA在图像数据实时传输中的具体控制和实现方法。
实验结果表明,通过灵活控制EDMA不仅能够提高图像数据的传输效率,而且能够充分发挥:DSP的高速性能。
EDMA数据传输有两种发起方式:(1) CPU发起的EDMA数据传输(非同步方式):需要传输时,CPU设置ESR寄存器的相应位为1,从而触发一个EDMA事件的产生,事件对应的通道参数被送往地址硬件并且完成相应的处理,这种非同步方式的实时数据传输无需设定EER寄存器;(2)事件触发方式EDMA数据传输(同步方式):ER寄存器保存外设发送过来的事件,一旦CPU设置EER寄存器的相应位为1后,ER中的事件才会提交给事件编码器(Event Encoder),并且进一步引起相关的传输参数的发送给地址产生硬件;如果EER中对应于某事件的位没有置1,则ER寄存器中的事件将保留,一旦置1则触发EDMA的传输,这种特性可以应用到EDMA Chain传输,需要EER 和CCER结合使用。
PS:ESR:事件位置寄存器;EER:事件使能寄存器EDMA有两种类型的数据传输:1D和2D的(OPT.2DS和OPT.DDS标示源地址和目的地址的数据传输类型,即有4种组合方式)。
EDMA传输过程的源/目的地址的修改:在每次同步事件触发EDMA数据传输,并且传输完成后,需要对源/目的地址进行更新;地址的更新方式由SUM/DUM进行设定,并且和2DS、2DD以及FS是密切相关的。
EMIF外部存储器接口(EMIF),External Memory Interface,是TMS DSP器件上的一种接口,具体可以分为EMIFA和EMIFB。
深圳市奇想达科技有限公司 QXD-DM642开发板用户手册版本:3.2日期:2005-11版权声明深圳市奇想达科技有限公司保留随时对其产品修正、改进和完善的权利。
同时也保留在不作任何通告的情况下,终止其任何一款产品的供应和服务的权利,用户在下订单前应获取相关信息版权所有 © 2005 深圳市奇想达科技有限公司第一章 系统特色:※ 主处理器采用TMS320DM642 视频专用的DSP,运算能力达4800MIPS,指令周期为1.67ns;※ 提供四路视频采集接口,支持标准的NTSC/PAL制式的复合视频信号输入;※ 提供一路图像显示接口,可支持S_VIDEO、CVBS视频显示;※ 提供四路音频输入、四路音频输出;※ 提供音视频同步;※ 提供RTC实时时钟;※ 提供RS485/RS232通讯口,可连接标准RS485/RS232设备;※ DSP 片外拥有1~8M × 8位并行Flash Memory;※ 板上扩充32M BYTE的※ 支持33MPCI接口;※ 提供一路以太网接口,带宽※ 具有第二章 产品概述系统使用当前业界领先的运算和处理能力的高速处理器TMS320DM642 作为核心,具有强大的运算能力和高速的数据通道。
应用于如车牌识别,人像和虹膜/指纹识别,视频会议,远程监控,远程图像传输,语音分析,远程自动识别,远程现场处理,智能化小区监控,高速公路监控,图像算法研究等均具有其他处理器难以抗衡的效果。
其主要参数如下:1. 运算能力达4800MIPS,指令周期为1.67ns。
2. 每指令周期可并行执行8 条32 位的指令。
3. 具有增强型的VelocTI 结构,支持全面优化的超长指令字(VLIW)核心。
4. 支持字节和字(8/16/32/64位)的灵活寻址方式。
5. 先进的2 级缓存结构,L1 为16K+16K byte,L2 为256K Byte。
其中L2 缓存可灵活分配为CACHE模式或RAM 模式6. 支持大小Endian 模式7. 64 位的EMIF 接口,最大扩展能力达SRAM,FLASH等无缝连接。
DM642中EDMA结构及优化DMA(Direct Memory Access)是DSP中至关重要的一个部分,DMA可以在不需要CPU的干预的情况下,在后台执行数据的高速传输,系统效率的高低很大程度上取决与DMA的使用好坏与否。
DM642是目前公司内使用最多的DSP,其运行效率的高低决定着大部分产品的性能。
下面就DM642上的DMA性能做一个简单的介绍和分析。
DM642中的DMA称为EDMA(Enhanced Direct Memory Access),其EDMA控制器支持64个相互独立的DMA通道,每个通道都可以接受系统外设事件的触发或者CPU的指令的触发,不同DMA传输之间还可以进行连接,构成各种复杂的DMA操作,在600MHz主频时可以提供2.4GB/秒的数据吞吐量。
具备的1维、2维传输模式,非常适合图像的处理。
要想用好EDMA,需要很好的理解EDMA的传输过程。
EDMA内部划分为4个优先级,分别是Q0(Urgent)、Q1(High)、Q2(Medium)和Q3(Low),顾名思义,从0-3由高至低,4个优先级分别对应4个队列,每个队列可容纳16个传输请求,每个队列都可以被CPU和外设使用,且每个部分占用的队列单元个数可以手动设置。
每个队列都是FIFO结构,先提交的传输先执行传输操作,队列后面的操作必须等待前面的操作完成后才能够被执行,但是各个队列之间的传输可以按照优先级并行操作,当某个操作处于阻塞、等待状态时,其它队列中的任务可以得到执行。
从这个基本操作模式可以看出合理的对EDMA资源进行分配很重要,目前DM642系统中的处理如下:1、高优先级的队列中执行传输数据少但时间要求最紧迫的任务,比如CACHE操作和CPU访问操作,因为这类操作如果得不到快速的响应,会造成CPU的阻塞,严重影响CPU的性能。
2、低优先级队列中执行紧迫性不高且数据量大的传输。
比如编解码的传输,预览、缩放的传输。
因为数据量的传输会很长时间的占用DMA操作和外部总线操作,如果将其放在高优先级队列中,会使那些数据量本来很少的操作因为优先级低而长时间得不到响应,造成浪费。
WenTech
/* init_emif() */
/*--------------------------------------------------------------*/
init_emif()
{
#define EMIFA_GCTL 0x01800000
#define EMIFA_CE1 0x01800004
#define EMIFA_CE0 0x01800008
#define EMIFA_CE2 0x01800010
#define EMIFA_CE3 0x01800014
#define EMIFA_SDRAMCTL 0x01800018
#define EMIFA_SDRAMTIM 0x0180001c
#define EMIFA_SDRAMEXT 0x01800020
#define EMIFA_CE1SECCTL 0x01800044
#define EMIFA_CE0SECCTL 0x01800048
#define EMIFA_CE2SECCTL 0x01800050
#define EMIFA_CE3SECCTL 0x01800054
/* EMIFA */
*(int *)EMIFA_GCTL =0x00052078;
*(int *)EMIFA_CE0 =0xffffffd3; /* CE0 SDRAM */
*(int *)EMIFA_CE1 =0x73a28e01; /* CE1 Flash + CPLD */
*(int *)EMIFA_CE2 =0x22a28a22;//0x22a28a22; /* CE2 Daughtercard 32-bit async */ *(int *)EMIFA_CE3 =0x73a28e11;//0x22a28a42; /* CE3 Daughtercard 32-bit sync */ *(int *)EMIFA_SDRAMCTL =0x57115000; /* SDRAM control */
*(int *)EMIFA_SDRAMTIM =0x0000081b; /* SDRAM timing (refresh) */ *(int *)EMIFA_SDRAMEXT =0x001faf4d; /* SDRAM extended control */ *(int *)EMIFA_CE0SECCTL=0x00000002; /* CE0 Secondary Control Reg. */ *(int *)EMIFA_CE1SECCTL=0x00000002; /* CE1 Secondary Control Reg. */ *(int *)EMIFA_CE2SECCTL=0x00000002; /* CE2 Secondary Control Reg. */ *(int *)EMIFA_CE3SECCTL=0x00000073; /* CE3 Secondary Control Reg. */ }
Seed
/*SEEDDM642的emifa的设置结构*/
EMIFA_Config Seeddm642ConfigA ={
0x00052078,/*gblctl EMIFA(B)global control register value */
/*将CLK6、4、1使能;将MRMODE置1;使能EK2EN,EK2RA TE*/
0xffffffd3,/*cectl0 CE0 space control register value*/
/*将CE0空间设为SDRAM*/
0x73a28e01,/*cectl1 CE1 space control register value*/
/*Read hold: 1 clock;
MTYPE : 0000,选择8位的异步接口
Read strobe :001110;14个clock宽度
TA:2 clock; Read setup 2 clock;
Write hold :2 clock; Write strobe: 14 clock
Write setup :7 clock
-- ---------------
\ 14c /1c
\----------------/ */
0x22a28a22, /*cectl2 CE2 space control register value*/
0x22a28a42, /*cectl3 CE3 space control register value*/
0x57115000, /*sdctl SDRAM control register value*/
0x0000081b, /*sdtim SDRAM timing register value*/
0x001faf4d, /*sdext SDRAM extension register value*/
0x00000002, /*cesec0 CE0 space secondary control register value*/
0x00000002, /*cesec1 CE1 space secondary control register value*/
0x00000002, /*cesec2 CE2 space secondary control register value*/
0x00000073 /*cesec3 CE3 space secondary control register value*/
};
/*EMIFA的初始化,将CE0设为SDRAM空间,CE1设为异步空间
注,DM642支持的是EMIFA */
EMIFA_config(&Seeddm642ConfigA);
/* 关于csl:
1,用于配置、控制和管理DSP片上外设
2,已为C6000和C5000系列DSP设计了各自的CSL库
3,CSL库函数大多数是用C语言编写的,并已对代码的大小和速度进行了优化
4,CSL库是可裁剪的:即只有被使用的CSL模块才会包含进应用程序中
5,CSL库是可扩展的:每个片上外设的API相互独立,增加新的API,对其他片上外设没有影响*/ #include <csl.h> /* 总库,提供外设接口和基本配置*/
// 具体的接口定义,头文件中定义了接口的地址等
#include <csl_emifa.h> /* emifa是一种64位的外部接口,可连接64/32/16/8bit的器件*/
#include <csl_i2c.h> /* 一种两线式串行总线*/
#include <csl_gpio.h> /* 也是一种通用的输入输出接口*/ #include <csl_irq.h> /* 一些基本中断的定义*/。