OS如何知道是USB线还是电源线插上了?
1,插上USB线,OS会把SD卡在PC机上弹出;插上电源线,OS只会充电。请问OS如何区分的?
2,在PC机上卸载掉SD卡,OS能否收到通知?
[解决办法]
1. 这个可以看usb协议。具体是这样子的:
首先,在USB Host端口的D+和D-上,分别接了一个15K欧姆的下拉电阻到地。这样,在USB Host端口悬空时,就被这两个下拉电阻拉到了低电平。而在USB设备端,在D+或者D-上接了1.5K欧姆上拉电阻(对于全速和高速设备,上拉电阻是接在D+上;而低速设备则是上拉电阻接在D-上)。这样,当设备插入到USB Host时,由1.5K的上拉电阻和15K的下拉电阻分压,结果就将差分数据线中的一条拉高了。集线器检测到这个状态后,它就报告给USB主控制器(或者通过它上一层的集线器报告给USB主控制器),这样就检测到设备的插入了。接下来usb host 和usb device 进行总线枚举,以判断device属于哪一类设备。这个就是楼主问题外的工作了。
当只插电源线时,因为没有上拉电阻,所以usb host端检测不到usb设备。
2. 当从pc上卸掉sd卡时,pc与usb设备间会进行一次通讯,所以两者都是“知道”的。
[解决办法]
想弄清楚的话,建议看看usb协议
[解决办法]
1,插上USB线,OS会把SD卡在PC机上弹出;插上电源线,OS只会充电。请问OS如何区分的?
它有通信协议的,通过检测即可
2,在PC机上卸载掉SD卡,OS能否收到通知?
可以的,支持热插拔的都会这样
[解决办法]