<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è) > 嵌入式系統 > 設計應用 > Flexis微型控制器內部:包括8位及32位

Flexis微型控制器內部:包括8位及32位

作者:Scott Pape Freescale公司 時(shí)間:2008-09-18 來(lái)源:電子產(chǎn)品世界 收藏

摘要:公司的 產(chǎn)品家族既有8位也有32位CPU核芯片,8位和32位具有相同的外設,并且引腳完全兼容。以血壓監視器為例,如要從8位產(chǎn)品改進(jìn)為一個(gè)較高級的產(chǎn)品,不論硬件還是軟件都不需要變更,增加性能只需在現有裝置上添加部件和軟件。

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

關(guān)鍵詞:;;;;

  高性能還是低成本?低功率還是附加功能?當設計師為他們的最新產(chǎn)品選擇時(shí),必須權衡這些選擇。選擇錯了或需求發(fā)生了變化,你要么屈就于一個(gè)非最佳解決方案,要么得花費額外的時(shí)間和錢(qián)來(lái)把軟件和硬件轉換到另外一個(gè)核上。如果你能選擇一個(gè)產(chǎn)品家族,使得在低成本方案與高性能方案之間的遷移異常簡(jiǎn)單,只需替換你現有硬件中的MCU并重新編譯你的代碼即可,這樣你就事半功倍了。半導體正是這樣考慮的,推出了 微控制器系列。

  Flexis QE128是一個(gè)微控制器產(chǎn)品家族,有8位也有32位CPU核,性能廣泛,具有較好的成本效益。8位核是Freescale的S08核,是長(cháng)期以來(lái)使用的HC05和HC08核的換代升級產(chǎn)品。32位核是ColdFireV1,屬于Freescale ColdFire家族的一個(gè)新版本。為使裝置移植容易,S08和V1具有相同的外設,并且針對針兼容。

CPU對比

  S08和V1的 CPU核存在固有差異。讓我們來(lái)檢視這些差異,并討論如何通過(guò)芯片級設計和開(kāi)發(fā)工具使它們最小化。

程序器的模型

  首先展示每個(gè)CPU的程序設計模型。圖1顯示S08的程序器模型;圖2 是ColdFire V1的程序器模型,上面重疊顯示S08模型,以顯示二者的相似處和不同處。正如你所看到的,V1核的寄存器顯著(zhù)地大許多,數量也多。


圖1 S08程序器模型

  S08有一個(gè)很小的CPU寄存器,以保持小CPU體積,適用于價(jià)格非常敏感的MCU產(chǎn)品組合的低端MCU上。它有一個(gè)8位累加器、一個(gè)16位變址寄存器(由2個(gè)8位寄存器H和X組成)、一個(gè)16位程序計數器(允許最多64千字節的連續存儲器映射)、一個(gè)16位棧指針和一個(gè)8位條件碼寄存器(只有6位用于條件式)。

  相比之下,V1有一個(gè)大得多的CPU寄存器,以使性能最大化。V1有8個(gè)32位數據寄存器,而S08只有一個(gè)8位累加器;8個(gè)32位地址寄存器,而S08只有16位變址寄存器和16位棧指針;一個(gè)32位程序計數器,能尋址一個(gè)16兆字節的存儲器映射。條件碼寄存器實(shí)際上比S08的條件碼寄存器少一位,只有5位,而S08的是6位(中斷屏蔽不包括在V1的CPU內,此功能集成在中斷控制器內)。

S08 與 ColdFire V1有哪些兼容性

  考察了這兩種裝置的CPU之后,你可能疑惑:“S08 QE128 與 V1 QE128 MCUs怎么會(huì )真正兼容呢?”答案很簡(jiǎn)單,Freescale設計CPU核周?chē)鞑糠謺r(shí)都使它們盡可能相同。一個(gè)微控制器的真正實(shí)力是它把多種外設和存儲器集成到同一個(gè)硅片上作為其CPU。

相同外設=相同代碼

  今天,可以買(mǎi)到用于最小的微控制器核的C編譯器。這些用于各個(gè)核的C編譯器各指令系統之間隱含著(zhù)諸多不同點(diǎn),允許程序器使用一個(gè)公用語(yǔ)言。我們剛剛討論的S08 與 V1核之間的不同點(diǎn)隱藏在編譯器的內部工作中。因此,當在這兩種MCU之間切換時(shí),核本身算不上大障礙,但核周?chē)乃胁考钦系K。外設的不同促使你必須掌握新模塊并修改代碼,使模塊能擔任從前MCU所擔任的同樣任務(wù)。

  因此,為使Flexis微控制器家族真正兼容,兩款MCU使用了相同的外設。從A/D轉換器到計時(shí)器模塊,QE128的S08 和 V1使用了相同外設的相同版本。因此,當UART 使用S08 QE128,被配置為115.2kbps、9 個(gè)數據位、2 個(gè)結束位、偶數奇偶校驗,那么,在運行V1 QE128上的相同設置時(shí),根本不必更改代碼。

一個(gè)應用實(shí)例:血壓監視器

  為了演示兩種Flexis QE128的兼容性,我們設計了一個(gè)血壓監視器(BPM)的參考設計,它既可以用S08 QE128也可以用 V1 QE128來(lái)驅動(dòng)。圖3顯示了該BPM的框圖。這個(gè)參考設計有很好的伸縮性,它可以?xún)H采用最少量的硬件來(lái)設計,只測量和顯示血壓;或設計為帶全部的選擇功能,或設計成某中間結合點(diǎn)。




圖3  血壓監視器參考設計的框圖

  最小功能包括帶濾波器的壓力傳感器、OLED顯示器、使用一個(gè)電場(chǎng)傳感器的小鍵盤(pán)接口、用于用戶(hù)告警的基本音頻音調。選項包括USB連通性、ZigBee無(wú)線(xiàn)連通性、上坡血壓測量、自動(dòng)袖帶充氣、用于存儲多個(gè)用戶(hù)測量歷史值的MRAM存儲器、數字化語(yǔ)音音頻告警。印制電路板為模塊化設計,可集成任何功能,若要增加一額外功能,只需在BOM(材料清單)上添加必要元件即可。

  為配合硬件的模塊式設計,軟件也采用同樣設計思路,即通過(guò)添加軟件模塊來(lái)增加附加功能。這些附加模塊被寫(xiě)入,它們或由主程序周期性調用,或通過(guò)中斷服務(wù)程序調用,這樣它們很容易被添加,而不會(huì )影響到其它程序。

產(chǎn)品范圍從低成本到高端

  通過(guò)此參考設計,我們不難看出,兩款Flexis QE128 MCU間的兼容性比較令人滿(mǎn)意。一家公司可以生產(chǎn)一系列BPM,從低成本版本開(kāi)始,利用S08 QE128實(shí)現其基本功能??梢蕴砑尤我贿x項,S08 QE128仍可以維持運行該系統。然而,當越來(lái)越多的選項被添加時(shí),S08 CPU將用完帶寬, V1 QE128所具有的更高性能就成為必需。需要從8位切換至32位的那一點(diǎn),取決于使用了附加功能的哪種組合,因為不同功能需要不同的CPU馬力數。

  讓我們來(lái)仔細研究一下BPM的基本功能,就血壓測量本身來(lái)說(shuō),來(lái)看看兩款Flexis MCU是如何處理它的。測量血壓最容易的方法是給袖帶過(guò)度充氣,使之超過(guò)收縮壓力讀數,然后當袖帶緩緩放氣時(shí),聽(tīng)心跳測量壓力。這里指的是下坡測量法。測量過(guò)血壓的人都知道,袖帶過(guò)度充氣有些不舒服。一些非常敏感的人,尤其是老年人,甚至會(huì )經(jīng)歷過(guò)由于測量導致的皮下出血。

  一種更舒服的測量方法是給袖帶充氣,一旦到達收縮壓時(shí)立即停止,在這期間檢測收縮壓。當袖帶緩緩放氣時(shí),再測量舒張壓。這個(gè)上坡方法避免了袖帶過(guò)度充氣,使病人感覺(jué)相對舒適些。然而,在袖帶充氣期間,收縮壓很難測量,這是由于氣泵產(chǎn)生的噪音,不容易把它與心跳檢測區分開(kāi)來(lái)。

兩種方法,兩款MCU,一套硬件和軟件設計

  對BPM參考設計而言,袖帶的壓力經(jīng)由壓力傳感器被測量,壓力值由帶12位模數轉換器的MCU讀取。由于作用于每次心跳的袖帶壓力的周期性改變,心跳被檢測。對于下坡測量,袖帶被充氣至一個(gè)預定壓力,然后當袖帶放氣時(shí),通過(guò)讀取壓力值心跳被檢測。因為氣泵在放氣期間不工作,壓力讀數的三角區只與心跳符合,這使得計算很容易,只需要最小的數字濾波。在這種情況下,一個(gè)S08 CPU能容易地處理12位模數轉換器的值,尋找符合心跳的三角區,讀出符合收縮壓和舒張壓的壓力讀數。

  對于上坡測量,氣泵將對袖帶壓力改變產(chǎn)生噪音,同時(shí),MCU試圖通過(guò)壓力改變檢測心跳。通過(guò)為模數轉換器的壓力測量采用高級軟件濾波技術(shù),泵噪音被濾波掉,心跳讀數被隔離開(kāi)。然后收縮壓就能被檢測到,氣泵關(guān)閉,袖帶放氣,以檢測舒張壓。 S08 CPU能操作12位的模數轉換器結果的軟件濾波,實(shí)施上坡測量,但它需要CPU帶寬的更大部分,只給其它任務(wù)留下很少的帶寬。而V1 CPU,能容易地對12位數據施用軟件濾波器,為其它任務(wù)留下大量帶寬,例如控制氣泵電動(dòng)機,向病人提供數字語(yǔ)音反饋,在顯示器上實(shí)時(shí)顯示脈率。

Flexis 的優(yōu)勢

  血壓監視器的例子顯示了擁有一個(gè)覆蓋很寬成本范圍的微控制器家族的優(yōu)勢,而且在性能方面實(shí)現針和外設兼容。在這個(gè)例子中,如要改進(jìn)為一個(gè)較高級的產(chǎn)品,不論硬件還是軟件都不需要變更。增加性能只需在現有裝置上添加部件和軟件。8位與32位CPU的不同點(diǎn)由編譯器來(lái)處理,軟件保持不變,因為外設是相同的。

  可伸縮產(chǎn)品的概念可被應用到范圍廣闊的多種應用上:家用和商用安全系統、家庭和工業(yè)自動(dòng)化、玩具、電話(huà)等等。如果用戶(hù)以成本效益為切入點(diǎn),并且愿意支付附加功能的費用,任何此類(lèi)應用都能從這個(gè)可伸縮方法上受益。



評論


相關(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>