32位元MCU平台間的轉移 智慧應用 影音
Microchip Q1
DForum0515

32位元MCU平台間的轉移

過去數年間,關於微控制器平台標準化的討論不計其數,其目的是為了讓不同MCU供應商產品間的轉移更為容易,且在設計上無需做重大更動。然而,週邊設備才是移轉的真正核心,但所有討論並未涉及週邊設備的部分。

工程師在著手新設計之前會先審視功能需求,依此來決定採用什麼電路以及控制這些電路所需的MCU內建週邊。例如,工業級的人機介面設備需要支援LCD、按鍵、觸控式螢幕與機器的通信、LED以及喇叭?蜂鳴器等,這些功能都需要MCU上的某些週邊,例如用於通信的CAN控制器、用於觸控式螢幕的ADC以及用於蜂鳴器的PWM計時器。

週邊具備的功能越多所需的外部電路就越少,在某些情況下,還能減少需要撰寫的程式碼量。舉例來說,在目的相同的情況下,採用PWM驅動方式較使用特殊蜂鳴器模式來得簡單許多。

核心很重要,但對於設計人員來說卻是抽象的。核心必須滿足兩個基本條件:速度上是否能執行為建立最佳用戶體驗所需的軟體功能,以及是否能有效率地執行所有任務。只要能滿足基本條件,核心類型並不那麼重要。

當然,核心還與韌體?軟體相關。舊有程式碼是工程師必須考慮到的問題,例如,使用現成程式碼能節省多少工作量。然而,這個問題與核心並沒有直接相關,而是與週邊有關。大多數32位元MCU程式碼採用C語言編寫,能重新編譯至任何核心,然而,每家MCU製造商的週邊特性和程式設計模型均專屬於自家產品,這是程式碼難以轉移的主要原因。

為了讓工程師使用起來更方便,MCU製造商會提供一個韌體程式庫,包含設置和使用各種MCU內建週邊的程式碼。不同製造商操作週邊的方式並不相同,甚至特性上也有所不同,將應用程式從一MCU轉移至另一MCU並非簡單的事。

ARM一直以來都在為簡化應用程式的移轉而努力,定義了Cortex微控機軟體介面標準(CMSIS)的韌體抽象化層標準,採用Cortex-M系列核心的MCU生產商其韌體程式庫均已採納了此一標準。遺憾的是,這個標準仍不能克服遷移週邊遇到的困難,也就是說程式碼的移植沒有捷徑。

由於MCU製造商不願簡化其產品到其他供應商產品的可攜性,只能由設計工程師來達成此一目標。透過實現一個抽象化層,由該層創建硬體(即MCU週邊)和應用程式碼之間的標準程式設計介面來實現。

可使用的方法有兩種:方法一為開發一個仲介層或封套資料,進而實現MCU製造商週邊程式庫和您的程式碼間的轉換。這是最快速的解決方案,但會在命令和資料路徑中添加較多程式碼。方法二為定義一個標準的函數和變數命名機制,並將其應用於所有週邊程式庫。此種方法不必添加程式碼卻很費時,取決於週邊設備用法的複雜度。

實現可攜性是件大工程,在開發過程的一開始就必須列入考量。除了韌體?軟體相容性,還有接腳相容的問題。MCU供應商的產品轉移往往要重新布置PCB,而且還需要電容和穩壓器等不同的外部元件。無論使用何種核心,在32位元MCU供應商的產品間轉移均都極為困難,這一切取決於週邊和相關的韌體程式庫,而MCU製造商透過提供韌體程式庫和應用說明來使設計過程盡可能地簡單。

此外,他們也努力減少元件在系列間的遷移工作,卻不願意讓轉移到競爭對手的解決方案變得過於容易。如此一來,這便成為設計工程師要解決的問題,應該要在每一個專案開始前即評估成本和益處。

更多Microchip產品資訊及解決方案請進一步參考「Microchip視頻及資源中心」:http://www.digitimes.com.tw/seminar/20130331_microchip_website/index.asp
(本文由Microchip Technology Inc. MCU32產品部產品行銷經理Erlendur Kristjansson提供,周維棻整理。)