找回密码
 注册
关于网站域名变更的通知
查看: 41|回复: 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" \- }% J7 L0 k3 s) H$ O- D: X% t
    BLE技术的工作模式非常适合用于从微型无线传感器(每半秒交换一次数据)或使用完全异步通信的遥控器等其它外设传送数据。这些设备发送的数据量非常少(通常几个字节),而且发送次数也很少(例如每秒几次到每分钟一次,甚至更少)。
    1 O: V( o" q* @- Z' R+ L3 H  I! B8 J% U2 Z$ a+ D
    1 s9 H3 \$ D" g' r: Q, S; {( P0 w( N, y% y/ z5 l
    下面就用趣说的方式,介绍一些BLE协议栈,帮助大家理解。$ A( K- B: Y# D9 J4 l, u- q, S6 M# d, Y2 K$ A5 I8 l
    9 s& L, B9 S5 o6 F2 H) i9 A/ Z# f8 K1 Y& u$ ~0 A* r

    ) l0 L8 [! N" K, _
    附图  BLE蓝牙协议栈结构图
    5 h, z2 h5 E4 e
    6 t6 v% H6 ~  d4 V, `" Z分为两部分:控制器和主机。对于4.0以前的蓝牙,这两部分是分开的。所有profile(姑且称为剧本吧,用来定义设备或组件的角色)和应用都建构在GAP或GATT之上。下面由结构图的底层组件开始介绍。: \) U" y4 |: c: M9 n# P, ]
      s6 J- U. }/ M·        PHY层,工作车间,1Mbps自适应跳频GFSK(高斯频移键控),运行在2.4GHz1 c3 o- a2 _# g7 H2 ?+ e" N
    ·        LL层为RF控制器,控制室,控制设备处于准备(standby)、广播、监听/扫描(scan)、初始化、连接,这五种状态中一种。五种状态切换描述为:未连接时,设备广播信息(向周围邻居讲“我来了”),另外一个设备一直监听或按需扫描(看看有没有街坊邻居家常里短可聊,打招呼“哈,你来啦”),两个设备连接初始化(搬几把椅子到院子),设备连接上了(开聊)。发起聊天的设备为主设备,接受聊天的设备为从设备,同一次聊天只能有一个意见领袖,即主设备和从设备不能切换。! H! X6 k; E5 |$ e+ x
    ·        HCI层,为接口层,通信部,向上为主机提供软件应用程序接口(API),对外为外部硬件控制接口,可以通过串口、SPI、USB来实现设备控制。
    ( d! ~; k. |2 A7 ^8 y# h) r·        L2CAP层,物流部,行李打包盒拆封处,提供数据封装服务. D. W4 G6 S+ P- t
    ·        SM层,保卫处,提供配对和密匙分发,实现安全连接和数据交换
    $ x& |) Q/ S- i! a9 N8 q# z9 Q# m·        ATT层,库房,负责数据检索) m9 \7 i" ~7 R" ?7 m0 m3 O1 }; V+ Z' s# x3 @
    ·        GATT层,出纳/库房前台,出纳负责处理向上与应用打交道,而库房前台负责向下把检索任务子进程交给ATT库房去做,其关键工作是把为检索工作提供合适的profile结构,而profile由检索关键词(characteristics)组成。# ?  _$ ~, B; @: W' N# \8 r6 j2 _2 y# P
    ·        GAP层,秘书处,对上级,提供应用程序接口,对下级,管理各级职能部门,尤其是指示LL层控制室五种状态切换,指导保卫处做好机要工作。! F1 R( S. A: d3 r0 n6 l
      q$ |$ u! Y7 O1 B- ~" gTI的这款CC2540器件可以单芯片实现BLE蓝牙协议栈结构图的所有组件,包括应用程序。
    7 g& S4 q* N8 s' o! M& L; ~: I/ H9 [' A( V0 B6 Z# P0 h
    7 G+ |2 S0 {9 N, Z' ]2 e

    # e3 I; q0 C: @% l. N9 g2 y2 M2、任务调度---OSAL操作系统抽象层5 L. ~1 U; ]0 h  }+ K0 |8 J2 ]2 Y8 [" n4 P% y% {
    正如一个公司为了实现扩大产能和产品多样化,建立了多个办公室和工厂一样,蓝牙为了实现同多个设备相连,或实现多功能,也实现了功能扩充,这就产生了调度问题。因为,虽然软件和协议栈可扩充,但终究最底层的执行部门只有一个。! {7 y. Q) k  Z4 x$ V/ H7 x4 J$ n& k2 f  M8 a: y" Y
    为了实现多事件和多任务切换,需要把事件和任务对应的应用,以及其相关的提供支撑“办公室”和“工厂”打包起来,并起一个名字OSAL操作系统抽象层,类似于集团公司以下的子公司( _2 I& ^- Q( {
    / m; Y* P; ?) w: x1 S1 }
    5 L8 Q2 X8 W; Q' ^! B/ N
    5 Q- i/ C+ ~2 }5 q* v# M* h: ~3 v9 O: S" T* F
    3、设备改造---HAL硬件抽象层
    & R; R: U$ W# K. t* f9 N' Q如果实现软件和硬件的低耦合,使软件不经改动或很少改动即可应用在另外的硬件上,这样就方便硬件改造、升级、迁移后,软件的移植。HAL硬件抽象层正是用来抽象各种硬件的资源,告知给软件。其作用类似于嵌入式系统设备驱动的定义硬件资源的h头文件。其角色类似于现代工厂的设备管理部: M6 w  m- m# _8 {$ h

    0 w0 E, ~3 U3 f: S7 M' L+ Z5 ?
    * I& P+ R5 a* d! S  [( b. `0 ^$ y; u% }0 G( U( [6 D  }
    4、BLE低功耗蓝牙系统架构
    7 c' B  s/ D' `0 u9 f5 L- L1 v
    ! d2 K5 N! A- D0 g0 M* @+ _; j% s* w" `/ \# m$ Y
    附图 BLE低功耗蓝牙系统架构图
      M# G: g9 l! w3 u8 f: I
    6 I5 t; d8 H6 R* F" ~( ~5 ]8 M图中的Task用BLE蓝牙协议栈结构图来描述7 {4 f" q7 w9 d0 E% E
    / d9 |% @5 b" B% F
    0 p+ ?% z, j& I. E. b& A7 A$ \0 T! S, V- Q1 [1 u7 ?4 `
    BLE低功耗蓝牙软件有2个主要组成: OSAL操作系统抽象层和 HAL硬件抽象层,多个Task任务和事件在OSAL管理下工作,而每个任务和事件又包括3个组成:BLE 协议栈,profiles和应用程序。6 J# E& u8 ?9 V; ^. y4 f- v6 `2 j0 ^- S1 i# F- V0 t
    附图7同样可以用现代工厂模式来类比,如附图8。% C3 N4 Y* D+ r+ I9 J

    3 O  w1 d' |: M* e8 X4 ^7 j
      p9 s8 N2 X$ l; r/ I
    附图  BLE低功耗蓝牙软件5个主要组成用现代工厂架构来类比。
    % n- A+ Z) s& i- h8 C
    ' e: r+ N; M4 D* [" ?8 t, T2 e/ c) J; F  F9 v) {- m1 D
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-8-2 02:15 , Processed in 0.140625 second(s), 27 queries , Gzip On.

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

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

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