2020-04-30 10:35:54分類:嵌入式硬件開發(fā)設(shè)計7341
以實際的硬件設(shè)計項目為例,一同探討硬件開發(fā)的基本準(zhǔn)則和思想,同時歡迎大家積極提出自己的問題和觀點。
1、充分了解各方的設(shè)計需求,確定合適的解決方案
啟動一個硬件開發(fā)項目,原始的推動力會來自于很多方面,比如市場的需要,基于整個系統(tǒng)架構(gòu)的需要,應(yīng)用軟件部門的功能實現(xiàn)需要,提高系統(tǒng)某方面能力的需要等等,所以作為一個硬件系統(tǒng)的設(shè)計者,要主動的去了解各個方面的需求,并且綜合起來,提出最合適的硬件解決方案。
比如A項目的原始推動力來自于公司內(nèi)部的一個高層軟件小組,他們在實際當(dāng)中發(fā)現(xiàn)原有的處理器板IP轉(zhuǎn)發(fā)能力不能滿足要求,從而對于系統(tǒng)的配置和使用都會造成很大的不便,所以他們提出了對新硬件的需求。
根據(jù)這個目標(biāo),硬件方案中就針對性的選用了兩個高性能網(wǎng)絡(luò)處理器,然后還需要深入的和軟件設(shè)計者交流,以確定內(nèi)存大小,內(nèi)部結(jié)構(gòu),對外接口和調(diào)試接口的數(shù)量及類型等等細(xì)節(jié),比如軟件人員喜歡將控制信令通路和數(shù)據(jù)通路完全分開來,這樣在確定內(nèi)部數(shù)據(jù)走向的時候要慎重考慮。
項目開始之初是需要召開很多的討論會議的,應(yīng)該盡量邀請所有相關(guān)部門來參與,好處有三個,第一可以充分了解大家的需要,以免在系統(tǒng)設(shè)計上遺漏重要的功能,第二是可以讓各個部門了解這個項目的情況,提早做好時間和人員上協(xié)作的準(zhǔn)備,第三是從感情方面講,在設(shè)計之初各個部門就參與了進(jìn)來,這個項目就變成了大家共同的一個心血結(jié)晶,會得到大家的呵護(hù)和良好合作,對完成工作是很有幫助的。
2、原理圖設(shè)計中要注意的問題
原理圖設(shè)計中要有“拿來主義”,現(xiàn)在的芯片廠家一般都可以提供參考設(shè)計的原理圖,所以要盡量的借助這些資源,在充分理解參考設(shè)計的基礎(chǔ)上,做一些自己的發(fā)揮。當(dāng)主要的芯片選定以后,最關(guān)鍵的外圍設(shè)計包括了電源,時鐘和芯片間的互連。
電源是保證硬件系統(tǒng)正常工作的基礎(chǔ),設(shè)計中要詳細(xì)的分析:系統(tǒng)能夠提供的電源輸入;單板需要產(chǎn)生的電源輸出;各個電源需要提供的電流大小;電源電路效率;各個電源能夠允許的波動范圍;整個電源系統(tǒng)需要的上電順序等等。
比如A項目中的網(wǎng)絡(luò)處理器需要1.25V作為核心電壓,要求精度在+5%- -3%之間,電流需要12A左右,根據(jù)這些要求,設(shè)計中采用5V的電源輸入,利用Linear的開關(guān)電源控制器和IR的MOSFET搭建了合適的電源供應(yīng)電路,精度要求決定了輸出電容的ESR選擇,并且為防止電流過大造成的電壓跌落,加入了遠(yuǎn)端反饋的功能。
時鐘電路的實現(xiàn)要考慮到目標(biāo)電路的抖動等要求,A項目中用到了GE的PHY器件,剛開始的時候使用一個內(nèi)部帶鎖相環(huán)的零延時時鐘分配芯片提供100MHz時鐘,結(jié)果GE鏈路上出現(xiàn)了丟包,后來換成簡單的時鐘Buffer器件就解決了丟包問題,分析起來就是內(nèi)部的鎖相環(huán)引入了抖動。
芯片之間的互連要保證數(shù)據(jù)的無誤傳輸,在這方面,高速的差分信號線具有速率高,好布線,信號完整性好等特點,A項目中的多芯片間互連均采用了高速差分信號線,在調(diào)試和測試中沒有出現(xiàn)問題。
3、PCB設(shè)計中要注意的問題
PCB設(shè)計中要做到目的明確,對于重要的信號線要非常嚴(yán)格的要求布線的長度和處理地環(huán)路,而對于低速和不重要的信號線就可以放在稍低的布線優(yōu)先級上。重要的部分包括:電源的分割;內(nèi)存的時鐘線,控制線和數(shù)據(jù)線的長度要求;高速差分線的布線等等。
A項目中使用內(nèi)存芯片實現(xiàn)了1G大小的DDR memory,針對這個部分的布線是非常關(guān)鍵的,要考慮到控制線和地址線的拓?fù)浞植?,?shù)據(jù)線和時鐘線的長度差別控制等方面,在實現(xiàn)的過程中,根據(jù)芯片的數(shù)據(jù)手冊和實際的工作頻率可以得出具體的布線規(guī)則要求,比如同一組內(nèi)的數(shù)據(jù)線長度相差不能超過多少個mil,每個通路之間的長度相差不能超過多少個mil等等。
當(dāng)這些要求確定后就可以明確要求PCB設(shè)計人員來實現(xiàn)了,如果設(shè)計中所有的重要布線要求都明確了,可以轉(zhuǎn)換成整體的布線約束,利用CAD中的自動布線工具軟件來實現(xiàn)PCB設(shè)計,這也是在高速PCB設(shè)計中的一個發(fā)展趨勢。
4、檢查和調(diào)試
當(dāng)準(zhǔn)備調(diào)試一塊板的時候,一定要先認(rèn)真的做好目視檢查,檢查在焊接的過程中是否有可見的短路和管腳搭錫等故障,檢查是否有元器件型號放置錯誤,第一腳放置錯誤,漏裝配等問題,然后用萬用表測量各個電源到地的電阻,以檢查是否有短路,這個好習(xí)慣可以避免貿(mào)然上電后損壞單板。
調(diào)試的過程中要有平和的心態(tài),遇見問題是非常正常的,要做的就是多做比較和分析,逐步的排除可能的原因,要堅信“凡事都是有辦法解決的”和“問題出現(xiàn)一定有它的原因”,這樣最后一定能調(diào)試成功。
總結(jié)
現(xiàn)在從技術(shù)的角度來說,每個設(shè)計最終都可以做出來,但是一個項目的成功與否,不僅僅取決于技術(shù)上的實現(xiàn),還與完成的時間,產(chǎn)品的質(zhì)量,團(tuán)隊的配合密切相關(guān),所以良好的團(tuán)隊協(xié)作,透明坦誠的項目溝通,精細(xì)周密的研發(fā)安排,充裕的物料和人員安排,這樣才能保證一個項目的成功。
一個好的硬件工程師實際上就是一個項目經(jīng)理,他/她需要從外界交流獲取對自己設(shè)計的需求,然后匯總,分析成具體的硬件實現(xiàn)。還要跟眾多的芯片和方案供應(yīng)商聯(lián)系,從中挑選出合適的方案,當(dāng)原理圖完成后,他/她要組織同事來進(jìn)行配合評審和檢查,還要和CAD工程師一起工作來完成PCB的設(shè)計。
與此同時,還要準(zhǔn)備好BOM清單,開始采購和準(zhǔn)備物料,聯(lián)系加工廠家完成板的貼裝。在調(diào)試的過程中他/她要組織好軟件工程師來一起攻關(guān)調(diào)試,配合測試工程師一起解決測試中發(fā)現(xiàn)的問題,等到產(chǎn)品推出到現(xiàn)場,如果出現(xiàn)問題,還需要做到及時的支持。所以做一個硬件設(shè)計人員要鍛煉出良好的溝通能力,面對壓力的調(diào)節(jié)能力,同一時間處理多個事務(wù)的協(xié)調(diào)和決斷能力和良好平和的心態(tài)等等。
還有細(xì)心和認(rèn)真,因為硬件設(shè)計上的一個小疏忽往往就會造成非常大的經(jīng)濟(jì)損失,比如以前碰到一塊板在PCB設(shè)計完備出制造文件的時候誤操作造成了電源層和地層連在了一起,PCB板制造完畢后又沒有檢查直接上生產(chǎn)線貼裝,到測試的時候才發(fā)現(xiàn)短路問題,但是元器件已經(jīng)都焊接到板上了,結(jié)果造成了幾十萬的損失。所以細(xì)心和認(rèn)真的檢查,負(fù)責(zé)任的測試,不懈的學(xué)習(xí)和積累,才能使得一個硬件設(shè)計人員持續(xù)不斷的進(jìn)步。