【導(dǎo)讀】電子工程師一般分為硬件工程師和軟件工程師。以下總結(jié)出電子工程師在設(shè)計(jì)中常犯的20個(gè)錯(cuò)誤。錯(cuò)誤一:這些拉高/拉低的電阻用多大的阻值關(guān)系不大,就選個(gè)整數(shù)5K吧。
硬件工程師:主要負(fù)責(zé)電路分析、設(shè)計(jì);并以電腦軟件為工具進(jìn)行PCB設(shè)計(jì),待工廠PCB制作完畢并且焊接好電子元件之后進(jìn)行測試、調(diào)試;
軟件工程師:主要負(fù)責(zé)單片機(jī)、DSP、ARM、FPGA等嵌入式程序的編寫及調(diào)試。FPGA程序有時(shí)屬硬件工程師工作范疇。
設(shè)計(jì)中常犯的20個(gè)錯(cuò)誤總結(jié)
錯(cuò)誤一
這些拉高/拉低的電阻用多大的阻值關(guān)系不大,就選個(gè)整數(shù)5K吧。
點(diǎn)評:市場上不存在5K的阻值,最接近的是 4.99K(精度1%),其次是5.1K(精度5%),其成本分別比精度為20%的4.7K高4倍和2倍。20%精度的電阻阻值只有1、1.5、2.2、 3.3、4.7、6.8幾個(gè)類別(含10的整數(shù)倍);類似地,20%精度的電容也只有以上幾種值,如果選了其它的值就必須使用更高的精度,成本就翻了幾 倍,卻不能帶來任何好處。
錯(cuò)誤二
這部分電路只要要求軟件這樣設(shè)計(jì)就不會有問題。
點(diǎn)評:硬件上很多電氣特性直接受軟件控制,但軟件是經(jīng)常發(fā)生意外的,程序跑飛了之后無法預(yù)料會有什么操作。設(shè)計(jì)者應(yīng)確保不論軟件做什么樣的操作硬件都不應(yīng)在短時(shí)間內(nèi)發(fā)生永久性損壞。
錯(cuò)誤三
這點(diǎn)邏輯用74XX的門電路搭也行,但太土,還是用CPLD吧,顯得高檔多了。
點(diǎn)評:74XX的門電路只幾毛錢,而CPLD至少也得幾十塊。成本提高了N倍不說,還給生產(chǎn)、文檔等工作增添數(shù)倍的工作。
錯(cuò)誤四
這板子的PCB設(shè)計(jì)要求不高,就用細(xì)一點(diǎn)的線,自動布吧。
點(diǎn)評:自動布線必然要占用更大的PCB面積,同時(shí)產(chǎn)生比手動布線多好多倍的過孔,在批量很大的產(chǎn)品中,PCB廠家降價(jià)所考慮的因素除了商務(wù)因素外,就是線寬和過孔數(shù)量,它們分別影響到PCB的成品率和鉆頭的消耗數(shù)量,節(jié)約了供應(yīng)商的成本,也就給降價(jià)找到了理由。
錯(cuò)誤五
我們這系統(tǒng)是220V供電,就不用在乎功耗問題了。
點(diǎn)評:低功耗設(shè)計(jì)并不僅僅是為了省電,更多的好處在于降低了電源模塊及散熱系統(tǒng)的成本、由于電流的減小也減少了電磁輻射和熱噪聲的干擾。隨著設(shè)備溫度的降低,器件壽命則相應(yīng)延長(半導(dǎo)體器件的工作溫度每提高10度,壽命則縮短一半)。
錯(cuò)誤六
這些總線信號都用電阻拉一下,感覺放心些。
點(diǎn)評:信號需要上下拉的原因很多,但也不是個(gè)個(gè)都要拉。上下拉電阻拉一個(gè)單純的輸入信號,電流也就幾十微安以下,但拉一個(gè)被驅(qū)動了的信號,其電流將達(dá)毫安 級,現(xiàn)在的系統(tǒng)常常是地址數(shù)據(jù)各32位,可能還有244/245隔離后的總線及其它信號,都上拉的話,幾瓦的功耗就耗在這些電阻上了(不要用8毛錢一度電 的觀念來對待這幾瓦的功耗)。
錯(cuò)誤七
CPU和FPGA的這些不用的I/O口怎么處理呢?先讓它空著吧,以后再說。
點(diǎn)評:不用的I/O口如果懸空的話,受外界的一點(diǎn)點(diǎn)干擾就可能成為反復(fù)振蕩的輸入信號了,而MOS器件的功耗基本取決于門電路的翻轉(zhuǎn)次數(shù)。如果把它上拉的話,每個(gè)引腳也會有微安級的電流,所以最好的辦法是設(shè)成輸出(當(dāng)然外面不能接其它有驅(qū)動的信號)。
錯(cuò)誤八
這款FPGA還剩這么多門用不完,可盡情發(fā)揮吧。
點(diǎn)評:FGPA的功耗與被使用的觸發(fā)器數(shù)量及其翻轉(zhuǎn)次數(shù)成正比,所以同一型號的FPGA在不同電路不同時(shí)刻的功耗可能相差100倍。盡量減少高速翻轉(zhuǎn)的觸發(fā)器數(shù)量是降低FPGA功耗的根本方法。
錯(cuò)誤九
這些小芯片的功耗都很低,不用考慮。
點(diǎn)評:對于內(nèi)部不太復(fù)雜的芯片功耗是很難確定的,它主要由引腳上的電流確定,一個(gè)ABT16244,沒有負(fù)載的話耗電大概不到1毫安,但它的指標(biāo)是每個(gè)腳可 驅(qū)動60毫安的負(fù)載(如匹配幾十歐姆的電阻),即滿負(fù)荷的功耗最大可達(dá)60*16=960mA,當(dāng)然只是電源電流這么大,熱量都落到負(fù)載身上了。
錯(cuò)誤十
存儲器有這么多控制信號,我這塊板子只需要用OE和WE信號就可以了,片選就接地吧,這樣讀操作時(shí)數(shù)據(jù)出來得快多了。
點(diǎn)評:大部分存儲器的功耗在片選有效時(shí)(不論OE和WE如何)將比片選無效時(shí)大100倍以上,所以應(yīng)盡可能使用CS來控制芯片,并且在滿足其它要求的情況下盡可能縮短片選脈沖的寬度。
錯(cuò)誤十一
這些信號怎么都有過沖?。恐灰ヅ涞煤?,就可消除了。
點(diǎn)評:除了少數(shù)特定信號外(如100BASE-T、CML),都是有過沖的,只要不是很大,并不一定都需要匹配,即使匹配也并非要匹配得最好。象TTL的輸 出阻抗不到50歐姆,有的甚至20歐姆,如果也用這么大的匹配電阻的話,那電流就非常大了,功耗是無法接受的,另外信號幅度也將小得不能用,再說一般信號 在輸出高電平和輸出低電平時(shí)的輸出阻抗并不相同,也辦法做到完全匹配。所以,TTL、LVDS、422等信號的匹配只要做到過沖可以接受即可。
錯(cuò)誤十二
降低功耗都是硬件人員的事,與軟件沒關(guān)系。
點(diǎn)評:硬件只是搭個(gè)舞臺,唱戲的卻是軟件,總線上幾乎每一個(gè)芯片的訪問、每一個(gè)信號的翻轉(zhuǎn)差不多都由軟件控制的,如果軟件能減少外存的訪問次數(shù)(多使用寄存 器變量、多使用內(nèi)部CACHE等)、及時(shí)響應(yīng)中斷(中斷往往是低電平有效并帶有上拉電阻)及其它爭對具體單板的特定措施都將對降低功耗作出很大的貢獻(xiàn)。
錯(cuò)誤十三
這主頻100M的CPU只能處理70%,換200M主頻的就沒事了
點(diǎn)評:系統(tǒng)的處理能力牽涉到多種多樣的因素,在通信業(yè)務(wù)中其瓶頸一般都在存儲器上,CPU再快,外部訪問快不起來也是徒勞。
錯(cuò)誤十四
CPU用大一點(diǎn)的CACHE,就應(yīng)該快了。
點(diǎn)評:CACHE的增大,并不一定就導(dǎo)致系統(tǒng)性能的提高,在某些情況下關(guān)閉CACHE反而比使用CACHE還快。原因是搬到CACHE中的數(shù)據(jù)必須得到多次 重復(fù)使用才會提高系統(tǒng)效率。所以在通信系統(tǒng)中一般只打開指令CACHE,數(shù)據(jù)CACHE即使打開也只局限在部分存儲空間,如堆棧部分。同時(shí)也要求程序設(shè)計(jì) 要兼顧C(jī)ACHE的容量及塊大小,這涉及到關(guān)鍵代碼循環(huán)體的長度及跳轉(zhuǎn)范圍,如果一個(gè)循環(huán)剛好比CACHE大那么一點(diǎn)點(diǎn),又在反復(fù)循環(huán)的話,那就慘了。
錯(cuò)誤十五
一個(gè)CPU處理不過來,就用兩個(gè)分布處理,處理能力可提高一倍
點(diǎn)評:對于搬磚頭來說,兩個(gè)人應(yīng)該比一個(gè)人的效率高一倍;對于作畫來說,多一個(gè)人只能幫倒忙。使用幾個(gè)CPU需對業(yè)務(wù)有較多的了解后才能確定,盡量減少兩個(gè)CPU間協(xié)調(diào)的代價(jià),使1+1盡可能接近2,千萬別小于1。
錯(cuò)誤十六
這個(gè)CPU帶有DMA模塊,用它來搬數(shù)據(jù)肯定快。
點(diǎn)評:真正的DMA是由硬件搶占總線后同時(shí)啟動兩端設(shè)備,在一個(gè)周期內(nèi)這邊讀,那邊些。但很多嵌入CPU內(nèi)的DMA只是模擬而已,啟動每一次DMA之前要做 不少準(zhǔn)備工作(設(shè)起始地址和長度等),在傳輸時(shí)往往是先讀到芯片內(nèi)暫存,然后再寫出去,即搬一次數(shù)據(jù)需兩個(gè)時(shí)鐘周期,比軟件來搬要快一些(不需要取指令,沒有循環(huán)跳轉(zhuǎn)等額外工作),但如果一次只搬幾個(gè)字節(jié),還要做一堆準(zhǔn)備工作,一般還涉及函數(shù)調(diào)用,效率并不高。所以這種DMA只對大數(shù)據(jù)塊才適用。
錯(cuò)誤十七
為保證干凈的電源,去偶電容是多多益善。
點(diǎn)評:總的來說去偶電容越多電源當(dāng)然會更平穩(wěn),但太多了也有不利因素:浪費(fèi)成本、布線困難、上電沖擊電流太大等。去偶電容的設(shè)計(jì)關(guān)鍵是要選對容量并且放對地方,一般的芯片手冊都有爭對去偶電容的設(shè)計(jì)參考,最好按手冊去做。
錯(cuò)誤十八
用戶操作錯(cuò)誤發(fā)生問題就不能怪我了。
點(diǎn)評:要求用戶嚴(yán)格按手冊操作是沒錯(cuò)的,但用戶是人,就有犯錯(cuò)的時(shí)候,不能說碰錯(cuò)一個(gè)鍵就死機(jī),插錯(cuò)一個(gè)插頭就燒板子。所以對用戶可能犯的各種錯(cuò)誤必須加以保護(hù)。
錯(cuò)誤十九
這板子壞的原因是對端的板子出問題了,也不是我的責(zé)任。
點(diǎn)評:對于各種對外的硬件接口應(yīng)有足夠的兼容性,不能因?yàn)閷Ψ叫盘柌徽?,你就歇著了。它不正常只?yīng)影響到與其有關(guān)的那部分功能,而其它功能應(yīng)能正常工作,不應(yīng)徹底罷工,甚至永久損壞,而且一旦接口恢復(fù),你也應(yīng)立即恢復(fù)正常。。
錯(cuò)誤二十
我們的系統(tǒng)要求這么高,包括MEM、CPU、FPGA等所有的芯片都要選最快的。
點(diǎn)評:在一個(gè)高速系統(tǒng)中并不是每一部分都工作在高速狀態(tài),而器件速度每提高一個(gè)等級,價(jià)格差不多要翻倍,另外還給信號完整性問題帶來極大的負(fù)面影響。