什么叫嵌入式系统,它与单片机的关系如何(什么叫嵌入式系统开发)

什么叫嵌入式系统,什么叫嵌入式系统,它与单片机的关系如何?

“青鹿小锦囊”的诞生,旨在为关注教育信息化行业的朋友们更快地了解行业内的新词热词。每期一分钟,科普一个最近有点hot~的词语~

最近青小鹿在服务大家开心自己的时候,发现好多人来问:

Emmm……

这就得给大家讲一个故事了……

在计算机的世界中,有一个流浪的系统,一直在寻觅它理想中的那个TA。

它问过很多个计算机主板,但得到的回应总是令人心碎。

但是!皇天不负有心人,在经历了一千零一次的心碎后,流浪的系统终于等来了“Yes”。

从此以后,流浪的系统找到了爱的港湾,变成了爱意满满·你就是我的唯一·嵌入式·系统

比起常见的X86系统,嵌入式系统有了爱,瞬间强大到不像话,像什么瞬间启动啊~

是的,简单来讲,嵌入式系统就是一个嵌入主板中的具有稳定低功率等特点的定制系统。

但如果不简单来讲呢?那就是我们的

嵌入式系统,即以应用为中心,以计算机技术为基础,软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。

悄咪咪说一下,我们的青鹿盒子是业内首台嵌入式架构智慧课堂主机,不仅高稳定低功率,还支持90台平板全高清多终端接入,欢迎了解一下哟~

广州青鹿教育科技有限公司,智慧课堂整体解决方案提供商。这里有最有趣的青鹿人,立志做最好的智慧课堂,挖掘最新鲜的教育资讯,分享你最关注的热点话题。

以上就是小编关于【什么叫嵌入式系统开发】的分享,希望对你有用。

网友提问:

什么叫嵌入式系统,什么叫嵌入式系统开发?

什么是嵌入式系统?

优质回答:

嵌入式系统是一个计算机系统,在一个较大的机械或电气系统中具有专用功能,通常具有实时计算约束,作为一个完整的设备的一部分被嵌入,通常包括硬件和机械部件。嵌入式系统控制着今天常用的许多设备, 98%的微处理器都是作为嵌入式系统的组件制造的。

典型的嵌入式计算机与通用相对应的计算机属性的例子是低功耗,小尺寸,稳定的操作范围和低单位成本。这是以有限的处理资源为代价的,这使得编程和交互更加困难。然而,通过在硬件之上构建智能机制,利用可能存在的传感器和嵌入式单元网络的存在,既可以优化管理单元和网络级别的可用资源,又可以提供增强的功能,远远超越那些可用。例如,可以设计智能技术来管理嵌入式系统的功耗。 数字信号处理器(DSP)是一种常见的标准专用处理器。

由于嵌入式系统专用于特定任务,设计工程师可以对其进行优化,以减少产品的尺寸和成本,并提高可靠性和性能。一些嵌入式系统是大规模生产的,受益于规模经济。

嵌入式系统的范围从便携式设备(如数字手表和MP3播放器)到大型固定安装(如交通信号灯,工厂控制器以及复杂系统,如混合动力车辆,MRI和航空电子设备)。复杂性从单个微控制器芯片的低端到具有多个单元的高端设备,外围设备和网络安装在大型机箱或机箱内。

了解更多硅谷前沿深度讯息请看 硅发布 微信公众号

其他网友观点

所谓嵌入式系统,指的是为特定应用而设计的专用计算机系统,嵌入式系统由硬件+软件构成。我们分别从硬件和软件这两个方面来讲述。

一、我们来看硬件部分:

我们都有使用个人桌面电脑的经历,而个人电脑系统属于通用计算机系统。那嵌入式系统跟通用系统在硬件设计上有什么区别呢?

1. 通用计算机系统

这里所讲的通用计算机系统,主要指的是intel x86系统。这种系统基本由intel cpu + 南北桥芯片组成。cpu通过南桥连接到低速外设,比如:实时时钟、usb、以太网、wifi、蓝牙等;通过北桥连接到高速外设,比如:内存,显卡等。

这样设计的通用系统性能非常强大。比如,我们可以在个人电脑上办公、运行大型软件、玩游戏、运行photoshop等。

我们在使用个人PC的时候也从来不关注能耗的问题,反正我们玩电脑都要插电源的。

以上是通用系统(以个人电脑为例)的硬件架构和使用场景。

2. 嵌入式系统

跟通用计算机系统不同,嵌入式系统使用所谓的soc实现硬件的最大集成。具体来讲就是把cpu和外设都封装在同一个芯片上,也叫soc,或者叫片上系统。

这样设计有什么好处呢?最大的好处就是减小系统尺寸、节能省电。

尺寸问题好理解,因为很多嵌入式设备是手持的,甚至是可穿戴的。

为什么要考虑节能省电的问题呢?因为嵌入式系统一般都无法做到像个人pc一样持续供电。举个例子:大疆的无人机,就是一个典型的嵌入式系统,你能想象让它拖着一根电源线上天吗?显然不可能。所以,无人机系统必须要考虑电能的供给和消耗的问题。供给靠电池,消耗就是系统的事情了,所以低功耗的硬件才能工作更长的时间,而只有嵌入式专用系统才能做到低功耗。能耗和性能是嵌入式系统设计者需要不断优化和改善的两个指标。

另外有些外设和接口也是传统的通用系统所不支持的,所以就需要嵌入式系统来做定制了。

二、再来看软件部分:

嵌入式系统一般采用linux系统(也有wince,vxworks,ucos等),开发语言一般用c语言。因为c语言的效率高、性能优,这样可以最大程度的节省能耗、提升性能。我们在PC上做开发的时候可以选择java,c#等开发语言,这些语言在开发上给我们提供了很大的便利性,但是代码的执行效率并不高。但是,在嵌入式系统上开发应用软件需要考虑的最大的因素就是性能,所以最佳的开发语言是c语言。这也是嵌入式系统和通用系统在软件开发上的的差异。

以上,我从硬件和软件这两个方面解释了什么是嵌入式系统,希望对你有所帮助!

其他网友观点

嵌入式分为嵌入式硬件和嵌入式软件。所谓嵌入式,就是指软件在特定的嵌入式硬件开发完成后,最后被固化在此硬件平台中,当硬件启动后,自动执行软件,完成特定的功能。

嵌入式系统启动后,一般是没有人机交互界面的,但会留有调试接口,如RS232串口、网口,可以通过终端工具检测软件运行状态、下发控制指令等。

硬件工程师

嵌入式硬件工程师,主要掌握的是基于CPU设计计算主板的电路知识。所以模电、数电、EDA知识是这类工程师的基本功!除此之外,熟悉常用通信协议和总线,如CAN、SPI、I2C、PCIe、DDR,也是硬件工程师应该掌握的技能。

软件工程师

嵌入式软件工程师,编程语言、数据结构是其基本功,除此之外,还应该熟练掌握以下技能:

掌握多线程、多进程编程技术,理解各种线程同步机制,如临界保护、同步信号。知晓进程间通信技术,如共享内存、管道、套接字编程技术;

了解常见外设作用,如CPU、DDR、SDRAM、FLASH、串口、网口等;

了解常见总线或通信协议概念,如数据总线、地址总线、CAN总线、I2C总线、SPI总线等;

理解基于寄存器编程概念,也就是硬件驱动程序实现原理。无论什么硬件,不管函数接口如何封装,其内部一定是对硬件各个寄存器的操作;

嵌入式编程由于受限于硬件资源的大小,所以在内存使用上并不像桌面软件那么灵活。比如,在windows下编程,函数中的数组变量可以分配很大的内存,这是因为其栈空间默认很大。但是在嵌入式环境中,最好把这些内存大的变量定义到外部存储硬件中,如SDRAM或DDR,这是因为嵌入式处理器的片内RAM都很小!

从这里可以看出,嵌入式软件工程师与其他类型软件工程师有一个很大的不同点,就是需要掌握很多硬件知识,这是由嵌入式开发的特点来决定的。

其他网友观点

【医械测试杨先生】来回答什么是嵌入式系统:嵌入式系统是依据不同角度有不同定义的一种系统,往下看:

曾在知乎上看到一篇20万赞文章,回答的是厉害的人是怎么分析问题的,我觉得对我们会特别有用,其中提到当你讲了一大段话后问大家:大家有没有问题?大家可能会沉默或者回答没有问题,这时你千万不要以为大家都听懂了,更大的可能是:他不知道什么是真正的听懂以及为什么要听你说这么一大段话,他没有一个期望值;不知道自己听懂了什么,没听懂什么,处在游离状态找不到自己的现状…因此,不是他完全听懂了,没有问题,而是不知道自己有没有听懂,不知道什么算是完全听懂,因而找不到这个落差在哪里,没有发现落差也就没有发现问题,所以就沉默或者回答:没有问题。

那么仔细思考下,我觉得这是很多人都会有的一种现象,既然了解了,我们可以避免这种现象发生,至少我自己应该想着如何去改变,基于此,对于这个问题:我觉得可以加深一步提问,什么是嵌入式系统?嵌入式系统有哪些特点?嵌入式系统有哪些应用?如何学习嵌入式系统? 下面一一展开。

什么是嵌入式系统?

从技术的角度定义:以应用为中心,以计算机技术为基础,软件硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、重量、功耗严格要求的专用计算机系统。简而言之,是含有处理器的专用软硬件系统,具有自主的信息处理能力( 信息装备)。

从系统的角度定义:嵌入式系统是设计完成复杂功能的硬件和软件,并使 其紧密耦合在一起的计算机系统。术语嵌入式反映了这些系统通常是更大系统中的一个完整的部分,称为嵌入的系统。嵌入的系统中可以共存多个嵌入式系统。

英国电机工程师协会的定义– Devices used to control, monitor, or assist theoperation of equipment, machinery or plants(用于控制、监视或者辅助操作机器和设备的装置)。

微机学会的定义– 嵌入式系统是以嵌入式应用为目的的计算机系统,可分为系统级、 模块级、 芯片级。

系统级:各种类型的工控机 以标准总线互联(背板结构)的工控机: CPCI、 PCI-ISA、 VME 等。

模块级:各种类型的带CPU的模块,嵌入式CPU模块: PC104模块、 Biscuit板。

芯片级:各种以微控制器、 DSP、嵌入式微处理器为核心的产品。

嵌入式系统有那些特点?

主要有以下几个特点:

嵌入专用:嵌入式处理器只嵌入在针对特定应用设计的系统中;

综合性强:嵌入式系统是将计算机技术、半导体技术和电子技术与各个行业的具体应用相结合后的产物;

设计高效:嵌入式系统的硬件和软件都必须高效率的设计,量体裁衣、取出冗余;

程序固化:软件一般都固化在存储器芯片或处理器本身中,提高了系统的执行速度和可靠性;

需要独立的开发系统:嵌入式系统本身不具备开发能力,必须有一套开发工具和环境才能进行开发;

生命周期长:嵌入式系统和具体应用结合在一起,其升级换代一般与具体产品同步进行,因此具有较长的生命周期

其他如可靠性高、成本低、功耗低等。

嵌入式系统有哪些应用?

应用十分广泛,例如坦克、导弹、飞机、军舰、雷达、DVD机、电视机、微波炉、洗衣机、电冰箱、热水器、手机、 MP3播放器、数码相机、数码摄像机、机顶盒、键盘、鼠标、闪存盘、 CD-ROM、交换机、路由器,几乎我们生活中用到的方方面面都有嵌入式系统的“嵌入”。

如何学习嵌入式系统?

嵌入式系统看似可以简单分为硬件与软件,然而其中却包含着异常庞大的知识量,也因此令许多新手望而却步,学习嵌入式系统大致分为三个阶段:基础篇、进阶篇、大咖篇。

基础篇:

此阶段主要是前期的入门过程,一定要打好基础,主要学习一下几个方面

(1)电路知识

首先要学习电路、模电、数电,认识电阻、电容、电感等基础器件,放大电路、集成运放、时序电路基本电路能看懂,不然看电路图一定是云里雾里,也就无法进行后续的工作。硬件产品的设计实现,包括器件选型、原理图和PCB设计、电路调试,都需要过硬的电路基础。

(2)C语言

C语言嵌入式开发中最重要的编程语言,掌握本的数据类型、数组、指针、结构体,链表、文件操作等都要会,掌握基本语法和语句,保证自己会写程序的同时也能看懂别人写的程序。

(3)单片机

单片机入门相对简单,通过单片机的学习可以熟悉单片机的硬件结构,包括I/O口、AD转换、通信(串口、并口、I2C、CAN、USB、以太网、ZigBee技术等)、显示(LED、LCD等)、控制(PWM等控制技术)、数据处理(图形、图像、语音、视频等的处理或识别)等,学好单片机可以为采用嵌入式系统奠定良好的基础。

(4)Linux基础

Linux的源码和架构都是开放的,在嵌入式系统中应用尤为广泛,学习Linux对于系统的开发会有很大的帮助。详细了解Linux下的目录结构、基本命令、编辑器VI、编译器GCC、调试器GDB和 Make 项目管理工具,Shell Makefile脚本编写等知识,以及嵌入式开发环境的搭建。

进阶篇

经过第一个阶段的学习,你已经可以进行嵌入式开发工作了,但是要进阶依旧还有很多知识要学,而这个阶段也将是第一个分水岭,使得优秀的嵌入式工程师得以脱颖而出。此阶段虽然只有三项,但涉及的知识非常广,要想学好需要花费大量的精力。

1.Linux编程

系统编程可以直接跟内核及核心系统程序库对话,深入了解Linux内核。掌握Linux系统编程主要提升对Linux应用开发的理解和代码调试的能力。由于网络应用开发越来越广泛,通过Linux网络发展、TCP/IP协议、socket编程、TCP网络编程、UDP网络编程、Web编程开发等方面入手,可以全面了解Linux网络应用程序开发。

2数据结构与算法

数据结构及算法在嵌入式底层驱动、通信协议及各种引擎开发中得到了广泛的应用,语言编译要使用栈、散列表以及语法树;操作系统中用队列、存储管理表及目录树等;数据库系统运用线型表、多链表及索引表进行数据管理等等,对其掌握的好坏直接影响程序的效率、简洁及健壮性。

3.QT、DSP、FPGA

Linux没有自己界面,学习QT编程可以创建艺术级的图形用户界面所需的所有功能,从而更好的实现人机交互控制。而如今用户对于图形图像的要求也越来越高,这就需要DSP、FPGA技术来设计开发更好的嵌入式视觉系统。

大咖篇

学习了前两个阶段的知识,你已经可以胜任大部分嵌入式工作了,但是距离大咖仍有一定的差距,其实已经到了第二个分水岭。这部分更多涉及系统层面,没有全方位的知识将会很难下手。

1操作系统平台开发

除了Linux外,嵌入式操作系统还有ARM、WINCE、uC/OS II、Vxworks、uClinux等,不同的系统有着不同的使用环境,你需要学习掌握系统的各个模块,为底层平台搭建做好准备。熟悉各个操作系统的特点以及系统的内核移植,确保操作系统能在某个微处理器或微控制器上运行。随着手机智能硬件的快速兴起,Android操作系统开发也越来越重要。

2驱动开发

驱动程序设计是嵌入式Linux开发工作中非常重要的一部分。不仅要熟悉Linux的内核机制、驱动程序与用户级应用程序的接口,掌握系统对设备的并发操作。还要具备ARM硬件接口的基础知识,熟悉ARM Cortex处理器各资源、掌握Linux设备驱动原理框架,以及工程中常见Linux高级字符设备、块设备、网络设备、USB设备的驱动开发。

当你学完以上所有的时候,那么恭喜你,可以说你已经是一个嵌入式系统的大咖了。

但学如逆水行舟,不进则退!活到老,学到老!学无止境…切记大咖也不能止步不前哦!

所以问一句,你听懂了吗?

觉得不错的话点个赞然后关注一下,关注评论交流@

其他网友观点

谈到什么是嵌入式系统,那就要从什么是最小系统开始说起。

何为最小系统?

包含一个芯片的复位,电源,时钟。也就是说,一个程序能够跑起来的所需要的最小基本设施。

对于嵌入式系统,就目前来说,其实有很多种不同的理解。拿安卓应用来说,有人说这是嵌入式开发。但从我个人10年的嵌入式开发经验来看。对于嵌入式系统的理解是,非运行在PC架构上的系统都可以称之为嵌入式系统。

形象点可以说,单片机,嵌入式Linux,Freeos,ucos,安卓等,这些系统都可以称之为嵌入式系统。

与什么叫嵌入式系统相关的文章


为您推荐