嵌入式SoC系統(tǒng)開發(fā)與工程實例(內(nèi)附光盤1張)
定 價:49 元
- 作者:包海濤 著
- 出版時間:2009/1/1
- ISBN:9787811244601
- 出 版 社:北京航空航天大學出版社
- 中圖法分類:TP368.1
- 頁碼:434
- 紙張:膠版紙
- 版次:1
- 開本:16開
本書以C8051F41x為例介紹SoC單片機內(nèi)核的一些共性問題,同時也突出其自身所具有的特點,如更高的指令執(zhí)行速度,低功耗,相對于其他C8051系列,具有新型外設的集成,低廉的價格,豐富外設的合理規(guī)劃與布局。作者在介紹每一種外設時均給出了應用代碼,使讀者可盡快掌握并應用該模塊。
本書言簡意賅地介紹了μC/OS-Ⅱ的核心和常用模塊,并以C8051F41x為平臺,結(jié)合作者的項目實際,給出了工程應用實例,其中許多實例經(jīng)過科研與生產(chǎn)實踐檢驗,有較高參考價值,可幫助讀者更好地應用此單片機,縮短學習與應用的距離。本書所有的實例和調(diào)試代碼均采用C語言編程,以增強程序代碼的可讀性和移植性。
本書可供使用C8051F系列單片機進行產(chǎn)品硬件和軟件設計開發(fā)的工程技術人員參考,部分內(nèi)容對其他類型單片機的開發(fā)也具有一定的參考借鑒價值。
《嵌入式SoC系統(tǒng)開發(fā)與工程實例》可供使用C8051F系列單片機進行產(chǎn)品硬件和軟件設計開發(fā)的工程技術人員參考,部分內(nèi)容對其他類型單片機的開發(fā)也具有一定的參考借鑒價值。
微處理器在社會發(fā)展中扮演著非同尋常的角色,幾乎滲透到了各行各業(yè)。經(jīng)過不斷的發(fā)展與創(chuàng)新,單片機大致可分為4位、8位、16位和32位。其中32位系列是最近幾年才發(fā)展起來的新系列,大有后來居上的態(tài)勢,多用于信息量較大但運算負擔又不太重的設備上(如掌上設備等)。16位單片機越來越邊緣化,曾經(jīng)輝煌一時的MCS96也不可避免地走向衰落,現(xiàn)在這一系列品種較少,影響較大的有MSP430。但它所處的位置很尷尬,主要用于運算量小,且控制要求不是很復雜的中低端場合,這種場合使用4位或8位機也可很好地實現(xiàn),而且更具性價比優(yōu)勢。在中高端應用場合,其性能又無法和32位機相比,目前其價格優(yōu)勢也不明顯。應該說在低端的控制領域,8位機仍是主力軍,筆者斷言這種趨勢短時期不會改變。8位機在我國的普及程度最高的非51莫屬,盡管相對于其他種類8位機并沒有絕對的技術優(yōu)勢,甚至還有劣勢,但認同是硬道理,君不見應用者數(shù)以億計,資料浩如煙海。也正是如此,各家公司開發(fā)的許多產(chǎn)品都是基于51內(nèi)核的;51內(nèi)核的系列單片機處在不斷改進的過程之中,這是因為芯片設計技術在發(fā)展,如果不對缺陷進行改造,就等于坐以待斃。8位單片機在CPU結(jié)構(gòu)、外圍模塊及總線和集成開發(fā)環(huán)境等各個方面,都發(fā)生了巨大變化。單片機的設計也已經(jīng)從積木擴展模式跨入了集成度、可靠性、性價比都非常高的片上系統(tǒng)SoC時代。
傳統(tǒng)的51單片機有111條指令,豐富的指令可以認為是它的一個優(yōu)點,但筆者認為這恰好也是它的一大缺陷,眾多的指令在增加靈活性的同時也給程序執(zhí)行帶來了低效性。針對這一特點出現(xiàn)了AVR精簡指令單片機,盡管性能獲得了飛速提升,但也帶來了如兼容性這樣的大問題,這是一種對傳統(tǒng)51單片機的割裂,同時也是對應用者的一種拋棄。
C8051F系列單片機的問世可以說是51單片機應用者的福音。該系列單片機保留了所有51單片機的指令與8052的所有資源,此舉意味著對傳統(tǒng)51單片機的最大兼容,用戶要注意的只是速度與時序的匹配。同時為了提高速度與性能,把原51單片機內(nèi)核改造為功能更強大的CIP51內(nèi)核。該內(nèi)核以流水線方式處理指令,廢除了原51單片機中的機器周期,由原來12個時鐘執(zhí)行一條指令改進為一個時鐘執(zhí)行一條單周期指令,大多數(shù)指令執(zhí)行所需的時鐘周期數(shù)與指令的字節(jié)數(shù)相同,這使得C8051F單片機的運行速度和性能大大提高,平均速度約為同頻51單片機的10倍。同時為改變原51系統(tǒng)單片機外圍模塊單一,復雜系統(tǒng)必須擴展的缺陷,片內(nèi)擴展了豐富的外設,如FLASH、XRAM、A/D、D/A、溫度傳感器,有的還擴展了智能時鐘和CRC引擎等。用戶不需要考慮太多的擴展就可以使單片完成設計任務成為可能。同時,它的編譯環(huán)境得到了KEIL C的支持,使得開發(fā)過程并沒有改變,能夠很好地適應過去51開發(fā)的方法和習慣。片內(nèi)集成了高頻振蕩源,并具備了多級分頻系統(tǒng)以滿足各種個性化的需求。強大的非侵入式JTAG/C2調(diào)試手段,是傳統(tǒng)仿真器式調(diào)試模式所不能比擬的,可使內(nèi)核和全部資源完全透明化和可操作化,可以方便地完成下載和硬件仿真,且不占用片內(nèi)資源。C2接口通過共享技術達到I/O口0占用。豐富的接口除了SMBus/I2C、SPI、UART這些必備的接口外,有的產(chǎn)品還支持CAN、USB、LIN等,給應用者帶來了方便。晶振以及片上溫度傳感器等外設集合為一體。增加了交叉開關,可靈活地將片內(nèi)資源分配到I/O端口,此舉可讓應用者更方便地應用外設,對系統(tǒng)的總體規(guī)劃非常有益。3.3 V的供電模式,內(nèi)核的低電壓使系統(tǒng)功耗進一步降低。學習和掌握如此高性價比的產(chǎn)品,必將給開發(fā)工作帶來非常大的方便。
本書所論述的C8051F410是一款小體積的產(chǎn)品,除具有C8051的自身優(yōu)點外還包括了一些自身的特點。比如: 芯片上除了P0~~P2,還包括溫度傳感器和電源,27個I/O端均可以被編程為A/D的輸入端,A/D的數(shù)據(jù)最多16次累加功能可提高數(shù)據(jù)的處理能力。片內(nèi)獨有的47位智能時鐘可以單片實現(xiàn)一些無人值守任務。片內(nèi)2 KB XRAM內(nèi)存可以作為數(shù)據(jù)緩沖區(qū),并可實現(xiàn)循環(huán)存儲的功能。還有許多的特點這里不一一例舉,就請讀者在閱讀本書過程中慢慢體會。
作者對每種外設均給出了應用代碼,所有的程序均調(diào)試通過,讀者可以放心引用。同時作者還結(jié)合自己的項目經(jīng)歷,給出了一些典型應用的源代碼。所有代碼見隨書光盤。
作者在本書的編寫過程中得到了院領導大力支持,同時得到了大連理工大學數(shù)字化研究所所長王德倫教授的支持和幫助,在這里一并表示由衷的感謝。
參與本書編寫的人員還有大連理工大學數(shù)字化研究所的各位同仁,他們是朱林劍、孫守林、毛范海、董慧敏、馬雅麗、高媛、梁豐、陳慶紅、楊光輝、錢鋒、姜立學、陳觀慈等。
另外, 韓素英、包明周、武麗敏、包初勝、尹云、王皓、劉建偉等人完成了部分資料搜集以及部分章節(jié)的文字校對工作。在此對他們的支持、幫助表示感謝。
最后,還要感謝我的妻子、女兒以及父母多年來對我的支持。
感謝新華龍電子有限公司在資料技術方面的大力支持。
我是拿出了100%的責任感來完成此書的,但限于本人的水平,肯定還存在一些缺陷,非常希望閱讀此書的讀者能批評指正。
有興趣的讀者可以發(fā)送郵件到: soc_reader@yahoo.com.cn,與作者進一步交流;也可發(fā)送郵件到: buaafy@sina.com,與本書策劃編輯進行交流。
第1章 片上系統(tǒng)內(nèi)核與功能總匯
1.1 與MCS51的兼容性與差異性
1.2 內(nèi)核功能的擴展
1.3 存儲空間的映射
1.4 擴展的中斷系統(tǒng)
1.4.1 中斷源和中斷向量
1.4.2 中斷的優(yōu)先級與響應時間
1.4.3 外部中斷源
1.4.4 中斷控制寄存器
1.5 內(nèi)核指令集說明
1.6 內(nèi)核的工作狀態(tài)
1.6.1 內(nèi)核的幾種工作模式
1.6.2 工作狀態(tài)的設置與特點
1.7 特殊功能寄存器
1.7.1 特殊功能寄存器的分布
1.7.2 特殊功能寄存器的定義
1.8 流水線式指令預取引擎
1.9 片內(nèi)可編程穩(wěn)壓器
1.10 SoC的仿真與調(diào)試
1.10.1 內(nèi)置的C2仿真接口
1.10.2 C2引腳共享
1.11 芯片引腳定義及電氣參數(shù)
1.11.1 總體直流電氣特性
1.11.2 引腳和定義
第2章 可編程輸入/輸出端口與外設資源匹配
2.1 I/O口優(yōu)先權(quán)交叉開關譯碼器原理
2.2 外設資源初始化配置
2.3 通用端口I/O初始化設置
2.4 I/O匹配應用實例
第3章 多通道12位模/數(shù)轉(zhuǎn)換器(ADC0)
3.1 多路模擬開關選擇器與片內(nèi)溫度傳感器
3.2 A/D的配置
3.2.1 轉(zhuǎn)換啟動方式
3.2.2 A/D跟蹤與工作方式
3.2.3 A/D的時序要求
3.2.4 輸出轉(zhuǎn)換碼
3.2.5 建立時間的要求
3.3 可編程窗口檢測器
3.4 寄存器的定義與設置
3.5 ADC0的電氣參數(shù)
3.6 A/D轉(zhuǎn)換器應用實例
3.6.1 A/D定時采樣實例
3.6.2 硬件數(shù)據(jù)累加器使用實例
3.6.3 芯片工作環(huán)境監(jiān)測
3.6.4 CPU無擾門限比較
第4章 可疊加或獨立的12 位電流模式DAC
4.1 D/A轉(zhuǎn)換寄存器
4.1.1 D/A寄存器說明
4.1.2 IDAC輸出字格式
4.2 D/A轉(zhuǎn)換的輸出方式選擇
4.2.1 程控立即更新模式
4.2.2 定時器時控輸出更新模式
4.2.3 外部觸發(fā)信號邊沿的輸出更新模式
4.3 D/A轉(zhuǎn)換的應用設置與電氣參數(shù)
4.4 D/A轉(zhuǎn)換的應用實例
4.4.1 D/A的調(diào)試與程控立即更新模式應用
4.4.2 DAC定時器模式應用
4.4.3 可編程正弦波發(fā)生
第5章 片內(nèi)可編程電壓基準與片內(nèi)比較器
5.1 片內(nèi)電壓基準
5.1.1 片內(nèi)電壓基準結(jié)構(gòu)原理
5.1.2 片內(nèi)電壓基準控制寄存器與電氣參數(shù)
5.2 比較器
5.2.1 比較器的結(jié)構(gòu)與原理
5.2.2 比較器相關寄存器設置與使用
第6章 循環(huán)冗余檢查單元
6.1 CRC結(jié)構(gòu)功能
6.1.1 CRC寄存器
6.1.2 執(zhí)行CRC計算107 6.1.3 訪問CRC結(jié)果
6.2 CRC的位序反轉(zhuǎn)功能
6.3 CRC模塊功能應用實例
第7章 SoC復位源
7.1 上電復位
7.2 掉電復位和VDD監(jiān)視器
7.3 外部復位
7.4 時鐘丟失檢測器復位
7.5 比較器0復位
7.6 PCA看門狗定時器復位
7.7 FLASH錯誤復位
7.8 智能時鐘復位
7.9 軟件復位
7.10 軟件復位操作實例
第8章 FLASH存儲單元
8.1 FLASH存儲單元的編程
8.1.1 FLASH編程鎖定和關鍵字設置
8.1.2 FLASH擦寫的操作
8.2 FLASH數(shù)據(jù)的安全保護
8.3 FLASH可靠寫和擦除的幾點要求
8.4 FLASH讀定時設置與應用
8.5 非易失性數(shù)據(jù)存儲程序示例
第9章 振蕩器
9.1 可編程內(nèi)部振蕩器設置與使用
9.2 外部振蕩器的配置與使用
9.2.1 外部晶體模式
9.2.2 外部RC模式
9.2.3 外部電容模式
9.2.4 外部振蕩器作為定時器時鐘
9.3 時鐘乘法器
9.4 系統(tǒng)時鐘的選擇
第10章 智能實時時鐘
10.1 智能時鐘的全局接口寄存器
10.1.1 智能時鐘的接口寄存器定義
10.1.2 智能時鐘鎖定和解鎖
10.2 智能時鐘的內(nèi)部寄存器
10.2.1 使用接口寄存器間接訪問智能時鐘的內(nèi)部寄存器
10.2.2 接口寄存器的數(shù)據(jù)自動讀地址自增功能與設置
10.3 智能時鐘的時鐘源選擇
10.3.1 使用標準鐘表振蕩器的晶體方式
10.3.2 無片外振蕩器的自振蕩方式
10.3.3 振蕩器時鐘丟失的檢測
10.4 智能時鐘定時和報警功能
10.4.1 定時器值的設置和訪問
10.4.2 報警門限值的設置
10.5 后備電源穩(wěn)壓器和后備RAM
10.6 智能時鐘的應用實例
10.6.1 智能時鐘定時應用
10.6.2 智能時鐘后備RAM的數(shù)據(jù)存取示例
第11章 SMBus總線
11.1 SMBus配置與外設擴展
11.2 SMBus的通信概述
11.2.1 總線仲裁
11.2.2 總線時序
11.2.3 總線狀態(tài)
11.3 SMBus寄存器的定義與配置
11.3.1 SMBus初始配置寄存器
11.3.2 SMBus狀態(tài)控制寄存器
11.3.3 SMBus數(shù)據(jù)收/發(fā)寄存器
11.4 SMBus工作方式選擇
11.4.1 主發(fā)送方式
11.4.2 主接收方式
11.4.3 從接收方式
11.4.4 從發(fā)送方式
11.5 SMBus狀態(tài)譯碼
11.6 SMBus總線擴展應用實例
11.6.1 以主發(fā)送器方式擴展ZLG7290的應用實例
11.6.2 利用SMBus擴展24C
11.6.3 利用SMBus總線進行雙機通信
第12章 同步/異步串口UART
12.1 增強的波特率發(fā)生器
12.2 串行通信工作方式選擇
12.2.1 8位通信模式
12.2.2 9位通信模式
12.3 多機通信
12.4 串行通信相關寄存器說明
12.5 串口UART0實例
12.5.1 片上系統(tǒng)串口自環(huán)調(diào)試實例
12.5.2 上下位機點對點通信示例
第13章 增強型全雙工同步串行外設接口
13.1 SPI0的信號定義
13.2 SPI0主工作方式
13.3 SPI0從工作方式
13.4 SPI0中斷源說明
13.5 串行時鐘時序
13.6 SPI特殊功能寄存器
13.7 SPI主工作方式下擴展74HC595 LED顯示實例
第14章 定時器
14.1 定時器0和定時器
14.1.1 定時器0/1的工作方式0、
14.1.2 定時器0/1的工作方式
14.1.3 定時器0/1的工作方式
14.1.4 定時器0/1的相關寄存器
14.2 定時器
14.2.1 定時器2的16位自動重裝載方式
14.2.2 定時器2的8位自動重裝載方式
14.2.3 外部/智能時鐘捕捉方式
14.2.4 定時器2的相關寄存器
14.3 定時器
14.3.1 16位自動重裝載方式
14.3.2 8位自動重裝載定時器方式
14.3.3 外部/智能時鐘捕捉方式
14.3.4 定時器3的相關寄存器
14.4 智能時鐘振蕩頻率捕捉應用實例
第15章 可編程計數(shù)器陣列
15.1 PCA計數(shù)器/定時器
15.2 PCA的捕捉/比較模塊
15.2.1 PCA邊沿觸發(fā)的捕捉方式
15.2.2 PCA軟件定時器方式
15.2.3 PCA高速輸出方式
15.2.4 PCA頻率輸出方式
15.2.5 8位脈寬調(diào)制器方式
15.2.6 16位脈寬調(diào)制器方式
15.3 看門狗定時器方式
15.3.1 看門狗定時器操作
15.3.2 看門狗定時器的配置與使用272 15.4 PCA寄存器說明
15.5 PCA應用實例
15.5.1 方波發(fā)生輸出
15.5.2 8位PWM發(fā)生
15.5.3 16位PWM發(fā)生
15.5.4 頻率捕獲功能應用
第16章 嵌入式操作系統(tǒng)
16.1 嵌入式操作系統(tǒng)的定義
16.2 嵌入式實時操作系統(tǒng)的功能
16.3 幾種常用的操作系統(tǒng)
16.4 可移植與51系列的操作系統(tǒng)
16.4.1 RTX51實時操作系統(tǒng)
16.4.2 嵌入式實時操作系統(tǒng)μC/OSⅡ
16.5 μC/OS Ⅱ功能概述
16.5.1 任務類操作函數(shù)
16.5.2 時間類函數(shù)
16.5.3 信號類函數(shù)
16.5.4 信箱類函數(shù)
16.6 基于μC/OSⅡ的串口測溫應用實例
第17章 SoC應用設計經(jīng)驗點滴
17.1 SoC選型問題
17.2 SoC系統(tǒng)設計的幾點建議
第18章 應用設計實例
18.1 LCD模塊與片上系統(tǒng)接口應用實例
18.1.1 ST7565功能介紹
18.1.2 基于ST7565的模塊與處理器接口
18.1.3 ST7565的模塊與片上系統(tǒng)接口實例程序
18.2 FFT變換與譜分析
18.2.1 快速傅里葉變換(FFT)算法的原理
18.2.2 利用FFT進行頻譜分析
18.2.3 FFT算法在片上系統(tǒng)上的實現(xiàn)
18.2.4 結(jié)果與思考
18.3 低頻自定義信號發(fā)生器
18.3.1 系統(tǒng)功能概述
18.3.2 系統(tǒng)結(jié)構(gòu)與原理
18.3.3 系統(tǒng)軟件設計
18.3.4 結(jié)果
18.4 低成本無人值守數(shù)據(jù)采集器
18.4.1 數(shù)據(jù)采集功能概述
18.4.2 基于C8051F410的采集系統(tǒng)
18.4.3 系統(tǒng)軟件部分
18.4.4 總結(jié)與思考
18.5 智能水壓力發(fā)生器
18.5.1 背景
18.5.2 主控芯片在系統(tǒng)編程
18.5.3 在系統(tǒng)編程功能寄存器說明
18.5.4 系統(tǒng)編程的實現(xiàn)過程
18.5.5 智能水壓力發(fā)生器的開發(fā)設計
參考文獻