在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 9531|回复: 11

请教一个关于AHB2APB Bridge的问题

[复制链接]
发表于 2007-8-31 11:19:28 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
AHB2APB Bridge作为AHB总线上的从设备,APB总线上唯一的从设备。
假如APB桥上挂一个UART模块,APB总线时钟和UART模块的时钟不相关,通过异步fifo缓存数据。

假如出现APB往UART模块的fifo写如数据,但是UART模块还没来得及发出去的情况,
为了不让fifo数据被覆盖,

我的问题有如下两个:
1、UART模块是不是要通知AHB2APB Bridge使AHB2APB Bridge产生RETRY或SPLIT类型的response呢?

2、如果需要有问题1的操作,UART模块如何通知AHB2APB Bridge呢?APB总线好像没有用于实现问题1的操作的信号啊。

请前辈们不啬赐教!
发表于 2007-9-3 02:10:35 | 显示全部楼层
1,这个功能通过软件编程实现更灵活吧?
2,如果使用硬件实现,在ahb/apb桥产生uart_sel信号的时候,设置足够的延迟周期hready,同时控制apb的读写信号的产生。
3,或者用中断实现?
高手出来
发表于 2007-9-3 02:14:10 | 显示全部楼层
或者fifo作为ahb_slave挂在ahb总线上,通过apb配置uart,通过ahb读写数据
发表于 2007-9-3 11:24:50 | 显示全部楼层
从协议上看,APB从方是没有握手信息给AHB/APB桥的(类似于AHB的HReady信号),因此,原则上,APB从方必须无条件接收AHB/APB桥的写数据,但是如果AHB/APB桥是你自己设计的(不使用第三方的IP),那么可以根据APB总线的时钟频率和UART的时钟频率的关系,当APB访问UART时,可以在AHB/APB桥内部逻辑设置两次访问的间隔时间以保证APB能正确传递数据给UART;如果AHB/APB桥是用第三方的IP,那么也可以根据AHB主方可能一次发送或接收的最大数据长度以及APB总线的时钟频率与UART发送数据速度的关系,恰当的设置FIFO的深度,当然有个前提条件是,AHB/APB桥不会源源不断发送数据给UART,这种情况实际上也不可能出现,因为UART不会是整个系统的唯一一个外设。所以分析AHB主方与UART的数据交互的情况,可以设计一种方法确保二者能够正确通信。

[ 本帖最后由 karnizhu 于 2007-10-16 20:43 编辑 ]
发表于 2007-9-3 11:30:05 | 显示全部楼层
楼上的解释很好。
发表于 2007-9-3 12:21:23 | 显示全部楼层
恩,说得比我清楚,我也是这个意思,哈哈
发表于 2007-9-3 15:21:23 | 显示全部楼层
AHB/APB桥不好修改吧。
可以在APB处作个register标示是否可以写数据。
AHB master每次写数据前确认这个标示为可以写数据。
至于间隔,可以由软件调用定时器。
主要都是软件的事情啦。
发表于 2007-10-22 10:36:35 | 显示全部楼层
UART是APB的从设备,标准的AMBA 2.0总线协议里是没有类似于Hready的握手信号。所以可以通过软件的方式来处理,比如设置一个UART的状态寄存器,当发送FIFO满的时候,该状态寄存器发生变化,同时通知CPU不能往FIFO里面写数据。
发表于 2010-4-19 16:30:29 | 显示全部楼层
可能软件控制更容易一些
发表于 2010-4-19 19:47:26 | 显示全部楼层
我认为,这一问题应该由UART内部的中断机制和寄存器信息协同软件解决。
例如在ARM所做的UART IP(PL011)中,其data register的第11位是overrun flag,表示UART的输入FIFO是否溢出。在flag register中,有四位表征transmit & receive fifo的空满状态。而在interrupt register中可设置在fifo中有多少数据时产生相应中断。因此在UART的驱动设计时,传输数据的机制都应以这些寄存器的状态为控制信息,避免因溢出而产生的错误。
作为SoC设计,总线的标准化是为了能够易于集成不同的第三方IP。因此,为了满足外设总线的简易性,不得不适当增加IP本身的复杂度。不然,为了一个IP来修改总线协议,往往不得不修改所有总线上的IP。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

×

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-5-22 14:15 , Processed in 0.032054 second(s), 10 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表