多语言展示
当前在线:1212今日阅读:60今日分享:41

USB接口有哪些缺点?

现在USB接口已经是电子产品最普遍的一种数据传输接口了(个人认识),传输数据速率也达到了一个很高的水平。但是USB有哪些缺点?从我的接触的来说,USB连接机械键盘无法做到全键无冲,而PS2接口却可以,这个是否是USB接口的硬伤?另外,我感觉USB一共四根线,会不会存在不够用的情况?
工具/原料

usb

方法/步骤
1

这并非USB接口或者USB传输协议的问题,是USB HID规范(键盘鼠标规范都在这个范围内)的限制,厂商们只要自己定义一套规范,是有办法突破这个限制的,只不过适用性差一点,需要驱动而已。或者厂商们推动USB-IF去更新USB HID规范即可,这都不是大问题。这个问题也不能说USB键盘就么有PS/2键盘好,只能说厂商比较懒而已。

2

线缆方面,USB2.0是4根,3.0是9根(但通过改造可以只用5根+外壳接地)。

3

USB的协议本身的缺点有:

4

1. 协议是非对等协议,必须有主机支持,无法搭建星形结构或者总线式结构,整个设备树必须有个根节点,设备与设备之间无法直接通信,相对而言,以太网和串口都是对等的通信系统。

5

2. Host(主机)端协议栈过于庞大复杂,很难小型化。一个最小的USB Host驱动需要几千行代码实现,如果再配置设备驱动,代码可能上万行(以C语言计),而串口协议栈则很简单,TCP/IP协议栈虽然复杂,但链路层不需要协商。USB设备通信的前提是使用USBD建立设备链接,这个过程复杂而麻烦,网络和串口都可以无链接的方式直接发包。

6

3. 控制器驱动难写。写过EHCI驱动的都知道这东西很麻烦,但网卡驱动往往非常简单,对比之下简单的网卡驱动可能在千行左右,串口驱动就更简单了。这一条以及上一条就限制了USB在低配置的设备上使用(比如内存只有32K的单片机,要跑USB很困难)

7

4. OTG协议复杂,OTG目标是实现USB主机和设备之间的灵活切换,但代价是更复杂的驱动。

8

5. 通信距离过短。

9

所以,USB适用于那种有一个功能强大的主机带动多个设备场景,但不太适用于对等通信或者小设备之间的通信。

注意事项

只是个人想法

推荐信息