CC3200Wi-Fi微控制器原理與實(shí)踐—基于MiCO物聯(lián)網(wǎng)操作系統(tǒng)介紹了物聯(lián)網(wǎng)及無(wú)線連接技術(shù)的基礎(chǔ)知識(shí),并以ARM CortexGM4內(nèi)核WiGFiSoC微控制器CC3200為核心,詳細(xì)講述了與M4內(nèi)核、CC3200應(yīng)用相關(guān)的各種外設(shè)模塊的原理和編程結(jié)構(gòu),包括電源與時(shí)鐘管理、存儲(chǔ)器、通用輸入/輸出(GPIO)、定時(shí)器、異步和同步通信接口、模擬外設(shè)等.同時(shí),對(duì)物聯(lián)網(wǎng)操作系統(tǒng)MiCO 作了簡(jiǎn)明闡述,并給出很多操作例程代碼.最后,介紹了CC3200的軟硬件開(kāi)發(fā)環(huán)境、軟件庫(kù),以及物聯(lián)網(wǎng)應(yīng)用實(shí)例.
本書完整地介紹了基于CC3200的物聯(lián)網(wǎng)應(yīng)用開(kāi)發(fā)過(guò)程,包括設(shè)備端、云端接入、移動(dòng)端APP等,并配套有完整的教學(xué)資源和源代碼,包括MiCOKit 3200實(shí)驗(yàn)平臺(tái)和實(shí)驗(yàn)指導(dǎo)書等.
本書可作為高等院校計(jì)算機(jī)、電子、自動(dòng)化、儀器儀表等專業(yè)嵌入式系統(tǒng)、微機(jī)接口、單片機(jī)、物聯(lián)網(wǎng)技術(shù)、嵌入式WiGFi等課程的教材,也適合廣大從事物聯(lián)網(wǎng)、智能硬件應(yīng)用系統(tǒng)開(kāi)發(fā)的工程技術(shù)人員作為學(xué)習(xí)、參考用書.
物聯(lián)網(wǎng)(InternetofThings)是物物相連的互聯(lián)網(wǎng).大量的“物”都要嵌入智能(MPU 或MCU),并要聯(lián)網(wǎng),這是嵌入式系統(tǒng)的又一個(gè)巨大機(jī)遇.由于“物”的差異性很大,物聯(lián)網(wǎng)各種應(yīng)用對(duì)MCU 都會(huì)有不同的要求,如速度性能、外設(shè)功能、封裝尺寸等,因此各種MCU 都會(huì)有各自的應(yīng)用市場(chǎng).與傳統(tǒng)的MCU 應(yīng)用相比,物聯(lián)網(wǎng)時(shí)代的MCU 應(yīng)用,其重要的技術(shù)特征和需求是:模擬、低功耗、無(wú)線(RF)和嵌入式軟件.
傳 統(tǒng)的MCU 主要是一個(gè)數(shù)字器件,最多加上ADC、DAC、模擬比較器等很少的模擬外設(shè).物聯(lián)網(wǎng)時(shí)代,大量“物”要聯(lián)網(wǎng),而這些“物”(傳感器、執(zhí)行器等)的信號(hào)一般都是模擬量.現(xiàn)在有些MCU(如TI和ADI的部分MCU)已經(jīng)加入了一些高性能的模擬電路,預(yù)計(jì)今后的MCU 都會(huì)針對(duì)特定的應(yīng)用領(lǐng)域,加強(qiáng)模擬外設(shè)的功能,比如可編程的高性能放大器、模擬比較器、調(diào)制器、高精度的ADC和DAC等(包括RF部分)更好地與“物”無(wú)縫連接.
現(xiàn)在對(duì)應(yīng)用產(chǎn)品的功耗要求越來(lái)越高,采用電池供電的設(shè)備也越來(lái)越多.從局部而言,低功耗可以延長(zhǎng)電池的使用時(shí)間,提升用戶的使用感受.從整體而言,低功耗也是綠色計(jì)算、節(jié)能環(huán)保的要求.客觀地說(shuō),現(xiàn)在很多MCU,如ARM CortexGM3/M4、AVR、PIC等,比10年前的MCU,其性能/功耗指標(biāo)都已經(jīng)有很大提升,可以稱得上是低功耗MCU.一般非電池供電的嵌入式系統(tǒng),普通MCU 基本都可以滿足功耗要求.實(shí)際上,考查MCU 功耗時(shí),更應(yīng)注意性能/功耗比,以及中斷和時(shí)鐘系統(tǒng)的切換速度.因?yàn)樵诤芏鄳?yīng)用系統(tǒng)中,采用合理的軟件結(jié)構(gòu),可以使CPU 大部分時(shí)間都處于低功耗的休眠狀態(tài)或低速運(yùn)行狀態(tài),實(shí)際激活工作時(shí)間的占空比可以做得很小,這樣可以大大降低系統(tǒng)的平均功耗.這是軟件設(shè)計(jì)要重點(diǎn)考慮的,也是最能體現(xiàn)低功耗設(shè)計(jì)水平的.
傳統(tǒng)的嵌入式系統(tǒng),雖然使用了MCU,但大部分都是獨(dú)立(孤立)的應(yīng)用系統(tǒng),比如一個(gè)測(cè)試儀表、一臺(tái)機(jī)器等.隨著物聯(lián)網(wǎng)時(shí)代的到來(lái),大量的“物”中將嵌入智能(MCU),而且這些“物”必須是聯(lián)網(wǎng)的,任何一個(gè)智能的“物”都是網(wǎng)絡(luò)中的一個(gè)節(jié)點(diǎn),這可以說(shuō)是MCU 應(yīng)用(嵌入式系統(tǒng))的一個(gè)新起點(diǎn).對(duì)MCU 應(yīng)用而言,未來(lái)無(wú)線互聯(lián)將成為一個(gè)基本的要求.
……
第1章 物聯(lián)網(wǎng)及無(wú)線技術(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)無(wú)線技術(shù)……………………………………………………………… 5
1.2.1 全球無(wú)線頻段的劃分…………………………………………………… 5
1.2.2 網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)和規(guī)模大小……………………………………………… 6
1.2.3 常見(jiàn)的無(wú)線網(wǎng)絡(luò)協(xié)議…………………………………………………… 8
1.2.4 各種無(wú)線技術(shù)的比較…………………………………………………… 12
1.2.5 嵌入式WiGFi介紹……………………………………………………… 12
第2章 CC3200器件特性………………………………………………………… 20
2.1 器件綜述……………………………………………………………………… 20
2.1.1 特 點(diǎn)…………………………………………………………………… 21
2.1.2 架構(gòu)總覽………………………………………………………………… 23
2.1.3 CC3200安全加密……………………………………………………… 25
2.2 存儲(chǔ)器………………………………………………………………………… 26
2.2.1 外部存儲(chǔ)器……………………………………………………………… 26
2.2.2 內(nèi)部存儲(chǔ)器……………………………………………………………… 27
2.3 引導(dǎo)模式……………………………………………………………………… 29
2.3.1 調(diào)用序列/引導(dǎo)模式選擇……………………………………………… 30
2.3.2 啟動(dòng)模式列表…………………………………………………………… 31
2.4 CC3200引腳配置與功能…………………………………………………… 31
2.4.1 引腳屬性和引腳復(fù)用…………………………………………………… 32
2.4.2 模擬數(shù)字復(fù)用引腳的驅(qū)動(dòng)電流和默認(rèn)狀態(tài)…………………………… 46
2.4.3 在芯片上電后復(fù)位釋放前的引腳狀態(tài)………………………………… 46
2.5 典型應(yīng)用電路………………………………………………………………… 49
2.5.1 典型用途———CC3200寬電壓模式…………………………………… 49
2.5.2 典型用途———CC3200預(yù)穩(wěn)壓1.85V 模式………………………… 52
2.6 電氣特性……………………………………………………………………… 54
2.6.1 絕對(duì)最大額定值………………………………………………………… 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 定時(shí)和開(kāi)關(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)核說(shuō)明………………………………………………………… 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 電源、復(fù)位和時(shí)鐘管理(CRPM)…………………………………………… 107
3.3.1 電源管理子系統(tǒng)……………………………………………………… 109
3.3.2 低功耗工作模式……………………………………………………… 111
3.3.3 電源管理控制結(jié)構(gòu)…………………………………………………… 115
3.3.4 電源、復(fù)位、時(shí)鐘管理編程接口(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 通用定時(shí)器………………………………………………………………… 130
4.2.1 結(jié)構(gòu)框圖……………………………………………………………… 131
4.2.2 功能描述……………………………………………………………… 132
4.2.3 初始化與配置………………………………………………………… 140
4.3 看門狗定時(shí)器……………………………………………………………… 143
4.3.1 功能描述……………………………………………………………… 143
4.3.2 初始化與配置………………………………………………………… 145
4.3.3 看門狗的使用注意事項(xiàng)……………………………………………… 145
4.4 模/數(shù)轉(zhuǎn)換器………………………………………………………………… 147
4.4.1 主要特性……………………………………………………………… 147
4.4.2 初始化與配置………………………………………………………… 149
4.4.3 與ADC操作有關(guān)的外設(shè)驅(qū)動(dòng)庫(kù)函數(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 訪問(wèn)數(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ū)動(dòng)庫(kù)…………………………………………… 217
5.5 SD主機(jī)接口………………………………………………………………… 226
5.5.1 結(jié)構(gòu)框圖……………………………………………………………… 227
5.5.2 使用外設(shè)接口函數(shù)進(jìn)行初始化與配置……………………………… 228
5.5.3 性能與測(cè)試…………………………………………………………… 234
5.5.4 外設(shè)庫(kù)APIs ………………………………………………………… 235
5.6 并行相機(jī)模塊接口………………………………………………………… 239
5.6.1 功能描述……………………………………………………………… 240
5.6.2 編程模式……………………………………………………………… 245
5.6.3 中斷處理……………………………………………………………… 246
5.6.4 外設(shè)庫(kù)函數(shù)(API) …………………………………………………… 246
第6章 SimpleLink子系統(tǒng)……………………………………………………… 251
6.1 SimpleLink概述…………………………………………………………… 251
6.1.1 主機(jī)驅(qū)動(dòng)SW 概念…………………………………………………… 253
6.1.2 常見(jiàn)術(shù)語(yǔ)和參考……………………………………………………… 254
6.2 一個(gè)簡(jiǎn)單的網(wǎng)絡(luò)應(yī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)勢(shì)…………………………………………………… 276
7.1.2 常見(jiàn)的RTOS ………………………………………………………… 277
7.2 FreeRTOS簡(jiǎn)介…………………………………………………………… 278
7.2.1 FreeRTOS的體系結(jié)構(gòu)……………………………………………… 278
7.2.2 FreeRTOS系統(tǒng)的任務(wù)調(diào)度機(jī)制…………………………………… 279
7.2.3 FreeRTOS系統(tǒng)的任務(wù)管理機(jī)制…………………………………… 280
7.2.4 FreeRTOS任務(wù)通信與同步機(jī)制…………………………………… 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 信號(hào)量………………………………………………………………… 289
7.6.3 互斥量………………………………………………………………… 290
7.6.4 隊(duì) 列………………………………………………………………… 291
7.6.5 定時(shí)器………………………………………………………………… 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 云平臺(tái)、MiCO系統(tǒng)與FogCloud ………………………………………… 301
7.8.1 FogCloud簡(jiǎn)介………………………………………………………… 301
7.8.2 MQTT協(xié)議簡(jiǎn)介……………………………………………………… 302
7.8.3 FogCloud工作流程與實(shí)例…………………………………………… 303
第8章 開(kāi)發(fā)環(huán)境…………………………………………………………………… 307
8.1 開(kāi)發(fā)流程簡(jiǎn)介……………………………………………………………… 307
8.1.1 硬件需求……………………………………………………………… 307
8.1.2 軟件需求……………………………………………………………… 307
8.2 IAR開(kāi)發(fā)環(huán)境……………………………………………………………… 312
8.2.1 如何進(jìn)入某個(gè)工程的調(diào)試模式……………………………………… 312
8.2.2 如何調(diào)試工程………………………………………………………… 314
8.3 CCS6.0開(kāi)發(fā)環(huán)境………………………………………………………… 317
8.3.1 下載和安裝CCS6.0開(kāi)發(fā)環(huán)境……………………………………… 317
8.3.2 配置CCS6.0開(kāi)發(fā)環(huán)境……………………………………………… 317
8.3.3 CCS6.0開(kāi)發(fā)環(huán)境下TIGRTOS的使用……………………………… 321
8.4 CC3200LaunchPad硬件使用…………………………………………… 329
8.4.1 CC3200LaunchPad概述…………………………………………… 329
8.4.2 CC3200LaunchPad功能簡(jiǎn)述……………………………………… 330
8.4.3 CC3200LaunchPad硬件電路功能框圖…………………………… 330
8.4.4 CC3200LaunchPad擴(kuò)展引腳……………………………………… 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的開(kāi)發(fā)與應(yīng)用…………………………………………………… 334
9.1 MiCOKit 3200開(kāi)發(fā)套件………………………………………………… 334
9.2 MiCOKit 3200硬件結(jié)構(gòu)與電路………………………………………… 336
9.2.1 MiCOKit 3200主板單元…………………………………………… 336
9.2.2 MiCOKit 3200外擴(kuò)模塊…………………………………………… 340
9.3 MiCOKit手機(jī)APP ……………………………………………………… 347
9.3.1 下載、安裝手機(jī)APP ………………………………………………… 347
9.3.2 注冊(cè)開(kāi)發(fā)者賬號(hào)……………………………………………………… 347
9.3.3 開(kāi)發(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è)備端軟件開(kāi)發(fā)方法……………………………………… 354
9.4.3 MiCOKitAppFramework簡(jiǎn)介……………………………………… 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簡(jiǎn)易實(shí)例………………………………………… 365
9.6 基于CC3200的低功耗報(bào)警器…………………………………………… 367
9.6.1 報(bào)警系統(tǒng)的整體結(jié)構(gòu)………………………………………………… 368
9.6.2 報(bào)警器的設(shè)計(jì)與實(shí)現(xiàn)………………………………………………… 368
9.6.3 云服務(wù)器的設(shè)計(jì)與實(shí)現(xiàn)……………………………………………… 379
9.6.4 監(jiān)控APP的設(shè)計(jì)與實(shí)現(xiàn)……………………………………………… 381
參考文獻(xiàn)……………………………………………………………………………… 384