USB2.0设备控制器IP核的AHB接口技术
[09-13 16:54:05] 来源:http://www.88dzw.com 接口定义 阅读:8603次
文章摘要:摘要 介绍了USB2.0设备控制器IP核的AHB接口的设计。解决了双时钟域问题;实现了多事务DMA控制,减少了块传输的中断次数;缓存采用乒乓机制,并对外隐蔽了双缓冲区。最后用Verilog完成RTL代码,并通过充分验证,证明接口符合AHB协议,且完成既定所有功能。引言通用串行总线USB 2.0接口是目前PC机的主流接口,可提供480 Mb/s(60 MB/s)的高速数据传输,具有即插即用、热插拔、接口体积小巧、节省系统资源、传输可靠、提供电源、良好的兼容性、共享式通信、低成本等优点。由于USB接口的优点和流行,当今嵌入式设计要与PC连接,首选USB接口。ARM 公司提出的AMBA总线,由于其本
USB2.0设备控制器IP核的AHB接口技术,标签:接口技术,微机原理与接口技术,http://www.88dzw.com摘要 介绍了USB2.0设备控制器IP核的AHB接口的设计。解决了双时钟域问题;实现了多事务DMA控制,减少了块传输的中断次数;缓存采用乒乓机制,并对外隐蔽了双缓冲区。最后用Verilog完成RTL代码,并通过充分验证,证明接口符合AHB协议,且完成既定所有功能。
引言
通用串行总线USB 2.0接口是目前PC机的主流接口,可提供480 Mb/s(60 MB/s)的高速数据传输,具有即插即用、热插拔、接口体积小巧、节省系统资源、传输可靠、提供电源、良好的兼容性、共享式通信、低成本等优点。由于USB接口的优点和流行,当今嵌入式设计要与PC连接,首选USB接口。
ARM 公司提出的AMBA总线,由于其本身的高性能和ARM 处理器的广泛应用,已经成为SoC 设计中广泛使用的总线标准。AMBA rev20中的AHB,采用地址/数据分离格式,支持固定长/不定长猝发(burst) 交易、分裂(split) 交易特性和多个主设备的总线管理,具有高带宽、高性能特性,适合于嵌入式处理器与高性能外围设备、片内存储器及接口功能单元的连接。
根据两种总线的特点和广泛支持,为了给嵌入式SoC系统提供USB接口,需要设计USB和AHB间的桥接IP核(Intellectual Property Core)。本文介绍USB 2.0设备控制器IP中的AHB接口部分设计。
1 设计概述
1.1 协议概述
设计前首先需要了解USB和AHB数据传输的特点。
USB上的数据组织为事务进行串行传输,最小数据单位是字节。USB传输始终是由主机方发起的,设备方只负责响应。USB的数据传输分为块、同步、控制、中断四种传输,本IP支持前三种。对于块传输,默认上层协议为BULK ONLY协议[1]。
AHB总线采用单时钟域同步设计。数据、地址线宽32位,采用2级流水线结构,地址、控制信号比数据信号早一个时钟周期。可用猝发(burst)传输来传数据。只需一个时钟周期就可完成总线交权。由于是嵌入式的SoC片上总线,故强调的是面积、工作频率和功耗等。详细情况参见USB[13]和AMBA协议[4]。
1.2 设计规格
本IP核的AHB接口,最主要的任务是控制数据在缓存和AHB总线间正确传输,使接口时序满足AHB协议,并协助AHB上的MCU(默认为ARM)控制数据传输;同时要处理与USB控制部分的连接问题,控制USB端的中断申请和寄存器输出。
为了适用于大数据量的传输,本IP要求的控制传输是用非DMA方式,块、同步用DMA方式,且已知外部有DMA控制器(默认为ARM双Master的DMA控制器[5])。
在总体设计中有如下关键问题,决定了IP中AHB接口设计的细节。
① 双时钟域问题。USB时钟是60 MHz,设计的AHB时钟频率是30~133 MHz。跨时钟域的控制信号需要用同步器同步。
② 数据的缓冲问题。IP中使用32位数据位宽的流过式DPRAM(双口SRAM)作为USB和AHB间的数据缓冲。每个端点有固定的缓冲区,使各端点间透明;使用乒乓机制,每个端点两个缓冲区,减小USB和AHB总线速率的相关性,使数据传输更流畅;同时DPRAM的两个口分属不同时钟域,起到隔离数据的双时钟域问题的作用。
③ 是否需要AHB Master的问题。IP在USB端是从设备,在AHB端是主设备。也就是AHB上传输的都是由本IP发起的。本来设计中有一个AHB Master,当作DMA控制器。现在由于已经有外部DMA控制器,因此IP只需要AHB Slave,用中断告知ARM信息,由ARM配置外部DMA控制器来进行DMA传输。所以为了减小面积和功耗,去掉AHB Master。
④ 要实现多事务DMA才发一次中断,减少中断次数。由于块传输通过上层BULK ONLY协议已经知道多个事务数据长度,所以前面的事务DMA可以用硬件处理,最后一次事务完成后才报中断。
⑤ AHB地址划分。每个端点在AHB上只有一个固定地址,看作一个I/O接口,隐蔽双缓冲区和缓冲区内部的相对地址,而IP中每个内部寄存器有一个单独的AHB地址。
2 AHB接口设计实现
2.1 模块划分
如图1所示,根据功能可把AHB接口分为如下6个模块:
① CTRL,产生对外部DMA控制器的DMA申请信号,并接收回应信号;负责控制多个通道的多事务长度的DMA结束中断;改变REG模块中的DMA配置信息[56]。
《USB2.0设备控制器IP核的AHB接口技术》相关文章
- › 基于USB2.0的轨道电路信号车载采集与分析系统
- › USB2.0接口PC TV MicStickD参考设计
- › USB2.0设备控制器IP核的AHB接口技术
- › 基于USB2.0的高速图像传输系统设计
- › 基于USB2.0的红外数据传输系统的设计与实现
- › USB2.0摄像头微处理器硬件设计及外围电路分布
- 在百度中搜索相关文章:USB2.0设备控制器IP核的AHB接口技术
- 在谷歌中搜索相关文章:USB2.0设备控制器IP核的AHB接口技术
- 在soso中搜索相关文章:USB2.0设备控制器IP核的AHB接口技术
- 在搜狗中搜索相关文章:USB2.0设备控制器IP核的AHB接口技术