嵌入式系統開發技術與系統設計策略 智慧應用 影音
Microchip Computex
member

嵌入式系統開發技術與系統設計策略

  • DIGITIMES企劃

為加速嵌入式系統裝置開發,善用開放原始碼資源可以加速開發時程。AVGo
為加速嵌入式系統裝置開發,善用開放原始碼資源可以加速開發時程。AVGo

Pad、iPhone、Apple TV產品全球大風行,造成硬體廠商也紛紛起而效尤,想透過近似的產品設計或是架構概念,來整合出如同iOS Device+iTunes+App Store的服務架構,眼前最能達到設計需求的嵌入式作業系統,也就只有Android最富競爭實力,但考量行動裝置的嵌入式系統開發,不能光看作業系統,而必須從系統、服務、網路機制等多方角度觀察,為用戶整合最佳化的應用環境...

3C硬體裝置,以往在開發的目的上,都會針對其主要應用進行相關的核心功能開發,例如,行動電話自然必須將通訊功能列為首要開發功能,像是電話撥打、接取、簡訊收發,拍照、PIM(Personal Information Management)這類附加功能,反而不是開發重點。

裝置設計不只需要重視效能,相關元件還需採行節能高效的元件,讓節能效益更凸顯。VIA

裝置設計不只需要重視效能,相關元件還需採行節能高效的元件,讓節能效益更凸顯。VIA

雖然多數嵌入式裝置可在市電下運作,但節能訴求亦不可以忽視。Microsoft

雖然多數嵌入式裝置可在市電下運作,但節能訴求亦不可以忽視。Microsoft

嵌入式產品設計,可以整合電源與系統設計,達到最佳化節能使用效益。MIPS

嵌入式產品設計,可以整合電源與系統設計,達到最佳化節能使用效益。MIPS

又如Apple TV智慧型網路電視機制,首重的開發要求應以網路接取與即時影音串流解碼機制為主,需讓整個服務體驗達到最佳化,在開發的主要核心服務設定的不同,對於整個裝置與外部服務的架構設定也會有所差異。

審慎選擇開放原始碼資源 減少開發成本

目前能與iOS Device架構相抗衡的嵌入式系統,其實有相當多的選擇,尤其是多數開放原始碼的開發資源,目前都可以很簡單的轉移開發資源到多數運算平台,對於因應多種開發需求或裝置的專案來說,可以如同變形蟲般因應不同的核心功能設定,去進行最佳化的系統整合設計。

使用開放原始碼的優勢相當多,因為多數的硬體開發專案,大多以特殊的整合模式為主,每個開發專案似乎也無法與另一個專案共享開發成果,這造成每次新專案初始時,開發團隊就必須從頭針對硬體架構、元件特性、裝置I/O...等重新進行學習與整合,造成開發成本提升與時程延宕。

但其實多數裝置的嵌入式系統,都會有5到6成的系統功能為重複性投資,例如,核心的作業系統、I/O、顯示、儲存、檔案系統...等,大多都是近似或根本相同的設計,若今天的系統採取相對具彈性的整合方案,這代表每種特定目的的嵌入式裝置開發時程,最少都可以省掉30~40%重複性的軟體開發投資,將更多開發時程花在精進使用者體驗的操作介面方面。

多數開放源碼資源,都是基於Linux為基礎的嵌入式解決方案為多,使用這些資源雖然可以加速專案開發時程,但有時必須考量的卻不光是技術問題,而是產品在使用這些開放資源後必須擔負的授權義務問題。開放原始碼資源多會聲明GNU GPL授權聲明,其中的差異就會影響產品日後維護與相關開發。

軟體不同授權範圍 影響開發成品商業化應用彈性

GNU GPL(GNU’s Not UNIX General Public License)是一種授權方面的聲明,而不是著作權(CopyRight),即開放原始碼的軟體作者,可以將他的程式碼以GPL規範釋出,而GPL授權即代表該程式碼為完全自由的形式公布與釋出,任何人可以任意下載、使用、複製、修改、販賣該程式碼,但有趣的是,以GPL方式釋出的原始碼進行相關加工、整合開發後的軟體成果,也必須以GNU GPL精神再將成果以相同的條件無償釋出,或提供任何人下載、使用、複製與修改。

在開放源碼的領域,也有另一種採行BSD(Berkeley Software Distribution)相對開放的授權機制,這也相當近似Public Domain的授權方式,以Public Domain而言,就是讓開發者放棄著作權。

也就是說任一人都可以用採Public Domain授權方式的程式碼,進行編改、下載、使用、複製,甚至衍生開發成商品銷售,而不用負擔任何義務。但多數的開放原始碼軟體中,大多以GPL授權方式為主,因為GPL要求必須公開衍生版本與原始碼,也必須延續GPL授權精神,此精神是否會與終端產品的應用機制與服務目標產生互斥,必須在選擇開放原始碼系統前就必須審慎考量。

授權範圍與智財問題 導入開放源碼開發資源也必須列入考量

而在iOS Device所採行的App Store與Music線上下載機制服務模式觀察,Apple採行的方式為較為封閉的服務機制,這對於其未來商業營運模式而言,是相對有利的技術架構,因為內容授權廠商相對於其核心內容的保護,會更重視DRM(Digital Rights Management)數位版權保護的機制。

因為內容商(CP)的思維在於透過內容多元的授權,為內容產製者爭取更多平台的授權回饋營收,當DRM採取過於開放的架構或是開放源碼的解決方案拼湊而成,就極容易被有心人進行破解或使整個服務機制的DRM架構崩解,如此一來,終端用戶的使用權益或許會因此受到影響,而對於數位內容的來源供應者,參與此服務機制的信任感降低,致使其授權量或是熱門內容反而不授權的狀況發生,影響整個服務架構的成形。

關鍵服務應用 需考量是否獨立開發專屬軟體元件

未來的嵌入式系統,若在核心內容服務方面必須考量到DRM或是更嚴密的小額付費與安全機制,這些關鍵的軟體元件,就必須避免利用現成的開放原始碼資源進行開發,或甚至應該採取客制化的手段。

例如,改變編碼技術或使用更強等級的安全機制,或將內容預先在數位化的本體即進行加密,裝置端的嵌入式系統與軟體元件必須搭配如SIM卡認證或是其他認證機制,強化裝置與服務機制的安全性。

除了服務機制與營運模式在導入開放原始碼進行開發前的考量外,其實更多的開發問題會源自GNU GPL的授權協議,因為GNU GPL若要導入商業應用,這代表轉移至裝置的嵌入式系統開發成果,也必須將原始碼公開,甚至提供下載與個人可以任意編修的彈性。

但實際上這麼做的結果等於是把自己的研發成果公開,會不會因此造成競爭對手也可利用相同的 GNU GPL授權資源去架構自己的裝置?或是不當的授權使用造成裝置銷售會有著作權的法律隱憂,在未來嵌入式系統裝置大量使用開放原始碼進行開發時,必須做好更完善的版權管理,達到加速產品開發同時又不會形成新的智財隱憂問題。

節能產品開發要求 成為嵌入式系統開發重要指標

除軟體開發面的考量外,實際開發專案也將面臨如何透過系統程式的協助,達到節約產品功耗目的,在嵌入式系統開發設計中,功耗問題已變成重要議題,除非是不需要移動應用的裝置開發,如Apple TV的電力來源源自市電,自然沒有節電需求,但基於節能減碳的訴求發燒,也必須針對這類固定的嵌入式裝置,考量節約電能的設計。

節約電能的產品開發要求,除可以利用更具能源轉換效率的變壓器來達成,或是選用低功耗、低電壓、低電流的零組件進行電路設計外,實際上觀察裝置的使用模式,反而可以在嵌入式系統上採取更多節約能源的開發方式,讓裝置的耗能可以更進一步滿足綠色產品的開發要求。

USB介面節電關鍵 從細微處達到節電要求

這種節能訴求,多數的開發目的不僅限於手機、PDA和可攜媒體播放器等設備開發,對多數透過交流電電源的設備開發,功耗問題都變成重要關鍵。例如,條碼掃描器、指紋辨識、外部儲存裝置、Wi-Fi無線網卡、鍵盤、滑鼠等裝置,這些周邊都是需透過USB介面取得電力來源的產品,即便這些裝置本身就號稱「低功耗」,而且USB裝置單埠電流也僅限於8mA~100mA,若不在乎這一個部分的節能設計,將會讓裝置整體的節能開發策略出現漏洞。

一般來說,數位邏輯電路功耗產生來源,主要來自漏電流和開關電流部分,在CMOS元件的邏輯閘的漏電流因為數值極小,多數狀況都可以忽略不計,而當元件採行的是專為低功耗裝置開發的微控制器、記憶體時,由於元件本身即採取相對較省電的製程技術,對整體的電子電路也能有較佳的節能表現。

多數的嵌入式設計,在考量裝置節能要求時,會嘗試透過降低裝置的運作頻率,去達到對應的耗能降低機制,但實際上,在裝置的電子電路方面,造成功耗的關鍵在開關的瞬態,每當數位輸出改變0或1狀態時,都會對其元件本身的多處寄生電容、與其相連接的實體電容,進行充/放電動作,不管電容是位在電路上或晶片中,每條訊號線的狀態變動都會消耗系統電力,直覺會理解降低狀態轉換速度,或是調降系統運行時脈,就等於可以降低整體裝置的功耗。

善用微處理器睡眠模式

節能設計真正的挑戰在於,是要在設計中減少處理器完成任務必須執行的指令總數!其實這又回到先前的嵌入式系統的設計目標,此即要求程式設計師必須針對運行的程式,進行程式碼最佳化的強化設計,或是採取相對更具結構化的程式撰寫方式,搭配合適的編譯器或開發工具,因為編譯器的好壞,也會影響最終編譯的程式運行效能,對於裝置的運行功耗有很大影響。

目前常見的微處理器,都會提供休眠、深度休眠等能源節約運行模式,在實際設計中,工程師可以善用這些預設節能狀態,透過補強電路設計,讓裝置的節能效益發揮更高。多數微處理器都可以進入某種程度的睡眠狀態,藉此降低晶片的運行功耗。

最佳化程式碼 亦可達到裝置節能

在休眠狀態下,微處理器將停止執行,這也會讓晶片上許多相關運算資源隨之暫停或關閉。至於晶片所允許的睡眠狀態類型和應用方式,需決定裝置的應用中,哪些狀態是可以處於睡眠模式,而部分運行機制又如何避免睡眠喚醒的時間差所影響。

而採行全面程式碼產生(Omniscient Code Generation;OCG)技術,讓編譯器可保存特定中斷需要的暫存器數值,編譯器能夠確定程式每個中斷會使用的暫存器,因此,根據有效資料產生的程式碼,可取得最小的程式碼,同時可保存與最佳所需指令週期數。

電源系統本身的電路設計 也是影響節能效率關鍵

因應嵌入式系統裝置的高複雜度、高整合特性設計,其嵌入式系統裝置使用的電源系統設計,不能再沿用傳統單一套的電源管理機制來進行整體裝置的電力供應設計,若僅使用單一套電力系統,最終設計的電源管理效益,其能源轉換效率將會受到影響。目前已有多種目的性設計的電源管理IC,可解決電路設計需求,針對各式應用目的設置的方案,讓電力管理應用更容易導入對應的嵌入式系統裝置設計案,為裝置功能提供更多彈性設計。

嵌入式系統裝置,可透過整合電源管理單元,與高性能分離式電源元件,進行系統電池應用管理、功率轉換,來建構相對更完善的電力管理環境。一般作法是,開發人員必須針對不同的功能區塊建構供電標準,提供對應的電力輔助其電路運行,常見的作法是讓電路處於單一電力系統進行供應,但針對特定的功能應用電路,運用高效率的DC/DC電源轉換元件,取得針對此類嵌入式系統裝置特定電路最佳化的電力來源,透過不同電力配置去達到最佳化的電源使用效率設計。