<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 8位微控制器在SoC的應(yīng)用

          8位微控制器在SoC的應(yīng)用

          作者: 時(shí)間:2012-02-09 來源:網(wǎng)絡(luò) 收藏

          過去15 年來,許多人都曾預(yù)測(cè)8 位微即將退出舞臺(tái),然而這卻是電子產(chǎn)業(yè)失誤最大的預(yù)測(cè)之一;事實(shí)上,雖然16 和32 位產(chǎn)品已極為常見,8 位微的需求仍繼續(xù)成長(zhǎng),總值約達(dá)到今日100 億美元全球微市場(chǎng)的一半。推動(dòng)8 位市場(chǎng)快速發(fā)展及成長(zhǎng)的動(dòng)力主要來自于8 位產(chǎn)品效能的大幅提升,特別是以8051 系列為基礎(chǔ)的產(chǎn)品,其它原因還包括芯片內(nèi)建功能的加強(qiáng)以及不斷縮小的封裝體積。今天,這類組件已能提供高達(dá)100 MIPS 的產(chǎn)出,這是8 位微控制器在短短幾年前還無法想象的事情。然而重要的不僅是原始運(yùn)算效能,真實(shí)世界是個(gè)模擬世界,因此系統(tǒng)也需要模擬和混合訊號(hào)功能,而且最好內(nèi)建于芯片中。與外在世界的通訊也是問題,核心處理效能需要與其相稱的通訊能力,使它能夠很有效的聯(lián)絡(luò)系統(tǒng)其它組件,這樣才能將強(qiáng)大效能化為實(shí)際優(yōu)點(diǎn)。

          8051 如何跟上今日的效能需求

          最早的8051 是由英特爾在1980 年推出,它讓每一個(gè)指令的執(zhí)行跨越12 個(gè)頻率周期,使得硬件資源的需求減至最少。10 年后,Dallas Semiconductor (今天的Maxim) 利用新設(shè)計(jì)來改善這套架構(gòu),它移除了冗余的總線動(dòng)作,讓典型指令只需要4 個(gè)頻率周期;他們還推出可直接取代8051 的兼容微控制器,可將既有系統(tǒng)的效能立刻提高三倍。

          Silicon Laboratories 的8 位微控制器系列采用了新的專屬設(shè)計(jì)來實(shí)作8051 指令集架構(gòu),它能提供最大的指令產(chǎn)出,同時(shí)維持完整的目的碼 (object code) 兼容能力,以發(fā)展出采用「硬件連接」(hard wired) 實(shí)作方式的C8051F 中央處理器,而不是原來采用微碼(micro-coded) 的設(shè)計(jì)。新設(shè)計(jì)會(huì)將指令集映像到兩級(jí)式基本處理管線,以便提高產(chǎn)出,同時(shí)維持8 位的程序內(nèi)存寬度。這種方法帶來了一系列新組件,它們能在1 或2 個(gè)頻率周期內(nèi)執(zhí)行絕大多數(shù)的指令,效能超過原始8051 設(shè)計(jì)的20 至25 倍。有了這樣的效能,工程師只要利用成本更低的8 位產(chǎn)品,就能支持原本需要較昂貴的16 或32 位微控制器才能執(zhí)行的。

          微控制器現(xiàn)能整合那些功能而不會(huì)犧牲其效能?

          在幾乎所有的電子系統(tǒng)中,工程師都想將最多功能整合至最小空間,這種做法有許多廣為人知的優(yōu)點(diǎn),包括零件數(shù)目降低、庫(kù)存組件減少、制造成本下降、以及可能帶來的更高效能與可靠性。因此,針對(duì)特定評(píng)估所選擇的微控制器時(shí),重要的是從解決方案總成本的角度來考慮這些優(yōu)點(diǎn),而不僅是單顆零件的價(jià)格。

          近幾年來,隨著價(jià)格不斷下滑,芯片內(nèi)建閃存已變得日益流行;除了對(duì)于價(jià)格最敏感的高產(chǎn)量型之外,其它應(yīng)用現(xiàn)都認(rèn)為值得付出少許的代價(jià),來換取超越「可程序一次」(one-time-programmable) 組件的更大彈性。

          在線除錯(cuò) (In-system debug) 也是所想要的功能,由于它們能免除原先所需的昂貴仿真器,新組件的應(yīng)用成本將會(huì)下降,設(shè)計(jì)人員也能更自由的為特定應(yīng)用選擇最合適的組件。雖然32 位的微控制器和數(shù)字訊號(hào)處理器已廣泛提供在線除錯(cuò)功能,但是在Silicon Laboratories 推出C8051F 組件系列之前,8 位產(chǎn)品卻極少提供在線除錯(cuò)功能。精準(zhǔn)振蕩器、模擬數(shù)字轉(zhuǎn)換器和數(shù)字模擬轉(zhuǎn)換器是系統(tǒng)最常需要的模擬零件,溫度量測(cè)功能、電壓參考和比較器也很常用;在數(shù)字外圍方面,外部通訊最常使用的標(biāo)準(zhǔn)包括UART 以及SPI、I2C、USB 和CAN 界面,另外還會(huì)加入功能包括定時(shí)器和可程序計(jì)數(shù)器數(shù)組。

          相較于采用離散零件的解決方案,把模擬數(shù)字轉(zhuǎn)換器和數(shù)字模擬轉(zhuǎn)換器整合至微控制器常會(huì)導(dǎo)致效能下降,特別是模擬功能的線性特性和訊號(hào)雜波比;即便如此,仍有些新組件的效能已不輸給使用最佳零件的解決方案或內(nèi)建16 位、1 MSPS 模擬數(shù)字轉(zhuǎn)換器的其它產(chǎn)品。

          如前所述,8 位微控制器現(xiàn)已能提供高達(dá)100 MIPS 的峰值產(chǎn)出,圖1 就是這類組件的功能線路圖,它是由Silicon Laboratories 所提供的C8051F120,內(nèi)建128 kbytes 閃存、

          本文引用地址:http://www.ex-cimer.com/article/149728.htm

          模擬及數(shù)字功能的整合讓8 位微控制器得以提供接近系統(tǒng)單芯片的功能

          圖1:模擬及數(shù)字功能的整合讓8 位微控制器得以提供接近系統(tǒng)單芯片的功能

          8.25 kbytes RAM 、12 位模擬數(shù)字轉(zhuǎn)換器、12 位數(shù)字模擬轉(zhuǎn)換器以及各種數(shù)字外圍,包括UART、SPI 總線、I2C 總線、定時(shí)器模塊和外部?jī)?nèi)存界面。這顆組件專門支持運(yùn)算量龐大、又需要高效能模擬數(shù)字轉(zhuǎn)換器及數(shù)字模擬轉(zhuǎn)換器的混合訊號(hào)嵌入式應(yīng)用,它還提供在線除錯(cuò)功能。

          典型應(yīng)用:高速電池充電器

          考慮過現(xiàn)有產(chǎn)品后,我們將介紹一項(xiàng)應(yīng)用,其中的混合訊號(hào)微控制器就能提供我們?cè)阡囯x子電池高速充電電路中所討論的優(yōu)點(diǎn)。
          電池必須能迅速、安全而有效的進(jìn)行充電,最佳充電方式通常包含三個(gè)階段:低電流調(diào)節(jié)階段,用來將早期的自我恢復(fù)-(early self healing) 減至最少,同時(shí)避免充電過程太早結(jié)束;定電流充電階段,用來提供大部份電力;以及定電壓階段/充電結(jié)束通常也是時(shí)間最長(zhǎng)的階段。充電過程中,部份電能會(huì)轉(zhuǎn)變?yōu)闊崃?,?dāng)電池達(dá)到滿電力后,所有送給它的能量都會(huì)變成熱量,這可能造成危險(xiǎn)和傷害,因此必須監(jiān)視電池溫度以避免損害。


          上一頁 1 2 下一頁

          關(guān)鍵詞: 應(yīng)用 SoC 控制器

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();