基于低功耗藍牙技術(shù)的數(shù)據(jù)傳輸方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種數(shù)據(jù)傳輸方法,特別是涉及一種基于低功耗藍牙的數(shù)據(jù)傳輸方法。
【背景技術(shù)】
[0002]在測繪領(lǐng)域里,使用亞米級可穿戴定位設(shè)備進行定位作業(yè)時,要求設(shè)備與安卓手機能夠?qū)崟r高速進行數(shù)據(jù)通信,以實現(xiàn)差分數(shù)據(jù)和實時解算結(jié)果的傳輸操作,而可穿戴設(shè)備要求低功耗,差分解算的數(shù)據(jù)傳輸速度和數(shù)據(jù)丟包率要求非常高。通過現(xiàn)有的WiFi或者傳統(tǒng)的藍牙技術(shù)傳輸數(shù)據(jù)時,其數(shù)據(jù)傳輸速度雖然能夠相對的滿足要求,但其功耗很大,芯片的體積也相對較大,不能夠滿足亞米級可穿戴設(shè)備的小型化及電池無法提供大容量的電池;使用現(xiàn)有的低功耗藍牙技術(shù)傳輸數(shù)據(jù)時,其數(shù)據(jù)傳輸速度并不高效,穩(wěn)定性較差,丟包率比較大,數(shù)據(jù)丟失嚴重。
【發(fā)明內(nèi)容】
[0003]為了克服現(xiàn)有技術(shù)的不足,本發(fā)明的目的提出一種基于改進的低功耗藍牙的數(shù)據(jù)傳輸方法,實現(xiàn)低功耗,高效差分數(shù)據(jù)通信,有效降低丟包率,有效提高串口通信實時解算的結(jié)果準確性。
[0004]為解決上述問題,本發(fā)明所采用的技術(shù)方案如下:
[0005]本發(fā)明公開了一種基于低功耗藍牙技術(shù)的數(shù)據(jù)傳輸方法,應(yīng)用于可穿戴定位設(shè)備中,所述可穿戴定位設(shè)備包括BLE藍牙模塊和arm計算器,包括以下步驟:
[0006]SlOl:BLE藍牙模塊與智能終端設(shè)備建立藍牙連接;
[0007]S102:BLE藍牙模塊接收智能終端設(shè)備發(fā)送的數(shù)據(jù)并存儲在第一緩存,然后將第一緩存中的數(shù)據(jù)在通過串口通信發(fā)送至arm計算器;
[0008]S103:arm計算器對接收到的數(shù)據(jù)進行處理,然后將處理后的數(shù)據(jù)通過串口通信發(fā)送至BLE藍牙模塊;
[0009]S104:BLE藍牙模塊接收arm計算器發(fā)送的數(shù)據(jù)并存儲在第二緩存,然后將第二緩存中的數(shù)據(jù)發(fā)送至智能終端設(shè)備。
[0010]優(yōu)選地,所述第一緩存設(shè)有上限閾值A(chǔ)l和下限閾值A(chǔ)2;所述BLE藍牙模塊將數(shù)據(jù)存儲在第一緩存時,還包括以下步驟:
[0011 ] S1021:將第一緩存中的數(shù)據(jù)與Al、A2進行比較,當所接收到的數(shù)據(jù)大于Al時,則執(zhí)行步驟S1022;當所接收到的數(shù)據(jù)在Al和A2之間,則執(zhí)行步驟S1023;當接收到的數(shù)據(jù)小于A2時,則執(zhí)行步驟S1024;
[0012]S1022:暫停接收智能終端設(shè)備發(fā)送的數(shù)據(jù),繼續(xù)向arm計算器發(fā)送數(shù)據(jù);當達到第一休眠時間時,則執(zhí)行S1021 ;
[0013I S1023:既接收智能終端設(shè)備發(fā)送的數(shù)據(jù),又向arm計算器發(fā)送數(shù)據(jù);當達到第二休眠時間時,則執(zhí)行S1021 ;
[0014]S1024:繼續(xù)接收智能終端設(shè)備發(fā)送的數(shù)據(jù),暫停向arm計算器發(fā)送數(shù)據(jù);當達到第三休眠時間時則執(zhí)行S1021。
[0015]優(yōu)選地,所述第二緩存設(shè)有上限閾值BI和下限閾值B2;所述BLE藍牙模塊將數(shù)據(jù)存儲在第二緩存時,還包括以下步驟:
[0016]S1041:將第二緩存中的數(shù)據(jù)與B1、B2進行比較,當所接收到的數(shù)據(jù)大于BI時,則執(zhí)行步驟S1042;當所接收到的數(shù)據(jù)在BI和B2之間,則執(zhí)行步驟S1043;當接收到的數(shù)據(jù)小于B2時,則執(zhí)行步驟S1044;
[0017]S1042:暫停接收arm計算器發(fā)送的數(shù)據(jù),繼續(xù)向智能終端設(shè)備發(fā)送數(shù)據(jù);當達到第一休眠時間時,則執(zhí)行S1041 ;
[0018]S1043:既接收arm計算器發(fā)送的數(shù)據(jù),又向智能終端設(shè)備發(fā)送數(shù)據(jù);當達到第二休眠時間時,則執(zhí)行S1041 ;
[0019]S1044:繼續(xù)接收arm計算器發(fā)送的數(shù)據(jù),暫停向智能終端設(shè)備發(fā)送數(shù)據(jù);當達到第三休眠時間時,則執(zhí)行S1041。
[0020]優(yōu)選地,所述第一緩存和所述第二緩存的大小分別至少為2500字節(jié)。
[0021]相比現(xiàn)有技術(shù),本發(fā)明的有益效果在于:本發(fā)明采用串口通信數(shù)據(jù)流的控制、BLE藍牙數(shù)據(jù)流控制的通信機制以及BLE藍牙的三種休眠模式,使得讓BLE藍牙擁有忙的工作狀態(tài)并全速運行、空閑的工作狀態(tài)可以休眠更多的時間來實現(xiàn)較低的低功耗,提高了數(shù)據(jù)的傳輸效率,同時滿足了亞米級可穿戴設(shè)備不能夠提供超大電池的要求。本發(fā)明在BLE藍牙模塊使用緩存,以及BLE藍牙模塊通過三種休眠模式靈活處理緩存,不會造成由于緩存的溢出導致數(shù)據(jù)的丟失,從而不會影響arm計算器計算的精確性。另外,本發(fā)明BLE藍牙模塊在滿足傳輸速度要求下,使得設(shè)備硬件的體積更小,滿足亞米級可穿戴設(shè)備的要求。
【附圖說明】
[0022]圖1是本實施例一基于低功耗藍牙的數(shù)據(jù)傳輸方法流程圖。
【具體實施方式】
[0023 ]下面,結(jié)合附圖以及【具體實施方式】,對本發(fā)明做進一步描述:
[0024]如圖1,本發(fā)明公開了一種基于低功耗藍牙的數(shù)據(jù)傳輸方法,該方法應(yīng)用于亞米級可穿戴定位設(shè)備中,亞米級可穿戴定位設(shè)備是一種可以具有亞米級精度、超小的體積和重量的RTK接收機;包括BLE藍牙模塊和arm計算器,通過BLE藍牙模塊接收到智能終端設(shè)備發(fā)送的數(shù)據(jù),然后將數(shù)據(jù)傳輸?shù)絘rm計算器并處理,通過串口通信發(fā)送至藍牙,在通過藍牙將處理后的數(shù)據(jù)發(fā)送至手機。所述方法包括以下步驟:
[0025]SlOl:BLE藍牙模塊與智能終端設(shè)備建立藍牙連接;智能終端設(shè)備是手機、平板等具有藍牙功能的設(shè)備,通過藍牙與可穿戴定位設(shè)備連接。
[0026]S102: BLE藍牙模塊接收智能終端設(shè)備發(fā)送的數(shù)據(jù)并存儲在第一緩存,然后將第一緩存中的數(shù)據(jù)在通過串口通信發(fā)送至arm計算器。在本步驟中,設(shè)置第一緩存用于緩沖并保存接收智能終端設(shè)備發(fā)送的數(shù)據(jù)。當BLE藍牙模塊接收數(shù)據(jù)時,可先將數(shù)據(jù)放入第一緩存中,達到一定的數(shù)量時在將數(shù)據(jù)發(fā)送出去,這樣BLE藍牙就不需要時刻處于接收數(shù)據(jù)和發(fā)送數(shù)據(jù)的狀態(tài),降低了內(nèi)存的消耗,進一步降低了系統(tǒng)功耗。
[0027]S103:arm計算器對接收到的數(shù)據(jù)進行處理,然后將處理后的數(shù)據(jù)通過串口通信發(fā)送至BLE藍牙模塊;使用arm計算器對接收到的數(shù)據(jù)進行差分數(shù)據(jù)解算;在可穿戴定位設(shè)備系統(tǒng)中主要是將接收到的數(shù)據(jù)進行計算后得到具體的位置信息數(shù)據(jù),這一過程是本領(lǐng)域技術(shù)人員所熟知的技術(shù)。
[0028]S104:BLE藍牙模塊接收arm計算器發(fā)送的數(shù)據(jù)并存儲在第二緩存,然后將第二緩存中的數(shù)據(jù)發(fā)送至智能終端設(shè)備。本步驟中同樣設(shè)置緩沖機制,在BLE藍牙模塊中設(shè)置第二緩存,用于緩沖存儲由arm計算器通過串口通信發(fā)送來的數(shù)據(jù)。當BLE藍牙模塊接收數(shù)據(jù)時,可先將數(shù)據(jù)放入緩存中,達到一定的數(shù)量時在將數(shù)據(jù)發(fā)送出去,這樣BLE藍牙就不需要時刻處于與arm計算器和智能終端設(shè)備交換數(shù)據(jù)的狀態(tài),降低了內(nèi)存的消耗,進一步降低了系統(tǒng)功耗。使用緩沖機制能夠?qū)?shù)據(jù)流的控制起到一個很好的緩沖作用。
[0029]進一步,所述的第一緩存會預(yù)先設(shè)置其大小,根據(jù)大量的測試得出第一緩存的大小至少2500字節(jié);如果第一緩存的大小在2500字節(jié)以下,就會出現(xiàn)嚴重的丟包現(xiàn)象,因此將第一緩存的大小應(yīng)設(shè)置在2500及以上;同時還設(shè)置第一緩存的上下限閾值,在這里將上限閾值記為Al,下限閾值記為A2。
[0030]進一步,所述BLE藍牙模塊接收智能終端設(shè)備發(fā)送的數(shù)據(jù)時,還包括以下步驟:
[0031 ] S1021:將第一緩存中的數(shù)據(jù)與Al、A2進行比較,當所接收到的數(shù)據(jù)大于Al時,則執(zhí)行步驟S1022;當所接收到的數(shù)據(jù)在Al和A2之間,則執(zhí)行步驟S1023;當接收到的數(shù)據(jù)小于A2時,則執(zhí)行步驟S1024。
[0032]本步驟中,當接收到的數(shù)據(jù)大于Al時,也即是接收到的數(shù)據(jù)大于第一緩存的上限閾值,說明此時數(shù)據(jù)比較多,在接收數(shù)據(jù)的話,第一緩存就會溢出,并造成數(shù)據(jù)的丟失,因此這時BLE藍牙模塊就會進入nosleep模式,也即是步驟S1022:暫停接收智能終端設(shè)備發(fā)送的數(shù)據(jù),繼續(xù)向arm計算器發(fā)送數(shù)據(jù)。在nosleep模式BLE藍牙模塊會暫停接收手機發(fā)送的數(shù)據(jù),并全速向arm計算器發(fā)送數(shù)據(jù);同時還預(yù)先設(shè)置該nosleep模式的休眠時間,當啟用nosleep模式后,系統(tǒng)會計時,若達到該休眠時間,BLE藍牙模塊會再次將第一緩存中的數(shù)據(jù)與A1、A2進行比較,也即是執(zhí)行步驟S1021,重新選擇BLE藍牙模塊的休眠模式。
[0033]當接收到的數(shù)據(jù)小于A2時,也即是接收到的數(shù)據(jù)小于下限閾值,也即是說第一緩存中接收的數(shù)據(jù)較少,第一緩存可以存儲較多的數(shù)據(jù),此時BLE藍牙模塊進入deepsleep模式,也即是執(zhí)行S1024:BLE藍牙模塊繼續(xù)接收智能終端設(shè)備發(fā)送的數(shù)據(jù),暫停向arm計算器發(fā)送數(shù)據(jù)。在此deepsleep模式下,由于第一次緩存的空間足夠多,可以接收較多數(shù)據(jù),因此可以先暫停向arm計算器發(fā)送數(shù)據(jù),這樣就減少數(shù)據(jù)的交換頻率,減少了內(nèi)存消耗,相當于節(jié)省了系統(tǒng)功耗,也即是對系統(tǒng)的調(diào)配進行了優(yōu)化。當然該deepsleep模式也會預(yù)先設(shè)置自己的休眠時間,當啟用該模式并達到自己的休眠時間時,BLE藍牙模塊會將第一緩存的數(shù)據(jù)與A1、A2進行比較,也即是執(zhí)行步驟S1021,重新選擇BLE藍牙模塊的休眠模式。