教材及参考书
(1) TMS320LF240XDSP硬件开发教程,江思敏,机械工业出版社。
(2) TMS320LF240XDSP应用程序设计教程,清源科技,机械工业出版社。
(3)TMS320C2000系列DSP原理及应用,张卫宁,国防工业出版社
(4) DSP技术的发展与应用,彭启宗,高等教育出版社.
(5) 数字信号处理器技术原理与开发应用,王军宁,高等教育出版社。
绪论 数字信号处理器(DSP)综述
0.1 什么是数字信号处理器数字信号处理 (Digital Signal Processing):信号的数字化和数字处理。
数字信号处理器 ——DSP。
过去受集成电路技术和数字化器件发展水平限制,只限于理论概念的讲授和仿真。
早期 -在计算机上仿真,算法实现。
现在 -在DSP上实时处理国内常用DSP一词来指数字信号处理器。
DSP最典型的应用 ——手机,可见DSP的应用市场之大。
在世界众多的DSP厂商中,德州仪器(TI) 的DSP始终占有较大的市场份额(百分之60)。
全球每10部手机中就有6部采用TI的DSP,每10部手机中就有8部嵌进TI公司的模拟芯片。
PC时代的领袖 ——Intel
信息时代的领袖 ——TI
2000年诺贝尔物理奖 —TI公司杰克-基尔比
0.2 DSP与通用计算机、单片机的区别数字信号处理的 运算特点,乘/加,及反复相乘求和
(乘积累加)
早期的计算机或微处理器的内部乘法运算是靠加法器反复移位相加实现的,需要数十个时钟周期。
而DSP设置了硬件乘法/累加器,能在单个指令周期内完成乘/加运算。
为满足FFT、卷积等数字信号处理的特殊要求,目前
DSP大多在指令系统中设置了,循环寻址,及,位倒序,寻址指令和其他特殊指令,使得 寻址、排序 的速度大大提高。
1024点复数FFT所需时间,微秒量级。
高速数据的传输能力 是高速实时处理的关键之一。
(1)新型的DSP设置了单独的 DMA总线及其控制器,
在不影响或基本不影响DSP处理速度的情况下,做并行的数据传送,传送速率可达每秒百兆字节。
(2) DSP还在 指令并行、功能单元并行、多总线、时钟频率提高 等方面不断创新和改进。
(3) DSP是专为数字信号处理所设计的。 与PC机相比,
体积小、成本低。且易于开发,易于实现嵌入式和便携式应用。
所以,DSP在 内部功能单元并行、多DSP核并行、多总线、功耗小 方面尤为突出;
通用微机(PC机)、单片机不适于用在高速数字信号处理领域中。
通用计算机(PC机):
在 大容量内存,大规模 多级高速缓存,极高的主频 和复杂的管理调度算法 方面表现明显。
例如,奔腾PC机,目前主频已达3.2GHz,主内存1GB。
它将许多大中型计算机上出现的技术应用到了芯片内部。
采用:
(1)超标量流水线结构
(2)层次化多级高速缓存
(3)实现动态执行技术和分支预测功能,大大提高指令运行的并行度,使奔腾PC机的运行速度大大提高 。
PC机的设计目的:
(1)“通用,计算,方便使用,所以,它有 大容量内存,
复杂的指令集 和 操作系统 。
(2) 体系结构对特殊类型的数据结构只能提供 通用的寻址 操作,而DSP有专门的简捷寻址机构和辅助硬件来快速完成。
PC机通常不能高效地完成许多基本的数字处理运算。
例如,乘法累加,矢量旋转,三角函数等。
许多DSP有很好的并行性,但在单处理机系统中不能有效地利用,例如神经网络、基本神经元。
单片机:
(1)为低成本控制领域而设计和开发的。位控能力强,
I/O接口种类繁多,在片上外设和控制功能丰富、价格低、使用方便占有一定的优势,但处理速度较慢。
(2)DSP具有高速并行结构及指令,而单片机没有。
DSP处理的算法的复杂度和大的数据处理流量更是单片机不可企及的。
三者各有所长,技术的发展使得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等)。
0.3 DSP芯片分类
0.3.1 三种方式分类按以下三种分类:
1.按基础特性分按工作时钟和指令类型分类。
静态DSP芯片,在某时钟频率范围内的任何时钟频率上,DSP都能正常工作,除计算速度的变化外,性能上没有下降。
一致性芯片,两种或两种以上的DSP芯片,它们的指令集和相应的引脚结构相互兼容。
2.按数据格式分定点和浮点之分。
定点:TMS320C2XX/C5X,TMS320C54X/C62XX等系列。
浮点:TMS320C3X/C4X。
不同的DSP的浮点格式不一定完全一样,如 IEEE的标准浮点格式 (莫托罗拉的MC96002),自定义的浮点格式( TMS320C3X)。
3.按用途分通用型和专用型通用型,适合普通的DSP应用专用型,为特定的DSP运算而设计,如数字卷积、数字滤波、FFT等。
0.3.2 DSP的应用自 20世纪 70年代末诞生,得到飞速发展。已广泛应用,
价格越来越低。
主要应用,
(1)信号处理,数字滤波,自适应滤波,FFT,相关运算,谱分析,卷积,模式匹配,加密,波形产生
(2)电机和机器人控制,在单片内集成多个 DSP处理器,
可采用先进的神经网络和模糊逻辑控制等人工智能算法。
机器人智能的视觉、听觉和四肢的灵活运动必须有
DSP技术支持才能实时实现。
(3)激光打印机、扫描仪和复印机,DSP不仅仅是控制,还有繁重的数字信号处理任务,如字符识别、
图像增强、色彩调整等。
(4)网络控制及传输设备,网络功能和性能的不断提高,如视频信箱、交互式电视等,要求更宽、更灵活的传输带宽,实时传输和处理数据的网络控制器、网络服务器和网关都需要 DSP的支持。
(5)通讯,调制解调器,自适应均衡,数据加密,数据压缩,扩频通信,纠错编码,传真,可视电话。
(6)语音处理,语音编码,语音合成,语音识别,语音邮件,语音存储。
(7)自动测试诊断设备及仪器仪表、虚拟仪器,现代电子系统设备中,有近百分之六十的设备及资金是用于测试设备,自动测试设备集高速数据采集、
传输、存储、实时处理于一体,又一广阔应用领域。
(8)图像处理,二维三维图形处理,图像压缩、传输与增强,动画,机器人视觉,模式识别。
( 9)军事,保密通信,雷达处理,导航,导弹制导。
如机载空 -空导弹,在有限的体积内装有红外探测仪和相应的 DSP处理部分,完成目标的自动锁定与跟踪,战斗机上的目视瞄准器和步兵头盔式微光仪,需 DSP完成图像的滤波与增强,智能化目标的搜索、捕获。
( 10)自动控制,机器人控制,磁盘控制,自动驾驶,
声控,发动机控制。
( 11)医疗仪器,助听、诊断工具、超声仪,CT、核磁共振。
(12)家用电器,数字电话,数字电视,音乐合成,音调控制,玩具与游戏,高保真音响,数字收音机、
数字电视。
(13)汽车,防滑刹车、引擎控制、伺服控制、振动分析、安全气囊的控制器、视像地图。
0.4 如何选择DSP
从本质上说,没有任何处理器能够满足所有的,或者大多数应用的需要。
DSP第一类应用,大量便宜的嵌入式系统,如手机、
硬盘和光盘驱动器(用于伺 服控制)和便携式播放器。在这些应用中,成本和集成是极为重要的。 对便携式的以电池供电的产品,功耗也极为重要 。
DSP第二类应用,处理专门的复杂算法的大量数据。
以声纳和地震探矿为例,其 产品的产量并不大,但算法非常复杂,产品的设计工作量很大,也更复杂 。
因此设计者希望使用 性能最高的、最容易使用的、
能支持多处理器配置 的方案。
DSP的选取,完全取决于应用。某种DSP对于某些应用可能是是很好的,但对于另外的应用可能很差的。
0.4.1 如何选择数据格式定点格式、浮点格式。
大多数DSP使用定点运算。有的DSP使用浮点运算。
浮点运算与定点运算相比,灵活性和数据的动态范围都比较大,因此,比较容易编程。因为浮点DSP电路更复杂,芯片也更大,所以成本和功耗也就比较大。
但在很多情况下,不需关注数据的动态范围和精度。
可考虑使用定点DSP。大多数批量生产的产品使用定点DSP,主要考虑其成本和功耗低。
程序员和算法设计者根据实际应用的要求,通过分析和仿真来确定数据的动态范围和精度,然后在需要的时候,在代码中增加定标运算。
对于需要很高动态范围和精度的应用,或在开发的容易程度比成本更重要的情况下,浮点DSP就有其优势 。
0.4.2 数据宽度所有浮点DSP为32位,大多数定点DSP是16位,但有的也使用20、24、32位数据字。
数据字的长短是影响成本的重要因素,因为它极大地影响芯片的大小、引脚数以及DSP的片外存储器的大小。
0.4.3 速度有多种方法来衡量DSP的速度。最基本的是指令周期,
即用 MIPS——每秒执行多少百万条指令 。但问题是:
不同的DSP在单个周期所完成的工作是大不相同。
使用 MOPS(每秒百万次运算) 和 MFLOPS (每秒百万次浮点运算),要十分小心。因为不同厂商的关于,运算,的概念是不同的。
其次,要注意的是,DSP的输入时钟可能和DSP的指令速率一致,也可能内部时钟加倍。
现在许多DSP是用低频的时钟,来产生片上所需的高频时钟。
0.4.4 存储器的安排关注:多次访问存储器(DARAM),哈佛结构,高速缓存,存储空间的大小。
0.4.5 开发的难易程度为减少产品成本,可使用比较便宜的开发工具。
使用何种语言编程。选择C语言、汇编语言等。用C编写用的较多。对实时性要求高的程序,仍用汇编语言编写。也有混合编写的。
消费类产品,由于成本限制,不可能使用高性能的
DSP。
0.4.6 支持多处理器雷达:高数据率和大运算量的应用系统,往往需要多个DSP,在这种情况下,DSP的连接是否容易、连接的性能,都成为重要的因素。近年推出的DSP大都非常注意增加专门的接口或DMA通道,来支持多DSP
的运行。
0.4.7 功耗和电源管理越来越多的DSP用于电池供电的便携式应用(如手机
、便携式播放器),许多DSP厂商都降低了DSP的供电电压,加强了电源管理功能。
0.4.8 成本决定DSP的价格的主要因素之一是器件封装的价格。
0.4.9 结论并不存在最好的DSP。正确的DSP选择取决于具体的应用场合。
对于一种应用来说是好的选择,对另外的应用则可能是很差的。
0.5 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级流水线结构,采用改进的哈佛结构。
片内外设及存储器,
(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
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位.
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个浮点/定点乘法器。
0.6 系统的芯片集成 ——SOC
SOC(System on Chip) 系统集成到芯片上。是下一代基于DSP产品的主要发展方向之一。
如,具有电视质量的无线电会议、家庭娱乐设施、电子游戏等。
最近,可将8个DSP核,每个具有1亿个晶体管,集成到拇指大的一块芯片上。
2010年,可将12个DSP核,每个具有5亿个晶体管,集成到一块芯片上。 相当于将今天的笔记本集成到手表大的体积内。
以移动电话为例,逐步完成了从模拟到数字式的过度,
即从第一代(1G)到第二代(2G)的过渡,在很短的时间内,从2G向2.5G和3G发展。
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。
随着科技发展,手机的功能及实现方案也在发生变化。
目前,手机还是一个封闭的、静态的、嵌入式系统的典型,主要还是为用户建立一个语音信道,这是一个固定的、实时的、集中的DSP任务。
未来的移动电话市场可能会发生分化:
传统的以语音业务为主的,会继续占有一定的市场份额。
随着互联网的发展,例如下载一个 MP3应用程序,希望手机支持一个电视会议,或变为 GPS辅助导航仪,
将具有类似于个人计算机的特性,变为一个应用平台。因此,手机的体系结构也将发生重大的变化。
0.6.2 2G手机简介与 2G手机相比,3G手机的体系结构将发生重大变化。
多媒体数据应用日益显得重要。为将实时通信功能和用户交互式分开,TI开发了的双处理器开放式多媒体应用平台。
50-100MIPS提高到500MIPS以上。未来的手机可能会采用多个DSP芯片,一个用来实现固定功能,嵌入式解调器,另外一个更加灵活的DSP芯片用来实现各种应用。
在未来的手机中,为支持各种可下载的应用,3G中使用的 DSP体系结构和软件基础结构必须不断变化,
此时,DSP将不再是具有固定功能的嵌入式处理器,
而 开始呈现出许多类似于通用处理器的特征,如 超高速指令缓冲器和内存管理单元等功能 。为实现动态任务管理,需要 实时操作系统 ( RTOS)。
第1章 TMS320LF240X系列DSP概述该系列包括:
闪存,TMS320LF2402、TMS320 LF2406、TMS320 LF2407
ROM,TMS320LC2402、TMS320 LC2404、TMS320 LC2406
最具革命性产品,LF2407/ LF2407A,是当今世界上集成度最高、性能最强的 运动控制 DSP芯片。
1.1 DSP芯片的基本结构
1.什么是DSP芯片
DSP是一种特殊结构的微处理器,快速实现各种数字信号处理算法。
2,DSP芯片的基本结构
(1) 哈佛结构-程序和数据分开的结构程序和数据存储在两个不同的空间。
通用微处理器,存储器结构为 冯.诺依曼结构 。见下图程序存储器和数据存储器 共用 一个公共的存储空间和单一的地址和数据总线。
CPU
程序 /数据存储器哈佛结构,DSP的程序存储器空间和数据存储器空间分开,即 每个存储器空间独立编址,独立访问,并具有 独立的程序总线和数据总线,取指和执行能完全重叠进行。
允许数据存放在程序存储器中,并被算术指令运算指令直接使用。
指令存储在 高速缓冲器(Cache) 中,当执行本指令时,不需再从存储器中读取指令,节省一个机器周期的时间。
(2)流水线操作功能
DSP芯片采用多组总线结构,允许CPU同时进行指令和数据的访问。因而,可在内部实行流水线操作。
执行一条指令,总要经过 取指、译码、取数、执行 运算,需要若干个指令周期才能完成。 流水线技术是将各个步骤重叠起来进行。 既第一条指令取指、译码时,第二条指令取指;第一条指令取数时,第二条指令译码,第三条指令取指,依次类推。
(3)专门的硬件乘法器和乘加指令MAC
在数字信号处理的算法中,乘法和累加是基本的大量运算,占用绝大部分的处理时间 。例如,数字滤波,卷积,相关,向量和矩阵运算中,有大量的乘和累加运算。。 PC机计算乘法需多个周期用软件实现,而DSP设置了硬件乘法器以及乘加指令
MAC,在单周期内取两个操作数一次完成。
取指 取数取指 执行译码执行执行执行取指取指译码译码译码取数取数取数
(4)特殊的处理器指令采用特殊的指令。
例如,DMOV指令,把指令的数据复制到该地址加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
三大系列,2000,5000,6000。
同一代的器件有相同的CPU结构,但片内存储器和外设配置不同。
1.3 TMS320LF240x系列 DSP控制器专为数字电机控制和其它控制系统而设计的。是当前集成度最高、性能最强的运动控制芯片。
不但有高性能的C2XX CPU内核,配置有高速数字信号处理的结构,且 有控制电机的外设 。
它将数字信号处理的高速运算功能,与面向电机的强大控制功能结合在一起,成为传统的多微处理器单元和多片系统的理想替代品。
主要用途:
(1)电机(交流伺服、直流永磁、开关磁阻)的鲁棒控制器。
(2)无刷电机的全变速控制。
(3)使用先进的算法可降低传感器的数量。
(4)汽车电子制动系统。
(5)多电机系统的单处理器控制。
(6)与控制算法处理一起完成电源开关转换的控制。
处理速度,LF240x为 30MIPS,LF240xA为 40MIPS。
240X采用诸如自适应控制、卡尔曼滤波和控制等先进的控制算法,支持多项式的高速实时算法,因而可减少力矩纹波、降低攻耗、减少振动,从而延长被控设备的寿命,为各种电机提供了高速、高效和全变速的先进控制技术。
4级流水线结构,采用改进的哈佛结构。
指令系统,信号处理指令、通用控制指令。
源代码和目标代码与24x同代产品兼容,源代码与C2x
兼容,且与C5x向上兼容。利用它的为反转变址寻址能力可进行基2的FFT运算。
片内外设及存储器等资源:
C2xx
DSP
内核
DARAM(B0)
256字
DARAM(B1)
256字
DARAM(B2)
32字
PLL时钟
10-bit ADC
具有双排序器
SCI
SPI
CAN
WD
SARAM 2K字
Flash/ROM
32K字
4K/12K/12K/4K
外部存储器接口数字I/O
与其它引脚共享
JTAG端口
事件管理器A
* 3个捕获输入
* 6个比较/PWM输出
* 2个定时器/PWM
事件管理器B
* 3个捕获输入
* 6个比较/PWM输出
* 2个定时器/PWM
XINT1/IOPA2
TMS2
MP/MC
RS
CLKOUT/IOPE0
VDD(3.3V)
VSS
TP2
TP1
VCCP(5V)
A0-A15
ENA 144
D0-D15
READY
PS,DS,IS
BIO/IOPC1
BOOT EN/XF
CAP1/QEP1/IOPA3
CAP2/QEP2/IOPA4
CAP3/IOPA5
PWM1/IOPA6
PWM2/IOPA7
TCLKINA/IOPB7
PWM3/IOPB0
PWM4/IOPB1
PWM5/IOPB2
TDIRA/IOPB6
PWM6/IOPB3
T1PWM/T1CMP/IOP
B4 T2PWM/T2CMP/IOP
B5
TCLKINB/IOPF5
TDIRB/IOPF4
T4PWM/T4CMP/IOP
F3
CAP4/QEP3/IOPF7
CAP5/QEP4/IOPF0
CAP6/IOPF1
T3PWM/T4CMP/IOP
F2
PWM12/IOPE6
PWM11/IOPE5
PWM10/IOPE4
PWM7/IOPE1
PWM9/IOPE3
PWM8/IOPE2
VIS OE
PDPINTA
R/W
RD
WE
W/R/IOPC0
STRB
PDPINTB
TRST
EMU1
TDO
TDI
TMS
TCK
EMU0
Port D(0) IOPD[0]
CANRX/IOPC7
CANTX/IOPC6
SPISTE/IOPC5
SCITXD/IOPA0
SCIRXD/IOPA1
SPISIMO/IOPC2
SPISIMI/IOPC3
SPICLK/IOPC4
VSSA
VREFHO
XINT2/ADCSOC/IOP
D0
VREFHI
ADCIN00-ADCIN07
ADCIN08-ADCIN15
VCCA
PLLF2
XTAL1/CLKIN
PLLVCCA
XTAL2
PLLF
Port A(0-7) IOPA[0:7]
Port B(0-7) IOPB[0:7]
PortF(0-7) IOPF[0:6]
PortE(0-7) IOPE[0:7]
Port C(0-7) IOPC[0:7]
(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
引脚功能介绍
TMS320LF2407A
14
4
14
3
14
2
13
8
13
9
13
7
14
1
14
0
13
6
13
5
13
4
13
3
13
2
13
0
13
1
12
9
12
8
12
7
12
6
12
5
12
4
12
3
12
2
12
1
11
1
11
0
11
5
11
4
10
9
12
0
11
9
11
8
11
2
11
3
11
6
11
7
TM
S
TD
O
TDI
TC
K
VD
D
VS
SD6
VD
D
O
VS
S
O
VS
S
O
VS
S
A
VCC
A
D5 D4 D3 D2 D1 D0
PDPINT
B
RS
IO
PF
6
XTA
L2
RE
A
DY
XTA
L
1/
CLK
IN
BO
OT
EN/XF
TCLKINB/I
O
PF
5
EN
A
144
BIO/
I
O
PC
1
MP/M
C
VR
EF
HI
AD
CIN0
8
VR
EF
LO
AD
CIN0
0
AD
CIN0
9
AD
CIN0
1
AD
CIN1
0
D7
D8
D9
TRS
T
VSS
O
VDD
O
TDIRB/IOPF
4
T4PWM/T4CMP/IO
PF3
PDPINTA
T3PWM/T3CMP/IOPF
2
PLLF2
PLLF
PLLVCCA
TDIRA/IOPD0
D10
T1PWM/T1CMP/IOPB4
D11
T2PWM/T2CMP/IOPB5
W/R/IOPC0
D12
XINT2/ADCSOC/IOPD0
D13
XINT1/IOPA2
D1
4
SCITXD/IOPA
0
SCITXD/IOPA
1
D15
VS
S
VDD
SPISIMO/IOPC2
A1
5
SPISIMI/IOPC3
SPISTE/IOPC5
A14
SPICLK/IOPC
4
TMS2
37 38 39 41 42 50 51 49 48 47 46 45 44 43 40 52 53 54 55 72 71 70 56 57 58 59 60 69 68 67 66 65 64 63 62 61
TCLKINA/IOPB7 PW
M
1
2/
IO
P
E
6
A1
3
PW
M
6
/
I
O
P
B3
VS
SO
VD
DO
A1
2
PW
M
5
/
I
O
P
B2
A1
1
PW
M
1
1I
OP
E5
PW
M
4
/
I
O
P
B1
A1
0
VS
S
VD
D
A9 PW
M
3
/
I
O
P
B0
A8 PW
M
7
/
I
O
P
E1
A5TP2PW
M
8
/
I
O
P
E2
A6PW
M
9
/
I
O
P
E3
TP1V
CCP
A7PW
M
1
/
I
O
P
A6
PW
M
2
/
I
O
P
A7
PW
M
1
0/
IO
P
E
4
CA
NT
X/I
O
PC
6
A3CA
NR
X
/
I
O
PC
7
CAP
6
/IOPF1
A4VD
DO
VS
SO
108
107
106
105
104
103
1
36
35
34
33
32
31
30
29
28
27
26
25
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
102
101
100
99
98
97
96
95
94
93
92
91
90
89
88
87
86
85
84
83
73
74
75
76
77
78
79
80
82
81
ADCIN11
ADCIN02
ADCIN12
ADCIN03
ADCIN13
ADCIN04
ADCIN05
ADCIN14
ADCIN06
ADCIN07
ADCIN15
VIS_OE
STRB
VDDO
VSSO
RD
R/W
EMU1/OFF
EMUU0
WE
DS
VDD
VSS
PS
IS
A0
A1
VDDO
VSSO
CAP3/IOPA
5
A2
CAP4/QEP3/IOPE
7
CAP1/QEP1/IOP
A3
CAP5/QEP4/IOPF
0
CAP2/QEP2/IOP
A4
CLKOUT/IOPE0
地址、数据、存储器控制信号
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)外部时钟输入模数转换器
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脚;
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脚;
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:
TDO:
TMS:
TMS2:
TRST
*
:
电源电压
VDD,内核电源电压+3.3V,数字逻辑电源电压;
VDDO,IO缓冲器电源电压+3.3V,数字逻辑和缓冲器电源电压;
VSS,内核电源地,数字参考地;
VSSO,IO缓冲器电源地,数字逻辑和缓冲器电源地;
1.4 TMS320LF240x系列 DSP存储器映射
Flash扇区0(4K)
中断向量(0000-003FH)
保留 (0040-0043H)
用户代码开始于0044H
Flash扇区 1( 12K)
Flash扇区 2( 12K)
Flash扇区 3( 4K)
SARAM(2K)
内部 (PON=1)
外部 (PON=2)
外部保留 (CNF=1)
外部 (CNF=0)
片内 DAREM(B0) (CNF=1)
外部 (CNF=0)
存储器映射寄存器 /保留地址片内 DAREM B2
非法保留片内 DAREM(B0) (CNF=1)
外部 (CNF=0)
片内 DAREM B1
保留非法
SAREM(2K)
内部 (DON=1)
外部 (DON=0)
非法外设存储器映射寄存器
(系统,WD,ADC,
SCI,
SPI,CAN,I/O,中断 )
外部外部保留
Flash控制模式寄存器保留等待状态发生器控制器寄存器(片内)
Hex
0000
0FFF
1000
3FFF
4000
6FFF
7000
7FFF
8000
87FF
8800
FDFF
FE00
FEFF
FF00
FFFF FFFF FFFF
Hex
0000
005F
0060
007F
0080
00FF
0100
01FF
0200
02FF
0300
03FF
0400
0500
04FF
07FF
0800
0FFF
1000
6FFF
7000
7FFF
8000
Hex
0000
FEFF
FF00
FF0E
FF0F
FF10
FFFE
I/O
Hex
0000
0003
0004
0005
0006
0007
005F
7000-700F
7010-701F
7020-702F
7030-703F
7040-704F
7050-705F
7200-722F
7060-706F
7070-707F
7080-708F
7090-709F
70A0-70BF
70C0-70FF
7100-710E
710F-71FF
7230-73FF
7400-7408
7411-7419
7420-7429
742C-7431
7432-743F
7500-7508
7511-7519
7520-7529
752C-7531
7532-753F
0000
Hex
005F
0060
007F
0080
00FF
0100
01FF
0200
02FF
0300
03FF
0400
04FF
0500
07FF
0800
0FFF
1000
6FFF
7000
73FF
7400
743F
7440
74FF
7500
753F
7540
77EF
77F0
77F3
77F4
77FF
7800
7FFF
8000
FFFF
存储器映射寄存器和保留片内 DARAM B2
非法保留片内 DARAM B0
片内 DARAM B1
保留非法
SARAM(2K)
非法外设帧 1 (PF1)
外设帧 2 (PF2)
非法外设帧 3 (PF3)
非法代码安全密码保留非法外部 *
保留
中断屏蔽寄存器保留中断标识寄存器仿真寄存器和保留非法系统配置和控制寄存器看门狗定时器寄存器非法
SPI
SCI
非法外部中断寄存器非法数字 I/O 控制寄存器
ADC 控制寄存器非法
CAN 控制寄存器
CAN 邮箱非法非法事件管理器 EVA
通用目标定时器寄存器比较,PWM 和死区寄存器捕获和 QEP 寄存器中断屏蔽,向量和标志寄存器非法事件管理器 EVB
通用目标定时器寄存器比较,PWM 和死区寄存器捕获和 QEP 寄存器中断屏蔽,向量和标志寄存器保留
* 表示这些地址只有 LF2407才有有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)。
1.5 TMS320LF240x系列 DSP的CPU功能模块包括:输入定标移位器、乘法器、中央算术逻辑单元
1.5,1 输入定标移位器将来自程序/数据存储器的16位数据调整为32位数据送到中央算术逻辑单元(CALU)。
作为程序/数据存储器到CALU数据传输路径的一部分
1.5,2 乘法器
16?16硬件乘法器,单周期产生一个32位有符号或无符号乘积。
1.5,3 中央算术逻辑单元 (CALU)
实现大部分的 算术 和 逻辑 运算功能。大多数只需1个机器周期。
可进行布尔运算,使高速控制器所要求的位操作很容易。
对于大动态范围,可支持浮点操作。
对大多数指令,状态寄存器 ST1的第10位 符号扩展位
(SXM)决定在计算时是否使用符号扩展:
若 SXM=0,符号扩展无效;
若 SXM=1,符号扩展有效。
1.5,4 累加器 (A CC)
有关累加器的状态位和转移指令。
(1) 进位标志位C
状态寄存器 ST1的第9位 。
(2) 溢出方式标志位OVM
状态寄存器 ST0的第11位 。决定累加器如何反映算术运算的溢出。
OVM=1,且运算溢出,A CC为下列两个特定值:
若正溢出,A CC中填最大正数:7FFF FFFFh
若负溢出,A CC中填最大负数:8000 0000h
OVM=0,ACC中的结果正常溢出。、
(3)溢出标志位OV
ST0的第12位
(4)测试/控制标志位TC
ST1的第11位,根据被测位的值置1或清0。
与累加器有关的转移指令大都取决于C、OV、TC的状态和累加器的值。
1.5,5 输出数据定标移位器将累加器输出的内容左移0-7位,而累加器的内容保持不变。
1.5,6 状态寄存器ST0和ST1
特别重要,两个寄存器的内容可被读出并保存到数据存储器( 用SST指令 ),或从数据存储器读出加载到ST0和ST1 ( 用LST指令 )。
在子程序调用或进入中断时实现CPU各种状态的保存 。
可用指令 SETC和 CLRC单独置1或清0。
ST0各位的含义:
ARP(位15-13),辅助寄存器指针,间接寻址,选择当前的辅助寄存器AR。 AR被装载时,原ARP的值被复制到ARB中。
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中。
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 ),乘积移位方式
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字的数据空间任一单元。
如何选择某一辅助寄存器?用 ARP指针装入 3位数据 。
2.辅助寄存器除可用于数据存储器的地址外,还有其他用途:
(1)利用辅助寄存器进行条件转移;
(2)利用辅助寄存器进行暂存单元;
(3)利用辅助寄存器进行软件计数。
第2章 系统配置和中断介绍系统的 配置寄存器 和有关中断,并介绍用于 增加中断请求容量 的 外设中断扩展(PIE)寄存器 。
2.1 系统配置概述系统配置和中断操作的 内容包括,系统配置寄存器、中断优先级和中断向量表、外设中断扩展控制器(PIE)、
中断向量、中断响应的流程、中断响应的时间、CPU
中断寄存器、外设中断寄存器、复位、无效地址检测、外部中断控制寄存器。
LF2407大部分的I/O口是多路复用的,复位时会被上拉为数字输入的模式。
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事件发生。
(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存储器 。
1:禁止引导ROM。TMS320LF2407片内FALSH程序存储器映射地址范围为0000h一7FFFh。
位2,(微处理器/微控制器选择)。这位反映了器件复位时MP/MC *引脚的状态。
0:器件 设置为微控制器方式,程序地址范围从
0000h一7FFFh被映射到片内
1:器件 设置为微处理器方式,程序地址范围从
0000h一7FFFh被映射到片外(必须外扩外部存储器)
位1-0,SRAM的程序/数据空间选择
0 0 地址空间不被映射,该空间被分配到外部存储器
0 l SARAM 被映射到 片内程序空间
1 0 SARAM 被映射到 片内数据空间
1 1 SARAM 被映射到 片内程序空间,又被 映射到片内数据空间
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
2.3 中断优先级和中断向量表
LF2407 DSP具有 3个不可屏蔽中断和6个可屏蔽中断 (INT1-
INT6),可 采用 中断扩展设计来满足大量外设中断需求。
每个可屏蔽中断有多个中断源,每个中断源具有唯一的中断入口地址向量。
中断源如下所示:
不可屏蔽中断(3个)
中断优先级 中断名称 外设中断向量 描述
1 Reset 0000h 复位引脚和 WD溢出
2 保留 0026h 仿真陷阱
3 NMI 0004h 软件中断
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错误中断
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中断续 INT2(级别2)
中断优先级 中断名称 外设中断向量 描述
24 T3PINT 002Fh 定时器 3周期中断
25 T3CINT 0030h 定时器 3比较中断
26 T3UFINT 0031h 定时器 3下溢中断
27 T1OFINT 0032h 定时器 3上溢中断
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上溢中断
INT4(级别4)
中断优先级 中断名称 外设中断向量 描述
36 CAP1INT 0033h 比较器 1中断
37 CAP2INT 0034h 比较器 2中断
38 CAP3INT 0035h 比较器 3中断
39 CAP4INT 0036h 比较器 1中断
40 CAP5INT 0037h 比较器 2中断
41 CAP6INT 0038h 比较器 3中断
INT5(级别5)
中断优先级 中断名称 外设中断向量 描述
42 SPINT 0005h 低优先级 SPI中断
43 RXINT 0006h 低优先级 SCI接收中断
44 TXINT 0007h 低优先级 SCI发送中断
45 CANMBINT 0040h 低优先级 CAN邮箱中断
46 CANERINT 0040h 低优先级 CAN错误中断
INT6(级别6)
中断优先级 中断名称 外设中断向量 描述
47 ADCINT 0004h 低优先级 ADC中断
48 XINT1 0001h 低优先级外中断
49 XINT2 0011h 低优先级外中断
N/A TRAP 0022h 陷阱中断
N/A 假中断向量 0000h 假中断向量
2.4 外设中断扩展控制器
LF2407采用一个 外设中断扩展(PIE)控制器 来专门管理来自各种外设或外部引脚的中断请求。下图为外设中断扩展模块图。
具体寄存器为:PIRQR0-PIRQR2
地址总线
INT6
INT2
INT1
CPU
优先级别 1
IRQ REN
优先级别 2
IRQ REN
优先级别 6
IRQ REN
数据总线
PIRQTn
PIACKRn
PIVR
PIRQR0
PIRQR1
IACK
PIE
2.4.1 中断层次通过中断请求系统中的一个两级中断来 扩展中断个数,
2407 可响应的中断个数数量很多,DSP的中断请求/
应答逻辑和中断服务程序软件都有 两级层次 的中断。
2.4.2 中断请求的结构在 低层次 中断,从几个外设来的 外设中断请求(PIRQ)
在中断控制器处进行或运算,产生一个INTn中断; 在高层次 中断,从INTn中断请求产生一个到CPU的中断。
2.4.3 中断应答外设产生中断请求后,经PIE控制器译码,决定谁被响应,CPU通过赋予程序地址总线一个值 ——中断向量,决定哪个中断请求被应答。
2.5 中断向量为使CPU能够区别不同外设引起中断,在每个外设中断请求有效时,都会 产生一个唯一的外设中断向量,
这个外设中断向量被装载到 外设中断向量寄存器
(PIVR)。
CPU响应外设中断时,从PIVR中读取相应的中断向量,
转到相关的中断服务程序入口。
LF2407 有 两个向量表 。
(1) CPU向量表 用来获取响应CPU中断请求的一级 通用中断服务子程序(GISR) 。
(2) 外设向量表 用来获取响应某一特定外设事件的 特定中断服务子程序(SISR)。
GISR中的程序可读出PIVR中的值,在保存必要的上下文之后,用PIVR中的值来产生一个转到SISR的向量。
2.5.1 假中断向量假中断向量特性可以 保证 系统一直可靠安全地运行,
而不会进入无法预料的中断死循环中。
以下两种情况会产生假中断:
(1)CPU执行一个软件中断指令,并且指令具有一个与外设中断(通常为INT1一INT6)相关的变量。
(2)当外设发出中断请求,但是其 INTn标志位却在CPU
应答请求之前已经被清0。
在上述两种情况下,没有外设中断请求送到中断控制器,因此控制器不知道哪个外设中断向量装入到
PIVR,此时向PIVR中装入假中断向量。
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相对应的控制寄存器。
2.5.4 全局中断使能
INTM为全局中断使能位,在初始化程序和主程序中,
常常需要使用该位对DSP中断进行打开和关闭操作。
特别是初始化过程中,需要 关中断,而在主程序开始执行时,需要 开中断 。
SETC INTM; 关中断
CLRC INTM; 开中断进入中断服务程序时,系统自动关闭中断,不允许在中断服务程序中响应其他中断。
从中断服务程序返回时需要重新打开中断。
2.6 中断响应的流程外设模块的中断响应流程开始外设中断产生外设中断寄存器
(PR)中的中断标志位IF置1
中断使能IE=1?
中断产生逻辑等待,
IE位置1或IF位被软件清0
IE位被S/W置1
N
Y
转下页向PIE控制器发送外设中断请求外设中断请求位置
1,并向INTn发送中断请求
CPU接收INTn
接上页
2.7 中断等待时间中断响应的等待时间包括,外设同步接口时间、CPU
响应时间、ISR等待时间,分别介绍如下:
(1)外设同步接口时间 是指为了响应一个PlE控制器可以识别的中断事件,而产生一个中断请求所花的时间和转换后将请求发送至CPU的时间。
(2) CPU的响应时间 指的是CPU识别出已经被使能的中断请求、响应中断、清除流水线、并且开始捕获来自CPU中断向量的第一条指令所花费的时间。
最小的CPU的响应时间是4个CPU指令周期 。 如果一个更高优先级的可屏蔽中断在最小的等待周期被请求,该中断将被屏蔽,直到正在工作的ISR重新使能该中断。 当中断请求发生在一个不可中断的操作期间,那么等待时间更长。 例如,一个循环程序环、一条多周期指令的执行,或处于一个等待状态的访问期间。
(3)ISR等待时间 是指为了响应产生应答的中断事件,
而到达特定中断服务程序(SlSR)所花费的时间。
该时间长短根据用户响应中断后保存上下文的不同而有所变化。
2.8 CPU中断寄存器
CPU中断寄存器包括,(1)中断标志寄存器(IFR);(2)
中断屏蔽寄存器(IMR)。
2.8.1 CPU中断标志寄存器 (IFR)
IFR包含所有可屏蔽中断的标志位,用于识别和清除挂号的中断。当一个可屏蔽中断被请求时,中断标志寄存器的相应标志位被置1。如果对应中断屏蔽寄存器中的中断使能位也为1,则该中断请求被送到CPU,并设置IFR的相应位,此时该中断正被挂号或等待响应。
读取IFR可以识别挂号的中断,向相应的IFR位写1将清除已挂号的中断。
该寄存器映射到 数据存储器空间为 0006h。
位15-6,保留位。
位5-0,分别为INT6-INT1的中断标志位。
0:无中断挂号,
1:表示有INTn的中断挂号。
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被使能。
2.9 外设中断寄存器外设中断寄存器包括如下几种:
(1) TMS320LF240XDSP硬件开发教程,江思敏,机械工业出版社。
(2) TMS320LF240XDSP应用程序设计教程,清源科技,机械工业出版社。
(3)TMS320C2000系列DSP原理及应用,张卫宁,国防工业出版社
(4) DSP技术的发展与应用,彭启宗,高等教育出版社.
(5) 数字信号处理器技术原理与开发应用,王军宁,高等教育出版社。
绪论 数字信号处理器(DSP)综述
0.1 什么是数字信号处理器数字信号处理 (Digital Signal Processing):信号的数字化和数字处理。
数字信号处理器 ——DSP。
过去受集成电路技术和数字化器件发展水平限制,只限于理论概念的讲授和仿真。
早期 -在计算机上仿真,算法实现。
现在 -在DSP上实时处理国内常用DSP一词来指数字信号处理器。
DSP最典型的应用 ——手机,可见DSP的应用市场之大。
在世界众多的DSP厂商中,德州仪器(TI) 的DSP始终占有较大的市场份额(百分之60)。
全球每10部手机中就有6部采用TI的DSP,每10部手机中就有8部嵌进TI公司的模拟芯片。
PC时代的领袖 ——Intel
信息时代的领袖 ——TI
2000年诺贝尔物理奖 —TI公司杰克-基尔比
0.2 DSP与通用计算机、单片机的区别数字信号处理的 运算特点,乘/加,及反复相乘求和
(乘积累加)
早期的计算机或微处理器的内部乘法运算是靠加法器反复移位相加实现的,需要数十个时钟周期。
而DSP设置了硬件乘法/累加器,能在单个指令周期内完成乘/加运算。
为满足FFT、卷积等数字信号处理的特殊要求,目前
DSP大多在指令系统中设置了,循环寻址,及,位倒序,寻址指令和其他特殊指令,使得 寻址、排序 的速度大大提高。
1024点复数FFT所需时间,微秒量级。
高速数据的传输能力 是高速实时处理的关键之一。
(1)新型的DSP设置了单独的 DMA总线及其控制器,
在不影响或基本不影响DSP处理速度的情况下,做并行的数据传送,传送速率可达每秒百兆字节。
(2) DSP还在 指令并行、功能单元并行、多总线、时钟频率提高 等方面不断创新和改进。
(3) DSP是专为数字信号处理所设计的。 与PC机相比,
体积小、成本低。且易于开发,易于实现嵌入式和便携式应用。
所以,DSP在 内部功能单元并行、多DSP核并行、多总线、功耗小 方面尤为突出;
通用微机(PC机)、单片机不适于用在高速数字信号处理领域中。
通用计算机(PC机):
在 大容量内存,大规模 多级高速缓存,极高的主频 和复杂的管理调度算法 方面表现明显。
例如,奔腾PC机,目前主频已达3.2GHz,主内存1GB。
它将许多大中型计算机上出现的技术应用到了芯片内部。
采用:
(1)超标量流水线结构
(2)层次化多级高速缓存
(3)实现动态执行技术和分支预测功能,大大提高指令运行的并行度,使奔腾PC机的运行速度大大提高 。
PC机的设计目的:
(1)“通用,计算,方便使用,所以,它有 大容量内存,
复杂的指令集 和 操作系统 。
(2) 体系结构对特殊类型的数据结构只能提供 通用的寻址 操作,而DSP有专门的简捷寻址机构和辅助硬件来快速完成。
PC机通常不能高效地完成许多基本的数字处理运算。
例如,乘法累加,矢量旋转,三角函数等。
许多DSP有很好的并行性,但在单处理机系统中不能有效地利用,例如神经网络、基本神经元。
单片机:
(1)为低成本控制领域而设计和开发的。位控能力强,
I/O接口种类繁多,在片上外设和控制功能丰富、价格低、使用方便占有一定的优势,但处理速度较慢。
(2)DSP具有高速并行结构及指令,而单片机没有。
DSP处理的算法的复杂度和大的数据处理流量更是单片机不可企及的。
三者各有所长,技术的发展使得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等)。
0.3 DSP芯片分类
0.3.1 三种方式分类按以下三种分类:
1.按基础特性分按工作时钟和指令类型分类。
静态DSP芯片,在某时钟频率范围内的任何时钟频率上,DSP都能正常工作,除计算速度的变化外,性能上没有下降。
一致性芯片,两种或两种以上的DSP芯片,它们的指令集和相应的引脚结构相互兼容。
2.按数据格式分定点和浮点之分。
定点:TMS320C2XX/C5X,TMS320C54X/C62XX等系列。
浮点:TMS320C3X/C4X。
不同的DSP的浮点格式不一定完全一样,如 IEEE的标准浮点格式 (莫托罗拉的MC96002),自定义的浮点格式( TMS320C3X)。
3.按用途分通用型和专用型通用型,适合普通的DSP应用专用型,为特定的DSP运算而设计,如数字卷积、数字滤波、FFT等。
0.3.2 DSP的应用自 20世纪 70年代末诞生,得到飞速发展。已广泛应用,
价格越来越低。
主要应用,
(1)信号处理,数字滤波,自适应滤波,FFT,相关运算,谱分析,卷积,模式匹配,加密,波形产生
(2)电机和机器人控制,在单片内集成多个 DSP处理器,
可采用先进的神经网络和模糊逻辑控制等人工智能算法。
机器人智能的视觉、听觉和四肢的灵活运动必须有
DSP技术支持才能实时实现。
(3)激光打印机、扫描仪和复印机,DSP不仅仅是控制,还有繁重的数字信号处理任务,如字符识别、
图像增强、色彩调整等。
(4)网络控制及传输设备,网络功能和性能的不断提高,如视频信箱、交互式电视等,要求更宽、更灵活的传输带宽,实时传输和处理数据的网络控制器、网络服务器和网关都需要 DSP的支持。
(5)通讯,调制解调器,自适应均衡,数据加密,数据压缩,扩频通信,纠错编码,传真,可视电话。
(6)语音处理,语音编码,语音合成,语音识别,语音邮件,语音存储。
(7)自动测试诊断设备及仪器仪表、虚拟仪器,现代电子系统设备中,有近百分之六十的设备及资金是用于测试设备,自动测试设备集高速数据采集、
传输、存储、实时处理于一体,又一广阔应用领域。
(8)图像处理,二维三维图形处理,图像压缩、传输与增强,动画,机器人视觉,模式识别。
( 9)军事,保密通信,雷达处理,导航,导弹制导。
如机载空 -空导弹,在有限的体积内装有红外探测仪和相应的 DSP处理部分,完成目标的自动锁定与跟踪,战斗机上的目视瞄准器和步兵头盔式微光仪,需 DSP完成图像的滤波与增强,智能化目标的搜索、捕获。
( 10)自动控制,机器人控制,磁盘控制,自动驾驶,
声控,发动机控制。
( 11)医疗仪器,助听、诊断工具、超声仪,CT、核磁共振。
(12)家用电器,数字电话,数字电视,音乐合成,音调控制,玩具与游戏,高保真音响,数字收音机、
数字电视。
(13)汽车,防滑刹车、引擎控制、伺服控制、振动分析、安全气囊的控制器、视像地图。
0.4 如何选择DSP
从本质上说,没有任何处理器能够满足所有的,或者大多数应用的需要。
DSP第一类应用,大量便宜的嵌入式系统,如手机、
硬盘和光盘驱动器(用于伺 服控制)和便携式播放器。在这些应用中,成本和集成是极为重要的。 对便携式的以电池供电的产品,功耗也极为重要 。
DSP第二类应用,处理专门的复杂算法的大量数据。
以声纳和地震探矿为例,其 产品的产量并不大,但算法非常复杂,产品的设计工作量很大,也更复杂 。
因此设计者希望使用 性能最高的、最容易使用的、
能支持多处理器配置 的方案。
DSP的选取,完全取决于应用。某种DSP对于某些应用可能是是很好的,但对于另外的应用可能很差的。
0.4.1 如何选择数据格式定点格式、浮点格式。
大多数DSP使用定点运算。有的DSP使用浮点运算。
浮点运算与定点运算相比,灵活性和数据的动态范围都比较大,因此,比较容易编程。因为浮点DSP电路更复杂,芯片也更大,所以成本和功耗也就比较大。
但在很多情况下,不需关注数据的动态范围和精度。
可考虑使用定点DSP。大多数批量生产的产品使用定点DSP,主要考虑其成本和功耗低。
程序员和算法设计者根据实际应用的要求,通过分析和仿真来确定数据的动态范围和精度,然后在需要的时候,在代码中增加定标运算。
对于需要很高动态范围和精度的应用,或在开发的容易程度比成本更重要的情况下,浮点DSP就有其优势 。
0.4.2 数据宽度所有浮点DSP为32位,大多数定点DSP是16位,但有的也使用20、24、32位数据字。
数据字的长短是影响成本的重要因素,因为它极大地影响芯片的大小、引脚数以及DSP的片外存储器的大小。
0.4.3 速度有多种方法来衡量DSP的速度。最基本的是指令周期,
即用 MIPS——每秒执行多少百万条指令 。但问题是:
不同的DSP在单个周期所完成的工作是大不相同。
使用 MOPS(每秒百万次运算) 和 MFLOPS (每秒百万次浮点运算),要十分小心。因为不同厂商的关于,运算,的概念是不同的。
其次,要注意的是,DSP的输入时钟可能和DSP的指令速率一致,也可能内部时钟加倍。
现在许多DSP是用低频的时钟,来产生片上所需的高频时钟。
0.4.4 存储器的安排关注:多次访问存储器(DARAM),哈佛结构,高速缓存,存储空间的大小。
0.4.5 开发的难易程度为减少产品成本,可使用比较便宜的开发工具。
使用何种语言编程。选择C语言、汇编语言等。用C编写用的较多。对实时性要求高的程序,仍用汇编语言编写。也有混合编写的。
消费类产品,由于成本限制,不可能使用高性能的
DSP。
0.4.6 支持多处理器雷达:高数据率和大运算量的应用系统,往往需要多个DSP,在这种情况下,DSP的连接是否容易、连接的性能,都成为重要的因素。近年推出的DSP大都非常注意增加专门的接口或DMA通道,来支持多DSP
的运行。
0.4.7 功耗和电源管理越来越多的DSP用于电池供电的便携式应用(如手机
、便携式播放器),许多DSP厂商都降低了DSP的供电电压,加强了电源管理功能。
0.4.8 成本决定DSP的价格的主要因素之一是器件封装的价格。
0.4.9 结论并不存在最好的DSP。正确的DSP选择取决于具体的应用场合。
对于一种应用来说是好的选择,对另外的应用则可能是很差的。
0.5 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级流水线结构,采用改进的哈佛结构。
片内外设及存储器,
(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
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位.
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个浮点/定点乘法器。
0.6 系统的芯片集成 ——SOC
SOC(System on Chip) 系统集成到芯片上。是下一代基于DSP产品的主要发展方向之一。
如,具有电视质量的无线电会议、家庭娱乐设施、电子游戏等。
最近,可将8个DSP核,每个具有1亿个晶体管,集成到拇指大的一块芯片上。
2010年,可将12个DSP核,每个具有5亿个晶体管,集成到一块芯片上。 相当于将今天的笔记本集成到手表大的体积内。
以移动电话为例,逐步完成了从模拟到数字式的过度,
即从第一代(1G)到第二代(2G)的过渡,在很短的时间内,从2G向2.5G和3G发展。
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。
随着科技发展,手机的功能及实现方案也在发生变化。
目前,手机还是一个封闭的、静态的、嵌入式系统的典型,主要还是为用户建立一个语音信道,这是一个固定的、实时的、集中的DSP任务。
未来的移动电话市场可能会发生分化:
传统的以语音业务为主的,会继续占有一定的市场份额。
随着互联网的发展,例如下载一个 MP3应用程序,希望手机支持一个电视会议,或变为 GPS辅助导航仪,
将具有类似于个人计算机的特性,变为一个应用平台。因此,手机的体系结构也将发生重大的变化。
0.6.2 2G手机简介与 2G手机相比,3G手机的体系结构将发生重大变化。
多媒体数据应用日益显得重要。为将实时通信功能和用户交互式分开,TI开发了的双处理器开放式多媒体应用平台。
50-100MIPS提高到500MIPS以上。未来的手机可能会采用多个DSP芯片,一个用来实现固定功能,嵌入式解调器,另外一个更加灵活的DSP芯片用来实现各种应用。
在未来的手机中,为支持各种可下载的应用,3G中使用的 DSP体系结构和软件基础结构必须不断变化,
此时,DSP将不再是具有固定功能的嵌入式处理器,
而 开始呈现出许多类似于通用处理器的特征,如 超高速指令缓冲器和内存管理单元等功能 。为实现动态任务管理,需要 实时操作系统 ( RTOS)。
第1章 TMS320LF240X系列DSP概述该系列包括:
闪存,TMS320LF2402、TMS320 LF2406、TMS320 LF2407
ROM,TMS320LC2402、TMS320 LC2404、TMS320 LC2406
最具革命性产品,LF2407/ LF2407A,是当今世界上集成度最高、性能最强的 运动控制 DSP芯片。
1.1 DSP芯片的基本结构
1.什么是DSP芯片
DSP是一种特殊结构的微处理器,快速实现各种数字信号处理算法。
2,DSP芯片的基本结构
(1) 哈佛结构-程序和数据分开的结构程序和数据存储在两个不同的空间。
通用微处理器,存储器结构为 冯.诺依曼结构 。见下图程序存储器和数据存储器 共用 一个公共的存储空间和单一的地址和数据总线。
CPU
程序 /数据存储器哈佛结构,DSP的程序存储器空间和数据存储器空间分开,即 每个存储器空间独立编址,独立访问,并具有 独立的程序总线和数据总线,取指和执行能完全重叠进行。
允许数据存放在程序存储器中,并被算术指令运算指令直接使用。
指令存储在 高速缓冲器(Cache) 中,当执行本指令时,不需再从存储器中读取指令,节省一个机器周期的时间。
(2)流水线操作功能
DSP芯片采用多组总线结构,允许CPU同时进行指令和数据的访问。因而,可在内部实行流水线操作。
执行一条指令,总要经过 取指、译码、取数、执行 运算,需要若干个指令周期才能完成。 流水线技术是将各个步骤重叠起来进行。 既第一条指令取指、译码时,第二条指令取指;第一条指令取数时,第二条指令译码,第三条指令取指,依次类推。
(3)专门的硬件乘法器和乘加指令MAC
在数字信号处理的算法中,乘法和累加是基本的大量运算,占用绝大部分的处理时间 。例如,数字滤波,卷积,相关,向量和矩阵运算中,有大量的乘和累加运算。。 PC机计算乘法需多个周期用软件实现,而DSP设置了硬件乘法器以及乘加指令
MAC,在单周期内取两个操作数一次完成。
取指 取数取指 执行译码执行执行执行取指取指译码译码译码取数取数取数
(4)特殊的处理器指令采用特殊的指令。
例如,DMOV指令,把指令的数据复制到该地址加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
三大系列,2000,5000,6000。
同一代的器件有相同的CPU结构,但片内存储器和外设配置不同。
1.3 TMS320LF240x系列 DSP控制器专为数字电机控制和其它控制系统而设计的。是当前集成度最高、性能最强的运动控制芯片。
不但有高性能的C2XX CPU内核,配置有高速数字信号处理的结构,且 有控制电机的外设 。
它将数字信号处理的高速运算功能,与面向电机的强大控制功能结合在一起,成为传统的多微处理器单元和多片系统的理想替代品。
主要用途:
(1)电机(交流伺服、直流永磁、开关磁阻)的鲁棒控制器。
(2)无刷电机的全变速控制。
(3)使用先进的算法可降低传感器的数量。
(4)汽车电子制动系统。
(5)多电机系统的单处理器控制。
(6)与控制算法处理一起完成电源开关转换的控制。
处理速度,LF240x为 30MIPS,LF240xA为 40MIPS。
240X采用诸如自适应控制、卡尔曼滤波和控制等先进的控制算法,支持多项式的高速实时算法,因而可减少力矩纹波、降低攻耗、减少振动,从而延长被控设备的寿命,为各种电机提供了高速、高效和全变速的先进控制技术。
4级流水线结构,采用改进的哈佛结构。
指令系统,信号处理指令、通用控制指令。
源代码和目标代码与24x同代产品兼容,源代码与C2x
兼容,且与C5x向上兼容。利用它的为反转变址寻址能力可进行基2的FFT运算。
片内外设及存储器等资源:
C2xx
DSP
内核
DARAM(B0)
256字
DARAM(B1)
256字
DARAM(B2)
32字
PLL时钟
10-bit ADC
具有双排序器
SCI
SPI
CAN
WD
SARAM 2K字
Flash/ROM
32K字
4K/12K/12K/4K
外部存储器接口数字I/O
与其它引脚共享
JTAG端口
事件管理器A
* 3个捕获输入
* 6个比较/PWM输出
* 2个定时器/PWM
事件管理器B
* 3个捕获输入
* 6个比较/PWM输出
* 2个定时器/PWM
XINT1/IOPA2
TMS2
MP/MC
RS
CLKOUT/IOPE0
VDD(3.3V)
VSS
TP2
TP1
VCCP(5V)
A0-A15
ENA 144
D0-D15
READY
PS,DS,IS
BIO/IOPC1
BOOT EN/XF
CAP1/QEP1/IOPA3
CAP2/QEP2/IOPA4
CAP3/IOPA5
PWM1/IOPA6
PWM2/IOPA7
TCLKINA/IOPB7
PWM3/IOPB0
PWM4/IOPB1
PWM5/IOPB2
TDIRA/IOPB6
PWM6/IOPB3
T1PWM/T1CMP/IOP
B4 T2PWM/T2CMP/IOP
B5
TCLKINB/IOPF5
TDIRB/IOPF4
T4PWM/T4CMP/IOP
F3
CAP4/QEP3/IOPF7
CAP5/QEP4/IOPF0
CAP6/IOPF1
T3PWM/T4CMP/IOP
F2
PWM12/IOPE6
PWM11/IOPE5
PWM10/IOPE4
PWM7/IOPE1
PWM9/IOPE3
PWM8/IOPE2
VIS OE
PDPINTA
R/W
RD
WE
W/R/IOPC0
STRB
PDPINTB
TRST
EMU1
TDO
TDI
TMS
TCK
EMU0
Port D(0) IOPD[0]
CANRX/IOPC7
CANTX/IOPC6
SPISTE/IOPC5
SCITXD/IOPA0
SCIRXD/IOPA1
SPISIMO/IOPC2
SPISIMI/IOPC3
SPICLK/IOPC4
VSSA
VREFHO
XINT2/ADCSOC/IOP
D0
VREFHI
ADCIN00-ADCIN07
ADCIN08-ADCIN15
VCCA
PLLF2
XTAL1/CLKIN
PLLVCCA
XTAL2
PLLF
Port A(0-7) IOPA[0:7]
Port B(0-7) IOPB[0:7]
PortF(0-7) IOPF[0:6]
PortE(0-7) IOPE[0:7]
Port C(0-7) IOPC[0:7]
(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
引脚功能介绍
TMS320LF2407A
14
4
14
3
14
2
13
8
13
9
13
7
14
1
14
0
13
6
13
5
13
4
13
3
13
2
13
0
13
1
12
9
12
8
12
7
12
6
12
5
12
4
12
3
12
2
12
1
11
1
11
0
11
5
11
4
10
9
12
0
11
9
11
8
11
2
11
3
11
6
11
7
TM
S
TD
O
TDI
TC
K
VD
D
VS
SD6
VD
D
O
VS
S
O
VS
S
O
VS
S
A
VCC
A
D5 D4 D3 D2 D1 D0
PDPINT
B
RS
IO
PF
6
XTA
L2
RE
A
DY
XTA
L
1/
CLK
IN
BO
OT
EN/XF
TCLKINB/I
O
PF
5
EN
A
144
BIO/
I
O
PC
1
MP/M
C
VR
EF
HI
AD
CIN0
8
VR
EF
LO
AD
CIN0
0
AD
CIN0
9
AD
CIN0
1
AD
CIN1
0
D7
D8
D9
TRS
T
VSS
O
VDD
O
TDIRB/IOPF
4
T4PWM/T4CMP/IO
PF3
PDPINTA
T3PWM/T3CMP/IOPF
2
PLLF2
PLLF
PLLVCCA
TDIRA/IOPD0
D10
T1PWM/T1CMP/IOPB4
D11
T2PWM/T2CMP/IOPB5
W/R/IOPC0
D12
XINT2/ADCSOC/IOPD0
D13
XINT1/IOPA2
D1
4
SCITXD/IOPA
0
SCITXD/IOPA
1
D15
VS
S
VDD
SPISIMO/IOPC2
A1
5
SPISIMI/IOPC3
SPISTE/IOPC5
A14
SPICLK/IOPC
4
TMS2
37 38 39 41 42 50 51 49 48 47 46 45 44 43 40 52 53 54 55 72 71 70 56 57 58 59 60 69 68 67 66 65 64 63 62 61
TCLKINA/IOPB7 PW
M
1
2/
IO
P
E
6
A1
3
PW
M
6
/
I
O
P
B3
VS
SO
VD
DO
A1
2
PW
M
5
/
I
O
P
B2
A1
1
PW
M
1
1I
OP
E5
PW
M
4
/
I
O
P
B1
A1
0
VS
S
VD
D
A9 PW
M
3
/
I
O
P
B0
A8 PW
M
7
/
I
O
P
E1
A5TP2PW
M
8
/
I
O
P
E2
A6PW
M
9
/
I
O
P
E3
TP1V
CCP
A7PW
M
1
/
I
O
P
A6
PW
M
2
/
I
O
P
A7
PW
M
1
0/
IO
P
E
4
CA
NT
X/I
O
PC
6
A3CA
NR
X
/
I
O
PC
7
CAP
6
/IOPF1
A4VD
DO
VS
SO
108
107
106
105
104
103
1
36
35
34
33
32
31
30
29
28
27
26
25
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
102
101
100
99
98
97
96
95
94
93
92
91
90
89
88
87
86
85
84
83
73
74
75
76
77
78
79
80
82
81
ADCIN11
ADCIN02
ADCIN12
ADCIN03
ADCIN13
ADCIN04
ADCIN05
ADCIN14
ADCIN06
ADCIN07
ADCIN15
VIS_OE
STRB
VDDO
VSSO
RD
R/W
EMU1/OFF
EMUU0
WE
DS
VDD
VSS
PS
IS
A0
A1
VDDO
VSSO
CAP3/IOPA
5
A2
CAP4/QEP3/IOPE
7
CAP1/QEP1/IOP
A3
CAP5/QEP4/IOPF
0
CAP2/QEP2/IOP
A4
CLKOUT/IOPE0
地址、数据、存储器控制信号
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)外部时钟输入模数转换器
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脚;
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脚;
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:
TDO:
TMS:
TMS2:
TRST
*
:
电源电压
VDD,内核电源电压+3.3V,数字逻辑电源电压;
VDDO,IO缓冲器电源电压+3.3V,数字逻辑和缓冲器电源电压;
VSS,内核电源地,数字参考地;
VSSO,IO缓冲器电源地,数字逻辑和缓冲器电源地;
1.4 TMS320LF240x系列 DSP存储器映射
Flash扇区0(4K)
中断向量(0000-003FH)
保留 (0040-0043H)
用户代码开始于0044H
Flash扇区 1( 12K)
Flash扇区 2( 12K)
Flash扇区 3( 4K)
SARAM(2K)
内部 (PON=1)
外部 (PON=2)
外部保留 (CNF=1)
外部 (CNF=0)
片内 DAREM(B0) (CNF=1)
外部 (CNF=0)
存储器映射寄存器 /保留地址片内 DAREM B2
非法保留片内 DAREM(B0) (CNF=1)
外部 (CNF=0)
片内 DAREM B1
保留非法
SAREM(2K)
内部 (DON=1)
外部 (DON=0)
非法外设存储器映射寄存器
(系统,WD,ADC,
SCI,
SPI,CAN,I/O,中断 )
外部外部保留
Flash控制模式寄存器保留等待状态发生器控制器寄存器(片内)
Hex
0000
0FFF
1000
3FFF
4000
6FFF
7000
7FFF
8000
87FF
8800
FDFF
FE00
FEFF
FF00
FFFF FFFF FFFF
Hex
0000
005F
0060
007F
0080
00FF
0100
01FF
0200
02FF
0300
03FF
0400
0500
04FF
07FF
0800
0FFF
1000
6FFF
7000
7FFF
8000
Hex
0000
FEFF
FF00
FF0E
FF0F
FF10
FFFE
I/O
Hex
0000
0003
0004
0005
0006
0007
005F
7000-700F
7010-701F
7020-702F
7030-703F
7040-704F
7050-705F
7200-722F
7060-706F
7070-707F
7080-708F
7090-709F
70A0-70BF
70C0-70FF
7100-710E
710F-71FF
7230-73FF
7400-7408
7411-7419
7420-7429
742C-7431
7432-743F
7500-7508
7511-7519
7520-7529
752C-7531
7532-753F
0000
Hex
005F
0060
007F
0080
00FF
0100
01FF
0200
02FF
0300
03FF
0400
04FF
0500
07FF
0800
0FFF
1000
6FFF
7000
73FF
7400
743F
7440
74FF
7500
753F
7540
77EF
77F0
77F3
77F4
77FF
7800
7FFF
8000
FFFF
存储器映射寄存器和保留片内 DARAM B2
非法保留片内 DARAM B0
片内 DARAM B1
保留非法
SARAM(2K)
非法外设帧 1 (PF1)
外设帧 2 (PF2)
非法外设帧 3 (PF3)
非法代码安全密码保留非法外部 *
保留
中断屏蔽寄存器保留中断标识寄存器仿真寄存器和保留非法系统配置和控制寄存器看门狗定时器寄存器非法
SPI
SCI
非法外部中断寄存器非法数字 I/O 控制寄存器
ADC 控制寄存器非法
CAN 控制寄存器
CAN 邮箱非法非法事件管理器 EVA
通用目标定时器寄存器比较,PWM 和死区寄存器捕获和 QEP 寄存器中断屏蔽,向量和标志寄存器非法事件管理器 EVB
通用目标定时器寄存器比较,PWM 和死区寄存器捕获和 QEP 寄存器中断屏蔽,向量和标志寄存器保留
* 表示这些地址只有 LF2407才有有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)。
1.5 TMS320LF240x系列 DSP的CPU功能模块包括:输入定标移位器、乘法器、中央算术逻辑单元
1.5,1 输入定标移位器将来自程序/数据存储器的16位数据调整为32位数据送到中央算术逻辑单元(CALU)。
作为程序/数据存储器到CALU数据传输路径的一部分
1.5,2 乘法器
16?16硬件乘法器,单周期产生一个32位有符号或无符号乘积。
1.5,3 中央算术逻辑单元 (CALU)
实现大部分的 算术 和 逻辑 运算功能。大多数只需1个机器周期。
可进行布尔运算,使高速控制器所要求的位操作很容易。
对于大动态范围,可支持浮点操作。
对大多数指令,状态寄存器 ST1的第10位 符号扩展位
(SXM)决定在计算时是否使用符号扩展:
若 SXM=0,符号扩展无效;
若 SXM=1,符号扩展有效。
1.5,4 累加器 (A CC)
有关累加器的状态位和转移指令。
(1) 进位标志位C
状态寄存器 ST1的第9位 。
(2) 溢出方式标志位OVM
状态寄存器 ST0的第11位 。决定累加器如何反映算术运算的溢出。
OVM=1,且运算溢出,A CC为下列两个特定值:
若正溢出,A CC中填最大正数:7FFF FFFFh
若负溢出,A CC中填最大负数:8000 0000h
OVM=0,ACC中的结果正常溢出。、
(3)溢出标志位OV
ST0的第12位
(4)测试/控制标志位TC
ST1的第11位,根据被测位的值置1或清0。
与累加器有关的转移指令大都取决于C、OV、TC的状态和累加器的值。
1.5,5 输出数据定标移位器将累加器输出的内容左移0-7位,而累加器的内容保持不变。
1.5,6 状态寄存器ST0和ST1
特别重要,两个寄存器的内容可被读出并保存到数据存储器( 用SST指令 ),或从数据存储器读出加载到ST0和ST1 ( 用LST指令 )。
在子程序调用或进入中断时实现CPU各种状态的保存 。
可用指令 SETC和 CLRC单独置1或清0。
ST0各位的含义:
ARP(位15-13),辅助寄存器指针,间接寻址,选择当前的辅助寄存器AR。 AR被装载时,原ARP的值被复制到ARB中。
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中。
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 ),乘积移位方式
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字的数据空间任一单元。
如何选择某一辅助寄存器?用 ARP指针装入 3位数据 。
2.辅助寄存器除可用于数据存储器的地址外,还有其他用途:
(1)利用辅助寄存器进行条件转移;
(2)利用辅助寄存器进行暂存单元;
(3)利用辅助寄存器进行软件计数。
第2章 系统配置和中断介绍系统的 配置寄存器 和有关中断,并介绍用于 增加中断请求容量 的 外设中断扩展(PIE)寄存器 。
2.1 系统配置概述系统配置和中断操作的 内容包括,系统配置寄存器、中断优先级和中断向量表、外设中断扩展控制器(PIE)、
中断向量、中断响应的流程、中断响应的时间、CPU
中断寄存器、外设中断寄存器、复位、无效地址检测、外部中断控制寄存器。
LF2407大部分的I/O口是多路复用的,复位时会被上拉为数字输入的模式。
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事件发生。
(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存储器 。
1:禁止引导ROM。TMS320LF2407片内FALSH程序存储器映射地址范围为0000h一7FFFh。
位2,(微处理器/微控制器选择)。这位反映了器件复位时MP/MC *引脚的状态。
0:器件 设置为微控制器方式,程序地址范围从
0000h一7FFFh被映射到片内
1:器件 设置为微处理器方式,程序地址范围从
0000h一7FFFh被映射到片外(必须外扩外部存储器)
位1-0,SRAM的程序/数据空间选择
0 0 地址空间不被映射,该空间被分配到外部存储器
0 l SARAM 被映射到 片内程序空间
1 0 SARAM 被映射到 片内数据空间
1 1 SARAM 被映射到 片内程序空间,又被 映射到片内数据空间
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
2.3 中断优先级和中断向量表
LF2407 DSP具有 3个不可屏蔽中断和6个可屏蔽中断 (INT1-
INT6),可 采用 中断扩展设计来满足大量外设中断需求。
每个可屏蔽中断有多个中断源,每个中断源具有唯一的中断入口地址向量。
中断源如下所示:
不可屏蔽中断(3个)
中断优先级 中断名称 外设中断向量 描述
1 Reset 0000h 复位引脚和 WD溢出
2 保留 0026h 仿真陷阱
3 NMI 0004h 软件中断
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错误中断
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中断续 INT2(级别2)
中断优先级 中断名称 外设中断向量 描述
24 T3PINT 002Fh 定时器 3周期中断
25 T3CINT 0030h 定时器 3比较中断
26 T3UFINT 0031h 定时器 3下溢中断
27 T1OFINT 0032h 定时器 3上溢中断
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上溢中断
INT4(级别4)
中断优先级 中断名称 外设中断向量 描述
36 CAP1INT 0033h 比较器 1中断
37 CAP2INT 0034h 比较器 2中断
38 CAP3INT 0035h 比较器 3中断
39 CAP4INT 0036h 比较器 1中断
40 CAP5INT 0037h 比较器 2中断
41 CAP6INT 0038h 比较器 3中断
INT5(级别5)
中断优先级 中断名称 外设中断向量 描述
42 SPINT 0005h 低优先级 SPI中断
43 RXINT 0006h 低优先级 SCI接收中断
44 TXINT 0007h 低优先级 SCI发送中断
45 CANMBINT 0040h 低优先级 CAN邮箱中断
46 CANERINT 0040h 低优先级 CAN错误中断
INT6(级别6)
中断优先级 中断名称 外设中断向量 描述
47 ADCINT 0004h 低优先级 ADC中断
48 XINT1 0001h 低优先级外中断
49 XINT2 0011h 低优先级外中断
N/A TRAP 0022h 陷阱中断
N/A 假中断向量 0000h 假中断向量
2.4 外设中断扩展控制器
LF2407采用一个 外设中断扩展(PIE)控制器 来专门管理来自各种外设或外部引脚的中断请求。下图为外设中断扩展模块图。
具体寄存器为:PIRQR0-PIRQR2
地址总线
INT6
INT2
INT1
CPU
优先级别 1
IRQ REN
优先级别 2
IRQ REN
优先级别 6
IRQ REN
数据总线
PIRQTn
PIACKRn
PIVR
PIRQR0
PIRQR1
IACK
PIE
2.4.1 中断层次通过中断请求系统中的一个两级中断来 扩展中断个数,
2407 可响应的中断个数数量很多,DSP的中断请求/
应答逻辑和中断服务程序软件都有 两级层次 的中断。
2.4.2 中断请求的结构在 低层次 中断,从几个外设来的 外设中断请求(PIRQ)
在中断控制器处进行或运算,产生一个INTn中断; 在高层次 中断,从INTn中断请求产生一个到CPU的中断。
2.4.3 中断应答外设产生中断请求后,经PIE控制器译码,决定谁被响应,CPU通过赋予程序地址总线一个值 ——中断向量,决定哪个中断请求被应答。
2.5 中断向量为使CPU能够区别不同外设引起中断,在每个外设中断请求有效时,都会 产生一个唯一的外设中断向量,
这个外设中断向量被装载到 外设中断向量寄存器
(PIVR)。
CPU响应外设中断时,从PIVR中读取相应的中断向量,
转到相关的中断服务程序入口。
LF2407 有 两个向量表 。
(1) CPU向量表 用来获取响应CPU中断请求的一级 通用中断服务子程序(GISR) 。
(2) 外设向量表 用来获取响应某一特定外设事件的 特定中断服务子程序(SISR)。
GISR中的程序可读出PIVR中的值,在保存必要的上下文之后,用PIVR中的值来产生一个转到SISR的向量。
2.5.1 假中断向量假中断向量特性可以 保证 系统一直可靠安全地运行,
而不会进入无法预料的中断死循环中。
以下两种情况会产生假中断:
(1)CPU执行一个软件中断指令,并且指令具有一个与外设中断(通常为INT1一INT6)相关的变量。
(2)当外设发出中断请求,但是其 INTn标志位却在CPU
应答请求之前已经被清0。
在上述两种情况下,没有外设中断请求送到中断控制器,因此控制器不知道哪个外设中断向量装入到
PIVR,此时向PIVR中装入假中断向量。
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相对应的控制寄存器。
2.5.4 全局中断使能
INTM为全局中断使能位,在初始化程序和主程序中,
常常需要使用该位对DSP中断进行打开和关闭操作。
特别是初始化过程中,需要 关中断,而在主程序开始执行时,需要 开中断 。
SETC INTM; 关中断
CLRC INTM; 开中断进入中断服务程序时,系统自动关闭中断,不允许在中断服务程序中响应其他中断。
从中断服务程序返回时需要重新打开中断。
2.6 中断响应的流程外设模块的中断响应流程开始外设中断产生外设中断寄存器
(PR)中的中断标志位IF置1
中断使能IE=1?
中断产生逻辑等待,
IE位置1或IF位被软件清0
IE位被S/W置1
N
Y
转下页向PIE控制器发送外设中断请求外设中断请求位置
1,并向INTn发送中断请求
CPU接收INTn
接上页
2.7 中断等待时间中断响应的等待时间包括,外设同步接口时间、CPU
响应时间、ISR等待时间,分别介绍如下:
(1)外设同步接口时间 是指为了响应一个PlE控制器可以识别的中断事件,而产生一个中断请求所花的时间和转换后将请求发送至CPU的时间。
(2) CPU的响应时间 指的是CPU识别出已经被使能的中断请求、响应中断、清除流水线、并且开始捕获来自CPU中断向量的第一条指令所花费的时间。
最小的CPU的响应时间是4个CPU指令周期 。 如果一个更高优先级的可屏蔽中断在最小的等待周期被请求,该中断将被屏蔽,直到正在工作的ISR重新使能该中断。 当中断请求发生在一个不可中断的操作期间,那么等待时间更长。 例如,一个循环程序环、一条多周期指令的执行,或处于一个等待状态的访问期间。
(3)ISR等待时间 是指为了响应产生应答的中断事件,
而到达特定中断服务程序(SlSR)所花费的时间。
该时间长短根据用户响应中断后保存上下文的不同而有所变化。
2.8 CPU中断寄存器
CPU中断寄存器包括,(1)中断标志寄存器(IFR);(2)
中断屏蔽寄存器(IMR)。
2.8.1 CPU中断标志寄存器 (IFR)
IFR包含所有可屏蔽中断的标志位,用于识别和清除挂号的中断。当一个可屏蔽中断被请求时,中断标志寄存器的相应标志位被置1。如果对应中断屏蔽寄存器中的中断使能位也为1,则该中断请求被送到CPU,并设置IFR的相应位,此时该中断正被挂号或等待响应。
读取IFR可以识别挂号的中断,向相应的IFR位写1将清除已挂号的中断。
该寄存器映射到 数据存储器空间为 0006h。
位15-6,保留位。
位5-0,分别为INT6-INT1的中断标志位。
0:无中断挂号,
1:表示有INTn的中断挂号。
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被使能。
2.9 外设中断寄存器外设中断寄存器包括如下几种: