本書以美國德州儀器公司(TI)的MSP430系列超低功耗單片機為核心,介紹了MSP430單片機的特點和選型,詳細講述了MSP430的結構和指令系統,對MSP430全系列(特別是*新的F5xx、F6xx)所涉及的片內外圍模塊的功能、原理、應用做了詳盡的描述,并介紹了MSP43X的開發環境、匯編語言、庫函數、C語言程序設計方法,以及單片機低功耗設計、常用接口電路設計和嵌入式軟件編程基礎等。*后還有幾個體現MSP430單片機特點的應用實驗設計。本書配套有完整的教學資源,包括PPT課件、配合MSP430 LaunchPad的多功能教學實驗系統和實驗指導書等。
本書可作為高等院校計算機、電子、自動化、儀器儀表等專業單片機課程的教材,也適合廣大從事單片機應用系統開發的工程技術人員作為學習、參考用書。
單片機應用在物聯網時代有了新的發展機遇,對處理器的綜合性能要求也越來越高。縱觀單片機的發展,以應用需求為目標,市場越來越細化,充分突出以“單片”解決問題,而不像多年前以MCS-51/96等處理器為中心,外擴各種接口構成各種應用系統。單片機系統作為嵌入式系統的一部分,主要集中在中、低端應用領域(嵌入式高端應用主要由DSP、ARM、MIPS等高性能處理器構成),在這些應用中,目前也出現了一些新的需求,主要體現在以下幾個方面:
(1)以電池供電的應用越來越多,而且由于產品體積的限制,很多是用紐扣電池供 電。要求系統功耗盡可能低,如手持式儀表、水表、玩具等。
(2)隨著應用的復雜,對處理器的功能和性能要求不斷提高,即既要外設豐富、功能靈活,又要有一定的運算能力,能做一些實時算法,而不僅僅做一些簡單的控制。
(3)產品更新速度快,開發時間短,希望開發工具簡單、廉價,功能完善。特別是仿真工具要有延續性,能適應多種MCU,以免重復投資,增加開發投入。
(4)產品性能穩定,可靠性高,既能加密保護,又能方便升級。與無線通信技術結合的應用日趨增多。
單片機應用在物聯網時代有了新的發展機遇,對處理器的綜合性能要求也越來越高。縱觀單片機的發展,以應用需求為目標,市場越來越細化,充分突出以“單片”解決問題,而不像多年前以MCS-51/96等處理器為中心,外擴各種接口構成各種應用系統。單片機系統作為嵌入式系統的一部分,主要集中在中、低端應用領域(嵌入式高端應用主要由DSP、ARM、MIPS等高性能處理器構成),在這些應用中,目前也出現了一些新的需求,主要體現在以下幾個方面:
(1)以電池供電的應用越來越多,而且由于產品體積的限制,很多是用紐扣電池供 電。要求系統功耗盡可能低,如手持式儀表、水表、玩具等。
(2)隨著應用的復雜,對處理器的功能和性能要求不斷提高,即既要外設豐富、功能靈活,又要有一定的運算能力,能做一些實時算法,而不僅僅做一些簡單的控制。
(3)產品更新速度快,開發時間短,希望開發工具簡單、廉價,功能完善。特別是仿真工具要有延續性,能適應多種MCU,以免重復投資,增加開發投入。
(4)產品性能穩定,可靠性高,既能加密保護,又能方便升級。與無線通信技術結合的應用日趨增多。
美國德州儀器公司(TI)推出的MSP430系列超低功耗16位混合信號處理器(Mixed Signal Processor),集多種領先技術于一體,以16位RISC處理器、超低功耗、高性能模擬技術及豐富的片內外設、JTAG仿真調試等定義了新一代超低功耗單片機。加之TI優良的服務(全球免費快速網上樣片申請、豐富的技術資料、大學計劃資源等),充分體現了世界級著名IC廠商的實力和綜合優勢。
在超低功耗方面,其處理器功耗(1.8~3.6V,0.1~400μA,RTC運行約0.5μA,約100μA/MIPS)和口線輸入漏電流(最大50nA)在業界都是最低的,遠低于其他系列產品。
在運算性能上,其16位RISC結構,使MSP430在16MHz晶振工作時,指令速度可達16MIPS(注意:同樣8MIPS的指令速度,在運算性能上16位處理器比8位處理器不止高兩倍)。同時,MSP430中采用了一般只有DSP中才有的16位多功能硬件乘法器、硬件乘-加(積之和)功能、DMA等一系列先進的體系結構,大大增強了它的數據處理和運算能力,可以有效地實現一些數字信號處理的算法(如FFT、DTMF等)。
在開發工具上,MSP430系列單片機支持先進的JTAG調試,其硬件仿真工具(仿真器)非常廉價,而且適用于所有MSP430系列單片機,既便于推廣,又大大降低了用戶的開發投入。其軟件集成開發環境有IAR的EW430和TI的CCS,功能都很強大。
在系統整合方面,MSP430系列單片機結合TI的高性能模擬技術,根據其不同產品,集成了多種功能模塊,包括定時器、模擬比較器、多功能串行接口(SPI/IIC/UART)、USB、LCD驅動器、硬件乘法器、10/12/16位ADC、12位DAC、看門狗定時器(WDT)、I/O端口(P0~P6)、DMA控制器、2~10KB的RAM、多達128KB的Flash,以及豐富的中斷功能。使用戶可以根據應用需求,選擇最合適的MSP430系列產品來實現。另外,大部分MSP430系列單片機采用Flash技術,支持在線編程,并有加密熔絲,具有很高的保密性。MSP430系列單片機均為工業級產品,性能穩定,可靠性高,可用于各種民用、工業產品。
《MSP430系列16位超低功耗單片機原理與應用》一書初版于2004年11月在清華大學出版社出版發行,2012年進行了改版并于2013年9月出版了該書的第2版。近幾年MSP43x系列單片機在性能、功能和應用方面都有了新的發展,為了滿足新的教學要求、更好地推廣最新MSP43x技術和產品,在TI大學計劃部和清華大學出版社的支持下,我們修訂出版此書的第3版。本書主要以TI公司最新、功能最完整的MSP430F6xx系列內容為基礎,刪除了一些陳舊的內容,增加并修訂了MSP430庫函數、CCS開發工具、嵌入式軟件編程基礎、嵌入式無線通信、應用實驗等內容。為了方便教學,我們還開發了完整的教學配套資源,包括PPT課件、配合MSP430 LaunchPad的多功能教學實驗系統和實驗指導書等。
參與本書編寫和資料整理、代碼驗證等工作的還有上海大學李晉、華東師范大學計算機系洪明杰、孫樂晨、杜欣宇、張紅艷、張炤、林雯、上海德研電子科技有限公司陳宮、郝立平、姜哲等。在本書成稿過程中,得到了德州儀器半導體技術(上海)有限公司大學計劃部經理王承寧、潘亞濤、崔萌、清華大學出版社編輯蘇明芳等的大力支持。在此向他們表示衷心的感謝。
由于時間倉促,水平所限,至交稿時我們仍覺得有些地方還不盡人意,錯誤之處也在所難免,懇請讀者批評指正,以便我們及時修正。有關此書的信息和配套資源,會及時發布在網站上。
編 者
第1章 概述 1
1.1 單片微型計算機 1
1.1.1 單片機的概念 1
1.1.2 單片機的特點及主要系列 2
1.1.3 單片機的應用 2
1.2 MSP43X系列單片機 3
1.2.1 MSP430系列單片機的特點 3
1.2.2 MSP432系列單片機的特點 5
1.2.3 MSP43X系列單片機的發展和應用 6
1.3 MSP430系列單片機應用選型 8
1.3.1 MSP430系列單片機命名規則 8
1.3.2 MSP430系列單片機選型 8
1.3.3 MSP430芯片封裝 17
1.4 本章小結 19
1.5 思考題與習題 19
第2章 MSP430體系結構 20
2.1 MSP430微控制器架構 20
2.2 地址空間 21
2.2.1 中斷向量表 22
2.2.2 Flash/ROM 23
2.2.3 信息內存 24
2.2.4 引導內存 24
2.2.5 RAM 24
2.2.6 外設模塊 24
2.2.7 特殊功能寄存器 24
2.3 中央控制器(MSP430 CPU) 25
2.3.1 算術邏輯單元 26
2.3.2 MSP430 CPU寄存器 26
2.4 尋址模式 27
2.4.1 寄存器尋址模式 28
2.4.2 變址尋址模式 29
2.4.3 符號尋址模式 29
2.4.4 絕對尋址模式 30
2.4.5 寄存器間接尋址模式 31
2.4.6 自增間接尋址模式 31
2.4.7 立即數尋址模式 32
2.5 指令系統 32
2.5.1 雙操作數指令 33
2.5.2 單操作數指令 34
2.5.3 程序流控制—跳轉 36
2.5.4 仿真指令 36
2.6 本章小結 39
2.7 思考題與習題 39
第3章 MSP430基本外設 41
3.1 系統時鐘與控制 41
3.1.1 系統復位 41
3.1.2 MSP430基礎時鐘模塊 43
3.1.3 中斷管理 57
3.1.4 電壓監控系統 59
3.1.5 應用舉例 61
3.2 低功耗模式 62
3.2.1 低功耗工作模式 63
3.2.2 進入和退出低功耗模式 66
3.2.3 低功耗應用原則 69
3.2.4 應用舉例 70
3.3 通用輸入/輸出端口 71
3.3.1 GPIO基本結構 71
3.3.2 通用輸入/輸出端口概述 74
3.3.3 具有中斷能力的端口 76
3.3.4 不具有中斷能力的端口 78
3.3.5 端口COM和S 78
3.3.6 應用舉例 78
3.4 定時器 79
3.4.1 定時器的基本工作模式 80
3.4.2 基本定時器1 83
3.4.3 定時器A 86
3.4.4 定時器B 102
3.4.5 定時器D 104
3.4.6 看門狗定時器 107
3.4.7 實時時鐘 112
3.4.8 應用舉例 116
3.5 DMA控制器 121
3.5.1 DMA控制器的結構與特性 121
3.5.2 DMA控制器的配置和操作 123
3.5.3 DMA寄存器 129
3.5.4 應用舉例 134
3.6 比較器B 135
3.6.1 比較器的工作原理 135
3.6.2 比較器B的結構 138
3.6.3 比較器B的應用 138
3.6.4 比較器B寄存器 140
3.6.5 比較器A和比較器A增強模塊 143
3.6.6 應用舉例 145
3.7 模數轉換器 148
3.7.1 ADC的工作原理 149
3.7.2 ADC性能指標 150
3.7.3 ADC12_A特點與結構 150
3.7.4 ADC12_A轉換模式 154
3.7.5 ADC寄存器 157
3.7.6 應用舉例 164
3.8 數模轉換器 167
3.8.1 DAC的工作原理 168
3.8.2 DAC性能指標 168
3.8.3 DAC12結構與特性 169
3.8.4 DAC12操作 170
3.8.5 DAC12寄存器 173
3.8.6 應用舉例 177
3.9 LCD液晶驅動模塊 179
3.9.1 LCD_B的主要特點及結構 180
3.9.2 LCD控制器的使用 181
3.9.3 應用舉例 186
3.10 硬件乘法器 190
3.10.1 硬件乘法器結構 191
3.10.2 硬件乘法器操作 192
3.10.3 應用舉例 195
3.11 Flash編程 198
3.11.1 Flash存儲器結構 199
3.11.2 Flash存儲器操作 201
3.11.3 Flash存儲器寄存器 204
3.11.4 應用舉例 207
3.12 本章小結 208
3.13 思考題與習題 208
第4章 MSP430通信接口 214
4.1 通信系統概述 214
4.1.1 通信系統模型 214
4.1.2 通信模式 214
4.1.3 MSP430單片機的串行通信功能 216
4.2 USCI模塊概述 217
4.2.1 初始化序列 217
4.2.2 波特率生成 218
4.3 通用異步通信協議UART模式 219
4.3.1 UART概述 219
4.3.2 UART通信協議標準 220
4.3.3 基于MSP430的UART 222
4.3.4 異步多機通信模式 224
4.3.5 USCI模塊中斷 225
4.3.6 UART模塊寄存器 226
4.3.7 應用舉例 232
4.4 串行外設接口協議SPI模式 233
4.4.1 SPI的特點 234
4.4.2 SPI模式操作 234
4.4.3 SPI模塊寄存器 238
4.4.4 應用舉例 240
4.5 內部集成電路協議I2C模式 243
4.5.1 I2C概述 243
4.5.2 I2C模式操作 245
4.5.3 I2C模塊寄存器 250
4.5.4 應用舉例 255
4.6 通用串行總線協議USB模塊 263
4.6.1 USB總線協議 263
4.6.2 USB傳輸類型 265
4.6.3 MSP430 USB模塊簡介 270
4.6.4 USB模塊操作 271
4.6.5 USB模塊寄存器 274
4.7 本章小結 275
4.8 思考題與習題 275
第5章 MSP430軟硬件開發環境 278
5.1 CCSv6軟件開發環境 278
5.1.1 CCSv6概述 278
5.1.2 CCSv6的安裝 278
5.1.3 CCSv6工程開發 280
5.1.4 CCSv6資源管理器介紹及應用 286
5.2 IAR Embedded Workbench嵌入式開發工具 289
5.2.1 IAR EW概述 289
5.2.2 IAR EW430的安裝 290
5.2.3 IAR EW430工程開發 291
5.3 嵌入式程序設計 295
5.3.1 嵌入式C程序設計簡介 295
5.3.2 編程風格 297
5.3.3 數據類型及聲明 306
5.3.4 操作符與表達式 314
5.3.5 函數 317
5.3.6 指針 319
5.3.7 MSP430單片機C語言程序設計 321
5.4 DriverLib簡介 325
5.4.1 DriverLib概述 325
5.4.2 DriverLib函數簡介及應用舉例 326
5.5 MSP430硬件開發工具 339
5.5.1 MSP-EXP430G2(LaunchPad)實驗開發板 339
5.5.2 MSP-EXP430F5529(LaunchPad) 341
5.5.3 MSP430F6638(LaunchPad)實驗開發板 345
5.5.4 DY-LaunchKit開發板資源 347
5.6 本章小結 349
5.7 思考題與習題 350
第6章 MSP430應用系統設計 351
6.1 MSP430電源與低功耗設計 351
6.1.1 電池選擇 351
6.1.2 超低靜態電流LDO 353
6.1.3 低功耗設計 354
6.2 常用接口設計 358
6.2.1 發光二極管 358
6.2.2 鍵盤 359
6.2.3 LED數碼管 367
6.2.4 液晶顯示屏 371
6.2.5 繼電器 377
6.3 嵌入式無線通信 379
6.3.1 Wi-Fi技術 379
6.3.2 藍牙技術 382
6.3.3 ZigBee技術 386
6.3.4 Sub-1 GHz 388
6.4 低功耗無線溫度采集儀 390
6.4.1 LightBlue APP簡介 391
6.4.2 電路實現 391
6.4.3 低功耗無線溫度采集儀設計與實現 392
6.5 音頻錄播器 394
6.5.1 WAV音頻文件解析 395
6.5.2 電路實現 395
6.5.3 音頻錄播器設計與實現 397
6.6 本章小結 399
6.7 思考題與習題 400
參考文獻 401
第1章 概 述
1.1 單片微型計算機
1.1.1 單片機的概念
微型計算機具有體積小、價格低、使用方便、可靠性高等一系列優點,因此一問世就顯示出強大的生命力,被廣泛用于國防、工業生產和商業管理等領域。特別是近年來微處理器(MPU)的高速發展,使其滲透到人類生活的各個領域,給人類世界帶來了難以估量的深刻變革。
縱觀微處理器的發展,可以明顯地看出其正朝著兩個方向進行。一是朝著具有復雜數據運算、高速通信、信息處理等功能的高性能計算機系統方向發展。這類系統以速度快、功能強、存儲量大、軟件豐富、輸入/輸出設備齊全為主要特點,采用高級語言、應用語言編程,適用于數據運算、文字信息處理、人工智能、網絡通信等應用。另一方面,在有些應用領域,如智能化儀器儀表、電信設備、自動控制設備、汽車乃至家用電器等,對運算、控制功能的要求相對并不復雜,但對體積、成本、功耗等的要求卻比較苛刻。為適應這種需求,產生了一種將中央處理器、存儲器、I/O接口電路以及連接它們的總線都集成在一塊芯片上的計算機,即所謂的單片微型計算機(Single Chip Microcomputer),簡稱單片機。單片機在設計上主要突出了控制功能,調整了接口配置,在單一芯片上制成了結構完整的計算機。
單片機分為通用型和專用型兩大類,通常所說的單片機,包括本書介紹的MSP430系列單片機都屬于通用型單片機。通用型單片機把可開發的資源全部提供給使用者。專用型單片機也稱專用微控制器,是針對某些應用專門設計的,例如頻率合成調諧器、MP3播放器、打印機控制器等。
1974年美國德州儀器公司(TI)在開發4位單片機TMS1000時,首次提出可編程SoC的概念,當時這是計算器、烤箱等應用的理想選擇。隨著這類處理器廣泛應用于各種控制系統,單片機也被稱為微控制器(MCU)。MCU現已是許多物理系統的核心,具有更高的集成度和更低的功耗。
微控制器(MCU)、微處理器(MPU)、數字信號處理器(DSP)是目前最常用的3種可編程處理器,它們根據確定的程序執行相應的指令,其架構特性源于1971年開發的第一款微處理器。微控制器具有有限的輸入和輸出,能夠嵌入到完整系統中,目前中等規模微控制器的性能,比首次執行太空任務的計算機還高幾個數量級。
1.1.2 單片機的特點及主要系列
單片機的結構特點如下:
? 時鐘頻率比通用MPU和DSP低,一般小于100MHz/100MIPS(MIPS:每秒百萬條指令數)。
? 功耗比MPU和DSP低幾個數量級。
? 字長一般為8~32位。
? 內存有限,通常小于1MB。
? 具有幾個到上百個輸入/輸出引腳。
單片機的應用特點如下:
? 小巧靈活、成本低、易于產品化,能方便地組裝成各種智能式控制設備以及各種智能儀器儀表。
? 面向控制,能針對性地解決從簡單到復雜的各類控制任務,從而能獲得最佳性能價格比。
? 抗干擾能力強,適應溫度范圍寬,在各種惡劣環境下都能可靠工作。
? 可以方便地實現多機和分布式控制,使整個系統的效率和可靠性大為提高。
單片機由于應用面廣、生產批量大而使成本低廉(目前可低至1元人民幣左右);系統結構簡單而使可靠性增加;采用CMOS工藝又極大地降低了功耗,因此單片機問世之后就成為微型計算機的重要分支,發展迅速,從4位、8位、16位到32位單片機種類已有數百種,世界年銷售量達數十億片。在20世紀80年代到90年代,國內廣泛使用Intel的MCS51系列和Motorola的68HC系列8位單片機。目前,除了TI的MSP430系列單片機,主要 的單片機還有Atmel的AVR系列、Microchip的PIC16/32系列以及NXP、ST的ARM系列等。
……