CC3200Wi-Fi微控制器原理与实践—基于MiCO物联网操作系统介绍了物联网及无线连接技术的基础知识,并以ARM CortexGM4内核WiGFiSoC微控制器CC3200为核心,详细讲述了与M4内核、CC3200应用相关的各种外设模块的原理和编程结构,包括电源与时钟管理、存储器、通用输入/输出(GPIO)、定时器、异步和同步通信接口、模拟外设等.同时,对物联网操作系统MiCO 作了简明阐述,并给出很多操作例程代码.最后,介绍了CC3200的软硬件开发环境、软件库,以及物联网应用实例.
本书完整地介绍了基于CC3200的物联网应用开发过程,包括设备端、云端接入、移动端APP等,并配套有完整的教学资源和源代码,包括MiCOKit 3200实验平台和实验指导书等.
本书可作为高等院校计算机、电子、自动化、仪器仪表等专业嵌入式系统、微机接口、单片机、物联网技术、嵌入式WiGFi等课程的教材,也适合广大从事物联网、智能硬件应用系统开发的工程技术人员作为学习、参考用书.
物联网(InternetofThings)是物物相连的互联网.大量的“物”都要嵌入智能(MPU 或MCU),并要联网,这是嵌入式系统的又一个巨大机遇.由于“物”的差异性很大,物联网各种应用对MCU 都会有不同的要求,如速度性能、外设功能、封装尺寸等,因此各种MCU 都会有各自的应用市场.与传统的MCU 应用相比,物联网时代的MCU 应用,其重要的技术特征和需求是:模拟、低功耗、无线(RF)和嵌入式软件.
传 统的MCU 主要是一个数字器件,最多加上ADC、DAC、模拟比较器等很少的模拟外设.物联网时代,大量“物”要联网,而这些“物”(传感器、执行器等)的信号一般都是模拟量.现在有些MCU(如TI和ADI的部分MCU)已经加入了一些高性能的模拟电路,预计今后的MCU 都会针对特定的应用领域,加强模拟外设的功能,比如可编程的高性能放大器、模拟比较器、调制器、高精度的ADC和DAC等(包括RF部分)更好地与“物”无缝连接.
现在对应用产品的功耗要求越来越高,采用电池供电的设备也越来越多.从局部而言,低功耗可以延长电池的使用时间,提升用户的使用感受.从整体而言,低功耗也是绿色计算、节能环保的要求.客观地说,现在很多MCU,如ARM CortexGM3/M4、AVR、PIC等,比10年前的MCU,其性能/功耗指标都已经有很大提升,可以称得上是低功耗MCU.一般非电池供电的嵌入式系统,普通MCU 基本都可以满足功耗要求.实际上,考查MCU 功耗时,更应注意性能/功耗比,以及中断和时钟系统的切换速度.因为在很多应用系统中,采用合理的软件结构,可以使CPU 大部分时间都处于低功耗的休眠状态或低速运行状态,实际激活工作时间的占空比可以做得很小,这样可以大大降低系统的平均功耗.这是软件设计要重点考虑的,也是最能体现低功耗设计水平的.
传统的嵌入式系统,虽然使用了MCU,但大部分都是独立(孤立)的应用系统,比如一个测试仪表、一台机器等.随着物联网时代的到来,大量的“物”中将嵌入智能(MCU),而且这些“物”必须是联网的,任何一个智能的“物”都是网络中的一个节点,这可以说是MCU 应用(嵌入式系统)的一个新起点.对MCU 应用而言,未来无线互联将成为一个基本的要求.
……
第1章 物联网及无线技术概述……………………………………………………… 1
1.1 物联网概述…………………………………………………………………… 1
1.1.1 “物”的关键……………………………………………………………… 2
1.1.2 物联网成员……………………………………………………………… 4
1.2 物联网无线技术……………………………………………………………… 5
1.2.1 全球无线频段的划分…………………………………………………… 5
1.2.2 网络拓扑结构和规模大小……………………………………………… 6
1.2.3 常见的无线网络协议…………………………………………………… 8
1.2.4 各种无线技术的比较…………………………………………………… 12
1.2.5 嵌入式WiGFi介绍……………………………………………………… 12
第2章 CC3200器件特性………………………………………………………… 20
2.1 器件综述……………………………………………………………………… 20
2.1.1 特 点…………………………………………………………………… 21
2.1.2 架构总览………………………………………………………………… 23
2.1.3 CC3200安全加密……………………………………………………… 25
2.2 存储器………………………………………………………………………… 26
2.2.1 外部存储器……………………………………………………………… 26
2.2.2 内部存储器……………………………………………………………… 27
2.3 引导模式……………………………………………………………………… 29
2.3.1 调用序列/引导模式选择……………………………………………… 30
2.3.2 启动模式列表…………………………………………………………… 31
2.4 CC3200引脚配置与功能…………………………………………………… 31
2.4.1 引脚属性和引脚复用…………………………………………………… 32
2.4.2 模拟数字复用引脚的驱动电流和默认状态…………………………… 46
2.4.3 在芯片上电后复位释放前的引脚状态………………………………… 46
2.5 典型应用电路………………………………………………………………… 49
2.5.1 典型用途———CC3200宽电压模式…………………………………… 49
2.5.2 典型用途———CC3200预稳压1.85V 模式………………………… 52
2.6 电气特性……………………………………………………………………… 54
2.6.1 绝对最大额定值………………………………………………………… 55
2.6.2 处理率…………………………………………………………………… 55
2.6.3 推荐工作环境…………………………………………………………… 55
2.6.4 电气特性………………………………………………………………… 56
2.6.5 WLAN 接收特性……………………………………………………… 58
2.6.6 WLAN 发送特性……………………………………………………… 58
2.6.7 电流消耗………………………………………………………………… 59
2.6.8 定时和开关特性………………………………………………………… 62
第3章 CC3200系统结构………………………………………………………… 77
3.1 芯片结构……………………………………………………………………… 77
3.1.1 处理器框图……………………………………………………………… 78
3.1.2 系统接口………………………………………………………………… 78
3.1.3 内置调试功能…………………………………………………………… 79
3.1.4 芯片主要组件…………………………………………………………… 80
3.2 CortexGM4内核说明………………………………………………………… 81
3.2.1 编程模型………………………………………………………………… 82
3.2.2 寄存器描述……………………………………………………………… 83
3.2.3 内存模式………………………………………………………………… 87
3.2.4 异常模式………………………………………………………………… 90
3.2.5 故障处理………………………………………………………………… 98
3.2.6 电源管理……………………………………………………………… 100
3.2.7 指令集摘要…………………………………………………………… 101
3.3 电源、复位和时钟管理(CRPM)…………………………………………… 107
3.3.1 电源管理子系统……………………………………………………… 109
3.3.2 低功耗工作模式……………………………………………………… 111
3.3.3 电源管理控制结构…………………………………………………… 115
3.3.4 电源、复位、时钟管理编程接口(PRCM APIs)……………………… 117
第4章 CC3200基本外设………………………………………………………… 126
4.1 GPIO ……………………………………………………………………… 126
4.1.1 功能概述……………………………………………………………… 127
4.1.2 中断控制……………………………………………………………… 128
4.1.3 初始化与配置………………………………………………………… 129
4.2 通用定时器………………………………………………………………… 130
4.2.1 结构框图……………………………………………………………… 131
4.2.2 功能描述……………………………………………………………… 132
4.2.3 初始化与配置………………………………………………………… 140
4.3 看门狗定时器……………………………………………………………… 143
4.3.1 功能描述……………………………………………………………… 143
4.3.2 初始化与配置………………………………………………………… 145
4.3.3 看门狗的使用注意事项……………………………………………… 145
4.4 模/数转换器………………………………………………………………… 147
4.4.1 主要特性……………………………………………………………… 147
4.4.2 初始化与配置………………………………………………………… 149
4.4.3 与ADC操作有关的外设驱动库函数……………………………… 149
4.5 DMA ……………………………………………………………………… 155
第5章 CC3200通信外设………………………………………………………… 166
5.1 串行异步通信(UART)…………………………………………………… 166
5.1.1 结构框图……………………………………………………………… 167
5.1.2 功能描述……………………………………………………………… 167
5.1.3 初始化与配置………………………………………………………… 172
5.2 SPI(串行外设接口) ……………………………………………………… 173
5.2.1 结构框图……………………………………………………………… 174
5.2.2 功能描述……………………………………………………………… 175
5.2.3 初始化与配置………………………………………………………… 190
5.2.4 访问数据寄存器……………………………………………………… 192
5.2.5 初始化模块…………………………………………………………… 193
5.3 I2C接口…………………………………………………………………… 197
5.3.1 结构框图……………………………………………………………… 198
5.3.2 功能描述……………………………………………………………… 198
5.3.3 初始化与配置………………………………………………………… 212
5.4 I2S ………………………………………………………………………… 213
5.4.1 功能描述……………………………………………………………… 213
5.4.2 初始化与配置………………………………………………………… 216
5.4.3 与I2S配置有关的驱动库…………………………………………… 217
5.5 SD主机接口………………………………………………………………… 226
5.5.1 结构框图……………………………………………………………… 227
5.5.2 使用外设接口函数进行初始化与配置……………………………… 228
5.5.3 性能与测试…………………………………………………………… 234
5.5.4 外设库APIs ………………………………………………………… 235
5.6 并行相机模块接口………………………………………………………… 239
5.6.1 功能描述……………………………………………………………… 240
5.6.2 编程模式……………………………………………………………… 245
5.6.3 中断处理……………………………………………………………… 246
5.6.4 外设库函数(API) …………………………………………………… 246
第6章 SimpleLink子系统……………………………………………………… 251
6.1 SimpleLink概述…………………………………………………………… 251
6.1.1 主机驱动SW 概念…………………………………………………… 253
6.1.2 常见术语和参考……………………………………………………… 254
6.2 一个简单的网络应用……………………………………………………… 255
6.2.1 总 述………………………………………………………………… 255
6.2.2 基本示例代码………………………………………………………… 256
6.3 SimpleLinkAPI …………………………………………………………… 260
6.3.1 设 备………………………………………………………………… 261
6.3.2 WLAN ………………………………………………………………… 264
6.3.3 Socket ………………………………………………………………… 268
6.3.4 NetApp ……………………………………………………………… 270
6.3.5 NetCfg ………………………………………………………………… 272
6.3.6 FileSystem …………………………………………………………… 274
第7章 MiCO 系统………………………………………………………………… 275
7.1 RTOS基础………………………………………………………………… 275
7.1.1 使用RTOS的优势…………………………………………………… 276
7.1.2 常见的RTOS ………………………………………………………… 277
7.2 FreeRTOS简介…………………………………………………………… 278
7.2.1 FreeRTOS的体系结构……………………………………………… 278
7.2.2 FreeRTOS系统的任务调度机制…………………………………… 279
7.2.3 FreeRTOS系统的任务管理机制…………………………………… 280
7.2.4 FreeRTOS任务通信与同步机制…………………………………… 281
7.3 MiCO系统介绍…………………………………………………………… 281
7.4 MiCO在CC3200上的结构……………………………………………… 284
7.5 MiCO系统API分层……………………………………………………… 286
7.5.1 MiCO核心API ……………………………………………………… 287
7.5.2 硬件抽象层API ……………………………………………………… 287
7.6 常用MiCO系统API描述………………………………………………… 288
7.6.1 线 程………………………………………………………………… 288
7.6.2 信号量………………………………………………………………… 289
7.6.3 互斥量………………………………………………………………… 290
7.6.4 队 列………………………………………………………………… 291
7.6.5 定时器………………………………………………………………… 292
7.7 MiCO系统在CC3200上的移植………………………………………… 292
7.7.1 RTOS部分的移植…………………………………………………… 293
7.7.2 Socket部分的移植…………………………………………………… 295
7.7.3 WLAN 部分的移植…………………………………………………… 297
7.7.4 系统控制部分的移植………………………………………………… 300
7.8 云平台、MiCO系统与FogCloud ………………………………………… 301
7.8.1 FogCloud简介………………………………………………………… 301
7.8.2 MQTT协议简介……………………………………………………… 302
7.8.3 FogCloud工作流程与实例…………………………………………… 303
第8章 开发环境…………………………………………………………………… 307
8.1 开发流程简介……………………………………………………………… 307
8.1.1 硬件需求……………………………………………………………… 307
8.1.2 软件需求……………………………………………………………… 307
8.2 IAR开发环境……………………………………………………………… 312
8.2.1 如何进入某个工程的调试模式……………………………………… 312
8.2.2 如何调试工程………………………………………………………… 314
8.3 CCS6.0开发环境………………………………………………………… 317
8.3.1 下载和安装CCS6.0开发环境……………………………………… 317
8.3.2 配置CCS6.0开发环境……………………………………………… 317
8.3.3 CCS6.0开发环境下TIGRTOS的使用……………………………… 321
8.4 CC3200LaunchPad硬件使用…………………………………………… 329
8.4.1 CC3200LaunchPad概述…………………………………………… 329
8.4.2 CC3200LaunchPad功能简述……………………………………… 330
8.4.3 CC3200LaunchPad硬件电路功能框图…………………………… 330
8.4.4 CC3200LaunchPad扩展引脚……………………………………… 331
8.4.5 跳线帽设置…………………………………………………………… 331
8.4.6 电源供电设置………………………………………………………… 332
8.4.7 UART接口跳线帽设置……………………………………………… 333
8.4.8 工作模式选择………………………………………………………… 333
8.4.9 按键和LED灯………………………………………………………… 333
第9章 CC3200的开发与应用…………………………………………………… 334
9.1 MiCOKit 3200开发套件………………………………………………… 334
9.2 MiCOKit 3200硬件结构与电路………………………………………… 336
9.2.1 MiCOKit 3200主板单元…………………………………………… 336
9.2.2 MiCOKit 3200外扩模块…………………………………………… 340
9.3 MiCOKit手机APP ……………………………………………………… 347
9.3.1 下载、安装手机APP ………………………………………………… 347
9.3.2 注册开发者账号……………………………………………………… 347
9.3.3 开发板配置…………………………………………………………… 348
9.3.4 控制设备……………………………………………………………… 350
9.3.5 设备分享……………………………………………………………… 351
9.3.6 设备重置……………………………………………………………… 352
9.4 MiCOKit设备端软件结构………………………………………………… 353
9.4.1 MiCOKit设备端软件分层…………………………………………… 353
9.4.2 MiCOKit设备端软件开发方法……………………………………… 354
9.4.3 MiCOKitAppFramework简介……………………………………… 356
9.5 MiCOKit云端接入协议…………………………………………………… 357
9.5.1 设备描述……………………………………………………………… 358
9.5.2 数据流………………………………………………………………… 359
9.5.3 异常处理……………………………………………………………… 360
9.5.4 UUID ………………………………………………………………… 361
9.5.5 内部ID(iid)…………………………………………………………… 363
9.5.6 消息体数据格式……………………………………………………… 364
9.5.7 CC3200MiCOKit简易实例………………………………………… 365
9.6 基于CC3200的低功耗报警器…………………………………………… 367
9.6.1 报警系统的整体结构………………………………………………… 368
9.6.2 报警器的设计与实现………………………………………………… 368
9.6.3 云服务器的设计与实现……………………………………………… 379
9.6.4 监控APP的设计与实现……………………………………………… 381
参考文献……………………………………………………………………………… 384