掌桥专利:专业的专利平台
掌桥专利
首页

一种低功耗多处理器串口唤醒方法及系统

文献发布时间:2023-06-19 09:30:39


一种低功耗多处理器串口唤醒方法及系统

技术领域

本发明涉及智能设备在线升级技术领域,尤其是一种低功耗多处理器串口唤醒方法。

背景技术

微控制器在物联网领域的应用越来越广泛,同时对控制器的低功耗设计也有了更高的要求。一般微控制器都有多种低功耗模式,在进入低功耗模式之后,微控制器内部时钟被停掉,内核以及外设和内部振荡电路都停止了工作。这个时候,微控制器可以通过外部引脚产生中断来唤醒微控制器,也可以通过内部电路来唤醒。很多时候,还要求通过通信接口来唤醒微控制器,从而可以实现在需要通信的时候,微控制器处于工作状态,在不需要通信的时候进入低功耗模式。特别是在多处理器通信中,一般只有两个微控制器间在某一时刻建立通信,其他的微控制器最好处于低功耗状态。

现有方法是通过一对一的方式,一个主机,一个从机。通过判断接收线上是否有数据,或者是否收到数据来唤醒从机。这样的一对一连接方式,比较简单,容易实现。但要想唤醒多个从机,多个系统,就不太方便。本文使用了一种ID确认机制,来唤醒多个从机的低功耗系统。

为了更好的解决在多处理器中低功耗通信,保证在某一个时刻,被寻址的串口能够正确唤醒接受数据,我们在通常的串口上增加了部分逻辑,实现多处理器中低功耗通信。

发明内容

发明目的:为解决现有技术的缺陷,本发明提出一种低功耗多处理器串口唤醒方法及系统。

技术方案:本发明给出的技术方案为:

一种低功耗多处理器串口唤醒方法,该方法通过主处理器唤醒从处理器,从处理器为一个或多个;从处理器包括串口模块、电源管理模块、时钟控制模块和内核模块;

该方法包括步骤:

(1)主处理器在发送数据之前,先发送选定的从处理器的ID,发送ID时,起始位下降沿信号触发所有从处理器的串口模块产生时钟请求信号给电源管理模块,电源管理控制模块使能时钟控制模块,时钟控制模块产生串口时钟信号反馈给串口模块,使串口开始接收数据;

(2)从处理器的串口模块接收到ID后,与预先保存在串口模块中的自身ID进行比较,若比较结果一致,则串口模块发出中断唤醒信号给电源管理控制模块,通知电源管理控制模块使能时钟控制模块产生系统时钟送到内核模块,同时产生唤醒中断唤醒内核模块;若比较结果不一致,则串口模块不产生中断唤醒信号,并立即停止接收数据;

(3)主处理器向所有从处理器发送数据,数据的最高位为0,已经被唤醒的从处理器继续接收数据,而未被唤醒的从处理器不接收数据,等待下一个ID发送触发唤醒;

(4)当主处理器需要更换所要通信的从处理器时,主处理器重新发送从处理器的ID,ID起始位下降沿信号触发所有从处理器的串口模块,各从处理器重复执行步骤(2)至(3)。

进一步的,所述ID的最高位为1,所述数据的最高位为0。

本发明还提出一种用于实现所述低功耗多处理器串口唤醒方法的系统,该系统包括:主处理器和至少一个从处理器,主处理器的输出端分别与各从处理器的输入端连接;从处理器的串口模块包括:数据接收控制逻辑电路、数据接收缓冲器、ID寄存器、ID判断电路;

数据接收控制逻辑电路用于检测从处理器输入端的下降沿信号,当检测到下降沿信号时,产生串口时钟请求信号UART_CK_REQ给电源管理模块;以及接收时钟控制模块反馈的串口时钟信号,并根据串口时钟信号开始接收处理器输入端上的数据,当接收ID时,将ID存放至数据接收缓冲器,此时ID判断电路将数据接收缓冲器中存放的ID与ID寄存器中存放的自身ID进行逐位比对,并根据比对结果产生一位电平信号发送给电源管理控制模块的使能端;若比对结果一致,所述电平信号即为可以启动电源管理控制模块的中断唤醒信号,若比较结果不一致,则所述电平信号不能启动电源管理控制模块。

有益效果:与现有技术相比,本发明具有以下优势:

具有一个主机唤醒多个从机的低功耗系统功能;只有被访问的从机系统才能从低功耗唤醒,如果主机发送的数据不针对任何一个已连的从机,那么所有的从机系统继续保持低功耗模式;从机系统从低功耗唤醒后,将接收主机发送的数据,直到主机停止发送或者切换到下一个从机系统为止。

附图说明

图1 为本发明所述多处理器串口唤醒系统的结构图;

图2为从处理器内部模块功能结构图;

图3为串口模块内部模拟电路图;

图4为多处理器串口唤醒方法流程图。

具体实施方式

下面结合附图和具体实施例对本发明作更进一步的说明。

本发明旨在提出一种低功耗多处理器串口唤醒方法,该方法通过主处理器唤醒从处理器,从处理器为一个或多个;从处理器包括串口模块、电源管理模块、时钟控制模块和内核模块;

该方法包括步骤:

(1)主处理器在发送数据之前,先发送选定的从处理器的ID,发送ID时,起始位下降沿信号触发所有从处理器的串口模块产生时钟请求信号给电源管理模块,电源管理控制模块使能时钟控制模块,时钟控制模块产生串口时钟信号反馈给串口模块,使串口开始接收数据;

(2)从处理器的串口模块接收到ID后,与预先保存在串口模块中的自身ID进行比较,若比较结果一致,则串口模块发出中断唤醒信号给电源管理控制模块,通知电源管理控制模块使能时钟控制模块产生系统时钟送到内核模块,同时产生唤醒中断唤醒内核模块;若比较结果不一致,则串口模块不产生中断唤醒信号,并立即停止接收数据;

(3)主处理器向所有从处理器发送数据,数据的最高位为0,已经被唤醒的从处理器继续接收数据,而未被唤醒的从处理器不接收数据,等待下一个ID发送触发唤醒;

(4)当主处理器需要更换所要通信的从处理器时,主处理器重新发送从处理器的ID,ID起始位下降沿信号触发所有从处理器的串口模块,各从处理器重复执行步骤(3)至(4)。

本发明可以适用于一对一的串口唤醒系统,也可以适用于一对多的串口唤醒系统,此处仅以一对多的串口唤醒系统为例,阐述本发明的技术方案。

实施例:图1所示为一种一对多的处理器串口唤醒系统,其中微控制器0为主机,其它微控制器为从机。其中,从处理器内部模块功能结构如图2所示,包括串口UART、电源管理模块PMU、时钟控制模块CLK_GEN、内核模块CORE。

为了实现唤醒机制,本发明在微处理器的串口模块增加了以下功能:

1.接收端RX下降沿检测逻辑;

2.内部新增ID号寄存器,ID寄存器一共8位,最高位为标志位,低4位为ID号位;本实施例中设置ID位为4位,用于比较接收的数据的,判断是否需要产生唤醒请求;接收的数据如果是ID,则最高位为1,如果是数据,则为0, ID低4位有效。

3.ID比较电路,用于比较接收到的ID和ID号寄存器存储的ID的,如果比较结果相同,对于未唤醒的微控制器,则产生唤醒请求(UART_WUK输出),对于已唤醒的微控制器,继续接收数据;如果不同,对于已经唤醒的微控制器,则让自身进入静默模式,停止接收RX传来的数据,对于还未唤醒的微控制器,则继续保持低功耗模式等待唤醒。

图3所示为所述串口模块的模拟电路结构图。

基于图3所示的串口模块,多处理器串口通信工作过程如图4所示:

微控制器0 UART(简称UART0)是主机,当需要访问其他从机时,UART0发送要访问从机的ID号到TX0上。 此时,所有的从机都接受到TX0发过来的数据。对从机微控制器1 UART(简称UART1)来说,接收端RX1与TX0相连,所以,信号和TX0一样。当RX1检查到有下降沿时,就会产生时钟请求信号UART_CK_REQ。这个时钟请求会通过电源管理控制模块后,使能内部振荡时钟(CLK_GEN),从而将UART1需要的时钟送到UART1,这样便可以有效地接收RX1上的ID数据。对于多处理器中的其他UART从机来说,也是同样的方法接收数据。

如果是ID数据,则最高位为1。当ID数据接收到以后,这个接收到的ID将和存在ID寄存器中的ID进行比较,如果结果相同,那么该从机就是主机UART0要访问的从机。这个时候,这个要访问的从机发出中断唤醒信号UART_WUK到PMU,通知PMU模块唤醒使能系统时钟,唤醒CORE。而未被ID命中的从机,则不会产生UART_WUK,同时使时钟请求UART_CK_REQ无效。

如果不是ID数据,则最高位为0。对于已经正确接收到ID的从机来说,就可以正确接收数据了。而对于未检测到ID的从机来说,就会在RX下降沿继续重复请求时钟,接收ID,当发现收到的不是ID时,则不去比较ID,忽略收到的数据。

如果主机想要通信,则需要发出该从机的ID。对于已经唤醒的从机(如UART1),当接收ID后,和ID寄存器比较,发现主机要访问的不是自己,立刻停止继续接收数据(不再向系统产生中断,或者各种状态位不再更新)。当主机UART0再次发出UART1的ID时,又可以重新接收数据。对于还未唤醒的从机(UART2),其唤醒如同前面提到的UART1一样,产生UART_CK_REQ,比较ID,产生UART_WUK,唤醒系统。

以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

相关技术
  • 一种低功耗多处理器串口唤醒方法及系统
  • 一种不使用握手控制线的串口唤醒系统及串口通信方法
技术分类

06120112197813