嵌入式系统原理与应用课件:EMB-2 PSOC5中央处理器与存储器.ppt

上传人(卖家):罗嗣辉 文档编号:2040516 上传时间:2022-01-19 格式:PPT 页数:100 大小:776.50KB
下载 相关 举报
嵌入式系统原理与应用课件:EMB-2 PSOC5中央处理器与存储器.ppt_第1页
第1页 / 共100页
嵌入式系统原理与应用课件:EMB-2 PSOC5中央处理器与存储器.ppt_第2页
第2页 / 共100页
嵌入式系统原理与应用课件:EMB-2 PSOC5中央处理器与存储器.ppt_第3页
第3页 / 共100页
嵌入式系统原理与应用课件:EMB-2 PSOC5中央处理器与存储器.ppt_第4页
第4页 / 共100页
嵌入式系统原理与应用课件:EMB-2 PSOC5中央处理器与存储器.ppt_第5页
第5页 / 共100页
点击查看更多>>
资源描述

1、第2章 PSOC5 中央处理器与存储器 第1节 Cortex-M3内核概述 第2节 嵌套向量中断控制器 第3节 高速缓存控制器 第4节 PHUB和DMAC 第5节 存储器结构与功能第2章 PSOC5 中央处理器与存储器 第1节 Cortex-M3内核概述 第2节 嵌套向量中断控制器 第3节 高速缓存控制器 第4节 PHUB和DMAC 第5节 存储器结构与功能PSoC5内核特性 PSoC5采用ARM Cortex-M3内核(低功耗32位CPU),使用哈佛(Harvard)3级流水线核和固定4GB存储器映射。v 支持16/32位Thumb-2指令集。 Cortex-M3结构特性v 流水性结构v 寄

2、存器v 操作模式v Systick定时器v 存储器空间映射v 异常及处理Cortex-M3内核特性 Cortex-M3特性还包括v 使用硬件除法指令,v 低延迟中断服务程序ISR入口和退出特性。 还包括其它模块,与CPU紧密连接在一起。v 嵌套中断控制器(Nested Vector Interrupting Controller - NVIC),v SYSTICK定时器和v 众多的调试和跟踪模块。Cortex-M3构成框图 Cortex-M3内核特性 3级流水线结构(性能达到1.25DMIPS/MHz),提高指令执行速度和降低功耗。v 支持Thumb-2指令集:支持16/32位操作;原子比特位

3、的读和写操作;支持非对齐存储器访问操作。v 改善代码的密度,确保存储器的使用效率。v 易于使用、编程和调试,易于从8/16位处理器移植。v NVIC支持中断和异常,帮助快速地响应中断。v 扩展的调试支持:串行线调试端口(SWD);断点;Flash修补;代码跟踪。流水线结构与总线接口 3级流水线实现:v 取指-从存储器取指令;v 译码-产生地址和分支预测;v 执行-基于地址和分支执行指令。 当执行1个指令时,流水线能给出12个等待状态。 总线基于v 轻量先进高性能总线(Advanced High Performance Bus Lite - AHB Lite)v 先进高性能总线 (Advance

4、d High Performance Bus - APB)总线接口 总线接口:v 加载指令的I-Code总线;v 加载数据的D-Code总线;v 从存储器器区域0 x20000000 0 xDFFFFFFF和0 xE0100000 0 xFFFFFFFF。 v 外部的私有外设总线,用于调试元件。v 调试访问端口,用来连接调式接口模块。普通寄存器 4种普通寄存器(通用寄存器,堆栈指针,链接寄存器和程序计数器)普通寄存器 通用寄存器(R0:12):所有指令都可访问R0:7。所有32位指令和部分16位指令可以访问R8:12。 堆栈指针(Stack Pointer - SP)(R13):2个堆栈指针,

5、每1次只能用1个。SP是32位对齐方式。忽略1:0比特位,当作0来处理。 链接寄存器(R14):保存程序调用期间返回的程序计数器的值。 程序计数器(R15):能写此寄存器来控制程序流(程序执行顺序)。特殊寄存器 3种特殊寄存器(程序状态寄存器,中断屏蔽寄存器和控制寄存器)。v 仅使用特殊指令访问特殊寄存器,不能正常数据处理。程序状态寄存器 程序状态寄存器(Program Status Register - PSR):v 应用程序状态寄存器(Application PSR - APSR)v 中断程序状态寄存器(Interrupt PSR - IPSR)v 执行程序状态寄存器(Execution

6、PSR -EPSR) PSR提供ALU标志(零/进位),执行状态和当前执行中断数量。v 使用MSR和MRS指令,能单独或者集体访问3个PSR。v 作为xPSR时,能对其进行集体访问。中断屏蔽寄存器与控制寄存器 中断屏蔽寄存器v PRIMASK:用来禁止除不可屏蔽中断NMI和硬故障外的所有中断; v FAULTMASK:用来禁止NMI外的所有中断。v BASEPRI:用来禁止指定的或者低优先级的中断。 NVIC使用这些寄存器来屏蔽中断或异常。 控制寄存器v 控制堆栈指针的选择和处理器的特权级。只有2位: CONTROL0:0线程模式的特权;1线程模式的用户状态; CONTROL1:0使用默认的堆

7、栈;1使用可替换的堆栈。特权分级 2种特权分级v 特权级(Privileged):代码没有资源限制v 用户(User):代码有资源限制 使用控制寄存器控制特权分级。v 当代码在用户级时,它不能访问调试资源和某些重要的寄存器,这些限制包括 限制访问MSR和MRS指令,不能使用CPS指令。 不能访问系统定时器,NVIC或系统控制块。 可能限制访问存储器或外设。操作模式 2种操作模式v 线程模式 所有正常的应用程序使用线程模式。 在线程模式下,使用进程堆栈指针PSP。 线程模式能存在于特权级和用户级。v 管理者模式 操作系统内核和异常处理程序使用管理者模式。 在此模式下,使用主堆栈指针(MSP)。

8、管理者模式只用于特权级。线程模式切换 调整控制寄存器,可从特权级切换到用户级,但是不能通过调整控制寄存器从用户级切换到特权级。v 发生异常时,系统自动使用特权级;退出异常时,又返回到特权级。v 只能通过异常处理程序对控制寄存器编程为特权模式,才能恢复到特权级。Systick定时器 SysTick定时器集成在NVIC中,产生SYSTICK中断。v 在实时系统中用于任务管理。片内有1个24位可重加载的寄存器,递减计数器的值。v 使用Cortex-M3内部时钟或PSoC5时钟。片内有2个寄存器控制时钟源: 第1个是Cortex-M3寄存器NVIC_SYSTICK_CTL,选择时钟源来自内部或者外部(

9、默认)。 第2个是PSoC5寄存器PANTHER_WAITPIPE,选择内部时钟源;或内部ILO 100KHz(默认),或DSI时钟。存储器空间映射 存储器空间映射 Cortex-M3具有线性32位(4GB)地址空间。v 包括2个位带别名区域,分别用于SRAM空间和外设空间。 访问1个位带别名区域影响相应位带区域内单独的位。v 2个位带中的地址除可以象普通RAM一样使用外;v 还可以有自己的位带别名区,位带别名区每个比特膨胀为32位的字。存储器空间映射 异常及处理 Cortex-M3提供丰富特性的异常结构,支持大量的系统异常和外部中断。v 中断号1-15的异常用于系统异常,16以上用于外部中断

10、输入。v PSoC5结构支持32个外部中断。 异常由NVIC处理。v 大多数的异常都有可编程的优先级,少数有固定的优先级。v 当前正在运行的异常的值由特殊寄存器IPSR或者来自NVIC的中断控制状态寄存器(VECTACTIVE域)给出。异常及处理 中断是异常的一部分。v 异常和中断的处理方法相同。在中断向量表中保存着每个异常句柄(服务程序)。v 向量表开始于异常句柄,后面跟着中断服务程序的地址。v 可动态改变向量表的指针。v 若向量表在SRAM中,则可动态修改向量。第2章 PSOC5 中央处理器与存储器 第1节 Cortex-M3内核概述 第2节 嵌套向量中断控制器 第3节 高速缓存控制器 第

11、4节 PHUB和DMAC 第5节 存储器结构与功能嵌套向量中断控制器特性 嵌入向量中断控制器(Nested Vector Interupted Controller - NVIC)是Cortex-M3处理器的组成部分。v 作为存储器映射设备访问。除用作中断处理控制寄存器和控制逻辑外,还用作SYSTICK定时器和调试控制的控制寄存器。 NVIC特性v 支持32个中断和16个异常;可配置的优先级;动态可重新配置的中断优先级(07);支持嵌套的中断;可编程中断向量(固定功能,UDB或DMA);v 支持尾链(Tail chaining)和迟到的中断。这样能背对背的中断。支持电平触发和脉冲触发。中断控制

12、器的特性中断控制器的特性 中断控制器提供1种机制,使得在不需要考虑目前主程序执行任务的情况下,可在新的地址执行程序。v 提供32个中断线,每个中断线对应1个中断向量和可配置的优先级。每个中断线分配8个优先级中的一个。v 支持32个中断信号:固定功能模块;DMA通道;UDB;v 中断线穿过1个多路复用器。用来选择中断源。 多路复用器选择:v 固定功能IRQ(中断请求);UDB的电平IRQ、UDB的边沿IRQ;DMA IRQv 使用IDMUX.IRQ_CTL寄存器来选择中断请求IRQ。中断控制器的特性中断使能 中断控制器使能或者禁止个别的中断线。v 使能寄存器SETEN和清除使能寄存器CLREN,

13、分别用来使能和禁止中断线。v 寄存器的每1位都对应1个中断线,这些寄存器使能和禁止中断,以及读中断的使能状态。 v 设置未处理中断寄存器SETPEND和清除未处理中断寄存器CLRPEND,允许通过软件设置和清除未处理中断比特位。v 每个比特位对应于1个中断线。可以通过读这些寄存器来查看,未处理中断比特位的状态。 中断使能v 对所有脉冲/电平中断,一旦中断控制器接收到来自CPU的中断入口(IRA)的响应,则立即清除相应未处理中断比特位。v 对脉冲中断,一旦有新脉冲到来,就可再次设置未处理中断比特位。v 对电平中断,当中断控制器接收到来自CPU的中断退出(IRC)响应后,则检查中断线的状态。 若此

14、时,仍然确认中断线,则设置(复位)处理中断比特位;如果没有确认中断线,则未处理中断比特位保持清除状态。中断使能 若硬件请求设置未处理中断比特位,而同时软件请求清除未处理中断比特位,则硬件请求具有更高优先级。v 当已设置相同的比特位,再设置该位,则只执行一次中断。不管是否设置相应的使能位,总可以更新未处理中断比特位。v 建议在使能中断以前,查看未处理中断比特位的状态。 中断控制器提供中断优先级处理的能力来帮助为每个中断分配不同的优先级。中断优先级 可分配(07)共8个级别的优先级。v 0级具有最高优先级,7级具有最低优先级。v 使用中断优先级寄存器PRI_x设置优先级。v 可以动态的配置中断的优

15、先级。 若确认1个中断INTB和正在执行另1个中断INTA,则3种可能:v 若INTA的优先级比INTB低,则: INTA执行点停止;INTA现场入栈,开始执行INTB;执行完INTB后,INTA继续从中断点上继续执行;中断优先级处理v 若INTA的优先级比INTB高,则: INTB等待INTA执行完;INTA执行完后,INTB开始执行;v 若INTA和INTB优先级相同,则: 若INTA正在执行,则INTB等待INTA执行完。当INTA执行完后,INTB开始执行;若INTB正在执行,则INTA等待INTB执行完。当INTB执行完后,INTA开始执行。中断优先级处理 同时产生中断v 若INTA

16、优先级低于INTB,则INTB获得仲裁权,开始执行;v 若INTA优先级高于INTB,则INTA获得仲裁权,开始执行;v 若INTA和INTB有相同的优先级,则具有低索引值的中断获得仲裁权,开始执行。 中断控制器支持电平和脉冲中断。v 中断控制器包含脉冲检测逻辑,用于检测中断线的上升沿。若检测到上升沿,脉冲检测逻辑设置未处理中断比特位。v 中断控制器检测任何对中断信号的确认,则按如下执行中断。电平中断与脉冲中断 电平中断v 中断服务程序内清除相应外设寄存器的中断请求比特位。 若设置外设寄存器的中断请求位,导致中断信号线上的高电平信号。退出中断时若在外设寄存器中设置中断请求位,将再次设置中断未处

17、理比特位。若使能中断则再次处理中断。 脉冲中断v 在中断线上出现1个脉冲。脉冲的上升沿设置未处理中断比特位,执行相应的中断。若已设置中断未处理比特位,此时产生脉冲,不起任何作用。进入ISR时,自动清除未处理中断位。若中断当前正在处理的时候,产生脉冲,再次设置未处理中断比特位,执行中断。中断执行中断执行 中断控制器能控制电平和脉冲中断,执行顺序:v 执行相应中断信号的中断要求设置中断使能(假设已经编程优先级和中断向量地址);v 当确认中断信号时,在未处理中断寄存器内设置对应于相应中断号的未处理中断比特位,表示正在等待执行中断。v 优先级译码单元读取优先级,确定何时执行中断。v 中断控制器向CPU

18、发送中断请求,以及用于执行的中断向量地址。v CPU接收到请求。中断执行v 中断入口(IRA):CPU响应中断入口。进入中断入口后,能检测下1个相同中断线。忽略在任何进入中断入口前,对任何中断线的确认。接收到相应信号后,中断控制器清除未处理中断比特位。v 中断控制器将当前中断号及其优先级压入到中断控制器堆栈。v 中断退出(IRC):完成中断的执行时,处理器解决下1个请求。CPU响应中断退出。退出中断时,将中断上下文(现场,比如中断号和优先级)从堆栈中弹出。PSOC5额外中断特性 PSoC5基于Cortex-M3 CPU核,其中断控制器有额外特性。中断控制器是Cortex-M3核的一部分。 活动

19、中断v 活动中断是指一个当前正在执行的中断。CPU堆栈中保存活动中断的优先级和中断号。v 当任何中断开始执行时,中断优先级和中断号压入到堆栈。 通过读取堆栈的内容了解活动中断细节。PSOC5额外中断特性 使用CPU堆栈v 使用2个不同的堆栈指针来分别访问两个堆栈,即进程堆栈指针(PSP)和主堆栈指针(MSP)。v Cortex-M3能配置使用2个堆栈。当配置使用所有堆栈时,第1个中断使用PSP或者MSP保存细节。v 当配置不使用所有堆栈时,只使用主堆栈指针。 支持ACTIVE寄存器v 保存中断的活动状态。PSOC5额外中断特性 ACTIVE寄存器的特性:v 寄存器的每1位指示相应中断的活动状态

20、。v 当ACTIVE寄存器的比特位设置为1时,中断是活动的。当该位设置为0时,中断当前处于非活动状态。v 当前运行的中断由于1个高优先级的中断所停止时,当前运行中断的状态保持活动,这是因为在高优先级中断执行后,它继续执行。v 只有执行完中断后,才清除活动状态比特位。PSOC5额外中断特性 支持异常v 但是ACTIVE中的比特位只对应到中断,而非异常。v 异常的活动状态细节保存在异常状态寄存器。v 异常状态寄存器不但用于读取活动状态,而且用于使能异常。 中断嵌套v 当正在执行1个低优先级的中断时,确认1个高优先级的中断时,产生中断嵌套。PSOC5额外中断特性 PSoC5内只有CPU堆栈保存所有嵌

21、套中断细节:v 当前中断号,当前中断优先级v 程序计数器,PSR,R0-3,R12和LRv 保存R4-R11寄存器,取决于应用程序 当CPU处理压栈和出栈时,CPU堆栈向下生长。配置用于控制如何使用PSP和MSP。v 若使用所有的堆栈,第1个中断使用当前活动的PSP或者MSP。所有其它的嵌套的中断只适用MSP。PSOC5额外中断特性 若配置只用1个堆栈时,中断细节保存在MSP,其顺序:v 正在执行低优先级中断时,高优先级中断到达,中断控制器向CPU发送请求,在执行点上停止运行低优先级中断。v 低优先级中断的细节,指令指针和其它通用目的寄存器,压入到堆栈。(取决于嵌套使用堆栈,MSP或者PSP)

22、。v 支持的嵌套数量取决于可使用的堆栈空间,用户应确认足够的可用堆栈空间。若堆栈空间不足,则导致不确定的结果。v 执行较高优先级中断后,高优先级中断的细节从堆栈中弹出。低优先级中断从终止点继续执行。v 由于硬件处理堆栈和出栈由硬件处理,它们有最小的延迟。在操作过程中,不需要调用指令。PSOC5额外中断特性PSOC5额外中断特性PSOC5额外中断特性 中断向量地址v PSoC5结构允许用户为每1个中断线指定中断服务程序。v 调用对应于1个中断线的中断服务程序不是1个分支指令。v 中断服务程序地址保存在中断向量表中,导致直接调用程序。v 此执行方法防止调用中断服务程序的延迟。v 从中断向量表取出中

23、断服务程序地址,并且实现。v 中断向量地址的列表保存在向量表中。PSOC5额外中断特性 PSoC 5包含向量表偏移寄存器v 移动向量表时,启动镜像应该包含堆栈指针值,复位向量,NMI向量和硬故障向量。v 向量地址是32位,LSB使用0 x01填充,MSB包含相应24位执行ISR地址。在LSB中出现0 x01,表示为Thumb指令。 确认中断信号期间,从表中得到中断服务程序的地址(Interrupt Vector Address - IVA),并给CPU执行中断。v PSoC5支持异常,向量表也有地址对应15个异常,后面跟着中断服务程序的地址。PSOC5额外中断特性 尾链v 是一个过程,用于减少

24、中断的延迟。v 正在执行相同或更高优先级的其它中断时,确认1个新中断: 新的低优先级的中断等待处理。 当执行当前的中断后,并不会弹出当前在堆栈中的中断细节。 新中断的细节压入堆栈,开始执行新的中断。 当执行新中断后,新中断的细节和前面中断的细节弹出堆栈。v 在2个中断期间无入栈和出栈操作,大大降低延迟。尾链能节省最多6个周期。PSOC5额外中断特性 迟到中断v 其它中断正在压栈用于执行时,产生1个迟到的中断。v 通过处理迟到的中断,其它特性减少中断延迟。v 过程描述: 确认低优先级中断; 确认发生高优先级中断,将低优先级中断的细节压入堆栈; 低优先级中断入栈后,代替低优先级中断,并执行高优先级

25、中断入栈; 执行完高优先级中断后,执行低优先级中断。PSOC5额外中断特性 中断控制器和功耗模式v 关闭中断控制器电源或时钟,仍能够运行CPU核。v 在此情况下,在进入/推出不同低功耗模式(交替活动,休眠和冬眠)时,需要注意。v 关闭中断控制器时钟后,执行: 清除所有等待处理的中断,禁止中断控制器内的所有中断; 空操作; 禁止全局中断比特位; 在INTC.CLOCK_EN寄存器的CLOCK_EN比特位中关闭中断控制器的时钟。PSOC5额外中断特性 只有在活动和交替活动模式下,当关闭中断控制器时钟时,CPU能运行。v 当在关闭中断控制器时,从交替活动模式切换到活动模式时: 遵循前述的步骤来关闭中

26、断控制器的时钟。 现在CPU能运行任何不包含中断的代码。 当任何时候要求时,切换到活动状态。 只有唤醒中断时才能切换到活动模式,然后CPU应该保持轮询PM.MODE_CSR寄存器,寻找系统切换到活动模式的时间。 切换回活动模式时,遵循前述的过程,用于从低功耗模式切换到活动模式。第2章 PSOC5 中央处理器与存储器 第1节 Cortex-M3内核概述 第2节 嵌套向量中断控制器 第3节 高速缓存控制器 第4节 PHUB和DMAC 第5节 存储器结构与功能高速缓存控制器 高速缓存模块是1个指令缓存,用于从CPU取指令。v 将来自Flash代码行保存在内部缓冲区,用于CPU快速访问。 高速缓存控制

27、器的特点:v 指令缓存;直接映射;v 总计128个字节的高速缓存存储器;v 寄存器用于测量命中/缺失(不命中)的比率。 通过与高速缓存的接口,CPU发送取指令的请求,最终接收到返回的指令。高速缓存控制器高速缓存控制器 当CPU的取指操作命中高速缓存时,通过这个接口从高速缓存存储器(RAM)得到这个指令。 CPU取指(接口#1)不在高速缓存(缺失)时,CPU取指请求就转换为来自Flash的取指请求。访问Flash的时间大于访问高速缓存RAM的时间,最多4个时钟周期。 通过此接口,从Flash返回的指令缓存到高速缓冲中,为以后CPU的使用。高速缓存控制器 使用此接口访问Flash存储器的位置。v

28、在CACHE.CC_CTL寄存器中使能DISABLE比特位(位0)来禁止高速缓存;v 通过设置CACHE.CC_CTL寄存器中Flash比特位(位2)使得与接口相关的所有数据无效;v CACHE.HITMISS寄存器提供了两个16位的计数器,用来计数高速缓存命中和缺失的比率。第2章 PSOC5 中央处理器与存储器 第1节 Cortex-M3内核概述 第2节 嵌套向量中断控制器 第3节 高速缓存控制器 第4节 PHUB和DMAC 第5节 存储器结构与功能PHUB与DMAC PSoC5使用高性能总线访问外设和传输海量数据。 高性能总线和相关单元的中央控制器称为外设集线器(PHUB)。v 可编程/配

29、置的中心总线主干,将各种片上单元连接在一起。由多个辐射分支构成,每个辐射分支连接1或数个外设模块。 v 也包含直接存储器访问控制器(DMAC),用于数据传输。DMAC支持多重DMA通道。 2个PHUB主设备:CPU和DMAC。v 初始化总线交易。DMA通道能在无CPU干预情况下处理与外设的通讯。有多重请求时,中心集线器的仲裁器用于确定某DMA通道有最高优先级。PHUBPHUB PHUB特性v CPU和DMAC都是PHUB主设备;v 工业标准的高级微控制器总线结构高性能总线(AMBA-HB)简化协议。v 8个辐射状分支连接不同的外设;v 支持8,16,24和32位的数据宽度;v 不同地址宽度的外

30、设连接到相同的辐射分支上。v 包含带有24个通道的可编程DMAC。v 可以转换不同的字节顺序和宽度。PHUB 将CPU连接到存储器和外设:SRAM,Flash,EEPROM,模拟子系统,数字模块,数字滤波块和其它。 使用辐射状分支连接到外设。有8个分支。每个连接到1个或者多个外设。每个配置:v 地址宽度:一个分支的地址宽度,取决于连接到分支的外设要求的最大数目的地址。v 数据宽度:一个分支的数据宽度可以是16/32位。在16/32为的分支上可执行8位数据传输。v 外设数量:这取决于设备的结构。每个分支很容易连接到多个外设。PHUB 外设连接到每个辐射状分支,其数据宽度可以大于辐射状设置的数据宽

31、度。v 能扩展一个外设穿过多个辐射分支。此情况下,外设连接到不同的辐射分支就有不同的地址空间。v 不同数据宽度的外设可连接到单辐射分支上。 辐射分支0连接至SRAM。v CPU可不经PHUB直接访问SRAM。DMAC经PHUB访问SRAM。v 对DMA访问,SRAM区域范围0 x1FFF_8000到0 x1FFF_FFFF,重映射到0 x2000_8000。这样SRAM在连续的64KB边界内。PHUB 接收CPU或DMAC的读写请求。PHUB处理每个请求,决定应由何辐射分支和外设访问,然后管理数据访问。 当DMAC和CPU同时在PHUB内初始化交易时,仲裁器确定请求优先级。v 为除辐射分支0外

32、的其它辐射分支分配优先级。CPU和SRAM有独立接口,只有DMAC访问辐射分支0。使用PHUB_CFG寄存器内的spk_cpu_pri位分配优先级。v CPU和DMAC同时访问不同的辐射分支时,所有访问都是独立的,无须仲裁。使能多处理环境。DMAC DMA特性v 24个DMA通道;使用PHUB传输数据;v 128个交易描述符(Transaction Descriptor - TD);v 各通道有8个优先级;交易可有任何数字可布线的信号触发,包括CPU或其它DMA通道。v 任意可连接数字信号,CPU和DMA通道能触发1个交易;v 交易能被阻止或取消;支持无限或1-64BB交易大小;v 各交易能分

33、割为1-127字节的猝发传输。v 配置各通道传输结束时产生1个交易完成(termout) 信号。v 支持2或4字节交换,在大端和小端格式下进行转换。v 处理在数据传输过程中,辐射分支间不同的数据宽度差别;DMAC PHUB包含本地存储器,保存配置数据。也包含1个16字节FIFO,在数据传输的过程中管理数据。 本地存储器称为配置存储器空间(Configuration Memory -CFGMEM) v CFGMEM是通道配置存储器保存每个记录信息。v 各通道有2个寄存器:CFGMEMn.CFG0和CFGMEMn.CFG1 (n是通道号,范围为0-23)。v 各寄存器为32位,CFGMEM大小为8

34、B24通道=192B。DMAC 交易描述存储器空间(Transaction Description Memory - TDMEM)v 保存通道的TD配置数据,包括:传输字节的个数,源地址,目的地址,下1个TD和其它配置数据。v 各TD有两个寄存器:TDMEMn.ORIG_TD0和TDMEMn.ORIG_TD1。v 各寄存器为32位,TDMEM大小为8B128TD=1KB。 若1个通道要求1个独立区域处理TD,则保留一部分TDMEM私有使用DMAC(CHn_SEP_TD0/1)。v 此情况下,代替处理原始TD,DMAC将复制原始TD到此独立工作区域,并处理。各通道有1个CHn_SEP_TD0/1

35、。DMAC原理 DMAC是PHUB的总线主设备,执行设备间的数据传输:v 存储器-存储器v 存储器-外设v 外设-存储器v 外设-外设DMAC原理 任何DMA通道执行数据传输:v 仲裁周期:DMA基于优先级选择要处理的DMA通道。v 取周期:DMAC从配置寄存器取TD和DMA通道的细节。v 源引擎周期:源引擎选择源外设所连接的辐射分支。当该分支可用于数据传输时,数据开始从源设备传输。v 目的引擎周期:这个阶段选择目标外设可用的辐射分支,当其可用时,在源引擎阶段所收集到的数据传输到目标外设。v 写回周期:这个阶段是完成阶段,当数据传输完后,更新TD和DMA通 道配置。DMAC原理 DMA传输的总

36、共时间取决于每个周期所花费的时间。v DMA传输可是辐射分支内DMA传输和辐射分支间DMA传输。 在辐射分支内的传输,在同一个辐射分支发生数据传输。v 传输使用内部的FIFO。DMAC原理 理想的数据传输条件:v 单个请求者;v CPU没有打断取周期;v 所有的源和目的辐射分支可用;v 源和目的辐射分支的数据宽度相同;v 源和目的地址开始于偶地址;v 传输数量是多个猝发数量;v 猝发数量和辐射分支的宽度匹配; 传输的猝发数量N=传输的数量/辐射分支的宽度。DMAC原理DMAC原理 辐射分支间传输v 总传输周期=仲裁周期(1)+取周期(1)+源引擎周期(N+3)+目的引擎周期(0)+写回周期(1

37、)=N+6; DMA配置:v DMA通道猝发数量(在CFGMEMn.CFG0寄存器中配置)为2v TD传输数量(在TDMEMn.ORIG_TD0中配置)=2字节5采样=10v TD配置包括递增目的地址,将数据复制到存储器的数组中(在TDMEMn.ORIG_TD0寄存器中配置)v N=传输数量辐射分支宽度=102 = 5DMAC原理 源引擎周期需要N+3=8个周期;总计的传输周期为N+6=5+6=11个周期。 辐射分支内的传输v 其总的传输周期为:总传输周期=仲裁周期(1)+取周期(1)+源引擎周期(N+1)+目的引擎周期(N+1)+写回周期(1)=2N+5;v 给出4个32位数据从SRAM的一

38、个位置传输到SRAM的另一个位置的例子。v 存储器在辐射设置0,其宽度为32位。这种情况下源和目的都是SRAM。DMAC原理DMAC原理 DMA配置:v DMA通道猝发数量(在CFGMEMn.CFG0寄存器中配置)为4v 传输数量(在TDMEMn.ORIG_TD0中配置)=4字节4采样 =16v TD配置包括递增源和目的地址,将数据从一个数组中复制v 到存储器的另一个数组中(在TDMEMn.ORIG_TD0寄存器中 配置)。v N = 传输数量辐射分支宽度=164 = 4 源引擎周期需要2N+2=(2 4)+2=10个周期;总计的传输周期为2N+5=(2 4)+5=13DMAC原理DMAC原理

39、 处理多个DMA通道v DMA可以并行的执行周期。这用来减少执行数据传输的延迟。当需要执行多个通道时,通道可以流水执行。DMAC原理 DMA通道的优先级v 每个通道都可以从0-7分配优先级,0是最高优先级。DMAC支持两种方法管理优先级:简单优先级和授予分配公平算法。通过写PHUB.CFG寄存器的“simple_pri”(比特位23)。v 简单优先级:这个管理通道的方法类似于任何常规的优先级算法,即高优先级通道能打断低先级通道。v 授予分配公平算法:在这个方法中,通道0和1有最高的优先级,没有其它优先级能打断优先级0和1的通道。一个优先级0和1的DMA通道100%占用总线,剩下的优先级基于在那

40、个时候所要求的通道个数共享总线。由于0比1优先级高,优先级0可以打断优先级1。DMAC原理 保证的优先级为0-7的总线带宽表。当不使用公平算法时,DMA访问仅取决于优先级,不保证总线带宽。v 有23个DMA通道,但是只有8个优先级,因此可能有多个通道由相同的优先级。 DMAC使用轮询的方法处理相同的优先级,在轮循算法中,最近没有执行的DMA有较高的优先级。 当使能轮询算法时,执行相同优先级的DMA通道,取决于:v 使能通道的最后时间;v 若最后1次,2个通道是相同的,则较低号的DMA通道取得较高的优先级。DMAC原理DMAC原理 非理想条件下的延迟不能用理想条件下的延迟公式计算。v 多个请求者

41、:若同时有多个DMA通道发送请求,则仲裁周期需要2个时钟周期,而不是理想情况下的1个时钟周期。v CPU打断取周期:当CPU打断取周期时,延迟取决于CPU释放配置寄存器的时间。典型的CPU使用两个时钟周期访问配置寄存器。 这可能在取周期有些高优先级的DMA通道。这些情景应该加到DMA通道执行延迟。v 源和目的辐射分支在使用:只有源和目的辐射分支空闲时,才能使用。在实际情况下,源或者目的已经被DMA通道或者CPU使用。当使用源或者目的辐射分支时,PHUB需要仲裁。DMAC原理v 源和目的外设没有准备好:当外设没有准备好时,必须一致等待直到准备完成。若源设备没有准备好,则DMA等待源设备准备好。若

42、目的设备没有准备好,DMA将使用PHUB内的16字节的FIFO。它读取来自源的数据,将其放入到FIFO,直到目的设备准备好为止。当源和目的没有准备好时,16个字节的FIFO用于辐射分支内的传输。v 源和目的辐射分支有不同的宽度:辐射分支的宽度在延迟方面扮演重要的角色。源分支宽度可能大于或者小于目的分支宽度。在这种情况下,猝发数量也扮演着重要的角色。v 源和目的的地址不是偶数:在决定延迟时,源和目的的地址也扮演着重要的角色。AHB协议支持从奇数地址读取数据。访问DMAC SRAM访问:在PSoC5中,DMAC不能访问SRAM的0 x1FFF8000-0 x1FFFFFFF,但是它可以访问SRAM

43、的0 x20008000-0 x2000FFFF。v CPU访问: 0 x1FFF8000-0 x1FFFFFFF C总线 32KB空间。 0 x20000000-0 x20007FFF S总线 32KB空间。v DMA访问: 0 x20000000-0 x20007FFF S总线 32KB空间。 0 x20008000-0 x2000FFFF C总线 32KB空间。访问DMAC SIO端口访问v 使用DMA或CPU访问所有SIO端口寄存器时,须使用字节模式。DMA通道BURSTCNT必须配置为1。 访问端口配置寄存器v 不能使用DMA写配置寄存器。总使用CPU写配置寄存器。 USB端点访问v

44、 CPU正访问1个不同端点或相同端点,DMA不能读/写数据到/从1个USB设备。唯一例外是端点0,CPU正访问端点0,DMA能访问其它端点。反之亦然。DMAC交易方式 简单DMAv 单TD在源和外设或存储器位置进行数据传输。 自动重复DMAv 重复读取系统存储器和写外设,使用此模式。将单TD链接在一起时,可实现此模式。 乒乓DMAv 此模式适用1个客户端填充缓冲区,另1客户端读取在另1缓冲区接收数据。最简单形式将两个TD链接在一起,任务完成时,2个TD可以互相进行调用。 DMAC交易方式 循环DMAv 与兵乓DMA类似,仅是缓冲区多于2个。此模式有多个TD,最后一个TD完成后又返回第一个TD。

45、 索引DMAv 外部设备要求访问总线位置,此位置好像在共享存储器。通过初始的地址取TD实现从外设目标地址位置读,然后把此值写到链中随后TD中,引起TD链修改。v 地址取TD完成后移动到下一个TD,此TD嵌入新地址信息。此TD传输带有外部主设备地址位置请求的数据。DMAC交易方式 分散聚集DMAv 存在多个不连续的源或目的,要求高效执行整个DMA交易。 组排队DMAv 但是专指分组协议。通过协议,将与发送和接收数据相关的配置、数据和状态周期分割。 嵌套DMAv 当存储器映射的TD配置空间和其他外设相似时,1个TD可以修改另1个TD。第2个TD根据应用程序要求搬移数据。PSOC5存储器 PSoC5

46、的存储器系统的结构。v 内部有非易失性存储子系统,包括Flash,字节可写EEPROM,非易失性配置选项。CPU可以对Flash中的块进行单独的编程,用于启动引导。v PSoC强大和灵活的保护模式,使得用户选择性的锁定存储器块,用于读/写保护,以及保证敏感信息的安全。片上可用的字节可写的EEPROM,用于保存应用程序数据。第2章 PSOC5 中央处理器与存储器 第1节 Cortex-M3内核概述 第2节 嵌套向量中断控制器 第3节 高速缓存控制器 第4节 PHUB和DMAC 第5节 存储器结构与功能SRAM存储器结构及功能 PSoC5器件提供片上SRAM。容量范围为2-64KB。v PHUB可

47、使用SRAM作为DMA的源或目的。所有到SRAM的数据通道都是32位宽度。SRAM存储器结构及功能v CPU无需PHUB就可连接到SRAM上。除可使得CPU较快访问SRAM外,也允许CPU和DMAC同时访问SRAM(因SRAM是由很多单独的块构成)。v 若CPU和PHUB正在访问单个块,可畅通同时访问单独的块。SRAM存储器结构及功能v CY8C55有最多64KB SRAM,分成16块,每块4KB。普通模式下,Cortex-M3和PHUB DMA都可访问64KB空间。v 更进一步由两块32KB的SRAM构成,集中在地址为0 x20000000空间。允许使用c总线(Cortex-M3的I和D总线

48、)或s 总线(Cortex-M3系统总线)访问2个SRAM块。可从低于0 x20000000地址的SRAM执行代码。v 绝大多数情况,Cortex-M3访问SRAM的优先权高于PHUB。只要没有丢失优先级仲裁,SRAM就可以0个等待状态来相应CPU、PHUB和CY8C DoC的访问。在SRAM的访问时间,基于周期到周期, 进行仲裁。 非易失性锁存器结构及功能 非易失性锁存器是一个可编程的阵列,在低电压时,非易失性锁存存储器元素的输出是稳定的。v 阵列中的每一位是由易失性的锁存和非易失性的单元构成。在上电复位后,将非易失性单元的输出加载到易失性的锁存中,易失性锁存驱动非易失锁存的输出。 非易失性

49、锁存器结构及功能 一次性写锁存器(Write Once Latch, WOL)是非易失性锁存器(NVL)。v 本身是一个带附加逻辑包装器的NVL。各WOL器件包含4个字节(32位)数据。若包裹器的绝大多数位(32位中的28位)与预定格式(0 x50536F43)匹配,则会输出1;若达不绝大多数,则会输出0。输出1时,WOL锁定未处于调试和测试模式部件;v 还会永久禁用擦除或更改锁存器内容的功能。因无需匹配所有位,单个或少数位不匹配不会把WOL输出置为无效。晶圆处理后的NVL位状态完全随机,不会趋向1或0。 非易失性锁存器结构及功能v 仅将正确32位密钥(0 x50536F43)加载到NVL易失

50、性存储器中,变成到NVL的非易失性单元中,并将器件复位后,WOL才能锁定器件。仅在复位时,采样WOL输出,并禁止访问。此措施能够防止任何人读、擦除或者更改内部存储器内容。v 仅当未设置Flash保护时,用户才可将密钥写入到WOL中,禁止外部访问。在设置WOL中的值后,用户在器件复位前仍可对其访问。用户可将密钥写入到WOL中,设置闪存保护数据,将器件复位并将其锁定。 非易失性锁存器结构及功能v 若器件受某种 WOL 设置的保护,将无法执行故障分析,从而无法接受客户 RMA。WOL 可由串行线调试(Serial Wire Debug, SWD) 端口来读取,以电气方式识别受保护部件。仅当未设置闪存

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 大学
版权提示 | 免责声明

1,本文(嵌入式系统原理与应用课件:EMB-2 PSOC5中央处理器与存储器.ppt)为本站会员(罗嗣辉)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|