Board logo

标题: 哈工大DSP精品讲义!!!(连载) [打印本页]

作者: chuxuezhe    时间: 2009-6-18 17:26     标题: 哈工大DSP精品讲义!!!(连载)

数字信号处理(Digital Signal Processing):信号的 数字化和数字处理。

数字信号处理器——DSP。

过去受集成电路技术和数字化器件发展水平限制,只 限于理论概念的讲授和仿真。

早期-在计算机上仿真,算法实现。 现在-在DSP上实时处理 国内常用DSP一词来指数字信号处理器。

[此贴子已经被作者于2009-6-18 18:07:12编辑过]


作者: chuxuezhe    时间: 2009-6-18 17:28

DSP最典型的应用——手机,可见DSP的应用市场之大。

在世界众多的DSP厂商中,德州仪器(TI)的DSP始终 占有较大的市场份额(百分之60)。 全球每10部手机中就有6部采用TI的DSP,每10部手机 中就有8部嵌进TI公司的模拟芯片。

PC时代的领袖—— Intel 信息时代的领袖——TI

2000年诺贝尔物理奖—TI公司杰克-基尔比 0.2 DSP与通用计算机、单片机的区别

数字信号处理的运算特点:乘/加,及反复相乘求和 (乘积累加)


作者: chuxuezhe    时间: 2009-6-18 17:29

早期的计算机或微处理器的内部乘法运算是靠加法器 反复移位相加实现的,需要数十个时钟周期。 而DSP设置了硬件乘法/累加器,能在单个指令周期内 完成乘/加运算。 为满足FFT、卷积等数字信号处理的特殊要求,目前 DSP大多在指令系统中设置了“循环寻址”及“位倒 序”寻址指令和其他特殊指令,使得寻址、排序的 速度大大提高。 1024点复数FFT所需时间:微秒量级。高速数据的传输能力是高速实时处理的关键之一。

(1)新型的DSP设置了单独的DMA总线及其控制器, 在不影响或基本不影响DSP处理速度的情况下,做 并行的数据传送,传送速率可达每秒百兆字节。


作者: chuxuezhe    时间: 2009-6-18 17:30

(2) DSP还在指令并行、功能单元并行、多总线、时 钟频率提高等方面不断创新和改进。

(3)DSP是专为数字信号处理所设计的。与PC机相比,体积小、成本低。且易于开发,易于实现嵌入式和便携式应用。

所以,DSP在内部功能单元并行、多DSP核并行、多总线、功耗小方面尤为突出; 通用微机(PC机)、单片机不适于用在高速数字信号处理领域中。 通用计算机(PC机):在大容量内存、大规模多级高速缓存、极高的主频和 复杂的管理调度算法方面表现明显。


作者: chuxuezhe    时间: 2009-6-18 17:31

例如,奔腾PC机,目前主频已达3.2GHz,主内存1GB。 将许多大中型计算机上出现的技术应用到了芯片内部。 采用:

(1)超标量流水线结构

(2)层次化多级高速缓存

3)实现动态执行技术和分支预测功能,大大提高指 令运行的并行度,使奔腾PC机的运行速度大大提高。


作者: chuxuezhe    时间: 2009-6-18 17:31

PC机的设计目的:

(1)“通用”计算,方便使用,所以,它有大容量内存、 复杂的指令集和操作系统。

2) 体系结构对特殊类型的数据结构只能提供通用的 寻址操作,而DSP有专门的简捷寻址机构和辅助硬件来快速完成。


作者: chuxuezhe    时间: 2009-6-18 17:32

PC机通常不能高效地完成许多基本的数字处理运算。

例如,乘法累加,矢量旋转,三角函数等。

许多DSP有很好的并行性,但在单处理机系统中不能有 效地利用,例如神经网络、基本神经元。

单片机:

(1)为低成本控制领域而设计和开发的。位控能力强,I/O接口种类繁多,在片上外设和控制功能丰富、价 格低、使用方便占有一定的优势,但处理速度较慢。

(2)DSP具有高速并行结构及指令,而单片机没有。 DSP处理的算法的复杂度和大的数据处理流量更是单 片机不可企及的。


作者: chuxuezhe    时间: 2009-6-18 17:34

三者各有所长,技术的发展使得DSP、通用计算机、单片机相互借鉴对方的优点,互相取长补短。现在,PC机及部分单片机内部都有硬件乘法器 单片机内部也有了通用计算机和DSP内部才有的流水线 作业(但规模小些)而DSP内部也有了一定规模的高速缓存。 吸收Intel的嵌入式系统芯片和系统软件的优点。有的 DSP内部集成了高速运行的的DSP内核及控制功能丰富的嵌入式处理器内核。例如,内部集成有TI公司的C54xCPU内核和ARM公司的ARM7TDMIE内核的DSP,既具有高速的数据处理能力,又有各种类型的外设接口和位控能力,大大拓宽DSP在控制领域的应用。DSP在注重高速的同时,也在发展自己的低价位控制 芯片。 美国Cygnal公司的C8051F020 8位单片机,内部采用流水线结构,大部分指令的完成时间为1或2个时钟 周期,峰值处理能力为25MIPS。片上集成有8通道A/D,两路D/A,两路电压比较器,内置温度传感器定时器、可编程数字交叉开关和64个通用I/O口、电源监测、看门狗、多种类型的串行总线(两个UART、SPI等)。

[此贴子已经被作者于2009-6-18 17:34:29编辑过]


作者: chuxuezhe    时间: 2009-6-18 17:36

0.3 DSP芯片分类

0.3.1 三种方式分类

按以下三种分类:

1.按基础特性分

按工作时钟和指令类型分类。 静态DSP芯片:在某时钟频率范围内的任何时钟频率 上,DSP都能正常工作,除计算速度的变化外,性能上没有下降。

一致性芯片:两种或两种以上的DSP芯片,它们的指令集和相应的引脚结构相互兼容。

2.按数据格式分

定点和浮点之分。

定点:TMS320C2XX/C5X, TMS320C54X/C62XX等系列。

浮点:TMS320C3X/C4X。

不同的DSP的浮点格式不一定完全一样,如IEEE的标准浮点格式 (莫托罗拉的MC96002),自定义的浮点格式(TMS320C3X)。


作者: chuxuezhe    时间: 2009-6-18 17:36

.按用途分

通用型和专用型

通用型:适合普通的DSP应用

专用型:为特定的DSP运算而设计,如数字卷积、数字 滤波、FFT等。


作者: chuxuezhe    时间: 2009-6-18 17:38

DSP的应用

自20世纪70年代末诞生,得到飞速发展。已广泛应用,价格越来越低。

主要应用:

(1)信号处理:数字滤波,自适应滤波,FFT,相关运 算,谱分析,卷积,模式匹配,加密,波形产生

2)电机和机器人控制:在单片内集成多个DSP处理器,可采用先进的神经网络和模糊逻辑控制等人工智能 算法。机器人智能的视觉、听觉和四肢的灵活运动必须有 DSP技术支持才能实时实现。

3)激光打印机、扫描仪和复印机:DSP不仅仅是控制,还有繁重的数字信号处理任务,如字符识别‘ 图像增强、色彩调整等。

(4)网络控制及传输设备:网络功能和性能的不断提高,如视频信箱、交互式电视等,要求更宽、更灵活的传输带宽,实时传输和处理数据的网络控制 器、网络服务器和网关都需要DSP的支持。

(5)通讯调制解调器: , 自适应均衡,数据加密, 数据压 缩,扩频通信,纠错编码,传真,可视电话。

(6)语音处理:语音编码,语音合成,语音识别,语音邮 件,语音存储。

(7)自动测试诊断设备及仪器仪表、虚拟仪器:现代电子系统设备中,有近百分之六十的设备及资金是用于测试设备,自动测试设备集高速数据采集、 传输、存储、实时处理于一体,又一广阔应用领域。

[此贴子已经被作者于2009-6-18 17:38:38编辑过]


作者: chuxuezhe    时间: 2009-6-18 17:40

(8)图像处理:二维三维图形处理,图像压缩、传 输与增强,动画,机器人视觉,模式识别。

(9)军事: 保密通信,雷达处理,导航,导弹制导。 如机载空-空导弹,在有限的体积内装有红外探测 仪和相应的DSP处理部分,完成目标的自动锁与跟踪,战斗机上的目视瞄准器和步兵头盔式微光仪,需DSP完成图像的滤波与增强,智能化目 标的搜索、捕获。

(10)自动控制:机器人控制,磁盘控制,自动驾驶, 声控,发动机控制。

(11)医疗仪器: 助听、诊断工具、超声仪, CT、核磁 共振。

12)家用电器:数字电话,数字电视,音乐合成,音 调控制,玩具与游戏,高保真音响,数字收音机、数字电视。(13)汽车:防滑刹车、引擎控制、伺服控制、振动分 析、安全气囊的控制器、视像地图。


作者: chuxuezhe    时间: 2009-6-18 17:42

如何选择DSP

从本质上说,没有任何处理器能够满足所有的,或者 大多数应用的需要。

DSP第一类应用:大量便宜的嵌入式系统,如手机、硬盘和光盘驱动器(用于伺服控制)和便携式播放器。在这些应用中,成本和集成是极为重要的。对便携式的以电池供电的产品,功耗也极为重要

DSP第二类应用:处理专门的复杂算法的大量数据以声纳和地震探矿为例,其产品的产量并不大,但算法非常复杂,产品的设计工作量很大,也更复杂。因此设计者希望使用性能最高的、最容易使用的、 能支持多处理器配置的方案。 DSP的选取,完全取决于应用。某种DSP对于某些应用

可能是是很好的,但对于另外的应用可能很差的。


作者: chuxuezhe    时间: 2009-6-18 17:43

如何选择数据格式

定点格式、浮点格式。

大多数DSP使用定点运算。有的DSP使用浮点运算。浮点运算与定点运算相比,灵活性和数据的动态范围都比较大,因此,比较容易编程。因为浮点DSP电路更复杂,芯片也更大,所以成本和功耗也就比较大。

但在很多情况下,不需关注数据的动态范围和精度。 可考虑使用定点DSP。大多数批量生产的产品使用定点DSP,主要考虑其成本和功耗低。序员和算法设计者根据实际应用的要求,通过分析 和仿真来确定数据的动态范围和精度,然后在需要的时候,在代码中增加定标运算。对于需要很高动态范围和精度的应用,或在开发的容易程度比成本更重要的情况下,浮点DSP就有其优势。


作者: chuxuezhe    时间: 2009-6-18 17:44

数据宽度

所有浮点DSP为32位,大多数定点DSP是16位,但有的也使用20、24、32位数据字。数据字的长短是影响成本的重要因素,因为它极大地影响芯片的大小、引脚数以及DSP的片外存储器的大 小。


速度

有多种方法来衡量DSP的速度。最基本的是指令周期即用MIPS——每秒执行多少百万条指令。但问题是:不同的DSP在单个周期所完成的工作是大不相同。使用MOPS(每秒百万次运算)和MFLOPS (每秒百万次浮点运算),要十分小心。因为不同厂商的关于“运算”的概念是不同的。

其次,要注意的是,DSP的输入时钟可能和DSP的指令速率一致,也可能内部时钟加倍。 现在许多DSP是用低频的时钟,来产生片上所需的高频 时钟。


作者: chuxuezhe    时间: 2009-6-18 17:46

存储器的安排

关注:多次访问存储器(DARAM),哈佛结构,高速缓存,存储空间的大小。

开发的难易程度

为减少产品成本,可使用比较便宜的开发工具。

使用何种语言编程。选择C语言、汇编语言等。用C编写用的较多。对实时性要求高的程序,仍用汇编语 言编写。也有混合编写的。消费类产品,由于成本限制,不可能使用高性能的 DSP。

支持多处理器

雷达:高数据率和大运算量的应用系统,往往需要多个DSP,在这种情况下,DSP的连接是否容易、连接 的性能,都成为重要的因素。近年推出的DSP大都非常注意增加专门的接口或DMA通道,来支持多DSP的运行。

功耗和电源管理

越来越多的DSP用于电池供电的便携式应用(如手机 便携式播放器),许多DSP厂商都降低了DSP的供电电压,加强了电源管理功能。

成本

决定DSP的价格的主要因素之一是器件封装的价格。并不存在最好的DSP。正确的DSP选择取决于具体的应用场合对于一种应用来说是好的选择,对另外的应用则可能是很差的。


作者: chuxuezhe    时间: 2009-6-18 17:50

TI公司的主流产品

三大家族:2000系列、5000系列、6000系列。

0.5 .1 TMSC2000家族

TMSC2000家族,将闪存、10位A/D、CAN(控制器局域网)等各种片内外设集成在一起,主要包括 TMSC240X及TMSC28X两类产品。

主要产品为两个系列:C20X、 C240X

C20X:系列用于电话、数字相机、嵌入式家电设备等。

C240X:主要用于数字电机控制、电机控制、工业自动化电力转换系统等

0.5.1 .1 TMSC240X系列

该系列为16位定点DSP,速度: LF240X为30 MIPS, LF240XA为40 MIPS。

专为数字电机控制和其它控制系统而设计的。是当前 集成度最高、性能最强的运动控制芯片。 不但有高性能的C2XX CPU内核,配置有高速数字信号 处理的结构,且有单片电机控制的外设。 将数字信号处理的高速运算功能,与面向电机的强大控制功能结合在一起,成为传统的多微处理器单元和多片系统的理想替代品。

可用于控制功率开关转换器,可提供多电机的控制等。

C240X采用诸如自适应控制、卡尔曼滤波和控制等先进的控制算法,支持多项式的高速实时算法,因而可减少力矩纹波、降低攻耗、减少振动,从而延长被控设备的寿命,为各种电机提供了高速、高效和全变速的先进控制技术。4级流水线结构,采用改进的哈佛结构。


作者: chuxuezhe    时间: 2009-6-18 17:50

片内外设及存储器:

(1)双10位(双8路或单16路)A/D转换器,转换时间500nS。

(2)41个可独立编程的多路复用I/O引脚;

(3)带锁相环PLL的时钟模块;

(4)看门狗定时器模块;

(5)串行通信接口SCI与串行外设接口SPI;

(6)两个事件管理器EVA、EVB,可为所有电机类型提供控制技术,在工业自动化方面的应用奠定了基础。

* 3个具有死区功能的全比较单元;2个单比较单元;

* 防止击穿故障的可编程PWM死区控制;

* 2个16位通用定时器;

* 3个事件捕捉单元,其中2个具有直接连接光电编码器脉冲的能力;

(7)8个16位PWM通道--三相反相器控制;

(8)5个外部中断(两个驱动保护、复位、两个可屏蔽中断);

(8)CAN 2.0B模块

(9)指令集:包括信号处理指令和通用控制指令,利 用的它的为反转变址寻址能力可进行基2的FFT运算。

10)用于仿真的JTEG接口。

(11)片内存储器:32K字闪存、2.5K字RAM


作者: chuxuezhe    时间: 2009-6-18 17:52

0.5.1 .1 TMSC28X系列

为32位定点,速度为可达400 MIPS片内:闪存、12位A/D、CAN(控制器局域网)总线模块、SPI、 SCI等片内外设。

0.5.2 TMSC5000家族

该系列高性能、多种片内外设选择、小封装、省电。

适用:无线电通信、因特网。电源可降至0.9V 及.速 度可达600. 非常适用于:数字音乐唱机、3G电话、数字相机。

0.5.2 .1 TMSC54X系列

16位定点,功耗0.32 mw/MIPS, 32-532MIPS.

0.5.2 .2 TMSC55X系列

8-48位浮点,功耗0.05 mw/MIPS, 288-600MIPS.程序字宽度为32位.


作者: chuxuezhe    时间: 2009-6-18 17:53

0.5.3 TMSC6000家族

TMSC6000家族为高性能DSP.

包括: TMSC62X定点DSP系列、TMSC64X定点DSP系列、TMSC67X浮点DSP系列。

0.5.3 .1 TMSC62X系列

工作频率:150-300MHz,

运行速度:1200-2400MIPS 内部2个乘法器,6个算术逻辑单元,超长指令字 VLIW)结构,大容量的片内存储器和大范围的寻址能力,4个DMA接口,2个多通道缓存串口,2个32位片内外设。

0.5.3 .2 TMSC64X系列

工作频率:400-600MHz,

运行速度:3200-4800MIPS

具有特殊功能的指令集。

0.5.3 .3 TMSC67X系列

为高性能浮点DSP工作频率:100-225MHz运行速度:600-1350MFLOPS 具有4个浮点/定点算术逻辑单元,2个定点算术逻辑单元,2个浮点/定点乘法器。


作者: chuxuezhe    时间: 2009-6-18 17:54

0.6 系统的芯片集成——SOC

SOC (System on Chip) 系统集成到芯片上。是下一 代基于DSP产品的主要发展方向之一。如,具有电视质量的无线电会议、家庭娱乐设施、电子游戏等。最近,可将8个DSP核, 每个具有1亿个晶体管,集成到拇指大的一块芯片上。

2010年,可将12个DSP核, 每个具有5亿个晶体管,集成到一块芯片上。相当于将今天的笔记本集成到手表大的体积内。以移动电话为例,逐步完成了从模拟到数字式的过度,即从第一代(1G)到第二代(2G)的过渡,在很短的时间内,从2G向2.5G和3G发展。


作者: chuxuezhe    时间: 2009-6-18 17:56

0.6.1 2G手机简介

GSM,几乎所有的2G手机采用的基带体系结构,都是以两个可编程处理器(一个DSP和一个MCU)为基础的。目前,已逐渐将这两个处理器集成在一个芯片中。

在时分多址(TDMA)模式手机:DSP负责数据流的调制解调,利用编解码实现传输误码纠正,维持数据链路的稳定,对数据进行加密、解密、保证通信的安全性,对语音数据进行压缩和解压缩。在码分多址(CDMA)模式手机:采用扩频技术,手机功能划分的方案也就发生了相应的变化,DSP仍是手机的关键部件,负责前向纠错加密、语音压缩和解压缩,还负责控制ASIC硬件。

ASIC硬件:负责对扩频信号调制或解调及后处理。在2G手机中,上述功能由DSP硬件来实现,时钟为40MHz, 在2.5G手机,语音编码芯片较以前更为复杂,数据速率率更高,时钟已高于100MHz。在2G手机中。MCU负责支持手机的用户界面。例如,大多数采用32位的RISC内核——ARM7就是典型的代表。时钟不超过10MHz。在2.5G手机,时钟也不超过40MHz。


作者: chuxuezhe    时间: 2009-6-18 17:58

随着科技发展,手机的功能及实现方案也在发生变化。 目前,手机还是一个封闭的、静态的、嵌入式系统的典型,主要还是为用户建立一个语音信道,这是一个固定的、实时的、集中的DSP任务。未来的移动电话市场可能会发生分化:

传统的以语音业务为主的,会继续占有一定的市场份额。 随着互联网的发展,例如下载一个MP3应用程序,希望手机支持一个电视会议,或变为GPS辅助导航仪, 将具有类似于个人计算机的特性,变为一个应用平台。因此,手机的体系结构也将发生重大的变化。

0.6.2 3G手机简介

与2G手机相比,3G手机的体系结构将发生重大变化,多媒体数据应用日益显得重要。为将实时通信功能和用户交互式分开,TI开发了的双处理器开放式多 媒体应用平台。

50-100MIPS提高到500MIPS以上。未来的手机可能会采用多个DSP芯片,一个用来实现固定功能,嵌入式解调器,另外一个更加灵活的DSP芯片用来实现各种应用。在未来的手机中,为支持各种可下载的应用, 3G中使用的DSP体系结构和软件基础结构必须不断变化,

此时,DSP将不再是具有固定功能的嵌入式处理器而开始呈现出许多类似于通用处理器的特征,如超高速指令缓冲器和内存管理单元等功能。为实现动态任务管理,需要实时操作系统 (RTOS)。


作者: chuxuezhe    时间: 2009-6-19 11:50     标题: 第1章 TMS320LF240X系列DSP概述

该系列包括: 闪存:TMS320LF2402、TMS320LF2406、TMS320LF2407

ROM: TMS320LC2402、TMS320LC2404、TMS320LC2406

最具革命性产品:LF2407/ LF2407A,是当今世界上集成度最高、性能最强的运动控制DSP芯片。

1.1 DSP芯片的基本结构

1.什么是DSP芯片

DSP是一种特殊结构的微处理器, 快速实现各种数字信号处理算法。


作者: chuxuezhe    时间: 2009-6-19 11:54

2. DSP芯片的基本结构

(1) 哈佛结构-程序和数据分开的结构

程序和数据存储在两个不同的空间。

通用微处理器,存储器结构为冯.诺依曼结构。

程序存储器和数据存储器共用一个公共的存储空间和单一的地址和数据总线。

CPU 程序/数据存储器

哈佛结构: DSP的程序存储器空间和数据存储器空间分开,即每个存储器空间独立编址,独立访问,并具有独立的程序总线和数据总线,取指和执行能完全重叠进行。

允许数据存放在程序存储器中,并被算术指令运算指 令直接使用。 指令存储在高速缓冲器(Cache)中,当执行本指令时,不需再从存储器中读取指令,节省一个机器周期的时间。


作者: chuxuezhe    时间: 2009-6-19 11:58

(2)流水线操作功能

DSP芯片采用多组总线结构,允许CPU同时进行指令和数

据的访问。因而,可在内部实行流水线操作。

执行一条指令,总要经过取指、译码、取数、执行运算,需要若干个指令周期才能完成。流水线技术是 将各个步骤重叠起来进行。既第一条指令取指、译 码时,第二条指令取指;第一条指令取数时,第二 条指令译码,第三条指令取指,依次类推。
取指 译码 取数 执行

(3)专门的硬件乘法器和乘加指令MAC

在数字信号处理的算法中,乘法和累加是基本的大量运算,占用绝大部分的处理时间。例如,数字滤波,卷积,相关,向量和矩阵运算中,有大量的乘和累加运算。。PC机计算乘法需多个周期用软件实现,而DSP设置了硬件乘法器以及乘加指令MAC,在单周期内取两个操作数一次完成。


作者: chuxuezhe    时间: 2009-6-19 11:59

(4)特殊的处理器指令

采用特殊的指令。

例如MOV指令,把指令的数据复制到该地址加1的地址中,原单元的内容不变----数据移位,相当于延迟。另一特殊指令LTD,在一个指令周期完成LT、DMOV和APAC三条指令的内容。

(5) 高速的指令运行周期

DSP指令周期可为几ns,LF2407A为40ns 。

(6) 丰富的片内存储器件和灵活的寻址方式

片内集成FLASH和双口RAM,通过片内总线访问这些存储空间,因此不存在总线竞争和速度匹配问题,大大提高数据的读/写速度。

(7) 独立的直接存储器访问(DMA)总线及其控制器

DSP为DMA单独设置了完全独立的总线和控制器。

1.2 TMS320系列DSP概述

该系列包括:定点、浮点、多处理器DSP和定点DSP。体系结构专为实时数字信号处理而设计。

TI公司从1982年推出:

第一代 TMS32010、TMS32011等。

第二代 TMS32020、TMS320C025(改进型TMS320C2xx)

第三代 TMS32030、TMS320C32等。

第四代 TMS32040/TMS320C44等。

第五代 TMS3205x/TMS320C54x等。

第六代 TMS32062x/TMS320C67x等(速度最快)。

TMS320C8X:内有多个DSP


作者: chuxuezhe    时间: 2009-6-19 13:51

三大系列:2000、5000、6000。

同一代的器件有相同的CPU结构,但片内存储器和外设配置不同。

1.3 TMS320LF240x系列 DSP控制器

专为数字电机控制和其它控制系统而设计的。是当前集成度最高、性能最强的运动控制芯片。

不但有高性能的C2XX CPU内核,配置有高速数字信号

处理的结构,且有控制电机的外设。

它将数字信号处理的高速运算功能,与面向电机的强大控制功能结合在一起,成为传统的多微处理器单元和多片系统的理想替代品。

主要用途:

(1)电机(交流伺服、直流永磁、开关磁阻)的鲁棒 控制器。

(2)无刷电机的全变速控制。

(3)使用先进的算法可降低传感器的数量。

(4)汽车电子制动系统。

5)多电机系统的单处理器控制。

(6)与控制算法处理一起完成电源开关转换的控制。


作者: chuxuezhe    时间: 2009-6-19 13:58

处理速度: LF240x为30MIPS,LF240xA为40MIPS。

240X采用诸如自适应控制、卡尔曼滤波和控制等先进

的控制算法,支持多项式的高速实时算法,因而可

减少力矩纹波、降低攻耗、减少振动,从而延长被

控设备的寿命,为各种电机提供了高速、高效和全

变速的先进控制技术。

4级流水线结构,采用改进的哈佛结构。

指令系统: 信号处理指令、通用控制指令。

源代码和目标代码与24x同代产品兼容,源代码与C2x

兼容,且与C5x向上兼容。利用它的为反转变址寻

址能力可进行基2的FFT运算。

片内外设及存储器等资源:

PLLF

PLLVCCA

DARAM(B0) PLLF2

256字 PLL时钟 XTAL1/CLKIN

XTAL2

XINT1/IOPA2

RS C2xx

CLKOUT/IOPE0 DSP

TMS2 DARAM(B1) ADCIN00-ADCIN07

内核 ADCIN08-ADCIN15

BIO/IOPC1 256字 VCCA

MP/MC

10-bit ADC VSSA

BOOT EN/XF

具有双排序器 VREFHI

VREFHO

XINT2/ADCSOC/IOP

DARAM(B2) D0

32字

SCITXD/IOPA0

SCI SCIRXD/IOPA1

VDD(3.3V)

VSS SARAM 2K字 SPISIMO/IOPC2

SPISIMI/IOPC3

SPI SPICLK/IOPC4

SPISTE/IOPC5

TP1 Flash/ROM CANTX/IOPC6

TP2 32K字 CAN CANRX/IOPC7

VCCP(5V)

4K/12K/12K/4K

WD

Port A(0-7) IOPA[0:7]

Port B(0-7) IOPB[0:7]

A0-A15 数字I/O Port C(0-7) IOPC[0:7]

D0-D15 Port D(0) IOPD[0]

PS,DS,IS 与其它引脚共享 PortE(0-7) IOPE[0:7]

R/W PortF(0-7) IOPF[0:6]

RD

READY 外部存储器接口 TRST

STRB

TDO

WE

TDI

ENA 144

JTAG端口 TMS

TCK

VIS OE

EMU0

W/R/IOPC0

EMU1

PDPINTA PDPINTB

CAP1/QEP1/IOPA3 CAP4/QEP3/IOPF7

CAP2/QEP2/IOPA4 CAP5/QEP4/IOPF0

CAP3/IOPA5 CAP6/IOPF1

PWM1/IOPA6 事件管理器A 事件管理器B PWM7/IOPE1

PWM2/IOPA7 PWM8/IOPE2

PWM3/IOPB0 * 3个捕获输入 * 3个捕获输入 PWM9/IOPE3

PWM4/IOPB1 PWM10/IOPE4

PWM5/IOPB2 * 6个比较/PWM输出 * 6个比较/PWM输出 PWM11/IOPE5

PWM6/IOPB3 * 2个定时器/PWM * 2个定时器/PWM PWM12/IOPE6

T1PWM/T1CMP/IOP T3PWM/T4CMP/IOP

T4PWM/T4CMP/IO

B4 F2 B5 F3

TDIRA/IOPB6 TDIRB/IOPF4 TCLKINA/IOPB7 TCLKINB/IOPF5


作者: chuxuezhe    时间: 2009-6-19 14:00


(1)双10位(双8路或单16路)A/D转换器,转换时间500nS。

(2)41个可独立编程的多路复用I/O引脚;

(3)带锁相环PLL的时钟模块;

(4)看门狗定时器模块;

(5)串行通信接口SCI与串行外设接口SPI;

(6)两个事件管理器EVA、EVB,可为所有类型电机提供控制技术,在工业自动化方面的应用奠定了基础。

* 3个具有死区功能的全比较单元;2个单比较单元;

* 防止击穿故障的可编程PWM死区控制;

* 2个16位通用定时器;

* 3个事件捕捉单元,其中2个具有直接连接光电编码器脉冲的能力;

(7)8个16位PWM通道--三相反相器控制;

(8)5个外部中断(两个驱动保护、复位、两个可屏蔽中断);

(9)CAN 2.0B 模块

(10)用于仿真的JTEG接口。

(11)片内存储器:32K字闪存、2.5K字RAM


作者: chuxuezhe    时间: 2009-6-19 14:04


地址、数据、存储器控制信号

A0-A15:

D0-D15:

DS*:数据空间选通;

PS*:程序空间选通;

IS*: I/O空间选通;

R/W*:读写选通,指明与外围器件信号的传送方向;

W/R*/IOPC0:为R/W*的反;

WE*:对外部3个空间写;

RD*:对外部3个空间读;

STRB* :外部存储器选通;

READY: 插入等待状态;

MP/MC* :微处理器/微计算机(控制器)方式选择

ENA_144:=1,使能外部信号;

=0,无外部存储器。

VIS_OE*:可视输出可能。

可视输出的方式下,外部数据总线为输出

时,该引脚有效,可用作外部编码逻辑,以防止

数据总线冲突。

事件管理器A(EVA)

CAP1/QEP1/IOPA3:捕捉输入1/正交编码脉冲输入;

CAP2/QEP2/IOPA4:

CAP3/IOPA5:

PWM1/IOPA6:比较PWM输出或通用IO;

PWM2/IOPA7:

PWM3/IOPB0:

PWM4/IOPB1:

PWM5/IOPB2:

PWM6/IOPB3:

T1PWM/T1CMP/IOPB4:

T2PWM/T2CMP/IOPB5:

TDIRA/IOPB6:通用计数器方向选择(EVA)

1:加计数;0:为减计数;

TCLKINA/IOPB7:通用计数器(EVA)外部时钟输入,

事件管理器B(EVB)

CAP4/QEP3/IOPE7:

CAP5/QEP4/IOPF0:

CAP6/IOPF1:

PWM7/IOPE1~PWM12/IOPE6:

T3PWM/T3CMP/IOPF2:

T4PWM/T4CMP/IOPF3:

TDIRB/IOPF4:通用计数器方向选择(EVB) 1:加计数;0:减计数;

TCLKINB/IOPF5:通用计数器(EVA)外部时钟输入


作者: chuxuezhe    时间: 2009-6-19 14:05

模数转换器

ADCIN00~ADCIN15:ADC的模拟输入

VREFHI: ADC的模拟参考电压高电平输入端

VREFLO: ADC的模拟参考电压低电平输入端

VCCA: ADC模拟供电电压(3.3V)

VSSA: ADC模拟地。

CAN、SCI、SPI

CANRX/IOPC7: CAN接收数据脚或IO脚;

CANTX/IOPC6: CAN发送数据脚或IO脚;

SCITXD/IOPA0:SCI发送数据脚或IO脚;

SCIRXD/IOPA1:SCI接收数据脚或IO脚;


作者: chuxuezhe    时间: 2009-6-19 14:06

SPICLK/IOPC4 :SPI时钟脚或IO脚;

SPISIMO/IOPC2 :SPI从输入主输出或IO脚;

SPISOMI/IOPC3 :SPI从输出主输入或IO脚;

SPISTE*/IOPC5 :SPI从发送使能或IO脚; 外部中断、时钟

RS*:复位引脚,当RS*为高电平时,从程序存储器的 0地址开始执行程序;当WD定时器溢出时,在RS*脚产生一个系统复位脉冲;

PDPINTA* :功率驱动保护中断输入,当电机驱动不正常时,如出现过压、过流时,该中断有效,将 PWM脚(EVA)置为高阻态。

XINT1/IOPA2:外中断1或通用IO脚,极性可编程;

XINT2/ADCSOC/IOPD0:外中断2可做AD转换开始输入

或通用IO脚,极性可编程;

CLKOUT/IOPE0:时钟输出或通用IO脚;

PDPINTB* :功率驱动保护中断输入,当电机驱动不正

常时,如出现过压、过流时,该中断有效,将PWM 脚(EVB)置为高阻态。

振荡器、锁相环、闪存、引导及其他

XTAL1/CLKIN:PLL振荡器输入引脚;

XTAL2:PLL振荡器输出引脚;

PLLVCCA:PLL电压(3.3V);

IOPF6:通用IO脚;

BOOT_EN*/XF:引导ROM使能,通用IOXF脚;


作者: chuxuezhe    时间: 2009-6-19 14:06

PLLF1:PLL外接滤波器输入1;

PLLF2:PLL外接滤波器输入2;

VCCP(5V):闪存编程电压输入端,在硬件仿真时,

该脚可为5V或0V。运行时,该脚必须接地。

TP1 (Flash): Flash阵列测试引脚,悬空;

TP2 (Flash): Flash阵列测试引脚,悬空;

BIO*/IOPC1:分支控制输入引脚或通用IO脚,0:执行

分支程序。如不用该脚,必须为高电平;复位时,

配置为分支控制输入;

仿真和测试

EMU0 :

EMU1/OFF* :

TCK:

TDI:


作者: chuxuezhe    时间: 2009-6-19 14:07

TDO:

TMS:

TMS2:

TRST*:

电源电压

VDD:内核电源电压+3.3V,数字逻辑电源电压;

VDDO:IO缓冲器电源电压+3.3V,数字逻辑和缓冲

器电源电压;

VSS:内核电源地,数字参考地;

VSSO:IO缓冲器电源地,数字逻辑和缓冲器电源地


作者: chuxuezhe    时间: 2009-6-19 14:08


Hex Hex Hex I/O

0000 0000 0000

Flash扇区0(4K) 存储器映射寄存器/保留地址

005F

中断向量(0000-003FH) 0060

保留 (0040-0043H) 007F 片内DAREM B2

用户代码开始于0044H 0080 非法

00FF

0FFF 0100

1000 01FF 保留

0200 片内DAREM(B0) (CNF=1)

02FF 外部 (CNF=0)

Flash扇区1 (12K) 0300 片内DAREM B1

03FF

0400 保留

04FF

0500

3FFF 07FF 非法

4000 0800

SAREM(2K)

内部 (DON=1)

0FFF 外部 (DON=0) 外部

Flash扇区2 (12K)

1000

非法

6FFF 6FFF

7000 7000 外设存储器映射寄存器

Flash扇区3 (4K) (系统,WD,ADC,

7FFF SCI,

8000 SARAM(2K) 7FFF SPI,CAN,I/O,中断)

8000

内部(PON=1)

87FF 外部(PON=2)

8800

外部 FEFF

FF00

外部 保留

FF0E

FDFF FF0F Flash控制模式寄存器

FE00

保留 (CNF=1) FF10

保留

外部(CNF=0) FFFE

FEFF

FF00 片内DAREM(B0) (CNF=1) 等待状态发生器控制器寄

外部(CNF=0) 存器(片内)

FFFF FFFF


作者: chuxuezhe    时间: 2009-6-19 14:08


Hex

0000

保留 0003

中断屏蔽寄存器 0004

保留 0005

中断标识寄存器

0006

仿真寄存器和 0007

保留 005F

Hex

0000

存储器映射寄存

器和保留 非法 7000-700F

005F

0060

片内 DARAM B2 系统配置和控制寄存器 7010-701F

007F

0080

00FF 非法 看门狗定时器寄存器 7020-702F

0100

保留 非法 7030-703F

01FF

0200 SPI 7040-704F

片内 DARAM B0 SCI 7050-705F

02FF

0300 非法 7060-706F

片内 DARAM B1

03FF 外部中断寄存器 7070-707F

0400

保留 非法 7080-708F

04FF

0500 数字 I/O 控制寄存器 7090-709F

非法 ADC 控制寄存器 70A0-70BF

07FF

0800 非法 70C0-70FF

SARAM(2K)

0FFF CAN 控制寄存器 7100-710E

1000

非法 非法 710F-71FF

6FFF

7000

外设帧 1 (PF1) CAN 邮箱 7200-722F

73FF

7400 非法 7230-73FF

外设帧 2 (PF2)

743F

7440 事件管理器 EVA

非法

74FF 通用目标定时器寄存器 7400-7408

7500

外设帧 3 (PF3)

753F 比较,PWM 和死区寄存器 7411-7419

7540

77EF 非法 捕获和 QEP 寄存器 7420-7429

77F0

代码安全密码 中断屏蔽,向量和

77F3 742C-7431

77F4 标志寄存器

保留

77FF 非法 7432-743F

7800

非法

7FFF 事件管理器 EVB

8000

外部 *

FFFF 通用目标定时器寄存器 7500-7508

比较,PWM 和死区寄存器 7511-7519

捕获和 QEP 寄存器 7520-7529

* 表示这些地址只有LF2407才有

中断屏蔽,向量和

752C-7531

标志寄存器

保留 7532-753F


作者: chuxuezhe    时间: 2009-6-19 14:09

有16位地址线,可以访问3个独立的地址空间,总计

192K字。

(1)程序存储器:64K字;

(2)数据存储器:64K字;

(3)I/O空间:64K字。

所有的片内外设寄存器均映射在数据存储器空间。

片内32K字 Falsh。

片内RAM为544个字 (为DARAM-双口RAM ):B0-256

个;B1-256个;B2-32个。

片内SARAM 2K字 (单口RAM)。


作者: chuxuezhe    时间: 2009-6-19 14:09

1.5 TMS320LF240x系列 DSP的CPU功能模块

包括:输入定标移位器、乘法器、中央算术逻辑单元

1.5 .1 输入定标移位器

将来自程序/数据存储器的16位数据调整为32位数据

送到中央算术逻辑单元(CALU)。

作为程序/数据存储器到CALU数据传输路径的一部分

1.5 .2 乘法器

16?16硬件乘法器,单周期产生一个32位有符号或

无符号乘积。


作者: chuxuezhe    时间: 2009-6-19 14:09

1.5 .3 中央算术逻辑单元 (CALU)

实现大部分的算术和逻辑运算功能。大多数只需1个

机器周期。

可进行布尔运算,使高速控制器所要求的位操作很容

易。

对于大动态范围,可支持浮点操作。

对大多数指令,状态寄存器ST1的第10位符号扩展位

(SXM)决定在计算时是否使用符号扩展:

若SXM=0,符号扩展无效;

若SXM=1,符号扩展有效。


作者: chuxuezhe    时间: 2009-6-19 14:10

(3)溢出标志位OV

ST0的第12位

(4)测试/控制标志位TC

ST1的第11位,根据被测位的值置1或清0。

与累加器有关的转移指令大都取决于C、OV、TC的状

态和累加器的值。

1.5 .5 输出数据定标移位器

将累加器输出的内容左移0-7位,而累加器的内容保

持不变。


作者: chuxuezhe    时间: 2009-6-19 14:10

1.5 .4 累加器 (ACC)

有关累加器的状态位和转移指令。

(1)进位标志位C

状态寄存器ST1的第9位。

(2)溢出方式标志位OVM

状态寄存器ST0的第11位。决定累加器如何反映

算术运算的溢出。

OVM=1,且运算溢出, ACC为下列两个特定值:

* 若正溢出, ACC中填最大正数:7FFF FFFFh

* 若负溢出, ACC中填最大负数:8000 0000h

OVM=0,ACC中的结果正常溢出。、


作者: chuxuezhe    时间: 2009-6-19 14:11

1.5 .6 状态寄存器ST0和ST1

特别重要,两个寄存器的内容可被读出并保存到数据

存储器(用SST指令),或从数据存储器读出加载

到ST0和ST1 (用LST指令)。

在子程序调用或进入中断时实现CPU各种状态的保存。

可用指令SETC和CLRC单独置1或清0。

ST0各位的含义:

ARP(位15-13):辅助寄存器指针,间接寻址,选择

当前的辅助寄存器AR。 AR被装载时,原ARP的值被

复制到ARB中。


作者: chuxuezhe    时间: 2009-6-19 14:11

OV (位12):溢出标志位。

OVM (位11):溢出方式标志位。

INTM(位9):中断总开关位。

=1,所有可屏蔽中断被禁止;

=0,所有可屏蔽中断有效。

DP(位8-0):数据存储器页面指针

9位的DP与指令字中的7位一起形成16位的数据存

储器的直接地址。

ST1各位的含义:

ARB(位15-13):辅助寄存器指针缓冲器。

当ARP被加载到ST0时,原来的ARP被复制到ARB中,

也可将ARB复制到ARP中。


作者: chuxuezhe    时间: 2009-6-19 14:11

CNF(位12):片内DARAM配置位

=0,片内DARAM映射到数据存储器区;

=1,片内DARAM映射到程序存储器区。

TC(位11):测试/控制标志位

SXM(位10):符号扩展方式位

=1,数据通过定标移位器传送到累加器时将产

生符号扩展;

=0,不产生符号扩展。

C(位9):进位标志位。

XF(位4):XF引脚状态位。

可用指令SETC置1,用指令CLRC清0

PM(位1-0 ):乘积移位方式


作者: chuxuezhe    时间: 2009-6-19 14:11

00:乘法器的32位乘积不移位,直接入CALU。

01:PREG左移1位后装入CALU,最低位填0;

10:PREG左移4位后装入CALU,低4位填0;

11: PREG输出进行符号位扩展右移6位。

1.5 .7 辅助寄存器算术单元(ARAU)

1.辅助寄存器算术单元ARAU简介

ARAU的主要功能:在CALU操作的同时,执行8个辅助寄

存器AR7-AR0中的算术运算, 8个辅助寄存器提供了

强大而灵活的间接寻址能力。利用辅助寄存器中的

16位地址可访问64K字的数据空间任一单元。


作者: chuxuezhe    时间: 2009-6-19 14:12

如何选择某一辅助寄存器?用ARP指针装入3位数据。

2.辅助寄存器

除可用于数据存储器的地址外,还有其他用途:

(1)利用辅助寄存器进行条件转移;

(2)利用辅助寄存器进行暂存单元;

(3)利用辅助寄存器进行软件计数。


作者: listeninglsl    时间: 2009-6-21 15:47

dsp  好东西啊!
作者: chuxuezhe    时间: 2009-6-23 14:19

第2章 系统配置和中断

介绍系统的配置寄存器和有关中断,并介绍用于增加

中断请求容量的外设中断扩展(PIE)寄存器。

2.1 系统配置概述

系统配置和中断操作的内容包括:系统配置寄存器、中

断优先级和中断向量表、外设中断扩展控制器(PIE)、

中断向量、中断响应的流程、中断响应的时间、CPU

中断寄存器、外设中断寄存器、复位、无效地址检

测、外部中断控制寄存器。

LF2407大部分的I/O口是多路复用的,复位时会被上

拉为数字输入的模式。


作者: chuxuezhe    时间: 2009-6-23 14:20


2.2 系统配置寄存器

对功能模块进行配置。

2.2.1 系统控制和状态寄存器

(1)系统控制和状态寄存器-SCSR1,映射到数据存

储器空间7018h。

位15: 保留

位14: CLKSRC,CLKOUT引脚输出源选择

0-CLKOUT引脚输出CPU时钟;

1-CLKOUT引脚输出WDCLK时钟

位13-12:LPM低功耗模式选择,指明在执行IDLE 指

令后进入哪一种低功耗模式。

00-进入IDLE1(LPM0)模式;

01-进入IDLE2(LPM1)模式;

1x-进入HALT (LPM2)模式。

位11-9:PLL时钟预定标选择,对输入时钟选择倍频

系数。

000-4;

001-2;

010-1.33;

011-1;

100-0.8;

101-0.66;

110-0.57;

111-0.5

位8:保留

位7:ADC CLKEN,ADC模块时钟使能控制位

位6:SCICLKEN, SCI模块时钟使能控制位

位5:SPICLKEN, SPI模块时钟使能控制位

位4:CANCLKEN, CAN模块时钟使能控制位

位3:EVBCLKEN, EVB模块时钟使能控制位

位2:EVACLKEN, EVA模块时钟使能控制位

0:禁止模块时钟(节能);1:使能模块时钟,且运行

位1:保留

位0:ILLADR, 无效地址检测位

当检测到一个无效地址时,该位被置1,该位需

软件清除,写0即可。初始化时该位写0。

注意:任何无效的地址会导致NMI事件发生。


作者: chuxuezhe    时间: 2009-6-23 14:22

(2)系统控制和状态寄存器2-SCSR2映射到数据存储器空间7019h 。

位15-7:保留位

位6:I/P QUAL,时钟输入限定,它限定输入到DSP的

CAP1-6,XINT1-2,ADCSOC以及PDPINTA*/PDPINTB*引

脚上的信号被正确锁存时,需要的最小脉冲宽度。

脉冲宽度只有达到这个宽度之后,内部的输入状态才会改变。

0-锁存脉冲至少需要5个时钟周期;

1-锁存脉冲至少需要11个时钟周期。

如果这些引脚作I/O,则不会使用输入时钟限定电路。

位5:WD保护位,该位可用软件来禁止WD工作。这位

是—个只能清除的位,复位后默认1。通过向这位

写1对其清除。

0-保护WD,防止WD被软件禁止。

1-复位时的默认值

位4:XMIF HI-Z。控制外部存储器接口信号 (XMIF)

0:所有XMIF信号处于正常驱动模式(即非高阻态)

1:所有XMIF信号处于高阻态

位3:BOOTEN* (使能位)。这位反映了BOOTEN*引脚

在复位时的状态。

0:使能引导ROM。地址空间0000h-00FFh被片内引

导ROM块占用。禁止用FLASH存储器。


作者: chuxuezhe    时间: 2009-6-23 14:33

1:禁止引导ROM。TMS320LF2407片内FALSH程序存

储器映射地址范围为0000h一7FFFh。

位2:(微处理器/微控制器选择)。这位反映了器件复

位时MP/MC*引脚的状态。

0:器件设置为微控制器方式,程序地址范围从

0000h一7FFFh被映射到片内

1:器件设置为微处理器方式,程序地址范围从

0000h一7FFFh被映射到片外(必须外扩外部 存储器)


作者: chuxuezhe    时间: 2009-6-23 14:34

位1-0: SRAM的程序/数据空间选择

0 0 地址空间不被映射,该空间被分配到外部存储器

0 l SARAM 被映射到片内程序空间

1 0 SARAM 被映射到片内数据空间

1 1 SARAM 被映射到片内程序空间,又被映射到

片内数据空间


作者: chuxuezhe    时间: 2009-6-23 14:34

2.2.2 器件标识号寄存器(DINR)

该寄存器被映射到数据存储器空间701Ch。

位15-4 DIN15-DIN4。这些位包含了硬连线器件指定

的器件标识号。

位 3-0 DIN3-DIN0。包含了器件的版本、给定值

器件 版本 DIN15-DIN0

LF2407 1.0~1.5 0510h

LF2407 1.6 0511h

LF2407A 1.0 0520h

LC2406A 1.0 0700h

LC2402A 1.0 0610h


作者: chuxuezhe    时间: 2009-6-23 14:37

2.3 中断优先级和中断向量表

LF2407 DSP具有3个不可屏蔽中断和6个可屏蔽中断 (INT1-

INT6),可采用中断扩展设计来满足大量外设中断需求。

每个可屏蔽中断有多个中断源,每个中断源具有唯一的中断入口地址向量。

中断源如下所示:

不可屏蔽中断(3个)

中断优先级 中断名称 外设中断向量 描述

1 Reset 0000h 复位引脚和WD溢出

2 保留 0026h 仿真陷阱

3 NMI 0004h 软件中断


作者: chuxuezhe    时间: 2009-6-23 14:38

INT1(级别1)

中断优先级 中断名称 外设中断向量 描述

4 PDPINTA 0020h 功率驱动保护中断

5 PDPINTB 0019h 功率驱动保护中断

6 ADCINT 0004h 高优先级ADC中断

7 XINT1 0001h 高优先级外中断

8 XINT2 0001h 高优先级外中断

9 SPINT 0005h 高优先级SPI中断

10 RXINT 0006h 高优先级SCI接收中断

11 TXINT 0007h 高优先级SCI发送中断

12 CANMBINT 0040h 高优先级CAN邮箱中断

13 CANERINT 0041h 高优先级CAN错误中断


作者: chuxuezhe    时间: 2009-6-23 14:50

INT2(级别2)

中断优先级 中断名称 外设中断向量 描述

14 CMP1INT 0021h 比较器1中断

15 CMP2INT 0022h 比较器2中断

16 CMP3INT 0023h 比较器3中断

17 T1PINT 0027h 定时器1周期中断

18 T1CINT 0028h 定时器1比较中断

19 T1UFINT 0029h 定时器1下溢中断

20 T1OFINT 0029h 定时器1上溢中断

21 CMP4INT 0024h 比较器4中断

22 CMP5INT 0025h 比较器5中断

23 CMP6INT 0026h 比较器6中断


作者: chuxuezhe    时间: 2009-6-23 15:14


续 INT2(级别2)

中断优先级 中断名称 外设中断向量 描述

24 T3PINT 002Fh 定时器3周期中断

25 T3CINT 0030h 定时器3比较中断

26 T3UFINT 0031h 定时器3下溢中断

27 T1OFINT 0032h 定时器3上溢中断


作者: chuxuezhe    时间: 2009-6-23 15:16


INT3(级别3)

中断优先级 中断名称 外设中断向量 描述

28 T2PINT 002Bh 定时器2周期中断

29 T2CINT 002Ch 定时器2比较中断

30 T2UFINT 002Dh 定时器2下溢中断

31 T2OFINT 002Eh 定时器2上溢中断

32 T4PINT 0039h 定时器4周期中断

33 T4CINT 003Ah 定时器4比较中断

34 T4UFINT 003Bh 定时器4下溢中断

35 T4OFINT 003Ch 定时器4上溢中断


作者: chuxuezhe    时间: 2009-6-23 15:18


INT4(级别4)

中断优先级 中断名称 外设中断向量 描述

36 CAP1INT 0033h 比较器1中断 37 CAP2INT 0034h 比较器2中断 38 CAP3INT 0035h 比较器

39 CAP4INT 0036h 比较器1中断

40 CAP5INT 0037h 比较器2中断

41 CAP6INT 0038h 比较器3中断


作者: chuxuezhe    时间: 2009-6-23 15:20

INT5(级别5)

中断优先级 中断名称 外设中断向量 描述

42 SPINT 0005h 低优先级SPI中断

43 RXINT 0006h 低优先级SCI接收中断

44 TXINT 0007h 低优先级SCI发送中断

45 CANMBINT 0040h 低优先级CAN邮箱中断

46 CANERINT 0040h 低优先级CAN错误中断


作者: chuxuezhe    时间: 2009-6-23 15:21

INT6(级别6)

中断优先级 中断名称 外设中断向量 描述

47 ADCINT 0004h 低优先级ADC中断 48 XINT1 0001h 低优先级外中断

49 XINT2 0011h 低优先级外中断

N/A TRAP 0022h 陷阱中断

N/A 假中断向量 0000h 假中断向量


作者: chuxuezhe    时间: 2009-6-23 15:22


2.4 外设中断扩展控制器

LF2407采用一个外设中断扩展(PIE)控制器来专门管

理来自各种外设或外部引脚的中断请求。下图为外

设中断扩展模块图。

具体寄存器为:PIRQR0-PIRQR2


作者: chuxuezhe    时间: 2009-6-23 15:23

PIE 数据

总线

优先级别1 INT1

IRQ REN

地址

PIRQR0 总线

INT2

优先级别2

IRQ REN

CPU

PIRQR1

优先级别6

INT6

IRQ REN

IACK

PIRQTn

PIACKRn

PIVR


作者: chuxuezhe    时间: 2009-6-23 15:23

2.4.1 中断层次

通过中断请求系统中的一个两级中断来扩展中断个数,

2407 可响应的中断个数数量很多,DSP的中断请求/

应答逻辑和中断服务程序软件都有两级层次的中断。

2.4.2 中断请求的结构

在低层次中断,从几个外设来的外设中断请求(PIRQ)

在中断控制器处进行或运算,产生一个INTn中断;在

高层次中断,从INTn中断请求产生一个到CPU的中断。

2.4.3 中断应答

外设产生中断请求后,经PIE控制器译码,决定谁被

响应,CPU通过赋予程序地址总线一个值—— 中断向

量,决定哪个中断请求被应答。


作者: chuxuezhe    时间: 2009-6-23 15:24


2.5 中断向量

为使CPU能够区别不同外设引起中断,在每个外设中断

请求有效时,都会产生一个唯一的外设中断向量,

这个外设中断向量被装载到外设中断向量寄存器

(PIVR)。

CPU响应外设中断时,从PIVR中读取相应的中断向量,

转到相关的中断服务程序入口。

LF2407 有两个向量表。

(1) CPU向量表用来获取响应CPU中断请求的一级通用

中断服务子程序(GISR)。

(2) 外设向量表用来获取响应某一特定外设事件的特

定中断服务子程序(SISR)。

GISR中的程序可读出PIVR中的值,在保存必要的上下

文之后,用PIVR中的值来产生一个转到SISR的向量。


作者: chuxuezhe    时间: 2009-6-23 15:24


2.5.1 假中断向量

假中断向量特性可以保证系统一直可靠安全地运行,

而不会进入无法预料的中断死循环中。

以下两种情况会产生假中断:

(1)CPU执行一个软件中断指令,并且指令具有一个与

外设中断(通常为INT1一INT6)相关的变量。

(2)当外设发出中断请求,但是其INTn标志位却在CPU

应答请求之前已经被清0。

在上述两种情况下,没有外设中断请求送到中断控制

器,因此控制器不知道哪个外设中断向量装入到

PIVR,此时向PIVR中装入假中断向量。


作者: chuxuezhe    时间: 2009-6-23 15:25

2.5.2 软件层次

中断服务子程序的层次有两级:通用中断服务子程序

(GISR)和特定中断服务子程序(SISR)

对于每个向CPU发送的可屏蔽高优先级中断请求(INTl

一INT6),从PIVR获取外设中断向量之前,必须在

GISR中保存必要的上下文。从外设中断向量寄存器

(PIVR)中获取外设中断向量。转移到SISR的地址入 口。

在SISR中执行对该外设事件的响应。

当程序进入中断服务程序后,所有的可屏蔽中断都被

屏蔽。GISR必须在中断被重新使能之前读取PIVR中

的值,否则在另一个中断请求发生之后,PIVR中将

装入另一个中断请求的偏移量,这将导致原外设中

断向量参数的永久丢失。

2.5.3 不可屏蔽中断

LF2407 DSP 无NMI引脚,在访问无效的地址时,不

可屏蔽中断(NMI)就会发出请求。当NMI被响应后,

程序将转到不可屏蔽中断向量入口地址0024h处。

LF2407 DSP没有与NMI相对应的控制寄存器。


作者: chuxuezhe    时间: 2009-6-23 15:26

2.5.4 全局中断使能

INTM为全局中断使能位,在初始化程序和主程序中,常常需要使用该位对DSP中断进行打开和关闭操作。

特别是初始化过程中,需要关中断,而在主程序开

始执行时,需要开中断。

SEC INTM; 关中断

CLRC INTM; 开中断

进入中断服务程序时,系统自动关闭中断,不允许在 中断服务程序中响应其他中断。

从中断服务程序返回时需要重新打开中断。


作者: chuxuezhe    时间: 2009-6-23 15:28

2.6 中断响应的流成

外设模块的中断响应流程

开始

外设中断产生

中断产生逻辑等待,

外设中断寄存器 IE位置1或IF位被软

(PR)中的中断标 件清0

志位IF置1

IE位被S/W置1

N

中断使能IE=1?

Y

向PIE控制器发送外

设中断请求

外设中断请求位置 1 ,并向INTn发送 中断请求

CPU接收INTn

[此贴子已经被作者于2009-6-23 15:28:56编辑过]


作者: chuxuezhe    时间: 2009-6-23 15:30

2.7 中断等待时间

中断响应的等待时间包括:外设同步接口时间、CPU

响应时间、ISR等待时间,分别介绍如下:

(1)外设同步接口时间是指为了响应一个PlE控制器可

以识别的中断事件,而产生一个中断请求所花的时

间和转换后将请求发送至CPU的时间。

(2)CPU的响应时间指的是CPU识别出已经被使能的中

断请求、响应中断、清除流水线、并且开始捕获来

自CPU中断向量的第一条指令所花费的时间。


作者: chuxuezhe    时间: 2009-6-23 15:30

最小的CPU的响应时间是4个CPU指令周期。如果一个

更高优先级的可屏蔽中断在最小的等待周期被请

求,该中断将被屏蔽,直到正在工作的ISR重新使

能该中断。当中断请求发生在一个不可中断的操

作期间,那么等待时间更长。例如:一个循环程

序环、一条多周期指令的执行,或处于一个等待

状态的访问期间。

(3)ISR等待时间是指为了响应产生应答的中断事件,

而到达特定中断服务程序(SlSR)所花费的时间。

该时间长短根据用户响应中断后保存上下文的不

同而有所变化。


作者: chuxuezhe    时间: 2009-6-23 15:30

2.8 CPU中断寄存器

CPU中断寄存器包括:(1)中断标志寄存器(IFR);(2)

中断屏蔽寄存器(IMR)。

2.8.1 CPU中断标志寄存器 (IFR)

IFR包含所有可屏蔽中断的标志位,用于识别和清除

挂号的中断。当一个可屏蔽中断被请求时,中断

标志寄存器的相应标志位被置1。如果对应中断屏

蔽寄存器中的中断使能位也为1,则该中断请求被

送到CPU,并设置IFR的相应位,此时该中断正被

挂号或等待响应。


作者: chuxuezhe    时间: 2009-6-23 15:31

读取IFR可以识别挂号的中断,向相应的IFR位写1将

清除已挂号的中断。

该寄存器映射到数据存储器空间为0006h。

位15-6:保留位。

位5-0 :分别为INT6-INT1的中断标志位。

0:无中断挂号,

1:表示有INTn的中断挂号。


作者: chuxuezhe    时间: 2009-6-23 15:31

2.8.2 CPU中断屏蔽寄存器(IMR)

IMR中含所有中断级(INT1-INT6)的屏蔽位,读IMR

可以识别出已屏蔽或使能的中断级,而向IMR中写,

则可屏蔽中断或使能中断。为了使能中断,应设置

相应的IMR位为1,而屏蔽中断时只需将相应的IMR

位设为0。

中断屏蔽寄存器-IMR,映射到数据存储器空间0004h。

位15-6:保留位。

位5-0:分别为INT6-INT1中断的屏蔽位。

0:中断INTn被屏蔽。

1:中断INTn被使能。


作者: chuxuezhe    时间: 2009-6-23 15:33

2.9 外设中断寄存器

外设中断寄存器包括如下几种:

外中断向量寄存器(PIVR)

外设中断请求寄存器0(PIRQ0)

外设中断请求寄存器1(PIRQ1)

外设中断请求寄存器2(PIRQ2) 与用户

外设中断应答寄存器0(PIACKR0) 无关,

编程忽略

外设中断应答寄存器(PIACKR1)

外设中断应答寄存器2(PIACKR2)

外设中断请求寄存器和外设中断应答寄存器都属于外

设中断扩展模块用来向CPU产生INT1-INT6中断请求

的内部寄存器。这些寄存器主要用于测试目的,而

不用于用户应用程序,在编程时可忽略。


作者: chuxuezhe    时间: 2009-6-23 15:33

2.10 复位和无效地址检测

2.10.1 复位

LF207 DSP器件有两个复位源:

* 一个为外部复位引脚

* 一个看门狗定时器溢出


作者: chuxuezhe    时间: 2009-6-23 15:34

2.10.2 无效地址检测

无效地址是不可执行的地址,

例如:外设存储器映射中的保留寄存器。

一旦检测到对无效地址的访问,就将系统控制和状态

寄存器1(SCSRl)中的无效地址标志位(ILLADR)置1。

无效地址检测会产生一个不可屏蔽中断(NMI)。无效

址标志位(ILLADR)在无效地址条件发生之后被置

1,并一直保持,直到软件将其清除。

通常产生无效地址访问的原因是不正确的数据页面初始化。


作者: chuxuezhe    时间: 2009-6-23 15:35

2.11 外部中断控制寄存器

控制和监视XINT1和XINT2引脚状态的两个外部中断控制寄存器为XINTlCRXINT2CR。在LF2407 中,XINTl和XINT2引脚必须被拉为低电平至少6个(或12个)CLKOUT周期才能被CPU内核识别。

1. 外部中断1控制寄存器-XINT1CR,映射到数据存储 器空间7070h。

位15:XINT1标志位。表示在XINTl引脚上是否检测到一个所选择的中断跳变,无论中断是否使能,该位都可以被置位。

当相应的中断被应答时,该位被自动清0。通过软件向

该位写1(写0无效)或者器件复位时,这位也被清0

0-没有检测到跳变

1-检测到跳变

位14-3:保留位

位2:XINTl极性。该读/写位决定了是在XINTl引脚

信号的上升沿还是下降沿产生中断。

0-在下降沿产生中断

1-在上升沿产生中断


作者: chuxuezhe    时间: 2009-6-23 15:35

位1:XINTl优先级。该读/写位决定哪一个中断优先

级被请求。

0-高优先级

1-低优先级

位0:XINTl使能位。该读/写位可使能或屏蔽外部中

断XINTl

0-屏蔽中断

1-使能中断


作者: chuxuezhe    时间: 2009-6-23 15:36

2.外部中断2控制寄存器-XINT2CR,映射到数据存储器空间7071h。

位15:XINT2标志位。该位表示在XINT2引脚上是否检 测到一个所选择的中断跳变,无论中断是否使能该位都可以被置1。当相应的中断被应答时,该位被自动清0。

0-没有检测到跳变

1-检测到跳变

软件向该位写1(写0无效)或器件复位时,该位也被清0

位14-3:保留位。


作者: chuxuezhe    时间: 2009-6-23 15:38

位2:XINT2极性。该读/写位决定了是在XINT2引脚

信号的上升沿还是下降沿产生中断。

0-在下降沿产生中断

1-在上升沿产生中断

位1:XINT2优先级。

0-高优先级

1-低优先级

位0:XINT2使能位。

0-屏蔽中断

1-使能中断


作者: chuxuezhe    时间: 2009-6-24 11:23

第3章 存储器及I/O空间

C240X芯片有16位地址线,可以访问3个独立的地址空 间,总计192K字。

* 程序存储器:64K字

* 数据存储器:64K字

* I/O空间:64K字,包含片内外设寄存器

LC:无FLASH

LF:有FLASH,

片内:单端口SARAM(共2K字)

双端口DARAM(B0块、B1块、B2块共544字)


作者: chuxuezhe    时间: 2009-6-24 11:26

改进的哈佛结构,通过3组并行地址总线访问3个空间。

(1)程序地址总线(PAB)

(2)数据读地址总线(DRAB)

(3)数据写地址总线(DWAB)

可同时访问程序和数据空间,一个周期内,CALU可执行多达3次的并行存储器操作。


作者: chuxuezhe    时间: 2009-6-24 11:29

3.1 片内存储器

3.1.1 双端口RAM(DARAM)

544个字,分为三块:B0、B1、B2。

B0作程序存储器还是作数据存储器,由寄存器ST1的

D12位 CNF 来决定:

CNF=1,B0映射到程序存储器空间

CNF=0,B0映射到数据存储器空间

DARAM: 双访问随机读/写存储器,在单个机器周期内 可被访问2次:

CPU在时钟的主相写入DARAM;在时钟的从相从DARAM读出数据;大大的提高了运行速度。


作者: chuxuezhe    时间: 2009-6-24 11:30

3.1.2 单端口RAM(SARAM) 2K字

单访问随机读/写存储器,在单个机器周期内可被访问1次。

例如,一条指令要将A的值保存,且装载一个新值到A 在SARAM中需两个时钟周期,而在DARAM中需一个时钟周期,

3.1.3 FLASH程序存储器

LF2407:16K字,映射到程序存储空间。有片内程序

存储器和片外程序存储器之分。

MP/MC*=0,选择片内Falsh存储器

MP/MC*=1,选择片外程序存储器,从片外程序存

储器开始执行程序。


作者: chuxuezhe    时间: 2009-6-24 11:32

1.FLASH程序存储器

特点:

(1)运行在3.3V电压模式;

(2)编程需在VCCP上加有5V电压;

(3)有多个向量,被保护,防止被擦除。

(4)编程由CPU实现。

2.FLASH控制方式寄存器(FCMR)占用I/O空间 FF0Fh 。可对FLASH阵列编程。

3.访问FLASH控制寄存器内有4个寄存器,控制在FLASH中的操作。


作者: chuxuezhe    时间: 2009-6-24 11:32

3.2 程序存储器

存放指令码、表格、常量

寻址空间为64K字范围。

当某一片外地址被访问时,会自动产生控制信号:PS*、

DS*、STRB*

两个因素决定程序存储器的配置

(1)CNF位

CNF=1,B0映射到程序存储器空间

CNF=0,B0映射到数据存储器空间

*脚

(2)MP/MC

MP/MC*=0,选择片内Falsh存储器0000h-7FFFh

MP/MC*=1,选择片外程序存储器0000h-7FFFh开始执行程序。


作者: chuxuezhe    时间: 2009-6-24 11:33

3.3 数据存储器

1.数据存储器映射

三块:B0、B1、B2。

B0:256个字(可设置为程序/数据存储器)

B1、B2块:只能配置为数据存储器


作者: chuxuezhe    时间: 2009-6-24 11:33

2.数据存储器页面

在直接寻址中,64K空间分为512页,具体页由状态寄

存器ST0中的9位数据页指针(DP)的值确定。

因此,在使用直接寻址指令中,必须指定数据页和7位

偏移量

9位数据页指针(DP)+ 7位偏移量

3.第0页数据地址映射

第0页(00h-7Fh)包含一些重要的寄存器:

0004h:中断屏蔽寄存器IMR。

0006h:中断标志寄存器IFR。

002Bh-002Fh:用作测试和仿真

0060h-007Fh:B2块,32个字


作者: chuxuezhe    时间: 2009-6-24 11:36

3.4 I/O空间

可寻址64K字,I/O空间映射如下。

0000h-FEFFh: 外部I/O空间

FF00h-FF0Eh: 保留

FF0Fh: FLASH控制方式寄存器

FF10h-FFFEh: 保留

FFFFh: 等待状态发生寄存器

对I/O访问和对存储器访问可用IS*信号作为标志。

用IN 或 OUT指令,此时,IS*有效,作外部I/O片选。


作者: chuxuezhe    时间: 2009-6-24 11:37

访问外部I/O, 与外部数据、程序存储器复用相同的

地址和数据总线。

数据总线宽度16位,若用8位外设,可使用高8位数据

线,也可使用低8位数据线。

访问片内I/O时,信号IS* *

和STRB 变成无效。

IN DAT7,0AFEEh;从端口AFEEh读数据到DAT7寄存器

OUT DAT7,0CFEFh;DAT7寄存器的内容输出到CEEFh

;端口寄存器

IN DAT7,0FFFFh ;将数据从等待状态发生器读入

OUT DAT7,0FFFFh ;将数据输出到等待状态发生器


作者: chuxuezhe    时间: 2009-6-24 11:54

3.5 外部存储器接口选通

程序空间 64K PS*有效

数据空间 64K DS*有效

*有效

I/O空间 64K IS

外部存储器接口信号:

A0-A15:地址线;

D0-D15:数据线;

DS*:数据空间选通;

S*:程序空间选通;

IS* :I/O空间选通;

STB*: 外部空间选通;


作者: chuxuezhe    时间: 2009-6-24 11:54

*

R/W :读写选通,指明与外围器件信号的传送方向;

W/R*/IOPC0:读选通;

WE* :写选通;

MP/MC*:微处理器/微控制器选择

VIS_OE*:可视输出可能;可视输出的方式下,外部

数据总线为输出时,该引脚有效,可用作

外部编码逻辑,以防止数据总线冲突。

ENA_144:1-使能外部接口信号;0-无外部存储

器。


作者: chuxuezhe    时间: 2009-6-24 11:54

3.6 等待状态发生器

如果采用慢速的RAM、外设芯片,须考虑与C240X芯片

的速度匹配问题,需使用READY信号、片外延迟电路

或内部等待状态产生器来添加等待状态。

3.6.1 用READY信号产生等待状态

外设通过使READY信号变为高电平,表示已准备好。若

外设未准备好,则需保持READY为低。

READY为低,LF240X等待一个CLKOUT周期。

再次检查READY,若READY信号没有被使用,LF240X将

在外部访问时把READY拉高。

READY脚可用来产生任意数目的等待状态。


作者: chuxuezhe    时间: 2009-6-24 11:55

3.6.2 用等待状态发生器产生等待状态

为控制等待状态发生器,必须写映射IO空间的FFFFh 等待状态控制寄存器。

格式如下:

位15~11:保留

位10~9: BVIS,总线可见模式,提供了跟踪内部总

线活动的方式。

00-总线可见模式关(降低功耗和噪声)

01-总线可见模式开;


作者: chuxuezhe    时间: 2009-6-24 11:56

10-数据到地址总线输出到外部地址总线;

数据到数据总线输出到外部数据总线;

11-程序到地址总线输出到外部地址总线;

数据到数据总线输出到外部数据总线。

位8~6:决定了等待状态(0~7)的数目。用于读片外

I/O空间。复位为111,为片外I/O空间的读写

设定7个等待状态。

位5~3:决定了等待状态(0~7)的数目。用于读片外

数据空间。复位为111,为片外数据空间的读

写设定7个等待状态。


作者: chuxuezhe    时间: 2009-6-24 11:56

位2~0:决定程序空间等待状态(0~7)的数目。复位

为111,设定程序空间7个等待状态。

3.7 外部存储器接口

程序存储器64K寻址空间。

当访问片内程序存储器时,PS* *

和STRB 为无效。

仅当访问片外程序存储器时,PS* * 、STRB 和数据总线 与地址总线才有效。

可选用EPROM、EEPROM、Falsh作为片外程序存储器。

选用这些芯片时,注意它们的运行速度问题。


作者: chuxuezhe    时间: 2009-6-24 11:57

与外部数据存储器的接口电路。

2407外扩16K数据存储器。

关键是控制线的连接。

DSP2407 数据存储器

DS* CS*

W/R* OE*

WE* WE* *

如外扩16K程序存储器,只需将WE 信号去掉即可。


作者: chuxuezhe    时间: 2009-6-24 11:57

与外部数据存储器的接口电路。

2407外扩16K数据存储器。

关键是控制线的连接。

DSP2407 数据存储器

DS* CS*

W/R* OE*

WE* WE*

*

如外扩16K程序存储器,只需将WE 信号去掉即可。






欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0