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]。

[1] [2] [3]  下一页


Tag:接口定义接口技术,微机原理与接口技术接口定义
分类导航
最新更新
热门排行