《電子技術應用》
您所在的位置:首頁 > 電源技術 > 設計應用 > 使用事件系統(tǒng)和DMA來消除中斷可實現(xiàn)超快響應時間和極低功耗
使用事件系統(tǒng)和DMA來消除中斷可實現(xiàn)超快響應時間和極低功耗
摘要: 隨著嵌入式系統(tǒng)與外圍環(huán)境的響應越來越多,需要捕獲和處理數(shù)據(jù)的外設數(shù)量也暴增。微控制器通常配備ADC、DAC、PWM、多個定時器/計數(shù)器,以及大量的TWI、SPI、CAN、USB和USART通信接口。
Abstract:
Key words :

  隨著嵌入式系統(tǒng)與外圍環(huán)境的響應越來越多,需要捕獲和處理數(shù)據(jù)的外設數(shù)量也暴增。微控制器通常配備ADC、DAC、PWM、多個定時器/計數(shù)器,以及大量的TWI、SPI、CAN、USB和USART通信接口。外設的增加意味著需要循環(huán)密集(cycle-intensive)的中斷,而在內存和外設之間移動的數(shù)據(jù)量也會呈指數(shù)級增加。

  一般來說,CPU負責處理中斷和移動數(shù)據(jù)。在某些應用中,CPU的大多數(shù)時間都花費在這些活動上。例如,管理兩個同步外設之間的通信和64Mbps速率的單一數(shù)據(jù)傳輸就需要200 CPU MIPS,并消耗240mA電流,原因是這涉及了廣泛的場景關聯(lián)轉換和中斷處理。要應對這些額外的計算負荷,就必須提高CPU時鐘速率,因而相應地增加了功耗。在極端情況下,還必須把設計從8/16位器件轉換成32位器件才能應付。

  在多數(shù)情況下,一個外設上的信號除了要讓另一個外設知道它有事要做外,并不需要CPU做什么。可惜的是,兩個外設間的聯(lián)絡卻需要大量中斷處理時間。例如,在馬達控制應用中,為防止馬達過熱,必須不斷測量馬達上的電流,并在出現(xiàn)過流馬達停轉信號時觸發(fā)一個模擬比較器。這樣CPU便會隨之中斷,并關斷馬達驅動電路的PWM輸出。這個過程需要耗費數(shù)十個時鐘周期,并需要另外的20~100個時鐘周期來恢復關聯(lián)。微控制器并沒真正被用于任何需要其處理能力的事情,只是從模擬比較器向PWM輸出傳遞了一個消息而已;換言之CPU時鐘資源基本上被浪費了。

  除此之外,定時器/計數(shù)器為其它外設(ADC和DAC)的定時也會耗費CPU時鐘的資源。在這類情況下,都要產(chǎn)生一個中斷來開始一次轉換。在幾個kHz的抽樣速率下,這些定時器/計數(shù)器中斷會消耗掉1MIPS,大約是一個12MIPS CPU的8%的處理能力。

  如果這些外設能夠無需中斷CPU而直接相互通信,每秒鐘就可輕易節(jié)省數(shù)百萬個時鐘周期。8位微控制器不再適用于8位應用的一個原因,就是應用涉及的數(shù)據(jù)處理和中斷處理太多,CPU的MIPS大都耗費在這些活動上。而外設和內存之間的傳輸數(shù)據(jù)更進一步地增加了MCU的負擔。一個350kps的數(shù)據(jù)傳輸就要耗費22~25個CPU MIPS。

  解決這個問題的一個方法是采用一個帶8通道事件系統(tǒng)和直接內存訪問(DMA)的低功耗8/16位單周期RISC MCU,讓事件系統(tǒng)和DMA來為CPU分擔這些工作。這種微控制器構架可同時處理多達8個外設間事件,以及4個速率為64Mps的數(shù)據(jù)傳輸,而且總體電流消耗低于10mA。由于事件系統(tǒng)和DMA可讓外設自主地相互通信,因此不再需要CPU時鐘周期或中斷,這樣CPU也就可以處于睡眠狀態(tài)了。

  事件系統(tǒng)通過CPU數(shù)據(jù)總線和DMA控制器之外的一個專用網(wǎng)絡傳遞外設信號。這樣做的好處是外設間信號通信變得可預見和無延遲,并減少了CPU時間和釋放了中斷資源。有了事件系統(tǒng),當一個外設出現(xiàn)了狀態(tài)變化,就會自動觸發(fā)其它外設上的相應動作。在前述馬達案例中,微控制器中的模擬比較器、定時器/計數(shù)器,I/O引腳或ADC可以在過流狀況的兩個時鐘周期內,直接關斷馬達驅動電路的PWM輸出,不需占用任何中斷,也不耗費任何CPU時鐘資源,就可以為馬達提供更好的保護。

  圖1,帶有事件系統(tǒng)總線的XMEGA微控制器:帶有事件系統(tǒng)和DMA的MCU通過CPU數(shù)據(jù)總線和DMA之外的一個專用網(wǎng)絡傳遞外設信號。這樣做的好處是外設間信號通信變成可預見和無延遲,并減少了CPU周期時間和釋放了中斷資源。

圖1

圖1,帶有事件系統(tǒng)總線的XMEGA微控制器。

  可以觸發(fā)事件系統(tǒng)的外設事件包括:定時器/計數(shù)器比較匹配或溢出,模擬比較器觸發(fā),引腳狀態(tài)變化,ADC完成或比較,以及實時計數(shù)器溢出。在其它外設中被觸發(fā)的事件包括:ADC或 DAC轉換,輸入捕獲以記錄通信時間戳或ADC測量時間戳,外部頻率或脈寬測量,產(chǎn)生定時器/計數(shù)器時鐘信號,開始一個DMA交易,或改變一個引腳輸出。

  至于哪些事件應該觸發(fā)特定外設上的哪些動作,完全可由設計人員進行配置。事件系統(tǒng)配置可以是靜態(tài)鎖定的,也可在應用執(zhí)行的不同階段動態(tài)變化。事件通道并行運作,任何時刻都可有多達8對外設同時互聯(lián)。

  采用事件系統(tǒng)能夠消除多個和/或頻繁的中斷觸發(fā)造成的瓶頸,而且無需軟件開銷,關鍵任務可獨立于CPU完成,而且也能大大降低功耗。一個沒有事件系統(tǒng)的傳統(tǒng)8位MCU要耗費16 MIPS才能完成響應馬達過流信號關斷PWM的動作。在16 MHz,1 MIPS/MHz,以及0.6 mA/MHz的工作條件下,微控制器需要消耗8.6 mA才能完成這項任務。而一個帶有事件系統(tǒng)的同等MCU則不消耗MIPS,而且也不會增加功耗。

  圖2,XMEGA微控制器的事件系統(tǒng):有了事件系統(tǒng),一個外設上出現(xiàn)狀態(tài)變化就會自動觸發(fā)其它外設上的相應動作,且不 占用任何中斷,也不耗費任何CPU時鐘資源。可同時處理多達8個外設間事件,以及4個速率為64Mps的數(shù)據(jù)傳輸,而CPU處于睡眠模式,電流消耗僅10mA。

 

圖2

圖2,XMEGA微控制器的事件系統(tǒng)。

  消除中斷后,處理響應延遲可獲減少,而且確保最多只要2個時鐘周期,或者說在32 MHz 時鐘頻率下只需62.5 ns的時間;而最快響應時間可達到31.2 ns。實際上,在8/16位MCU上采用事件系統(tǒng),響應時間較無事件系統(tǒng)的傳統(tǒng)32位MCU 縮短了37倍。

  傳輸數(shù)據(jù)是另一個耗費時鐘周期和增加功耗的活動。由于CPU本身每次只能傳輸1個位,因此用CPU傳輸數(shù)據(jù)會帶來巨大處理開銷很大。8位微控制器必須執(zhí)行22 MIPS,消耗14mA電流才能完成速率350Kbps的數(shù)據(jù)傳輸。SPI和USART傳輸?shù)臄?shù)據(jù)速率高達25Mbps,普通的8位MCU幾乎不可能支持這個最大速率。

  只要在器件上增加一個外設DMA控制器,就可基本上解除CPU的所有這些工作負荷。當CPU數(shù)據(jù)總線空閑時,DMA控制器便會用它來完成內存和外設間的數(shù)據(jù)傳輸,無需使用CPU資源。連接外設寄存器的內部總線(包括I/O引腳、內存映射EEPROM、內部SRAM,以及外部總線接口)是分開的,因而DMA控制器和CPU可以同時進行總線訪問。這樣,始終有一個通信通道供DMA使用。

  跟處理能力為22 MIPS、功耗為11mA但不帶DMA的8位MCU比較,使用DMA控制器傳輸350 Kbps數(shù)據(jù),MIPS消耗可減少99%;電流消耗則低于1mA。

  DMA控制器可以直接將數(shù)據(jù)從一個外設寄存器移到內部或外部SRAM,也可在SRAM的不同地址間,甚至不同外設寄存器之間移動數(shù)據(jù)。4個DMA通道有著各自的優(yōu)先級、來源、目的地、觸發(fā)方式、尋址模式,以及傳輸塊大小。由于RISC CPU中簡單的線性內存地址空間以及DMA控制器的自動增/減和重新加載的特點,DMA一次可傳送1到16M字節(jié)。

  若事件系統(tǒng)與DMA控制器配合使用,就可按如下方式完成模數(shù)和數(shù)模轉換:任何I/O引腳上的狀態(tài)變化或任何定時器/計數(shù)器出現(xiàn)溢出,就會觸發(fā)ADC轉換,無需任何CPU開銷。ADC轉換結果通過一個DMA通道傳送到SRAM。同時,第二個定時器/計數(shù)器會觸發(fā)一個高速DAC轉換,并用第二個DMA通道傳輸相應的數(shù)據(jù)。事件系統(tǒng)會讓模擬比較器觸發(fā)輸入捕捉,以100%精度記錄時間戳,觸發(fā)自動捕獲,記錄通信交易的起始時間戳,或在第二個ADC上掃描ADC轉換。4個事件通道仍是可使用的,它們可用于PWM輸出的故障保護,控制一個高壓驅動級、定時器/計數(shù)器的級聯(lián),以及兩個通信通道,所有動作均在同時進行,而CPU則處于睡眠狀態(tài)。

  圖3,XMEGA的事件處理:若事件系統(tǒng)與DMA控制器配合使用,就可按如下方式完成模數(shù)和數(shù)模轉換:任何I/O引腳上的狀態(tài)變化或任何定時器/計數(shù)器出現(xiàn)溢出,就會觸發(fā)ADC轉換,無需任何CPU開銷。ADC轉換結果通過一個DMA通道傳送到SRAM。

圖3

圖3,XMEGA的事件處理

  在微控制器中增加事件系統(tǒng)和DMA對功耗有很大改善。在某些應用中,這樣做可使MCU在大多數(shù)時間都處于睡眠模式,功率消耗僅80 uA/MHz,而所有的外設卻仍繼續(xù)工作。對一個有8個同時事件和4個350 Kbps數(shù)據(jù)傳輸?shù)膽枚裕粋€帶有事件系統(tǒng)和DMA的8/16位MCU,每秒將有3160萬個周期處于睡眠模式,而總電流消耗僅4mA。任何不帶事件系統(tǒng)和DMA的8/16位MCU則會消耗52 至 60 mA的電流。而一個32位MCU則會消耗34.8 mA的電流,幾乎是帶有事件系統(tǒng)和DMA處理器的10倍功耗。在一個中斷頻繁和數(shù)據(jù)量大的應用中,帶有事件處理器和DMA的微控制器可節(jié)省90%的功耗。

  有/無事件系統(tǒng)和DMA之MCU的處理周期和功耗比較見表3。

表1,有/無事件系統(tǒng)之MCU的處理周期和響應時間比較

表1

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

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

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

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

此內容為AET網(wǎng)站原創(chuàng),未經(jīng)授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
欧美一级大片在线免费观看| 亚洲欧美成人精品| 国产精品久久久久久久9999 | 久久国产福利国产秒拍| 亚洲尤物视频在线| 亚洲视频在线观看视频| 在线亚洲精品| 国产精品99久久不卡二区 | 国产精品99久久久久久久久久久久| 91久久国产综合久久蜜月精品 | 久久久噜噜噜久久狠狠50岁| 久久国产精品99国产| 欧美一区三区二区在线观看| 久久超碰97人人做人人爱| 久久成人免费| 久久国产精品久久久久久久久久 | 亚洲国产人成综合网站| 亚洲国产99| 亚洲欧洲在线视频| av成人老司机| 亚洲四色影视在线观看| 亚洲欧美日韩精品久久久| 欧美一区二区三区免费视频| 欧美专区一区二区三区| 亚洲国产成人午夜在线一区| 亚洲肉体裸体xxxx137| 99re6热在线精品视频播放速度| 一本色道久久综合亚洲精品婷婷| 亚洲视频成人| 欧美在线一区二区| 久久久欧美精品| 蘑菇福利视频一区播放| 欧美精品九九| 欧美日韩国产综合视频在线观看| 欧美视频在线免费| 国产精品亚洲欧美| 国产精品日韩专区| 久久国产色av| 免费h精品视频在线播放| 欧美激情视频免费观看| 国产精品成人av性教育| 国产亚洲精品美女| 亚洲二区视频在线| 99视频精品全部免费在线| 亚洲综合视频网| 亚洲第一精品在线| 中文亚洲视频在线| 久久精品日产第一区二区三区| 免费在线观看成人av| 欧美三级特黄| 国产综合视频| 日韩视频在线一区二区三区| 亚洲欧美资源在线| 91久久综合| 亚洲欧美中日韩| 欧美成人福利视频| 国产精品日韩欧美综合 | 欧美在线视频二区| 99国内精品| 欧美综合第一页| 欧美激情 亚洲a∨综合| 国产精品夜色7777狼人| 亚洲国产精品一区在线观看不卡| 日韩天堂在线视频| 欧美在线影院| 中文有码久久| 麻豆成人在线播放| 国产精品美女一区二区| 亚洲国产岛国毛片在线| 亚洲欧美日韩一区在线观看| 日韩视频二区| 久久久久久久久综合| 欧美视频官网| 久久国产一二区| 亚洲精品乱码久久久久久黑人| 野花国产精品入口| 亚洲高清在线视频| 欧美亚洲免费电影| 欧美精品一区在线观看| 国产在线观看91精品一区| 一区二区欧美在线观看| 亚洲国产另类精品专区| 欧美一级一区| 欧美国产视频在线| 国产自产女人91一区在线观看| 亚洲免费激情| 亚洲日本中文字幕免费在线不卡| 国产精品国产自产拍高清av| 欧美韩日视频| 亚洲午夜国产一区99re久久| 亚洲人妖在线| 久久精品视频在线看| 午夜视频久久久| 在线中文字幕不卡| 亚洲国产成人久久综合一区| 欧美激情精品久久久久久久变态 | 亚洲国产精品福利| 国产麻豆精品在线观看| 久久久精彩视频| 91久久久久久国产精品| 国产日韩综合| 美女视频网站黄色亚洲| 亚洲精品一区在线| 欧美一区二区三区视频| 亚洲精品中文字幕在线观看| 欧美亚洲一区二区在线| 亚洲主播在线| 亚洲一区欧美二区| 亚洲欧美日产图| 亚洲精选久久| 国产亚洲视频在线观看| 国产精自产拍久久久久久| 国产精品一区二区三区观看| 最新国产乱人伦偷精品免费网站| 日韩视频―中文字幕| 99av国产精品欲麻豆| 欧美成人一二三| 亚洲第一精品夜夜躁人人躁| 久久www免费人成看片高清| 欧美在线一级视频| 国产久一道中文一区| 亚洲一级免费视频| 亚洲欧洲99久久| 国产精品免费网站在线观看| 一本一道久久综合狠狠老精东影业| 日韩视频亚洲视频| 欧美激情日韩| 日韩视频在线观看国产| 中文一区二区| 国产精品久久久免费| 亚洲一级电影| 欧美一区二区三区免费在线看| 国产精品三上| 午夜精品福利一区二区三区av | 亚洲日本欧美在线| a91a精品视频在线观看| 欧美日韩在线不卡| 亚洲无限av看| 久久国产黑丝| 依依成人综合视频| 亚洲精品日本| 欧美日韩久久| 美女黄毛**国产精品啪啪| 久久久亚洲欧洲日产国码αv | 欧美精品在线一区二区| 99日韩精品| 欧美一二三视频| 国产一区欧美| 亚洲精品日产精品乱码不卡| 欧美日本高清一区| 一区二区三区不卡视频在线观看 | 国产女同一区二区| 亚洲电影专区| 欧美精品一区二区精品网| av成人黄色| 久久激情视频| 亚洲成人原创| 中文精品在线| 国产亚洲欧美一区二区| 最新国产精品拍自在线播放| 欧美日韩精品在线观看| 亚洲一区精彩视频| 久久中文欧美| 一本色道久久综合亚洲精品不 | 国产深夜精品福利| 亚洲激情国产| 国产精品国产三级国产普通话99| 欧美亚洲免费| 欧美黄色日本| 亚洲免费一在线| 欧美aaaaaaaa牛牛影院| 这里只有精品丝袜| 久久久久高清| 99re6热只有精品免费观看| 欧美影院一区| 亚洲日韩欧美视频| 久久国产日本精品| 日韩视频不卡| 久久人人97超碰精品888| 亚洲精品在线电影| 久久av红桃一区二区小说| 亚洲国产三级| 欧美一区二区三区精品电影| 最近中文字幕日韩精品| 久久狠狠婷婷| 这里只有视频精品| 欧美va亚洲va国产综合| 亚洲影院色无极综合| 欧美精品性视频| 久久精品国产欧美激情| 国产精品高潮呻吟久久| 亚洲日本欧美在线| 国产三区精品| 亚洲一区二区在线视频| 亚洲国产成人tv| 久久精品成人一区二区三区蜜臀 | 性做久久久久久免费观看欧美| 亚洲国产一区二区在线| 欧美一区视频| 一区二区欧美在线观看|