第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
