c# 藍牙虛擬串口_藍牙模塊——基礎知識介紹

1. 數據透傳

藍牙模塊可以通過串口(SPI、IIC)和MCU控制設備進行數據傳輸。

04140ff3e64084c9edccc0fb2d0f038c.png

藍牙模塊可以做為主機和從機。主機就是能夠搜索別的藍牙模塊并主動建立連接,從機則不能主動建立連接,只能等別人連接自己。

2. 低功耗

低功耗藍牙(Bluetooth Low Energy),簡稱BLE。藍牙低能耗無線技術利用許多智能手段最大限度地降低功耗。

藍牙低能耗架構共有兩種芯片構成:單模芯片和雙模芯片。藍牙單模器件是藍牙規范中新出現的一種只支持藍牙低能耗技術的芯片——是專門針對ULP操作優化的技術的一部分。藍牙單模芯片可以和其它單模芯片及雙模芯片通信,此時后者需要使用自身架構中的藍牙低能耗技術部分進行收發數據。雙模芯片也能與標準藍牙技術及使用傳統藍牙架構的其它雙模芯片通信。

0c311b791cbf880fb5f13d5fa581f3c0.png

按應用分為:

可分為數據藍牙模塊和語音藍牙模塊,前者完成無線數據傳輸,后者完成語音和立體聲音頻的無線數據傳輸。

3. 藍牙協議組成

1716cd8be9f143af7c91980de564b0f4.png

藍牙協議體系中的協議按SIG的關注程度分為四層:

  1. 核心協議:BaseBand、LMP、L2CAP、SDP;

  2. 電纜替代協議:RFCOMM;

  3. 電話傳送控制協議:TCS-Binary、AT命令集;

  4. 選用協議:PPP、UDP/TCP/IP、OBEX、WAP、vCard、vCal、IrMC、WAE。

除上述協議層外,規范還定義了主機控制器接口(HCI),它為基帶控制器、連接管理器、硬件狀態和控制寄存器提供命令接口。在圖1中,HCI位于L2CAP的下層,但HCI也可位于L2CAP上層。

藍牙核心協議由SIG制定的藍牙專用協議組成。絕大部分藍牙設備都需要核心協議(加上無線部分),而其他協議則根據應用的需要而定。總之,電纜替代協議、電話控制協議和被采用的協議在核心協議基礎上構成了面向應用的協議。

4. 藍牙基本架構

eba8c6f098631df9bdc58b531e03cdbf.png

4.1 底層硬件模塊

(1)無線射頻模塊(Radio):?藍牙最底層,帶微帶天線,負責數據接收和發送。

(2)基帶模塊(BaseBand):?無線介質訪問約定。提供同步面向連接的物理鏈路(SCO)和異步無連接物理鏈路(ACL),負責跳頻和藍牙數據及信息幀傳輸,并提供不同層次的糾錯功能(FEC和CTC)。

(3)鏈路控制模塊(LC):?藍牙數據包的編碼和解碼。

(4)鏈路管理模塊(LM)?:負責創建、修改和發布邏輯鏈接,更新設備間物理鏈接參數,進行鏈路的安全和控制。

(5)主機控制器接口(HCI):?是軟硬件接口部分,由基帶控制器、連接管理器、控制和事件寄存器等組成;軟件接口提供了下層硬件的統一命令,解釋上下層消息和數據的傳遞。硬件接口包含 UART、SPI 和 USB 等。

2. 中間協議層

(1)邏輯鏈路控制與適配協議(L2CAP):?藍牙協議棧的基礎,也是其他協議實現的基礎。向上層提供面向連接和無連接的數據封裝服務;采用了多路技術、分割和重組技術、組提取技術來進行協議復用、分段和重組、認證服務質量、組管理等行為。

(2)音視頻發布傳輸協議(AVDTP)和音視頻控制傳輸協議(AVCTP):?二者主要用于 Audio/Video 在藍牙設備中傳輸的協議,前者用于描述傳輸,后者用于控制信號交換的格式和機制。

(3)服務發現協議(SDP):?藍牙技術框架至關重要一層,所有應用模型基礎。動態的查詢設備信息和服務類型,建立一條對應的服務通信通道,為上層提供發現可用的服務類型和屬性協議信息。

(4)串口仿真協議(RFCOMM):?實現了仿真 9 針 RS232 串口功能,實現設備間的串行通信。

(5)二進制電話控制協議(TCS):?基于 ITU-T Q.931 建議的采用面向比特的協議,它定義了用于藍牙設備之間建立語音和數據呼叫的控制信令(Call Control Signalling),并負責處理藍牙設備組的移動管理過程。

3. 藍牙Profile

Bluetooth Profile 是藍牙設備間數據通信的無線接口規范。目前有四大類、十三種協議規則,廠商可以自定義規格。幾種最常見的 Profile 文件:

(1)通用訪問配置文件(GAP):?其他所有配置文件的基礎,定義了在藍牙設備間建立基帶鏈路的通用方法,并允許開發人員根據 GAP 定義新的配置文件。包含所有藍牙設備實施的功能,發現和連接設備的通用步驟,基本用戶界面等通用操作。

(2)服務發現應用配置文件(SDAP):?描述應用程序如何用 SDP 發現遠程設備服務,可與向/從其他藍牙設備發送/接收服務查詢的 SDP 連接。

(3)串行端口配置文件(SPP):?基于 ETSI TS 07.10 規格定義如何設置虛擬串行端口及如何連接兩個藍牙設備。速度可達 128kb/s。

(4)通用對象交換配置文件(GOEP):?可以將任意對象(如圖片、文檔等)從一個設備傳輸到另一個設備。

5. 藍牙協議棧層次

5afbc147dd52a418ee24fcbd7a908b1e.png

5.1. 物理層(PHY):

射頻傳輸。

5.2. 鏈路層(LL):

控制射頻狀態,包括等待、廣告、掃描、初始化、連接。

5.3. 主機控制接口層(HCI):

主機和控制器通信接口。

5.4. 邏輯鏈路控制及適配協議層(L2CAP):

提供數據封裝服務,允許邏輯上點對點通信。

5.5. 安全管理層(SM):

加解密,為安全連接和數據交換提供服務。

5.6. 屬性協議層(ATT):

允許設備(服務器)向另一個設備(客戶端)展示特定的數據(屬性)。

5.7. 通用屬性配置文件層(GATT):

定義了使用ATT的服務框架,兩個建立連接的設備之間的所有數據通信都是通過GATT子程序處理。

5.8. 通用訪問配置文件層(GAP):

對所有藍牙設備提供共同的功能,如傳輸模式和訪問程序、協議和應用描述。GAP服務包含設備發現、連接模式、安全、認證、聯合模型和服務發現。

6. 藍牙傳輸過程

6.1. 主從機建立過程

f57c136792786246131aea8cca50d6d4.png

6.2. 主從通信透傳模塊

分為主透傳協議模塊(MTTM)和從透傳協議模塊(STTM)。

MTTM可以工作在透傳模式(TTM)和指令模式(CM),工作如下:用戶通過AT指令控制模塊連接從設備。在成功建立鏈接后,MTTM自動查找從設備的透傳通道,如果從設備屬于STTM,MTTM默認進入TTM,否則進入CM。

透傳模式,目的是實現透傳或直驅控制功能,主機CPU可以通過通用串口模塊與STTM雙向通信,MTTM直接將數據轉發給STTM,再從STTM串口輸出到從機CPU。反向亦可。

參考:

1.SKYLAB_無線模塊的博客

2.由淺入深,藍牙4.0/BLE協議棧開發攻略大全(1)

3.?藍牙核心技術了解(藍牙協議、架構、硬件和軟件筆記)

4.通識藍牙低功耗

5.?nrf51822藍牙筆記之GAP(通用屬性配置文件)解讀

6.藍牙的初見初識

7.藍牙協議分析(5)_BLE廣播通信相關的技術分析

8.Bluetooth LE(低功耗藍牙) - 第一部分

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/273256.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/273256.shtml
英文地址,請注明出處:http://en.pswp.cn/news/273256.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Error: could not open `C:\Java\jre7\lib\i386\jvm.cfg

打開eclipse時出現Error: could not open C:\Program Files\Java\jre7\lib\i586\jvm.cfg’) 刪除 c:\windows\system32\java, c:\windows\system32\javaw, c:\windows\system32\javaws, 如果是64位系統,還要刪除 c:\windows\SysWOW64\java&am…

java項目001.雙色球游戲

package Suangseq; //雙色球游戲制作。 import java.awt.SystemColor; import java.util.Arrays; import java.util.Scanner; public class TextA { public static void main(String[] args) { boolean flagfalse;//定義一個布爾類型的變量。 int[] mynull;//定義一個變量 in…

華為手機30s桌面循環滑動_華為發飆了!麒麟820+雙模5G,從2699元跌至2499元,超出消費者預期...

閱讀本文前,請您先點擊上面的“藍色字體”,再點擊“關注”,這樣您就可以繼續免費收到文章了。每天都會有分享,都是免費訂閱,請您放心關注。注圖文來源網絡,侵刪 …

混合模式程序集是針對“v2.0.50727”版的運行時生成的,在沒有配置其他信息的情況下,無法在 4.0 運行時中加載該程序集...

其調用的方法是從sqlite數據庫中獲取原來已經使用過的數據庫連接,當時也沒注意,就是準備設斷點然后單步調試,結果竟然是斷點無法進入方法體內,后來仔細看了一下方法體的時候發現了一個問題,就是現有的System.Data.Sqli…

mysql008where.or.in查詢

-- 創建EMP表 CREATE TABLE EMP ( EMPNO int(4) PRIMARY KEY, ENAME VARCHAR(10), JOB VARCHAR(9), MGR INT(4), HIREDATE DATE, SAL DOUBLE(7,2), COMM DOUBLE(7,2), DEPTNO INT(2) ); -- where查詢 語句 SELECT * from emp; SELECT * FROM DEPT; SELECT * FROM…

支持與不支持in-place操作的OpenCV函數匯總

支持In-Place操作cvSmoothCV_BLUR 、CV_GAUSSIAN支持,另三種不支持 cvDilate cvMorphologyEx對于“禮帽”和“黑帽”操作,in-place情況下,臨時圖像是必須的 cvFilter2D cvAdaptiveThreshold 備注在OpenCV官方文檔中,函數中最后一…

微信接口請求次數_接口簽名驗證常用方案

前面的文章說了接口數據如何獲取,今天就來聊聊接口數據的安全問題。說到接口加密驗證,通常都稱作“簽名”,類似于名人的個性簽名,讓其它人無法模仿。比如說請求接口刪除自己寫的文章,又或者請求接口查詢自己的帳單明細…

mysql009模糊查詢like.是否為null

-- 創建EMP表 CREATE TABLE EMP ( EMPNO int(4) PRIMARY KEY, ENAME VARCHAR(10), JOB VARCHAR(9), MGR INT(4), HIREDATE DATE, SAL DOUBLE(7,2), COMM DOUBLE(7,2), DEPTNO INT(2) ); -- where查詢 語句 SELECT * from emp; -- 模糊查詢 -- 搜索emp表中還有A的…

28335接兩個spi設備_SPI淺析

01 SPI簡介SPI,全稱為Serial Peripheral interface,即串行外圍設備接口。由摩托羅拉率先在產品上使用。SPI是一種高速全雙工,同步(full duplex synchronous)的通信總線協議,且占用硬件端口只有4個(SO,SI, SCLK 和CSN),所以出于這…

mysql010函數使用.單行函數.多行函數

-- 函數使用 -- 1.單行函數 執行QSL語句時候 分別產生了一條記錄影響的是多行。 -- 2.多行函數 執行QSL語句時候 只產生一條結果 -- 自己理解:多行函數,就是需要多條數據才能執行的結果。 -- max() min() sum() avg() count() SELECT ENAME,LOWER(E…

JS在線壓縮

http://dean.edwards.name/packer/轉載于:https://www.cnblogs.com/fery/p/4531804.html

java mongo 獲取所有數據庫_Spring Batch —從XML讀取并寫入Mongo

Java面試必備之JVMGC教程這幾天閑著在優銳課的java學習必備中學習了,在本文中,了解如何使用Spring Batch通過StaxEventItemReader使用ItemReader讀取XML文件并將其數據寫入NoSQL。在本文中,我們將向展示如何使用Spring Batch使用StaxEventIte…

001多表查詢.交叉鏈接cross JOIN.自然鏈接natural JOIN.using鏈接.on鏈接

-- 需求:查詢每一個員工信息,并且顯示每一個員工所在的部門名稱 -- mysql中多表查詢有四種,交叉鏈接cross JOIN,自然鏈接natural JOIN,using鏈接,on鏈接 -- 交叉鏈接cross JOIN SELECT * FROM emp; --6…

poj1969---找規律

題意&#xff1a;按照s型分別給數編號&#xff0c;給 #include <stdio.h> #include <stdlib.h>int main() {int n;while(scanf("%d",&n) ! EOF){int s0,k1;while(1){sk;//統計個數&#xff0c;當前幾斜線和大于了規定的序號&#xff0c;說明此時該數…

華菱重卡儀表指示說明_新一代創虎重卡登場!LNG車型將配玉柴燃氣發動機

2020年10月23日&#xff0c;現代商用車新一代創虎重卡正式發布&#xff0c;此次新車不僅外觀與韓國本土同步&#xff0c;更是首次搭載了國產玉柴動力&#xff0c;推出了LNG版車型。具體情況我們先搶先看看吧&#xff01;外觀升級 與韓國本土同步我們可以看到&#xff0c;相比此…

mysql002多表查詢.on鏈接分為三種情況,左鏈接,右鏈接,全鏈接

-- on鏈接&#xff08;最實用&#xff09;&#xff0c;分為三種情況&#xff0c;左鏈接&#xff0c;右鏈接&#xff0c;全鏈接 -- 左外鏈接&#xff0c;左表全部顯示&#xff0c;如果匹配不到右表的內容使用null代替。 SELECT * FROM emp e LEFT JOIN dept d ON e.DEPTNOd.DE…

x軸z軸代表的方向圖片_游戲中到底是Z軸朝上還是Y軸朝上?

本文轉自我的公眾號——游戲開發那些事在談到游戲世界中的坐標軸時&#xff0c;我們經常會看到這樣的爭論。“游戲中Y軸是向上的好么&#xff1f;這你都不知道&#xff1f;”“不對&#xff0c;空間直角坐標系不就是Z軸向上的么&#xff1f;”“拜托&#xff0c;請搞清楚坐標系…

補發《超級迷宮》站立會議三

那天我給自己的任務是實現控件的控制&#xff0c;但結果明顯很不理想&#xff0c;我僅僅加載了兩個控件&#xff08;即兩個小人&#xff09;&#xff0c;一個是玩家&#xff0c;另一個是守關者&#xff0c;玩家控制基本實現&#xff0c;通過方向鍵進行控制&#xff1b;但守關者…

mysql003三表查詢.三表查詢.自鏈接查詢

-- 多表查詢 三表查詢 -- 查詢員工的編號&#xff0c;姓名&#xff0c;薪水&#xff0c;部門編號&#xff0c;部門名稱&#xff0c;薪水等級 -- 可以先兩表查詢&#xff0c;在修改成三表查詢 -- 第一行查詢的內容&#xff0c;第二,三行查詢需要的表&#xff0c; -- 和條件…

[轉]jQuery源碼分析系列

文章轉自&#xff1a;jQuery源碼分析系列-Aaron 版本截止到2013.8.24 jQuery官方發布最新的的2.0.3為準 附上每一章的源碼注釋分析 &#xff1a;https://github.com/JsAaron/jQuery 正在編寫的書 - jQuery架構設計與實現 本人在慕課網的教程&#xff08;完結&#xff09; jQue…