[導(dǎo)讀]搞嵌入式,可能自己還做硬件,那么怎么總體規(guī)劃呢?
1、硬件框圖
首先,總體設(shè)計是需要交付一張硬件框圖的。有的人有強迫癥,需要用visio畫出很多細(xì)節(jié)。有的人,覺得大概把主要的核心器件放一下,示意一下就可以了。自然總體框圖的美觀程度不代表硬件的絕對水平。
當(dāng)然除了表示出芯片,還需要表示出芯片之間的接口??紤]接口的時候,就需要考慮接口的速率。很久以前看到有同事,想在I2C上走視頻信號,應(yīng)該是沒有仔細(xì)考慮視頻信號的帶寬,和I2C總線能夠承載的最大速率。
工欲善其事,必先利其器是說:工匠想要使他的工作做好,一定要先讓工具鋒利。比喻要做好一件事,準(zhǔn)備工作非常重要。語出《論語·衛(wèi)靈公》:子貢問為仁。子曰:“工欲善其事,必先利其器。居是邦也,事其大夫之賢者,友其士之仁者。” 這個準(zhǔn)備工作,當(dāng)然不只是指工具,還有動手之前的策劃、思考、評估、方案設(shè)計、架構(gòu)設(shè)計等。
硬件工程師動手畫原理圖之前,需要畫的一個東東就是,用“猥瑣”(Visio)畫出電路板方案框圖。
2、業(yè)務(wù)模型
硬件知識背景的開發(fā)人員,比較容易先關(guān)注芯片選型和接口的選擇。其實一個總體設(shè)計,應(yīng)該先從電路板(或者說 產(chǎn)品的角度)怎么使用的角度開始思考。特別是電信設(shè)備的電路板,我們需要考慮對外接口,需要考慮數(shù)據(jù)在整個硬件系統(tǒng)里面的流向,同時需要考慮在電路板內(nèi)部,數(shù)據(jù)的流向和走向。
所以,業(yè)務(wù)模型決定的,數(shù)據(jù)通信的帶寬,也決定了FPGA、DSP等芯片外掛的DDR的帶寬和容量。同時業(yè)務(wù)模型,也決定了處理器的能力需求。
如果是非服務(wù)器模型,我們一般用浮點計算和整點計算的算力對芯片的規(guī)格進行約束,如果是服務(wù)器模型,我們需要使用Intel定義的一些算力評估方法對處理器能力進行評估。
所以業(yè)務(wù)決定硬件,而不是先選定硬件再看能夠承載什么樣的業(yè)務(wù)。脫離業(yè)務(wù)模型的評估硬件需求,都是耍流氓。
4、關(guān)鍵器件分析
我們研發(fā)一個新項目的時候,不可避免的會使用我們沒有使用過的器件,甚至是整個公司都沒有使用過的器件。
我們根據(jù)設(shè)計需求選定了基本方案之后,需要對新器件、關(guān)鍵器件進行應(yīng)用分析,輸出應(yīng)用分析報告,并召集相關(guān)人員、管理者、有經(jīng)驗的工程師進行評審和分析。
方案分析過程中需要參考和更新器件的Bug List和設(shè)計注意事項。同時收集案例,并給出應(yīng)對解決措施,提前預(yù)防已知問題。
關(guān)鍵器件不僅僅局限于新引入的器件,還包括復(fù)雜的器件、開發(fā)人員及項目組經(jīng)驗積累都不足的器件。
這個關(guān)鍵器件的分析,我們需要對器件的datasheet進行分析、尋找并Demo板、查閱廠家的errata,尋找已經(jīng)產(chǎn)品化或者已經(jīng)完成過的設(shè)計,部分電路的改動,需要動手做電路實驗、或者做電路仿真,進行驗證。
5、預(yù)布局、結(jié)構(gòu)設(shè)計、熱設(shè)計(焦灼與迭代)
我們根據(jù)需求,明確了必要的功能、性能、然后明確了關(guān)鍵器件,也就是電路板上面大功率器件、新器件、復(fù)雜器件都已經(jīng)敲定了。那么我們可以做一個預(yù)布局,明確電路板尺寸,形狀的大致想法。
我們?yōu)榱藢崿F(xiàn)一個準(zhǔn)確的預(yù)布局,需要輸出一個預(yù)布局原理圖,要求原理圖至少包含主要器件、電源、熱敏感器件和接插件。
預(yù)布局需要把電路板的信號流向、器件功能、主要器件的電源管腳分布、整個電路板的電源的基本分布和流向。
然后把相關(guān)的訴求,提供給ID工程師,給一個基本的ID設(shè)想,然后由結(jié)構(gòu)工程師進行結(jié)構(gòu)設(shè)計的細(xì)化。
如果是成熟的機框,則這個過程相對簡單一些,例如ATCA、VPX這種標(biāo)準(zhǔn)機框。一些個人消費電子產(chǎn)品這個過程反復(fù)的可能性非常大。
為了避免這個過程,硬件工程師在完成初步的預(yù)布局,之后應(yīng)該把自己的設(shè)計訴求,全部記錄在《結(jié)構(gòu)要素圖設(shè)計說明書》中,提供給結(jié)構(gòu)和ID工程師。
硬件工程師需要提供單板布局和器件熱耗(功耗)表、各器件散熱參數(shù)。數(shù)字器件要注意提供盡量準(zhǔn)確的功耗數(shù)據(jù),特別是DDR/FPGA等器件要根據(jù)使用場景進行計算。提供的器件的功耗需要準(zhǔn)確,避免過設(shè)計,也避免散熱風(fēng)險。
當(dāng)存在工程挑戰(zhàn)的時候,硬件需要在預(yù)布局、結(jié)構(gòu)設(shè)計、熱設(shè)計之間進行焦灼和迭代。最終達到一個最佳的平衡的效果,有時候不得已還需要跟需求進行平衡。
6、硬件與軟件
應(yīng)用決定軟件、軟件決定硬件。所以硬件選型,特別是CPU的選型,需要充分考慮軟件需求。小公司,需要考慮軟件工程師的開發(fā)能力和已經(jīng)具備的技術(shù)儲備。大公司,需要考慮公司的軟件路標(biāo)、OS的選型規(guī)劃、軟件開發(fā)工作量、軟件的歸一化、商用OS的供應(yīng)商現(xiàn)狀等等。
首先,總體設(shè)計是需要交付一張硬件框圖的。有的人有強迫癥,需要用visio畫出很多細(xì)節(jié)。有的人,覺得大概把主要的核心器件放一下,示意一下就可以了。自然總體框圖的美觀程度不代表硬件的絕對水平。
當(dāng)然除了表示出芯片,還需要表示出芯片之間的接口??紤]接口的時候,就需要考慮接口的速率。很久以前看到有同事,想在I2C上走視頻信號,應(yīng)該是沒有仔細(xì)考慮視頻信號的帶寬,和I2C總線能夠承載的最大速率。
工欲善其事,必先利其器是說:工匠想要使他的工作做好,一定要先讓工具鋒利。比喻要做好一件事,準(zhǔn)備工作非常重要。語出《論語·衛(wèi)靈公》:子貢問為仁。子曰:“工欲善其事,必先利其器。居是邦也,事其大夫之賢者,友其士之仁者。” 這個準(zhǔn)備工作,當(dāng)然不只是指工具,還有動手之前的策劃、思考、評估、方案設(shè)計、架構(gòu)設(shè)計等。
硬件工程師動手畫原理圖之前,需要畫的一個東東就是,用“猥瑣”(Visio)畫出電路板方案框圖。
2、業(yè)務(wù)模型
硬件知識背景的開發(fā)人員,比較容易先關(guān)注芯片選型和接口的選擇。其實一個總體設(shè)計,應(yīng)該先從電路板(或者說 產(chǎn)品的角度)怎么使用的角度開始思考。特別是電信設(shè)備的電路板,我們需要考慮對外接口,需要考慮數(shù)據(jù)在整個硬件系統(tǒng)里面的流向,同時需要考慮在電路板內(nèi)部,數(shù)據(jù)的流向和走向。
所以,業(yè)務(wù)模型決定的,數(shù)據(jù)通信的帶寬,也決定了FPGA、DSP等芯片外掛的DDR的帶寬和容量。同時業(yè)務(wù)模型,也決定了處理器的能力需求。
如果是非服務(wù)器模型,我們一般用浮點計算和整點計算的算力對芯片的規(guī)格進行約束,如果是服務(wù)器模型,我們需要使用Intel定義的一些算力評估方法對處理器能力進行評估。
所以業(yè)務(wù)決定硬件,而不是先選定硬件再看能夠承載什么樣的業(yè)務(wù)。脫離業(yè)務(wù)模型的評估硬件需求,都是耍流氓。
4、關(guān)鍵器件分析
我們研發(fā)一個新項目的時候,不可避免的會使用我們沒有使用過的器件,甚至是整個公司都沒有使用過的器件。
我們根據(jù)設(shè)計需求選定了基本方案之后,需要對新器件、關(guān)鍵器件進行應(yīng)用分析,輸出應(yīng)用分析報告,并召集相關(guān)人員、管理者、有經(jīng)驗的工程師進行評審和分析。
方案分析過程中需要參考和更新器件的Bug List和設(shè)計注意事項。同時收集案例,并給出應(yīng)對解決措施,提前預(yù)防已知問題。
關(guān)鍵器件不僅僅局限于新引入的器件,還包括復(fù)雜的器件、開發(fā)人員及項目組經(jīng)驗積累都不足的器件。
這個關(guān)鍵器件的分析,我們需要對器件的datasheet進行分析、尋找并Demo板、查閱廠家的errata,尋找已經(jīng)產(chǎn)品化或者已經(jīng)完成過的設(shè)計,部分電路的改動,需要動手做電路實驗、或者做電路仿真,進行驗證。
5、預(yù)布局、結(jié)構(gòu)設(shè)計、熱設(shè)計(焦灼與迭代)
我們根據(jù)需求,明確了必要的功能、性能、然后明確了關(guān)鍵器件,也就是電路板上面大功率器件、新器件、復(fù)雜器件都已經(jīng)敲定了。那么我們可以做一個預(yù)布局,明確電路板尺寸,形狀的大致想法。
我們?yōu)榱藢崿F(xiàn)一個準(zhǔn)確的預(yù)布局,需要輸出一個預(yù)布局原理圖,要求原理圖至少包含主要器件、電源、熱敏感器件和接插件。
預(yù)布局需要把電路板的信號流向、器件功能、主要器件的電源管腳分布、整個電路板的電源的基本分布和流向。
然后把相關(guān)的訴求,提供給ID工程師,給一個基本的ID設(shè)想,然后由結(jié)構(gòu)工程師進行結(jié)構(gòu)設(shè)計的細(xì)化。
如果是成熟的機框,則這個過程相對簡單一些,例如ATCA、VPX這種標(biāo)準(zhǔn)機框。一些個人消費電子產(chǎn)品這個過程反復(fù)的可能性非常大。
為了避免這個過程,硬件工程師在完成初步的預(yù)布局,之后應(yīng)該把自己的設(shè)計訴求,全部記錄在《結(jié)構(gòu)要素圖設(shè)計說明書》中,提供給結(jié)構(gòu)和ID工程師。
硬件工程師需要提供單板布局和器件熱耗(功耗)表、各器件散熱參數(shù)。數(shù)字器件要注意提供盡量準(zhǔn)確的功耗數(shù)據(jù),特別是DDR/FPGA等器件要根據(jù)使用場景進行計算。提供的器件的功耗需要準(zhǔn)確,避免過設(shè)計,也避免散熱風(fēng)險。
當(dāng)存在工程挑戰(zhàn)的時候,硬件需要在預(yù)布局、結(jié)構(gòu)設(shè)計、熱設(shè)計之間進行焦灼和迭代。最終達到一個最佳的平衡的效果,有時候不得已還需要跟需求進行平衡。
6、硬件與軟件
應(yīng)用決定軟件、軟件決定硬件。所以硬件選型,特別是CPU的選型,需要充分考慮軟件需求。小公司,需要考慮軟件工程師的開發(fā)能力和已經(jīng)具備的技術(shù)儲備。大公司,需要考慮公司的軟件路標(biāo)、OS的選型規(guī)劃、軟件開發(fā)工作量、軟件的歸一化、商用OS的供應(yīng)商現(xiàn)狀等等。





