IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> Xilinx AXI USB2.0 Device IP 手册阅读笔记 -> 正文阅读

[网络协议]Xilinx AXI USB2.0 Device IP 手册阅读笔记

1. 前言

手册链接:
AXI Universal Serial Bus (USB) 2.0 Device v5.0 LogiCORE IP Product Guide

The AXI USB 2.0 Device 在Block Design中的样子:
ip图
IP默认配置:
IP配置页
很明显FPGA逻辑做主,USB设备做从


2. 概要

2.1 USB2.0协议特点:

  1. 半双工
  2. 串行
  3. 支持480MHz(High Speed)和12MHz (Full Speed)
  4. 即插即用
  5. 主从模式
  6. 每个设备在USB 2.0总线上都有一个地址,并且有一个或多个作为数据源或接收器的Endpoint。所有设备都具有系统控制端点(Endpoint0)。

这些都是USB2.0协议内规定的,可以参考博客。USB2.0协议原文阅读笔记


2.2 The AXI USB 2.0 Device介绍

拥有:1个Endpoint0,7个用户Endpoint

2.2.1 Endpoint0:

Endpoint0只处理控制事务,这些事务从一个8字节的Setup包开始,后面跟着0个或多个数据包。数据包最多可为64个字节,IP专门开辟了一个DRAM进行存储。Setup在0x80,数据包在0x00。如果收到Setup包,SetupPkt 会被置位,如果Data包成功发送或接收,FIFOBufFree和FIFOBufRdy会被置位

Setup packetData packet
8byte0~64byte
0x800x00
SetupPktFIFOBufFree / FIFOBufRdy

2.2.2 Endpoint1~7:

  1. 7个用户端点可以配置为 bulk、interrupt、isochronous三种传输模式。
  2. 端点可以被设置为INPUT(to the host)或者OUTPUT(form the host)
  3. 拥有一片乒乓的存储空间用于存储数据
  4. 用户端点数据缓冲区是单向的,并由各自端点的端点配置和状态寄存器进行配置
  5. 缓冲区的大小可以配置为0到512字节用于bulk,64字节用于interrupt,多达1024字节用于isochronous

3. 详细说明

3.1 总体框图

The AXI USB 2.0 Device的总体结构如下图:

框架图


3.2 The AXI USB 2.0 Device工作流程

发送数据:FPGA Logic to USB Device

  1. Host发送一个令牌token,包含以下内容
  • OUT PID
  • 设备的地址(Device address)
  • 端点编号(Endpoint number)
  • 数据(Data )
  1. Device当且仅当数据不存在 Bit Stuff, PID, and CRC 错误的时候回复handshake包

接收数据:USB Device to FPGA Logic

  1. Host发送一个令牌token,包含
  • IN PID
  • 设备的地址(Device address)
  • 端点编号(Endpoint number)
  1. Host等待来自Device的数据
  2. Device检查令牌,没错误的话,Device回复Data
  3. Device等待来自Host的handshake
  4. Host回复handshake

3.3 分模块介绍


3.3.1 Register and Control Logic

包括32位寄存器,它为核心提供控制和状态信息,可以通过AXI Slave Interface访问。


3.3.2 USB 2.0 Serial Interface Engine (SIE)

USB 2.0串行接口引擎(SIE)充当如下作用:

  1. 在字节级处理USB流量的序列化和反序列化
  2. USB数据的复用和解复用
  3. 处理USB 2.0的状态转换,如挂起、恢复、USB重置和远程唤醒信号(以从挂起模式中唤醒主机)。
  4. 12个引脚的ULPI接口连接到PHY。
  5. 从USB到FPGA的数据从PHY接收,进行错误检查,并加载到DPRAM的适当区域。
  6. 从FPGA到USB数据从DPRAM加载,协议包装,然后当协议允许时,呈现给PHY,每次1Byte

3.3.3 Dual Port Block RAM (DPRAM)

功能:DPRAM是SIE和AXI接口之间的数据存储区域

特点:

  1. DPRAM的端口A由SIE使用,端口B由处理器/DMA控制器使用。这两个端口都是32位宽的
  2. 有两块DPRAM
DPRAM1DPRAM2
Endpoint 端点0 FIFO和控制寄存器区域Endpoint1-7的FIFO
64×8位2K×8位

注:控制寄存器区域定义了内存是如何安排的,并报告每个FIFO缓冲区的状态(准备就绪、未准备就绪或计数)。

  1. 每个FIFO都是双缓冲的(乒乓),以帮助支持USB 2.0可能的高吞吐量。
  2. SIE将DPRAM视为FIFO
  3. 固件或硬件将DPRAM视为普通RAM,可以通过AXI Slave Interface访问

3.3.4 AXI Slave Interface

  1. 可以读写Register and Control Logic和DPRAM
  2. 支持DPRAM的字节、半字和字传输,但寄存器只支持字传输。

3.3.5 AXI Master Interface

  1. 在DMA模式下作为AXI主模式执行读取和写事务
  2. 在DMA模式下,根据DMA完成情况和DMA错误条件生成中断

3.3.6 Direct Memory Access (DMA) Controller

  1. 可选
  2. DMA控制器在DPRAM2和AXI接口上的外部存储器设备或外设之间提供简单的DMA服务。
  3. 核心中的DMA控制器只执行在DPRAM2和外部存储器之间的数据传输

注:DMA控制器将数据从源地址传输到目标地址,而无需处理器干预


3.3.7 ULPI PHY

USB PHY可以是任何与ULPI兼容的PHY,与USB直接相连,负责将字节数据转换为比特数据。


3.4 端口说明

说明:

  1. Debug端口只有在勾选了 Include Debug Ports后才会显示出来,调试的时候可以加进去
  2. AXI Slave Interface和 AXI Master Interface都是标准的,省略了。
  3. m_axi_*z只有在使能了DMA才会出现
    在这里插入图片描述
    在这里插入图片描述

3.5 寄存器表

不贴图了,太多了,下载手册用的时候找就可以了


4. 备注

常用一些偏移地址:

  1. Endpoint configuration space (offset 0x0000)
  2. Setup packet storage space (offset 0x0080)
  3. RAM for Endpoint 0 buffer (offset 0x0088)
  4. register space for the USB registers (offset 0x0100)
  5. RAM for Endpoint 1 to 7 buffers (offset 0x4000)
  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-09-21 01:01:36  更:2022-09-21 01:01:41 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 21:45:35-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码