很多初学者都会有一个困境:我应该学单片机还是嵌入式? 有人说微控制器也是嵌入式的,是吗? 嵌入式就是linux吗?
首先我们来了解一下什么是嵌入式。 嵌入式系统是以应用为中心,以现代计算机技术为基础,可以根据用户需求(功能、可靠性、成本、体积、功耗、环境等)灵活裁剪软硬件模块的专用计算机系统。
嵌入式对于大多数人来说是一个模糊的定义,“嵌入式”这个词目前还没有非常明确的定义。 它也与微控制器不同,微控制器是标识对象的名称。
嵌入式实际上是一种电子设计方法,即将微型计算机嵌入到电子产品中使用。 只要电子产品符合这种设计方法,就可以称为嵌入式系统。 它以方法命名。
为什么会有嵌入这个词? 这是因为早期的半导体技术不发达,计算机体积非常庞大。 当时电子产品是一个单独的东西,电脑也是一个单独的东西,然后通过一些电线连接在一起。 两个不是一个整体。
我们以空调为例。 如果空调只是制冷,上面没有任何按钮,那么就将空调通过电线连接到电脑上,然后通过按电脑上的键盘来控制空调。 这种类型的空调称为非嵌入式系统。
我们现实中看到的空调并不是这样的。 空调柜上有按钮,可以直接按下。 事实上,空调内部安装有一块电路板。 这块电路板实际上是一个用于控制空调的嵌入式计算机。 由于计算机电路板“嵌入”到空调中,因此被称为嵌入式系统。
介绍几种嵌入式系统
1、以单片机为核心的嵌入式系统,如51、AVR等,需要C语言或汇编知识,比较简单。 大多数只生产微控制器的公司都需要硬件和软件方面的知识,因为小公司要先进得多。 与大公司不同,小公司讲究万能,也就是说可以自己画板设计电路,自己写程序,自己调试。
2、以ARM7、M0、M3等为核心的嵌入式系统,功能比单片机多很多。 它们需要C语言或汇编语言,或者一些微内核嵌入式系统,例如UCOS。 与更高端的微控制器相比,这些系统会分为硬件部门和软件部门。由相应的工程师组成,做相应的硬件开发和软件开发
3、ARM9、ARM11等更高级别内核的嵌入式系统功能复杂,需要C或C++,还有一些其他系统如LINUX系统或WINCE。 软件和硬件之间有严格的分工。 软件工作量大,硬件复杂,需要团队分工协作。
嵌入式的概念其实很广泛。 如果你只讲嵌入式,别人可能会误解,你想要表达的意思也会不同。 上述所说的嵌入性概念是嵌入性的原始定义,即广义上的所谓嵌入性。 从广义上讲,51单片机也是嵌入式的一种。
狭义的嵌入式实际上是“嵌入式Linux系统”的缩写。 这种狭义的嵌入式最初是指运行Linux系统的嵌入式计算机系统。 后来还包括运行与Linux同级别的其他嵌入式系统的计算机(如WinCE、Vxworks、Android等)。
这种可以运行Linux的嵌入式计算机并不是单片机。 单片机由于资源和性能有限,无法运行Linux。 我们常见的智能手机、大型汽车中控屏、工控HMI、网络摄像机等产品就是这个狭义的嵌入式系统。
从广义上讲,微控制器是嵌入式的,但从狭义上讲,它们不是嵌入式的。
所以当你在考虑是从单片机还是嵌入式系统入手时,首先要确认自己未来的学习路线或者职业发展方向,避免进错门再进去。
想一起学习单片机的朋友,评论“我要入门”,会有惊喜,加入我们,可以与导师一对一互动,快速成长