CN111624915A - 一种上位机通过串口唤醒微控制器的方法 - Google Patents
一种上位机通过串口唤醒微控制器的方法 Download PDFInfo
- Publication number
- CN111624915A CN111624915A CN202010483785.8A CN202010483785A CN111624915A CN 111624915 A CN111624915 A CN 111624915A CN 202010483785 A CN202010483785 A CN 202010483785A CN 111624915 A CN111624915 A CN 111624915A
- Authority
- CN
- China
- Prior art keywords
- microcontroller
- upper computer
- data
- serial port
- pin
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0423—Input/output
Abstract
本发明公开了一种上位机通过串口唤醒微控制器的方法,涉及微控制器唤醒技术领域。本发明在没有数据传输时,串口线上的信号会保持在逻辑1;当需要发送数据时,串口设备以帧的形式发送数据;当上位机不通过串口发送数据时,上位机会使自己的TX引脚处于高电平,微控制器的RX引脚也会一直为高电平;当上位机需要传输数据时,上位机在发送数据帧前先发送唤醒数据0xFF;唤醒数据0xFF被发送时,起始位产生的电平下降触发微控制器外部中断。本发明中的上位机在需要传输数据时,上位机通过串口在发送数据帧之前先发送唤醒数据0xFF,即可唤醒处理低功耗模式下的微处理器,而不需要额外的引脚,简化了上位机程序。
Description
技术领域
本发明属于微控制器唤醒技术领域,特别是涉及一种上位机通过串口唤醒微控制器的方法。
背景技术
为了满足不同的低功耗需求,微控制器往往可以有多种低功耗模式可供选择。低功耗模式涉及到CPU、RAM、时钟、外设等。微控制器中往往拥有这种低功耗模式:1.CPU停止运行。2.外设停止运行。3.外部中断可使微控制器退出低功耗模式。
以意法半导体公司的微控制器产品STM32F103C8T6为例:STM32F103C8T6有三种低功耗模式:睡眠模式、停止模式、低功耗模式。在停止模式下,微控制器的保留了RAM和寄存器中的数据,但停止了CPU和片内外设的时钟(即CPU和片内外设停止工作),且微控制器可被外部中断唤醒。
上位机和微控制器以串口(RX、TX、GND)通信,且微控制器配置了上述的低功耗模式。由于在低功耗模式下,微控制器的CPU和片内外设停止工作,微控制器在低功耗模式中无法接收串口数据。
为了使上位机能够和微控制器正常通信,上位机需先使微控制器退出低功耗模式,即首先需唤醒微控制器。传统的方式是:使能微控制器的一个GPIO引脚的外部中断,并将这个引脚连接到上位机上的一个GPIO引脚。如说明书附图2所示。当上位机需要与微控制器通信时,先将已方的GPIO引脚由高电平转为低电平,或将低电平转为高电平,以触发微控制器的外部中断。这时微控制器开始退出低功耗模式。当微控制器由低功耗模式转为正常工作模式之后,上位机才可以和微控制器通信。
这种方式需要上位机需要有GPIO功能,且上位机和微控制器都需要有一个额外的GPIO引脚,以及需要额外的电路以连接这对GPIO引脚。同时上位机在触发微控制器的外部中断后,需要等待微控制器进入正常工作模式,才能开始通信,这会使上位机程序更加复杂。
发明内容
本发明的目的在于提供一种上位机通过串口唤醒微控制器的方法,上位机在需要传输数据时,上位机通过串口在发送数据帧之前先发送唤醒数据0xFF,即可唤醒处理低功耗模式下的微处理器,解决了传统的微控制器唤醒需要额外的GPIO引脚、上位机程序负载的问题。
为解决上述技术问题,本发明是通过以下技术方案实现的:
本发明为一种上位机通过串口唤醒微控制器的方法,包括如下步骤:
步骤S1:上位机与微控制器以串口连接;
步骤S2:将微控制器串口RX引脚使能外部中断,并将中断配置为下降沿触发;
步骤S3:微控制器进入低功耗模式;
步骤S4:在没有数据传输时,串口线上的信号会保持在逻辑1;
步骤S5:当需要发送数据时,串口设备以帧的形式发送数据;
步骤S6:当上位机不通过串口发送数据时,上位机会使自己的TX引脚处于高电平,微控制器的RX引脚也会一直为高电平;
步骤S7:当上位机需要传输数据时,上位机在发送数据帧前先发送唤醒数据0xFF;
步骤S8:唤醒数据0xFF被发送时,起始位产生的电平下降刚好能够触发微控制器外部中断,且在串口无校验位的情况下,后续数据位和停止位皆为高电平。
优选地,所述步骤S1中,上位机包括GND引脚、RX引脚和TX引脚;微控制器包括GND引脚、RX引脚和TX引脚;其中,所述上位机的RX引脚与上位机的TX引脚连接;所述微控制器的TX引脚与上位机的RX引脚连接;所述上位机的GND引脚与微控制器的GND引脚连接。
优选地,所述步骤S5中,一个帧必须包含有起始位、数据位、停止位。
优选地,所述步骤S8中,0xFF在串口传输的过程中,只有起始位置是低电平时,后续的数据位和停止位都是高电平;当微控制器恢复到正常运行状态时,0xFF后续的数据位以及停止位都是高电平,则微控制器会认为串口处于空闲状态。
优选地,所述微控制器退出低功耗模式且进入正常工作模式时,上位机通过发送多个唤醒数据0xFF来代替等待的微控制器进入正常工作模式。
优选地,所述微控制器退出低功耗模式后,若接收到串口帧,需要将帧头之前的0xFF数据剔除。
本发明具有以下有益效果:
1、本发明中的上位机在需要传输数据时,上位机通过串口在发送数据帧之前先发送唤醒数据0xFF,即可唤醒处理低功耗模式下的微处理器,而不需要额外的引脚。
2、上位机在通过串口发送数据时,无需判断微控制器是否是在低功耗模式,也无需额外的等待,同时微控制器也能正确的接收到数据。这在一定程度上简化了上位机程序。
当然,实施本发明的任一产品并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的一种上位机通过串口唤醒微控制器的方法步骤图;
图2为微控制器与上位机的传统方式接线图;
图3为本申请文件的微控制器与上位机的接线图;
图4为8位数据位且无校验位的串口帧格式;
图5为起始位被发送时,0xFF的时序图;
图6为0xFA的第3个数据位被传输时,0xFA的时序图;
图7为0xFF唤醒和数据传输的时序图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
请参阅图1所示,本发明为一种上位机通过串口唤醒微控制器的方法,包括如下步骤:
步骤S1:上位机与微控制器以串口连接;
步骤S2:将微控制器串口RX引脚使能外部中断,并将中断配置为下降沿触发;
步骤S3:微控制器进入低功耗模式;
步骤S4:在没有数据传输时,串口线上的信号会保持在逻辑1;
步骤S5:当需要发送数据时,串口设备以帧的形式发送数据;
步骤S6:当上位机不通过串口发送数据时,上位机会使自己的TX引脚处于高电平,微控制器的RX引脚也会一直为高电平;在此期间,微控制器的外部中断无法被触发,因此微控制器在无数据传输时可以一直保持在低功耗模式;
步骤S7:当上位机需要传输数据时,上位机在发送数据帧前先发送唤醒数据0xFF;
步骤S8:唤醒数据0xFF被发送时,起始位产生的电平下降刚好能够触发微控制器外部中断,且在串口无校验位的情况下,后续数据位和停止位皆为高电平。
请参阅图3所示,步骤S1中,上位机包括GND引脚、RX引脚和TX引脚;微控制器包括GND引脚、RX引脚和TX引脚;其中,上位机的RX引脚与上位机的TX引脚连接;微控制器的TX引脚与上位机的RX引脚连接;上位机的GND引脚与微控制器的GND引脚连接;RX引脚是串口接收引脚、TX引脚是串口的发送引脚、GND引脚是接地引脚。
如图4所示,步骤S5中,一个帧必须包含有起始位、数据位、停止位,也可能有校验位,校验位是可选的;串口通信把起始位认为一个帧的起始,当串口设备接收到起始位后,会依次读取后续的数据位、校验位,若没有校验位则不读。
其中,步骤S7中,当0xFF被发送,起始位产生的电平下降刚好能够触发微控制器外部中断(下降沿触发),且在串口无校验位的情况下,后续的数据位和停止位皆为高电平。如图5所示,当起始位被发送,微控制器开始退出低功耗模式。
其中,步骤S8中,0xFF在串口传输的过程中,只有起始位置是低电平时,后续的数据位和停止位都是高电平;当微控制器恢复到正常运行状态时,0xFF后续的数据位以及停止位都是高电平,则微控制器会认为串口处于空闲状态。
其中,微控制器退出低功耗模式且进入正常工作模式时,上位机通过发送多个唤醒数据0xFF来代替等待的微控制器进入正常工作模式,这需要过多时间,这个时间超过了传输一个串口帧所需的时间。上位机可以通过发送多个唤醒数据0xFF来代替等待微控制器进入正常工作模式,而且发送完唤醒数据后,上位机可以立即发送数据帧(实际需要传输的数据)。0xFF的数量可以根据微控制器退出低功耗模式所需时间而定,但传输0xFF用的时间需大于微控制器退出低功耗模式所需时间。这是为了确保上位机在传输数据帧的第一个数据的起始位之前,微控制器已处于正常运行模式,即能够正常接收数据帧。
其中,微控制器退出低功耗模式后,若接收到串口帧,需要将帧头之前的0xFF数据剔除。
本实施例的一个具体应用为:
由于不同的微控制器退出低功耗模式的所需的时间不同。本实施例以STM32F103C8T6微控制器为例子,在使用8MHz晶振作为时钟源、且在一般工作条件下,当芯片的调节器处于运行模式,微控制器退出停止模式并读取第一条指令需要3.6微秒;当芯片的调节器处于低功耗模式,微控制器退出停止模式并读取第一条指令需要5.4微秒。
STM32F103C8T6退出停止模式后,时钟源会被切换到内部时钟HSI,系统的时钟发生了改变,芯片的串口外设的时钟频率也发生了改变,同时串口外设的波特率也会变化。为了微控制器重新运行在进入停止模式前的系统时钟,且为了将串口恢复到正常的波特率,微控制器需重新配置时钟。在此之后,微控制器需开启串口接收。
因此在实际操作中,当上位机触发微控制器的外部中断之后,实际应等待的时间包括微控制器退出低功耗模式的时间和恢复到正常运行所需的时间,即直到微控制器可正常接收串口数据的时间。
因此在实际操作中,当上位机触发微控制器的外部中断之后,实际应等待的时间包括微控制器退出低功耗模式的时间和恢复到正常运行所需的时间,即直到微控制器可正常接收串口数据的时间。
由于0xFF在串口传输的过程中,只有起始位是低电平,后续的数据位和停止位都是高电平。当微控制器恢复到正常运行时,有可能遗失了起始位,但由于0xFF后续的数据位以及停止位都是高电平,微控制器会认为串口处于空闲状态。这就避免了微控制器将数据位错误地认为是数据的起始位,因此就避免了微控制器实际接收到的是乱码或是触发帧错误。
如图6所示,假设上位机以0xFA作为唤醒数据,且假设微控制在0xFA的第3个数据位被传输时,已退出了低功耗模式且恢复到正常运行。然后微控制器会将0xFA的第6个数据位错误地判别为串口帧的起始位(这是因为第6个数据位和起始位一样,都是低电平),并错误地认为接收到了数据0xBF。这也是选择0xFF,而不选择其他数据作为唤醒数据的原因。
因此,上位机需要通过一个0xFF以唤醒微控制器。
如图7所示,假设上位机在发送数据帧之前先发送3个0xFF以唤醒微控制器并等待微控制器进入正常运行模式。假设微控制器能够在传输第二个唤醒数据0xFF进入正常运行模式。上位机发送完3个0xFF后,立即发送数据帧。
由于微控制器在上位机在传输第二个0xFF进入正常运行模式,它会在接收到数据帧之前先接收到一个0xFF。进一步说,如果上位机发送的唤醒数据较多,微控制器会接收到多个0xFF。因此,上位机应和微控制之间的通信协议应包含以下内容:
1.将一个非0xFF作为数据帧的帧头。帧头表示数据帧的起始。
2.当微控制器退出低功耗模式后,若接收到串口帧,应将帧头之前的0xFF(即唤醒数据)剔除。
这样,微控制器能够很好地将唤醒数据和数据帧区分开来,唤醒数据不会影响到正常的数据传输。
值得注意的是,上述系统实施例中,所包括的各个单元只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
另外,本领域普通技术人员可以理解实现上述各实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,相应的程序可以存储于一计算机可读取存储介质中。
以上公开的本发明优选实施例只是用于帮助阐述本发明。优选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本发明。本发明仅受权利要求书及其全部范围和等效物的限制。
Claims (6)
1.一种上位机通过串口唤醒微控制器的方法,其特征在于,包括如下步骤:
步骤S1:上位机与微控制器以串口连接;
步骤S2:将微控制器串口RX引脚使能外部中断,并将中断配置为下降沿触发;
步骤S3:微控制器进入低功耗模式;
步骤S4:在没有数据传输时,串口线上的信号会保持在逻辑1;
步骤S5:当需要发送数据时,串口设备以帧的形式发送数据;
步骤S6:当上位机不通过串口发送数据时,上位机会使自己的TX引脚处于高电平,微控制器的RX引脚也会一直为高电平;
步骤S7:当上位机需要传输数据时,上位机在发送数据帧前先发送唤醒数据0xFF;
步骤S8:唤醒数据0xFF被发送时,起始位产生的电平下降刚好能够触发微控制器外部中断,且在串口无校验位的情况下,后续数据位和停止位皆为高电平。
2.根据权利要求1所述的一种上位机通过串口唤醒微控制器的方法,其特征在于,所述步骤S1中,上位机包括GND引脚、RX引脚和TX引脚;微控制器包括GND引脚、RX引脚和TX引脚;其中,所述上位机的RX引脚与上位机的TX引脚连接;所述微控制器的TX引脚与上位机的RX引脚连接;所述上位机的GND引脚与微控制器的GND引脚连接。
3.根据权利要求1所述的一种上位机通过串口唤醒微控制器的方法,其特征在于,所述步骤S5中,一个帧必须包含有起始位、数据位、停止位。
4.根据权利要求1所述的一种上位机通过串口唤醒微控制器的方法,其特征在于,所述步骤S8中,0xFF在串口传输的过程中,只有起始位置是低电平时,后续的数据位和停止位都是高电平;当微控制器恢复到正常运行状态时,0xFF后续的数据位以及停止位都是高电平,则微控制器会认为串口处于空闲状态。
5.根据权利要求1或4所述的一种上位机通过串口唤醒微控制器的方法,其特征在于,所述微控制器退出低功耗模式且进入正常工作模式时,上位机通过发送多个唤醒数据0xFF来代替等待的微控制器进入正常工作模式。
6.根据权利要求1所述的一种上位机通过串口唤醒微控制器的方法,其特征在于,所述微控制器退出低功耗模式后,若接收到串口帧,需要将帧头之前的0xFF数据剔除。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010483785.8A CN111624915A (zh) | 2020-06-01 | 2020-06-01 | 一种上位机通过串口唤醒微控制器的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010483785.8A CN111624915A (zh) | 2020-06-01 | 2020-06-01 | 一种上位机通过串口唤醒微控制器的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111624915A true CN111624915A (zh) | 2020-09-04 |
Family
ID=72271209
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010483785.8A Pending CN111624915A (zh) | 2020-06-01 | 2020-06-01 | 一种上位机通过串口唤醒微控制器的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111624915A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103699509A (zh) * | 2014-01-03 | 2014-04-02 | 烟台东方威思顿电气有限公司 | 基于定时器录波的串口通讯方法 |
CN105225316A (zh) * | 2015-09-23 | 2016-01-06 | 曾松峰 | 一种电子钥匙低功耗供电方案的休眠及唤醒方法 |
CN107239422A (zh) * | 2017-06-15 | 2017-10-10 | 威海市天罡仪表股份有限公司 | 一种低功耗模式下ttl串口无损接收突发数据的方法 |
CN107589824A (zh) * | 2017-09-21 | 2018-01-16 | 上海顺舟智能科技股份有限公司 | 一种降低仅支持io唤醒mcu功耗的方法 |
-
2020
- 2020-06-01 CN CN202010483785.8A patent/CN111624915A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103699509A (zh) * | 2014-01-03 | 2014-04-02 | 烟台东方威思顿电气有限公司 | 基于定时器录波的串口通讯方法 |
CN105225316A (zh) * | 2015-09-23 | 2016-01-06 | 曾松峰 | 一种电子钥匙低功耗供电方案的休眠及唤醒方法 |
CN107239422A (zh) * | 2017-06-15 | 2017-10-10 | 威海市天罡仪表股份有限公司 | 一种低功耗模式下ttl串口无损接收突发数据的方法 |
CN107589824A (zh) * | 2017-09-21 | 2018-01-16 | 上海顺舟智能科技股份有限公司 | 一种降低仅支持io唤醒mcu功耗的方法 |
Non-Patent Citations (1)
Title |
---|
张晓明: "计算机网络课程设计", 《计算机网络课程设计》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106209695B (zh) | 给加载/存储通信协议提供低功率物理单元 | |
US7089434B2 (en) | Wireless signal receiving device with prompt wake-up function | |
US8291246B2 (en) | High speed network interface with automatic power management with auto-negotiation | |
US8055825B2 (en) | Digital device interconnect method | |
US9575552B2 (en) | Device, method and system for operation of a low power PHY with a PCIe protocol stack | |
CN101420328B (zh) | 远程升级现场可编程门阵列的系统、接口卡及方法 | |
TWI401565B (zh) | 一種控制能量的方法及系統 | |
JP6074052B2 (ja) | 仮想gpio | |
KR101129748B1 (ko) | 활성 전원 관리 상태로부터의 탈출 대기 시간의 최적화 | |
US20180173665A1 (en) | Hard reset over i3c bus | |
US7353300B2 (en) | Apparatus to improve the firmware efficiency for a multiframe serial interface | |
CN101369948B (zh) | 一种实现低功耗的通信系统 | |
CN103558907A (zh) | 电子装置及降低电子装置功耗的方法 | |
US6874047B1 (en) | System and method for implementing an SMBus/I2C interface on a network interface card | |
CN111624915A (zh) | 一种上位机通过串口唤醒微控制器的方法 | |
CN115904844A (zh) | 一种用于打印boot信息的uart仿真模型及其工作方法 | |
WO2023159415A1 (en) | Adaptive low-power signaling to enable link signal error recovery without increased link clock rates | |
CN117971325A (zh) | 一种唤醒方法和芯片电路 | |
CN117370245A (zh) | 适用于usb3降速桥的速率适配系统及usb3降速桥 | |
JPH06152695A (ja) | シリアルインタフェース回路 | |
CN116527552A (zh) | 白盒交换机测试指令处理方法、系统、终端及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200904 |