ARM Cortex-M4微处理的总线简单理解

         看了很久的《ARM Cortex-M3与Cortex-M4权威指南》,其中关于总线以及数据传输的描述零散而难以理解,看过AHB-Lite总线协议后恍然大悟(不一定正确,可我将这样认为),现在把它写下来:
        1.ARM Cortex-M3与Cortex-M4中的总线总体可以分为三类,
                第一类  D-CODE、I-CODE总线,
                第二类  AHB-Lite总线,
                第三类  诸如APB等的其它低速总线

        第一类 D-CODE、I-CODE总线
                I-CODE、D-CODE总线只用于访问程序存储区即0X00000000到0X1FFFFFFF地址区域,该总线对这一区域的访问非常高效快捷。I-CODE、D-CODE是由微处理器核心直接引出的物理上独立的可并行传输的两条总线,I-CODE被叫做指令数据总线,D-CODE被叫做数据总线,虽然物理独立,但它们之间也存在一个仲裁器,当I-CODE、D-CODE总线同时访问同一地址时I-CODE优先、D-CODE被延迟。微处理器核心通过I-CODE对存储区的访问是“同步即时的”,D-CODE对存储区的访问是基本“同步即时的”。同时AHB-Lite总线也可以访问程序存储区,但其是通过D-CODE总线实现这一访问的,在D-CODE、AHB-Lite存在一个总线桥,这个总线桥不是简单的总线桥,是协议交换型总线桥。
        第二类  AHB-Lite总线
                AHB-Lite总线可以理解为信息高速干道,接入这个干道的设备分为两种,一种是主设备(发起访问),另一种是从设备(响应访问),其间存在多个流控制信号,主设备之间是竞争发射关系这一点类似于以太网,其中存在仲裁机构来解决优先问题,其通讯协议复杂,可以理解为复杂协议的并行通讯协议。可以看出所有的访问是异步的,其是一个主机申请-总线控制器响应-总线控制器对从设备访问-数据回传的访问模型,其最重要的一点是访问的时长是不可预知的。
         第三类 APB等的其它低速总线
                APB等的其它低速总线的主要作用是将低速设备桥接到AHB-Lite总线上,桥接器中存在一定的缓冲缓存机构,以保证AHB-Lite总线不因访问低速设备而降低车速。

基于上面的理解可以得出一些认识:
 1.程序的执行和AHB-Lite总线访问是异步的,程序可以在写存储单元实际为完成的情况下继续下面的指令,但Cortex-M4微处理器读存储器时会等待读存储单元实际到位后再继续下一指令。如果写存储单元完成信号没有返回微处理器,微处理器会在下一个存储单元访问指令执行前等待信号,如果信号严重超时,AHB-Lite总线会发起总线错误异常中断。故编程时在写存储单元后,要等待一些时间才能生效,期间不能有与之相关的其它操作,当然可以使用微处理器提供的屏蔽指令解决这一问题。
2.过多的其它主机访问会降低AHB-Lite总线的速度。
3.关于PPB总线的问题,PPB总线是微处理器私有外设总线,其是基于APB协议的总线。其具体的交换协议怎样我们没有去搞清楚它,但对于诊断设备的数据连接可以理解为其有3条数据通路,第一条直接连接处理器核心高速获取处理器工作情况,第二条处理器核心通过AHB-Lite总线以及PPB总线等多层桥接后低速访问诊断设备的控制设定寄存器,第三条外部调试设备访问通路。可以理解为诊断设备就是一个路由器,用于转换和连接这三条通路。
4.非对齐访问都是由 AHB-Lite总线多次对齐访问后转换的。
  • 1
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值