《嵌入式系統開發與套用:基於Cortex-M3核心的Stellaris微控制器》是由王黎明、閆曉玲、夏立、卜樂平編著,2013年清華大學出版社出版的21世紀高等學校嵌入式系統專業規劃教材。該教材可作為大專、本科院校自動化、機電、儀器儀表、自動控制等專業以及工業控制網路等相關課程的教材或教學參考書,也可供從事工業控制網路系統設計和產品研發的工程技術人員參考。
全書共12章。首先介紹了嵌入式系統的概念。其次介紹了程式的編譯、測試,提供了基礎、環境、工具支持的嵌入式開發的集成開發環境及驅動庫。然後從Stellaris處理器最小硬體系統以及經典的電路設計為基礎,介紹了相關外圍接口的開發與套用,包括硬體類型的定義、位帶操作、系統控制接口、系統節拍定時器、通用輸入/輸出接口、Flash內部匯流排讀寫、通用定時器控制、看門狗操作、中斷控制、脈寬調製器、電壓比較器、ADC採樣、互聯IC匯流排、同步串列通信、CAN匯流排接口、乙太網通信等,介紹了μC/OS-Ⅱ實時多任務作業系統在處理器上的移植及套用,最後以標準化採集控制模組作為典型的套用系統,給出了其硬體電路設計和程式實現。
基本介紹
- 書名:嵌入式系統開發與套用:基於Cortex-M3核心的Stellaris微控制器
- 作者:王黎明、閆曉玲、夏立、卜樂平
- ISBN:9787302319825
- 類別:21世紀高等學校嵌入式系統專業規劃教材
- 頁數:571頁
- 出版社:清華大學出版社
- 出版時間:2013年8月1日
- 裝幀:平裝
- 開本:16開
- 字數:898千字
- CIP核字號:2013078235
成書過程,修訂過程,出版工作,內容簡介,教材目錄,教學資源,教材特色,作者簡介,
成書過程
修訂過程
該教材由王黎明、閆曉玲、夏立、卜樂平編著,在編寫過程中,周立功單片機發展有限公司為該教材的完成提供了測試環境、相應的硬體測試平台以及該教材的部分內容和代碼。
出版工作
2013年8月1日,該教材由清華大學出版社出版。
責任編輯 | 封面設計 | 責任校對 | 責任印製 |
---|---|---|---|
高買花、薛陽 | 常雪影 | 焦麗麗 | 劉海龍 |
內容簡介
全書共12章。
第1章為基礎部分。首先介紹了嵌入式系統的概念和組成,包括嵌入式平台的硬體構架、板級支持包、嵌入式系統上的應用程式;然後介紹了嵌入式系統的開發流程、ARM處理器的分類、結構和選型,重點介紹了Cortex-M3核心的暫存器組、中斷向量表、存儲器映射、存儲器保護單元;最後簡述了嵌入式作業系統的種類以及選型規則。
第2章介紹了嵌入式系統的集成開發環境及驅動庫。首先介紹了嵌入式系統開發的一般過程,包括目標平台創建、編譯、連線、定址過程;接著介紹了該舉措主要使用的開發工具鏈IAR,主要包括IAREWARM的安裝、驅動庫的安裝、EWARM中創建新項目、編譯運行程式以及將IAR的工程移植到Keil工程上的方法。
第3章主要介紹了Stellaris處理器的結構、接口特性、處理器接口表以及Stellaris處理器最小系統設計,最後以LM3S8962處理器為例列舉了基本電路設計,包括濾波電路、復位電路、晶振時鐘、乙太網接口、RS-232、RS-485、CAN匯流排、電源模組、ADC採樣、LED及按鍵、蜂鳴器、I2C擴展開關量輸入、I2C擴展開關量輸出、繼電器輸出等電路設計。
第4章主要介紹了嵌入式編程的相關概念、處理器內部及外圍接口的實現方法,主要包括硬體類型的定義位帶操作、系統控制接口、系統節拍定時器、通用輸入/輸出接口、Flash內部匯流排讀寫、通用定時器控制、看門狗操作、中斷控制、脈寬調製器以及電壓比較器的使用。其中Cortex-M3核心的系統節拍定時器、中斷控制、位帶操作與其他處理器有很大的不同。
第5章主要介紹了嵌入式技術中模擬量的採樣變換,首先介紹了Stellaris微控制器核心集成的ADC的特性、功能,然後介紹了ADC使用過程中應注意的事項,接下來列出了ADC的常用庫函式實現了包括ADC單通道觸發採樣、多通道採樣、內部溫度感測器採樣、定時器觸發採樣、外部觸發採樣等幾個ADC採樣的例子,最後分析了ADC的軟硬體過採樣及實現技術。
第6章主要介紹了UART異步串口通信的相關知識,包括UART異步串列接口的功能、主要的套用庫函式,通過實例程式列舉了UART串口的使用及實現方法,主要包括簡單收發、傳送FIFO的工作原理、傳送FIFO中斷原理、以FIFO中斷方式傳送、以FIFO中斷方式接收等。
第7章主要介紹了互聯IC匯流排的相關設計及套用,包括I2C協定的基礎、功能,I2C匯流排的主要驅動庫函式,最後分析了部分案例的實現,主要包括I2C主機模式驅動程式、I2C晶片PCF8574的I/O擴展、I/O擴展晶片PCA9554、I2C存儲器器件CAT25C02的讀取等套用例程。
第8章主要介紹了同步串列通信的相關內容,首先介紹了TI的同步串列幀格式、FreescaleSPI幀格式、Microwire幀格式,以及SSI通信的位速率和幀格式、FIFO操作、SSI中斷,然後介紹了SSI通信的主要庫函式,包括配置與控制、數據收發、中斷控制等,最後給出了兩個SSI通信的例程。
第9章主要介紹了CAN匯流排接口模組的套用,包括CAN匯流排的分層結構及通信協定、CAN匯流排接口電路設計、CAN匯流排收發器設計以及外設驅動函式的分析,給出了CAN模組的套用流程及封裝函式,最後介紹了與PC通信的CAN通信工具的使用方法。
第10章主要介紹了物聯網的基礎——乙太網接口通信的實現,主要針對LwIP進行說明,包括回調函式、應用程式狀態設定函式、建立TCP連線函式、TCP數據傳送函式、TCP數據接收函式、應用程式輪詢的工作原理及相關函式、關閉與中止連線函式、底層TCP接口、UDP接口函式。最後給出了應用程式實例,包括UDP伺服器通信、UDP客戶端通信、Web伺服器、TCP客戶端通信等程式。
第11章主要介紹了μC/OS-Ⅱ實時多任務作業系統在處理器上的移植及套用,首先介紹了μC/OS-Ⅱ模板的結構及使用應注意的問題,然後給出了套用模板的例程分析,介紹了μC/OS-Ⅱ作業系統任務之間通信的方式,如信號量、信箱、訊息佇列等。
第12章是套用案例分析,包括人機接口、高精度ADC採樣、多種感測器接入、PWM控制電機、標準化採集模組等。
教材目錄
第1章嵌入式系統基礎 1.1嵌入式系統的概念 1.2嵌入式系統的組成 1.2.1嵌入式平台的硬體構架 1.2.2板級支持包和嵌入式系統 1.2.3嵌入式系統上的應用程式 1.3嵌入式系統的開發流程和優勢 1.4ARM微處理器概述 1.4.1ARM——Advanced RISC Machines 1.4.2ARM微處理器的套用領域及特點 1.4.3ARM微處理器的結構 1.4.4ARM微處理器的套用選型 1.5典型的嵌入式作業系統 1.5.1常用的嵌入式作業系統 1.5.2嵌入式作業系統類型的選擇 1.5.3嵌入式作業系統的選擇標準 1.6小結 1.7思考題 第2章集成開發環境及驅動庫 2.1嵌入式軟體開發過程 2.1.1創建過程 2.1.2編譯 2.1.3連線 2.1.4定址 2.1.5調試過程 2.2IAR EWARM安裝 2.3安裝驅動庫 2.3.1下載最新庫檔案 2.3.2拷貝連線器命令檔案 2.3.3拷貝驅動庫頭檔案 2.3.4拷貝底層驅動函式館 2.4EWARM創建新項目 2.4.1建立一個項目檔案目錄 2.4.2新建工作區 2.4.3生成新項目 2.4.4添加/新建檔案 2.4.5通用選項設定 2.4.6C/C++編譯器選項設定 2.4.7Assembler選項設定 2.4.8Linker選項設定 2.4.9Debugger選項設定 2.5編譯和運行應用程式 2.5.1編譯連線處理 2.5.2查看MAP檔案 2.5.3載入應用程式 2.5.4應用程式的相關調試 2.5.5生成.hex檔案 2.5.6探究編譯連線 2.6將IAR的工程移植到Keil工程 2.7小結 2.8思考題 第3章嵌入式微處理器及電路設計 3.1Stellaris處理器的結構概述 3.2Cortex-M3的Stellaris微處理器 3.2.1處理器的分類 3.2.2StellarisWare軟體 3.3Stellaris處理器最小系統 3.4LM3S8962接口特性 3.5典型接口電路的分析與設計 3.5.1主處理器電路 3.5.2處理器濾波電路 3.5.3復位接口電路 3.5.4主處理器時鐘接口 3.5.5乙太網接口 3.5.6實時時鐘及供電電路 3.5.7I2C存儲器EEPROM電路 3.5.8I2C數字溫度採集接口 3.5.9I2C擴展開關量輸入電路 3.5.10開關量隔離輸入電路 3.5.11I2C擴展開關量輸出電路 3.5.12開關量隔離輸出電路 3.5.13繼電器輸出電路組1 3.5.14繼電器輸出電路組2 3.5.15I2C擴展輸入/輸出電路 3.5.16UART串列RS232電路 3.5.17UART串列RS485接口電路 3.5.18紅外線串口電路 3.5.19電路電源模組 3.5.20ADC採樣電路 3.5.21LED及按鍵電路 3.5.22SPI驅動數碼管接口 3.5.23SPI驅動EEPROM接口 3.5.24SPI驅動TFT LCD接口 3.5.25PWM驅動電機電路 3.5.26JTAG接口電路 3.5.27擴展接口 3.6小結 3.7思考題 第4章接口功能單元的開發與套用 4.1嵌入式編程 4.1.1空的main()函式 4.1.2實用工程模板 4.1.3LED閃爍發光 4.1.4輸出hello world 4.1.5UART控制台 4.2硬體類型定義 4.2.1硬體類型定義簡介 4.2.2硬體暫存器訪問 4.2.3硬體暫存器訪問實例 4.2.4位帶操作 4.2.5位帶操作實例 4.3系統控制 4.3.1電源結構與LDO控制 4.3.2時鐘控制 4.3.3復位控制 4.3.4外設控制 4.3.5睡眠與深度睡眠 4.3.6雜項功能 4.3.7中斷操作 4.3.8時鐘驗證 4.4系統節拍定時 4.4.1系統節拍SysTick的功能簡介 4.4.2系統節拍SysTick的基本操作 4.4.3系統節拍SysTick的中斷控制 4.4.4模擬PC按鍵重複特性實例 4.5通用輸入/輸出 4.5.1通用I/O口兩種套用電路 4.5.2GPIO概述 4.5.3特殊引腳及暫存器 4.5.4GPIO庫函式 4.5.5兩隻LED交替閃爍控制實例 4.5.6KEY控制LED實例 4.6Flash內部匯流排讀寫 4.6.1Nor Flash簡介 4.6.2Nor Flash引腳定義 4.6.3Nand Flash簡介 4.6.4Nand Flash引腳定義 4.6.5Flash功能概述 4.6.6Flash庫函式 4.6.7Flash簡單擦寫實例 4.6.8Flash當做EEPROM操作實例 4.7通用定時器 4.7.1Timer總體特性 4.7.2Timer功能概述 4.7.3Timer庫函式 4.7.4定時器32位單次觸發定時實例 4.7.5定時器32位周期定時實例 4.7.6定時器16位單次觸發定時實例 4.7.7定時器16位周期定時實例 4.7.8定時器16位輸入邊沿計數捕獲實例 4.7.9定時器16位輸入邊沿定時捕獲實例 4.7.10定時器16位PWM實例 4.7.11定時器PWM套用蜂鳴器發聲實例 4.7.12定時器模組16位PWM演奏音樂實例 4.8看門狗 4.8.1看門狗功能簡述 4.8.2外部看門狗 4.8.3WatchDog功能概述 4.8.4正確使用看門狗的方法 4.8.5WatchDog庫函式 4.8.6WatchDog復位實例 4.8.7WatchDog作為普通定時器實例 4.9中斷控制 4.9.1中斷的基本概念 4.9.2CortexM3核心異常與NVIC 4.9.3Stellaris中斷基本編程方法 4.9.4中斷庫函式 4.9.5GPIO中斷控制實例 4.9.6中斷優先權控制實例 4.10脈衝寬度調製 4.10.1PWM總體特性 4.10.2PWM功能概述 4.10.3PWM庫函式 4.10.4產生兩路PWM信號實例 4.10.5產生兩路帶死區的PWM實例 4.10.6PWM發生器中斷實例 4.11模擬比較器 4.11.1電壓比較器 4.11.2COMP功能 4.11.3COMP庫函式 4.11.4內部參考源輸出驅動LED實例 4.11.5外部參考源輸出觸發中斷實例 4.12小結 4.13思考題 | 第5章模數轉換ADC 5.1ADC總體特性 5.2ADC功能描述 5.3ADC套用注意事項 5.4ADC庫函式 5.4.1ADC採樣序列操作 5.4.2ADC處理器觸發 5.4.3ADC過採樣 5.4.4ADC中斷控制 5.5ADC模組的套用 5.5.1ADC模組初始化 5.5.2ADC開始採樣 5.6ADC實例分析 5.6.1處理器觸發ADC採樣實例 5.6.2ADC內置的溫度感測器實例 5.6.3處理器觸發多通道ADC採樣實例 5.6.4定時器溢出觸發ADC採樣實例 5.6.5差分輸入ADC採樣實例 5.6.6ADC硬體過採樣實例 5.6.7ADC軟體過採樣實例 5.7過採樣原理與實現 5.7.1平均 5.7.2過採樣實現 5.8小結 5.9思考題 第6章通用異步收發器 6.1UART異步串口概述 6.2UART總體特性 6.3UART功能概述 6.4UART庫函式 6.4.1配置與控制 6.4.2使能與禁止 6.4.3數據收發 6.4.4中斷控制 6.5UART實例分析 6.5.1UART簡單數據傳送實例 6.5.2傳送FIFO工作原理及實例 6.5.3傳送FIFO中斷原理及實例 6.5.4以FIFO中斷方式傳送實例 6.5.5以FIFO中斷方式接收實例 6.5.6紅外線通信實例 6.6小結 6.7思考題 第7章互聯IC匯流排 7.1I2C協定基礎 7.2I2C功能概述 7.3I2C庫函式 7.4I2C例程分析 7.4.1I2C主機模式驅動程式 7.4.2I2C晶片PCF8574的I/O擴展 7.4.3I2C晶片PCA9554的I/O擴展 7.4.4EEPROM存儲器CAT24C02 7.5小結 7.6思考題 第8章同步串列數據通信 8.1SSI總體特性 8.2SSI通信協定 8.2.1TI同步串列幀格式 8.2.2Freescale SPI幀格式 8.2.3Microwire幀格式 8.3SSI功能概述 8.3.1位速率和幀格式 8.3.2FIFO操作 8.3.3SSI中斷 8.4SSI庫函式參考 8.4.1配置與控制 8.4.2數據收發 8.4.3中斷控制 8.4.4SSI常用的API函式 8.5SSI驅動實例分析 8.5.1SSI驅動靜態LED 8.5.2SSI驅動動態LED 8.6小結 8.7思考題 第9章CAN接口套用 9.1CAN匯流排簡介 9.2CAN的分層結構及通信協定 9.2.1CAN的分層結構 9.2.2CAN的通信協定 9.3CAN匯流排接口套用電路 9.3.1由嵌入式處理器上擴展CAN匯流排接口 9.3.2CAN匯流排接口套用電路 9.3.3收發器隔離電路設計 9.4CAN模組特性及驅動庫函式 9.4.1數據結構 9.4.2枚舉類型 9.4.3接口函式 9.5CAN模組套用流程 9.6CAN匯流排常用函式及例程 9.6.1CAN匯流排常用的函式 9.6.2收發數據 9.6.3不同節點通信案例 9.6.4CAN匯流排數據簡單傳送實例 9.6.5CAN匯流排傳送ADC採樣數據實例 9.6.6CAN匯流排接收數據實例 9.7小結 9.8思考題 第10章LwIP的API接口及編程 10.1Stellaris乙太網控制器 10.2TCP/IP網路分層結構 10.2.1各種協定所在的層 10.2.2乙太網幀結構 10.2.3數據進入協定棧時的封裝過程 10.2.4IP首部數據格式 10.2.5UDP封裝格式 10.2.6乙太網數據幀的分用過程 10.3Stellaris乙太網的收發FIFO 10.4Stellaris乙太網的函式調用 10.5乙太網接口電路 10.6LwIP協定棧簡介 10.7RAW API分析 10.7.1應用程式狀態設定函式 10.7.2建立TCP連線函式 10.7.3TCP數據傳送函式 10.7.4TCP數據接收函式 10.7.5輪詢工作原理及相關函式 10.7.6關閉與中止連線的函式 10.7.7底層TCP接口 10.7.8UDP接口函式 10.8應用程式實例分析 10.8.1UDP伺服器通信實例 10.8.2UDP客戶端通信實例 10.8.3Web伺服器實例 10.8.4TCP客戶端通信實例 10.9小結 10.10思考題 第11章μC/OS嵌入式實時作業系統 11.1實時作業系統的核心 11.1.1任務管理 11.1.2任務間的通信和同步 11.1.3存儲器管理 11.1.4定時器和中斷管理 11.2μC/OS-Ⅱ模板說明 11.2.1移植模板的結構 11.2.2模板使用的注意事項 11.3μC/OS-Ⅱ模板使用實例 11.3.1作業系統任務流程 11.3.2操作步驟 11.4中斷控制蜂鳴器 11.4.1作業系統任務流程 11.4.2操作步驟 11.5μC/OS-Ⅱ任務之間的通信與同步方式 11.5.1信號量 11.5.2信箱 11.5.3訊息佇列 11.6小結 11.7思考題 第12章套用案例分析 12.1人機互動接口 12.1.1鍵盤接口 12.1.2LED及鍵盤驅動 12.1.3LCD1602互動 12.1.4驅動240×320的TFT-LCD 12.2高精度ADC採樣 12.2.1串列ADC接口TLC2543 12.2.2串列ADS7818數據採集 12.3多種感測器接入實例 12.3.1感測器DS1820測量溫度 12.3.2數字感測器LM75A測量溫度 12.3.3感測器TSL230測量光照度 12.4PWM控制實例 12.4.1直流電機控制 12.4.2步進電機控制 12.4.3SPWM逆變電源 12.4.4PWM語音播放器 12.5基於CAN匯流排的採集模組 12.5.1通信協定 12.5.2電路板實物 12.5.3主函式分析 12.5.4CAN收發報文函式 12.5.5ADC及定時器配置函式 12.6小結 12.7思考題 附錄書中常用術語縮寫解析 參考文獻 |
(註:目錄排版順序為從左列至右列)
教學資源
該教材有配套教材——《嵌入式系統開發與套用實驗指導書:基於Cortex M3核心的Stellaris微控制器》。
書名 | 書號 | 出版社 | 出版時間 | 作者 |
---|---|---|---|---|
《嵌入式系統開發與套用實驗指導書:基於Cortex M3核心的Stellaris微控制器》 | 9787302326540 | 清華大學出版社 | 2013.09.01 | 王黎明、夏立、卜樂平、閆曉玲 |
教材特色
該教材的立足點是基礎化、實用化、可操作性。該教材介紹Stellaris處理器外圍接口的開發方法(包括軟硬體及關鍵技術問題),以實例為基礎講述Stellaris處理器外圍接口的開發。
該教材部分篇幅講述了一些案例程式代碼,很多地方僅僅列出了一些關鍵的代碼,幫助讀者分析,次要的部分用省略號略過。同時書中的全部代碼都可以在配套資料中找到。書中略過很多基礎知識和原理的講解。
在科技術語方面,書中採用中英文結合的方式。多數縮寫和英文都在附錄中給出了對應的中文。書中採用中文術語進行描述,但是對於有些實在找不到準確中文表述的術語,則直接使用英文。
作者簡介
王黎明,男,海軍工程大學電氣工程學院副教授、碩士生導師,研究方向為電網自動化調度與管理技術、嵌入式系統設計與開發。
閆曉玲,海軍工程大學電氣工程學院教師。
夏立,男,海軍工程大學電氣工程學院教授、博士生導師,研究方向為電力系統監測與控制、系統監測與故障診斷。
卜樂平,海軍工程大學電氣工程學院教授、博士生導師,主要從事信號檢測與處理方向的研究。