畢業4年以來,雖然其中有段時間在做嵌入式實時軟體系統的驅動部分,可一直都挂着“硬體工程師”的頭銜。其實有點慚愧,談不上對硬體的有多深的造詣,除了有相當一部分時間設計硬體電路以外,更重要的也就是PCB布闆。仔細想想,其中親手布過的電路闆,從簡單的數字電視機頂盒前面闆的單層闆,到複雜一點的AT89C51為核心的工業控制類的雙層闆,無線擴頻電台的基帶雙層闆,高速FPGA的應用闆,再到比較複雜的含有DDR MEMERY總線的四層闆等不下20塊,所幸的還有接觸過的手機電路的8層闆,是以,終歸對PCB的布闆有些想法。想法也罷,經驗也罷,隻要能夠對讀者的布闆有所幫助的話,也就達到了我寫這篇文章的目的。
一塊優秀的電路闆,除了在實作電路原理功能之外,還要考慮EMI,EMC,ESD,信号完整性等電氣特性,也要考慮機械結構,大功耗晶片的散熱問題,在這基礎上再考慮電路闆美觀問題。是以,PCB闆布線是門藝術,具體而言是門折衷的藝術。在開始學習摸索PCB布線之前,或許您會在各式各樣的參考書中看見各式各樣的PCB闆布線的規則,即使許多規則在一定程度上會是有相同的内涵,可是在不同的實際布闆實踐中會有不同的側重點,甚至規則之間會産生沖突。舉個例子:規則一信号傳輸的路徑越短越好,規則二是在高頻布線要求阻抗比對。在考慮布DDR MEMORY的總線時,SOP封裝的MEMERY晶片不可能對所有的TRACK實作規則一,正确的做法是整體考慮阻抗比對的條件下實作所有的TRACK相對最短。是以,實際布線中規則之間的不可兼得就會讓讀者布線過程中自覺的有效的利用這些規則時産生種種疑惑,甚至就陷入這樣或者是那樣的一般性的規則中不知所措。在這就需要強調一點――各種布線規則隻是指導性的,要結合實際的布線過程去不斷折衷以取得最大的效用。我想隻要在實際布線中自覺注意這些規則,或多或少會對布線的效果有所幫助。
1. 子產品化,結構化的思想不僅展現在硬體原理設計中,也要反映在布局布線效果中
如今的硬體平台的內建度越來越高,系統越來越複雜,自然而然也就要求無論是硬體原理圖的設計中還是PCB布線中使用子產品化,結構化設計的方法。如果接觸過大規模的FPGA或是CPLD就知道,複雜IC的設計必然要求采用自上至下的子產品化的設計方法。是以作為硬體工程師,在了解系統整體架構的前提下,首先應該在原理圖和PCB布線設計中自覺融合子產品化的設計思想。舉個例子,數字電視機頂盒的硬體平台的主IC-QAMI5516中就有如下的幾種子產品:
ST20:主頻180MHZ的32位RISC CPU
PTI:TRANSPORT STREAM的處理單元
DISPLAY:MPEG-2解碼,顯示處理單元
DEMODULATOR:QAM解調器
MEMORY INTERFACE:不同應用系統所需要不同的MEMORY的接口
STBUS:各個子產品的資料通訊總線
PERIPHERALS:UART,SMARTCARD,IIC,GPIO,PWM等常用外設
AUDIO:音頻輸出接口
VEDIO:視訊輸出接口
QAMI5516子產品化的設計過程,雖然不一定要求硬體工程師了解系統的方方面面,可是必然要求在設計硬體平台時,把在實際運用中使用到的IC不同子產品的接口部分當作一個子系統來處理:例如音頻部分電路和視訊部分電路在布局布線的時候就應該在一個整體區域内進行。這樣做,不僅延續了IC子產品化設計的思路,而且可以友善在需要進行PCB闆的實體分隔,減少不同子產品之間的電氣耦合,可以友善整個系統的調試。我們知道,硬體調試中最容易檢查,處理電路原理設計中的錯誤的方法就是“頭痛醫頭,腳痛醫腳”,即上述的QAMI5516平台中,如果音頻部分電路有問題,首先要做的就是檢查校驗音頻子產品。
子產品化的思想還展現在系統總線的布線上,通常總線都區分為CONCROL BUS,DATA BUS,ADDR BUS,這三類。例如上面QAMI5516中SMI上使用的是一片16M的SDRAM,工作頻率在100MHZ,這就要求這一組總線在布線過程中需要統一成一個整體來考慮阻抗比對。在實際的布線過程中,不可能要把這些線布得七零八落吧。
子產品化的思想也有利于PCB闆的布局。
子產品化的思想也有利于硬體系統的功能的擴充或是更改。
2. 站在整個系統的角度上,分析各個子產品信号的性質,确定其在整個系統中占據的地位,進而确定子產品在布局布線的優先級
布局對于整個系統具有重要的意義,這要求在實際的布線過程中,對于各個子產品的具體處理有輕重緩急之分。一般的布局規則,都要求區分子產品是模拟電路,還是數字電路,是高頻電路還是低頻電路,是主要的幹擾源還是敏感的關鍵信号等等。是以,在布局之前必須仔細分析各個子產品信号的性質包括子產品的屬性,功能,供電電源,具體信号的頻率,電流的流向,電流強度等,以确定子產品在PCB闆上布局。通常,在機械結構确定的情況下,複雜的系統還會有N種不同的布局方式,這需要站在系統的角度上依照一些規則的折中來找出最優化的布局布線。
在數字子產品中,都會有時鐘,例如SDRAM的CLOCK,而時鐘電路是影響EMC的主要因素。內建電路的大部分噪聲都與時鐘頻率及其多次諧波有關。如果CLOCK信号是一個正弦波形式,如果處理不當,對系統會“貢獻”一個該頻率或是該頻率的倍頻的幹擾源,如果是CLOCK信号是方波形式,則對系統“貢獻”一個雜散頻率的幹擾源。同時,CLOCK還是一個容易受幹擾的信号,如果CLOCK受到幹擾,對數字系統的影響可想而知。是以,時鐘電路子產品是屬于關鍵子產品,在布局布線過程中優先各種規則考慮其布局布線。
類似的還有在現在許多的嵌入式硬體系統中的各種各樣的中斷子產品。中斷的觸發有電平觸發和邊沿觸發。曾經碰到過一個設定為上升沿觸發的中斷因外界的幹擾而不斷的被觸發,最終導緻了RTOS由于處理不過來而堵死的現象。
按照這一原則來分析二個簡單的電路布局。在一個我接觸到的手機硬體平台中,顯示屏的亮度電路是通過一個PWM産生的不同脈寬信号,經過一個RC積分電路建立不同的背光燈電壓來實作的。PWM信号和CLOCK相比,在對整個系統EMI的影響上在某種意義上是相同的。但是如果仔細分析一些,就應該知道,如果在布線時,IC的PWM信号在盡可能短的路徑上建立模拟的電平後才在PCB闆上傳輸,也就是說電阻和電容盡可能的靠近PWM管腳放置,這樣可以使PWM對系統的幹擾減小到最小。在手機硬體平台的設計中,RF部分和音頻部分是系統的核心,這兩部分的布線占據絕對核心的地位,在布線時置于優先考慮的地位。是以在實際布局布線中,這兩個子產品的信号線單獨布在一中間層,并且在其鄰層使用電源層和地層,把它屏蔽起來,同時其他子產品盡量遠離這兩個子產品,以免引入幹擾。另外嘗試着考慮這樣一個細節:MIC輸入很小的音頻信号需要經過放大到一定的程度後再輸入到AUDIO ADC中。我們知道抽象意義上的信道傳輸信噪比是衡量噪聲對系統的影響。可以互相參照,一個小的噪聲在音頻信号放大之前就串擾就信道和在音頻信号在放大之後才進信道對音頻名額的影響。如果這信道的路徑不得以經過一些強幹擾源的區域,建議音頻信号進行放大後再進行傳輸。
再比如在複雜系統的總線上通常會挂接類型的裝置,如I2C總線可以挂127個從裝置,在某些機頂盒硬體平台中通常會挂上DEMODULATOR,TUNER,E2PROM。這也要求對不同的裝置對于分享總線的頻率上加以區分,對于使用頻率高的裝置放在相對比較重要的位置上。例如在上述QAMI5516平台上的EMI接口同時使用了SDRAM,FLASH兩種裝置。基于對系統的了解,SDRAM放置的是實時作業系統的運作代碼,FLASH是作為一種存儲媒體,在軟體系統運作過程中SDRAM相對于FLASH有更多的讀寫操作,是以在布線過程中應該先考慮SDRAM的位置。
3. 注重電源完整性,布局布線中優先考慮電源和地線的處理
在任何電子系統中,幹擾源對系統的幹擾不外乎通過兩種途徑:一是通過導體的傳遞,二是通過電磁輻射經過空間的耦合。在頻率較低的系統中主要是第一種路徑,在高頻系統中也有相當部分的幹擾原因是通過導體的傳遞,其中比較明顯的就是IC産生的噪聲通過電源和地幹擾整個系統。是以,電源的完整性或者說是電源品質對整個系統的抗幹擾能力具有至關重要的意義。電源完整性實際上是信号完整性的一部分,然而考慮到電源對于所有系統的重要性,在此單獨列出。要聲明的是,在實際系統中,要做到這一點并不容易,系統中總會有各種不同頻率的噪聲。在電路設計和PCB布局布線中隻是極力的減小各種頻率的噪聲,進而提高系統的抗噪聲的整體性能。同時,在複雜系統中,減少系統的噪聲不是更改一兩電容的值就能夠做到,而是需要注意電源濾波效果的累積。在手機硬體設計中,有專門的PMU來對管理對各個子產品供電,然而PMU都是來自VBAT。無法想象,如果是敏感的音頻運放的供電沒有經過濾波的處理,直接取自VBAT,又或者,像給SDRAM供電的電路沒有做濾波處理,任由這部分數字電路的開關噪聲污染整個VBAT,會是有什麼樣的後果?
如果對電源完整性有了足夠的重視,結合起前面說過的子產品化和各個子產品仔細分析後,這部分還是相對比較好處理。對于IC電源VCC通常的規則一般都會用旁路電容和去耦電容進行處理,并且在布闆的時候盡量讓這類電容靠近IC的電源輸入處。如果在要求苛刻的系統中,還可以對不同的敏感頻率采用LCCL電路(串接一個電感或是磁珠,并一個電解電容,并一個瓷片電容,再串一個小的電感,具體值需要依照相應頻率确定)濾波。曾經做一個複雜的系統,由于在系統的DEMODULATOR上的一路核心電源上沒有使用旁路電容,進而使DEMODULATOR的解調後的誤碼率高的無法忍受。對于系統中各種GND的處理,一般要求分析電流的回流路徑。電流具有總是選擇阻抗最小回流路徑的性質。這是一個核心原則,可以通過這樣一個事實來了解:在PCB布線中有“鋪銅”這樣的模式。“鋪銅”經常會在網絡GND上使用,所有的數字信号都可以抽象成一個最基本的門級電路,GND也就是信号回流路徑的一部分。GND就是通過“鋪銅”的方式,使信号的路徑上的總阻抗變小。“就近接地”,“最小化接地阻抗”也正是基于這樣的考慮。
上面隻是抛磚引玉的講述了這幾年來鄙人在PCB闆中的一些感觸頗深的幾點,有了這三個指導性原則,并結合具體的許多布線規則,剩下就是您的态度問題了。當然,畢竟能力和見識有限,其中難免有所偏頗,不足之處懇請指正。