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