一种基于超时机制和循环队列的AT指令交互算法制造技术

技术编号:44593979 阅读:13 留言:0更新日期:2025-03-14 12:51
本发明专利技术公开了一种基于超时机制和循环队列的AT指令交互算法,涉及AT指令通讯技术领域,本发明专利技术在系统初始化完成后,初始化接收循环队列,并配置和启用毫秒级的硬件定时器;接收循环队列通过DMA中断将4G模块返回的数据直接存储在队列中;并且在每次发送AT指令时,配置相应的超时时间,启动超时计数,并设置不同的超时时间;在任务轮询过程中,检查接收循环队列中是否有接收的数据;根据接收到的响应数据判断指令响应是否超时,并在发生超时后,自动重新发送该AT指令,并重新启动计时器;通过上述改进措施,提高了MCU的资源利用效率,减少了由于突发数据造成的逻辑混乱,保证通信的可靠性和数据传输的连续性。

【技术实现步骤摘要】

本专利技术涉及at指令通讯,具体是一种基于超时机制和循环队列的at指令交互算法。


技术介绍

1、在嵌入式产品设计中,4g通信模块通常通过串口与mcu通信;mcu通过发送at指令与4g模块交互,以实现拨号、数据发送和接收等功能;每条发送给4g模块的at指令都需要等待响应,而不同指令的响应时间各不相同;有些指令在几百毫秒内返回响应,而有些指令则可能需要几秒钟。

2、此外,4g模块有时会突发性地返回数据,尤其是在连接建立后,模块可能突然返回数据;当mcu也需要向4g模块发送数据时,这种突发数据会导致通信逻辑变得复杂;原有的处理方法是,在mcu向4g模块发送数据后进入超时等待,等待结束后检查接收缓冲区是否有数据;如果收到的数据与当前发送的at指令匹配,则继续后续指令交互;如果没有收到匹配的数据,mcu则重新发送该at指令;在超时等待期间,mcu处于空等状态,没有进行其他操作;这种方式不仅通信效率低,还可能导致逻辑混乱:超时后接收到的数据可能与当前指令无关,但由于之前的at指令未完成,收到的其他响应数据会使软件逻辑变得难以处理。>

3、专利号为本文档来自技高网...

【技术保护点】

1.一种基于超时机制和循环队列的AT指令交互算法,其特征在于:包括以下步骤:

2.根据权利要求1所述的一种基于超时机制和循环队列的AT指令交互算法,其特征在于:在步骤S1中:首先对硬件进行初始化,在硬件初始化完成后,依次进行串口初始化、硬件定时器初始化和接收循环队列初始化,并在初始化完成后启动硬件定时器。

3.根据权利要求1所述的一种基于超时机制和循环队列的AT指令交互算法,其特征在于:在步骤S2中:进入4G数据收发任务,在`while(1)`循环中进行轮询;轮询任务主要负责处理4G模块返回的数据和需要发送的数据,并根据当前的AT指令,通过循环队列处理函数和AT指...

【技术特征摘要】

1.一种基于超时机制和循环队列的at指令交互算法,其特征在于:包括以下步骤:

2.根据权利要求1所述的一种基于超时机制和循环队列的at指令交互算法,其特征在于:在步骤s1中:首先对硬件进行初始化,在硬件初始化完成后,依次进行串口初始化、硬件定时器初始化和接收循环队列初始化,并在初始化完成后启动硬件定时器。

3.根据权利要求1所述的一种基于超时机制和循环队列的at指令交互算法,其特征在于:在步骤s2中:进入4g数据收发任务,在`while(1)`循环中进行轮询;轮询任务主要负责处理4g模块返回的数据和需要发送的数据,并根据当前的at指令,通过循环队列处理函数和at指令发送函数对4g模块返回的数据和需要发送的数据分别进行处理。

4.根据权利要求1所述的一种基于超时机制和循环队列的at指令交互算法,其特征在于:在步骤s3中:4g模块开机后,网络建立需要依次执行n条at指令;在循环队列的数据处理和at指令发送函数中,使用switch-case语句控制每条at指令的执行顺序。

5.根据权利要求1所述的一种基于超时机制和循环队列的at指令交互算法,其特征在于:在步骤s4中:轮询任务开始后,程序进入循环队列处理函数,检查队列中是否有数据,此时还没有发送at指令,队列中的数据不能和已发送的at指令匹配,正常状态下,此时循环队列中没有数据,若有数据,程序会将队列中的数据全部取出来丢掉。

6.根据权利要求1所述的一种基于超时机制和循环队列的at指令交互算法,其特征在于:在步骤s5中:当循环队列为空后,程序进入at指令发送函数,判断当前能不能发送at指令;at指令发送函数未发送at指令时,标记变量默认为0,当发送...

【专利技术属性】
技术研发人员:冷春田刘景龙林天祝靳环张占
申请(专利权)人:上海宏颢威实业有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1