专利名称:一种系统唤醒的方法
技术领域:
本发明涉及通信领域中设备内部系统的工作状态的控制技术,具体涉及 一种设备中系统唤醒的方法。
技术背景通用异步接收/发送装置(UART, Universal Asynchronous Receiver and Transmitter)串口是常用的一种异步串行接口 。对于采用UART串口通信的 两个系统,可以根据其在网络中的位置分为数据通信设备(DCE, Data communication Equipment)禾口数据终端设备(DTE, Data Terminal Equipment)。 UART串口接口信号有8个,分别是数据发送信号(TXD, Transmit Data), 数据接收信号(RXD, Receive Data),发送请求信号(RTS, Request To Send), 允许发送信号(CTS, Clear To Send), DCE准备好信号(DSR, Data Set Ready), DTE准备好信号(DTR, Data Terminal Ready), DCE输出给DTE的振铃信 号(RI, Ring Indicator)以及DCE输出给DTE的数据检波信号(DCD, Data Carrier Detect)。其中,RTS, CTS, DSR, DTR, RI和DCD是硬件流控信 号,可用于实现流量控制。现有通信设备中通常有多个处理器,每个处理器以及其外围电路组成的 处理器单元可以看作一个相对独立的系统,例如在移动终端设备中,有包含 基带处理器的基带系统和包含应用处理器的应用系统。为了降低功耗,系统 在空闲状态时通常关闭主时钟并进入睡眠状态,当发生外部事件时,系统将 被唤醒并回到正常状态。由于多个系统通常是各自进入睡眠状态,为了保证 系统之间通讯的安全有效,需要采取一种可靠的睡眠唤醒机制,唤醒处于睡 眠状态的系统。在睡眠状态中,由于系统通常关闭主时钟,所以系统唤醒只 能通过异步组合逻辑实现,通常采用通用输入输出端口 (GPIO, General Purpose Input/Output)中断、键盘中断等方式。现有技术中系统唤醒的方法是通过增加新的睡眠唤醒信号来实现的,图1为现有技术中系统唤醒的示意图。图1中包括两个通信系统,分别是DCE和DTE。 DCE和DTE之间的通讯除了采用UART串口接口信号外,还增加 了两组自定义的睡眠唤醒信号,即SLEEP1、 WAKEUP1、 SLEEP2和 WAKEUP2,其中SLEEP 1和SLEEP2是睡眠指示信号,WAKEUP1和 WAKEUP2是唤醒信号。DTE唤醒DCE的过程是当DCE进入睡眠状态时, 将SLEEP1设置成某一状态,DTE査询SLEEP1即可获知DCE的状态;当 DTE想要和处于睡眠状态的DCE通信时,在WAKEUP1上发送一定形式的 信号实现异步组合逻辑,DCE接收到该信号后即可从睡眠状态回到正常状态, 即被唤醒。类似的,DCE唤醒DTE的过程是通过SLEEP2和WAKEUP2来 实现的。通过上述方法,现有技术可以实现DCE和DTE之间的双向唤醒。现有技术的系统唤醒方法通过增加了自定义的睡眠指示信号和唤醒信号 来实现双向唤醒。由于增加了串口通讯外的硬件信号,该方法显然占用了更 多的硬件资源。同时,为了实现唤醒功能,需要在软件上针对这些自定义信 号设计控制流程并编写代码,这进一步增加了软件的复杂性。 发明内容有鉴于此,本发明提供一种系统唤醒的方法,本方法无需增加硬件信号 端口,即可实现系统的睡眠和唤醒。基于上述目的,本发明提供一种系统唤醒的方法,应用于通信设备的两 个系统之间,两个系统之间通过至少3个信号端口实现通信,本发明的系统 唤醒方法包括以下步骤步骤A,如果需要进入睡眠状态,第一系统将第一信号端口设置为中断 触发源,将第二信号端口上的信号设置为无效状态后,进入睡眠状态;步骤B,第二系统向第一通信系统发送数据前,如果在第二信号端口检 测到无效状态,则在第一信号端口发送中断信号;步骤C,第一系统接收到上述中断信号后,从睡眠状态回到正常状态, 将第二信号端口上的信号设置为有效状态,并撤销第一信号端口的中断触发 源;步骤D,第二系统在第二信号端口检测到有效状态后,即可向第一系统 发送数据。本发明的系统唤醒方法中,所述的第一系统是数据通信设备DCE,第二系统是数据终端设备DTE;所述的第一信号端口是异步接收/发送装置UART 串口的发送请求信号RTS端口 ,所述的第二信号端口是UART串口的允许发 送信号CTS端口。本发明的系统唤醒方法中,步骤A中所述的设置中断触发源,是将RTS 端口设置成通用输入输出端口GPIO,并设置该GPIO为中断触发源;步骤B 中所述的中断信号是脉冲下降沿信号;步骤C中所述的撤销中断触发源,是 恢复RTS为硬件流控信号。本发明的系统唤醒方法中,步骤A中所述的设置无效状态,是将CTS上 的信号设置为高电平状态;步骤C中所述的设置有效状态,是将CTS上的信 号设置为低电平状态。本发明的系统唤醒方法中,所述的第一系统是DTE,第二系统是DCE; 所述的第一信号端口是UART串口的振铃信号RI端口 ,所述的第二信号端口 是UART串口的发送请求信号RTS端口 。本发明的系统唤醒方法中,步骤A中所述的设置中断触发源,是将RI 端口设置成GPIO,并设置该GPIO为中断触发源;步骤B中所述的中断信号 是脉冲下降沿信号;步骤C中所述的撤销中断触发源,是恢复RI为硬件流控 信号。本发明的系统唤醒方法中,步骤A中所述的设置无效状态,是将RTS上 的信号设置为高电平状态;步骤C中所述的设置有效状态,是将RTS上的信 号设置为低电平状态。从以上所述可以看出,本发明提供的系统唤醒的方法,无需增加新的硬 件信号端口即可实现系统的睡眠和唤醒,从而节省了系统的硬件资源。同时, 由于上述硬件流控信号的附加定义只是用于系统的睡眠唤醒,并没有修改现 有的UART通讯协议,不会影响上述硬件流控信号作为流控信号的特性。另 外,本发明方法中对硬件流控信号的附加定义非常简单,因而本发明实施起 来简单可靠。
图1为现有技术中系统唤醒的示意图; 图2为本发明中DTE唤醒DCE实施例的流程示意图; 图3为本发明中DCE唤醒DTE实施例的流程示意图。
具体实施方式
UART串口是嵌入式系统中最常用的异步串行接口 , DCE和DTE之间只 需采用2根信号线即可实现UART串口简单通讯。为了保证通讯的可靠性和 信息传递的效率,通常采用所有8根信号线的连接方法。本发明一种系统唤 醒的方法,在不增加新的硬件信号情况下,对UART串口接口信号中的部分 硬件流控信号端口进行配置,通过UART串口实现系统唤醒。以下结合附图 对本发明作详细的说明。在本发明中,针对硬件流控信号RTS端口, CTS端口和RI端口分别进 行如下配置RI为DCE唤醒DTE的唤醒信号,本发明中将RI端口设置成GPIO,并 且配置该GPIO为下降沿有效的中断触发源,当在RI端口上发送脉冲下降沿 时即触发中断;CTS为DCE处于睡眠状态的睡眠指示信号,当CTS为高电平时表明DCE 处于睡眠状态,低电平时表明DCE处于正常状态;RTS为DTE处于睡眠状态的睡眠指示信号,当RTS为高电平时表明DTE 处于睡眠状态,低电平时表明DTE处于正常状态;同时RTS也是DTE唤醒 DCE的唤醒信号,将RTS端口设置成GPIO,并且配置该GPIO为下降沿有 效的中断触发源,当在RTS端口上发送脉冲下降沿时即触发中断。通过对上述硬件流控信号端口的配置,通讯系统之间可以相互查询对方 状态以及实现系统唤醒。需要指出的是,以上针对这3个信号的附加定义, 是用于DCE和DTE之间的双向系统唤醒,并没有改变现有的UART通讯协 议,也不影响上述3个信号本身作为硬件流控信号的特性。本发明系统唤醒的方法,包括DTE唤醒DCE和DCE唤醒DTE两种情 况。图2为本发明中DTE唤醒DCE的流程示意图,图2中使用了 RTS和CTS 两个信号。其中,CTS为DCE的睡眠指示信号,当CTS为高电平,即无效 状态时,表明DCE处于睡眠状态;RTS为DTE唤醒DCE的唤醒信号,系统 进入睡眠状态前,将RTS端口设置成GPIO,并且配置该GPIO为下降沿有效
的中断触发源。当在RTS端口上发送脉冲下降沿时即可触发中断事件,从而唤醒DCE。下面结合图2说明DTE唤醒DCE的流程,该流程包括以下步骤 步骤20,每次进入睡眠状态前,DCE将RTS端口设置为GPIO,并且配置该GPIO为下降沿有效的中断触发源,同时将CTS设置为高电平的无效状态后,DCE进入睡眠状态;上述设置GPIO的操作通常是通过配置处理器内部的寄存器实现的。例如,当处理器的RTS管脚可以复用为GPIO,则可以通过配置处理器内部寄存器,将RTS管脚配置成GPIO;当处理器的RTS管脚不可复用为GPIO,则可以配置处理器管脚连接关系,将该RTS管脚连接到处理器的其它GPIO管脚上。
步骤21, DTE向DCE发送数据前,如果在CTS端口上检测到高电平, 则获知DCE处于睡眠状态,DTE通过在RTS端口发送一个脉冲下降沿信号, 用于触发中断,唤醒处于睡眠状态的DCE;步骤22, DCE接收到上述信号后,从睡眠状态回到正常状态,将RTS 端口恢复为硬件流控信号端口,并将CTS设置为低电平的有效状态,表明 DCE已准备好接收数据;上述恢复RTS端口为硬件流控信号端口的操作,可以通过取消步骤20 中对处理器所作的配置来实现。步骤23, DTE在CTS端口上检测到低电平后,获知DCE处于正常状态, 即可开始向DCE发送数据。图3为本发明中DCE唤醒DTE的流程示意图,图3中使用了 RI和RTS 两个信号,其中RTS为DTE的睡眠指示信号,当RTS为高电平,即无效状 态时,表明DTE处于睡眠状态;RI为DCE唤醒DTE的唤醒信号,RI端口 被设置成GPIO,并且配置该GPIO为下降沿有效的中断触发源。当在RI端 口上发送脉冲下降沿时即触发中断事件,从而唤醒DTE。下面结合图3说明 DCE唤醒DTE的流程,该流程包括以下步骤步骤30,每次进入睡眠状态前,DTE将RI端口设置为GPIO,并且配置 该GPIO为下降沿有效的中断触发源,同时将RTS设置为高电平的无效状态 后,DTE进入睡眠状态; 上述设置GPIO的操作通常是通过配置处理器内部的寄存器实现的。例如,当处理器的RI管脚可以复用为GPIO,则通过配置处理器内部寄存器, 将RI管脚配置成GPIO;当处理器的RI管脚不可复用为GPIO,则可以配置 处理器管脚连接关系,将该RI管脚连接到处理器的其它GPIO管脚上。步骤31, DCE向DTE发送数据前,如果在RTS端口上检测到高电平, 则获知DTE处于睡眠状态,DCE通过在RI端口上发送一个脉冲下降沿信号, 用于触发中断,唤醒处于睡眠状态的DTE;步骤32, DTE接收到上述信号后,从睡眠状态回到正常状态,将RI端 口恢复为硬件流控信号端口,并将RTS设置为低电平的有效状态,表明DTE 已准备好接收数据;上述恢复RI端口为硬件流控信号端口的操作,可以通过取消步骤30中 对处理器所作的配置来实现。步骤33, DCE在RTS端口上检测到低电平后,获知DTE处于正常状态, 即可开始向DTE发送数据。以上说明了本发明方法通过UART串口实现系统唤醒功能的流程,通过 上述方法,可以实现DCE和DTE之间的双向系统唤醒功能。本发明方法无 需增加新的硬件信号端口,从而节省了系统的硬件资源。同时,由于本发明 中增加的对硬件流控信号端口的配置只是用于系统的睡眠唤醒,并没有修改 现有的UART通讯协议,不会影响上述硬件流控信号本身作为流控信号的特 性。另外,本发明方法中增加的对硬件流控信号端口的配置非常简单,因而 本发明实施起来简单可靠。 9
权利要求
1.一种系统唤醒的方法,应用于通信设备的两个系统之间,两个系统之间通过至少2个信号端口实现通信,其特征在于,包括以下步骤步骤A,如果需要进入睡眠状态,第一系统将第一信号端口设置为中断触发源,将第二信号端口上的信号设置为无效状态后,进入睡眠状态;步骤B,第二系统向第一通信系统发送数据前,如果在第二信号端口检测到无效状态,则在第一信号端口发送中断信号;步骤C,第一系统接收到上述中断信号后,将第二信号端口上的信号设置为有效状态,并撤销第一信号端口的中断触发源,从睡眠状态回到正常状态;步骤D,第二系统在第二信号端口检测到有效状态后,即可向第一系统发送数据。
2. 根据权利要求1所述的方法,其特征在于,所述的第一系统是数据通 信设备DCE,第二系统是数据终端设备DTE;所述的第一信号端口是异步接 收/发送装置UART串口的发送请求信号RTS端口,所述的第二信号端口是 UART串口的允许发送信号CTS端口 。
3. 根据权利要求2所述的方法,其特征在于,步骤A中所述的设置中断 触发源,是将RTS端口设置成通用输入输出端口 GPIO,并设置该GPIO为中 断触发源;步骤B中所述的中断信号是脉冲下降沿信号;步骤C中所述的撤 销中断触发源,是恢复RTS为硬件流控信号。
4. 根据权利要求2或3所述的方法,其特征在于,步骤A中所述的设置 无效状态,是将CTS上的信号设置为高电平状态;步骤C中所述的设置有效 状态,是将CTS上的信号设置为低电平状态。
5. 根据权利要求1所述的方法,其特征在于,所述的第一系统是DTE, 第二系统是DCE;所述的第一信号端口是UART串口的振铃信号RI端口, 所述的第二信号端口是UART串口的发送请求信号RTS端口 。
6. 根据权利要求5所述的方法,其特征在于,步骤A中所述的设置中断 触发源,是将RI端口设置成GPIO,并设置该GPIO为中断触发源;步骤B中所述的中断信号是脉冲下降沿信号;步骤C中所述的撤销中断触发源,是 恢复RI为硬件流控信号。
7.根据权利要求5或6所述的方法,其特征在于,步骤A中所述的设置 无效状态,是将RTS上的信号设置为高电平状态;步骤C中所述的设置有效 状态,是将RTS上的信号设置为低电平状态。
全文摘要
本发明公开了一种系统唤醒的方法,用于在通信设备中系统之间唤醒处于睡眠状态的系统。本发明方法中,如果需要进入睡眠状态,第一系统将第一信号端口设置为中断触发源,将第二信号端口设置为无效状态后,进入睡眠状态;第二系统向第一通信系统发送数据前,如果在第二信号端口检测到无效状态,则在第一信号端口发送中断信号;第一系统接收到上述中断信号后,从睡眠状态回到正常状态,将第二信号端口上的信号设置为有效状态,并撤销第一信号端口的中断触发源;第二系统在第二信号端口检测到有效状态后,即可向第一系统发送数据。本发明方法无需增加新的硬件信号端口,即可实现系统的睡眠和唤醒。
文档编号H04L12/26GK101132306SQ20061011248
公开日2008年2月27日 申请日期2006年8月21日 优先权日2006年8月21日
发明者林俊超, 兵 高 申请人:大唐移动通信设备有限公司;上海大唐移动通信设备有限公司