嵌入式系统是一个计算机系统,在一个较大的机械或电气系统中具有专用功能,通常具有实时计算约束,作为一个完整的设备的一部分被嵌入,通常包括硬件和机械部件。嵌入式系统控制着今
所谓嵌入式系统,指的是为特定应用而设计的专用计算机系统,嵌入式系统由硬件+软件构成。我们分别从硬件和软件这两个方面来讲述。
一、我们来看硬件部分:
我们都有使用个人桌面电脑的经历,而个人电脑系统属于通用计算机系统。那嵌入式系统跟通用系统在硬件设计上有什么区别呢?
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语言。这也是嵌入式系统和通用系统在软件开发上的的差异。
以上,我从硬件和软件这两个方面解释了什么是嵌入式系统,希望对你有所帮助!