标签:slaves 传输过程 ext 应用程序 service 忽略 pwrite 地址 请求
[TOC]
不是三态总线,读数据总线和写数据总线分开
Endian序
对于IP设计, 只有应用面比较广泛的应用程序才支持两种印第安序。
Endian序: 大印第安(大端序)序就是在存储数据时,高位放在低地址是大印第安序, 高位放高地址是小印第安序(小端序) 小端序:
大端序:
HBUSREQ
HLOCKx
HGRANTx
HMASTER[3:0]
HMASTLOCK
HSPLITx[15:0]
HGRANT和HREADY都为高时授权总线控制地址。
M1进行完一次burst传输后将授权移交给M2
对于固定长度的burst传输,不必持续请求总线
对于未定义长度的burst传输,主设备应该持续送request(HBUSREQ)信号,直到开始最后一次传输。
如果没有主设备请求总线,则给缺省主设备grant信号,且HTRANS=IDLE
建议主设备在锁定总线传输结束之后插入IDLE传输,以重置仲裁优先级。
由主设备开始传输
如果从设备需要多个周期才能获取数据,则从设备给出一个SPLIT传输响应,从设备记录主设备号:HMASTER
接着仲裁器改变主设备的优先级
仲裁器grant其他的主设备,总线主设备移交。
当从设备准备结束本次传输,将设置给仲裁器的HSPLITx信号的相应位
仲裁器恢复优先级
仲裁器grant主设备,这样主设备可以重新开始传输
结束
当多个不同的主设备试图访问同一个从设备,这个从设备发出了SPLIT或RETRY信号,这是很可能发生deadlock
从设备最多可以接收系统中16个主设备的请求。只需要记录主设备号(忽略地址和控制信号)
给出RETRY响应的从设备在某一时刻只能由一个主设备访问,可以使用一些硬件保护机制,比如ERROR
AHB 的简化版
简单的从机
建议:
APB所处的位置:
AHB中的包含了APB slave的地址,APB中又包含了下层外围设备的地址。
写传输:
读传输:
AHB读APB从机的数据:
可见,APB从机的PRDATA信号线可以直接连接到AHB的读信号线(读Data没有延迟) 因此可以使得AHB工作在比较高的频率。
AHB写APB从机:
Back to Back 传输:
主设备被arbiter grant之后,可以访问总线上的所有从设备
一般IP同时拥有主从接口。
CPU通过读写DMA的总线接口,可以读取DMA的状态(读slave),以及配置DMA的工作模式(写slave)
Step 0:
Step 1&2:
Step 3: 此时控制权移交给DMA,DMA作为master对两个slave进行数据搬运(先读入再写出)
Step 4:
这个箭头画反了,反正就是表示CPU读取DMA。标签:slaves 传输过程 ext 应用程序 service 忽略 pwrite 地址 请求
原文地址:https://www.cnblogs.com/lyc-seu/p/12674597.html