TA的每日心情 | 开心 2023-6-2 15:15 |
---|
签到天数: 1 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
蓝牙低能耗(BLE)技术是低成本、短距离、可互操作的鲁棒性无线技术,工作在免许可的2.4GHz ISM射频频段。它从一开始就设计为超低功耗(ULP)无线技术。它利用许多智能手段最大限度地降低功耗。蓝牙低能耗技术采用可变连接时间间隔,这个间隔根据具体应用可以设置为几毫秒到几秒不等。另外,因为BLE技术采用非常快速的连接方式,因此平时可以处于“非连接”状态(节省能源),此时链路两端相互间只是知晓对方,只有在必要时才开启链路,然后在尽可能短的时间内关闭链路。$ g% ?% {3 k" \- }% J2 C4 T3 D: o" F, U/ k$ i
BLE技术的工作模式非常适合用于从微型无线传感器(每半秒交换一次数据)或使用完全异步通信的遥控器等其它外设传送数据。这些设备发送的数据量非常少(通常几个字节),而且发送次数也很少(例如每秒几次到每分钟一次,甚至更少)。3 M7 a0 G% E1 w. N
' R+ L3 H I! B8 J% U2 Z$ a+ D* ]2 [1 V: T0 D5 |9 H% I% c- I
6 a& N) a8 D3 C+ i5 e% P% c& R- b
下面就用趣说的方式,介绍一些BLE协议栈,帮助大家理解。$ A( K- B: Y# D9 J4 l, u- q, S: D, a# @" e6 _/ ]$ h
9 s& L, B9 S5 o6 F
j6 m( V- b* W$ E
- W( J# ?" |% Q+ ^4 ^; D. S9 J& |, S附图 BLE蓝牙协议栈结构图 5 h, z2 h5 E4 e
7 E9 s/ I4 a* Q9 X$ {: n% W& ]分为两部分:控制器和主机。对于4.0以前的蓝牙,这两部分是分开的。所有profile(姑且称为剧本吧,用来定义设备或组件的角色)和应用都建构在GAP或GATT之上。下面由结构图的底层组件开始介绍。: \) U" y4 |: c: M9 n# P, ]
. T1 s* l) h- H) u5 s· PHY层,工作车间,1Mbps自适应跳频GFSK(高斯频移键控),运行在2.4GHz0 W& W) s! p1 e, m1 {+ m
· LL层为RF控制器,控制室,控制设备处于准备(standby)、广播、监听/扫描(scan)、初始化、连接,这五种状态中一种。五种状态切换描述为:未连接时,设备广播信息(向周围邻居讲“我来了”),另外一个设备一直监听或按需扫描(看看有没有街坊邻居家常里短可聊,打招呼“哈,你来啦”),两个设备连接初始化(搬几把椅子到院子),设备连接上了(开聊)。发起聊天的设备为主设备,接受聊天的设备为从设备,同一次聊天只能有一个意见领袖,即主设备和从设备不能切换。
" a1 L6 H7 N# w7 d! C" X7 G/ w3 t· HCI层,为接口层,通信部,向上为主机提供软件应用程序接口(API),对外为外部硬件控制接口,可以通过串口、SPI、USB来实现设备控制。2 I- D5 X( R Q& I
· L2CAP层,物流部,行李打包盒拆封处,提供数据封装服务
& U {) N4 j- R+ j4 Y- W* n· SM层,保卫处,提供配对和密匙分发,实现安全连接和数据交换. j9 p9 C4 n. U
· ATT层,库房,负责数据检索) m9 \7 i" ~7 R" ?7 m% z }: g( h% n. Y4 V3 ^' h! e
· GATT层,出纳/库房前台,出纳负责处理向上与应用打交道,而库房前台负责向下把检索任务子进程交给ATT库房去做,其关键工作是把为检索工作提供合适的profile结构,而profile由检索关键词(characteristics)组成。# ? _$ ~, B; @: W' N# \- J- s8 j- w$ Q0 \5 x/ ^, \- \
· GAP层,秘书处,对上级,提供应用程序接口,对下级,管理各级职能部门,尤其是指示LL层控制室五种状态切换,指导保卫处做好机要工作。! F1 R( S. A: d3 r0 n6 l' t/ \2 |6 J2 c5 L, X8 `
TI的这款CC2540器件可以单芯片实现BLE蓝牙协议栈结构图的所有组件,包括应用程序。
% h4 y" b. H6 ]8 N) m0 l/ H9 [' A( V0 B6 Z# P0 h1 F. w1 l2 ^4 F4 Y. f/ M
* c9 _) Y( E+ O' Q( ^# q9 Q2、任务调度---OSAL操作系统抽象层5 L. ~1 U; ]0 h }+ K0 |8 J( \) l, R) C- S q
正如一个公司为了实现扩大产能和产品多样化,建立了多个办公室和工厂一样,蓝牙为了实现同多个设备相连,或实现多功能,也实现了功能扩充,这就产生了调度问题。因为,虽然软件和协议栈可扩充,但终究最底层的执行部门只有一个。! {7 y. Q) k Z4 x2 z4 K$ r1 S% Y
为了实现多事件和多任务切换,需要把事件和任务对应的应用,以及其相关的提供支撑“办公室”和“工厂”打包起来,并起一个名字OSAL操作系统抽象层,类似于集团公司以下的子公司。
) J, K! r$ k3 v# ?+ h6 `/ m; Y* P; ?) w: x1 S1 }1 ] p" z1 n; W' K5 I; @2 J; k
5 Q- i/ C+ ~2 }5 q2 [/ f" P" e" |! X
3、设备改造---HAL硬件抽象层
% c5 i% O! {0 {如果实现软件和硬件的低耦合,使软件不经改动或很少改动即可应用在另外的硬件上,这样就方便硬件改造、升级、迁移后,软件的移植。HAL硬件抽象层正是用来抽象各种硬件的资源,告知给软件。其作用类似于嵌入式系统设备驱动的定义硬件资源的h头文件。其角色类似于现代工厂的设备管理部。
3 o4 r; R( c$ D
4 i& V+ u F% L* I& P+ R5 a* d! S [( b. `' w, p3 _+ z, S/ O$ U. D
4、BLE低功耗蓝牙系统架构4 j: P! U x( b7 A! |
! d2 K5 N! A- D0 g0 M* @+ _; j
& X8 V% _2 E6 V+ X6 j L1 b附图 BLE低功耗蓝牙系统架构图 M# G: g9 l! w3 u8 f: I% j2 Z9 j/ C; U- O( L. V4 x$ g3 \
图中的Task用BLE蓝牙协议栈结构图来描述7 {4 f" q7 w9 d0 E% E
9 o0 X$ j- {( w" a" x0 p+ ?% z, j& I. E. b& A7 A
4 f- P5 M& F1 r* ^% t5 k) M, BBLE低功耗蓝牙软件有2个主要组成: OSAL操作系统抽象层和 HAL硬件抽象层,多个Task任务和事件在OSAL管理下工作,而每个任务和事件又包括3个组成:BLE 协议栈,profiles和应用程序。6 J# E& u8 ?9 V; ^. y4 f- v
( j; ^4 c. X, P, u: f7 p* C2 P( ?4 J附图7同样可以用现代工厂模式来类比,如附图8。# @; R( g, w9 m) D1 C8 J0 i( u- o
5 ^, N8 i: H3 [ w" l* h/ X ! _# t" U% a: V0 U6 o
附图 BLE低功耗蓝牙软件5个主要组成用现代工厂架构来类比。
) _5 s" w! n: ^+ E6 t: |7 R; r' e: r+ N; M4 D* [" ?8 t% _ U# T+ R6 Z, }/ \: d1 E
|
|