AT指令按帧分割的方法及装置制造方法及图纸

技术编号:21691321 阅读:28 留言:0更新日期:2019-07-24 16:09
本发明专利技术公开了AT指令按帧分割的方法及装置,分割AT指令集的回应帧,使每一回应帧的代码进入N种状态中的一种;N为正整数。优选的,N可以为6,此时回应帧的代码可能进入的状态有6种。这6种状态可以包括:初始状态、预处理状态1、预处理状态2、帧内容收集状态、帧内容收集完成状态、帧收集成功状态。本发明专利技术通过对AT指令集的帧结构进行抽象分析,利用状态机对回应帧的代码进行状态切换,可以在接收数据时的同时划分接收到的不同帧,并将分割后的数据帧作为一个整体提供给协议解析层进行协议解析,这样就有效屏蔽了不符合帧结构的数据,避免其从数据链路层传递到协议解析层,降低了CPU的占用率,提升了代码的执行效率。

Method and Device of AT Instruction Segmentation by Frame

【技术实现步骤摘要】
AT指令按帧分割的方法及装置
本专利技术涉及通讯协议的
,尤其涉及AT指令按帧分割的方法及装置。
技术介绍
AT指令集是一种通讯协议,主机通过特定的通讯方式(RS232\UART\SPI\EathNet)将描述某种命令/参数的明码信息用“帧”的方式发送到从机,从机做AT指令集,进行解析和响应。现有技术的从机无法屏蔽AT指令集中的无效数据,导致不符合帧结构的数据从数据链路层传递到协议解析层,造成CPU的占用率高,代码的执行效率低。
技术实现思路
为了克服现有技术的不足,本专利技术的目的在于提供AT指令按帧分割的方法及装置,旨在解决现有技术的从机无法屏蔽AT指令集中的无效数据,导致不符合帧结构的数据从数据链路层传递到协议解析层,造成CPU的占用率高,代码的执行效率低的问题。本专利技术的目的采用以下技术方案实现:一种AT指令按帧分割的方法,包括:分割AT指令集的回应帧,使每一回应帧的代码进入N种状态中的一种;N为正整数。在上述实施例的基础上,优选的,N=6。在上述实施例的基础上,优选的,N种状态包括:初始状态、预处理状态1、预处理状态2、帧内容收集状态、帧内容收集完成状态、帧收集成功状态。在上述实施例的基础上,优选的,所述方法具体包括:代码在初始状态下接收到\r字符,则进入预处理状态1;代码在预处理状态1下接收到\n字符,则进入预处理状态2;代码在预处理状态2下接收到other字符,则进入帧内容收集状态;所述other字符包括不属于\r、\n字符的其他ASCII码字符;代码在帧内容收集状态下接收到\n字符或者other字符,则维持帧内容收集状态;代码在帧内容收集状态下接收到\r字符,则进入帧内容收集完成状态;代码在帧内容收集完成状态下接收到\n字符,则进入帧收集成功状态;代码在帧收集成功状态下回调帧解析函数后,自动进入到预处理状态2,等待接收<STATUS>字符或者AT指令集的下一回应帧。在上述实施例的基础上,优选的,所述方法还包括:代码在初始状态下接收到\n字符或者other字符,则维持初始状态;代码在预处理状态1下接收到\r字符,则维持预处理状态1;代码在预处理状态1下接收到other字符,则进入初始状态;代码在预处理状态2下接收到\r字符,则进入预处理状态1;代码在预处理状态2下接收到\n字符,则进入初始状态;代码在帧内容收集状态下接收到\n字符,则进入初始状态;代码在帧内容收集完成状态下接收到\r字符,则进入预处理状态1;代码在帧内容收集完成状态下接收到other字符,则进入初始状态。一种AT指令按帧分割的装置,所述装置用于:分割AT指令集的回应帧,使每一回应帧的代码进入N种状态中的一种;N为正整数。在上述实施例的基础上,优选的,N=6。在上述实施例的基础上,优选的,N种状态包括:初始状态、预处理状态1、预处理状态2、帧内容收集状态、帧内容收集完成状态、帧收集成功状态。在上述实施例的基础上,优选的,所述装置用于执行:代码在初始状态下接收到\r字符,则进入预处理状态1;代码在预处理状态1下接收到\n字符,则进入预处理状态2;代码在预处理状态2下接收到other字符,则进入帧内容收集状态;所述other字符包括不属于\r、\n字符的其他ASCII码字符;代码在帧内容收集状态下接收到\n字符或者other字符,则维持帧内容收集状态;代码在帧内容收集状态下接收到\r字符,则进入帧内容收集完成状态;代码在帧内容收集完成状态下接收到\n字符,则进入帧收集成功状态;代码在帧收集成功状态下回调帧解析函数后,自动进入到预处理状态2,等待接收<STATUS>字符或者AT指令集的下一回应帧。在上述实施例的基础上,优选的,所述装置还用于执行:代码在初始状态下接收到\n字符或者other字符,则维持初始状态;代码在预处理状态1下接收到\r字符,则维持预处理状态1;代码在预处理状态1下接收到other字符,则进入初始状态;代码在预处理状态2下接收到\r字符,则进入预处理状态1;代码在预处理状态2下接收到\n字符,则进入初始状态;代码在帧内容收集状态下接收到\n字符,则进入初始状态;代码在帧内容收集完成状态下接收到\r字符,则进入预处理状态1;代码在帧内容收集完成状态下接收到other字符,则进入初始状态。相比现有技术,本专利技术的有益效果在于:本专利技术公开了AT指令按帧分割的方法及装置,通过对AT指令集的帧结构进行抽象分析,利用状态机对回应帧的代码进行状态切换,可以在接收数据时的同时划分接收到的不同帧,并将分割后的数据帧作为一个整体提供给协议解析层进行协议解析,这样就有效屏蔽了不符合帧结构的数据,避免其从数据链路层传递到协议解析层,降低了CPU的占用率,提升了代码的执行效率。附图说明下面结合附图和实施例对本专利技术进一步说明。图1示出了本专利技术实施例提供的一种AT指令按帧分割的方法的流程示意图。具体实施方式下面,结合附图以及具体实施方式,对本专利技术做进一步描述,需要说明的是,在不相冲突的前提下,以下描述的各实施例之间或各技术特征之间可以任意组合形成新的实施例。AT指令集的“帧”结构根据不同定义者有不同的定义,但大致用法基本相同。本专利技术中,AT指令集的“帧”结构使用的是如下格式:1.命令格式AT+<str>\ra)AT+:AT指令前缀;b)<str>:指令、参数字符串,可以是空和可显示字符(ASCII码:0x20~0x7f),但不会是AT+字符串;c)\r:回车结束符,ASCII码:0x0d;2.回应格式\r\n<str>\r\n[<STATUS>\r\n]a)\r:回车结束符,ASCII码:0x0d;b)\n:换行符,ASCII码:0x0a;c)<str>:对应命令格式的指令、参数字符串,不能有\r和\n字符;d)<STATUS>:指令执行状态,不能有\r和\n字符,但可以不存在;当不存在时后续的\r\n也不存在。具体实施例一本专利技术实施例提供了一种AT指令按帧分割的方法,包括:分割AT指令集的回应帧,使每一回应帧的代码进入N种状态中的一种;N为正整数。本专利技术实施例对N不做限定,N可以为6。此时回应帧的代码可能进入的状态有6种。这6种状态可以包括:初始状态、预处理状态1、预处理状态2、帧内容收集状态、帧内容收集完成状态、帧收集成功状态。如图1所示,对于上述6种状态,本专利技术在分割回应帧时的做法,可以具体包括以下处理:代码在初始状态下接收到\r字符,则进入预处理状态1;代码在预处理状态1下接收到\n字符,则进入预处理状态2;代码在预处理状态2下接收到other字符,则进入帧内容收集状态;所述other字符包括不属于\r、\n字符的其他ASCII码字符;代码在帧内容收集状态下接收到\n字符或者other字符,则维持帧内容收集状态;代码在帧内容收集状态下接收到\r字符,则进入帧内容收集完成状态;代码在帧内容收集完成状态下接收到\n字符,则进入帧收集成功状态;代码在帧收集成功状态下回调帧解析函数后,自动进入到预处理状态2,等待接收<STATUS>字符或者AT指令集的下一回应帧。如图1所示,所述方法还可以包括:代码在初始状态下接收到\n字符或者本文档来自技高网...

【技术保护点】
1.一种AT指令按帧分割的方法,其特征在于,包括:分割AT指令集的回应帧,使每一回应帧的代码进入N种状态中的一种;N为正整数。

【技术特征摘要】
1.一种AT指令按帧分割的方法,其特征在于,包括:分割AT指令集的回应帧,使每一回应帧的代码进入N种状态中的一种;N为正整数。2.根据权利要求1所述的AT指令按帧分割的方法,其特征在于,N=6。3.根据权利要求2所述的AT指令按帧分割的方法,其特征在于,N种状态包括:初始状态、预处理状态1、预处理状态2、帧内容收集状态、帧内容收集完成状态、帧收集成功状态。4.根据权利要求3所述的AT指令按帧分割的方法,其特征在于,所述方法具体包括:代码在初始状态下接收到\r字符,则进入预处理状态1;代码在预处理状态1下接收到\n字符,则进入预处理状态2;代码在预处理状态2下接收到other字符,则进入帧内容收集状态;所述other字符包括不属于\r、\n字符的其他ASCII码字符;代码在帧内容收集状态下接收到\n字符或者other字符,则维持帧内容收集状态;代码在帧内容收集状态下接收到\r字符,则进入帧内容收集完成状态;代码在帧内容收集完成状态下接收到\n字符,则进入帧收集成功状态;代码在帧收集成功状态下回调帧解析函数后,自动进入到预处理状态2,等待接收<STATUS>字符或者AT指令集的下一回应帧。5.根据权利要求4所述的AT指令按帧分割的方法,其特征在于,所述方法还包括:代码在初始状态下接收到\n字符或者other字符,则维持初始状态;代码在预处理状态1下接收到\r字符,则维持预处理状态1;代码在预处理状态1下接收到other字符,则进入初始状态;代码在预处理状态2下接收到\r字符,则进入预处理状态1;代码在预处理状态2下接收到\n字符,则进入初始状态;代码在帧内容收集状态下接收到\n字符,则进入初始状态;代码在帧内容收集完成状态下接收到\r字符,则进入预处理状态1;代码在帧内容收集完成状态下接收到other字符,则进入初始状态。6.一...

【专利技术属性】
技术研发人员:李滨陈国亮
申请(专利权)人:上海数创医疗科技有限公司
类型:发明
国别省市:上海,31

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

1