一种单片机及其低功耗模式下驱动传感器的方法 技术领域 本发明涉及传感器检测领域, 特别是关于一种单片机及其低功耗模式下驱动传感 器的方法。
背景技术 传感器在日常的生活和生产中越来越常见, 出于节能的考虑, 很多在上电后信号 稳定输出所需时间很短的传感器都采用间歇供电的方式进行工作, 例如水表、 燃气表等一 些表计中的磁阻传感器 (MR Sensor)。
所谓间歇供电就是指, 为了减小系统的功耗, 在不丢失信号的情况下, 对器件进行 间歇式的供电, 供电时间占系统总运行时间的比例越小, 器件对系统功耗的影响就越小。 图 1A 和图 1B 为现有技术中连续供电和间歇供电的时序图, 在连续供电的图 1A 中可以看出, 系 统的电能消耗很大, 而在图 1B 中当电源输出为低时传感器不耗电, 因此系统的功耗就会下 降。
本发明的发明人发现现有技术中至少包括如下不足, 虽然上间歇供电的方式可以 降低功耗, 但是提供时序信号的单片机的功耗却没有得到足够重视, 因为需要单片机通过 一个端口定时输出信号来控制向传感器供电, 这样就要求单片机周期性的脱离低功耗状态 来输出信号, 需要检测的信号变化越快, 单片机退出低功耗状态的频率就越高, 这样单片机 的功耗就会上升, 它的功耗增大就会使系统的功耗增加, 这种方法可能满足不了系统功耗 的要求。
在另一种现有技术中, 使用专用芯片来向传感器提供间歇供电, 把电源控制交给 专用芯片来控制, 单片机通过专用芯片来读取传感器的信号, 这样可以使单片机长期处于 低功耗状态, 从而满足系统功耗要求, 但是这种方式增加了系统的成本。
发明内容
本发明实施例提供一种单片机及其低功耗模式下驱动传感器的方法, 用于解决现 有技术中功耗高的不足。
本发明实施例提供了一种单片机低功耗模式下驱动传感器的方法, 包括 :
利用所述单片机低功耗模式下的时钟信号作为所述传感器的电源 ;
并利用所述时钟信号作为所述单片机同步串行外设单元的时钟输入信号 ;
所述同步串行外设单元的数据输入端口受所述时钟信号的同步并且读取所述传 感器的数据, 在预定时钟周期之后所述单片机退出低功耗模式判断同步串行外设单元读取 的所述传感器的数据是否有效, 如果有效则对所述传感器的数据进行相应处理, 否则所述 单片机返回低功耗模式。
根据本发明实施例所述方法的一个进一步的方面, 所述利用所述单片机低功耗模 式下的时钟信号作为所述传感器的电源进一步包括, 利用所述单片机低功耗模式下的脉宽 调制单元作为所述传感器的电源。根据本发明实施例所述方法的再一个进一步的方面, 所述脉宽调制单元输出的时 钟信号可调。
根据本发明实施例所述方法的另一个进一步的方面, 所述传感器的数据为具有两 个状态的逻辑信号。
根据本发明实施例所述方法的另一个进一步的方面, 所述同步串行外设单元的数 据输入端口在所述时钟信号的下降沿读取所述传感器的数据。
本发明实施例还提供了一种低功耗模式下驱动传感器的单片机, 包括时钟信号输 出单元, 用于在低功耗模式下向所述传感器提供时钟信号作为电源, 并向所述单片机的同 步串行外设单元输入时钟信号 ;
处理单元, 所述同步串行外设单元的数据输入端口受所述时钟信号的同步并且读 取所述传感器的数据, 在预定时钟周期之后所述处理单元退出低功耗模式判断同步串行外 设单元读取的所述传感器的数据是否有效, 如果有效则对所述传感器的数据进行相应处 理, 否则控制所述单片机返回低功耗模式。
根据本发明实施例所述单片机的一个进一步的方面, 所述时钟信号输出单元为低 功耗模式下的脉宽调制单元。 根据本发明实施例所述单片机的再一个进一步的方面, 所述脉宽调制单元输出的 时钟信号可调。
根据本发明实施例所述单片机的另一个进一步的方面, 所述传感器为输出的数据 具有两个状态的逻辑信号。
根据本发明实施例所述单片机的另一个进一步的方面, 所述同步串行外设单元的 数据输入端口在所述时钟信号的下降沿读取所述传感器的数据。
通过本发明实施例, 可以使得单片机长时间处于低功耗状态, 在没有增加成本的 前提下减小了单片机的功耗。
附图说明 为了更清楚地说明本发明实施例或现有技术中的技术方案, 下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍, 显而易见地, 下面描述中的附图仅仅是本 发明的一些实施例, 对于本领域普通技术人员来讲, 在不付出创造性劳动的前提下, 还可以 根据这些附图获得其他的附图。
图 1A 和图 1B 为现有技术中连续供电和间歇供电的时序图 ;
图 2 所示为本发明实施例一种单片机低功耗模式下驱动传感器方法的流程图 ;
图 3 所示为本发明实施例一种低功耗模式下驱动传感器的单片机的结构示意图 ;
图 4 所示为本发明实施例低功耗模式下驱动传感器的单片机的具体结构图 ;
图 5 所示为本发明实施例的工作时序图。
具体实施方式
下面将结合本发明实施例中的附图, 对本发明实施例中的技术方案进行清楚、 完 整地描述, 显然, 所描述的实施例仅仅是本发明一部分实施例, 而不是全部的实施例。基于 本发明中的实施例, 本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例, 都属于本发明保护的范围。
如图 2 所示为本发明实施例一种单片机低功耗模式下驱动传感器方法的流程图。
包括步骤 201, 利用所述单片机低功耗模式下的时钟信号作为所述传感器的电源。
所述低功耗模式下的时钟信号可以为可以工作于低功耗模式下的脉宽调制 (PWM) 信号, 其中该 PWM 信号可调, 作为本发明的进一步的实施例, 当时钟信号的驱动能力不够, 可以在时钟信号与传感器电源接口之间加入三极管, 以提高时钟信号作为电源的驱动能 力。
步骤 202, 利用所述时钟信号作为所述单片机同步串行外设单元的时钟输入信号, 在本例中 SCK 端口为同步串行外设单元的时钟输入端口。
其中, 所述同步串行外设单元可以为串行外围设备接口 (Serial Peripheral Interface, SPI) 或者 CSI 端口, 该 CSI 端口实际上为日本标准的 SPI 端口。
步骤 203, 所述同步串行外设单元的数据输入端口 (DI) 受所述时钟信号的同步而 读取所述传感器的数据, 在预定时钟周期之后所述单片机退出低功耗模式判断同步串行外 设单元读取的所述传感器数据是否有效, 如果有效则对所述传感器数据进行相应处理, 否 则所述单片机返回低功耗模式。
所述传感器的数据为具有两个状态的逻辑信号。
其中所述预定时钟周期在本例中可以为 8 个时钟周期, 也可以为 16 个时钟周期, 在不同的实施例中是根据不同的单片机中同步串行外设单元的特定决定的。
所述同步串行外设单元的数据输入端口在所述时钟信号的下降沿读取所述传感 器的数据, 其中, 在 PWM 输出高电平时传感器上电, DI 端口接收传感器发出的信号不稳定, 而在下降沿时传感器输出比较稳定。
如果同步串行外设单元的 DI 端口为在上升沿读取所述传感器的数据, 则可以通 过将所述 PWM 输出的时钟信号取反后, 作为所述传感器的电源输入。
通过上述实施例, 可以使得单片机长时间处于低功耗状态, 在没有增加成本的前 提下减小了单片机的功耗。
如图 3 所示为本发明实施例一种低功耗模式下驱动传感器的单片机的结构示意 图。
包括单片机 300, 时钟信号输出单元 301, 同步串行外设单元 302, 处理器 303, 传感 器 400。
所述时钟信号输出单元 301, 用于在低功耗模式下向所述传感器 400 提供时钟信 号作为电源, 并向所述单片机的同步串行外设单元 302 入时钟信号。
所述处理器 303, 所述同步串行外设单元 302 的数据输入端口受所述时钟信号的 同步而读取所述传感器的数据, 在预定时钟周期之后所述处理单元 303 退出低功耗模式判 断同步串行外设单元读取的所述传感器的数据是否有效, 如果有效则对所述传感器的数据 进行相应处理, 否则控制所述单片机 300 返回低功耗模式。
其中, 所述时钟信号输出单元 301 为低功耗模式下的脉宽调制单元, 并且该输出 的时钟信号可调。
其中所述传感器 400 输出的数据为具有两个状态的逻辑信号, 例如为 0 或者 1, 当 检测到被测信号时输出一种状态 ( 例如 1), 当没有检测到被测信号时输出另一种状态 ( 例如 0), 上述的传感器可以为磁阻传感器 (MR sensor) 或者霍尔传感器 (Hall sensor)。
将上述单片机 300 的端口进行了特定的连接, 使其能够在低功耗状态下获取传感 器 400 的数据, 起到了节能、 低成本的效果。
如图 4 所示为本发明实施例低功耗模式下驱动传感器的单片机的具体结构图。
包括单片机 300, 可以工作在低功耗模式下的脉宽调制单元 301(PWM), 同步串行 外设单元 302 的时钟输入端口 3021(SCK), 同步串行外设单元的数据输入端口 3022(DI), 单 片机的处理单元 303, 传感器 400, 传感器的电源端口 401, 传感器的数据信号输出端口 402。 其中所述传感器 400 可以包括磁阻传感器等上电电源信号非常短的传感器。
如图 4 所示, 所述脉宽调制单元 301 分别与所述电源端口 401 和时钟输入端口 3021 相连接, 所述数据输入端口 3022 与数据信号输出端口 402 相连接。所述处理单元 303 与所述时钟输入端口 3021 相连接。
在上述实施例中, 如果脉宽调制单元 301 的输出电压或者电流不足以驱动传感器 400, 则可以在脉宽调制单元 301 与所述电源端口 401 之间加上一个三极管, 以提高所述脉 宽调制单元 301 对传感器 400 的驱动能力。
上述装置的工作时序图如图 5 所示, 在本例中数据输入端口 3022 每隔脉宽调制单 元 301 的 8 个时钟周期后的下降沿读取一次传感器的数据信号输出端口 402 的数据, 将该 数据传送给处理单元 303, 此前接收的数据不足 8 个时钟周期所以为无效 ( 因为单片机刚上 电后初始化了同步串行外设单元 302 和在低功耗模式下的脉宽调制单元 301 输出, 这时在 同步串行外设单元 302 的缓冲区中还没有有效数据, 只有当经过 8 个时钟后才会有数据 ), 当在 8 个时钟周期后接收到完整的 8 个数据信号, 同步串行外设单元 302 产生中断信号, 处 理单元 303 退出低功耗模式, 将如图中传感器信号输出中第一段的数据 0xF8 存储于缓冲区 中, 然后再次进入低功耗模式, 等待下一次中断再次退出低功耗模式。
当脉宽调制单元 301 为高电平时, 传感器 400 的供电电源有效, 经过很短的时间之 后传感器 400 输出有效, 并且在电源有效的过程中保持, 当脉宽调制单元 301 输出为低电平 时传感器 400 的供电被切断, 但是由于传感器电源端口 401 处的电容积累的电荷 ( 如果电 容太小可以适当加大电源端口 401 的电容 ), 所以传感器 400 的输出在供电被切断后还会有 一段时间有效, 此时的状态在脉宽调制单元 301 的下降沿时被锁存进 SPI 硬件中, 当 8 个时 钟周期过后 ( 根据 SPI 接口不同可能不同 ) 串行数据变成并行数据被锁存在 SPI 的接收缓 冲区。从图 5 中可以看出向传感器 400 的电源端口 401 供电 8 次之后单片机 300 的处理器 303 才需要从低功耗模式切换出来, 并且读取 SPI 接收缓冲区的数据, 同时判断数据 bit 流 中是否有从 0 变为 1 的状态, 如果有说明检取到信号。因为单片机 300 供电 8 次之后才会 从低功耗模式下切换出来, 在采样同样的信号时, 单片机 300 的功耗要只相当于现有技术 1 中的 1/8, 从而降低了整个系统的功耗。
以上所述的具体实施方式, 对本发明的目的、 技术方案和有益效果进行了进一步 详细说明, 所应理解的是, 以上所述仅为本发明的具体实施方式而已, 并不用于限定本发明 的保护范围, 凡在本发明的精神和原则之内, 所做的任何修改、 等同替换、 改进等, 均应包含 在本发明的保护范围之内。