CN107172139A - 一种无线协议栈及其实现方法 - Google Patents
一种无线协议栈及其实现方法 Download PDFInfo
- Publication number
- CN107172139A CN107172139A CN201710326634.XA CN201710326634A CN107172139A CN 107172139 A CN107172139 A CN 107172139A CN 201710326634 A CN201710326634 A CN 201710326634A CN 107172139 A CN107172139 A CN 107172139A
- Authority
- CN
- China
- Prior art keywords
- module
- protocol stack
- message
- task
- task data
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W80/00—Wireless network protocols or protocol adaptations to wireless operation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Communication Control (AREA)
Abstract
本发明实施例提供了一种无线协议栈及其实现方法,其中,无线协议栈包括:应用层协议栈、核心协议栈和物理层;核心协议栈包括主机协议栈和控制器,控制器包括链路层,链路层包括以下功能模块:管理模块、控制模块、公共模块、调试模块和驱动模块;主机协议栈和控制器之间通过主机控制器接口连接;所述方法包括:获取无线协议栈的任务数据;根据任务数据中的标识信息确定任务数据的执行函数或者执行模块;采用确定的执行函数或者执行模块对任务数据进行处理。本发明实施例通过对链路层进行有效合理的模块划分,基于自定义的交互接口进行软件功能模块间的信息交互,针对任务数据的调度策略的实现不依赖于特定的操作系统,可以移植到任意操作系统中。
Description
技术领域
本发明实施例涉及通信技术领域,尤其涉及一种无线协议栈及其实现方法。
背景技术
随着设计制造及集成电路产业的发展,通过IP核(Intellectual Property Core)集成方式来进行复杂通信系统设计和实现,极大地缩短了产品开发周期,加速了产品面世进程。BLE无线通信技术是目前发展较快,使用较为普遍的一种短距离无线通信技术,使用IP核集成方式开发BLE无线设备能够很大程度上加速产品上市,目前BLE协议版本已经更新到了5.0版本,该协议版本的发布很大程度上促进了BLE设备在物联网领域的应用,如何将符合BLE5.0协议的通信IP核快速集成到系统从而实现相关功能,是整个通信系统开发的关键环节。
复杂无线通信系统的实现包括了硬件的实现和软件的实现,软件通常实现了对硬件的管理和调度及大部分上层通信协议的实现,通过软硬件协同实现整个通信系统的功能。硬件往往通过标准的系统总线接口实现集成,但是软件的实现业界并没有也无法通过定义标准的实现接口来完成功能的实现和系统的集成。集成IP核的目标系统往往是运行嵌入式操作系统来完成这个系统的复杂功能,目前常用的嵌入式操作系统有Nucleus,uCoS,FreeRTOS,Windows CE等,分别提供了丰富的API给用户来使用,完成内存管理、任务调度及任务间通信功能。
现有的无线协议栈的实现需要完成复杂调度和处理过程,但是如果基于某个特定的嵌入式操作系统实现,将会导致无法在其他嵌入式平台进行移植,限制协议栈使用范围,降低了IP核的授权范围,不利于系统的推广和应用。
发明内容
本发明实施例提供了一种基于无线协议栈及其实现方法,以解决现有的无线协议栈依赖于特定的操作系统,无法在其他操作系统上运行的问题。
根据本发明实施例的一方面,提供了一种无线协议栈的实现方法,所述无线协议栈包括:应用层协议栈、核心协议栈和物理层;其中,所述核心协议栈包括主机协议栈和控制器,所述控制器包括链路层,所述链路层包括以下功能模块:管理模块、控制模块、公共模块、调试模块和驱动模块;所述主机协议栈和所述控制器之间通过主机控制器接口连接;所述方法包括:获取所述无线协议栈的任务数据;根据所述任务数据中的标识信息确定所述任务数据的执行函数或者执行模块;采用所述确定的执行函数或者执行模块对所述任务数据进行处理。
根据本发明实施例的另一方面,还提供了一种无线协议栈,包括:应用层协议栈、核心协议栈和物理层;其中,所述核心协议栈包括主机协议栈和控制器,所述控制器包括链路层,所述链路层包括以下功能模块:管理模块、控制模块、公共模块、调试模块和驱动模块;所述主机协议栈和所述控制器之间通过主机控制器接口连接;所述无线协议栈还包括:核心调度模块,用于获取所述无线协议栈的任务数据,根据所述任务数据中的标识信息确定所述任务数据的执行函数或者执行模块,采用所述确定的执行函数或者执行模块对所述任务数据进行处理。
根据本发明实施例提供的一种无线协议栈及其实现方法,无线协议栈主要包括三大部分,分别为:应用层协议栈、核心协议栈和物理层;其中,核心协议栈包括主机协议栈和控制器,控制器包括链路层,链路层按照功能可以划分为以下模块:管理模块、控制模块、公共模块、调试模块和驱动模块。无线协议栈的完整功能实现是通过在运行过程中模块间的相互协作来完成的,模块间信息交互协作是保证无线协议栈有效稳定运行的基础。主机协议栈和控制器之间通过主机控制器接口连接,控制器和和物理层之间采用基于链表的软硬件接口完成数据及信息交互。
本发明实施例的无线协议栈实现方法中,链路层负责实现软硬件接口管理、协议核心帧成帧、链路状态管理和维护、硬件设备管理、硬件调度等功能,同时提供从主机协议栈到底层硬件设备的控制接口及数据收发通路。本发明实施例的无线协议栈实现方法包括:获取无线协议栈的任务数据,任务数据用于指示无线协议栈的各项功能;根据任务数据中的标识信息确定任务数据的执行函数或者执行模块;采用确定的执行函数或者执行模块对任务数据进行处理。本发明实施例通过对链路层进行有效合理的模块划分,基于自定义的交互接口进行软件功能模块间的信息交互,针对任务数据的调度策略的实现不依赖于特定的操作系统,可以移植到任意操作系统中。
附图说明
图1是根据本发明实施例一的BLE5.0协议栈的整体架构和层次划分示意图;
图2是根据本发明实施例一的一种无线协议栈的实现方法的步骤流程图;
图3是根据本发明实施例二的BLE5.0协议栈的链路层的结构示意图;
图4是根据本发明实施例二的BLE5.0协议栈的消息结构示意图;
图5是根据本发明实施例二的BLE5.0协议栈的消息的传送及处理流程示意图;
图6是根据本发明实施例二的一种BLE5.0协议栈的实现方法的步骤流程图;
图7是根据本发明实施例二的一种BLE5.0协议栈的任务调度的流程示意图;
图8是根据本发明实施例三的一种无线协议栈的结构框图。
具体实施方式
下面结合附图(若干附图中相同的标号表示相同的元素)和实施例,对本发明实施例的具体实施方式作进一步详细说明。以下实施例用于说明本发明,但不用来限制本发明的范围。
本领域技术人员可以理解,本发明实施例中的“第一”、“第二”等术语仅用于区别不同步骤、设备或模块等,既不代表任何特定技术含义,也不表示它们之间的必然逻辑顺序。
实施例一
本实施例中,以BLE5.0协议栈为例进行说明,其他无线协议栈的实现可以参照本实施例中的说明。本实施例中的BLE5.0协议栈包括了主机(Host)和控制器(Controller),Host和Controller的之间通过主机控制器接口(Host Controller Interface,HCI)实现信息交互,Host和Controller既可以集成在同一个处理器中,也可以分别运行在不同的处理器上。BLE5.0协议栈实现过程中对功能进行了模块划分,模块之间有效协同工作实现了整个协议功能,模块间高效的交互方式是保证BLE5.0协议栈有效运行的基础,如何在不依赖任何操作系统的基础上实现模块间的信息交互是整个BLE5.0协议栈实现过程中需要重点考虑的地方。
本实施例中的BLE5.0协议栈主要由三大部分组成,分别为:应用层协议栈、核心协议栈和物理层(Physical Layer);其中,核心协议栈包括主机协议栈(LE Host Stack)和控制器。图1为BLE5.0协议栈的整体架构和层次划分示意图,其中,由下向上分别有物理层、控制器、HCI、主机协议栈以及应用协议栈(Profile)共5五个层次。物理层包括基带和射频。控制器包括调试模块和链路层。HCI包括主机控制器接口(主机侧)和主机控制器接口(控制器侧)。主机协议栈包括安全管理协议、属性协议和逻辑链路控制和适配层协议。应用协议栈包括通用访问规范,通用访问规范包括应用规范。主机协议栈和控制器之间采用协议规定的HCI接口协议进行通信,控制器和物理层之间采用基于链表的软硬件接口完成数据及信息交互。各层依据功能需求进行功能模块划分,模块间采用消息传递机制完成信息传递,提高系统工作效率。
本实施中的控制器包括链路层(Link Layer),链路层通过HCI标准接口实现与主机通信,通过共享内存(Share Memory)实现与硬件的交互,链路层包括以下模块:管理模块、控制模块、公共模块、调试模块和驱动模块。
图2示出了根据本发明实施例一的一种无线协议栈的实现方法的步骤流程图。
本实施例提供的无线协议栈的实现方法包括如下步骤。
步骤S200、获取BLE5.0协议栈的任务数据。
本实施例依据协议需求及硬件实现规范,将BLE5.0协议栈需要实现的每个功能利用单独的任务(Task)表示。本步骤S200中的任务数据指示用于实现某项功能的数据。
步骤S202、根据任务数据中的标识信息确定任务数据的执行函数或者执行模块。
本实施例的BLE5.0协议栈的每个任务对应一个唯一标识,根据任务数据中的标识信息可以确定该任务数据属于实现哪个功能的数据。而且,不同的任务需要调用不同的执行函数或者执行模块进行处理,每个任务与处理该任务的执行函数或者执行模块相互关联。因此,在获取到任务数据之后,需要根据任务数据中的标识信息确定处理该任务数据的执行函数或者执行模块。
步骤S204、采用确定的执行函数或者执行模块对任务数据进行处理。
在步骤S202确定得到执行函数或者执行模块之后,采用确定得到的执行函数或者执行模块对任务数据进行处理,实现该任务数据指示的待实现的某项功能。
根据本实施例提供的一种无线协议栈实现方法,无线协议栈主要包括三大部分,分别为:应用层协议栈、核心协议栈和物理层;其中,核心协议栈包括主机协议栈和控制器,控制器包括链路层,链路层按照功能可以划分为以下模块:管理模块、控制模块、公共模块、调试模块和驱动模块。无线协议栈的完整功能实现是通过在运行过程中模块间的相互协作来完成的,模块间信息交互协作是保证无线协议栈有效稳定运行的基础。主机协议栈和控制器之间通过主机控制器接口连接,控制器和和物理层之间采用基于链表的软硬件接口完成数据及信息交互。
本实施例的无线协议栈实现方法中,链路层负责实现软硬件接口管理、协议核心帧成帧、链路状态管理和维护、硬件设备管理、硬件调度等功能,同时提供从主机协议栈到底层硬件设备的控制接口及数据收发通路。本实施例的无线协议栈实现方法包括:获取无线协议栈的任务数据,任务数据用于指示无线协议栈的各项功能;根据任务数据中的标识信息确定任务数据的执行函数或者执行模块;采用确定的执行函数或者执行模块对任务数据进行处理。本实施例通过对链路层进行有效合理的模块划分,基于自定义的交互接口进行软件功能模块间的信息交互,针对任务数据的调度策略的实现不依赖于特定的操作系统,可以移植到任意操作系统中。
实施例二
本实施例重点在于强调与上述实施例的不同之处,相同之处可以参照上述实施例中的相关说明,在此不再赘述。
本实施例仍然以BLE5.0协议栈为例进行说明。本实施例中的链路层通过主机控制器接口实现与主机通信,通过共享内存(Share Memory)实现与硬件的交互,链路层包括管理模块、控制模块、公共模块、调试模块和驱动模块,如图3所示,图3为链路层的结构示意图。其中,管理模块用于在广播状态、扫描状态、初始化状态等非连接状态下实现对硬件设备的管理和调度,同时完成和主机的事件及命令交互。控制模块实现在连接状态下硬件设备间信息交互及状态信息维护的功能,同时提供数据及控制信息通路。公共模块负责接收来自主机的配置命令,如读取缓冲区(Buffer)大小、复位系统等,以及向主机传递命令执行结果。调试模块负责完成直测模式下系统工作状态管理,同时在开发阶段进行硬件设备的测试和调试。驱动模块是软硬件接口实现模块,通过读写寄存器、中断、共享内存等方式完成数据在软硬件之间的传递,同时控制硬件设备的工作状态,获取状态信息。图3中,实线表示消息传递,虚线表示函数调用。调试模块与主机控制器接口进行命令/事件的消息传递,调试模块与基带进行函数调用,调试函数与管理模块进行消息传递,调试函数与驱动模块进行消息传递和函数调用。驱动模块与基带进行函数调用,驱动模块与管理模块、控制模块和公共模块均进行消息传递和函数调用。管理模块、控制模块和公共模块均与主机控制器接口进行命令/事件的消息传递,其中,控制模块还与主机控制器接口进行数据消息传递。
本实施例中BLE5.0协议栈完整功能的实现是通过在协议栈运行过程中多个模块间的相互协作来完成的,模块间信息交互方式的设计实现是保证协议栈有效稳定运行的基础,为了提高系统运行效率,简化实现过程,本实施例提出了一种基于消息(Message)传递的模块间信息交互接口。
BLE5.0协议中定义了Host和Controller之间交互的命令(Command)及事件(Event)的格式,本实施例在Controller实现时按照功能进行了模块划分,不同的模块负责处理不同的命令或者完成对应的功能。本实施例将协议中的命令和事件进行了重新分类,将链路控制命令(Link Control Command)和基带控制命令(Controller BasebandCommand)、LE控制命令(LE Controller Command)交由不同的功能模块分别处理,具体为:链路控制命令由控制模块负责处理,基带控制命令由公共模块负责处理,LE控制命令由控制模块负责处理。事件的处理由驱动模块处理。每个命令或者事件都分配一个识别编号,每个识别编号关联一个对应的处理函数,每个处理函数包括4个输入参数,分别为身份信息、参数指针、目的身份信息和源身份信息。功能模块在接收到包含识别编号的消息后,通过识别编号查找到对应的处理函数完成相应的处理过程。消息结构如图4所示,其中,消息源识别编号是该消息发送模块的识别编号,用于处理完成消息后由处理函数返回执行结果时使用,便于查找消息源。消息目的识别编号是该消息的目的模块的识别编号,用于查找消息功能模块,消息识别编号是消息自身的编号,用于识别消息及查找处理函数,消息参数长度用于表示消息内容字段包含的字节数目;消息内容字段包含具体的消息内容。消息的收发由写消息传递模块进行处理。消息的传送及处理流程如图5所示。各功能模块按照消息格式生成相对应的消息,通过消息列表传送给写消息传递模块,写消息传递模块通过判断消息目的识别编号将该消息传送到对应的功能模块处理,功能模块完成对于该消息的处理后生成执行完成的消息命令,再次传送给写消息传递模块,写消息传递模块判断消息目的识别编号,将执行结果反馈到对应的功能模块,完成一次完整的消息处理流程。该消息处理机制既适用于对于控制命令的实现,也适用于数据收发通路的实现。
图6示出了根据本发明实施例二的一种BLE5.0协议栈的实现方法的步骤流程图。
本实施例提供的一种BLE5.0协议栈的实现方法包括如下步骤。
步骤S600、获取BLE5.0协议栈的任务数据。
步骤S602、根据任务数据中的标识信息确定任务数据的执行函数或者执行模块。
可选地,本步骤S602可以包括如下步骤。
步骤S6020、对任务数据中的标识信息进行置位。
本实施例中可以是在中断处理函数中对各任务的标识信息进行置位,也可以在软件处理过程中对各任务的标识信息进行置位。
步骤S6022、轮询BLE5.0协议栈的全部任务的标识信息。
本实施例中的BLE5.0协议栈的全部任务可以包括:数据加密处理任务、消息处理任务、超时处理任务、事件处理任务、数据收发处理任务。数据加密处理任务完成对于硬件加密模块的调度及加密完成后状态信息处理,以及和Host侧的交互过程;消息处理任务完成各功能模块间消息的传递及状态信息的处理,依据消息目的识别编号完成对于目标处理函数的检索;超时处理任务完成对于连接超时、控制过程超时等多种超时机制的处理;事件处理任务基于软硬件交互接口完成和硬件模块的信息交互,完成广播事件、连接事件的启动、停止及重新调度等处理过程,完成状态信息处理;数据收发处理任务协同硬件模块完成数据接收及发送,完成状态信息处理及数据上报功能。
步骤S6024、当轮询到置位的标识信息时,查询与置位的标识信息对应的执行函数或者执行模块,将查询到的执行函数或者执行模块确定为任务数据的执行函数或者执行模块。
如当超时中断产生时,超时中断处理函数将超时处理任务标识置位,核心调度模块轮询到超时处理任务标识有效时,调用超时处理函数进行处理。在消息处理过程中,有时候需要将一个功能模块处理完成的消息结果传递到另外一个功能模块进行处理,此时写消息传递模块只需按照模块间交互接口的格式进行消息封装,将消息处理任务标识置位,当核心调度模块轮询到消息处理任务标识有效时,将消息传递给写消息传递模块,完成消息的处理。
步骤S604、采用确定的执行函数或者执行模块对任务数据进行处理。
本实施例依据协议将各任务进行了优先级划分,从数据加密处理任务、消息处理任务、超时处理任务、事件处理任务到数据收发处理任务,任务优先级由低到高,也即数据收发处理任务具有最高的优先级,数据加密处理任务具有最低的优先级。每个任务标识对应一个特定的任务执行函数或者执行模块。核心调度模块依据任务标识决定调用哪个任务执行函数或者执行模块。在协议栈运行过程中,当需要进行相关任务处理时,将对应的任务标识置位,核心调度模块轮询所有任务的标识,当轮询到置位的任务标识时,查询对应的任务执行函数,完成相关任务的处理。如果同时有多个任务标识置位,核心调度模块选择优先级较高的任务处理,完成之后继续选择优先级较低的任务进行处理。如图7所示,图7为任务调度的流程示意图,先判断是否有任务标识置位,若没有任务标识置位,则重新开始,继续判断是否有任务标识置位;若有任务标识置位,则确定需要优先处理的任务,将优先处理的任务标识复位。按照各任务优先级由低到高的顺序执行各任务,若是数据加密处理任务,则调用加密任务处理函数处理任务;若是超时处理任务,则调用超时处理函数处理任务;若是事件处理任务,则调用事件处理函数处理任务;若是数据收发处理任务,则调用数据收发处理函数处理任务;若是消息处理任务,则调用写消息传递模块,依据消息中的目的识别编号查找处理函数,由查找到的处理函数处理任务,如此循环操作。需要说明的是,消息处理任务是将消息转发到写消息传递模块进行处理的,相关具体处理流程见模块间交互接口设计部分的描述。
可选地,本步骤S604可以为:按照任务数据对应的任务的优先级从高到低的顺序,采用对应的执行函数或者执行模块对任务数据进行处理。
根据本实施例提供的一种BLE5.0协议栈实现方法,BLE5.0协议栈主要包括三大部分,分别为:应用层协议栈、核心协议栈和物理层;其中,核心协议栈包括主机协议栈和控制器,控制器包括链路层,链路层按照功能可以划分为以下模块:管理模块、控制模块、公共模块、调试模块和驱动模块。BLE5.0协议栈的完整功能实现是通过在运行过程中模块间的相互协作来完成的,模块间信息交互协作是保证BLE5.0协议栈有效稳定运行的基础。主机协议栈和控制器之间通过主机控制器接口连接,控制器和和物理层之间采用基于链表的软硬件接口完成数据及信息交互。
本实施例的BLE5.0协议栈实现方法中,链路层负责实现软硬件接口管理、协议核心帧成帧、链路状态管理和维护、硬件设备管理、硬件调度等功能,同时提供从主机协议栈到底层硬件设备的控制接口及数据收发通路。本实施例的BLE5.0协议栈实现方法包括:获取BLE5.0协议栈的任务数据,任务数据用于指示BLE5.0协议栈的各项功能;根据任务数据中的标识信息确定任务数据的执行函数或者执行模块;采用确定的执行函数或者执行模块对任务数据进行处理。本实施例通过对链路层进行有效合理的模块划分,基于自定义的交互接口进行软件功能模块间的信息交互,针对任务数据的调度策略的实现不依赖于特定的操作系统,可以移植到任意操作系统中。
本实施例简化了BLE5.0协议栈的移植过程,通过将Controller进行有效合理的功能模块划分,基于自定义功能模块间信息交互接口,采用基于优先级的任务调度策略实现了Controller的任务调度功能,协议栈的结构更加清晰,简化了协议栈开发实现过程,便于维护和后期协议栈升级更新。
本实施例中的BLE5.0协议栈能够方便地移植到不同的操作系统平台下,提高了系统开发速度,扩展了系统应用范围。
本实施例中功能模块间的交互接口提高了功能模块间信息交互的效率,节省了系统资源开销。
实现BLE通信功能的软件架构模式,一种是单芯片模式,Host和Controller集成在一个处理器,协议栈运行在同一个处理器上;另一种是双芯片模式,BLE通信功能的实现需要两个处理器平台的协同完成通信功能,Controller运行在一个处理器,Host运行在另一个处理器,之间通过HCI标准接口实现Host和Controller的交互。
本实施例通过将Controller的实现独立于任何操作系统,在上述软件架构模式的实现过程中只需要进行如下的几部操作即可完成对Host和Controller到不同操作系统的移植:
1、使用目标操作系统函数,将Controller和Host封装成两个不同的Task;
2、为Controller和Host分别分配内存空间,用于Controller和Host信息的交换;
3、使用特定操作系统函数,完成Controller任务和Host任务之间的通信;
4、启动Controller和Host任务实现BLE协议栈的运行。
本实施例极大地简化了BLE5.0协议栈在不同操作系统平台移植的过程,满足了不同操作系统平台下运行BLE5.0协议栈的需求。
本实施例的协议栈实现方法不局限于BLE5.0协议栈,同样可以适用于其他无线协议栈的实现。
实施例三
图8示出了根据本发明实施例三的一种无线协议栈的结构框图。
本实施例提供的一种无线协议栈包括:应用层协议栈80、核心协议栈82和物理层84;其中,核心协议栈82包括主机协议栈820和控制器822,控制器822包括链路层,链路层包括以下功能模块:管理模块、控制模块、公共模块、调试模块和驱动模块;主机协议栈820和控制器822之间通过主机控制器接口821连接;无线协议栈还包括:核心调度模块86,用于获取无线协议栈的任务数据,根据任务数据中的标识信息确定任务数据的执行函数或者执行模块,采用确定的执行函数或者执行模块对任务数据进行处理。
可选地,主机控制器接口821,用于采用链路层中的功能模块处理主机协议栈820和控制器822之间的命令或者事件;其中,每个命令或者事件设置有唯一的识别编号;每个识别编号与一个处理函数相关联。
可选地,无线协议栈还包括:交互接口(未示出),用于采用链路层中的功能模块接收包含命令或者事件的识别信息的消息,消息包括消息源识别编号、消息目的识别编号、消息识别编号、消息参数长度和消息内容,消息内容用于指示命令或者事件,根据消息中的消息识别编号查找与消息识别编号关联的处理函数,根据查找到的处理函数处理消息中的消息内容。
可选地,核心调度模块86,用于对任务数据中的标识信息进行置位,轮询无线协议栈的全部任务的标识信息,全部任务包括:数据加密处理任务、消息处理任务、超时处理任务、事件处理任务、数据收发处理任务,当轮询到置位的标识信息时,查询与置位的标识信息对应的执行函数或者执行模块,将查询到的执行函数或者执行模块确定为任务数据的执行函数或者执行模块。
可选地,核心调度模块86,用于按照任务数据对应的任务的优先级从高到低的顺序,采用对应的执行函数或者执行模块对任务数据进行处理。
本实施例中的无线协议栈可以实现上述方法实施例中的技术效果,在此不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明实施例的范围。
以上实施方式仅用于说明本发明实施例,而并非对本发明实施例的限制,有关技术领域的普通技术人员,在不脱离本发明实施例的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明实施例的范畴,本发明实施例的专利保护范围应由权利要求限定。
Claims (10)
1.一种无线协议栈的实现方法,其特征在于,所述无线协议栈包括:应用层协议栈、核心协议栈和物理层;其中,所述核心协议栈包括主机协议栈和控制器,所述控制器包括链路层,所述链路层包括以下功能模块:管理模块、控制模块、公共模块、调试模块和驱动模块;所述主机协议栈和所述控制器之间通过主机控制器接口连接;所述方法包括:
获取所述无线协议栈的任务数据;
根据所述任务数据中的标识信息确定所述任务数据的执行函数或者执行模块;
采用所述确定的执行函数或者执行模块对所述任务数据进行处理。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
采用所述链路层中的功能模块处理所述主机协议栈和所述控制器之间的命令或者事件;
其中,每个所述命令或者事件设置有唯一的识别编号;每个所述识别编号与一个处理函数相关联。
3.根据权利要求2所述的方法,其特征在于,所述采用所述链路层中的模块处理所述主机协议栈和所述控制器之间的命令或者事件,包括:
采用所述链路层中的功能模块接收包含所述命令或者事件的识别编号的消息,所述消息包括消息源识别编号、消息目的识别编号、消息识别编号、消息参数长度和消息内容,所述消息内容用于指示所述命令或者事件;
根据所述消息中的消息识别编号查找与所述消息识别编号关联的处理函数;
根据所述查找到的处理函数处理所述消息中的消息内容。
4.根据权利要求1所述的方法,其特征在于,所述根据所述任务数据中的标识信息确定所述任务数据的执行函数或者执行模块,包括:
对所述任务数据中的标识信息进行置位;
轮询所述无线协议栈的全部任务的标识信息,所述全部任务包括:数据加密处理任务、消息处理任务、超时处理任务、事件处理任务、数据收发处理任务;
当轮询到所述置位的标识信息时,查询与所述置位的标识信息对应的执行函数或者执行模块,将查询到的执行函数或者执行模块确定为所述任务数据的执行函数或者执行模块。
5.根据权利要求1所述的方法,其特征在于,所述采用所述确定的执行函数或者执行模块对所述任务数据进行处理,包括:
按照所述任务数据对应的任务的优先级从高到低的顺序,采用对应的执行函数或者执行模块对所述任务数据进行处理。
6.一种无线协议栈,其特征在于,包括:应用层协议栈、核心协议栈和物理层;其中,所述核心协议栈包括主机协议栈和控制器,所述控制器包括链路层,所述链路层包括以下功能模块:管理模块、控制模块、公共模块、调试模块和驱动模块;所述主机协议栈和所述控制器之间通过主机控制器接口连接;所述无线协议栈还包括:
核心调度模块,用于获取所述无线协议栈的任务数据,根据所述任务数据中的标识信息确定所述任务数据的执行函数或者执行模块,采用所述确定的执行函数或者执行模块对所述任务数据进行处理。
7.根据权利要求6所述的无线协议栈,其特征在于,所述主机控制器接口,用于采用所述链路层中的功能模块处理所述主机协议栈和所述控制器之间的命令或者事件。
8.根据权利要求7所述的无线协议栈,其特征在于,还包括:交互接口,用于采用所述链路层中的功能模块接收包含所述命令或者事件的识别信息的消息,所述消息包括消息源识别编号、消息目的识别编号、消息识别编号、消息参数长度和消息内容,所述消息内容用于指示所述命令或者事件,根据所述消息中的消息识别编号查找与所述消息识别编号关联的处理函数,根据所述查找到的处理函数处理所述消息中的消息内容。
9.根据权利要求6所述的无线协议栈,其特征在于,所述核心调度模块,用于对所述任务数据中的标识信息进行置位,轮询所述无线协议栈的全部任务的标识信息,所述全部任务包括:数据加密处理任务、消息处理任务、超时处理任务、事件处理任务、数据收发处理任务,当轮询到所述置位的标识信息时,查询与所述置位的标识信息对应的执行函数或者执行模块,将查询到的执行函数或者执行模块确定为所述任务数据的执行函数或者执行模块。
10.根据权利要求6所述的无线协议栈,其特征在于,所述核心调度模块,用于按照所述任务数据对应的任务的优先级从高到低的顺序,采用对应的执行函数或者执行模块对所述任务数据进行处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710326634.XA CN107172139B (zh) | 2017-05-10 | 2017-05-10 | 一种无线协议栈及其实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710326634.XA CN107172139B (zh) | 2017-05-10 | 2017-05-10 | 一种无线协议栈及其实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107172139A true CN107172139A (zh) | 2017-09-15 |
CN107172139B CN107172139B (zh) | 2020-07-17 |
Family
ID=59813960
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710326634.XA Active CN107172139B (zh) | 2017-05-10 | 2017-05-10 | 一种无线协议栈及其实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107172139B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109388388A (zh) * | 2018-09-30 | 2019-02-26 | 武汉斗鱼网络科技有限公司 | 功能模块间的信息交互方法、装置、设备及存储介质 |
CN110891073A (zh) * | 2019-12-30 | 2020-03-17 | 西安电子科技大学 | 一种用于移动通信核心网的多协议栈通信方法 |
CN111740972A (zh) * | 2020-06-15 | 2020-10-02 | 中国第一汽车股份有限公司 | 一种通信协议栈信息的更新方法、装置、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101170507A (zh) * | 2007-11-14 | 2008-04-30 | 中兴通讯股份有限公司 | 异步并发处理方法 |
CN102916969A (zh) * | 2012-10-29 | 2013-02-06 | 田军 | 一种无间断的数据通讯设备及通讯方法 |
CN104391747A (zh) * | 2014-11-18 | 2015-03-04 | 北京锐安科技有限公司 | 一种并行计算方法及装置 |
US20160249356A1 (en) * | 2015-02-23 | 2016-08-25 | Intricon Corporation | Enabling Concurrent Proprietary Audio And Bluetooth Low Energy Using Enhanced LE Link Layer For Hearing Device |
CN106294386A (zh) * | 2015-05-19 | 2017-01-04 | 北大方正集团有限公司 | 任务分配执行方法及系统 |
-
2017
- 2017-05-10 CN CN201710326634.XA patent/CN107172139B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101170507A (zh) * | 2007-11-14 | 2008-04-30 | 中兴通讯股份有限公司 | 异步并发处理方法 |
CN102916969A (zh) * | 2012-10-29 | 2013-02-06 | 田军 | 一种无间断的数据通讯设备及通讯方法 |
CN104391747A (zh) * | 2014-11-18 | 2015-03-04 | 北京锐安科技有限公司 | 一种并行计算方法及装置 |
US20160249356A1 (en) * | 2015-02-23 | 2016-08-25 | Intricon Corporation | Enabling Concurrent Proprietary Audio And Bluetooth Low Energy Using Enhanced LE Link Layer For Hearing Device |
CN106294386A (zh) * | 2015-05-19 | 2017-01-04 | 北大方正集团有限公司 | 任务分配执行方法及系统 |
Non-Patent Citations (1)
Title |
---|
小时不识月Z: "低功耗蓝牙BLE协议简介", 《HTTP://WWW.JIANSHU.COM/P/9AB3EFE6147D》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109388388A (zh) * | 2018-09-30 | 2019-02-26 | 武汉斗鱼网络科技有限公司 | 功能模块间的信息交互方法、装置、设备及存储介质 |
CN109388388B (zh) * | 2018-09-30 | 2022-06-21 | 武汉斗鱼网络科技有限公司 | 功能模块间的信息交互方法、装置、设备及存储介质 |
CN110891073A (zh) * | 2019-12-30 | 2020-03-17 | 西安电子科技大学 | 一种用于移动通信核心网的多协议栈通信方法 |
CN110891073B (zh) * | 2019-12-30 | 2021-06-25 | 西安电子科技大学 | 一种用于移动通信核心网的多协议栈通信方法 |
CN111740972A (zh) * | 2020-06-15 | 2020-10-02 | 中国第一汽车股份有限公司 | 一种通信协议栈信息的更新方法、装置、设备及存储介质 |
CN111740972B (zh) * | 2020-06-15 | 2022-06-21 | 中国第一汽车股份有限公司 | 一种通信协议栈信息的更新方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN107172139B (zh) | 2020-07-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2888858B1 (en) | Method and apparatus of generalized network controller for a software defined network (sdn) | |
US20190089588A1 (en) | Network function instance management method and related device | |
US10873512B2 (en) | Methods for managing self-healing cloud infrastructure and applications | |
CN106487869A (zh) | 用于对标签化数据进行控制和标准化的多云网络代理 | |
CN105827428A (zh) | 资产信息的管理方法及装置 | |
CN108984351A (zh) | 电压调整器预烧测试的系统、方法和计算机可读存储介质 | |
WO2018072503A1 (zh) | 软件修改的发起方法、发布元数据的方法及装置 | |
CA2843284C (en) | Computer system, computer-implemented method and computer program product for sequencing incoming messages for processing at an application | |
CN107172139A (zh) | 一种无线协议栈及其实现方法 | |
CN110392882A (zh) | 在包括虚拟化网络功能的网络中批量创建被管功能 | |
CN105791175A (zh) | 软件定义网络中控制传输资源的方法及设备 | |
US12047473B2 (en) | Routing of web requests to on-premise network in a multi-tenant environment | |
CN105453058A (zh) | 目录服务发现和/或学习 | |
WO2015055102A1 (zh) | 一种用于调用网络功能的方法及装置 | |
CN105227493A (zh) | 多核平台下提高数据报文转发性能的方法 | |
CN105190530A (zh) | 传输硬件渲染的图形数据 | |
EP3010182A1 (en) | Fault management method and apparatus | |
CN114489954A (zh) | 基于虚拟化平台的租户创建方法、租户访问方法及设备 | |
CN115022424B (zh) | 水电lcu控制器网卡虚拟控制方法、系统、设备及其介质 | |
CN109254819A (zh) | 基于安卓系统的界面更新方法、系统、设备及存储介质 | |
WO2019072033A1 (zh) | 一种网络方法和系统、及终端 | |
CN108334546A (zh) | 通信设备融合管理方法、存储介质及通信设备 | |
CN104079628B (zh) | 一种电网业务系统一体化远程调控信息交互方法 | |
CN102426510A (zh) | 借助于用户界面来管理操作 | |
CN108574592A (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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20190417 Address after: Room 402-403, Building D, Zhangjiagang Economic and Technological Development Zone, Suzhou City, Jiangsu Province Applicant after: Peach Core Technology (Suzhou) Co., Ltd. Address before: 100080 Haidian Street, Haidian District, Beijing Applicant before: Beijing firefly Technology Co., Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |