CC3200Wi-Fi微控制器原理與實踐—基于MiCO物聯(lián)網操作系統(tǒng)介紹了物聯(lián)網及無線連接技術的基礎知識,并以ARM CortexGM4內核WiGFiSoC微控制器CC3200為核心,詳細講述了與M4內核、CC3200應用相關的各種外設模塊的原理和編程結構,包括電源與時鐘管理、存儲器、通用輸入/輸出(GPIO)、定時器、異步和同步通信接口、模擬外設等.同時,對物聯(lián)網操作系統(tǒng)MiCO 作了簡明闡述,并給出很多操作例程代碼.最后,介紹了CC3200的軟硬件開發(fā)環(huán)境、軟件庫,以及物聯(lián)網應用實例.
本書完整地介紹了基于CC3200的物聯(lián)網應用開發(fā)過程,包括設備端、云端接入、移動端APP等,并配套有完整的教學資源和源代碼,包括MiCOKit 3200實驗平臺和實驗指導書等.
本書可作為高等院校計算機、電子、自動化、儀器儀表等專業(yè)嵌入式系統(tǒng)、微機接口、單片機、物聯(lián)網技術、嵌入式WiGFi等課程的教材,也適合廣大從事物聯(lián)網、智能硬件應用系統(tǒng)開發(fā)的工程技術人員作為學習、參考用書.
物聯(lián)網(InternetofThings)是物物相連的互聯(lián)網.大量的“物”都要嵌入智能(MPU 或MCU),并要聯(lián)網,這是嵌入式系統(tǒng)的又一個巨大機遇.由于“物”的差異性很大,物聯(lián)網各種應用對MCU 都會有不同的要求,如速度性能、外設功能、封裝尺寸等,因此各種MCU 都會有各自的應用市場.與傳統(tǒng)的MCU 應用相比,物聯(lián)網時代的MCU 應用,其重要的技術特征和需求是:模擬、低功耗、無線(RF)和嵌入式軟件.
傳 統(tǒng)的MCU 主要是一個數(shù)字器件,最多加上ADC、DAC、模擬比較器等很少的模擬外設.物聯(lián)網時代,大量“物”要聯(lián)網,而這些“物”(傳感器、執(zhí)行器等)的信號一般都是模擬量.現(xiàn)在有些MCU(如TI和ADI的部分MCU)已經加入了一些高性能的模擬電路,預計今后的MCU 都會針對特定的應用領域,加強模擬外設的功能,比如可編程的高性能放大器、模擬比較器、調制器、高精度的ADC和DAC等(包括RF部分)更好地與“物”無縫連接.
現(xiàn)在對應用產品的功耗要求越來越高,采用電池供電的設備也越來越多.從局部而言,低功耗可以延長電池的使用時間,提升用戶的使用感受.從整體而言,低功耗也是綠色計算、節(jié)能環(huán)保的要求.客觀地說,現(xiàn)在很多MCU,如ARM CortexGM3/M4、AVR、PIC等,比10年前的MCU,其性能/功耗指標都已經有很大提升,可以稱得上是低功耗MCU.一般非電池供電的嵌入式系統(tǒng),普通MCU 基本都可以滿足功耗要求.實際上,考查MCU 功耗時,更應注意性能/功耗比,以及中斷和時鐘系統(tǒng)的切換速度.因為在很多應用系統(tǒng)中,采用合理的軟件結構,可以使CPU 大部分時間都處于低功耗的休眠狀態(tài)或低速運行狀態(tài),實際激活工作時間的占空比可以做得很小,這樣可以大大降低系統(tǒng)的平均功耗.這是軟件設計要重點考慮的,也是最能體現(xiàn)低功耗設計水平的.
傳統(tǒng)的嵌入式系統(tǒng),雖然使用了MCU,但大部分都是獨立(孤立)的應用系統(tǒng),比如一個測試儀表、一臺機器等.隨著物聯(lián)網時代的到來,大量的“物”中將嵌入智能(MCU),而且這些“物”必須是聯(lián)網的,任何一個智能的“物”都是網絡中的一個節(jié)點,這可以說是MCU 應用(嵌入式系統(tǒng))的一個新起點.對MCU 應用而言,未來無線互聯(lián)將成為一個基本的要求.
……
第1章 物聯(lián)網及無線技術概述……………………………………………………… 1
1.1 物聯(lián)網概述…………………………………………………………………… 1
1.1.1 “物”的關鍵……………………………………………………………… 2
1.1.2 物聯(lián)網成員……………………………………………………………… 4
1.2 物聯(lián)網無線技術……………………………………………………………… 5
1.2.1 全球無線頻段的劃分…………………………………………………… 5
1.2.2 網絡拓撲結構和規(guī)模大小……………………………………………… 6
1.2.3 常見的無線網絡協(xié)議…………………………………………………… 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 模擬數(shù)字復用引腳的驅動電流和默認狀態(tài)…………………………… 46
2.4.3 在芯片上電后復位釋放前的引腳狀態(tài)………………………………… 46
2.5 典型應用電路………………………………………………………………… 49
2.5.1 典型用途———CC3200寬電壓模式…………………………………… 49
2.5.2 典型用途———CC3200預穩(wěn)壓1.85V 模式………………………… 52
2.6 電氣特性……………………………………………………………………… 54
2.6.1 絕對最大額定值………………………………………………………… 55
2.6.2 處理率…………………………………………………………………… 55
2.6.3 推薦工作環(huán)境…………………………………………………………… 55
2.6.4 電氣特性………………………………………………………………… 56
2.6.5 WLAN 接收特性……………………………………………………… 58
2.6.6 WLAN 發(fā)送特性……………………………………………………… 58
2.6.7 電流消耗………………………………………………………………… 59
2.6.8 定時和開關特性………………………………………………………… 62
第3章 CC3200系統(tǒng)結構………………………………………………………… 77
3.1 芯片結構……………………………………………………………………… 77
3.1.1 處理器框圖……………………………………………………………… 78
3.1.2 系統(tǒng)接口………………………………………………………………… 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 電源管理子系統(tǒng)……………………………………………………… 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 模/數(shù)轉換器………………………………………………………………… 147
4.4.1 主要特性……………………………………………………………… 147
4.4.2 初始化與配置………………………………………………………… 149
4.4.3 與ADC操作有關的外設驅動庫函數(shù)……………………………… 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 訪問數(shù)據(jù)寄存器……………………………………………………… 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 使用外設接口函數(shù)進行初始化與配置……………………………… 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 外設庫函數(shù)(API) …………………………………………………… 246
第6章 SimpleLink子系統(tǒng)……………………………………………………… 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 系統(tǒng)………………………………………………………………… 275
7.1 RTOS基礎………………………………………………………………… 275
7.1.1 使用RTOS的優(yōu)勢…………………………………………………… 276
7.1.2 常見的RTOS ………………………………………………………… 277
7.2 FreeRTOS簡介…………………………………………………………… 278
7.2.1 FreeRTOS的體系結構……………………………………………… 278
7.2.2 FreeRTOS系統(tǒng)的任務調度機制…………………………………… 279
7.2.3 FreeRTOS系統(tǒng)的任務管理機制…………………………………… 280
7.2.4 FreeRTOS任務通信與同步機制…………………………………… 281
7.3 MiCO系統(tǒng)介紹…………………………………………………………… 281
7.4 MiCO在CC3200上的結構……………………………………………… 284
7.5 MiCO系統(tǒng)API分層……………………………………………………… 286
7.5.1 MiCO核心API ……………………………………………………… 287
7.5.2 硬件抽象層API ……………………………………………………… 287
7.6 常用MiCO系統(tǒng)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系統(tǒng)在CC3200上的移植………………………………………… 292
7.7.1 RTOS部分的移植…………………………………………………… 293
7.7.2 Socket部分的移植…………………………………………………… 295
7.7.3 WLAN 部分的移植…………………………………………………… 297
7.7.4 系統(tǒng)控制部分的移植………………………………………………… 300
7.8 云平臺、MiCO系統(tǒng)與FogCloud ………………………………………… 301
7.8.1 FogCloud簡介………………………………………………………… 301
7.8.2 MQTT協(xié)議簡介……………………………………………………… 302
7.8.3 FogCloud工作流程與實例…………………………………………… 303
第8章 開發(fā)環(huán)境…………………………………………………………………… 307
8.1 開發(fā)流程簡介……………………………………………………………… 307
8.1.1 硬件需求……………………………………………………………… 307
8.1.2 軟件需求……………………………………………………………… 307
8.2 IAR開發(fā)環(huán)境……………………………………………………………… 312
8.2.1 如何進入某個工程的調試模式……………………………………… 312
8.2.2 如何調試工程………………………………………………………… 314
8.3 CCS6.0開發(fā)環(huán)境………………………………………………………… 317
8.3.1 下載和安裝CCS6.0開發(fā)環(huán)境……………………………………… 317
8.3.2 配置CCS6.0開發(fā)環(huán)境……………………………………………… 317
8.3.3 CCS6.0開發(fā)環(huán)境下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的開發(fā)與應用…………………………………………………… 334
9.1 MiCOKit 3200開發(fā)套件………………………………………………… 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 注冊開發(fā)者賬號……………………………………………………… 347
9.3.3 開發(fā)板配置…………………………………………………………… 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設備端軟件開發(fā)方法……………………………………… 354
9.4.3 MiCOKitAppFramework簡介……………………………………… 356
9.5 MiCOKit云端接入?yún)f(xié)議…………………………………………………… 357
9.5.1 設備描述……………………………………………………………… 358
9.5.2 數(shù)據(jù)流………………………………………………………………… 359
9.5.3 異常處理……………………………………………………………… 360
9.5.4 UUID ………………………………………………………………… 361
9.5.5 內部ID(iid)…………………………………………………………… 363
9.5.6 消息體數(shù)據(jù)格式……………………………………………………… 364
9.5.7 CC3200MiCOKit簡易實例………………………………………… 365
9.6 基于CC3200的低功耗報警器…………………………………………… 367
9.6.1 報警系統(tǒng)的整體結構………………………………………………… 368
9.6.2 報警器的設計與實現(xiàn)………………………………………………… 368
9.6.3 云服務器的設計與實現(xiàn)……………………………………………… 379
9.6.4 監(jiān)控APP的設計與實現(xiàn)……………………………………………… 381
參考文獻……………………………………………………………………………… 384