上篇提到了USB协议出现之前的社会背景,人们希望PC外围设备的特点是
- 外设的接口都一样
- 安装新设备后,不要再重启电脑才能使用
- 速率更快
- 通信线材足够简单
- 要兼容旧驱动,软件
简单来说,就是在一个新的接口内包容所有的旧设备接口
软硬件不分家,随着技术的发展,工程师会把一些软件功能,用硬件实现,硬件加速器就是非常典型的例子;同时呢,对于需要更高灵活度的任务,硬件无法完美处理的,工程师会在软件层面来实现这些东西
原来的PC接口是:硬件复杂,软件简单
现在人们希望是:硬件简单,软件复杂
用户只想要简单的使用就好,用户不想关心技术,你们工程师搞定就好
从而导致设计重心偏向软件方向
更深层次的讲,导致这种变化的因素是:消费市场供应方的增加,供大于求,导致消费者话语权的增加,迫使厂商为了迎合消费者不得不推出新的技术方案,从而反向的推动技术发展
Repeat 核心思想:硬件简单,软件复杂
解决的方案就是增加两个层
- 往下增加一个层,最底层的硬件接口层(USB接口)
- 往上提高一个层,软件适配层(Warper)
标准的底层硬件接口层用于传输通信数据流,然后发送到上层Warper接口,Warper接口负责理解数据的含义,并分发到对应的上层驱动,从而保持原有驱动不变
这么说,可能不好理解,举个栗子
到政府办事的时候,经常要跑很多科室,盖很多章,这些科室有专门的职责;后来有一天,政府推出了一个网站,说,你们不用来回跑了,直接在网上提交材料就好,全程网上处理;对于我们来说,只需要登陆一个电脑网站就能办所有事
N个科室--进化-->网上虚拟科室
但办事流程还和原来的一样,我们依然很熟悉,不需要任何转换学习成本
科室从硬件实体,变成了虚拟的一个图标
USB的角色也是类似,将传统的硬件串口,硬件打印机接口等等,通通变成软件接口
或者理解为:肉体消失了,但灵魂从未消散
硬件下降一个层次,软件提高一个层次
当然,在增加层次的过程中,有几个关键技术细节要处理
- 如何实现热插拔?
- 为什么采用一个主机的总线架构?
- 如何提高传输速率?
- 如何兼容旧驱动架构?
明天聊一下:热插拔机理
PS:里面涉及到状态机和数据管理权下放的问题
每日推荐
- 状态机(FSM/HSM)
如果一个嵌入式软件工程师,连状态机都没听过,说明他的Level连入门都没达到,请反思;
更多资料,请自行搜索”有限状态机”,”层次状态机”
2015-12-11
-----分割线-----
注意事项
本订阅号(微信搜 McuProgramming )主要发布一些嵌入式相关的知识和技巧,涉及到软件,硬件,射频,协议栈等;如果您有感兴趣的领域,请通过回复订阅号告诉我
本订阅号主要是简单文字为主,内含少量代码段,但绝不会发布大量的代码。
因为根据自己的体会,在手机微信端看代码的体验非常糟糕,一方面屏幕比较小,显示效果不好;另一方面,玩手机时,精力不会集中,更不会有大量时间。
cedar-renjun.github.io 个人博客会发一些技术细节的东西,感兴趣的,可以深入研究这里的博文微信的编辑功能比较弱,不能贴链接,代码啥的,,,所有文章均发表在个人博客,可以通过点击原文来查看,原文有代码语法高亮,显示图片,带链接等效果