当前位置: 首页 > news >正文

嵌入式系统硬件设计与实践(开发过程)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

          如果把电路设计看成是画板子的,这本身其实是狭隘了。嵌入式硬件设计其实是嵌入式系统中很重要的一个部分。里面软件做的什么样,这是看不出来的,但是硬件做的好不好,一般都比较容易发现。所以,很多时候嵌入式硬件是人们真正愿意去付费买单的东西。

        当然,不管是软件还是硬件,本身都是为系统服务,而系统又是为产品服务的,所以市场是所有产品的出发点和落脚点。

1、市场调研

        作为嵌入式硬件开发的同学,一定要有市场意识。即,当前做的这个产品主要的客户在哪里,他们拿这个硬件去做什么,自己做的这个硬件有什么特色,能解决什么问题。这一步很重要,某种意义上说,它比你怎么把这个硬件设计出来还重要。如果方向错了,后面的一切工作很有可能都是徒劳。

        如果这个时候,大家对市场还是没有概念的话,可以去电商网站上看,什么产品好卖,相关价格是多少,不同地方的人喜欢什么产品等等。这其实就是最简单的市场调研方法。

2、原理图绘制

        原理图看上去就是很多的符号堆在一起。这里面有电源、晶振、复位、输入、输出、传感器等等。当然,原理图本身就是对真实硬件的抽象,这个抽象还是十分有必要的。绘制的时候可以多分几页,按模块划分,明白相关电路的输入、输出接口是什么,工作条件是什么。

        有些同学说,自己的电路知识可能还停留在初高中的水平,没有办法做原理图绘制。这个时候,我的建议就是去模仿。别人做好的原理图,自己再做一遍,不要怕麻烦,画错了也不要紧。一遍又一遍的画,每一遍都会有新的认识。

3、原理图重新确认

        有的同学绘制完原理图,就直接导入到pcb了。其实,这中间少了一部分确认工作。这个时候其实有很多事情可以做,比如确认线路有没有画反、封装有没有选对、模块有没有注释说明等等。在绘制pcb之前,重新确认下电路原理图还是非常有必要的。不要怕麻烦,前面每做的每一次修改,其实都是为了减少后续的麻烦。

4、pcb布局

        pcb拉线之前,很重要的一步就是pcb的布局。布局当然有一些基本的规则,比如先放重要的芯片、连接器放在边缘、模数分开、高频和低频分开等等。但布局最最重要的,还是要根据原理图中的模块来进行布局。一个模块相连的芯片、电阻、电容、电感要靠在一起,这样也方便连线,另外对于后续的贴片、封装也是非常有利的。

        pcb布局好了,连线就简单了。当然 这需要经验的积累,不断地练习才能越做越好。

5、pcb连线

        连线的时候,可以先把电源线连上,线宽一点。接着,把相连、靠近的连线连上。一时没有办法解决的连线可以先搁置。这中间,可能还会微调器件的位置,比如位置颠倒、左右移动等,甚至于还要取消之前已经连好的网络,这都是难免的。连线的时候,尽量走同一层,没有办法了再选择过孔。电源旁边的电容尽量挨着芯片,晶振下面不要走线,网络、485、usb走差分等等,这些都可以遇到的时候边用边学。

        刚开始学的时候,板子选2层、还是4层,可以提前设计好。一开始的时候,板子大一点、层数多一些,这都是可以的,没必要苛责自己。比如说,4层多了VCC、GND,自然布线就比较轻松。完全等到后续经验多了,层数就可以压低了,自然而然就可以走线越来越好了。

        同样一块板子,可以多尝试走线几次,比如第一次、第二次、第三次,看上去好像是在做重复的工作,但是实际上每一次自己都会有新的收获,对线路也会理解的越来越深刻。我们满足的不仅仅是线布通、通过drc测试,而是说要简单、整洁、大方、合理。

        多层板有信号层和内电层两种。信号层就是普通的走线,而内电层和信号层相反,它本身是一块铜板,走线的地方反而是被分割的地方,这是需要注意的。

6、pcb信号确认

        绘制完pcb,不要着急打板。每个信号重新确认下,添加合理的丝印,相关器件的封装再看一遍,只要没有生产,一切都还来得及,花费的代价也小。

7、购买器件,pcb生产

        pcb本身要想完成,一方面需要购买各种元器件,另外一方面就是pcb生产。元器件可以通过电商网站解决,pcb生产现在也有很多的工厂可以帮助解决,比如某创、某配。这个时候有一个问题,就是电路板中可能存在很多的电容、电阻、电感,它们如果比较小,达到0201,其实焊接时比较麻烦的。建议大家一开始设计的时候,还是用0603这样大一点的贴片器件来设计,这样方便自己练手焊接。如果不想自己弄,只想焊接一些大的连接器,完全可以使用厂商的smt服务,就是多一些钢网的费用、贴片的费用,这也无可厚非。

8、焊接

        拿到厂家的pcb板子之后,即使smt贴片之后,这个时候一般还需要自己焊接一些连接器,比如排针、usb、rj45、电源插口等等。焊接可以和测试同步进行,一遍测试、一边焊接。有的设计不对的地方,可能还需要飞线,实际操作的时候注意用电安全即可。

9、测试

        实际测试,是和焊接同步进行的。一般先焊接上电源,确保没有短路、芯片不发热。接着把最小系统焊接上,除了之前说的晶振、复位、芯片那些,还需要把下载电路焊接上。如果这一步没问题,就需要慢慢测试其他电路了,比如按键、flash、网络、pwm等等。焊接一个,测试一个。这中间肯定会出现问题,有硬件的、有软件的。这个时候最好有一个第三方稳定的开发板,这样可以分清楚,是软件的问题,还是硬件的问题。

        对于调试过程中出现的硬件问题,还需要重新修改原理图、重新pcb设计、重新打样,这都是难免的。所以前期打样的时候,都可以5片、5片这样的去打样,没必要打样太多,等到真正稳定后,可以慢慢提高数量。小错误导致的打样失败,成本尚且可控,但是如果数量多了,就得不偿失了。

        所以,这里对于硬件发生的任何变更,一定要把之前做过的测试重新再做一次,不要怕麻烦。因为现在做的每一步,都是在给自己降低风险、节约成本。软件错了,升级一下版本就可以了。但是硬件的错误,很多时候是需要用真金白银来买单的。

相关文章:

嵌入式系统硬件设计与实践(开发过程)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 如果把电路设计看成是画板子的,这本身其实是狭隘了。嵌入式硬件设计其实是嵌入式系统中很重要的一个部分。里面软件做的什么样&#xf…...

入门vue(1-10)

正确学习方式&#xff1a;视频->动手实操->压缩提取->记录表述 1基础结构 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"&…...

C#开发的OpenRA的游戏主界面怎么样创建3

继续游戏主界面创建的主题, 我们知道游戏的主界面上有很多部件,比如显示文本的标签(LabelWidget), 显示按钮(ButtonWidget)。那么这些部件又是如何创建在主界面上的呢? 其实这些部件是否显示,都是来源于文件yaml,在这里就是文件mainmenu.yaml, 在这个文件里定义了所有…...

秒懂算法 | 基于主成分分析法、随机森林算法和SVM算法的人脸识别问题

本文的任务与手写数字识别非常相似,都是基于图片的多分类任务,也都是有监督的。 01、数据集介绍与分析 ORL人脸数据集共包含40个不同人的400张图像,是在1992年4月至1994年4月期间由英国剑桥的Olivetti研究实验室创建。 此数据集下包含40个目录,每个目录下有10张图像,每个…...

QML Loader(加载程序)

Loader加载器用于动态加载 QML 组件。加载程序可以加载 QML 文件&#xff08;使用 source 属性&#xff09;或组件对象&#xff08;使用 sourceComponent 属性&#xff09; 常用属性&#xff1a; active 活动asynchronous异步&#xff0c;默认为falseitem项目progress 进度so…...

C++——类型转换

目录 C语言中的类型转换 C强制类型转换 static_cast reinterpret_cast const_cast dynamic_cast 延伸问题 RTTI&#xff08;了解&#xff09; C语言中的类型转换 在C语言中&#xff0c;如果赋值运算符左右两侧类型不同&#xff0c;或者形参与实参类型不匹配&#xff0c;或…...

vue3:生命周期(onErrorCaptured)

一、背景 当项目如果发生报错&#xff0c;影响程序体验。如果能以捕获的方式得到错误信息&#xff0c;而且还能定位问题&#xff0c;这样就好了&#xff0c;本文介绍onErrorCaptured实现我们想要的效果。 vue2&#xff1a;errorCaptured。使用与vue3同理。 vue3&#xff1a;…...

vue过滤器

vue 过滤器 对要显示的数据进行特定格式化之后再显示 注册过滤器 Vue.filter(name,callback)new Vue({filters:{}}) 使用过滤器 {{ name | 过滤器名 }}v-band:属性“name | 过滤器名” 局部过滤器 <p>{{time | timeFormater }}</p> <!-- 过滤器可接受额外参…...

I/O模型

写在前面 前面聊完了IO方式, 也就意味着网络数据的收发通道是建立起来了。但业务场景中, 通道本身是不会发送数据的。在常见的网络应用中, server端会创建多个链接以服务更多client, 同时要求各个client尽可能互不影响。这是I/O模型(也就是IO方式线程模型)要解决的问题。由于加…...

前端必备技术之——AJAX

简介 AJAX 全称为 Asynchronous JavaScript And XML&#xff0c;就是异步的 JS 和 XML(现在已经基本被json取代)。通过 AJAX 可以在浏览器中向服务器发送异步请求&#xff0c;最大的优势&#xff1a;无刷新获取数据。AJAX 不是新的编程语言&#xff0c;而是一种将现有的标准组…...

MySQL数据库 各种指令操作大杂烩(DML增删改、DQL查询、SQL...)

文章目录前言一、DML 增删改添加数据修改数据删除数据二、DQL 查询基本查询条件查询聚合函数(count、max、min、avg、sum)分组查询(group by)排序查询(order by)分页查询(limit)DQL 语句练习三、SQLDCL 权限控制约束案例多表查询事务存储引擎字符串函数数值函数日期函数流程函数…...

Java分布式全局ID(一)

随着互联网的不断发展&#xff0c;互联网企业的业务在飞速变化&#xff0c;推动着系统架构也在不断地发生变化。 如今微服务技术越来越成熟&#xff0c;很多企业都采用微服务架构来支撑内部及对外的业务&#xff0c;尤其是在高 并发大流量的电商业务场景下&#xff0c;微服务…...

算法分析与设计之并查集详解

算法分析与设计之并查集1.前言2.并查集的基础2.1.关于动态连通性2.2.动态连通性的应用场景&#xff1a;2.3.对问题建模&#xff1a;2.4.建模思路&#xff1a;2.5.API2.7.Quick-Find算法&#xff1a;2.8.Quick-Union算法&#xff1a;3. 并查集的应用1.前言 本文主要介绍解决动态…...

Linux - 内存性能评估

文章目录概述free 命令指定的时间段内不间断地监控内存的使用情况通过watch与free相结合动态监控内存状况vmstat命令监控内存“sar –r”命令组合小结概述 内存的管理和优化是系统性能优化的一个重要部分&#xff0c;内存资源的充足与否直接影响应用系统的使用性能。在进行内存…...

00后初中辍学,转行程序员后,终于找到了女朋友

大家好&#xff0c;这里是程序员晚枫&#xff0c;今天继续分享我们的读者投稿&#xff0c;如需投稿赚稿费的朋友&#xff0c;请在后台私信我&#xff1a;投稿。下面我们进入正文吧~ 我是一位 00 后&#xff0c;从初一辍学&#xff0c;到目前为止已有 8 年的时间了&#xff0c;在…...

“Vue学习注意事项:掌握核心特性,注意性能优化和第三方库的使用“

Vue是一款易学易用的JavaScript框架&#xff0c;它可以帮助开发者构建动态、高性能的用户界面。Vue的核心概念包括数据绑定、指令、计算属性和组件化&#xff0c;学习Vue需要注意以下几个点&#xff1a;1. 理解Vue的基本概念和用法Vue的基本概念包括模板、组件、数据绑定、计算…...

计算机网络协议详解(二)

文章目录&#x1f525;HTTP协议介绍&#x1f525;HTTP协议特点&#x1f525;HTTP协议发展和版本&#x1f525;HTTP协议中URI、URL、URN&#x1f525;HTTP协议的请求分析&#x1f525;HTTP协议的响应分析&#x1f525;MIME类型&#x1f525;HTTP协议介绍 HTTP协议介绍 什么是超…...

【CSS】CSS 复合选择器 ② ( 子元素选择器 | 交集选择器 )

文章目录一、子元素选择器1、语法说明2、代码分析3、代码示例二、交集选择器1、语法说明2、代码示例一、子元素选择器 1、语法说明 子元素选择器 可以选择 某个基础选择器 选择出的 元素组 的 直接子元素 ( 亲儿子元素 ) 中 使用基础选择器 选择 元素 ; 子元素选择器语法 : 父选…...

Java集合专题

文章目录框架体系CollectionListArrayListLinkedListVectorSetHashSetLinkedHashSetTreeSetMapHashMapHashtableLinkedHashMapTreeMapPropertiesCollections框架体系 1、集合主要分了两组&#xff08;单列集合&#xff0c;双列集合&#xff09; 2、Collection接口有两个重要的子…...

双重差分法(DID):算法策略效果评估的利器

文章目录算法评估DID原理简单实例Python实现算法评估 作为一名算法出身的人&#xff0c;曾长期热衷于算法本身的设计和优化。至于算法的效果评估&#xff0c;通常使用公开数据集做测试&#xff0c;然后对比当前已公开的结果&#xff0c;便可得到结论。 但是在实际落地过程中&…...

【第二十一章 SDIO接口(SDIO)】

第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...

基于数字孪生的水厂可视化平台建设:架构与实践

分享大纲&#xff1a; 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年&#xff0c;数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段&#xff0c;基于数字孪生的水厂可视化平台的…...

镜像里切换为普通用户

如果你登录远程虚拟机默认就是 root 用户&#xff0c;但你不希望用 root 权限运行 ns-3&#xff08;这是对的&#xff0c;ns3 工具会拒绝 root&#xff09;&#xff0c;你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案&#xff1a;创建非 roo…...

Module Federation 和 Native Federation 的比较

前言 Module Federation 是 Webpack 5 引入的微前端架构方案&#xff0c;允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...

学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”

2025年#高考 将在近日拉开帷幕&#xff0c;#AI 监考一度冲上热搜。当AI深度融入高考&#xff0c;#时间同步 不再是辅助功能&#xff0c;而是决定AI监考系统成败的“生命线”。 AI亮相2025高考&#xff0c;40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕&#xff0c;江西、…...

九天毕昇深度学习平台 | 如何安装库?

pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子&#xff1a; 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...

【JVM面试篇】高频八股汇总——类加载和类加载器

目录 1. 讲一下类加载过程&#xff1f; 2. Java创建对象的过程&#xff1f; 3. 对象的生命周期&#xff1f; 4. 类加载器有哪些&#xff1f; 5. 双亲委派模型的作用&#xff08;好处&#xff09;&#xff1f; 6. 讲一下类的加载和双亲委派原则&#xff1f; 7. 双亲委派模…...

JS手写代码篇----使用Promise封装AJAX请求

15、使用Promise封装AJAX请求 promise就有reject和resolve了&#xff0c;就不必写成功和失败的回调函数了 const BASEURL ./手写ajax/test.jsonfunction promiseAjax() {return new Promise((resolve, reject) > {const xhr new XMLHttpRequest();xhr.open("get&quo…...

OD 算法题 B卷【正整数到Excel编号之间的转换】

文章目录 正整数到Excel编号之间的转换 正整数到Excel编号之间的转换 excel的列编号是这样的&#xff1a;a b c … z aa ab ac… az ba bb bc…yz za zb zc …zz aaa aab aac…; 分别代表以下的编号1 2 3 … 26 27 28 29… 52 53 54 55… 676 677 678 679 … 702 703 704 705;…...

SQL Server 触发器调用存储过程实现发送 HTTP 请求

文章目录 需求分析解决第 1 步:前置条件,启用 OLE 自动化方式 1:使用 SQL 实现启用 OLE 自动化方式 2:Sql Server 2005启动OLE自动化方式 3:Sql Server 2008启动OLE自动化第 2 步:创建存储过程第 3 步:创建触发器扩展 - 如何调试?第 1 步:登录 SQL Server 2008第 2 步…...