CN113721498B - 一种基于FreeRTOS的指令交互控制系统及其方法 - Google Patents
一种基于FreeRTOS的指令交互控制系统及其方法 Download PDFInfo
- Publication number
- CN113721498B CN113721498B CN202110799534.5A CN202110799534A CN113721498B CN 113721498 B CN113721498 B CN 113721498B CN 202110799534 A CN202110799534 A CN 202110799534A CN 113721498 B CN113721498 B CN 113721498B
- Authority
- CN
- China
- Prior art keywords
- instruction
- interactive
- data
- sending
- module
- 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.)
- Active
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
-
- 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
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/25—Pc structure of the system
- G05B2219/25257—Microcontroller
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Communication Control (AREA)
Abstract
本发明涉及一种基于FreeRTOS的指令交互控制方法,方法应用于MCU模块与至少一个通信模块之间的指令交互控制,方法包括:指令发送准备步骤,指令发送执行步骤,定时等待步骤和数据接收步骤;指令发送准备步骤用于将MCU模块的交互指令的多个参数传入对应的结构体中存储,供指令交互运行过程中进行拿取;指令发送执行步骤用于调用并运行发送处理函数,将交互指令的参数传入发送处理函数的指针空间中,并通过串口发送函数将指针空间中的参数发送到通信模块;定时等待步骤用于启动定时器,设置所述定时器的定时参数为最大等待时间,运行等待队列,进行任务阻塞等待,在队列阻塞等待期间MCU模块运行其他任务;数据接收步骤用于在队列阻塞等待期间,队列接收到信号时,判断接收到信号的数据类型,并根据数据类型分别进行交互指令的超时重发或当前交互指令发送成功,则切换执行下一个交互指令。
Description
技术领域
本发明涉及一种MCU指令交互控制系统,特别涉及一种基于FreeRTOS的指令交互控制系统及其方法。
背景技术
目前,微控制单元(Microcontroller Unit;MCU),又称单片微型计算机(SingleChip Microcomputer)或者单片机,是把中央处理器(Central Process Unit;CPU)的频率与规格做适当缩减,并将内存(memory)、计数器(Timer)、USB、A/D转换、UART、PLC、DMA等周边接口,甚至LCD驱动电路都整合在单一芯片上,形成芯片级的计算机,为不同的应用场合做不同组合控制。诸如手机、PC外围、遥控器,汽车电子、工业上的步进马达、机器手臂的控制等,都可见到MCU的身影。
FreeRTOS是一个运行于MCU之上的迷你实时操作系统内核。作为一个轻量级的操作系统,功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能、软件定时器、协程等,可基本满足较小系统的需要。
目前MCU对于各种通信模块的控制存在以下特点:
MCU想要实现与通信模块交互,需通过串口发送AT指令,并接受通信模块从串口返回的数据;MCU需要想要完成某一项任务(获取时间、向服务器报告信息等),MCU需按照顺序发送指令,因此,单个指令的收发处理及上下衔接就显得尤为关键;MCU每个指令所需要的超时等待的时间不同,且发生超时错误时,需要灵活根据情况来决定下一步应执行的操作。
同时,由于通信模块的控制只是MCU功能的一部分,所以在等待返回的数据时,此任务不能占用太多MCU资源,否则,会影响MCU的处理性能,挤占其他功能的处理资源。
因此,为解决目前现有技术中存在的上述缺陷,实现MCU与通信模块的高效率交互,本发明特别提出一种基于FreeRTOS的指令交互控制系统及其方法,同时,增加了MCU针对通信模块的指令交互控制方法,以解决现有技术中存在的MCU的交互指令控制实时性差,MCU操作性能低下,并且,单个指令的收发处理及多个指令的上下衔接容易出现错漏的技术问题。
发明内容
本发明针对上述现有技术中存在的MCU的交互指令控制实时性差,MCU操作性能低下,并且,单个指令的收发处理及多个指令的上下衔接容易出现错漏的技术问题,提出一种基于FreeRTOS的指令交互控制系统及其方法。
为了达到上述目的,本发明采用的技术方案为:
本发明具体实施例提供一种基于FreeRTOS的指令交互控制方法,方法应用于MCU模块与至少一个通信模块之间的指令交互控制,方法包括:
指令发送准备步骤:将MCU模块的交互指令的多个参数传入对应的多个结构体中存储,以供指令交互运行中拿取;
指令发送执行步骤:调用并运行发送处理函数,将交互指令的参数传入发送处理函数的指针空间中,并通过串口发送函数将指针空间中的参数发送到通信模块;
定时等待步骤:启动定时器,设置定时器的定时参数为最大等待时间,运行等待队列,进行任务阻塞等待,在队列阻塞等待期间MCU模块运行其他任务;
数据接收步骤:在队列阻塞等待期间,队列接收到信号时,判断接收到信号的数据类型,并根据数据类型分别进行交互指令的超时重发或当前交互指令发送成功切换执行下一个交互指令。
作为优选,上述基于FreeRTOS的指令交互控制方法,方法还包括:
初始化步骤:注册定时器、注册串口接收中断函数、注册队列并将通信模块的任务注册为高优先级。
作为优选,上述交互指令的多个参数包括:发送处理函数指针、接收处理函数指针、最大重试次数、最大等待时间、下一个指令的句柄。
作为优选,上述数据接收步骤包括:
超时信号接收步骤:接收信号为超时信号时,将交互指令重试次数加一,并判断其是否超过了交互指令最大重试次数,若超过,则重新执行任务流程或者执行其他操作终止此任务;
串口信号接收步骤:接收信号为串口信号时,将串口接受的数据作为参数传入接收处理函数中,通过接收处理函数判断接收到的数据是否满足预期,并分情况分别处理:
作为优选,上述串口信号接收步骤包括:
重试步骤:如果接收到的串口数据有误,则重新发送交互指令并再次查看返回的串口数据;
继续等待步骤:如果接受到的串口数据正确,同时,接收的数据不完整且定时器并未超时,继续执行队列阻塞等待;
指令发送成功步骤:如果接收到的数据与预期的相同,则跳出循环,执行交互指令切换,开始执行下一个交互指令的交互控制。
本发明还提供一种基于FreeRTOS的指令交互控制系统,采用如上所述指令交互控制方法,系统应用于MCU模块与至少一个通信模块之间的指令交互控制,系统包括:
指令发送准备模块:将MCU模块的交互指令的多个参数传入对应的结构体中存储,供指令交互运行过程中进行拿取;
指令发送执行模块:调用并运行发送处理函数,将交互指令的参数传入发送处理函数的指针空间中,并通过串口发送函数将指针空间中的参数发送到通信模块;
定时等待模块:启动定时器,设置定时器的定时参数为最大等待时间,运行等待队列,进行任务阻塞等待,在队列阻塞等待期间MCU模块运行其他任务;
数据接收模块:在队列阻塞等待期间,队列接收到信号时,判断接收到信号的数据类型,并根据数据类型分别进行交互指令的超时重发或当前交互指令发送成功,则切换执行下一个交互指令。
作为优选,上述基于FreeRTOS的指令交互控制系统,系统还包括:
初始化模块:注册定时器、注册串口接收中断函数、注册队列并将通信模块的任务注册为高优先级。
作为优选,上述交互指令的多个参数包括:发送处理函数指针、接收处理函数指针、最大重试次数、最大等待时间、下一个指令的句柄。
作为优选,上述数据接收模块包括:
超时信号接收模块:接收信号为超时信号时,将交互指令重试次数加一,并判断其是否超过了交互指令最大重试次数,若超过最大重试次数,则重新执行指令发送准备模块或者执行其他操作终止此任务;
串口信号接收模块:接收信号为串口信号时,将串口接受的数据作为参数传入接收处理函数中,通过接收处理函数判断接收到的数据是否满足预期,并分情况分别处理。
作为优选,上述串口信号接收模块包括:
重试模块:如果接收到的串口数据有误,则重新发送交互指令并再次查看返回的串口数据;
继续等待模块:如果接受到的串口数据正确,同时,接收的数据不完整且定时器并未超时,继续执行队列阻塞等待;
指令发送成功模块:如果接收到的数据与预期的相同,则跳出循环,执行交互指令切换,开始执行下一个交互指令的交互控制。
与现有技术相比,本发明的优点和积极效果在于:
(1)本方法以FreeRTOS系统的任务调度、线程优先级切换、阻塞机制为基础,实现MCU与通信模块的指令交互;
(2)能灵活编辑单个指令的发送、接收处理函数和必要参数;
(3)占用较少的MCU资源,实现对通信模块的控制;在实际应用中能让开发人员对于通信模块的控制的更为灵活、稳定;
(4)本发明系统及其方法采用基于FreeRTOS实现对通信模块的交互指令进行控制,实现了对wifi或4G通信模块等多种通信模块的交互指令控制,进一步提升了MCU的高扩展性;
(5)在等待通信模块处理数据时交出线程采用最大计时器进行队列阻塞的方式,极大的提升了MCU的运行效率。
附图说明
图1为本发明基于FreeRTOS的指令交互控制系统结构示意图;
图2为本发明具体实施例指令交互控制方法流程示意图;
图3为本发明基于FreeRTOS的指令交互控制系统结构示意图;
图4为本发明数据接收模块示意图;
图5为本发明串口信号接收模块示意图。
以上各图中:
10、指令发送准备模块 20、指令发送执行模块
30、定时等待模块 40、数据接收模块
50、初始化模块
41、超时信号接收模块 42、串口信号接收模块
421、重试模块 422、继续等待模块
423、指令发送成功模块
具体实施方式
下面将结合附图对本发明具体实施例中的技术方案进行详细、完整的描述。显然,所描述的实施例仅仅是本发明总的技术方案的部分具体实施方式,而非全部的实施方式。基于本发明的总的构思,本领域普通技术人员所获得的所有其他实施例,都落于本发明保护的范围。
在本发明的描述中,需要理解的是,术语“中心”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
本发明旨在解决现有的MCU想要实现与通信模块交互,需通过串口发送AT指令,并接受通信模块从串口返回的数据;MCU需要想要完成某一项任务(获取时间、向服务器报告信息等),MCU需按照顺序发送指令,因此,单个指令的收发处理及上下衔接就显得尤为关键;MCU每个指令所需要的超时等待的时间不同,且发生超时错误时,需要灵活根据情况来决定下一步应执行的操作。
以下结合具体实施例及附图对本发明基于FreeRTOS对通信模块的指令交互控制方法进行详尽说明:
本发明提供一种基于FreeRTOS对通信模块的指令交互控制的整体解决方案为:
1、以FreeRTOS的调度为基础,实现MCU与通信模块间指令发送、处理和判断;
2、基于FreeRTOS实现发送函数的指令组成及接收函数的处理接收数据;
3、MCU模块在等待通信模块处理数据时,实现交出线程的阻塞方式及收到数据后,实现重新获取线程。
图1为本发明基于FreeRTOS的指令交互控制系统结构示意图,如图1所示,本发明提供了一种基于FreeRTOS的指令交互控制方法,该方法应用于MCU模块与至少一个通信模块之间的指令交互控制,该方法包括:
指令发送准备步骤:将MCU模块的交互指令的多个参数传入对应的多个结构体中存储,用于指令交互运行中拿取;
指令发送执行步骤:调用并运行发送处理函数,将交互指令的参数传入发送处理函数的指针空间中,并通过串口发送函数将指针空间中的参数发送通信模块;交互指令的多个参数包括:发送处理函数指针、接收处理函数指针、最大重试次数、最大等待时间、下一个指令的句柄。
定时等待步骤:启动定时器,设置定时器的定时参数为最大等待时间,运行等待队列,进行任务阻塞等待,在队列阻塞等待期间MCU模块运行其他任务;
数据接收步骤:在队列阻塞等待期间,队列接收到信号时,判断接收到信号的数据类型,并根据数据类型分别进行交互指令的超时重发或当前交互指令发送成功切换执行下一个交互指令。
进一步的,基于FreeRTOS的指令交互控制方法还包括:
初始化步骤:注册定时器、注册串口接收中断函数、注册队列并将通信模块的任务注册为高优先级。
其中,数据接收步骤包括:
超时信号接收步骤:接收信号为超时信号时,将交互指令重试次数+1,并判断其是否超过了交互指令最大重试次数,若超过,则重新执行任务流程或者执行其他操作终止此任务;
串口信号接收步骤:接收信号为串口信号时,将串口接受的数据作为参数传入接收处理函数中,通过接收处理函数判断接收到的数据是否满足预期,并分情况分别处理:
其中,串口信号接收步骤包括:
重试步骤:如果接收到的串口数据有误,则重新发送交互指令并再次查看返回的串口数据;
继续等待步骤:如果接受到的串口数据正确,同时,接收的数据不完整且定时器并未超时,继续执行队列阻塞等待;
指令发送成功步骤:如果接收到的数据与预期的相同,则跳出循环,执行交互指令切换,开始执行下一个交互指令的交互控制。
本发明具体实施例:本实施例为MCU与4G模块单个指令的处理过程,所以只详细描述此过程的细节。至于发送某指令需求如何产生、如何重启模块、如何调度切换下一个指令等功能在此不作说明。
初始化准备事项:注册一个FreeRTOS定时器、编写一个串口接收中断函数、注册一个队列(用来接收定时器和串口中断函数的数据)、将4g任务注册为高优先级;
图2为本发明具体实施例指令交互控制方法流程示意图,如图2所示,当任务中需要发送某个指令时,具体指令包括:获取时间、定时向服务器报告位置、状态信息、定时收取服务器数据,此流程开始运作执行:
1.将该指令相关的内容(包括发送处理函数指针、接收处理函数指针、最大重试次数、最大等待时间、下一个指令的句柄等)传入一个结构体,供流程运行时随时拿取。
2.运行发送处理函数。此函数的参数为一个char类型指针(用来存放cmd字符)其将要发送的内容传入该指针空间中,并把cmd长度通过int整形返回。接下来就由一个串口发送函数将此指针空间的数据发送给4G模块。
3.打开提前注册的FreeRTOS的定时器,将其定时参数设为此结构体中此指令最大等待时间。运行FreeRTOS队列等待接口,且此队列只接受定时器到达时间信号和串口中断函数发送来的信号。在接受到信号前,此任务可一直阻塞在此处,并让MCU先忙别的任务。
4.队列接受到了信号时,FreeRTOS就会将线程切换到此任务上。然后将判断接收到的数据类型。就如3中所说的,信号分为等待超时信号和串口信号。
1)信号为超时信号。将指令重试次数+1,并判断其是否超过了该指令最大重试次数。若超过,则重启模块重新执行任务流程或者执行其他操作终止此任务。
若未超过,则返回第2步,重新发送该指令。
2)信号为串口信号。将此串口接受的数据作为参数传入接收处理函数中,由此函数判断接收到的数据是否满足预期,经过判断后可分为三种情况:
①重试。接收到的数据存在问题,需要重新发送一遍指令并再次查看返回数据。那么就需要先关闭定时器,在执行1)的内容。
②继续等待。接受到的数据是没有问题的,但是没有接收完全且定时器并未超时,就可继续回3的阻塞过程(定时器无需重置)。
③符合预期。若接收到的数据与预期的相同,那么就可以跳出此闭环,执行指令切换,从头部开始执行下一个指令的整个过程。
5.到此,此流程结束。
以下结合具体实施例及附图对本发明基于FreeRTOS对通信模块的指令交互控制系统进行详尽说明:
本发明还提供了一种基于FreeRTOS的指令交互控制系统,图3为本发明基于FreeRTOS的指令交互控制系统结构示意图,如图3所示,系统应用于MCU模块100与至少一个通信模块200之间的指令交互控制,系统包括:指令发送准备模块10,指令发送执行模块20,定时等待模块30和数据接收模块40;
指令发送准备模块10:将MCU模块的交互指令的多个参数传入对应的结构体中存储,用于指令交互运行过程中进行拿取;交互指令的多个参数包括:发送处理函数指针、接收处理函数指针、最大重试次数、最大等待时间、下一个指令的句柄。
指令发送执行模块20:调用并运行发送处理函数,将交互指令的参数传入发送处理函数的指针空间中,并通过串口发送函数将指针空间中的参数发送通信模块;
定时等待模块30:启动定时器,设置定时器的定时参数为最大等待时间,运行等待队列,进行任务阻塞等待,在队列阻塞等待期间MCU模块运行其他任务;
数据接收模块40:在队列阻塞等待期间,队列接收到信号时,判断接收到信号的数据类型,并根据数据类型分别进行交互指令的超时重发或当前交互指令发送成功,则切换执行下一个交互指令。
进一步的,系统还包括:
初始化模块50:注册定时器、注册串口接收中断函数、注册队列并将通信模块的任务注册为高优先级。
图4为本发明数据接收模块示意图,如图4所示,数据接收模块40包括:超时信号接收模块41和串口信号接收模块42;
超时信号接收模块41:接收信号为超时信号时,将交互指令重试次数加一,并判断其是否超过了交互指令最大重试次数,若超过最大重试次数,则重新执行指令发送准备模块或者执行其他操作终止此任务;
串口信号接收模块42:接收信号为串口信号时,将串口接受的数据作为参数传入接收处理函数中,通过接收处理函数判断接收到的数据是否满足预期,并分情况分别处理。
图5为本发明串口信号接收模块示意图,如图5所示,串口信号接收模块42包括:重试模块421,继续等待模块422和指令发送成功模块423;
重试模块421:如果接收到的串口数据有误,则重新发送交互指令并再次查看返回的串口数据;
继续等待模块422:如果接受到的串口数据正确,同时,接收的数据不完整且定时器并未超时,继续执行队列阻塞等待;
指令发送成功模块423:如果接收到的数据与预期的相同,则跳出循环,执行交互指令切换,开始执行下一个交互指令的交互控制。
与现有技术相比,本发明的优点和积极效果在于:
本方法以FreeRTOS系统的任务调度、线程优先级切换、阻塞机制为基础,实现MCU与通信模块的指令交互;能灵活编辑单个指令的发送、接收处理函数和必要参数;占用较少的MCU资源,实现对通信模块的控制;在实际应用中能让开发人员对于通信模块的控制的更为灵活、稳定;本发明系统及其方法采用基于FreeRTOS实现对通信模块的交互指令进行控制,实现了对wifi或4G通信模块等多种通信模块的交互指令控制,进一步提升了MCU的高扩展性;在等待通信模块处理数据时交出线程采用最大计时器进行队列阻塞的方式,极大的提升了MCU的运行效率。
以上所述为本发明的具体实施方式,其目的在于让技术人员能够了解本发明的内容并加以实施,并不能以此限制本发明的保护范围,任何根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围内。需要说明的是,在附图或说明书正文中,未绘出或描述的实现方式,均为所属技术领域中普通技术人员所知的形式,并未进行详细说明。此外,上述对各部件和工艺方法的定义并不仅限于实施例中提到的各种具体结构、形状或方式。
Claims (4)
1.一种基于 FreeRTOS 的指令交互控制方法,其特征在于,所述方法应用于 MCU 模块与至少一个通信模块之间的指令交互控制,所述方法包括:
指令发送准备步骤:将 MCU 模块的交互指令的多个参数传入对应的多个结构体中存储,以供指令交互运行中拿取;所述交互指令的多个参数包括:发送处理函数指针、接收处理函数指针、最大重试次数、最大等待时间、下一个指令的句柄;
指令发送执行步骤:调用并运行发送处理函数,将所述交互指令的参数传入所述发送处理函数的指针空间中,并通过串口发送函数将所述指针空间中的所述参数发送到所述通信模块;
定时等待步骤:启动定时器,设置所述定时器的定时参 数为最大等待时间,运行等待队列,进行任务阻塞等待,在队列阻塞等待期间 MCU 模块运行其他任务;
数据接收步骤:在所述队列阻塞等待期间,所述队列接收到信号时,判断接收到所述信号的数据类型,并根据所述数据类型分别进行所述交互指令的超时重发或当前所述交互指令发送成功切换执行下一个交互指令;
数据接收步骤包括:
超时信号接收步骤:所述接收信号为超时信号时,将所述交互指令重试次数加一,并判断其是否超过了所述交互指令最大重试次数,若超过,则重新执行任务流程或者执行其他操作终止此任务;
串口信号接收步骤:所述接收信号为串口信号时,将所述串口接收的数据作为参数传入接收处理函数中,通过所述接收处理函数判断接收到的数据是否满足预期,并分情况分别处理;
所述串口信号接收步骤包括:
重试步骤:如果接收到的所述串口数据有误,则重新发送所述交互指令并再次查看返回的所述串口数据;
继续等待步骤:如果接收到的所述串口数据正确,同时,接收的所述数据不完整且所述定时器并未超时,继续执行所述队列阻塞等待;
指令发送成功步骤:如果接收到的数据与预期的相同,则跳出循环,执行所述交互指令切换,开始执行下一个所述交互指令的交互控制。
2.根据权利要求 1 所述基于 FreeRTOS 的指令交互控制方法,其特征在于,所述方法还包括:
初始化步骤:注册定时器、注册串口接收中断函数、注册队列并将所述通信模块的任务注册为高优先级。
3.一种基于 FreeRTOS 的指令交互控制系统,其特征在于,采用如权利要求 1-2 中任意一项所述指令交互控制方法,所述系统应用于 MCU 模块与至少一个通信模块之间的指令交互控制,所述系统包括:
指令发送准备模块:将所述 MCU 模块的交互指令的多个参数传入对应的结构体中存储,供指令交互运行过程中进行拿取;
指令发送执行模块:调用并运行发送处理函数,将所述交互指令的参数传入所述发送处理函数的指针空间中,并通过串口发送函数将所述指针空间中的所述参数发送到所述通信模块;所述交互指令的多个参数包括:发送处理函数指针、接收处理函数指针、最大重试次数、最大等待时间、下一个指令的句柄;
定时等待模块:启动定时器,设置所述定时器的定时参 数 为 最 大 等待时间,运行等待队列,进行任务阻塞等待,在队列阻塞等待期间 MCU 模块运行其他任务;
数据接收模块:在所述队列阻塞等待期间,所述队列接收到信号时,判断接收到所述信号的数据类型,并根据所述数据类型分别进行所述交互指令的超时重发或当前所述交互指令发送成功,则切换执行下一个交互指令;
数据接收模块包括:
超时信号接收模块:所述接收信号为超时信号时,将所述交互指令重试次数加一,并判断其是否超过了所述交互指令最大重试次数,若超过,则重新执行任务流程或者执行其他操作终止此任务;
串口信号接收模块:所述接收信号为串口信号时,将所述串口接收的数据作为参数传入接收处理函数中,通过所述接收处理函数判断接收到的数据是否满足预期,并分情况分别处理;
串口信号接收模块包括:
重试模块:如果接收到的所述串口数据有误,则重新发送所述交互指令并再次查看返回的所述串口数据;
继续等待模块:如果接收到的所述串口数据正确,同时,接收的所述数据不完整且所述定时器并未超时,继续执行所述队列阻塞等待;
指令发送成功模块:如果接收到的数据与预期的相同,则跳出循环,执行所述交互指令切换,开始执行下一个所述交互指令的交互控制。
4.根据权利要求3所述基于 FreeRTOS 的指令交互控制系统,其特征在于,所述系统还包括:
初始化模块:注册定时器、注册串口接收中断函数、注册队列并将所述通信模块的任务注册为高优先级。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110799534.5A CN113721498B (zh) | 2021-07-15 | 2021-07-15 | 一种基于FreeRTOS的指令交互控制系统及其方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110799534.5A CN113721498B (zh) | 2021-07-15 | 2021-07-15 | 一种基于FreeRTOS的指令交互控制系统及其方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113721498A CN113721498A (zh) | 2021-11-30 |
CN113721498B true CN113721498B (zh) | 2022-12-30 |
Family
ID=78673342
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110799534.5A Active CN113721498B (zh) | 2021-07-15 | 2021-07-15 | 一种基于FreeRTOS的指令交互控制系统及其方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113721498B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114461162A (zh) * | 2022-01-21 | 2022-05-10 | 思澈科技(上海)有限公司 | 一种基于mcu芯片的lcd控制方法 |
CN116340020A (zh) * | 2023-02-22 | 2023-06-27 | 重庆蓝鲸智联科技有限公司 | 一种处理智能座舱mcu数据请求的方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110825536A (zh) * | 2019-10-31 | 2020-02-21 | 深圳移航通信技术有限公司 | 嵌入式实时操作系统中任务间的通信方法及装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103294533B (zh) * | 2012-10-30 | 2016-09-07 | 北京安天电子设备有限公司 | 任务流控制方法及系统 |
CN104536934A (zh) * | 2014-12-24 | 2015-04-22 | 深圳市航盛电子股份有限公司 | 一种串口通信方法及系统 |
CN111077542A (zh) * | 2018-10-18 | 2020-04-28 | 千寻位置网络有限公司 | 支持mqtt物联网协议的高精度rtk接收装置和系统 |
WO2020174460A2 (en) * | 2019-02-25 | 2020-09-03 | Luminati Networks Ltd. | System and method for url fetching retry mechanism |
CN111475263A (zh) * | 2020-04-10 | 2020-07-31 | 上海移为通信技术股份有限公司 | 事件处理方法、设备及存储介质 |
CN112737739B (zh) * | 2020-12-25 | 2022-08-23 | 艾体威尔电子技术(北京)有限公司 | 一种两设备间多包通讯的方法 |
-
2021
- 2021-07-15 CN CN202110799534.5A patent/CN113721498B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110825536A (zh) * | 2019-10-31 | 2020-02-21 | 深圳移航通信技术有限公司 | 嵌入式实时操作系统中任务间的通信方法及装置 |
Non-Patent Citations (1)
Title |
---|
基于arm内核的UV通信机的设计;王李等;《电子设计工程》;20180705;第177-180页 * |
Also Published As
Publication number | Publication date |
---|---|
CN113721498A (zh) | 2021-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113721498B (zh) | 一种基于FreeRTOS的指令交互控制系统及其方法 | |
EP0013739B1 (en) | Communication controller in a data processing system | |
US20210026796A1 (en) | I3c point to point | |
US8938609B2 (en) | Methods and apparatus for priority initialization of a second processor | |
US11513991B2 (en) | Batch operation across an interface | |
US5530872A (en) | Method and system for directing device driver to service multiple sequential interrupt requests generated by I/O device connected thereto | |
US20060010446A1 (en) | Method and system for concurrent execution of multiple kernels | |
EP0969629A2 (en) | System and method for sharing resources among a plurality of host computers | |
US5937200A (en) | Using firmware to enhance the functionality of a controller | |
KR20180017035A (ko) | 50 나노초 스파이크 필터를 위한 테스트 | |
CN113179227B (zh) | 基于队列的at指令控制方法 | |
CN103888441A (zh) | 一种应用程序与协议栈之间的信息传输方法及处理装置 | |
WO2020060838A1 (en) | Urgent in-band interrupts on an i3c bus | |
CN108959136A (zh) | 基于spi的数据传输加速装置、系统及数据传输方法 | |
US20200201804A1 (en) | I3c device timing adjustment to accelerate in-band interrupts | |
WO2019013926A1 (en) | I3C ACCELERATED BY THIRD PARTY INITIATED | |
US10545886B2 (en) | Clock line driving for single-cycle data over clock signaling and pre-emption request in a multi-drop bus | |
CN111737103A (zh) | 一种包括调试单元的处理器和调试系统 | |
CN111984581A (zh) | 一种基于Linux的SPI总线主从设备通讯系统、方法及装置 | |
US20190171611A1 (en) | Protocol-framed clock line driving for device communication over master-originated clock line | |
US11520729B2 (en) | I2C bus architecture using shared clock and dedicated data lines | |
CN113806112A (zh) | Spi异步通信调度方法、装置、设备及存储介质 | |
JP2809209B2 (ja) | プロセス間通信方式 | |
WO2003075167A1 (en) | Method and arrangement for virtual direct memory access | |
WO2010070530A1 (en) | Electronic apparatus comprising a common bus |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |