1. 程式人生 > >藍芽概述+nrf51822串列埠資料透傳的程式

藍芽概述+nrf51822串列埠資料透傳的程式

以上一個系列中的程式為基礎進行分析,主要分析協議棧。這部分開源的部分主要是GATT和GAP。

1.藍芽概述

藍芽是一種無線技術標準,可實現固定裝置、移動裝置和樓宇個人域網之間的短距離資料交換,使用在電信、計算機、網路、和消費電子等多眾多領域。藍芽採用分散式網路結構以及快跳頻和短包技術,支援點對點及點對多點通訊,工作在全球通用的2.4GHz ISM頻段(波段為2400–2483.5MHz)。傳輸速率為1Mbps。採用時分雙工傳輸方案實現全雙工傳輸。

2.藍芽版本

3.藍芽4.0

藍芽4.0將三種規格集一體,包括傳統藍芽技術、高速技術和低耗能技術,與3.0版本相比最大的不同就是低功耗。 該技術擁有極低的執行和待機功耗,使用一粒鈕釦電池甚至可連續工作數年之久。
BLE支援兩種部署方式:雙模式和單模式。雙模式中既可以支援傳統藍芽,也支援BLE的裝置。單模式則僅支援BLE裝置。大部分雙模式的BLE可以代替部分傳統的藍芽控制裝置。
參考:

https://baike.baidu.com/item/%E8%93%9D%E7%89%994.0/8440996?fr=aladdin

4.藍芽架構

資料裡摳出來的BLE4.0的分層架構圖
這裡寫圖片描述
這裡寫圖片描述

4.1.控制層(Controller)

從下到上分別是物理層(PHY),資料鏈路層(LL)主機控制層(HCI)。這三層主要位於控制器中。
1.物理層:從通道中傳送接收資料,使資料符合資料流的格式。
2.資料鏈路層:負責鏈路的管理和控制,包括建立,維護,釋放等。
3.主機控制器:負責與資料無關的藍芽系統的操作。例如詢問藍芽裝置是否存在,連線藍芽裝置,或者讓本地的藍芽可以被其他裝置發現或連線。為了執行響應的功能,HCI要求及通過基帶的資源控制器訪問傳輸媒介。同時,裝置管理器還通過HCI命令控制本地裝置的控制行為。

4.2.主協議層(Host)

在控制層上的主協議層包括邏輯鏈路控制和適配協議(L2CAP),應用程式和服務提供了基於通道的抽象:進行資料分片化和組裝應用程式的資料,複用和反覆用多通道共享一個邏輯鏈路。
除了L2CAP、主協議層包括安全管理協議(SMP)和屬性協議(ATT)。
1.安全管理協議(SMP)使用固定L2CAP通道來實現裝置之間安全功能。
2.屬性協議(ATT)提供了一個在一個固定的L2CAP通道上傳輸少量資料的方法。用於確定其他裝置的服務和其他裝置的功能也使用屬性協議。
3.通用屬性(GATT)配置檔案指定了配置檔案資料交換的結構。該結構定義概要檔案中使用的基本元素,如服務和特性。
4.通用訪問配置檔案(GAP)定義了藍芽裝置的基本要求

4.3.應用(APPs)

BLE的實際應用例子,包括電池,心跳速率,血壓測量等
應用層上定義了三種規範:特徵,服務和概述(characteristic, service, and profile)。每種規範都是建立在GAP上。GAP定義了特徵和服務的屬性,應用層則定義如何使用這些屬性組。

最後前段時間需要用NRF51822做一個串列埠透傳的功能,實現和微控制器的通訊。
放上程式碼:程式臨時寫的,沒整理,看著有點亂。
https://github.com/awe15/NRF51822.git