阅读:1756回复:11
usb总线信号
是否如果硬件电路设计没有问题,数据就应该发送到usb总线上,超时错误只是如果发送的有错误不回复而已。usb总线上都该有信号产生。
|
|
沙发#
发布于:2004-09-28 08:37
硬件要和固件搭配起来才行.
|
|
|
板凳#
发布于:2004-09-28 09:05
就是说我如果发送的数据不正确(当然是在电源稳定,初始化、复位正确之后),usb总线上都不会有信号变化??
我想应该是有变化知识不回而已吧 |
|
地板#
发布于:2004-09-28 14:37
应该有变化的,就算你不发送数据,每ms都会有一个桢起始信号的
用示波器看是一个脉冲 如果你发送的数据不正确,要看情况而定 如果设备不能接收数据,那么会有nak信号返回,这种信号用一般的示波器是看不到的 需要用协议分析仪才能看到,如果设备能接收数据,那你就能在d+线上看到方波,电压大约500mV左右,不管数据正不正确。 补充一下基本概念: 主机发送下传数据请求后,数据不会立即传到设备,而是host controller首先发送out令牌来查询设备是否能接收数据,如果不能就持续发in令牌,直到超时退出;如果设备可以接收数据,那么数据会跟在下一个out令牌之后发送到设备上。 |
|
地下室#
发布于:2004-09-28 15:07
楼上的高手,还是请问,我现在用分析仪得不到任何数据,最可能的原因是什么呢??
另外,像u盘那种全速设备是可以捕获到sof包的,但鼠标低速设备什么信号都没有得到. 最可能的原因是什么呢?setup包错误?但这样也应该有信号啊?硬件电路设计问题?会是这样吗?急等! |
|
5楼#
发布于:2004-09-28 16:40
那怎么可能呢?
枚举过程也没有吗? 是不是你的设备根本就没认出来啊! |
|
6楼#
发布于:2004-09-28 16:44
枚举过程也没有,roothub信息获得正确,已经检测到有设备插入,并且是低速设备,但是在发送获取设备描述符的第一个setup包时即超时,usb总线上无任何数据。不知到底是软件还是硬件的原因
|
|
7楼#
发布于:2004-09-28 16:47
固件的问题.
|
|
|
8楼#
发布于:2004-09-29 01:21
你用什么接口芯片?
因为USB使用半双工差动信号传输,要求slave方除了发送数据时,其他时间应该处于接收状态,只有这样,总线信号才会变化,否则会造成总线冲突。 如果你的接口芯片包含了大部分协议解析功能,那么也就自然包括了总线管理,不会出现上述问题(片子坏了例外)。如果是自己做协议解析吗.... 呵呵 |
|
|
9楼#
发布于:2004-09-29 09:23
就是说更大的可能还是软件上的处理出现问题了?
|
|
10楼#
发布于:2004-09-29 09:36
对.
因为HOST能检测到设备,说明芯片一般没什么问题.而发送第一个命令 包超时,说明你的HOST第一个包发下去了,但设备没响应,那一般可能 是你的固件在命令解析上的问题. |
|
|
11楼#
发布于:2004-09-29 14:49
楼上的兄台,固件没响应总线上会没有任何信号变化吗?
|
|