新闻中心

EEPW首页>嵌入式系统>设计应用> 一种嵌入式USB2.0主机控制器IP核的研究与设计

一种嵌入式USB2.0主机控制器IP核的研究与设计

作者: 时间:2013-08-31 来源:网络 收藏

2. 2 配置寄存器

  配置寄存器主要分为两种: 状态寄存器和控制寄存器。为了提高代码可读性, 设计中定义了5 个32 位寄存器: USB 命令寄存器; 端口状态寄存器;USB 信息包域A 寄存器; USB 信息包域B 寄存器;传输状态寄存器。 这些寄存器分别寄存数据传输中的一些控制命令, 传输状态, 端口状态改变情况以及传输数据包特性等。

  2. 2. 1 DMA 控制器

  本设计将DMA 控制器设计为两种工作模式:

  DMA master 模式和DMA slave 模式。 采用一个模式选择信号来选择DMA 工作模式, 如下:

  此选择信号值由配置寄存器配置, 当总线没有外部DMA 控制器控制时, USB 主机中DMA 控制器选择工作在master 模式, 在这种模式中, 当USB主机有数据传输的需求时, DMA 控制器向CPU 发起请求, CPU 将对DMA 控制器配置数据传输的起始地址, 数据传输总大小, 传输数据包大小等信息,并释放总线给DMA 控制器接管, 此时DMA 控制器完全接管对总线的控制, USB 主机与存储器之间数据传输不经过CPU, 而直接交换USB 主机外部存储器和USB 主机内数据缓冲器之间数据。 当数据传输结束后DMA 控制器通知CPU 重新接管总线。

  DMA master 模式一般用于高速地传送成组的数据。

  DMA mater 模式的主要优点是速度快。 由于整个数据传输过程不需要CPU 干预, 因此就省去了CPU操作时间, 减少了CPU 工作负担, 减小了对CPU 的要求, 很大程度的降低成本。 当总线有外部DMA 控制器接管时, USB 主机中DMA 控制器工作在slave模式, 此时USB 主机内DMA 控制器模块不起作用, USB 主机与外部存储器之间数据传输必须经过CPU 来启动外部DMA 来搬运外部存储器和USB主机内数据缓冲器中的数据, 这样就加大了CPU 工作量, 对CPU 要求也相应的提高, 数据传输速度也有所下降。

  2. 2. 2 数据缓冲器

  数据缓冲器模块用来缓冲从设备端输入的数据和CPU 端要输出的数据。 本设计采用乒乓缓冲buffer0, buffer1, 在读buffer0 数据的同时在向buffer1 里写入下一个数据, 然后读buffer1 的数据并写数据到buffer0, 这样交替读写数据, 很大程度的提高了数据传输速度。 在IN 传输中, 将从设备端输入的数据写入数据缓冲器中, 数据写完后会发起一个中断信号通知CPU 来取出其中的数据, 同样在OUT 传输中, 将从CPU 过来的数据写入数据缓冲器中, 随后将写入的数据传输到设备端。

  2. 2. 3 根集线器及PIE

  根集线器其实也是一种特殊的设备, 它下游端口还可以继续串联其他集线器, 最终能够为127 个USB 设备提供连接端口, 根集线器主要任务是管理连接到根集线器上的设备以及负责设备与主机之间的数据通信。 设计中通过图3 的状态机来实现根集线器对设备的枚举过程。

图3 枚举状态机

  有高速能力的设备在第一次连接到USB 总线时必须使用全速。 而后, 该设备在总线重置阶段中向根集线器发送一个Chirp K, 如上游的集线器支持高速速率, 则应答一个Chirp K 与Chirp J 交替序列,这样高速集线器和高速设备都使用高速传输速率通信, 如根集线器不支持高速速率, 则忽略高速设备发送的Chirp K, 即不应答ChirpK 与Chirp J 交替序列。 这样高速设备必须维持在全速模式。

  PIE 模块在设计中实现对传输的信息包处理,如包拆分, 包封装等。 其内部设计的子模块有crc. v,pid decoder. v, pid encoder. v, rec packet. v,trans packet. v, timeout. v 等等。 实现传输信息包中pid 的编码, 译码以及对pid 的检错等功能, 同时还包括对信息包的crc 检测及对数据传输过程中超时的检测。

  3 系统验证环境

  为了验证嵌入式USB2. 0 主, USB 接口用了PHY 模型和设备模型, 总线接口采用CPU和存储器模型, 如图4 所示, 外部CPU 和存储器有两个通道与嵌入式USB 主机作用: 寄存器通道和DMA通道。 CPU 通过寄存器通道来读写嵌入式USB 主机中配置寄存器中数据, 而DMA 通道主要用来交换存储器模型与嵌入式USB 主机中数据缓冲器中数据。

图4 嵌入式USB2. 0 主仿真环境



评论


相关推荐

技术专区

关闭