工业级时钟控制器,工业级控制系统、方法及电子装置与流程

文档序号:29621473发布日期:2022-04-13 13:25阅读:378来源:国知局
工业级时钟控制器,工业级控制系统、方法及电子装置与流程

1.本发明涉及时钟控制技术领域,尤其涉及一种工业级时钟控制器,工业级控制系统、方法及电子装置。


背景技术:

2.在很多电子产品应用中,特别是电池供电的使用场合,低功耗是一个非常重要的技术问题。实时时钟(rtc,英文全称real time clock)模块在控制系统(例如,soc,英文全称system on chip,片上操作系统)的低功耗应用中是常用的一个功能模块,在一般低功耗应用的场合中,用户应用都会尽量让控制系统长时间置于低功耗的睡眠模式(sleep mode),并且通过控制系统中的实时时钟模块进行精确的定时,在到达设定时间时,rtc模块产生唤醒请求信号,将控制系统由睡眠模式唤醒,然后控制系统再进行下一阶段的工作。
3.以soc作为控制系统为例,在soc中,rtc使用频率非常高的功能模块。它可以为系统提供精确的实时时间,目前大多数rtc模块采用精度较高的晶体振荡器作为时钟源。除了作为时间基准,rtc模块还可以在主电源下电时,继续工作,并且在预设的时间后,控制主电源上电,使主系统重新开始工作。
4.如果希望主电源下电期间,rtc继续工作,需要为rtc模块提供独立电源,即rtc模块和主系统分别处于不同的电源域。但是现有技术中,rtc模块的工作模式,是由配置寄存器(configure register)控制的,对这些寄存器的配置,需要通过主系统的读写操作来完成,通常主系统与rtc模块之间通过apb总线互连。
5.所以现有技术中存在以下技术问题:当主电源重新上电后,首先会进行系统复位,这也会引起rtc模块的复位,因为当系统复位信号断言时,,会引起apb总线中的复位信号断言。由于复位信号是rtc配置寄存器的复位信号,因此这将造成rtc模块中配置寄存器的数据被复位到初始态,以至于改变rtc模块的工作模式,影响了soc系统的工作行为,显然这并不是系统的正常行为。


技术实现要素:

6.为了解决现有技术中rtc模块被异常复位的技术问题,本发明提供一种工业级时钟控制器,工业级控制系统、方法及电子装置,通过增加隔离电路来防止对寄存器中信号的控制系统启动过程中对rtc模块内部参数的干扰。
7.本发明第一方面提供一种工业级时钟控制器,其特征在于,包括:
8.时钟电路,用于生成实时时间;
9.与所述时钟电路连接的电源启动控制端口,在预设的时间后,向主电源输出上电控制信号;
10.第一寄存器,用于存储所述工业级时钟控制器向所述主电源输出上电信号的来源信息,所述上电信号的来源信息包括来自所述工业级时钟控制器外部引脚输入的主电源启动信号信息、来自与所述时钟电路关联的主电源启动信号信息;
11.隔离电路,用于在所述主电源启动过程中,隔离所述主电源侧改写所述第一寄存器中的信息。
12.本发明优选的实施方式中,上述工业级时钟控制器还包括:第二寄存器,所述第二寄存器和所述第一寄存器中被配置为相同的地址;并且对所述地址执行写操作时,数据会同时写入所述第一寄存器和所述第二寄存器,对所述地址执行读操作时,仅读出所述第一寄存器的配置信息。
13.本发明进一步优选的实施方式中,所述第二寄存器与来自所述工业级时钟控制器外部电源启动引脚通信连接,并且用于驱动所述电源启动控制端口的状态;所述第二寄存器驱动所述电源启动控制端口的状态包括:根据所述工业级时钟控制器内的第一配置信息,驱动所述电源启动控制端口,控制外部电源下电;根据所述时钟电路在预设的时间后,向主电源输出上电控制信号,控制外部电源上电;根据所述工业级时钟控制器外部电源启动引脚输入的电源启动信号,向主电源输出上电控制信号,控制外部电源上电。
14.本发明更进一步优选的实施方式中,所述第二寄存器与所述时钟电路之间还设置有电源唤醒寄存器,所述电源唤醒寄存器与所述第二寄存器通过第一或门电路与所述工业级时钟控制器外部电源启动引脚通信连接;当所述时钟电路在预设的时间后,从t1开始向所述电源唤醒寄存器输出高电平信号,所述电源唤醒寄存器向所述或门电路输入高电平;所述电源唤醒寄存器还通过同步电路向所述第二寄存器输入控制信号,使得所述第二寄存器在t2开始被配置为向所述第一或门电路输入高电平。
15.本发明又进一步优选的实施方式中,所述隔离电路包括控制写信息的第一隔离电路,所述第一隔离电路包括三与门电路和二与门电路,所述三与门电路的输入端分别与所述电源唤醒寄存器的输出端、外部输入的隔离信号、所述工业级时钟控制器外部电源启动引脚连接;所述二与门电路的输入端分别与所述三与门电路的输出端和外部输入的写信号连接,所述二与门电路的输出与所述第一寄存器连接。
16.本发明优选的实施方式中,所述隔离电路包括控制复位信息的第二隔离电路,所述第二隔离电路包括:与所述第一寄存器连接的反向器,第二或门电路、第三或门电路,所述反向器的输出端分别与所述第二或门电路的输入端、所述第三或门电路的输入端连接,所述第二或门电路、所述第三或门电路分别还接收外部输入的第一复位信号、第二复位信号;所述第二或门电路、所述第三或门电路的输出分别与所述第一寄存器的输入端、所述第二寄存器的输入端连接。
17.本发明第二方面还提供一种工业级控制系统,其特征在于,包括:
18.如第一方面提供的任意一种所述工业级时钟控制器,
19.与所述工业级时钟控制器连接的外围总线、电源管理器,以及
20.分别与所述外围总线、所述电源管理器连接的主电源域。
21.本发明优选的实施方式中,上述工业级控制系统还包括与所述工业级时钟控制器电连接的电池。
22.本发明第三方面还提供一种电子装置,其特征在于,包括:
23.如上述第二方面提供的工业级控制系统,
24.存储器,外围电路;
25.所述工业级控制系统根据所述存储器内的信息和/或外围电路的状态,向所述工
业级时钟控制器中工业级时钟控制器中寄存器执行读写、复位操作。
26.本发明第四方面还提供一种工业级时钟控制器用控制方法,其特征在于,包括:
27.在所述工业级时钟控制器初次上电时,向所述工业级时钟控制器外部引脚输入的主电源启动信号,以驱动与主电源输出连接的输出引脚输出高电平;
28.与主电源输出连接的输出引脚输出的高电平,驱动电源管理器给主电源供电;
29.在所述工业级时钟控制器为再次启动时,通过隔离电路隔离外部输入的信息,该输入的信息用于改写所述工业级时钟控制器中第一寄存器中的配置信息;其中,所述第一寄存器中的配置信息包括所述上电信号的来源信息包括来自所述工业级时钟控制器外部引脚输入的主电源启动信号信息、来自与所述时钟电路关联的主电源启动信号信息。
30.采用本发明提供的上述技术方案,通过增加隔离电路,在所述主电源启动过程中,隔离所述主电源侧改写第一寄存器中的信息;从而让rtc模块的工作模式不会因为在控制系统复位过程中,造成控制系统启动过程中的复位、写操作,导致对工业级时钟控制器内部rtc模块的工作模式对应配置信息的误改写。
31.发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书变得显而易见,或者通过实施本发明的技术方案而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构和/或流程来实现和获得。
附图说明
32.图1为本发明实施例提供一种工业级控制系统与电源的连接示意图。
33.图2为本发明实施例提供一种工业级时钟控制器的结构示意图。
34.图3为本发明实施例提供另一种工业级时钟控制器的结构示意图。
35.图4为本发明实施例提供的一种工业级时钟控制器内部的时序图。
36.图5为本发明实施例提供一种工业级时钟控制器用控制方法的示意图。
37.图6为本发明实施例提供一种电子装置的结构示意图。
具体实施方式
38.以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。需要说明的是,这些具体的说明只是让本领域普通技术人员更加容易、清晰理解本发明,而非对本发明的限定性解释;并且只要不构成冲突,本发明中的各个实施例以及各实施例中的各个特征可以相互结合,所形成的技术方案均在本发明的保护范围之内。
39.另外,在附图的流程图示出的步骤可以在诸如一组控制器可执行指令的控制系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
40.下面通过附图和具体实施例,对本发明的技术方案进行详细描述:
41.实施例
42.如图1为本实施例提供的一种工业级控制系统(例如,片上系统100,英文全称system on chip,简称soc)与电源的连接示意图,该soc100可应用于工业级的产品上,尤其是实现工业级超低功耗模式。但是本实施例提供的工业级控制系统不限于soc这种硬件电
路,对于其他硬件电路,例如,fpga这类控制系统,如果涉及到主控制器需要通过rtc模块来实现电源的上电控制,也可以采用本实施例提供的技术方案。
43.如图1所示,soc100中,rtc电源域110控制主电源域120的下电/上电,具体的连接方式如图1中所示,当主系统没有待处理任务时,其通过apb总线130(apb的英文全称为advanced peripheral bus),rtc电源域110内部配置rtc寄存器,包括电源唤醒时间,rtc计时使能,主电源下电使能等。当rtc计时时间到,自动控制soc的pwen_ctl引脚142输出高电平,使片外的电源管理器300(例如,pmic,英文全称power management ic,电源管理集成电路)通过电源引脚vdd143重新给soc100的主电源域120供电。本实施例中,除了可以自动控制soc的pwen_ctl引脚142输出高电平,还可以预先定义soc的pwen_ctl引脚142输出低电平,来实现对电源管理器的使能控制。
44.如图1所示,vdd_ao引脚141与电池200连接,这样vdd_ao引脚141为always-on电源(一直供电),即rtc电源域110(或称rtc模块)始终处于有电状态。需要说明的是,本实施例提供的上述电池200、电源管理器300可以如图1设置在soc100的外部,还可以部分或全部设置在soc100的内部。
45.如图1所示,本实施例提供的soc100中的引脚作用如下:电源引脚vdd143通常为电源电压或者电极器件内部电压,引脚vss144、引脚vss145分别为接地端或电源负极;prstn_rtc引脚146用于接收外部的电源上电信号,例如,安装有该soc100的电子装置中的开关打开或关闭,从而触发prstn_rtc引脚146为高电平或低电平。
46.本实施例中,soc芯片对应的主系统,是通过以下方式重新开始工作的:
[0047]-初次上电,
[0048]-rtc控制主电源域上电,
[0049]-片外管脚触发上电,例如,prstn_rtc引脚146,
[0050]-wdt(英文全称watch dog timer,看门狗定时器)溢出触发全芯片复位,
[0051]-soc内部的控制器通过软件触发全芯片复位。
[0052]
上面5种是常见的soc启动方式,其中前三种是冷启动,后两种是热启动。不管是哪种启动方式,都要对全soc进行复位,并从特定的复位向量处开始工作。对于某些soc系统,没有内置的上电复位单元(por),因此,当通过冷启动方式重启系统时,会在片外产生上电复位信号,并经全芯片复位管脚送入片内。
[0053]
实际应用中,需要知道系统是从哪种状态下重启的;不同的重启状态决定了不同的软件行为。通常会设定一些特殊的寄存器位,用来标识某种重启行为是否发生。比较常见的就是wdt,设计者通常会为其设置一个寄存器位,该位若为1,则表明发生过wdt复位;为0则没发生wdt复位。需要指出的是该寄存器位只有在发生wdt复位后,才会置1。可以通过软件清0。全芯片复位后,其初始态也为0。
[0054]
同理,rtc作为一种重启方式,也会提供类似的寄存器,用于判断是否发生了rtc控制的主系统重启。重启后,该寄存器的内容不会被改写,包括其他的rtc寄存器也不会被改写。只有这样,才能判断是否发生了rtc控制的重启。
[0055]
如何在主系统被rtc唤醒上电后,可靠地防止其对rtc寄存器的误改写,一种解决方案为,在主电源下电期间,将apb总线隔离到无效状态。当rtc计时时间到,控制主电源域开始重新上电,同时结束对apb总线的隔离。
[0056]
另外发明人在实现本发明的过程中,还发现主电源域120的上电过程,会产生较大的in-rush电流(带限制浪涌电流),这导致vdd信号达到可以工作的稳定电压前,不仅仅需要一个建立过程,该过程通常还伴随着较大的噪声,这取决于pmic的驱动能力以及应用板上电磁干扰等诸多因素。
[0057]
如果仅仅是出于电气特性的考虑,对来自下电域的信号进行隔离,并不一定考虑当主电源从开始上电,到电压稳定这段时间内,噪声可能对rtc寄存器内容的误改写。
[0058]
为了解决现有技术中rtc模块被异常复位的技术问题,本实施例提供一种工业级控制系统,该工业级控制系统中的工业级时钟控制器,通过增加隔离电路来防止对寄存器中信号的控制系统启动过程中对rtc模块内部参数的干扰。
[0059]
如图2所示,本实施例提供一种工业级时钟控制器1000,包括:
[0060]
时钟电路113,用于生成实时时间;
[0061]
与时钟电路113连接的输出模块112(例如,电源启动控制端口),在预设的时间后,向主电源输出上电控制信号;
[0062]
第一寄存器111,用于存储工业级时钟控制器向主电源输出上电信号的来源信息,上电信号的来源信息包括:

.来自工业级时钟控制器外部引脚输入的主电源启动信号信息、

.来自与时钟电路关联的主电源启动信号信息,例如,通过wdt(英文全称watch dog timer,看门狗定时器)来控制时钟电路,溢出触发全芯片复位对应的配置信息,soc内部的控制器通过软件触发全芯片复位对应的配置信息。
[0063]
隔离电路115,用于在主电源启动过程中,隔离主电源侧改写第一寄存器中的信息;该隔离电路115结合第一寄存器111中保存的配置信息,在不需要改写的情况下,结合隔离电路115内部的逻辑门电路,让输入模块116输入的信息失效,这样隔离电路115就可以隔离输入模块116输入的错误改写信息,该改写信息包括但不限于复位信号、写信号等。
[0064]
采用本实施例提供的上述技术方案,通过增加隔离电路115,在主电源启动过程中,隔离主电源侧改写第一寄存器中的信息;从而让rtc模块的工作模式不会因为在控制系统复位过程中,造成控制系统启动过程中的复位、写操作,导致对工业级时钟控制器内部rtc模块的工作模式对应配置信息的误改写。
[0065]
如图2所示,上述工业级时钟控制器1000还包括:第二寄存器114,第二寄存器114和第一寄存器111中被配置为相同的地址;所以第二寄存器114也称为第一寄存器111的备份寄存器或者影子寄存器。并且对该地址执行写操作时,数据会同时写入第一寄存器111和第二寄存器114,对该地址执行读操作时,仅读出第一寄存器111的配置信息。
[0066]
下面结合图3对隔离电路115的电路进行具体的说明,附图3中的电子元器件、信号名称分别如下:
[0067]
1000-prstn_rtc引脚,从外部接收的电平信号(也称唤醒源2);分别被注入至与门电路1010,三与门电路1140,第一寄存器1120;
[0068]
1010-与门电路,一个输入端与prstn_rtc引脚连接,一个输入端与presetn_mk信号连接,输出端与第二寄存器的输入端连接;
[0069]
1020-第二寄存器,与第一寄存器1120内写入的信息相同;一个输入端与与门电路1010的输出端连接,一个输入端与同步器1150连接,接收同步器1150输入的wk_ack信号,
[0070]
1030-或门电路,一个输入端与第二寄存器的输出端连接,一个输入端与电源唤醒
寄存器1050的输出端连接,其输出端与pwen_ctrl输出引脚连接,并且还与一个非门电路1070的输入端连接;
[0071]
1040-第一同步器,
[0072]
1050-电源唤醒寄存器(英文名pwen_ctrl_wk),接收rtc模块输出的rtc_int_pulse唤醒信号(为了表述方便,下文称为唤醒源1);
[0073]
1060-pwen_ctrl输出引脚,
[0074]
1070-非门电路,输入端与或门电路1030连接,输出端为iso_en信号;
[0075]
1080-或门电路,一端接收复位信号presetn,一端与非门电路1100连接,输出presetn_mk信号,该presetn_mk信号如图3左下侧的箭头所示,被输入至与门电路1010、rtc模块;
[0076]
1090-或门电路,一端与非门电路1100连接,一端接收复位信号rtc_rstn;输出rtc_rstn_mk信号至第一寄存器1120;
[0077]
1100-非门电路,将第一次寄存器的输出信号,进行转换;例如,如果第一寄存器输出低电平,则非门电路输出高电平;这样不管复位信号presetn、复位信号rtc_rstn是什么,或门电路1080、或门电路1090就都会输出高电平,从而实现对复位信号的隔离;
[0078]
1110-rtc模块,其内部包括第一寄存器1120,
[0079]
1120-第一寄存器,
[0080]
1130-或门电路,一端接收三与门电路1140的输入,一端接收pwrite信号,输出pwrite信号至rtc模块1110;
[0081]
1140-三与门电路,一端接收电源唤醒寄存器1050输出信号取反,一端接收prstn_rtc引脚1000输入信号,一端接收iso_en取反后信号;输出至或门电路1130;这样当rtc输出唤醒源1的信号的高电平信号时,通过去取反之后,输入低电平至三与门电路1140,然后也输出低电平至或门电路1130,从而或门电路1130输入至rtc模块1110的电平一直保持低,从而实现对pwrite信号的隔离;
[0082]
1150-同步器1150接收时钟信号1160的控制,将电源唤醒寄存器1050输出的pwen_ctrl_wk_pulse信号,结合时钟信号的输入,来调整输出至第二寄存器1020的输入wk_ack信号;
[0083]
1160-主电源域输入的时钟信号;
[0084]
参照上述图3对隔离电路115的电路进行具体的说明,第二寄存器1010与来自工业级时钟控制器外部电源启动引脚通信连接,并且用于驱动电源启动控制端口的状态;第二寄存器驱动电源启动控制端口的状态包括:根据工业级时钟控制器内的第一配置信息,驱动电源启动控制端口,控制外部电源下电;根据时钟电路在预设的时间后,向主电源输出上电控制信号,控制外部电源上电;根据工业级时钟控制器外部电源启动引脚输入的电源启动信号,向主电源输出上电控制信号,控制外部电源上电。
[0085]
第二寄存器1020又称pwen_ctl_drv寄存器,用于驱动pwen_ctl端口的状态,包括:
[0086]-软件写寄存器为0,驱动pwen_ctl为低,使片外pmic下电。
[0087]-rtc计时时间到,驱动pwen_ctl_wk_pulse为高,使片外pmic上电。
[0088]-prstn_rtc管脚有低脉冲时,pwen_ctl_drv寄存器置1,驱动pwen_ctl为高,使片外pmic上电。
[0089]
并且第二寄存器1020与时钟电路之间还设置有电源唤醒寄存器1050,电源唤醒寄存器1050与第二寄存器1020通过第一或门电路1010与工业级时钟控制器外部电源启动引脚1000通信连接;当rtc模块内部的时钟电路在预设的时间后(或者根据软件的配置信息),从t1开始向电源唤醒寄存器1050输出高电平信号,电源唤醒寄存器1050向或门电路1030输入高电平;电源唤醒寄存器1050还通过同步电路1150向第二寄存器1010输入控制信号(wk_ack信号),使得第二寄存器1010在t2开始被配置为向第一或门电路1030输入高电平。
[0090]
第一寄存器1120也称pwen_ctl_status寄存器,其定义如下:
[0091]
bit31bit1bit0 prstn_rtcpwen_ctl_mk
[0092]
pwen_ctl_status寄存器的作用如下:
[0093]-pwen_ctl_mk位取反后,即rstn_mk
[0094]-软件写pwen_ctl_mk位为0,屏蔽present/rtc_rstn对rtc的复位行为
[0095]-软件写pwen_ctl_mk位为1,不屏蔽present/rtc_rstn对rtc的复位行为
[0096]-重启后,读该寄存器,判断重启是否由rtc或prstn_rtc触发
[0097]
如图3所示,隔离电路包括控制写信息的第一隔离电路,第一隔离电路包括三与门电路1140和二与门电路1130,三与门电路1140的输入端分别与电源唤醒寄存器的输出端、外部输入的隔离信号、工业级时钟控制器外部电源启动引脚连接;二与门电路1130的输入端分别与三与门电路的输出端和外部输入的写信号连接,二与门电路的输出与第一寄存器1120所在的rtc模块1110连接,也可以防止异常改写第一寄存器1120内的配置信息。
[0098]
并且隔离电路还包括控制复位信息的第二隔离电路,第二隔离电路包括:与第一寄存器1120连接的反向器1100,第二或门电路1080、第三或门电路1090,反向器1100的输出端分别与第二或门电路1080的输入端、第三或门电路1090的输入端连接,第二或门电路1080、第三或门电路1090分别还接收外部输入的第一复位信号(例如,presetn信号)、第二复位信号(例如,rtc_rstn信号);第二或门电路1080、第三或门电路1090的输出分别与第一寄存器1120的输入端、第二寄存器1020的输入端连接。并且第二或门电路1080输出还被输入至rtc模块。
[0099]
通过以上说明,如果希望主电源下电,只需向pwen_ctl_drv写0即可。由于此时pwen_ctl_mk寄存器位也会是0,那么在主电源下电期间,来自主电源域的复位信号(rtc_rstn/presetn)被隔离为无效状态(高电平)。当主系统重启,且rtc_rstn/presetn复位结束后,需要软件对pwen_ctl_mk写1,才能够结束对rtc_rstn/presetn的隔离。这样的话,当主系统重启后,来自它的复位信号就不会复位rtc了。
[0100]
通常,在主电源上电过程中,由于存在较大的in-rush电流,会造成主电源域发送到rtc电源域的apb接口信号,存在较大的噪声,当这些存在噪声的接口信号,恰好满足对rtc寄存器的写操作条件后,也会改写寄存器的值,因此,除了对presetn/rtc_rstn进行隔离,还有必要对pwrite进行隔离,使其在主电源稳定前,处于写禁止(pwrite为低)状态。
[0101]
下面结合图4,说明通过握手方式,对pwrite进行隔离。对于apb接口的其他信号,在主电源域掉电期间,只需通过iso_en信号隔离到无效状态即可,不必做特殊处理。
[0102]
presetn/pwrite的隔离过程描述如下:
[0103]
1)主电源下电期间,pwrite被隔离到低电平(pwrite_mk为隔离后信号),presetn
被隔离到高电平(presetn_mk为隔离后信号)。
[0104]
2)rtc计时到达,产生上电唤醒信号(rtc_int_pulse)
[0105]
3)rtc_int_pulse促使pwen_ctl_wk_pulse置1(握手过程开始),进而使pwen_ctl置1,pmic开始对主电源供电,主系统开始进入上电过程。
[0106]
4)当主电源供电稳定后,rtc_rstn结束复位(rtc_rstn由0跳变到1)
[0107]
5)来自主系统的时钟pclk(apb总线的时钟信号)对pwen_ctl_wk_pulse进行采样,产生主系统上电响应信号wk_ack。
[0108]
说明:wk_ack置1,标志着主系统上电稳定。
[0109]
6)pwen_ctl_drv寄存器识别到wk_ack置1,则将pwen_ctl_drv置1
[0110]
7)pwen_ctl_drv置1后,pwen_ctl_wk_pulse自动清0(握手过程结束),即pwen_ctl管脚不再受pwen_ctl_wk_pulse控制,开始受pwen_ctl_drv控制。
[0111]
8)在主电源开始供电,到供电稳定之前,是由pwen_ctl_wk_pulse信号控制pmic的供电,由此信号对pwrite信号进行隔离,以消除pwrite上的噪声。
[0112]
(说明,虽然上电过程中其他apb信号也有噪声,但只需对pwrite进行隔离,就可以防止rtc寄存器被误改写)
[0113]
9)主系统工作期间,允许对rtc执行复位操作,因此首先需要解除对rtc的复位隔离。通过软件向pwen_ctl_mk寄存器写1解除对复位的隔离。
[0114]
10)主系统读取rtc寄存器的状态、判断重启方式,响应中断并执行相应的软件分支程序。
[0115]
其中,图4中的时钟信号的工作方式如下:
[0116]-rtc_clk是rtc模块的工作时钟,通常为32768hz,该时钟在rtc上电后,便一直工作,除非对rtc电源域断电。
[0117]-pclk是apb总线的时钟信号,
[0118]
该信号在主电源域掉电期间,被钳位到低电平状态,输入到rtc模块。
[0119]
当主电源域被rtc重新唤醒后,经过一定的稳定时间,再输入到rtc模块。
[0120]
通过上面描述的presetn隔离、pwrite隔离,就可以可靠地预防主电源上电期间,对rtc寄存器内容的误改写。
[0121]
下面结合图3对本实施例提供的技术方案进一步解释说明:
[0122]
首先需要说明的一点是,初次上电后,rtc的所有寄存器有可能不会被复位,即寄存器的值是随机的。因为pwen_ctl_mk会影响rstn_mk的状态;rstn_mk也会影响pwen_ctl_mk的状态,这种闭环(loop)逻辑结构,会导致初次上电后pwen_ctl_mk的值是不确定的。如果为1,那么rstn_mk不会屏蔽来自主系统的复位;如果为0,rstn_mk就会屏蔽来自主系统的复位。这也是要执行上面的步骤(9)的原因。
[0123]
至于如何判断是否发生了rtc控制主电源上电,除了判断pwen_ctl_mk寄存器的状态外,在设计中还配置了一个16位的寄存器(power_up_code寄存器),上电后如果读此寄存器得到的是0或其他随机值,则说明系统初次上电;如果读到的是一个预设值,例如5a5a,则表示是rtc控制主电源上电。该预设值是在主电源下电前设定的。初次上电后,pwen_ctl_mk的状态也是不定的,因此此时通过pwen_ctl_mk判断重启方式是不准确的。但是接下来的重启判断,是可以通过其判断重启方式的,因为其已有稳定的0或1,但准确起见,还需结合
power_up_code寄存器一起判断。
[0124]
最后,说明一下prstn_rtc管脚的作用。有时,我们不想等到rtc重启主系统,而是希望通过某个管脚,立即重启主系统,prstn_rtc管脚便是此作用。通过读取pwen_ctl_status寄存器的prstn_rtc位的状态,来判断是否发生外部管脚重启主系统。该重启方式不会改写rtc寄存器的内容,因为来自片外的prstn_rtc低脉冲,其脉宽远大于电源稳定时间,即主电源在可以稳定工作前,pwrite信号一直处于隔离状态。
[0125]
如图6所示,本实施例还提供一种电子装置400,包括:
[0126]
处理器410,该处理器410可以采用如上述图1提供的工业级控制系统,例如,soc;
[0127]
存储器420,外围电路430;
[0128]
工业级控制系统根据存储器内的信息和/或外围电路的状态,向工业级时钟控制器中工业级时钟控制器中寄存器执行读写、复位操作。
[0129]
例如,该电子装置400可以设置预定时间或者在外围电路未接收到操作指令时,进入休眠状态;这样就需要控制soc内部的主电源域关闭电源;而且结合不同需求,还可以设置不同的休眠等级,关闭电源的模块也不同。并且在外围电路或者存储器420中的条件满足预定要求时,需要对soc内部的主电源域执行上电操作。
[0130]
如图5所示,本实施例还提供一种工业级时钟控制器用控制方法,包括:
[0131]
s110、在工业级时钟控制器初次上电时,向工业级时钟控制器外部引脚输入的主电源启动信号,以驱动与主电源输出连接的输出引脚输出高电平;
[0132]
s120、与主电源输出连接的输出引脚输出的高电平,驱动电源管理器给主电源供电;
[0133]
s130、在工业级时钟控制器为再次启动时,通过隔离电路隔离外部输入的信息,该输入的信息用于改写工业级时钟控制器中第一寄存器中的配置信息;其中,第一寄存器中的配置信息包括上电信号的来源信息包括来自工业级时钟控制器外部引脚输入的主电源启动信号信息、来自与时钟电路关联的主电源启动信号信息。
[0134]
详细的控制细节结合上述对图1、图2、图3的描述进行理解,在此不再赘述。
[0135]
另外,关于soc上电之后内部存储的软件或者从外部存储器加载的软件,执行以下操作:
[0136]
1)芯片初次上电,需要prstn_rtc管脚输入低电平,以驱动pwen_ctl管脚输出高电平。
[0137]
注:初次上电其实是片外管脚(prstn_rtc)触发上电的一种特例。后面的表(一)列出了两者的区别。
[0138]
2)pwen_ctl管脚输出的信号控制pmic芯片工作,以给主电源供电。
[0139]
3)主电源上电后,主系统开始工作,首先可以判断其重启方式:
[0140]
是否初次上电?
[0141]
是否属于rtc控制主电源上电?
[0142]
是否属于片外管脚(prstn_rtc)触发上电?
[0143]
首先判断power_up_code寄存器是否为预设值,
[0144]-若不是,则初次上电,跳到子程序1
[0145]-若是,则唤醒上电
[0146]-判断prstn_rtc管脚(通过读pwen_ctl_status的bit1),
[0147]-为0,则prstn_rtc唤醒上电,跳到子程序2
[0148]-不为0,再判断pwen_ctl_status的bit0
[0149]-为0,则rtc唤醒上电,跳到子程序3
[0150]-否则,热启动,跳到子程序4
[0151]
4)将pwen_ctl_mk位置1,结束对主系统复位信号的屏蔽。
[0152]
5)主系统控制rtc_rstn复位rtc。
[0153]
6)处理其他事务
[0154]
7)当打算对主电源下电时,首先配置rtc,包括上电唤醒时间/中断等。
[0155]
另外,需要对power_up_code寄存器设置特殊值,例如5a5a。
[0156]
最后,软件对pwen_ctl_drv写0。
[0157]
8)主电源下电,rtc继续工作。
[0158]
如果不想等到rtc唤醒主电源,可以通过prstn_rtc管脚,立即唤醒主电源。
[0159]
9)主电源上电后,从步骤3开始执行。
[0160]
注意:上面步骤省略了一些分支程序,例如子程序1/2/3/4,其内容视应用场景而定。
[0161]
关于判断冷启动方式,可以从下面表格中获取配置信息:
[0162][0163]
采用本实施例提供的上述技术方案,通过增加隔离电路,在主电源启动过程中,隔离主电源侧改写第一寄存器中的信息;从而让rtc模块的工作模式不会因为在控制系统复位过程中,造成控制系统启动过程中的复位、写操作,导致对工业级时钟控制器内部rtc模块的工作模式对应配置信息的误改写。
[0164]
本领域普通技术人员可以理解:上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可存储在记录介质(诸如cd rom、ram、软盘、硬盘或磁光盘)中的软件或计算机代码,或者被实现通过网络下载的原始存储在远程记录介质或非暂时机器可读介质中并将被存储在本地记录介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件(诸如asic、fpga或soc)的记录介质上的这样的软件处理。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件(例如,ram、rom、闪存等),当所述软件或计算机代码被计算机、处理器或硬件访问且执行时,实现在此描述的处理方法。此外,当通用计算机访问用于实现在此示出的处理的代码时,代码的执行将通用计算机转换为用于执行在此示出的处理的专用计算机。
[0165]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明实施例的范围。
[0166]
最后需要说明的是,上述说明仅是本发明的最佳实施例而已,并非对本发明做任何形式上的限制。任何熟悉本领域的技术人员,在不脱离本发明技术方案范围内,都可利用上述揭示的做法和技术内容对本发明技术方案做出许多可能的变动和简单的替换等,这些都属于本发明技术方案保护的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1