新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > Flexis微型控制器內部:包括8位及32位

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

        作者:Scott Pape Freescale公司 時間:2008-09-18 來源:電子產品世界 收藏

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

        本文引用地址:http://www.104case.com/article/88163.htm

        關鍵詞:;;;

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

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

        CPU對比

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

        程序器的模型

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


        圖1 S08程序器模型

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

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

        S08 與 ColdFire V1有哪些兼容性

          考察了這兩種裝置的CPU之后,你可能疑惑:“S08 QE128 與 V1 QE128 MCUs怎么會真正兼容呢?”答案很簡單,Freescale設計CPU核周圍各部分時都使它們盡可能相同。一個微控制器的真正實力是它把多種外設和存儲器集成到同一個硅片上作為其CPU。

        相同外設=相同代碼

          今天,可以買到用于最小的微控制器核的C編譯器。這些用于各個核的C編譯器各指令系統之間隱含著諸多不同點,允許程序器使用一個公用語言。我們剛剛討論的S08 與 V1核之間的不同點隱藏在編譯器的內部工作中。因此,當在這兩種MCU之間切換時,核本身算不上大障礙,但核周圍的所有部件是障礙。外設的不同促使你必須掌握新模塊并修改代碼,使模塊能擔任從前MCU所擔任的同樣任務。

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

        一個應用實例:血壓監視器

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




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

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

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

        產品范圍從低成本到高端

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

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

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

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

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

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

        Flexis 的優勢

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

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



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 宣威市| 班玛县| 曲沃县| 海伦市| 罗源县| 卫辉市| 镶黄旗| 甘洛县| 莆田市| 南溪县| 隆化县| 阜南县| 苍梧县| 永平县| 长阳| 涞源县| 七台河市| 万载县| 甘德县| 当涂县| 鹿邑县| 巴中市| 泸水县| 永顺县| 江北区| 龙泉市| 克拉玛依市| 山西省| 宜宾县| 宁陵县| 天津市| 康定县| 龙井市| 玛纳斯县| 民权县| 巴彦淖尔市| 永城市| 墨玉县| 咸宁市| 奉节县| 洛扎县|