课程详情
课程评价
spContent=嵌入式系统是嵌入式人工智能与物联网的重要基础,该课程以ARM Cortex-M微处理器为蓝本,以软硬件构件为主线,基于嵌入式软件工程基本原理,按照"通用知识—驱动构件使用方法—测试实例—芯片编程结构—构件设计方法”的线条,逐步阐述嵌入式系统基本知识要素及较为规范的底层软硬件相结合的设计方法。
—— 课程团队
课程概述

课程简介:

本课程是计算机科学与技术、物联网工程、电子信息等专业的重要技术类课程。嵌入式计算机系统简称为嵌入式系统,其概念最初源于传统测控系统对计算机的需求,是不以计算机面目出现的“计算机”,这个计算机系统隐含在各类具体的产品之中,在这些产品中,计算机程序起到了重要作用。其应用范围可以粗略分为两大类:一类是电子系统智能化(如工业控制、汽车电子、家用电器、物联网应用、嵌入式人工智能等),这类应用也被称为微控制器MCU领域,从形态上看,更类似于早期的电子系统,但内部计算程序起核心控制作用。另一类是计算机应用的延伸(如平板电脑、手机等),这类应用也被称为应用处理器MAP领域。

从学习与开发角度,微控制器MCU是学习嵌入式系统的入门环节,且为重要的一环,它注重软件硬件协同,注重底层硬件接口、驱动及软硬件密切结合的开发调试技能等。应用处理器MAP更接近通用计算机系统,学习与开发方式也类似于通用计算机。从学习规律角度看,若是要全面学习掌握嵌入式系统,应该先学习掌握微控制器,然后在此基础上,进一步学习实时操作系统、嵌入式操作系统、应用处理器软件开发等,而不要倒过来学习。

微控制器是嵌入式人工智能、工业物联网的“大脑”,是嵌入式系统的技术核心。本课程按照“入门时间较快、硬件成本较少,软硬件资料规范、知识要素较多,学习难度较低”的基本原则,选择流行的32ARM Cortex-M系列微处理器为蓝本,以嵌入式硬件构件及底层软件构件设计为主线,基于嵌入式软件工程的思想,按照“通用知识—驱动构件使用方法—测试实例—芯片编程结构—构件的设计方法”的线条,逐步阐述电子系统智能化嵌入式应用的软件与硬件设计。使读者逐步掌握嵌入式系统的基本知识要素、基本原理与设计方法,获得嵌入式系统的基本脉络,打好软硬设计基础,逐步学会电子系统智能化嵌入式应用的软硬件设计,强化实践训练。

本课程教学用书《嵌入式技术基础与实践(第6版)—基于STM32L431微控制器》,该教材历经十多年凝练,仔细梳理了嵌入式系统的通用基础知识要素,注重把握通用知识与芯片相关知识之间的平衡、把握硬件与软件的关系、对底层驱动进行构件化封装、设计合理的测试用例,教材内含简明实验套件,结合网上电子资源,方便读者进行实践与应用。


《嵌入式技术基础与实践(第6版)》(王宜怀主编)

【书内含通用嵌入式计算机GEC,型号:AHL-STM32L431,可完成书中基本实验】

教材内含开发套件图片:



电子资源下载地址及路径:

“http://sumcu.suda.edu.cn/”“金葫芦专区”→“嵌入式书6版”,右边为下载索引


   


授课目标

本课程教学目的在于通过“通用知识—驱动构件使用方法—测试实例—芯片编程结构—构件的设计方法”的线条,使学生逐步掌握嵌入式系统的基本概念、基本原理与设计方法,获得嵌入式系统的基本脉络,打好嵌入式系统软硬设计的基础,逐步学会电子系统智能化嵌入式应用的软件与硬件设计,强化实践训练。

课程大纲
预备知识

必须具备以下知识:

1.计算机硬件基础(或模拟电路与数字电路、计算机组成、汇编语言、微机原理)

2. 高级程序语言设计等(如C语言)

学生通过学习上述课程,基本掌握构成计算机的基本部件原理,掌握计算机高级程序设计方法,为从寄存器级理解软件干预硬件提供基础。


参考资料

[1]  Free Software Foundation Inc.Using as The GNU Assembler [Z]. Version2.11.90.[S.1]: [s.n.]2012.

[2]  NATO Communications and Information Systems Agency. NATO Standard for Development of Reusable Software Components[S].[S.1.]: [s.n.]1991.

[3]  Arm. Armv7-M Architecture Reference Manual[Z].[S.1.]: [s.n.]2014.

[4]  Arm. Arm Cortex‑M4 Processor Technical Reference Manual Revision r0p1[Z].[S.1.]: [s.n.]2015.

[5]  Arm. Cortex-M4 Devices Generic User Guide[Z].[S.1.]: [s.n.]2010.

[6]  Randal E.Bryant and David R.O’Hallaron. Computer systems: a programmer’s perspective(Third edition)[M]. Carnegie Mellon. University. 2016.

[7]  ST. STM32L431xx Datasheet Rev.3[Z].[S.1.]: [s.n.]2018.

[8]  ST. STM32L4xx Reference manual Rev.4[Z].[S.1.]: [s.n.]2018.

[9]  Joseph Yiu. Arm Cortex-M3Cortex-M4权威指南[M]. 吴常玉,曹孟娟,王丽红,译.3. 北京:清华大学出版社,2015.

[10] 王宜怀,吴瑾,文瑾.嵌入式技术基础与实践—ARM Cortex-M0+KL系列微控制器[M].4. 北京:清华大学出版社,2017.

[11] 王宜怀,许粲昊,曹国平. 嵌入式技术基础与实践—基于Arm-Cortex-M4F内核的MSP432系列微控制器[M].5. 北京:清华大学出版社,2019.

[12] 王宜怀张建刘辉. 窄带物联网NB-IoT应用开发共性技术[M]. 北京:电子工业出版社,2019.

[13] 王宜怀,李跃华.汽车电子KEA系列微控制器[M]. 北京:电子工业出版社,2015

[14] Jack GanssleThe Art of Designing Embedded Systems[M].2版.北京:人民邮电出版社,2009.

[15] 上海睿赛德电子科技有限公司. RT-THREAD 编程指南[Z].[S.1.]: [s.n.]2019.

[16] 王宜怀,刘长勇,帅辉明. 窄带物联网技术基础与应用[M]. 北京:人民邮电出版社2020.

常见问题

1.学习本课程有什么用?

      本课程为软硬件结合,理论紧密联系实践的一门程序开发课程,学习本课程有利于加强软硬件相结合开发的学习,有利于提高动手编程的能力。本课程力图利用构件阐述嵌入式通用基础,为嵌入式人工智能打好底层软件基础。

2.学习本课程需要什么基础?

      学习本课程需要具备C语言,计算机基础操作,具备一定的电子线路知识。

3.本课程主要学习什么内容?

     本课程以MCU为核心的嵌入式技术基础与实践。要完成一个以MCU为核心的嵌入式系统应用产品设计,需要有硬件、软件及行业领域相关知识。硬件主要有MCU的硬件最小系统、输入/输出外围电路、人机接口设计。软件设计有固化软件的设计,也可能含PC机软件的设计。

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

(1)硬件最小系统(包括电源、晶振、复位、写入调试器接口等);

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

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

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

(5)通信(串行通信接口UART、串行外设接口SPI、集成电路互联总线I2C等);

(6)显示(LED、LCD、触摸屏等);

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

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

(9)各种具体应用。

4.嵌入式系统学习困惑1-选择操作系统:NOS,RTOS或EOS

      首先把嵌入式系统软件与硬件基础打好了,再根据实际应用需要,选择一种实时操作系统(RTOS)进行实践。RTOS是开发某些嵌入式产品的辅助工具,是手段,不是目的。况且一些小型微型嵌入式产品并不需要RTOS。所以,一开始就学习RTOS,并不符合“由浅入深、循序渐进”的学习规律。

5.嵌入式系统学习困惑2-选择入门芯片:是微控制器还是微处理器?

      选择一个较典型的微控制器作为入门芯片,且从不带操作系统(No Operating System,NOS)学起,由浅入深,逐步推进。

6.嵌入式系统学习困惑3-硬件与软件:如何平衡?

       嵌入式系统设计是一个软件、硬件协同设计工程,不能像通用计算机那样,软件、硬件完全分开来看,要在一个大的框架内协调工作。

       要想成为一名真正的嵌入式系统设计师,在初学阶段,必须重视打好嵌入式系统的硬件与软件基础。嵌入式系统与硬件紧密相关,是软件与硬件的综合体,没有对硬件的理解就不可能写好嵌入式软件,同样没有对软件的理解也不可能设计好嵌入式硬件。