它从哪里来,它从intel来。不过,与PCI、AGP属于intel单独提出的硬件标准不同,Compaq、IBM、Microsoft等也一起参与了这个游戏,它们一起在94年11月提出了USB,于95年11月制定了0.9版本,96年制定了1.0版本,不过它并没有因为有这些大佬的支持立即迎来它的春天,谁让它诞生在冬天那,生不逢时啊。因为缺乏操作平台的良好支持和大量支持它的产品,这些标准都成了空谈。然后是98年USB1.1的出现,忽如一夜春风来,它就象春天里的一朵油菜花,终于涂上了浓重的一抹黄色。

为什么要开发USB。USB出现以前,电脑的接口处于春秋战国时代,串口并口等多方割据,键盘、鼠标、Modem、打印机、扫描仪等都要连接在这些不同种的接口上,实行的是一夫一妻制,一个接口只能连接一个设备,不过咱们的电脑不可能有那么多这种接口,所以扩展能力不足,而且它们的速度也确实很有限。还有关键的一点是,热插拔对它们来说也是比较危险的操作,不想用了都成黄脸婆了还不能立即换掉,岂不是很不能满足很多man们内心的潜在需要。USB正是为了解决速度、扩展能力、易用性应景而生的。

USB的一生也充满了PK,不过USB还不够老,说一生太早了些,发哥说的好,“我才刚上路呢”。

USB最初的设计目标就是替代串行、并行等各种低速总线,以达到以一种单一类型的总线连接各种不同的设备。它现在几乎可以支持所有连接到PC上的设备,99年提出的USB2.0理论上可以达到480Mbps的速度。它与串口、并口等的这场PK从一开始就是不平等的,这样的开始注定了以什么样的结果结束,只能说命运选择了USB。

有了USB在这场PK中的大获全胜,才有了USB键盘、USB鼠标、USB打印机、USB摄像头、USB扫描仪、USB音箱等。

本系列抄袭自:http://blog.csdn.net/fudan_abc/article/category/335670

当个人笔记进行一些简单的修改,涉及到的代码主要使用linux3.18.2

Linux那些事儿 之 戏说USB(1)它从哪里来相关推荐

  1. Linux那些事儿 之 戏说USB(19)设备

    转载地址:http://blog.csdn.net/fudan_abc/article/details/1807800 第一眼看到struct usb_device这个结构,我仿佛置身于衡山路的酒吧里 ...

  2. 【转】Linux那些事儿 之 戏说USB(19)设备

    第一眼看到struct usb_device这个结构,我仿佛置身于衡山路的酒吧里,盯着舞池里扭动的符号,眼神迷离. 交大里苟了几年,毕业了又是住在学校附近的徐虹北路上,沿着虹桥路走过去,到徐家汇不过1 ...

  3. Linux那些事儿 之 戏说USB(33)字符串描述符

    关于字符串描述符,前面的前面已经简单描述过了,地位仅次于设备/配置/接口/端点四大描述符,那四大设备必须得支持,而字符串描述符对设备来说则是可选的. 这并不是就说字符串描述符不重要,对咱们来说,字符串 ...

  4. Linux那些事儿 之 戏说USB(28)设备的生命线(十一)

    现在已经使用GET_DESCRIPTOR请求取到了包含一个配置里所有相关描述符内容的一堆数据,这些数据是raw的,即原始的,所有数据不管是配置描述符.接口描述符还是端点描述符都彼此的挤在一起,所以得想 ...

  5. Linux那些事儿 之 戏说USB(27)设备的生命线(十)

    跟着设备的生命线走到现在,我算是明白了,什么东西的发展都是越往后越高级越复杂.再给张小表,看看现在和上次那张表出现的时候有什么变化. state        USB_STATE_ADDRESS sp ...

  6. Linux那些事儿 之 戏说USB(25)设备的生命线(八)

    回到struct usb_hcd,继续努力的往下看. 7行,又见kref,usb主机控制器的引用计数.struct usb_hcd也有自己专用的引用计数函数,看drivers/usb/core/hcd ...

  7. Linux那些事儿 之 戏说USB(22)设备的生命线(五)

    下面接着看那三个基本点. 第一个基本点,usb_alloc_urb函数,创建urb的专用函数,为一个urb申请内存并做初始化,在drviers/usb/core/urb.c里定义. struct ur ...

  8. Linux那些事儿 之 戏说USB(15)设备

    struct usb_device结构冗长而又杂乱 include/linux/usb.h struct usb_device {int devnum;char devpath[16];u32 rou ...

  9. Linux那些事儿 之 戏说USB(25)设备的生命线(四)

    转载地址:http://blog.csdn.net/fudan_abc/article/details/1819919 洗澡是屁股享福,脑袋吃苦:看电影是脑袋享福,屁股吃苦:看内核代码是脑袋.屁股都吃 ...

  10. Linux那些事儿 之 戏说USB(大结局)还是那个match

    从上次在几米的向左走向右走遇到usb总线的那个match函数usb_device_match()开始到现在,遇到了设备,遇到了设备驱动,遇到了接口,也遇到了接口驱动,期间还多次遇到usb_device ...

最新文章

  1. 如何修改WINDOWS默认的3389远程端口
  2. json数据解析_ORACLE中Clob字段在不同数据库间自由地飞翔——SQL+JSON字段解析
  3. 移动端布局规范-固定页头页尾-中间随高度滑动
  4. 对Mapreduce代码进行单元测试
  5. [JavaScript]为JS处理二进制数据提供可能性的WEB API
  6. 【百战GAN】二次元宅们,给自己做一个专属动漫头像可好!
  7. JSONEasy的用法(JSONDateHandler)
  8. 【荐】牛逼的WPF动画库:XamlFlair
  9. suse linux安装rpm包,linux – 如何为Suse创建RPM
  10. hadoop之MapReduce的案例(多表关联)
  11. plsql development 注册码
  12. 极域课堂管理系统软件如何取消控制_智慧物流自动化智能仓储管理架构分析
  13. 美国苹果股价走势图(抢先看美股三大指数新动态)
  14. Xiph基金会成员:Timothy B. Terriberry
  15. 江西理工大学校园网开机自动连接,断网自动重连
  16. 计算机科学与技术行业发展历史,发展历程
  17. 为什么工业互联网平台要配备MQTT网关?
  18. 厉害了!世界首例AI诈骗案出现:公司高管接老板电话被骗22万欧元
  19. MySQL之DML(数据操纵语言)
  20. PIX飞控不能解锁问题总结

热门文章

  1. C++ 中multiset 的使用
  2. java.lang.IllegalStateException: Cannot modify managed objects outside of a write transaction. in /U
  3. Android Activity的onRestart()方法
  4. iOS蓝牙开发---CoreBluetooth[BLE 4.0] 初级篇[内附Demo地址]
  5. IntelliJ IDEA 的Project structure说明
  6. JS动态改变文本中光标位置
  7. 优先级队列实现哈夫曼树的编码和译码
  8. zhs16gbk对应mysql_[Oracle] 彻底搞懂Oracle字符集
  9. c语言队列如何表示,队列的链式表示和实现(C语言)
  10. java运行时_java编译时与运行时概念与实例详解