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