1.从外形说起:

1.1芯片

没错,这块黑色的小硅片就是“芯片”本体(通常比大拇指还小,内部集成了实现特定功能的硬件集成电路)。

1.2模组

由上述芯片研发的模组是这样的:

从外形上来看,模组比芯片亮丽了不少(至少,你可以看见铜箔、引脚),那块黑色的ESP32芯片就在他的内部。

1.3开发板

由上述模组研发的开发板长这样:

是的,开发板上标有ESP-WROOM-32的部件就是上面的“模组”。开发板相比于“模组”又豪华了不少(终于有按键、USB接口、LED灯了),是不是想要马上写个点亮LED灯的程序呢?

2 开发模式

想要点亮LED灯?等等!我们先来聊聊如何将程序烧录到芯片、模组、开发板中。

首先,直接对那块黑黑的“芯片”进行烧录程序是困难的,试想,他连可以连接导线的铜箔引脚都没有,如何接通导线连接电源,如何下载程序?是的,我们不能直接对芯片进行软件开发。

目前,对ESP32进行开发主要有两种模式:模组方式、开发板方式

2.1模组方式:

需要的硬件:一块模组+USB转串口线+杜邦线+焊接工具

实物连接:

2.2开发板方式:

需要的硬件:开发板+一根USB线

实物连接:

你看,开发板模式的开发是不是更加便捷呢?无需自己焊接,用USB线连接开发板即可实现即插即用,开始开发之旅。

3. 硬件资源

通过以上的直观认识,你肯定发现了规律:从芯片→模组→开发板,他们的硬件资源越来越多了,开发板的硬件明显多于另外两者,对开发板开发只需要USB连接电脑即可。

下表给出了他们硬件资源的主要区别:(以上述芯片、模组为参考)

对象\硬件资源

时钟源

(电阻、电容组成的振荡器)

Flash

(存储代码的主要介质)

接口

(如I/O,USB)

UI(人际交互)

如(按键、LED、显示屏)

芯片

模组

开发板

还记得单片机/微机原理课上。老师说的单片机运行的最小系统吗?

没错,单片机运行程序的基本条件(也即最小系统):处理器(CPU芯片)+时钟源+电源+存储器。

时钟源、Falsh作为运行应用程序的基本条件,芯片本身并不具备该条件,因此,芯片本身并不能直接运行应用程序,模组在芯片的基础上,添加了运行程序的“基本条件”(尽管他需要自己焊接到对应的引脚),开发板不仅在模组的基础上满足运行程序的“基本条件”,而且提供了即插即用的接口和人机交互外设。

4.对应关系(一对几)

通过上述知识,你是否有这样的疑问,芯片、模组、开发板之间的对应关系是怎样的呢?

4.1芯片-模组对应关系

请看下图:

发现了吗?

第2、3、4模组,他们使用的芯片都是ESP32-D0WD,即芯片-模组的对应关系是:1-n(1对多),同一款芯片可以研发成不同的模组,那么为什么将同一芯片做成不同模组呢?

从上图你也许发现,使用的芯片相同,但不同模组的Flash大小、天线的材质、模组尺寸是不同的。是的,芯片到模组的演变经历了“定制化、专用化”的过程。模组最终会嵌入到电视、电冰箱、空调等不同的产品中去,对模组的存储空间大小、模组天线材质、模组的大小要求当然不一样。

通常,模组的研发是面向“产品”的,因为,模组研发的最终目的是将模组嵌入到目标产品(如,电视、电冰箱、空调)。ESP32-D0WD芯片提供了实现蓝牙和WiFI功能的内部集成电路,但A公司只需要WiFi功能,为满足A公司的需求,仅将ESP32-D0WD芯片的与WiFi功能相关的引脚引出,制作出一款“WiFi”模组(尽管ESP32-D0WD芯片也可以实现蓝牙功能,但A公司不需要,因此不对外提供ESP32蓝牙功能的接口了)。同理,B公司只需要蓝牙功能,为满足B公司的需求,仅将ESP32芯片的与蓝牙功能相关的引脚引出,制作出一款“蓝牙”模组。(当然,你可以选择同时实现蓝牙和WiFi功能,这样引出的引脚更多,模组体积可能更大,money也更多,所以,成本、功能、尺寸都是需要考虑的因素)

总之,ESP32-D0WD芯片提供了实现蓝牙和WiFI功能的完备硬件集,模组只是选取芯片的部分功能,并通过引出引脚接口提供给用户。

模组的研发过程如下:(从芯片到模组着实经历了一番不小的经历呢)

目前,除了ESP官方提供的模组和开发板,也有其他公司基于ESP官方提供的ESP-32芯片进行模组的开发,即芯片还是那个芯片,对芯片的外加工,如引线布局,时钟源功能电路设计等与官方不同。

4.2 模组-开发板对应关系

发现了吗?一款ESP-WROVER-B模组(板载ESP-D0WD芯片)可以开发出很多开发板:ESP-DevKitC、ESP32-LyraT等

同样,ESP-WROVER-IB模组(板载ESP-D0WD芯片)可以开发出很多开发板:ESP-DevKitC、ESP-WROVER-KIT-VIB等。等等,刚才不是说ESP-DevKitC由ESP-WROVER-B模组研发而来吗?为什么这里又说ESP-WROVER-IB模组开发出的开发板也叫做ESP-DevKitC?

是的,同一模组,可以嵌入到多个不同型号的开发板中。同一型号的开发板也可以使用不同的模组(他们只是名字一样,I/O数量、天线材质等不一样)。因此,模组与开发板(确切的说是开发板型号,不是开发板实体)的对应关系是多对多的关系。

(不同公司需要的I/O种类和数量不同,需要的UI方式也不同,有的需要显示屏,有的只需要LED灯就够了)

实际上,芯片只是“定义”了引脚功能,并未将引脚引出到可供连接的铜箔上,模组将部分引脚引出以供产品连接。

不同模组的功能可能不同,因为他们需要的资源不同,因此引出的引脚不同。

模组是面向“产品”的,最终目的是嵌入到产品内部,成为执行特定功能的模块(这也是模组概念的由来,模组,即执行特定的功能的模块,用于组合到产品中使用)

开发板是面向“测试学习”的,是一个假定的“产品”(你打开一个空调,他内部连接的是一个模组,不是一个开发板),是针对嵌入到其内部的模组,提供快速地学习了解,测试模组性能的工具。因此,开发板可看作模组到产品的一个“中间临时变量”,如下图所示:

我们很难一次性写出完全正确的应用程序代码,因此,尽管最终用到产品中去的是“模组”,但开发板的存在依然重要,在写应用程序时,将错误信息打印到开发板的显示屏上、或者通过LED灯显示程序出错的位置将大大加快开发的进程,保证程序的健壮性。在确保应用程序无误后,去掉代码中的“打印语句”(最终产品可能是一个无显示屏、无LED灯的设备),然后,将代码批量烧录到模组中,就得到执行我们指定应用功能的模组了,最后一步就是嵌入到产品中,成为执行一定功能的模块)。

5. 芯片、模组、开发板与软件资源的对应关系

由上述知识可知,一个芯片可以制定多个模组、一个模组可以嵌入到不同的开发板,一个型号的开发板内部使用的可以是不同的模组。从芯片到开发板,数量是越来越多了!

硬件的使用离不开软件的支持,那么,使用开发板进行学习、测试时的软件开发包(Software Develop Kit,SDK)是否如开发板数量一样很多呢。试想100个开发板对应100个SDK合理吗?

NO,选择合适的开发板已经够累人了,能不能针对我选的开发板快速给我一个SDK?

没问题,用它:ESP-IDF开发包即可。

实际上,ESP32系列的芯片只有一个大的“开发包”,或者说是开发框架(就是上面提到的ESP-IDF),其中包含了实现ESP32系列芯片所有底层功能的软件代码,也就是说,你选择的任意一款ESP32开发板,他对应的软件开发包只有一个:ESP-IDF。那么一个开发包如何兼容不同的开发板呢?ESP-IDF提供了图形化的配置工具:

根据ESP-IDF中的操作指南文档,在工程配置这一步骤中,打开如图所示的配置界面,就可以选择具体的芯片、模组、是否包含显示屏等选项,自动生成能够适用于指定开发板的代码。

是不是很方便尼?

总之,一个软件开发包(SDK)与芯片、模组、开发板的对应关系是一对多的,ESP-IDF开发包适用于所有ESP32系列的开发板。

总结:

1.芯片→模组→产品,是功能不断专用化、硬件资源不断丰富的过程。

2.开发板只是一个“模组→产品”过程中的“临时中间变量”,开发板用于对模组进行学习、测试,最终用到产品中的是烧录测试学习时保留下来代码的模组,而不是开发板。

3.芯片与模组的对应关系是一对多,模组与开发板的对应关系是多对多。

4.模组是面向“产品”的,开发板面向“学习测试”。

5.软件开发包(SDK)与芯片、模组、开发板的对应关系是一对多的,在开发包(ESP-IDF中)针对的是某款芯片的开发,是芯片功能实现的一个完备软件集(如,开发包中包含HTTP协议实现的软件,而你不需要用HTTP,忽略它,只配置使用自己需要的包即可),因此对于不同的开发板选择对应芯片的开发包即可。

6.芯片提供了实现芯片支持的所有功能的内部集成电路硬件资源,SDK提供了实现该芯片的所有功能的底层软件资源。因此,选择一块合适的开发板,只需要从选择一款合适的芯片即可(芯片数量相比于开发板数量少多了),不必大海捞针的去看每一个开发板的硬件手册;然后,依据芯片选择合适的模组;最后,再依据模组选择合适的开发板就可以开始了(至于软件包,你完全不必担心,反正ESP32系列芯片对应的开发包是同一个,即ESP-IDF)。

好了,选择一款自己喜欢的ESP32开发板,大胆的实现你的ideas吧。

(谢谢点赞或收藏)

参考:ESP32官方文档地址:芯片概览 | 乐鑫科技

芯片、模组、开发板的区别与联系-结合ESP32浅谈相关推荐

  1. 芯片、模组、开发板的区别与联系-结合ESP32浅谈(转载)

    1.从外形说起: 1.1芯片 没错,这块黑色的小硅片就是"芯片"本体(通常比大拇指还小,内部集成了实现特定功能的硬件集成电路). 1.2模组 由上述芯片研发的模组是这样的: 从外形 ...

  2. 芯片-模组-开发板-软件开发包SDK(Software Development Kit)的关系(软件开发人员必须了解的硬件知识)

    使用的芯片相同,但不同模组的Flash大小.天线的材质.模组尺寸是不同的.是的,芯片到模组的演变经历了"定制化.专用化"的过程.模组最终会嵌入到电视.电冰箱.空调等不同的产品中去, ...

  3. PAJ7620手势传感器快速应用- -基于涂鸦CBU模组开发板

    PAJ7620手势传感器快速驱动- -基于涂鸦CBU模组开发板 正在,或是想要开发物联网小产品的你是否会觉得一些常用的控制需要繁琐地掏出手机会让你的产品体验不佳?添加实体按键又显得太 low ?不妨来 ...

  4. 【BW16 应用篇】安信可BW16模组/开发板AT指令实现MQTT通讯

    文章目录 前言 1 固件烧录 2 EMQ服务器搭建 2.1 软件获取 2.2 启动EMQ服务 3 设备端联网配置 3.1 AT指令配置 3.2 信息交互 联系我们 前言 本文主要介绍安信可BW16模组 ...

  5. 涂鸦模组开发(压力传感器HX711)——2. 压力传感器HX711

    涂鸦模组开发_压力传感器HX711--2. 压力传感器HX711 概述 视频教学 资料下载 涂鸦智能 硬件准备 选择芯片型号 配置时钟源 配置时钟树 串口配置 生成工程设置 代码生成设置 生成代码 串 ...

  6. 涂鸦模组开发光照传感器

    涂鸦模组开发光照传感器(OPT3006) 概述 涂鸦智能 视频教学 系统框架设计 OPT3006 超薄环境光传感器 TYZS5 模组 特点 PCB绘制 涂鸦零代码开发 涂鸦模组开发文章 最后 概述 亮 ...

  7. 涂鸦模组开发(压力传感器HX711)

    涂鸦模组开发(压力传感器HX711) 概述 资料下载 涂鸦智能 视频教学 系统框架设计 压力传感器 信号处理 涂鸦蓝牙模块 软件设计 涂鸦模块开发 智慧生活App 开发文章 最后 概述 1999年我国 ...

  8. 要闻君说:阿里云联合8家芯片模组商推出“全平台通信模组”;北汽与小桔车服联合“京桔”;IBM要帮助印度公司打造5G战略!...

    关注并标星星CSDN云计算 每周三次,打卡即read 更快.更全了解泛云圈精彩news go go go  嗨,大家好!偶是要闻君.盼望着.盼望着,放假的日子又临近了一步,抢先祝福各位看官们新年快乐哈 ...

  9. 涂鸦模组开发(压力传感器HX711)——3. 涂鸦模组数据通信

    涂鸦模组开发_压力传感器HX711--3. 涂鸦模组数据通信 概述 视频演示 资料下载 涂鸦智能 涂鸦调试文件下载 STM32CUBEMX配置读取模块信息 读取代码配置 串口打印数据实例 匹配心跳检测 ...

最新文章

  1. netcore读取json文件_.net core读取json格式的配置文件
  2. 零基础Java学习之类和对象
  3. 设计模式复习-职责链模式
  4. faster rcnn源码解读总结
  5. python对字符串(内嵌的字典)转为字典
  6. Spark跟Flink的常见问题
  7. Win10:tensorflow 学习笔记(1)
  8. 简单易学的深度学习算法:Wide Deep Learning
  9. Spark in action on Kubernetes - Playground搭建与架构浅析
  10. Python数据科学|第一章:数据科学家的武器库
  11. leetcode题库1--两数之和
  12. C导出接口与C++导出接口对比
  13. WindowsAPI概览
  14. Ubuntu20.04之安装VirtualBox虚拟机
  15. 系统重装之后如何恢复mysql数据
  16. LINUX下更新flash
  17. markdown使用
  18. Win10 中查看笔记本电脑电池信息
  19. [JZOJ5666]【GDOI2018Day2模拟4.18】法力风暴(分治NTT 模板)
  20. 道高一尺 魔高一丈(使用插件订火车票)

热门文章

  1. 拓嘉辰丰:当消费者在拼多多申请退款退货该怎么做?
  2. 无限火力更新服务器公告,2021无限火力时间表公告 lol无限火力什么时候开放
  3. csrf攻击 java_Web常见攻击手段-CSRF攻击
  4. 录音怎么转文字,我有三种办法教会你录音转文字
  5. C语言项目--苹果产品管理系统
  6. 写在Linux栈溢出尝试的黎明前
  7. GUI实验—制作电子相册
  8. NearbyService超简单集成教程get!助你打造一款更加便捷的社交聊天类应用
  9. js正则表达式之中文验证(转)
  10. 用户积分体系,你上链了吗?