【嵌入式】在正式学习之前,我们所要了解的

#来自学渣的问候

为什么要写这篇博客呢?

故事是这样的,我在上数模竞赛课的时候,lzh把我的电脑拿去打植物大战僵尸了。无比无聊的00我只能玩手机度日。这个时候有人问了我一个问题,让我缓缓打出了一个问号?
问题是这样的:请教一下 嵌入式系统有什么比较好的资源(课程 书籍之类的)推荐嘛?
当我收到这样一个问题,我缓缓打出一个问号?这是个什么玩意?学嵌入式的资料有哪些???这是一个在我不了解你干什么,做什么,怎么做之前,根本无法回答的问题。
在我的追问下,我搞明白她只是想电子设计竞赛想提前学个主控而已。不仅对嵌入式一无所知,对这个东西到底指什么都不知道。

所以我才想写一篇博客,从我自己的角度来做一个科普,不涉及任何高深的东西,除了对嵌入式系统进行简单的了解外,更多的我会说一下在全国大学生电子设计竞赛之中,嵌入式的应用(此处指的是STM32)
思考: 控制器是什么? 在电子设计的领域,常常一个完整的系统,会有一个或者多个用作控制(或者计算)的芯片。我们习惯于把它叫做控制芯片,这个名称会随着不同的使用而产生改变,比如微控,主控,中控 balabala~的。
在大学里头,经常可以听到学单片机,学51单片机,如果是电子设计竞赛就是学MSP430单片机。MSP430要我命 这个单片机其实就是一个控制器,它的芯片就是控制芯片。
图文无关
如果我们要实现一个简单的控制功能,但又不需要或者不必要使用复杂的计算,那么一个微型的计算机就能满足要求。这就是单片机——MCU or 单片微型计算机。它的规格频率相对于电脑所使用的CPU(中央处理器)做了一定的缩减,降低了成本和能耗,在简单的控制环境下是非常好用的。
但随着时代的发展,应用的要求高了,原先的单片机它渐渐的不够用了。曾经叱咤风云的51单片机,现在是街边用来做玩具的控制器。8位的单片机不够用了,16位的单片机出现了。但随着控制环境越来越复杂,要求也越来越高,有时候不仅仅是状态的切换、数据的传输,还有复杂信号的采集、处理或者调制解调。16位的单片机也不够用了,那换成32位?
诶,等等!32位好像有哪里不对的样子。操作系统一开始是32位的,电脑的操作系统32位,单片机也是32位。等等这有点大啊~~那既然32位是个系统了,但做的是单片机的功能,那不如我们把它叫做嵌入式系统

嵌入式系统的定义是这个样子的:*全嵌入受控器件内部,为特定应用而设计的专用计算机系统。*嵌入式系统为控制、监视或辅助设备、机器或用于工厂运作的设备。与个人计算机这样的通用计算机系统不同,嵌入式系统通常执行的是带有特定要求的预先定义的任务。由于嵌入式系统只针对一项特殊的任务,设计人员能够对它进行优化,减小尺寸降低成本。嵌入式系统通常进行大量生产,所以单个的成本节约,能够随着产量进行成百上千的放大。——摘自百度百科

其实很好理解,自己使用的电脑,目的一般都在自己手上,比如我拿电脑来打游戏,,我拿电脑来写代码,我拿电脑来做PPT,我拿电脑来看电视剧。电脑的作用是由自己决定的。即使说市面上有针对游戏的游戏本、针对上午的轻薄本,但是我还是可以拿商务本打游戏,拿游戏本看电视剧。
反观嵌入式系统,嵌入式系统它的目的是在设计之初就决定的,基本上设计好了之后,不会进行更改(指大方向)比如去菜鸟驿站拿快递的扫码机,它就是一个嵌入式系统。而这个系统的目的就是,识别二维码,调取信息,进行登记。这个扫码机不会拿去打电话,也不会拿去做宿舍门禁。一个嵌入式系统,会被很明确的应用于相应的领域,同时,嵌入式系统相比单片机的简单控制,更加复杂,包括信息的识别,数据的处理,或者更多状态的控制变化。
//像导弹的导航、一些大型传感器的控制系统,都属于嵌入式系统。
单片机、嵌入式、电脑之间的关系大约是这样的:单片机<<嵌入式<<PC

图片来自水印
了解了嵌入式系统的概念之后,正式的入门嵌入式系统,我们要学习哪两个方面?
上位软件+下位硬件(我自己的脑洞)
一个系统,上位机的作用,控制硬件进行相应的操作,同时进行数据的处理。
一个硬件系统,被上位机控制,实现数据的采集回馈以及动作实现。
上位的系统可以有什么?
也就是嵌入式系统的操作系统(简称:RTOS)
市面上一些主流的操作系统,分别是:μClinux、μC/OS-II、eCos、FreeRTOS、mbed OS、RTX、Vxworks、QNX、NuttX

此处有一个关于主流操作系统的概述(21IC网的)可以用作参考:
主流嵌入式操作系统介绍

我常聊解的就是Linux,所以就用它来举例子。Linux因为它优秀的稳定性、可移植性,是一个很好的嵌入式系统。当然它的复杂性,内核大小也是比较大的问题,但这并不影响它的应用广泛。
j在这里插入图片描述

买的正点原子基于Linux的STM32开发板,这块开发板可以跑一个Linux操作系统,然后还可以在Linux开发自己。(我开发我自己那种)
那么,讲完了上位的操作系统,那么硬件上面的也该被提上来了。
目前接触到的嵌入式,有ARM、STM32、MSP432、飞思卡尔。电子设计竞赛大部分使用的都是ST的STM32,除非是题目特殊要求要用TI的器件,不然基本上用的都是STM32,今年(2019)的全国大学生电子设计竞赛,整个电赛班无论是控制组还是信号组,大家用的都是STM32。
说到硬件,32底层的硬件控制其实和单片机没什么区别,难度最大的反而是上位机的开发,不过硬件的控制应用也是一个很复杂的部分。
在这里聊一聊,关于嵌入式的需求

在这里插入图片描述
明确了嵌入式学习的目的,那么侧重点也很好把握。比如我心心爱爱的电子设计竞赛,它在信号题和控制题中的区别就不一样,信号题里,它更偏向于是一个简单控制、信号采集处理、显示的工具。对于控制的要求会弱化很多。但在控制题中,尤其是四旋翼里,它的控制能力被体现到极致,一个强有力的控制器件和PID算法的处理环境。
不过,不得不说,嵌入式在电子设计竞赛中的地位并不是很大,除了控制题对嵌入式的依赖较大以外,大部分使用STM的参赛者看重的是它简便的操作方式(调库)以及不需要担心硬件饱和的轻松。
在项目开发中,嵌入式系统的地位非电赛可比。举个栗子!

扫描二维码关注公众号,回复: 8895496 查看本文章

在传感器的使用上,如果我想直接在传感器上调整参数、改变检测状态,那么我们需要一个显示+控制界面,这样的system拿嵌入式系统搭建,再好不过了。低位的单片机可能在频率、空间上无法达到要求,而连接电脑又过于麻烦,而且因为一个传感器就要连接一台电脑,资源赘余。
嵌入式系统在单片机和计算机之间达到了一个良好的平衡。
————————————————————————————————————
#是菜鸡的分割线
其实到这里,大家应该能很好的了解嵌入式系统是个什么东西,也不会再一脸懵逼的问别人嵌入式系统怎么学习。嵌入式系统是一个概念,或者说它是一个泛的概括,符合标准的系统/硬件/产品,都可以叫做嵌入式系统。
但从学习的角度上来说,他还是偏向于一个开发板的学习,只有搞明白这个开发流程,真正入门嵌入式系统。

正文写完之后的碎碎念。其实这篇文章一周前就想写了,但因为各种各样的事情。一直被迫当鸽子,后来觉得再这么鸽下去,实在对不住刁爷(其实是不想被他切了)所以趁着这几天运动会写一下,一点点补曾经鸽了的东西。然后答应了刁爷,他起床就能看到博客,所以就认真肝它,肝完啦!完结撒花~~

学渣不是dalao,写文难免有错,请多多包涵!

发布了8 篇原创文章 · 获赞 6 · 访问量 1659

猜你喜欢

转载自blog.csdn.net/Ninquelote/article/details/102735472
今日推荐