找回密码
 注册
关于网站域名变更的通知
查看: 42|回复: 0
打印 上一主题 下一主题

浅谈蓝牙低功耗协议栈

[复制链接]
  • TA的每日心情
    开心
    2023-6-2 15:15
  • 签到天数: 1 天

    [LV.1]初来乍到

    跳转到指定楼层
    1#
    发表于 2023-1-9 10:14 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

    EDA365欢迎您登录!

    您需要 登录 才可以下载或查看,没有帐号?注册

    x
    蓝牙低能耗(BLE)技术是低成本、短距离、可互操作的鲁棒性无线技术,工作在免许可的2.4GHz ISM射频频段。它从一开始就设计为超低功耗(ULP)无线技术。它利用许多智能手段最大限度地降低功耗。蓝牙低能耗技术采用可变连接时间间隔,这个间隔根据具体应用可以设置为几毫秒到几秒不等。另外,因为BLE技术采用非常快速的连接方式,因此平时可以处于“非连接”状态(节省能源),此时链路两端相互间只是知晓对方,只有在必要时才开启链路,然后在尽可能短的时间内关闭链路。$ g% ?% {3 k" \- }% J
    & n# T/ Y# {! F% D9 i. tBLE技术的工作模式非常适合用于从微型无线传感器(每半秒交换一次数据)或使用完全异步通信的遥控器等其它外设传送数据。这些设备发送的数据量非常少(通常几个字节),而且发送次数也很少(例如每秒几次到每分钟一次,甚至更少)。5 Q7 T( o- l  P4 ~1 U1 F/ E  Z* l
    ' R+ L3 H  I! B8 J% U2 Z$ a+ D" N- }% ?' C! O( g2 g

    0 {# v. Q- \& F$ x: h下面就用趣说的方式,介绍一些BLE协议栈,帮助大家理解。$ A( K- B: Y# D9 J4 l, u- q, S
    ( T- ~5 [% b- l6 R* b% A
    9 s& L, B9 S5 o6 F
    5 w. c5 G  Y6 k& s
    0 a" e5 x- v7 Z$ `( A- D2 H0 r
    附图  BLE蓝牙协议栈结构图
    5 h, z2 h5 E4 e
    9 n% }: x  a1 i2 \5 `5 N分为两部分:控制器和主机。对于4.0以前的蓝牙,这两部分是分开的。所有profile(姑且称为剧本吧,用来定义设备或组件的角色)和应用都建构在GAP或GATT之上。下面由结构图的底层组件开始介绍。: \) U" y4 |: c: M9 n# P, ]
    1 {# @8 {- b4 i/ o0 i- u$ i·        PHY层,工作车间,1Mbps自适应跳频GFSK(高斯频移键控),运行在2.4GHz; Y; t1 }9 Y8 P, R! B- l
    ·        LL层为RF控制器,控制室,控制设备处于准备(standby)、广播、监听/扫描(scan)、初始化、连接,这五种状态中一种。五种状态切换描述为:未连接时,设备广播信息(向周围邻居讲“我来了”),另外一个设备一直监听或按需扫描(看看有没有街坊邻居家常里短可聊,打招呼“哈,你来啦”),两个设备连接初始化(搬几把椅子到院子),设备连接上了(开聊)。发起聊天的设备为主设备,接受聊天的设备为从设备,同一次聊天只能有一个意见领袖,即主设备和从设备不能切换。" I* [2 O+ l8 r
    ·        HCI层,为接口层,通信部,向上为主机提供软件应用程序接口(API),对外为外部硬件控制接口,可以通过串口、SPI、USB来实现设备控制。
    4 x/ Y" D5 t4 \( Y* d9 P·        L2CAP层,物流部,行李打包盒拆封处,提供数据封装服务9 t9 a; r. M5 x+ Q8 l; G
    ·        SM层,保卫处,提供配对和密匙分发,实现安全连接和数据交换
    : K1 j7 C! {8 T+ V, G) p·        ATT层,库房,负责数据检索) m9 \7 i" ~7 R" ?7 m
    - l" q) Z' n! V, V0 E7 P·        GATT层,出纳/库房前台,出纳负责处理向上与应用打交道,而库房前台负责向下把检索任务子进程交给ATT库房去做,其关键工作是把为检索工作提供合适的profile结构,而profile由检索关键词(characteristics)组成。# ?  _$ ~, B; @: W' N# \4 g( @$ g! Y2 ~, P3 b1 |8 V  Y
    ·        GAP层,秘书处,对上级,提供应用程序接口,对下级,管理各级职能部门,尤其是指示LL层控制室五种状态切换,指导保卫处做好机要工作。! F1 R( S. A: d3 r0 n6 l4 ~8 s9 ]1 d6 k/ J' g. I" ^" H
    TI的这款CC2540器件可以单芯片实现BLE蓝牙协议栈结构图的所有组件,包括应用程序。
      m  o# V; b" z+ D/ H9 [' A( V0 B6 Z# P0 h
    9 m: S1 b1 z6 `( C% S
    " b3 F; E8 \3 n0 D- F# T
    2、任务调度---OSAL操作系统抽象层5 L. ~1 U; ]0 h  }+ K0 |8 J
    ! x3 Z9 @* x/ C4 q( ~; j0 L- H正如一个公司为了实现扩大产能和产品多样化,建立了多个办公室和工厂一样,蓝牙为了实现同多个设备相连,或实现多功能,也实现了功能扩充,这就产生了调度问题。因为,虽然软件和协议栈可扩充,但终究最底层的执行部门只有一个。! {7 y. Q) k  Z4 x0 B" f! M! [% _8 n: W' M0 ^
    为了实现多事件和多任务切换,需要把事件和任务对应的应用,以及其相关的提供支撑“办公室”和“工厂”打包起来,并起一个名字OSAL操作系统抽象层,类似于集团公司以下的子公司  ?& Y9 n( z% ]* l2 {
    / m; Y* P; ?) w: x1 S1 }) k0 x# K  {& Q8 @4 ]  d
    5 Q- i/ C+ ~2 }5 q( w. A, W( P8 z# q/ s7 d" u
    3、设备改造---HAL硬件抽象层! C& x' z; Z4 B% V
    如果实现软件和硬件的低耦合,使软件不经改动或很少改动即可应用在另外的硬件上,这样就方便硬件改造、升级、迁移后,软件的移植。HAL硬件抽象层正是用来抽象各种硬件的资源,告知给软件。其作用类似于嵌入式系统设备驱动的定义硬件资源的h头文件。其角色类似于现代工厂的设备管理部$ z/ V5 M) f6 {' y7 ]8 s
    0 J& N5 N. O. U! u. X2 O
    * I& P+ R5 a* d! S  [( b. `: b/ q( e* `' P4 E- \5 a; i" ~
    4、BLE低功耗蓝牙系统架构, x; `" H$ B/ B7 G/ I8 a& Z$ a
    ! d2 K5 N! A- D0 g0 M* @+ _; j& Q. W( A/ ~  Z# m
    附图 BLE低功耗蓝牙系统架构图
      M# G: g9 l! w3 u8 f: I
    # t0 }6 z. E2 W" H$ M1 F: X图中的Task用BLE蓝牙协议栈结构图来描述7 {4 f" q7 w9 d0 E% E
    , ^3 E& l, I: O% B2 `- P0 j* `
    0 p+ ?% z, j& I. E. b& A7 A
    * @: c4 r6 {. d9 H( f& g) Y2 nBLE低功耗蓝牙软件有2个主要组成: OSAL操作系统抽象层和 HAL硬件抽象层,多个Task任务和事件在OSAL管理下工作,而每个任务和事件又包括3个组成:BLE 协议栈,profiles和应用程序。6 J# E& u8 ?9 V; ^. y4 f- v" W8 m6 A* Z4 ~6 [
    附图7同样可以用现代工厂模式来类比,如附图8。
    8 U' H& \3 \& \$ y; I6 v
    ( g: z3 j. a5 I* M! ]) h

    1 H2 p$ i2 k6 }% i$ y% Y' D
    附图  BLE低功耗蓝牙软件5个主要组成用现代工厂架构来类比。

    . g  v, j" A; h3 h+ x% P8 X' e: r+ N; M4 D* [" ?8 t
    % p3 d/ W2 E8 G0 q
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-8-24 12:00 , Processed in 0.125000 second(s), 27 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表