内容简介
第1篇 概述及实验平台
第1章 低功耗蓝牙
1.1 蓝牙与物联网
1.2 低功耗蓝牙与“我的物联网”
1.3 低功耗蓝牙概述
1.4 低功耗蓝牙的特点
第2章 蓝牙4.0 BLE软件开发平台搭建
2.1 选择IAR 8051的理由
2.2 IAR 8051-8.3 的下载、安装和破解
2.2.1 下载IAR 8051-8.3
2.2.2 安装IAR 8051-8.3
2.2.3 破解IAR 8051-8.3
2.3 IAR 8051集成开发环境简介
2.4 IAR 8051 C/C++
2.5 安装相关支持软件
第3章 蓝牙4.0 BLE硬件开发平台搭建
3.1 选择世嵌开发板的理由
3.2 世嵌最简配置开发套件
3.2.1 核心板WB2540MVA
3.2.2 底板WX2530
3.2.3 仿真器CCDBG
3.3 搭建实验硬件环境
3.4 创建工程——点亮LED
第2篇 基础实验
第4章 GPIO实验
4.1 LED实验:打开所有LED
4.1.1 任务要求及效果呈现
4.1.2 实验原理
4.1.3 实验步骤
4.1.4 源码清单
4.2 LED实验:让LED一闪一闪
4.2.1 任务要求及效果呈现
4.2.2 实验原理
4.2.3 源码清单
4.3 LED实验:实现流水灯
4.3.1 任务要求及效果呈现
4.3.2 实验原理
4.3.3 源码清单
4.4 蜂鸣器实验:驱动蜂鸣器发声
4.4.1 任务要求及效果呈现
4.4.2 实验原理
4.4.3 源码清单
4.5 按键实验:按键控制LED
4.5.1 任务要求及效果呈现
4.5.2 实验原理
4.5.3 源码清单
4.6 按键实验:按键控制LED(中断方式)
4.6.1 任务要求及效果呈现
4.6.2 实验原理
4.6.3 源码清单
第5章 定时器实验
5.1 定时器实验:流水灯(查询方式)
5.1.1 任务要求及效果呈现
5.1.2 实验原理
5.1.3 源码清单
5.2 定时器实验:流水灯(中断方式)
5.2.1 任务要求及效果呈现
5.2.2 实验原理
5.2.3 源码清单
5.3 定时器实验:PWM控制蜂鸣器
5.3.1 任务要求及效果呈现
5.3.2 实验原理
5.3.3 示波器与开发板连接
5.3.4 源码清单
第6章 串口实验
6.1 串口发送实验:打印欢迎信息
6.1.1 任务要求及效果呈现
6.1.2 实验原理
6.1.3 硬件连接
6.1.4 源码清单
6.2 串口发送:用printf打印系统信息
6.2.1 任务要求及效果呈现
6.2.2 实验原理
6.2.3 源码清单
6.3 串口收发:用C标准库输入/输出函数
6.3.1 任务要求及效果呈现
6.3.2 实验原理
6.3.3 源码清单
6.4 串口收发:中断方式
6.4.1 任务要求及效果呈现
6.4.2 实验原理
6.4.3 源码清单
第7章 ADC实验
7.1 测量芯片内部温度和供电电压
7.1.1 任务要求及效果呈现
7.1.2 实验原理
7.1.3 源码清单
7.2 测量光照强度
7.2.1 任务要求及效果呈现
7.2.2 实验原理
7.2.3 源码清单
第8章 睡眠与唤醒实验
8.1 外部中断唤醒
8.1.1 任务要求及效果呈现
8.1.2 实验原理
8.1.3 源码清单
8.2 定时器唤醒
8.2.1 任务要求及效果呈现
8.2.2 实验原理
8.2.3 源码清单
第9章 看门狗实验、Flash读写实验
9.1 看门狗实验
9.1.1 任务要求及效果呈现
9.1.2 实验原理
9.1.3 源码清单
9.2 Flash读写实验
9.2.1 任务要求及效果呈现
9.2.2 实验原理
9.2.3 源码清单
第10章 总线实验
10.1 单总线实验(DS18B20驱动)
10.1.1 任务要求及效果呈现
10.1.2 实验原理
10.1.3 源码清单
10.2 SPI总线实验(诺基亚5110液晶屏驱动)
10.2.1 任务要求及效果呈现
10.2.2 实验原理
10.2.3 源码清单
第3篇 BLE协议栈
第11章 蓝牙4.0协议栈基础
11.1 BLE协议栈整体构架
11.2 物理层
11.3 链路层
11.3.1 链路层状态机
11.3.2 链路层报文
11.3.3 设备发现
11.3.4 关于广播
11.3.5 连接过程
11.3.6 数据发送
11.3.7 管理连接
11.4 主机/控制器接口
11.4.1 物理接口与逻辑接口
11.4.2 控制器的配置
11.4.3 广播与观察
11.4.4 发起连接
11.4.5 连接管理
11.5 逻辑链路控制和适配协议
11.6 属性协议层、通用属性配置文件层
11.6.1 服务器与客户端模型
11.6.2 属性
11.6.3 属性的访问
11.6.4 服务
11.6.5 特性
11.6.6 属性协议
11.6.7 通用属性规范
11.7 安全管理层
11.7.1 安全概念
11.7.2 配对和绑定
11.7.3 数据签名
11.8 通用访问配置文件层
11.8.1 GAP角色
11.8.2 模式和规程
11.8.3 广播模式和观察规程
11.8.4 可发现性
11.8.5 可连接性
11.8.6 绑定
第12章 TI蓝牙协议栈开发平台
12.1 BLE协议栈开发平台配置
12.2 BLE协议栈软件开发框架
12.3 协议栈应用程序运行机理
12.3.1 开始应用程序:main()
12.3.2 初始化系统:osal_init_system()
12.3.3 启动系统:osal_start_system()
12.3.4 系统运行机理
12.4 OSAL操作系统抽象层
12.4.1 任务事件和事件处理
12.4.2 内存堆管理
12.4.3 OSAL消息
12.5 HAL硬件抽象层
12.6 BLE协议栈
12.6.1 通用访问配置文件
12.6.2 通用属性配置文件
12.6.3 GATT服务器应用程序
12.7 配置文件
12.7.1 GAP外围角色配置
12.7.2 GAP外围/广播多重角色配置
12.7.3 GAP Central Role Profile
12.7.4 GAP绑定管理器
12.7.5 简单属性配置文件
12.7.6 简单按键属性配置文件
12.7.7 设备信息服务
12.7.8 其他属性配置文件
第13章 蓝牙协议栈项目开发入门
13.1 简单BLE外围设备
13.1.1 项目配置
13.1.2 Linker Map文件
13.1.3 simpleBLEPeripheral.c源码分析
13.2 简单BLE中央设备
13.2.1 项目配置
13.2.2 Linker Map文件
13.2.3 simpleBLECentral.c源码分析
第14章 定制硬件抽象层
14.1 增加外设驱动
14.2 修改hal_board_cfg
14.3 修改hal_led
14.4 修改hal_key
14.5 增强UART功能
14.6 增加Nokia 5110液晶屏驱动
第4篇 BLE通信实验
第15章 简单的蓝牙通信
15.1 引言
15.2 搭建蓝牙通信实验平台
15.3 源码相关配置修改
15.3.1 修改Simple BLE Peripherial项目
15.3.2 修改Simple BLE Central项目
15.4 实验过程演示
15.5 实验:实现自动连接和LED连接状态指示
15.5.1 任务要求及效果呈现
15.5.2 实验原理
15.5.3 源码修改
第16章 我的蓝牙感知器
16.1 控制LED
16.1.1 任务要求及效果呈现
16.1.2 实现外围设备
16.1.3 实现中央设备
16.2 感知外设CPU温度
16.2.1 任务要求及效果呈现
16.2.2 实现外围设备
16.2.3 实现中央设备
16.3 感知外设环境温度
16.3.1 任务要求及效果呈现
16.3.2 实现外围设备
16.3.3 实现中央设备
16.4 感知外设光照强度
16.4.1 任务要求及效果呈现
16.4.2 实现外围设备
16.4.3 实现中央设备
16.5 定时获取外设光照强度
16.5.1 任务要求及效果呈现
16.5.2 实现外围设备
16.5.3 实现中央设备
16.6 无线串口透传
16.6.1 任务要求及效果呈现
16.6.2 NPI模块原理与串口透传
16.6.3 实现外围设备
16.6.4 实现中央设备
第17章 蓝牙USB
17.1 iSensorHid(蓝牙键鼠)
17.1.1 任务要求及效果呈现
17.1.2 实现外围设备
17.1.3 实现中央设备
17.2 iSensorCDC(蓝牙USB串口)
17.2.1 任务要求及效果呈现
17.2.2 实现外围设备
17.2.3 实现中央设备
17.3 iHostTest(网络处理机)
17.3.1 实现iHost Test
17.3.2 系统初始化
17.3.3 建立连接
17.3.4 测试GATT属性服务
第18章 蓝牙通信测试与支持
18.1 蓝牙协议分析仪
18.2 蓝牙支持
参考文献