
物联网技术实践教程——基于蓝牙4
《物联网技术实践教程——基于蓝牙4》是2015年9月清华大学出版社出版的图书,作者是毛剑飞、周雪、毛科技、竺超明、陈立建。
基本介绍
- 书名:物联网技术实践教程——基于蓝牙4
- 作者:毛剑飞
周雪
毛科技
竺超明
陈立建 - 出版社:清华大学出版社
- 出版时间:2015年9月
- 定价:49 元
- ISBN:9787302399773
内容简介
本书全面介绍物联网工程的蓝牙4.0低功耗开发技术。全书分为4篇,共18章。其中,第1篇是实验软、硬体平台的搭建,一步一步地介绍如何构架简单的蓝牙软硬实验平台;第2篇是蓝牙基础实验,讲解最简单的无作业系统的蓝牙晶片实验,让读者充分了解和熟悉蓝牙晶片,为后续的蓝牙通信开发打下基础;第3篇是低功耗蓝牙通信协定栈,主要介绍低功耗蓝牙通信原理以及如何自定义硬体抽象层,本篇内容是后面的蓝牙通信实验的理论和实验基础;第4篇是低功耗蓝牙通信实验,先从学着改造简单的蓝牙协定栈範例项目开始,再定製一个我的蓝牙感知器iSensor,在iSensor中一步步实践蓝牙协定栈的通信原理,然后结合USB模组综合套用蓝牙设备实现蓝牙键鼠、蓝牙CDC串口通信及网路处理机,最后讲述了套用蓝牙无线分析仪测试蓝牙通信。
本书的重点是实验,整个蓝牙实验内容以任务驱动为导向,每个实验都先提出目标并给出实验过程图像,以充分调动读者兴趣和学习热情,鼓励读者参与实验,实现实验目标,在实现过程中可以参考我们对实验原理作出的详细讲解和分析,实验完成后还可以参考本书对每个实验给出的详细注释的源码清单。
本书适合作为高等院校和高职高专的物联网、通信、电气、自动控制以及计算机套用专业的本科生、研究生和专科生教材,同时也可供对物联网、通信技术开发感兴趣的工程师、广大科技工作者和研究人员参考。
图书目录
第1篇概述及实验平台
第1章低功耗蓝牙3
1.1蓝牙与物联网3
1.2低功耗蓝牙与“我的物联网”5
1.3低功耗蓝牙概述8
1.4低功耗蓝牙的特点9
第2章蓝牙4.0 BLE软体开发平台搭建11
2.1选择IAR 8051的理由11
2.2IAR 80518.3的下载、安装和破解12
2.2.1下载IAR 80518.312
2.2.2安装IAR 80518.313
2.2.3破解IAR 80518.317
2.3IAR 8051集成开发环境简介21
2.4IAR 8051 C/C++22
2.5安装相关支持软体22
第3章蓝牙4.0 BLE硬体开发平台搭建24
3.1选择世嵌开发板的理由24
3.2世嵌最简配置开发套件25
3.2.1核心板WB2540MVA26
3.2.2底板WX253028
3.2.3仿真器CCDBG33
3.3搭建实验硬体环境35
3.4创建工程——点亮LED37
第2篇基 础 实 验
第4章GPIO实验534.1LED实验: 打开所有LED53
4.1.1任务要求及效果呈现53
物联网技术实践教程——基于蓝牙4
4.1.2实验原理54
4.1.3实验步骤56
4.1.4源码清单59
4.2LED实验: 让LED一闪一闪59
4.2.1任务要求及效果呈现59
4.2.2实验原理60
4.2.3源码清单60
4.3LED实验: 实现流水灯61
4.3.1任务要求及效果呈现61
4.3.2实验原理61
4.3.3源码清单62
4.4蜂鸣器实验: 驱动蜂鸣器发声63
4.4.1任务要求及效果呈现63
4.4.2实验原理63
4.4.3源码清单65
4.5按键实验: 按键控制LED66
4.5.1任务要求及效果呈现66
4.5.2实验原理66
4.5.3源码清单69
4.6按键实验: 按键控制LED (中断方式)71
4.6.1任务要求及效果呈现71
4.6.2实验原理71
4.6.3源码清单74
第5章定时器实验77
5.1定时器实验: 流水灯(查询方式)77
5.1.1任务要求及效果呈现77
5.1.2实验原理77
5.1.3源码清单81
5.2定时器实验: 流水灯(中断方式)83
5.2.1任务要求及效果呈现83
5.2.2实验原理83
5.2.3源码清单84
5.3定时器实验: PWM控制蜂鸣器86
5.3.1任务要求及效果呈现86
5.3.2实验原理87
5.3.3示波器与开发板连线90
5.3.4源码清单91
第6章串口实验97
6.1串口传送实验: 列印欢迎信息97
6.1.1任务要求及效果呈现97
6.1.2实验原理97
6.1.3硬体连线102
6.1.4源码清单103
6.2串口传送: 用printf列印系统信息104
6.2.1任务要求及效果呈现104
6.2.2实验原理104
6.2.3源码清单106
6.3串口收发: 用C标準库输入/输出函式107
6.3.1任务要求及效果呈现108
6.3.2实验原理108
6.3.3源码清单109
6.4串口收发: 中断方式112
6.4.1任务要求及效果呈现113
6.4.2实验原理113
6.4.3源码清单116
第7章ADC实验119
7.1测量晶片内部温度和供电电压119
7.1.1任务要求及效果呈现119
7.1.2实验原理120
7.1.3源码清单124
7.2测量光照强度126
7.2.1任务要求及效果呈现127
7.2.2实验原理127
7.2.3源码清单128
第8章睡眠与唤醒实验130
8.1外部中断唤醒130
8.1.1任务要求及效果呈现130
8.1.2实验原理131
8.1.3源码清单134
8.2定时器唤醒139
8.2.1任务要求及效果呈现139
8.2.2实验原理140
8.2.3源码清单142
第9章看门狗实验、Flash读写实验144
9.1看门狗实验144
9.1.1任务要求及效果呈现144
9.1.2实验原理145
9.1.3源码清单146
9.2Flash读写实验147
9.2.1任务要求及效果呈现148
9.2.2实验原理148
9.2.3源码清单150
第10章汇流排实验153
10.1单汇流排实验(DS18B20驱动)153
10.1.1任务要求及效果呈现153
10.1.2实验原理154
10.1.3源码清单157
10.2SPI汇流排实验(诺基亚5110液晶屏驱动)161
10.2.1任务要求及效果呈现161
10.2.2实验原理163
10.2.3源码清单171
第3篇BLE协定栈
第11章蓝牙4.0协定栈基础19711.1BLE协定栈整体构架197
11.2物理层198
11.3链路层198
11.3.1链路层状态机198
11.3.2链路层报文200
11.3.3设备发现200
11.3.4关于广播202
11.3.5连线过程202
11.3.6数据传送205
11.3.7管理连线205
11.4主机/控制器接口206
11.4.1物理接口与逻辑接口206
11.4.2控制器的配置206
11.4.3广播与观察207
11.4.4发起连线208
11.4.5连线管理210
11.5逻辑链路控制和适配协定210
11.6属性协定层、通用属性配置档案层210
11.6.1伺服器与客户端模型210
11.6.2属性211
11.6.3属性的访问213
11.6.4服务213
11.6.5特性215
11.6.6属性协定216
11.6.7通用属性规範218
11.7安全管理层220
11.7.1安全概念220
11.7.2配对和绑定221
11.7.3数据签名221
11.8通用访问配置档案层222
11.8.1GAP角色222
11.8.2模式和规程222
11.8.3广播模式和观察规程223
11.8.4可发现性223
11.8.5可连线性224
11.8.6绑定226
第12章TI蓝牙协定栈开发平台227
12.1BLE协定栈开发平台配置227
12.2BLE协定栈软体开发框架228
12.3协定栈应用程式运行机理229
12.3.1开始应用程式: main()230
12.3.2初始化系统: osal_init_system()231
12.3.3启动系统: osal_start_system()233
12.3.4系统运行机理235
12.4OSAL作业系统抽象层236
12.4.1任务事件和事件处理236
12.4.2记忆体堆管理237
12.4.3OSAL讯息237
12.5HAL硬体抽象层238
12.6BLE协定栈238
12.6.1通用访问配置档案239
12.6.2通用属性配置档案240
12.6.3GATT伺服器应用程式241
12.7配置档案242
12.7.1GAP外围角色配置242
12.7.2GAP外围/广播多重角色配置243
12.7.3GAP Central Role Profile243
12.7.4GAP绑定管理器244
12.7.5简单属性配置档案245
12.7.6简单按键属性配置档案252
12.7.7设备信息服务253
12.7.8其他属性配置档案253
第13章蓝牙协定栈项目开发入门254
13.1简单BLE外围设备254
13.1.1项目配置254
13.1.2Linker Map档案257
13.1.3simpleBLEPeripheral.c源码分析258
13.2简单BLE中央设备273
13.2.1项目配置273
13.2.2Linker Map档案273
13.2.3simpleBLECentral.c源码分析274
第14章定製硬体抽象层281
14.1增加外设驱动281
14.2修改hal_board_cfg282
14.3修改hal_led284
14.4修改hal_key284
14.5增强UART功能286
14.6增加Nokia 5110液晶屏驱动294
第4篇BLE通信实验
第15章简单的蓝牙通信29715.1引言297
15.2搭建蓝牙通信实验平台298
15.3源码相关配置修改299
15.3.1修改Simple BLE Peripherial项目299
15.3.2修改Simple BLE Central项目301
15.4实验过程演示302
15.5实验: 实现自动连线和LED连线状态指示305
15.5.1任务要求及效果呈现305
15.5.2实验原理307
15.5.3源码修改308
第16章我的蓝牙感知器312
16.1控制LED312
16.1.1任务要求及效果呈现313
16.1.2实现外围设备315
16.1.3实现中央设备319
16.2感知外设CPU温度328
16.2.1任务要求及效果呈现329
16.2.2实现外围设备330
16.2.3实现中央设备333
16.3感知外设环境温度336
16.3.1任务要求及效果呈现337
16.3.2实现外围设备338
16.3.3实现中央设备342
16.4感知外设光照强度344
16.4.1任务要求及效果呈现344
16.4.2实现外围设备346
16.4.3实现中央设备350
16.5定时获取外设光照强度352
16.5.1任务要求及效果呈现352
16.5.2实现外围设备355
16.5.3实现中央设备362
16.6无线串口透传364
16.6.1任务要求及效果呈现364
16.6.2NPI模组原理与串口透传366
16.6.3实现外围设备368
16.6.4实现中央设备371
第17章蓝牙USB376
17.1iSensorHid(蓝牙键鼠)377
17.1.1任务要求及效果呈现377
17.1.2实现外围设备385
17.1.3实现中央设备390
17.2 iSensorCDC(蓝牙USB串口)395
17.2.1任务要求及效果呈现396
17.2.2实现外围设备398
17.2.3实现中央设备398
17.3iHostTest(网路处理机)400
17.3.1实现iHostTest400
17.3.2系统初始化402
17.3.3建立连线403
17.3.4测试GATT属性服务405
第18章蓝牙通信测试与支持414
18.1蓝牙协定分析仪414
18.2蓝牙支持417
参考文献420
图
图11物联网——感知世界3
图12蓝牙在医疗设备上的套用7
图13蓝牙防丢产品7
图14SENSORY的前端语音识别技术通过蓝牙耳机实现安全行驶8
图21IAR官方主页12
图22IAR产品下载13
图23IAR 80518.3评估版下载页面13
图24“IAR 80518.3下载任务”对话框13
图25EW80518303Autorun.exe自解压13
图26程式安装界面13
图27準备安装15
图28安装精灵15
图29是否接受许可协定对话框15
图210自定义安装还是完全安装17
图211安装路径选择17
图212程式图示选择17
图213準备安装程式17
图214安装程式过程17
图215是否安装USB dongles驱动19
图216安装结束19
图217退出19
图218破解IAR 80518.319
图219License Manager界面19
图220编译错误20
图221增加一行“Z(DATA)VREG=087F”20
图222现在编译正确了20
图223IAR 8051集成开发环境22
图31世嵌科技官网24
图32CC2540蓝牙4.0低功耗最简配置开发板套件(2模组+2底板+1仿真器)25
图33WB2540MVA核心板26
图34WB2540MVA核心板机械尺寸和元件布局27
图35WX2530底板(绿色)+CC2540核心板(蓝色)28
图36开发板整体架构30
图37WX2530底板输入接口30
图38跳线使能USB接口31
图39仿真器接口封装32
物联网技术实践教程——基于蓝牙4
图 图310仿真器灰排母座应朝板子外侧插入仿真接口32
图311CCDBG仿真器(上面虽未标明支持CC2540,但实际完全支持)34
图312某淘宝店推出的PL2303HX模组36
图313开发板与外配的硬体连线37
图314複製安装下的蓝牙协定栈到你的工作37
图315协定栈的项目範例37
图316複製得一个副本37
图317将项目改名37
图318项目档案39
图319项目档案41
图320修改mTest.eww档案41
图321新工程诞生41
图322移除原工程档案41
图323选择Options命令41
图324将常量和字元串置于RAM memory41
图325将输出的hex档案改为你喜欢的名字42
图326将Driver设定为Texas Instruments43
图327选择Add→AddFiles命令43
图328选中3个档案43
图329档案改名43
图330档案已经添加44
图331清空编辑区46
图332编写代码46
图333编译代码46
图334下载调试46
图335调试开始46
图336点亮绿灯46
图337设定断点47
图338启动不下载的调试48
图339调试开始48
图340调试运行到断点处48
图341单击step over图示49
图342调试游标进入下一行语句49
图41基础实验一效果54
图42LED原理54
图43打开项目并另外储存源档案57
图44将源档案改名并另外储存57
图45将另外储存的档案添加57
图46将mTest.c档案从项目编译连结中排除57
图47为mTestLedAllOpen.c编写代码58
图48让LED一闪一闪59
图49流水灯效果61
图410流水灯程式设计和调试界面62
图411驱动蜂鸣器发声63
图412蜂鸣器原理64
图413按键控制LED亮灭66
图414按键电路原理图67
图415按键按下和鬆开的电信号变化68
图416按键控制LED(中断方式)71
图51中断查询方式的定时流水灯77
图52中断方式的定时流水灯83
图53实验过程演示: 按下键2,黄灯亮(左图),释放,黄灯熄灭(右图)87
图54200Hz声音时的通道2和通道3的波形87
图552000Hz声音时的通道2和通道3的波形87
图56本人自购的示波器90
图57开发板与示波器连线90
图61列印欢迎信息97
图62CC2540串口与PC机串口的硬体连线103
图63串口输出系统硬体信息104
图64使用C标準库输入输出函式进行串口收发实验108
图65中断方式下的串口数据收发实验113
图71手指压在CC2540上以测量晶片内部温度的变化119
图72晶片内部电压和温度(当手指按在CC2540晶片上时温度立即上升)120
图73测量光敏电阻分压127
图74手指按住光敏电阻(分压为1.805V)127
图75手指离开光敏电阻(分压为0.400V)127
图76LED强光直射光敏电阻(分压为0.071V)128
图77相机袋压在光敏电阻上(2.900V)128
图78光敏电阻原理128
图81按键控制休眠实验130
图82串口列印的信息(按键催眠、唤醒CPU实验)130
图83进入反彙编代码查看PCON.IDLE=1指令地址134
图84开发板的演示效果(睡眠定时器唤醒实验)140
图85串口控制台列印的实验过程信息(睡眠定时器唤醒实验)140
图91正常的流水灯演示实验144
图92没有及时餵狗而导致反覆重启145
图93控制台显示的反覆重启效果145
图94Flash读写实验148
图101手指按在DS18B20上面温度一直在上升154
图102DS18B20实验——手指按在DS18B20上面使得温度上升154
图103DS18B20温度测量模组154
图104DS18B20的Reset时序154
图105初始欢迎页162
图106键2按下背光打开162
图107键1按下开始测量气温162
图108键2按下背光关掉162
图109实验过程在串口控制台的演示162
图1010Nokia 5110显示屏正反面(带PCB小板)163
图1011CC2540与Nokia 5110的电路连线原理164
图1012PCD8544写指令时序165
图1013PCD8544初始化时序165
图1014显存结构167
图1015用水平定址方式(V=0)往RAM写入数据的次序167
图1016汉字液晶点阵及对应编码171
图111BLE协定栈构架197
图112链路层状态机199
图113两个设备建立连线以实现可靠数据传输202
图114连线事件204
图115属性结构211
图116服务声明样例214
图117特性声明215
图118特性数值215
图121单一设备的配置227
图122网路处理器的配置228
图123SimpleBLEPeripheral项目界面229
图124系统运行机理235
图125属性结构240
图131SimpleBLEPeripheral项目界面254
图132设定预处理宏255
图133配置档案中定义预处理宏255
图134Linker Map档案257
图135SimpleBLECentral项目界面273
图136Linker Map档案273
图141添加外设驱动源档案282
图151我的蓝牙通信简易实验平台298
图152CCDBG端子扩展原理298
图153CCDBG端子扩展板与CCDBG连线298
图154增加和修改预定义宏299
图155增加预定义宏301
图156实验过程控制台显示304
图157实验初始液晶显示304
图158实验过程液晶显示304
图159实验过程控制台显示306
图1510实验过程液晶显示307
图161串口控制台列印实验过程313
图162连线建立并参数更新后的LCD显示及外围设备LED显示314
图163单击按键后的LCD显示及外围设备LED显示314
图164LCD显示MCU温度信息329
图165串口控制台列印实验过程329
图166LCD显示环境温度信息337
图167串口控制台列印实验过程337
图168LCD显示光照强度344
图169串口控制台列印实验过程344
图1610中央设备串口控制台列印实验过程353
图1611外围设备串口控制台353
图1612LCD显示即时光照强度355
图1613串口控制台列印实验过程365
图1614LCD显示当前串口传送和接收信息366
图171中央设备启动过程1(在扫描期间USB开始初始化)377
图172中央设备启动过程2(框中部分是显示的重合部分)377
图173系统初始在完成的初始LCD界面(PC自动传送键盘灯状体的USB报告)377
图174蓝牙滑鼠串口控制台显示379
图175蓝牙滑鼠PC桌面测试379
图176蓝牙键盘功能1串口控制台显示382
图177蓝牙键盘功能1 PC桌面测试382
图178蓝牙键盘功能2串口控制台显示384
图179蓝牙键盘功能2 播放器测试——快进384
图1710蓝牙键盘功能2 播放器测试——快退384
图1711蓝牙键盘功能2 播放器测试——暂停384
图1712蓝牙键盘灯控制实验: 串口信息输出384
图1713蓝牙键盘灯控制实验: LED显示(共3幅图,每幅图的左上: 中央设备;右下: 外围设备)384
图1714蓝牙键盘灯控制实验: LCD显示(共两幅图,每幅图的左边: 中央设备;右边: 外围设备)384
图1715插入USB口之后出现第3个串口(COM5: USB CDC虚拟串口)396
图1716系统启动界面中自动配置串口透传396
图1717串口透传通信过程396
图1718启动BTool402
图1719BTool初始化界面403
图1720开始扫描404
图1721发现广播设备404
图1722建立连线406
图1723读写属性操作界面406
图1724利用特性UUID发现特性起始句柄407
图1725利用特性句柄读特性值408
图1726利用特性UUID读特性值408
图1727解决二进制向浮点型转换409
图1728利用多个特性句柄读多个特性值410
图1729根据特性句柄写LED特性值411
图1730写入之前(仅绿灯亮)411
图1731写入之后(LED全亮)411
图1732利用特性句柄写环境温度通知配置411
图1733利用特性句柄写光照强度通知配置412
图181选择晶片对话框415
图182SmartRF Packet Sniffer界面415
图183Sniffer抓包结果416
图184TI低功耗蓝牙技术主页417
图185CC254X PC端开发範例418
图186CC254X移动智慧型设备开发範例418
图187CC254X嵌入式设备开发範例419
表
表11始终增长的传输速率8
表31核心板J3直插引脚定义27
表32核心板J4直插引脚定义27
表33核心板J5直插引脚定义28
表34LED接口30
表35按键接口30
表36感测器接口31
表37UART接口(J13)31
表38电源接口(J11)31
表39底板J4直插引脚定义31
表310底板J5直插引脚定义32
表311底板仿真接口定义33
表41P1 (0x90)连线埠154
表42P2(0xA0)连线埠255
表43P1SEL (0xF4)连线埠1功能选择55
表44P2SEL(0xF5)连线埠2功能选择和连线埠1外设优先权控制55
表45P1DIR(0xFE)连线埠1方向56
表46P2DIR(0xFF)连线埠2方向和连线埠0 外设优先权控制56
表47P0(0x80)连线埠064
表48P0SEL(0xF3)连线埠0功能选择64
表49P0DIR(0xFD)端口0功能选择65
表410P0(0x80)连线埠067
表411P0SEL(0xF3)连线埠0功能选择67
表412P0DIR(0xFD)连线埠0方向67
表413P0INP(0x8F)连线埠0输入模式67
表414P2INP(0xF7)连线埠2输入模式68
表415P0IFG(0x89)连线埠P0.7~P0.0中断状态标誌72
表416PICTL(0x8C)位0连线埠0中断模式配置72
表417P0IEN(0xAB)连线埠P0.7~P0.0中断使能73
表418IEN0(0xA8)位7使能所有中断源73
表419IEN1(0xB8)位5连线埠0中断源使能73
表420 IRCON(0xC0)位5连线埠0中断标誌73
表51T1CNTH(0xE3)定时器1计数器高位78
表52T1CNTL(0xE2)定时器1计数器低位78
表53T1CTL(0xE4)定时器1的控制和状态78
表54T1STAT(0xAF)定时器1状态78
表55T1CC0H(0xDD)定时器1通道1捕获/比较值高位79
表56T1CC0L(0xDA)定时器1通道0捕获/比较值低位79
表57CLKCONCMD(0xC6)与定时器相关的位时钟控制命令79
物联网技术实践教程——基于蓝牙4
表 表58CLKCONSTA(0x9E)时钟控制状态80
表59IEN0(0xA8)位7中断源使能总开关83
表510IEN1(0xB8)位1定时器1中断使能84
表511T1STAT(0xAF)位5定时器1状态84
表512IRCON(0xC0)位1定时器1中断标誌84
表513PERCFG(0xF1)外设控制87
表514P2DIR(0xFF)连线埠2方向和连线埠0外设优先权控制87
表515P0SEL(0xF3)连线埠0功能选择88
表516P0DIR(0xFD)连线埠0功能选择88
表517T1CCTL3(0x62A3)定时器1通道3捕获/比较控制88
表518T1CC0H(0xDD)定时器1通道1捕获/比较值高位89
表519T1CC0L(0xDA)定时器1通道0捕获/比较值低位89
表61U0CSR(0x86)USART0控制和状态99
表62U0UCR(0xC4)USART0的UART控制99
表63U0GCR(0xC5)USART0通用控制100
表64U0BUF又名U0DBUF(0xC1)USART0接收/传送数据快取100
表65U0BAUD(0xC2)USART0波特率控制101
表66P2DIR(0xFF)连线埠2方向和连线埠0外设优先权控制101
表6732MHz系统时钟的常用波特率设定101
表68CHVER(0x6249)晶片版本105
表69CHIPID (0x624A)晶片ID105
表610CHIPINFO0(0x6276)晶片信息位元组0105
表611CHIPINFO1(0x6277)晶片信息位元组1106
表612TCON(0x88)中断标誌114
表613IRCON2(0xE8)中断标誌5114
表614串口收发中断向量描述114
表615IEN0(0xA8)中断使能0114
表616IEN2 (0x9A)中断使能2115
表71APCFG(0xF2)模拟外设I/O 配置120
表72ADCL(0xBA)ADC数据低位120
表73ADCH(0xBB)ADC数据高位121
表74ADCCON1 (0xB4)ADC 控制1121
表75ADCCON2(0xB5)ADC控制2121
表76ADCCON3(0xB6)ADC控制3122
表77TR0(0x624B)测试暂存器0123
表78ATEST(0x61BD)模拟测试控制123
表81PCON(0x87)供电模式控制132
表82SLEEPCMD(0xBE)睡眠模式控制132
表83SLEEPSTA(0x9D)睡眠模式控制状态132
表84ST2(0x97)休眠定时器2141
表85ST1(0x96)休眠定时器1141
表86ST0(0x95)休眠定时器0141
表87STLOAD(0xAD)睡眠定时器载入状态141
表91看门狗暂存器145
表101传送ROM指令155
表102传送存储器指令156
表103Nokia 5110液晶屏接口(带PCB小板)163
表104USART功能配置164
表105PCD8544指令集165
表106表105中有关字元的解释166
表107PCD8544 SPI时钟频率167
表108PERCFG(0xF1)外设控制168
表109U1CSR(0xF8)USART 1控制和状态168
表1010U1UCR(0xFB)USART 1控制168
表1011U1GCR(0xFC)USART 1通用控制169
表1012U1BUF(0xF9)USART 1接收/传送数据快取170
表111首要服务与次要服务的属性资料库样例214
表122SimpleKeys GATT Profile属性表253
1.1移动通信发展简史1
1.2中国移动通信发展现状6
1.3各类移动通信系统概述7
1.3.1无绳电话系统7
1.3.2无线寻呼系统8
1.3.3集群移动通信系统9
1.3.4无线区域网路10
1.3.5卫星移动通信系统12
1.3.6蜂窝移动通信系统14
1.4移动通信系统的工作频段16
习题18
第2章第二代移动通信系统19
2.1GSM移动通信系统19
2.1.1GSM系统的网路结构19
2.1.2GSM服务区域的划分21
2.1.3GSM的编号计画22
2.1.4GSM系统的接口24
2.1.5GSM的语音编码26
2.1.6GSM系统的业务27
2.1.7GSM的无线接口28
2.1.8GSM系统的移动性管理34
2.2IS—95CDMA系统39
2.2.1扩频通信技术39
2.2.2IS—95CDMA的关键技术41
2.2.3IS—95 CDMA系统的无线接口46
习题49
第3章2.5G移动通信系统51
3.1GPRS系统51
3.1.1概述51
3.1.2GPRS基本原理53
移动通信技术及套用
3.1.3GPRS基本功能和业务58
3.1.4GPRS的基本概念64
3.1.5GPRS业务流程69
3.2CDMA 2000—1X系统81
3.2.1CDMA技术的演进与标準81
3.2.2CDMA 2000—1X系统结构 81
3.2.3CDMA 2000—1X关键技术82
3.2.4CDMA 2000—1X工程组网简介85
3.2.5CDMA 2000—1X的语音和数据信道88
习题89
第4章第三代移动通信系统90
4.1CDMA 2000 1x EVDO系统90
4.1.1概述90
4.1.21x EVDO的网路结构94
4.1.3EVDO Rev A信道95
4.1.4EVDO Rev A关键技术97
4.2WCDMA系统104
4.2.1概述104
4.2.2WCDMA标準的演进106
4.2.3WCDMA的空中接口113
4.3TDSCDMA系统135
4.3.1概述135
4.3.2TDSCDMA的网路结构135
4.3.3TDSCDMA系统的关键技术143
习题155
第5章第四代移动通信系统157
5.1概述157
5.1.1第四代移动通信系统的关键特性要求157
5.1.2第四代移动通信系统标準的确定159
5.1.3準4G网路在全球的套用情况160
5.2第四代移动通信系统的关键技术161
5.2.1OFDM技术161
5.2.2MIMO技术163
5.3LTE系统165
5.3.1LTE的技术特点165
5.3.2LTE的网路结构166
5.3.3EUTRAN接口的通用协定模型168
5.3.4LTE的无线信道171
5.3.5无线资源管理173
5.3.6移动性管理176
5.3.7LTEA的性能增强181
5.3.8TDLTE与LTE FDD的对比183
5.4WiMAX系统185
5.4.1WiMAX的产生和发展185
5.4.2移动WiMAX——IEEE 802.16e 186
5.4.34G技术——IEEE 802.16m188
习题189
第6章移动通信业务190
6.12G移动通信业务190
6.1.1基本业务190
6.1.2补充业务191
6.23G移动通信业务196
6.2.13G业务的特点及发展趋势196
6.2.23G业务的分类197
6.2.3典型的3G业务199
6.3移动智慧型网业务203
6.3.1智慧型网基础203
6.3.2移动智慧型网203
6.3.3移动智慧型网业务205
习题208
第7章移动网际网路——移动通信网与网际网路的融合209
7.1网际网路简介209
7.1.1网际网路的产生和发展209
7.1.2网际网路在中国的发展210
7.1.3OSI参考模型211
7.1.4TCP/IP协定模型214
7.2移动网际网路的产生及发展217
7.2.1移动网际网路简介217
7.2.2移动网际网路的特点218
7.2.3移动网际网路的发展现状220
7.3移动网际网路的体系结构及关键技术223
7.3.1终端技术223
7.3.2网路平台技术223
7.3.3套用平台技术224
7.4典型的移动网际网路业务套用225
7.4.1移动电子商务225
7.4.2移动定位业务228
7.4.3移动搜寻业务233
7.4.4移动浏览业务239
7.4.5移动支付业务242
7.4.6移动广告业务245
7.4.7移动音乐业务249
习题251
参考文献252
第一篇 概述及实验平台 1
第1章 低功耗蓝牙(BLE)概述 3
1.1 蓝牙与物联网 3
1.2 低功耗蓝牙与我的物联网 5
1.3 什幺是低功耗蓝牙 8
1.4 BLE如何实现低功耗 9
第2章 蓝牙4.0BLE软体开发平台搭建 11
2.1 为什幺是IAR 8051 11
2.2 安装IAR8051-8.3 12
2.2.1 下载IAR8051-8.3 12
2.2.2 安装IAR8051-8.3 13
2.2.3 破解IAR8051-8.3 19
2.3 IAR8051集成开发环境简介 22
2.4 IAR 8051 C/C++ 23
2.5 安装相关支持软体 23
第3章 蓝牙4.0BLE硬体开发平台搭建 25
3.1 为什幺是世嵌开发板 25
3.2 世嵌最简配置开发套件 27
3.2.1 核心板:WB2540MVA 27
3.2.2 底板:WX2530 29
3.2.3 仿真器:CCDBG 35
3.3 搭建实验硬体环境 36
3.4 创建工程-点亮LED 38
第二篇 基础实验 49
第4章 GPIO实验 51
4.1 LED实验:打开所有LED 51
4.1.1 任务要求及效果呈现 51
4.1.2 实验原理 52
4.1.3 实验步骤 55
4.1.4 程式清单(含详细注释) 57
4.2 LED实验:让LED一闪一闪 57
4.2.1 任务要求及效果呈现 57
4.2.2 实验原理 58
4.2.3 程式清单(含详细注释) 58
4.3 LED实验:实现流水灯 59
4.3.1 任务要求及效果呈现 59
4.3.2 实验原理 60
4.3.3 程式清单(含详细注释) 61
4.4 蜂鸣器实验:驱动蜂鸣器发声 62
4.4.1 任务要求及效果呈现 62
4.4.2 实验原理 62
4.4.3 程式清单(含详细注释) 64
4.5 按键实验:按键控制LED 65
4.5.1 任务要求及效果呈现 65
4.5.2 实验原理 65
4.5.3 程式清单(含详细注释) 68
4.6 按键实验:按键控制LED (中断方式) 70
4.6.1 任务要求及效果呈现 70
4.6.2 实验原理 71
4.6.3 程式清单(含详细注释) 74
第5章 定时器实验 77
5.1 定时器实验:流水灯(查询方式) 77
5.1.1 任务要求及效果呈现 77
5.1.2 实验原理 77
5.1.3 程式清单(含详细注释) 81
5.2 定时器实验:流水灯(中断方式) 83
5.2.1 任务要求及效果呈现 83
5.2.2 实验原理 84
5.2.3 程式清单(含详细注释) 85
5.3 定时器实验:PWM控制蜂鸣器 86
5.3.1 任务要求及效果呈现 87
5.3.2 实验原理 88
5.3.3 示波器与开发板连线 91
5.3.4 源码清单 92
第6章 串口实验 99
6.1 串口传送实验:列印欢迎信息 99
6.1.1 任务要求及效果呈现 99
6.1.2 实验原理 100
6.1.3 硬体连线 104
6.1.4 源码清单 105
6.2 串口传送:用printf列印系统信息 106
6.2.1 任务要求及效果呈现 106
6.2.2 实验原理 107
6.2.3 源码清单 108
6.3 串口收发:用C标準库输入输出函式 110
6.3.1 任务要求及效果呈现 110
6.3.2 实验原理 110
6.3.3 源码清单 112
6.4 串口收发:中断方式 115
6.4.1 任务要求及效果呈现 115
6.4.2 实验原理 116
6.4.3 源码清单 119
第7章 ADC实验 122
7.1 测量晶片内部温度和供电电压 122
7.1.1 任务要求及效果呈现 122
7.1.2 实验原理 123
7.1.3 源码清单 127
7.2 测量光照强度 130
7.2.1 任务要求及效果呈现 130
7.2.2 实验原理 131
7.2.3 源码清单 132
第8章 睡眠与唤醒实验 134
8.1 外部中断唤醒 134
8.1.1 任务要求和效果呈现 134
8.1.2 实验原理 135
8.1.3 源码清单 138
8.2 定时器唤醒 144
8.2.1 任务要求和效果呈现 144
8.2.2 实验原理 145
8.2.3 源码清单 147
第9章 看门狗实验、FLASH读写实验 149
9.1 看门狗实验 149
9.1.1 任务要求和效果呈现 149
9.1.2 实验原理 150
9.1.3 源码清单 151
9.2 FLASH读写实验 152
9.2.1 任务要求和效果呈现 153
9.2.2 实验原理 154
9.2.3 源码清单 155
第10章 汇流排实验 159
10.1 单汇流排实验(DS18B20驱动) 159
10.1.1 任务要求和效果呈现 159
10.1.2 实验原理 160
10.1.3 源码清单 163
10.2 SPI汇流排实验(诺基亚5110液晶屏驱动) 167
10.2.1 任务要求和效果呈现 167
10.2.2 实验原理 169
10.2.3 源码清单 177
第三篇 BLE协定栈 201
第11章 蓝牙4.0协定栈基础 202
11.1 BLE协定栈整体构架 202
11.2 物理层(PHY) 202
11.3 链路层(LL) 203
11.3.1 链路层状态机 203
11.3.2 链路层报文 205
11.3.3 设备发现 205
11.3.4 关于广播 206
11.3.5 连线过程 206
11.3.6 数据传送 209
11.3.7 管理连线 209
11.4 主机/控制器接口(HCI) 210
11.4.1 物理接口与逻辑接口 210
11.4.2 控制器的配置 210
11.4.3 广播与观察 211
11.4.4 发起连线 212
11.4.5 连线管理 213
11.5 逻辑链路控制和适配协定(L2CAP) 213
11.6 属性协定层(ATT)、通用属性配置档案层(GATT) 214
11.6.1 伺服器与客户端模型 214
11.6.2 属性 214
11.6.3 属性的访问 216
11.6.4 服务 216
11.6.5 特性 217
11.6.6 属性协定 218
11.6.7 通用属性规範 220
11.7 安全管理层(SM) 223
11.7.1 安全概念 223
11.7.2 配对和绑定 223
11.7.3 数据签名 224
11.8 通用访问配置档案层(GAP) 224
11.8.1 GAP角色 224
11.8.2 模式和规程 224
11.8.3 广播模式和观察规程 225
11.8.4 可发现性 225
11.8.5 可连线性 226
11.8.6 绑定 227
第12章 TI蓝牙协定栈开发平台 228
12.1 BLE协定栈开发平台配置 228
12.2 BLE协定栈软体开发框架 229
12.3 协定栈应用程式运行机理 230
12.3.1 开始应用程式:main() 230
12.3.2 初始化系统:osal_init_system() 232
12.3.3 启动系统:osal_start_system() 234
12.3.4 系统运行机理 235
12.4 OSAL作业系统抽象层 236
12.4.1 任务事件和事件处理 237
12.4.2 记忆体堆管理 237
12.4.3 OSAL讯息 238
12.5 HAL硬体抽象层 238
12.6 BLE协定栈 239
12.6.1 通用访问配置档案(GAP) 239
12.6.2 通用属性配置档案(GATT) 240
12.6.3 GATT伺服器应用程式 241
12.7 配置档案 241
12.7.1 GAP外围角色配置 242
12.7.2 GAP外围/广播多重角色配置 243
12.7.3 GAP Central Role Profile 243
12.7.4 GAP绑定管理器 244
12.7.5 简单属性配置档案(Simple GATT Profile) 244
12.7.6 简单按键属性配置档案(SimpleKeys GATT Profile) 250
12.7.7 设备信息服务 251
12.7.8 其他属性配置档案 251
第13章 蓝牙协定栈项目开发入门 252
13.1.1 项目配置 252
13.1.2 Linker Map档案 255
13.1.3 simpleBLEPeripheral.c源码分析 255
13.2 简单BLE中央设备(SimpleBLECentral) 270
13.2.1 项目配置 270
13.2.2 Linker Map档案 271
13.2.3 simpleBLECentral.c源码分析 271
第14章 定製硬体抽象层 293
14.1 增加外设驱动 293
14.2 修改hal_board_cfg 294
14.3 修改hal_led 295
14.4 修改hal_key 296
14.5 增强UART功能 298
14.6 增加Nokia5110液晶屏驱动 305
第四篇 BLE通信实验 293
第15章 简单的蓝牙通信 295
15.1 引言 295
15.2 搭建蓝牙通信实验平台 295
15.3 源码相关配置修改 297
15.3.1 修改 Simple BLE Peripherial 项目 297
15.3.2 修改 Simple BLE Central 项目 298
15.4 实验过程演示 300
15.5 实验:实现自动连线和LED连线状态指示 303
15.5.1 任务要求与效果呈现 303
15.5.2 实验原理 305
15.5.3 源码修改 305
第16章 我的蓝牙感知器(iSensor) 309
16.1 控制LED 309
16.1.1 任务要求与效果呈现 310
16.1.2 实现外围设备 311
16.1.3 实现中央设备 315
16.2 感知外设CPU温度 323
16.2.1 任务要求与效果呈现 323
16.2.2 实现外围设备 325
16.2.3 实现中央设备 327
16.3 感知外设环境温度 329
16.3.1 任务要求与效果呈现 330
16.3.2 实现外围设备 331
16.3.3 实现中央设备 335
16.4 感知外设光照强度 336
16.4.1 任务要求与效果呈现 336
16.4.2 实现外围设备 338
16.4.3 实现中央设备 342
16.5 定时获取外设光照强度 343
16.5.1 任务要求与效果呈现 344
16.5.2 实现外围设备 347
16.5.3 实现中央设备 353
16.6 无线串口透传 355
16.6.1 任务要求与效果呈现 355
16.6.2 NPI模组原理与串口透传 357
16.6.3 实现外围设备 358
16.6.4 实现中央设备 362
第17章 蓝牙USB 366
17.1 iSensorHid(蓝牙键鼠) 366
17.1.1 任务要求与效果呈现 367
17.1.2 实现外围设备 375
17.1.3 实现中央设备 379
17.2 iSensorCDC(蓝牙USB串口) 384
17.2.1 任务要求与效果呈现 384
17.2.2 实现外围设备 386
17.2.3 实现中央设备 387
17.3 iHostTest(网路处理机) 388
17.3.1 实现iHostTest 388
17.3.2 系统初始化 389
17.3.3 建立连线 390
17.3.4 测试GATT属性服务 393
第18章 蓝牙通信测试与支持 402
18.1 蓝牙协定分析仪(Sniffer) 402
18.2 蓝牙支持 405
参考文献 408
图
图 1-1 物联网—感知世界 3
图 1-2 蓝牙在医疗设备上的套用 7
图 1-3 蓝牙防丢产品 7
图 1-4 SENSORY的前端语音识别技术通过蓝牙耳机实现安全行驶 8
图 2-1 IAR官方主页 12
图 2-2 IAR产品下载 12
图 2-3 IAR8051-8.3评估版下载页面 13
图 2-4 IAR8051-8.3下载任务对话框 13
图 2-5 EW8051-8303-Autorun.exe自解压 14
图 2-6 程式安装界面 14
图 2-7 準备安装 14
图 2-8 安装精灵 15
图 2-9 是否接受许可协定 15
图 2-10 自定义安装还是完全安装 16
图 2-11 安装路径选择 16
图 2-12 程式图示选择 17
图 2-13 準备安装程式 17
图 2-14 安装程式过程 18
图 2-15 是否安装USB dongles 驱动 18
图 2-16 安装结束 18
图 2-17 退出 19
图 2-18 破解IAR8051-8.3 19
图 2-19 License manager界面 20
图 2-20 编译错误 21
图 2-21 增加一行“-Z(DATA)VREG=08-7F"" 21
图 2-22 现在编译正确了 22
图 2-23 IAR8051集成开发环境 22
图 3-1 世嵌科技官网 26
图 3-2 CC2540蓝牙4.0低功耗最简配置开发板套件(2模组+2底板+1仿真器) 26
图 3-3 WB2540MVA核心板 27
图 3-4 WB2540MVA核心板机械尺寸和元件布局 28
图 3-5 WX2530底板(绿色)+CC2540核心板(蓝色) 30
图 3-6 开发板整体架构 31
图 3-7 WX2530底板输入接口 31
图 3-8 跳线使能USB接口 32
图 3-9 仿真器接口封装图 34
图 3-10 仿真器灰排母座应朝板子外侧插入仿真接口 34
图 3-11 CCDBG仿真器(上面虽未标明支持CC2540,但实际完全支持) 35
图 3-12 某淘宝店推出的PL2303HX模组 37
图 3-13 开发板与外配的硬体连线 38
图 3-14 複製安装下的蓝牙协定栈到你的工作 39
图 3-15 协定栈的项目範例 39
图 3-16 複製一个副本 40
图 3-17 项目改名 40
图 3-18 项目档案 40
图 3-19 项目档案 41
图 3-20 修改eww档案 41
图 3-22 新工程诞生 42
图 3-21 移除原工程档案 1
图 3-23 选中“Options...”选项 1
图 3-24 将常量和字元串置于RAM memory 1
图 3-25 将输出的hex档案改为你喜欢的名字 43
图 3-26 将Driver设定为“Texas Instruments"" 43
图 3-28 点击“Add Files..."" 43
图 3-27 选中三个档案 1
图 3-29 档案改名 44
图 3-31 档案已经添加 44
图 3-30 清空编辑区 1
图 3-32 编写代码 45
图 3-33 编译代码 45
图 3-34 下载调试 46
图 3-35 调试开始 46
图 3-36 点亮绿灯 1
图 3-38 设定断点 47
图 3-37 启动不下载的调试 1
图 3-39 调试开始 1
图 3-40 调试运行到断点处 1
图 3-42 按下""step over""图示 48
图 3-41 调试游标进入下一行语句 1
图 4-1 基础实验一效果 51
图 4-2 LED原理图 52
图 4-3 打开项目并另外储存源档案 55
图 4-4 将源档案改名并另外储存 55
图 4-5 将另外储存的档案添加 56
图 4-6 将“mTest.c”档案从项目编译连结中排除 56
图 4-7 为mTestLedAllOpen.c编写代码 56
图 4-8 让LED一闪一闪 58
图 4-9 流水灯效果 60
图 4-10 流水灯程式设计和调试界面 60
图 4-11 驱动蜂鸣器发声 62
图 4-12 蜂鸣器原理图 63
图 4-13 按键控制LED亮灭 65
图 4-14 按键电路原理图 66
图 4-15 按键按下和鬆开的电信号变化 67
图 4-16 按键控制LED(中断方式) 71
图 5-1 中断查询方式的定时流水灯 77
图 5-2 中断方式的定时流水灯 83
图 5-3 实验过程演示:按下键2,黄灯亮(左图),释放,黄灯熄灭(右图) 87
图 5-4 200HZ声音时的通道2和通道3的波形 87
图 5-5 2000HZ声音时的通道2和通道3的波形 88
图 5-6 本人自购的示波器 91
图 5-7 开发板与示波器连线图 92
图 6-1 列印欢迎信息 99
图 6-2 CC2540串口与PC机串口的硬体连线图 104
图 6-3 串口输出系统硬体信息 106
图 6-4 使用C标準库输入输出函式进行串口收发实验 110
图 6-5 中断方式下的串口数据收发实验 116
图 7-1 手指压在CC2540上以测量晶片内部温度的变化 122
图 7-2 晶片内部电压和温度(当手指按在CC2540晶片上时,温度立即上升) 123
图 7-3 测量光敏电阻分压 130
图 7-4 手指按住光敏电阻(分压:1.805V) 1
图 7-5 手指离开光敏电阻(分压:0.400V) 1
图 7-6 LED强光直射光敏电阻(分压:0.071V) 1
图 7-7 相机袋压在光敏电阻上(2.900V) 1
图 7-8 光敏电阻原理图 1
图 8-1 按键控制休眠实验图 134
图 8-2 串口列印的信息(按键催眠、唤醒CPU实验) 135
图 8-3 进入反彙编代码查看PCON.IDLE=1指令地址 137
图 8-4 开发板的演示效果(睡眠定时器唤醒实验) 145
图 8-5 串口控制台列印的实验过程信息(睡眠定时器唤醒实验) 145
图 9-1 正常的流水灯演示实验 149
图 9-2 没有及时餵狗而导致反覆重启 149
图 9-3 控制台显示的反覆重启效果 150
图 9-4 Flash读写实验 154
图 10-1 手指按在DS18B20上面,温度一直在上升 159
图 10-2 DS18B20实验:手指按在DS18B20上面,使得温度上升 160
图 10-3 DS18B20温度测量模组 160
图 10-4 初始欢迎页面 1
图 10-5 键2按下,背光打开 1
图 10-6 键1按下,开始测量气温 1
图 10-7 键2按下,背光关掉 1
图 10-8 实验过程在串口控制台的演示 1
图 10-9 诺基亚5110显示屏正反面(带PCB小板) 169
图 10-10 CC2540与诺基亚5110的电路连线原理图 170
图 10-11 PCD8544写指令时序 171
图 10-12 PCD8544初始化时序 171
图 10-13 显存结构 172
图 10-14 用水平定址方式(V=0)往RAM写入数据的次序 173
图 10-15 汉字液晶点阵及对应编码 176
图 11-1 BLE协定栈构架 202
图 11-2 链路层状态机 204
图 11-3 两个设备建立连线以实现可靠数据传输 207
图 11-4 连线事件 208
图 11-5 属性结构 215
图 11-6 服务声明 217
图 11-7 特性声明 218
图 11-8 特性数值 218
图 12-1 单一设备的配置 228
图 12-2 网路处理器的配置 229
图 12-3 SimpleBLEPeripheral项目界面 230
图 12-4 系统运行机理 236
图 12-5 属性结构 240
图 13-1 SimpleBLEPeripheral项目界面 252
图 13-2 选项框中设定预处理宏 253
图 13-3 配置档案中定义预处理宏 253
图 13-4 Linker Map档案 255
图 13-5 SimpleBLECentral项目界面 271
图 13-6 Linker Map档案 271
图 14-1 添加外设驱动源档案 294
图 15-1 我的蓝牙通信简易实验平台 296
图 15-2 CCDBG端子扩展 296
图 15-3 CCDBG端子扩展板与CCDBG连线 297
图 15-4 增加和修改预定义宏 297
图 15-5 增加预定义宏 299
图 15-6 实验过程控制台显示(左图:SimpleBLEPeripheral;右图:SimpleBLECentral) 300
图 15-7 实验初始液晶显示(左图:SimpleBLEPeripheral;右图:SimpleBLECentral) 301
图 15-8 实验过程液晶显示(左图:SimpleBLEPeripheral;右图:SimpleBLECentral) 301
图 15-9 实验过程控制台显示(左图:SimpleBLEPeripheral;右图:SimpleBLECentral) 304
图 15-10 实验过程液晶显示(左图:SimpleBLEPeripheral;右图:SimpleBLECentral) 304
图 16-1 串口控制台列印实验过程(左图:外围设备端;右图:中央设备端) 310
图 16-2 连线建立并参数更新后的LCD显示及外围设备LED显示 311
图 16-3 单击按键后的LCD显示及外围设备LED显示 311
图 16-4 LCD显示MCU温度信息(左图:外围设备端;右图:中央设备端) 323
图 16-5 串口控制台列印实验过程(左图:外围设备端;右图:中央设备端) 324
图 16-6 LCD显示环境温度信息(左图:外围设备端;右图:中央设备端) 330
图 16-7 串口控制台列印实验过程(左图:外围设备端;右图:中央设备端) 331
图 16-8 LCD显示光照强度(左图:外围设备端;右图:中央设备端) 337
图 16-9 串口控制台列印实验过程(左图:外围设备端;右图:中央设备端) 337
图 16-10 中央设备串口控制台列印实验过程(左图:连线和发现;右图:四种定时模式) 345
图 16-11 外围设备串口控制台 1
图 16-12 LCD显示即时光照强度(左图:外围设备端;右图:中央设备端) 346
图 16-13 串口控制台列印实验过程(左图:外围设备端;右图:中央设备端) 356
图 16-14 LCD显示当前串口传送和接收信息(左图:外围设备;右图:中央设备) 357
图 17-1 中央设备启动过程1(扫描期间,USB开始初始化) 367
图 17-2 中央设备启动过程2(框中部分是显示的重合部分) 368
图 17-3 系统初始完成的初始LCD界面(PC自动传送键盘灯状体的USB报告) 368
图 17-4 蓝牙滑鼠串口控制台显示(左图:外围设备;右图:中央设备) 369
图 17-5 蓝牙滑鼠PC桌面测试 370
图 17-6 蓝牙键盘功能1串口控制台显示(左图:外围设备;右图:中央设备) 371
图 17-7 蓝牙键盘功能1 PC桌面测试 371
图 17-8 蓝牙键盘功能2串口控制台显示(左图:外围设备;右图:中央设备) 372
图 17-9 蓝牙键盘功能2 播放器测试——快进 372
图 17-10 蓝牙键盘功能2 播放器测试——快退 373
图 17-11 蓝牙键盘功能2 播放器测试——暂停 373
图 17-12 蓝牙键盘灯控制实验:串口信息输出(左图:外围设备;右图:中央设备) 374
图 17-13 蓝牙键盘灯控制实验:LED显示(共三幅图,每幅图的左上:中央设备;右下:外围设备) 374
图 17-14 蓝牙键盘灯控制实验:LCD显示(共两幅图,每幅图的左边:中央设备;右边:外围设备) 374
图 17-15 插入USB口之后出现第3个串口(COM5:USB CDC虚拟串口) 384
图 17-16 系统启动界面,自动配置串口透传 385
图 17-17 串口透传通信过程 385
图 17-18 启动BTool 389
图 17-19 bTool初始化界面 390
图 17-20 开始扫描 391
图 17-21 发现广播设备 392
图 17-22 建立连线 392
图 17-23 读写属性操作界面 393
图 17-24 利用特性UUID发现特性起始句柄 394
图 17-25 利用特性句柄读特性值 395
图 17-26 利用特性UUID读特性值 396
图 17-27 解决二进制向浮点型转换 396
图 17-28 利用多个特性句柄读多个特性值 397
图 17-29 根据特性句柄写LED特性值 398
图 17-30 写入之后(LED全亮) 1
图 17-31 写入之前(仅绿灯亮) 1
图 17-32 利用特性句柄写环境温度通知配置 399
图 17-33 利用特性句柄写光照强度通知配置 400
图 18-1 选择晶片对话框 403
图 18-2 SmartRF Packet Sniffer界面 403
图 18-3 Sniffer抓包结果 404
图 18-4 TI 低功耗蓝牙技术主页 405
图 18-5 CC254X PC端开发範例 406
图 18-6 CC254X 移动智慧型设备开发範例 406
图 18-7 CC254X 嵌入式设备开发範例 407
表
表 1-1 始终增长的传输速率 8
表 3-1 核心板J3直插引脚定义 28
表 3-2 核心板J4直插引脚定义 28
表 3-3 核心板J5直插引脚定义 29
表 3-4 LED接口 31
表 3-5 按键接口 32
表 3-6 感测器接口 32
表 3-7 UART接口(J13) 33
表 3-8 电源接口(J11) 33
表 3-9 底板J4直插引脚定义 33
表 3-10 底板J5直插引脚定义 33
表 3-11 底板仿真接口定义 34
表 4-1 P1 (0x90)–连线埠1 52
表 4-2 P2(0xA0)–连线埠2 53
表 4-3 P1SEL (0xF4)–连线埠1 功能选择 53
表 4-4 P2SEL (0xF5)–连线埠2 功能选择和连线埠1外设优先权控制 53
表 4-5 P1DIR (0xFE)–连线埠1方向 54
表 4-6 P2DIR (0xFF)–连线埠2方向和连线埠0 外设优先权控制 54
表 4-7 P0 (0x80)–连线埠0 63
表 4-8 P0SEL (0xF3)–连线埠0 功能选择 63
表 4-9 P0DIR (0xFD)–连线埠0 功能选择 63
表 4-10 P0 (0x80)–连线埠0 66
表 4-11 P0SEL (0xF3)–连线埠0 功能选择 66
表 4-12 P0DIR (0xFD)–连线埠0 方向 66
表 4-13 P0INP (0x8F)–连线埠0 输入模式 66
表 4-14 P2INP (0xF7)–连线埠2 输入模式 67
表 4-15 P0IFG(0x89)–连线埠P0.7到P0.0中断状态标誌 72
表 4-16 PICTL(0x8C)位0–连线埠0中断模式配置 72
表 4-17 P0IEN(0xAB)–连线埠P0.7到P0.0中断使能 72
表 4-18 IEN0(0xA8)位7-使能所有中断源 72
表 4-19 IEN1(0xB8)位5-连线埠0中断源使能 72
表 4-20 IRCON(0xC0)位5-连线埠0中断标誌 72
表 5-1 T1CNTH(0xE3)–定时器1计数器高位 77
表 5-2 T1CNTL(0xE2)–定时器1计数器低位 78
表 5-3 T1CTL(0xE4)–定时器1的控制和状态 78
表 5-4 T1STAT(0xAF)–定时器1状态 78
表 5-5 T1CC0H(0xDD)–定时器1 通道1 捕获/比较值高位 79
表 5-6 T1CC0L(0xDA)–定时器1 通道0 捕获/比较值低位 79
表 5-7 CLKCONCMD(0xC6)与定时器相关的位–时钟控制命令 79
表 5-8 CLKCONSTA(0x9E)–时钟控制状态 80
表 5-9 IEN0(0xA8)位7–中断源使能总开关 84
表 5-10 IEN1(0xB8)位1-定时器1中断使能 84
表 5-11 T1STAT(0xAF)位5–定时器1状态 84
表 5-12 IRCON(0xC0)位1-定时器1中断标誌 84
表 5-13 PERCFG(0xF1)-外设控制 88
表 5-14 P2DIR(0xFF)-连线埠2方向和连线埠0外设优先权控制 88
表 5-15 P0SEL(0xF3)-连线埠0功能选择 89
表 5-16 P0DIR(0xFD)-连线埠0功能选择 89
表 5-17 T1CCTL3(0x62A3)-定时器1通道3捕获/比较控制 89
表 5-18 T1CC0H(0xDD)-定时器1通道1捕获/比较值高位 90
表 5-19 T1CC0L(0xDA)-定时器1通道0捕获/比较值低位 90
表 6-1 U0CSR (0x86)-USART0控制和状态 100
表 6-2 U0UCR(0xC4)-USART0的UART控制 101
表 6-3 U0GCR (0xC5)-USART0通用控制 102
表 6-4 U0BUF又名U0DBUF(0xC1)-USART0接收/传送数据快取 102
表 6-5 U0BAUD(0xC2)-USART0波特率控制 102
表 6-6 P2DIR (0xFF)–连线埠2方向和连线埠0外设优先权控制 103
表 6-7 32MHZ系统时钟的常用波特率设定 103
表 6-8 CHVER(0x6249)–晶片版本 107
表 6-9 CHIPID (0x624A) –晶片ID 107
表 6-10 CHIPINFO0(0x6276)–晶片信息位元组0 107
表 6-11 CHIPINFO1(0x6277)–晶片信息位元组1 108
表 6-12 TCON(0x88)–中断标誌 117
表 6-13 IRCON2(0xE8)–中断标誌5 117
表 6-14 串口收发中断向量描述 117
表 6-15 IEN0(0xA8)–中断使能0 117
表 6-16 IEN2 (0x9A)–中断使能2 117
表 7-1 APCFG (0xF2)–模拟外设I/O 配置 123
表 7-2 ADCL (0xBA)-ADC 数据低位 123
表 7-3 ADCH (0xBB) - ADC 数据高位 123
表 7-4 ADCCON1 (0xB4)-ADC 控制1 124
表 7-5 ADCCON2 (0xB5)-ADC控制2 124
表 7-6 ADCCON3 (0xB6)-ADC 控制3 125
表 7-7 TR0 (0x624B)–测试暂存器0 126
表 7-8 ATEST (0x61BD)–模拟测试控制 126
表 8-1 PCON(0x87)–供电模式控制 136
表 8-2 SLEEPCMD(0xBE)–睡眠模式控制 136
表 8-3 SLEEPSTA(0x9D)–睡眠模式控制状态 136
表 8-4 ST2(0x97)–休眠定时器2 146
表 8-5 ST1(0x96)–休眠定时器1 146
表 8-6 ST0(0x95)–休眠定时器0 146
表 8-7 STLOAD(0xAD)–睡眠定时器载入状态 146
表 9-1 看门狗暂存器 150
表 10-1 传送ROM 指令 161
表 10-2 传送存储器指令 162
表 10-3 诺基亚5110液晶屏接口(带PCB小板) 169
表 10-4 USART功能配置 169
表 10-5 PCD8544指令集 171
表 10-6 上表有关字元的解释 172
表 10-7 PCD8544 SPI时钟频率 172
表 10-8 PERCFG (0xF1)–外设控制 173
表 10-9 U1CSR (0xF8)-USART 1 控制和状态 173
表 10-10 U1UCR (0xFB)-USART 1控制 174
表 10-11 U1GCR (0xFC)-USART 1 通用控制 174
表 10-12 U1BUF (0xF9) - USART 1 接收/传送数据快取 175
表 10-13 U1BAUD (0xFA) - USART 1 波特率控制 175
表 11-1 首要服务与次要服务的属性资料库样例 217
表 12-1 Simple GATT Profile 属性表 248
表 12-2 SimpleKeys GATT Profile 属性表 251
转载请注明出处累积网 » 物联网技术实践教程——基于蓝牙4