DWC USB2.0协议学习1--产品概述

目录

1. 系统概述

1.1 AHB总线接口

1.2 Data RAM接口

1.3 PHY 接口

1.4 外部DMA控制器接口

1.5 其他可选接口

1.6 发送和接收FIFO

2. 功能列表

2.1 一般功能

2.2 可配置功能

2.3 应用接口功能

2.4 MAC-PHY接口特征

2.5 系统Memory体系结构

2.6 Non-DWORD对齐支持

2.7 内部Memory特征

2.8 软件功能

2.9 功耗优化


本章开始学习记录DWC_otg控制器(新思USB2.0)的特点、功能和应用。

新思USB 2.0 IP主要有两个文档需要参考:

《DesignWare Cores USB 2.0 Hi-Speed On-TheGo (OTG) Data book》

《DesignWare Cores USB 2.0 Hi-Speed On-TheGo (OTG) Programming Guide》

前者是描述IP的架构信号、配置寄存器等,后者是编程指导驱动编写主要参考这一部分进行。

1. 系统概述

首先是系统概述,站在系统层面来分析DWC_otg控制器,对DWC_otg控制器的功能做简单概述,典型的系统框架结构图如下图1-1所示,其中浅蓝色部分是根据配置决定,黑色部分是所有配置都有的。

1.1 AHB总线接口

上图1-1左边部分是AHB总线接口,这一部分主要是实现CPU和DWC_otg控制器信息交互功能。

AHB Slave I/F:AHB slave接口,此时DWC_otg控制器是从设备,CPU通过该接口对DWC_otg的控制和状态寄存器(CSR)、数据FIFO和队列进行读写访问。

AHB Master I/F(可选的):AHB master接口,对应DMA部分描述,使能DMA时,DMA是主设备,负责在系统的memory和内部的RAM之间搬运数据。

1.2 Data RAM接口

Data FIFO RAM/IF上图1-1下面部分是Data RAM接口,连接一个外部单端口FIFO RAM(SPRAM)用于数据存储

1.3 PHY 接口

DWC_otg控制器支持3种PHY接口,如上图1-1右边部分所示:

(1)UTMI+ Level 3 PHY 接口(Revision 1.0 or HSIC)

UTMI+PHY可以是单向或双向的,可以配置为8、16或8/16位数据总线(软件可配置)。UTMI+接口可以配置为与符合修订版1.0的PHY或符合HSIC的PHY一起工作。

(2)ULPI PHY 接口 (Revision 1.1)

ULPI PHY可以是单向或双向的,具有8位SDR或4位DDR总线(软件可配置)。

(3)USB 1.1全速串行收发器接口

USB 1.1全速串行收发器可以作为专用接口,也可以在芯片外部PHY的UTMI+或ULPI接口上共享引脚(软件可配)。

1.4 外部DMA控制器接口

当前DWC_otg控制器已经不支持外部DMA接口,不展开。

1.5 其他可选接口

  • AHB Master 接口(使能内部DMA时,DMA是主设备,负责发送和接收数据到AHB总线上)。
  • 供应商控制接口可以访问ULPI和UTMI+ PHY寄存器
  • I2C接口,用于USB 1.1 FS模式下的OTG控制
  • 通用I/O (GPIO)接口
  • SOF更新翻转接口(不用于DWC otg)
  • SOF输入计数接口(不用于DWC otg)
  • 设备和主机模式下支持Scatter/Gather DMA
  • 设备模式下支持多处理器中断

1.6 发送和接收FIFO

DWC_otg控制器上的发送和接收FIFO接口用于将数据移入和移出数据FIFO RAM。这些分为周期性(用于同步和中断传输)或非周期性(用于批量传输和控制传输),总结如下:

  • 非周期性主机OUT传输公用一个Tx FIFO。
  • 周期性主机OUT传输,可以选择一个独立周期传输FIFO。
  • 设备模式下IN端点可选公用非周期性Tx FIFO,和多个周期性TxFIFO
  • 用于周期性/非周期性设备IN传输的每个IN端点可选专用Tx FIFO
  • 主机模式中断OUT和设备模式中断IN(仅在Shared FIFO 操作模式)传输可以编程为通过非周期传输FIFO或周期传输FIFO。

2. 功能列表

2.1 一般功能

  • 支持OTG2.0和OTG1.3,软件可配.OTG2.0支持ADP (Attach detection Protocol)。
  • 支持3种速率:
  1. High-Speed (HS, 480-Mbps)
  2. Full-Speed (FS, 12-Mbps)
  3. Low-Speed (LS, 1.5-Mbps)。
  • 支持多种低功耗相关配置选项。
  • 支持DMA和非DMA操作方式。
  • MAC-Phy支持多种接口。
  • AHB和PHY接口支持使用不同的时钟,以简化集成。
  • 包括控制端0在内,一共最多支持16个双向端点。
  • DWC_otg作为设备使用时,UTMI+ PHY时不支持低速模式。
  • 最多支持16个主机通道。在主机模式下,当需要支持的设备的端点数量大于支持的主机通道数,软件可以重新编程通道来支持多达127个设备,每个设备有32个端点(IN + OUT),最多4064个端点。
  • Host Buffer DMA模式, Slave模式支持外部HUB连接。
  • 包括自动ping功能。
  • 支持低速模式下的Keep-Alive和高速/全速模式下的SOFs。

2.2 可配置功能

  • 可根据用户需求,使用coreConsultant utility配置控制器。
  • 能够为低功耗模式选择多个电源轨
  • 可选择多种DMA操作模式
  • 可根据需求,选择Mac-Phy接口类型

2.3 应用接口功能

  • AHB的应用程序接口:
  1. AHB从接口,用于访问控制和状态寄存器(CSRs)、数据FIFO和队列。
  2. 可选的AHB主接口,内部DMA使能时给Data FIFO访问使用。
  3. 特定配置下AHB时钟最高可达270MHz。
  • AHB总线上只支持32位数据。
  • 支持通过pin配置小端或者大端模式。
  • AHB从接口支持INCR4,INCR8,INCR16,INCR和SINGLE传输。
  • AHB主接口支持拆分、重试和错误AHB响应。AHB从机接口上不产生拆分和重试响应。
  • DMA模式AHB主接口支持软件配置AHB Burst类型。
  • 只能处理固定的burst address对齐,比如INCR16则地址的位[5:0]都要是0
  • 在AHB主接口上可生成AHB忙周期。
  • 可处理1KB的边界。

2.4 MAC-PHY接口特征

  • 支持以下MAC-PHY接口
  1. UTMI 8/16
  2. ULPI
  3. HSIC
  4. IC_USB (Low/Full速)
  5. FS 和UTMI共享
  • 支持UTMI+ Level 3 接口(Revision 1.0, February 25th, 2004). 8, 16, 和 8/16位数据总线。
  • 支持ULPI接口 (Revision 1.1rc, September 1st, 2004), 8-位 SDR, 4-bit DDR, 6-pin Serial, 3-pin Serial 和 Carkit。
  • UTMI+ L3 和 ULPI可同时存在,由软件选择,或者直接配置只使用一种。
  • 只有在选择了UTMI+的情况下,才能选择HSIC接口。否则无法选择HSIC接口
  • I2C接口。
  • 支持UTMI-to-UTMI Bridge。

2.5 系统Memory体系结构

  • 支持Slave,内部DMA 模式。
  • 使用内部DMA模式时还支持Descriptor-Based Scatter/Gather DMA。

2.6 Non-DWORD对齐支持

  • 主机模式:

     Scatter Gather DMA模式,IN和OUT传输,支持缓冲区的Non-DWORD对齐。

     Buffer DMA和Slave模式,IN和OUT传输,不支持缓冲区的Non-DWORD对齐。

  • 设备模式:

    Scatter Gather DMA模式,IN和OUT传输,支持缓冲区的Non-DWORD对齐。

    Buffer DMA和Slave模式,IN和OUT传输,不支持缓冲区的Non-DWORD对齐。

2.7 内部Memory特征

  • 在Slave和DMA模式,可以给设备的每个IN端点都配置一个专用的传输FIFO。每个FIFO可以保存多个包。
  • 包括可选的Remote Memory Support接口,用于向控制器发出DMA写入完成事件的信号。
  • 利用单端口RAM替代双端口RAM以减少面积和功耗。
  • 支持传输时动态修改端点FIFO的大小。
  • 支持端点FIFO可不是2的指数倍对齐,以利用连续的存储位置。
  • 在主机和设备模式下共享硬件寄存器,以减少门控数量。
  • 设备模式时如果启用DMA并选择专用的Tx FIFO,DMA收发阈值可配,阈值可以通过全局寄存器配置,为了支持配置阈值AHB时钟必须60MHz以上。

2.8 软件功能

为了减少门数和提供灵活性,一些功能由软件去实现:

  • 设备模式,软件协助硬件实现非周期IN时序(仅适用Shared FIFO操作)。
  • 软件处理USB命令(检测SETUP事务,并将其命令有效载荷转发给应用程序进行解析)。
  • 软件处理USB错误。

2.9 功耗优化

  • 有源时钟门控功能:允许控制器在USB和AHB通信的IDLE时段内关闭AHB和PHY时钟,来降低动态功耗。同样也可以在SPRAM未使用时关闭RAM的时钟输出。
  • 支持Link Power Management (LPM)。
  • 几个节能功能,包括两个用于高级电源管理的电源轨。可以根据自己的要求选择以下节能选项:
  1. 关闭时钟门控
  2. 部分断电
  3. 休眠
  • USB Suspend,LPM和Session-Off模式支持PHY时钟门控。
  • USB Suspend和Session-Off模式支持AHB时钟门控。
  • USB Suspend和 Session-Off模式支持部分掉电。
  • 层次结构支持多个电源轨,以便在挂起期间启用休眠功能。
  • 输入信号需要powered-off的块驱动到safe 0
  • Data FIFO RAM不使用时关闭片选。
  • Data FIFO RAM支持时钟门控。
  • 设备和主机模式都支持在USB Suspend,LPM和Session-Off 模式时切换到32-KHz低频时钟。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/746341.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

实训作业-人事资源管理系统

er图 模型图 DDL与DML DROP TABLE IF EXISTS departments; CREATE TABLE departments (department_id int(11) NOT NULL AUTO_INCREMENT COMMENT 部门ID,department_name varchar(100) NOT NULL COMMENT 部门名称,PRIMARY KEY (department_id),UNIQUE KEY department_name (de…

《黑神话悟空》电脑配置要求

《黑神话:悟空》这款国内优秀的3A游戏大作,拥有顶级的特效与故事剧情,自公布以来便备受玩家期待,其精美的画面与流畅的战斗体验,对玩家的电脑配置提出一定要求。那么这款优秀的游戏需要什么样的电脑配置,才…

BenchmarkSQL 对 MySQL 测试时请注意隔离级别!

BenchmarkSQL 是一款经典的开源数据库测试工具,内含了TPC-C测试脚本,可支持 Oracle、MySQL、PostgreSQL、SQL Server以及一些国产数据库的基准测试。 作者:李彬,爱可生 DBA 团队成员,负责项目日常问题处理及公司平台问…

GitLab配置免密登录之后仍然需要Git登录的解决办法

GitLab配置免密登录之后仍然需要Git登录的解决办法 因为实习工作需要,要在本地拉取gitlab上的代码,设置了密钥之后连接的时候还需要登录的token,摸索之后有了下面的解决办法。 方法一: 根据报错的提示,去网站上设置个人…

pytorch基础知识Tensor算术运算

1、Tensor的基本概念 标量是零维的张量,向量是一维的张量,矩阵是二维的张量 2、Tensor的创建 import torch"""常见的几个tensor创建""" a torch.Tensor([[1,2],[3,4]]) #2行2列的 print(a, a.type()) print(torch.on…

web图片怎么导入ps?这个方法给你轻松解决!

随着WebP格式图片因其体积小、加载快的优势在网站中日益普及,对于图片编辑者来说,能够直接在Photoshop中打开和编辑WebP文件变得尤为重要。 WebPShop插件应运而生,它是一个专为Photoshop设计的模块,支持打开和保存WebP图像&#…

队列与循环队列

目录 1. 前言: 2. 队列 2.1 队列的概念 2.2 队列的实现 2.3 队列的声明 2.4 队列的初始化 2.5 队列的入队 2.6 队列的出队 2.7 队列获取队头元素 2.8 队列获取队尾元素 2.9 队列获取有效数据个数 2.10 队列判断是否为空 2.11 打印队列 2.12 销毁队列 …

Prometheus中添加基本身份验证功能

在Prometheus中添加基本身份验证功能,可以按照以下步骤进行: 一、生成哈希密码 首先,需要安装bcrypt工具,用于生成哈希密码。这可以通过Python的bcrypt库来完成。如果未安装,可以使用pip进行安装。 创建一个Python脚…

mysql窗口函数排名查询 与 连续出现的数字查询

排名查询 学会这一个查询,我们应该对该类型的查询 方法就能有一个了解,不然 如果下次遇到该类型的查询,我们依然分析不出 给你一张表,里面有id 和score字段,根据score的分数大小 排序 ,假如有相同的分数&…

狗都能看懂的DBSCAN算法详解

文章目录 DBSCAN简介DBSCAN算法流程运行机制举个实例 DBSCAN算法特点DBSCAN参数选取技巧 ϵ \epsilon ϵ的选取:找突变点MinPts的选取 DBSCAN简介 DBSCAN(Density-Based Spatial Clustering of Applications with Noise,具有噪声的基于密度的…

构筑卓越:建筑企业如何通过GB/T 50430:2017认证铸就质量管理基石

在建筑业这片充满挑战和机遇的战场上,企业资质犹如一面旗帜,标志着企业的实力和信誉。GB/T 50430:2017《工程建设施工企业质量管理规范》的实施,成为了建筑企业提高管理水平、赢得市场竞争的重要武器。 GB/T 50430:2017的战略意义 GB/T 5043…

Pixea Plus for Mac:图像编辑的极致体验

Pixea Plus for Mac 是一款专为 Mac 用户设计的强大图像编辑软件。凭借其卓越的性能和丰富的功能,它为用户带来了前所未有的图像编辑体验。无论是专业的设计师,还是业余的摄影爱好者,Pixea Plus 都能满足您对于图像编辑的各种需求。 Pixea P…

Promise入门详解

文章目录 Promise 的介绍和优点(为什么需要 Promise?)Promise 的基本使用Promise 的状态和回调函数Promise 对象的 3 种状态 Promise 的回调函数Promise的状态图: new Promise() 是同步代码Promise 封装定时器Promise 封装 Ajax 请…

2024/06/24(11.1115)指针进阶

1.字符指针 2.数组指针 3.指针数组 4.数组传参和指针传参 5.函数指针 6.函数指针数组 7.指向函数指针数组的指针 8.回调函数 9.指针和数组一些题目的解析 字符指针 char* 我们用这种方法修改了*pch的内容从"A"变成了"a" 存储内容是什么一般指针就…

浏览器扩展V3开发系列之 chrome.storage 的用法和案例

【作者主页】:小鱼神1024 【擅长领域】:JS逆向、小程序逆向、AST还原、验证码突防、Python开发、浏览器插件开发、React前端开发、NestJS后端开发等等 chrome.storage 是用于存储、获取用户数据的 API。当我们需要持久化存储数据时,比如&…

无忧易售升级:一键设置图片分辨率,赋能十大跨境电商平台

在电商领域,产品图片的品质直接影响着顾客的购买决策与品牌形象的塑造。无忧易售ERP特推出图片分辨率修改功能,为电商卖家们提供更专业的图像优化工具,让每一像素都成为吸引客户的秘密武器! 一、Allegro、OZON、Coupang、Cdiscou…

低成本STC32G8K64驱动控制BLDC开源入门学习方案

低成本STC32G8K64驱动控制BLDC开源入门学习方案 ✨采用STC32G8K64单片机,参考梁工的STC32G12K128-LQFP48驱动方案制作,梁工BLDC相关的资料:https://www.stcaimcu.com/forum.php?modviewthread&tid7472&extrapage%3D1,在此…

如何编写时区源文件

0、背景 ① 修改TZ环境变量改变时区不能立即生效。要求设置时区后立即生效,只能用修改/etc/localtime方式。 ② 原文作者 Bill Seymour,想要查看原文,点击官网地址https://www.iana.org/time-zones下载 zic 源码,源码目录中的 tz…

[leetcode] smallest-k-lcci. 最小的k个数

. - 力扣&#xff08;LeetCode&#xff09; class Solution { public:vector<int> smallestK(vector<int>& nums, int k) {int L 0, R nums.size() - 1;while (L < R){int left L, right R;int key nums[left];while (left < right){while (left &l…

XX能源云数据平台建设项目_投标书_技术部分(194页word)

标书介绍&#xff1a; 该标书通过物联网技术&#xff0c;实时采集能源行业各类数据&#xff0c;并进行标准化整合。采用分布式存储技术&#xff0c;确保数据的安全性和可扩展性。运用大数据和人工智能技术&#xff0c;对数据进行深度分析和挖掘&#xff0c;提供有价值的业务洞…