本文介紹了在nRF51822上如何開始編寫低功耗藍牙(BLE)應用程序,包括對BLE的特性進行了概要的介紹,並且詳細描述了構建一個定制服務的簡單例程,這個簡單的例程叫做LED Button服務。
1 簡介
本文的目的是教你如何一步步創建自己的BLE應用程序,包括使用nRF51822芯片創建一個定制的服務。
1.1 最低要求
需要有嵌入式C語言編程經驗,以便完全理解本應用手冊。
1.1.1 需要的工具
需要一個nRF51822 Evaluation Kit的開發板,另外還需要下載和安裝以下軟件工具:
• S110 SoftDevice
• nRFgo Studio
• nRF51 SDK
• Keil MDK-ARM
• SEGGER’s J-Link tools
如何把協議棧固件S110 SoftDevice燒錄到nRF51822芯片中請參考:《nRF51822 Evaluation Kit User Guide》。
注意:當編寫本文檔時參考了最新版本的nRF51 SDK 5.2.0和最新版本的協議棧S110 SoftDevice 6.0.0。
1.2 文檔說明
下面的文檔是重要的參考資料。
文檔 |
描述 |
nRF51822 Evaluation Kit User Guide |
使用Evaluation Kit開發板的介紹和配置,包括Keil和SoftDevice的配置。 |
nRF51 SDK documentation |
這個文件在SDK安裝的文件夾之下的子文件夾中,包含了SDK中所有功能API的文檔。 |
S110 nRF51822 SoftDevice Specification |
介紹了協議棧S110 SoftDevice,包括資源的用法和高級的功能函數。 |
nRF51822 Product Specification |
描述了nRF51的硬件、模塊和電氣特性。 |
nRF51 Series Reference Manual |
介紹了nRF51芯片系列所有功能模塊的描述和芯片所有的外圍資源。 |
nAN-15: Creating Applications with the Keil C51 Compiler |
這個應用手冊包含使用Keil μVision的信息,它為nRF24LE1芯片而寫,但是3.3節“Including files”和3.4節““Debug your project”同樣適用於nRF51822芯片。 |
Bluetooth Core Specification, version 4.0 卷1,3,4,6 |
這個文檔由藍牙技術聯盟組織提供,包含了關於藍牙服務和profiles的信息。 |
1.3 藍牙技術資源
所有藍牙技術聯盟的服務、特性和描述都是根據藍牙開發網站來定義,可以參考規范的不同部分找到UUID或者是數據格式的定義。
1.4 nRF51822 和 S110 SoftDevice
S110 SoftDevice是BLE外圍設備協議棧的解決方案,它集成了低功耗控制器、主機,並提供了一個完整和靈活的API用於在一個片上系統(SoC)構建一個低功耗藍牙的解決方案,S110 SoftDevice提供的是已經編譯完成的HEX文件,在加載你的應用程序之前,你必須把它預先燒錄到芯片中。
S110 SoftDevice 使用了一部分芯片的flash和RAM,它們在你的代碼中已被保護,因此你不能意外地寫數據到該區域。S110 SoftDevice也需要互斥地訪問外圍資源和寄存器。
如何燒錄S110 SoftDevice到nRF51822中請參考:
《nRF51822 Evaluation Kit User Guide》
SoftDevice使用了哪些資源,請參考:
《nRF51822 S110 SoftDeviceSpecification》
1.5 應用簡述
LED Button 應用示例是為了讓你學習如何在nRF51822上開發BLE應用,它是一個通過BLE的通知功能進行通信的BLE應用的簡單演示。當它運行時,你可以通過集中器(見第10頁2.2.1節“角色”中對集中器的定義部分)觸發nRF51822上LED的輸出,並且當在nRF51822上的按鍵被按下時集中器將會收到一個通知。
這個應用通過一個服務(見第10頁2.2.2節“GATT層”服務和特性的描述部分)被建立,這個服務包括2個特性:LED特性和按鍵特性。LED特性:通過沒有回應的寫遠程操作LED的亮滅。按鍵特性:當按鍵被按下時,將會發送一個通知到集中器。
作者:tan-v 出處:http://www.cnblogs.com/tan-v/ 歡迎轉載或分享,但請務必聲明文章出處。