十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

AD原理图转Orcad完整流程与避坑指南

AD原理图转Orcad完整流程与避坑指南 上个月帮朋友公司处理一个项目交接对方发来一套画得挺完整的原理图Altium Designer工程但后续要和另一个团队联合开发那边整条流程锁定在Orcad Allegro上。于是“Altium Designer原理图转Orcad”这件事就落到我头上。说实话这种跨工具转换难度不算高但坑是真的多——转完发现位号重复、电源符号变了、特殊字符乱码哪个都能让你多熬一下午。这篇文章就围绕“AD原理图转到Orcad”这件事把我这几年实际踩过的坑、摸索出来的流程全部整理出来。适合手里有AD工程、但需要交付DSN文件给Capture用户的工程师阅读。我会从转换前的需求梳理和规范化讲起然后是AD导出DSN的实操步骤、Orcad Capture导入处理、以及转换后必须做的网表比对和DRC检查最后是高频问题排查。如果你正准备做一次类似的转换按这套流程走能少走很多弯路。1. 为什么要把AD原理图转到Orcad先理清需求再动手1.1 最常见的三种业务场景结合我接触过的实际项目“AD原理图转Orcad”的需求基本来自三个方面。第一种是公司工具链统一比如团队决定以后原理图环节全走Cadence流程原理图用Orcad Capture画PCB用Allegro设计那么之前用AD建的历史原理图就得整体迁移。第二种是客户或上游方案公司强制要求交付Orcad能打开的源文件因为对方需要直接在原图上修改、维护、评审你只给PDF根本没意义。第三种是后续仿真需求Capture自带的Pspice在电源仿真、模拟电路仿真上有一批现成模型很多工程师会把AD画的原理图转过来做仿真验证。这三种需求虽然业务动机不同但技术路径是完全一致的把AD的SchDoc工程导出成Capture能识别的DSN格式并且确保元件、引脚、网络连接这些核心信息一个都不丢。不过要注意需求场景会影响你的交付标准。如果是统一工具链你还需要把符号库、封装命名、位号规范一并对齐如果只是交一版源文件给对方参考那电气连接正确就够了。1.2 转图不是“另存为”三个字就能收工很多刚接触这件事的工程师以为在AD里点一下File→Save Copy As选个DSN后缀就结束了。实际远没有那么简单。第一层原因是数据模型差异AD原理图允许一个元件挂几十个自定义Parameter而Capture更依赖结构化的Property体系。AD的全局电源符号、离页连接符、总线命名规则和Capture的对应概念都不一样。第二层原因是版本兼容性AD导出的DSN不可能被所有Orcad版本直接打开而且导出过程本身就会丢一部分非电气属性。我自己的习惯是动手前先回答三个问题。第一个原图是用哪个AD版本画的新版本导出的DSN兼容性通常更好。第二个接收方用哪个Orcad版本至少目标版本能打开这个DSN。第三个是一次性翻译还是长期维护——如果之后还要反复在Capture里改图那么符号库和字段映射就必须一并迁移不能只导图不导库。这三个问题定下来后面导出参数怎么选就清楚了。2. 转换前的准备先把AD原理图这块地基夯实2.1 版本选型、备份与试转页别一上来就动真格先做三件事备份、试转环境、选一页代表页。很多人直接拿整个工程去转转完发现Capture里打开一堆问题回头想改AD原图发现已经动过好几处对不回去了。备份这一步不多说项目文件夹整个复制一份连库里文件带PCB工程一起避免操作过程中误删。试转环境是我比较强调的在AD里打开工程随便挑一张中等复杂度的图纸——我习惯选电源板或者接口板这类图纸上有电源符号、离页连接符、各种元件类型最能体现转换问题。先单独转这一页在Capture里打开看效果。如果这张图转得顺利、检查通过再去做整本转换就有信心了。版本层面最低底线AD导出DSN时尽量用新一点的版本比如AD20、AD21的操作界面虽然和早期版本有差别但导出到Orcad的老格式依然稳定。如果公司还在用AD10甚至AD09导出DSN的功能也不是没有只是很多新版AD里支持的符号和属性映射老版本可能处理不了建议有条件的话先用新版AD打开并保存一次工程。2.2 图纸规范化位号、参数和特殊符号都要过一遍AD工程里很多问题在AD自己的环境里看不出来因为AD对属性缺失、位号重复有比较强的宽容度。但一旦转到Capture这些隐患会被放大。所以转图前的图纸规范化非常关键。第一位号必须已经做完全工程统一也就是执行过Annotate且保证没有重复、没有悬空位号。Capture对原理图里位号重复的问题非常敏感DRC会直接报错。第二元件的Value、Footprint、Description这些基础属性必须完整。AD工程里常见的“Value藏在Parameter里Footprint只在PCB里关联”这种情况转换时非常容易丢属性。第三检查电源符号和地符号。AD里VCC、GND是全局Power Port转换后能不能保留为Capture的全局电源符号取决于导出时的选项我建议转之前在AD里把Level设置为Power Port而不是普通端口。第四尽量统一字体。AD里的中文注解、特殊字体到Capture里经常乱码如果原图里大量使用仿宋、宋体建议先统一改成Arial这类标准字体。2.3 库文件怎么准备原理图转过去之后Capture里每个元件都需要对应一个符号定义。AD导出DSN时通常会把这些符号定义内嵌到DSN里所以理论上即使你没有额外给Capture库文件打开DSN也能看到所有元件。但这种“内嵌符号”如果项目里有上百种器件后续在Capture里维护会非常吃力而且很多符号并不是Capture风格画法、引脚排列都很别扭。所以我会在转换前做一次元件清单梳理把AD工程里用到的所有元件列出来对照Capture目标库看哪些能在公司已有的Capture库.olb里找到哪些找不到。对于找不到的再去考虑是导入AD的SchLib还是自己重新画符号。这个映射表做得越细转换后在Capture里处理库的环节就越省力。3. AD导出DSN的实操流程3.1 导出菜单路径与关键参数以AD20/21的操作为例。打开AD工程进入要导出的原理图文件执行 File→Save Copy As。在“保存类型”下拉框里选择 OrCAD Capture DSN (*.dsn)这时会弹出一个Export Options参数设置窗口需要在里面做几项关键设置。导出格式一般有OrCAD Capture 16.2、16.6等版本选项。我的经验是优先选16.6兼容性较好Capture 17.2以上的版本都能直接打开如果你知道对方还在用Capture 16.2或更老的版本就老老实实选16.2虽然会损失一些新特性但至少人家能打开文件。选择时别贪新稳妥永远是第一位的。Output Path设置导出文件存放目录建议单独建一个输出文件夹别和工程文件混在一起。有些AD版本在这个窗口里还有关于文本转换、图纸尺寸映射的选项。比如字符串如果包含特殊字符是否转换为Capture能识别的编码图纸大小如果AD端有自定义格式导出后如何映射到Capture的Sheet Size。不同版本选项的措辞略有差异核心思想是——把所有能“转换特殊字符”的选项打开能“尽量保留属性”的选项打开其他影响默认行为的不熟悉的选项一概不勾。3.2 多页原理图与层次原理图怎么处理AD工程有扁平式多页结构也有带Sheet Symbol的层次化结构。这两种结构在导出DSN时的表现不一样。扁平式多页原理图最简单导出后Capture会为每页生成一个Schematic Page页间的连接主要靠Net Label和Off-Sheet Connector识别只要命名一致Capture会自动把同名网络连起来。层次化结构要麻烦一些AD的Sheet Symbol对应的是Capture里的Hierarchical BlockAD里子页的入口端口在Capture里会变成Hierarchical Pin。这里最容易出问题的是端口方向和名称。如果AD子图里端口画得比较随意名称上下页不一致转换后Capture的DRC会报大量“Hierarchical Port mismatch”。我的建议是如果这张原理图的层次结构并不复杂只是为了把连接关系拆成多页那在转换前可以先把层次结构拍平即把Sheet Symbol都用同名Net Label替代转换成扁平多页结构再导出。这样会损失一部分图形上的层次信息但电气连接在Capture里最稳定。反过来如果项目的层次化设计是业务核心必须保留Hierarchical Block结构那就要在AD里先把每个Sheet Symbol的端口名称、方向全部对齐再导出。3.3 导出过程中的其他设置导出DSN时真正重要的选项就几个其他很多是辅助性质。比如以下这些值得注意。关于网络名AD里有些网络是临时命名的比如“$1N00001”这种如果导出后这些临时网络还挂在引脚上Capture里会显示为类似“N-0001”的孤立网络DRC会报single node。这种情况不是转换错误但能看出原图里确实有未标Net的悬空引脚。在AD里做一次“所有引脚假设网络标签”检查能规避大部分这类问题。关于图纸尺寸AD的自定义图纸尺寸和Capture的A/B/C/D系列不太一样。导出后经常出现图纸偏大或偏移的情况。这不是致命问题但会影响打印和评审。实际操作中我一般接受Capture的默认映射然后在Capture里用Schematic Page Properties重新改一遍尺寸和边距。关于导出日志AD导出完成后会生成一个日志文件里面记录了哪些元件被跳过、哪些属性无法转换、哪些符号发生警告。很多人忽略这个日志直接关掉这是不对的。每次导出后我都会打开日志用CtrlF搜“Warning”和“Error”把列出来的问题逐条处理能省掉后面大量排查时间。4. Orcad Capture导入与库文件的迁移处理4.1 在Capture里打开DSN的两种方式拿到AD导出的DSN文件后在Orcad Capture里可以直接 File→Open→Design选择该DSN文件打开。对于比较正常的文件Capture会直接读取并显示原理图页面。如果DSN是旧版格式也可能弹出一个导入向导按默认设置下一步就行。另一种方式是通过 Capture 的 File→Import→Design这种方式通常用于从特定格式导入但和直接打开DSN没有本质区别。我更推荐直接Open因为AD导出的DSN本身已经是一个完整Design文件不是残缺的中间格式。首次打开时Capture会把这个Design对应的Cache库加载出来。你会在工程管理器里看到一个和DSN同名的Cache文件夹里面是此次打开用到的全部元件符号。这些符号是从DSN里解析出来的可以用但不建议长期作为元件库因为Cache库只跟着当前DSN走新建另一个图时不会自动引用。正确做法是后面把它另存成一个正式的.olb库文件。4.2 元件符号与Footprint属性的迁移Capture打开DSN后你会在每个元件属性里看到Source Reference之类的字段记录着这个元件来自AD的哪个库。最有用的属性是Value、Reference、PCB Footprint。AD里的Footprint描述的是封装名比如“LQFP-64”到Capture里通常映射到“PCB Footprint”属性。如果你的团队做PCB时用的是Allegro流程那么封装名必须与公司Allegro封装库中的名称完全一致否则后面导网表到Allegro时会大量报错。对于Capture端已经有标准元件库的情况我建议把Cache里的符号替换成标准库符号。操作方法是先在Capture的Library Manager里把目标.olb添加进来然后打开原理图执行Tools→Update Symbols在对话框里勾选“Update Symbols from Library”并选择目标库文件再勾选“Update Instance and Occurrence Properties”以保留当前图纸上的位号和属性。这样每个元件就会从Cache符号切换成标准符号。这一步不是必须的但非常推荐尤其是后续还要在Capture里持续维护的项目。4.3 页面设置与标题栏处理转过来的图纸页面尺寸大概率和你原图不一致。AD用的是A3、A4这类ISO标准Capture默认库里常用A、B、C系列美制尺寸。直接把DSN里的页面改成你需要的尺寸即可在页面上右键 Schematic Page Properties在Sheet Size里设置Width和Height把Margin调整好。标题栏是另一处经常被忽略的地方。AD通过Template统一管理标题栏里的Title、Date、Revision、Company等内容这些字段在导出DSN后不一定都能对到Capture的Title Block区域经常出现空白或日期丢失。不要手工慢慢敲。有一个技巧是如果公司有统一的Capture模板.otl直接在Schematic Page Properties里切换到该模板标题栏的格式会自动统一再用文本分块填内容。这个操作值得花时间做因为它决定了交付文件是否专业。5. 转换后的检查与核对不能光靠眼睛看5.1 用网表对比代替肉眼目检转完图之后最忌讳的事情是只用眼睛在Capture里扫一遍看看“像不像”就认为没问题。原理图的电气连接几百上千条肉眼根本看不过来。我做转换后的第一道核查永远是网表对比。具体做法分几步。第一步在AD里通过导出Netlist功能把原图的网表导出来格式选择普通的文本格式比如Telesis或Allegro格式都行。第二步在Capture里打开转换后的DSN同样执行Tools→Create Netlist选择相同的网表格式。第三步用文本比较工具比如Beyond Compare或者UltraCompare把两个网表文件丢进去对比。对比的时候重点不是看文本格式是否一模一样因为两个工具生成的网表语法有差异。核心是关注两类差异网络Net名称集合是否一致原图有10个网络转换后变成9个或者多了1个陌生网络都是异常。每个网络下的元件引脚列表是否一致比如某个5V网络原本接了10个引脚转完之后只接了9个那一定有一个pin丢了或者改花了。实际操作中我会先把两个网表文件里的网络按照名称排序逐条比对这样看差异非常直观。如果差异很大基本就是转换选项没选对或者原图本身存在悬空引脚没注意。5.2 DRC与电气检查网表对比过了再跑一遍Capture的DRC。在Capture中执行 Tools→Design Rules Check弹出的对话框里有一堆选项我通常会重点勾这几项Single Node Net检查只有单一节点的网络、Unconnected Pins检查悬空引脚、No Driving Source检查网络是否有驱动源、Bus Width Mismatch检查总线宽度不匹配。这些选项如果报出来结合网表对比结果去定位问题效率非常高。DRC跑完只代表没有基础电气错误并不代表图形层面好看。所以我会配合人工抽查关键页面比如电源树、MCU最小系统、DDR部分。对于电源树重点看每个电源网络是否挂到了正确的电源符号上而不是靠Net Label连接却在图纸上找不到电源符号。对于MCU最小系统重点看晶振引脚、复位引脚、去耦电容的连接是否正确。整个检查流程下来时间一般占整个转换工作的40%以上。有必要强调转图这个工作的核心不是“转”而是“验”。5.3 一份可复用的逐页核对清单下面这份检查清单是我每次做转换核对都会打印出来逐项打钩用的分享给你直接抄作业。检查项检查内容判定标准元件位号Reference是否唯一、无重复、无缺失每个元件都有唯一位号元件属性Value、PCB Footprint、Description是否非空关键属性完整Footprint与目标库匹配引脚连接每个引脚的电气连接是否与原图一致网表比对无差异电源符号VCC/GND是否仍然为全局电源符号非普通端口DRC无悬空离页连接符Off-Sheet Connector名称、方向是否成对多页同网络名称一致无漏连总线Bus名称、Bus width、成员Net是否完整DRC无Bus宽度不匹配图纸尺寸Sheet大小、边距是否满足交付标准符合目标流程打印/评审要求标题栏Title、Rev、Company、Date是否填写完整信息准确无乱码这份清单按页面逐页执行尤其多页原理图每页都要过一遍。6. 常见问题与排查技巧实录6.1 DSN打开时报版本不支持或直接打不开这是问得最多的问题。AD导出DSN后接收方用Capture一打开弹窗提示版本不识别或者打开后只有一部分页面。原因通常是导出格式版本选得太新超出了对方Capture的支持范围。AD导出时如果可选格式里有16.6、17.2这些选项而对方还在用Capture 16.2那基本就会出问题。解决办法是重新导出把格式选为更低的16.2版本。如果已经搞不清对方具体版本最稳妥的做法是导出两份一份16.6一份16.2让对方按需要选。另一种情况是AD导出时DSN文件损坏。比如自定义图纸里包含特殊线型、OLE对象导出过程中数据异常。这种问题很难修复我的建议是回到原图把出问题的特殊元素删掉或替换成普通图元再重新导出。与其在导出后修补一个坏文件不如回到源头处理。6.2 元器件位号乱序、重复或带多余前缀AD里有些元件位号不是“D1、R2”这种标准形式而是带了前缀比如“D_1”、电压域后缀等。转换到Capture后由于属性映射机制不同位号可能显示成“D_1”的完整文本也可能出现两个元件同号。如果你在Capture里重新执行Annotate理论上能重新统一位号但这样做会打乱原理图中原有的位号体系可能和PCB图、BOM对不上整条流程的追溯性直接损坏。正确的做法是转换前在AD里先确保位号标准化不要在AD里用奇奇怪怪的位号规则转换后在Capture里不要随便按自动Annotate而是手动检查重复项单独修改。Capture的Tools→Annotate里可以设置不重新编号已有元件只处理无位号或重复的元件这个选项一定要看清楚再点。6.3 特殊字符乱码和字库问题AD原理图里用了µF、Ω、°C这类特殊符号转过去之后大概率变成?、空方格或者乱码。Capture的字体渲染机制与AD不同尤其在早期版本里对Unicode支持并不好。我处理这个问题的原则是“预防优先”。转换前在AD里进行一次全局搜索替换把µF改成uF把Ω改成Ohm把°C改成degC虽然显示上没有原来花哨但至少不会乱码而且这些写法在BOM和网表里反而更不容易出错。如果原图里已经有大量乱码修复成本非常高而且很容易漏。只有一条可走回AD改完再重新导出不要试图在Capture里逐个文字块修补。6.4 电源符号与离页连接符在转换后异常AD的Power Port是全局属性即你在任意一页放的VCC在整个工程里都代表同一个电源网络。Capture的全局电源符号是带特殊形状的比如条形电源符号或旗标地。转换过程中如果导出选项设置不当或者符号库缺失AD的VCC可能变成Capture里的普通Net Label连接甚至变成无连接的端口。检查方法就是前面说的网表比对重点关注电源网络看每个电源网络下是否都挂到了正确的元器件引脚。另外在多页原理图里AD的Off-Sheet Connector转换后有时会丢失方向属性出现两个同名离页连接符但方向对不上。Capture的DRC一般不会报这个问题需要人工检查每一页的边缘连接符。我自己的习惯是最后通宵拿着PDF逐页比对虽然累但也确实发现了不少连接符方向问题。6.5 总线转换断头或命名变形总线的转换也是个高频坑。AD里总线命名通常写成Data[0..7]Capture支持的总线命名有[0:7]和[0..7]两种但两者的总线元素命名规则有差异。如果原图AD总线里夹着一些非标准名称导出后容易出现总线断裂、成员网络丢失。处理建议是转换前在AD里统一检查所有总线确认每个总线都有明确的Net Label并且总线成员命名符合“根名称数字”的规律比如Data0、Data1直到Data7。避免把非常规名称塞进总线。转换后在Capture里DRC检查Bus Width Mismatch如果报错回到AD总线位置逐根比对基本能找到问题。7. 最后再分享两个实操心得转图这件事做得多了其实是有套路的。我个人使用频率最高的两个小手段一个是“先转一页再转整本”——任何一次新版本AD、新版本Orcad的组合我都会先拿一张中复杂度的页面做试转把导出格式、替换符、页面映射这三个变量固定下来然后再整个工程批量处理这一步至少帮我省掉过十几次返工。另一个是提前维护一份“AD字段到Capture字段到Allegro封装名”的映射表。很多公司元件库命名混乱同一个封装AD端的Footprint叫LQFP-64_0.5Capture端却叫LQFP64Allegro端可能又不一样。与其每次转图时手工改一堆属性不如平时就让团队把三种工具间的命名规则表更新起来。转图的时候直接套表批量替换属性精确度和效率都能提升一个台阶。Altium Designer原理图转Orcad本质上不是数据翻译而是流程对接。只要把握住“电气连接为准”这条底线先理清需求、再规范化原图、然后小心导出、最后严格验证这套转换任务完全可以做到又稳又快。希望这篇文章能帮你少踩几个坑。
返回列表