本發(fā)明涉及一種藍(lán)牙傳輸速率的測試方法,具體地涉及一種低功耗藍(lán)牙傳輸速率的測試方法。
背景技術(shù):
隨著信息技術(shù)的高速發(fā)展,低成本、高集成度、低功耗的無線傳感器網(wǎng)絡(luò)(wsn)在軍事、醫(yī)療、交通、環(huán)境監(jiān)測、智能家居等領(lǐng)域得到了廣泛的應(yīng)用,無線傳感器網(wǎng)絡(luò)也被認(rèn)為是21世紀(jì)最重要的技術(shù)之一。無線傳感網(wǎng)絡(luò)一般只是為了測量溫度、濕度、血壓等簡單的物理環(huán)境數(shù)據(jù)而建立的,但是研究人員已不滿足無線傳感網(wǎng)絡(luò)對簡單信息的監(jiān)測需求,已經(jīng)將大數(shù)據(jù)量多媒體信息引入到無線傳感網(wǎng)絡(luò)監(jiān)測活動(dòng)中來。
藍(lán)牙技術(shù)聯(lián)盟于2012年發(fā)布了藍(lán)牙核心規(guī)格4.0版本,一般將藍(lán)牙規(guī)范1.0,2.0和3.0下的br/edr藍(lán)牙稱為傳統(tǒng)藍(lán)牙,而將藍(lán)牙4.0規(guī)范下的le藍(lán)牙稱為低功耗藍(lán)牙(ble),隨后又發(fā)布了藍(lán)牙4.1、藍(lán)牙4.2,其核心部分都是低功耗藍(lán)牙。低功耗藍(lán)牙技術(shù)重要的應(yīng)用在于其數(shù)據(jù)的無線傳輸,在低功耗藍(lán)牙進(jìn)行大數(shù)據(jù)量數(shù)據(jù)傳輸時(shí),其傳輸速率是重點(diǎn)研究的對象,在實(shí)際應(yīng)用中,低功耗藍(lán)牙芯片的傳輸速率是否滿足系統(tǒng)的數(shù)據(jù)傳輸需求尤為重要。
在低功耗藍(lán)牙協(xié)議規(guī)范里提出了:如果有效載荷長度為num_payload,完整的傳輸周期時(shí)長為com_trans_time,數(shù)據(jù)吞吐量為data_throu,則藍(lán)牙低功耗數(shù)據(jù)吞吐量的計(jì)算公式為:
data_throu=num_payload/com_trans_time
但是該種測試方法為低功耗藍(lán)牙的傳輸速率的理論值,在測試具體的低功耗藍(lán)牙傳輸速率時(shí)并不適用。
在低功耗藍(lán)牙規(guī)范中,低功耗藍(lán)牙傳輸速率的理論值是最理想情況下得出的。在低功耗藍(lán)牙協(xié)議中并沒有規(guī)定一個(gè)連接事件中數(shù)據(jù)包的數(shù)目,更沒有規(guī)定數(shù)據(jù)包的交互在一個(gè)連接間隔中持續(xù)進(jìn)行,因而不同芯片制造商的鏈路層數(shù)據(jù)包的處理方式等會(huì)存在差異,也就是說不同商家的低功耗藍(lán)牙芯片傳輸速率也可能不同,但都小于上述理論值。
技術(shù)實(shí)現(xiàn)要素:
為了解決上述技術(shù)問題,本發(fā)明的目的是提出一種低功耗藍(lán)牙傳輸速率的測試方法,測得的傳輸速率比較準(zhǔn)確,可以用于低功耗藍(lán)牙技術(shù)在實(shí)現(xiàn)大數(shù)據(jù)量傳輸應(yīng)用時(shí)參考實(shí)際芯片的傳輸速率需求。
本發(fā)明的技術(shù)方案是:
一種低功耗藍(lán)牙傳輸速率的測試方法,包括以下步驟:
s01:在測試時(shí),將控制器的緩沖區(qū)填滿,在發(fā)送數(shù)據(jù)時(shí),判斷剩余緩沖區(qū)的大小,如果緩沖區(qū)未滿進(jìn)行持續(xù)發(fā)送,已滿則等待;
s02:抓取低功耗藍(lán)牙的數(shù)據(jù)信道的空中包,分析一個(gè)數(shù)據(jù)信道中的數(shù)據(jù)包交互的次數(shù),確定一個(gè)連接事件中發(fā)送的數(shù)據(jù)包數(shù)目packet_num;
s03:低功耗藍(lán)牙的傳輸速率為rate,通過以下公式計(jì)算:
rate=(packet_size*packet_num)/con_interval
其中,packet_size為每個(gè)數(shù)據(jù)包的大小,con_interval為連接事件的間隔。
優(yōu)選的,所述剩余緩沖區(qū)的大小通過發(fā)送讀控制器緩沖區(qū)的命令,根據(jù)返回的參數(shù)確定。
與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)是:
此發(fā)明的測試方法測得的傳輸速率比較準(zhǔn)確,可以用于低功耗藍(lán)牙技術(shù)在實(shí)現(xiàn)大數(shù)據(jù)量傳輸應(yīng)用時(shí)參考實(shí)際芯片的傳輸速率需求。并且該測試方法可以達(dá)到帶寬利用率最大化。
附圖說明
下面結(jié)合附圖及實(shí)施例對本發(fā)明作進(jìn)一步描述:
圖1是本發(fā)明低功耗藍(lán)牙傳輸速率的測試方法的流程圖;
圖2是本發(fā)明連接事件中主從機(jī)數(shù)據(jù)包交互狀態(tài);
圖3是本發(fā)明發(fā)送狀態(tài)的檢測流程圖;
圖4是本發(fā)明數(shù)據(jù)包分析結(jié)構(gòu)示意圖;
圖5是本發(fā)明低功耗藍(lán)牙數(shù)據(jù)信道空中包。
具體實(shí)施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明了,下面結(jié)合具體實(shí)施方式并參照附圖,對本發(fā)明進(jìn)一步詳細(xì)說明。應(yīng)該理解,這些描述只是示例性的,而并非要限制本發(fā)明的范圍。此外,在以下說明中,省略了對公知結(jié)構(gòu)和技術(shù)的描述,以避免不必要地混淆本發(fā)明的概念。
實(shí)施例:
如圖1所示,一種低功耗藍(lán)牙傳輸速率的測試方法,包括以下步驟:
s01:在測試時(shí),將控制器的緩沖區(qū)填滿,在發(fā)送數(shù)據(jù)時(shí),判斷剩余緩沖區(qū)的大小,如果緩沖區(qū)未滿進(jìn)行持續(xù)發(fā)送,已滿則等待;
s02:抓取低功耗藍(lán)牙的數(shù)據(jù)信道的空中包,分析一個(gè)數(shù)據(jù)信道中的數(shù)據(jù)包交互的次數(shù),確定一個(gè)連接事件中發(fā)送的數(shù)據(jù)包數(shù)目packet_num;
s03:低功耗藍(lán)牙的傳輸速率為rate,通過以下公式計(jì)算:
rate=(packet_size*packet_num)/con_interval
其中,packet_size為每個(gè)數(shù)據(jù)包的大小,con_interval為連接間隔。
低功耗藍(lán)牙數(shù)據(jù)通信都是發(fā)生在連接事件中,在每個(gè)連接事件中,主從機(jī)雙方可以進(jìn)行多次數(shù)據(jù)包的交互,主機(jī)會(huì)先發(fā)送數(shù)據(jù)包,從機(jī)會(huì)在150μs之后進(jìn)行回應(yīng),如果主機(jī)和從機(jī)雙方都沒有數(shù)據(jù)需要進(jìn)行傳輸,會(huì)回復(fù)一個(gè)空包,以用來維持兩者的連接狀態(tài),如圖2所示。連接事件的間隔是由低功耗藍(lán)牙在進(jìn)行連接時(shí)由用戶進(jìn)行設(shè)定。
低功耗藍(lán)牙的控制器部分有一個(gè)緩沖區(qū),在連接事件到來時(shí),會(huì)在緩沖區(qū)中取走相應(yīng)數(shù)量的數(shù)據(jù)包發(fā)送出去。為了帶寬利用率最大化,在進(jìn)行測試時(shí),要讓控制器的緩沖區(qū)填滿,低功耗藍(lán)牙協(xié)議提供了一種讀控制器緩沖區(qū)的命令,其返回兩種參數(shù),分別是鏈路層所支持的數(shù)據(jù)包的大小以及鏈路層剩余緩沖區(qū)的大小。在發(fā)送數(shù)據(jù)時(shí),先判斷剩余的緩沖區(qū)大小,如果緩沖區(qū)未滿進(jìn)行持續(xù)發(fā)送,已滿則等待。如圖3所示。
如果一個(gè)數(shù)據(jù)包的大小是packet_size,一個(gè)連接事件能發(fā)送數(shù)據(jù)包的數(shù)量為packet_num,每個(gè)事件發(fā)送的間隔為con_interval,低功耗藍(lán)牙的傳輸速率為rate,則有下面公式:
rate=(packet_size*packet_num)/con_interval
(1)關(guān)于低功耗藍(lán)牙的實(shí)際能傳輸數(shù)據(jù)包大小
以低功耗藍(lán)牙4.0/4.1版本為例,鏈路層數(shù)據(jù)包的信息載荷區(qū)數(shù)據(jù)來自于上層l2cap層。l2cap數(shù)據(jù)包結(jié)構(gòu)如下所示:
l2cap層數(shù)據(jù)包含有2字節(jié)的長度域,2字節(jié)的信道cid,那么剩下的信息載荷區(qū)為23字節(jié)。而l2cap層信息載荷區(qū)數(shù)據(jù)來自于上層att層,att層數(shù)據(jù)包結(jié)構(gòu)如下:
att層數(shù)據(jù)包中含有1個(gè)字節(jié)的屬性操作碼,剩余23字節(jié)為屬性參數(shù)(如果支持的最大傳輸單元為23字節(jié)),但是低功耗藍(lán)牙在在使用notify(通知)、indicate(指示)、write(寫)的方式發(fā)送數(shù)據(jù)時(shí),還需要使用2字節(jié)的屬性句柄,所以實(shí)際低功耗藍(lán)牙實(shí)際能傳輸?shù)臄?shù)據(jù)為20字節(jié)。總體的結(jié)構(gòu)如圖4所示。
(2)關(guān)于一個(gè)連接事件發(fā)送數(shù)據(jù)包的數(shù)量
不同廠家的低功耗藍(lán)牙芯片由于設(shè)計(jì)要求不同,一個(gè)連接事件所能發(fā)送的數(shù)據(jù)包數(shù)目也不同。在低功耗藍(lán)牙中,每個(gè)連接事件發(fā)生在0~36的數(shù)據(jù)信道中,每個(gè)連接事件到來時(shí)都會(huì)切換到另一個(gè)數(shù)據(jù)通道上進(jìn)行數(shù)據(jù)傳輸,一個(gè)連接事件持續(xù)時(shí)間中的數(shù)據(jù)交互都是在同一個(gè)通道上。那么,可以通過抓取低功耗藍(lán)牙的空中包,分析一個(gè)數(shù)據(jù)信道中有幾次數(shù)據(jù)包的交互,就可以確定一個(gè)連接事件中發(fā)送的數(shù)據(jù)包數(shù)目。如圖5為一個(gè)抓包示例。
從圖5可知,第一個(gè)連接事件發(fā)生在第0x0f數(shù)據(jù)通道、第二個(gè)連接事件發(fā)生在第0x18數(shù)據(jù)信道、第三個(gè)連接事件發(fā)生在第0x21數(shù)據(jù)信道。每個(gè)連接事件中,總共進(jìn)行了4次數(shù)據(jù)包的交互,單向發(fā)送了2個(gè)數(shù)據(jù)包。
(3)關(guān)于連接事件的間隔
低功耗藍(lán)牙的連接事件的間隔為一次連接事件的開始到下次連接事件的開始。連接事件的間隔在主機(jī)發(fā)起連接時(shí)由用戶設(shè)定,也可以在兩個(gè)低功耗藍(lán)牙設(shè)備建立連接后,由從機(jī)發(fā)起連接參數(shù)更新請求,主機(jī)可以接收也可以拒絕。低功耗藍(lán)牙協(xié)議規(guī)定連接間隔參數(shù)范圍是0x0006—0x0c80之間,然后乘以1.25ms,所得的時(shí)間范圍為7.5ms—4s之間。也就意味著,連接的時(shí)間間隔必須大于7.5ms,不能超過4s,還必須是1.25的倍數(shù)。
應(yīng)當(dāng)理解的是,本發(fā)明的上述具體實(shí)施方式僅僅用于示例性說明或解釋本發(fā)明的原理,而不構(gòu)成對本發(fā)明的限制。因此,在不偏離本發(fā)明的精神和范圍的情況下所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。此外,本發(fā)明所附權(quán)利要求旨在涵蓋落入所附權(quán)利要求范圍和邊界、或者這種范圍和邊界的等同形式內(nèi)的全部變化和修改例。
使用協(xié)議| 關(guān)于我們| 聯(lián)系X技術(shù)
? 2008-2025 【X技術(shù)】 版權(quán)所有,并保留所有權(quán)利。津ICP備16005673號(hào)-2