999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

低能耗藍(lán)牙4.0協(xié)議原理與實(shí)現(xiàn)方法

2012-07-25 07:16:50徐金茍
微型電腦應(yīng)用 2012年10期
關(guān)鍵詞:設(shè)備

徐金茍

0 引言

隨著藍(lán)牙技術(shù)由手機(jī)、游戲、耳機(jī)、便攜電腦和汽車等傳統(tǒng)應(yīng)用領(lǐng)域向物聯(lián)網(wǎng)、醫(yī)療等新領(lǐng)域擴(kuò)展,市場對低功耗的要求越來越高。藍(lán)牙4.0協(xié)議版本是在藍(lán)牙3.0高速版本基礎(chǔ)上增加了低能耗協(xié)議部分。嵌入式設(shè)備端在很多應(yīng)用場景要求能耗非常低,傳輸速率要求也不高,對于這類設(shè)備,可以僅實(shí)現(xiàn)4.0協(xié)議中低能耗藍(lán)牙部分,通過與支持雙模的主機(jī)設(shè)備進(jìn)行通信或者跟同類設(shè)備通信。

由于藍(lán)牙4.0協(xié)議擁有極低的運(yùn)行和待機(jī)功耗,使用一粒紐扣電池甚至可連續(xù)工作數(shù)年之久;同時還有低成本、跨廠商互操作性、3毫秒低延遲、AES-128加密等諸多特色,可以廣泛應(yīng)用于計(jì)步器、心律監(jiān)視器、智能儀表、傳感器物聯(lián)網(wǎng)等眾多領(lǐng)域,大大擴(kuò)展藍(lán)牙技術(shù)的應(yīng)用范圍。所以,目前很多藍(lán)牙廠商也都推出了符合藍(lán)牙 4.0 版本的低功耗協(xié)議的藍(lán)牙芯片。本文介紹藍(lán)牙4.0低能耗部分協(xié)議即LE的技術(shù)原理、協(xié)議架構(gòu)以及給出一個具體的實(shí)現(xiàn)方法。

1 協(xié)議原理

LE協(xié)議的底層與基礎(chǔ)藍(lán)牙協(xié)議底層基本相似,但在主機(jī)端,針對傳感器網(wǎng)絡(luò)應(yīng)用推出了屬性協(xié)議 ATT以及通用屬性剖面GATT,具體協(xié)議分層結(jié)構(gòu),如圖1所示:

圖1 協(xié)議分層結(jié)構(gòu)圖

其中,基于邏輯鏈路與適配協(xié)議即L2CAP以上的部分可在主機(jī)端實(shí)現(xiàn),這一部分可稱為主機(jī)端部分,HCI層以下部分可稱為芯片控制器層也可簡稱底層協(xié)議。下面我們對每層協(xié)議做一下描述。

(1)物理層(Physical Layer)

物理層采用調(diào)頻技術(shù)減少干擾與信號衰減,從2.402~2.480 GHz均勻分為40個信道,每個信道寬2MHz;使用GFSK調(diào)制解調(diào)方式;輸出功率為:0.01~10mw;傳輸速率1 Mb/s。提供3個固定的廣播信道,廣播數(shù)據(jù)用于建立連接以及發(fā)現(xiàn)設(shè)備,這樣使得建立連接的時間可以壓縮到3ms左右,大大提高了設(shè)備建立連接的效率。另外提供 37個數(shù)據(jù)信道采用自適應(yīng)調(diào)頻技術(shù)發(fā)送數(shù)據(jù)。

(2)鏈路層(Link Layer)

鏈路層功能是執(zhí)行一些基帶協(xié)議底層數(shù)據(jù)包管理協(xié)議。

鏈路層設(shè)備主要有待機(jī)、發(fā)起、掃描、連接、廣播5種工作狀態(tài),狀態(tài)轉(zhuǎn)換圖,如圖2所示:

圖2 狀態(tài)轉(zhuǎn)換圖

待機(jī)狀態(tài)不發(fā)送和不接受任何包,任何狀態(tài)都可以進(jìn)入待機(jī)狀態(tài)。

廣播狀態(tài)在廣播信道發(fā)送廣播包并且監(jiān)聽可能的響應(yīng)包,廣播狀態(tài)可以由待機(jī)狀態(tài)進(jìn)入。

掃描狀態(tài)將會監(jiān)聽廣播信道包,掃描狀態(tài)可以從待機(jī)狀態(tài)進(jìn)入。

發(fā)起狀態(tài)將會監(jiān)聽從特定設(shè)備發(fā)出的廣播包并且發(fā)起鏈接請求作為響應(yīng),發(fā)起狀態(tài)可從待機(jī)狀態(tài)進(jìn)入。

連接狀態(tài)可以從發(fā)起狀態(tài)或者廣播狀態(tài)進(jìn)入,在連接狀態(tài)下有主從兩種角色。

當(dāng)從發(fā)起狀態(tài)進(jìn)入連接狀態(tài)時,發(fā)起連接請求,將會是主設(shè)備,當(dāng)從廣播狀態(tài)進(jìn)入連接狀態(tài)時,將會是從設(shè)備。

鏈路層主要有兩種重要的事件操作:掃描與建立鏈接。

設(shè)備掃描有被動掃描和主動掃描兩種:

被動掃描是通過被動接收廣播包得到設(shè)備信息。被動掃描過程,如圖3所示:

圖3 被動掃描

主動掃描是通過發(fā)送掃描請求得到掃描回應(yīng)得到設(shè)備信息。主動掃描過程,如圖4所示:

圖4 主動掃描

而建立鏈接過程是通過發(fā)送鏈接請求包來建立設(shè)備鏈接。建立鏈接過程,如圖5所示:

圖5 建立連接流程圖

(3)主機(jī)控制接口層(HCILayer)

主機(jī)控制接口與標(biāo)準(zhǔn)藍(lán)牙技術(shù)相同,提供了主機(jī)與控制器層的通信方式與命令事件格式,重用標(biāo)準(zhǔn)藍(lán)牙傳輸層接口如UART,USB等。

(4)邏輯鏈路與適配協(xié)議層(L2CAPLayer)

與標(biāo)準(zhǔn)藍(lán)牙技術(shù)相同,為上層提供了數(shù)據(jù)封裝業(yè)務(wù),提供端到端的邏輯數(shù)據(jù)通信。

(5)安全管理層(Security Manager Layer)

定義了配對和密鑰分發(fā)方法,提供其它層協(xié)議接口來安全的建立連接以及交換數(shù)據(jù)。安全管理層不涉及具體的BLE安全算法,只是提供一些接口,為節(jié)省功耗以及降低復(fù)雜性,具體安全算法可以通過在底層硬件實(shí)現(xiàn)。

(6)通用接入層(GAP Layer)

定義了通用的接口,供應(yīng)用層調(diào)用底層模塊,比如設(shè)備發(fā)現(xiàn),建立連接相關(guān)的業(yè)務(wù),同時封裝了安全設(shè)置相關(guān)的API。

(7)屬性協(xié)議層(ATT Layer)

屬性協(xié)議允許設(shè)備以“屬性”的形式向另外的設(shè)備暴露他的某些數(shù)據(jù)。在ATT協(xié)議里,暴露屬性的稱為Server 端,另外一端稱為Client。

(8)通用屬性剖面(GATT Profile)

GATT 層是一種具體使用屬性協(xié)議的應(yīng)用框架。GATT定義了屬性協(xié)議應(yīng)用的架構(gòu)。在BLE協(xié)議中,應(yīng)用中數(shù)據(jù)片段被稱為“特征“, 而BLE中兩個設(shè)備之間的數(shù)據(jù)通信就是通過GATT 子過程來處理的。

2 協(xié)議的實(shí)現(xiàn)方法

低能耗藍(lán)牙是一種對數(shù)據(jù)傳輸速率要求不高的通信協(xié)議,在實(shí)現(xiàn)BLE數(shù)據(jù)協(xié)議時采用一種簡單的分層協(xié)議架構(gòu)。設(shè)計(jì)時可以將主機(jī)端與控制器端通過HCI 層分開實(shí)現(xiàn)。

這里,可以考慮采用一種通用的通信協(xié)議實(shí)現(xiàn)框架,該實(shí)現(xiàn)框架運(yùn)行效率高,移植方便,并且可以運(yùn)用到其他通信協(xié)議上。

首先,考慮一下一般通信協(xié)議需要考慮的主要實(shí)現(xiàn)策略:

(1)協(xié)議層次結(jié)構(gòu)

分層結(jié)構(gòu)是如果每層由一個任務(wù)來管理資源,其他層與之通信采用消息隊(duì)列或者信號量等通信原語,這種結(jié)構(gòu)層次較為清晰,由操作系統(tǒng)來負(fù)責(zé)調(diào)度和各層執(zhí)行,但這種結(jié)構(gòu)需要考慮系統(tǒng)任務(wù)切換時占用的開銷。特別是對小型資源有限的嵌入式系統(tǒng)。

另外一種方法就是由一個任務(wù)來處理所有各層事物,這種方法可以減少任務(wù)切換的開銷,但系統(tǒng)看起來結(jié)構(gòu)不清晰,容易發(fā)生錯誤。

(2)Buffer 管理機(jī)制

通信協(xié)議數(shù)據(jù)Buffer的管理是一個難點(diǎn),處理的不好會影響系統(tǒng)的效率。一種典型的應(yīng)用是在不同層級之間采用數(shù)據(jù)分配、拷貝,然后釋放,這種機(jī)制,結(jié)構(gòu)清晰,但拷貝數(shù)據(jù)會影響系統(tǒng)的效率,如圖6所示:

圖6 內(nèi)存拷貝方式

如果采用零拷貝的機(jī)制,在分配Buffer時預(yù)留所有頭部和尾部區(qū)域,到各層通過填充相關(guān)信息,直到數(shù)據(jù)處理完畢,釋放所分配的內(nèi)存空間這種機(jī)制,將會有效提高系統(tǒng)的效率,如圖7所示:

圖7 內(nèi)存無拷貝方式

(3)發(fā)送數(shù)據(jù)包與接收數(shù)據(jù)包機(jī)制

當(dāng)有數(shù)據(jù)從應(yīng)用層或者硬件到達(dá)的時候,通常有兩種主要的策略:一種是通過周期性的查詢的方式,另一種是通過中斷或者事件觸發(fā)。采用查詢的方式可能會影響數(shù)據(jù)包的響應(yīng)速度,而采用中斷的方式將會打斷任務(wù)進(jìn)程。如果頻繁的中斷將會影響系統(tǒng)任務(wù)執(zhí)行的效率。

(4)LE實(shí)現(xiàn)框架

我們基于LE協(xié)議的實(shí)現(xiàn),主要考慮協(xié)議移植方便,要求效率高,代碼層次清晰,設(shè)計(jì)了如下一種通信協(xié)議框架。這種協(xié)議框架是以狀態(tài)機(jī)推動每層數(shù)據(jù)的處理與交互,各個模塊都有一個完備的狀態(tài)機(jī)實(shí)現(xiàn),各模塊之間通過事件來相互通信。各個狀態(tài)機(jī)在一個任務(wù)里實(shí)現(xiàn),從而減少了任務(wù)切換的開銷。而 Buffer 的處理采用零拷貝的方式,通過分配預(yù)約資源對 Buffer 加以管理和分配,從而減少了內(nèi)存拷貝占用CPU資源的開銷。

對于主機(jī)端,協(xié)議的實(shí)現(xiàn)框架,如圖8所示:

圖8 主機(jī)端實(shí)現(xiàn)框架

通過各層的狀態(tài)機(jī)推動系統(tǒng)的交互與運(yùn)行。

而對于LE控制器層的實(shí)現(xiàn),可分為3層:HCI 層、鏈路層以及基帶層。協(xié)議框架,如圖9所示:

圖9 控制器端協(xié)議框架

HCI層提供了 HCI命令格式與各種命令分組,以及將事件通過 HCI傳輸層發(fā)送給上層應(yīng)用程序。鏈路層相當(dāng)于標(biāo)準(zhǔn)藍(lán)牙中的鏈路管理層,對鏈路狀態(tài)機(jī)進(jìn)行維護(hù),對鏈路信息進(jìn)行管理,是底層BLE的核心。基帶層主要是對硬件資源進(jìn)行管理、調(diào)度。

主機(jī)控制器層對上層發(fā)下來的命令或者數(shù)據(jù)發(fā)送到鏈路層,鏈路層維護(hù)一個狀態(tài)機(jī),根據(jù)當(dāng)前狀態(tài)以及事件信息確定與基帶層或者在本層進(jìn)行處理;而基帶層也維護(hù)了一個狀態(tài)機(jī),根據(jù)收到的事件以及數(shù)據(jù)包做出正確的響應(yīng)。而對于基帶層數(shù)據(jù)包的發(fā)送和接收,通過中斷的方式,從而使數(shù)據(jù)包能夠得到及時的處理,而且由于基帶層和鏈路層狀態(tài)機(jī)都在一個任務(wù)中執(zhí)行,所以,中斷的加入也不會導(dǎo)致任務(wù)的處理受到很大的影響。

(5)有限狀態(tài)機(jī)

由于協(xié)議框架要求將各層抽象出一種狀態(tài)機(jī),所以狀態(tài)機(jī)的實(shí)現(xiàn)決定了協(xié)議框架的好與壞。下面舉例討論一下狀態(tài)機(jī)實(shí)現(xiàn)的基本方法:

先介紹兩個重要的狀態(tài)機(jī)實(shí)現(xiàn)的數(shù)據(jù)結(jié)構(gòu):

比如一個發(fā)送數(shù)據(jù)的狀態(tài)轉(zhuǎn)換圖,如圖10所示:

圖10 狀態(tài)轉(zhuǎn)換圖

初始狀態(tài)為STATE1,當(dāng)在此狀態(tài)接收到主機(jī)送來的數(shù)據(jù)包,系統(tǒng)將會執(zhí)行動作Send_CurData, 發(fā)送當(dāng)前數(shù)據(jù)包,并且切換到STATE2狀態(tài), 當(dāng)在STATE2狀態(tài)下, 系統(tǒng)接收到回應(yīng)的Ack, 發(fā)送下一個數(shù)據(jù)包,切換到STATE3狀態(tài),如果在STATE3狀態(tài)下,接收到Ack確認(rèn), 并且沒有數(shù)據(jù)包發(fā)送,回到狀態(tài)STATE1狀態(tài)。

這張狀態(tài)圖對應(yīng)的表格為:

StateTypeTab StateTabForFSM[]= {/*CurState Event Action Return NextState */STATE1, Rx_data, SendCur, Reserved, STATE2 STATE2, RX_Ack, SendNext, Reserved, STATE3 STATE3, RX_Ack, Null, Reserved, STATE1 FsmType Fsm= {/* Start StateCount Pointer to FSM Table */STATE1, 3, StateTabForFSM

這樣狀態(tài)機(jī)就準(zhǔn)備好了,現(xiàn)在的工作就是實(shí)現(xiàn)操作函數(shù),來使得行為連貫以及狀態(tài)機(jī)正確地遷移。具體到低能耗藍(lán)牙協(xié)議,就是給每層設(shè)計(jì)一個完整的狀態(tài)圖。代碼維護(hù)時對照狀態(tài)表格和狀態(tài)遷移圖,就會非常容易理解協(xié)議和查找問題。

3 結(jié)論

通過對藍(lán)牙4.0低能耗部分無線通信技術(shù)原理的介紹和以及通信協(xié)議的實(shí)現(xiàn)方法,讀者可以了解LE協(xié)議的基本原理,以及分層架構(gòu)的通信協(xié)議實(shí)現(xiàn)的一般方法和應(yīng)對策略,從而為從事藍(lán)牙技術(shù)或者其他通信技術(shù)的協(xié)議的工作者提供一定的參考。由于篇幅所限,本文沒有對LE協(xié)議詳細(xì)實(shí)現(xiàn)做過多描述。

[1]Bluetooth SIG.Bluetooth Specification Version 4.0.2010,06

[2]Bluetooth SIG.Core Specification V2.1+EDR of Bluetooth Specification. 2007,7

[3]Henrik Lindbom, Jonas Wigstein. A portable protocol stack framework for embedded systems. 2000

[4]Robin Heydon. ULP 開啟全新無線應(yīng)用.[j]電子設(shè)計(jì)應(yīng)用 2007

[5]羅瑋 一種新興的藍(lán)牙技術(shù)—超低功耗藍(lán)牙技術(shù)[j]現(xiàn)代電信科技 2010

[6]金純 編著. 超低功耗(ULP)藍(lán)牙技術(shù)規(guī)范解析. [M]國防工業(yè)出版社. 2010,5

猜你喜歡
設(shè)備
諧響應(yīng)分析在設(shè)備減振中的應(yīng)用
調(diào)試新設(shè)備
基于VB6.0+Access2010開發(fā)的設(shè)備管理信息系統(tǒng)
基于MPU6050簡單控制設(shè)備
電子制作(2018年11期)2018-08-04 03:26:08
廣播發(fā)射設(shè)備中平衡輸入與不平衡輸入的轉(zhuǎn)換
電子制作(2018年10期)2018-08-04 03:24:48
食之無味,棄之可惜 那些槽點(diǎn)滿滿的可穿戴智能設(shè)備
500kV輸變電設(shè)備運(yùn)行維護(hù)探討
HTC斥資千萬美元入股虛擬現(xiàn)實(shí)設(shè)備商WEVR
IT時代周刊(2015年8期)2015-11-11 05:50:37
Automechanika Shanghai 2014 之“看” 汽保設(shè)備篇
如何在設(shè)備采購中節(jié)省成本
主站蜘蛛池模板: 亚洲日韩AV无码一区二区三区人| 欧美日韩动态图| 亚洲男人的天堂久久香蕉| 久久狠狠色噜噜狠狠狠狠97视色| 亚洲天堂精品在线| 2021天堂在线亚洲精品专区| 真实国产乱子伦高清| 黄色污网站在线观看| 国产欧美日本在线观看| 久久国产拍爱| 国产成人精品高清在线| 国产91蝌蚪窝| 狼友视频一区二区三区| 国产在线高清一级毛片| 国产麻豆va精品视频| 91小视频版在线观看www| 黄色网站不卡无码| 国产黑丝一区| 国产熟睡乱子伦视频网站| 九九精品在线观看| 18禁影院亚洲专区| 成人亚洲国产| 国产高清精品在线91| 亚洲国产欧美自拍| 9久久伊人精品综合| 亚洲欧美极品| 国产高清国内精品福利| 亚洲综合在线最大成人| 国产区成人精品视频| 亚洲天堂网视频| 一个色综合久久| 国内精品视频| 国产精品入口麻豆| 国产精品久久精品| 青青极品在线| 国产视频一二三区| 91麻豆国产精品91久久久| 71pao成人国产永久免费视频| 亚洲人成亚洲精品| 性喷潮久久久久久久久| 成人噜噜噜视频在线观看| 日韩欧美中文亚洲高清在线| 永久免费无码日韩视频| 白浆视频在线观看| 91福利一区二区三区| 无码久看视频| 又猛又黄又爽无遮挡的视频网站| 国产免费精彩视频| 免费毛片视频| 亚洲AV成人一区二区三区AV| 久久永久免费人妻精品| 亚洲AV无码不卡无码 | 久久77777| 98超碰在线观看| 国产一区二区精品高清在线观看| 国产小视频网站| 国产一级做美女做受视频| 在线精品亚洲一区二区古装| 在线毛片免费| 欧类av怡春院| 国产视频只有无码精品| 国产午夜人做人免费视频中文| 99视频只有精品| 国产午夜人做人免费视频中文| 亚洲日韩精品无码专区| 国产97视频在线| 人与鲁专区| 亚洲精品不卡午夜精品| 在线观看免费黄色网址| 欧美日韩亚洲国产主播第一区| 中文字幕啪啪| 国产欧美专区在线观看| 潮喷在线无码白浆| 日本一区中文字幕最新在线| 欧美日韩v| 91在线视频福利| 国产69精品久久久久孕妇大杂乱| 成人午夜视频在线| 成人免费一区二区三区| 中文字幕天无码久久精品视频免费| 伊人国产无码高清视频| 少妇极品熟妇人妻专区视频|