热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

给硬件工程师的入门课硬件开发流程

矩不正,不可为方;规不正,不可为圆。——淮南子成功开发一款电子产品,最重要的是什么?为什么华为涉足哪个领域&#

矩不正,不可为方;规不正,不可为圆。——淮南子

成功开发一款电子产品,最重要的是什么?为什么华为涉足哪个领域,(计算、光伏、汽车、手机、手表等),都能做的很强呢?

我认为重要的一点是流程。华为很早就向IBM学习引入了IPD流程,后来很多公司仿效。至于详细的流程,大家可以参考网上关于IPD流程的资料。流程把整个产品的开发做了详细的分工,这道菜分几个阶段,每个阶段都有谁来,怎么过度。我认为一个硬件工程师首先要敬畏流程,做好流程中自己的角色,对交付物负责。然后可以向成为流程中的技术专家,或是管理者努力。

本文主要介绍相对简洁的硬件开发流程,目的是让新手能直观的了解产品是怎样开发的,需要着重注意什么。

图片

如上图,形成一个V型开发模型,先进行需求分析,然后进行设计,再进行测试验证,之后生产。硬件测试映射到原理图设计是否OK,系统测试能看出是否完全满足了需求的功能。

当然其中还可能涉及到但没提到的,系统架构设计,SI仿真,采购,DFX评估,机构设计,固件设计,联调,认证等,这里不做详细介绍。

1.需求分析

需求分析,非常重要,做得产品再牛逼,不满足客户需求还是白搭(这里想起了老罗的TNT)硬件需求分析还可以明确硬件开发任务,大致有下列内容。

硬件整体系统的基本功能和主要性能指标

硬件分系统的基本功能和主要功能指标

功能模块的划分

关键技术的攻关

外购硬件的名称型号、生产单位、主要技术指标

主要仪器设备

国内外同类产品硬件技术介绍

可靠性、稳定性、电磁兼容讨论

电源、工艺结构设计

硬件测试方案

这里,再强调一点,关于需求变更,需求变更会涉及到方案的重新评估和新的人力投入,EE需要为自己争取时间,以免造成项目延期。

2.原理图设计

原理图设计中要有“拿来主义”,尽量复用公司已经验证过的线路,现在的芯片厂家一般都可以提供参考设计的原理图,所以要尽量的借助这些资源,在充分理解参考设计的基础上,做一些自己的发挥。当主要的芯片选定以后,最关键的外围设计包括了电源,时钟和芯片间的互连。

原理图要满足设计规范,最好有checklist,如下图我之前整理汇总的一小部分

图片

图片

3.Layout

PCB 设计中重要的信号线要非常严格遵守规则(Layout Guide),而对于低速和不重要的信号线就可以放在稍低的布线优先级上。重要的部分包括:电源的分割;时钟线,控制线和数据线的长度要求;高速差分线的布线等等。

如下图,是PCIe总线的布线要求

图片

自我介绍:B站资深恰饭Up,双985通信专业毕业,擅长高速数字电路设计(X86/FPGA/ARM等)。不定期分享硬件电路设计干货,知识体系,有趣专业实验。包括但不仅限于学习方法、模电、FPGA、小信号、高速电路、信号完整性、Layout、嵌入式、学习方法。已帮助成千上万电子专业学生和初级工程师入门成长。技术交流群集合了众多经验丰富的技术大牛,交流氛围极佳。我的宝藏都在这了。

 

 


推荐阅读
  • 在对WordPress Duplicator插件0.4.4版本的安全评估中,发现其存在跨站脚本(XSS)攻击漏洞。此漏洞可能被利用进行恶意操作,建议用户及时更新至最新版本以确保系统安全。测试方法仅限于安全研究和教学目的,使用时需自行承担风险。漏洞编号:HTB23162。 ... [详细]
  • 本文介绍了一种自定义的Android圆形进度条视图,支持在进度条上显示数字,并在圆心位置展示文字内容。通过自定义绘图和组件组合的方式实现,详细展示了自定义View的开发流程和关键技术点。示例代码和效果展示将在文章末尾提供。 ... [详细]
  • 【问题】在Android开发中,当为EditText添加TextWatcher并实现onTextChanged方法时,会遇到一个问题:即使只对EditText进行一次修改(例如使用删除键删除一个字符),该方法也会被频繁触发。这不仅影响性能,还可能导致逻辑错误。本文将探讨这一问题的原因,并提供有效的解决方案,包括使用Handler或计时器来限制方法的调用频率,以及通过自定义TextWatcher来优化事件处理,从而提高应用的稳定性和用户体验。 ... [详细]
  • 在 CentOS 6.7 系统维护中,常用的巡检命令包括:`uname -a` 用于查看内核、操作系统和 CPU 信息;`head -n 1 /etc/issue` 用于查看操作系统的版本;`cat /proc/cpuinfo` 用于获取详细的 CPU 信息;`hostname` 用于显示当前主机名;`ls` 命令则用于列出目录内容。这些命令可以帮助系统管理员快速了解系统的运行状态和配置信息,确保系统的稳定性和安全性。 ... [详细]
  • 在Cisco IOS XR系统中,存在提供服务的服务器和使用这些服务的客户端。本文深入探讨了进程与线程状态转换机制,分析了其在系统性能优化中的关键作用,并提出了改进措施,以提高系统的响应速度和资源利用率。通过详细研究状态转换的各个环节,本文为开发人员和系统管理员提供了实用的指导,旨在提升整体系统效率和稳定性。 ... [详细]
  • 使用 ListView 浏览安卓系统中的回收站文件 ... [详细]
  • 线程能否先以安全方式获取对象,再进行非安全发布? ... [详细]
  • 数字图书馆近期展出了一批精选的Linux经典著作,这些书籍虽然部分较为陈旧,但依然具有重要的参考价值。如需转载相关内容,请务必注明来源:小文论坛(http://www.xiaowenbbs.com)。 ... [详细]
  • 深入解析 Android 中 EditText 的 getLayoutParams 方法及其代码应用实例 ... [详细]
  • ButterKnife 是一款用于 Android 开发的注解库,主要用于简化视图和事件绑定。本文详细介绍了 ButterKnife 的基础用法,包括如何通过注解实现字段和方法的绑定,以及在实际项目中的应用示例。此外,文章还提到了截至 2016 年 4 月 29 日,ButterKnife 的最新版本为 8.0.1,为开发者提供了最新的功能和性能优化。 ... [详细]
  • 计算机视觉领域介绍 | 自然语言驱动的跨模态行人重识别前沿技术综述(上篇)
    本文介绍了计算机视觉领域的最新进展,特别是自然语言驱动的跨模态行人重识别技术。上篇内容详细探讨了该领域的基础理论、关键技术及当前的研究热点,为读者提供了全面的概述。 ... [详细]
  • 在 CentOS 6.5 系统上部署 VNC 服务器的详细步骤与配置指南
    在 CentOS 6.5 系统上部署 VNC 服务器时,首先需要确认 VNC 服务是否已安装。通常情况下,VNC 服务默认未安装。可以通过运行特定的查询命令来检查其安装状态。如果查询结果为空,则表明 VNC 服务尚未安装,需进行手动安装。此外,建议在安装前确保系统的软件包管理器已更新至最新版本,以避免兼容性问题。 ... [详细]
  • 本文探讨了资源访问的学习路径与方法,旨在帮助学习者更高效地获取和利用各类资源。通过分析不同资源的特点和应用场景,提出了多种实用的学习策略和技术手段,为学习者提供了系统的指导和建议。 ... [详细]
  • 在VMware虚拟机中部署带有中文图形界面的CentOS 7 Linux系统
    本文详细介绍了在VMware虚拟机中部署带有中文图形界面的CentOS 7 Linux系统的步骤。首先,通过“文件”菜单选择“新建虚拟机”并进入自定义设置。接着,在硬盘兼容性选项中选择默认设置。为了更好地进行Linux操作系统的安装练习,建议选择稍后安装操作系统,并在虚拟机安装完成后,根据实际需求删除不必要的硬件组件。此外,本文还提供了详细的配置参数和注意事项,帮助用户顺利完成整个部署过程。 ... [详细]
  • 设计实战 | 10个Kotlin项目深度解析:首页模块开发详解
    设计实战 | 10个Kotlin项目深度解析:首页模块开发详解 ... [详细]
author-avatar
刘小宝0201
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有