基于Protel SDK的傳輸線分析與端接處理系統(tǒng)
摘要:印刷電路板走線傳輸線效應(yīng)是影響印刷電路板走線信號(hào)質(zhì)量的主要因素。本文結(jié)合ProtelSDK,提出一種采用Client/Server結(jié)構(gòu)嵌入于Protel的計(jì)算機(jī)自動(dòng)印刷電路板走線傳輸線分析及端接處理系統(tǒng),該系統(tǒng)能對(duì)印刷電路板走線傳輸線分析,對(duì)存在問題的走線給出處理策略。
關(guān)鍵字:傳輸線;端接;走線;客戶/服務(wù)器結(jié)構(gòu)
1、引言
隨著電子信息產(chǎn)業(yè)的發(fā)展,電子產(chǎn)品正向高性能、小型化發(fā)展。電子產(chǎn)品的主要載體是印刷電路板(Printed Circuit Board簡(jiǎn)稱PCB),在電子產(chǎn)品的小型化過程中PCB板面積減少,層數(shù)增多,器件密集,走線復(fù)雜;電子產(chǎn)品追求高性能使產(chǎn)品內(nèi)部時(shí)鐘頻率(如MCU的主頻)增高,信號(hào)邊沿變陡,從而使PCB板走線信號(hào)質(zhì)量下降,造成電子產(chǎn)品的性能下降,甚至功能失效。
造成PCB板走線信號(hào)質(zhì)量(即信號(hào)完整性)下降的主要因素有:反射、串?dāng)_和電源/地噪聲。在高速數(shù)字系統(tǒng)中,反射問題尤其突出。各電子產(chǎn)品廠商都非常重視其產(chǎn)品中PCB走線信號(hào)完整性,各ECAD和EDA軟件廠商也都推出信號(hào)完整性分析軟件或軟件模塊,如:Protel Signal Integrity。這些軟件一般都能對(duì)PCB走線進(jìn)行傳輸線分析,并能仿真信號(hào)反射波形,但是它們一般都不提供合理的端接方式和端接參數(shù)。也有一些專門用于傳輸線特征阻抗計(jì)算的軟件,如:Si6000b,這些軟件一般獨(dú)立于PCB板圖,需要用戶自己輸入PCB走線參數(shù),使用不方便。本文結(jié)合傳輸線理論、端接技術(shù)并采用Protel SDK提出一種嵌入于Protel的傳輸線分析和端接處理系統(tǒng),該系統(tǒng)能對(duì)Protel PCB走線進(jìn)行傳輸線分析,并給出合理的端接方式和端接參數(shù)。
2、Protel SDK
2.1 Protel的Client/Server結(jié)構(gòu)
Protel是國(guó)內(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ì)的各個(gè)階段無需更換工作環(huán)境,方便用戶操作;同時(shí)為插入式服務(wù)器提供公共數(shù)據(jù)交換和命令傳遞平臺(tái),保證各插入式服務(wù)器間順暢的命令和數(shù)據(jù)的傳遞。
插入式服務(wù)器不是獨(dú)立的運(yùn)行于Windows操作系統(tǒng)的應(yīng)用程序,它是運(yùn)行于設(shè)計(jì)資源管理器的動(dòng)態(tài)連接庫(kù)(.DLL文件)。Protel向用戶提供的完成電路設(shè)計(jì)的各項(xiàng)功能由各個(gè)插入式服務(wù)器完成。如:Schematic Server:原理圖編輯服務(wù)器;PCB server:印刷電路板設(shè)計(jì)服務(wù)器。用戶運(yùn)行Protel時(shí),首先啟動(dòng)的是設(shè)計(jì)資源管理器,再由設(shè)計(jì)資源管理器根據(jù)用戶要打開的文件啟動(dòng)相應(yīng)的插入式服務(wù)器,如:用戶要打開原理圖文件(.SCH文件),設(shè)計(jì)資源管理器就啟動(dòng)原理圖編輯服務(wù)器(Schematic Server),屏幕上顯示原理圖編輯服務(wù)器的菜單,用戶通過操作原理圖編輯服務(wù)器完成原理圖編輯工作。
在Protel自身提供的插入式服務(wù)器中,許多插入式服務(wù)器功能非常強(qiáng)大,如:原理圖編輯服務(wù)器,能完成原理圖編輯的各種操作。為方便功能模塊的劃分,Protel將插入式服務(wù)器按照功能分成一個(gè)個(gè)處理(Process),每一個(gè)處理完成特定的功能,如:Sch:ZoomRedraw是指Sch(原理圖編輯)服務(wù)器中的ZoomRedraw(屏幕刷新)處理。
2.2 Protel SDK
設(shè)計(jì)資源管理器為第三方EDA軟件(插入式服務(wù)器)提供公共數(shù)據(jù)、命令平臺(tái),同時(shí)為方便第三方廠商開發(fā)基于Protel的EDA軟件,即第三方EDA軟件, Protel向用戶提供SDK軟件包。SDK軟件包包括:服務(wù)器生成向?qū)Ш蚉rotel API及相關(guān)文檔資料。
服務(wù)器生成向?qū)且粋€(gè)運(yùn)行于設(shè)計(jì)資源管理器的插入式服務(wù)器,它為用戶生成第三方EDA軟件模板的原代碼和安裝文件(.INS文件),安裝文件用于將用戶開發(fā)的第三方EDA軟件安裝在設(shè)計(jì)資源管理器平臺(tái)上。服務(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)行庫(kù))。
3、PCB走線傳輸線分析、端接處理系統(tǒng)
根據(jù)傳輸線理論以及Protel結(jié)構(gòu),將PCB走線傳輸線分析、端接處理系統(tǒng)劃分為三個(gè)模塊:走線獲取模塊、傳輸線分析模塊和端接處理模塊。走線獲取模塊的功能是獲取用戶選擇的走線,以對(duì)此走線進(jìn)行傳輸線分析和端接處理。傳輸線分析模塊的功能是判別PCB走線是否需要當(dāng)作傳輸線看待。端接模塊的功能是對(duì)以傳輸線看待的走線給出合理的端接方式和端接參數(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編輯器為每一個(gè)打開的PCB文件建立一個(gè)數(shù)據(jù)庫(kù)DDPCB文檔數(shù)據(jù)庫(kù),用于儲(chǔ)存PCB版圖中的PCB對(duì)象,如:元器件、走線、焊盤等,以及每一個(gè)對(duì)象的屬性。PCB API采用Protel累接器(Iterator)訪問PCB文檔數(shù)據(jù)庫(kù),利用累接器可以查詢、修改、添加和刪除PCB文檔數(shù)據(jù)庫(kù)中的PCB對(duì)象及其相應(yīng)屬性,即查詢、修改、添加和刪除PCB版圖中的PCB對(duì)象及其相應(yīng)屬性。相關(guān)代碼如下:
BoardHandle := PcbApi_GetCurrentBoardHandle; // 獲取PCB板句柄
IteratorHandle := PcbApi_CreateIterator(BoardHandle,eNetObject,eProcessAll,
eIgnoreLayer); // 生成走線網(wǎng)絡(luò)累接器
QueryNetHandle := PcbApi_GetFirstObject(IteratorHandle); //獲取第一個(gè)走線網(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ò)長(zhǎng)度
:帶負(fù)載信號(hào)傳播速度
:驅(qū)動(dòng)器輸出信號(hào)上升時(shí)間
:驅(qū)動(dòng)器輸出信號(hào)下降時(shí)間
根據(jù)傳輸線理論,對(duì)于微帶結(jié)構(gòu)走線(PCB貼附在介質(zhì)材料平面直接暴露在空氣中的走線,如:?jiǎn)蚊姘搴碗p面板的走線以及多層板的頂層和底層的走線)可得(參見參考文獻(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ù)庫(kù)將工藝轉(zhuǎn)換成相關(guān)參數(shù)。
走線長(zhǎng)度和走線寬度可以從PCB板圖中獲取,走線寬度的獲取方式基本與走線網(wǎng)絡(luò)名獲取方式相似。走線長(zhǎng)度L是走線網(wǎng)絡(luò)中各走線長(zhǎng)度的疊加,PCB_API提供TPcbTrack類供用戶訪問PCB板圖中走線信息,由于TPcbTrack類不提供走線長(zhǎng)度屬性,只能由走線的起點(diǎn)和終點(diǎn)坐標(biāo)通過勾股定理求得。計(jì)算走線長(zhǎng)度的相關(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ò)長(zhǎng)度
Track.Free;
TrackHandle := PcbApi_GetNextObject(IteratorHandle);
End;
3.3 端接處理
傳輸線上傳輸?shù)男盘?hào)在阻抗不連續(xù)點(diǎn)會(huì)發(fā)生信號(hào)反射,進(jìn)而產(chǎn)生振鈴現(xiàn)象。PCB走線只要寬度不變,其特征阻抗固定不變,阻抗連續(xù)。而驅(qū)動(dòng)器輸出阻抗較小,往往小于PCB走線特征阻抗;接收器輸入阻抗較大,往往大于PCB走線特征阻抗。信號(hào)會(huì)在驅(qū)動(dòng)器與PCB走線連接處和PCB走線與接收器連接處來回反射,形成振鈴,影響電路正常工作。反射問題的主要解決辦法是在驅(qū)動(dòng)器與PCB走線連接處或PCB走線與接收器連接處端接匹配阻抗,使整個(gè)回路阻抗連續(xù),避免信號(hào)反射,防止振鈴現(xiàn)象出現(xiàn)。端接方式有很多,如:串聯(lián)端接、并聯(lián)端接、戴維寧端接等,PCB走線端接方式的選擇與PCB走線拓?fù)浣Y(jié)構(gòu)、PCB走線特征阻抗、驅(qū)動(dòng)器、接收器以及負(fù)載類型等參數(shù)有關(guān)(各種端接方式的選擇及端接參數(shù)的計(jì)算參見參考文獻(xiàn)[3]P159~P183和參考文獻(xiàn)[4]P178~P190)。端接處理的流程如圖5所示。
4、結(jié)束語(yǔ)
本設(shè)計(jì)最終生成.DLL文件,以第三方服務(wù)器形式安裝于Protel,使Protel具有傳輸線分析和端接處理功能,能自動(dòng)對(duì)印刷電路板走線進(jìn)行傳輸線分析,對(duì)存在問題的印刷電路板走線給出合理的端接策略。即使沒有豐富傳輸線分析和處理經(jīng)驗(yàn)的普通電子線路工程師運(yùn)用該功能也能設(shè)計(jì)出走線信號(hào)質(zhì)量良好的印刷電路板,從而提高電子線路以及電子產(chǎn)品的功能和性能。
參考文獻(xiàn):
[1] 呂昂. 基于Protel的自動(dòng)降額設(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的信號(hào)完整性分析[J]. 浙江萬里學(xué)院學(xué)報(bào),2003,(4):111-114.
評(píng)論