目錄
1、電路是什么?PCB/PCBA是什么?
2、為什么要有PCB
3、PCB的結構和組成
4、PCB/PCBA的生產流程
5、PCB/PCBA的設計流程
6、炫酷的PCB小技巧
正文
上次寫了PCB和PCBA的生產流程,這次來講一講PCB和PCBA的設計流程。
利用PCB的EDA軟件,可以較為輕松的在電腦上進行電路的設計和光繪文件生成,但由于PCB本身的結構復雜,實際的步驟還是比較繁瑣的。
這篇文章,不會涉及什么功能應該用什么電路來實現,只是展示PCB的設計過程,包括:封裝繪制、原理圖繪制、PCB繪制、光繪文件導出等,既有大致的流程,也有細節的描述,以此幫助大家了解PCB的設計過程,并將設計過程中的每一步和實際生產的每一步對應起來。
第1步,選擇合適的EDA工具。
我所知的使用人數較多的PCB的EDA工具有三款,Altium Designer、Mentor PADS和Cadence(包含OrCAD和Allegro),我還接觸過EAGLE、Protel、立創EDA等。
對于初學者,推薦使用Altium Designer,對于可能成為專業人士的人,推薦使用Cadence。
學習PCB設計,入門的一大部分都在學習EDA軟件的使用,等你熟悉了軟件的使用,學習內容就變成了電路設計和電路生產工藝,再往后,學習內容就是協議、軟件等內容,或者高速信號、EMC等,此時的EDA就只是工具了,不再是學習的目標。
第2步,確定電路原理圖。
用之前文章中的內容來舉例,一個手電筒的電路原理圖,可以長成下面的樣子。
2個紐扣電池座、一個開關、一個限流電阻、一個LED燈,這樣就組成了一個非常簡單的原理圖。
如果是復雜一些的功能電路,比如之前舉例中的SPI網口芯片KSZ8851SNL的demo板,如下圖所示,就會需要幾十種、幾百個元器件和幾百根連接線。
這樣的原理圖如何才能知道該畫成什么樣呢?
這個問題,真的不是一篇文章能說的明白的,這里只給大家科普一下PCB的設計流程。
第3步,繪制封裝。
在上面的原理圖繪制之前,會分別繪制各個元器件的封裝,封裝完成后,再將元器件一個一個放到原理圖中。
之所以要進行封裝繪制,而不是直接在原理圖中進行元器件的繪制,是因為使用同一種元器件時,不會每個元器件都畫一遍,而是直接擺放已經畫好的元器件封裝,這樣極大的避免重復勞動。
如果能把所有元器件的封裝都分享出來的話,大家就能省去繪制元器件的原理圖封裝這一步。
上面手電筒的原理圖是抽象出來的4種元器件,每種元器件用不同的圖標來繪制,根據需要連接的引線數量,加上對應數量的引腳,再給每個引腳寫上名稱,這樣就完成了一個器件的封裝的繪制。
在demo板的原理圖中,電阻、電容的封裝被重復的利用了幾十次,這也是為什么EDA軟件會把封裝和原理圖分成2步的直觀原因。
對于電容、電阻、電感等常見的簡單器件,大多EDA軟件都會給出示例的圖標,可以從官方的封裝庫中取出來,保存在自己的封裝庫中。
一個電容在庫里的封裝
對于一些不常見的器件,比如芯片、連接器等,大多時候則需要自己按照芯片的手冊進行繪制。
比如下圖,下圖是安川公司的Mechatrolink的協議芯片,這個芯片只有安川生產,但他們只提供了芯片的手冊,并沒有針對市面上所有的EDA軟件提供對應的封裝,因此,我也只好將其100個引腳一個一個的按序列擺上、輸入名字和序號。
再過分一些,比如ZYNQ的芯片,XC7Z010-1CLG400I,這是一片400個引腳的BGA封裝的SOC芯片,它的實物引腳長成下圖這樣。
想象一下,你得自己畫原理圖封裝,擺放400個引腳,再給它們輸入序號和名稱,想想這個工作量是不是很酸爽。
這種時候,最好不要自己畫原理圖封裝,大廠的通用芯片,基本是一定會在官網上提供可以下載的芯片封裝的,對于流行的EDA軟件基本都有適配的格式。
下面的鏈接,就是Xilinx官方提供的ZYNQ芯片的原理圖的封裝引腳列表,可以利用EDA軟件的工具導入引腳的信息,從而創建原理圖封裝,而不需要手動的輸入400個引腳的信息。
對于很多常見一些的芯片,大多也可以通過網上下載的方式獲取到封裝,可以參考我下面的回答里提供的方法。
第4步,創建工程、創建頁面、擺放器件
第5步,連接器件
第6步,導出/導入網表(netlist)
原理圖表示了一個電路中所有器件引腳以及相互之間的連接關系,完成原理圖設計后,即可開始相應的PCB繪制。
對于PADS和Cadence而言,原理圖繪制和PCB繪制使用的是不同的軟件,因此需要從原理圖軟件中導出所有元器件的引腳及其連接關系,再將其導入PCB軟件,中間生成的文件,一般稱其為網絡表格(netlist),但對于Altium Designer而言,其原理圖設計軟件和PCB設計軟件統一在同一個界面內了,因此只需要一個按鍵即可完成PCB的網表導入,并不需要先導出再導入。
原理圖的設計和PCB的設計并不是必須使用同一套軟件,netlist的表示方法和標準,也是很多軟件共享的,可以實現很多不同原理圖軟件和PCB軟件之間相互的導出導入。
Cadence所包含的OrCAD和Allegro以前其實是2家公司的2套軟件,被同一家公司收購之后才合并為了Cadence。
第7步,繪制PCB封裝
跟原理圖封裝一樣,每個器件都需要一個PCB封裝。
PCB封裝是什么呢?PCB封裝就是一個器件在PCB上的焊盤、絲印、占據空間等元素組成的合集,直觀的說,就跟下面的圖片一樣。
芯片的實物外形長這樣。
芯片的引腳定義和順序長這樣。
有了上面的兩張圖,就可以繪制芯片的電路原理圖封裝了。
芯片的實物雖然從照片中可以看出來,但繪制PCB封裝的話,還需要下面這張圖。
根據上圖詳細的尺寸,就可以知道對應的PCB封裝應該如何繪制了,一般而言,焊盤要比引腳大一些,焊盤的阻焊層要再大一些,鋼網層跟焊盤一樣大,如果是直插引腳,還需要指定內層的連接層負片的圖樣,不過,對于Altium Designer而言,阻焊、鋼網和負片層都是不需要設置的,只需要設置焊盤的外形和尺寸即可。
封裝里的絲印一般要表示芯片的輪廓,但有伸出引腳的側面一般不把絲印畫在最外面,絲印也需要表示出芯片的方向和第一引腳的位置。
SO14的PCB封裝在Altium里大概長這樣。
但其實對于這種常見的封裝,比如74HC08芯片的SO14封裝,完全可以從已經繪制好的PCB封裝中復制過來使用,因為芯片大多使用標準封裝,很少會有芯片使用市面上罕見的PCB封裝的。
關于封裝的常見分類,大家可以看看下面的鏈接,里邊有好多我都沒見過的封裝。
如果非常不幸,你需要使用不太常見的器件,比如連接器、電源模塊、功能模塊等,你就需要自己對照著datasheet中的封裝圖進行PCB封裝繪制了。
第8步,設置PCB板的基礎參數
完成了網表的導出和導入后,如果沒有修改或錯漏的彌補,原理圖的流程即不再需要了,之后就開始在PCB設計軟件中進行PCB的設計。
PCB板的基礎參數設置包括板厚、層數和層間距,雖然這3項是最基礎的設計,但除了層數,另外兩項并不能自然的被表示在設計輸出文檔中,因此一般都是直接用文字告知PCB生產廠家。
除了層數,疊層設計也是很重要的,哪些層走線、哪些層鋪平面、哪些層混合平面和走線。
單層板不需要這個設置,雙層板一般雙面走線,空余的地方敷銅并設置為GND或VCC,多層板的話則會有所要求的,4層板一般2和3層設置為GND和VCC,表層和底層走線,VCC層也可以適當走線,6層板的話,如果對地平面要求高一些,則將2/5層設為GND,3或4層設置為VCC,其它層都用來走線。8層板、10層板或更高層數,就比較靈活了,就不在這里闡述了。
第9步,繪制外框
第10步,放置器件
在PCB中防止器件的前提是所有器件的PCB封裝都已經繪制好,并能被軟件正常調用,如果有個別器件的PCB封裝因為沒拿到實物而不敢確定的話,也可以先把其他的器件放好,繼續后續的設計工作,等那個器件確定之后,再修改封裝,放入設計中。
第11步,設置過孔、線寬、線距等常用參數和規則
所有的PCB設計,都需要指定默認的線寬、線距以及過孔的大小,在布線時會默認使用此參數,如果需要布特殊的線或過孔再進行臨時調整。
第12步,設置高級規則
如果涉及到高速信號,就需要根據需求設置相應的規則,從而便于布線時利用規則自動或輔助實現布線約束。
高級規則包括:差分線(線寬、線距、不耦合長度等)、等長線(等長誤差等)、焊盤線預收縮(Neck)、間隙(線、孔、塊、焊盤等各種元素之間的最小距離)。
舉例來說,對于DDR3的信號,地址線、時鐘線、命令線等需要保持相等的長度,數據線、DQS、DQM則需要保持相等的長度,如果等長保持的不好,很有可能使得某位數據或地址不滿足時序要求,使得讀寫DDR的數據出現不穩定,不得不降低DDR的運行速率。
回到設置規則這一步,有一些規則是需要先完成布線,再進行規則設置,最后根據規則所產生的提示調整布線,從而滿足規則。
第12步,布線和繪制塊狀網絡(shape)
布線就是實現電路原理圖中各個引腳的連接,通過設置好線寬和線距的銅線,在EDA軟件中實現互聯。
繪制PCB的大部分時間都花在布線上了,雖然各個軟件都提供自動布線功能,但遇到多層板和交叉走線時,自動布線的結果大都難以接受,不過也有大牛能夠設置好規則,非常好的利用自動布線的技巧。
對于有些電流需求較大的連接,一般要求非常粗的線,但也可以直接繪制一塊區域的銅層,通過設置焊盤與區域銅層的連接,實現塊狀網絡的連接。
PCB的布線有很多需要注意的事項,線寬、線距、角度、方向等等,這些注意事項就以后再寫吧。
第13步,調整絲印
調整絲印的大小、位置、方向,使得絲印能夠準確的表示各個器件的位號,便于焊接、測試和替換。
PCB的生產廠家一般會在空白處印上自家的logo,以及生產日期相關的信息,設計者也可以自己留下標明PCB設計信息相關的內容。
第14步,導出鉆孔文件(drill)和光繪文件(gerber)
PCB完成了器件布局、布線和絲印調整之后,基本就完成了主要的工作,沒有特殊要求的話,就可以導出生產相關的文件了。
如果使用Altium Designer的話,很多國內的廠家都接受發送工程文件作為生產文件,但對于PADS和Cadence,都必須要導出鉆孔文件和光繪文件。
導出鉆孔文件的時候還需要注意,如果有不是圓形的孔,還需要額外的銑刀路徑相關的文件。
第15步,指定PCB的加工技術參數和工藝要求
通過PCB的生產文件,并不能了解所有相關的技術參數和工藝要求,這些無法在設計文件中表達的內容,都需要通過文本的方式傳遞給生產廠家。
大家可以去在線投板的PCB板廠官網看看,有很多需要指定的內容。
我知道的PCB板廠有:嘉立創、華強北PCB、捷配PCB、迅捷興、興森快捷、立創等。
下圖是嘉立創的參數,其實還有一些下面看不到的參數在復雜一些的PCB中也需要指定,不過在線做的PCB一般都是打樣的,所以很少會涉及。
第16步,給定阻抗要求,調整疊層設計
對于某些高速信號的PCB,需要指定其某些信號線的特性阻抗,在給PCB板廠加工時,需要先自己設計疊層,根據疊層計算出指定特性阻抗的線寬、線距等參數,使用自己計算出的參數進行布線,完成布線后,將指定的參數和設計文檔一起給PCB廠商。
廠商會根據你給出的設計文檔和阻抗要求,按照他們的能力和當前合適的板材,計算出你的疊層、線寬、線距是否合適,如何調整,然后將他們調整后的結果和預期的特性阻抗誤差告訴你,這樣一來一回,就能確認你的特性阻抗要求是否能滿足了。
如果你沒有提前自己計算好阻抗,隨意的指定了疊層和線寬、線距,很有可能最后無法調整出合適的參數,實現要求的特性阻抗,或者實現了特性阻抗,但線寬、線距又不滿足防止串擾的要求。
第17步,PCBA焊接
完整的PCB設計流程到交付鉆孔和光繪文件就完成了,等PCB加工完成,就要開始PCBA的生產了,也就是PCBA的焊接。
對于批量生產的PCBA,必定是需要使用貼片焊接生產線進行自動化焊接的,但對于小批量的打樣,除了BGA封裝、地焊盤封裝和特別小的0201封裝,大部分貼片芯片都是可以使用手焊來完成的。
目前國內的手工焊接價格,如果是10片以內的小面積樣板,相比于上貼片機的流水線,成本和時間上還是有優勢的。
PCBA的焊接并不需要設計額外的東西,但需要將PCB設計中的一些東西導出發送給焊接商,包括:BOM(物料清單)、器件坐標和方向列表、鋼網的光繪文件(由pastemask層生成)。將這些材料和所有的物料標記好名稱或料號,即可等待PCBA焊接完成了。
結尾
以上的內容就是這一節的全部內容了。
PCB/PCBA的設計其實是非常復雜的,流程說起來只有這十幾步,但每一步都需要學習和練習好幾次才能慢慢的熟悉和掌握。
具體的學習過程,EDA軟件的操作占了一大部分,等軟件操作熟悉后,才開始真正學習電路設計,學習哪些電路能實現哪些功能。
針對PCB的EDA軟件的學習,推薦1本書給大家,《Cadence高速電路板設計與仿真——原理圖與PCB設計》。
我學習和使用過Altium Designer、PADS、Eagle和Cadence,只有Cadence是完整的閱讀了一本書籍,這幾年一直在持續的使用Cadence,感覺這本書還是很詳盡的。
其實網上也能找到很多相關的資料和視頻教程,大家也可以找來看看,我當年第一次學習Altium Designer,也是從“郭天祥”那份不太優質的視頻開始的,不過Altium每年都推出新版本,如果愿意的話,從20版本開始也不錯,推薦初學者看看。
終于寫完了,歡迎大家吐槽~