ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

智能车竞赛疯狂电路组PCB设计全流程:从原理图到封装库实战

智能车竞赛疯狂电路组PCB设计全流程:从原理图到封装库实战 1. 疯狂电路组到底在“疯狂”什么先读懂赛题再动手每年全国大学生智能车竞赛的报名季总有一批队伍对着“疯狂电路组”这个组别名号犯怵。说实话这个组的名字起得很诚实——它考的就是电路本身。别的组还可以靠现成的核心板、现成的驱动模块攒出一辆车疯狂电路组不行规则明确要求主控板、驱动板、电源管理板必须自行设计不能用市售成品模块。你手里拿到的只有芯片手册、参考原理图以及一颗“你得自己把电路画明白”的脑子。我大概从第十七届开始带学生打智能车每年都有队伍在PCB设计这个环节崩盘。有的是原理图画得飞起一到布局布线就乱成一锅粥有的是封装画错了引脚间距板子打回来焊不上还有的更惨DRC一次都没跑就发了Gerber回来之后板子直接冒烟。这些坑几乎全部可以在一开始通过规范的设计流程规避掉。这篇博文我就按照我们实验室真正跑通的一套流程从赛题需求拆解、封装库规划、原理图绘制到PCB布局布线、打样前检查完整走一遍疯狂电路组的板卡设计过程。用的工具是Altium Designer大部分内容基于AD 20之后的版本旧版本界面略有差异但操作逻辑一致。标题里说了“附封装库”这部分我会单独开一节详细讲自建封装库的流程和容易踩的坑毕竟这是我见过最多队伍翻车的地方。先说结论疯狂电路组最大的“疯狂”不在于电路本身有多复杂而在于你需要在一个相对固定的周期内自己完成从方案选型到板卡回板、焊接调试的完整闭环。任何一环掉链子后面全得跟着遭殃。所以这篇文章的主线不是教你某一个具体功能模块怎么画而是给你一套“拿到赛题之后从零开始设计一块能稳定跑完比赛的电路板”的完整方法论。2. 板级方案规划画原理图之前先把“板卡边界”定下来很多新手拿到赛题的第一反应是打开AD新建一个原理图开始找芯片、拖元件。这是大忌。画原理图之前你需要的是一张纸一支笔先把整辆车的电子系统拆成几个物理板卡明确每块板卡做什么、不做什么。2.1 疯电组典型的板卡划分方式根据赛题对自制电路的要求结合我们历年实际跑车的经验建议按功能把电路拆成四块板主控板负责核心控制逻辑MCU选型、电源入口、指示灯、调试接口、传感器接口都在这块板上。这块板是整套系统的“大脑”布局布线要求也最高。驱动板负责电机驱动包含H桥电路、电流采样、母线电容、驱动芯片及散热设计。这块板是大电流回路集中地稍不留神就会成为干扰源。电源板负责将电池电压转换为多路稳定电压给主控、传感器、驱动逻辑部分供电。可以是独立板也可以集成在主控板上。传感器板根据赛题使用的传感器类型来定比如电磁传感器、摄像头、光电编码器接口等通常是调理电路加接口。这个划分不是死的。如果你做的是缩微类车型空间极其有限主控和电源合成一块板更现实。但不管怎么合有一件事必须在动笔之前就想清楚每一路信号从哪里出发、经过哪里、最终到哪里电源的回流路径怎么走。这些都想清楚了后面画原理图、布PCB就是一个翻译过程把纸上的框图变成AD里的物理连接。2.2 定板卡的三个判断依据我给学生的建议是从以下三个角度判断板卡要不要独立分板电流等级平均工作电流超过2A的回路建议单独成板或者至少在PCB上划分出独立的大电流区避免与敏感信号混在一起。信号敏感度传感器调理电路对噪声敏感远离大电流开关节点否则会直接影响采集精度。维修便利性竞赛现场只有很短的维修窗口哪个板坏了换哪个比分体式板卡不知道高到哪里去了。还有一个很容易被忽略的问题接口定义。既然分了多块板板间连接器排针、排母、线对板连接器的引脚定义必须在一开始就固定下来。我见过太多队伍画完主控板画驱动板两边接口引脚定义对不上只能飞线解决结果跑起来一颠簸就接触不良。我们实验室的做法是新建一个Excel表格专门管板间连接器定义第一列是引脚号后面几列是信号名画完一块板更新一次最后两份图纸的表格逐行比对。土办法但极有效。2.3 电源树设计所有设计的“地基”板卡边界定下来之后第一张要认真画的图不是原理图而是电源树。整套系统的供电关系捋不顺后面画任何模块心里都没底。典型智能车主控板的电源树长这样电池电压比如7.4V两串锂电或6V镍氢接入经过防反接保护后兵分两路一路直接进电机驱动的大电流回路另一路进入板上电源管理部分降压到MCU主电源3.3V或5V、传感器电源5V或3.3V、逻辑电平转换电源等。每个电源节点上要放多少电容、多大的电容计算依据是负载的瞬态电流需求。以舵机为例启动瞬间电流可能达到1A甚至更高如果你只给它一个100uF的电容而不加额外的储能电容电压跌落会非常明显直接导致MCU复位。这是一个非常经典的翻车现场我后面会详细讲。电源树画完之后顺手把每路电源的最大电流、允许纹波、对应负载标注上去。这张表就是你后续选择DC-DC芯片或LDO的直接依据。提醒一句不要让主控芯片直接吃电机驱动的那个电源节点哪怕你用的是同一个电池也应该经过一级独立的降压或滤波。不然电机一换向MCU就得重启。3. 封装库才是一切的起点从零建库的正确姿势标题里说“附封装库”那就必须好好聊聊封装这件事。疯狂电路组的规则决定了你必须自己画板而自己画板就意味着你手里必须有一套信得过的封装库。很多队伍图省事网上找一份芯片库就直接用了结果有几类封装是一踩一个准。3.1 为什么不能“嫖”别人的封装库先说结论网上的封装库可以用但必须经过100%的核对才能用于投板。原因很简单封装库的准确性取决于原始元器件手册的版本和建库者的细心程度这两样都不在你的掌控之内。我曾带队踩过一次非常大的坑。某款电机驱动芯片我们从某个号称“精品库”的网站下载了封装看丝印、看焊盘尺寸似乎都没问题打样回来焊接时发现引脚间距实际差了0.3mm——这种肉眼几乎分辨不出来的误差导致整批芯片焊不上板子手工飞线撑完了那一场比赛。从那之后我们立了一个规矩关键芯片MCU、驱动芯片、电源芯片的PCB封装必须自己建建完对照数据手册逐尺寸核对。这个问题在AD里尤其隐蔽因为AD自带库里的部分封装是按工业标准来的参数本身没问题但不一定适配你买到的那批货。举个例子同样是SOP-8封装不同厂家的芯片本体尺寸差异很大如果你用的是AD自带的“宽体”SOP-8去焊接一个“窄体”封装的小芯片焊盘会露在芯片外面一大截虚焊的概率直线上升。3.2 建封装库的标准流程我们实验室的建库流程分享出来可以直接抄第一步准备原件。临时买不到的芯片至少把数据手册里“Package Dimensions”那一页的PDF截图放大摆到屏幕上。这是最权威的尺寸来源。第二步建原理图符号库SchLib。先画原理图符号。这里有个经验符号的引脚编号建议以“1开始连续编号”为原则不要完全照搬芯片手册的引脚顺序。比如一个MCU可能手册里把PA0放在第14脚UART引脚散在两边你也照实画画完原理图之后连线会极其痛苦。正确做法是把引脚在符号上按功能重新排列——左侧电源、右侧IO、上面时钟这样原理图阅读性好很多后续检查网络连接也直观。有人说这样容易出错其实不会因为你的原理图符号和PCB封装是通过“引脚编号”关联的而不是通过引脚名称。只要编号和手册对得上位置随便排。第三步建PCB封装库PcbLib。这是重头戏。用IPC组件向导创建封装很方便但要注意几个细节。焊盘尺寸的计算公式我们一直沿用老工程师教的经验值对于引脚类封装SOP、QFP焊盘宽度 引脚宽度 0.3mm左右焊盘长度 引脚长度 0.4mm左右具体还要看引脚间距和焊接工艺。如果植锡工艺是手工烙铁焊焊盘可以比回流焊标准略微加大给手工焊接留出容差。对于QFN这类底部有散热焊盘的封装中间的大焊盘尺寸取手册推荐值同时要打散热过孔阵列但要注意过孔不要在焊盘正中央最好排列在焊盘边缘1mm宽的环形区域内不然过孔会吸走焊锡导致虚焊。第四步画3D模型。这一步很多队伍省略但我强烈建议做。AD支持Step模型导入各大芯片厂商的官网基本都能下载到芯片本体Step模型。把3D模型装进封装库里在PCB布局时可以直接看到实物效果对于检查高度冲突比如两层板之间的模块打架非常有帮助。我们曾有一块板就是因为没有3D模型电容和底座支架在物理上“打架”了装进车壳才发现重新打样白白耽误了一周。3.3 一套封装库必须具备的“后勤文件”封装库不只是焊盘和丝印还有一些隐性问题要注意丝印层Top Overlay必须在元件本体外围留出清晰的外框同时标注第一脚位置可以用圆圈或圆点。丝印宽度不小于0.2mm否则PCB厂家做出来可能看不清。位号Designator要与元件本体保持固定间距自动布局后不会盖住焊盘。元件本体占位面积Courtyard一定要设置并且要大于本体尺寸留出焊接和检测的余量。做DRCDesign Rule Check设计规则检查时元件间距检查就依赖这个占位面积。另外我们是按“元件大类建库”的思路来管理的一个SchLib对应一个PcbLib用相同的文件名前缀通过AD的库管理器Library Manager挂载。比如“MCU_STM32.SchLib”和“MCU_STM32.PcbLib”放同一目录配合AD的“Library 选项”同步搜索和放置。如果文件命名混乱后续做BOM比对和生产文件输出时会非常挠头。4. 原理图设计实战怎么画才不容易返工到了这一步你已经有了一套经过核对的自建封装库接下来就是在原理图页面里把整个系统画出来。4.1 原理图的分页与页间连接疯狂电路组的主控板如果硬塞在一张原理图里A3纸也放不下。正确做法是分页绘制不同功能模块放不同页面。以我们的主控板为例分为以下几页电源树页所有电源节点的来源、DC-DC配置、电容配置、电源指示灯。MCU最小系统页时钟电路、复位电路、启动配置、下载调试接口。传感器接口页各类传感器的接口定义、调理电路、滤波电容。驱动与执行器页电机驱动芯片、舵机供电、母线电容。通讯与调试页板间连接器、调试串口、LED、按键。分页之后页间信号用“网络标签 页间连接器”Off-Sheet Connector的方式连接。注意AD中网络标签Net Label在同一张图内有效跨页之后同名网络默认还是同一个网络但建议同时放置页间连接器这样出图时打印检查会清晰很多。4.2 电源与地网络的命名规范网络命名看似小事实际上特别容易埋雷。我们的规范是电源网络用“3V3”“5V”“VBAT”“VCC_MOTOR”这种带明确电平含义的名字而不是笼统的“VCC”。因为板上可能同时存在多个不同的VCC如果你全部叫VCCAD会把它们合并成同一个网络后果就是芯片直接烧穿。地网络统一叫“GND”模拟地和数字地如果需要分割分别用“AGND”“DGND”然后在单点位置通过磁珠或0欧电阻连接。注意一旦你定义了AGND和DGND必须显式放置连接元件不然DRC会报错或者更糟的两块地在不知情时被ADC内部连在一起。这个事听起来像基础课内容但每年都有队伍在这上面炸板我列出来绝对不算凑字数。4.3 关键电路节点的“加料”设计原理图不是把芯片手册上的参考电路抄一遍就完了。竞赛这种场景我一般会在参考设计基础上做以下几处“加料”输入防反接与缓启动。电池插反是竞赛现场最高频的失误之一没有之一。主电源入口必须加防反接最简单的是串联一个低压降肖特基二极管缺点是会有压降和功耗更合理的是P-MOS防反接电路正常工作时体二极管方向让电流流过反接时MOS管截断压降几乎为零。这个电路成本不高强烈建议设计进去。输入滤波电容的组合。电池到板子的引线有一定电感加上电机突然加减速时的大电流跳变输入端会出现很高的尖峰电压。我们通常在输入端放置一大一小两个电容大电容470uF-1000uF电解电容用于储能小电容0.1uF陶瓷电容用于滤高频尖峰。有时还会串一个共模电感效果更好但会多占面积需要根据车体空间取舍。去耦电容的布局原则。每个芯片电源引脚旁边都要放0.1uF的陶瓷电容这个是常规操作。但注意不只是“放了就行”而是要尽量靠近电源引脚如果放得太远引线电感会让去耦效果打折扣。MCU这种复杂度高的芯片建议电源脚附近再增加一个10uF的钽电容作为“储能池”。4.4 标注与BOM的规范化AD的标注功能Tools - Annotation可以自动给元件编号但要注意设置。位号前缀建议按元件类型区分C为电容、R为电阻、U为芯片、L为电感、D为二极管、Q为晶体管、J为连接器、Y为晶振、L1为磁珠。这样做的好处是后期手工查板时能快速定位。BOM表输出时不要只导出位号和型号还要把“元件封装”“制造商”“供应商”等属性放进去。有些杂牌元件可能没有统一的制造商编号此时要备注详细的参数和封装方便采购。我们还习惯在BOM表后面加一列“关键程度”标注哪些元件缺货会影响整车运行这样采购和备货可以按优先级处理。5. PCB布局布线决定你能否完赛的关键一战原理图画完封装库就绪到了PCB设计这一步。疯狂电路组和其他智能车组别的最大区别在于板上会同时存在大电流功率回路和微弱传感器信号这两者在物理上如果处理不当整车调起来会让人崩溃。5.1 叠层选择与层叠规划对于智能车主控板这个复杂度级别两层板基本够用但有个前提必须做好关键信号的回流路径规划。如果经济条件允许四层板会舒服很多——完整的电源平面和地平面极大降低EMI电磁干扰和信号串扰。疯狂电路组如果不是特别限制尺寸强烈建议上四层。四层板的典型层叠从上到下信号层元件面、地平面、电源平面、信号层焊接面。地平面优先保证完整不要被过孔和走线切成碎片这一点对EMC电磁兼容的影响远超你的直觉。如果坚持做两层板那么地网络的处理就要格外小心。我们需要手动规划地线的走向确保大电流地回路与传感器信号地回路不共用一段走线。通俗地说不要让电机驱动的返回电流流经单片机的模拟地引脚下方否则地弹噪声会直接注入ADC采样值。5.2 布局顺序先大后小、先电源后信号布局不要一上来就摆芯片。我的流程是先放连接器。把所有板间连接器按机械结构的位置固定在板边这是整个布局的“锚点”它们的位置决定了走线的主方向。再放电源模块。DC-DC、LDO、滤波电容、防反接电路先占据一块相对独立的区域尽量靠近输入电源连接器。然后放MCU主控芯片放在板子相对中央的位置方便向四周辐射走线。最后放传感器接口、调理电路、指示灯等外围器件。布局阶段就要开始考虑“热”问题。电机驱动芯片和MOS管是大热源如果板子是装在车体内部的要考虑风道或者散热结构的位置。我们曾经在驱动板上加过一片铝散热片配合导热垫贴在MOS管背面温升直接降低15度左右。如果你的车壳里没有风道布局时就要尽量避免把热源放在电解电容正上方电容高温降容是很快的。5.3 布线核心策略功率回路和信号回路分开走布线是整个流程里最考验功力的环节也是AD各种操作技巧的大杂烩。我挑几个经常拦住新人的点说明一下大电流回路的铺铜处理。电机驱动回路的电流可能达到5A甚至更高普通的10mil走线根本扛不住。正确的做法是大面积铺铜。计算电流和线宽的关系可以参考IPC-2221标准里的公式外层走线温升10°C时1oz铜厚下线宽mil ≈ 电流A/ 0.04。5A电流大约需要125mil的线宽这只是理论值实际为保险起见我们通常还会加倍铺铜面积。另外走线要短而粗减少回路电感。过孔处理的细节。切换层的电流经过过孔时单个过孔的通流能力大约在1A-2A。如果你要过5A的电流至少要放3-4个过孔并联而且尽量并排打不要前后错开太长否则回流路径会绕远。模拟信号线的保护。传感器的微弱信号线不要走太长的平行线尤其不要贴着电机供电线走。如果必须跨过大电流区域尽量采用垂直交叉缩小耦合面积。信号线两侧可以铺地铜形成“包地”结构抗干扰能力会明显提高。晶振走线要短。MCU晶振的走线要粗短两侧用地铜包住。晶振下方不要走其他信号线也不要铺大面积的铜皮否则寄生电容会改变振荡频率导致串口乱码或者系统时钟不稳。5.4 敷铜与DRC最后一道防线所有网络布线结束后先别急着发板敷铜之前先做一遍初步DRC看看有没有漏掉的飞线确认没有未连接的引脚。然后开始敷铜顶层底层都铺地铜GND如果板上有模拟地AGND就先单独敷铜再通过0欧电阻或磁珠单点连接。敷铜网络选择GND然后运行DRC检查完整的间距、短路、未连接等规则。DRC不是跑一遍就完事了要把每一个error和warning都过一遍尤其是“Un-Routed Net”和“Short-Circuit”是绝对不允许存在的。还有一些warning比如“Silk to Solder Mask”丝印覆盖焊盘之类也要尽量清零。打完板子回来焊接完成之后上电之前必须做一次后端检查用万用表测试电源正负极之间的阻抗确保没有短路再测试关键电源节点对地的阻抗与设计预期值进行比对。这步做完再插电能避免很多“一上电就冒烟”的惨剧。6. 打样前的救火清单缓存、生产文件与封装库归档PCB设计完成并不是终点从AD到PCB厂家的生产文件之间还隔着好几个极易出错的环节。我见过不少队伍死在“最后的这100米”上所以专门用一节来写。6.1 清理AD缓存一个常被忽略但很有用的习惯AD在长时间使用后会积累大量的缓存文件尤其是你在出图时频繁切换库和预览时界面可能变得越来越卡甚至出现异常的显示错误。AD的缓存主要存在于Temp目录和“Advanced Settings”中的临时文件目录如果发现打开工程明显变慢可以尝试清理。操作路径不复杂打开AD在顶部菜单栏找到“DXP”或“Preferences”入口不同版本位置不同在“Data Management”里可以看到缓存存储路径设置手动删除该目录下的历史临时文件即可。还有一个更直接的方式是重启AD多数显示异常和卡顿能好一半。做这一步纯粹是为了提升操作效率和电路性能没有关系但既然很多人在网络搜索“altium designer如何清理缓存”说明确实是高频痛点顺手提一下。6.2 生成Gerber和钻孔文件的标准姿势发板给厂家本质上你给的不是AD工程文件而是Gerber文件和钻孔文件。很多初学者图省事直接把“.PcbDoc”发给厂家或者只导出一个PDF就让厂家看着做这会引入极大的不确定性。标准流程如下在PCB编辑界面确认所有层设置无误比如丝印层、阻焊层、助焊层都已正确生成。使用File - Fabrication Outputs - Gerber Files进入Gerber设置界面。选择输出所有需要的层格式建议选择RS-274X精度至少是2:50.01mil分辨率这是绝大多数厂家接受的标准。钻孔文件在File - Fabrication Outputs - NC Drill Files界面生成格式选Excellon单位建议用毫米mm精度要高。这个文件要和Gerber文件放在同一个文件夹一起打包发厂家。如果板上有特殊工艺需求比如沉金、阻抗控制需要额外准备一份制板说明文档写明板厚、铜厚、表面处理方式、最小线宽线距等参数。别指望厂家能从Gerber文件里自动读出这些要求。发出去之前找一个通用的Gerber查看器比如网上有很多免费的把生成的Gerber文件打开看一眼重点检查焊盘位置、过孔位置、丝印层是否正常。这一步能拦住至少80%的低级错误。我们有一次就是在这步发现丝印层的位号字体大小异常重新修改后避免了丝印糊成一团。6.3 封装库的归档与团队共享文章标题写了“附封装库”那就必须有始有终地讲一下封装库发布时的规范。一场比赛下来你会发现它比比赛本身的价值更长远——那是留给下一届队员最宝贵的积累。我们把封装库归档分成三层第一层库文件本体SchLib和PcbLib按照“年份_组别_模块名”的方式命名存放在团队共享网盘里。第二层封装库说明文档。每个封装要标注信息来源数据手册版本、参考电路出处、建库人、建库日期、关键尺寸截图、使用注意事项。这听起来繁琐但下一届队员拿到这套库的时候会无比感激。第三层封装库的“经验教训”笔记。凡是比赛中因为封装问题导致的事故全部记录在这个文档里包括当时的现象、排查过程和最终结论。这套归档机制让我们的封装库积累速度远快于网上随意下载的那些“通用库”。到了第二十一届比赛队伍里的新队员拿到上一届留下的封装库画第一块板就能达到过去需要练一个月才有的准确率。这就是规范化带来的复利。7. 写在板子回来之后焊接调试的几个实在建议板子打样回来只是一个开始。疯狂电路组真正的“疯狂”是从焊接调试才正式开场的。这个阶段的经验同样值得写一笔毕竟很多队伍不是栽在设计上而是栽在调试环节。焊接这件事优先建议用回流焊台其次可以考虑热风枪人工贴片。如果完全手工烙铁焊自己建的封装库焊盘尺寸设计能大幅降低焊接难度——这也是前面强调自建封装库的另一个理由。焊接完第一件事不是上电而是拿万用表蜂鸣档测一遍电源对地阻抗确认没有短路。上电时如果条件允许用可调电源限流缓慢升压一旦电流异常立刻断开远比你直接把电池怼上去安全得多。调试时遇到“好像哪里不对但说不清楚”的情况别急着改电路先用示波器抓关键节点的波形电源纹波、晶振起振波形、PWM输出波形、传感器输出波形。绝大多数硬件问题都能在这四路波形里找到端倪。如果发现某路电源纹波异常大优先检查对应去耦电容是否漏焊、虚焊其次看板子布局时该电容是否离负载太远。另外提醒一句调试过程中不要频繁热插拔电源和信号线。板子上的连接器引脚在多次插拔后会出现机械疲劳接触电阻变大引发一系列“幽灵故障”——看起来是电路逻辑问题实际上是接触不良。我们统一规定比赛期间所有板间连接器只能由专人插拔并且每晚收车后统一检查一遍各连接器插紧度。这个土办法让我们少吃了太多苦头。8. 封装库使用提示与扩展思路虽然标题里挂了“附封装库”但我还是想多说一句拿到任何别人的封装库第一件事不是直接开始画图而是把库里的关键封装和你手头实际购买的芯片逐一核对一遍。你买到的芯片批次、厂家、封装细节都可能与库里的版本存在细微差异而这些差异会在回流焊之后以“虚焊”“连锡”“芯片翘起”等形式报复你。核对方法很简单拿一把游标卡尺测量芯片本体的长、宽、厚再对照AD库中封装的“焊盘间距”和“本体丝印尺寸”是否一致。如果差别超过0.1mm建议直接改封装不要心存侥幸。另外AD 新版本引入了AI相关的辅助功能比如智能布线、智能元件推荐等实测下来对常规板卡能提升一些效率但对疯狂电路组这种高速、大电流、混合信号板来说AI工具目前还无法替代人的全局判断。能用它做些快速摆放、扇出、标准走线但关键的大电流回路、模拟信号区域还是得靠工程师自己的控制力。最后分享一个后续可以扩展的方向智能车竞赛发展到今天板卡设计已经从“能跑”进化到“性能”甚至“美学”的比拼。当你把本文这套流程跑顺、打样回来焊完第一块稳定的板子之后可以开始探索更多进阶设计比如用更高速的运放做传感器调理、把MCU换到更高主频的芯片、缩小板卡面积以便给车体留出更大的机械调校空间。那些曾经让你焦虑的布局布线问题会随着你对自己封装库和设计流程的掌控感增强一步步变成你真正的竞争力。
返回列表