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

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

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

3天內不再提示

經典藍牙協議PAN詳解

泰凌微電子 ? 來源:泰凌微電子 ? 作者:泰凌微電子 ? 2024-07-17 09:25 ? 次閱讀

藍牙 Profile定義了藍牙設備之間如何進行通信以及實現特定的功能和應用場景。正是由于各種Profile的存在拓展出了藍牙豐富的應用場景,例如A2DP、HFP、HID等。PAN Profile便提供了藍牙設備接入以太網絡的能力。

PAN(Personal Area Networking)Profile即個人局域網協議。它描述了兩臺或多臺支持藍牙的設備如何組成一個自組網絡,以及如何使用相同的機制通過網絡接入點訪問遠程網絡。PAN Profile中主要包含的角色是網絡接入點(Network Access Point)、組自組網絡(Group Ad-hoc Network)和個人局域網用戶(Personal Area Network User)。網絡接入點可以是傳統的局域網數據接入點,而組自組織網絡則代表一組只相互連接的設備,個人局域網用戶代表通過PAN協議上網的用戶。本文將基于泰凌 BTBLE Dual Mode SDK以個人局域網用戶(PANU)的角度講述PAN在經典藍牙協議棧中的層級結構、SDP服務發現、BNEP數據交互、PAN Profile連接以及通過HTTP訪問網頁并獲取網頁數據的流程。

BNEP(Bluetooth Network Encapsulation Protocol)即藍牙網絡封裝協議規范。它描述了PAN 使用的協議,定義了藍牙網絡封裝的數據包格式,用于在藍牙媒體上傳輸常用網絡協議。藍牙網絡封裝支持與 IEEE 802.3/以太網封裝相同的網絡協議。支持的網絡協議數據包包含在藍牙網絡封裝數據包中,直接通過藍牙L2CAP協議傳輸。簡而言之PAN負責處理收/發的網絡數據,BNEP負責將網絡數據封裝上藍牙協議的包頭。

1層級結構

類似A2DP和AVDTP,PAN是建立在BNEP之上的,而BNEP又直接建立在L2CAP上。從NAP發送的網絡數據經過PANU端的Baseband再到L2CAP經過BENP解析最終到達PANU。

804e1414-43d4-11ef-b8af-92fbcf53809c.png

BNEP協議棧層級

80588f8e-43d4-11ef-b8af-92fbcf53809c.png

PANU和NAP實體之間的協議交互

2SDP服務發現

為了確保PAN能正常連接,需要在手機上打開藍牙網絡共享功能。AndroidiOS操作系統的開啟路徑分別如下圖所示(不同Android機型略有差異):

8066a8a8-43d4-11ef-b8af-92fbcf53809c.png

Android 藍牙共享網絡開啟路徑

8075d77e-43d4-11ef-b8af-92fbcf53809c.png

iOS藍牙共享網絡開啟路徑

在SDP服務發現階段手機會主動查詢我們可用的服務并作出響應,下圖為PANU角色時手機查詢到的服務信息

分配給PAN Profile的Record Handle為0x0010001a,service class ID表明當前角色是PANU,BNEP對應的PSM為0x000F,當前BNEP協議版本為v1.0,支持的以太網絡類型有IPv4(0x0800)和ARP(0x0806)。在Profile描述列表中表明PAN當前版本為v1.0,服務名稱為Personal Ad-hoc User Service,對該服務的描述為泰凌。

808c75f6-43d4-11ef-b8af-92fbcf53809c.png

PANU 服務查詢表

3BNEP數據交互

BNEP建立在L2CAP之上,因此需要根據BNEP的PSM在L2CAP上創建對應的通道。根據BNEP Specification規定,BNEP對應的PSM為0x000F(SDP就是根據PSM來識別是哪一個Profile),BNEP的MTU SIZE最小值為1691。在L2CACP_CONFIGURATION階段如果MTU SIZE小于1691則會導致通道創建失敗。

80b15e5c-43d4-11ef-b8af-92fbcf53809c.png

創建L2CAP通道

BNEP主要有五種類型的數據包,分別是BNEP_GENERAL_ETHERNET、BNEP_CONTROL、BNEP_COMPRESSED_ETHERNET、BNEP_COMPRESSED_ETHERNET_SOURCE_ONLY、BNEP_COMPRESSED_ETHERNET_DEST_ONLY。BNEP_CONTROL提供了兩臺藍牙設備PANU與NAP之間交換控制信息的能力,其中包括發起BNEP連接請求/響應、設置網絡類型過濾器、設置MAC/網卡地址過濾器和響應未知控制命令的能力。除BNEP_CONTROL之外的其他四種數據包都用于兩臺藍牙設備之間傳輸網絡數據。

BNEP_GENERAL_ETHERNET:該類型數據包的包頭中會攜帶自身藍牙MAC地址/IP網卡地址以及對端藍牙MAC地址/IP網卡地址,這種包適合在多連接情況下進行數據交互。

BNEP_COMPRESSED_ETHERNET:該類型數據包省略了對端和自身的藍牙MAC地址/IP網卡地址,這種包適合在一對一連接情況下PANU與PANU之間數據交互。

BNEP_COMPRESSED_ETHERNET_DEST_ONLY:該類型數據包的包頭中僅攜帶對端的網絡包類型和對端的藍牙MAC地址/IP網卡地址,省略了自身的藍牙MAC地址/IP網卡地址,這種包適合在一對多連接情況下進行數據交互。

BNEP_COMPRESSED_ETHERNET_SOURCE_ONLY:該類型數據包的包頭中僅攜帶自身的藍牙MAC地址/IP網卡地址,省略了對端的藍牙MAC地址/IP網卡地址,這種包適合在一對多連接情況下進行數據交互。

任意一端發起BNEP連接時需要發送BNEP_SETUP_CONNECTION_REQUEST_MSG,對端藍牙設備在接收到該CONTROL包時需要回復BNEP_SETUP_CONNECTION_RESPONSE_MSG,若Response Message字段的值為0x0000( Operation Successful)則表示BNEP連接成功。

811bd2b4-43d4-11ef-b8af-92fbcf53809c.png

BNEP的連接與網絡數據包交互

BNEP成功連接后隨即會收到來自手機的網絡包,主要的網絡協議包有IPv4、IPv6、ARP。至此PAN Profile建立成功,接下來需要結合TCP/IP協議棧(lwIP、uIP)去解析/封裝網絡數據。

4uIP協議棧與網絡幀收發邏輯

uIP協議棧(Micro IP)是一個相較于lwIP更加輕量級的嵌入式TCP/IP協議棧,特別適用于低內存、低帶寬的嵌入式設備。我們將uIP協議棧與BTBLE Dual Mode SDK做了適配,通過軟件的方式使用兩組環形隊列模擬了uIP協議中所需要的網卡驅動設備。

81200b5e-43d4-11ef-b8af-92fbcf53809c.png

uIP協議棧封包格式

uip_buf用于保存接收和發送網絡數據包。接收的網絡數據和發送的網絡數據都應該放入該緩沖區。

在接收到手機的網絡數據時會把BNEP格式的網絡幀數據包按照uIP協議棧的包格式組包好后拷貝到模擬網卡RX FIFO(sTlkTapDevRxFifo)環形隊列中。main_loop將接收到的網絡幀數據包從模擬網卡RX FIFO環形隊列中取出并拷貝到uip_buffer中。

在發送網絡數據時將uip_buffer中的網絡幀數據包拷貝到模擬網卡TX FIFO(sTlkTapDevTxFifo)環形隊列中。main_loop將需要發送的網絡幀數據包從模擬網卡TX FIFO環形隊列中取出并將包格式從uIP協議棧的包格式包轉換成BNEP格式的網絡幀數據包,然后調用BNEP發送函數將網絡包數據發送給對端藍牙設備。

當BNEP連接完成后會先進行DHCP_DISCOVER、DHCP_OFFER、DHCP_REQUEST、DHCP_ACK四階段交互,完成手機分配IP地址給PANU。

81241cb2-43d4-11ef-b8af-92fbcf53809c.png

DHCP IP地址分配

ARP階段完成網卡地址和IP地址的轉換與綁定,設備可以直接通過IP地址向對端發送數據。

8128cc30-43d4-11ef-b8af-92fbcf53809c.png

ARP網絡地址轉換

接下來以訪問https://zongxiaodong.cn/image_test/images為例,下載該網站中名為1.png的圖片。在DNS解析階段會將zongxiaodong.cn轉換為對應的IP地址60.205.46.170。

8137d3d8-43d4-11ef-b8af-92fbcf53809c.png

uIP DNS域名解析

緊接著將1.png下載到本地。uIP web client用例主要是實現接入互聯網的功能,并通過HTTP協議訪問指定的網站。其功能主要包括建立網絡連接,構建HTTP請求,發送HTTP請求,接受HTTP響應,解析HTTP響應。如圖示,等待網站響應后1.png的圖片數據就通過網絡下載到PANU本地了。

8156da8a-43d4-11ef-b8af-92fbcf53809c.png

HTTP訪問網站并下載圖片數據

5結束語

泰凌 BTBLE Dual Mode SDK集成了PAN網絡服務功能,這使得采用泰凌TLSR951x/952x藍牙芯片的模塊和產品能夠通過標準協議,輕松連接至支持NAP藍牙網絡熱點的智能手機等主設備。這種連接提供了網絡訪問和數據下載服務,而且整個過程無需在手機上安裝任何APP,極大地簡化了設備間的互聯互通和數據共享過程。

泰凌TLSR951x是一款高性能的藍牙雙模SoC,它巧妙地將經典藍牙與低功耗藍牙技術集成在單一芯片之中。這款芯片搭載了一個32位RISC-V MCU,具備強大的內核功能和一系列先進的外設模塊,為高端耳戴式和可穿戴設備的創新設計和開發提供了堅實的基礎。其多級電源管理設計使得TLSR951x在實現超低功耗運行的同時,也滿足了對功耗極為敏感的應用需求,而高集成度則進一步幫助客戶優化了系統總成本。

TLSR952x則是泰凌微電子推出的一款集成了先進音頻子系統的SoC,它包含了FastDSP單元、帶加速器的音頻編解碼器電源管理單元,特別適合于ANC(主動降噪)和ENC(環境降噪)等高端音頻應用。TLSR952x全面支持藍牙5.3標準,包括基本速率(BR)、增強數據速率(EDR)、低功耗(LE)、藍牙低功耗 Mesh以及2.4 GHz專有標準,將無線音頻設備所需的所有特性和功能集于一身,為客戶提供了一個全面而高效的音頻解決方案。

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

    關注

    114

    文章

    5633

    瀏覽量

    167608
  • 網絡
    +關注

    關注

    14

    文章

    7365

    瀏覽量

    88113
  • 局域網
    +關注

    關注

    5

    文章

    717

    瀏覽量

    46089
  • PAN
    PAN
    +關注

    關注

    1

    文章

    19

    瀏覽量

    14238

原文標題:【技術專欄】經典藍牙協議PAN概述

文章出處:【微信號:telink-semi,微信公眾號:泰凌微電子】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    如何使用HCI log調試經典藍牙

    泰凌TLSR9系列芯片支持經典藍牙和低功耗藍牙5.3 各項核心規范 ,目前開發者可以基于泰凌提供的協議棧和參考設計,開發各種音頻相關產品,其中包括:雙模低延時TWS耳機、雙模低延時頭戴
    的頭像 發表于 03-22 10:24 ?2760次閱讀
    如何使用HCI log調試<b class='flag-5'>經典</b><b class='flag-5'>藍牙</b>?

    藍牙個人局域網的應用測試步驟詳解

    本文以藍牙PAN的互操作性測試模型為例,從工程實際需求出發,運用軟件測試的自動化技術,結合協議一致性測試的一般理論和方法說明藍牙應用的互操作性測試的特點,并總結出一種適用于
    發表于 10-08 10:44 ?3824次閱讀
    <b class='flag-5'>藍牙</b>個人局域網的應用測試步驟<b class='flag-5'>詳解</b>

    EVAL_PAN1026EMK,PAN1026EMK基于PAN1026系列藍牙射頻模塊的實驗套件

    由外部處理器控制,該環境可縮短軟件和硬件開發時間。該套件適用于使用PAN1026藍牙智能就緒RF模塊的設計工程師,該模塊具有嵌入式藍牙經典藍牙
    發表于 08-14 08:46

    BLE藍牙相比經典藍牙區別是什么

    藍牙模塊也按照應用和支持協議分為主要兩種,不同類型的價格、定位、功能各有不同。  經典藍牙(BT):泛指支持藍牙
    發表于 11-06 16:36

    藍牙協議棧初始化和調度機制資料?

    青云NRF51822/NRF52832藍牙4.x詳解第二講:藍牙協議棧初始化和調度機制對應藍牙協議
    發表于 06-19 09:00

    藍牙GAP詳解

    藍牙基礎按照下面的大綱安排發布:前面的內容:第一講:藍牙樣例的解析第二講:藍牙協議棧初始化和調度機制 第三講:藍牙廣播初始化
    發表于 07-08 09:25

    基于PAN1026系列布局和播放藍牙模塊的評估套件

    和集成天線。這種成本設計的解決方案基于單芯片解決方案,該解決方案將ARM處理器與藍牙控制器集成在一起。藍牙4.0結合了藍牙經典(3Mb / s)的數據速率和
    發表于 08-20 07:59

    Modbus_通訊協議詳解

    Modbus_通訊協議詳解,Modbus_通訊協議詳解
    發表于 12-08 14:13 ?0次下載

    Pan1325藍牙HCI模塊介紹

    Introducing the PAN1325 Bluetooth RF module with embedded antenna. The PAN1325 provides
    發表于 09-11 17:05 ?2次下載

    C指針詳解-經典-非常詳細

    C指針詳解-經典-非常詳細
    發表于 10-23 17:39 ?79次下載
    C指針<b class='flag-5'>詳解</b>-<b class='flag-5'>經典</b>-非常詳細

    簡述低功耗藍牙經典藍牙的區別

    經典藍牙(classic Bluetooth)和低功耗藍牙(Bluetooth low energy,簡稱BLE或者LE),兩者有什么區別?為什么他們都叫“藍牙”?Bluetooth
    發表于 06-05 20:11 ?2.5w次閱讀

    python經典實例詳解

    python經典實例詳解說明。
    發表于 04-26 10:14 ?32次下載

    藍牙協議版本解析:不同類型的藍牙協議及其作用

    到2.1:經典藍牙協議 藍牙1.0: 首次引入藍牙技術,支持數據傳輸速率為1 Mbps,主要應用在耳機和手機等簡單設備的連接。
    的頭像 發表于 12-28 11:17 ?1457次閱讀

    藍牙模塊選經典藍牙還是低功耗藍牙

    ? 經典藍牙(classic Bluetooth)和低功耗藍牙(Bluetooth low energy,簡稱BLE或者LE),兩者有什么區別?為什么他們都叫“藍牙”?Bluetoot
    的頭像 發表于 05-23 17:57 ?420次閱讀
    <b class='flag-5'>藍牙</b>模塊選<b class='flag-5'>經典</b><b class='flag-5'>藍牙</b>還是低功耗<b class='flag-5'>藍牙</b>?

    什么是經典藍牙模塊?

    ? 什么是經典藍牙模塊? 前面我們已經就藍牙模塊的概念做了了解,隨著時間的推移,產品越來越智能,需要的藍牙模塊也就越來越廣泛,本篇文章我們就一起了解下什么是
    的頭像 發表于 05-24 14:52 ?263次閱讀
    什么是<b class='flag-5'>經典</b><b class='flag-5'>藍牙</b>模塊?