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

          新聞中心

          EEPW首頁 > 電源與新能源 > 設計應用 > 不增加成本的32位移植設計

          不增加成本的32位移植設計

          作者: 時間:2016-12-06 來源:網絡 收藏

            一個8位的或者16位的CPU或許能夠滿足你當前的應用需求。但是為了保持競爭力,你必須對你的產品做出持續(xù)不斷地改進,包括你要不斷的增加它的新特性、不斷地提升它的速度,并在提升它規(guī)格的同時降低成本。如果你不做這些,而你的競爭對手在做,你將被甩開。

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

            保持競爭優(yōu)勢的一個方法是通過逐步改善你現(xiàn)有的設計。但隨著時間的推移,架構的限制可能會是這個過程變得越來越緩慢,成本也越來越高。因此你可以將你的設計移植到32為平臺,這會提升你產品在以下幾個方面的性能。

            

            表1:移植到32位平臺的優(yōu)勢

            你真的需要將你的產品移植到32位平臺嗎?

            當你把產品重一個8位的CPU移植到一個32位的CPU上面的時候,有幾點時一定要考慮的。首先是你現(xiàn)有的CPU是否仍然時可用,你將產品搬到32為平臺是否能夠有一個優(yōu)勢的提升或者性能的改進。8位的應用程序通常是通過簡單的計算實施基本的感知和控制。8位的CPU在計算值低于256的時候,它的位操作和應用程序的表現(xiàn)是很好的,例如一個廣為人知的架構8051。

            即使最小的32位CPU也能做到8位CPU所能做到的一切,如圖1所示。

            1、能夠處理更復雜的計算。例如包括本機自帶的DSP、圖像處理以及姿勢識別功能。

            2、數(shù)據(jù)挖掘和分析、數(shù)據(jù)庫查找。

            3、實時的多任務處理系統(tǒng)。

            

            圖1-使用Dhrystone做基準的單片機性能比較

            即使你不需要使用上述的這些強大性能,32位CPU也能從如下幾個方面提升你的設計:

            能耗:例如這樣一個常見的低功耗設計:CPU先處于睡眠的低功耗模式,定期醒來并在主動模式下執(zhí)行代碼(圖2)。在兩種模式下32位CPU可能需要比8位CPU更多的用電,但32位CPU花更少的時間執(zhí)行代碼。因此,32位CPU更多的時間是在低功耗模式下的。在許多情況下,這可能會導致它的平均功率比8位CPU更小。

            

            圖2:計算密集型任務的平均能耗比較

            可升級:現(xiàn)在,大多數(shù)CPU的銷售是跟著一個可以從低性能升級到高性能的產品系列銷售的。如果你的的產品想要升級,那么你的CPU也是必須可以升級的。CPU升級是就從以下方面而言的:

            1、指令集、系列里的高端成員應該有更多的指令或者更多現(xiàn)有指令的操作模式,同時保持對低端成員的的向后兼容性。

            2、更多的寄存器、或者現(xiàn)有的寄存器有更多的定義位。

            3、更多的功能,例如中斷控制和調試。

            ARM Cortex-M處理器家族是CPU可升級的最好的例子。如圖3所示:

            

            圖3-ARM Cortex-M處理器家族概述

            成本:也許會有一個感知的錯誤,會認為32位CPU會花費跟多的成本。但是隨著技術的發(fā)展,32位的CPU不一定會比8位的CPU貴,現(xiàn)在已經有很多的低成本的32位CPU了。例如:因為它簡單的設計和占有小硅區(qū)域的ARM Cortex-M0內核,使它更加劃算。舉一個Cypress半導體入門級PSOC 4000CPU為例,它只有0.29美元的價格。

            此外,表1顯示支持高代碼密度和更快執(zhí)行速度的32位CPU可以幫助降低成本。

            這不僅僅關系到CPU

            通常只關注您的固件代碼移植到新的CPU。但是,請記住CPU只是MCU的一部分,MCU可以盡可能的為它的CPU提供改進機會去滿足客戶的改進要求。例如:

            1、MCU的外圍設備能夠提升產品的功能嗎?

            2、外圍設備操作能使用更少的代碼嗎?能夠降低CPU的負載嗎?這可能導致該系統(tǒng)使用更少的內存,可能降低成本。

            3、該器件可以幫你節(jié)省板級和系統(tǒng)級的成本嗎?例如,你可以將PCB板上的某些功能移動到MCU里。

            4、MCU足夠靈活,能夠讓你適應不斷變化的需求,而不必制定新電路板嗎?

            最后,請注意,單片機設備通常只有集成開發(fā)環(huán)境(IDE)支持它。確認新的IDE不僅僅是一個編輯器,編譯器和調試器。IDE使您能夠快速構建整個應用程序、使用單片機的硬件特性以及固件可以顯著加速設計。開發(fā)工具包和應用筆記也很有幫助。

            代碼移植技巧

            如果你決定移植一個設計到32位CPU上去,記住這些注意事項:

            選擇一個入門級的32位CPU /單片機和IDE。作為你的第一個移植進入32位器件代碼,請保持它簡單,這將減少引入缺陷的風險,你也會熟悉32位設計的不同之處。選擇一個基本的入門級設備,以及一個IDE,可以簡化移植過程。Cypass半導體的一個例子是PSoC 4000MCU,由PSoC創(chuàng)造IDE支持。

            選擇一個新的編譯器。當你代碼移植到一個新的CPU,你也必須選擇一個新編譯器。大量的編譯器,其中一些是免費的,可用于32位CPU。例如:GCC,ARM/Keil MD,IAR。

            讓你的構建和調試工具工作。創(chuàng)建一個小測試程序,例如閃爍LED燈。你會獲得使用新工具的經驗,這將幫助您完成下面的步驟。

            匯編代碼重寫。理想情況下,你的現(xiàn)有代碼應該用C(或者其他一些更高級的語言)。任何8位處理器的匯編語言代碼是不可移植的。如果你在當前設計中有任何的匯編代碼,考慮在C下面重寫它,在開始移植過程開始之前。

            封裝特別的代碼。如果你的代碼已經模塊化了(編碼最佳實踐)。代碼的移植直接與單片機寄存器對應,比如讀I /O端口,應該和文件中和其余部分的代碼分開。在這些文件中封裝代碼并按功能命名,例如UART_Receive()。然后你可以重寫這些功能為新的單片機無需更改代碼的其余部分。

            其他體系結構更改一個新的單片機可能允許您卸載功能從CPU到外圍設備。此外,一個新的IDE可以自動生成代碼。利用這些特性,考慮重新建構代碼的部分或全部。

            因為32位CPU更容易實現(xiàn)任務切換,考慮重新建構代碼作為一組單獨的任務被一個實時操作系統(tǒng)(RTOS)使用。例如:32位系統(tǒng)RTOS供應商Segger和Micrium。

            增加的構建和調試,在設計新代碼時,最佳的做法是小部分小部分的增加、測試和調試代碼

            。這使得它更容易找到并修復缺陷。這同樣適用于移植——在新的MCU上移植、測試和調試代碼也是一部分一部分的進行。

            CPU和MCU舉例,為了對移植過程有更好地理解,讓我們來詳細了解一下上下文中ARM Cortex-M0和PSoC 4000。ARM Cortex-M0處理器是最小的ARM核心。其寄存器架構(圖4)和指令集使它支持C工具。

            圖4:Cortex-M0登記冊架構

            所有寄存器都是32位,使用32位尋址,擁有4Gbyte地址空間。大多數(shù)8 位CPU僅限于64Kbyte的地址空間。

            有12的通用寄存器。(低寄存器R0-R7有更多的支持指令集)。特殊寄存器包括:

            雙堆棧指針(R13)來幫助實現(xiàn)一個實時操作系統(tǒng)(RTOS)

            鏈接寄存器(R14)快速從函數(shù)調用返回

            程序計數(shù)器(R15)

            程序狀態(tài)寄存器(PSR)包含指令的結果如零和保持標志以及當前異常數(shù)

            中斷屏蔽寄存器

            控制寄存器控制堆棧指針哪個有效

            Cortex-M0核心指令集設置簡單但功能強大并且有大量的處理模式。它擁有優(yōu)秀的代碼密度。從一個8位的CPU將C代碼移植到Cortex-M上,CPU經常使用更少的內存。

            ARM Cortex-M系列CPU指令流水線,如圖5所示。這就增加整體代碼執(zhí)行速度,因為CPU可以執(zhí)行一條指令的同時抓取和解碼后續(xù)指令。

            

            圖5:Cortex-M處理器中的流水線劃分

            ARM Cortex-M CPU系列集成支持中斷直接進入CPU內核,使用一個嵌套矢量中斷控制器(NVIC)。NVIC功能包括:

            自動動態(tài)優(yōu)先級和優(yōu)先等待中斷嵌套

            低延遲——CPU自動存儲和恢復其狀態(tài)沒有指令的開銷

            遲到——一個高優(yōu)先級的中斷在一個低優(yōu)先級中斷服務堆棧推操作期間到來時被優(yōu)先執(zhí)行。

            這些特性能夠更快并決定中斷處理。系統(tǒng)定時器”SysTick”促進RTOS的使用和可以操作在CPU睡眠,也包括在內。有高水平中斷支持可用,您可以考慮改變你的架構更依賴中斷處理。

            ARM的Cortex-M處理器系列集成調試功能在CPU內核,支持多個IDE便于調試。

            Cortex-M0內核是Cortex-M處理器大家庭的一部分,它們有相同的寄存器架構和執(zhí)行部分或全部Thumb-2指令集,這使得它更容易升級到一個更強大的CPU。例如Cypress的PSoC 5 LP Cortex-M3處理器。

            PSoC 4000是入門級PSoC 4系列的一員。除了Cortex-M0處理器,它有一組可靈活動態(tài)配置外圍設備,如圖6所示。

            

            圖6:PSoC 4000框圖

            這種CPU也有電容式觸摸感應特性。電容式感應在成本、性能和防靜電保護方面比機械按鈕有顯著的優(yōu)勢。

            電容式感應功能包括:

            容易實現(xiàn)按鈕、滾動條和接近報警解決方案,每個I/O引腳擁有16個輸入路經

            高信噪比(信噪比)確保在嘈雜的環(huán)境中的觸摸精度

            SmartSense自動調節(jié)速度和不需要校準

            電容式感應塊包括兩個DAC和一個比較器,您可以把它用作其他目的如果CapSense不需要使用。

            Cypress也提供PSoC開發(fā)工具,一個適用于PSoC3、4和和5 LP設備的集成設計環(huán)境(IDE)。PSoC開發(fā)工具是一個免費的基于windows的IDE支持PSoC-based系統(tǒng)的硬件和固件設計。

            你可以使用經典的,熟悉原理圖來設計。組件包括自動生成API代碼,可以大大減少您編寫的代碼量。使用PSoC開發(fā)工具是很容易實現(xiàn)在PSoC系列之間的設計移植在。如圖7所示。

            您還可以導出PSoC的設計到其他IDE,例如:μVision 和IAR。

            

            圖7:PSoC開發(fā)工具進行組件配置

            現(xiàn)在升級遺留8位和16位設計到32位平臺是很簡單的,同時仍然滿足成本目標。幾個因素必須牢記當計劃移植到一個新的CPU;要選擇的一個初級32位單片機并且有好的IDE支持。



          關鍵詞: 32位移植設

          評論


          技術專區(qū)

          關閉
          看屁屁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); })();