Q:
在做USB设备开发的时候经常遇到线太长不稳定常常断线,我怀疑是USB驱动能力不够,在你《删繁就简-单片机入门到精通》一书章节1.9.是专门讲接口驱动能力的,可是没有具体内容,是什么原因?
A:
1.
首先要解释一下,没有具体内容是因为出版社对此书有出版意向,他们要求网上的免费版本在内容上要少于正式出版的版本,所以我对书中部分章节进行了删减,请各位朋友见谅,如果有问题我们可以就具体问题相互进行探讨,另外我希望最后能在网上有更完善的版本出现,如果有这个可能肯定需要等待比较长的时间。
2.
你提到的USB问题,我认为是USB驱动能力不够的可能性比较大,不过应该不是电流驱动能力不够,而是因为线过长导致无法高速传送数据。
目前使用较多的USB是1.0和2.0两个版本,其中1.0又分为1.0(low speed)和1.1(full speed)两种,支持的最大速率为1.5Mbps和12Mbps,2.0的称为high speed,支持的最大速率为480Mbps。
注意这里说的是支持的最大速率,所以通讯时并不是一定按此速率,在一定范围之内都是允许的。
USB是向下兼容,也就是2.0的口可以接1.0的设备,但1.0的口不能接只能工作在2.0状态下的设备,又要注意这里是只能工作在2.0状态下,不是说所有的2.0的设备。
其实所有的USB设备都要求支持1.0的速率,目的是为了再插上的时候能够让主机识别出设备并加载驱动,所以在USB刚插上的一段时间,实际上和主机都是用1.0速率来建立连接,如果发现双方都支持更高的速率,就会自动转到更高的速率下工作。有时候把一个2.0的优盘或移动连到一个性能不好的电脑USB口,电脑会提示一个高速设备连到了低速设备,可能会对工作状态产生影响的提示,这个时候优盘和移动硬盘还是能工作,只是传输速度要慢许多。
USB的速度非常快,接口采用的是差分驱动方式,虽然这样可以抗共模干扰,但对外部连线有一定限制,另外对干扰也比较敏感。很容易理解,不管什么通讯方式,只要线一长,就会使所支持的最大速率下降。正是这个原因,对于一些要求工作在2.0状态下的设备,当与主机之间的连线过长时,就会出现通讯不稳定、时好时坏、容易断线的问题。
其实在日常生活中也都经常遇到这样的问题,象现在电脑机箱前后都有USB插孔,你会发现后面的插孔要比前面稳定,一些只能工作在2.0状态下的设备(比如某些USB仿真器),会出现前面连接无效,后面连接工作正常的情况,这就是电脑机箱前面的USB口需要通过一条线连到主板,加上机箱里面主板产生的电磁辐射,自然而然就没有后面稳定可靠。
对于这样的问题,解决办法只能是不要让连线过长,另外要使用性能比较好的线,你可以到电脑市场买价格不同的USB延长线,会发现便宜的就会出现速度慢、2.0不能工作的问题。有时候产品为了照顾电磁兼容,会在USB线上加磁环,这种处理方法也会对USB的高速性带来负面影响。
按照协议,规定USB主机的端口必须能提供500毫安的驱动电流,实际中可能有不少地方都没有达到这个标准,如果是功耗比较大的设备,需要采用另外供电的方式,象有的移动硬盘需要外置电源或双USB口供电,就是为了保证对其供电稳定。
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。