RISC-V MCU中文社区

【分享】 基于hbirdv2的APB总线添加外设(一)

发表于 全国大学生集成电路创新创业大赛 2021-06-25 10:32:11
0
3428
4

队伍编号:CICC1893

队伍名称:夏芯


本篇分享基于hbirdv2的APB总线添加外设的过程,能力有限,希望能够互相学习。

1. APB总线介绍:

APB(Advanced Peripheral Bus),外围总线的意思。是ARM公司提出的AMBA总线结构之一,几乎已成为一种标准的片上总线结构。APB主要用于低带宽的周边外设之间的连接,例如UART、1284等。所以,设计的硬件加速器可以通过APB总线的方式实现与CPU的通信。

2. APB总线实现原理: 

APB总线只支持单个主机,即APB bridge。APB bridge上可进行多个外设的挂载。


3. APB总线读写操作:

关于APB总线的读写操作在网上有很多解读,所以就不详细展开了。这里贴一下读写操作的时序图。

写操作:


读操作:


4. hbirdv2中的APB总线:

我们可以看到hbirdv2的overview中说,蜂鸟二代相较于一代增添了APB接口。这就给我们提供了可以基于APb总线添加外设的平台。


可以简单的对源码进行解读。在e203_subsys_perips.v中可以看到(以UART1为例):


SoC在ICB总线下,引入了icb2apb模块,即完成了ICB总线到APB总线的转换,然后再将APB接口对应的外设挂在了APB总线上。其余的GPIO、SPI、IIC等外设均采用了该实现方式。

再反观ICB总线上的外设地址。


其中还有很多空余的未使用的地址空间。这就给我们提供了很方便的可基于APB总线进行外设扩展的平台。

本文为简介,后续将提供详细实现过程。


喜欢4
用户评论
初醒

初醒 实名认证

懒的都不写签名

积分
问答
粉丝
关注
  • RV-STAR 开发板
  • RISC-V处理器设计系列课程
  • 培养RISC-V大学土壤 共建RISC-V教育生态
RV-STAR 开发板