電子產(chǎn)品設計階段的成本控制
摘 要: 本文從幾個(gè)角度來(lái)探討電子產(chǎn)品開(kāi)發(fā)過(guò)程中的開(kāi)發(fā)成本控制方法。開(kāi)發(fā)成本包含時(shí)間成本和資金成本,圍繞這兩點(diǎn),對以下步驟進(jìn)行了分析:項目宏觀(guān)規劃時(shí)的項目分解、文檔制作;硬件設計時(shí)的輔助設計軟件的使用技巧和電路的可塑性設計;在軟件設計方面,提倡使用C語(yǔ)言來(lái)進(jìn)行開(kāi)發(fā)工作。 關(guān)鍵詞: 電子產(chǎn)品 設計 成本控制 EDA PLD 單片機 C語(yǔ)言 我們在設計電子產(chǎn)品的過(guò)程一般都會(huì )對所設計的產(chǎn)品進(jìn)行成本控制,總是盡量簡(jiǎn)化電路,減少元器件、盡量簡(jiǎn)化安裝工序。一般這些簡(jiǎn)化都是針對最終產(chǎn)品的。但是作為開(kāi)發(fā)工作本身也同樣需要成本,也需要進(jìn)行成本控制。尤其是一些產(chǎn)量小、附加值高的非消費類(lèi)產(chǎn)品。 電子產(chǎn)品的開(kāi)發(fā)成本一般包括以下這么幾塊: 1. 項目可行性分析費用 2. 聯(lián)系元器件廠(chǎng)商,獲取器件資料費用 3. 元器件費用 4. 開(kāi)發(fā)人員薪資 5. 樣機測試費用 6. 時(shí)間成本 以上幾個(gè)點(diǎn)的成本控制和管理在很多工程管理的書(shū)籍和資料都有詳細介紹,本文只是根據筆者所做過(guò)的電子設計工程補充一些看法。 進(jìn)入項目可行性分析階段后,項目管理人員應該仔細做好項目規劃工作,一個(gè)項目的成功與否,一般取決于該項目的技術(shù)復雜性和成本復雜性。為了避免由于不可預知的工程復雜性而導致的項目流產(chǎn),項目管理人員在制定設計方案的時(shí)候需要招集各方面的人員,把該項目仔細的分解開(kāi)來(lái),然后針對這些子項目逐一探討分析,仔細地權衡各方面因素,看看是否可行,成功的代價(jià)如何,只有每個(gè)子項目都做到有把握后才能將整個(gè)項目推入實(shí)施階段。 在項目通過(guò)可行性論證后,就轉入正式的開(kāi)發(fā)階段。項目管理人員需要制定詳細的開(kāi)發(fā)的技術(shù)規劃,一個(gè)項目的設計思路確定之后,該產(chǎn)品的開(kāi)發(fā)成本、制造成本和維護成本也就大致確定下來(lái)了。所以一個(gè)不良的規劃,往往會(huì )對項目帶來(lái)災難性的后果。這個(gè)階段項目負責人要和合作的開(kāi)發(fā)人員充分交換意見(jiàn),根據開(kāi)發(fā)人員的數量和專(zhuān)長(cháng)將項目分解開(kāi)來(lái),讓每一個(gè)工程技術(shù)人員完成本項目的一部分工作。 項目開(kāi)始運轉后一定要做好全套設計文檔。文檔中要明確每個(gè)開(kāi)發(fā)者所必須完成的功能和相互之間的接口。同時(shí)也要要求每個(gè)開(kāi)發(fā)人員為自己所開(kāi)發(fā)的模塊做好技術(shù)文檔。表面上看這個(gè)工作增加了開(kāi)發(fā)成本,但這樣不僅有利于該項目今后的擴充維護,也同樣有利于該項目的測試工作。這事實(shí)上降低了項目在這些方面的成本,項目規模越大,在這方面投入所體現的效益就越明顯。同時(shí)這項工作還可以降低由于開(kāi)發(fā)人員流動(dòng)帶來(lái)的工程擴充維護的風(fēng)險,因為技術(shù)文檔越多越詳細,繼承該工作的技術(shù)人員所付出的時(shí)間代價(jià)就越小。 在元器件選擇方面,應盡量使用標準器件或易于采購的器件。因為這些元件產(chǎn)量大,價(jià)格好,供貨渠道也多,對于降低硬件成本有顯而易見(jiàn)的好處。尤其在所設計的產(chǎn)品產(chǎn)量不會(huì )很大的時(shí)候更應該如此。在設計一些高附加值,小批量的產(chǎn)品的時(shí)候,盡量使用硬件模塊和軟件模塊來(lái)設計,這雖然加大了一些投入,但總的來(lái)說(shuō),壓縮開(kāi)發(fā)時(shí)間,讓產(chǎn)品更快面對市場(chǎng)帶來(lái)的效益會(huì )大于這些投入。同時(shí)模塊化設計還可以提高產(chǎn)品的設計質(zhì)量。更可以將開(kāi)發(fā)人員的精力集中于高層次的設計上,提高他們的成就感。 盡量使用各種EDA(電子設計自動(dòng)化)工具。綜合使用各種EDA工具來(lái)完成設計,可以大幅度加快開(kāi)發(fā)進(jìn)度,減少差錯,提高工程質(zhì)量。一提起EDA工具很多人就會(huì )想起Protel、Orcad、Pads等電路板布線(xiàn)軟件。其實(shí)這些工具不僅包含原理圖和電路板布線(xiàn),一般也包含了可編程邏輯器件(PLD)設計、信號仿真等模塊,充分利用這些功能往往可以在設計階段就發(fā)現很多構思和圖紙上的缺陷。對減少設計階段的返工和修改有事半功倍的效果。此外,還有一些別的種類(lèi)的軟件,雖然不是專(zhuān)門(mén)的電子設計軟件,但我們依然可以借用。比如:如果項目中包含了復雜一些的數學(xué)算法(如模糊邏輯和人工神經(jīng)元算法等),我們還可以動(dòng)用專(zhuān)門(mén)的數學(xué)CAD軟件DDMATLAB先仿真一下你的信號處理流程,然后根據仿真的結果來(lái)設計相關(guān)的硬件和軟件。就節約了很多在目標機上反復寫(xiě)片、反復調試算法的時(shí)間。 在設計電路的時(shí)候,修改硬件在所難免。為了便于電路修改,要注意電路的可塑性。電路的可塑性是指電路的可修改能力。如果電路便于修改,會(huì )減少很多開(kāi)發(fā)人員更改電路的低級勞動(dòng)。提高電路的可塑性一般有以下幾種方法: 1. 能夠使用軟件實(shí)現的功能不要用硬件實(shí)現。由于硬件和軟件的物理結構的差異,在修改硬件的時(shí)候要付出比軟件多得多的代價(jià)。用軟件代替硬件后還能降低產(chǎn)成品的成本,便于批量生產(chǎn)和銷(xiāo)售。 2. 如果電路中有CMOS、TTL電路要盡量使用PLD(可編程邏輯器件)來(lái)實(shí)現,因為PLD本身具有可修改的特性。用它們實(shí)現數字邏輯后,要改變邏輯關(guān)系的時(shí)候,只要在計算機上修改它們的邏輯描述文件,然后經(jīng)過(guò)編譯、寫(xiě)片就得到一片新的邏輯關(guān)系的集成電路。就像修改軟件一樣容易。用PLD代替不同的普通數字集成電路后,有利于減少元器件種類(lèi)。方便采購和庫存管理。 3. 試制過(guò)程中適當在電路板上多留一些資源,比如PLD的容量要比你預期的容量稍大一些,單片機的ROM、RAM、I/O端口等資源都要留適當的空余。因為在設計過(guò)程中隨時(shí)會(huì )有很多不可預見(jiàn)的情況發(fā)生,解決這些問(wèn)題,通常會(huì )增加對硬件資源的需求量。如果沒(méi)有在電路板上保留適當的冗余資源,將不得不在電路板外面再搭一塊小電路板。事實(shí)證明,這樣修改電路不僅容易給電路引入干擾信號,而且會(huì )大幅度降低試制樣機的可靠性,同時(shí)會(huì )使技術(shù)人員的很多時(shí)間花費在反復修改電路的簡(jiǎn)單勞動(dòng)上。 編寫(xiě)單片機的軟件的時(shí)候,應該盡量使用高級語(yǔ)言來(lái)編寫(xiě)?,F在許多開(kāi)發(fā)單片機的技術(shù)人員依然保留了80年代的開(kāi)發(fā)方法。使用匯編語(yǔ)言,逐條指令編寫(xiě),并且手工分配單片機中的內存資源。這種方法在寫(xiě)小規模軟件還可以,可一旦軟件規模變大之后,由于匯編語(yǔ)言的低可讀性、低結構性往往會(huì )讓設計人員被自己軟件中的復雜的邏輯關(guān)系搞得暈頭轉向,在一個(gè)軟件的邏輯關(guān)系混亂后,要保證寫(xiě)出來(lái)的軟件能安全運轉是很困難的。 我們推薦使用C語(yǔ)言來(lái)寫(xiě)軟件單片機代碼。(對于常見(jiàn)的8051系列,我們一般使用KEIL、FLANKLIN 等軟件。其它類(lèi)型的單片機一般都有其配套的C語(yǔ)言編譯器,該型號單片機的經(jīng)銷(xiāo)商一般可提供)用C語(yǔ)言有這么幾個(gè)好處: 1. 可以大幅度加快開(kāi)發(fā)進(jìn)度。 2. 可以實(shí)現軟件的結構化編程,它使得軟件的邏輯結構變得清晰、有條理。 3. 在寫(xiě)一些數學(xué)算法和循環(huán)、判斷語(yǔ)句的時(shí)候有比匯編語(yǔ)言高得多的效率。 4. 省去了人工分配內存資源的工作,在匯編語(yǔ)言中我們不得不為每一個(gè)子程序來(lái)分配儲存變量的空間,這是一個(gè)復雜、乏味又容易出差錯的工作。而使用C語(yǔ)言后你只要在代碼中申明一下變量的類(lèi)型,編譯器就會(huì )自動(dòng)為你分配寄存器和內存,低級重復易出差錯的事情都由計算機代勞了。根本不要人工干預。 5. 因為循環(huán)、判斷語(yǔ)句和變量名字都使用自然語(yǔ)言,因此寫(xiě)出來(lái)代碼的可維護性和軟件可讀性很好。這樣當需要更換軟件開(kāi)發(fā)人員的時(shí)候,可以比較容易地進(jìn)行代碼移交和消化。即使沒(méi)有更換人員,他們在維護自己的代碼的時(shí)候也比較容易。 6. 當寫(xiě)好了一個(gè)算法后,以后需要在不同種類(lèi)的CPU上也需要這個(gè)算法時(shí),可以直接引用原來(lái)的代碼,再配合這種CPU專(zhuān)用的編譯器重新編譯就可以了。這樣可以實(shí)現軟件的低成本跨平臺移植。而匯編語(yǔ)言在這種情況下,除了重新寫(xiě)代碼,沒(méi)有別的辦法。因為C語(yǔ)言的這種特性,如果在設計復雜算法時(shí)(比如視頻/音頻信號處理、模糊邏輯和人工神經(jīng)元算法等),可以在PC機上使用Visual C++、C++ Build等x86平臺的C語(yǔ)言編譯器設計、調試該算法的代碼,調試成功后就可以移植到單片機的軟件系統中去。由于PC機上有充足的系統資源,開(kāi)發(fā)調試進(jìn)度會(huì )有大幅度的提高,這樣就節約了軟件的時(shí)間成本。 7. 在團體寫(xiě)作的軟件中,軟件接口容易做到規范統一。 雖然使用C語(yǔ)言寫(xiě)出來(lái)的代碼會(huì )比匯編語(yǔ)言所占用的空間要大5%~20%,但是由于半導體技術(shù)的發(fā)展,芯片的容量和速度有了大幅度的提高。在這種情況下,代碼占用的空間差異已經(jīng)不是很關(guān)鍵的了。相比之下,我們更應該注重軟件是否可以長(cháng)期穩定運行的能力,注重使用先進(jìn)開(kāi)發(fā)工具所帶來(lái)的時(shí)間成本的優(yōu)勢。 |
評論