一种降低仅支持IO唤醒MCU功耗的方法与流程

文档序号:13471723阅读:947来源:国知局
一种降低仅支持IO唤醒MCU功耗的方法与流程

本发明涉及一种降低仅支持io唤醒mcu功耗的方法。



背景技术:

在采用cc2630作为产品设计时,产品的设计不止采用io唤醒方式进行触发,还有特殊功能的产品设计,像一些数据采集并处理的一些产品,cc2630模块需要将传递到模块的数据进行传输,设计上大多采用串口方式进行数据传输,串口能够按照固定的协议模式将需要传输的数据传输到网关以及云平台。cc2630一般作为电池设备使用,所以在设计上对功耗也是有要求的,在传输上设备要保持低功耗模式,市面上有两种方式进行数据唤醒,一种是支持串口唤醒和io唤醒的单片机,这种产品设计上采用串口数据直接发送,即包括唤醒和数据传输同时进行,但这种设计的mcu市面上一般很少,在功能上也不能做到都能找到这种类型的产品,尤其是用在数据无线传输上,像能够自组网的zigbee产品都是没有串口唤醒功能的。另一种是不支持串口唤醒、仅支持io唤醒的mcu,在数据发送的时候先使用io引脚唤醒mcu然后再进行数据传输,之后再将io恢复初始状态。这两种工作模式能够解决市面上所有的低功耗产品的数据传输问题。所有产品设计上也都是优先考虑串口唤醒的功能,该方式在实际使用上具有更多的优点。首先是硬件电路对接上,两个单片机进行数据通信时,同为低功耗产品,所以在数据通信前需要先进行唤醒,如果使用io唤醒,则在设计上需要采用两个io口进行两个单片机相互唤醒,所以在使用上需要有6个连线(两个供电引脚、两个数据传输引脚、两个唤醒引脚),同时在唤醒上两个单片机需要有固定的唤醒协议和数据传输协议,一旦唤醒协议不对,就会对数据传输造成影响,从而影响数据的有效性。若采用串口唤醒,则不需要这么复杂的逻辑了,只需要4个引脚(两个供电、两个数据传输),通信上也不需要设定唤醒逻辑,只需要将数据通过串口发送出去就可以了,因此串口唤醒在对接设计上具有先天的优势。但是不是所有的单片机都能支持串口唤醒的,在设计上优先选择具有串口唤醒的单品机,但是单片机的选择是需要根据其功能进行选定,尤其是一些特殊功能的单片机,比如在智能家居设计领域所采用的能够进行自组网的zigbee芯片,如cc2530和cc2630,这些芯片均不支持串口唤醒,所以只能采用相对比较复杂的io唤醒方式,即对接的单片机在数据传输时,先进行io操作唤醒接收单片机,然后进行数据传输,有时要保证数据传输的正确性,而这样唤醒时间拉长,保证数据正确性的同时,会损失很多功耗。



技术实现要素:

本发明的目的就是提供一种降低仅支持io唤醒mcu功耗的方法,其可有效解决上述问题,降低该类芯片的功耗。

为实现上述目的,本发明采用了以下技术方案:

一种降低仅支持io唤醒mcu能耗的方法,包括如下操作:

将mcu-1的tx引脚与mcu-2的rx引脚相连接,将mcu-1的rx引脚和io引脚合并后与mcu-2的tx引脚相连接;mcu-1为仅支持io唤醒功能的单片机,mcu-2为单片机,mcu-1执行如下调控:

mcu-1的io引脚发生电平跳变后,mcu-1的io中断功能被触发,唤醒设备后关闭mcu-1的io中断功能,打开mcu-1的串口接收mcu-2发送的数据,数据接收完毕后打开mcu-1的io中断功能、调控设备进行休眠;

mcu-2发送数据前对数据进行增加前导帧处理。

进一步的方案为:

设备进入休眠前,mcu-1执行如下判断:

若mcu-1没有任务执行,则调节设备进行休眠;

若mcu-1有任务未完成,则使用休眠时钟进行定时检测,检测到任务结束后、调节设备进行休眠;

若mcu-1有任务未完成,且执行时间t后仍未完成,则强制结束任务,调节设备进行休眠。

休眠时钟为mcu-1的外部时钟。

设备采用手动配网的方式连网。

建立黑名单机制,将已经尝试加入且未成功加入的网络列入黑名单中,在加网扫描时跳过黑名单中的网络。

mcu-1为cc2630芯片,设备为包含cc2630芯片的电池设备,如消防用紧急按钮。

采用上报电池电量作为心跳,心跳周期为3.9~4.1min。

上述技术方案中,通过各种手段的实施,使得仅支持io唤醒功能的单片机的能耗被显著降低。

附图说明

图1为mcu-1的唤醒和休眠的原理图;

图2为mcu-1和mcu-2的连接示意图;

图3为设备进行休眠的流程示意图;

图4为设备手动配网的流程示意图。

具体实施方式

为了使本发明的目的及优点更加清楚明白,以下结合实施例对本发明进行具体说明。应当理解,以下文字仅仅用以描述本发明的一种或几种具体的实施方式,并不对本发明具体请求的保护范围进行严格限定。

本发明提供的降低仅支持io唤醒mcu能耗的方法,如图1、2所示,将mcu-1的tx引脚与mcu-2的rx引脚相连接,将mcu-1的rx引脚和io引脚合并后与mcu-2的tx引脚相连接;mcu-1为仅支持io唤醒功能的单片机,mcu-2为单片机,mcu-1执行如下调控:

mcu-1的io引脚发生电平跳变后,mcu-1的io中断功能被触发,唤醒设备后关闭mcu-1的io中断功能,打开mcu-1的串口接收mcu-2发送的数据,数据接收完毕后打开mcu-1的io中断功能、调控设备进行休眠;

mcu-2发送数据前对数据进行增加前导帧处理。

数据传输的本质是电平的跳变,根据规定的协议进行数据传输和解析,在串口两个数据线进行数据传输的时候,也是有电平跳变的,但是由于串口有特殊功能,因此该电平跳变不能直接作为普通io进行唤醒操作。本发明中将rx引脚和io引脚结合实现串口唤醒功能,首先将两单片机的四个引脚进行连接,tx引脚为发送功能引脚,rx引脚为接收功能引脚。将mcu-1的io引脚与rx引脚进行结合,当收到数据时rx引脚出现电平跳变,但是由于设备在休眠状态,串口接收不能正常工作,需要先进行串口初始化。而串口初始化需要一定的时间,这样会造成数据丢失,因此,本发明中在传输数据时增加前导帧,数据传输时先发送无用的前导帧进行唤醒,同时串口进行重新启动初始化,然后开始进行数据接收,当数据接收完毕时设备重新进入休眠模式。这种调控方式能够实现不支持串口唤醒功能的单片机实现串口唤醒功能,同时这种方式能够减少单片机唤醒时的时间。

cc2630芯片是一种支持io唤醒而不支持串口唤醒的单片机,采用这种方式不但能够实现串口唤醒并实现数据传输的功能,而且唤醒时间大大缩短。io唤醒的过程是:先操作io中断进行唤醒,然后数据传输,最后恢复io,这期间为保证数据能够完全正确的接收,前后各需要大约20毫秒的延时,也就是说io唤醒需要40毫秒加上数据传输的时间。采用io引脚和串口结合实现的串口唤醒功能,只需要增加3-5个长度的数据时间,按照常用的9600波特率一个字节大概需要1毫秒,一次数据按照20字节也就是20毫秒,io唤醒至少需要60毫秒的时间,而串口唤醒只需要25毫秒的时间,并且能够将数据进行正确的传输,能够至少减少35毫秒的唤醒时间,作为比较珍贵的电池功耗资源来说,每次触发都能够节省将近60%的唤醒时间,功耗也能做到很大的节省。

单片机都有拥有io唤醒功能,在数据传输时,设备的两个单片机在进行通信时,发送引脚tx和接收引脚rx默认为高电平,串口通信有固定的协议格式,会先发送一个启动位,一个字节数据传输结束时会有一个停止位,通常发送一个字节数据会有10个数据位。mcu-1在接收数据时rx引脚会先收到一个启动位即一个低电平跳变,io引脚默认为高电平,发生电平跳变用来触发串口数据接收事件,同时根据io中断触发将设备进行唤醒,启动串口开始正常接收数据,在接收完串口数据时将cc2630(mcu-1)进行休眠处理。

在实际操作时,如果单纯的将io唤醒然后初始化串口,串口从开始初始化到初始化完成需要一定的时间,串口在数据传输时是没有进行电平上的交互,不像iic通信方式,会先发送一个启动帧,而串口不会管接收端是否准备好,发送时会直接进行数据传输,这时候接收端在没有准备好的情况下就会不能正确接收串口数据。在io中断触发时,设备运行速度比较快,数据会无法正常接收,串口会出现无法正常启动的情况,因此本发明在实际运用时,在串口数据前端增加5个无效字节作为数据帧的帧头,一方面增加电平跳变到串口正常工作的时间间隔,另一方面在数据启动上防止有效数据无法正常接收。间隔时间的计算是根据串口初始化的时间和所选串口通信的波特率进行计算的,串口在数据通信时,传输速度都是微秒级的,根据实际使用计算出串口在波特率115200时需要3个字节的时间进行数据传输,即260微秒左右,因此在本发明中,进入io终端后首先关闭io中断,防止io不停地触发中断,然后进行串口功能的初始化配置,然后串口开始接收数据,这时会有前三个字节接收错误,即数据发送的是0xff,接收到的就是别的数据,之后能够接收正常的数据,然后进行有效数据帧的处理。

实际操作时,一般选择五个ff作为数据前导帧,在前导帧长度选择上一般根据串口数据最大波特率115200的时间进行选择,在测试过程中从io唤醒之后到数据能够正常接收前三个字节会无法正常接收,因此在数据位长度上选择5个0xff作为唤醒前导帧进行数据通信。如,在对接安朗杰智能门锁的时候,由于门锁采用具有串口唤醒功能的单片机进行设计制作,而cc2630芯片不具有串口唤醒功能,因此在硬件设计上没办法重新做改变,只能在软件上进行优化,在给门锁发送串口数据时直接进行数据发送,接收门锁数据时就需要进行特殊的处理,比如正常数据aa5506420142213d进行开门电池电量上报,如果直接传输单片机就不能正常的,因此在使用了io串口唤醒的功能之后,需要发送ffffffffffaa5506420142213d就能够正常的进行数据传输和上报了。

在rx引脚进行数据传输时,会不停的有高电平跳变进行数据传输,这样就会造成设备不停的进入io中断触发,使mcu-1无法正常工作,因此本发明中采用io中断触发之后进入中断处理程序,将io中断进行关闭,防止在同一数据帧过程中不断的进入io中断,在中断处理程序上关闭io中断之后将串口进行初始化,让rx引脚能够正常接收串口数据,这时候会损失数据帧的前几个字节。此操作至关重要,否则只能收到无效的数据帧。

数据处理完成之后需要重新进入休眠,并能够正确接收下一次数据帧,首先是进行数据帧解析,解析处理完成之后,不能马上进入休眠模式,因为这时候io中断是关闭的,因此需要先进行io中断恢复,能够保证下次io中断能够正常触发,之后就是将串口进行关闭,设置设备为休眠模式,mcu-1在处理完成任务之后就会进入休眠模式,这样就能够实现对不能使用串口唤醒功能的单片机进行串口唤醒,节省大量的功耗、唤醒时间最少并能够保证串口数据的正确性。采用本发明进行实施,可在相同的数据量上节省将近一半的唤醒功耗,延长设备的电池更换周期。

进一步的方案为:

设备进入休眠前,mcu-1执行如下判断,如图3所示:

若mcu-1没有任务执行,则调节设备进行休眠;

若mcu-1有任务未完成,则使用休眠时钟进行定时检测,检测到任务结束后、调节设备进行休眠;

若mcu-1有任务未完成,且执行时间t(时间t为预设的时间周期)后仍未完成,则强制结束任务,调节设备进行休眠。进入休眠的时候关闭外部32m任务时钟,减少功耗损失。

cc2630芯片具有一颗内部时钟芯片,但对于低功耗芯片来说,内部时钟在准确性上有一定的差异性,为能够提供更加稳定的休眠时钟,本发明采用外部时钟进行定时监测,使休眠功能更加稳定。优选采用外部无源晶振作为休眠时钟,不但能够提供更加稳定的休眠时钟,而且外部无源晶振因为消耗的功耗更低。外部无源晶振具体可采用32.768khz的无源晶振,增加两个电泳进行协助起振和稳定振荡。

设备在进行正常工作时,功耗主要来源于无线数据通信。设备通过每次唤醒进行数据接收和发送,同时在未进行通信时进行休眠设置。首先对设备休眠时的功耗进行优化,关闭不必要的应用开销,通过计算合理的应用时钟周期;在无线数据通信时,无线射频发送数据需要消耗很高的功耗,所以在数据发送时对数据发送的时间和数据长度进行优化,同时对无效数据进行过滤以减少功耗损失。作为低功耗设备,主要供电方式为电池供电,数据量不大,但作为电池供电设备也是需要知道设备的一些状态信息,比如电池电量参数,能够实时了解设备的供电情况,根据设备在具体场景的应用及功耗要求对心跳周期进行合理设置,力求将功耗做到更低。

cc2630芯片主要作为电池设备使用,例如紧急按钮。紧急按钮大多采用纽扣电池,电池容量小。紧急按钮在进行工作的时候,首先加入zigbee网络,在加入zigbee网络的过程中是设备消耗功耗最大的时候,其他同类型的设备采用自动加网,在网关没有打开允许加网的过程中,如果设备不在网络中,则不停地进行入网操作,这样对电池的电量消耗比较严重。本发明中的设备(紧急按钮)采用手动配网方式,如图4所示,在需要进行加入zigbee网络的时候才把加网扫描打开,减少不必要的扫网操作,这样能够大大节省电池电量。同时在设备进行配网的时候采用黑名单机制,即已经尝试加入没有成功的网络或者在尝试加入的时候被该网络踢掉,这样的网络不是设备需要的网络,在进行扫描的时候跳过该类型的网络,这样对功耗有很大的优化,同时配网时间也大大缩短了。

在加入网络之后,紧急按钮需要上报两个重要的属性,电池电量和报警信息,紧急按钮是属于安防类设备,这类设备一般不经常使用,但是在使用的时候就是有危险的时候,所以需要知道设备是否在网络中以及在网络中的电池电量,以方便及时更换电池,其他同类的设备采用两个不同的方式进行电池电量和心跳的上传。先在进行触发的时候将电池电量上报,同时采用2-5秒左右的数据请求帧告诉网络是否再线,这样网关就能告诉用户这个设备是不是在线,是不是有电,这种方式优点是能够实时的知道该设备是否再线及电池是否有电,但同时对电池的功耗消耗比较大,2-5秒一次的数据请求帧虽然一次比发送数据的功耗小,但是发送大量的数据也是消耗很高的电量的,同时电池电量也不是实时的,会出现需要用到紧急按钮的时候没有电了。因此本发明中的紧急按钮对心跳和电池电量进行优化,采用上报电池电量作为心跳,心跳上传周期为3.9~4.1min(四分钟左右),虽然不能实时的更新设备的在线状态,但是能够保证电池电量的实时,网关判断的时候判断三次心跳作为设备是否在线的判断依据,防止因数据丢失造成误判,关闭数据请求帧,避免因大量的数据请求帧消耗很多的电池电量。

上述技术方案中,通过各种手段的实施,使得cc2630的能耗被显著降低,例如,市场上大多紧急按钮的休眠功耗是1-3ua,平均功耗更高,而采用本发明的紧急按钮的平均功耗为2-3ua,因此可以显著降低功耗。

本发明未能详尽描述的设备、机构、组件和操作方法,本领域普通技术人员均可选用本领域常用的具有相同功能的设备、机构、组件和操作方法进行使用和实施。或者依据生活常识选用的相同设备、机构、组件和操作方法进行使用和实施。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在获知本发明中记载内容后,在不脱离本发明原理的前提下,还可以对其作出若干同等变换和替代,这些同等变换和替代也应视为属于本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1