淺談嵌入式產(chǎn)品設(shè)計(jì)的分工合作
一個(gè)完整的嵌入式產(chǎn)品設(shè)計(jì)一般需要涉及到很多方面的工作,包含硬件設(shè)計(jì)、系統(tǒng)BSP包移植、驅(qū)動(dòng)移植、中間協(xié)議層及組件、GUI圖形界面以及終端的應(yīng)用程序。
本文引用地址:http://cafeforensic.com/article/201609/304526.htm如此多的環(huán)節(jié)如果全部由一家公司獨(dú)立完成,勢必在時(shí)間、研發(fā)團(tuán)隊(duì)、費(fèi)用上需要做出巨大的投入,這顯然已經(jīng)和市場對產(chǎn)品要求的快速上市以及高性價(jià)比相矛盾。
那么如何才能使整個(gè)產(chǎn)品符合市場的這兩點(diǎn)要求呢?資深嵌入式技術(shù)經(jīng)理陽坤根據(jù)自己多年在嵌入式領(lǐng)域工作的經(jīng)驗(yàn)提出了個(gè)人的看法,他認(rèn)為社會(huì)的分工合作帶來了巨大的生產(chǎn)力,同樣嵌入式產(chǎn)品的設(shè)計(jì)不可能由一家公司獨(dú)立完成,而一款好的嵌入式產(chǎn)品需要生態(tài)鏈中其他經(jīng)驗(yàn)豐富,專業(yè)的公司來分工合作共同完成。目前很多大公司的存在是因?yàn)樗麄冊谀骋活I(lǐng)域的專業(yè)而不是全能,所以目前來說,一個(gè)完整的嵌入式產(chǎn)品的設(shè)計(jì)工作往往分成幾個(gè)部分來實(shí)現(xiàn)分工協(xié)作。
第一部分:用戶應(yīng)用程序及GUI圖形界面
應(yīng)用程序是一個(gè)范圍最廣、最為靈活的概念,各行各業(yè)有各自不同的特色和要求,這就需要應(yīng)用程序的開發(fā)者對相應(yīng)的行業(yè)有深入的理解。這一部分的執(zhí)行者往往是項(xiàng)目需求的發(fā)起方和產(chǎn)品的整合方。他們往往擁有某一應(yīng)用的核心技術(shù)同時(shí)有自己的行業(yè)客戶群體,但是他們在硬件設(shè)計(jì)及平臺(tái)設(shè)計(jì)方面沒有相關(guān)的經(jīng)驗(yàn)和能力或者因?yàn)槠渌虿辉敢庠谶@方面做太多投入。多數(shù)嵌入式操作系統(tǒng)中GUI圖形界面都不是操作系統(tǒng)必須的組件而是作為上層應(yīng)用圖形庫的方式由用戶來選擇和移植,如Linux操作系統(tǒng)的用戶可以選擇QT或GTK等作為其圖形庫。
第二部分:中間協(xié)議層及組件
這一部分一般包括一些系統(tǒng)基礎(chǔ)應(yīng)用程序、協(xié)議棧以及如音視頻解碼器這樣的中間組件組成。這一類的專業(yè)性往往比較強(qiáng),其相關(guān)技術(shù)掌握在一些專業(yè)的商業(yè)公司手中或由開源組織免費(fèi)發(fā)布。對于商業(yè)公司提供的技術(shù)往往需要通過付費(fèi)來獲取使用權(quán),或者付費(fèi)定制的方式獲取,這些商業(yè)公司及組織我們一般稱其為第三方。
第三部分:硬件設(shè)計(jì)、系統(tǒng)BSP包移植、驅(qū)動(dòng)移植等
中央處理器(英文簡稱CPU),是數(shù)字自動(dòng)化時(shí)代的核心,而嵌入式產(chǎn)品就是為了實(shí)現(xiàn)數(shù)字化和自動(dòng)化的設(shè)備,可見CPU對于嵌入式產(chǎn)品的重要性。項(xiàng)目需求的發(fā)起方和產(chǎn)品的整合方往往只懂得用戶應(yīng)用程序的開發(fā),對于復(fù)雜的CPU如何支持他們的程序卻一竅不通,這就需要另外一些人——嵌入式硬件平臺(tái)供應(yīng)商。
嵌入式硬件平臺(tái)供應(yīng)商就是完成這第三部分工作的分工者,這一部分的工作是整個(gè)產(chǎn)品的基礎(chǔ),是業(yè)界常說的底層。如果底層沒有做到位,那么整個(gè)系統(tǒng)的可靠性將無從談起,現(xiàn)在我們就第三部分的兩個(gè)方面了解底層。
硬件設(shè)計(jì)
由于現(xiàn)在CPU運(yùn)行主頻越來越高,內(nèi)存也從頻率較低的SDRAM一直上升到高速的DDR3。這就使得設(shè)計(jì)不能再以單片機(jī)年代的集總參數(shù)的電路方式來實(shí)現(xiàn),很多時(shí)候必須要以分布參數(shù)的方式來設(shè)計(jì)。我們需要重點(diǎn)考慮的因素包括:電源的完整性、信號的完整性以及EMC,以確保設(shè)計(jì)出來的硬件能夠穩(wěn)定地高負(fù)荷運(yùn)行。電源方面從器件選型、濾波方式到PCB電源層的分布都要做認(rèn)真的分析和規(guī)劃。信號方面我們通過信號上升沿與信號頻率的關(guān)系來判斷該信號是否屬于高速信號。在處理高速信號的時(shí)候我們要注意信號回路的參考平面,保證其有完整地回路。比如時(shí)下火熱的社區(qū)板:基于飛思卡爾i.MX 6 系列處理器的評估板,以及基于TI AM335X的評估板等等。這類板采用了如Cortex-A8 或Cortex-A9這樣的高端處理器,在CPU性能提升的同時(shí),為了滿足更高的吞吐率也升級到了DDR3內(nèi)存,硬件升級也給我們的設(shè)計(jì)帶來了前所未有的挑戰(zhàn)。設(shè)計(jì)這一部分的時(shí)候我們需要從系統(tǒng)平均、滿載及峰值耗電量等方面來充分考慮電源供電負(fù)載能力,并從參考電壓的選取以及DDR信號在PCB走線時(shí)關(guān)鍵信號線的阻抗、以及關(guān)鍵信號組的走線長度處理等方面來確保系統(tǒng)不會(huì)在長時(shí)間的大負(fù)荷數(shù)據(jù)吞吐運(yùn)算時(shí)因?yàn)槟承┬盘栙|(zhì)量或時(shí)序上余量不足造成系統(tǒng)不穩(wěn)定。誠然這些設(shè)計(jì)經(jīng)驗(yàn)不是一蹴而就的,是需要通過長時(shí)間的項(xiàng)目實(shí)踐和理論知識(shí)的結(jié)合而積累起來的,這也是評判一個(gè)公司的這方面的開發(fā)能力的標(biāo)準(zhǔn)之一。
系統(tǒng)BSP包及驅(qū)動(dòng)的移植
方面首先需要工程師對操作系統(tǒng)的架構(gòu)要非常了解,操作系統(tǒng)下對硬件的操作相對于單片機(jī)上俗稱的裸機(jī)代碼有幾個(gè)明顯的區(qū)別。第一、操作系統(tǒng)會(huì)將對硬件的操作抽象成具體的驅(qū)動(dòng)層和應(yīng)用層而不是裸機(jī)的直接操作寄存器的方式。第二、操作系統(tǒng)在驅(qū)動(dòng)層面上往往會(huì)把一類驅(qū)動(dòng)按分層的思想細(xì)分為“針對某一類子系統(tǒng)的核心代碼、控制器代碼和設(shè)備代碼”,使驅(qū)動(dòng)能夠在不同的控制器和設(shè)備間靈活的擴(kuò)展。第三、由于多任務(wù)的存在所以又必須要考慮并發(fā)和互斥等等因素。這些特點(diǎn)使得驅(qū)動(dòng)的控制方式不再直觀易懂。
在嵌入式產(chǎn)品設(shè)計(jì)的分工合作中,項(xiàng)目需求的發(fā)起方和產(chǎn)品的整合方往往會(huì)完成用戶應(yīng)用程序部分,他們是各個(gè)行業(yè)中的資深專家,但是在硬件設(shè)計(jì)及平臺(tái)設(shè)計(jì)方面沒有相關(guān)的經(jīng)驗(yàn)和能力或者因?yàn)槠渌虿辉敢庠谶@方面做太多投入,往往他們都會(huì)找硬件平臺(tái)供應(yīng)商提供這方面的技術(shù)支持。硬件平臺(tái)供應(yīng)商完成分工中的硬件設(shè)計(jì)、系統(tǒng)BSP包移植、驅(qū)動(dòng)移植,由于硬件設(shè)計(jì)、系統(tǒng)BSP包移植、驅(qū)動(dòng)移植有密切聯(lián)系,需要同一個(gè)廠商完成,這就需要廠商有強(qiáng)大的研發(fā)技術(shù)團(tuán)隊(duì),另外產(chǎn)品的整合方常常對他們需求的硬件平臺(tái)有尺寸功能等特殊要求,這還要求嵌入式硬件平臺(tái)供應(yīng)商有專門的定制服務(wù)技術(shù)團(tuán)隊(duì)支持。在國內(nèi)基于ARM的硬件平臺(tái)廠商中,很少有滿足上面要求的同時(shí),又能供應(yīng)種類眾多功能多樣的處理器硬件平臺(tái),其中,英蓓特在此方面已有14年以上的開發(fā)經(jīng)驗(yàn),并與Freescale、TI、Atmel、ARM、ST等世界知名芯片廠商達(dá)成戰(zhàn)略合作伙伴,為眾多嵌入式產(chǎn)品廠商提供硬件平臺(tái)和定制服務(wù)解決方案。另外,如果產(chǎn)品的整合方有對像音視頻解碼器等專業(yè)性往往比較強(qiáng)的需求時(shí),還需要尋求第三方的幫助。
評論