CN111510481B - 一种应用于ble5.0协议系统的软硬件交互方法 - Google Patents
一种应用于ble5.0协议系统的软硬件交互方法 Download PDFInfo
- Publication number
- CN111510481B CN111510481B CN202010271543.2A CN202010271543A CN111510481B CN 111510481 B CN111510481 B CN 111510481B CN 202010271543 A CN202010271543 A CN 202010271543A CN 111510481 B CN111510481 B CN 111510481B
- Authority
- CN
- China
- Prior art keywords
- hardware
- software
- protocol
- data
- interface
- 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
- 230000003993 interaction Effects 0.000 title claims abstract description 67
- 238000000034 method Methods 0.000 title claims abstract description 31
- 230000006870 function Effects 0.000 claims description 35
- 230000005540 biological transmission Effects 0.000 claims description 26
- 230000008569 process Effects 0.000 claims description 17
- 230000006978 adaptation Effects 0.000 claims description 6
- 230000009471 action Effects 0.000 claims description 4
- 238000004886 process control Methods 0.000 claims description 3
- 125000004122 cyclic group Chemical group 0.000 claims description 2
- 230000002452 interceptive effect Effects 0.000 description 12
- 238000011161 development Methods 0.000 description 9
- 230000018109 developmental process Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 230000002457 bidirectional effect Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 238000012423 maintenance Methods 0.000 description 5
- 238000012360 testing method Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 3
- 230000033772 system development Effects 0.000 description 3
- 230000009977 dual effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000009432 framing Methods 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
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
- 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
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/323—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the physical layer [OSI layer 1]
-
- 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
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/324—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the data link layer [OSI layer 2], e.g. HDLC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
- H04W28/10—Flow control between communication endpoints
- H04W28/14—Flow control between communication endpoints using intermediate storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/80—Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Communication Control (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明涉及一种BLE5.0协议系统及系统中应用的软硬件交互方法,基于链表的软硬件交互接口完成控制器和物理层之间的数据及信息交互,该接口基于事件Event实现,实现时每个Event使用一个名为ECPT的结构表示,每个ECPT包含了描述一个Event的所有参数信息,ECPT结构关联一个数据接收链表和一个数据发送链表,软硬件交互接口的硬件侧通过周期性地轮询Event列表来判断ECPT是否有效。此接口有效地屏蔽了底层硬件实现细节,完成数据收发和对硬件参数的获取和配置,降低了系统实现难度,同时本发明将协议中规定的各个功能进行有效合理的划分,易于功能的实现和维护。
Description
技术领域
本发明涉及无线通信技术领域,尤其涉及一种应用于BLE5.0协议系统的软硬件交互接口、方法及其系统。
背景技术
低功耗蓝牙技术(BLE)是当前发展最快使用最为普遍的几种无线传输技术之一,BLE已经渗透到了我们生活的各个地方,目前使用较为普遍的智能手机无一不集成BLE通信模块,BLE模块由于其低成本,低功耗等特性,被广泛应用于家庭终端设备,环境监测,灯光控制,无线升级等各个方面。物联网的普及对BLE协议的更新迭代起到了至关重要的作用,协议的快速实现和易于扩展对一线开发人员提出了更高的要求。由于蓝牙协议提供了从底层物理层到上层应用层的完整协议,所以协议实现难度增大,协议功能变得十分复杂,不合理的协议层次划分会增加协议实现难度,不便于后续协议更新扩展,延长产品上线周期,因此在实现过程依据功能对协议进行层次划分显得尤为重要。
BLE软件协议栈的开发是实现整个BLE系统过程中最为繁杂也是耗时最长的环节,各层次间功能交错,如果不能有效地进行层次的划分会严重影响系统开发进度。
BLE协议栈实现中,链路层功能开发实现占据了很长周期,在协议中针对BLE链路层功能也进行了很大篇幅的描述,但是没有根据功能对链路层进行模块划分,如果依照协议进行系统开发很难在短期开发出高效的核心协议栈,而且能够获得的公开资料中也没有文档能针对该部分的实现进行详细描述。
BLE协议栈实现中软硬件接口的设计属于系统功能实现最为关键的地方,涉及到了软硬件功能的划分,协议中没有针对软硬件交互接口功能划分的描述,该部分在实现过程中是研发者自由发挥的地方,具体的划分及实现方式各不相同。
发明内容
本发明提出一种基于链表的软硬件交互接口,接口有效地屏蔽了底层硬件实现细节,完成数据的收发和对硬件参数的获取和配置,方便实现,易于扩展。链路层作为BLE5.0协议中重要的模块,将链路层模块进行划分,使得各层次功能更加明确,降低实现难度,缩短调试周期,在此基础上进行协议功能扩展更加方便。本发明还提出了一种BLE5.0协议系统,将协议中规定的各个功能进行有效合理的划分,易于功能的实现和维护。
本发明是通过以下技术方案来实现的:一种应用于BLE5.0协议系统的软硬件交互接口,所述接口是一种基于链表的软硬件交互接口,完成控制器和物理层之间的数据及信息交互,该接口基于事件Event实现,实现时每个事件Event使用一个名为ECPT的结构表示,每个结构ECPT包含了描述一个事件Event的所有参数信息,即结构ECPT作为事件控制参数表,该ECPT结构关联一个数据接收链表和一个数据发送链表,软硬件交互接口的硬件侧通过周期性地轮询事件Event列表来判断结构ECPT是否有效。
一种应用于BLE5.0协议系统的软硬件交互方法,所述方法是一种基于链表的软硬件交互方法,完成控制器和物理层之间的数据及信息交互,包括如下步骤:
S100:当BLE5.0系统进行数据发送操作时,软硬件交互接口的软件侧将准备好的数据放在发送缓存中;
S200:设置结构ECPT的有效标志来告知软硬件交互接口硬件侧进行数据发送;其中,结构ECPT作为事件的控制参数表;
S300:当硬件轮询到该结构ECPT有效时,依据结构ECPT中指定的参数获取发送缓存中的内容,并将待发送数据发送到空口;
S400:当BLE5.0系统进行数据接收时,硬件将接收到的数据进行解白化、CRC校验操作后放在接收缓存中,通过中断方式告知软硬件交互接口软件侧,交互接口软件侧获取中断并将数据取出进而交由上层软件进行进一步处理。
进一步地,所述方法包括三种交互方式,分别为共享内存、寄存器组和中断,共享内存用于完成设备间数据收发过程控制及数据包传递的步骤,寄存器组用于完成硬件参数配置以及在设备工作过程中完成状态参数的获取的步骤,中断功能用于完成异步通知软件执行相关动作的步骤。
优选地,所述软硬件交互方法在共享内存下实现。
一种BLE5.0协议系统,所述BLE协议系统由下到上分为物理层、核心协议栈和应用层协议栈,其中核心协议栈包括主机协议栈和控制器,主机协议栈包括安全管理协议、属性协议、逻辑链路控制和适配层协议,控制器包括链路层,物理层包括基带和射频,所述主机协议栈和控制器之间采用协议规定的HCI接口协议进行通信,所述控制器和物理层之间采用基于链表的软硬件交互接口完成数据及信息交互。
进一步地,该系统可通过单芯片模式或双芯片模式实现。
优选地,所述链路层与主机协议栈通信通过HCI接口实现,与硬件的交互通过共享内存实现。
一种实现链路层分层的BLE5.0协议系统,包括主机协议栈、控制器、物理层,控制器包括链路层,物理层包括基带和射频,所述控制器和物理层之间采用软硬件交互接口完成数据及信息交互,所述链路层划分为如下模块:
管理模块,负责链路层顶层状态机的管理和跳转;
控制模块,完成在连接状态下设备间信息交互及状态信息维护,同时提供数据及控制信息通路,完成设备状态管理及数据传输;
公共模块,负责接收来自主机侧的配置命令,以及向主机侧传递命令执行结果;
调试模块,负责完成直测模式下系统工作状态管理,同时在开发阶段进行硬件的测试和调试;
驱动模块,是软硬件接口的实现模块,负责数据流在硬件和软件之间的交互,同时是系统广播、扫描、初始化、连接功能的实现模块。
进一步地,所述顶层状态机包括广播态、扫描态、起始态、连接态和空闲态,该五种状态的维护由管理模块实现。
进一步地,所述管理模块用于在广播态、扫描态、起始态、连接态和空闲态中的非连接状态下实现对设备的管理和调度,完成和主机侧的事件及命令交互。
进一步地,所述驱动模块由管理模块、控制模块、公共模块直接调度。
优选地,所述各个模块均由单独的状态机实现,模块间采用消息传递机制完成信息传递。
优选地,所述链路层与主机协议栈通信通过HCI接口实现,与物理层的交互通过共享内存实现。
优选地,所述控制器和物理层之间采用的软硬件交互接口是一种基于链表的软硬件交互接口,完成控制器和物理层之间的数据及信息交互,该接口基于Event实现,实现时:每个Event使用一个名为ECPT的结构表示,每个ECPT包含了描述一个Event的所有参数信息,ECPT结构关联一个数据接收链表和一个数据发送链表,软硬件交互接口的硬件侧通过周期性地轮询Event列表来判断ECPT是否有效。优选地,所述软硬件交互接口在共享内存下实现。
综上所述,本发明与现有技术相比具有如下优点:
基于链表的软硬件交互接口基于事件Event定义,结合数据收发链表,完成和硬件的信息交互及数据传输。作为系统实现的关键环节,该接口的提出便于软硬件同步开发及联合调试,在BLE系统开发阶段软件模块通过该接口实现对于功能的模拟测试,硬件模块通过该接口实现对于部分功能的验证,系统集成阶段通过该接口实现对于系统的联和调试,接口方便扩展,便于协议的更新迭代。
通过对BLE5.0整体协议按照功能进行有效的层次及模块划分,各层次功能明确,模块间通信接口简单,便于协作开发和集成。通过对链路层进行有效的模块划分,完成链路层功能的实现,该实现方式满足了协议需求,便于快速实现和调试,同时在不对现有架构进行变更的基础上,完成基于新协议的功能扩展,实现产品的快速迭代,缩短产品上市周期,模块间的通信采用消息传递机制,实现数据传输零拷贝,提高了系统工作效率。
附图说明
图1 是BLE5.0协议系统结构示意图;
图2是链路层功能模块划分示意图;
图3是链路层顶层状态机示意图;
图4是软硬件交互接口在系统中的位置示意图;
图5是软硬件交互方式示意图;
图6是基于链表的软硬件交互接口示意图。
具体实施方式
为进一步描述本发明,下面结合附图1至图6对其作进一步说明。
如图1所示,BLE5.0协议系统结构示意图,BLE协议系统由下到上分为物理层、核心协议栈和应用层协议栈,其中核心协议栈包括主机协议栈和控制器,主机协议栈包括安全管理协议、属性协议、逻辑链路控制和适配层协议,控制器包括链路层,物理层包括基带和射频,主机协议栈和控制器之间采用协议规定的HCI接口协议进行通信,控制器和物理层之间采用基于链表的软硬件交互接口完成数据及信息交互。
应用层协议栈是协议规定的多种BLE应用场景的具体实现,本发明基于协议定义的多种应用协议,包括温湿度服务、环境服务、电池服务等,对协议进行了深层次的二次封装,使得用户在不太了解BLE协议细节的基础上也能进行BLE应用的开发,极大简化了开发流程。
主机协议栈完成主机侧数据及控制通路管理、安全管理、设备发现、服务发现等功能,通过主机控制器接口(HCI)与底层协议栈进行交互。
主机控制器接口(HCI)用于主机协议栈和控制器的通信,目前有两种常见的BLE系统实现方式,即单芯片模式和双芯片模式。单芯片的实现方式中主机协议栈和控制器运行于同一个处理器,两者之间的通信在基于HCI接口的基础上可以实现用户的自定义和扩展,接口完全由软件实现,无需特定的物理通信接口。双芯片模式下,主机控制器接口基于UART等物理通信接口实现,遵循协议中定义的HCI接口标准,使得控制器可以适配不同的主机协议栈,提高了使用灵活性。
结合图1,能够发现:控制器还可以包括调试模块。
另外,需要说明的事,链路层实现了设备在广播态、扫描态、起始态、连接态下状态机管理,完成主机到硬件的数据和控制通路实现,完成协议中规定的各种链路层控制及交互过程的实现。优选的,链路层对数据包的操作都是在共享内存中进行的,实现了数据收发在主机控制器接口(控制器侧)到软硬件交互接口整个处理过程中的零拷贝操作,这可以提高系统工作效率。
物理层由基带和射频模块组成,协同上层协议栈完成BLE5.0协议分层的系统功能。结合前文和图1,这体现了本发明的构思。
不仅如此,本发明在核心协议栈中,链路层完成设备广播、扫描、连接等状态的定义和实现,完成物理通道选择、相关链路状态定义、设备过滤机制的实现等,对上衔接主机侧高层协议,对下实现对于硬件的调度和数据收发通路及控制通路的管理,同时负责该层核心帧的成帧操作。
示例性的,就图1而言,主机控制器接口自身可以划分为主机侧和控制器侧,主机控制器接口用于对上衔接主机协议栈的:逻辑链路控制和适配层协议,并用于对下衔接链路层。一并的,能够发现,逻辑链路控制和适配层协议用于对上衔接主机协议栈的:安全管理协议和属性协议,而安全管理协议、逻辑链路控制和适配层协议、属性协议则用于对上衔接应用层协议栈的通用访问规范,特别的,属性协议可以直接对上衔接应用层协议栈中通用访问规范中的应用规范。同样的,就图1而言,控制器中的调试模块和链路层还分别用于对下衔接物理层的基带。
因此,合理的功能模块划分对实现链路层功能尤为重要,为此本发明对链路层实现的功能模块进行划分,具体划分示例如图2所示,能够理解,这仅仅是一种具体的划分方式,并不意味着受限于此。此外,需要说明的是,链路层与主机协议栈通信可以通过HCI接口实现,与硬件的交互通过共享内存实现。
具体的,就图2而言,链路层,或者称之为逻辑链路层,在链路层功能具体实现过程中依据功能需求将该层划分为:管理模块,控制模块,公共模块,调试模块,驱动模块,其中,除控制模块可以通过命令/事件/数据与主机控制器接口进行双向的消息传递之外,管理模块、公共模块、调试模块则通过命令/事件与主机控制器接口进行双向的消息传递;至于驱动模块,其在基带与如下任一模块之间充当桥梁:管理模块、控制模块、公共模块,一方面,驱动模块与基带之间能够进行双向的函数调用,另一方面,驱动模块向管理模块、控制模块、公共模块进行消息传递,而管理模块、控制模块、公共模块则向驱动模块进行函数调用;此外,就图2而言,能够发现,驱动模块还与调试模块存在交互:驱动模块向调试模块进行消息传递,调试模块则向驱动模块进行函数调用;而调试模块除了与驱动模块交互之外,还对下衔接基带,调试模块与基带之间可以进行双向函数调用。需要说明的是,管理模块与调试模块之间存在双向的消息传递;管理模块还与控制模块之间存在双向的消息传递。
进一步的,结合图2和图3,需要说明的是:
管理模块负责链路层顶层状态机的管理和跳转,依据协议,该模块实现了对5个系统工作状态的维护,包括广播态、扫描态、连接态、起始态、空闲态,同时该模块实现了在广播态、扫描态、起始态、连接态和空闲态中的非连接状态下对设备的管理和调度,完成和主机侧的事件及命令交互,链路层顶层状态机可以参见图3所示。
控制模块完成在连接状态下设备间信息交互及状态信息维护,同时提供数据及控制信息通路,完成设备状态管理及数据传输。控制模块实现了协议中链路层所有控制过程包括连接参数更新过程、连接参数请求过程、启动/停止加密过程、特征交互过程等,同时实现了过程冲突控制、超时控制等功能。
公共模块负责接收来自主机侧的配置命令,如读取缓存空间大小,系统复位等,以及向主机侧传递命令执行结果,模块本身不改变链路层状态信息,只负责对配置命令的执行及状态结果反馈。
调试模块负责完成直测模式下系统工作状态管理,同时在开发阶段进行硬件的测试和调试。
驱动模块是软硬件接口的实现模块,负责数据流在硬件和软件之间的交互,同时是系统广播、扫描、初始化、连接功能的实现模块,通过读写寄存器、中断、共享内存等方式,模块完成数据在软硬件之间的传递,同时控制硬件工作状态,获取状态信息,该模块可以由管理模块、控制模块、公共模块等直接调度,实现软硬件信息交互。
本系统通过划分功能模块,简化了系统开发和调试过程,便于维护和协议扩展,模块间采用消息传递机制完成信息传递,每个模块均由单独的状态机实现, 缓存空间管理和事件处理均采用零拷贝方式,提高系统工作效率。
控制器的基带及部分链路层功能由硬件实现,链路层软件完成和硬件的直接交互,通过软件对硬件的控制使硬件完成具体任务的执行操作,同时硬件向软件反馈动作执行状态,因此软件需要一种接口来完成与硬件的交互,软硬件交互接口在整个系统中的位置如图4所示。参见图4,其作为示例,对于控制器和物理层而言,本发明所述的软硬件交互接口即图中的软件/硬件交互接口,其对上衔接控制器的链路层,对下衔接物理层的基带。
能够理解,软硬件交互接口的设计和实现关系着系统工作效率和稳定性,同时好的交互接口的设计能够加速系统开发和缩短调试周期。
如图5所示,本发明实现的软硬件交互接口包括三种方式,即共享内存、寄存器组和中断。共享内存主要用于完成设备间数据收发过程控制及数据包传递,寄存器组完成硬件参数配置以及在设备工作过程中完成状态参数的获取,中断功能用于异步通知软件执行相关的动作,如数据接收、超时处理、错误状态报告等。
共享内存是系统为实现软硬件高效交互专门划分的一块内存,软件和硬件可以直接访问该内存块,完成对内存中数据的操作,软硬件通过该内存块完成信息交互需要遵循统一的交互格式及流程,结合BLE协议规范,本发明在共享内存方式下设计实现了一种基于链表的软硬件交互接口及方法,包括了格式定义和交互流程定义,如图6所示。
由于标准规定,系统进行数据的收发都是在Event(事件)中进行的,因此基于链表的软硬件交互接口格式及流程的定义需要充分考虑Event的属性,实现时:每个事件Event使用一个名为ECPT(作为事件的控制参数表;顾名思义,结构ECPT是Event ControlParameter Table的缩写)的结构表示,每个结构ECPT包含了描述一个Event的所有参数信息,ECPT结构关联一个数据接收链表和一个数据发送链表,软硬件交互接口硬件侧通过周期性地轮询事件Event列表来判断结构ECPT是否有效。当系统进行数据发送操作时,只需要软硬件交互接口的软件侧将准备好的数据放在发送缓存中,通过设置结构ECPT有效标志来告知软硬件交互接口硬件侧进行数据发送,当硬件轮询到该结构ECPT有效时,依据结构ECPT中指定的参数获取发送缓存中的内容,并将待发送数据发送到空口;当系统进行数据接收时,硬件将接收到的数据进行解白化、CRC校验操作后放在接收缓存中,通过中断方式告知软硬件交互接口软件侧,交互接口软件侧获取中断并将数据取出进而交由上层软件进行进一步处理。
示例性的,就图6而言,所述结构ECPT所表示的事件控制参数列表(例如图6中事件控制参数列表0、事件控制参数列表1,列表0和列表1表现为链表的形式)表现为表的形式,可以包括如下信息:事件控制信息、发送包地址信息、接收包地址信息、数据包收发计数等。其中,发送包地址信息表现为链表的形式,其包括:地址+状态、发送控制字、有效数据;接收包地址信息同样表现为链表的形式,其包括:地址字、状态信息、接收控制字、有效数据,这2个链表则示意了ECPT结构关联的一个数据接收链表和一个数据发送链表。结合图6,其形象的示意了本发明的软硬件交互接口是基于链表的。
本发明实现的BLE5.0协议系统、实现链路层分层的BLE5.0协议系统以及系统中应用的基于链表的软硬件交互接口均可以应用于其他无线协议栈的分层以及实现上,以上所述是本发明的优选实施方式,对于本领域的技术人员来说,在不脱离本发明原理的前提下还可以作出若干改进,这些改进也应视为本发明的保护范围。
Claims (4)
1.一种应用于BLE5.0协议系统的软硬件交互方法,其特征在于,所述方法是一种基于链表的软硬件交互方法,完成控制器和物理层之间的数据及信息交互,包括如下步骤:
S100:当BLE5.0协议系统进行数据发送操作时,软硬件交互接口的软件侧将准备好的数据放在发送缓存中;
S200:设置结构ECPT的有效标志来告知软硬件交互接口硬件侧进行数据发送;其中,结构ECPT作为事件的控制参数表;
S300:当硬件轮询到该结构ECPT有效时,依据结构ECPT中指定的参数获取发送缓存中的内容,并将待发送数据发送到空口;
S400:当BLE5.0协议系统进行数据接收时,硬件将接收到的数据进行解白化、CRC校验操作后放在接收缓存中,通过中断方式告知软硬件交互接口软件侧,交互接口软件侧获取中断并将数据取出进而交由上层软件进行进一步处理;
其中,
所述方法包括三种交互方式,分别为共享内存、寄存器组和中断,共享内存用于完成设备间数据收发过程控制及数据包传递的步骤,寄存器组用于完成硬件参数配置以及在设备工作过程中完成状态参数的获取的步骤,中断功能用于完成异步通知软件执行相关动作的步骤;
所述结构ECPT所表示的事件控制参数列表表现为表的形式,包括如下信息:事件控制信息、发送包地址信息、接收包地址信息、数据包收发计数,其中,
发送包地址信息表现为链表的形式,其包括:地址+状态、发送控制字、有效数据;
接收包地址信息同样表现为链表的形式,其包括:地址字、状态信息、接收控制字、有效数据;
所述链表则表征了ECPT结构关联的一个数据接收链表和一个数据发送链表。
2.一种BLE5.0协议系统,其特征在于:所述BLE 5.0协议系统由下到上分为物理层、核心协议栈和应用层协议栈,其中核心协议栈包括主机协议栈和控制器,主机协议栈包括安全管理协议、属性协议、逻辑链路控制和适配层协议,控制器包括链路层,物理层包括基带和射频,所述主机协议栈和控制器之间采用协议规定的HCI接口协议进行通信,所述控制器和物理层之间采用权利要求1所述的应用于BLE5.0协议系统的软硬件交互方法完成数据及信息交互。
3.根据权利要求2所述的一种BLE5.0协议系统,其特征在于:该BLE 5.0协议系统通过单芯片模式或双芯片模式实现。
4.根据权利要求2所述的一种BLE5.0协议系统,其特征在于:所述链路层与主机协议栈通信通过HCI接口实现,与硬件的交互通过共享内存实现。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010271543.2A CN111510481B (zh) | 2017-03-30 | 2017-03-30 | 一种应用于ble5.0协议系统的软硬件交互方法 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010271543.2A CN111510481B (zh) | 2017-03-30 | 2017-03-30 | 一种应用于ble5.0协议系统的软硬件交互方法 |
CN201710205000.9A CN106888271B (zh) | 2017-03-30 | 2017-03-30 | 一种ble5.0协议系统 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710205000.9A Division CN106888271B (zh) | 2017-03-30 | 2017-03-30 | 一种ble5.0协议系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111510481A CN111510481A (zh) | 2020-08-07 |
CN111510481B true CN111510481B (zh) | 2023-01-10 |
Family
ID=59182487
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710205000.9A Active CN106888271B (zh) | 2017-03-30 | 2017-03-30 | 一种ble5.0协议系统 |
CN202010271543.2A Active CN111510481B (zh) | 2017-03-30 | 2017-03-30 | 一种应用于ble5.0协议系统的软硬件交互方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710205000.9A Active CN106888271B (zh) | 2017-03-30 | 2017-03-30 | 一种ble5.0协议系统 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN106888271B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109683877B (zh) * | 2018-12-11 | 2022-03-15 | 中国航空工业集团公司西安航空计算技术研究所 | 一种基于SystemC的GPU软硬件交互TLM系统 |
CN109831765A (zh) * | 2019-03-06 | 2019-05-31 | 东南大学 | 一种硬件实现的低功耗蓝牙hci层数据流控制方法 |
CN110572387B (zh) * | 2019-09-04 | 2022-05-10 | 大唐半导体科技有限公司 | 一种链路层处理方法 |
CN110519740B (zh) * | 2019-09-04 | 2022-07-22 | 大唐半导体科技有限公司 | 一种链路层处理装置 |
CN111884684B (zh) * | 2020-08-26 | 2021-07-16 | 北京百瑞互联技术有限公司 | 一种基于状态机控制的蓝牙物理连接的方法和系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100514233C (zh) * | 2007-09-30 | 2009-07-15 | 重庆邮电大学 | 一种基于sopc的epa现场控制器 |
CN102916969B (zh) * | 2012-10-29 | 2015-07-08 | 广州碧德电子科技有限公司 | 一种无间断的数据通讯设备及通讯方法 |
CN104184687B (zh) * | 2013-05-23 | 2018-03-09 | 北京信威通信技术股份有限公司 | 一种通信基带处理的流程控制方法和硬件加速器电路 |
US9832578B2 (en) * | 2015-02-23 | 2017-11-28 | Intricon Corporation | Enabling concurrent proprietary audio and Bluetooth low energy using enhanced LE link layer for hearing device |
-
2017
- 2017-03-30 CN CN201710205000.9A patent/CN106888271B/zh active Active
- 2017-03-30 CN CN202010271543.2A patent/CN111510481B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN106888271B (zh) | 2020-06-02 |
CN111510481A (zh) | 2020-08-07 |
CN106888271A (zh) | 2017-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111510481B (zh) | 一种应用于ble5.0协议系统的软硬件交互方法 | |
US10375640B2 (en) | Method for switching bluetooth working modes, electronic device, and bluetooth chip | |
CN100354828C (zh) | 移动终端平台系统的中间件服务层 | |
WO2023284732A1 (zh) | 基于Linux内核的协议栈数据传输方法及装置 | |
CN1316839A (zh) | 经改进的无线局域网 | |
CN100592694C (zh) | 提供用于计算机系统的无线电模块的方法和设备 | |
CN103092701A (zh) | 一种通信方法、装置及电子设备 | |
CN112332997B (zh) | 终端设备的配网方法、终端设备及计算机可读存储介质 | |
CN102984500A (zh) | 一种实现多种视频监控设备兼容的方法、装置和系统 | |
CN103313292B (zh) | 基于单基带芯片双连接架构的异系统测量方法 | |
CN110119282A (zh) | 一种基于通用嵌入式计算机的物联网终端及系统 | |
CN111683003B (zh) | 一种带有gps定位和多通讯组网模式的物联网网关设备 | |
CN111414265B (zh) | 一种调用系统资源的服务框架及方法 | |
CN106059877B (zh) | 一种基于SPARC架构CPU的EtherCAT主站模块 | |
CN102497648B (zh) | 实现远程调试的装置及方法 | |
CN111552992A (zh) | 一种不对称安全级别的双系统多模通信架构 | |
CN103488598B (zh) | 一种多模终端及其实现usb共用的方法 | |
CN102932022A (zh) | 无线通讯模块 | |
CN107172139B (zh) | 一种无线协议栈及其实现方法 | |
CN103678244B (zh) | 一种不使用应用处理器的智能设备 | |
Ruckebusch et al. | A unified radio control architecture for prototyping adaptive wireless protocols | |
WO2011094976A1 (zh) | 一种无线数据卡、无线数据卡与电脑侧的通信方法及系统 | |
CN102546637A (zh) | 一种通讯终端及其实现通讯协议的方法 | |
CN102945181A (zh) | 基于电力线来进行设备软件更新的方法 | |
CN106354486A (zh) | nand flash设备管理的方法和系统 |
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 |