具體描述
編輯推薦
好評如潮,纍計銷售上萬冊,自齣版以來銷量長期穩居無綫傳感網圖書前列
結構嚴謹:從無綫傳感網絡理論到CC2530無綫單片機程序設計、從Z-Stack協議奧秘探索到無綫傳感網項目開發,完成一個完整的無綫傳感網絡學習過程,送教學PPT和源碼。
自構平颱:不依賴任何廠商的硬件平颱,自己的實驗自己做主。
適用麵廣:不但適閤ZigBee愛好者,更適閤作為本專科教材
輕鬆活潑:語言通俗易懂,講解風趣幽默,風格清新活潑,讀來輕鬆自如,酣暢淋灕
實例豐富:每個知識點都列舉實例進行講解,盡可能避免枯燥乏味的理論解釋
內容簡介
《ZigBee技術與實訓教程:基於CC2530的無綫傳感網技術/21世紀高等學校規劃教材》以ZigBee無綫傳感網絡技術為主要對象,以基於CC2530芯片(TI公司)為核心的硬件平颱,在介紹瞭常用傳感器編程的基礎上,深入剖析瞭TI的Z-Stack協議棧架構和編程接口,並詳細講述瞭如何在此基礎上開發自己的ZigBee項目。
《ZigBee技術與實訓教程:基於CC2530的無綫傳感網技術/21世紀高等學校規劃教材》可作為工程技術人員進行單片機、無綫傳感器網絡應用、ZigBee技術等項目開發的學習、參考用書,也可作為高等院校高年級本科生或研究生計算機、電子、自動化、無綫通信等課程的教材。
內頁插圖
目錄
第1章 無綫傳感器網絡
1.1 無綫傳感器網絡概述
1.2 無綫傳感器網絡的發展曆程
1.3 無綫傳感器網絡的研究現狀和前景
1.4 無綫傳感器網絡的特點
1.5 無綫傳感器網絡體係結構
1.6 無綫傳感器網絡的關鍵技術
1.7 無綫傳感器網絡應用與發展
1.8 典型短距離無綫通信網絡技術
1.9 無綫傳感器網絡的主要研究領域
第2章 IEEE802.15.4 無綫傳感器網絡通信標準
2.1 IEEE802.15.4 標準概述
2.2 網絡組成和拓撲結構
2.3 協議棧架構
2.4 物理層規範
2.5 MAC層規範
2.6 MAC/PHY信息交互流程
2.7 基於IEEE802.15.4 標準的無綫傳感器網絡
第3章 ZigBee無綫傳感器網絡通信標準
3.1 ZigBee標準概述
3.2 ZigBee技術特點
3.3 ZigBee協議框架
3.4 ZigBee網絡層規範
3.5 ZigBee應用層規範
3.6 ZigBee安全服務規範
第4章 ZigBee開發平颱
4.1 ZigBee硬件開發平颱
4.1.1 CC2530射頻模塊
4.1.2 調試器接口
4.1.3 ZigBee學習闆
4.2 ZigBee軟件開發平颱
4.2.1 IAR簡介
4.2.2 IAR基本操作
第5章 CC2530基礎實驗
5.1 CC2530無綫片上係統概述
5.1.1 CC2530芯片主要特性
5.1.2 CC2530的應用領域
5.1.3 CC2530概述
5.1.4 CC2530芯片引腳的功能
5.1.5 CC2530增強型8051內核簡介
5.2 通用I/O端口
5.2.1 通用I/O端口簡介
5.2.2 通用I/O端口相關寄存器
5.2.3 實驗1:點亮LED
5.2.4 實驗2:按鍵控製LED交替閃爍
5.3 外部中斷
5.3.1 中斷概述
5.3.2 中斷屏蔽
5.3.3 中斷處理
5.3.4 實驗:按鍵中斷控製LED
5.4 定時器
5.4.1 片內外設I/O
5.4.2 定時器簡介
5.4.3 定時器1寄存器
5.4.4 定時器1操作
5.4.5 16位計數器
5.4.6 實驗1:定時器1控製LED閃爍
5.4.7 定時器3概述
5.4.8 實驗2:定時器1和定時器3同時控製LEDI和LED2以不同頻率閃爍
5.5 1602型LCD
5.5.1 1602型LCD簡介
5.5.2 1602型LCD管腳功能
5.5.3 1602型LCD的特性
5.5.4 1602型LCD字符集
5.5.5 1602型LCD基本操作程序
5.5.6 1602型LCD指令集
5.5.7 1602型LCD4綫連接方式
5.5.8 實驗:LCD顯示實驗
……
第6章 常用傳感器
第7章 CC2530實現紅外通信
第8章 Z-Stack協議棧
第9章 智能傢居係統
第10章 智能溫室係統
第11章 學生考勤管理係統
參考文獻
前言/序言
無綫傳感器網絡綜閤瞭傳感器、嵌入式計算、現代網絡及無綫通信和分布式信息處理等技術,能夠通過各類集成化的微型傳感器協同完成對各種環境或監測對象的信息的實時監測、感知和采集,這些信息通過無綫方式被發送,並以自組多跳的網絡方式傳送到用戶終端,從而實現物理世界、計算世界以及人類社會這三元世界的連通。傳統的無綫網絡關心的是如何在保證通信質量的情況下實現最大的數據吞吐率,而無綫傳感器網絡主要用於實現不同環境下各種緩慢變化參數的檢測,通信速率並不是其主要考慮的因素,它最關心的問題是在體積小、布局方便以及能量有限的情況下盡可能地延續目前網絡的生命周期。
ZigBee技術是一種近距離、低復雜度、低功耗、低速率、低成本的雙嚮無綫通信技術。主要用於距離短、功耗低且傳輸速率不高的各種電子設備之間進行數據傳輸以及典型的有周期性數據、間歇性數據和低反應時間數據傳輸的應用。因此非常適用於傢電和小型電子設備的無綫控製指令傳輸。其典型的傳輸數據類型有周期性數據(如傳感器)、間歇性數據(如照明控製)和重復低反應時間數據(如鼠標)。由於其節點體積小,且能自動組網,所以布局十分方便;又因其強調由大量的節點進行群體協作,網絡具有很強的自愈能力,任何一個節點的失效都不會對整體任務的完成造成緻命性影響,所以特彆適閤用來組建無綫傳感器網絡。
用ZigBee技術來實現無綫傳感器網絡,主要需要考慮通信節點的硬件設計,包括傳感數據的獲得及發送,以及實現相應數據處理功能所必需的應用軟件開發。TI(德州儀器公司)的CC2530芯片實現ZigBee技術的優秀解決方案,完全符閤ZigBee技術對節點“體積小、能耗低”的要求,另外,TI還提供瞭Z-Stack協議棧,盡可能地減輕瞭開發者的開發通信程序的工作量,使開發者能專注於實現業務邏輯。
編寫本書的主要目的是從實訓的角度使用CC2530芯片和Z-Stack協議棧來實現無綫傳感器網絡,為讀者解析用ZigBee技術開發無綫傳感器網絡的各個要點,由淺入深地講述如何開發具體的無綫傳感器網絡係統。
* 內容概述
本書分為6個部分:
第1部分包括第1~3章,概述瞭無綫傳感器網絡的基本理論,第1章概述瞭無綫傳感器網絡的主要概念,第2章則主要介紹瞭IEEE 802.15.4無綫傳感器網絡通信標準,第3章則主要介紹瞭ZigBee協議規範基礎理論知識,使讀者對無綫傳感器網絡有整體上的認識。
第2部分包括第4章,講述瞭開發具體項目所依賴的軟硬件平颱。
第3部分包括第5章,基於核心芯片CC2530內部硬件模塊設計瞭若乾個實驗,使讀者熟悉核心芯片CC2530的主要功能。
第4部分包括第6章和第7章,介紹如何使用CC2530控製各種常見的傳感器。第6章講述常用傳感器數字溫濕度傳感器DHT11、光強度傳感器模塊等常見的傳感器操作方法;第7章介紹使用CC2530實現紅外信號的收發操作。
第5部分包括第8章,深入介紹Z-Stack協議棧,使讀者初步掌握Z-Stack的工作機製,講述瞭使用Z-Stack的一些基本概念,講述瞭Z-Stack輪轉查詢式操作係統的工作原理,以及Z-Stack串口機製和綁定機製。
第6部分包括第9~11章,介紹瞭TI-Stack協議棧開發的三個項目,第9章為智能傢居係統,第10章為智能溫室係統,第11章為學生考勤管理係統。
* 相關資源
由於作者水平有限及對無綫傳感網絡和ZigBee技術理解不深,書中難免有錯誤的地方,誠懇地希望讀者批評指正。隨著我們實訓項目的不斷完善,希望為讀者提供更多的相關資料及錯誤修正,也是為瞭給ZigBee技術愛好者和學習者提供一個交流的平颱,我們建設瞭一個專題論壇,網址為www.800dou.com,歡迎讀者訪問。
編者
2014年3月
《嵌入式係統設計與開發:基於ARM Cortex-M的實戰指南》 前言 在當今快速發展的科技時代,嵌入式係統已經滲透到我們生活的方方麵麵,從智能手機、傢用電器到工業自動化、汽車電子,無處不見它們的身影。理解並掌握嵌入式係統的設計與開發,尤其是以ARM Cortex-M係列微控製器為核心的平颱,對於電子工程、計算機科學以及相關領域的專業人士和學習者而言,已成為一項至關重要的技能。 本書旨在為讀者提供一個全麵而深入的學習平颱,幫助他們掌握嵌入式係統設計的核心理念、關鍵技術以及實際開發方法。我們選擇ARM Cortex-M係列微控製器作為重點,是因為其廣泛的應用、強大的性能、優秀的功耗錶現以及豐富的生態係統,使其成為當前嵌入式領域最主流和最具代錶性的平颱之一。通過本書的學習,讀者不僅能理解嵌入式係統的基本原理,更能動手實踐,將理論知識轉化為實際應用,解決現實世界中的工程問題。 本書內容涵蓋瞭從基礎的微控製器硬件原理,到高級的實時操作係統應用,再到復雜的嵌入式係統集成與優化。我們力求內容嚴謹、條理清晰,並通過大量的實例和實訓項目,引導讀者一步步構建屬於自己的嵌入式係統。本書的目標是使讀者在完成學習後,能夠獨立進行嵌入式産品的概念設計、原型開發、軟件編寫、硬件調試以及最終的産品優化,為他們未來的學習和職業發展打下堅實的基礎。 第一篇 深入理解ARM Cortex-M微控製器 第一章 嵌入式係統概覽與ARM Cortex-M架構 1.1 什麼是嵌入式係統? 嵌入式係統的定義、特點與應用領域(消費電子、工業控製、通信設備、醫療儀器、汽車電子、物聯網等)。 嵌入式係統的組成(硬件、軟件、係統)。 嵌入式係統設計中的關鍵挑戰(功耗、成本、性能、實時性、可靠性、安全性)。 嵌入式係統開發流程概述。 1.2 ARM處理器傢族與Cortex-M係列 ARM處理器發展曆程與演進。 ARM處理器不同架構(Cortex-A, Cortex-R, Cortex-M)的定位與區彆。 ARM Cortex-M係列的優勢:低功耗、高性能、高集成度、低成本、實時性。 Cortex-M係列主要型號介紹(Cortex-M0, M0+, M3, M4, M7, M33等)及其主要特性和適用場景。 Cortex-M係列微控製器(MCU)的核心特性:Thumb指令集、流水綫、中斷控製器(NVIC)、調試接口(SWD/JTAG)。 1.3 Cortex-M處理器內部結構與工作原理 ARMv7-M/ARMv8-M架構核心組件:CPU核、內存係統(SRAM, Flash)、總綫接口(AHB, APB)。 CPU核心:指令解碼、執行單元、寄存器文件。 內存管理單元(MMU)或內存保護單元(MPU)的概念與作用。 中斷與異常處理機製:嚮量錶、NVIC(Nested Vectored Interrupt Controller)詳解、中斷優先級、中斷嵌套、中斷服務程序(ISR)的編寫與管理。 低功耗模式:Sleep Mode, Deep Sleep Mode 等。 時鍾係統與復位機製。 第二章 嵌入式硬件基礎與開發環境搭建 2.1 微控製器(MCU)硬件基礎 MCU的核心組件:CPU、存儲器(Flash, SRAM)、外圍接口(GPIO, UART, SPI, I2C, ADC, DAC, Timer, PWM等)。 GPIO(General Purpose Input/Output)詳解:輸入輸齣模式、上拉/下拉電阻、開漏輸齣。 通信接口詳解: UART/USART(Universal Asynchronous Receiver/Transmitter):波特率、數據位、停止位、校驗位,異步通信原理。 SPI(Serial Peripheral Interface):主從模式、時鍾極性(CPOL)、時鍾相位(CPHA)。 I2C(Inter-Integrated Circuit):主從模式、地址機製、SDA/SCL綫。 ADC(Analog-to-Digital Converter):采樣率、分辨率、轉換原理。 Timer/Counter:定時、計數、脈衝測量、PWM(Pulse Width Modulation)生成。 PWM(Pulse Width Modulation)原理及其在電機控製、LED亮度調節中的應用。 2.2 嵌入式開發工具鏈 集成開發環境(IDE):Keil MDK, IAR Embedded Workbench, STM32CubeIDE, PlatformIO等。 編譯器(Compiler):GCC, Clang 等。 匯編器(Assembler)。 鏈接器(Linker)與鏈接腳本(Linker Script)的作用。 調試器(Debugger)與調試接口(JTAG, SWD)的工作原理。 固件下載工具(ST-Link, J-Link, CMSIS-DAP等)。 2.3 實訓項目:點亮LED與基礎GPIO控製 選擇一款主流的Cortex-M係列開發闆(例如STM32係列、NXP LPC係列)。 硬件連接與原理圖分析。 使用IDE新建項目,配置時鍾、GPIO。 編寫C語言程序實現LED的閃爍(延時函數實現、定時器實現)。 編寫C語言程序實現按鍵的輸入檢測與LED的聯動控製。 理解中斷驅動的按鍵輸入。 第二篇 嵌入式軟件設計與編程 第三章 C語言在嵌入式開發中的實踐 3.1 C語言基礎迴顧與嵌入式開發特點 變量類型、數據結構、運算符、控製流(if, for, while, switch)。 函數、指針、數組、字符串。 結構體(struct)、聯閤體(union)、枚舉(enum)。 宏定義(define)與條件編譯(ifdef, ifndef, else, endif)。 嵌入式C語言的特殊性:位操作、直接硬件訪問、內存地址操作、常量與變量的存儲位置(FLASH, SRAM)。 3.2 嵌入式C語言編程技巧與陷阱 指針的深入應用:傳遞地址、多級指針。 結構體與聯閤體在硬件寄存器映射中的應用。 位域(Bit Field)的使用。 內存管理:棧(Stack)與堆(Heap)的概念,嵌入式係統中靜態分配與動態分配。 易犯錯誤分析:野指針、內存泄漏、棧溢齣、數組越界。 3.3 實訓項目:UART通信與上位機交互 配置MCU的UART外設,設置波特率、數據格式。 編寫程序實現MCU嚮PC發送字符串(例如“Hello, Embedded!”)。 編寫程序實現MCU接收PC發送的指令,並根據指令控製LED狀態。 使用串口調試助手(如SSCOM, PuTTY)進行聯調。 實現簡單的命令解析。 第四章 驅動程序設計與HAL庫的使用 4.1 硬件抽象層(HAL)庫的概念與優勢 HAL庫的作用:屏蔽底層硬件細節,提供統一的API接口,提高代碼的可移植性。 主流MCU廠商提供的HAL庫(如STM32 HAL庫, NXP MCUXpresso SDK)。 HAL庫的基本組成:外設驅動、係統服務、中間件。 4.2 常用外設驅動程序的設計與實現 GPIO驅動:初始化、讀寫狀態、配置模式。 UART驅動:發送、接收、中斷接收。 SPI/I2C驅動:主/從模式初始化、數據收發。 Timer/PWM驅動:定時器配置、PWM輸齣配置與控製。 ADC驅動:通道選擇、轉換模式、數據讀取。 4.3 實訓項目:利用HAL庫實現SPI通信與傳感器數據采集 選擇一款SPI接口的傳感器(如溫度傳感器、加速度傳感器)。 查閱傳感器數據手冊,理解其SPI通信協議。 使用HAL庫初始化SPI外設。 編寫SPI通信函數,實現與傳感器的握手和數據讀取。 將采集到的傳感器數據通過UART發送到PC。 深入理解HAL庫提供的API函數及其參數。 第三篇 嵌入式實時操作係統(RTOS)與高級應用 第五章 實時操作係統(RTOS)基礎與概念 5.1 什麼是RTOS? RTOS的定義、特點與必要性。 RTOS在嵌入式係統中的作用:任務管理、資源調度、同步與通信。 硬實時與軟實時的區彆。 RTOS的常見功能模塊:任務、信號量、互斥鎖、隊列、事件標誌組、消息隊列、定時器。 5.2 任務管理與調度 任務(Task)的概念:就緒態、運行態、阻塞態、掛起態。 任務的創建、刪除、掛起、恢復。 調度算法:固定優先級調度、輪轉調度、多優先級調度。 上下文切換(Context Switching)的原理與開銷。 5.3 任務間同步與通信 臨界段(Critical Section)的概念與保護。 中斷與多任務的交互。 信號量(Semaphore):二值信號量、計數信號量,用於資源共享與同步。 互斥鎖(Mutex):用於獨占訪問共享資源,解決優先級翻轉問題。 隊列(Queue):用於任務間傳遞數據,支持先進先齣(FIFO)。 事件標誌組(Event Flags):用於任務間的事件同步。 消息隊列(Message Queue):比隊列更靈活的數據傳遞方式。 5.4 RTOS的常見模型與選擇 FreeRTOS:廣泛應用、資源豐富、易於移植。 RT-Thread:國産RTOS,功能強大,生態完善。 uC/OS-III:可靠性高,曾廣泛應用於中高端嵌入式係統。 選擇RTOS時需要考慮的因素:資源占用、功能需求、生態支持、許可協議。 第六章 FreeRTOS實戰應用 6.1 FreeRTOS核心API詳解 任務管理API:`xTaskCreate`, `vTaskDelete`, `vTaskDelay`, `vTaskSuspend`, `vTaskResume`。 信號量API:`xSemaphoreCreateBinary`, `xSemaphoreGive`, `xSemaphoreTake`, `xSemaphoreCreateCounting`, `xSemaphoreGiveCounting`, `xSemaphoreTakeCounting`。 互斥鎖API:`xSemaphoreCreateMutex`, `xSemaphoreGiveMutex`, `xSemaphoreTakeMutex`。 隊列API:`xQueueCreate`, `xQueueSend`, `xQueueReceive`, `xQueueSendFromISR`, `xQueueReceiveFromISR`。 任務通知(Task Notifications)的應用。 6.2 實訓項目:多任務並發控製與數據共享 創建兩個或多個任務,例如一個LED閃爍任務、一個按鍵檢測任務、一個數據處理任務。 使用FreeRTOS的延時函數實現任務的周期性執行。 使用信號量或互斥鎖實現任務對共享資源(如LED、按鍵)的互斥訪問。 使用隊列實現任務間數據的傳遞,例如按鍵任務將按鍵狀態傳遞給數據處理任務。 分析任務執行的優先級與調度過程。 6.3 實訓項目:使用FreeRTOS實現簡易通信協議棧 設計一個簡單的基於UART的通信協議,用於MCU之間或MCU與PC之間的數據交互。 使用FreeRTOS的任務和隊列,分彆實現數據的發送和接收。 處理通信中的校驗、幀同步等問題。 考慮使用FreeRTOS的定時器實現超時重傳機製。 第四篇 嵌入式係統設計與優化 第七章 嵌入式係統通信協議與網絡 7.1 嵌入式係統中的常見通信協議 串口通信:UART、RS232、RS485。 總綫通信:SPI、I2C。 無綫通信: 藍牙(Bluetooth):經典藍牙、低功耗藍牙(BLE)。 Wi-Fi:嵌入式Wi-Fi模塊(如ESP8266, ESP32)。 LPWAN(Low-Power Wide-Area Network):LoRa、NB-IoT。 (注意:本書不包含ZigBee內容,但可以介紹其他無綫技術作為對比和擴展。) 工業通信協議:CAN總綫、Ethernet/IP、Modbus。 7.2 TCP/IP協議棧在嵌入式係統中的應用 TCP/IP協議棧的基本概念:IP地址、端口號、TCP、UDP。 嵌入式TCP/IP協議棧的實現(如LwIP)。 HTTP、MQTT等應用層協議在嵌入式設備上的實現。 Socket編程基礎。 7.3 實訓項目:使用ESP32模塊實現Wi-Fi連接與數據上傳 選擇一款集成Wi-Fi功能的ESP32開發闆。 學習ESP32的AT指令集或SDK。 配置ESP32連接Wi-Fi熱點。 使用HTTP協議將采集到的傳感器數據上傳到雲服務器(如ThingSpeak, MQTT服務器)。 或者,實現ESP32作為Web服務器,提供一個簡單的網頁供用戶訪問和控製。 第八章 嵌入式係統調試、測試與優化 8.1 嵌入式係統調試技術 使用IDE集成的調試器(JTAG/SWD):斷點設置、單步執行、觀察變量、內存查看。 打印調試(Printf Debugging):利用UART輸齣調試信息。 邏輯分析儀(Logic Analyzer)與示波器(Oscilloscope)在硬件調試中的應用。 在綫仿真(In-Circuit Emulator, ICE)與實時操作係統下的調試。 調試常見問題:程序跑飛、死鎖、內存訪問衝突。 8.2 嵌入式係統測試方法 單元測試:對單個函數或模塊進行測試。 集成測試:測試多個模塊協同工作。 係統測試:測試整個係統是否滿足需求。 灰盒測試與黑盒測試。 自動化測試工具介紹。 8.3 嵌入式係統性能優化 代碼優化:算法優化、循環優化、編譯器優化選項。 內存優化:減少內存占用、閤理使用數據結構。 功耗優化:關閉不使用的外設、使用低功耗模式、優化時鍾。 實時性優化:減少中斷響應時間、優化任務調度。 代碼重構與可維護性。 8.4 實訓項目:係統性能分析與功耗優化 使用性能分析工具(如IDE的性能分析器、RTOS提供的任務執行時間統計)分析程序的瓶頸。 通過代碼修改或算法調整,提升程序的執行效率。 嘗試實現不同功耗模式的切換,測量不同模式下的電流消耗。 優化程序邏輯,減少不必要的CPU占用,從而降低功耗。 第九章 嵌入式係統項目綜閤實戰 9.1 項目需求分析與係統設計 如何從需求齣發,進行係統功能分解。 軟硬件協同設計的重要性。 選擇閤適的微控製器和外圍設備。 係統架構設計:模塊化、分層化。 9.2 實訓項目:智能傢居節點設計(例如溫濕度監測與控製) 硬件設計: 選擇一款Cortex-M係列的MCU。 集成溫濕度傳感器(如DHT11/DHT22,使用單總綫通信,或I2C/SPI接口的傳感器)。 集成一個執行器,例如控製繼電器或LED指示燈。 (可選)集成一個無綫通信模塊,例如ESP32實現Wi-Fi連接,或者一個藍牙模塊。 軟件設計: 使用HAL庫驅動溫濕度傳感器和執行器。 (若使用RTOS)實現多任務,一個任務負責傳感器數據采集,一個任務負責執行器控製,一個任務負責無綫通信。 實現簡單的數據上報功能,將溫濕度數據通過無綫傳輸到PC或雲平颱。 實現遠程控製功能,通過無綫指令控製執行器。 調試與測試: 完成所有模塊的集成調試。 進行係統功能測試。 9.3 實訓項目:基於嵌入式Web服務器的設備監控 選擇一款支持TCP/IP協議棧的MCU(例如STM32F4係列配閤LwIP,或ESP32)。 開發一個簡單的Web服務器,能夠提供一個網頁。 網頁能夠實時顯示MCU連接的傳感器數據(例如ADC采集的電壓值)。 網頁提供簡單的控製按鈕,能夠控製MCU的GPIO輸齣(例如點亮/熄滅LED)。 學習HTML、CSS、JavaScript等前端基礎知識,用於構建Web界麵。 附錄 ARM Cortex-M係列指令集簡介。 常用嵌入式開發術語錶。 開發闆選型參考。 結語 本書通過理論講解與大量實戰項目相結閤的方式,力圖為讀者構建一個紮實的嵌入式係統設計與開發基礎。掌握ARM Cortex-M係列微控製器及其開發流程,將為您在物聯網、工業自動化、智能硬件等領域開啓更廣闊的職業道路。願本書成為您學習旅程中的寶貴夥伴,祝您在嵌入式開發的道路上不斷探索,取得豐碩的成果!