Usb接口复用mhl的方法、装置和电路的制作方法_3

文档序号:9826221阅读:来源:国知局

[0094]步骤203,MHL驱动通过执行所述MHL回调函数以检测所述外部设备是否为MHL设备。
[0095]在调用MHL回调函数之后,即可转向运行MHL驱动,MHL驱动将通过执行该MHL回调函数以检测外部设备是否为MHL设备。
[0096]在本发明的一种优选实施例中,该步骤203可以包括以下子步骤:
[0097]子步骤al,MHL驱动通过执行所述MHL回调函数以检测所述USB_ID管脚的状态;
[0098]子步骤a2,如果检测出所述USB_ID管脚为低电平,则读取所述USB_ID管脚的对地电阻;
[0099]子步骤a3,如果所述USB_ID管脚的对地电阻的阻值为IK Ω,则确定所述外部设备是MHL设备;否则,确定所述外部设备不是MHL设备。
[0100]首先MHL驱动通过执行MHL回调函数以检测USB_ID管脚的状态,如果该管脚为低电平(ground),则可以进一步后续子步骤a2和子步骤a3确定插入的外部设备的类型;如果该管脚为高电平,则说明此时可能存在错误,例如USB接口出现异常、或者插入的设备在刚刚插入后又被拔出等,该种情况下将不再继续子步骤a2和子步骤a3,可以直接将检测结果返回给USB OTG驱动,后续再根据实际情况进行相应处理,例如如果是USB接口出现异常,则可以对USB接口进行检测等。
[0101]每个外部设备都对应有一个USB_ID管脚与地之间的电阻值,这个电阻跨接在外部设备上,例如对于支持MHL的智能电视,这个电阻设置在电视上,对于满足MHL协议的音频设备,这个电阻设置在音频设备上。首先通过执行MHL回调函数以读取USB_ID管脚的对地电阻,USB OTG设备和MHL设备在插入USB接口时,USB_ID管脚的对地电阻的阻值是不同的,根据MHL规范可知,MHL设备接入时USB_ID管脚的对地电阻的阻值为IK Ω。因此,如果检测出USB_ID管脚的对地电阻的阻值为IK Ω,则可以确定外部设备是MHL设备;否则,确定外部设备不是MHL设备。
[0102]步骤204,MHL驱动在所述MHL回调函数的检测结果是所述外部设备为MHL设备时,将所述USB接口的工作模式切换为MHL模式。
[0103]本发明实施例中,USB接口还连接有转换开关,该转换开关可以切换到USB接口的MHL模式对应的MHL控制器,也可以切换到USB接口的USBOTG模式对应的USB OTG控制器,通过该转换开关即可实现USB接口相应工作模式的切换。
[0104]因此,MHL驱动在所述MHL回调函数的检测结果是所述外部设备为MHL设备时,即可以确定该外部设备需要USB接口工作于MHL模式,因此MHL驱动可以将USB接口的工作模式切换为MHL模式。将USB接口的工作模式切换到MHL模式的过程可以通过控制转换开关切换到对应的MHL控制器实现。MHL模式还对应有通路,将USB接口的模式切换到MHL模式后,即可选通USB接口的MHL通路,通过该MHL通路传输MHL数据。对于在MHL模式下的工作过程,本领域技术人员根据实际经验进行相关处理即可,本发明实施例在此不再详细论述。
[0105]另外,本发明实施例中,MHL驱动在通过执行MHL回调函数以检测外部设备是否为MHL设备之后,还可以将MHL回调函数的检测结果返回至USB OTG驱动。USB OTG驱动在接收到MHL回调函数的检测结果后,如果MHL回调函数的检测结果是外部设备为MHL设备,则USB OTG驱动将停止运行;如果MHL回调函数的检测结果是外部设备不为MHL设备,则USBOTG驱动将不作处理,即继续保留USB接口的USB OTG模式,在该模式下工作。
[0106]在本发明的一种优选实施例中,虽然通过MHL驱动检测出外部设备不为MHL设备后,USB接口将继续工作于USB OTG模式,但是还存在一种特殊情况,即该设备也不是USBOTG设备。针对该种情况可以在USB接口工作于USB OTG模式的过程中进行检测,在USBOTG模式下,USB接口所在的终端作为主机(host),将向插入该USB接口的外部设备发送命令,如果后续接收到外部设备返回的响应消息,则可以确定该外部设备为USB OTG设备,如果后续没有接收到外部设备返回的响应消息,则该外部设备可能不是USB OTG设备或者该外部设备没有被正确识别,该种情况下USBOTG驱动将上报错误消息,例如错误消息可以为“无法检测设备”或者“检测出未知设备”等等。后续再根据该消息进行相应处理即可,例如,检测错误的原因是USB接口出现故障,还是插入的外部设备为其他类型设备,然后再针对不同情况进行相应处理。
[0107]步骤205,MHL驱动检测所述MHL设备是否拔出。
[0108]USB接口默认是工作在USB OTG模式,因此在切换为USB接口的MHL模式之后,MHL驱动还可以检测插入的MHL设备是否拔出,拔出之后还要进行模式的切换。
[0109]在本发明的一种优选实施例中,该步骤205可以包括以下子步骤:
[0110]子步骤bl,MHL驱动检测所述USB_ID管脚的电平;
[0111]子步骤b2,在检测到所述USB_ID管脚的电平为高电平时确定所述MHL设备拔出。
[0112]在有USB OTG设备或者MHL设备插入USB接口后,USB_ID管脚将变为低电平,该设备拔出后,USB_ID管脚将变为高电平,因此,MHL驱动可以检测USB接口中USB_ID管脚的电平,在检测到USB_ID管脚的电平为高电平时即可确定MHL设备拔出。
[0113]步骤206,若检测出所述MHL设备拔出,则将所述USB接口的工作模式切换为USBOTG模式。
[0114]如果在步骤205中检测出MHL设备没有拔出,则不作处理,继续执行该检测过程;如果检测出MHL设备拔出,则可以将USB接口的工作模式切换为USB OTG模式。将USB接口的工作模式切换到USB OTG模式的过程可以通过控制转换开关切换到对应的USB OTG控制器实现。USB OTG模式还对应有通路,将USB接口的模式切换到USB OTG模式后,即可选通USB接口的USB OTG通路,通过该USB OTG通路传输USB数据。对于在USBOTG模式下的工作过程,本领域技术人员根据实际经验进行相关处理即可,本发明实施例在此不再详细论述。
[0115]参照图3,示出了本发明实施例二的一种逻辑控制示意图。根据该图可以得知:
[0116]USB接口的工作模式兼容USB OTG模式和MHL模式,其中在USBOTG模式时运行USBOTG驱动(USB 0TG_xxx),在MHL模式时运行MHL驱动(MHL_xxx)。USB OTG驱动和MHL驱动中均注册有检测功能函数(probe funct1n), probe funct1n函数是一个配置函数,具体的,USB OTG驱动的probe funct1n函数包括注册的用于监听USB_ID管脚中断的中断信号的监听函数(Request ID irq)和用于调用MHL回调函数的ID事件操作函数(ID eventwork) ,MHL驱动的probe funct1n函数包括注册的用于检测MHL设备的MHL回调函数(MHLcallback),并且该MHL回调函数还被注册到USB OTG驱动中。
[0117]当有USB OTG设备或MHL设备插入到USB接口后,生成USB_ID中断信号,USBOTG驱动检测到该中断信号后调用ID event work函数,该IDevent work函数调用MHL回调函数,运行MHL驱动,MHL驱动通过执行MHL回调函数以进行MHL设备检测,即检测插入的设备是否为MHL设备(MHL_xxx_configO),并且等待检测结果(MHL_xxx_wait_for_complete O)。MHL驱动将检测结果返回给USB OTG驱动,USB OTG驱动在插入的设备不是MHL设备时,进一步进行USB OTG设备的检测。对于切换USB接口的工作模式的过程,在此不再详细论述。
[0118]本发明实施例中,无需单独设置检测程序,只需预先在USB OTG驱动中注册MHL回调函数,在USB OTG设备或者MHL设备插入USB接口后,首先转入USB OTG驱动程序,该USBOTG驱动接收到中断信号后,再调用MHL回调函数进行MHL设备的检测,即由USB OTG驱动来控制硬件中断信号的处理,在MHL驱动中的MHL回调函数里来实现MHL设备检测功能,因此可以保证USB代码的完整性,利用回调函数机制,可以使复用USB接口的设备执行检测功能,从而不影响原有的USB OTG驱动的检测和其他功能,能够降低模块间的耦合性,还可以自如地添加更多USB接口复用的设备。
[0119]对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
[0120]实施例三:
[0121]参照图4,示出了本发明实施例三的一种USB接口复用MHL的装置的结构框图,该装置具体可以包括USB OTG驱动单元401和MHL驱动单元402。
[0122]其中,USB OTG驱动单元401可以包括:
[0123
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1