18video性欧美19sex,欧美高清videosddfsexhd,性少妇videosexfreexxx片中国,激情五月激情综合五月看花,亚洲人成网77777色在线播放

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

NCS更改MTU大小

TedLee ? 來源:jf_29076475 ? 作者:jf_29076475 ? 2025-06-27 17:13 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

NCS更改MTU大小

一、 什么是MTU

MTU(Maximum Transmission Unit)即最大傳輸單元,它定義了藍(lán)牙網(wǎng)絡(luò)層協(xié)議一次能傳輸?shù)淖畲髷?shù)據(jù)量。在藍(lán)牙低功耗(BLE)通信中,MTU的大小直接影響到數(shù)據(jù)傳輸?shù)男屎托阅?/p>

MTU過小的影響

當(dāng)MTU設(shè)置過小時(shí),會(huì)導(dǎo)致以下問題:

  • 數(shù)據(jù)分片增加 :數(shù)據(jù)需要被分成更小的片段進(jìn)行傳輸,增加了傳輸?shù)拇螖?shù)和復(fù)雜性。
  • 傳輸效率降低 :頻繁的數(shù)據(jù)分片和重組會(huì)消耗更多的帶寬和時(shí)間。
  • 連接穩(wěn)定性下降 :過小的MTU可能導(dǎo)致數(shù)據(jù)包丟失或傳輸錯(cuò)誤,影響連接的穩(wěn)定性

所以為了能夠單包發(fā)送更大的數(shù)據(jù),服務(wù)器和客戶端都需要更新它們的MTU。MTU需要滿足主機(jī)和從機(jī)之間允許的最小值,必須支持更大的MTU的遷就支持更小的

MTU

在Zephyr里面CONFIG_BT_BUF_ACL_RX_SIZE CONFIG_BT_L2CAP_TX_MTU這兩個(gè)宏決定了ZephyrMTU的大小,下圖是MTU的關(guān)系已經(jīng)Kconfig對(duì)應(yīng)表
在這里插入圖片描述

調(diào)用這個(gè)發(fā)送函數(shù)會(huì)報(bào)-128錯(cuò)誤在這里插入圖片描述

二、如何修改MTU大小

1、增加主機(jī)向從機(jī)配置的MTU大小

在prj.conf添加如下幾個(gè)宏:

CONFIG_BT_L2CAP_TX_MTU=247
CONFIG_BT_BUF_ACL_RX_SIZE=251
CONFIG_BT_BUF_ACL_TX_SIZE=251

添加如上幾個(gè)宏,從機(jī)就支持支持最大的247的MTU了,但是這個(gè)是初始化協(xié)議棧的時(shí)候設(shè)置的,而MTU交換是主機(jī)和從機(jī)建立連接之后進(jìn)行協(xié)商,所以主機(jī)可以在連接之后,主動(dòng)設(shè)置從機(jī)的MTU大小了,那么怎么設(shè)置從機(jī)主動(dòng)發(fā)起MTU請(qǐng)求和請(qǐng)求的大小呢:

有兩個(gè)辦法

1.1 第一個(gè)辦法:固定MTU大小

再上面的宏里面,再添加一個(gè)宏就可以實(shí)現(xiàn)連接后自動(dòng)更新NTU大小了

CONFIG_BT_GATT_AUTO_UPDATE_MTU=y

在這里插入圖片描述

使用Kconfig search 查詢MTU,可以看到下面的描述連接后自動(dòng)申請(qǐng)MTU大小,為什么我要多此一舉呢,因?yàn)橛行┛蛻舨恍枰暾?qǐng)這么大的MTU,需要?jiǎng)討B(tài)去修改MTU大小或者自己隨著在某個(gè)操作里面修改MTU大小,

2、第二個(gè)辦法:使用函數(shù)從機(jī)主動(dòng)向主機(jī)申請(qǐng)?jiān)黾覯TU大小

2.1 添加宏

CONFIG_BT_GATT_CLIENT

2.2 在函數(shù)里面添加如下代碼,然后再connect回調(diào)時(shí)間里面調(diào)用

/*MTU exchange*/
static struct bt_gatt_exchange_params mtu_exchange_params[CONFIG_BT_MAX_CONN];

static void mtu_exchange_cb(struct bt_conn *conn, uint8_t err,
			    struct bt_gatt_exchange_params *params)
{
    LOG_INF("MTU exchange %u %s (%u)", bt_conn_index(conn),
	       err == 0U ? "successful" : "failed", bt_gatt_get_mtu(conn));
}



static int mtu_exchange(struct bt_conn *conn)
{
    uint8_t conn_index;
    int err;

    conn_index = bt_conn_index(conn);

    LOG_INF("MTU (%u): %u", conn_index, bt_gatt_get_mtu(conn));

    mtu_exchange_params[conn_index].func = mtu_exchange_cb;

    err = bt_gatt_exchange_mtu(conn, &mtu_exchange_params[conn_index]);
    if (err) LOG_INF("MTU exchange failed (err %d)", err);
    else LOG_INF("Exchange pending...");

    return err;
}

在connect回調(diào)調(diào)用:
在這里插入圖片描述

三、測(cè)試

我們使用nrf下面的串口服務(wù)例程進(jìn)行測(cè)試,具體怎么編譯程序和燒錄可以看我之前寫的博客

3.1 添加LOG

void mtu_updated(struct bt_conn *conn, uint16_t tx, uint16_t rx)
{
	LOG_INF("Updated MTU: TX: %d RX: %d bytesn", tx, rx);
}

static struct bt_gatt_cb gatt_callbacks = {
	.att_mtu_updated = mtu_updated,
};

隨后在main函數(shù)注冊(cè)回調(diào):

在這里插入圖片描述

3.2 可以看到,默認(rèn)例程的MTU大小只有23字節(jié)大小,每包數(shù)據(jù)發(fā)送超過了這個(gè)大小就會(huì)報(bào)錯(cuò),

在這里插入圖片描述

3.3、在手機(jī)上面申請(qǐng)

兩個(gè)都是一樣的,可以看到,連接之后,通過主機(jī)更新或者從機(jī)和主機(jī)申請(qǐng)交換MTU大小也會(huì)改變,

在這里插入圖片描述

3.4 添加自動(dòng)連接更新MTU的宏&自己在連接添加MTU更換的宏

在這里插入圖片描述

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • NCS
    NCS
    +關(guān)注

    關(guān)注

    1

    文章

    21

    瀏覽量

    9329
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    NCS隨筆】NCS使用CJSON庫

    NCS隨筆】NCS使用CJSON庫 這個(gè)文章講一下在NCS上面如何使用JSON庫,我使用Hello_world例程添加庫 宏的配置 CONFIG_LOG =y
    的頭像 發(fā)表于 08-13 15:12 ?419次閱讀
    【<b class='flag-5'>NCS</b>隨筆】<b class='flag-5'>NCS</b>使用CJSON庫

    NCS放大器DAD3350使用場(chǎng)景與效果

    NCS放大器DAD3350使用場(chǎng)景與效果 ? ? 使用場(chǎng)景 ? ? 半導(dǎo)體切割設(shè)備 ? ? 核心應(yīng)用 ?:NCS放大器DAD3350是DISCO DAD3350切割機(jī)的關(guān)鍵組件,用于信號(hào)放大,確保
    的頭像 發(fā)表于 07-12 09:34 ?509次閱讀

    NCS放大器DAD3350詳細(xì)信息

    ? NCS放大器DAD3350詳細(xì)信息 ? ? 產(chǎn)品概述 ? ? 型號(hào) ?:DAD3350 ? 品牌 ?:NCS ? 應(yīng)用領(lǐng)域 ?:主要用于半導(dǎo)體劃片機(jī)(如DISCO DAD3350系列)的信號(hào)放大
    的頭像 發(fā)表于 07-12 09:31 ?513次閱讀

    Android14在BLE中,當(dāng)MTU超過 517時(shí),如何處理數(shù)據(jù)傳輸?

    /behavior-changes-all#mtu-set-to-517 我們?cè)趹?yīng)用更改后進(jìn)行了測(cè)試,但遇到了無法傳輸超過 512 字節(jié)數(shù)據(jù)的問題。 由于客戶的工作數(shù)據(jù)通常超過 512 字節(jié),我們預(yù)計(jì)需要分割數(shù)據(jù)進(jìn)行傳輸。 在分段傳輸
    發(fā)表于 07-01 06:56

    NCS怎么添加.c.h文件到工程

    NCS隨筆】 SEGGER添加方式 在介紹NCS工程之前,我們先看看大家熟悉的SEGGER工程(Keil同理): 左邊的項(xiàng)目欄可以看到工程的配置,通過點(diǎn)擊 User Include
    的頭像 發(fā)表于 06-27 14:48 ?604次閱讀
    <b class='flag-5'>NCS</b>怎么添加.c.h文件到工程

    更改最大數(shù)據(jù)包大小時(shí)無法識(shí)別USB設(shè)備如何解決?

    將生產(chǎn)者 EP 端點(diǎn)描述符中的最大數(shù)據(jù)包大小從 1024 字節(jié)更改為 512 字節(jié)時(shí),無法識(shí)別 USB 設(shè)備。 請(qǐng)告知如何解決這個(gè)問題。
    發(fā)表于 05-20 08:13

    nRF Connect SDK(NCS)/Zephyr固件升級(jí)詳解 – 重點(diǎn)講述MCUboot和藍(lán)牙空中升級(jí)

    如何在nRF Connect SDK(NCS)中實(shí)現(xiàn)藍(lán)牙空中升級(jí)?MCUboot和B0兩個(gè)Bootloader有什么區(qū)別?MCUboot升級(jí)使用的image格式是怎么樣的?什么是SMP協(xié)議?CBOR
    的頭像 發(fā)表于 05-09 14:14 ?2646次閱讀
    nRF Connect SDK(<b class='flag-5'>NCS</b>)/Zephyr固件升級(jí)詳解 – 重點(diǎn)講述MCUboot和藍(lán)牙空中升級(jí)

    media player 調(diào)用屏幕大小會(huì)隨分辨率大小自動(dòng)調(diào)整無法固定

    在labview中調(diào)用media player控件播放視頻,前面板的大小會(huì)根據(jù)分辨率的大小自動(dòng)調(diào)節(jié)調(diào)用media player面板的大小,無法固定大小,應(yīng)該怎么解決,我試著在后面板里
    發(fā)表于 03-30 13:41

    mtu大小對(duì)云服務(wù)的影響

    了數(shù)據(jù)包的最大尺寸,從而影響數(shù)據(jù)傳輸?shù)男省?b class='flag-5'>MTU的大小取決于網(wǎng)絡(luò)層協(xié)議和物理介質(zhì)。例如,以太網(wǎng)的標(biāo)準(zhǔn)MTU大小為1500字節(jié),而MPLS的MTU
    的頭像 發(fā)表于 12-16 14:37 ?1210次閱讀

    mtu和網(wǎng)絡(luò)安全的關(guān)系

    1. MTU的定義和作用 MTU是網(wǎng)絡(luò)協(xié)議棧中的一個(gè)重要參數(shù),它定義了網(wǎng)絡(luò)層可以處理的最大數(shù)據(jù)包大小。在以太網(wǎng)中,標(biāo)準(zhǔn)的MTU大小是1500
    的頭像 發(fā)表于 12-16 14:35 ?1693次閱讀

    mtu配置步驟詳解 mtu與數(shù)據(jù)包丟失的關(guān)系

    MTU(Maximum Transmission Unit)即最大傳輸單元,是指一種通信協(xié)議的某一層上面所能通過的最大數(shù)據(jù)報(bào)大小,單位是字節(jié)。MTU配置步驟及其與數(shù)據(jù)包丟失的關(guān)系如下: MTU
    的頭像 發(fā)表于 12-16 14:33 ?3596次閱讀

    常見的mtu相關(guān)問題及解決方案

    1. MTU不匹配導(dǎo)致的數(shù)據(jù)包分片 問題描述: 當(dāng)數(shù)據(jù)包從一個(gè)網(wǎng)絡(luò)傳輸?shù)搅硪粋€(gè)網(wǎng)絡(luò)時(shí),如果兩個(gè)網(wǎng)絡(luò)的MTU值不匹配,較大的數(shù)據(jù)包可能會(huì)被分片,這可能導(dǎo)致性能下降和數(shù)據(jù)丟失。 解決方案: 自動(dòng)調(diào)整
    的頭像 發(fā)表于 12-16 14:25 ?3920次閱讀

    mtu在不同網(wǎng)絡(luò)協(xié)議中的應(yīng)用

    包括數(shù)據(jù)包頭和數(shù)據(jù)負(fù)載。MTU大小決定了網(wǎng)絡(luò)中可以傳輸?shù)淖畲髷?shù)據(jù)量,同時(shí)也影響了數(shù)據(jù)包的分片和重組過程。如果數(shù)據(jù)包超過MTU,它將被分片成更小的單元進(jìn)行傳輸,這會(huì)增加網(wǎng)絡(luò)的復(fù)雜性和延遲。 M
    的頭像 發(fā)表于 12-16 14:22 ?1768次閱讀

    mtu與網(wǎng)絡(luò)性能的關(guān)系 mtu調(diào)整對(duì)網(wǎng)絡(luò)的影響

    ,網(wǎng)絡(luò)設(shè)備能夠發(fā)送或接收的最大數(shù)據(jù)包大小。這個(gè)參數(shù)對(duì)于確保數(shù)據(jù)包在不同網(wǎng)絡(luò)設(shè)備間順利傳輸至關(guān)重要。如果數(shù)據(jù)包大小超過了接收設(shè)備的MTU,那么數(shù)據(jù)包就需要被分片,這會(huì)增加網(wǎng)絡(luò)的復(fù)雜性和延遲。 M
    的頭像 發(fā)表于 12-16 14:21 ?4212次閱讀

    mtu是什么?解釋和定義

    MTU(Maximum Transmission Unit)是一個(gè)網(wǎng)絡(luò)術(shù)語,指的是在網(wǎng)絡(luò)層(如以太網(wǎng))上可以傳輸?shù)淖畲髷?shù)據(jù)包大小。MTU大小決定了網(wǎng)絡(luò)設(shè)備在發(fā)送數(shù)據(jù)時(shí)能夠處理的最大數(shù)
    的頭像 發(fā)表于 12-16 14:19 ?7277次閱讀