专利名称:用单片机实现机顶盒待机及唤醒的系统的制作方法
技术领域:
本发明涉及一种用单片机实现机顶盒待机及唤醒的系统。
技术背景
随着数字卫星电视、IP电视等的发展,机顶盒的市场需求越来越大;与此同时,全 球能源日益紧张,环境保护日渐紧迫。因此,考虑到节能及环保的因素,如何实现机顶盒的 省电设计,使之待机时功耗更低,成为了目前业界关注的重点。
另外,对于一种新型的利用卫星实现的PUSH TV服务模式,不仅要求实现机顶盒待 机的模式节能,同时还需要机顶盒能在设定的时间自启动并进行后台下载任务,从而接收 卫星转发来的最新节目。这就要从节能和功能要求两方面来设计机顶盒的待机模式。
现有技术一实现机顶盒待机的技术方案是机顶盒的电源模块直接对所有电模块 供电,待机时所有模块仍处于供电状态,仅仅是停止视频的输出。
发明人在实现本发明的过程中发现现有技术至少存在以下缺点机顶盒处于待机 状态时的功耗与正常工作的功耗基本相当。这样的假待机状态,会造成较大的能源浪费。同 时,对机器的有效使用寿命也有较大影响。
现有技术二实现机顶盒待机的技术方案是机顶盒仅仅保持顶及CPU核心模块的 运行。
发明人在实现本发明的过程中发现现有技术至少存在以下缺点虽然机顶盒处于 此种待机状态时功耗相对技术一较低,但对于满足能源之星认证的要求仍然有困难。同时, 这种待机状态无法完成诸如后台下载的功能。
现有技术三主要是机顶盒处于待机状态时,所有模块的供电被完全关闭,电源控 制交由另外的控制设备如单片机掌握。
发明人在实现本发明的过程中发现现有技术三至少存在以下缺点机顶盒待机 后,无法实现自动唤醒并进行后台动作,诸如后台下载等。同时,CPU在完成下载任务后也 无法自主关闭所有模块的电源从而自动进入待机状态。
在申请号200810067091. 5的专利中,涉及到的待机方法为根据不同功能单元的 特点确定是关断电源、还是使其进入低功耗状态,CPU本身一直运行并决定各电源模块的通 断,而本发明中CPU和单片机来共同处理电源模块的通断,CPU不会一直处于运行状态。发明内容
本发明针对以上问题的提出,而研制一种用单片机实现机顶盒待机及唤醒的系 统。本发明采用的技术手段如下
一种用单片机实现机顶盒待机及唤醒的装置,包括机顶盒控制主板、用户操作模 块和设置在机顶盒控制主板上的CPU模块;
其特征在于还包括微控制器、RTC时钟芯片、状态指示模块和可控电源;
所述状态指示模块,用于显示机顶盒中各单元的工作状态;
所述用户操作模块包括面板按键和遥控器;
所述微控制器包括用户操作检查模块、RTC动作检查模块、运行状态判断模块、 开机源判断模块和电源控制模块;
所述用户操作检查模块,用于对用户操作模块开机或关机信号进行检测;
所述RTC动作检查模块,用于对RTC时钟芯片发出的RTC定时唤醒信号进行检测;
所述运行状态判断模块,用于判断此时机顶盒的运行状态;
所述开机源判断模块,用于判断开机信号来自RTC时钟芯片还是用户操作模块;
所述电源控制模块,用于控制可控电源对机顶盒控制主板上的各模块通电或断 电;
所述CPU模块包括用户操作检查模块、开机源判断模块、视频输出控制模块、下 载模块、RTC设定模块和状态操作模块;
所述用户操作检查模块,用于对用户操作模块产生的操作指令及关机信号进行检 测;
所述开机源判断模块,根据所述开机源判断模块传输过来的判定结果以获取判定 开机信号来自RTC时钟芯片还是用户操作模块;
所述视频输出控制模块,根据开机源判断模块获取得结果做出相应动作,当开机 信号来自用户操作模块控制视频输出,否则控制视频不输出;
所述下载模块,用于下载卫星转发的最新节目,将数据存储于机顶盒内置的硬盘 中;
所述RTC设定模块,用于对RTC时钟芯片设定定时时间;
所述状态操作模块,用于向电源控制模块发出对机顶盒控制主板上的各模块断电 的指令;
在使用时所述用户操作检查模块和RTC动作检查模块检测是否有用户操作模块 发出的开/关机信号或RTC时钟芯片发出的RTC定时唤醒信号,在通过运行状态判断模块 进行判断,若此信号为开机信号,电源控制模块控制可控电源为机顶盒控制主板供电;开机 源判断模块判断此时机顶盒的开机源是来自用户操作模块还是RTC时钟芯片,通过数据总 线将判断结果传输到开机源判断模块上;若开机源来自户操作模块,则视频输出控制模块 打开视频输出,此后用户操作检查模块会不停地检查用户操作模块传回的操作指令,一旦 检测到关机信号,RTC设定模块向RTC时钟芯片写入定时时间,状态操作模块通过数据总线 控制电源控制模块对机顶盒控制主板上各模块断电;若开机源来自RTC时钟芯片,则视频 输出控制模块不打开视频输出,下载模块判断此时是否有下载任务,若有下载任务进行后 台下载,若没有下载任务RTC设定模块向RTC时钟芯片写入定时时间,然后状态操作模块通 过数据总线控制电源控制模块对机顶盒控制主板上各模块断电。
所述微控制器还包括外围设备控制模块,用于控制状态指示模块对机顶盒中各单 元的不同工作状态显示的切换;
所述状态操作模块,还用于通过I2C数据总线将机顶盒中各单元的不同工作状态 传送到外围设备控制模块上,以控制控制状态指示模块对机顶盒中各单元的不同工作状态 进行显示。
一种用单片机实现机顶盒待机及唤醒的方法,其特征在于包括如下步骤
S1000 微控制器实时检测用户操作或者RTC动作;
S2000 当微控制器检测到用户操作或者RTC动作,微控制器控制电源模块为机顶 盒主板各模块供电;
S3000 微控制器利用数据总线向机顶盒CPU模块传输开机源信息;
S4000 机顶盒CPU模块收到微控制器传来的数据;
S5000 机顶盒CPU模块判断此时的开机源是来自用户操作还是RTC动作;
S6100 如开机源为用户操作,机顶盒CPU模块打开视频输出,并切换状态指示灯 的状态;
S6200 同时机顶盒CPU模块检测用户关机动作;
S6300 如开机源为用RTC动作,机顶盒CPU模块进行下载操作,接收卫星推送的数 据,此时无视频输出;
S6400 同时机顶盒CPU模块判断是否有节目数据下载任务;如果有下载任务,执 行步骤S6500 ;如果没有,则执行步骤S7000 ;
S6500 机顶盒CPU模块下载节目数据,将其保存到机顶盒的内置硬盘中;
S6600 机顶盒CPU模块将已经下载完成的数据量与预定好的下载量进行比对,判 断下载任务是否未完成;如果未完成继续执行步骤S6500 ;如果完成则执行步骤S7000 ;
S7000 机顶盒CPU模块向RTC芯片写入定时数据,设定下次机顶盒启动的时间,并 向微控制器发出关闭机顶盒主板各模块电源的指令;微控制器控制电源模块停止向机顶盒 主板各模块供电。
与现有技术相比,本发明的优点是显而易见的具有较低的待机功耗;还具有定 时开机进行自动下载的功能;可使机顶盒的有效使用寿命得到延长。另外,由于其结构简 单,便于生产,对现有技术的改造也非常方便,并且成本低廉适于在机顶盒领域广泛推广。
图1为本发明所述装置结构框图2为微控制器的各功能结构示意图3为CPU模块的各功能结构示意图4为本发明待机流程状态图5为本发明所述待机方法的流程图。
具体实施方式
本发明是通过微控制器101的一个重要作用是对机顶盒的电源及外围设备进行 控制。CPU模块200与微控制器101通过总线进行通信,微控制器向CPU传送开机源信息。 CPU模块200根据开机源的不同进行相应操作。如果是开机源为RTC,则CPU模块200不开 打视频输出,仅进行台后下载。如果下载完成CPU模块200则向RTC芯片300写入定时数 据设定下次启动时间;向微控制器101下达指令,令微控制器101控制可控电源600切断主 板各模块的电源。如果开机源为用户操作,则CPU模块200打开视频的输出,并通知微控制 器切换状态指示灯的状态。此时,机顶盒处理正常运行状,用户可正常操作。微控制器101 采用的是8位MCU。各MCU生产厂商都有相应的型号,实际实施可以自由选择,对于数据通信,最好采用具有硬件数据通信总线的MCU,方便程序的开发。如果限于成本因素也可采用 GPIO模拟数据总线方式。
如图1、图2和图3所示该单片机实现机顶盒待机及唤醒的装置,包括机顶盒控 制主板、用户操作模块500和设置在机顶盒控制主板上的CPU模块200 ;还包括微控制器 101、RTC时钟芯片300、状态指示模块400和可控电源600 ;
所述状态指示模块400,用于显示机顶盒中各单元的工作状态;
所述用户操作模块500包括面板按键501和遥控器502 ;
所述微控制器101包括用户操作检查模块701、RTC动作检查模块702、运行状态 判断模块703、开机源判断模块704和电源控制模块705 ;
所述用户操作检查模块701,用于对用户操作模块500开机或关机信号进行检测 (对于检测按键和红外信号的的实现方法本发明不再重述,可以查询相关资料。);可实现 针对两种不同的信号则系统会有不同的行为动作;对于该待机系统来讲,用户的开机关机 操作行为是一样的,都是按键或者遥控操作。比如对于按键来说,如果最初为开机状态,则 按一下为开,再按一下就是关,这两次的用户行为是一样,必须由系统来判断此时用户的按 键操作是开机操作还是关机操作。遥控器也是同样的。运行状态模块通过内置标志位来判 断用户的操作是开机还是关机操作从而进行下一步的动作如果是开机动作,则控制权交 与开机源判断模块处理;如果是关机动作,则通过数据总线向用户操作检查模块801传送 关机命令。
所述RTC动作检查模块702,用于对RTC时钟芯片300发出的RTC的低电平唤醒信 号进行检测;
所述运行状态判断模块703,用于判断此时机顶盒的运行状态及用户操作的信号 含义(可用MCU自身的寄存器置位来实现)。对于该待机系统来讲,用户的开机关机操作 行为是一样的,都是按键或者遥控操作,运行状态判断模块703通过内置标志位来判断此 时机器运行状态进而判断用户的操作为开机操作还是关机操作。如果此时机器处于待机状 态,则运行状态判断模块703可判断用户操作为开机操作;如果此时机器处于运行状态,则 运行状态判断模块703可判断用户操作为关机操作。
所述开机源判断模块704,用于判断开机信号来自RTC时钟芯片300还是用户操作 模块500(也可用MCU自身的寄存器置位来实现);
所述电源控制模块705,用于控制可控电源600对机顶盒控制主板上的各模块通 电或断电(可用一 GPIO 口作为电源的控制开关);
所述CPU模块200包括用户操作检查模块801、开机源判断模块802、视频输出控 制模块803、下载模块804、RTC设定模块805和状态操作模块806 ;
所述用户操作检查模块801,用于对用户操作模块500产生的操作指令及关机信 号进行检测(可用一个GPIO 口来实现);
所述开机源判断模块802,根据所述开机源判断模块704传输过来的判定结果以 获取判定开机信号来自RTC时钟芯片300还是用户操作模块500(可通过内置寄存器置位 实现);
所述视频输出控制模块803,根据开机源判断模块802获取得结果做出相应动作, 当开机信号来自用户操作模块500控制视频输出,否则控制视频不输出;7
所述下载模块804,用于下载卫星转发的最新节目,将数据存储于机顶盒内置的硬 盘中;
所述RTC设定模块805,用于对RTC时钟芯片300设定定时时间(通过I2C通讯总 线设定RTC的定时时间);
所述状态操作模块806,用于向电源控制模块705发出对机顶盒控制主板上的各 模块断电的指令;
在使用时所述用户操作检查模块701和RTC动作检查模块702检测是否有用户操 作模块500发出的开/关机信号或RTC时钟芯片300发出的RTC定时唤醒信号,在通过运 行状态判断模块703进行判断,若此信号为开机信号,电源控制模块705控制可控电源600 为机顶盒控制主板供电;开机源判断模块704判断此时机顶盒的开机源是来自用户操作模 块500还是RTC时钟芯片300,通过数据总线将判断结果传输到开机源判断模块802上;若 开机源来自户操作模块500,则视频输出控制模块803打开视频输出,此后用户操作检查模 块801会不停地检查用户操作模块500传回的操作指令,一旦检测到关机信号,RTC设定模 块805向RTC时钟芯片300写入定时时间,状态操作模块806通过数据总线控制电源控制 模块705对机顶盒控制主板上各模块断电;若开机源来自RTC时钟芯片300,则视频输出控 制模块803不打开视频输出,下载模块804判断此时是否有下载任务,若有下载任务进行后 台下载,若没有下载任务RTC设定模块805向RTC时钟芯片300写入定时时间,然后状态操 作模块806通过数据总线控制电源控制模块705对机顶盒控制主板上各模块断电。
所述微控制器101还包括外围设备控制模块706,用于控制状态指示模块400对机 顶盒中各单元的不同工作状态显示的切换;
所述状态操作模块806,还用于通过I2C数据总线将机顶盒中各单元的不同工作 状态传送到外围设备控制模块706上,以控制控制状态指示模块400对机顶盒中各单元的 不同工作状态进行显示。706外围设备控制模块用来控制状态指示灯及风扇等设备的状态, 可按需要用几个GPIO 口来实现。数据通信总线707最好是MCU可由硬件实现,其通信是双 向的,目前的MCU—般都支持一种或几种,如I2C、SPI、USB、RS232,具体形式由所选择的 MCU决定,数据通信总线也可采用软件模拟也可以达到目的,不过其稳定性会降低,软件的 开发难度也会增加,本发明建议采用MCU自身软件实现,因为这样MCU的成本会更低,同时 由于该通讯的数据量不是很大,性能也不会有任何影响。
如图4所示对待机状态流程做细化描述,以便进一步理解本发明。
1)真待机C200、关机C400- >开机运行ClOO/假待机C300流程
a)用户操作电源键(包括面板电源键和遥控电源键,下文皆如此表示)或RTC唤 醒触发单片机(前面所述的微控制器101)执行上电开机,单片机记录开机源标志并据其设 置相应的前面板状态指示灯。
b) CPU上电启动运行,通过I2C通知单片机此时CPU已正常工作如果单片机在上电 5秒内没有收到该消息,执行开机异常处理。CPU通过I2C读取单片机的开机源标志决定是 否显示开机画面开机源为RTC时不显示开机画面,开机后进入假待机C300状态。
c) CPU开始启动主程序,并通过I2C读取开机源标志通知主程序进入运行或假待 机状态。
2)运行C100- >待机(真待机C200/假待机C300)流程
CPU检测到电源键操作后根据当前的下载状态决定进入真待机C200还是假待机 状态。无数据下载时,设置RTC唤醒时间并通过I2C通知单片机关闭主板各模块供电,进入 真待机C200状态,设置指示灯到相应状态显示;有数据下载时,主程序关闭显示输出并进 入假待机C300状态,设置指示灯到相应状态显示。
3)假待机C300- >真待机流程C200
CPU下载完数据后,设置RTC唤醒时间并通过I2C通知单片机关闭主CPU供电,进 入真待机C200状态。
4)假待机C300- >运行ClOO流程
CPU检测到电源按键操作后,打开显示输出并通知单片机设置指示灯到相应状态, 机顶盒处于运行ClOO状态。
5)运行ClOO、假待机C300- >关机C400流程
电源键长按超过4秒钟,单片机强制切断主板的电源,且之后单片机不会处理RTC 唤醒信号从而打开主板各模块电源。
下面结合图5对单片机实现机顶盒待机及唤醒的方法,做详细描述,具体如下
S1000 微控制器实时检测用户操作或者RTC动作;
S2000 当微控制器检测到用户操作或者RTC动作,微控制器控制电源模块为机顶 盒主板各模块供电;(例如可利用一 GPIO管脚作为供电的开关,高电平为供电,低电平为 不供电。)
S3000 微控制器利用数据总线向机顶盒CPU模块传输开机源信息;(例如可利用 12C数据通讯向CPU传送一自定义的字节数据,表明开机源,如00000000为RTC开机。)
S4000 机顶盒CPU模块收到微控制器传来的数据;
S5000 机顶盒CPU模块判断此时的开机源是来自用户操作还是RTC动作;
S6100 此时开机源为用户操作,CPU视频控制模块打开视频输出,状态控制模块 通知MCU切换状态指示灯的状态,如打开运行指示灯,关闭待机指示灯,机顶盒正常工作, 进入运行状态;
S6200 同时机顶盒CPU模块检测用户关机动作(此关机动作包括面板电源键动作 和红外遥控按键动作);
S6300 如开机源为用RTC动作,机顶盒CPU模块进行下载操作,接收卫星推送的数 据,此时无视频输出;对于用户来说机器仍然处于待机状态;机顶盒进入假待机状态。
S6400 同时机顶盒CPU模块判断是否有节目数据下载任务;如果有下载任务,执 行步骤S6500 ;如果没有,则执行步骤S7000 ;
S6500 机顶盒CPU模块下载节目数据,将其保存到机顶盒的内置硬盘中;
S6600 机顶盒CPU模块将已经下载完成的数据量与预定好的下载量进行比对,判 断下载任务是否未完成;如果未完成继续执行步骤S6500 ;如果完成则执行步骤S7000 ;
S7000 机顶盒CPU模块向RTC芯片写入定时数据,设定下次机顶盒启动的时间,并 向微控制器发出关闭机顶盒主板各模块电源的指令;微控制器控制电源模块停止向机顶盒 主板各模块供电,机顶盒进入真待机状态。
综上所述,本发明采用了 CPU、MCU共同控制的待机方式,在机顶盒不同的运行状 态下,CPU和MCU可分别决定机器的运行状态。这样即可实现定时后台下载,也可在无后台下载任务时保持待机模式的低功耗。
以上所述,仅为本发明较佳的具体实施方式
,但本发明的保护范围并不局限于此, 任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其 发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
权利要求
1. 一种用单片机实现机顶盒待机及唤醒的装置,包括机顶盒控制主板、用户操作模块 (500)和设置在机顶盒控制主板上的CPU模块O00);其特征在于还包括微控制器(101)、RTC时钟芯片(300)、状态指示模块(400)和可控 电源(600);所述状态指示模块G00),用于显示机顶盒中各单元的工作状态; 所述用户操作模块(500)包括面板按键(501)和遥控器(502); 所述微控制器(101)包括用户操作检查模块(701)、RTC动作检查模块(702)、运行状 态判断模块(703)、开机源判断模块(704)和电源控制模块(705);所述用户操作检查模块(701),用于对用户操作模块(500)开机或关机信号进行检测; 所述RTC动作检查模块(702),用于对RTC时钟芯片(300)发出的RTC定时唤醒信号进 行检测;所述运行状态判断模块(703),用于判断此时机顶盒的运行状态; 所述开机源判断模块(704),用于判断开机信号来自RTC时钟芯片(300)还是用户操作 模块(500);所述电源控制模块(705),用于控制可控电源(600)对机顶盒控制主板上的各模块通 电或断电;所述CPU模块(200)包括用户操作检查模块(801)、开机源判断模块(802)、视频输出 控制模块(803)、下载模块(804)、RTC设定模块(80 和状态操作模块(806);所述用户操作检查模块(801),用于对用户操作模块(500)产生的操作指令及关机信 号进行检测;所述开机源判断模块(802),根据所述开机源判断模块(704)传输过来的判定结果以 获取判定开机信号来自RTC时钟芯片(300)还是用户操作模块(500);所述视频输出控制模块(803),根据开机源判断模块(802)获取得结果做出相应动作, 当开机信号来自用户操作模块(500)控制视频输出,否则控制视频不输出;所述下载模块(804),用于下载卫星转发的最新节目,将数据存储于机顶盒内置的硬盘中;所述RTC设定模块(805),用于对RTC时钟芯片(300)设定定时时间; 所述状态操作模块(806),用于向电源控制模块(70 发出对机顶盒控制主板上的各 模块断电的指令;在使用时所述用户操作检查模块(701)和RTC动作检查模块(702)检测是否有用户操 作模块(500)发出的开/关机信号或RTC时钟芯片(300)发出的RTC定时唤醒信号,在通 过运行状态判断模块(70 进行判断,若此信号为开机信号,电源控制模块(70 控制可控 电源(600)为机顶盒控制主板供电;开机源判断模块(704)判断此时机顶盒的开机源是来 自用户操作模块(500)还是RTC时钟芯片(300),通过数据总线将判断结果传输到开机源判 断模块(802)上;若开机源来自户操作模块(500),则视频输出控制模块(803)打开视频输 出,此后用户操作检查模块(801)会不停地检查用户操作模块(500)传回的操作指令,一旦 检测到关机信号,RTC设定模块(805)向RTC时钟芯片(300)写入定时时间,状态操作模块 (806)通过数据总线控制电源控制模块(70 对机顶盒控制主板上各模块断电;若开机源 来自RTC时钟芯片(300),则视频输出控制模块(803)不打开视频输出,下载模块(804)判断此时是否有下载任务,若有下载任务进行后台下载,若没有下载任务RTC设定模块(805) 向RTC时钟芯片(300)写入定时时间,然后状态操作模块(806)通过数据总线控制电源控 制模块(70 对机顶盒控制主板上各模块断电。
2.根据权利要求1所述的一种用单片机实现机顶盒待机及唤醒的装置,其特征在于所 述微控制器(101)还包括外围设备控制模块(706),用于控制状态指示模块(400)对机顶盒 中各单元的不同工作状态显示的切换;所述状态操作模块(806),还用于通过I2C数据总线将机顶盒中各单元的不同工作状 态传送到外围设备控制模块(706)上,以控制状态指示模块(400)对机顶盒中各单元的不 同工作状态进行显示。
3.一种用单片机实现机顶盒待机及唤醒的方法,其特征在于包括如下步骤 S1000 微控制器实时检测用户操作或者RTC动作;S2000 当微控制器检测到用户操作或者RTC动作,微控制器控制电源模块为机顶盒主 板各模块供电;S3000 微控制器利用数据总线向机顶盒CPU模块传输开机源信息;S4000 机顶盒CPU模块收到微控制器传来的数据;S5000 机顶盒CPU模块判断此时的开机源是来自用户操作还是RTC动作;S6100 如开机源为用户操作,机顶盒CPU模块打开视频输出,并切换状态指示灯的状态;S6200 同时机顶盒CPU模块检测用户关机动作;S6300 如开机源为用RTC动作,机顶盒CPU模块进行下载操作,接收卫星推送的数据, 此时无视频输出;S6400 同时机顶盒CPU模块判断是否有节目数据下载任务;如果有下载任务,执行步 骤S6500 ;如果没有,则执行步骤S7000 ;S6500 机顶盒CPU模块下载节目数据,将其保存到机顶盒的内置硬盘中; S6600 机顶盒CPU模块将已经下载完成的数据量与预定好的下载量进行比对,判断下 载任务是否未完成;如果未完成继续执行步骤S6500 ;如果完成则执行步骤S7000 ;S7000 机顶盒CPU模块向RTC芯片写入定时数据,设定下次机顶盒启动的时间,并向微 控制器发出关闭机顶盒主板各模块电源的指令;微控制器控制电源模块停止向机顶盒主板 各模块供电。
全文摘要
本发明公开了一种用单片机实现机顶盒待机及唤醒的系统,包括微控制器、RTC时钟芯片、状态指示模块和可控电源;通过微控制器检测是否有机顶盒传回的开/关机信号或RTC时钟芯片发出的RTC定时唤醒信号,若为开机信号,微控制器控制可控电源为机顶盒控制主板供电;机顶盒进一步判断此信号是来自哪里后,进行相应动作以实现机顶盒的视频输出或后台下载;微控制器一旦检测到关机信号,机顶盒向RTC时钟芯片写入定时时间,微控制器控制可控电源对机顶盒控制主板上各模块断电。该系统具有较低的待机功耗;可使机顶盒的有效使用寿命得到延长。由于其结构简单,便于生产,对现有技术的改造也非常方便,并且成本低廉适于在机顶盒领域广泛推广。
文档编号H04N21/41GK102045595SQ201010533488
公开日2011年5月4日 申请日期2010年11月5日 优先权日2010年11月5日
发明者朱兆勋, 杨强, 甄钊博, 蔡向阳, 陈宗圣, 雷环利 申请人:中国华录集团有限公司