隨著嵌入式系統(tǒng)與外圍環(huán)境的響應(yīng)越來(lái)越多,嵌入式系統(tǒng)是“控制、監(jiān)視或者輔助裝置、機(jī)器和設(shè)備運(yùn)行的裝置”(devices used to control, monitor, or assist the operation of equipment, machinery or plants)。從中可以看出嵌入式系統(tǒng)是軟件和硬件的綜合體,還可以涵蓋機(jī)械等附屬裝置。目前國(guó)內(nèi)一個(gè)普遍被認(rèn)同的定義是:以應(yīng)用為中心、以計(jì)算機(jī)技術(shù)為基礎(chǔ)、軟件硬件可裁剪、適應(yīng)應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體積、功耗嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。微控制器(Microcontroller Unit,即MCU)可從不同方面進(jìn)行分類:根據(jù)數(shù)據(jù)總線寬度可分為8位、16位和32位機(jī);根據(jù)存儲(chǔ)器結(jié)構(gòu)可分為Harvard結(jié)構(gòu)和Von Neumann結(jié)構(gòu);根據(jù)內(nèi)嵌程序存儲(chǔ)器的類別可分為OTP、掩膜、EPROM/EEPROM和閃存Flash;根據(jù)指令結(jié)構(gòu)又可分為CISC(Complex Instruction Set Computer)和RISC(Reduced Instruction Set Computer)微控制器。
一般來(lái)說(shuō),CPU負(fù)責(zé)處理中斷和移動(dòng)數(shù)據(jù)。在某些應(yīng)用中,CPU的大多數(shù)時(shí)間都花費(fèi)在這些活動(dòng)上。要應(yīng)對(duì)這些額外的計(jì)算負(fù)荷,就必須提高CPU時(shí)鐘速率,因而相應(yīng)地增加了功耗。在極端情況下,還必須把設(shè)計(jì)從8/16位器件轉(zhuǎn)換成32位器件才能應(yīng)付。
在多數(shù)情況下,一個(gè)外設(shè)上的信號(hào)除了要讓另一個(gè)外設(shè)知道它有事要做外,兩個(gè)外設(shè)間的聯(lián)絡(luò)卻需要大量中斷處理時(shí)間。CPU便會(huì)隨之中斷,并關(guān)斷馬達(dá)驅(qū)動(dòng)電路的PWM輸出。這個(gè)過(guò)程需要耗費(fèi)數(shù)十個(gè)時(shí)鐘周期,并需要另外的20~100個(gè)時(shí)鐘周期來(lái)恢復(fù)關(guān)聯(lián)。微控制器并沒(méi)真正被用于任何需要其處理能力的事情,只是從模擬比較器向PWM輸出傳遞了一個(gè)消息而已。
如果這些外設(shè)能夠無(wú)需中斷CPU而直接相互通信,每秒鐘就可輕易節(jié)省數(shù)百萬(wàn)個(gè)時(shí)鐘周期。8位微控制器不再適用于8位應(yīng)用的一個(gè)原因,就是應(yīng)用涉及的數(shù)據(jù)處理和中斷處理太多,CPU的MIPS大都耗費(fèi)在這些活動(dòng)上。而外設(shè)和內(nèi)存之間的傳輸數(shù)據(jù)更進(jìn)一步地增加了MCU的負(fù)擔(dān)。一個(gè)350kps的數(shù)據(jù)傳輸就要耗費(fèi)22~25個(gè)CPU MIPS。
解決這個(gè)問(wèn)題的一個(gè)方法是采用一個(gè)帶8通道事件系統(tǒng)和直接內(nèi)存訪問(wèn)(DMA)的低功耗8/16位單周期RISC MCU,讓事件系統(tǒng)和DMA來(lái)為CPU分擔(dān)這些工作。DMA(Direct Memory Access,直接內(nèi)存存?。?是所有現(xiàn)代電腦的重要特色,他允許不同速度的硬件裝置來(lái)溝通,而不需要依于 CPU 的大量 中斷 負(fù)載。否則,CPU 需要從 把每一片段的資料復(fù)制到 暫存器,然后把他們?cè)俅螌?xiě)回到新的地方。在這個(gè)時(shí)間中,CPU 對(duì)于其他的工作來(lái)說(shuō)就無(wú)法使用。 DMA 傳輸重要地將一個(gè)內(nèi)存區(qū)從一個(gè)裝置復(fù)制到另外一個(gè)。當(dāng) CPU 初始化這個(gè)傳輸動(dòng)作,傳輸動(dòng)作本身是由 DMA 控制器 來(lái)實(shí)行和完成。典型的例子就是移動(dòng)一個(gè)外部?jī)?nèi)存的區(qū)塊到芯片內(nèi)部更快的內(nèi)存區(qū)。像是這樣的操作并沒(méi)有讓處理器工作拖延,反而可以被重新排程去處理其他的工作。DMA 傳輸對(duì)于高效能 嵌入式系統(tǒng) 算法和網(wǎng)絡(luò)是很重要的。
在實(shí)現(xiàn)DMA傳輸時(shí),是由DMA控制器直接掌管總線,因此,存在著一個(gè)總線控制權(quán)轉(zhuǎn)移問(wèn)題。即DMA傳輸前,CPU要把總線控制權(quán)交給DMA控制器,而在結(jié)束DMA傳輸后,DMA控制器應(yīng)立即把總線控制權(quán)再交回給CPU。
事件系統(tǒng)通過(guò)CPU數(shù)據(jù)總線和DMA控制器之外的一個(gè)專用網(wǎng)絡(luò)傳遞外設(shè)信號(hào)。有了事件系統(tǒng),當(dāng)一個(gè)外設(shè)出現(xiàn)了狀態(tài)變化,就會(huì)自動(dòng)觸發(fā)其它外設(shè)上的相應(yīng)動(dòng)作。在前述馬達(dá)案例中,微控制器中的模擬比較器、定時(shí)器/計(jì)數(shù)器,I/O引腳或ADC可以在過(guò)流狀況的兩個(gè)時(shí)鐘周期內(nèi),直接關(guān)斷馬達(dá)驅(qū)動(dòng)電路的PWM輸出,不需占用任何中斷,也不耗費(fèi)任何CPU時(shí)鐘資源,就可以為馬達(dá)提供更好的保護(hù)。
圖1,帶有事件系統(tǒng)總線的XMEGA微控制器:帶有事件系統(tǒng)和DMA的MCU通過(guò)CPU數(shù)據(jù)總線和DMA之外的一個(gè)專用網(wǎng)絡(luò)傳遞外設(shè)信號(hào)。這樣做的好處是外設(shè)間信號(hào)通信變成可預(yù)見(jiàn)和無(wú)延遲,并減少了CPU周期時(shí)間和釋放了中斷資源。

圖1,帶有事件系統(tǒng)總線的XMEGA微控制器。
可以觸發(fā)事件系統(tǒng)的外設(shè)事件包括:定時(shí)器/計(jì)數(shù)器比較匹配或溢出,模擬比較器觸發(fā),引腳狀態(tài)變化,ADC完成或比較,以及實(shí)時(shí)計(jì)數(shù)器溢出。在其它外設(shè)中被觸發(fā)的事件包括:ADC或 DAC轉(zhuǎn)換,輸入捕獲以記錄通信時(shí)間戳或ADC測(cè)量時(shí)間戳,外部頻率或脈寬測(cè)量,產(chǎn)生定時(shí)器/計(jì)數(shù)器時(shí)鐘信號(hào),開(kāi)始一個(gè)DMA交易,或改變一個(gè)引腳輸出。
采用事件系統(tǒng)能夠消除多個(gè)和/或頻繁的中斷觸發(fā)造成的瓶頸,而且無(wú)需軟件開(kāi)銷,關(guān)鍵任務(wù)可獨(dú)立于CPU完成,而且也能大大降低功耗。一個(gè)沒(méi)有事件系統(tǒng)的傳統(tǒng)8位MCU要耗費(fèi)16 MIPS才能完成響應(yīng)馬達(dá)過(guò)流信號(hào)關(guān)斷PWM的動(dòng)作。在16 MHz,1 MIPS/MHz,以及0.6 mA/MHz的工作條件下,微控制器需要消耗8.6 mA才能完成這項(xiàng)任務(wù)。而一個(gè)帶有事件系統(tǒng)的同等MCU則不消耗MIPS,而且也不會(huì)增加功耗。
圖2,XMEGA微控制器的事件系統(tǒng):有了事件系統(tǒng),一個(gè)外設(shè)上出現(xiàn)狀態(tài)變化就會(huì)自動(dòng)觸發(fā)其它外設(shè)上的相應(yīng)動(dòng)作,且不 占用任何中斷,也不耗費(fèi)任何CPU時(shí)鐘資源??赏瑫r(shí)處理多達(dá)8個(gè)外設(shè)間事件,以及4個(gè)速率為64Mps的數(shù)據(jù)傳輸,而CPU處于睡眠模式,電流消耗僅10mA。

圖2,XMEGA微控制器的事件系統(tǒng)。
消除中斷后,處理響應(yīng)延遲可獲減少,而且確保最多只要2個(gè)時(shí)鐘周期,或者說(shuō)在32 MHz 時(shí)鐘頻率下只需62.5 ns的時(shí)間;而最快響應(yīng)時(shí)間可達(dá)到31.2 ns。實(shí)際上,在8/16位MCU上采用事件系統(tǒng),響應(yīng)時(shí)間較無(wú)事件系統(tǒng)的傳統(tǒng)32位MCU 縮短了37倍。
傳輸數(shù)據(jù)是另一個(gè)耗費(fèi)時(shí)鐘周期和增加功耗的活動(dòng)。由于CPU本身每次只能傳輸1個(gè)位,因此用CPU傳輸數(shù)據(jù)會(huì)帶來(lái)巨大處理開(kāi)銷很大。8位微控制器必須執(zhí)行22 MIPS,消耗14mA電流才能完成速率350Kbps的數(shù)據(jù)傳輸。
只要在器件上增加一個(gè)外設(shè)DMA控制器,就可基本上解除CPU的所有這些工作負(fù)荷。當(dāng)CPU數(shù)據(jù)總線空閑時(shí),DMA控制器便會(huì)用它來(lái)完成內(nèi)存和外設(shè)間的數(shù)據(jù)傳輸,無(wú)需使用CPU資源。連接外設(shè)寄存器的內(nèi)部總線是分開(kāi)的,因而DMA控制器和CPU可以同時(shí)進(jìn)行總線訪問(wèn)。
跟處理能力為22 MIPS、功耗為11mA但不帶DMA的8位MCU比較,使用DMA控制器傳輸350 Kbps數(shù)據(jù),MIPS消耗可減少99%;電流消耗則低于1mA。
DMA控制器可以直接將數(shù)據(jù)從一個(gè)外設(shè)寄存器移到內(nèi)部或外部SRAM,也可在SRAM的不同地址間,甚至不同外設(shè)寄存器之間移動(dòng)數(shù)據(jù)。4個(gè)DMA通道有著各自的優(yōu)先級(jí)、、目的地、觸發(fā)方式、尋址模式,以及傳輸塊大小。由于RISC CPU中簡(jiǎn)單的線性內(nèi)存地址空間以及DMA控制器的自動(dòng)增/減和重新加載的特點(diǎn),DMA一次可傳送1到16M字節(jié)。
若事件系統(tǒng)與DMA控制器配合使用,就可按如下方式完成模數(shù)和數(shù)模轉(zhuǎn)換:任何I/O引腳上的狀態(tài)變化或任何定時(shí)器/計(jì)數(shù)器出現(xiàn)溢出,就會(huì)觸發(fā)ADC轉(zhuǎn)換,無(wú)需任何CPU開(kāi)銷。ADC轉(zhuǎn)換結(jié)果通過(guò)一個(gè)DMA通道傳送到SRAM。同時(shí),第二個(gè)定時(shí)器/計(jì)數(shù)器會(huì)觸發(fā)一個(gè)高速DAC轉(zhuǎn)換,并用第二個(gè)DMA通道傳輸相應(yīng)的數(shù)據(jù)。事件系統(tǒng)會(huì)讓模擬比較器觸發(fā)輸入捕捉,以100%精度記錄時(shí)間戳,觸發(fā)自動(dòng)捕獲,記錄通信交易的起始時(shí)間戳,或在第二個(gè)ADC上掃描ADC轉(zhuǎn)換。4個(gè)事件通道仍是可使用的,它們可用于PWM輸出的故障保護(hù),控制一個(gè)高壓驅(qū)動(dòng)級(jí)、定時(shí)器/計(jì)數(shù)器的級(jí)聯(lián),以及兩個(gè)通信通道,所有動(dòng)作均在同時(shí)進(jìn)行,而CPU則處于睡眠狀態(tài)。
圖3,XMEGA的事件處理:若事件系統(tǒng)與DMA控制器配合使用,就可按如下方式完成模數(shù)和數(shù)模轉(zhuǎn)換:任何I/O引腳上的狀態(tài)變化或任何定時(shí)器/計(jì)數(shù)器出現(xiàn)溢出,就會(huì)觸發(fā)ADC轉(zhuǎn)換,無(wú)需任何CPU開(kāi)銷。ADC轉(zhuǎn)換結(jié)果通過(guò)一個(gè)DMA通道傳送到SRAM。

圖3,XMEGA的事件處理
在微控制器中增加事件系統(tǒng)和DMA對(duì)功耗有很大改善。在某些應(yīng)用中,這樣做可使MCU在大多數(shù)時(shí)間都處于睡眠模式,功率消耗僅80 uA/MHz,而所有的外設(shè)卻仍繼續(xù)工作。對(duì)一個(gè)有8個(gè)同時(shí)事件和4個(gè)350 Kbps數(shù)據(jù)傳輸?shù)膽?yīng)用而言,一個(gè)帶有事件系統(tǒng)和DMA的8/16位MCU,每秒將有3160萬(wàn)個(gè)周期處于睡眠模式,而總電流消耗僅4mA。任何不帶事件系統(tǒng)和DMA的8/16位MCU則會(huì)消耗52 至 60 mA的電流。而一個(gè)32位MCU則會(huì)消耗34.8 mA的電流,幾乎是帶有事件系統(tǒng)和DMA處理器的10倍功耗。
有/無(wú)事件系統(tǒng)和DMA之MCU的處理周期和功耗比較見(jiàn)表3。
表1,有/無(wú)事件系統(tǒng)之MCU的處理周期和響應(yīng)時(shí)間比較

表2,有/無(wú)DMA的MCU傳輸350 KBps數(shù)據(jù)時(shí)的典型MIPS和功耗

表3,傳輸350Kbps 數(shù)據(jù)的中斷、MIPS和功耗比較

-
嵌入式
+關(guān)注
關(guān)注
5200文章
20479瀏覽量
334511 -
存儲(chǔ)器
+關(guān)注
關(guān)注
39文章
7739瀏覽量
171748 -
cpu
+關(guān)注
關(guān)注
68文章
11287瀏覽量
225198 -
低功耗
+關(guān)注
關(guān)注
12文章
3510瀏覽量
106726
發(fā)布評(píng)論請(qǐng)先 登錄
討論SAR DAC響應(yīng)時(shí)間和幾種實(shí)現(xiàn)設(shè)計(jì)
產(chǎn)品響應(yīng)時(shí)間
SAR ADC響應(yīng)時(shí)間實(shí)現(xiàn)迅速響應(yīng)、快速控制的方法
如何對(duì)看門(mén)狗的中斷響應(yīng)時(shí)間進(jìn)行分析
紫外火焰探測(cè)器響應(yīng)時(shí)間測(cè)試系統(tǒng)的研究
ADIS16365 慣性傳感器,具有更快響應(yīng)時(shí)間和更低功耗
什么是響應(yīng)時(shí)間
什么是液晶電視的響應(yīng)時(shí)間
光敏電阻響應(yīng)時(shí)間研究
什么是單片機(jī)的中斷響應(yīng)時(shí)間
實(shí)現(xiàn)響應(yīng)時(shí)間和低功耗的事件系統(tǒng)的研究分析
評(píng)論