淺談讓微控制器性能發(fā)揮極限的方法
如今微控制器需要執行廣大范圍的任務(wù),包括管理實(shí)時(shí)控制算法、解碼高速通信協(xié)定,以及處理高頻傳感器發(fā)出的信號。微控制器是將微型計算機的主要部分集成在一個(gè)芯片上的單芯片微型計算機。微控制器誕生于20世紀70年代中期,經(jīng)過(guò)20多年的發(fā)展,其成本越來(lái)越低,而性能越來(lái)越強大,這使其應用已經(jīng)無(wú)處不在,遍及各個(gè)領(lǐng)域。例如電機控制、條碼閱讀器/掃描器、消費類(lèi)電子、游戲設備、電話(huà)、HVAC、樓宇安全與門(mén)禁控制、工業(yè)控制與自動(dòng)化和白色家電(洗衣機、微波爐)等。微控制器(Microcontroller Unit,即MCU)可從不同方面進(jìn)行分類(lèi):根據數據總線(xiàn)寬度可分為8位、16位和32位機;根據存儲器結構可分為Harvard結構和Von Neumann結構;根據內嵌程序存儲器的類(lèi)別可分為OTP、掩膜、EPROM/EEPROM和閃存Flash;根據指令結構又可分為CISC(Complex Instruction Set Computer)和RISC(Reduced Instruction Set Computer)微控制器。
本文引用地址:http://dyxdggzs.com/article/148951.htm微控制器要想處理實(shí)時(shí)I/O和外設的高數據速率和頻率,便必須擁有更高的處理效率。但這個(gè)效率不能通過(guò)提高時(shí)鐘頻率來(lái)獲得,而是要通過(guò)微控制器架構的內部改進(jìn)來(lái)實(shí)現。
卸載CPU任務(wù)還有很多方法
集成式協(xié)處理器在嵌入式微控制器中已獲得相當廣泛的應用,其中比較常見(jiàn)的協(xié)處理器是加密和TCP/IP卸載引擎。協(xié)處理器可高效卸載整個(gè)任務(wù),或幫助執行復雜算法中的密集計算部分。例如,一個(gè)加密引擎可以把CPU上的AES計算任務(wù)從每次運算數千個(gè)周期縮減為數百個(gè)周期,而一個(gè)TCP/IP卸載引擎可以極小的CPU運行支出來(lái)終止一個(gè)以太網(wǎng)連。
DMA控制器通過(guò)執行數據訪(fǎng)問(wèn)(如在后臺執行外設寄存器到內部或外部SRAM的數據訪(fǎng)問(wèn)),從CPU卸載數據移動(dòng)管理任務(wù)。DMA(Direct Memory Access,直接內存存取) 是所有現代電腦的重要特色,他允許不同速度的硬件裝置來(lái)溝通,而不需要依于 CPU 的大量 中斷 負載。否則,CPU 需要從 來(lái)源 把每一片段的資料復制到 暫存器,然后把他們再次寫(xiě)回到新的地方。在這個(gè)時(shí)間中,CPU 對于其他的工作來(lái)說(shuō)就無(wú)法使用。 DMA 傳輸將數據從一個(gè)地址空間復制到另外一個(gè)地址空間。當 CPU 初始化這個(gè)傳輸動(dòng)作,傳輸動(dòng)作本身是由 DMA 控制器 來(lái)實(shí)行和完成。典型的例子就是移動(dòng)一個(gè)外部?jì)却娴膮^塊到芯片內部更快的內存區。像是這樣的操作并沒(méi)有讓處理器工作拖延,反而可以被重新排程去處理其他的工作。DMA 傳輸對于高效能 嵌入式系統 算法和網(wǎng)絡(luò )是很重要的。在實(shí)現DMA傳輸時(shí),是由DMA控制器直接掌管總線(xiàn),因此,存在著(zhù)一個(gè)總線(xiàn)控制權轉移問(wèn)題。即DMA傳輸前,CPU要把總線(xiàn)控制權交給DMA控制器,而在結束DMA傳輸后,DMA控制器應立即把總線(xiàn)控制權再交回給CPU。另外,DMA控制器還能夠承擔通信外設管理的大部分工作(見(jiàn)表1)。
表1 DMA控制器能夠承擔通信外設管理的大部分工作

利用DMA控制器所節省的周期數可以十分可觀(guān):許多嵌入式開(kāi)發(fā)人員都已發(fā)現自己無(wú)法以有限的微控制器資源來(lái)滿(mǎn)足應用的需求,直到認識了DMA,才突然明白原來(lái)還有大量額外的周期可用,數目有時(shí)甚至多達整個(gè)系統的30%到50%左右。
熟知事件系統(event system)的開(kāi)發(fā)人員就更少了。事件系統與DMA制器協(xié)同工作,可進(jìn)一步減少CPU周期的負擔,并降低總體功耗。事件系統是一條總線(xiàn),能夠將從微控制器上的一個(gè)外設發(fā)出的內部信號連接到另一個(gè)外設。當有事件在外設上發(fā)生時(shí),它就可以在一個(gè)雙周期的延時(shí)內觸發(fā)其它外設采取行動(dòng)。
更確切地說(shuō),事件系統利用一個(gè)連接了CPU、數據總線(xiàn)和DMA控制器的專(zhuān)用網(wǎng)絡(luò )在整個(gè)微控制器上進(jìn)行信號路由(見(jiàn)圖1)。在正常情況下,外設必須中斷CPU來(lái)激活某個(gè)行動(dòng),包括讀取外設本身。而事件系統通過(guò)直接在外設之間發(fā)送相關(guān)事件,便可有效地使CPU擺脫這些中斷所帶來(lái)的負擔。CPU是一臺計算機的運算核心和控制核心。CPU、內部存儲器和輸入/輸出設備是電子計算機三大核心部件。電腦中所有操作都由CPU負責讀取指令,對指令譯碼并執行指令的核心部件。其功能主要是解釋計算機指令以及處理計算機軟件中的數據。所謂的計算機的可編程性主要是指對CPU的編程。 CPU由運算器、控制器和寄存器及實(shí)現它們之間聯(lián)系的數據、控制及狀態(tài)的總線(xiàn)構成。差不多所有的CPU的運作原理可分為四個(gè)階段:提取(Fetch)、解碼(Decode)、執行(Execute)和寫(xiě)回(Writeback)。

圖1 一個(gè)事件系統
靈活的卸載
DMA和事件系統配合工作,就可讓開(kāi)發(fā)人員卸載整個(gè)任務(wù),這與協(xié)處理器的作用很類(lèi)似,但兩者間的關(guān)鍵區別是協(xié)處理器不是可編程的。協(xié)處理器采用硬件來(lái)執行一個(gè)已詳細定義的任務(wù),有時(shí)甚至是可配置的;而DMA控制器配合事件系統的可編程性使其適用于從最簡(jiǎn)單的到極復雜的各類(lèi)任務(wù)。在采用DMA和事件系統的情況下,DMA負責管理整個(gè)微處理器架構上的數據傳輸;至于事件系統則控制這些低延時(shí)、高精度傳輸發(fā)生的時(shí)間。
圖2所示為事件系統與DMA共同工作的原理模塊示意圖。ADC連接一個(gè)傳感器,并會(huì )采集信號樣本。內部計數器被設置為與采樣頻率相匹配,用以提供規律且精確的時(shí)間間隔。事件系統可以直接激活ADC的采樣,而無(wú)需中斷CPU,使采樣頻率比利用微控制器的時(shí)鐘更為精確。

圖2 DMA控制器配合事件系統
事件管理可擴展為包含多個(gè)事件、連接多個(gè)外設的更復雜的配置。例如一個(gè)輸入信號(事件1)可觸發(fā)ADC采樣(事件2),并把數值存儲到DMA中(事件3),直到DMA緩沖器溢滿(mǎn)(事件4)。
DMA控制器和事件系統還支持多通道,使開(kāi)發(fā)人員能夠配置一個(gè)與主CPU并行工作的互連結構,因此,可采用一種固定性方式來(lái)對多個(gè)并行實(shí)時(shí)任務(wù)進(jìn)行協(xié)調。
固定性和延時(shí)
固定性在限制延時(shí)和管理實(shí)時(shí)嵌入式系統的響應性方面扮演著(zhù)關(guān)鍵的角色。系統的固定性越高,它的響應性也就越穩定。影響固定性的主要因素在于系統必須同時(shí)處理的中斷的數目。
評論