基于Protel SDK的传输线分析与端接处理系统

11-20| http://www.dianzi6.com | PCB设计|人气:657

基于Protel SDK的传输线分析与端接处理系统

  摘 要:印刷电路板走线传输线效应是影响印刷电路板走线信号质量的主要因素。本文结合Protel SDK,提出一种采用Client/Server结构嵌入于Protel的计算机自动印刷电路板走线传输线分析及端接处理系统,该系统能对印刷电路板走线传输线分析,对存在问题的走线给出处理策略。 
  关键字:传输线;端接;走线;客户/服务器结构

1、引言

  随着电子信息产业的发展,电子产品正向高性能、小型化发展。电子产品的主要载体是印刷电路板(Printed Circuit Board简称PCB),在电子产品的小型化过程中PCB板面积减少,层数增多,器件密集,走线复杂;电子产品追求高性能使产品内部时钟频率(如MCU的主频)增高,信号边沿变陡,从而使PCB板走线信号质量下降,造成电子产品的性能下降,甚至功能失效。

  造成PCB板走线信号质量(即信号完整性)下降的主要因素有:反射、串扰和电源/地噪声。在高速数字系统中,反射问题尤其突出。各电子产品厂商都非常重视其产品中PCB走线信号完整性,各ECAD和EDA软件厂商也都推出信号完整性分析软件或软件模块,如:Protel Signal Integrity。这些软件一般都能对PCB走线进行传输线分析,并能仿真信号反射波形,但是它们一般都不提供合理的端接方式和端接参数。也有一些专门用于传输线特征阻抗计算的软件,如:Si6000b,这些软件一般独立于PCB板图,需要用户自己输入PCB走线参数,使用不方便。本文结合传输线理论、端接技术并采用Protel SDK提出一种嵌入于Protel的传输线分析和端接处理系统,该系统能对Protel PCB走线进行传输线分析,并给出合理的端接方式和端接参数。

2Protel SDK

2.1 ProtelClient/Server结构

  Protel是国内使用最广泛的EDA软件之一,它最大且鲜为人知的特点是采用了Client/Server结构(Protel自3.X版起采用Client/Server结构)。采用Client/Server结构的Protel有两大部分组成:设计资源管理器和插入式服务器。

  设计资源管理器是运行于Windows操作系统的应用程序,它一方面为用户提供统一的集成工作环境,使用户在电路设计的各个阶段无需更换工作环境,方便用户操作;同时为插入式服务器提供公共数据交换和命令传递平台,保证各插入式服务器间顺畅的命令和数据的传递。

       插入式服务器不是独立的运行于Windows操作系统的应用程序,它是运行于设计资源管理器的动态连接库(.DLL文件)。Protel向用户提供的完成电路设计的各项功能由各个插入式服务器完成。如:Schematic Server:原理图编辑服务器;PCB server:印刷电路板设计服务器。用户运行Protel时,首先启动的是设计资源管理器,再由设计资源管理器根据用户要打开的文件启动相应的插入式服务器,如:用户要打开原理图文件(.SCH文件),设计资源管理器就启动原理图编辑服务器(Schematic Server),屏幕上显示原理图编辑服务器的菜单,用户通过操作原理图编辑服务器完成原理图编辑工作。

       在Protel自身提供的插入式服务器中,许多插入式服务器功能非常强大,如:原理图编辑服务器,能完成原理图编辑的各种操作。为方便功能模块的划分,Protel将插入式服务器按照功能分成一个个处理(Process),每一个处理完成特定的功能,如:Sch:ZoomRedraw是指Sch(原理图编辑)服务器中的ZoomRedraw(屏幕刷新)处理。

2.2 Protel SDK

       设计资源管理器为第三方EDA软件(插入式服务器)提供公共数据、命令平台,同时为方便第三方厂商开发基于Protel的EDA软件,即第三方EDA软件, Protel向用户提供SDK软件包。SDK软件包包括:服务器生成向导和Protel API及相关文档资料。

       服务器生成向导是一个运行于设计资源管理器的插入式服务器,它为用户生成第三方EDA软件模板的原代码和安装文件(.INS文件),安装文件用于将用户开发的第三方EDA软件安装在设计资源管理器平台上。服务器生成向导可以为用户生成两种格式的原代码:Delphi和C++ Builder。

  为方便用户开发第三方EDA软件,Protel向用户提供了大量的API,如:Schematic API、PCB API和Client API等,为方便用户使用这些API,Protel向用户提供有关API文档及RTL(Run Time Library:运行库)。

3PCB走线传输线分析、端接处理系统

       根据传输线理论以及Protel结构,将PCB走线传输线分析、端接处理系统划分为三个模块:走线获取模块、传输线分析模块和端接处理模块。走线获取模块的功能是获取用户选择的走线,以对此走线进行传输线分析和端接处理。传输线分析模块的功能是判别PCB走线是否需要当作传输线看待。端接模块的功能是对以传输线看待的走线给出合理的端接方式和端接参数。

3.1、走线获取

       走线获取模块的主要功能是根据用户在PCB编辑器(即PCB服务器)选择的走线获取走线网络名,以便后续模块(传输线分析模块和端接处理模块)根据此网络名确定该走线网络的所有走线。

Protel PCB编辑器为每一个打开的PCB文件建立一个数据库――PCB文档数据库,用于储存PCB版图中的PCB对象,如:元器件、走线、焊盘等,以及每一个对象的属性。PCB API采用Protel累接器(Iterator)访问PCB文档数据库,利用累接器可以查询、修改、添加和删除PCB文档数据库中的PCB对象及其相应属性,即查询、修改、添加和删除PCB版图中的PCB对象及其相应属性。相关代码如下:

BoardHandle := PcbApi_GetCurrentBoardHandle;             // 获取PCB板句柄

IteratorHandle := PcbApi_CreateIterator(BoardHandle,eNetObject,eProcessAll,

                                       eIgnoreLayer);   // 生成走线网络累接器

QueryNetHandle := PcbApi_GetFirstObject(IteratorHandle); //获取第一个走线网络句柄

  PCB API提供TPcbNet类,供用户访问PCB板图中的走线网络信息,API函数PcbApi_QueryNet供用户获取/设置走线网络属性,获取走线网络名的相关代码如下:

PcbApi_QueryNet(eGetState,QueryNetHandle,QueryNetIndex, QueryNetName,QueryNetVisible,QueryNetColor);

If QueryNetVisible = True  then

SearchNetName := QueryNetName;   // SearchNetName即用户选择走线网络名

3.2 传输线分析

       传输线分析模块的主要功能是判别用户选中的走线是否看成传输线,即是否满足式(1),

                     (1)

         L  :走线网络长度

              :带负载信号传播速度

              :驱动器输出信号上升时间

              :驱动器输出信号下降时间

  根据传输线理论,对于微带结构走线(PCB贴附在介质材料平面直接暴露在空气中的走线,如:单面板和双面板的走线以及多层板的顶层和底层的走线)可得(参见参考文献[3]P119~P150):

      

              εγ:介电常数

              Cd:负载电容,即考虑接收器输入电容

             H :走线高度,即走线与地电平面之间的距离,一般可认为板基厚度

             W :走线宽度

             T :走线厚度,即走线铜箔厚度

       判断是否满足式(1)需要获取大量参数,如: 、 、 、 等,其中部分参数可以从PCB板图中获取,部分参数需要用户输入,系统设计用户界面如图4所示,用户可直接输入相关参数,用户也可选择相关工艺,系统内建有数据库将工艺转换成相关参数。

       走线长度和走线宽度可以从PCB板图中获取,走线宽度的获取方式基本与走线网络名获取方式相似。走线长度L是走线网络中各走线长度的叠加,PCB_API提供TPcbTrack类供用户访问PCB板图中走线信息,由于TPcbTrack类不提供走线长度属性,只能由走线的起点和终点坐标通过勾股定理求得。计算走线长度的相关如下:

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:为指定走线网络名

   RealL := RealL + sqrt(sqr(Track.x2 - Track.x1) + sqr(Track.y2 - track.y1));            

        Net.Free;                             //  RealL:为走线网络长度

        Track.Free;

        TrackHandle := PcbApi_GetNextObject(IteratorHandle);

End;

3.3 端接处理

       传输线上传输的信号在阻抗不连续点会发生信号反射,进而产生振铃现象。PCB走线只要宽度不变,其特征阻抗固定不变,阻抗连续。而驱动器输出阻抗较小,往往小于PCB走线特征阻抗;接收器输入阻抗较大,往往大于PCB走线特征阻抗。信号会在驱动器与PCB走线连接处和PCB走线与接收器连接处来回反射,形成振铃,影响电路正常工作。反射问题的主要解决办法是在驱动器与PCB走线连接处或PCB走线与接收器连接处端接匹配阻抗,使整个回路阻抗连续,避免信号反射,防止振铃现象出现。端接方式有很多,如:串联端接、并联端接、戴维宁端接等,PCB走线端接方式的选择与PCB走线拓扑结构、PCB走线特征阻抗、驱动器、接收器以及负载类型等参数有关(各种端接方式的选择及端接参数的计算参见参考文献[3]P159~P183和参考文献[4]P178~P190)。端接处理的流程如图5所示。

4、结束语

       本设计最终生成.DLL文件,以第三方服务器形式安装于Protel,使Protel具有传输线分析和端接处理功能,能自动对印刷电路板走线进行传输线分析,对存在问题的印刷电路板走线给出合理的端接策略。即使没有丰富传输线分析和处理经验的普通电子线路工程师运用该功能也能设计出走线信号质量良好的印刷电路板,从而提高电子线路以及电子产品的功能和性能。


如果觉得 基于Protel SDK的传输线分析与端接处理系统这篇文章不错,可以推荐给朋友分享哦。
本文Tags:pcb培训,pcb是什么,pcb软件,PCB设计,
此页提供基于Protel SDK的传输线分析与端接处理系统pcb培训,pcb是什么,pcb软件, PCB设计参考。本站还有更多的PCB设计相关资料分享。
Copyright© www.dianzi6.com Inc. All rights reserved 。 1 2 3 4 5 6 7 8