【BLE】TI CC2640R2F SDK结构以及一些概念解析
一、概述
CC2640R2F作為BLE單SOC解決方案, TI的SDK將工程分為應(yīng)用程序(APP)和協(xié)議棧(Stack)兩部分
二、協(xié)議棧
協(xié)議棧包括:主機(jī)(Host)和控制器(Controller),如下圖所示
主機(jī)通常是一個(gè)軟件棧,管理兩臺(tái)或多臺(tái)設(shè)備間如何通信以及如何利用無(wú)線電同時(shí)提供幾種不同的服務(wù)。
控制器通常是一個(gè)物理設(shè)備,它能夠發(fā)送和接收無(wú)線電信號(hào),并將這些信號(hào)翻譯成攜帶信息的數(shù)據(jù)包。
Controller(控制器)
1、PHY(物理層Physical Layer)
采用2.4GHz無(wú)線電,完成電磁的傳輸和接收工作,無(wú)線電波通常可以在給定的某個(gè)頻段內(nèi)通過(guò)改變幅度、頻率或相位攜帶信息,在低功耗藍(lán)牙中,采用一種稱(chēng)為高斯頻移鍵控(GFSK)的調(diào)制方式改變無(wú)線電波的頻率,傳輸0或1的信息。
2、LL(鏈路層Link Layer)
負(fù)責(zé)發(fā)廣播、掃描、建立連接以及確保數(shù)據(jù)包按照正確的方式組織、正確地計(jì)算檢驗(yàn)值和加密序列等,簡(jiǎn)單來(lái)說(shuō)就是負(fù)責(zé)兩個(gè)BLE設(shè)備之間的發(fā)現(xiàn)、連接以及數(shù)據(jù)交互,并將數(shù)據(jù)按照一定的格式打包成報(bào)文再通過(guò)物理層進(jìn)行操作。為實(shí)現(xiàn)廣播、連接以及數(shù)據(jù)的傳輸,LL信道(簡(jiǎn)單理解為通信頻道)分為廣播信道(3個(gè))和數(shù)據(jù)信道(37個(gè))總計(jì)40個(gè)信道。其中廣播信道固定為37、38、39,其余的均為數(shù)據(jù)信道。
3、HCI(主機(jī)-控制器接口Host-Controller Interface)
顧名思義,HCI提供主機(jī)和控制器的通信接口,它允許主機(jī)將命令和數(shù)據(jù)發(fā)送到控制器,并且允許控制器將事件和數(shù)據(jù)發(fā)送到主機(jī)。
藍(lán)牙規(guī)范定義了4種物理接口:UART、3線UART、USB、SDIO,應(yīng)用于系統(tǒng)中主機(jī)和控制器分別位于2個(gè)芯片上的情況。對(duì)于CC2640R2F這種單芯片設(shè)備,HCI體現(xiàn)為邏輯接口。
Host(主機(jī))
1、L2CAP(邏輯鏈路控制和適配協(xié)議)
低功耗藍(lán)牙的復(fù)用層,具有協(xié)議復(fù)用、分段重組、服務(wù)質(zhì)量quality of service信息的交換、組抽象的功能。例如連接參數(shù)更新請(qǐng)求和響應(yīng)就在這里實(shí)現(xiàn)。其定義了2個(gè)基本概念:L2CAP信道和L2CAP信令。對(duì)于BLE,有3條固定的信道
2、SM(安全管理器 Security Manager)
安全管理器定義了一個(gè)簡(jiǎn)單的配對(duì)和密鑰分發(fā)協(xié)議,配對(duì)是一個(gè)獲取對(duì)方設(shè)備信任的過(guò)程,通常采取認(rèn)證的方式實(shí)現(xiàn)。
3、ATT(屬性協(xié)議Attribute Protocol)
它由6種基本操作構(gòu)成:請(qǐng)求、響應(yīng)、命令、指示、確認(rèn)、通知。定義了客戶(hù)端與服務(wù)端如何相互發(fā)送符合標(biāo)準(zhǔn)的消息。
4、GATT(通用屬性規(guī)范Generic Attribute Profile)
定義了客戶(hù)端與服務(wù)端如何發(fā)現(xiàn)與使用服務(wù)、特性與描述符的標(biāo)準(zhǔn)方法。分為3種基本類(lèi)型:發(fā)現(xiàn)規(guī)程、客戶(hù)端發(fā)起規(guī)程、服務(wù)端發(fā)起規(guī)程。另外的交換MTU規(guī)程屬于屬性協(xié)議中的MTU交換請(qǐng)求。
發(fā)現(xiàn)規(guī)程:
4種需要發(fā)現(xiàn)的基本對(duì)象:首要服務(wù)、次要服務(wù)以及該服務(wù)實(shí)例所公開(kāi)的特性和描述符。
發(fā)現(xiàn)服務(wù):
有3種發(fā)現(xiàn)服務(wù)的途徑:發(fā)現(xiàn)所有首要服務(wù)、按服務(wù)UUID發(fā)現(xiàn)首要服務(wù)、查找包含服務(wù)。
特性發(fā)現(xiàn):
在服務(wù)被發(fā)現(xiàn)后,便可以發(fā)現(xiàn)每一個(gè)服務(wù)的特性,要獲取完整的特性,需要發(fā)現(xiàn)特性和特性描述符。
客戶(hù)端發(fā)起規(guī)程:
對(duì)于特性,客戶(hù)端可執(zhí)行:讀取特性值、寫(xiě)入特性值、讀取特性描述符、寫(xiě)入特性描述符。
服務(wù)端發(fā)起規(guī)程:
有2種GATT規(guī)程是由服務(wù)端發(fā)起的:通知(Notify)、指示(Indicate),其中
通知是服務(wù)端任何時(shí)刻都可以發(fā)送給客戶(hù)端,而不需要客戶(hù)端的確認(rèn)便可以發(fā)送下一條消息。
指示是服務(wù)端任何時(shí)刻都可以發(fā)送給客戶(hù)端,在進(jìn)行下一次發(fā)送前服務(wù)端必須已經(jīng)確認(rèn)上一條消息被客戶(hù)端接收到了。
5、GAP(通用訪問(wèn)規(guī)范Generic Access Profile)
定義了設(shè)備如何彼此發(fā)現(xiàn)、建立連接以及如何實(shí)現(xiàn)綁定,同時(shí)描述了設(shè)備如何成為廣播者和觀察者,并且實(shí)現(xiàn)無(wú)需連接的數(shù)據(jù)傳輸。
BLE定義了4類(lèi)GAP角色:廣播者、觀察者、外圍設(shè)備、中央設(shè)備。
三、應(yīng)用程序
應(yīng)用程序包括:用戶(hù)的application、GAP角色設(shè)定、profile規(guī)范配置文件。
在這一層,我們根據(jù)實(shí)際需求將芯片設(shè)置為對(duì)應(yīng)的角色(外圍設(shè)備、中央設(shè)備),這一過(guò)程在GAP實(shí)現(xiàn)。
Profile包含了service(服務(wù)) 、characteristic(特性)
1、profile
profile可以理解為一種規(guī)范,一個(gè)標(biāo)準(zhǔn)的通信協(xié)議,它通常存在于從機(jī)中。藍(lán)牙組織規(guī)定了一些標(biāo)準(zhǔn)的profile,例如 HID OVER GATT ,防丟器 ,心率計(jì)等。每個(gè)profile中會(huì)包含多個(gè)service,每個(gè)service代表從機(jī)的一種能力。
2、service
service可以理解為一個(gè)服務(wù),在ble從機(jī)中,通過(guò)有多個(gè)服務(wù),例如電量信息服務(wù)、系統(tǒng)信息服務(wù)等,每個(gè)service中又包含多個(gè)characteristic特征值。每個(gè)具體的characteristic特征值才是ble通信的主題。比如當(dāng)前的電量是80%,所以會(huì)通過(guò)電量的characteristic特征值存在從機(jī)的profile里,這樣主機(jī)就可以通過(guò)這個(gè)characteristic來(lái)讀取80%這個(gè)數(shù)據(jù)
3、characteristic
characteristic特征值,ble主從機(jī)的通信均是通過(guò)characteristic來(lái)實(shí)現(xiàn),可以理解為一個(gè)標(biāo)簽,通過(guò)這個(gè)標(biāo)簽可以獲取或者寫(xiě)入想要的內(nèi)容。
4、UUID
UUID,統(tǒng)一識(shí)別碼,我們剛才提到的service和characteristic,都需要一個(gè)唯一的uuid來(lái)標(biāo)識(shí)。藍(lán)牙聯(lián)盟已經(jīng)定義了許多標(biāo)準(zhǔn)的UUID,見(jiàn)博客,用戶(hù)也可以自行定義的UUID格式,那么便只能被自己所理解而無(wú)法被采用UUID標(biāo)準(zhǔn)的設(shè)備所理解(會(huì)顯示Unknow)
每個(gè)從機(jī)應(yīng)用中都會(huì)有一個(gè)Profile的存在,Profile包含service, 用戶(hù)可自行添加service,每個(gè)service又包含了多個(gè)characteristic,主機(jī)和從機(jī)之間的通信,均是通過(guò)characteristic來(lái)實(shí)現(xiàn),即通信數(shù)據(jù)都存放于characteristic中。
四 、ICall
SDK將工程劃分為2個(gè)工程(APP和Stack)進(jìn)行管理,那么APP和Stack之間的通信便無(wú)法像常規(guī)API調(diào)用和全局變量方式進(jìn)行消息傳遞,這時(shí)候便引入ICall(消息框架) 基于TI-RTOS提供服務(wù)(例如,同步線程、消息、事件)完成BLE協(xié)議棧和應(yīng)用程序在兩個(gè)工程的消息交互,保證了應(yīng)用程序和協(xié)議棧在統(tǒng)一的TI-RTOS環(huán)境中完成高效運(yùn)行、相互通信和資源共享。
總結(jié)
以上是生活随笔為你收集整理的【BLE】TI CC2640R2F SDK结构以及一些概念解析的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【BLE】信号强度(RSSI)知识整理
- 下一篇: 【BLE】BLE中常用的UUID(标准)