- LPC1100系列處理器原理及應用
- 桂電-豐寶聯合實驗室編著
- 4669字
- 2018-12-29 09:08:08
1.2 嵌入式處理器
嵌入式處理器是嵌入式系統的核心,是控制、輔助系統運行的硬件單元。目前世界上具有嵌入式功能特點的處理器已經超過1000種,包括早期的4位處理器、8位單片機以及當前受到廣泛青睞的32位、64位嵌入式CPU。鑒于嵌入式系統廣闊的發展前景,很多半導體制造商都大規模生產嵌入式處理器,并且公司自主設計處理器也已經成為了未來嵌入式領域的一大趨勢,其中從單片機、DSP到FPGA有著各式各樣的品種,速度越來越快,性能越來越強,價格也越來越低。嵌入式處理器的尋址空間一般為64KB~4GB,處理速度為0.1~2000MIPS,封裝從8個引腳到208個引腳不等。
1.2.1 嵌入式處理器的分類
嵌入式處理器大致可以分為以下4個大類。
1.嵌入式微處理器(Micro Processor Unit,MPU)
嵌入式微處理器是由通用計算機中的CPU演變而來的。它的特征是具有32位以上的處理器,具有較高的性能,當然其價格也相應較高。在實際嵌入式應用中,只保留和嵌入式應用緊密相關的功能硬件,去除其他的冗余功能部分,這樣就以最低的功耗和資源實現嵌入式應用的特殊要求。和工業控制計算機相比,嵌入式微處理器具有體積小、重量輕、成本低、可靠性高的優點。目前主要的嵌入式處理器類型有Am186/88、386EX、SC-400、Power PC、68000、MIPS、ARM/StrongARM系列等。其中ARM/StrongARM是專為手持設備開發的嵌入式微處理器,屬于中檔的價位。
MPU分為復雜指令集計算機(CISC)和精簡指令集計算機(RISC)。RISC和CISC是目前設計制造微處理器的兩種典型技術,為達到高效的目的,采用的方法不同。
CISC內部為將較復雜的指令譯碼,也就是指令較長,分成幾個微指令去執行,正是如此開發程序比較容易(指令多的緣故),但是指令復雜,執行工作效率較差,處理數據速度較慢,如PC中Pentium的結構都為CISC CPU。
RISC是精簡指令集CPU,指令位數較短,內部還有快速處理指令的電路,使得指令的譯碼與數據的處理較快,所以執行效率比CISC高,不過,必須經過編譯程序的處理,才能發揮它的效率,如IBM的Power PC為RISC CPU的結構,CISCO的CPU也是RISC的結構。
RISC主要把精力放在常用指令上,不常用的功能通過組合指令實現,而CISC則由專用指令完成特定的功能。
2.嵌入式微控制器(Micro Control Unit,MCU)
嵌入式微控制器的典型代表是單片機,從20世紀70年代末單片機出現到今天,雖然已經經過了30多年的歷史,但這種8位的電子器件目前在嵌入式設備中仍然有著極其廣泛的應用。單片機芯片內部集成ROM/EPROM、RAM、總線、總線邏輯、定時/計數器、看門狗、I/O、串行口、脈寬調制輸出、A/D、D/A、Flash RAM、EEPROM等各種必要功能和外設。
和嵌入式微處理器相比,微控制器的最大特點是單片化,體積大大減小,從而使功耗和成本下降、可靠性提高。微控制器是目前嵌入式系統工業的主流。微控制器的片上外設資源一般比較豐富,適合于控制,因此稱為微控制器。
由于MCU低廉的價格,優良的功能,所以擁有的品種和數量最多,比較有代表性的包括8051、MCS-251、MCS-96/196/296、P51XA、C166/167、68K系列,以及MCU 8XC930/931、C540、C541,并且有支持I2 C、CAN-Bus、LCD及眾多專用MCU和兼容系列。
3.嵌入式DSP(Embedded Digital Signal Processor,DSP)
DSP處理器是專門用于信號處理方面的處理器,其在系統結構和指令算法方面進行了特殊設計,具有很高的編譯效率和指令的執行速度。在數字濾波、FFT、譜分析等各種儀器上DSP獲得了大規模的應用。
推動DSP發展的一個重要因素是嵌入式系統的智能化。智能化算法的運算量一般都比較大,特別是向量運算、指針線性尋址等較多,而這些正是DSP具備的、其他嵌入式處理所沒有的長處。
隨著大規模集成電路技術發展,1982年世界上誕生了首個DSP芯片,其運算速度比MPU快了幾十倍,在語音合成和編碼解碼器中得到了廣泛應用。至20世紀80年代中期,隨著CMOS技術的進步與發展,第二代基于CMOS工藝的DSP芯片應運而生,其存儲容量和運算速度都得到成倍提高,成為語音處理、圖像硬件處理技術的基礎。到20世紀80年代后期,DSP的運算速度進一步提高,應用領域也從上述范圍擴大到了通信和計算機方面。20世紀90年代后,DSP發展到了第五代產品,集成度更高,使用范圍也更加廣闊。
4.片上系統(System on Chip,SoC)
超大規模集成電路(Very Large Scale Integration)設計的普及和半導體工藝的迅速發展,使在單塊硅片上實現一個更復雜的系統成為可能,這就是所謂的片上系統(SoC)。
SoC最大的特點是成功實現了軟、硬件無縫結合,直接在處理器片內嵌入操作系統的代碼模塊。而且SoC具有極高的綜合性,在一個硅片內部運用VHDL等硬件描述語言,實現一個復雜的系統。用戶不需要再像傳統的系統設計一樣,繪制龐大復雜的電路板,一點點的連接焊制,只需要使用精確的語言,綜合時序設計直接在器件庫中調用各種通用處理器的標準,然后通過仿真之后就可以直接交付芯片廠商進行生產。
SoC分為通用和專用兩類。通用系列包括Motorola的M-Core和Neuron、某些ARM系列器件、Echelon等。專用SoC一般專用于某類系統中,不為一般用戶所知。例如,NXP的Smart XA,將XA單片機內核和支持超過2048位復雜RSA算法的CCU(Communication Control Unit)單元制作在一塊硅片上,形成一個可加載Java或C語言的專用SoC,可用于In-ternet安全領域。
1.2.2 ARM微處理器
ARM(Advanced RISC Machines),既可以認為是一個公司的名字,也可以認為是對一類微處理器的通稱,還可以認為是一種技術的名字。ARM公司于1991年在英國劍橋成立,ARM公司是專門從事基于RISC技術芯片設計開發的公司,作為知識產權供應商,本身不直接從事芯片生產,靠轉讓設計許可由合作公司生產各具特色的芯片。目前,采用ARM技術知識產權核的微處理器,即我們通常所說的ARM微處理器,已遍及工業控制、消費類電子產品、通信系統、網絡系統、無線系統等各類產品市場,基于ARM技術的微處理器應用約占據了32位RISC微處理器75%以上的市場份額,ARM技術正在逐步滲入到我們生活的各個方面。
ARM公司開發了很多系列的ARM處理器核。目前常用的ARM微處理器有ARM7系列、ARM9系列、ARM9E系列、ARM10E系列、ARM11系列、SecurCore系列、Intel的StrongARM和XScale、Cortex-M、Cortex-A、Cortex-R等。其中,Cortex-M、Cortex-A、Cor-tex-R系列符合ARMv7標準的處理器的指令集、內存模型和程序員模型。
1.ARM微處理器的特點
① 體積小、低功耗、低成本、高性能;
② 支持Thumb(16位)/ARM(32位)雙指令集,能很好地兼容8位/16位器件;
③ 大量使用寄存器,指令執行速度更快;
④ 大多數數據操作都在寄存器中完成;
⑤ 尋址方式靈活簡單,執行效率高;
⑥ 指令長度固定。
2.ARM微處理器的結構
(1)體系結構
ARM是Advanced RISC Machines的縮寫,顧名思義,ARM處理器也是一種精簡指令集計算機,其簡單的結構使ARM內核非常小,器件的功耗也非常低。而且它具有經典RISC的特點:
① 大的、統一的寄存器文件;
② 裝載/保存結構,數據處理操作只針對寄存器的內容,而不直接對存儲器進行操作;
③ 簡單的尋址方式;
④ 統一和固定長度的指令域,簡化了指令的譯碼。
ARM體系結構從最初開發到現在有了巨大的改進,并仍在完善和發展。為了清楚地表達每個ARM應用實例所使用的指令集,ARM公司定義了7種主要的ARM指令集體系結構版本,以版本號v1~v7表示。ARM微處理器的核心及體系結構見表1.1。
表1.1 ARM微處理器核心及體系結構

v1是ARM1使用的,只能尋址26位空間,目前已廢棄不用。
v2也是只能尋址26位空間,但是相對v1增加了乘法和協處理器支持,現在也不再使用。
v3的尋址空間增大為32位,使用了當前程序狀態寄存器CPSR,并增加了程序狀態保存寄存器SPSR。另外還增加了兩種處理器模式,以便更有效地處理異常。
v4是v3的擴展,相對v3增加了多種加載/存儲指令,并增加了特權模式。
v5是在v4的基礎上進行了修改,增加了指令,提高了切換效率,增加了軟件斷點功能。
v6通過SIMD功能擴展,優化了應用系統的音頻/視頻的處理功能,將處理性能提高到原來的4倍。它支持多微處理器內核,適合使用電池供電的高性能的便攜式設備。
v7架構是在v6架構的基礎上誕生的,采用了Thumb-2技術,并保持了對現有ARM解決方案的完整的代碼兼容性。還采用了NEON技術,將DSP和媒體處理能力提高了近4倍,并支持改良的浮點運算,滿足下一代3D圖形、游戲物理應用及傳統嵌入式控制應用的需求。
(2)寄存器結構
ARM處理器共有37個寄存器,被分為若干個組(BANK),這些寄存器包括程序計數器(PC指針)在內的31個32位通用寄存器和6個用于標示CPU工作狀態及程序運行狀態的32位狀態寄存器。
(3)指令結構
ARM微處理器在較新的體系結構中支持兩種指令集:ARM指令集和Thumb指令集。其中,ARM指令為32位長度,Thumb指令為16位長度。Thumb指令集為ARM指令集的功能子集,但與等價的ARM代碼相比較,可節省30%~40%的存儲空間,同時具備32位代碼的所有優點。
3.ARM微處理器的應用領域
(1)工業控制
作為32位的RISC架構,基于ARM核的微控制器芯片不但占據了高端微控制器市場的大部分市場份額,同時也逐漸向低端微控制器應用領域擴展,ARM微控制器的低功耗、高性價比,向傳統的8/16位微控制器提出了挑戰。特別是Cortex系列處理器的誕生,其代碼密度和能效優勢意味著它是各種應用中8/16位設備的高性價比換代產品。
(2)無線通信
目前已有超過85%的無線通信設備采用了ARM技術,ARM以其高性能和低成本,在該領域的地位日益鞏固。
(3)網絡應用
隨著寬帶技術的推廣,采用ARM技術的ADSL芯片正逐步獲得競爭優勢。此外,ARM在語音及視頻處理上進行了優化,并獲得廣泛支持,也對DSP的應用領域提出了挑戰。
(4)消費類電子
ARM技術在目前流行的數字音頻播放器、數字機頂盒和游戲機中得到了廣泛采用,如銀行等的取號機也是采用ARM技術。
(5)成像及安全產品
現在流行的數碼相機和打印機中絕大部分采用ARM技術。手機中的32位SIM智能卡也采用了ARM技術。
1.2.3 Cortex-M0處理器
ARM Cortex-M0處理器是現有的體積最小、能耗最低和能效最高的ARM處理器,也是符合ARMv6-M標準的處理器的指令集、內存模型和程序員模型的ARM處理器。該處理器的硅面積極小、能耗極低并且所需的代碼量極少,這使得開發人員能夠以8位的設備實現32位設備的性能,從而省略16位設備的研發步驟。Cortex-M0處理器超低的門數也使得它可以部署在模擬和混合信號設備中。
1.Cortex-M0處理器的特點
(1)性價比高
Cortex-M0的代碼密度和能效優勢意味著它是各種應用中8/16位設備的自然高性價比換代產品,同時保留與功能豐富的Cortex-M3處理器的工具和二進制向上兼容性。
(2)超低的能耗
Cortex-M0處理器在不到12K門的面積內能耗僅有85μW/MHz,所憑借的是作為低能耗技術的領導者和創建超低能耗設備的主要推動者的無與倫比的ARM專門技術。
(3)簡單
指令只有56個,這樣用戶便可以快速掌握整個Cortex-M0指令集(如果需要);但其C語言友好體系結構意味著這并不是必需的。可供選擇的具有完全確定性的指令和中斷計時使得計算響應時間十分容易。
(4)優化的連接性
設計為支持低能耗連接,如Bluetooth Low Energy(BLE)、IEEE 802.15和Z-wave,這些模擬設備正在增加其數字功能,以有效地預處理和傳輸數據。
2.Cortex-M0處理器的技術規范
ARM Cortex-M0處理器采用ARMv6-M(馮·諾依曼)體系結構,執行Thumb指令集,包括少量使用Thumb-2技術的32位指令,是高性能的32位CPU,具有確定性的運算和低延遲的3階段管道,整數運算速度達到0.9DMIPS/MHz。
ARM Cortex-M0處理器集成了睡眠狀態和多電源域的支持,并使用基于構架的軟件進行睡眠狀態和功耗的控制。
嵌套向量中斷控制器(NVIC)是Cortex-M0處理器不可或缺的部分,它為處理器提供了卓越的中斷處理能力,中斷延遲16個周期。Cortex-M0處理器使用一個向量表,其中包含要為特定中斷處理程序執行的函數的地址。接收中斷時,處理器會從該向量表中提取地址。為了減少門數并增強系統靈活性,Cortex-M0處理器使用一個基于堆棧的異常模型。
Cortex-M0處理器的CoreSight調試與跟蹤,支持JTAG和2針串行線調試(SWD),支持多處理器和實時跟蹤。
Cortex-M0處理器支持廣泛的第三方工具,采用Cortex微控制器軟件接口標準(CM-SIS),最大限度地增加了軟件成果的重用,縮短了微控制器開發人員的學習過程。
基于ARM Cortex處理器的微控制器的軟件開發可能比8位微控制器產品的開發容易得多。Cortex處理器不但是完全可通過C語言進行編程的,而且還附帶各種高級調試功能以幫助定位軟件中的問題。除MCU開發工具包中包括的所有附加資源外,Internet上還有大量示例和教程,其中許多來自基于ARM處理器的MCU供應商的網站。
- Raspberry Pi 3 Cookbook for Python Programmers
- 電腦軟硬件維修大全(實例精華版)
- 基于ARM的嵌入式系統和物聯網開發
- Unity 5.x Game Development Blueprints
- 單片機原理及應用系統設計
- 筆記本電腦維修不是事兒(第2版)
- 計算機組裝與維護(第3版)
- Machine Learning with Go Quick Start Guide
- 筆記本電腦應用技巧
- 基于Proteus仿真的51單片機應用
- Internet of Things Projects with ESP32
- Arduino項目開發:智能生活
- 單片機原理與技能訓練
- 從企業級開發到云原生微服務:Spring Boot實戰
- 現代多媒體技術及應用