基于Protel SDK的傳輸線分析與端接處理系統(tǒng)
摘要:印刷電路板走線傳輸線效應(yīng)是影響印刷電路板走線信號質(zhì)量的主要因素。本文結(jié)合ProtelSDK,提出一種采用Client/Server結(jié)構(gòu)嵌入于Protel的計(jì)算機(jī)自動印刷電路板走線傳輸線分析及端接處理系統(tǒng),該系統(tǒng)能對印刷電路板走線傳輸線分析,對存在問題的走線給出處理策略。
關(guān)鍵字:傳輸線;端接;走線;客戶/服務(wù)器結(jié)構(gòu)
1、引言
隨著電子信息產(chǎn)業(yè)的發(fā)展,電子產(chǎn)品正向高性能、小型化發(fā)展。電子產(chǎn)品的主要載體是印刷電路板(Printed Circuit Board簡稱PCB),在電子產(chǎn)品的小型化過程中PCB板面積減少,層數(shù)增多,器件密集,走線復(fù)雜;電子產(chǎn)品追求高性能使產(chǎn)品內(nèi)部時(shí)鐘頻率(如MCU的主頻)增高,信號邊沿變陡,從而使PCB板走線信號質(zhì)量下降,造成電子產(chǎn)品的性能下降,甚至功能失效。
造成PCB板走線信號質(zhì)量(即信號完整性)下降的主要因素有:反射、串?dāng)_和電源/地噪聲。在高速數(shù)字系統(tǒng)中,反射問題尤其突出。各電子產(chǎn)品廠商都非常重視其產(chǎn)品中PCB走線信號完整性,各ECAD和EDA軟件廠商也都推出信號完整性分析軟件或軟件模塊,如:Protel Signal Integrity。這些軟件一般都能對PCB走線進(jìn)行傳輸線分析,并能仿真信號反射波形,但是它們一般都不提供合理的端接方式和端接參數(shù)。也有一些專門用于傳輸線特征阻抗計(jì)算的軟件,如:Si6000b,這些軟件一般獨(dú)立于PCB板圖,需要用戶自己輸入PCB走線參數(shù),使用不方便。本文結(jié)合傳輸線理論、端接技術(shù)并采用Protel SDK提出一種嵌入于Protel的傳輸線分析和端接處理系統(tǒng),該系統(tǒng)能對Protel PCB走線進(jìn)行傳輸線分析,并給出合理的端接方式和端接參數(shù)。
2、Protel SDK
2.1 Protel的Client/Server結(jié)構(gòu)
Protel是國內(nèi)使用最廣泛的EDA軟件之一,它最大且鮮為人知的特點(diǎn)是采用了Client/Server結(jié)構(gòu)(Protel自3.X版起采用Client/Server結(jié)構(gòu))。采用Client/Server結(jié)構(gòu)的Protel有兩大部分組成:設(shè)計(jì)資源管理器和插入式服務(wù)器,參見圖1所示。
設(shè)計(jì)資源管理器是運(yùn)行于Windows操作系統(tǒng)的應(yīng)用程序,它一方面為用戶提供統(tǒng)一的集成工作環(huán)境,使用戶在電路設(shè)計(jì)的各個階段無需更換工作環(huán)境,方便用戶操作;同時(shí)為插入式服務(wù)器提供公共數(shù)據(jù)交換和命令傳遞平臺,保證各插入式服務(wù)器間順暢的命令和數(shù)據(jù)的傳遞。
插入式服務(wù)器不是獨(dú)立的運(yùn)行于Windows操作系統(tǒng)的應(yīng)用程序,它是運(yùn)行于設(shè)計(jì)資源管理器的動態(tài)連接庫(.DLL文件)。Protel向用戶提供的完成電路設(shè)計(jì)的各項(xiàng)功能由各個插入式服務(wù)器完成。如:Schematic Server:原理圖編輯服務(wù)器;PCB server:印刷電路板設(shè)計(jì)服務(wù)器。用戶運(yùn)行Protel時(shí),首先啟動的是設(shè)計(jì)資源管理器,再由設(shè)計(jì)資源管理器根據(jù)用戶要打開的文件啟動相應(yīng)的插入式服務(wù)器,如:用戶要打開原理圖文件(.SCH文件),設(shè)計(jì)資源管理器就啟動原理圖編輯服務(wù)器(Schematic Server),屏幕上顯示原理圖編輯服務(wù)器的菜單,用戶通過操作原理圖編輯服務(wù)器完成原理圖編輯工作。
在Protel自身提供的插入式服務(wù)器中,許多插入式服務(wù)器功能非常強(qiáng)大,如:原理圖編輯服務(wù)器,能完成原理圖編輯的各種操作。為方便功能模塊的劃分,Protel將插入式服務(wù)器按照功能分成一個個處理(Process),每一個處理完成特定的功能,如:Sch:ZoomRedraw是指Sch(原理圖編輯)服務(wù)器中的ZoomRedraw(屏幕刷新)處理。
2.2 Protel SDK
設(shè)計(jì)資源管理器為第三方EDA軟件(插入式服務(wù)器)提供公共數(shù)據(jù)、命令平臺,同時(shí)為方便第三方廠商開發(fā)基于Protel的EDA軟件,即第三方EDA軟件, Protel向用戶提供SDK軟件包。SDK軟件包包括:服務(wù)器生成向?qū)Ш蚉rotel API及相關(guān)文檔資料。
服務(wù)器生成向?qū)且粋€運(yùn)行于設(shè)計(jì)資源管理器的插入式服務(wù)器,它為用戶生成第三方EDA軟件模板的原代碼和安裝文件(.INS文件),安裝文件用于將用戶開發(fā)的第三方EDA軟件安裝在設(shè)計(jì)資源管理器平臺上。服務(wù)器生成向?qū)Э梢詾橛脩羯蓛煞N格式的原代碼:Delphi和C++ Builder。
為方便用戶開發(fā)第三方EDA軟件,Protel向用戶提供了大量的API,如:Schematic API、PCB API和Client API等,為方便用戶使用這些API,Protel向用戶提供有關(guān)API文檔及RTL(Run Time Library:運(yùn)行庫)。
3、PCB走線傳輸線分析、端接處理系統(tǒng)
根據(jù)傳輸線理論以及Protel結(jié)構(gòu),將PCB走線傳輸線分析、端接處理系統(tǒng)劃分為三個模塊:走線獲取模塊、傳輸線分析模塊和端接處理模塊。走線獲取模塊的功能是獲取用戶選擇的走線,以對此走線進(jìn)行傳輸線分析和端接處理。傳輸線分析模塊的功能是判別PCB走線是否需要當(dāng)作傳輸線看待。端接模塊的功能是對以傳輸線看待的走線給出合理的端接方式和端接參數(shù)。系統(tǒng)結(jié)構(gòu)如圖2所示。
PCB走線傳輸線分析、端接處理系統(tǒng)的流程如圖3所示。
3.1、走線獲取
走線獲取模塊的主要功能是根據(jù)用戶在PCB編輯器(即PCB服務(wù)器)選擇的走線獲取走線網(wǎng)絡(luò)名,以便后續(xù)模塊(傳輸線分析模塊和端接處理模塊)根據(jù)此網(wǎng)絡(luò)名確定該走線網(wǎng)絡(luò)的所有走線。
Protel PCB編輯器為每一個打開的PCB文件建立一個數(shù)據(jù)庫DDPCB文檔數(shù)據(jù)庫,用于儲存PCB版圖中的PCB對象,如:元器件、走線、焊盤等,以及每一個對象的屬性。PCB API采用Protel累接器(Iterator)訪問PCB文檔數(shù)據(jù)庫,利用累接器可以查詢、修改、添加和刪除PCB文檔數(shù)據(jù)庫中的PCB對象及其相應(yīng)屬性,即查詢、修改、添加和刪除PCB版圖中的PCB對象及其相應(yīng)屬性。相關(guān)代碼如下:
BoardHandle := PcbApi_GetCurrentBoardHandle; // 獲取PCB板句柄
IteratorHandle := PcbApi_CreateIterator(BoardHandle,eNetObject,eProcessAll,
eIgnoreLayer); // 生成走線網(wǎng)絡(luò)累接器
QueryNetHandle := PcbApi_GetFirstObject(IteratorHandle); //獲取第一個走線網(wǎng)絡(luò)句柄
PCB API提供TPcbNet類,供用戶訪問PCB板圖中的走線網(wǎng)絡(luò)信息,API函數(shù)PcbApi_QueryNet供用戶獲取/設(shè)置走線網(wǎng)絡(luò)屬性,獲取走線網(wǎng)絡(luò)名的相關(guān)代碼如下:
PcbApi_QueryNet(eGetState,QueryNetHandle,QueryNetIndex, QueryNetName,QueryNetVisible,QueryNetColor);
If QueryNetVisible = True then
SearchNetName := QueryNetName; // SearchNetName即用戶選擇走線網(wǎng)絡(luò)名
3.2 傳輸線分析
傳輸線分析模塊的主要功能是判別用戶選中的走線是否看成傳輸線,即是否滿足式(1),
(1)
L :走線網(wǎng)絡(luò)長度
:帶負(fù)載信號傳播速度
:驅(qū)動器輸出信號上升時(shí)間
:驅(qū)動器輸出信號下降時(shí)間
根據(jù)傳輸線理論,對于微帶結(jié)構(gòu)走線(PCB貼附在介質(zhì)材料平面直接暴露在空氣中的走線,如:單面板和雙面板的走線以及多層板的頂層和底層的走線)可得(參見參考文獻(xiàn)[3]P119~P150):
εγ:介電常數(shù)
Cd:負(fù)載電容,即考慮接收器輸入電容
H :走線高度,即走線與地電平面之間的距離,一般可認(rèn)為板基厚度
W :走線寬度
T :走線厚度,即走線銅箔厚度
判斷是否滿足式(1)需要獲取大量參數(shù),如: 、 、 、 等,其中部分參數(shù)可以從PCB板圖中獲取,部分參數(shù)需要用戶輸入,系統(tǒng)設(shè)計(jì)用戶界面如圖4所示,用戶可直接輸入相關(guān)參數(shù),用戶也可選擇相關(guān)工藝,系統(tǒng)內(nèi)建有數(shù)據(jù)庫將工藝轉(zhuǎn)換成相關(guān)參數(shù)。
走線長度和走線寬度可以從PCB板圖中獲取,走線寬度的獲取方式基本與走線網(wǎng)絡(luò)名獲取方式相似。走線長度L是走線網(wǎng)絡(luò)中各走線長度的疊加,PCB_API提供TPcbTrack類供用戶訪問PCB板圖中走線信息,由于TPcbTrack類不提供走線長度屬性,只能由走線的起點(diǎn)和終點(diǎn)坐標(biāo)通過勾股定理求得。計(jì)算走線長度的相關(guān)如下:
BoardHandle := PcbApi_GetCurrentBoardHandle;
IteratorHandle := PcbApi_CreateIterator(BoardHandle, eTrackObject,eProcessAll,eIgnoreLayer);
TrackHandle := PcbApi_GetFirstObject(IteratorHandle);
While (TrackHandle > 0) do
Begin
……
If (Net.Name = SearchNetName) Then // SearchNetName:為指定走線網(wǎng)絡(luò)名
RealL := RealL + sqrt(sqr(Track.x2 - Track.x1) + sqr(Track.y2 - track.y1));
Net.Free; // RealL:為走線網(wǎng)絡(luò)長度
Track.Free;
TrackHandle := PcbApi_GetNextObject(IteratorHandle);
End;
3.3 端接處理
傳輸線上傳輸?shù)男盘栐谧杩共贿B續(xù)點(diǎn)會發(fā)生信號反射,進(jìn)而產(chǎn)生振鈴現(xiàn)象。PCB走線只要寬度不變,其特征阻抗固定不變,阻抗連續(xù)。而驅(qū)動器輸出阻抗較小,往往小于PCB走線特征阻抗;接收器輸入阻抗較大,往往大于PCB走線特征阻抗。信號會在驅(qū)動器與PCB走線連接處和PCB走線與接收器連接處來回反射,形成振鈴,影響電路正常工作。反射問題的主要解決辦法是在驅(qū)動器與PCB走線連接處或PCB走線與接收器連接處端接匹配阻抗,使整個回路阻抗連續(xù),避免信號反射,防止振鈴現(xiàn)象出現(xiàn)。端接方式有很多,如:串聯(lián)端接、并聯(lián)端接、戴維寧端接等,PCB走線端接方式的選擇與PCB走線拓?fù)浣Y(jié)構(gòu)、PCB走線特征阻抗、驅(qū)動器、接收器以及負(fù)載類型等參數(shù)有關(guān)(各種端接方式的選擇及端接參數(shù)的計(jì)算參見參考文獻(xiàn)[3]P159~P183和參考文獻(xiàn)[4]P178~P190)。端接處理的流程如圖5所示。
4、結(jié)束語
本設(shè)計(jì)最終生成.DLL文件,以第三方服務(wù)器形式安裝于Protel,使Protel具有傳輸線分析和端接處理功能,能自動對印刷電路板走線進(jìn)行傳輸線分析,對存在問題的印刷電路板走線給出合理的端接策略。即使沒有豐富傳輸線分析和處理經(jīng)驗(yàn)的普通電子線路工程師運(yùn)用該功能也能設(shè)計(jì)出走線信號質(zhì)量良好的印刷電路板,從而提高電子線路以及電子產(chǎn)品的功能和性能。
參考文獻(xiàn):
[1] 呂昂. 基于Protel的自動降額設(shè)計(jì)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 浙江萬里學(xué)院學(xué)報(bào),2004,(5):82-86.
[2] 呂昂,鄭紅平,王曉勇. 基于Protel SDK的EDA軟件開發(fā)[J]. 農(nóng)機(jī)化研究,2004,(5):238-240.
[3] Mark I. Montrose著. 劉元安,李書芳,高攸綱譯. 電磁兼容性和印刷電路板理論、設(shè)計(jì)和布線[M]. 北京:人民郵電出版社,2002.
[4] Howard Johnson,Martin Graham著. 沈立,朱來文,陳宏偉等譯. 高速數(shù)字設(shè)計(jì)[M]. 北京:電子工業(yè)出版社,2004.
[5] 呂昂,王曉勇. 基于Protel的信號完整性分析[J]. 浙江萬里學(xué)院學(xué)報(bào),2003,(4):111-114.
評論