天天看點

硬體開發的基本準則

以下我将以一個實際的硬體設計項目為例,和大家一同探讨硬體開發的基本準則和思想,同時歡迎大家積極提出自己的問題和觀點。

  1 充分了解各方的設計需求,确定合适的解決方案

 啟動一個硬體開發項目,原始的推動力會來自于很多方面,比如市場的需要,基于整個系統架構的需要,應用軟體部門的功能實作需要,提高系統某方面能力的需 要等等,是以作為一個硬體系統的設計者,要主動的去了解各個方面的需求,并且綜合起來,提出最合适的硬體解決方案。比如A項目的原始推動力來自于公司内部 的一個高層軟體小組,他們在實際當中發現原有的處理器闆IP轉發能力不能滿足要求,進而對于系統的配置和使用都會造成很大的不便,是以他們提出了對新硬體 的需求。根據這個目标,硬體方案中就針對性的選用了兩個高性能網絡處理器,然後還需要深入的和軟體設計者交流,以确定記憶體大小,内部結構,對外接口和調試 接口的數量及類型等等細節,比如軟體人員喜歡将控制信令通路和資料通路完全分開來,這樣在确定内部資料走向的時候要慎重考慮。項目開始之初是需要召開很多 的讨論會議的,應該盡量邀請所有相關部門來參與,好處有三個,第一可以充分了解大家的需要,以免在系統設計上遺漏重要的功能,第二是可以讓各個部門了解這 個項目的情況,提早做好時間和人員上協作的準備,第三是從感情方面講,在設計之初各個部門就參與了進來,這個項目就變成了大家共同的一個心血結晶,會得到 大家的呵護和良好合作,對完成工作是很有幫助的。

  2 原理圖設計中要注意的問題

  原理圖設計中要有“拿來主義”,現在的晶片廠家一般都可以提供參考設計的原理圖,是以要盡量的借助這些資源,在充分了解參考設計的基礎上,做一些自己的發揮。當主要的晶片標明以後,最關鍵的外圍設計包括了電源,時鐘和晶片間的互連。

 電源是保證硬體系統正常工作的基礎,設計中要詳細的分析:系統能夠提供的電源輸入;單闆需要産生的電源輸出;各個電源需要提供的電流大小;電源電路效 率;各個電源能夠允許的波動範圍;整個電源系統需要的上電順序等等。比如A項目中的網絡處理器需要1.25V作為核心電壓,要求精度在+5%- -3%之間,電流需要12A左右,根據這些要求,設計中采用5V的電源輸入,利用Linear的開關電源控制器和IR的MOSFET搭建了合适的電源供應 電路,精度要求決定了輸出電容的ESR選擇,并且為防止電流過大造成的電壓跌落,加入了遠端回報的功能。

  時鐘電路的實作要考慮到目 标電路的抖動等要求,A項目中用到了GE的PHY器件,剛開始的時候使用一個内部帶鎖相環的零延時時鐘配置設定晶片提供100MHz時鐘,結果GE鍊路上出現 了丢包,後來換成簡單的時鐘Buffer器件就解決了丢包問題,分析起來就是内部的鎖相環引入了抖動。

  晶片之間的互連要保證資料的無誤傳輸,在這方面,高速的差分信号線具有速率高,好布線,信号完整性好等特點,A項目中的多晶片間互連均采用了高速差分信号線,在調試和測試中沒有出現問題。

  3 PCB設計中要注意的問題

  PCB設計中要做到目的明确,對于重要的信号線要非常嚴格的要求布線的長度和處理地環路,而對于低速和不重要的信号線就可以放在稍低的布線優先級上。重要的部分包括:電源的分割;記憶體的時鐘線,控制線和資料線的長度要求;高速差分線的布線等等。

 A項目中使用記憶體晶片實作了1G大小的DDR memory,針對這個部分的布線是非常關鍵的,要考慮到控制線和位址線的拓撲分布,資料線和時鐘線的長度差别控制等方面,在實作的過程中,根據晶片的數 據手冊和實際的工作頻率可以得出具體的布線規則要求,比如同一組内的資料線長度相差不能超過多少個mil,每個通路之間的長度相差不能超過多少個mil等 等。當這些要求确定後就可以明确要求PCB設計人員來實作了,如果設計中所有的重要布線要求都明确了,可以轉換成整體的布線限制,利用CAD中的自動布線 工具軟體來實作PCB設計,這也是在高速PCB設計中的一個發展趨勢。

  4 檢查和調試

  當準備調試一塊闆的時 候,一定要先認真的做好目視檢查,檢查在焊接的過程中是否有可見的短路和管腳搭錫等故障,檢查是否有元器件型号放置錯誤,第一腳放置錯誤,漏裝配等問題, 然後用萬用表測量各個電源到地的電阻,以檢查是否有短路,這個好習慣可以避免貿然上電後損壞單闆。調試的過程中要有平和的心态,遇見問題是非常正常的,要 做的就是多做比較和分析,逐漸的排除可能的原因,要堅信“凡事都是有辦法解決的”和“問題出現一定有它的原因”,這樣最後一定能調試成功。

  5 一些總結的話

 現在從技術的角度來說,每個設計最終都可以做出來,但是一個項目的成功與否,不僅僅取決于技術上的實作,還與完成的時間,産品的品質,團隊的配合密切相 關,是以良好的團隊協作,透明坦誠的項目溝通,精細周密的研發安排,充裕的物料和人員安排,這樣才能保證一個項目的成功。

  一個好的 硬體工程師實際上就是一個項目經理,他/她需要從外界交流擷取對自己設計的需求,然後彙總,分析成具體的硬體實作。還要跟衆多的晶片和方案供應商聯系,從 中挑選出合适的方案,當原理圖完成後,他/她要組織同僚來進行配合評審和檢查,還要和CAD工程師一起工作來完成PCB的設計。與此同時,還要準備好 BOM清單,開始采購和準備物料,聯系加工廠家完成闆的貼裝。在調試的過程中他/她要組織好軟體工程師來一起攻關調試,配合測試工程師一起解決測試中發現 的問題,等到産品推出到現場,如果出現問題,還需要做到及時的支援。是以做一個硬體設計人員要鍛煉出良好的溝通能力,面對壓力的調節能力,同一時間處理多 個事務的協調和決斷能力和良好平和的心态等等。

  還有細心和認真,因為硬體設計上的一個小疏忽往往就會造成非常大的經濟損失,比如以 前碰到一塊闆在PCB設計完備出制造檔案的時候誤操作造成了電源層和地層連在了一起,PCB闆制造完畢後又沒有檢查直接上生産線貼裝,到測試的時候才發現 短路問題,但是元器件已經都焊接到闆上了,結果造成了幾十萬的損失。是以細心和認真的檢查,負責任的測試,不懈的學習和積累,才能使得一個硬體設計人員持 續不斷的進步,而後術業有所小成。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29517383/viewspace-1376436/,如需轉載,請注明出處,否則将追究法律責任。

轉載于:http://blog.itpub.net/29517383/viewspace-1376436/

繼續閱讀