爆裂的大侠 2024-07-01 14:02 采纳率: 0%
浏览 58
已结题

手机接Usb hub再连接电脑下D+D-波形

如图是使用手机接hub再连接电脑下的D+D-波形,图中是电脑上不弹盘手机识别下的情况,如图D+是拉高600多mV是首次检测了,在拉高3V左右是进入了cdp协议模式,但之后跌落0V再拉高3V左右进行通信是什么模式?之后的几次D+D-通信又是什么原理,请问这两个问题能详细进行解答嘛?

img

再详细补充说明一下:
上述图片为电脑上不弹盘手机识别下的情况,但是手机正常充电。下方两张图第一张则是说明进入cdp后D+波形跌落并进入未知通信情况中。第二张则是说明再第一次未知通信结束,D+D-又通信几轮后D+跌落0V并保持,此时电脑仍不识别手机,但可充电过程。

img


img

再补充一张正常通信充电情况。

img


(注:手机已插入hub后再进行给hub供电,故此图D+D-没有首次检测过程)

试验手机为VIVO X90,其余种类VIVO手机无此现象。
已证实与电脑型号无关。
已更换过线束证实与线束无关
若是hub中设置参数控制问题,可能是什么情况导致此现象发生呢?

  • 写回答

21条回答 默认 最新

  • DTcode7 优质创作者: 前端开发技术领域 2024-07-03 22:11
    关注

    答案引用自chatgpt生成,望对题主有所帮助/启发;若有帮助,还望采纳!

    手机通过USB Hub连接到电脑时,D+和D-线是用于传输数据和控制信号的线路。在USB通信中,D+和D-线被称为差分对,它们之间的电压差表示了数据传输的信息。

    当手机连接到USB Hub后,Hub会将手机的D+和D-线连接到电脑上的一个USB端口。此时,电脑上的USB控制器会检测到这个连接,并尝试与手机进行通信。为了确保通信的正确性,电脑和手机之间需要进行一系列的握手过程,这个过程称为枚举(Enumeration)。

    在枚举过程中,电脑会发送一个复位信号给手机,手机收到复位信号后会回复一个应答信号。接着,电脑会发送一个获取设备描述符的命令,手机会返回一个包含设备信息的数据包。电脑收到这些信息后,就可以识别出这是一个手机设备,并为其分配一个唯一的地址。

    在这个过程中,D+和D-线的波形变化代表了不同的信号。例如,当电脑发送复位信号时,D+线上的电压可能会从低电平变为高电平;而当手机回复应答信号时,D-线上的电压可能会从高电平变为低电平。这些波形的变化可以被示波器捕获并显示出来,以便我们观察和分析USB通信的过程。

    以下是一个简化的Python代码示例,用于模拟手机连接到USB Hub后的D+和D-线波形:

    import matplotlib.pyplot as plt
    import numpy as np
    
    # 假设手机连接到USB Hub后的D+和D-线波形为以下数据
    D_plus = [0, 1, 1, 0, 0, 1, 1, 0]
    D_minus = [1, 0, 0, 1, 1, 0, 0, 1]
    
    # 创建一个时间轴
    time = np.linspace(0, len(D_plus), len(D_plus))
    
    # 绘制D+和D-线的波形
    plt.plot(time, D_plus, label='D+')
    plt.plot(time, D_minus, label='D-')
    
    # 添加图例和标签
    plt.legend()
    plt.xlabel('Time (ms)')
    plt.ylabel('Voltage (V)')
    plt.title('D+ and D- Waveforms after Phone Connected to USB Hub')
    
    # 显示图形
    plt.show()
    

    这段代码使用了matplotlib库来绘制D+和D-线的波形。请注意,这只是一个简化的示例,实际的波形可能更加复杂,并且需要使用专门的硬件设备(如示波器)来捕获和分析。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 7月7日
  • 修改了问题 7月1日
  • 修改了问题 7月1日
  • 修改了问题 7月1日
  • 展开全部