想成為一個優(yōu)秀的硬件工程師,你需要具備這些能力!
一個好的硬件工程師實際上就是一個項目經理,你需要從外界交流獲取對自己設計的需求,然后匯總,分析成具體的硬件實現(xiàn)。還要跟眾多的芯片和方案供應商聯(lián)系,從中挑選出合適的方案,當原理圖完成后,你需要組織同事來進行配合評審和檢查,還要和CAD工程師一起工作來完成PCB的設計。與此同時,要準備好BOM清單,開始采購和準備物料,聯(lián)系加工廠家完成板的貼裝?!?/p>本文引用地址:http://m.butianyuan.cn/article/201707/361577.htm
基本知識
1) 基本設計規(guī)范
2) CPU基本知識、架構、性能及選型指導
3) MOTOROLA公司的PowerPC系列基本知識、性能詳解及選型指導
4) 網(wǎng)絡處理器的基本知識、架構、性能及選型
5) 常用總線的基本知識、性能詳解
6) 各種存儲器的詳細性能介紹、設計要點及選型
7) Datacom、Telecom領域常用物理層接口芯片基本知識,性能、設計要點及選型
8) 常用器件選型要點與精華
9) FPGA、CPLD、EPLD的詳細性能介紹、設計要點及選型指導
10) VHDL和Verilog HDL
11) 網(wǎng)絡基礎
12) 國內大型通信設備公司硬件研究開發(fā)流程
2、熟練掌握并使用業(yè)界最新、最流行的專業(yè)設計工具
1) ViewDraw,PowerPCB,Cam350
2) OrCad, Allegro;AD;PADS
3)各種電路仿真工具
4) 學習熟練使用VIEWDRAW、ORCAD、POWERPCB、SPECCTRA、ALLEGRO、CAM350、等工具;
5) FPGA設計工具,各個廠家的。
一、硬件總體設計
啟動一個硬件開發(fā)項目,原始的推動力會來自于很多方面,比如市場的需要,基于整個系統(tǒng)架構的需要,應用軟件部門的功能實現(xiàn)需要,提高系統(tǒng)某方面能力的需要等等,所以作為一個硬件系統(tǒng)的設計者,要主動的去了解各個方面的需求,并且綜合起來,提出最合適的硬件解決方案。
比如A項目的原始推動力來自于公司內部的一個高層軟件小組,他們在實際當中發(fā)現(xiàn)原有的處理器板IP轉發(fā)能力不能滿足要求,從而對于系統(tǒng)的配置和使用都會造成很大的不便,所以他們提出了對新硬件的需求。根據(jù)這個目標,硬件方案中就針對性的選用了兩個高性能網(wǎng)絡處理器,然后還需要深入的和軟件設計者交流,以確定內存大小,內部結構,對外接口和調試接口的數(shù)量及類型等等細節(jié),比如軟件人員喜歡將控制信令通路和數(shù)據(jù)通路完全分開來,這樣在確定內部數(shù)據(jù)走向的時候要慎重考慮。
項目開始之初是需要召開很多的討論會議的,應該盡量邀請所有相關部門來參與,好處有三個,第一可以充分了解大家的需要,以免在系統(tǒng)設計上遺漏重要的功能,第二是可以讓各個部門了解這個項目的情況,提早做好時間和人員上協(xié)作的準備,第三是從感情方面講,在設計之初各個部門就參與了進來,這個項目就變成了大家共同的一個心血結晶,會得到大家的呵護和良好合作,對完成工作是很有幫助的。
掌握硬件總體設計所必須具備的硬件設計經驗與設計思路
1) 產品需求分析
2) 開發(fā)可行性分析
3) 系統(tǒng)方案調研
4) 總體架構,CPU選型,總線類型
5) 數(shù)據(jù)通信與電信領域主流CPU:M68k系列,
PowerPC860,PowerPC8240,8260體系結構,性能及對比
6) 總體硬件結構設計及應注意的問題
7) 通信接口類型選擇
8) 任務分解
9) 最小系統(tǒng)設計
10) PCI總線知識與規(guī)范
11) 如何在總體設計階段避免出現(xiàn)致命性錯誤
12) 如何合理地進行任務分解以達到事半功倍的效果?
13) 項目案例:中、低端路由器等
二. 硬件原理圖設計技術
目的:通過具體的項目案例,詳細進行原理圖設計全部經驗,設計要點與精髓揭密。
1) 電信與數(shù)據(jù)通信領域主流CPU的原理設計經驗與精華
2) Intel公司PC主板的原理圖設計精髓
3) 網(wǎng)絡處理器的原理設計經驗與精華
4) 總線結構原理設計經驗與精華
5) 內存系統(tǒng)原理設計經驗與精華
6) 數(shù)據(jù)通信與電信領域通用物理層接口的原理設計經驗與精華
7) 電信與數(shù)據(jù)通信設備常用的WATCHDOG的原理設計經驗與精華
8) 電信與數(shù)據(jù)通信設備系統(tǒng)帶電插拔原理設計經驗與精華
9) 晶振與時鐘系統(tǒng)原理設計經驗與精華
10) PCI總線的原理圖設計經驗與精華
11) 項目案例:中、低端路由器等
原理圖設計中要注意的問題:
原理圖設計中要有“拿來主義”,現(xiàn)在的芯片廠家一般都可以提供參考設計的原理圖,所以要盡量的借助這些資源,在充分理解參考設計的基礎上,做一些自己的發(fā)揮。當主要的芯片選定以后,最關鍵的外圍設計包括了電源,時鐘和芯片間的互連。
電源是保證硬件系統(tǒng)正常工作的基礎,設計中要詳細的分析:系統(tǒng)能夠提供的電源輸入;單板需要產生的電源輸出;各個電源需要提供的電流大小;電源電路效率;各個電源能夠允許的波動范圍;整個電源系統(tǒng)需要的上電順序等等。比如A項目中的網(wǎng)絡處理器需要1.25V作為核心電壓,要求精度在+5%- -3%之間,電流需要12A左右,根據(jù)這些要求,設計中采用5V的電源輸入,利用Linear的開關電源控制器和IR的MOSFET搭建了合適的電源供應電路,精度要求決定了輸出電容的ESR選擇,并且為防止電流過大造成的電壓跌落,加入了遠端反饋的功能。
時鐘電路的實現(xiàn)要考慮到目標電路的抖動等要求,A項目中用到了GE的PHY器件,剛開始的時候使用一個內部帶鎖相環(huán)的零延時時鐘分配芯片提供100MHz 時鐘,結果GE鏈路上出現(xiàn)了丟包,后來換成簡單的時鐘Buffer器件就解決了丟包問題,分析起來就是內部的鎖相環(huán)引入了抖動。
芯片之間的互連要保證數(shù)據(jù)的無誤傳輸,在這方面,高速的差分信號線具有速率高,好布線,信號完整性好等特點,A項目中的多芯片間互連均采用了高速差分信號線,在調試和測試中沒有出現(xiàn)問題。
需要熟悉各種電平標準,保證電平匹配。
三.硬件PCB圖設計
目的:通過具體的項目案例,進行PCB設計全部經驗揭密,使你迅速成長為優(yōu)秀的硬件工程師
1) 高速CPU板PCB設計經驗與精華
2) 普通PCB的設計要點與精華
3) PowerPC、ARM、MIPS、單片機的PCB設計精華
4) Intel公司PC主板的PCB設計精華
5) PC主板、工控機主板、電信設備用主板的PCB設計經驗精華
6) 國內著名通信公司PCB設計規(guī)范與工作流程
7) PCB設計中生產、加工工藝的相關要求
8) 高速PCB設計中的傳輸線問題
9) 電信與數(shù)據(jù)通信領域主流CPU(PowerPC系列)的PCB設計經驗與精華
10) 電信與數(shù)據(jù)通信領域通用物理層接口(百兆、千兆以太網(wǎng),ATM等)的PCB設計經驗與精華
11) 網(wǎng)絡處理器的PCB設計經驗與精華
12) PCB步線的拓撲結構極其重要性
13) PCI步線的PCB設計經驗與精華
14) SDRAM、DDR SDRAM(125/133MHz)的PCB設計經驗與精華
15) 項目案例:中端路由器PCB設計
PCB設計中要注意的問題:
PCB設計中要做到目的明確,對于重要的信號線要非常嚴格的要求布線的長度和處理地環(huán)路,而對于低速和不重要的信號線就可以放在稍低的布線優(yōu)先級上。重要的部分包括:電源的分割;內存的時鐘線,控制線和數(shù)據(jù)線的長度要求;高速差分線的布線等等。
項目中使用內存芯片實現(xiàn)了1G大小的DDR memory,針對這個部分的布線是非常關鍵的,要考慮到控制線和地址線的拓撲分布,數(shù)據(jù)線和時鐘線的長度差別控制等方面,在實現(xiàn)的過程中,根據(jù)芯片的數(shù)據(jù)手冊和實際的工作頻率可以得出具體的布線規(guī)則要求,比如同一組內的數(shù)據(jù)線長度相差不能超過多少個mil,每個通路之間的長度相差不能超過多少個mil等等。當這些要求確定后就可以明確要求PCB設計人員來實現(xiàn)了,如果設計中所有的重要布線要求都明確了,可以轉換成整體的布線約束,利用CAD中的自動布線工具軟件來實現(xiàn)PCB設計,這也是在高速PCB設計中的一個發(fā)展趨勢。
四.硬件調試
目的:以具體的項目案例,傳授硬件調試、測試經驗與要點
1) 硬件調試等同于黑箱調試,如何快速分析、解決問題?
2) 大量調試經驗的傳授;
3) 如何加速硬件調試過程;
4) 如何迅速解決硬件調試問題;
5) DATACOM終端設備的CE測試要求。
當準備調試一塊板的時候,一定要先認真的做好目視檢查,檢查在焊接的過程中是否有可見的短路和管腳搭錫等故障,檢查是否有元器件型號放置錯誤,第一腳放置錯誤,漏裝配等問題,然后用萬用表測量各個電源到地的電阻,以檢查是否有短路,這個好習慣可以避免貿然上電后損壞單板。調試的過程中要有平和的心態(tài),遇見問題是非常正常的,要做的就是多做比較和分析,逐步的排除可能的原因,要堅信“凡事都是有辦法解決的”和“問題出現(xiàn)一定有它的原因”,這樣最后一定能調試成功。
五.軟硬件聯(lián)合調試
1) 如何判別是軟件的錯?
2) 如何與軟件進行聯(lián)合調試?
3) 大量的聯(lián)合調試經驗的傳授。
總結:
現(xiàn)在從技術的角度來說,每個設計最終都可以做出來,但是一個項目的成功與否,不僅僅取決于技術上的實現(xiàn),還與完成的時間,產品的質量,團隊的配合密切相關,所以良好的團隊協(xié)作,透明坦誠的項目溝通,精細周密的研發(fā)安排,充裕的物料和人員安排,這樣才能保證一個項目的成功。
一個好的硬件工程師實際上就是一個項目經理,他/她需要從外界交流獲取對自己設計的需求,然后匯總,分析成具體的硬件實現(xiàn)。還要跟眾多的芯片和方案供應商聯(lián)系,從中挑選出合適的方案,當原理圖完成后,他/她要組織同事來進行配合評審和檢查,還要和CAD工程師一起工作來完成PCB的設計。與此同時,還要準備好BOM清單,開始采購和準備物料,聯(lián)系加工廠家完成板的貼裝。在調試的過程中他/她要組織好軟件工程師來一起攻關調試,配合測試工程師一起解決測試中發(fā)現(xiàn)的問題,等到產品推出到現(xiàn)場,如果出現(xiàn)問題,還需要做到及時的支持。所以做一個硬件設計人員要鍛煉出良好的溝通能力,面對壓力的調節(jié)能力,同一時間處理多個事務的協(xié)調和決斷能力和良好平和的心態(tài)等等。
能力要求
還有細心和認真,因為硬件設計上的一個小疏忽往往就會造成非常大的經濟損失,比如以前碰到一塊板在PCB設計完備出制造文件的時候誤操作造成了電源層和地層連在了一起,PCB板制造完畢后又沒有檢查直接上生產線貼裝,到測試的時候才發(fā)現(xiàn)短路問題,但是元器件已經都焊接到板上了,結果造成了幾十萬的損失。所以細心和認真的檢查,負責任的測試,不懈的學習和積累,才能使得一個硬件設計人員持續(xù)不斷的進步,而后術業(yè)有所小成。
工程開發(fā)一個重要特點就是“踩在前人的足跡”,就是通過過去幾十上百年的工程實踐,對于各種情況有了很多經驗數(shù)據(jù)和經驗方法,比如對于PCB layout來說,基本上每個公司都有自己的design guidelines/check list,這就是公司在過去很多項目中總結出來的,每一條可以說都付出了“血”的代價,這是對于板級設計來說了;對于核心芯片和器件,就更是如此了,芯片 或器件公司幾十數(shù)百人歷時數(shù)年搞出來的一款芯片和器件,又豈是你通過幾百頁datasheet可以徹底理解的。
大多數(shù)情況下,知道主要接口,參數(shù),功能和性能就足夠了,尤其是芯片/器件公司提供的design guidelines或者application notes,里面一般都是芯片/器件工程師的肺腑之言,經驗之談,一般來說沒有個十年二十年工作經驗的工程師是寫不了這些東西的。 看起來雖然很簡單,看起來像是廢話,但是細細分析,結合電路定理和電磁定律,略微分析,就會發(fā)現(xiàn)簡直字字珠璣。剛畢業(yè)的好學生(一般來說學習好,喜歡 啃難題,學習能力強,求知欲強)初干硬件設計,就會發(fā)現(xiàn)涉及的知識點和技術要點太多了,如果這個知識點想要理解透徹,那個知識點也要理解透徹,會發(fā)現(xiàn)一天 24小時根本不夠用,但是對不起,公司請你過來不是讓你學習的,是要干硬件設計的,過一個月就要見原理圖了,你還在這捧著OrCAD手冊一個命令一個命令 學習OrCAD使用技巧,研究為啥要有串行電阻呢,研究這個電容是取0.1uF還是0.01uF.。
有求知欲是好事,但是那是在工作之余,項目之余,虛心向前輩學習,盡量利用各種design guidelines,盡快完成設計工作,記錄自己的知識缺點,在業(yè)余時間努力學習,理解透徹,通過設計驗證/測試,加深對于知識點的了解,這才是正確的工作方法。
我在剛畢業(yè)的時候欣喜的發(fā)現(xiàn)傳輸線理論太重要了,遂花了一個月把傳輸線理論努力了一把,并推導了大量公式進行驗證,其實總結起來就是幾句話,阻抗匹 配,如果接收端阻抗大于發(fā)送端,信號會怎么樣;如果小于,信號會怎么樣;如果開路,會怎么樣;如果短路,會怎么樣,這幾條基本每本信號完整性的書上都會介 紹,也不會有很復雜的數(shù)學公式推導,知道就行了,然后就是如何平衡發(fā)射端的阻抗,串行電阻,PCB阻抗,匹配阻抗等等,都是簡單的數(shù)學公式。
關于硬件設計的各種技術/標準/芯片/器件都要知道,需要的時候,能夠信手拈來,功能性能,參數(shù)特性,優(yōu)點缺點。
1. 快速學習的能力:
一方面,通信技術,標準,芯片更新的太快了,快到你根本來不及系統(tǒng)的了解它,只能通過特定的項目,需求進行了解;另一方面對于公司來說,需要做的硬件 產品也是變化很快,客戶需要T1, E1, PDH, SDH,Ethernet, VoIP, Switch, Router, 沒有人是什么都懂的,都需要能夠結合客戶的需求,選擇的芯片方案進行詳細了解,尤其對于接口協(xié)議和電氣特性。
2. 通信協(xié)議和標準的理解:
通信設備,顧名思義,就是用來實現(xiàn)多種通信協(xié)議(比如T1, E1, V.35,PDH, SDH/SONET, ATM, USB, VoIP, WiFi, Ethernet, TCP/IP,RS232等等常用協(xié)議)實現(xiàn)通信的設備,各種電路,PCB板,電源都是為了通信協(xié)議服務的。
通信協(xié)議一般都是由芯片實現(xiàn),要么是成熟的 ASIC,要么是自己開發(fā)的FPGA/CPLD,芯片工程師或者FPGA工程師比硬件工程師跟靠近通信協(xié)議,他們需要對于通信協(xié)議理解很透徹,實現(xiàn)各種邏 輯上的狀態(tài)機以及滿足協(xié)議規(guī)定的電氣參數(shù)標準。按照OSI的七層模型,硬件工程師尤其需要專注于一層物理層和二層數(shù)據(jù)鏈路層的協(xié)議標準,以 Ethernet距離,物理層是由PHY/transceiver芯片完成,數(shù)據(jù)鏈路層是由MAC/switch 芯片完成,對于從事Ethernet相關開發(fā)的硬件工程師來說,需要對于PHY和Switch芯片理解透徹,從編碼方式,電氣參數(shù),眼圖標準,模板,信號 頻率到幀格式,轉發(fā)處理邏輯,VLAN等等。 對于傳統(tǒng)PDH/SDH/SONET設備就更是如此,PDH/SDH/SONET是更硬件的設備,就是說主要協(xié)議都是通過ASIC實現(xiàn)的,軟件的功能 主要是管理,配置,監(jiān)視,告警,性能,對于硬件工程師來說,必須要熟悉使用的相關協(xié)議和接口標準,尤其對于電氣規(guī)范,眼圖模板,這樣在設計驗證的時候才能胸有成竹。
3. 寫文檔的能力:
誠如軟件設計一樣,好的軟件設計需要好的設計文檔,明確需求,實現(xiàn)什么功能,達到什么驗收標準,隨著芯片集成度的增加,接口速率的提高,單板復雜度的 提高,硬件設計也越來越復雜以及對應熱穩(wěn)定性,可靠性,電磁兼容,環(huán)境保護的要求,已經不是通過小米加步木。倉的游擊戰(zhàn)可以解決了,每一個硬件項目都是一 場戰(zhàn)爭,都需要好好的規(guī)劃,好好的分析,這就需要好好做文檔。
對于硬件工程師來說,最重要的文檔有兩個:一個是硬件設計規(guī)范(HDS : hardware design specification)和硬件測試報告(一般叫EVT:Engineering Validation& Test report或者DVT: Design Validation & Test report),對于HDS的要求是內容詳實,明確,主芯片的選擇/硬件初始化,CPU的選擇和初始化,接口芯片的選擇/初始化/管理,各芯片之間連接關 系框圖(Block Diagram),DRAM類型/大小/速度,F(xiàn)LASH類型/大小/速度,片選,中斷,GPIO的定義,復位邏輯和拓撲圖,時鐘/晶振選擇/拓 撲,RTC的使用,內存映射(Memory map)關系, I2C器件選擇/拓撲,接口器件/線序定義,LED的大小/顏色/驅動,散熱片,風扇,JTAG,電源拓撲/時序/電路等等。
對于DVT來說,要求很簡單也很復雜:板卡上有什么接口,芯片,主要器件,電路,就要測試什么,尤其在板卡正常工作的情況下的電源/電壓/紋波/時 序,業(yè)務接口的眼圖/模板,內部數(shù)據(jù)總線的信號完整性和時序(如MII, RGMII, XAUI, PCIe,PCM bus, Telecom Bus, SERDES, UART等等),CPU子系統(tǒng)(如時鐘,復位,SDRAM/DDR,F(xiàn)LASH接口)。
好的硬件工程師無論是做的文檔還是報道都是令人一目了然,這個硬件系統(tǒng)需要用什么方案和電路,最后驗證測試的結果如何。內容詳實,不遺漏各種接口/電路;簡單名了,不說廢話;圖文并茂,需要的時候一個時序圖,一個示波器抓圖就很能說明問題了。
4. 儀表/軟件的使用能力:
儀表包括電烙鐵,萬用表,示波器,邏輯分析儀,誤碼儀,傳輸分析儀,以太網(wǎng)測試儀Smartbits/IXIA,熱量計,衰減器,光功率計,射頻信號 強度計等等;軟件包括Office(Outlook,Word, Excel, PowerPoint, Project, Visio),PDF,常用原理圖軟件Pads或者OrCAD,常用PCB軟件Pads或者Allegro,Allegro Viewer,電路仿真軟件PSPICE,信號仿真軟件HyperLynx等等。
無論儀表還是軟件,在政治經濟學里說都是生產工具,都是促進生產力提高的,作為硬件工程師來說,這些儀表和軟件就是手中的木。倉炮,硬件工程師很大一 部分能力的體現(xiàn)都在與儀表和軟件的使用上,尤其對于原理圖軟件和示波器的使用,更是十分重要,原理圖軟件的使用是硬件設計的具體實現(xiàn),通過一個個器件的擺 放,一個個NET的連接,構成了是十分復雜的硬件邏輯軟件,是整個硬件設計的核心工作,任何一個原理圖上的失誤和錯誤造成的損失都是巨大的,真是“如履薄 冰,戰(zhàn)戰(zhàn)兢兢”。
另外,原理圖軟件的使用還體現(xiàn)在原理圖的美觀上,好的設計,簡單明了,注釋明確,無論是誰,順著思路就能很快搞清楚設計意圖,需要特別注意之處,不好 的設計,東一個器件,西一個器件,沒有邏輯,命名怪異,難以理解,日后維護起來相當麻煩;示波器在所有測試儀表之中,對于硬件工程師是最重要的,無論原理 圖還是PCB都是設計工作,但是任何設計都需要仔細的驗證測試,尤其在信號方面,都需要大量的示波器工作,不會正確的使用示波器根本談不上正確的驗證,接 地有沒有接好,測試點的選擇,觸發(fā)的選擇,延時的選擇,幅度、時間的選擇,都決定著測試的結果。如果錯誤的使用示波器必然帶來錯誤的測試結果,這種情況 下,有可能本來是錯誤的設計被誤認為是正確的,帶來巨大的隱患;本來是正確的設計被誤認為是錯誤的,帶來大量的時間精力浪費。
5. 電路設計的能力:
隨著芯片集成度的提高,硬件設計似乎變簡單了。首先是邏輯連接,其次考慮信號完整性需要的串行電阻選擇和并行電容選擇,電源濾波,退耦。不過對于好的 硬件工程師來說,簡單的邏輯連接(這個芯片的同樣總線的輸出接另一個芯片的輸入,等等),只是硬件設計的最基本技能,電路是芯片功能,通信協(xié)議和各種軟件 的載體,沒有對電路的深入理解,根本談不上對硬件設計的深入理解,尤其對于芯片后面列的電氣性能參數(shù)或者離散器件各種參數(shù)的理解,胡亂亂接,可能在 3.3V的總線上可以工作,但是現(xiàn)在工作電壓已經降到1V了,什么概念,信號線上的噪聲都已經大到可以使采樣出現(xiàn)誤判了,隨著信號速率的提高和工作電壓的 降低,數(shù)字信號已經越來越模擬化了,這就需要對于PCB的阻抗,容抗,感抗,離散器件(電阻,電容,電感,二極管,三極管,MOSFET,變壓器 等),ASIC的接口電氣參數(shù)深入了解,這都需要對電路原理,模擬電路甚至電磁場理論深入學習,電路可以說是電磁場理論的子集,沒有電磁場理論的理解,根 本談不上對于電容,電感,串擾,電磁輻射的理解。
尤其對于電源電路設計上,現(xiàn)在芯片電壓多樣化,電壓越來越低,電流越來越大,運營商對于通信設備功耗的嚴格要求,散熱要求,對于電源設計的挑戰(zhàn)越來越 大??梢哉f,對于一個硬件設計來說,40%的工作都是在于電源電路的原理圖/PCB設計和后期測試驗證,電源電路設計是硬件工程師電路能力的集中體現(xiàn),各 種被動器件、半導體器件、保護器件、DC/DC轉換典型拓撲,都有很多參數(shù),公式需要考慮到,計算到。
6.溝通和全局控制的能力:
硬件工程師在一個硬件項目中,一般處于Team leader的作用,要對這個硬件項目全權負責,需要協(xié)調好PCB工程師,結構工程師,信號完整性工程師,電磁兼容工程師等各種資源,并與產品經理,項目 經理,軟件工程師,生產工程師,采購工程師緊密配合,確保各個環(huán)節(jié)按部就班,需要對整個項目計劃了然于胸,各個子任務的發(fā)布時間,對于可能出現(xiàn)的技術難題 和風險的估計,控制。
評論