草庐IT

【分享贴】硬件电路设计思路

湉湉家的小虎子 2023-05-21 原文

从事硬件多年,在开始帖子分类的时候,就专门设置了一个专栏,奈何自己比较懒,加之自己可能认识比较片面,所以一直没有动笔。但是每次看到这个专栏空空如也,始终想完善一下。所以今天就大胆动笔,和大家分享一些我的硬件设计思路与方法,希望能够对大家硬件电路设计有所帮助。以下观点或论述只代表作者的一家之言,如有不同意见,欢迎大神们留言讨论。也欢迎大家评论,点赞,转发。

硬件电路是电子产品实现功能的物理载体,电子产品的功能都是依靠硬件电路实现的。但是当前很多公司对硬件的重视程度往往不够,究其原因因为硬件设计的投入很大,光仪器设备一项的投入,都让很多公司望而却步。导致很多公司玩不起,不想玩。导致很多硬件工程师往往从事硬件助理的工作,遇到问题改一改,试一下。很难形成系统性的工作思路和工作流程。很少从源头上对问题就形成闭环处理。硬件问题发现的越早,影响越小,带来的损失越小。

一、 硬件电路设计之需求分析

公司在进行项目立项之前,都会对产品进行定位,明确产品需要实现什么功能。通常会有一个功能列表,然后进行需求细化。最后会形成一个需求分析列表,组织项目开工会,然后分发给对应的硬件、软件、机构、测试等部门。

硬件工程师拿到需求列表之后,首先需要明确哪些功能是需要硬件实现。哪些软件可以实现,硬件也可以实现,这个时候需要和软件部门明确清楚,谁来实现这些功能。其次对需要硬件实现的功能再次进行需求细化,细化到具体那些电路来实现对应的功能。需求分析与细化是硬件电路设计的方向,所有硬件电路都是基于这些需求来进行设计。需求分析也是对硬件方案选型进行明确。

二、硬件电路设计之方案选型

我们在产品功能实现的时候会发现,可以使用A方案,也可以使用B方案,遇到这样的问题该怎么处理呢?如下几点建议供大家参考。

1、 对比成本差异:

产品都是需要盈利的,在硬件设计的时候内心始终要有成本意识,成本是决定产品是否可以成功的重要因素之一,成本便宜可以大大增加产品的竞争力。这里的成本包含几个方面,1)是物料本身的成本。2)是研发成本。3)使用该方案周围配套电路等综合性成本。4)加工成本等

2、 对比方案成熟度:

方案选型的时候,往往会出现A方案已经成熟应用,B方案是新方案,刚刚推向市场,没有经过市场检验。这个时候需要慎重考虑。如项目进度比较急,建议使用成熟方案。如果项目有预演时间建议选择新方案,新方案往往有成本优势,或性能有很大的提升。作为技术储备或Plan B非常有必要。

3、 对比方案的性能优势:

方案选型出现AB两种方案的时候,两种方案的性能上的往往有差异的。这时候需要清楚自己关注的性能是哪些。比如对于音频方案的选型,我们最关注它的声音还原度、回音抵消、降噪处理等重要的性能指标等。比如对sensor的选型,我们关注的是像素、接口、视角等关键指标。

4、方案供应商的支持力度:

对于需要依赖供应商支持的方案,选择的时候要关注与供应商的配合度等。

方案选型对于产品的性能质量有很大影响,方案选型是硬件设计的关键之一。对于全新功能的产品,产品方案选型可以参考市场上同类功能产品样机。这样可以省去很多时间,又可以比较精准的找到对应成熟的方案。

三、硬件电路设计之设计框图

硬件设计框图在硬件电路设计中是非常重要的一个环节,很多硬件工程师在设计的时候往往忽略这一点,导致产品的设计出现功能性缺失,性能指标不达标,产品可靠性差等问题。硬件设计框图是整理电路逻辑绝佳的方法。通过硬件设计框图,可以详细分析产品的逻辑、信号的逻辑流向、功能板的对接等。
硬件设计框图设计对于复杂的项目至关重要。通过硬件框图的评审可以check产品功能是否有缺失、信号流向是否正确、逻辑选择是否正确。同时也为原理图设计打下设计稿,在原理图设计时候做到心里有数,不盲目。
下图是IPC板子设计框图供参考。

硬件框图设计还包含电源树设计,这个是电路中隐形的框图,很多问题都是因为电源的设计余量不够导致电源异常,电源设计需要自下而上进行设计。首先要了解电路中各个模块的需要电源情况,然后汇总,最后进行整体设计。如下图表HISI方案IPC板子电源树设计。

四、硬件电路设计之原理图&PCB设计

原理图设计是硬件设计的关键,原理图的正确性是产品成功的关键,也是减少调试和改板的关键。那么原理图要怎样保证正确呢?建议大家从以下几点入手:

1、 原理图绘制规范性

对新器件在开始画symbol的时候,建议要根据应用电路进行绘制symbol,不建议按照PIN脚序进行排列,在绘制的时候建议按照symbol中各个模块进行分类,这样在绘制原理图的时候才能够做到信号流向清晰。

绘制原理图时,建议做到紧耦合,一个功能模块的原理图尽量放置在一页,并做好原理图模块的文字说明。连接器接口尽量使用文字进行功能描述。

2、 原理图网络命名规范性

原理图信号网络命名需要规范,比如电源模块请表示出电源电压。控制信号请标出信号流向等等,如下表供参考。

3、 原理图自检和互检

绘制完成原理图之后首先要自检:主要从这个几个方面进行自检:
1)网络连通性检查,检查是否有单点网络,网络漏连等问题。
2)电路设计裕量是否满足设计要求,如电阻电容电感的通流耐压是否满足条件。
3)设计规范性检查即网络命名是否规范,信号流向标记方向是否正确。
4)一些低级性错误,比如网络连接错误,没有连接上,漏器件等。

原理图互检:请其他工程师帮忙检视,因为每个人的思维都有局限性,通过他人互检可以发现自己发现不了的问题,还能够发现自己的认知错误。

原理图的正确性主要依靠绘制者,责任主体也是绘制者。这里分享一个我认为比较好经验,就是对原理图反复的检视,自己检视三遍以上,很多时候能发现很多错误或不规范的设计。书读百遍其意自现和这个是一个道理。

PCB设计在这里不在赘述,我的另外一个帖子有详细的介绍,有兴趣的小伙伴可以去看看,欢迎大家点赞、评论、收藏。

五、硬件电路设计之硬件电路知识储备

硬件设计的基础就是硬件电路的知识储备,没有硬件知识的储备所有的硬件电路设计都是空中楼阁。那么怎样提升自己的硬件知识储备呢?以下和大家分享几点:

1、 通过阅读相关硬件设计的书籍

这里向大家推荐几本书
1)《高速电路设计实践》作者王剑宇,这本书比较系统的介绍了电路设计中一些基础概念和设计方法,配合作者遇到问题进行讲解比较深入。
2)《精通电源开关设计》这本书对电源设计进行深入的介绍。
3)《晶体管电路设计》作者是铃木雅臣,这本书比较详细的介绍了晶体管的应用。

2、 做好问题案例分析

在实际的硬件调试过程中,对于典型问题,在问题解决后,建议形成案例文档。这个过程中不仅可以整理分析问题的思路,将实际问题与理论相结合。而且可以在后面的硬件工作对照案例进行check防止类似问题再次出现。从而全面提升自己硬件设计能力。

3、仔细阅读器件手册

器件手册对器件功能指标和如何使用都会做出详细的说明,通过器件手册不仅可以学到如何使用器件,理解器件性能。还可以做到触类旁通,理解同类的器件使用和注意事项。

六、总结

做硬件多年总结出来几点心得,给大家分享一下。
1、 战战兢兢,如履薄冰
2、 规范设计,可以减少很多低级错误
3、 硬件设计不是高精尖的核武器设计,可以通过努力学习,规范设计短期内提升。
4、硬件设计的核心是可靠性。

有关【分享贴】硬件电路设计思路的更多相关文章

  1. ruby-on-rails - Rails - 子类化模型的设计模式是什么? - 2

    我有一个模型:classItem项目有一个属性“商店”基于存储的值,我希望Item对象对特定方法具有不同的行为。Rails中是否有针对此的通用设计模式?如果方法中没有大的if-else语句,这是如何干净利落地完成的? 最佳答案 通常通过Single-TableInheritance. 关于ruby-on-rails-Rails-子类化模型的设计模式是什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.co

  2. ruby-on-rails - 使用 rails 4 设计而不更新用户 - 2

    我将应用程序升级到Rails4,一切正常。我可以登录并转到我的编辑页面。也更新了观点。使用标准View时,用户会更新。但是当我添加例如字段:name时,它​​不会在表单中更新。使用devise3.1.1和gem'protected_attributes'我需要在设备或数据库上运行某种更新命令吗?我也搜索过这个地方,找到了许多不同的解决方案,但没有一个会更新我的用户字段。我没有添加任何自定义字段。 最佳答案 如果您想允许额外的参数,您可以在ApplicationController中使用beforefilter,因为Rails4将参数

  3. LC滤波器设计学习笔记(一)滤波电路入门 - 2

    目录前言滤波电路科普主要分类实际情况单位的概念常用评价参数函数型滤波器简单分析滤波电路构成低通滤波器RC低通滤波器RL低通滤波器高通滤波器RC高通滤波器RL高通滤波器部分摘自《LC滤波器设计与制作》,侵权删。前言最近需要学习放大电路和滤波电路,但是由于只在之前做音乐频谱分析仪的时候简单了解过一点点运放,所以也是相当从零开始学习了。滤波电路科普主要分类滤波器:主要是从不同频率的成分中提取出特定频率的信号。有源滤波器:由RC元件与运算放大器组成的滤波器。可滤除某一次或多次谐波,最普通易于采用的无源滤波器结构是将电感与电容串联,可对主要次谐波(3、5、7)构成低阻抗旁路。无源滤波器:无源滤波器,又称

  4. 计算机毕业设计ssm+vue基本微信小程序的小学生兴趣延时班预约小程序 - 2

    项目介绍随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱小学生兴趣延时班预约小程序的设计与开发被用户普遍使用,为方便用户能够可以随时进行小学生兴趣延时班预约小程序的设计与开发的数据信息管理,特开发了小程序的设计与开发的管理系统。小学生兴趣延时班预约小程序的设计与开发的开发利用现有的成熟技术参考,以源代码为模板,分析功能调整与小学生兴趣延时班预约小程序的设计与开发的实际需求相结合,讨论了小学生兴趣延时班预约小程序的设计与开发的使用。开发环境开发说明:前端使用微信微信小程序开发工具:后端使用ssm:VU

  5. ruby-on-rails - 设计注册确认 - 2

    我在我的项目中有一个用户和一个管理员角色。我使用Devise创建了身份验证。在我的管理员角色中,我没有任何确认。在我的用户模型中,我有以下内容:devise:database_authenticatable,:confirmable,:recoverable,:rememberable,:trackable,:validatable,:timeoutable,:registerable#Setupaccessible(orprotected)attributesforyourmodelattr_accessible:email,:username,:prename,:surname,:

  6. ruby-on-rails - 设计通过 reset_password_token 获取用户 - 2

    我正在尝试创建密码规则来设计可恢复的密码更改。我通过passwords_controller.rb做了一个父类(superclass),但我需要在应用规则之前检查用户角色,但我所拥有的只是reset_password_token。 最佳答案 假设您的模型是用户:User.with_reset_password_token(your_token_here)Source 关于ruby-on-rails-设计通过reset_password_token获取用户,我们在StackOverflow

  7. ruby-on-rails - Rails 5,公寓和设计 : sign in with subdomains are not working - 2

    我已经使用Apartment设置了一个Rails5应用程序(1.2.0)和Devise(4.2.0)。由于某些DDNS问题,应用只能在app.myapp.com下访问(请注意子域app)。myapp.com重定向到app.myapp.com。我的用例是每个注册该应用的用户(租户)都应该通过他们的子域(例如tenant.myapp.com)访问他们的特定数据。用户不应限定在其子域内。基本上应该可以从任何子域登录。重定向到租户的正确子域由ApplicationController处理。根据Devise标准,登录页面位于app.myapp.com/users/sign_in。这就是问题开始的

  8. ruby-on-rails - 设计中的 ArgumentError::RegistrationsController#new 错误的参数数量(2 代表 0..1) - 2

    我在关注RyanbatesRailsCast的devise和omniauth(第235集-devise-and-omniauth-revised)。当我尝试使用Twitter登录时,标题中不断出现错误。defself.new_with_session(params,session)ifsession["devise.user_attributes"]new(session["devise.user_attributes"],without_protection:true)do|user|user.attributes=paramsuser.valid?end完整跟踪:C:/Ruby20

  9. ruby-on-rails - 使用用户或管理员模型和 Basecamp 样式子域设计登录 - 2

    我为Devise用户和管理员提供了不同的模型。我也在使用Basecamp风格的子域。除了我需要能够以用户或管理员身份进行身份验证的一些Controller和操作外,一切都运行良好。目前我有authenticate_user!在我的application_controller.rb中设置,对于那些只有管理员才能访问的Controller和操作,我使用skip_before_filter跳过它。不幸的是,我不能简单地指定每个Controller的身份验证要求,因为我仍然需要一些Controller和操作才能被用户或管理员访问。我尝试了一些方法都无济于事。看来,如果我移动authentica

  10. ruby-on-rails - 自定义设计 Cookie - 2

    我在我的Rails应用程序中使用设计。我在租户庄园中配置了它,其中帐户/session的范围限定为子域。例如:http://subdomain1.example.com/http://subdomain2.example.com/...这很好用,但我想为“super管理员”添加一个子域,允许这些用户导航到所有其他子域而无需重新验证。这将是这样的:http://admin.example.com/是否可以自定义仅在管理子域上生成的cookie,以便它在所有其他子域上都有效? 最佳答案 Cookie域的定义越不具体,它们的包容性就越大,

随机推荐