请教关于amba总线的问题
时间:10-02
整理:3721RD
点击:
我想把usb控制器挂到amba总线上,老师说是挂到apb总线上,但是在apb总线上它只能做slave这种结构下,host发给usb的数据怎么能传送到指定端点呢?
你指的host是什么?
我不知道你指的host是什么?如果是你设计芯片使用的USB core可以作为host,那么作为APB Slave没有问题啊,如果是外部设备作为host,我想如果挂在APB总线的话,可以使用两种方法:(1)外部host需要向USB core传数据时,通过中断通知AHB master(一般是processor core);或者当USB core接收到外部host的数据时,向processor core发中断;(2)AHB master不断的查询USB core的某个寄存器,一旦外部host向USB core创送数据,USB core置该寄存器有效,这样AHB master就能够“知道”需要从USB core接收数据,这样非常消耗处理器和总线资源,而且不好控制。不知道我的看法对不对?
不知道你在AHB Bus 上有没有DMA Controller, 如有你只要有与DMA controller 的DMA 的握手信号就可以了. 不过为什么不挂在AHB BUS 上?
只要每一个端点都有对应的FIFO,并且在收到数据后产生中断,总线上的master就可以从对应的fifo中取数据了。同样的,在device需要发数据时,master先将数据存入指定端点的fifo中,在设置发送位就可以了。
apb要比ahb简单一些啊
如果usb只作slave的话,你的老师说得没错
看一下apb的spec吧