本文介绍了在nRF51822上如何开始编写低功耗蓝牙(BLE)应用程序,包括对BLE的特性进行了概要的介绍,并且详细描述了构建一个定制服务的简单例程,这个简单的例程叫做LED Button服务。
本文的目的是教你如何一步步创建自己的BLE应用程序,包括使用nRF51822芯片创建一个定制的服务。
需要有嵌入式C语言编程经验,以便完全理解本应用手册。
需要一个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。
下面的文档是重要的参考资料。
文档 |
描述 |
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的信息。 |
所有蓝牙技术联盟的服务、特性和描述都是根据蓝牙开发网站来定义,可以参考规范的不同部分找到UUID或者是数据格式的定义。
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》
LED Button 应用示例是为了让你学习如何在nRF51822上开发BLE应用,它是一个通过BLE的通知功能进行通信的BLE应用的简单演示。当它运行时,你可以通过集中器(见第10页2.2.1节“角色”中对集中器的定义部分)触发nRF51822上LED的输出,并且当在nRF51822上的按键被按下时集中器将会收到一个通知。
这个应用通过一个服务(见第10页2.2.2节“GATT层”服务和特性的描述部分)被建立,这个服务包括2个特性:LED特性和按键特性。LED特性:通过没有回应的写远程操作LED的亮灭。按键特性:当按键被按下时,将会发送一个通知到集中器。