- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
USB电路是如何工作的 谢谢
说的详细点?
USB至少有四根线,VBUS GND D+ D-,有的还有ID信号线
VBUS 和GND是用来充电或供电的,D+ D-是信号线,
当USB插入时(VBUS=5V)就会有下面几种情况:
一:如为充电器,则充电,这个没什么好说的;
二:如为USB设备,则再分为两种情况
1) 低速USB设备,
2) 高速USB设备,
这两种情况是通过从设备将D+或D-拉高至3.5V来区分的,因为插入之前D+和D-都是低电平。
所以主控器可以通过检测D+和D-的状态来判断是何种USB设备。
USB和充电器又是怎么识别的呢?
恕我愚昧,怎么区分充电或给USB设备供电呢?
是否可以这样理解:当手机作为USB从设备,用USB线连上电脑时,电脑通过VBUS提供5V电源;如果是USB1.1的,则手机把D+拉高至3.5V,如果是USB2.0时,则手机把D-拉至3.5V?
充电器与USB应该是靠D+,D-信号线,采用中断方式来实现的
区分充电或给USB设备供电呢?
在数据接口有两个脚用做充电和USB供电的,充电时电压只加到充电脚上,USB时两个脚都加.还有一种是在充电和USB供电之间增加一个二极管,由于二极管的单向导电特性,充电时USB供电脚不会得到电压.....
USB插入识别
根据图纸,可以看出送到USB供电脚的VBUS分为两路,一路到一个LDO,经CPU控制后产生VUSB为手机供电,还有一路到CPU的INT,这个就是插入识别.
我见过的各种MTK手机都是拉高D+的电压...
不知正确否,请指正.
似乎现在MTK新的平台已经有了不同的检测方式了.
如果从PC系统或软件角度去看,当USB设备插入PC的时候,PC根据USB线上的下拉电阻上的电压值大小来识别是低速,全速或者高速设备.然后PC会给USB设备分配相应的地址号,分配好以后加载相应的驱动程序,这样就可以对USB设备进行操作了.如果是奔腾系列芯片组,比如说INTEL915平台的话,在南桥上还会有专门的引脚来对USB设备进行过流保护.而且当USB设备长时间不用的话,系统会自动将它挂起.具体的USB工作情况,如果有兴趣的话可以参考USB总线协议,介绍的非常详细.
另外有一点不是很明白的,就是关于充电的.个人认为PC端的USB口本来就带有电源,当手机关机的情况下完全不用任何其他辅助就可以对手机进行充电.手机中我猜想应该会有一个充电管理的芯片或模块,即使开机的时候我觉得充电和数据的传输也不应该有任何冲突.所以最后我总觉得手机的充电和USB总线的工作状态应该没任何关系.不知道本人理解是否正确,还请各位资深工程师指点.没做过手机,呵呵...
9楼所说的INT中断引脚我这有点搞不明白,因为USB总线的中断是通过消息发送机制来产生的,怎么会用到INT中断引脚呢?直接通过USB的数据线发送中断消息就可以了.而且有关USB协议里是如何规定的也要仔细研究下了,是否USB协议支持INT硬中断呢?或者说USB协议里允许通过一定的转换来将消息中断转化为INT中断,就好比PCI-E总线规范一样,虽然PCI-E是坚决不允许INT中断的,但却可以通过转换来实现消息中断转为INTA/INTB/INTC/INTD的硬中断处理机制.要详细看看了.
按我的理解,MTK手机不是单一的USB设备,而是手机+USB设备,不是时刻都处于USB模式下,INT连接到手机的CPU,只是做为一个进入USB模式的开关信号罢了,此INT非彼INT.哈哈,我也不是做手机研发的,说错了别拿鸡蛋扔我.