2007年9月27日 星期四

解決方案的選用與評估

  • 如何補抓萬千變化

嵌入式系統相較於泛用型系統(PC),最大不同是其架構高度客製化,但客製化的目的為啥?理由萬千,但不外乎是預算、現有資源、人力、應用及商業模式等等切入評估,那這些因素會高度影響對方案的選用,因此在選用任何方案之前,應仔細衡量到底需求為何?需求項目的權重為何?才能做出全面的衡量,嵌入式系統因為客製化,是很難回頭,任何投資,都有可以一去不復返,多所思量,多所兼顧,才能避免"Embedded Hell"。

  • 由預算決定

由預算決定是最容易的,有多少錢做多少事,但是預算這個面向要如何取決?預算有幾個面向思考,自己手上有多少研發費用?這產品有多少量?所以一個是看自己,一個是看客戶,還有對通路能掌握多少?這牽扯到利潤,舉個例,工控產品提供商多少掌握通路,在所以可以有更多空間,但如果是消費性電子,幾乎很少掌握通路,尤其是店面,因此一個產品市面價的60~70%,都是在通路商手上,產品提供商只能掌握不到40%的空間,但是消費型電子的量都是以10KK以上計算,所以在量大到這個程度,還是有很大利潤空間,那要如何評估?基本上,可以由市場價格做概略區分,一般以100US粗分層級,100US、200US及300US是三個很基本的層級,100US以下的產品多是8位元的天下,所以當PM跟您說市面目標價是100US以下,那您就是去找8位元的SOC,那對性能要求稍高的,也可以考量16位元的方案,如:DVD Player等,有人提說16位元將被8位元與32位元non-MMU所瓜分,但是只要預算為最高考量的情況,16位元還是有存活空間;在100US上下的空間,可以考量8位元SOC、16位元及低單價的32位元,那100到200US之間產品已經可以跨足含MMU的32位元產品;而超過300US可以考慮Compact PC,以上是消費市場的衡量,但是異質市場的衡量完全不同;若硬體可以使用到含MMU的32位元產品,這時,OS搭配RTOS、linux-like或WinCE都不是問題,需注意的是,WinCE的硬體要求較高,若沒有多媒體需求及炫目的人機介面時,WinCE不是恰當的選擇。

  • 由現有資源決定

如果手邊已有資源,但是需要行動化、低價化或集成化,這時衡量的面向就不同,這意思是,有一個既有的應用,以開發完成,此時最高衡量是如何將其最小更動下達到以上目的;如果架構具有可移植性,那問題很好解決,例如使用Java或.NET等方案,或是有可移植的平台,如:linux,linux具有很高的裁減性,及跨許多硬體平台,相較Windows Embedded產品,對行動化、低價化或集成化有更好彈性;這時需要衡量的問題主要在硬體是否能負荷。

  • 由人力決定

如果,人力成本會超過產品售價的15%,這時人力就變成很重要的衡量點;為何人力成本會超過產品售價的15%?大多是少量的產品才會有的情況,對於少量的產品,會需要使用嵌入式系統,多是安全產業、工業控制及需要行動化的產品,這時售價不是最大考量,穩定、強固及安全性是更重要的重點,那就看人力上熟析啥方案,就用啥方案。

  • 由應用決定

PC等泛用型系統的不耐惡劣天氣、不耐震、高耗能及高硬體需求是嵌入式系統需要面對的問題,但是少了PC的彈性架構,也意味軟體與硬體整合度要更高,由軟體的角度去思考,這是大忌,如果沒有好的架構設計,軟體的再用性會大幅降低,甚至是跟著硬體跑,所以就應用的角度,如何有好的軟硬體協同設計是很重要的,回到應用面的思考,如果,多媒體是您的產品重要項目,那需要整合OS,WinCE應該是首選,若是,您要做個行動網頁瀏覽器,那用嵌入式系統,是個很差的決定,因為很少有能像PC在網頁上支援那樣完整,像微軟的sliverlight,目前就沒有嵌入式流覽器能支援,如果,要做MP3 Player,那8位元的SOC就很夠看,所以在成熟產品,低階硬體都能支援,如果,要做低價手機,當然跟聯發科買晶片組,要做高階手機,就要考慮OMAP或新的DaVinci架構,所以一個很簡單的方法,看市面上現有的產品,買回來拆,看裡面的構成,就可以決定您的方案。

  • 由商業模式決定

基本上,很少有公司會需要討論這項,大多商業模式很固定,不過工研院這樣的研究機構,這就是很大的議題,因為其商業模式跟一般不同,營利並不是其主要目的,還有其他的考量點,因此,如果商業模式是技術輸出的角度,需要有彈性架構基礎,會比較好,此時選擇linux是很好方式,其高度可裁減的特性,讓應用範圍更廣,或是使用微軟的.NET或Sun的Java,都是不錯的方案,讓其應用面更廣。

  • 其他的決策切入點

那也有政策面的衡量,例如:大陸就不喜歡Microsoft的方案,或是多國語言的考量,或是結盟的衡量,也有財團式的衡量,就是內需型的設計,這些都會影響對基礎方案的決策。

  • 不能單一面向評估

多面的的衡量可以創造其他面向,如果以上沒有一個高權重的面向時,也許要多面向的考量,那最重要的是需求的明確化及對未知需求的管理,如果未知需求很高時,軟體抽象化介面和硬體通用界面會變的很重要,讓您的系統有面對未知的能力。

  • 參考資料

2006年微控器五大趨勢,郭長佑,digitimes.com

DSP開發方案的設計與選擇

德州仪器 (TI) 使用入门

嵌入式系統專案的圖像 現代嵌入式系統開發專案實務的圖像 嵌入式系統導論,3e(附CD)的圖像