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