圖書簡介
本書以C8051F41x為例介紹SoC單片機核心的一些共性問題,同時也突出其自身所具有的特點,如更高的指令執行速度,低功耗,相對於其他C8051系列,具有新型外設的集成,低廉的價格,豐富外設的合理規劃與布局。作者在介紹每一種外設時均給出了套用代碼,使讀者可儘快掌握並套用該模組。本書言簡意賅地介紹了μC/OSII的核心和常用模組,並以C8051F41x為平台,結合作者的項目實際,給出了工程套用實例,其中許多實例經過科研與生產實踐檢驗,有較高參考價值,可幫助讀者更好地套用此單片機,縮短學習與套用的距離。本書所有的實例和調試代碼均採用C語言編程,以增強程式代碼的可讀性和移植性。
本書可供使用C8051F系列單片機進行產品硬體和軟體設計開發的工程技術人員參考,部分內容對其他類型單片機的開發也具有一定的參考借鑑價值。
圖書目錄
第1章片上系統核心與功能總匯1.1與MCS51的兼容性與差異性2
1.2核心功能的擴展2
1.3存儲空間的映射3
1.4擴展的中斷系統4
1.4.1中斷源和中斷向量5
1.4.2中斷的優先權與回響時間6
1.4.3外部中斷源7
1.4.4中斷控制暫存器7
1.5核心指令集說明12
1.6核心的工作狀態17
1.6.1核心的幾種工作模式17
1.6.2工作狀態的設定與特點17
1.7特殊功能暫存器19
1.7.1特殊功能暫存器的分布19
1.7.2特殊功能暫存器的定義20
1.8流水線式指令預取引擎23
1.9片內可程式穩壓器23
1.10SoC的仿真與調試25
1.10.1內置的C2仿真接口26
1.10.2C2引腳共享27
1.11晶片引腳定義及電氣參數28
1.11.1總體直流電氣特性28
1.11.2引腳和定義30
第2章可程式輸入/輸出連線埠與外設資源匹配
2.1I/O口優先權交叉開關解碼器原理34
2.2外設資源初始化配置36
2.3通用連線埠I/O初始化設定39
2.4I/O匹配套用實例44
第3章多通道12位模/數轉換器(ADC0)
3.1多路模擬開關選擇器與片內溫度感測器48
3.2A/D的配置49
3.2.1轉換啟動方式49
3.2.2A/D跟蹤與工作方式50
3.2.3A/D的時序要求51
3.2.4輸出轉換碼53
3.2.5建立時間的要求53
3.3可程式視窗檢測器54
3.4暫存器的定義與設定55
3.5ADC0的電氣參數59
3.6A/D轉換器套用實例61
3.6.1A/D定時採樣實例62
3.6.2硬體數據累加器使用實例66
3.6.3晶片工作環境監測70
3.6.4CPU無擾門限比較74
第4章可疊加或獨立的12位電流模式DAC
4.1D/A轉換暫存器79
4.1.1D/A暫存器說明79
4.1.2IDAC輸出字格式81
4.2D/A轉換的輸出方式選擇82
4.2.1程控立即更新模式82
4.2.2定時器時控輸出更新模式82
4.2.3外部觸發信號邊沿的輸出更新模式83
4.3D/A轉換的套用設定與電氣參數83
4.4D/A轉換的套用實例84
4.4.1D/A的調試與程控立即更新模式套用84
4.4.2DAC定時器模式套用87
4.4.3可程式正弦波發生90
第5章片內可程式電壓基準與片內比較器
5.1片內電壓基準95
5.1.1片內電壓基準結構原理95
5.1.2片內電壓基準控制暫存器與電氣參數96
5.2比較器97
5.2.1比較器的結構與原理97
5.2.2比較器相關暫存器設定與使用100
第6章循環冗餘檢查單元
6.1CRC結構功能105
6.1.1CRC暫存器106
6.1.2執行CRC計算1076.1.3訪問CRC結果107
6.2CRC的位序反轉功能108
6.3CRC模組功能套用實例108
第7章SoC復位源
7.1上電復位114
7.2掉電復位和VDD監視器114
7.3外部復位116
7.4時鐘丟失檢測器復位116
7.5比較器0復位116
7.6PCA看門狗定時器復位116
7.7FLASH錯誤復位117
7.8智慧型時鐘復位117
7.9軟體復位117
7.10軟體復位操作實例118
第8章FLASH存儲單元
8.1FLASH存儲單元的編程121
8.1.1FLASH編程鎖定和關鍵字設定121
8.1.2FLASH擦寫的操作122
8.2FLASH數據的安全保護124
8.3FLASH可靠寫和擦除的幾點要求126
8.4FLASH讀定時設定與套用128
8.5非易失性數據存儲程式示例130
第9章振盪器
9.1可程式內部振盪器設定與使用136
9.2外部振盪器的配置與使用138
9.2.1外部晶體模式140
9.2.2外部RC模式140
9.2.3外部電容模式141
9.2.4外部振盪器作為定時器時鐘141
9.3時鐘乘法器141
9.4系統時鐘的選擇143
第10章智慧型實時時鐘
10.1智慧型時鐘的全局接口暫存器146
10.1.1智慧型時鐘的接口暫存器定義146
10.1.2智慧型時鐘鎖定和解鎖147
10.2智慧型時鐘的內部暫存器148
10.2.1使用接口暫存器間接訪問智慧型時鐘的內部暫存器150
10.2.2接口暫存器的數據自動讀地址自增功能與設定150
10.3智慧型時鐘的時鐘源選擇151
10.3.1使用標準鐘錶振盪器的晶體方式151
10.3.2無片外振盪器的自振盪方式151
10.3.3振盪器時鐘丟失的檢測152
10.4智慧型時鐘定時和報警功能152
10.4.1定時器值的設定和訪問152
10.4.2報警門限值的設定
圖書前言
微處理器在社會發展中扮演著非同尋常的角色,幾乎滲透到了各行各業。經過不斷的發展與創新,單片機大致可分為4位、8位、16位和32位。其中32位系列是最近幾年才發展起來的新系列,大有後來居上的態勢,多用於信息量較大但運算負擔又不太重的設備上(如掌上設備等)。16位單片機越來越邊緣化,曾經輝煌一時的MCS96也不可避免地走向衰落,現在這一系列品種較少,影響較大的有MSP430。但它所處的位置很尷尬,主要用於運算量小,且控制要求不是很複雜的中低端場合,這種場合使用4位或8位機也可很好地實現,而且更具性價比優勢。在中高端套用場合,其性能又無法和32位機相比,目前其價格優勢也不明顯。應該說在低端的控制領域,8位機仍是主力軍,筆者斷言這種趨勢短時期不會改變。8位機在我國的普及程度最高的非51莫屬,儘管相對於其他種類8位機並沒有絕對的技術優勢,甚至還有劣勢,但認同是硬道理,君不見套用者數以億計,資料浩如煙海。也正是如此,各家公司開發的許多產品都是基於51核心的。基於51核心的系列單片機處在不斷改進的過程之中,這是因為晶片設計技術在發展,如果不對缺陷進行改造,就等於坐以待斃。8位單片機在CPU結構、外圍模組及匯流排和集成開發環境等各個方面,都發生了巨大變化。單片機的設計也已經從積木擴展模式跨入了集成度、可靠性、性價比都非常高的片上系統SoC時代。傳統的51單片機有111條指令,豐富的指令可以認為是它的一個優點,但筆者認為這恰好也是它的一大缺陷,眾多的指令在增加靈活性的同時也給程式執行帶來了低效性。針對這一特點出現了AVR精簡指令單片機,儘管性能獲得了飛速提升,但也帶來了如兼容性這樣的大問題,這是一種對傳統51單片機的割裂,同時也是對套用者的一種拋棄。
C8051F系列單片機的問世可以說是51單片機套用者的福音。該系列單片機保留了所有51單片機的指令與8052的所有資源,此舉意味著對傳統51單片機的最大兼容,用戶要注意的只是速度與時序的匹配。同時為了提高速度與性能,把原51單片機核心改造為功能更強大的CIP51核心。該核心以流水線方式處理指令,廢除了原51單片機中的機器周期,由原來12個時鐘執行一條指令改進為一個時鐘執行一條單周期指令,大多數指令執行所需的時鐘周期數與指令的位元組數相同,這使得C8051F單片機的運行速度和性能大大提高,平均速度約為同頻51單片機的10倍。同時為改變原51系統單片機外圍模組單一,複雜系統必須擴展的缺陷,片內擴展了豐富的外設,如FLASH、xram、A/D、D/A、溫度感測器,有的還擴展了智慧型時鐘和CRC引擎等。用戶不需要考慮太多的擴展就可以使單片完成設計任務成為可能。同時,它的編譯環境得到了KEILC的支持,使得開發過程並沒有改變,能夠很好地適應過去51開發的方法和習慣。片內集成了高頻振盪源,並具備了多級分頻系統以滿足各種個性化的需求。強大的非侵入式JTAG/C2調試手段,是傳統仿真器式調試模式所不能比擬的,可使核心和全部資源完全透明化和可操作化,可以方便地完成下載和硬體仿真,且不占用片內資源。C2接口通過共享技術達到I/O口0占用。豐富的接口除了SMBus/I2C、SPI、UART這些必備的接口外,有的產品還支持CAN、USB、LIN等,給套用者帶來了方便。晶振以及片上溫度感測器等外設集合為一體。增加了交叉開關,可靈活地將片內資源分配到I/O連線埠,此舉可讓套用者更方便地套用外設,對系統的總體規劃非常有益。3.3V的供電模式,核心的低電壓使系統功耗進一步降低。學習和掌握如此高性價比的產品,必將給開發工作帶來非常大的方便。
本書所論述的C8051F410是一款小體積的產品,除具有C8051的自身優點外還包括了一些自身的特點。比如:晶片上除了P0~P2,還包括溫度感測器和電源,27個I/O端均可以被編程為A/D的輸入端,A/D的數據最多16次累加功能可提高數據的處理能力。片內獨有的47位智慧型時鐘可以單片實現一些無人值守任務。片內2KBXRAM記憶體可以作為數據緩衝區,並可實現循環存儲的功能。還有許多的特點這裡不一一例舉,就請讀者在閱讀本書過程中慢慢體會。
作者對每種外設均給出了套用代碼,所有的程式均調試通過,讀者可以放心引用。同時作者還結合自己的項目經歷,給出了一些典型套用的原始碼。所有代碼見隨書光碟。
作者在本書的編寫過程中得到了院領導大力支持,同時得到了大連理工大學數位化研究所所長王德倫教授的支持和幫助,在這裡一併表示由衷的感謝。
參與本書編寫的人員還有大連理工大學數位化研究所的各位同仁,他們是朱林劍、孫守林、毛范海、董慧敏、馬雅麗、高媛、梁豐、陳慶紅、楊光輝、錢鋒、姜立學、陳觀慈等。
另外,韓素英、包明周、武麗敏、包初勝、尹雲、王皓、劉建偉等人完成了部分資料蒐集以及部分章節的文字校對工作。在此對他們的支持、幫助表示感謝。