USB - D+/D-信号介绍

USB (通用串行总线)信令包括两条数据线 D+ 和 D-,用于差分信令,以提高抗噪能力和数据完整性。这些线路的控制决定了 USB 通信中的数据传输、各种状态和信号协议。

USB 差分信号

差分信号是指数据由 D+ 和 D- 线路之间的电压差来表示,而不是由它们的绝对电压电平来表示。这种技术提高了数据在长距离和嘈杂环境中传输的稳健性。

USB 信号状态

根据 USB 设备的速度和正在执行的操作,D+ 和 D- 线的状态可能处于几种情况之一:

  1. 高速(HS)信号

    • 闲置(J 状态): D+ 为高电平,D- 为低电平。
    • 激活(K 状态): D+ 为低电平,D- 为高电平。
    • SE0(单端归零): D+ 和 D- 均为低电平。
    • 恢复信号: 从挂起状态恢复时,使用 K 状态。
  2. 全速(FS)和低速(LS)信号

    • 闲置(J 状态)
      • 全速: D+ 为高电平,D- 为低电平。
      • 低速: D+ 低,D- 高。
    • 激活(K 状态)
      • 全速: D+ 低,D- 高。
      • 低速: D+ 为高电平,D- 为低电平。
    • SE0(单端归零): D+ 和 D- 均为低电平,表示数据包结束或复位状态。

D+ 和 D- 线路的控制

USB 主机控制器和 USB 设备控制器通过各种信号协议管理 D+ 和 D- 线的状态。这些协议在 USB 硬件和固件中实现,涉及精确的定时和电压电平,以确保可靠的通信。

关键操作
  1. 数据传输

    • 数据使用 NRZI(非归零反转)编码传输,状态之间的转换表示二进制 “0”,无转换表示二进制 “1”。
    • 比特填充用于确保有足够的转换来保持同步。
    • SE0 条件标志着数据传输的结束,使接收器能够识别数据包之间的边界。
    • 在传输数据包结束时,发送器会将 D+ 和 D- 短时间内(通常为 2 比特左右)驱动为低电平。
  2. 复位和速度检测

    • 将 D+ 和 D- 都置低 (SE0) 至少 10 毫秒即表示复位。此操作将重置所有已连接的 USB 设备,使其恢复到默认状态。总线上的设备会识别这一复位信号,并重新初始化其配置,就像它们是新连接的一样。
    • 速度检测是通过主机检查复位后 D+ 和 D- 线的状态来实现的。例如,全速设备在 D+ 上有一个上拉电阻,而低速设备在 D- 上有一个上拉电阻。
  3. 暂停和恢复

    • 在正常运行期间,如果 3 毫秒内没有总线活动,设备就会进入暂停状态以节省电能。
    • 要恢复运行,主机将总线驱动到 SE0 的持续时间最短(通常约为 1 至 2 毫秒),然后过渡到 K 状态(D+ 为低电平,D- 为全速和高速状态下的高电平)至少 20 毫秒至多100ms使所有设备能检测到并唤醒。(有时没有复位信号,而是直接resume信号)
  4. 握手和确认

    • USB 通信包括握手数据包(ACK、NAK、STALL),以管理数据流并确保可靠传输。

###电气特性

  • 全速: 12 Mbps,D+ 端使用 1.5 kΩ 上拉电阻。
  • 低速: 1.5 Mbps,D- 端使用 1.5 kΩ 上拉电阻。
  • 高速: 480 Mbps,最初显示为全速,直到完成高速协商(chirp)。

这个电阻是在设备端的,由USB host来识别USB设备类型。
另外,通常15k 欧姆电阻通常用作主机侧 D+ 和 D- 线路的下拉电阻,以确保在未连接设备时将线路拉至地。

摘要

USB 中的 D+ 和 D- 线通过差分信号进行控制,以管理数据传输和各种 USB 状态。主机和设备控制器使用精确的电压电平和定时来控制这些线路,从而确保 USB 通信的稳健和高效。这种差分信号方法对于在各种可能存在噪声的环境中保持数据完整性和可靠性至关重要。


The USB (Universal Serial Bus) signaling involves two data lines, D+ and D-, which are used for differential signaling to improve noise immunity and data integrity. The control of these lines determines the data transmission, various states, and signaling protocols in USB communication.

USB Differential Signaling

Differential signaling means that data is represented by the voltage difference between the D+ and D- lines, rather than their absolute voltage levels. This technique enhances the robustness of data transmission over longer distances and in noisy environments.

USB Signal States

The state of the D+ and D- lines can be in one of several conditions, depending on the speed of the USB device and the operation being performed:

  1. High-Speed (HS) Signaling:

    • Idle (J State): D+ is high, D- is low.
    • Active (K State): D+ is low, D- is high.
    • SE0 (Single-Ended Zero): Both D+ and D- are low.
    • Resume Signaling: When resuming from suspend, the K state is used.
  2. Full-Speed (FS) and Low-Speed (LS) Signaling:

    • Idle (J State):
      • Full-Speed: D+ is high, D- is low.
      • Low-Speed: D+ is low, D- is high.
    • Active (K State):
      • Full-Speed: D+ is low, D- is high.
      • Low-Speed: D+ is high, D- is low.
    • SE0 (Single-Ended Zero): Both D+ and D- are low, indicating the end of a packet(EOP) or a reset condition.

Control of D+ and D- Lines

The USB host controller and USB device controllers manage the states of D+ and D- lines through various signaling protocols. These protocols are implemented in the USB hardware and firmware, and involve precise timing and voltage levels to ensure reliable communication.

Key Operations

  1. Data Transmission:

    • Data is transmitted using NRZI (Non-Return to Zero Inverted) encoding, where a transition between states indicates a binary ‘0’ and no transition indicates a binary ‘1’.
    • Bit stuffing is used to ensure there are enough transitions to maintain synchronization.
    • The SE0 condition signifies the end of the data transmission, allowing the receiver to recognize the boundary between packets.
    • At the end of transmitting a data packet, the transmitter drives both D+ and D- low for a short period (typically around 2 bit times).
  2. Reset and Speed Detection:

    • A reset condition is indicated by driving both D+ and D- low (SE0) for at least 10 milliseconds. This action resets all connected USB devices, bringing them back to their default state. Devices on the bus recognize this reset signal and reinitialize their configurations as if they were newly connected.

    • Speed detection is achieved by the host checking the state of the D+ and D- lines after reset. For example, full-speed devices have a pull-up resistor on D+, while low-speed devices have a pull-up resistor on D-.

  3. Suspend and Resume:

    • During normal operation, if there is no bus activity for 3 milliseconds, devices enter the suspended state to save power.
    • To resume, the host drives the bus to SE0 for a minimum duration (typically around 1 to 2 milliseconds), followed by a transition to the K state (D+ low, D- high for full-speed and high-speed) for at least 20 ms and at most 100 ms to ensure all devices detect it and wake up the device.
  4. Handshake and Acknowledgment:

    • USB communication includes handshake packets (ACK, NAK, STALL) to manage data flow and ensure reliable transmission.

Electrical Characteristics

  • Full-Speed: 12 Mbps, uses a 1.5 kΩ pull-up resistor on D+.
  • Low-Speed: 1.5 Mbps, uses a 1.5 kΩ pull-up resistor on D-.
  • High-Speed: 480 Mbps, initially appears as full-speed until high-speed negotiation (chirp) is completed.

This resistor is on the device side and is used by the USB host to recognize the USB device type.
Additionally, the 15k ohm resistors are typically used as pull-down resistors on both D+ and D- lines on the host side to ensure the lines are pulled to ground when no device is connected.

Summary

The D+ and D- lines in USB are controlled through differential signaling to manage data transmission and various USB states. The host and device controllers use precise voltage levels and timing to control these lines, ensuring robust and efficient USB communication. This differential signaling method is essential for maintaining data integrity and reliability in diverse and potentially noisy environments.


USB信号线颜色

在这里插入图片描述

一般白色表示D+,绿色D-。很多UART串口线也是红、黑、绿、白的颜色线。绿色RX、白色TX。

接头的线序如下:

在这里插入图片描述

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

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

相关文章

【C++进阶】深入STL之string:掌握高效字符串处理的关键

📝个人主页🌹:Eternity._ ⏩收录专栏⏪:C “ 登神长阶 ” 🤡往期回顾🤡:C模板入门 🌹🌹期待您的关注 🌹🌹 ❀STL之string 📒1. STL基本…

Java版本家政上门系统源码,自主研发、安全可控,支持任意二次开发

家政上门系统源码,Java版本,自主研发、安全可控。支持任意二次开发、有丰富合作案例。多端管理:管理端、用户端、服务端。 技术参数: 技术架构:springboot、mysql 、Thymeleaf 开发语言:java1.8、vue 开…

【智能AI相机】基于AI的新型成像和照明技术

缩短检测时间 降低废品率和成本 更快捕捉更多缺陷 ” Trevista CI Dome将康耐视专利的计算成像算法与结构化漫射圆顶照明相结合,提供无与伦比的地形图像质量,为光泽和哑光表面检测提供创新解决方案。有助于:缩短检测时间、降低废品率和成本…

通俗易懂->哈希表详解

目录 一、什么是哈希表? 1.1哈希表长什么样? 1.2为什么会有哈希表? 1.3哈希表的特点 1.3.1 取余法、线性探测 1.3.2 映射 1.3.3负载因子 1.4哈希桶 1.5闲散列与开散列 1.6总结 二、设计hash表 1、哈希表的设计 1)插入…

ChatGPT在工作中的使用案例

知识点提示 开发过程中,遇到某个知识点,忘记或者不清楚怎么使用了,通过ChatGPT快速生成使用提示和案例。代码库“字典” 比如C 11 判断数组所有元素为false 在 C11 中,可以使用标准库中的 all_of 算法来判断数组中的所有元素是…

RAG 之 Embedding 模型 (一)

本文主要对 RAG 常见的 Embedding 模型 M3E 进行介绍。 一、M3E 1.1 简介 M3E 是 Moka Massive Mixed Embedding 的缩写。 Moka,此模型由 MokaAI 训练,开源和评测,训练脚本使用 uniem ,评测 BenchMark 使用 MTEB-zh Massive&…

【计算机视觉】数字图像处理基础知识(模拟和数字图像、采样量化、像素的基本关系、灰度直方图、图像的分类)

一、图像的基本概念 图像(image):图像这个简单单词其实包含两方面含义: “图”:是指物体反射光or透射光的分布“像”:接收和记录其分布所得到的结果(如:人的视觉系统所接收“图”在人脑中形成的映像或认识&…

从CSV到数据库(简易)

需求:客户上传CSV文档,要求CSV文档内容查重/插入/更新相关数据。 框架:jdbcTemplate、commons-io、 DB:oracle 相关依赖: 这里本来打算用的2.11.0,无奈正式项目那边用老版本1.3.1,新版本对类型…

整数之间的赋值问题

前言:我们在初学C语言的时候,总是避免不了一些数据类型的转换,例如int-->char,char-->int,如果我们仅仅只学习这些语法,而不去了解底层原理,对于这些输出的内容,我们可能会感觉…

集成建筑5G商城为建筑行业开拓新方向

集成建筑5G商城为建筑行业开拓新方向 建筑业在我国有着悠久的发展历史,近年来,伴随着我国经济的快速增长、城镇化步伐加快,我国房地产、建筑业持续增长,建筑业显现出巨大的发展潜力。建筑行业近年来始终保持较高的增长速度。根据…

拉格朗日插值法的推导

1、插值的基本定义   设函数 y f ( x ) yf(x) yf(x)在区间 [ a , b ] [a,b] [a,b]上有定义&#xff0c;且已知它在 n 1 n1 n1个互异点 a ≤ x 0 < x 1 < . . . < x n ≤ b a\leq x_0<x_1<...<x_n\leq b a≤x0​<x1​<...<xn​≤b上的函数值 y 0 …

房产证上加名?手把手教你操作,省钱又省心!

随着《民法典》的实施&#xff0c;房产的权属问题愈发受到重视。夫妻双方及其亲属常希望能在房产证上增添自己的名字&#xff0c;以保障各自的权益。那么&#xff0c;房产证上到底能写几个名字呢&#xff1f;以下是对这一问题的详细解答。 一、房产证命名无固定限制 在购房时&…

MAB规范(1):概览介绍

前言 MATLAB的MAAB&#xff08;MathWorks Automotive Advisory Board&#xff09;建模规范是一套由MathWorks主导的建模指南&#xff0c;旨在提高基于Simulink和Stateflow进行建模的代码质量、可读性、可维护性和可重用性。这些规范最初是由汽车行业的主要厂商共同制定的&…

手写HTML字符串解析成对应的 AST语法树

先看效果 展示如下&#xff1a; HTML模版 转成ast语法树后 在学习之前&#xff0c;我们需要了解这么一个问题&#xff0c;为什么要将HTML字符串解析成对应的 AST语法树。 为什么&#xff1f; 语法分析&#xff1a;HTML字符串是一种标记语言&#xff0c;其中包含了大量的标签…

电动汽车电子系统架构

电动汽车的普及正在稳步发展&#xff0c;供应链的各个环节也在发生变化。它涵盖了制造电动汽车零件的原材料、化学品、电池和各种组件。与此同时&#xff0c;汽车充电基础设施也参与其中&#xff0c;它们正经历一个历史性的阶段&#xff0c;经过彻底的重新设计。它们的电气化以…

Echarts实现半圆形饼图,Echarts实现扇形图

效果预览,此处的双半圆扇形图是使用v-for循环的出来的 dom部分 <template><div><div class="mainDiv"><div class="headTit">全校平台最近作业</div><div class="loopSubject"><div id="app"…

反射获取成员变量

目录 利用反射获取成员变量 ​编辑 代码实现 获取class对象 获取成员变量 获取单个成员变量 获取成员变量的名字 获取权限修饰符 获取成员变量的数据类型 获取成员变量记录的值 修改对象里面记录的值 利用反射获取成员变量 代码实现 Student类&#xff1a; 获取clas…

JVM学习-类加载过程(二)

Initialization初始化阶段 为类的静态变量赋予正确的初始值 具体描述 类的初始化是类装载的最后一个阶段&#xff0c;如果前面的步骤没有问题&#xff0c;那么表示类可以顺利装载到系统中&#xff0c;此时&#xff0c;类才会开始执行Java字节码(即&#xff0c;到了初始化阶段…

使用YOLOv10训练自己的数据集

1. yolov10源码下载 THU-MIG/yolov10: YOLOv10: Real-Time End-to-End Object Detection (github.com)https://github.com/THU-MIG/yolov10?tabreadme-ov-file 2. 环境配置 预先安装好ANACONDA、PyCharm或者VSCode等基本软件。参考以下博客&#xff1a; 史上最全最详细的An…

六一礼物怎么选?来用python采集几套试卷送给小朋友们吧

马上要六一了&#xff0c;想一想我小时候的儿童节老师大概率都会布置一些试卷&#xff0c;所以也算是渡过了一个很"快乐"的童年呢。 所以今天这篇文章来采集一下试卷网中的试卷&#xff0c;快来学习一下&#xff0c;然后采集几套试卷送给你身边还在上学的小朋友们吧…