《TI单模式蓝牙要点计划.docx》由会员分享,可在线阅读,更多相关《TI单模式蓝牙要点计划.docx(18页珍藏版)》请在金锄头文库上搜索。
1、TI单模式蓝牙要点计划TI单模式蓝牙(BLE)片上系统CC2540低能耗的内情一、归纳1、BLE蓝牙协议栈结构附图6BLE蓝牙协议栈结构图分为两部分:控制器和主机。关于4.0从前的蓝牙,这两部分是分开的。全部profile(暂时称为剧本吧,用来定义设备或组件的角色)和应用都建构在GAP/15或GATT之上。下边由结构图的基层组件开始介绍。PHY层,工作车间,1Mbps自适应跳频GFSK(高斯频移键控),运转在免证的2.4GHzLL层为RF控制器,控制室,控制设备处于准备(standby)、广播、监听/扫描(scan)、初始化、连接,这五种状态中一种。五种状态切换描述为:未连接时,设备广播信息(
2、向四周邻居讲“我来了”),别的一个设备向来监听或按需扫描(看看有没有邻居邻居家常里短可聊,打招呼“哈,你来啦”),两个设备连接初始化(搬几把椅子到院子),设备连接上了(开聊)。倡导聊天的设备为主设备,接受聊天的设备为从设备,同一次聊天只好有一个建议领袖,即主设备和从设备不可以切换。HCI层,为接口层,通讯部,向上为主机供应软件应用程序接口(API),对外为外面硬件控制接口,可以经过串口、SPI、USB来实现设备控制。L2CAP层,物流部,行李打包盒拆封处,供应数据封装服务SM层,保卫处,供应配对和密匙发散,实现安全连接和数据互换ATT层,库房,负责数据检索GATT层,出纳/库房前台,出纳负责办
3、理向上与应用打交道,而库房前台负责向下把检索任务子进度交给ATT库房去做,其要点工作是把为检索工作供应适合的profile结构,而profile由检索要点词(characteristics)构成。GAP层,秘书处,对上司,供应给用程序接口,对下级,管理各级职能部门,特别是指示LL层控制室五种状态切换,指导保卫处做好机要工作。TI的这款CC2540器件可以单芯片实现BLE蓝牙协议栈结构图的全部组件,包含应用程序。2、任务调换-OSAL操作系统抽象层正如一个公司为了实现扩大产能和产品多样化,建立了多个办公室和工厂相同,蓝牙为了实现同多个设备相连,或实现多功能,也实现了功能扩大,这就产生了调换问题。
4、因为,固然软件和协议栈可扩大,但终归最基层的执行部门只有一个。为了实现多事件和多任务切换,需要把事件和任务对应的应用,以及其相关的提供支撑“办公室”和“工厂”打包起来,并起一个名字OSAL操作系统抽象层,近似于公司公司以下的子公司。3、设备改造-HAL硬件抽象层假如实现软件和硬件的低耦合,使软件不经改动或极少改动即可应用在别的的硬件上,这样就方便硬件改造、升级、迁徙后,软件的移植。HAL硬件抽象层正是用来抽象各种硬件的资源,见告给软件。其作用近似于嵌入式系统设备驱动的定义硬件资源的h头文件。其角色近似于现代工厂的设备管理部。4、BLE低功耗蓝牙系统架构附图7BLE低功耗蓝牙系统架构图,图中的来
5、描述Task用附图6BLE蓝牙协议栈结构图BLE低功耗蓝牙软件有2个主要构成:OSAL操作系统抽象层和HAL硬件抽象层,多个Task任务和事件在OSAL管理下工作,而每个任务和事件又包含3个构成:BLE协议栈,profiles和应用程序。附图7相同可以用现代工厂模式来类比,如附图8。附图8BLE低功耗蓝牙软件5个主要构成用现代工厂架构来类比。有了上边的简介,下边对OSAL、HAL和BLE进行略微深入的介绍。二、OSAL操作系统抽象层1、软件功能由OSAL管理下的事件来实现OSAL作为调换中心,BLE协议栈、profile定义、全部的应用都环绕它来实现。OSAL不是传统大家使用的操作系统,而是一
6、个同意软件建立和执行事件的循环。软件功能是由任务事件来实现的,创立一个任务事件需要以下工作:创立taskidentifier任务ID;编写任务初始化(taskinitializationroutine)进度,并需要添加到OSAL初始化进度中,这就是说系统启动后不可以动向增加功能;编写任务办理程序;若有需要供应信息服务。BLE协议栈的各层都是以OSAL任务方式实现,因为LL控制室的时间要求最为迫切,所以其任务优先级最高。为了实现任务管理,OSAL经过信息办理(messageprocess),储存管理,计时器准时等附带服求实现。2、系统启动流程为了使用OSAL,在main函数的最后要启动一个名叫o
7、sal_start_system的进度,该进度会调用由特定应用决定的启动函数osalInitTasks(来启动系统)。osalInitTasks逐一调用BLE协议栈各层的启动进度来初始化协议栈。随后,设置一个任务的8bit任务ID(taskID),跳入循环等候执行任务,系统启动完成。3、任务事件与事件办理进度优先级和任务ID任务优先级决定于任务ID,任务ID越小,优先级越高BLE协议栈各层的任务优先级比应用程序的高初始化协议栈后,越早调入的任务,任务ID越高,优先级越低,即系统偏向于办理新到的任务事件变量和旗语每个事件任务由对应的16bit事件变量来标示,事件状态由旌旗(taskflag)来标
8、示。假如事件办理程序已经完成,但其旌旗并无移除,OSAL会以为事情还没有完成而连续在该程序中不返回。比方,在SimpleBLEPeripheral实例工程中,当事件START_DEVICE_EVT发生,其办理函数SimpleBLEPeripheral_ProcessEvent就运转,结束后返回16bit事件变量,并除去旗语SBP_START_DEVICE_EVT。事件办理表单每当OSAL事件检测到了有任务事件,其相应的办理进度将被增加到由办理进度指针构成的事件办理表单中,该表单名叫taskArr(taskarray)。taskArr中各个事件进度的序次和osalInitTasks初始化函数中任
9、务ID的序次是对应的。事件调换的方法有两种,最简单的方法是使用osal_set_event函数(函数原型在OSAL.h文件中),在这个函数中,用户可以像定义函数参数相同设置任务ID和事件旗语。第二种方法是使用osal_start_timerEx函数(函数原型在OSAL_Timers.h文件中),使用方法同osal_set_event函数,而第三个以毫秒为单位的参数osal_start_timerEx则指示该事件办理一定要在这个限准时间内,经过准时器来为事件办理计时。4、储存管理近似于Linux嵌入式系统内存分配C函数mem_alloc,OSAL利用osal_mem_alloc供应基本的储存管理
10、,但osal_mem_alloc只有一个用于定义byte数的参数。对应的内存开释函数为osal_mem_free。5、进度间通讯经过信息体系实现不一样的子系统经过OSAL的信息体系通讯。信息即为数据,数据种类和长度都不限制。信息收发过程描述以下:接收信息,调用函数osal_msg_allocate创立信息占用内存空间(已经包含了osal_mem_alloc函数功能),需要为该函数指定空间大小,该函数返回内存空间地址指针,利用该指针即可把所需数据拷贝到该空间。发送数据,调用函数osal_msg_send,需为该函数指定发送目标任务,OSAL经过旗语SYS_EVENT_MSG见告目标任务,目标任务
11、的办理函数调用osal_msg_receive来接收发来的数据。建议每个OSAL任务都有一个信息办理函数,每当任务收到一个信息后,经过信息的种类来确立需要本任务做相应办理。信息接收并办理完成,调用函数osal_msg_deallocate来开释内存(已经包含了osal_mem_free函数功能)。三、硬件抽象层HAL当新的硬件平台做好后,只需更正HAL,而不需更正HAL之上的协议栈的其余组件和应用程序。四、BLE低功耗蓝牙协议栈1、BLE库文件TI蓝牙协议栈是以单独一个库文件供应的,并无供应源代码,所以不做深入说明。关于TI的BLE实例应用,这个单独库文件已经够用,列出了全部的库文件。附图9B
12、LE库文件因为GAP和GATT与用户程序直接交互,所以下文对库文件中GAP和GATT一一讲解。2、GAP秘书处2.1角色(即服务,功能)GAP运转在以下四种角色的一种:Broadcaster广播员我在,但只可远观,不行连接。Observer观察员看看谁在,但我只远观,不连接。Peripheral外设(从机)我在,谁要我就跟谁走,协议栈单层连接。Central中心(主机)看看谁在,而且愿意跟我走我就带她/他走,协议栈单层或多层连接,当前最多支持3个同时连接。固然指标显示BLE可以同时饰演多个角色,但是在TI供应的BLE实例应用中缺省只支持外设角色。每一种角色都由一个剧本(roleprofile)
13、来定义。2.2连接主从机连接过程一个典型的低功耗蓝牙系统同时包含外设和中心(主机),二者的连接过程以下:外设角色向外发送自己的信息(设备地址、名字等),主机收到外设广播信息后,发送扫描央求(scanrequest)给外设,外设响应主机的央求,连接建立完成。连接参数主要有通讯缝隙(connectioninterval)、外设鄙视(slavelatency)等候时间(supervisiontimeout)等,下边简单说明。、最大耐心通讯缝隙蓝牙通讯是中断的、跳频的,每次连接都可能选择不一样的子频带。跳频的好处是防备频道拥堵,中断连接的好处是节约功耗,通讯缝隙就是指两次连接之间的时间间隔。这个间隔以
14、1.25ms为基本单位,最小6单位,最大3200单位,缝隙越小通讯越及时,缝隙越大功耗越低。外设鄙视外设与主机建立连接此后,没事的时候主机总会按期发送问候信息到外设,外设懒得理睬,这些主机发送的信息就浮云般飘过。可以忽视的连接事件个数从0到499个,最多不超出32秒。有效连接缝隙=连接缝隙x(1+外设鄙视).最大耐心等候时间指的是为了创立一个连接,主机同意的最大等候时间,在这个时间内,不断的试试连接。范围是10个3200个通讯缝隙基本单位1.25ms)。以上三参数大小设置好坏是不言而喻的,在此也飘过。连接参数的设置请参看后文“5.1GAP外设剧本”小节。连接异常办理举例说明连接异常,如主机采纳从机其实不酣畅的参数来央求连接,犹如主从机已经连接了,但从机有想法了,要改参数合约。经过“连接参数更新央求ConnectionParameterUpdateRequest)”来解决问题,交由L2CAP“收发室物流处”办理。连接参数上文已经说了,不再表达。加密办理利用配对实现,利用密匙来加密受权连接。典型的过程是:外设向主机央求口令一个(passkey)以便进行配对,待主机发送了正确的口令以后,连接通讯经过主从机互换密码来校验。因为蓝牙通讯是中断通讯,假如一