ZYNQ系列的实用奇葩操作(3)--PS-PL互联之从CPU角度理解AXI接口

  上一篇文章讲了CPU(本章的CPU都是指的ARM内核,即中央处理单元,不包括SOC里包含的外设等)如何处理一个C语言的指针写入操作,本章继续深入理解。要是上篇看得头痛,坚持住,因为后面还有更头痛的。

    我们现在来想一想, CPU上挂载了一组内存,现在使用str r2, [r3] 这行代码往内存里写数的流程(这里r3对应的地址是分配给了DDR,不考虑MMU)。

    CPU会给出一个地址和一个数据,理想情况下地址和数据线直接连到外部储存上(说的就是你,上古神器8051单片机,这图片够复古吧)。

  随着速率越来越高,带宽越来越大,CPU直连内存不现实了,而且现在的SOC那么多外设,不可能每个外设都要我CPU来直接处理吧。那些大佬就想了一个办法,CPU只管地址线和数据线,其它的交给小弟去办。小弟那么多,总得有个统一的专线吧,为此,ARM就推出了AXI总线。AXI总线是基于地址和数据的片内总线协议。。。。。。懒得复制粘贴了,后面的自行百度,我们的目的是理解ZYNQ的AXI总线。如下图,ZYNQ芯片里的ARM处理核访问其他外设统一使用了AXI总线(砖头,你终于想起你是在讲AXI总线啦):

图片

   上面这个图片很清楚的展示了CPU如何通过AXI总线与外设互联。

  A通道的AXI 64bit接口连接到了DDR控制器(为啥中间有个Cache当电灯泡?这个涉及MMU、CPU和DDR的速度匹配等问题,不是本文重点)。

   B通道通过Central Interconnect连接USB、ETH、UART、SDIO等外设。AXI总线支持多主多从结构,Central Interconnect就是包括这个功能的一个AXI总线矩阵,类似于网络里的交换机。

   1、2、3通道是第一章讲的和PL交互的几种AXI接口。从总线拓扑上可以看出来,PL访问PS的外设是不需要经过CPU的。

  1号通道对应的是AXI_GP_Master接口,这是CPU通过Central Interconnect扩展了2个AXI主接口。

  2号通道对应AXI_GP_Slave接口,意思是PL端可以通过这个接口,经过Central Interconnect总线矩阵访问PS的各个外设,如UART、SPI、DDR等。

  3号通道对应AXI_HP_SLAVE接口,从上图可以看出它直连DDR控制器,适合做大数据量传输。

    本篇文章从CPU操作地址和数据线开始,延伸出了AXI总线。下一篇文章从外设的角度去理解PS-PL互联。好日子快来啦~

The End

公众号:嵌入通信的砖 每周更新嵌入式技术

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值