USB接口有四根线:VBUS,D+,D-,GND,
那么如果WINCE设备插入的是连接到电脑的USB线的话,WINCE会自动进入MASS STORAGE模式,如果
WINCE插入的是USB接口充电器的话,就只会充电.我想了解的是:
1.这是怎样区分是哪个设备插入呢,好象两种都会给VBUS上电,难道是D+,D-,可是刚插入也没传数据啊.
2.WINCE设备插入USB线后,进入不同的模式,是不是由中断引起的呢.
3.我有一个小程序,可以把我的WINCE设备在Mass Storge 和seiral class(同步模式)之间转换,但
每次转换成功后都要重新拔插USB线才会生效,我是不是可以手动去触发某种中断,使它们不需要插拔就生效呢,
一般这种中断在哪里可找到?
非常感谢~~!!!
1.这是怎样区分是哪个设备插入呢,好象两种都会给VBUS上电,难道是D+,D-,可是刚插入也没传数据啊.
-->USB接口的充电器其实还是普通的220V->直流的充电器,只是用了VBUS这个引脚,D+/D-是没有任何连接的。所以此时不需要分辨是什么接入,只是正常的供电。而如果通过USB线连接主机,那么就由主机通过D+/D-发起查询,此时WINCE设备就会按照USB协议去进行相应的应答,并将自己描述成Mass Storage设备,主机就会以U盘形式表现出来。
2.WINCE设备插入USB线后,进入不同的模式,是不是由中断引起的呢.
-->WINCE设备被USB线连接到主机后,可以进入MASS STORAGE模式。而一般WINCE系统默认将设备描述成Serial Class设备,便于与Windows下的ActiveSync进行连接通讯。这种模式,是由WINCE设备的USB驱动来限定的。
3.我有一个小程序,可以把我的WINCE设备在Mass Storge 和seiral class(同步模式)之间转换,但
每次转换成功后都要重新拔插USB线才会生效,我是不是可以手动去触发某种中断,使它们不需要插拔就生效呢,
一般这种中断在哪里可找到?
可能有两种中断:一种是USB 主机接入中断,此中断是从VBUS产生的,但是这个不是标准协议要求并产生的中断,所以,未必会有支持。一种就是标准协议的USB通讯中断,此中断会进行多次,以便设备向主机描述自己到底是什么类型,在此处会区分出Mass Storage和Serial Class类型。这种中断是由主机发起的,无法手工触发。
USB主机 是通过总线上的上下拉电阻来判断是否有设备接入,设备端一般是通过判断GPIO引脚的电平变化来判断是否接入了主机,然后才启动USB协议阶段的