前言
第一次对PCB设计心生敬畏是在2000年年底,我加入了硅谷的一家宽带通信芯片公司——Centillum Communications,
作为一名硬件设计工程师,主要的职责是支持大客户(Lucent、Cisco、NEC以及后来
的华为、中兴、UTStarcom等公司),所谓支持
就是根据这些客户的规格要求,我们自己设计好能安装在他们的机箱里就可以直接工作的Turnkey(俗称“交钥匙”)解决方案。虽然在此之前我已经有了若干年的硬件设计经验,设计、调试过的板子已经不下50种,但是第一次(刚加入团队一个月,项目还是其他同事设计的)跟朗讯(Lucent)的技术团队面对面地讨论还是被惊到了,电路设计没提多少,被质问最多的
是原理图设计的规范性; 系统如何安装、调试; 项目的进度、流程、产品的可升级、可维护性; 等等。1小时的会议结束,我顿感自己的硬件设计能力几乎为零,必须从头开始学起,回到公司立刻打开老板在我刚入职时发给我的硬件设计规范文档,逐条逐行地阅读、学习。
后来三年的硬件设计都是在跟大客户联合开发产品的过程中度过的,对实际产品中的PCB设计(仅原理图电路设计)也积累了很多心得和感悟。
2006年转行做服务电子工程师的专业媒体“与非网”,虽然彻底告别了自己动手画PCB原理图的工作,但却从更多的层面接触到了行业里更多的硬件设计人员,尤其是4年前我们“硬禾实战营”做硬件实战培训,陆陆续续有300多名学员跟着我们学习PCB设计和FPGA编程,他们有在校的学生、研究生,也有工作了几年的工程师、高校教师。通过“电子森林”微信公众号和一系列与硬件相关的微信交流群,我们结识了上万的行业工程师朋友,跟他们的交流让我更深刻地感觉到有必要把我当年做硬件研发时期的心得和感悟分享出来。
2018年下半年,我们在摩尔吧在线视频平台上开设了30节PCB设计的视频课程,算是对十几年前工作的一个粗线条的总结
,虽然课程本身获得了很多工程师的认可,但总觉得第一次的视频课程做得太粗糙,也不够系统,有些地方不够准确,因此总希望有时间能再更新一版。
要说起和清华大学出版社的缘分还是很深的,与非网创办时的办公场地就
和清华大学出版社在同一栋楼上——清华科技园的学研大厦,在与非网的成长中跟清华大学出版社有过非常紧密的内容合作,得到了清华大学出版社的大力支持。这次的PCB设计视频课程又得到了清华大学出版社
计算机分社的策划编辑杨迪娜女士的认可,她建议我可以出版一本针对PCB初学者的指导性教程,将我当年做产品研发的一些体会融合进去,从而让初学者入门时就能够对产品化设计有一些正确的认识,尽可能避免未来研发中走弯路。
本书的由来就是如此。
下面再来说说本书的定位以及在本书中试图传达的几个要点。
1. 硬件工程师的主要职责: 电路设计而不是工具的使用
自入行做技术以来近30年,我最大的体会就是技术领域的变革速度越来越快,产品日新月异,设计工具层出不穷,
令人应接不暇,以后的节奏只会更快。应对变化最好的方式就是掌握其最核心的东西,对于硬件设计工程师来讲,最核心的就是电路设计,绝对不能沦为只会熟练使用工具的“器材党”。在技术交流群里经常会听到有人讲: “我只会用PADS画板子”“AD
(Altium Designer)的快捷键我用得多快”等。我个人觉得这都是一些表面技能,沾沾自喜于这些技能的工程师一般都把注意力放在了工具的操作上,而忽略了核心的电路设计、设计的规范化、硬件的设计流程等更重要的点上。
在变化的世界里我们最需要具备的一项能力就是“触类旁通”,今天你用哪款设计工具学习PCB设计
不重要,在未来的工作中大概率会用其他的工具,你要做到在2小时甚至更短的时间内切换到你不曾用过的新的设计工具中去。我们必须要有这个能力,而具备这个能力的最佳方式就是淡化针对某项“工具”的掌握。
因此在这本书中,除了用开源的设计工具KiCad为例做一些功能的介绍以外,尽可能做到所讲解的内容跟设计工具无关,
即我们讲述的这些要点在任何一个工具中(AD、PADS等)使用都是一样的,这些是独立于工具之外的技术核心点。
2. 好的电路设计工程师一定要学好电磁场理论
经常有人问: “我怎样才能成为一个好的硬件工程师?”“怎么别人设计电路、调试板子这么轻松,而我就死活不入门?问题出在哪里?”对于这些朋友我一般建议他们结合电路中遇到的一些问题再去好好复习一下电磁场理论。原理图上的电路都是基于元器件特性的理想化的电气连接,而当你把器件安装到PCB上的时候,出现的稀奇古怪的各种现象几乎都是电、磁和它们的相互作用在作怪了,例如干扰、噪声、交调、信号完整性、EMC等,最终你必须放在电磁场的大环境下来分析才能解决问题。
作为一本入门级的教程,对于PCB上电路性能的分析可能不够深入,需要工程师朋友们自己去翻看电路原理、电磁场理论方面的基础教程去学习和思考,当然学会一些设计仿真软件的使用也是非常有帮助的,遇到问题就结合这些理论来进行分析、总结会让你的设计技能更有效地提升。
3. 电路设计是综合能力的体现
我们工程师的职责就是根据项目的需求来进行设计,最终实现项目的所有功能、性能以及成本等方面的需求。这涉及很多环节,考验的是综合技能,越是靠前的环节影响越大,因为前面的决策一旦出差错,后面的所有工作都是白做。PCB设计
从字面上理解起来只是一个具体的执行过程,而前期的决策和方案制订、器件选型、器件关键信息的提取等也是尤其重要的,这需要我们提高对新产品的敏感度,专业英语的阅读能力,有效信息的快速提取,社会资源的整合能力等。因此本教程花了大量的篇幅介绍这些部分,反而原理图的绘制、PCB的布局布线等内容占比并不大。是的,这是一项系统工程,我们必须对系统中的各个关键点都高度重视。
4. 规范化设计思维的养成
在培训学员的过程中,我一再强调: 任何设计首先是给别人看的,因此设计出来的元器件库、原理图、布局、布线都要先让别人凭着直觉就能看得懂; 其次是让机器(设计工具软件)能看得懂,不产生误读; 最后是自己将来随时
随地都能看得懂。不能让别人凭直觉一下子就能看懂的设计是个失败的设计。
因为在任何一个公司、实验室,做任何一个产品,大概率都是一个团队一起做,不是你一个人来搞定所有的事情。你负责电路设计,操作工具熟练的Layout工程师帮你布局、布线; 焊接工程师按照你的原理图和物料清单(BOM)帮你焊接元器件; 软件工程师基于你提供的原理图编写操作GPIO的程序; 采购人员要根据你提供的BOM进行元器件的采购、备料; 其他项目组的同事需要参考你的设计……无论未来你职位的调整还是项目的变动,你的设计随时可能由其他同事接手。
因此“规范化”设计是我们硬件工程师,尤其是能力优秀的设计工程师必须
要做到的基本功。如果坚持用你自己的风格,你的设计只有你自己才能看得懂,无论你的电路设计能力有多强,在一个团队中你的贡献可能是负的。
5. 时间成本最高
在一个企业里什么最值钱?做过真正产品的工程师一定都会同意是“时间”。无论企业投资多大,无论你们的团队多么
努力,无论你们的技术能力有多强,如果你的产品上市时间晚于竞争对手哪怕一天,这一切的“无论”都变得没有意义。对于企业开发产品来讲,就是要不惜一切代价抢在竞争对手前面推出有竞争力的产品。
在我们的研发过程中,要时刻记住“时间”的重要性,有时不惜花费一切代价也要换取时间,这体现在一点一滴的项目执行细节中,要有正确合理的开发流程; 一个新产品从概念到成型,最多不能超过三次打板; 不要贪图几百块钱的便宜到淘宝或者不明来历的贸易商那里去购买廉价的元器件,买到一个假货可能导致几天乃至几周的调试浪费; 在学习一些有价值的课程方面舍得投资,即便学到一个有用的知识点,就可能避免你项目中的一个大坑,从而避免多打一次板的时间浪费。
6. 通过实际的项目体验模拟、数字混合系统设计
说得再多,都是书面的东西,我一直强调要动手、实战,只有在实际的项目中才能充分体会到书本上所有的知识和技能点。在本书中我特意为读者设计了一个综合性的实战项目——制作一个低成本的DDS任意信号发生器,并以KiCad为工具带着大家从项目需求开始到最终调试、测试完成整个流程。虽然看起来比较简单,但涉及模拟电路、数字电路、电源变换、接口协议、控制逻辑、软硬件协同等领域,通过自己的设计操作让这些功能模块都能如期工作起来并达到设定的性能指标。这样不仅可以熟练掌握PCB的设计流程、每个环节的要点,更重要的是对硬件系统有了更深刻的理解,真正做到了“电路设计”。
苏公雨