車用電子:採用DMA智慧型控制器 改善嵌入式系統即時效能

作者: Steve McAslan
2005 年 09 月 08 日

在這個日趨複雜的世界,對於嵌入式處理器的要求也愈來愈高。去年也許使用128k的程式及4個即時處理序列便足以執行應用程式,但是2005年的產品規格已將所需記憶體提升為2倍,中斷處理提高為3倍。要處理的資訊本質似乎非常穩定,其實遠比您想像的還要多!
 

2004年的微控制器必須在兩個通訊匯流排上處理25筆4位元的訊息,而2005年已經必須要在4個通訊匯流排上處理200筆4位元的訊息。在面對這種不斷昇高的工作負荷時,自然傾向尋求更強大的處理器來執行工作。一般來說處理器效能的傳統趨勢是提升速度及資料匯流排,所以一個8位元處理器可從8MHz提升到16MHz,一個16位元的裝置升級為一個32位元的裝置。但是,兩種作法都必須付出應用上的成本。更快的裝置可能消耗更多的電力,而且較不符合EMC的要求,更大的位元寬度則會造成先前的軟體投資優勢盡失,並導致更多的冗餘(例如使用32位元的暫存器來處理4位元的資料)。
 

飛思卡爾半導體(前身為Motorola半導體產品部門)在其新研發的S12X架構中採用可兼顧效能的提升與向後相容性,並專注在效能提升的問題。這個新設計可在需要之處提升處理器的效能,也就是能即時處理資訊。
 

DMA改變系統即時效能
 

改善系統即時效能的一個熟知的方法是,額外提供一個邏輯模組,在事件發生時產生回應,並允許處理器在較方便的時間來處理資訊。這個動態記憶體存取(DMA)控制器通常將傳送到模組的資訊複製到記憶體(RAM),並允許已處理的資訊自動從記憶體移到外部週邊裝置。所有這些工作皆獨立於目前的CPU活動(圖1)。這種方式肯定有所助益,但其效益僅限於延遲必然發生的事件,CPU還是得在某一時間處理資訊。S12X採用一個根本的方法,即提供「智慧型DMA」控制器,不只移動資料,同時直接執行所有的處理工作(圖2)。這個新的XGate可以從週邊裝置擷取資訊,連同其它資料(例如記憶體中的資料)一併處理,然後傳送到另一個週邊裝置,其間完全不需CPU的介入。
 

XGate主要程式儲存於記憶體 以達到最大效能
 

XGate控制器已完全整合到MC9S12XDP512微控制器。XGate是一個可程式的16位元RISC核心,極適用於即時及DMA類型運作。與S12X裝置的整合意謂從微控制器的任何一個週邊裝置傳來的中斷都可以由主CPU或XGate處理。
 

XGate的功能如下:
 

.讀寫所有週邊裝置及記憶體
 

.讀取快閃記憶體(Flash)中的資訊
 

.可設定以執行複雜的工作
 

為了讓XGate達到最大效能,其主要程式通常儲存位於記憶體中。這使得80MHz的時脈可應用於控制器,相對於S12X CPU只需使用40MHz。而且,S12X架構不同於傳統的DMA,可保證XGate每一個CPU周期至少可存取記憶體一次。
 

大幅提昇CRC演算次數 改善系統的自我檢查能力
 

如要讓「智慧型DMA」更為實用,必須使它容易編程。在理想的環境下,軟體工程師應該能夠導入以C語言編寫的既有程式碼,並針對DMA重新組譯。基於這個原因,XGate選擇16位元RISC機器作為程式撰寫模式,並有適用於C語言程式的指令集。
 

一般的系統完整性檢查係透過CRC16計算,也就是對一組資料模塊進行多項式計算,並透過產生最終檢核碼的值,來確認記憶體內容符合預期。這種演算法可利用週期性的中斷來呼叫。S12 MCU的這種演算法之建置如圖3所示。在S12X上,此一演算法可在XGate定期重新組譯及執行,其好處是系統設計者可在CPU上執行更多處理,卻不會降低系統檢查的效益。XGate不僅釋放CPU給其它活動,同時還使這個簡單演算法的執行時間,獲得了4倍的驚人改善。這也讓設計者可以在相同期間所執行的CRC演算次數高4倍,藉此改善系統的自我檢查能力。值得注意的是,這項革命性的架構方法,僅透過簡單的重新組譯及重新導向週期性的中斷,便可帶來這些優點。
 

自動化應用於汽車之中
 

大多數汽車應用對即時效能的要求都很高,通常超過模組的實際功能。例如汽車的儀表板必須可以顯示車輛目前的狀態,同時可接收並處理從感測器傳來的即時訊息。由於XGate不僅可以接收這項資訊,還可予以格式化並儲存,因此CPU可用來回應駕駛人互動的時間便大量增加,更可減少顯示器可能出現的雜訊干擾。根據廣泛使用的S12架構,這種雙重方法的好處就非常明顯了。
 

大多數現代化汽車都是利用通訊閘道來允許不同的通訊網路互傳訊息。此外,閘道還可以執行其它功能。XGate可以在大約4μs內執行一個典型的閘道工作(檢查CAN ID,儲存於記憶體,然後複製到傳送緩衝器(Transmit Buffer)中),而S12需9μs。這表示使用XGate,CPU可儲存高於9μs的中斷。對一個具有5個CAN網路完全滿載的非常忙碌連接閘道而言,它可節省超過20%的CPU處理能力,卻僅用到XGate的10%。
 

對於一個更複雜的閘道而言,要將個別位元欄位或訊號在多個CAN上進行路由傳送,XGate的處理速度通常可高於每秒處理35,000 則訊息。
 

利用軟體建立自訂的解決方案
 

標準的嵌入式軟體設計活動就是建立硬體週邊裝置的軟體版本。典型的實例包括運用I/O建立一個序列通訊埠,或額外的PWM通道。S12X架構藉由建立高度複雜的「虛擬週邊裝置」,讓這種設計方法邁入新的層次。由於CPU的即時回應不受外在事件的影響,它可在配有一個基本CAN模組的裝置上,直接建置完整的CAN節點,從標準的序列埠建立LIN模組,從單一的計時器提供40個PWM通道,還可提供其它變化的方式。由於這些變化完全由軟體控制,便可以混合及搭配各式組合。因此,需要3個32個信箱的CAN模組及2個8個信箱的模組,皆可以提供其需求,並將所有模組都建置在硬體中的方法相比,後者恐怕必須用到所有架構內的可能配置,成本也會大幅增加。
 

簡化即時設計
 

除了提供改善的即時效能,這種雙重架構途徑也可為即時軟體設計者帶來意想不到的好處。許多架構式分析及設計工具依賴設計者將資料流處理與即時或控制處理分開。這個方法可以簡化高階設計,但卻隱藏了在建置時潛藏的效能問題。S12X讓設計者可輕易確保即時處理不會互相衝突,因為主CPU可以完全將重心放在主要資料的處理。
 

(本文作者為飛思卡爾半導體應用經理)
 

》想看更多內容?快來【免費加入會員】【登入會員】,享受更多閱讀文章的權限喔!
標籤
相關文章

突破效率/功率密度技術窒礙 DSC實現高性能數位電源

2009 年 01 月 05 日

開發LED不須替換潛力 主動式熱能管理添動能

2010 年 06 月 10 日

突破EEG/ECG裝置設計挑戰 精密差動放大器成效斐然

2011 年 09 月 05 日

導入預整合多核架構模組 M2M應用設計快易通

2013 年 12 月 26 日

降低運算放大器高失真率 Type-2補償器展妙用

2017 年 05 月 13 日

低故障率設計架構 FPGA關鍵任務成功達陣

2021 年 06 月 24 日
前一篇
ADI推出RF功率測量元件 改善2G和3G行動電話電池壽命
下一篇
3LCD投影技術帶來更明亮的視野