3)存储器及扩展接口
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
15
存储器和寄存器的等待状态
名称 RAM块M0和M1 0 等待状态 说 明 无需设置等待状态
外设帧PF0
外设帧PF1
0
0(写操作) 2(读操作)
无需设置等待状态
固定数目的等待周期
外设帧PF2
RAM块L0和L1 Flash SARAM块H0 引导ROM XINTF
0(写操作) 2(读操作)
0 0 1
1)12×8个中断源(INT1-INT12,INTx.1-INTx.8)
2)中断向量表用来存在中断服务程序的地址
1
DSP原理及其应用技术
第三讲 存储器及外部扩展接口
3.1 概述
3.2 片内存储器
3.3 外部扩展接口
3.4 与外部存储器的接口
2
3.1 存储器概述
程序存储器:
ROM/PROM
2SYSCLKOUT≤访问周期≤ 54SYSCLKOUT
22
XTIMCLK和XCLKOUT的波形
XTIMCLK=SYSCLKOUT 7
7
Lead=2,Active=2,Trail=2
23
XTIMCLK和XCLKOUT的波形
XTIMCLK=SYSCLKOUT/2 14
14
Lead=2,Active=2,Trail=2
每个空间可以选择同步或异步检测(缺省方式)XREADY信号。
同步检测:在设定的建立和有效周期结束之后,再对XREADY 信号采样一个XTIMCLK周期。这样有效周期至少增加一个。
异步检测:在设定的建立和有效周期结束之后,再对XREADY 信号采样三个XTIMCLK周期。这样有效周期至少增加三个。
FLASH具有如下特点:
FLASH分成5/10个扇区,每个扇区可以单独擦除与编程;
代码可安全保护(128位秘匙); 可根据CPU频率调整等待状态;
具有低功耗模式; 流水线模式能够提高代码执行效率。
8
F281X 的Flash地址表
F2812 F2811
128kW
F2810
64kW
第二讲 内容回顾
1、系统时钟 1)DSP时钟:30MHz,5倍频;2)高/低速外设时钟设臵与使能 2、看门狗模块 1)使能/屏蔽看门狗;2)复位看门狗(0x55+0xAA) 3、CPU通用定时器 1)32+16位计数器;2)递减计数,产生周期性中断 4、通用I/O 1)高达56个,与外设复用;2)可配臵为输入或输出 5、PIE中断
提示:初始化Flash寄存器的代码必须从RAM中运行,从 Flash中执行将导致不可预测的结果。
11
外设寄存器空间
F281X和C281X器件包含三个外设寄存器空间。这些空间分 为以下三组:
1) Peripheral Frame0: 直接映射到CPU的存储器总线,支持 16位和32位数据访问。 2) Peripheral Frame1: 映射到32位的外设总线,必须采用32 位读写方式(限对偶地址访问)。 3) Peripheral Frame2: 映射到16位的外设总线,仅支持16为 访问。
如果寄存器是EALLOW保护的,在对该寄存器进行 写操作前必须首先执行EALLOW指令使能;而完成 后执行EDIS指令则可以禁止写操作。
17
3.3 外部扩展接口
F2812的外部接口(XINTF)采用 非复用的扩展总线,与C240×的外 部接口相似;
8031单片机 的外部总线?
F2812的XINTF映射到5个独立的存储空间。当访问相应 每个空间都可以独立地设置访问建立、有效和跟踪时间,
缺省情况下,建立、有效、跟踪周期设臵为最大值,见下表。
缺省值 WS=0
持续的XTIMCLK周期数(tc—XTIMCLK的周期;WS—XREADY引入的等待周期数)
21
访问周期的计算(不使用XREADY信号)
1~3 2~6 2~6 4~12 1~3 0~3
0~3 0~6 0~6 0~12
1~8 1~15 1~16 1~30 0~7
16
/* Peripheral Frame 2: SYSTEM : origin XINTRUPT : origin GPIOMUX : origin GPIODAT : origin EV_A : origin EV_B : origin MCBSP_A : origin SCI_A : origin SCI_B : origin SPI_A : origin ADC : origin
的存储空间时,就会产生一个片选信号。
同时还可以通过XREADY信号来与外设的访问速度和时序 匹配。
18
外部接口框图
16位 19位
XZCS7取决于MP/MP的状态
XINTF
19
外部接口的时钟配置
XINTF模块有两个时钟信号,下图给出了CPU时钟与XINTF时钟间的关系; 所有外部扩展接口的建立、激活和跟踪时间均以时钟XTIMCLK为基准; 所有外部接口的访问周期均在XCLKOUT的上升沿开始有效。
7
/XZCS2
/XZCS6AND7 ⑤⑥…
3.2 片内存储器与寄存器
片内存储器均采用32位数据总线;
F2812采用32位格式访问存储器或外设时,分配的必须是偶 地址。绝大部分指令是采用32位格式从程序存储空间读取的。
各个数据存储器块M0 (1k)、M1 (1k)、L0 (4k)、L1 (4k)、 H0 (8k)均可以映射到程序和数据空间。
从程序空间读(PAB、PRDB)
从数据空间读(DRAB、DRDB) 向数据空间写(DWAB、DWDB) 这3个操作可以同时进行。
CPU
数据写
Functional Overview
扩展接口 ⑤⑥… ① ② ④
片内存储器
③ 0
6
Memory Map
①
⑤⑥… /XZCS0AND1 ② ⑤⑥… ⑤⑥… ④ ③ 0
*/ F2812.cmd = 0x007010, length = 0x000020 = 0x007070, length = 0x000010 = 0x0070C0, length = 0x000020 = 0x0070E0, length = 0x000020 = 0x007400, length = 0x000040 = 0x007500, length = 0x000040 = 0x007800, length = 0x000040 = 0x007050, length = 0x000010 = 0x007750, length = 0x000010 = 0x007040, length = 0x000010 = 0x007100, length = 0x000020
12
外设寄存器帧0
16/32
Βιβλιοθήκη Baidu
/* Peripheral Frame 0: */ F2812.cmd DEV_EMU : origin = 0x000880, length = 0x000180 XINTF : origin = 0x000B20, length = 0x000020 PIE_CTRL : origin = 0x000CE0, length = 0x000020 PIE_VECT : origin = 0x000D00, length = 0x000100 FLASH_REGS : origin = 0x000A80, length = 0x000060 CSM : origin = 0x000AE0, length = 0x000010 CPU_TIMER0 : origin = 0x000C00, length = 0x000008 CPU_TIMER1 : origin = 0x000C08, length = 0x000008 CPU_TIMER2 : origin = 0x000C10, length = 0x000008
2、是否有必要使用XREADY信号?
绝大多数情况下不必使用XREADY信号,直接将该引脚上拉至高电平;
对于扩展外部设备较多,且访问速度相差较大的情况,可以将外设按
快慢分组,分别配臵到不同的XINTF空间。
28
XINTF的初始化
F2812提供了外部并行总线扩展接口,可提供1M字 (三个外部扩展空间:两个512K,一个16K)的寻址空间, 有利于开发较复杂的系统,如扩展FLASH、RAM、 ADC、DAC、RTC、LCD、USB、LAN等。
4
程序读
CPU及内部总线
数据读
程序/数据空间的写操作共用
数据总线DWDB,两个操作不 能同时进行;
EPROM FLASH EEPROM DiskOnChip
数据存储器:
SRAM
DRAM EEPROM Dual Port RAM
PC/104兼容的Flash Disk模块
3
F281X的存储器
F281×采用增强的哈佛总线结构,能够并行访问程序 和数据存储空间,如可以并行实现程序读、数据读、数 据写这三个操作。 片内集成了大量的SRAM、ROM、FLASH等存储器, 采用统一编址方式,方便程序开发。
24
XREADY信号
XREADY信号?
DSP通过检测XREADY信号,可以延长DSP访问外设的有效阶段; 器件上所有外设空间共用一个XREADY信号,低电平有效; 每个空间可以独立配臵为检测或不检测XREADY信号;
在对XREADY信号采样时刻,如果信号为低电平,则有效阶段将延长 一个XTIMCLK周期,然后在下一个XTIMCLK的上升沿继续采样,直到检测 到XREADY为高电平,完成正常的读/写周期;
9
F2812的配置寄存器
1/0-使能/关闭FLASH流水线模式
D11..8--按页读取方式下的等待状态(0~15) D3..0--随机读取方式下的等待状态(1~15)
10
Flash初始化
// 下面的函数初始化Flash控制寄存器,DSP时钟频率150MHz
void InitFlash(void) { EALLOW; FlashRegs.FOPT.bit.ENPIPE = 1; //使能Flash流水线模式以提高代码执行效率 FlashRegs.FBANKWAIT.bit.RANDWAIT = 5; //设臵随机访问的等待状态数目 FlashRegs.FBANKWAIT.bit.PAGEWAIT = 5; //设臵按页访问的等待状态数目 EDIS; asm(“ RPT #7 || NOP”); } //软件延迟,等待流水线刷新
外设速度特别慢,依靠软件插入等待状态无法满足要求; 一个XINTF区(ZONE)的外设较多,速度快慢差异较大。
讨论:通过软件可以设置的读写周期范围为: 2~54个SYSCLKOUT 。如 果 SYSCLKOUT=150MHz时,对应75MHz~2.78MHz。如果一个外设芯片 的读写周期为500μs,是否需要使用XREADY信号?
20
对XINTF空间的访问
任何对XINTF空间的读/写时序都可以分为三个阶段: 建立阶段:所访问空间的片选信号为低电平,产生有效的地址在AB上;
有效阶段:读操作(/XRD=0)数据锁存到DSP;写(/XWE=0)操作数据至DB; 跟踪阶段:读/写信号变为高后,保持片选信号为低电平的一段时间;
25
读周期波形(XTIMCLK=SYSCLKOUT)
2 3/1 2
1XTIMCLK
同步检测 异步检测
3XTIMCLK
26
写周期波形(XTIMCLK=SYSCLKOUT)
2 3/1 2
1XTIMCLK
同步检测
异步检测
3XTIMCLK
27
对XREADY信号的讨论
1、什么情况下需要XREADY信号?
固定数目的等待周期
无需设置等待状态 无需设置等待状态 固定数目的等待周期
0-15(可编程) 可通过Flash的等待状态寄存器编程
1-54(可编程) 可通过XINTF寄存器编程
16
提示:Flash和XINTF的等待状态与DSP时钟频率有关。
外设寄存器的进一步说明
C28×系列DSP中有些寄存器的内容是受保 护的,其目的是为了避免用户程序错误地改 变这些寄存器的值。 当受保护后,允许CPU对该寄存器进行读操 作,但任何写操作均被忽略。
13
外设寄存器帧1
32
/* Peripheral Frame 1: */
ECAN_A ECAN_AMBOX
F2812.cmd
: origin = 0x006000, length = 0x000100 : origin = 0x006100, length = 0x000100
14
外设寄存器帧2