優(yōu)秀硬件工程師是怎樣的煉成的?大佬直接上干貨分析
完成一個(gè)大的硬件工程,需要考慮的事情很多。所以,這對(duì)工程師的要求就高了些。且看下面是一個(gè)很優(yōu)秀的硬件工程師做的分享,希望能幫助到各位。
一、成本
現(xiàn)象一
程序只要穩(wěn)定就可以了,代碼長(zhǎng)一點(diǎn),效率低一點(diǎn)不是關(guān)鍵。
點(diǎn)評(píng):CPU的速度和存儲(chǔ)器的空間都是用錢(qián)買(mǎi)來(lái)的,如果寫(xiě)代碼時(shí)多花幾天時(shí)間提高一下程序效率,那么從降低CPU主頻和減少存儲(chǔ)器容量所節(jié)約的成本絕對(duì)是劃算的。CPLD/FPGA設(shè)計(jì)也類(lèi)似。
現(xiàn)象二
面板上的指示燈選什么顏色呢?我覺(jué)得藍(lán)色比較特別,就選它吧!
點(diǎn)評(píng):其它紅綠黃橙等顏色的不管大小(5mm以下)封裝如何,都已成熟了幾十年,價(jià)格一般都在5毛錢(qián)以下,而藍(lán)色卻是近三四年才發(fā)明的東西,技術(shù)成熟度和供貨穩(wěn)定度都較差,價(jià)格卻要貴四五倍。目前藍(lán)色指示燈只用在不能用其它顏色替代的場(chǎng)合,如顯示視頻信號(hào)等。
現(xiàn)象三
這點(diǎn)邏輯用74XX的門(mén)電路搭也行,但太土,還是用CPLD吧,顯得高檔多了
點(diǎn)評(píng):74XX的門(mén)電路只幾毛錢(qián),而CPLD至少也得幾十塊,(GAL/PAL雖然只幾塊錢(qián),但公司不推薦使用)。成本提高了N倍不說(shuō),還給生產(chǎn)、文檔等工作增添數(shù)倍的工作。
現(xiàn)象四
我們的系統(tǒng)要求這么高,包括MEM、CPU、FPGA等所有的芯片都要選最快的
點(diǎn)評(píng):在一個(gè)高速系統(tǒng)中并不是每一部分都工作在高速狀態(tài),而器件速度每提高一個(gè)等級(jí),價(jià)格差不多要翻倍,另外還給信號(hào)完整性問(wèn)題帶來(lái)極大的負(fù)面影響。
現(xiàn)象五
這板子的PCB設(shè)計(jì)要求不高,就用細(xì)一點(diǎn)的線,自動(dòng)布吧
點(diǎn)評(píng):自動(dòng)布線必然要占用更大的PCB面積,同時(shí)產(chǎn)生比手動(dòng)布線多好多倍的過(guò)孔,在批量很大的產(chǎn)品中,PCB廠家降價(jià)所考慮的因素除了商務(wù)因素外,就是線寬和過(guò)孔數(shù)量,它們分別影響到PCB的成品率和鉆頭的消耗數(shù)量,節(jié)約了供應(yīng)商的成本,也就給降價(jià)找到了理由。
二:低功耗設(shè)計(jì)
現(xiàn)象一
我們這系統(tǒng)是220V供電,就不用在乎功耗問(wèn)題了
點(diǎn)評(píng):低功耗設(shè)計(jì)并不僅僅是為了省電,更多的好處在于降低了電源模塊及散熱系統(tǒng)的成本、由于電流的減小也減少了電磁輻射和熱噪聲的干擾。隨著設(shè)備溫度的降低,器件壽命則相應(yīng)延長(zhǎng)(半導(dǎo)體器件的工作溫度每提高10度,壽命則縮短一半)。
現(xiàn)象二
這些總線信號(hào)都用電阻拉一下,感覺(jué)放心些
點(diǎn)評(píng):信號(hào)需要上下拉的原因很多,但也不是個(gè)個(gè)都要拉。上下拉電阻拉一個(gè)單純的輸入信號(hào),電流也就幾十微安以下,但拉一個(gè)被驅(qū)動(dòng)了的信號(hào),其電流將達(dá)毫安級(jí),現(xiàn)在的系統(tǒng)常常是地址數(shù)據(jù)各32位,可能還有244/245隔離后的總線及其它信號(hào),都上拉的話(huà),幾瓦的功耗就耗在這些電阻上了(不要用8毛錢(qián)一度電的觀念來(lái)對(duì)待這幾瓦的功耗)。
現(xiàn)象三
這款FPGA還剩這么多門(mén)用不完,可盡情發(fā)揮吧
點(diǎn)評(píng):FGPA的功耗與被使用的觸發(fā)器數(shù)量及其翻轉(zhuǎn)次數(shù)成正比,所以同一型號(hào)的FPGA在不同電路不同時(shí)刻的功耗可能相差100倍。盡量減少高速翻轉(zhuǎn)的觸發(fā)器數(shù)量是降低FPGA功耗的根本方法。
現(xiàn)象四
這些小芯片的功耗都很低,不用考慮
點(diǎn)評(píng):對(duì)于內(nèi)部不太復(fù)雜的芯片功耗是很難確定的,它主要由引腳上的電流確定,一個(gè)ABT16244,沒(méi)有負(fù)載的話(huà)耗電大概不到1毫安,但它的指標(biāo)是每個(gè)腳可驅(qū)動(dòng)60毫安的負(fù)載(如匹配幾十歐姆的電阻),即滿(mǎn)負(fù)荷的功耗最大可達(dá)60*16=960mA,當(dāng)然只是電源電流這么大,熱量都落到負(fù)載身上了。
現(xiàn)象五
降低功耗都是硬件人員的事,與軟件沒(méi)關(guān)系
點(diǎn)評(píng):硬件只是搭個(gè)舞臺(tái),唱戲的卻是軟件,總線上幾乎每一個(gè)芯片的訪問(wèn)、每一個(gè)信號(hào)的翻轉(zhuǎn)差不多都由軟件控制的,如果軟件能減少外存的訪問(wèn)次數(shù)(多使用寄存器變量、多使用內(nèi)部CACHE等)、及時(shí)響應(yīng)中斷(中斷往往是低電平有效并帶有上拉電阻)及其它針對(duì)具體單板的特定措施都將對(duì)降低功耗作出很大的獻(xiàn)。
三:系統(tǒng)效率
現(xiàn)象一
這主頻100M的CPU只能處理70%,換200M主頻的就沒(méi)事了
點(diǎn)評(píng):系統(tǒng)的處理能力牽涉到多種多樣的因素,在通信業(yè)務(wù)中其瓶頸一般都在存儲(chǔ)器上,CPU再快,外部訪問(wèn)快不起來(lái)也是徒勞。
現(xiàn)象二
CPU用大一點(diǎn)的CACHE,就應(yīng)該快了
點(diǎn)評(píng):CACHE的增大,并不一定就導(dǎo)致系統(tǒng)性能的提高,在某些情況下關(guān)閉CACHE反而比使用CACHE還快。原因是搬到CACHE中的數(shù)據(jù)必須得到多次重復(fù)使用才會(huì)提高系統(tǒng)效率。所以在通信系統(tǒng)中一般只打開(kāi)指令CACHE,數(shù)據(jù)CACHE即使打開(kāi)也只局限在部分存儲(chǔ)空間,如堆棧部分。同時(shí)也要求程序設(shè)計(jì)要兼顧C(jī)ACHE的容量及塊大小,這涉及到關(guān)鍵代碼循環(huán)體的長(zhǎng)度及跳轉(zhuǎn)范圍,如果一個(gè)循環(huán)剛好比CACHE大那么一點(diǎn)點(diǎn),又在反復(fù)循環(huán)的話(huà),那就慘了。
現(xiàn)象三
這么多任務(wù)到底是用中斷還是用查詢(xún)呢?還是中斷快些吧
點(diǎn)評(píng):中斷的實(shí)時(shí)性強(qiáng),但不一定快。如果中斷任務(wù)特別多的話(huà),這個(gè)沒(méi)退出來(lái),后面又接踵而至,一會(huì)兒系統(tǒng)就將崩潰了。如果任務(wù)數(shù)量多但很頻繁的話(huà),CPU的很大精力都用在進(jìn)出中斷的開(kāi)銷(xiāo)上,系統(tǒng)效率極為低下,如果改用查詢(xún)方式反而可極大提高效率,但查詢(xún)有時(shí)不能滿(mǎn)足實(shí)時(shí)性要求,所以最好的辦法是在中斷中查詢(xún),即進(jìn)一次中斷就把積累的所有任務(wù)都處理完再退出。
現(xiàn)象四
存儲(chǔ)器接口的時(shí)序都是廠家默認(rèn)的配置,不用修改的
點(diǎn)評(píng):BSP對(duì)存儲(chǔ)器接口設(shè)置的默認(rèn)值都是按最保守的參數(shù)設(shè)置的,在實(shí)際應(yīng)用中應(yīng)結(jié)合總線工作頻率和等待周期等參數(shù)進(jìn)行合理調(diào)配。有時(shí)把頻率降低反而可提高效率,如RAM的存取周期是70ns,總線頻率為40M時(shí),設(shè)3個(gè)周期的存取時(shí)間,即75ns即可;若總線頻率為50M時(shí),必須設(shè)為4個(gè)周期,實(shí)際存取時(shí)間卻放慢到了 80ns。
現(xiàn)象五
一個(gè)CPU處理不過(guò)來(lái),就用兩個(gè)分布處理,處理能力可提高一倍
點(diǎn)評(píng):對(duì)于搬磚頭來(lái)說(shuō),兩個(gè)人應(yīng)該比一個(gè)人的效率高一倍;對(duì)于作畫(huà)來(lái)說(shuō),多一個(gè)人只能幫倒忙。使用幾個(gè)CPU需對(duì)業(yè)務(wù)有較多的了解后才能確定,盡量減少兩個(gè)CPU間協(xié)調(diào)的代價(jià),使1+1盡可能接近2,千萬(wàn)別小于1。
四:可靠性設(shè)計(jì)
現(xiàn)象一
這塊單板已小批量生產(chǎn)了,經(jīng)過(guò)長(zhǎng)時(shí)間測(cè)試沒(méi)發(fā)現(xiàn)任何問(wèn)題
點(diǎn)評(píng):硬件設(shè)計(jì)和芯片應(yīng)用必須符合相關(guān)規(guī)范,尤其是芯片手冊(cè)中提到的所有參數(shù)(耐壓、I/O電平范圍、電流、時(shí)序、溫度PCB布線、電源質(zhì)量等),不能光靠試驗(yàn)來(lái)驗(yàn)證。公司有不少產(chǎn)品都有過(guò)慘痛的教訓(xùn),產(chǎn)品賣(mài)了一兩年,IC廠家換了個(gè)生產(chǎn)線,咱們的板子就不轉(zhuǎn)了,原因就是人家的芯片參數(shù)發(fā)生了點(diǎn)變化,但并沒(méi)有超出手冊(cè)的范圍。如果你以手冊(cè)為準(zhǔn),那他怎么變化都不怕,如果參數(shù)變得超出手冊(cè)范圍了還可找他索賠(假如這時(shí)你的板子還能轉(zhuǎn),那你的可靠性就更牛了)。
現(xiàn)象二
這部分電路只要要求軟件這樣設(shè)計(jì)就不會(huì)有問(wèn)題
點(diǎn)評(píng):硬件上很多電氣特性直接受軟件控制,但軟件是經(jīng)常發(fā)生意外的,程序跑飛了之后無(wú)法預(yù)料會(huì)有什么操作。設(shè)計(jì)者應(yīng)確保不論軟件做什么樣的操作硬件都不應(yīng)在短時(shí)間內(nèi)發(fā)生永久性損壞。
現(xiàn)象三
用戶(hù)操作錯(cuò)誤發(fā)生問(wèn)題就不能怪我了
點(diǎn)評(píng):要求用戶(hù)嚴(yán)格按手冊(cè)操作是沒(méi)錯(cuò)的,但用戶(hù)是人,就有犯錯(cuò)的時(shí)候,不能說(shuō)碰錯(cuò)一個(gè)鍵就死機(jī),插錯(cuò)一個(gè)插頭就燒板子。所以對(duì)用戶(hù)可能犯的各種錯(cuò)誤必須加以保護(hù)。
現(xiàn)象四
這板子壞的原因是對(duì)端的板子出問(wèn)題了,也不是我的責(zé)任
點(diǎn)評(píng):對(duì)于各種對(duì)外的硬件接口應(yīng)有足夠的兼容性,不能因?yàn)閷?duì)方信號(hào)不正常,你就歇著了。它不正常只應(yīng)影響到與其有關(guān)的那部分功能,而其它功能應(yīng)能正常工作,不應(yīng)徹底罷工,甚至永久損壞,而且一旦接口恢復(fù),你也應(yīng)立即恢復(fù)正常。