一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于实时操作系统的AT指令协议栈的通信方法及系统与流程

2022-03-19 14:04:52 来源:中国专利 TAG:

基于实时操作系统的at指令协议栈的通信方法及系统
技术领域
1.本发明涉及通信领域,尤其涉及一种基于实时操作系统的at指令协议栈的通信方法、系统、电子设备及存储介质。


背景技术:

2.随着物联网的兴起和电子产品的轻量化趋势;越来越多的终端产品采用嵌入式设备以实现如空中下载、紧急呼叫、远程组网等功能;又由于实时操作系统(real time operating system,rtos)能够实时接收并处理外部数据,在规定时间内用处理结果响应用户并控制任务协调运行,故大多数嵌入式设备都采用了实时操作系统,从而应用于对高精度计时、多级中断和实时调度有要求的业务应用。实时操作系统的任务调度、任务管理等功能对于需要即时响应的业务应用具有特殊的优势。
3.由于嵌入式设备通常需要借助独立的通信模块实现与互联网通信,而嵌入式设备在接收通信模块发送的下行数据时,往往会因为单位时间数据量较大而造成丢包。同时,由于嵌入式设备内存容量较小,导致对同样的应用,在嵌入式设备上实现相比内存足够的普通设备而言具有一定困难。


技术实现要素:

4.本发明要解决的技术问题是为了克服现有技术中嵌入式设备在进行网络通信时容易丢失数据的缺陷,提供一种基于实时操作系统的at(attention,通信)指令协议栈的通信方法及系统。
5.本发明是通过下述技术方案来解决上述技术问题:
6.本发明提供一种基于实时操作系统的at指令协议栈的通信方法,所述通信方法应用于嵌入式设备中,所述嵌入式设备包括一通信模块;
7.所述通信方法包括以下步骤:
8.创建若干任务和工作队列,将各所述任务发出的上行需求数据加入所述工作队列;
9.将所述上行需求数据封装为上行at指令集合,所述上行at指令集合通过通信模块向外部发送;
10.通过通信模块接收下行应答数据,并将所述下行应答数据传送至环形缓冲区进行存储。
11.较佳地,所述通过通信模块接收下行应答数据,并将所述下行应答数据传送至环形缓冲区进行存储的步骤之后还包括:
12.对所述下行应答数据按照at指令的格式进行解析以获得结果at指令集合,并将所述结果at指令集合中的at指令分别发送至对应的任务。
13.较佳地,通过动态申请内存实现将所述上行需求数据封装为上行at指令集合的步骤。
14.较佳地,所述通信方法还包括:监听内存,当内存到达阈值时清空所述工作队列中的数据,并向所有所述任务发送警告信息。
15.本发明还提供一种基于实时操作系统的at指令协议栈的通信系统,所述通信系统应用于嵌入式设备中,所述嵌入式设备包括一通信模块;
16.所述通信系统包括:
17.系统调度模块,用于创建若干任务和工作队列,将各所述任务发出的上行需求数据加入所述工作队列;
18.数据发送模块,用于将所述上行需求数据封装为上行at指令集合,所述上行at指令集合通过通信模块向外部发送;
19.数据接收模块,用于通过通信模块接收下行应答数据,并将所述下行应答数据传送至环形缓冲区进行存储。
20.较佳地,所述通信系统还包括数据解析模块,用于对所述下行应答数据按照at指令的格式进行解析以获得结果at指令集合,并将所述结果at指令集合中的at指令分别发送至对应的任务。
21.较佳地,所述数据发送模块通过动态申请内存将所述上行需求数据封装为上行at指令集合。
22.较佳地,所述通信系统还包括:监听内存模块,用于监听内存,当内存到达阈值时清空所述工作队列中的数据,并向所有所述任务发送警告信息。
23.本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的基于实时操作系统的at指令协议栈的通信方法。
24.本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的基于实时操作系统的at指令协议栈的通信方法的步骤。
25.本发明的积极进步效果在于:与现有技术相比,本发明提供的基于实时操作系统的at指令协议栈的通信方法通过创建任务和工作队列、将上行需求数据封装为上行at指令集合并通过通信模块向外部发送、通过通信模块接收下行应答数据并传送至环形缓冲区进行存储,使采用实时操作系统的嵌入式设备在接收数据量较大时克服了容易丢失数据的缺陷,从而能够稳定、集约、高效地进行网络通信,并在物联网等行业应用中更好地发挥作用。
附图说明
26.图1为本发明实施例1的基于实时操作系统的at指令协议栈的通信方法的流程图。
27.图2为本发明实施例2的基于实时操作系统的at指令协议栈的通信系统的模块示意图。
28.图3为本发明实施例3的电子设备的结构框图。
具体实施方式
29.下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。
30.实施例1
31.如图1所示,本实施例具体提供一种基于实时操作系统的at指令协议栈的通信方法,所述通信方法应用于运行实时操作系统的嵌入式终端设备,该嵌入式终端设备包括一通信模块,通信模块负责和外部进行通信交互。本实施例以搭载rtos的一车载应急通信系统为例,阐述利用at指令协议栈实现所述通信方法的具体过程,该车载应急通信系统中包括了一嵌入式的车载应急通信终端设备,该终端设备里包括一通信模块,此外,还包括卫星定位设备和碰撞传感器。其中,嵌入式终端设备的处理器和通讯模块的通信物理接口可以是usb接口、串口、i2c接口、spi接口等,通信模块可以是simcom的sim868 2g模块、quectel的mc20模块等,具有拨号、上网、发送短信等功能。
32.该基于rtos的at指令协议栈的通信方法包括以下步骤:
33.s1.创建若干任务和工作队列,将各所述任务发出的上行需求数据加入所述工作队列;
34.具体地,实时操作系统的核心是任务管理,以本实施例中的rtos为例,每个任务都有独立的运行环境且任一时间点只有一个任务运行,需要确保最高优先级的任务优先获取处理器的使用权。
35.工作队列是rtos主要的任务间通讯方式,用于在任务与任务间、中断和任务间传送信息,通常采用fifo(first input first output,先进先出)的原则进行排列。
36.将各个任务中需要向外部发送的上行需求数据加入工作队列。
37.例如,当车辆发生碰撞后,需要和紧急呼叫中心进行及时联系。当碰撞传感器感应到碰撞后,向嵌入式终端设备(内含主控芯片)发送碰撞中断信号,触发系统中具有最高优先级的救援任务,并将救援任务中需要向外部发送的上行需求数据加入工作队列。
38.s2.将所述上行需求数据封装为上行at指令集合,所述上行at指令集合通过通信模块向外部发送;
39.具体地,由于通信模块通常只能识别、读取at指令,因此,需要将上行需求数据封装为上行at指令集合后通过通信模块向外部发送。
40.例如,在场景一,即普通状态下的气象信息获取任务,在嵌入式终端设备收集当前坐标经纬度数据并加入工作队列后,封装成上行at指令数据,按照先进先出的数据结构发送给通信模块,并由通信模块向外部发送给紧急呼叫中心。呼叫中心收到该上行需求数据后,根据经纬度确定位置并将最新的气象信息发送给车载终端设备。
41.又如,在场景二,例如车辆发生碰撞的情景下,需要向紧急呼叫中心拨打电话,此时车主已无法动弹,需要自动开启通话并获悉当前所在位置的信号强度,则上述特定的请求作为一救援任务,同样在加入工作队列后,封装成上行at指令数据,按照先进先出的数据结构发送给通信模块上报到紧急呼叫中心。
42.s3.通过通信模块接收下行应答数据,并将所述下行应答数据传送至环形缓冲区进行存储。
43.具体地,通信模块接收到通信模块发回的下行应答数据,如信号强度数据和来电数据后,采用环形缓冲区进行接收、存储。
44.环形缓冲区又称圆形队列,是将顺序的一段内存经过处理形成环形首尾相连,即一个包括两个指针的数组,指向队列头的指针是缓冲区可读的数据,指向列队尾的指针是缓冲区可写的数据,通过移动两个指针即可对缓冲区的数据进行读写操作,直到缓冲区已
满将数据处理完后释放掉数据再进行新数据的存储。环形缓冲区的读用户仅仅会影响读指针,而写用户仅仅会影响写指针,如果有多个读写用户访问环形缓冲区,那么必须添加互斥保护机制来确保多个用户互斥访问环形缓冲区。例如,呼叫中心将发送车辆当前的信号强度数据和来电数据至通信模块,通过环形缓冲区的数据结构进行接收存储,稳定不易丢失。
45.本实施例中,步骤s3之后还包括:
46.对下行应答数据按照at指令的格式进行解析以获得结果at指令集合,并将结果at指令集合中的at指令分别发送至对应的任务。
47.具体地,如上述场景中当环形缓冲区存储紧急呼叫中心发来的信号强度数据或来电数据后,按照at指令的格式来解析,再将解析得到的数据分别发送个对应的任务,例如场景二的救援任务。发送的形式表现为多个封装的实现特定功能的at指令,例如下载ota包、socket发送数据、人机接口等。
48.本实施例中,通过动态申请内存实现将所述上行需求数据封装为上行at指令集合的步骤。
49.本实施例中,通信方法还包括监听内存,当内存到达阈值时清空所述工作队列中的数据,并向所有所述任务发送警告信息。
50.具体地,由于一直不停的将数据发送至工作队列,而服务器端取队列数据的速度低于入队列数据的速度,会导致系统内存触发预设的阈值,因此为了防止内存被过度占用,需要通过监听内存,当内存到达阈值时清空所述工作队列中的数据,并向所有所述任务发送警告信息。
51.实施例2
52.如图2所示,本实施例具体提供一种基于实时操作系统的at指令协议栈的通信系统,所述通信系统应用于运行实时操作系统的嵌入式终端设备,该嵌入式终端设备包括一通信模块,通信模块负责和外部进行通信交互。本实施例以搭载rtos的一车载应急通信系统为例,阐述利用该基于实时操作系统的at指令协议栈的通信系统。该车载应急通信系统中包括了一嵌入式的车载应急通信终端设备,该终端设备里包括一通信模块。其中,嵌入式终端设备的处理器和通讯模块的通信物理接口可以是usb接口、串口、i2c接口、spi接口等,通信模块可以是simcom的sim868 2g模块、quectel的mc20模块等,具有拨号、上网、发送短信等功能。
53.该基于rtos的at指令协议栈的通信系统具体包括:
54.系统调度模块11,用于创建若干任务和工作队列,将各所述任务发出的上行需求数据加入所述工作队列;
55.具体地,实时操作系统的核心是任务管理,以本实施例中的rtos为例,每个任务都有独立的运行环境且任一时间点只有一个任务运行,需要确保最高优先级的任务优先获取处理器的使用权。
56.工作队列是rtos主要的任务间通讯方式,用于在任务与任务间、中断和任务间传送信息,通常采用fifo(first input first output,先进先出)的原则进行排列。
57.将各个任务中需要向外部发送的上行需求数据加入工作队列。
58.例如,当车辆发生碰撞后,需要和紧急呼叫中心进行及时联系。当碰撞传感器感应到碰撞后,向嵌入式终端设备(内含主控芯片)发送碰撞中断信号,触发系统中具有最高优
先级的救援任务,并将救援任务中需要向外部发送的上行需求数据加入工作队列。
59.数据发送模块12,用于将所述上行需求数据封装为上行at指令集合,所述上行at指令集合通过通信模块向外部发送;
60.具体地,由于通信模块通常只能识别、读取at指令,因此,需要将上行需求数据封装为上行at指令集合后通过通信模块向外部发送。
61.例如,在场景一,即普通状态下的气象信息获取任务,在嵌入式终端设备收集当前坐标经纬度数据并加入工作队列后,封装成上行at指令数据,由数据发送模块12按照先进先出的数据结构发送给通信模块,并由通信模块向外部发送给紧急呼叫中心。呼叫中心收到该上行需求数据后,根据经纬度确定位置并将最新的气象信息发送给车载终端设备。
62.又如,在场景二,例如车辆发生碰撞的情景下,需要向紧急呼叫中心拨打电话,此时车主已无法动弹,需要自动开启通话并获悉当前所在位置的信号强度,则上述特定的请求作为一救援任务,同样在加入工作队列后,由数据发送模块12封装成上行at指令数据,按照先进先出的数据结构发送给通信模块上报到紧急呼叫中心。
63.数据接收模块13,用于通过通信模块接收下行应答数据,并将所述下行应答数据传送至环形缓冲区进行存储。
64.具体地,通信模块接收13到通信模块发回的下行应答数据,如信号强度数据和来电数据后,采用环形缓冲区进行接收、存储。
65.环形缓冲区又称圆形队列,是将顺序的一段内存经过处理形成环形首尾相连,即一个包括两个指针的数组,指向队列头的指针是缓冲区可读的数据,指向列队尾的指针是缓冲区可写的数据,通过移动两个指针即可对缓冲区的数据进行读写操作,直到缓冲区已满将数据处理完后释放掉数据再进行新数据的存储。环形缓冲区的读用户仅仅会影响读指针,而写用户仅仅会影响写指针,如果有多个读写用户访问环形缓冲区,那么必须添加互斥保护机制来确保多个用户互斥访问环形缓冲区。例如,呼叫中心将发送车辆当前的信号强度数据和来电数据至通信模块,通过环形缓冲区的数据结构进行接收存储,稳定不易丢失。
66.本实施例中,还包括一数据解析模块14,用于对所述下行应答数据按照at指令的格式进行解析以获得结果at指令集合,并将所述结果at指令集合中的at指令分别发送至对应的任务。
67.具体地,如上述场景中,当收到从数据接收模块发来的信号强度数据或来电数据后,数据解析模块14按照at指令的格式来解析,再将解析得到的at结果指令集合中的at指令分别发送个对应的任务,例如场景二的救援任务。发送的形式表现为多个封装的实现特定功能的at指令,例如下载ota包、socket发送数据、人机接口等。
68.本实施例中,数据发送模块12通过动态申请内存实现将上行需求数据封装为上行at指令集合。
69.本实施例中,还包括监听内存模块15用于监听内存,当内存到达阈值时清空所述工作队列中的数据,并向所有所述任务发送警告信息。
70.具体地,由于一直不停的将数据发送至工作队列,而服务器端取队列数据的速度低于入队列数据的速度,会导致系统内存触发预设的阈值,因此为了防止内存被过度占用,设置监听内存模块15对内存进行监听,当内存到达阈值时清空所述工作队列中的数据,并向所有所述任务发送警告信息。
71.实施例3
72.图3为本发明实施例3提供的一种电子设备的结构示意图。电子设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现实施例1中的基于实时操作系统的at指令协议栈的通信方法。图3显示的电子设备30仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
73.如图3所示,电子设备30可以以通用计算设备的形式表现,例如其可以为服务器设备。电子设备30的组件可以包括但不限于:上述至少一个处理器31、上述至少一个存储器32、连接不同系统组件(包括存储器32和处理器31)的总线33。
74.总线33包括数据总线、地址总线和控制总线。
75.存储器32可以包括易失性存储器,例如随机存取存储器(ram)321和/或高速缓存存储器322,还可以进一步包括只读存储器(rom)323。
76.存储器32还可以包括具有一组(至少一个)程序模块324的程序/实用工具325,这样的程序模块324包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
77.处理器31通过运行存储在存储器32中的计算机程序,从而执行各种功能应用以及数据处理,例如本发明实施例1中的基于实时操作系统的at指令协议栈的通信方法。
78.电子设备30也可以与一个或多个外部设备34(例如键盘、指向设备等)通信。这种通信可以通过输入/输出(i/o)接口35进行。并且,模型生成的设备30还可以通过网络适配器36与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图3所示,网络适配器36通过总线33与模型生成的设备30的其它模块通信。应当明白,尽管图中未示出,可以结合模型生成的设备30使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、raid(磁盘阵列)系统、磁带驱动器以及数据备份存储系统等。
79.应当注意,尽管在上文详细描述中提及了电子设备的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
80.实施例4
81.本实施例提供了一种计算机可读存储介质,其上存储有计算机程序,程序被处理器执行时实现实施例1中的基于实时操作系统的at指令协议栈的通信方法中的步骤。
82.其中,可读存储介质可以采用的更具体可以包括但不限于:便携式盘、硬盘、随机存取存储器、只读存储器、可擦拭可编程只读存储器、光存储器件、磁存储器件或上述的任意合适的组合。
83.在可能的实施方式中,本发明还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在终端设备上运行时,程序代码用于使终端设备执行实现实施例1中的基于实时操作系统的at指令协议栈的通信方法中的步骤。
84.其中,可以以一种或多种程序设计语言的任意组合来编写用于执行本发明的程序代码,程序代码可以完全地在用户设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户设备上部分在远程设备上执行或完全在远程设备上执行。
85.虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献