精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

INGCHIPS BLE芯片如何獲得最大吞吐量

桃芯科技 ? 來源:桃芯科技 ? 2023-07-12 16:56 ? 次閱讀

概述:文章第一部分先公布結論,第二部分是1M PHY吞吐率的實測過程與理論分析,第三部分是2M PHY的實測數據,第四部分是實操部分,喜歡BLE的朋友可以按照此部分的說明自己動手進行測試。

一、結論

使用INGCHIPS SDK中測試吞吐率的例程peripheral_throughput和central_throughput,使用兩個開發板進行測試。

1M phy吞吐率≥93KBps;

2M phy吞吐率≥152KBps。

二、1MPHY

01 實測

為了最小化包頭、包尾、校驗等無法避免的數據開銷,每一包數據MTU設置為247。 除去3bytes的ATT Header,則實際的ATT payload為244。 在central端連接參數使用默認值的情況下:

static initiating_phy_config_t phy_configs[] =              
{              
    {              
        .phy = PHY_1M,              
        .conn_param =              
        {              
            .scan_int = 200,              
            .scan_win = 180,              
            .interval_min = 50,              
            .interval_max = 50,              
            .latency = 0,              
            .supervision_timeout = 600,              
            .min_ce_len = 90,              
            .max_ce_len = 90              
        }              
    }              
};

對于1M phy來說,由主設備統計的吞吐率為:687104bps。 ad40a692-2091-11ee-962d-dac502259ad0.png? ??

使用藍盒(ellisys)抓包:

ad6c0c6a-2091-11ee-962d-dac502259ad0.png

一包間隔為62.5ms(即50*1.25ms),觀察其中的數據包發現,一個間隔有23包數據發出去。 實際發出的有效數據=23x244bytes=23x244x8bits=44896bits。 吞吐率=44896/0.0625=718336bps. 比串口統計的略大,仔細觀察Ellisys窗口,發現每個連接間隔發滿時,都有一次retry。在連接間隔的末尾,從設備沒有回復主設備連接包,主設備進行了一次重傳。

ad9044b8-2091-11ee-962d-dac502259ad0.png

也就是一個連接間隔實際只發了22包。

吞吐率=22x244x8/0.0625=687104,與串口的統計對應上了。

想要提升吞吐率,從上面的分析可以看到,有兩個可以調整的地方,一個是每次重傳的那一包,一個是連接間隔中空閑的6.116ms。

adb84576-2091-11ee-962d-dac502259ad0.png

6.116ms足夠傳2包數據(具體傳送一包的時長,參照下面的理論分析部分)。

調整連接間隔

.interval_min = 51,
.interval_max = 51,

可以看到,每個連接間隔變成了63.75ms,比剛才多傳了一包,24包(由于依然有一個retry包,有效包23包),連接間隔中浪費的時間4.89ms,比剛才的6.116ms少,本次吞吐率理論上比上次高。

adef0728-2091-11ee-962d-dac502259ad0.png

23x244x8/0.06375=704205

ae114c66-2091-11ee-962d-dac502259ad0.png

串口顯示基本上兩次718336,一次673440, (718336x2+673440)/3=703370,基本一致。 參數設置為

.conn_param =              
       {              
            .scan_int = 200,              
            .scan_win = 180,              
            .interval_min = 100,              
            .interval_max = 100,              
            .latency = 0,              
            .supervision_timeout = 600,              
            .min_ce_len = 200,              
            .max_ce_len = 200              
        }

ae3c7aa8-2091-11ee-962d-dac502259ad0.png

每個連接間隔125ms,傳輸有效包48包。

ae57394c-2091-11ee-962d-dac502259ad0.png

48x244x8/0.125=749568bps=93696Bps≈93KBps,

此時連接間隔的空閑時間為4.447ms,

基本上已經達到極限。

02 理論分析

BLE連接數據包分解如下:

ae76a656-2091-11ee-962d-dac502259ad0.png

當ATT payload設置為244,傳輸一包數據需額外傳輸的bytes數為:

1(preamble)+4(access address)+2(LL Header)+4(L2CAP Header)+3(ATT Header)+3(CRC)=17(因為不加密,所以沒有MIC)。

一包總的數據長度為17+244=261bytes=261x8bits=2088bits。

對于1Mphy來說,傳輸1bit時間為1us,傳輸一包數據就需要2088us,即2.088ms。

ae9d0314-2091-11ee-962d-dac502259ad0.png

數據傳輸還有另外兩個無法避免的時間開銷:1)傳輸完一個數據包后,需要另一個設備回一個空包來保持數據傳輸;2)數據包之間需要有一個空閑時間來讓協議棧完成數據處理,這個時間即T_IFS,150us。

aec4091e-2091-11ee-962d-dac502259ad0.png

空包的長度為1(preamble)+4(Access Address)+2(PDU)+3(crc)=10Bytes=80bits。

也就是說傳輸一個空包時間為80us,加上兩個T_IFS,總共380us。

af2f219a-2091-11ee-962d-dac502259ad0.png

也就是說,傳輸244Bytes數據,實際花費的總時間=2088us+380us=2468us=2.468ms. 如果可以保持不間斷地發送,吞吐率=244/0.002468=98865Bytes≈98KBps。 但是實際必然無法達到這個速度,就是由于上面說的,每一個連接間隔無法全部用于發送數據,即便讓連接間隔是2.468ms的整數倍,協議棧也會留出一些空隙用于內部業務處理,對于Ingchips來說,這個間隙大約在4-6ms。 因此實測的93KBps已接近理論吞吐量的極限。 根據上面的分析,合理猜測如果把連接間隔無限拉長,可以最小化每個連接間隔空隙4-6ms的影響。但實際上,協議棧總需要時間來處理自己的事務,如果把連接間隔設的過長,且全部用于發送數據,協議棧就會在一定時間停止發送,且此連接間隔剩下的時間也不再用于發送數據,因此數據速率還會下降。

af4bd196-2091-11ee-962d-dac502259ad0.png

af719728-2091-11ee-962d-dac502259ad0.png

三、2MPHY

01 Ellisys抓包2M PHY 方法

如下圖所示,勾選2M PHY

af963196-2091-11ee-962d-dac502259ad0.png

02 實測

在連接間隔設為60,152kBps以上。

具體過程不再贅述。

afcdce8a-2091-11ee-962d-dac502259ad0.png

四、實操

01 環境準備

硬件

INGCHIPS開發板兩套,可以咨詢INGCHIPS代理商購買(上面的膠棒天線需要自備)。

Micro USB線兩條。

afe8521e-2091-11ee-962d-dac502259ad0.png

軟件:

INGCHIPS SDK,下載最新版本。

串口調試工具,比如SSCOM。

02 測試過程

說明:

關于INGCHIPS SDK的下載和安裝、開發軟件環境的配置、例程的編譯和固件下載等具體問題,桃芯官網提供了豐富的由淺入深的開發資料,前期搭建環境過程中可以參照。

http://www.ingchips.cn/intro/25.html

https://ingchips.github.io/docs/application-notes/
過程中遇到問題也可以咨詢桃芯科技的代理商或原廠支持。

SDK安裝好后,在兩塊開發板分別下載SDK提供的專門用于吞吐量測試的主從例程。

b091f008-2091-11ee-962d-dac502259ad0.png

連接主設備的串口,主設備上電會有打印,有相關調試指令的說明。

主設備掃描到從設備后,會自動進行連接。

之后發送測試指令(start m->s表示主設備發,從設備收),主設備的串口就會1秒鐘發送一次實時吞吐率測試結果。

b0c4c41a-2091-11ee-962d-dac502259ad0.png

可以參照第二部分中,調整連接參數的配置,觀察吞吐率的變化。如果有條件,也可以用Ellisys實時抓取連接過程,觀察空中包的發送情況。 注意:測試時把兩套開發板放在靠近的位置上,保證二者有穩定的信號連接,信號不穩或者太差會影響吞吐率,信號強度對吞吐率的影響歡迎小伙伴們自行測試。

審核編輯:湯梓紅
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 芯片
    +關注

    關注

    453

    文章

    50387

    瀏覽量

    421782
  • 吞吐量
    +關注

    關注

    0

    文章

    47

    瀏覽量

    12324
  • PHY
    PHY
    +關注

    關注

    2

    文章

    301

    瀏覽量

    51693
  • BLE
    BLE
    +關注

    關注

    12

    文章

    652

    瀏覽量

    59336
  • SDK
    SDK
    +關注

    關注

    3

    文章

    1026

    瀏覽量

    45775
收藏 人收藏

    評論

    相關推薦

    全志R128 BLE最高吞吐量測試正確配置測試方法

    在R128使用前我們需要了解BLE的最高吞吐量,以方便評估相關功能的開發。
    的頭像 發表于 10-27 17:17 ?1281次閱讀
    全志R128 <b class='flag-5'>BLE</b>最高<b class='flag-5'>吞吐量</b>測試正確配置測試方法

    如何通過UBFS獲得流式ADC數據的最高吞吐量

    的上方,PSoC似乎在幾秒鐘后就崩潰了,并且沒有更多的USB數據進入PC。我錯過了什么?人們通常使用另一種策略來通過UBFS獲得流式ADC數據的最高吞吐量嗎?任何幫助或提示贊賞!謝謝,費利克斯
    發表于 10-11 10:46

    請問BLE 4.2連接(1中心和1外圍設備)的最大理論有效載荷吞吐量是多少?

    BLE 4.2連接(1中心和1外圍設備)的最大理論有效載荷吞吐量是多少?每個連接間隔可以發送最多四個分組,并且每個分組可以具有多達251字節的有效載荷。根據BLE規范,連接參數的允許范
    發表于 10-15 09:26

    如何計算延遲和吞吐量

    如何計算延遲和吞吐量?在ISE時序報告中,我們發現一個名為“最大組合路徑延遲”的參數是否與最大時鐘頻率有關?
    發表于 03-19 08:55

    提高BLE吞吐量的可行辦法

    提高BLE吞吐量的可行辦法如何實現更快的BLE吞吐量
    發表于 01-18 06:26

    全志R128 BLE最高吞吐量測試正確配置測試

    影響。例如,R128設備支持藍牙5.0,而藍牙5.0版本后支持2M PHY,使用2M PHY會獲得更高的數據吞吐量。 2、DLE(數據長度擴展): 在藍牙4.2版本之后,BLE(藍牙低功耗)開始支持DLE
    發表于 10-16 15:22

    全志R128 BLE最高吞吐量測試正確配置測試

    影響。例如,R128設備支持藍牙5.0,而藍牙5.0版本后支持2M PHY,使用2M PHY會獲得更高的數據吞吐量。 2、DLE(數據長度擴展): 在藍牙4.2版本之后,BLE(藍牙低功耗)開始支持DLE
    發表于 10-26 16:46

    防火墻術語-吞吐量

    防火墻術語-吞吐量  術語名稱:吞吐量 術語解釋:網絡中的數據是由一個個數據包組成,防火
    發表于 02-24 11:06 ?1530次閱讀

    基于系統吞吐量最大化的功率分配算法

    針對認知能量采集網絡,提出一種基于系統吞吐量最大化的功率分配算法。該算法在滿足2個次用戶節點采集能量的因果性限制和對主用戶干擾限制的條件下,構建了系統吞吐量的優化模型;通過變量代換和問題等價性變換
    發表于 01-14 16:49 ?0次下載
    基于系統<b class='flag-5'>吞吐量</b><b class='flag-5'>最大</b>化的功率分配算法

    DM6467的吞吐量性能信息和系統芯片(SoC)架構的詳細概述

    本應用報告提供了關于DM6467的吞吐量性能信息并介紹了片上系統(SoC)DM6467架構,數據路徑基礎設施和影響吞吐量和不同優化的約束條件最佳系統性能的技術。該文件還提供信息關于SOC上不同外設的最大可能
    發表于 04-18 14:49 ?11次下載
    DM6467的<b class='flag-5'>吞吐量</b>性能信息和系統<b class='flag-5'>芯片</b>(SoC)架構的詳細概述

    EE-47:ADSP-2106x鏈路端口-最大吞吐量

    EE-47:ADSP-2106x鏈路端口-最大吞吐量
    發表于 04-29 17:12 ?9次下載
    EE-47:ADSP-2106x鏈路端口-<b class='flag-5'>最大</b><b class='flag-5'>吞吐量</b>

    debug 吞吐量的辦法

    Debug 網絡質量的時候,我們一般會關注兩個因素:延遲和吞吐量(帶寬)。延遲比較好驗證,Ping 一下或者 mtr[1] 一下就能看出來。這篇文章分享一個 debug 吞吐量的辦法。
    的頭像 發表于 08-23 09:17 ?935次閱讀

    debug 吞吐量的辦法

    Debug 網絡質量的時候,我們一般會關注兩個因素:延遲和吞吐量(帶寬)。延遲比較好驗證,Ping 一下或者 mtr[1] 一下就能看出來。這篇文章分享一個 debug 吞吐量的辦法。
    的頭像 發表于 09-02 09:36 ?847次閱讀

    iperf吞吐量的測試流程

    iperf吞吐量測試指南
    發表于 04-03 15:40 ?2次下載

    INGCHIPS BLE芯片如何獲得最大吞吐量

    使用INGCHIPS SDK中測試吞吐率的例程peripheral_throughput和central_throughput,使用兩個開發板進行測試。
    的頭像 發表于 07-12 16:56 ?1113次閱讀
    <b class='flag-5'>INGCHIPS</b> <b class='flag-5'>BLE</b><b class='flag-5'>芯片</b>如何<b class='flag-5'>獲得</b><b class='flag-5'>最大</b><b class='flag-5'>吞吐量</b>?