实时时钟芯片接口电路的控制方法及实时时钟控制电路的制作方法

文档序号:6614058阅读:228来源:国知局
专利名称:实时时钟芯片接口电路的控制方法及实时时钟控制电路的制作方法
技术领域
本发明涉及电子技术领域,更具体地,涉及一种实时时钟芯片 接口电路的控制方法及实时时钟控制电^各、和用于控制实时时钟芯 片的可编禾呈逻辑电^各。
背景技术
在电子应用设计领域,很多场合下都需要实时时钟的设计,作 为对告警或性能统计的时基记录或基准时间,其性能的好坏直接影
响到整个系统的优劣。实时时钟往往需要满足下面的条件 第一,在网计时准确;
第二,在断电一段时间之内仍能够保持较准确的计时;
第三,在网运行中,频繁读取时间的操作对系统不会造成太重 的负荷。
本领域技术中通常的做法是利用CPU的I2C接口 (或SPI接口 等)连接专用实时时钟芯片,并为实时时钟芯片提供一个主备电源 的供电切换控制电路。如果实时时钟芯片没有集成存储空间的话, 可能还需要才是供一个EEPROM芯片力口以4诸存。才喿作方面,首先在
一个标准时间基础上冲交时,即可在需要读数时通过此4妄口读取实时 时钟芯片的时间信息。
在民用场合下,以应用4交多的手才几为例,实时时4中只需要满足 前两个条件即可,对于4及短时间频繁读取时间几乎没有要求。而在 工业设备中,对于第三点要求也比较严格,因为有可能出现突发事 件导致多个告警同时上报的情况,例如在一秒钟之内就要上报一百 个以上的告警。而I2C时4中频率通常在100kHz以下,速度4交十曼, 以100kHz为例,完成一个字节的读凄t所用时间将是0.3ms左右。 也就是i兌,CPU每完成读一个字节的操作,都将占据0.3ms左右时 间。而读出一个完整的时间序列,至少将包含年月日时分秒共6个 字节,那么将占据1.8ms左右的时间。所以如果频繁读取时间,而 CPU又有其他一些重要任务执行的话,CPU将不堪重负;如果存在 一些实时性要求很强的任务的话,后果将是灾难性的。另外一个问 题是CPU读数的时间是纳秒级别的,访问速度非常快,很有可能 在I2C总线传送lt据还未完成的时)殳里发生CPU读数的情况,这时 很有可能读取到错误的时间。
第200420041374.X号专利中描述了 一种实时时钟控制电路, <旦 是它具有在做频繁读取时间的操作时,CPU负担过重,并有时间不 准的隐患。
因此,为了克月良现有才支术中实时时钟在频繁读取时造成CPU负 担过重以及出错的问题,需要提供一种集成度高、功能强的实时时 钟芯片接口电路的控制方法。

发明内容
为了解决现有技术的问题,本发明提供了 一种实时时钟芯片接 口电路的控制方法及实时时钟控制电路、和用于控制实时时钟芯片 的可编程逻辑电^各。
根据本发明的一个方面,提供了 一种实时时钟芯片接口电路的
控制方法,其包括以下步骤步骤S102, CPU系统向可编考呈逻辑器 件发起读操作/写操作请求;以及步骤S104,可编程逻辑器件根据 所收到的请求来对实时时钟芯片进行读或写操作。
在该方法中,当CPU系统向可编程逻辑器件发起写操作请求 时,在步骤S104中执行以下处理CPU系统将待写入数据写入可 编程逻辑器件中的写寄存器组,并将控制指令写入到可编程逻辑器
件中的读写控制模块;以及根据可编程逻辑器件中的I2C时序控制 逻辑模块的状态来决定是否继续执行写操作。
当CPU系统向可编程逻辑器件发起写操作请求时,在步骤S104 中还才丸行以下处理如果I2C时序控制逻辑才莫块处于忙碌状态,则 将忙碌状态反馈给CPU系统,并且不继续执行写操作;以及如果I2C 时序控制逻辑模块处于空闲状态,则I2C时序控制逻辑模块将待写 入数据通过数据线写入实时时钟芯片。
在该方法中,当CPU系统向可编程逻辑器件发起读操作请求 时,在步骤S104中执行以下处理CPU系统将读指令发送到可编 程逻辑器件中的读写控制才莫块;以及才艮据可编程逻辑器件中的I2C 时序控制逻辑模块的状态来决定可编程逻辑器件是否执行读操作。
此外,当CPU系统向可编程逻辑器件发起读操作请求时,在步 骤S104中还执4亍以下处理如果可编程逻辑器件中的I2C时序控 制逻辑模块处于忙碌状态,则将忙碌状态反馈给CPU系统,并且可
编程逻辑器件不执行读操作;以及如果I2C时序控制逻辑模块处于 空闲状态,则I2C时序控制逻辑模块从实时时钟芯片中读取数据, 并将其传送至可编程逻辑器件中的第 一读寄存器组中。
在这种情况下,当I2C时序控制逻辑才莫块处于忙碌状态时,在 步骤S104中还执行以下处理CPU系统直接从可编程逻辑器件中 的第二读寄存器组中读取数据。另一方面,当I2C时序控制逻辑模 块处于空闲状态时,在步骤S104中还执行以下处理可编程逻辑器 件在数据被全部传送至第 一读寄存器组的情况下,将第 一读寄存器 组中的数据瞬间复制到可编程逻辑器件中的第二读寄存器组中;以 及CPU系统直接从第二读寄存器组中读取数据。
其中,第一读寄存器组和第二读寄存器组中的一个至少包括六 个寄存器,以及写寄存器组至少包括两个寄存器。
在该方法中,可编程逻辑器件中的I2C控制逻辑才莫块产生busy 状态位。当CPU系统发起的读/写操作未结束时,busy状态位被置 位有效,此时不会纟丸行再次发起的读/写纟乘作。
在该方法中,实时时钟芯片接口是I2C接口 、 SPI接口、或其 他串行接口 。
根据本发明的另一方面,提供了一种实时时钟控制电路,其包 括实时时钟芯片外围控制电路,用于保证实时时钟芯片的正常工 作;可编程逻辑器件,用于控制实时时4中芯片的12C4妄口;以及CPU 系统,用于通过凝:据地址线访问可编考呈逻辑器件。
其中,可编程逻辑器件还包括写寄存器组,与第一使能控制 模块相连,用于存储CPU写入的数据;第一读寄存器组,与第二使 能控制模块及第二读寄存器组相连,用于存储从实时时钟芯片中读 取到的数据;第二读寄存器组,用于存储第一读寄存器组传送的数
据;读写控制模块,与I2C时序控制逻辑模块、第一使能控制模块、 第二使能控制模块相连,用于接收CPU发出的指令并根据I2C时序 控制逻辑模块的状态来控制读操作或写操作;以及I2C时序控制逻 辑模块,与实时时钟芯片相连,用于将CPU发起的读操作或写操作 请求转换为I2C串行数据信号和实时时钟芯片进行交互。
此外,实时时钟控制电路还包括主备电源切换控制电路,用于 自动选择电源。
本发明还提供了 一种用于控制实时时钟芯片的可编程逻辑电 路,其包括写寄存器组,与第一使能控制模块相连,用于存储CPU 写入的数据;第一读寄存器组,与第二使能控制模块及第二读寄存 器组相连,用于存储从实时时钟芯片中读取到的数据;第二读寄存 器组,用于存储第一读寄存器组传送的数据;读写控制模块,与I2C 时序控制逻辑模块、第一使能控制模块、第二使能控制模块相连, 用于接收CPU发出的指令并根据I2C时序控制逻辑^t块的状态来控 制读操作或写操作;以及I2C时序控制逻辑模块,与实时时钟芯片
相连,用于将CPU发起的读操作或写才喿作请求转换为I2C串行数据 信号和实时时钟芯片进行交互。
因而,通过本发明的上述各个方面,利用碌_件实现方式,大大 减轻了CPU的压力,将大量时间节省出来,提高了处理的实时性, 同时还避免了读写沖突。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部 分地从说明书中变得显而易见,或者通过实施本发明而了解。本发 明的目的和其他优点可通过在所写的说明书、权利要求书、以及附 图中所特别指出的结构来实现和获得。


附图用来^是供对本发明的进一 步理解,并且构成说明书的 一部 分,与本发明的实施例一起用于解释本发明,并不构成对本发明的
限制。在附图中
图1是示出了根据本发明的实时时钟芯片接口电路的控制方法 的流程图2是示出了根据本发明实施例的实时时钟控制电路的示意
图3是示出了根据本发明实施例的图2所示的可编程逻辑器件 的示意图;以及
图4是示出了根据本发明的可编程逻辑电路的示意图。
具体实施例方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此 处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本 发明。
图1是示出了根据本发明实施例的实时时钟芯片接口电路的控 制方法的流程图。如图l所示,该控制方法包4舌以下步骤
步骤S102, CPU系统向可编程逻辑器件发起读才乘作/写才喿作i青 求;以及
步骤S104,可编程逻辑器件根据所收到的请求来对实时时钟芯 片进行读或写操作。
当CPU系统向可编程逻辑器件发起写操作请求时,在步骤S104 中寺丸行以下处理CPU系统将待写入tt据写入可编程逻辑器件中的 写寄存器组,并将控制指令写入到可编程逻辑器件中的读写控制模 块;以及根据可编程逻辑器件中的I2C时序控制逻辑模块的状态来 决定是否继续执行写操作。
此外,当CPU系统向可编程逻辑器件发起写操作请求时,在步 骤S104中还执行以下处理如果I2C时序控制逻辑模块处于忙碌 状态,则将忙碌状态反馈给CPU系统,并且不继续执行写操作;以 及如果I2C时序控制逻辑模块处于空闲状态,则I2C时序控制逻辑 ^t块将待写入数据通过数据线写入实时时钟芯片。
在该方法中,当CPU系统向可编程逻辑器件发起读才喿作"i青求 时,在步骤S104中执行以下处理CPU系统将读指令发送到可编 程逻辑器件中的读写控制^^块;以及^4居可编程逻辑器件中的I2C 时序控制逻辑模块的状态来决定可编程逻辑器件是否执行读操作。
此外,当CPU系统向可编程逻辑器件发起读操作请求时,在步 骤S104中还执行以下处理如果可编程逻辑器件中的I2C时序控 制逻辑才莫块处于忙碌状态,则将忙碌状态反々贵给CPU系统,并且可 编程逻辑器件不执行读操作;以及如果I2C时序控制逻辑模块处于 空闲状态,则I2C时序控制逻辑模块从实时时钟芯片中读取数据, 并将其传送至可编程逻辑器件中的第 一读寄存器组中。
在这种情况下,当I2C时序控制逻辑模块处于忙碌状态时,在 步骤S104中还执行以下处理CPU系统直接从可编程逻辑器件中 的第二读寄存器组中读取数据。另一方面,当I2C时序控制逻辑模 块处于空闲状态时,在步骤S104中还执行以下处理可编程逻辑器 件在数据被全部传送至第一读寄存器组的情况下,将第一读寄存器
组中的凝:据瞬间复制到可编程逻辑器件中的第二读寄存器组中;以 及CPU系统直接从第二读寄存器组中读取数据。
其中,第一读寄存器组和第二读寄存器组中的一个至少包括六 个寄存器,以及写寄存器组至少包括两个寄存器。
在该方法中,可编程逻辑器件中的I2C控制逻辑才莫块产生busy 状态位。当CPU系统发起的读/写操作未结束时,busy状态位被置 位有效,此时不会执行再次发起的读/写操作。
在该方法中,实时时钟芯片4妻口是I2C 4妄口、 SPI^妄口、或其 他串行接口 。
图2是示出了根据本发明实施例的实时时钟控制电路的示意 图。如图2所示,实时时钟控制电^各包括CPU系统202,用于通 过数据地址线访问可编程逻辑器件;可编程逻辑器件204,用于控 制实时时钟芯片的I2C接口 ;以及实时时钟芯片外围控制电路206, 用于4呆iiL实时时4中芯片的正常工作。
此外,实时时钟控制电路还包4舌主备电源切换控制电路208, 用于自动选l奪电源。
图3是示出了才艮据本发明实施例的图2所示的可编程逻辑器件 的示意图。如图3所示,可编程逻辑器件204包括写寄存器组302, 与第一使能控制模块304相连,用于存储CPU写入的数据;第一读 寄存器组310,与第二使能控制模块308及第二读寄存器组312相 连,用于存储从实时时钟芯片中读取到的数据;第二读寄存器组 312,用于存储第一读寄存器组310传送的数据;读写控制模块306, 与I2C时序控制逻辑模块314、第一使能控制模块304、第二使能控 制模块308相连,用于接收CPU发出的指令并根据I2C时序控制逻 辑模块314的状态来控制读操作或写操作;以及I2C时序控制逻辑
模块314,与实时时钟芯片相连,用于将CPU发起的读操作或写操 作请求转换为I2C串行数据信号和实时时钟芯片进^f交互。
具体地说,实时时钟控制电路包括主备电源切换控制电路、实 时时钟控制芯片外围电路、可编程逻辑器件。其中,实时时钟控制 芯片使用外置的32.768kHz的晶体;芯片包含I2C接口 (或SPI接 口 ),而可编程逻辑器件通过I2C接口 (或SPI接口 )来对此芯片置 数和读数。
如图2所示,实时时钟控制电路包括以下几部分
主备电源切换控制电^各208,作用是自动选4奪电源,当主电源 工作时则选择主电源,当主电源不工作时则选择备用电池才是供给实 时时钟芯片的VBATT端。虽然使用的实时时钟芯片内部也有电源 切换才几制,^旦往往有一些特,朱要求,所以这里还是4巴主备电源切换 控制电^各纳入进来。这部分功能可裁剪。
实时时钟芯片外围控制电路206,包括电源、地、晶体连接电 路等,作用是保证实时时钟芯片的正常工作。
可编程逻辑器件204,实现对实时时钟芯片的I2C 4妄口的控制。
CPU 202,通过凄t据地址线访问可编禾呈逻辑器件204。
如图3所示,可编程逻辑器件204的I2C控制方式如下
首先I2C控制逻辑314实现读写两种方式的控制,将CPU发起 的读写请求转换为I2C串行数据信号和实时时钟芯片进行交互。同 时,此逻辑还产生一个busy状态位,当CPU发起的读/写操作还未 结束时,I2C总线上将会有数据传送,busy位将被置为有效,此时 如果再发起一次读/写操作将会无效。
乂人实时时钟芯片读取出来的时间凄t据在未完成全部传送时,暂
时存放在第一读寄存器组310内部。由于包括年月日时分秒等数据, 所以此寄存器组至少包括6个寄存器。
当前的读操作完成时,第一读寄存器組310中的数据将会在瞬 间复制到第二读寄存器组312中。
CPU直接读取第二读寄存器组312中的数据。
以下,结合图2和图3详细描述实现实时时钟芯片接口电路的 控制方法的实施例。
写操作(校时)CPU首先将要写入的数据写入写寄存器组302, 然后写入一条特殊指令到读写控制模块306,准备启动写操作。如果 此时I2C控制逻辑模块314处于忙碌状态,则将此状态反馈给CPU, 不执行下一步操作;如果此时I2C控制逻辑模块314处于空闲状态, 则接下来控制逻辑将把待写入数据转换为符合标准I2C协议的串行 数据,通过SDA凄t据线写入实时时钟芯片。
读操作(取时间)CPU首先下发读指令到读写控制模块306, 启动读操作。如果此时I2C控制逻辑模块314处于忙碌状态,则将 此状态反馈给CPU,不执行下一步操作。那么CPU直接从第二读 寄存器组312读出的数据将是上一次读取的时间值。如果此时I2C 控制逻辑模块314处于空闲状态,则I2C控制逻辑模块314将从实 时时钟芯片读取数据送到第一读寄存器组310中去(因为12C速率 较低,所以这个传送过程所需时间较长)。当最后一个比特位传送完 成时,硬件将会利用I2C时钟沿瞬间将第一读寄存器组310的值赋 值给第二读寄存器组312。这样做的好处是,CPU无论在哪个阶段 需要读取时间值,都可以读出 一个明确的值而不会造成读写沖突。 而且读的过程对于CPU来说,和访问内存是相同的,不会造成负担。
图4是示出了根据本发明的可编程逻辑电路的示意图。如图4 所示,该可编程逻辑电路包括写寄存器组402,与第一使能控制 模块404相连,用于存储CPU写入的数据;第一读寄存器组410, 与第二使能控制模块408及第二读寄存器组412相连,用于存储从 实时时钟芯片中读取到的数据;第二读寄存器组412,用于存储第 一读寄存器组410传送的^t据;读写控制才莫块406,与I2C时序控 制逻辑模块414、第一使能控制模块404、第二使能控制模块408 相连,用于接收CPU发出的指令并4艮据I2C时序控制逻辑模块414 的状态来控制读操作或写操作;以及I2C时序控制逻辑模块414, 与实时时钟芯片相连,用于将CPU发起的读操作或写操作请求转换 为I2C串行凄t据信号和实时时钟芯片进行交互。
以上^f又为本发明的优选实施例而已,并不用于限制本发明,对 于本々页:威的4支术人员来"i兌,本发明可以有各种更改和变4匕。凡在本 发明的精神和原则之内,所作的任何修改、等同替换、改进等,均 应包含在本发明的4呆护范围之内。
权利要求
1.一种实时时钟芯片接口电路的控制方法,其特征在于,包括以下步骤步骤S102,CPU系统向所述可编程逻辑器件发起读操作/写操作请求;以及步骤S104,所述可编程逻辑器件根据所收到的请求来对实时时钟芯片进行读或写操作。
2. 根据权利要求1所述的实时时钟芯片接口电路的控制方法,其 特征在于,当所述CPU系统向所述可编程逻辑器件发起写操 作请求时,在所述步骤S104中执行以下处理所述CPU系统将待写入数据写入所述可编程逻辑器件中 的写寄存器组,并将控制指令写入到所述可编程逻辑器件中的 读写控制模块;以及才艮据所述可编程逻辑器件中的I2C时序控制逻辑才莫块的 状态来决定是否继续执行所述写操作。
3. 根据权利要求2所述的实时时钟芯片接口电路的控制方法,其 特征在于,在所述步骤S104中还执行以下处理如果所述I2C时序控制逻辑模块处于忙碌状态,则将所述 忙碌状态反^t给所述CPU系统,并且不继续执行写操作;以 及如果所述I2C时序控制逻辑模块处于空闲状态,则所述 I2C时序控制逻辑模块将所述待写入数据通过数据线写入所述 实时时钟芯片。
4. 根据权利要求1所述的实时时钟芯片接口电路的控制方法,其特征在于,当所述CPU系统向所述可编程逻辑器件发起读操:作请求时,在所述步骤S104中执行以下处理所述CPU系统将读指令发送到所述可编程逻辑器件中的 读写控制模块;以及根据所述可编程逻辑器件中的I2C时序控制逻辑模块的 状态来决定所述可编程逻辑器件是否执行所述读操作。
5. 根据权利要求4所述的实时时钟芯片接口电路的控制方法,其 特征在于,在所述步骤S104中还执行以下处理如果所述可编程逻辑器件中的I2C时序控制逻辑才莫块处 于忙碌状态,则将所述忙碌状态反々贵给所述CPU系统,并且 所述可编程逻辑器件不寺丸行读才乘作;以及如果所述I2C时序控制逻辑冲莫块处于空闲状态,则所述 I2C时序控制逻辑模块从所述实时时钟芯片中读取数据,并将 其传送至所述可编程逻辑器件中的第 一读寄存器组中。
6. 根据权利要求5所述的实时时钟芯片接口电路的控制方法,其 特征在于,当所述I2C时序控制逻辑模块处于忙碌状态时,在 所述步骤S104中还执行以下处理所述CPU系统直接从所述可编程逻辑器件中的第二读寄 存器组中读取数据。
7. 根据权利要求5所述的实时时钟芯片接口电路的控制方法,其 特征在于,当所述I2C时序控制逻辑模块处于空闲状态时,在 所述步骤S104中还执行以下处理 所述可编程逻辑器件在所述凄t据;故全部传送至所述第一 读寄存器组的情况下,将所述第 一读寄存器组中的数据瞬间复 制到所述可编程逻辑器件中的第二读寄存器组中;以及所述CPU系统直接从所述第二读寄存器组中读取数据。
8. 根据权利要求7所述的实时时钟芯片接口电路的控制方法,其 特征在于,所述第一读寄存器组和所述第二读寄存器组中的一 个至少包括六个寄存器,以及所述写寄存器组至少包括两个寄存器。
9. 根据权利要求2或4所述的实时时钟芯片接口电路的控制方 法,其特征在于,所述可编程逻辑器件中的12C控制逻辑模块 产生busy 4犬态<立。
10. 根据权利要求9所述的实时时钟芯片接口电路的控制方法,其 特征在于,当所述CPU系统发起的读/写操作未结束时,所述 busy状态位被置位有效,此时不会执行再次发起的读/写操作。
11. 根据权利要求1所述的实时时钟芯片接口电路的控制方法,其 特征在于,所述实时时钟芯片接口是I2C接口 、 SPI接口、或 其4也串;f于^妾口 。
12. —种实时时钟控制电路,其特征在于,包括实时时钟芯片外围控制电路,用于保证实时时钟芯片的正 常工作;可编程逻辑器件,用于控制所述实时时钟芯片的I2C接 口 ; 以及CPU系统,用于通过凄丈据地址线访问所述可编程逻辑器件。
13. 根据权利要求12所述的实时时钟控制电路,其特征在于,所 述可编程逻辑器件还包括写寄存器组,与第一使能控制模块相连,用于存储CPU 写入的数据;第一读寄存器组,与第二使能控制模块及第二读寄存器组 相连,用于存储从实时时钟芯片中读取到的数据;所述第二读寄存器组,用于存储所述第一读寄存器组传送 的数据;读写控制模块,与I2C时序控制逻辑模块、所述第一使能 控制模块、所述第二使能控制模块相连,用于接收所述CPU 发出的指令并根据所述I2C时序控制逻辑模块的状态来控制读才喿作或写#:作;以及所述I2C时序控制逻辑模块,与所述实时时钟芯片相连, 用于将所述CPU发起的读操作或写操作请求转换为I2C串行 数据信号和所述实时时钟芯片进行交互。
14. 根据权利要求12所述的实时时钟控制电路,其特征在于,还 包括主备电源切换控制电路,用于自动选择电源。
15. —种用于控制实时时钟芯片的可编程逻辑电路,其特征在于, 包括写寄存器组,与第一使能控制模块相连,用于存储CPU 写入的数据;第一读寄存器组,与第二使能控制模块及第二读寄存器組 相连,用于存储从实时时钟芯片中读取到的数据;所述第二读寄存器组,用于存储所述第一读寄存器组传送 的数据;读写控制模块,与I2C时序控制逻辑模块、所述第一使能 控制模块、所述第二使能控制模块相连,用于接收所述CPU 发出的指令并根据所述I2C时序控制逻辑模块的状态来控制读才乘作或写#:作;以及所述I2C时序控制逻辑模块,与所述实时时钟芯片相连, 用于将所述CPU发起的读操作或写操作请求转换为I2C串行 数据信号和所述实时时钟芯片进行交互。
全文摘要
本发明公开了一种实时时钟芯片接口电路的控制方法及实时时钟电路、和用于控制实时时钟芯片的可编程逻辑电路,其中,实时时钟芯片接口电路的控制方法包括以下步骤步骤S102,CPU系统向可编程逻辑器件发起读操作/写操作请求;以及步骤S104,可编程逻辑器件根据所收到的请求来对实时时钟芯片进行读或写操作。因而,通过本发明,利用硬件实现方式,大大减轻了CPU的压力,将大量时间节省出来,提高了处理的实时性,同时还避免了读写冲突。
文档编号G06F1/14GK101169673SQ20071018032
公开日2008年4月30日 申请日期2007年10月15日 优先权日2007年10月15日
发明者郭向东 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1