ARM7TDMI总线接口.ppt

上传人:小飞机 文档编号:5415625 上传时间:2023-07-05 格式:PPT 页数:56 大小:550.50KB
返回 下载 相关 举报
ARM7TDMI总线接口.ppt_第1页
第1页 / 共56页
ARM7TDMI总线接口.ppt_第2页
第2页 / 共56页
ARM7TDMI总线接口.ppt_第3页
第3页 / 共56页
ARM7TDMI总线接口.ppt_第4页
第4页 / 共56页
ARM7TDMI总线接口.ppt_第5页
第5页 / 共56页
点击查看更多>>
资源描述

《ARM7TDMI总线接口.ppt》由会员分享,可在线阅读,更多相关《ARM7TDMI总线接口.ppt(56页珍藏版)》请在三一办公上搜索。

1、ARM7TDMI 总线接口,ARM7TDMI 外部接口,存储器接口中断调试接口协处理器接口,ARM7TDMI 接口信号,MCLK,nWAIT,A31:0,D31:0,nMREQ,SEQ,nRW,LOCK,ABE,DBE,nTRANS,ABORT,Clocks and Clock Control,MemoryManagement,MemoryInterface,Data andAddress,BusControl,MemoryAccessControl,nM4:0,MAS1:0,BL3:0,APE,ALE,TBE,ECLK,TBIT,BUSEN,nENIN,BIGEND,ARM7TDMI,nEN

2、OUT,时钟与时钟控制,MCLK 输入处理器工作的时钟。静态设计的ARM通过延长时钟周期来访问慢速的设备。nWAIT 输入在ARM内部与MCLK相与。必须在MCKL为低的相位阶段改变。容许该信号从一个周期扩展到另一个周期,延长总线访问周期。ECLK 输出核心逻辑的时钟的输出。在正常和调试状态下反映内部时钟。ph1&ph2 内部信号双相位非覆盖的内部时钟。处理器内部工作周期。,MCLK,nWAIT,时钟控制-nWAIT 控制,Phase 1,Phase 2,Phase 2,Phase 1,ph2Internal Clock,ECLK,ph1Internal Clock,时钟控制 扩展 MCLK,

3、MCLK,nWAIT,Phase 1,Phase 2,Phase 2,Phase 1,ph2Internal Clock,ECLK,ph1Internal Clock,数据总线,32 位 双或单向数据总线 BUSEN=0 配置双向数据总线。BUSEN=1 配置单向数据总线。字节、半字及字访问.读取数据必须有效且稳定到相位2结束。写入数据在相位1改变,保持稳定贯穿相位2。nENOUT 输出(和 nENIN 输入):数据总线控制如果采用片外双向数据总线的话,可以用来控制数据总线的方向。,数据总线配置(1),DIN31:0,DOUT31:0,32,D31:0,32,ARM7TDMMacrocell,

4、EmbeddedICEmacrocell,G,DoutlatEn,bMDen,数据总线配置(2),MCLK,DIN31:0,DOUT31:0,D31:0,READ,WRITE,READ,DIN1,DIN1,DOUT,DIN2,DIN2,DOUT,地址总线,32 位(4G字节)寻址能力。默认时序在前一周期的相位2阶段变为有效,保持稳定贯穿当前周期的相位1阶段。流水线地址。地址时序可以通过APE(或ALE)移位。为获得较好的系统性能,建议使用默认时序。地址可以锁存到存储器系统中。,地址总线控制,APE 和 ALE 输入ARM 建议两个信号都为高,以便有最长的时间进行地址译码。任何一个信号都可以连接

5、到在数据访问期间需要稳定地址的设备。APE:地址流水线使能APE=1 地址是流水线的(在后续的相位2提供).APE=0 重新定时地址改变的时序,从MCLK的下降沿开始。控制对A31:0的透明锁存。ALE:地址锁存使能控制对A31:0的透明锁存。仅用于已有的系统设计,因为它比APE更复杂。,流水线地址时序(推荐设置),ALE 和 APE 均为高,MCLK,A31:0,ALE,APE,Phase 2,Phase 1,Address,D31:0,(in),Dx,APE对地址时序的作用,MCLK,A31:0,ALE,APE,Phase 2,Phase 1,Address,D31:0,(in),Dx,总

6、线三态控制(1),ABE 输入:地址总线使能当ABE 为低时,下面的信号处于高阻状态:A31:0,nRW,LOCK,MAS1:0,nOPC,and nTRANSDBE 输入:数据总线使能当 DBE 为低时,D31:0 处于高阻状态。TBE 输入:测试总线使能当 TBE 为低时,下面的信号处于高阻状态:D31:0,A31:0,nRW,LOCK,MAS1:0,nOPC,and nTRANS在ABE和DBE都为低时,情况一样。,总线三态控制(2),ABE,DBE,D31:0(out),A31:0,TBE,存储器访问控制,nMREQ 输出:存储器请求.低有效,指示在接下来的周期中进行存储器访问。SEQ

7、 输出:连续地址访问高有效,指示在接下来的周期中地址不变或大一个操作数(字或半字)nRW 输出:非读/写区分存储器读写访问LOCK 输出:锁定操作指示一条交换指令正在执行,接下来的两个处理器总线周期是不可见的。MAS1:0 输出:存储器访问大小指示字、半字或字节访问。BL3:0 输入:数据总线上的字节区段锁存使能容许数据由小数构成。,存储器控制,nRWMAS1:0,MAS1:0 指示数据传送大小(8,16 或 32 位),Address,Data,A31:0,D31:0,nMREQSEQ,Cycle Type,LOCKnTRANS nOPC,MCLK,字节区段锁存使能,ARM7TDMI,D 7

8、:0,D 15:8,31,G,D31:0,8,8,G,BL0,MCLK,nWAIT,ECLK,BL1,32 位存储器接口,nOE,BWE3:0,32,nWAIT,MAS1:0,MCLK,ID31:0,A31:0,A31:2,32,BL3:0,ARM7TDMIMacrocell,Memory Control,Memory32-bit,Board ASIC,nRW,nMREQ,SEQ,16 位存储器接口,16位存储器接口,x2,Board ASIC,nOE,BWE1:0,nWAIT,MAS1:0,MCLK,ID15:0,A31:0,A31:2,32,BL3:0,ARM7TDMIMacrocell,

9、Memory Control,Memory16-bit,nRW,nMREQ,SEQ,32,16,MUXC,TSTATE,TSTATE,A 1,使用字节区段锁存,APE,A31:0,MAS1:0,nWAIT,D31:0,BL3:0,D15:0 latched,D31:16 latched,ECLK,0 x3,0 xC,改变操作状态,T位指示ARM核的状态。高-Thumb 状态,低-ARM 状态,MCLK,nMREQ,SEQ,A31:0,nWAIT,TBIT,D31:0,MAS1:0,ARM Instr.,T Instr.,01-Half Word,10-Word,N-Cycle,BX Instr

10、.Destination Address,取指,在ARM状态,指令是字(32位)在THUMB状态,指令是半字(16位)指令可以从32位数据总线的高或低半段取得。取决于Endian配置和 A1的状态。,Endian Configuration,LittleBIGEND=0,BigBIGEND=1,A1=0,A1=1,D15:0,D31:16,D15:0,D31:16,Thumb Instruction Fetches,取数据,字数据取操作类似于ARM状态的指令取操作。半字数据的取操作类似于THUMB状态的指令取操作。字节数据的取操作取决于Endian 配置和A1:0的状态。,Endian Con

11、figuration,LittleBIGEND=0,BigBIGEND=1,A1:0=00,D7:0,D31:24,D23:16,D15:8,A1:0=10,D23:16,D15:8,D7:0,D31:24,A1:0=11,A1:0=01,Byte Data Fetches,周期类型,非连续(N)在接下来的周期中的地址与前一个地址无关。连续(S)在接下来的周期中的地址与前一个地址一样或大一个操作数(字或半字)。内部(I)处理器正在执行一个内部操作,同时,没有有用的预取执行。协处理器寄存器传送(C).处理器和协处理器之间通讯,不涉及存储器访问,但 D31:0 用于传送数据。合并的内部连续(IS)

12、I和S周期的特殊组合,容许优化存储器访问。,周期类型,nMREQ SEQ Cycle Type 0 0 Non-sequential 0 1 Sequential 1 0 Internal 1 1 Coprocessor register transfer,非连续周期,在接下来的周期中(nMREQ=0)且(SEQ=0)下一个周期将是非连续访问。指令译码 nMREQ and SEQ 条件提前一个周期建立。A31:0 在接下来的周期的相位2阶段有效。对于读操作,D31:0 必须在相位2结束时有效。典型地对于基于DRAM的系统的初始的行访问,N 周期要占用更长的时间。处理器停下来(通过停止时钟)一个

13、或更多的完整的时钟周期(等待状态),以便容许较长的访问时间。,典型的 N 周期,MCLK,nMREQ,SEQ,A31:0,D31:0,nRAS,nCAS,N-Cycle,(DRAM Row Address Strobe),(DRAM Column Address Strobe),MCLK 可以扩展,通过停止MCLK 或者声明nWAIT。,典型的 NS 周期,Destination address(A),A+4,MCLK,nMREQ,SEQ,A31:0,D31:0,nRAS,nCAS,N-Cycle,S-Cycle,ARM state.,内部周期(I),处理器在下一个周期中执行内部操作。例子有乘

14、、寄存器特定的移位操作、在从存储器加载数据之后的回写操作。nMREQ 和 SEQ 先于内部(I)周期一个周期的时间有效。nMREQ=1 指示处理器没有存储器访问操作执行。A31:0 在跟着内部(I)周期的下一个周期的相位2阶段有效。数据总线不驱动。地址总线驱动。,内部(I)周期,nMREQ,A31:0,A,MCLK,SEQ,I-Cycle,合并的 IS 周期(1),处理器执行内部操作。下一条指令的取指地址出现在地址总线上,容许提前译码。nMREQ和SEQ先于存储器访问周期一个周期的时间有效。存储器系统可以设计成识别IS情况。可以在内部周期期间启动对在内部周期期间的地址位置的访问。例如,对于非连

15、续的DRAM的访问,建立和声明 nRAS。在连续(S)周期期间,访问可以结束。例如,nCAS 完成访问。D31:0 可以变为有效,直到连续(S)周期的结束(MCLK的下降沿),而不增加等待状态。,合并的 IS 周期(2),MCLK,nMREQ,SEQ,A31:0,D31:0,nRAS,nCAS,I-Cycle,S-Cycle,Address,存储器周期状态机,C,代码序列,BL label;带连接跳转到“label”;将PC-4存入R14;x;ARM7TDMI是三级流水,该条指令执行时,PC指向“XX”XX.labelLDRR2,R0;从存储在R0中的地址取数,加载到 R2 SUBR2,R2,

16、R3;R2的内容减R3,结果存入R2ORRR2,R2,R4;R2与R4逻辑或操作,结果存入 R2MOVPC,R14;返回到分支之后的指令.,流水线及总线动作,Ab+4,F,E,D,F,D,F,F,BL,X,XX,LDR,SUB,ORR,1,2,3,4,B,Ab,Ab+8,X,XX,LDR,S,S,N,ECLK,SEQ,A31:0,D31:0,E,Data,D,F,5,6,7,Ai+4,Ai+8,Ad,SUB,ORR,Data,S,N,WriteBack,E,E,8,9,D,10,Ai+12,Ai+16,MOV,.,I,IS,S,D,S,nMREQ,F,D,MOV,Ai,F,流水线及总线动作,周

17、期 1-3分支指令及后续指令取自地址 Ab,Ab+4,Ab+8。BL 指令译码和执行在周期2和3中完成。周期 4-6LDR 从非连续地址 Ai 取得,SUB 和 ORR 从连续地址Ai+4,Ai+8 取得。LDR 指令在周期 5 和 6 译码执行。周期 7-8在周期 7 中,非连续地从存储器位置Ad 加载,在周期 8 中,将这个数据写入R2中,由此可见,在内部(I)周期中,下一条指令的地址Ai+12 放在了 A31:0 上。周期 9-10周期 9 是一个合并的IS周期,在周期10的连续访问中,下一条指令MOV从地址Ai+12 取得。,存储器管理信号,nOPC 输出低有效,指示处理器正在从存储器

18、取指。nTRANS 输出低有效,指示处理器处于 user mode.nM4:0 输出当前操作模式,即 User,FIQ,IRQ,Supervisor,Abort,System or Undefined.ABORT 输入指示请求的访问不容许。既用于指令预取,又用于Data abort。,存储器管理,MCLK,A31:0,nM4:0,nOPC,nTRANS,ABORT,Phase 1,Phase 2,ARM7TDMI 外部接口,存储器接口中断调试接口协处理器接口,ARM7TDMI 接口信号,nIRQ,nFIQ,ISYNC,Interrupts,ARM7TDMI,中断,2 个中断源:nIRQ and

19、 nFIQ 输入nFIQ 比nIRQ 优先级高。FIQ 代码可以在进入中断后直接访问执行。可以选择(ISYNC 输入)同步或异步时序。异步时序(ISYNC=0)损失一个周期的同步。同步时序(ISYNC=1)nIRQ 和 nFIQ 必须在MCLK的下降沿的时候已经建立且保持。nFIQ 和 nIRQ 中断可以通过设置CPSR寄存器中的 F 和 I 位屏蔽。,异步时序,ISYNC=0,Earliest Start of Interrupt Sequence,Instruction from Interrupt,vector,Interrupt Vector Address,MCLK,nFIQ/nIR

20、Q,A31:0,D31:0,同步时序,ISYNC=1,Earliest Start of Interrupt Sequence,vector,MCLK,nFIQ/nIRQ,A31:0,D31:0,Interrupt Vector Address,Instruction from Interrupt,ARM7TDMI 外部接口,存储器接口中断调试接口协处理器接口,ARM7TDMI 接口信号,DBGRQ,BREAKPT,DBGACK,DebugInterface,ECLK,EXTERN1:0,DBGEN,ARM7TDMI,JTAG Interface,JTAG 信号,TDI-Input-Test

21、Data InTDO-Output-Test Data OutTMS-Input-Test Mode SelectTCK-Input-Test ClocknTRST-Input-Test Reset(active low),调试 Interface(1),DBGEN 输入(DEBUG ENABLE)必须保持高电平,以容许ARM7TDMI的软件调试。EXTERN1:0 输入输入到 EmbeddedICE 宏单元,容许基于外部条件的断点。,调试接口(2),下面的信号仅用于扩展外部调试。Multi-ICE 不使用这些信号。BREAKPT 输入(BREAK POINT)在指令上标志断点。在数据上标志观

22、察点。如果不用,保持低电平。DBGRQ 输入(DEBUG REQUEST)强制ARM7TDMI核进入调试状态,高有效。如果不用,保持低电平。DBGACK 输出(DEBUG ACKNOWLEDGE)ARM7TDMI进入调试状态的响应信号。高电平指示ARM7TDMI核已进入调试状态。,ARM7TDMI增加的扫描链,TAP信号容许增加额外的链SCREG3:0-输出当前选择的扫描链IR3:0-输出当前已加载的指令TAPSM3:0-输出TAP 状态机状态SDINBS-输出扫描链串行数据输入SDOUTBS-输入扫描链串行数据输出所需其它的移位、捕获时钟及多路复用器或选择线。,BREAKPT-DBGACK

23、时序,MCLK,BREAKPT,DBGACK,A31:0,D31:0,Breakpoint/Watchpoint,DBGRQ-DBGACK 时序,MCLK,DBGRQ,DBGACK,ARM7TDMI 接口信号,nCPI,nOPC,CPB,CPA,CoprocessorInterface,ARM7TDMI,协处理器接口,可以支持多达 16 个协处理器。nOPC 输出:取操作码低有效,指示正在取指令。使能协处理器跟踪处理器指令流水线。nCPI 输出:协处理器指令低有效,指示当前正在执行的指令是一条协处理器指令,且该指令应该执行。CPA 输入:协处理器缺少高有效,当能够执行所要求的协处理器操作的协处

24、理器存在时变低。CPB 输入:协处理器忙高有效,当协处理器准备好要执行要求的协处理器操作时变低。如果没有连接外部协处理器的话,将CPA和CPB拉高。,ARM7TDMI 接口信号,MCLK,nWAIT,A31:0,D31:0,nMREQ,SEQ,nRW,LOCK,nIRQ,nFIQ,ISYNC,ABE,DBE,DBGRQ,BREAKPT,DBGACK,nTRANS,ABORT,nCPI,nOPC,CPB,CPA,Clocks and Clock Control,Interrupts,DebugInterface,MemoryManagement,MemoryInterface,CoprocessorInterface,Data andAddress,BusControl,MemoryAccessControl,nM4:0,MAS1:0,BL3:0,APE,ALE,TBE,ECLK,TBIT,EXTERN1:0,BUSEN,nENIN,DBGEN,BIGEND,ARM7TDMI,JTAG Interface,nENOUT,

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号