CC3200Wi-Fi微控制器原理與實踐—基于MiCO物聯(lián)網(wǎng)操作系統(tǒng)介紹了物聯(lián)網(wǎng)及無線連接技術(shù)的基礎(chǔ)知識,并以ARM CortexGM4內(nèi)核WiGFiSoC微控制器CC3200為核心,詳細講述了與M4內(nèi)核、CC3200應用相關(guān)的各種外設(shè)模塊的原理和編程結(jié)構(gòu),包括電源與時鐘管理、存儲器、通用輸入/輸出(GPIO)、定時器、異步和同步通信接口、模擬外設(shè)等.同時,對物聯(lián)網(wǎng)操作系統(tǒng)MiCO 作了簡明闡述,并給出很多操作例程代碼.最后,介紹了CC3200的軟硬件開發(fā)環(huán)境、軟件庫,以及物聯(lián)網(wǎng)應用實例.
本書完整地介紹了基于CC3200的物聯(lián)網(wǎng)應用開發(fā)過程,包括設(shè)備端、云端接入、移動端APP等,并配套有完整的教學資源和源代碼,包括MiCOKit 3200實驗平臺和實驗指導書等.
本書可作為高等院校計算機、電子、自動化、儀器儀表等專業(yè)嵌入式系統(tǒng)、微機接口、單片機、物聯(lián)網(wǎng)技術(shù)、嵌入式WiGFi等課程的教材,也適合廣大從事物聯(lián)網(wǎng)、智能硬件應用系統(tǒng)開發(fā)的工程技術(shù)人員作為學習、參考用書.
物聯(lián)網(wǎng)(InternetofThings)是物物相連的互聯(lián)網(wǎng).大量的“物”都要嵌入智能(MPU 或MCU),并要聯(lián)網(wǎng),這是嵌入式系統(tǒng)的又一個巨大機遇.由于“物”的差異性很大,物聯(lián)網(wǎng)各種應用對MCU 都會有不同的要求,如速度性能、外設(shè)功能、封裝尺寸等,因此各種MCU 都會有各自的應用市場.與傳統(tǒng)的MCU 應用相比,物聯(lián)網(wǎng)時代的MCU 應用,其重要的技術(shù)特征和需求是:模擬、低功耗、無線(RF)和嵌入式軟件.
傳 統(tǒng)的MCU 主要是一個數(shù)字器件,最多加上ADC、DAC、模擬比較器等很少的模擬外設(shè).物聯(lián)網(wǎng)時代,大量“物”要聯(lián)網(wǎng),而這些“物”(傳感器、執(zhí)行器等)的信號一般都是模擬量.現(xiàn)在有些MCU(如TI和ADI的部分MCU)已經(jīng)加入了一些高性能的模擬電路,預計今后的MCU 都會針對特定的應用領(lǐng)域,加強模擬外設(shè)的功能,比如可編程的高性能放大器、模擬比較器、調(diào)制器、高精度的ADC和DAC等(包括RF部分)更好地與“物”無縫連接.
現(xiàn)在對應用產(chǎn)品的功耗要求越來越高,采用電池供電的設(shè)備也越來越多.從局部而言,低功耗可以延長電池的使用時間,提升用戶的使用感受.從整體而言,低功耗也是綠色計算、節(jié)能環(huán)保的要求.客觀地說,現(xiàn)在很多MCU,如ARM CortexGM3/M4、AVR、PIC等,比10年前的MCU,其性能/功耗指標都已經(jīng)有很大提升,可以稱得上是低功耗MCU.一般非電池供電的嵌入式系統(tǒng),普通MCU 基本都可以滿足功耗要求.實際上,考查MCU 功耗時,更應注意性能/功耗比,以及中斷和時鐘系統(tǒng)的切換速度.因為在很多應用系統(tǒng)中,采用合理的軟件結(jié)構(gòu),可以使CPU 大部分時間都處于低功耗的休眠狀態(tài)或低速運行狀態(tài),實際激活工作時間的占空比可以做得很小,這樣可以大大降低系統(tǒng)的平均功耗.這是軟件設(shè)計要重點考慮的,也是最能體現(xiàn)低功耗設(shè)計水平的.
傳統(tǒng)的嵌入式系統(tǒng),雖然使用了MCU,但大部分都是獨立(孤立)的應用系統(tǒng),比如一個測試儀表、一臺機器等.隨著物聯(lián)網(wǎng)時代的到來,大量的“物”中將嵌入智能(MCU),而且這些“物”必須是聯(lián)網(wǎng)的,任何一個智能的“物”都是網(wǎng)絡中的一個節(jié)點,這可以說是MCU 應用(嵌入式系統(tǒng))的一個新起點.對MCU 應用而言,未來無線互聯(lián)將成為一個基本的要求.
……
第1章 物聯(lián)網(wǎng)及無線技術(shù)概述……………………………………………………… 1
1.1 物聯(lián)網(wǎng)概述…………………………………………………………………… 1
1.1.1 “物”的關(guān)鍵……………………………………………………………… 2
1.1.2 物聯(lián)網(wǎng)成員……………………………………………………………… 4
1.2 物聯(lián)網(wǎng)無線技術(shù)……………………………………………………………… 5
1.2.1 全球無線頻段的劃分…………………………………………………… 5
1.2.2 網(wǎng)絡拓撲結(jié)構(gòu)和規(guī)模大小……………………………………………… 6
1.2.3 常見的無線網(wǎng)絡協(xié)議…………………………………………………… 8
1.2.4 各種無線技術(shù)的比較…………………………………………………… 12
1.2.5 嵌入式WiGFi介紹……………………………………………………… 12
第2章 CC3200器件特性………………………………………………………… 20
2.1 器件綜述……………………………………………………………………… 20
2.1.1 特 點…………………………………………………………………… 21
2.1.2 架構(gòu)總覽………………………………………………………………… 23
2.1.3 CC3200安全加密……………………………………………………… 25
2.2 存儲器………………………………………………………………………… 26
2.2.1 外部存儲器……………………………………………………………… 26
2.2.2 內(nèi)部存儲器……………………………………………………………… 27
2.3 引導模式……………………………………………………………………… 29
2.3.1 調(diào)用序列/引導模式選擇……………………………………………… 30
2.3.2 啟動模式列表…………………………………………………………… 31
2.4 CC3200引腳配置與功能…………………………………………………… 31
2.4.1 引腳屬性和引腳復用…………………………………………………… 32
2.4.2 模擬數(shù)字復用引腳的驅(qū)動電流和默認狀態(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 定時和開關(guān)特性………………………………………………………… 62
第3章 CC3200系統(tǒng)結(jié)構(gòu)………………………………………………………… 77
3.1 芯片結(jié)構(gòu)……………………………………………………………………… 77
3.1.1 處理器框圖……………………………………………………………… 78
3.1.2 系統(tǒng)接口………………………………………………………………… 78
3.1.3 內(nèi)置調(diào)試功能…………………………………………………………… 79
3.1.4 芯片主要組件…………………………………………………………… 80
3.2 CortexGM4內(nèi)核說明………………………………………………………… 81
3.2.1 編程模型………………………………………………………………… 82
3.2.2 寄存器描述……………………………………………………………… 83
3.2.3 內(nèi)存模式………………………………………………………………… 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 電源管理控制結(jié)構(gòu)…………………………………………………… 115
3.3.4 電源、復位、時鐘管理編程接口(PRCM APIs)……………………… 117
第4章 CC3200基本外設(shè)………………………………………………………… 126
4.1 GPIO ……………………………………………………………………… 126
4.1.1 功能概述……………………………………………………………… 127
4.1.2 中斷控制……………………………………………………………… 128
4.1.3 初始化與配置………………………………………………………… 129
4.2 通用定時器………………………………………………………………… 130
4.2.1 結(jié)構(gòu)框圖……………………………………………………………… 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ù)轉(zhuǎn)換器………………………………………………………………… 147
4.4.1 主要特性……………………………………………………………… 147
4.4.2 初始化與配置………………………………………………………… 149
4.4.3 與ADC操作有關(guān)的外設(shè)驅(qū)動庫函數(shù)……………………………… 149
4.5 DMA ……………………………………………………………………… 155
第5章 CC3200通信外設(shè)………………………………………………………… 166
5.1 串行異步通信(UART)…………………………………………………… 166
5.1.1 結(jié)構(gòu)框圖……………………………………………………………… 167
5.1.2 功能描述……………………………………………………………… 167
5.1.3 初始化與配置………………………………………………………… 172
5.2 SPI(串行外設(shè)接口) ……………………………………………………… 173
5.2.1 結(jié)構(gòu)框圖……………………………………………………………… 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 結(jié)構(gòu)框圖……………………………………………………………… 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配置有關(guān)的驅(qū)動庫…………………………………………… 217
5.5 SD主機接口………………………………………………………………… 226
5.5.1 結(jié)構(gòu)框圖……………………………………………………………… 227
5.5.2 使用外設(shè)接口函數(shù)進行初始化與配置……………………………… 228
5.5.3 性能與測試…………………………………………………………… 234
5.5.4 外設(shè)庫APIs ………………………………………………………… 235
5.6 并行相機模塊接口………………………………………………………… 239
5.6.1 功能描述……………………………………………………………… 240
5.6.2 編程模式……………………………………………………………… 245
5.6.3 中斷處理……………………………………………………………… 246
5.6.4 外設(shè)庫函數(shù)(API) …………………………………………………… 246
第6章 SimpleLink子系統(tǒng)……………………………………………………… 251
6.1 SimpleLink概述…………………………………………………………… 251
6.1.1 主機驅(qū)動SW 概念…………………………………………………… 253
6.1.2 常見術(shù)語和參考……………………………………………………… 254
6.2 一個簡單的網(wǎng)絡應用……………………………………………………… 255
6.2.1 總 述………………………………………………………………… 255
6.2.2 基本示例代碼………………………………………………………… 256
6.3 SimpleLinkAPI …………………………………………………………… 260
6.3.1 設(shè) 備………………………………………………………………… 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基礎(chǔ)………………………………………………………………… 275
7.1.1 使用RTOS的優(yōu)勢…………………………………………………… 276
7.1.2 常見的RTOS ………………………………………………………… 277
7.2 FreeRTOS簡介…………………………………………………………… 278
7.2.1 FreeRTOS的體系結(jié)構(gòu)……………………………………………… 278
7.2.2 FreeRTOS系統(tǒng)的任務調(diào)度機制…………………………………… 279
7.2.3 FreeRTOS系統(tǒng)的任務管理機制…………………………………… 280
7.2.4 FreeRTOS任務通信與同步機制…………………………………… 281
7.3 MiCO系統(tǒng)介紹…………………………………………………………… 281
7.4 MiCO在CC3200上的結(jié)構(gòu)……………………………………………… 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 如何進入某個工程的調(diào)試模式……………………………………… 312
8.2.2 如何調(diào)試工程………………………………………………………… 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 跳線帽設(shè)置…………………………………………………………… 331
8.4.6 電源供電設(shè)置………………………………………………………… 332
8.4.7 UART接口跳線帽設(shè)置……………………………………………… 333
8.4.8 工作模式選擇………………………………………………………… 333
8.4.9 按鍵和LED燈………………………………………………………… 333
第9章 CC3200的開發(fā)與應用…………………………………………………… 334
9.1 MiCOKit 3200開發(fā)套件………………………………………………… 334
9.2 MiCOKit 3200硬件結(jié)構(gòu)與電路………………………………………… 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 控制設(shè)備……………………………………………………………… 350
9.3.5 設(shè)備分享……………………………………………………………… 351
9.3.6 設(shè)備重置……………………………………………………………… 352
9.4 MiCOKit設(shè)備端軟件結(jié)構(gòu)………………………………………………… 353
9.4.1 MiCOKit設(shè)備端軟件分層…………………………………………… 353
9.4.2 MiCOKit設(shè)備端軟件開發(fā)方法……………………………………… 354
9.4.3 MiCOKitAppFramework簡介……………………………………… 356
9.5 MiCOKit云端接入?yún)f(xié)議…………………………………………………… 357
9.5.1 設(shè)備描述……………………………………………………………… 358
9.5.2 數(shù)據(jù)流………………………………………………………………… 359
9.5.3 異常處理……………………………………………………………… 360
9.5.4 UUID ………………………………………………………………… 361
9.5.5 內(nèi)部ID(iid)…………………………………………………………… 363
9.5.6 消息體數(shù)據(jù)格式……………………………………………………… 364
9.5.7 CC3200MiCOKit簡易實例………………………………………… 365
9.6 基于CC3200的低功耗報警器…………………………………………… 367
9.6.1 報警系統(tǒng)的整體結(jié)構(gòu)………………………………………………… 368
9.6.2 報警器的設(shè)計與實現(xiàn)………………………………………………… 368
9.6.3 云服務器的設(shè)計與實現(xiàn)……………………………………………… 379
9.6.4 監(jiān)控APP的設(shè)計與實現(xiàn)……………………………………………… 381
參考文獻……………………………………………………………………………… 384