嵌入式单片机产品开发设计框架

原创 无际单片机编程 2021-08-27 14:40

你点击蓝字关注,回复“入门资料”获取单片机入门到高级开挂教程

文 | 无际(微信:603311638)

个人原创 | 第 106 

全文约2095字,阅读大约需要 10 分钟

大家好, 我是无际单片机编程徐工。

今天跟大家伙来聊下一个智能电子产品的设计框架,让大家熟悉工程师到底是怎么产品的。

老板突然要给你一个新的需求,要你做一款自己不熟悉的产品,第一感觉都是懵的,不知道这个产品的工作原理是什么?用的是什么方案,什么芯片?

我们首先是买个同行的样品回来研究一下,看别人是怎么做的,然后在别人样品的基础上优化升级,做出自己的产品。

比较郁闷的事情就是买回来的样品,芯片的丝印被打磨了,或者找不到芯片相关的资料。

对于电子工程而言,个人从事的行业不一样,个人的经历和经验也局限于自己做过的产品,即便再有经验的工程师,碰到自己没有做过的产品都是一样。

设计一款电子产品,首先是要确定产品的设计方案。

产品的设计方案决定着产品设计的成功与失败,比较重要,所以我们在产品方案确定的时候,我们会不断的比较不同的方案,不同的模块,最终确定自己的产品设计。

今天,我们就以无际单片机编程给学员的第二个项目“WIFI防盗报警网关”为例,给大家比较透彻的解析一下硬件设计的过程。

第一步:根据产品的需求,确定产品设计的方案

先把产品的需求按照功能进行拆解成几个部分,然后逐个确定方案。

WIFI防盗报警网关的需求我们需要拆解成四个部分:

1.WIFI无线通讯(广域网)

2.ASK无线通讯(局域网)

3.用户交互

4.单片机(核心微控制器)


1.WIFI无线通讯(广域网)

WIFI无线通讯模块可以选择的非常多,其中比较热的包括上海乐鑫ESP8266、ESP32,有人科技的USR-C210、USR-216、WIFI232-B2/A2、涂鸦科技的WRG1等。

不同的模块的比较,各自有各自的优势,我们最终选择的是涂鸦科技的WRG1,为什么选择涂鸦科技的?

ESP8266、ESP32、USR-C210等WIFI 模块,我们之前在产品设计中也有过应用,比较熟悉,但这些模块需要自己搭云服务器,开发手机端APP。 

搭建云平台服务器,开发手机端APP(安卓和IOS),至少需要几十万成本。

而涂鸦科技,只要我们购买它们的模块,就可以免费使用涂鸦科技的云平台,并提供的SDK包,支持自行生产手机应用端APP。

虽然APP有点鸡肋,但是拿来二次开发一下还是比较爽的。

不仅帮我们省了成本,还大大缩短产品开发周期

最终选择了的WIFI模块是涂鸦科技的WRG1 这个型号模组。


2.局域网无线通讯(ASK

ASK技术相对非常成熟,我们直接选择市面上比较成熟的模块即可,而且成本也不是很高。


3.用户交互设计

输入操作:按键输入

输出部分: LCD显示、蜂鸣器、喇叭报警声输出。

按键操作:向上、向下、向左、向右、确定、取消 6个按键操作

LCD 显示: 我们选择的128×64 OLED 液晶屏显示,

蜂鸣器和喇叭输出比较常规,我们就在这里不讲了


4.单片机选型

单片机型号: STM32F103. 

我们开发的WIFI报警主机最主要是为了让大家通过这个项目学习掌握STM32单片机常用外设资源的使用。

当然,别看硬件没多少东西,核心价值在程序,至少我从事开发13年,能写出这种代码架构的工程师没超过5个。

至于单片机,我们选择出货量比较大的通用型,在这里就不多谈了。


2步:确定供电方式和电源电路设计

很多兄弟可能觉得电源设计比较简单,这是一个比较危险的想法,因为电源是产品最重要的环节之一,很多硬件出问题,都是因为电源设计不合理导致的。

电源设计注意事项:

  • 供电满足所有芯片的供电电压,比较典型的包括:1.8V 3.0V 3V 5V
  • 供电电流高过系统最大电流的50%以上
  • 注重电源纹波的处理,一边要求纹波小于100mV

报警主机的系统工作电压:

WIFI报警主机系统的所有模块,包括WIFI模块,蜂鸣器、ASK无线接收,喇叭、单片机等都支持3.3V 供电,所以选择3.3V供电。

外部输入的电压通常有5V、9V、12V、24V、220V等,不能直接满足系统的供电要求,需要增加电源转换电路。

WIFI报警主机是通过USB 5V供电,我们需要增加5V转3.3V的电路。我们选择的电源芯片是XL1513E,可以满足5V转换3.3V的要求.

供电电流:

根据各自模块的工作电流确定,系统的正常的工作电流大概在100mA 左右,主要wifi模组占了80%以上。

喇叭报警电流100-200mA 左右,XL1513E的供电电流支持2A,远远的超过电路需求,可以满足产品设计。

系统纹波处理:

  • 芯片的VCC输入脚,需要增加1-4个100nF的贴片电容
  • 射频,4G,NB等工作峰值电流比较大的电路需要增加多个电解电容和贴片电容,减少纹波对模块工作的干扰。

最后实测纹波平均在80mv左右,也能满足。



3步:测试验证设计方案的可行性

通过以上的两步,确定了电路设计的整体框架,接下来就需要测试验证设计的合理性,并要确定设计的可行性。

对于自己比较熟悉的,有丰富的经验,直接使用就OK。

自己之前没有使用过的芯片或模块,我们需要提前测试,简单的验证一下方案的可行性。

喇叭,蜂鸣器,按键,ASK等我们比较熟悉,我们着重测试了涂鸦科技的WRG1模块,确定模块的可行性。

通过1-2周的开发测试验证,确定涂鸦科技的WIFI模块可以满足我们的需求。

最后确定产品的硬件设计方案,开始进一步设计原理图,绘制PCB、焊接样品,测试调试。

以上就是整个产品硬件的设计框架,看起来简单。


实际上一个再简单的产品,哪怕是一个充电器,做到极致,都会存在非常多的问题,因为太吃经验了。


下面我简单来聊下程序,网关的程序由无际编写,这个完全是参照产品功能去做,程序会复杂很多,所以采用模块化和面向对象编程思维。


先把每个功能拆解成模块去完成,最后拼凑起来,就跟装配汽车一样,再复杂的程序你也不至于崩溃。


整体分为三大板块

1.单片机外设

这块相对比较简单,如果是我,我直接就复制现成开发板的例程把我们产品需要的外设用起来就行。


实际开发单片机原厂也会提供类似的例程和技术支持,所以这块我们要求会用就行,千万不要想着去吃透它,你又不去造芯片对吧?


2.系统内核

这个就是俗称程序架构,比较关键,采用时间片任务调度形式,这样方便管理每个任务,是一个整个产品程序的"地基"。


3.产品功能

当我们把单片机外设用起来,程序架构搭建起来,接下来就是在这个架构基础上完善我们的产品功能。


大体就是这样,大家可能会觉得比较简单。


大多数人都是一说就会,一干就废。


主要还是要干干干!


ok,今天就分享到这里,对你有帮助的话,麻烦给我点个"赞"和"在看",感谢各位老铁!

评论 (0)
热门推荐
X
广告
我要评论
0
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦