内置摄像头的电源管理方法

文档序号:6510559阅读:507来源:国知局
专利名称:内置摄像头的电源管理方法
技术领域
本发明涉及通用串行总线设备的电源管理方法,尤指一种内置摄像头的电源管理方法。
背景技术
随着USB(Universal Serial Bus,通用串行总线)接口的被动响应的通用串行总线设备的集成度的提高,例如,以摄像头为例,越来越多的笔记本电脑提供内置摄像头功能。内置摄像头会导致系统功耗增加,主要有两个原因第一、内置摄像头大部分都是USB(1.1/2.0)接口,即使摄像头处于不工作状态也需要消耗电能。第二、因为系统插入USB设备后,CPU会脱离低功耗状态;所以,笔记本内置摄像头后,只要在开机状态下,从系统角度看USB设备将一直存在,这种情况下CPU就永远不会进入到低功耗状态,从而导致功耗的增加。
对于USB设备来说,一但插到系统上。USB的信号线会一直有信号输出,所以试图通过改造硬件、增加硬件监控电路来判别USB设备是否有信号传输状态难度很大,即使能实现,这种做法成本也很高。
USB摄像头同样也存在这种问题。内置摄像头需要从笔记本USB接口取电,所以没办法做到根据需要对自身电源开关的控制,例如在开机状态下。摄像头内置后,用户无法通过插拔摄像头来降低整个系统功耗。用硬件实现摄像头自动控制会造成笔记本成本的增加,而且会影响整个笔记本的硬件设计,实现难度也很大。在用户体验方面不友好,例如如果开机时用户忘记打开摄像头电源,运行摄像头相关的软件时,系统会报错;如果固件(Firmware)在开机时缺省把摄像头打开,而用户并没有使用摄像头相关软件,会造成系统功耗上升,影响电池续航能力。

发明内容
本发明解决的问题是提供一种内置摄像头的电源管理方法,仅在USB设备工作时供电。
为解决上述问题,本发明内置摄像头的电源管理方法,包括步骤开关设置步骤,通过主板芯片输出端口输出的电平高低控制系统电源和摄像头通用串行总线接口断开或接通;电源控制步骤,控制主板芯片输出端口的电平输出,使仅在摄像应用加载时为摄像头供电。
电源控制步骤其中一种实现方式进一步包括
1)创建虚拟摄像模块,通知操作系统虚拟摄像头已经加载,所述虚拟摄像模块提供摄像应用的调用接口;
2)等待系统事件,判断摄像应用是否加载;
3)如果摄像应用加载,则通过读取主板芯片输出端口输出的电平判断摄像头是否上电,在摄像头没有上电时,则直接设置主板芯片输出端口寄存器的值来改写的该输出端口的输出电平值或者通过主板芯片输出端口模拟摄像头插入动作,使摄像头上电;
4)如果摄像应用没有加载,则在应用列表为空时通知操作系统卸载物理摄像模块,并控制主板芯片输出端口的输出电平使系统电源和摄像头通用串行总线接口断开。
所述步骤2)中判断摄像应用是否加载通过判断初始化函数是否被调用实现。
所述步骤3)中于主板芯片输出端口模拟摄像头插入动作进一步包括控制主板芯片输出端口的输出电平使通用串行总线接口与系统电源断开;延时;控制主板芯片输出端口的输出电平使通用串行总线接口与系统电源接通。
步骤3)进一步包括等待操作系统加载物理摄像模块;判断物理摄像模块是否加载完毕,如果未加载完毕则继续等待,如果加载完毕,则更新应用列表,并进行加载应用。
所述物理摄像模块是否加载完毕通过操作系统的装置改变事件,调用装置加载控制函数获得通用串行总线接口设备名称、设备标识及设备属性来判断。
所述步骤4)进一步包括在摄像应用没有加载时,虚拟摄像模块内部计数器的改变判断摄像应用是否卸载;如果卸载则更新应用列表,如果未卸载则返回步骤1);在应用列表不为空时返回步骤1)。
电源控制步骤另一实现方式进一步包括开启步骤响应按键,在开启摄像头应用时则通过读取主板芯片输出端口输出的电平判断摄像头是否上电;在摄像头没有上电时,则直接在主板芯片输出端口寄存器改写的该输出端口的输出电平或者通过主板芯片输出端口模拟摄像头插入动作,使摄像头上电;关闭步骤响应按键,在关闭摄像头应用时,则通过读取主板芯片输出端口输出的电平判断摄像头是否关电;如果未关电,则控制主板芯片输出端口的输出电平使系统电源和摄像头通用串行总线接口断开或者通知操作系统将物理摄像模块从操作系统移除。
操作系统卸载物理摄像模块的实现方式包括有使用高级配置与电源接口通知操作系统关闭物理摄像模块;或者,使用操作系统提供的函数禁用物理摄像模块;或者,采用驱动过滤器生成输入输出请求包,传送停止或移出信息给物理摄像模块;或者,控制主板芯片输出端口的输出电平使系统电源和摄像头通用串行总线接口断开。
开关设置步骤中进一步包括开关串联在系统电源和摄像头通用串行总线接口之间;主板芯片输出端口与开关控制端连接。
与现有技术相比,本发明具有以下优点
修改内置摄像头设备的硬件电路,在摄像头连接的USB接口处,使用GPIO来控制USB接插件的电,通过对GPIO的控制,达到控制摄像头电源的目的,从而延长电池续航能力且实现需要的硬件成本很低。
通过本发明能够自动检测摄像头是否在工作,根据摄像头的工作状态,自动、安全地把摄像头从操作系统中移除或加载,通知设备内置开关关闭或开启摄像头电源,达到节电的功能。
用户用键盘热键/按钮控制电源开关条件下,关闭电源前能够保证摄像头设备已经在OS中安全删除,避免了强制拉电会导致摄像头烧毁的可能。同时关闭电源前,可以自动把摄像头摄像应用经卸载或者应用收到关闭信息后作一定处理,增强了使用性。
无键盘热键/按钮控制情况下,提供安全的内置电源控制方法,不需要用户干预,无论摄像头电源开关与否,用户都能在系统中寻找到摄像头设备,增强了用户体验。
上述两种情况都可以达到在内置摄像头没有被用户使用的情况下,自动把摄像头从操作系统中卸载(也可以同时关闭摄像头电源),消除因为摄像头的存在而导致系统功耗增加的可能。


图1是本发明内置摄像头的电源管理方法流程图。
图2是本发明第一实施例流程图。
图3a、3b是本发明电路图。
图4是本发明第二实施例流程图。
具体实施例方式
请参照图1所示,本发明内置摄像头的电源管理方法,包括步骤
开关设置步骤,通过主板芯片输出端口输出的电平高低控制系统电源和摄像头通用串行总线接口断开或接通;
电源控制步骤,控制主板芯片输出端口的电平输出,使仅在摄像应用加载时为摄像头供电。
请参照图2所示电源控制步骤的第一实施例,包括
1)创建虚拟摄像模块(Camera Shadow),通知操作系统虚拟摄像头已经加载(只要Camera Shadow被加载则操作系统就认为摄像头存在,虚拟摄像模块在系统启动时会被加载,只要虚拟模块加载,操作系统就会认为有摄像设备存在,这样不会因摄像头硬件没上电而导致操作系统不加载摄像模块,从而不会给用户寻找摄像应用造成困难),所述虚拟摄像模块提供摄像应用的调用接口,如果操作系统是XP,则Camera Shadow为摄像应用提供组件对象模型(COM)接口;
2)等待系统事件,判断摄像应用是否加载,如果操作系统是XP,每个摄像应用被启动且用到摄像头时会调用到Camera Shadow的COM接口;系统事件指用户使用鼠标、键盘、其他方式(例如系统启动时自动执行)等把摄像应用叫出;
3)如果摄像应用加载,则通过读取主板芯片输出端口输出的电平判断摄像头是否上电,在摄像头没有上电时,则直接在主板芯片输出端口寄存器改写的该输出端口的输出电平值或者通过主板芯片输出端口模拟摄像头插入动作,使摄像头上电;
4)如果摄像应用没有加载,则在应用列表为空时通知操作系统卸载物理摄像模块,并控制主板芯片输出端口的输出电平使系统电源和摄像头通用串行总线接口断开。
物理摄像模块,与摄像头硬件有关的模块,只有在设备上电后,才会加载,加载过程完全由OS控制。在XP上可以认为是一个USB摄像驱动程序,直接操作摄像头(例如对数据的读、写);与Camera Shadow通过操作系统进行通讯,具体通讯方法由操作系统实现的)。。
摄像应用通过操作系统提供的接口来获取Camera Shadow模块的调用接口,从而实现摄像应用。
所述步骤2)中判断摄像应用是否加载通过判断初始化函数是否被调用实现。具体判断加载应用是否加载的方法很多。
方法一,在XP上,摄像应用一般使用COM来访问摄像相关接口。例如通过CoCreateInstance()函数和QueryInterface()可以得到IWiaMiniDrv接口;获得IWiaMiniDrv后,摄像应用会调用IWiaMiniDrv:drvInitializeWia来初始化摄像设备。当这一个函数调用时,就可以确定有摄像应用加载。IWiaMiniDrv是一个COM接口,有内部计数器。当计数器变0时,表示没有任何摄像应用在运行,计数器不为0就是有相关摄像应用在运行。
方法二同方法一相似,不过使用的是IStiUSD接口和IStiUSD的Initialize()函数。当这个函数被调用时,也可以作为摄像应用初始化的依据。IStiUSD的计数器可以作为是否有摄像应用在运行的依据。
步骤3)中主板芯片输出端口模拟摄像头插入动作进一步包括控制主板芯片输出端口的输出电平使通用串行总线接口与系统电源断开;延时(例如2秒);控制主板芯片输出端口的输出电平使通用串行总线接口与系统电源接通。
请参照图3所示,开关设置步骤中进一步包括开关串联在系统电源和摄像头通用串行总线接口之间;主板芯片输出端口与开关控制端连接。本实施例主板芯片输出端口以GPIO(通用输入输出接口为例)。GPIO可以输出‘0’或者‘1’。当GPIO为0时,USB1PWR会有电压输出给摄像头通用串行总线接口;当GPIO为1时,USB1PWR没有电压存在,摄像头通用串行总线接口不会有电,反之亦然。
步骤3)直接在主板芯片输出端口寄存器改写的该输出端口的输出电平值使摄像头上电,本实施例中以对GPIO的控制为例,只是对主板芯片和该GPIO相关的寄存器的某个bit进行0或1操作。以南桥芯片(ICH6)为例,假设GPIO的物理地址是0x1300,使用的GPIO是33。那么GPIO33的物理偏移是0x1338,相对应的bit是bit1。
对GPIO的控制可以如下实现
......mov dx,1338hin al,dxor al,00000010bout dx,al......<!-- SIPO <DP n="6"> --><dp n="d6"/>也可以使用ACPI的方式来控制,参考如下OperationRegion(GPIO,SystemIo,0x1300,0x3C)Field(GPIO,ByteAcc,NoLock,Preserve){.........Offset(0x38),//GPIO,Level,Bank 1, 1,GP33, 1,GP34,1,, 5,.........}……Method(_Q34){If(GP33){Store(0,GP33)}Else{Store(1,GP33)}}
请继续参照图2,步骤3)进一步包括等待操作系统加载物理摄像模块;
判断物理摄像模块是否加载完毕,如果未加载完毕则继续等待,如果加载完毕,则更新应用列表,并进行加载应用。
所述物理摄像模块是否加载完毕通过操作系统的装置改变事件,调用装置加载控制函数获得通用串行总线接口设备名称、设备标识及设备属性来判断。Camera shadow是一直存在的。在XP上可以如下判断生成一个窗口接收OS发送出的WM_DEVICECHANGE(装置改变)事件。如果这一事件发生,调用装置加载控制函数DeviceIoControl(....,IOCTL_USB_GET_NODE_INFORMATION,....)和DeviceIoControl(...,IOCTL_USB_GET_NODE_CONNECTION_INFORMATION,...)来获取USB设备信息,根据USB设备的名称、设备标识(Device ID)、设备属性来判断出物理摄像模块是否加载完成。
请继续参照图2所示步骤4)进一步包括在摄像应用没有加载时,判断摄像应用是否卸载;如果卸载则更新应用列表,如果未卸载则返回步骤1);在应用列表不为空时返回步骤1)。所述摄像应用卸载通过Camera Shadow的调用接口例如IWiaMiniDrv接口和IStiUSD接口,有内部计数器。每打开一个摄像应用时计数器加1;反之,每卸载/关闭一个摄像应用时计数器减1,通过计数器的加减变化判断摄像应用是否卸载;当计数器变0时,表示没有任何摄像应用在运行,计数器不为0就是有相关摄像应用在运行。
请参照图4所示,电源控制步骤的第二实施例通过热键或按钮响应来实现的,第二实施例具体实现可以参照第一实施例,包括
开启步骤响应按键,在开启摄像头应用时则通过读取主板芯片输出端口输出的电平判断摄像头是否上电;在摄像头没有上电时,则直接在主板芯片输出端口寄存器改写的该输出端口的输出电平值或者通过主板芯片输出端口模拟摄像头插入动作,使摄像头上电;
关闭步骤响应按键,在关闭摄像头应用时,则通过读取主板芯片输出端口输出的电平判断摄像头是否关电;如果未关电,则控制主板芯片输出端口的输出电平使系统电源和摄像头通用串行总线接口断开或者通知操作系统将物理摄像模块从操作系统移除;如果关电操作系统会自动卸载物理摄像模块。
其他处理主要指用户可以收到热键后在上电后或者关电前作的一些处理。例如可以打开摄像头应用软件,或者关闭摄像头应用软件。
所述操作系统卸载物理摄像模块的实现方式包括有
使用高级配置与电源接口通知操作系统关闭物理摄像模块,例如Notify(xxx,01),其中xxx表示摄像头设备;或者,
使用操作系统提供的函数(例如DeviceIoControl()可以通知USB驱动禁用、关闭端口)禁用物理摄像模块;或者,
采用驱动过滤器(Filter Driver)生成输入输出请求包(IPR),传送停止或移出信息(Stop/Remove)给物理摄像模块;或者,
控制主板芯片输出端口的输出电平使系统电源和摄像头通用串行总线接口断开,例如如果GPIO1时,电平拉低,直接设置GPIO为0。
修改内置摄像头设备的硬件电路,在摄像头连接的USB接口处,使用GPIO来控制USB接插件的电,通过对GPIO的控制,达到控制摄像头电源的目的,从而延长电池续航能力且实现需要的硬件成本很低。
通过本发明能够自动检测摄像头是否在工作,根据摄像头的工作状态,自动、安全地把摄像头从操作系统中移除或加载,通知设备内置开关关闭或开启摄像头电源,达到节电的功能。
用户用键盘热键/按钮控制电源开关条件下,关闭电源前能够保证摄像头设备已经在OS中安全删除,避免了强制拉电会导致摄像头烧毁的可能。同时关闭电源前,可以自动把摄像头摄像应用经卸载或者应用收到关闭信息后作一定处理,增强了使用性。
无键盘热键/按钮控制情况下,提供安全的内置电源控制方法,不需要用户干预,无论摄像头电源开关与否,用户都能在系统中寻找到摄像头设备,增强了用户体验。
上述两种情况都可以达到在内置摄像头没有被用户使用的情况下,自动把摄像头从操作中卸载时关闭摄像头电源,消除因为摄像头的存在而导致系统功耗增加的可能。
另外,本发明也适合于除摄像头以外的被动的USB设备,只能被动的由系统控制。
权利要求
1.一种内置摄像头的电源管理方法,其特征在于包括步骤
开关设置步骤,通过主板芯片输出端口输出的电平高低控制系统电源和摄像头通用串行总线接口断开或接通;
电源控制步骤,控制主板芯片输出端口的电平输出,使仅在摄像应用加载时为摄像头供电。
2.如权利要求1所述的内置摄像头的电源管理方法,其特征在于电源控制步骤进一步包括
1)创建虚拟摄像模块,通知操作系统虚拟摄像头已经加载,所述虚拟摄像模块提供摄像应用的调用接口;
2)等待系统事件,判断摄像应用是否加载;
3)如果摄像应用加载,则通过读取主板芯片输出端口输出的电平判断摄像头是否上电,在摄像头没有上电时,则直接设置主板芯片输出端口寄存器的值来改写的该输出端口的输出电平值或者通过主板芯片输出端口模拟摄像头插入动作,使摄像头上电;
4)如果摄像应用没有加载,则在应用列表为空时通知操作系统卸载物理摄像模块,并控制主板芯片输出端口的输出电平使系统电源和摄像头通用串行总线接口断开。
3.如权利要求2所述的内置摄像头的电源管理方法,其特征在于所述步骤2)中判断摄像应用是否加载通过判断初始化函数是否被调用实现。
4.如权利要求2所述的内置摄像头的电源管理方法,其特征在于步骤3)中主板芯片输出端口模拟摄像头插入动作进一步包括
控制主板芯片输出端口的输出电平使通用串行总线接口与系统电源断开;
延时;
控制主板芯片输出端口的输出电平使通用串行总线接口与系统电源接通。
5.如权利要求2、3或4所述的内置摄像头的电源管理方法,其特征在于步骤3)进一步包括
等待操作系统加载物理摄像模块;
判断物理摄像模块是否加载完毕,如果未加载完毕则继续等待,如果加载完毕,则更新应用列表,并进行加载应用。
6.如权利要求5所述的内置摄像头的电源管理方法,其特征在于物理摄像模块是否加载完毕通过操作系统的装置改变事件,调用装置加载控制函数获得通用串行总线接口设备名称、设备标识及设备属性来判断。
7.如权利要求2、3或4所述的内置摄像头的电源管理方法,其特征在于步骤4)进一步包括在摄像应用没有加载时,虚拟摄像模块内部计数器的改变判断摄像应用是否卸载;如果卸载则更新应用列表,如果未卸载则返回步骤1);在应用列表不为空时返回步骤1)。
8.如权利要求1所述的内置摄像头的电源管理方法,其特征在于电源控制步骤进一步包括
开启步骤响应按键,在开启摄像头应用时则通过读取主板芯片输出端口输出的电平判断摄像头是否上电;在摄像头没有上电时,则直接在主板芯片输出端口寄存器改写的该输出端口的输出电平或者通过主板芯片输出端口模拟摄像头插入动作,使摄像头上电;
关闭步骤响应按键,在关闭摄像头应用时,则通过读取主板芯片输出端口输出的电平判断摄像头是否关电;如果未关电,则控制主板芯片输出端口的输出电平使系统电源和摄像头通用串行总线接口断开或者通知操作系统将物理摄像模块从操作系统移除。
9.如权利要求2或8所述的内置摄像头的电源管理方法,其特征在于,操作系统卸载物理摄像模块的实现方式包括有
使用高级配置与电源接口通知操作系统关闭物理摄像模块;或者,
使用操作系统提供的函数禁用物理摄像模块;或者,
采用驱动过滤器生成输入输出请求包,传送停止或移出信息给物理摄像模块;或者,
控制主板芯片输出端口的输出电平使系统电源和摄像头通用串行总线接口断开。
10.如权利要求1所述的内置摄像头的电源管理方法,其特征在于,开关设置步骤中进一步包括开关串联在系统电源和摄像头通用串行总线接口之间;
主板芯片输出端口与开关控制端连接。
全文摘要
本发明公开一种内置摄像头的电源管理方法,包括步骤开关设置步骤,通过主板芯片输出端口输出的电平高低控制系统电源和摄像头通用串行总线接口断开或接通;电源控制步骤,控制主板芯片输出端口的电平输出,使仅在摄像应用加载时为摄像头供电。本发明修改内置摄像头设备的硬件电路,在摄像头连接的USB接口处,使用GPIO来控制USB接插件的电,通过对GPIO的控制,达到控制摄像头电源的目的,从而延长电池续航能力且实现需要的硬件成本很低。
文档编号G06F1/32GK1808338SQ20051000186
公开日2006年7月26日 申请日期2005年1月18日 优先权日2005年1月18日
发明者刘旭国, 程孝仁, 袁康 申请人:联想(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1