淺談讓微控制器性能發(fā)揮極限的方法
如今微控制器需要執(zhí)行廣大范圍的任務(wù),包括管理實(shí)時控制算法、解碼高速通信協(xié)定,以及處理高頻傳感器發(fā)出的信號。微控制器是將微型計(jì)算機(jī)的主要部分集成在一個芯片上的單芯片微型計(jì)算機(jī)。微控制器誕生于20世紀(jì)70年代中期,經(jīng)過20多年的發(fā)展,其成本越來越低,而性能越來越強(qiáng)大,這使其應(yīng)用已經(jīng)無處不在,遍及各個領(lǐng)域。例如電機(jī)控制、條碼閱讀器/掃描器、消費(fèi)類電子、游戲設(shè)備、電話、HVAC、樓宇安全與門禁控制、工業(yè)控制與自動化和白色家電(洗衣機(jī)、微波爐)等。微控制器(Microcontroller Unit,即MCU)可從不同方面進(jìn)行分類:根據(jù)數(shù)據(jù)總線寬度可分為8位、16位和32位機(jī);根據(jù)存儲器結(jié)構(gòu)可分為Harvard結(jié)構(gòu)和Von Neumann結(jié)構(gòu);根據(jù)內(nèi)嵌程序存儲器的類別可分為OTP、掩膜、EPROM/EEPROM和閃存Flash;根據(jù)指令結(jié)構(gòu)又可分為CISC(Complex Instruction Set Computer)和RISC(Reduced Instruction Set Computer)微控制器。
本文引用地址:http://2s4d.com/article/148951.htm微控制器要想處理實(shí)時I/O和外設(shè)的高數(shù)據(jù)速率和頻率,便必須擁有更高的處理效率。但這個效率不能通過提高時鐘頻率來獲得,而是要通過微控制器架構(gòu)的內(nèi)部改進(jìn)來實(shí)現(xiàn)。
卸載CPU任務(wù)還有很多方法
集成式協(xié)處理器在嵌入式微控制器中已獲得相當(dāng)廣泛的應(yīng)用,其中比較常見的協(xié)處理器是加密和TCP/IP卸載引擎。協(xié)處理器可高效卸載整個任務(wù),或幫助執(zhí)行復(fù)雜算法中的密集計(jì)算部分。例如,一個加密引擎可以把CPU上的AES計(jì)算任務(wù)從每次運(yùn)算數(shù)千個周期縮減為數(shù)百個周期,而一個TCP/IP卸載引擎可以極小的CPU運(yùn)行支出來終止一個以太網(wǎng)連。
DMA控制器通過執(zhí)行數(shù)據(jù)訪問(如在后臺執(zhí)行外設(shè)寄存器到內(nèi)部或外部SRAM的數(shù)據(jù)訪問),從CPU卸載數(shù)據(jù)移動管理任務(wù)。DMA(Direct Memory Access,直接內(nèi)存存取) 是所有現(xiàn)代電腦的重要特色,他允許不同速度的硬件裝置來溝通,而不需要依于 CPU 的大量 中斷 負(fù)載。否則,CPU 需要從 來源 把每一片段的資料復(fù)制到 暫存器,然后把他們再次寫回到新的地方。在這個時間中,CPU 對于其他的工作來說就無法使用。 DMA 傳輸將數(shù)據(jù)從一個地址空間復(fù)制到另外一個地址空間。當(dāng) CPU 初始化這個傳輸動作,傳輸動作本身是由 DMA 控制器 來實(shí)行和完成。典型的例子就是移動一個外部內(nèi)存的區(qū)塊到芯片內(nèi)部更快的內(nèi)存區(qū)。像是這樣的操作并沒有讓處理器工作拖延,反而可以被重新排程去處理其他的工作。DMA 傳輸對于高效能 嵌入式系統(tǒng) 算法和網(wǎng)絡(luò)是很重要的。在實(shí)現(xiàn)DMA傳輸時,是由DMA控制器直接掌管總線,因此,存在著一個總線控制權(quán)轉(zhuǎn)移問題。即DMA傳輸前,CPU要把總線控制權(quán)交給DMA控制器,而在結(jié)束DMA傳輸后,DMA控制器應(yīng)立即把總線控制權(quán)再交回給CPU。另外,DMA控制器還能夠承擔(dān)通信外設(shè)管理的大部分工作(見表1)。
表1 DMA控制器能夠承擔(dān)通信外設(shè)管理的大部分工作
利用DMA控制器所節(jié)省的周期數(shù)可以十分可觀:許多嵌入式開發(fā)人員都已發(fā)現(xiàn)自己無法以有限的微控制器資源來滿足應(yīng)用的需求,直到認(rèn)識了DMA,才突然明白原來還有大量額外的周期可用,數(shù)目有時甚至多達(dá)整個系統(tǒng)的30%到50%左右。
熟知事件系統(tǒng)(event system)的開發(fā)人員就更少了。事件系統(tǒng)與DMA制器協(xié)同工作,可進(jìn)一步減少CPU周期的負(fù)擔(dān),并降低總體功耗。事件系統(tǒng)是一條總線,能夠?qū)奈⒖刂破魃系囊粋€外設(shè)發(fā)出的內(nèi)部信號連接到另一個外設(shè)。當(dāng)有事件在外設(shè)上發(fā)生時,它就可以在一個雙周期的延時內(nèi)觸發(fā)其它外設(shè)采取行動。
更確切地說,事件系統(tǒng)利用一個連接了CPU、數(shù)據(jù)總線和DMA控制器的專用網(wǎng)絡(luò)在整個微控制器上進(jìn)行信號路由(見圖1)。在正常情況下,外設(shè)必須中斷CPU來激活某個行動,包括讀取外設(shè)本身。而事件系統(tǒng)通過直接在外設(shè)之間發(fā)送相關(guān)事件,便可有效地使CPU擺脫這些中斷所帶來的負(fù)擔(dān)。CPU是一臺計(jì)算機(jī)的運(yùn)算核心和控制核心。CPU、內(nèi)部存儲器和輸入/輸出設(shè)備是電子計(jì)算機(jī)三大核心部件。電腦中所有操作都由CPU負(fù)責(zé)讀取指令,對指令譯碼并執(zhí)行指令的核心部件。其功能主要是解釋計(jì)算機(jī)指令以及處理計(jì)算機(jī)軟件中的數(shù)據(jù)。所謂的計(jì)算機(jī)的可編程性主要是指對CPU的編程。 CPU由運(yùn)算器、控制器和寄存器及實(shí)現(xiàn)它們之間聯(lián)系的數(shù)據(jù)、控制及狀態(tài)的總線構(gòu)成。差不多所有的CPU的運(yùn)作原理可分為四個階段:提取(Fetch)、解碼(Decode)、執(zhí)行(Execute)和寫回(Writeback)。
圖1 一個事件系統(tǒng)
靈活的卸載
DMA和事件系統(tǒng)配合工作,就可讓開發(fā)人員卸載整個任務(wù),這與協(xié)處理器的作用很類似,但兩者間的關(guān)鍵區(qū)別是協(xié)處理器不是可編程的。協(xié)處理器采用硬件來執(zhí)行一個已詳細(xì)定義的任務(wù),有時甚至是可配置的;而DMA控制器配合事件系統(tǒng)的可編程性使其適用于從最簡單的到極復(fù)雜的各類任務(wù)。在采用DMA和事件系統(tǒng)的情況下,DMA負(fù)責(zé)管理整個微處理器架構(gòu)上的數(shù)據(jù)傳輸;至于事件系統(tǒng)則控制這些低延時、高精度傳輸發(fā)生的時間。
圖2所示為事件系統(tǒng)與DMA共同工作的原理模塊示意圖。ADC連接一個傳感器,并會采集信號樣本。內(nèi)部計(jì)數(shù)器被設(shè)置為與采樣頻率相匹配,用以提供規(guī)律且精確的時間間隔。事件系統(tǒng)可以直接激活A(yù)DC的采樣,而無需中斷CPU,使采樣頻率比利用微控制器的時鐘更為精確。
圖2 DMA控制器配合事件系統(tǒng)
事件管理可擴(kuò)展為包含多個事件、連接多個外設(shè)的更復(fù)雜的配置。例如一個輸入信號(事件1)可觸發(fā)ADC采樣(事件2),并把數(shù)值存儲到DMA中(事件3),直到DMA緩沖器溢滿(事件4)。
DMA控制器和事件系統(tǒng)還支持多通道,使開發(fā)人員能夠配置一個與主CPU并行工作的互連結(jié)構(gòu),因此,可采用一種固定性方式來對多個并行實(shí)時任務(wù)進(jìn)行協(xié)調(diào)。
固定性和延時
固定性在限制延時和管理實(shí)時嵌入式系統(tǒng)的響應(yīng)性方面扮演著關(guān)鍵的角色。系統(tǒng)的固定性越高,它的響應(yīng)性也就越穩(wěn)定。影響固定性的主要因素在于系統(tǒng)必須同時處理的中斷的數(shù)目。
評論