关闭
关闭
首页 > 嵌入式基础教程 > 基础知识

1 嵌入式系统的知识体系

嵌入式系统的应用范围可以大概分为两大类:电子系统的智能化(工业 控制、现代农业、家用电器、汽车电子、测控系统、数据采集等),计算机应用的延伸(MP3、手机、通信、网络、计算机外围设备等)。从这些可以看出, 要完成一个以MCU为核心的嵌入式系统应用产品设计,需要硬件、软件及行业领域相关知识。硬件主要有MCU的硬件最小系统、输入/输出外围电路、人机接口设计。软件设计有固化软件的设计,也可能含PC机软件的设计。行业知识需要通过协作、交流与总结获得。

概括地说,学习以MCU为核心的嵌入式系统,需要以下软硬件基础知识与实践训练:

①硬件最小系统(电源、晶振、复位、写入调试接口);

②通用I/O(开关量输入/输出,涉及各种二值量检测与控制);

③模/数转换(各种传感器信号的采集与处理,如红外、温度、光敏、超声波、方向等);

④数/模转换(对模拟量设备利用数字进行控制);

⑤通信(串行通信接口SCI、串行外设接口SPI、集成电路互联总线I2C、CAN、USB、嵌入式以太网、ZigBee技术等);

⑥显示(LED、LCD等);

⑦控制(控制各种设备,包括PWM等控制技术);

⑧数据处理(图形、图像、语音、视频等的处理或识别);

⑨各种具体应用。

万变不离其宗,任何应用都可以归入这几类。而应用中的硬件设计、软件设计、测试等都必须遵循嵌入式软件工程的方法、原理与基本原则。所以,嵌入式软件工程也是嵌入式系统知识体系的有机组成部分,只不过它融于具体项目的开发过程之中。

以上涉及硬件基础、软件基础及相关领域知识。计算机语言、操作系统、开发环境等均是达到这些目的的工具。有些初学者,容易把工具的使用与所要达到的真正目的相混淆。例如,有的学习者学了很长时间的嵌入式操作系统移植,而不实际开发嵌入式系统产品,到最后连一个嵌入式系统的小产品也做不好,偏离了学习目标,甚至放弃嵌入式系统领域。这就是进入了嵌入式系统学习误区,下面对此作一些分析。

2 嵌入式系统的学习误区

关于嵌入式系统的学习方法,因学习经历、学习环境、学习目的、已有的知识基础等不同,可能在学习顺序、内容选择、实践方式等方面有所不同。但是,应该明确哪些是必备的基础知识,哪些应该先学,哪些应该后学;哪些必须通过实践才能获得;哪些是与具体芯片无关的通用知识,哪些是与具体芯片或开发环境相关的知识。

由于微处理器与微控制器种类繁多,也可能由于不同公司、机构出于自身的利益,给出一些误导性宣传,特别是我国嵌入式微控制器制造技术落后,使得人们对微控制器的发展,在认识与理解上存在差异,导致一些初学者进入嵌入式系统的学习误区,浪费了宝贵的学习时间。下面分析可能存在的几个误 区。

2.1 操作系统的困惑

如果说,学习嵌入式系统不是为了开发其应用产品,那就没有具体目标,那学习方法这样的问题也就不必说了。实际上,这正是许多人想学,又不知从何开始学习的关键问题所在,不知道自己学习的具体目标。于是,看了一些培训广告,看了书店中种类繁多的嵌入式系统书籍,或上网以“嵌入式系统”为关键词进行查询,就参加培训或看书,开始“学习起来”。对于有计算机阅历的人,往往选择一个嵌入式操作系统就开始学习了。这有点像“瞎子摸大象”,只了解其一个侧面。这样如何能对嵌入式产品的开发过程有全面了解呢?针对许多初学者选择“XXX嵌入式操作系统+XXX处理器”的嵌入式系统入门学习模式,认为是不合适的。建议是:首先把嵌入式系统软件与硬件基础打好了,再根据实际需要,选择一种实时操作系统(RTOS)进行学习实践。要记住:RTOS是开发某些类嵌入式产品的辅助工具,是手段,不是目的;许多类嵌入式产品,并不需要RTOS。所以,一开始就学习RTOS,并不符合“由浅入深、循序渐进”的学习规律。

RTOS本身由于种类繁多,实际使用何种RTOS,一般需要由工作单位确定。基础阶段主要学习RTOS的基本原理与RTOS上的软件开发方法,而不是学习如何设计RTOS。以开发实际嵌入式产品为目标的学习者,不要把过多的精力花在设计或移植RTOS上面。正如很多人使用Windows操作系统,而设计Windows操作系统的只有Microsoft。许多人“研究”Linux,但不使用它,浪费了时间。人的精力是有限的,学习必须有所选择。

2.2 硬件与软件的困惑

以MCU为核心的嵌入式技术的知识体系必须通过具体的MCU来体现、实践。但是,选择任何型号的MCU,其芯片相关的知识只占知识体系的20%左右,80%左右是通用的软件硬件及相关知识。80%的通用知识,必须通过具体实践才能获得,所以学习嵌入式技术一般要选择一个系列的MCU。

学习嵌入式系统是以软件为主还是以硬件为主,或者如何选择切入点,如何在软件与硬件之间取得平衡?对于这个困惑的建议是:要想成为一名真正的嵌入式系统设计师,在初学阶段,必须打好嵌入式系统的硬件与软件基础。以下是从事嵌入式系统设计二十多年的美国学者JohnCatsoulis在《Designing Embedded Hardware》一书中关于这个问题的总结:嵌入式系统与硬件紧密相关,是软件与硬件的综合体,没有对硬件的理解就不可能写好嵌入式软件;同样,没有对软件的理解也不可能设计好嵌入式硬件。

2.3 片面认识嵌入式系统

嵌入式系统产品种类繁多,应用领域各异。在第1部分中,把嵌入式系统的应用范围粗略分为电子系统的智能化与计算机应用的延伸两大类。从初学者角度,可能存在分别从这两个角度片面认识嵌入式系统的问题。因此,一些从电子系统智能化角度认识嵌入式系统的学习者,可能会忽视编程结构、编程规范、软件工程的要求、操作系统等知识的积累。另一些从计算机应用的延伸角度认识嵌入式系统的学习者,可能会把通用计算机学习过程中的概念与方法生搬硬套到嵌入式系统的实践中,忽视嵌入式系统与通用计算机的差异。

实际上,在嵌入式系统学习与实践的初始阶段,应该充分了解嵌入式系统的特点,根据自身的已有知识结构,制定适合自身情况的学习计划。目标应该是打好嵌入式系统的硬件与软件基础,通过实践,为成为良好的嵌入式系统设计师建立起基本知识结构。学习过程中,具体应用系统可为实践载体,但不能拘泥于具体系统,应该有一定的抽象与归纳。例如,初学者开发实际控制系统时没有使用实时操作系统,但不要认为实时操作系统不需要学习。又例如,初学者可以一个带有实时操作系统的样例为蓝本进行学习,但不要认为任何嵌入式系统都需要实时操作系统,甚至为一个十分简明的实际系统加上不必要的实时操作系统。因此,片面认识嵌入式系统,可能导致学习困惑。应该根据实际项目需要,锻炼自己分析实际问题、解决问题的能力。这是一个长期的学习与实践过程,不能期望通过短期培训完成整体知识体系的建立,应该重视自身实践,全面地理解嵌入式系统的知识体系。

2.4 入门芯片选择的困惑

嵌入式系统的大部分初学者需要选择一个微控制器(MCU)进行入门级学习,面对众多厂家生产的微控制器系列,往往不知如何是好。

首先是关于位数问题,目前主要有8位、16位和32位MCU。不同位数的MCU各有应用领域,这一点与通用微机有很大不同。例如做一个遥控器,不需要使 用32位MCU,否则MCU芯片价格就已经超过遥控器价格需求。对于首次接触嵌入式系统的学习者,可以根据自己的知识基础选择入门芯片的位数。建议大多数初学者选择8位MCU作为快速入门芯片,了解一些汇编与底层硬件知识,之后再选16位或32位芯片进行学习实践。

关于芯片选择的另一个误区是认为有“主流芯片”存在,嵌入式系统也可以形成芯片垄断。这完全是一种误解,是套用通用计算机系统的思维模式,而忽视了嵌入式系统应用的多样性。关于学习芯片选择还有一个误区,即误认为选择工作频率高的芯片进行入门学习,更先进。实际上,工作频率高可能给初学者带来不少困难。

实际嵌入式系统设计不是追求芯片位数、工作频率、操作系统等因素,而是追求稳定可靠、维护、升级、功耗、价格等指标。初学者选择入门芯片,是通过某 一:MCU作为蓝本,获得嵌入式系统知识体系的通用基础。其基本原则是:入门时间较短、硬件成本较低,知识要素较多,学习难度较低。

3 基础阶段的学习建议

基于以上讨论,下面对广大渴望学习嵌入式系统的学子提出几点基础阶段的学习建议:

嵌入式系统软件硬件密切相关,一定要打好软硬件基础。其实,只要找到正确的方法,加上努力,任何理工科学生,甚至非理工科学生,都能学好嵌入式系统,可以看看朱有鹏的视频。

②选择一个芯片及硬件评估板(入门芯片最好简单一点,例如8位MCU)、选择一本好书(最好有规范的例子)、找一位好老师(最好是有经验且热心的)。硬 件评估板的价格一定要在1000元以下,不要太贵,最好能有自己动手的空间。不花一分硬件钱想要学好嵌入式系统不实际,因为这是实践性很强的学科。好书,可以让人少走弯路,不被误导。有教师指导,学习进程会加快(人工智能学科里有个术语叫无教师指导学习模式与有教师指导学习模式,无教师指导学习模式比有教师指导学习模式复杂许多)。

③许多人怕硬件,其实嵌入式系统硬件比电子线路好学多了。只要深入理解:MCU的硬件最小系统,对I/O口、串行通信、键盘、LED、LCD、 SPI、 I2C、PWM、A/D(包括一些传感器)、D/A等逐个实验理解,逐步实践,再通过动手做一个实际的小系统,底层硬件基础就有了。各个硬件模块驱动程序的编写是嵌入式系统的必备基础。学习嵌入式系统的初期,这个过程是必须的。

④至于嵌入式实时操作系统RTOS,一定不要一开始就学,这样会走很多弯路,也会使你对嵌入式系统感到畏惧。等你软件硬件基础打好了,再学习就感到容易理解。实际上,许多嵌入式应用并不需要操作系统。也可以根据实际项目需要,再学习特定的RTOS。不要被一些嵌入式实时操作系统培训班的宣传所误导,而忽视实际嵌入式系统软硬件基础知识的学习。

⑤要避免片面地单纯从“电子”或“计算机软件”角度认识嵌入式系统。前面说过,嵌入式系统是软件与硬件的综合体。因此,要逐步从MCU的最小系统开始, 一点一点理解硬件原理及底层硬件驱动编程方法。要通过规范的例子,理解软件工程封装、可复用等思想。通过规范编程,积累底层构件(component),也就是一个一个模块;但是要封装得比较好,可复用。

⑥注重实验与实践。这里说的实验主要指通过重复来验证他人的工作,目的是学习基础知识,这个过程一定要经历。实践是自己设计,有具体的“产品”目标。如果花500元左右,自己做一个具有一定功能的小产品,且能稳定运行1年以上,就可以说接近入门了。

⑦关于入门芯片的选择。不要选太复杂的微控制器作为入门芯片,不能超越学习过程。不要一下子学习几种芯片。可以通过一个芯片入门,并具有一个实践经验后,根据实际需要选择芯片开发实际产品。注意,不要把微处理器(MPU与微控制器(MCU)概念相混淆,微处理器只是微控制器的内核。

⑧关于嵌入式操作系统的选择。可以等到具有一定实践基础后,选择一个简单、容易理解原理的嵌入式操作系统进行学习。不要一开始就学习几种操作系统,理解了基本原理,实践中确有实际需要再学习也不迟。人总是要不断学习的。

⑨关于汇编语言与C语言的取舍。随着:MCU对C编译的优化支持,对于汇编语言可以只了解几个必要的语句,而直接使用C语言编程。但必须通过第一个程序理解芯片初始化过程、中断机制、程序存储情况等,区别于PC机程序的内容。另外,为了测试的需要,最好掌握一门PC机编程语言。

⑩要明确自己的学习目的,并注意学习方法。要明确学习目的是打基础,还是为了适应工作需要而进行的短训。学习方法方面,要g学根据习目的选择合适的学习途径,注意理论学习与实践、通用知识与芯片相关知识、硬件知识与软件知识的平衡,要在理解软件工程基本原理基础上理解硬件构件与软件构件等基本概念。

当然,以上只是基础阶段的学习建议。要成为良好的嵌入式系统设计师,还需要在实际项目中锻炼,并不断学习与积累经验。

换一批

延伸阅读

[真心话] 物联网时代如何做嵌入式

物联网时代如何做嵌入式

随着物联网时代的来临,数据的流通、收集、分析显得越来越重要。在IdoSarig看来,主要做的事情在于保障数据在物联网里的双向流通,不仅是将底层的数据采集、传输至云端处理并分析,同样还需要将处理指令反馈至终端设......

关键字:物联网 嵌入式

[猎聘集] 嵌入式应用愈发广泛 就业前景可观

嵌入式应用愈发广泛 就业前景可观

近年来,智能硬件铺天盖地的出现,让人们彻底改变了过去对嵌入式系统应用的认识。嵌入式人才的就业方向,前景尤为可观。......

关键字:嵌入式 就业前景 可观

[新鲜事] 应届生就业,考研,培训该何去何从?

应届生就业,考研,培训该何去何从?

数据显示,今年全国高校毕业生人数近750万,比被称为史上“最难就业季”的2014年又增加了22万人,在这样竞争激烈的就业形势下,不少应届生都表示无可奈何。对于大三大四的学生来说,毕业以后是该马上找工......

关键字:应届生 考研 嵌入式

[猎聘集] 优秀嵌入式DSP工程师是怎样炼成的?

优秀嵌入式DSP工程师是怎样炼成的?

1、工作多年,总结您的经验和工作经历,您最想与想要或已经从事嵌入式电子行业新人说的话是什么?我当初进入DSP领域,是一个师兄的带领下进入的,但是我初学不久,他就离开学校,开始工作,因此我的DSP学习也暂时结束......

关键字:DSP工程师 嵌入式

[新鲜事] 嵌入式工程师明年遭遇的最大技术挑战是什么?

嵌入式工程师明年遭遇的最大技术挑战是什么?

嵌入式工程师开发者们一直关注着其开发团队的技术水平的提高,以改善项目交期。最近,最新一期嵌入式市场研究对1704名工程师就其工作环境、应用、处理方法、操作系统和芯片使用等进行深入调查。2012年调查表明42%的工......

关键字:嵌入式工程师

[新鲜事] 苹果三星力劝运营商用e-SIM技术 弃用实体SIM卡

苹果三星力劝运营商用e-SIM技术 弃用实体SIM卡

据《金融时报》报道,苹果与三星正在积极劝说运营商以配合研发和使用全新SIM卡标准。此类新型SIM卡将采用嵌入式技术(后称e-SIM),能让移动设备更方便地在不同运营商网络间进行切换。e-SIM在出厂时会被预装在设备里,由于本身并不锁定于某个......

关键字:运营商 金融时报 三星 嵌入式 技术

[行业资讯] 麒麟970或将联手寒武纪,抓住AI“芯”机会

麒麟970或将联手寒武纪,抓住AI“芯”机会

人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。人工智能从诞生以来,理论和技术日益成熟,应用领域也不断扩大......

关键字:AI手机芯片 麒麟970 嵌入式IP

[行业资讯] NVMe有资格成为物联网时代的“当家花旦”吗?

NVMe有资格成为物联网时代的“当家花旦”吗?

随着物联网进入边缘分析和自动驾驶领域,对于更高频宽和更低延迟的需求日益提高,届时也将会是明确需要NVM Express发挥作用的转型期… ......

关键字:嵌入式 NVMe 物联网

[行业资讯] 从操作系统层面,窥探IoT时代商机

从操作系统层面,窥探IoT时代商机

随着终端发展,物联网的发展速度将进一步提升,预计未来2-3年,物联网在中国的发展将迎来突破性机遇。如智能抄表取代人工抄表、智能环境监测取代人工考察、监控摄像头节约人......

关键字:NB-IoT Liteos 物联网 嵌入式

[行业资讯] 宜鼎 Embedded World 2017:软硬结合,打造仿真模拟新体验

宜鼎 Embedded World 2017:软硬结合,打造仿真模拟新体验

嵌入式电子与工业电脑应用展(Embedded World)是全球最具影响力的、也是全球规模最大的嵌入式系统展览会,3月14日将于德国,纽伦堡隆重召开。作为全球工业存储技术领导厂商,宜鼎国际(InnoDisk)顶着2017台湾精品奖的光环,......

关键字:嵌入式 软硬接口 仿真模拟

[行业资讯] 嵌入式技术和物联网产业发展研讨会将在深圳召开

嵌入式技术和物联网产业发展研讨会将在深圳召开

嵌入式技术和物联网发展迅速,嵌入式技术在巩固传统的应用基础上,探索新兴市场的应用,物联网(IoT)无疑是其中最具有广泛性的应用目标。嵌入式技术和物联网发生了许多变化......

关键字:嵌入式 物联网

[疯狂史] 黄明威:一个从阿里离开后又回来的人

黄明威:一个从阿里离开后又回来的人

阿里人”这三个字,黄明威如今背了14年,也自豪了14年。如果不是中途下了“车”,那就是足足的18年了。......

关键字:黄明威 阿里巴巴
条评论

我 要 评 论

网友评论

大家都爱看

  • 华为的优势,就是自家的各种自研芯片

    CPU即中央处理器,是一块超大规模的集成电路,是一台计算机的运算核心和控制核心。它的功能主要是解释计算机指令以及处理计算机软件中的数据。

    2017-08-16
  • 你不知道Ryzen芯片有多火?来看看AMD的股票吧

    据外媒报道,美银美林认为,AMD最新的Ryzen芯片可能会引发一波销售浪潮,进而推动该股继续上涨。它认为AMD股票还有40%以上的上涨空间。

    2017-08-16
  • 国产芯片:厚积薄发,强势崛起

    关于国产芯片,是近几年才有崛起的势头,可是在几年之前,国产芯片还处于“沉睡”的状态,尤其是手机芯片,几乎大部分都依赖进口,而且国外的市场几乎被高通和联发科所垄断,也就展讯还在市场边…

    2017-08-16
  • 为了数据安全 大疆无人机增加隐私飞行功能

    大疆周一表示,在美国陆军因为“网络缺陷”而要求其成员停用大疆无人机后,这家中国无人机制造商将加强无人机的数据安全性。 大疆政策和法务副总裁布伦丹&middot…

    2017-08-15
  • Intel代工 展讯发布14nm SC9853I手机SoC

    SC9853I采用的Intel的14nm FinFET制程,架构为8核64位Airmont架构,主频1.8GHz,GPU为Mali-T820 MP2,号称面向799~1299元档次的手机。…

    2017-08-15