关于usb驱动协议那边的事情
有的时候会感觉很奇怪,一个usb咋么就那么牛逼,小可以给设备充电,大还能传播数据还那么的多,而且巴拉巴拉```
而且仔细观察usb 也就只有4根pin脚,为什么连接电脑居然可以出好多个端口?而且都可以往这些端口写东西??这不科学啊
带着这些疑问,我好好科普了一下自以为很了解的通信知识!
之前去调高LCD 看过mipi时序,而且大学的时候对于波形图还是有点知道的(通信老师别打我!!)
通信方面并不是说都是基站啊射频方面的通信
设备内部的通信也是通信,设备内部的通信基本上是这样的
A --> 0111 ---> 脉冲波形 ---> 0111 ---> B
这个不就是通信里面的调制解调中间一个数据转换吗? 恩 很有道理
然后还有一个通信协议,以前有听过TCP/ip的相关课程
A要往B发东西,但是A并不知道B的确切位置。那么A就要往B所在的位置发出广播 或则大喊一声
如果B听到了,回应就是啦
通信也是这样设计的
A 发往 B 的数据包,可能C D E F都可以收到,但是他们都会把它丢掉! 因为他们解析不了,他们并不知道里面是什么。当然他们也没有必要知道除非他们是坏人
恩 知道这个之后就可以了解了
为什么usb可以枚举出那么多个端口,我们现在开发的设备连接到Windows电脑后可以看到4个端口 adb gps modem dia?
然后我们往不同端口发数据 但是传输的是同一条线,设备对应的模块却可以收到我们的信息的原因
A --> B 的数据包里添加了B特有的属性,而且如果再添加一些加密,那么这个数据包别人都无法解析了
按照这个道理?usb可以连接不知128个设备啊?恩 说明传输还是有限制的
就这样喽,关于硬件原理就这样了,在传递过来的数据通过DSP 或者数字话翻译成0111之后这货就可以跟软件里的编码表对比了
对比这些数据就能够知道A 发了什么东西过来!
接下来就是软件上对这些东西进行处理了,逻辑处理
而在正常工作中,并不需要自己写协议的。比较多的时候是要自己配置,要懂得怎么配置,才能让硬件在这个工作模式下工作
是啊 , 挺简单的。 但是不能这么说吧,知识是一回事,真正的工作挣钱又是另外一回事。
而且啊 现在软件都是以这么庞大的级别在编写,光光配置可行性都要浪费一大票人的精力呢
能够按要求实现,了解前人是这么实现的,然后进行少量修改。这就是驱动要做的事情,在公司里,最重要的还是实时问题分析
添添接口啥的 ```
硬件已经不再那么神秘了,软件也是。 怎么赚钱?这么给自己创造价值,才是最神秘的
这么让自己过得开心,让自己成长才是最神秘的