<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 模擬技術(shù) > 業(yè)界動(dòng)態(tài) > 探索IoT應用中對于8位、32位MCU的選擇

探索IoT應用中對于8位、32位MCU的選擇

作者:Josh Norem 時(shí)間:2016-05-26 來(lái)源:電子產(chǎn)品世界 收藏

  延時(shí)

本文引用地址:http://dyxdggzs.com/article/201605/291787.htm

  兩種架構的中斷和函數調用延時(shí)存在很大差異,8051比ARM Cortex-M內核更快。此外,高級外設總線(xiàn)(APB)配備的外設也會(huì )影響延時(shí),這是因為數據必須通過(guò)APB和AMBA高性能總線(xiàn)(AHB)傳輸。最后,當使用高頻內核時(shí)鐘時(shí),許多基于Cortex-M的MCU需要分配APB時(shí)鐘,這也增加了外設延時(shí)。

  我做了個(gè)簡(jiǎn)單的實(shí)驗,實(shí)驗中的中斷是通過(guò)I/O引腳觸發(fā)的。該中斷對引腳發(fā)出一些信號,并根據引發(fā)中斷的引腳更新標志。然后我測量了一些參數,如下表所示。這里的列表顯示了32位的實(shí)現。

  8051內核在中斷服務(wù)程序(ISR)進(jìn)入和退出時(shí)顯示出優(yōu)勢。但是,隨著(zhù)中斷服務(wù)程序(ISR)越來(lái)越大和執行時(shí)間的增加,這些延遲將變得微不足道。和已有原則一致,系統越大,8051的優(yōu)勢越小。此外,如果中斷服務(wù)程序(ISR)涉及到大量數據遷移或大于8位的整數數據運算,中斷服務(wù)程序(ISR)執行時(shí)間的優(yōu)勢將轉向ARM內核。例如,一個(gè)采用新樣本更新16位或32位移動(dòng)平均的ADC ISR可能在A(yíng)RM設備上執行的更快。

  控制vs.處理

  8051內核的基本功能是控制代碼,其中對于變量的訪(fǎng)問(wèn)是分散的,并且使用了許多控制邏輯(if、case等)。8051內核在處理8位數據時(shí)也是非常有效的,而ARM Cortex-M內核擅長(cháng)數據處理和32位運算。此外,32位數據通道使得ARM MCU復制大包的數據更加有效,因為它每次可以移動(dòng)4個(gè)字節,而8051每次僅能夠移動(dòng)1個(gè)字節。因此,那些主要把數據從一個(gè)地方移動(dòng)到另一個(gè)地方(例如UART到CRC或者到USB)的流數據處理的應用更適合選擇基于A(yíng)RM處理器的系統。

  來(lái)做個(gè)簡(jiǎn)單的實(shí)驗。我們編譯以下兩種架構的函數,變量大小為uint8_t、uint16_t和uint32_t。

  uint32_t funcB(uint32_t testA, uint32_t testB){

  return (testA * testB)/(testA—testB)

  }

  |data type | 32bit(-o3) | 8bit |

  | uint8_t | 20 | 13 | bytes

  | uint16_t | 20 | 20 | bytes

  | uint32_t | 16 | 52 | bytes

  隨著(zhù)數據量的增加,8051內核需要越來(lái)越多的代碼來(lái)完成這項工作,最終超過(guò)了ARM函數的大小。16位的情況下在代碼大小上幾乎類(lèi)似,在執行速度上稍好于32位內核,因為相同代碼通常需要更少周期。還有一點(diǎn)很重要,那就是要注意到,只有采用優(yōu)化的ARM編譯代碼時(shí),這種比較才有效。未優(yōu)化的代碼需要花費幾倍長(cháng)的時(shí)間。

  這并不意味著(zhù)有大量數據移動(dòng)或32位運算的應用不應該選擇8051內核完成。在許多情況下,其它方面的考慮將超過(guò)ARM內核的效率優(yōu)勢,或者說(shuō)這種優(yōu)勢是不相關(guān)的??紤]使用UART到SPI橋接器。該應用花費大部分時(shí)間在外設之間復制數據,而ARM內核會(huì )更高效地完成該任務(wù)。然而,這也是一個(gè)非常小的應用,可能小到足以放入一個(gè)僅有2KB存儲容量的器件就足夠合適。

  盡管8051內核效率較低,但它仍然有足夠的處理能力去處理該應用中的高數據速率。對于A(yíng)RM設備來(lái)說(shuō),可用的額外周期可能處于空閑循環(huán)或“WFI”(等待中斷),等待下一個(gè)可用的數據片到來(lái)。在這種情況下,8051內核仍然最有意義,因為額外的CPU周期是微不足道的,而較小的flash封裝會(huì )節約成本。如果我們要利用額外的周期去做些有意義的工作,那么額外的效率將是至關(guān)重要的,且效率越高越可能越有利于A(yíng)RM內核。這個(gè)例子說(shuō)明,清楚被開(kāi)發(fā)系統所關(guān)注的環(huán)境中的各種架構優(yōu)勢是何等重要。作出這個(gè)最佳的決定是簡(jiǎn)單但卻重要的一步。

  指針

  8051設備沒(méi)有像ARM設備那樣的統一的存儲映射,而是對訪(fǎng)問(wèn)代碼(Flash)、IDATA(內部RAM)和XDATA(外部RAM)有不同的指令。為了生成高效的代碼,8051代碼的指針會(huì )說(shuō)明它指向什么空間。然而,在某些情況下,我們使用通用指針,可以指向任何空間,但是這種類(lèi)型的指針是低效的訪(fǎng)問(wèn)。例如,將指針指向緩沖區并將該緩沖區數據輸出到UART的函數。如果指針是XDATA指針,那么XDATA數組能被發(fā)送到UART,但在代碼空間中的數組首先需要被復制到XDATA。通用指針能同時(shí)指向代碼和XDATA空間,但速度較慢,并且需要更多的代碼來(lái)訪(fǎng)問(wèn)。

  專(zhuān)用區域指針在大多情況下能發(fā)揮作用,但是通用指針在編寫(xiě)使用情況未知的可重用代碼時(shí)非常靈活。如果這種情況在應用中很常見(jiàn),那么8051就失去了其效率優(yōu)勢。

  通過(guò)選擇完成工作

  我已經(jīng)注意到多次,運算傾向于選擇ARM,而控制傾向于選擇8051,但沒(méi)有應用僅僅著(zhù)眼于計算或控制。我們怎樣才能表征廣義上的應用,并計算出它的合適范圍呢?

  讓我們考慮一個(gè)由10%的32位計算、25%的控制代碼和65%的一般代碼構成的假定的應用時(shí),它不能明確的歸于8或32位類(lèi)別。這個(gè)應用也更注重代碼空間而不是執行速度,因為它并不需要所有可用MIPS,并且必須為成本進(jìn)行優(yōu)化。成本比應用速度更為重要的事實(shí)在一般代碼情形下將給8051內核帶來(lái)微弱優(yōu)勢。此外,8051內核在控制代碼中有中間等級的優(yōu)勢。ARM內核在32位計算上占上風(fēng),但是這并非是很多應用所考慮的??紤]到所有這些因素,這個(gè)特殊的應用選擇8051內核更加合適。

  如果我們做一細微的改變,假設該應用更關(guān)心執行速度而非成本,那么通用代碼不會(huì )傾向于哪種架構,并且ARM內核在計算代碼中全面占優(yōu)。在這種情況下,雖然有比計算更多的控制代碼,但是總的結果將相當均衡。

  顯然,在這個(gè)過(guò)程中有很多的評估,但是分解應用然后評估每一組件的技術(shù)將幫助確保我們了解在哪種情況下哪種架構有更顯著(zhù)的優(yōu)勢。

  功耗

  當查閱數據手冊時(shí),很容易根據功耗數據得出哪個(gè)MCU更優(yōu)的結論。雖然睡眠模式和工作模式電流性能在某些類(lèi)型MCU上確實(shí)更優(yōu),但是這一評估可能會(huì )非常具有誤導性。

  占空比(在每個(gè)電源模式上分別占用多少時(shí)間)將始終占據能耗的主導地位。除非兩個(gè)器件的占空比相同,否則數據手冊中的電流規格幾乎是沒(méi)有意義的。最適合應用需求的核心架構通常具有更低的能耗。

  假設有一個(gè)系統,在設備被喚醒后添加一個(gè)16位ADC樣本到移動(dòng)平均,然后返回到休眠狀態(tài),直到獲取下一個(gè)樣本時(shí)才又被喚醒。該任務(wù)涉及到大量16位和32位計算。ARM設備將能夠進(jìn)行計算,并比8051設備更快返回到休眠狀態(tài),這會(huì )讓系統功耗更低,即使8051具有更好的睡眠和工作模式電流。當然,如果進(jìn)行的任務(wù)更適合8051設備,那么MCU能耗由于相同的原因而對系統有利。

  外設特性也能夠以這樣或那樣的方式影響功耗。例如,大多數Silicon Labs的EFM32 32位MCU具有低功耗的UART(LEUART),能夠在低功耗模式下接收數據,而卻只有兩個(gè)EFM8 MCU具有此功能。這一外設影響電源的占空比,且在任何需要等待UART通信的應用中都比缺乏LEUART的EFM8在很大程度上有利于EFM32 MCU。遺憾的是,除了讓MCU供應商的本地應用工程師利用EFM8來(lái)解決問(wèn)題,沒(méi)有簡(jiǎn)單的指南來(lái)評估這些外設因素。系統設計人員還應了解各種MCU能耗模式下可完成的處理任務(wù)。

  8位或32位?我仍然不能決定!

  如果考慮到所有這些變量后,仍然不清楚哪些MCU架構是最好的選擇,會(huì )怎樣?那好吧!這說(shuō)明,它們都是很好的選擇,你使用哪種體系結構并不是緊要的事情。如果沒(méi)有明確的技術(shù)優(yōu)勢,那么過(guò)去的經(jīng)驗和個(gè)人喜好在你的MCU架構決定中也起到了很大的作用。此外,你也可以利用這個(gè)機會(huì )去評估可能的未來(lái)項目。如果大多數未來(lái)項目更適合ARM設備,那么選擇ARM,如果未來(lái)項目更側重于降低成本和尺寸,那么就選擇8051。

  這到底意味著(zhù)什么呢?

  8位MCU仍然可以為嵌入式開(kāi)發(fā)人員提供許多功能,并且越來(lái)越關(guān)注物聯(lián)網(wǎng)。當開(kāi)發(fā)人員開(kāi)始設計時(shí),重要的是確保從工具箱中獲得合適的工具。雖然我還是很樂(lè )意把8051出售給可能更適合選擇32位設備的客戶(hù),但是我不禁要想象如果開(kāi)發(fā)人員僅僅花費1個(gè)小時(shí)思考就作出決定,那么他們的工作將會(huì )如何更加容易、最終產(chǎn)品將會(huì )有多好。

  實(shí)際上的難題是,不能僅僅依賴(lài)于PowerPoint演示文稿中的一兩個(gè)要點(diǎn)就得出選擇MCU架構的結論。然而,一旦你有正確的信息,并愿意花一點(diǎn)時(shí)間應用它,就不難作出最佳選擇。

  關(guān)于作者

  Josh Norem是Silicon Labs微控制器和無(wú)線(xiàn)產(chǎn)品系統工程師。他于2006年加入Silicon Labs公司,任職產(chǎn)品和測試工程師,擔任過(guò)包括測試和應用方面的多個(gè)技術(shù)職位,最近擔任系統工程師。在加入Silicon Labs公司之前,Josh就職于A(yíng)MD公司,負責AMD的x86微處理器的系統級速度調試工作。此前,他就職于TI,負責TI的DSP產(chǎn)品的開(kāi)發(fā)和存儲測試。Josh擁有伊利諾斯大學(xué)(University of Illinois)Urbana-Champaign分校電氣工程科學(xué)學(xué)士學(xué)位。


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: Silicon Labs IoT

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>