hi,小慕
嵌入式系统及应用
第17次开课
开课时间: 2025年02月24日 ~ 2025年06月22日
学时安排: 4
进行至第6周,共17周 已有 339 人参加
立即参加
课程详情
课程评价(207)
spContent=嵌入式系统是嵌入式人工智能与物联网的重要基础,该课程以ARM Cortex-M微处理器为蓝本,以软硬件构件为主线,基于嵌入式软件工程基本原理,按照"通用知识—驱动构件使用方法—测试实例—芯片编程结构—构件设计方法”的线条,逐步阐述嵌入式系统基本知识要素及较为规范的底层软硬件相结合的设计方法。
嵌入式系统是嵌入式人工智能与物联网的重要基础,该课程以ARM Cortex-M微处理器为蓝本,以软硬件构件为主线,基于嵌入式软件工程基本原理,按照"通用知识—驱动构件使用方法—测试实例—芯片编程结构—构件设计方法”的线条,逐步阐述嵌入式系统基本知识要素及较为规范的底层软硬件相结合的设计方法。
—— 课程团队
课程概述

课程简介:

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

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

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

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

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

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

教材内含开发套件图片:

教材可在 当当、京东等网络销售平台上购买。

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

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

  

显示全部
授课目标

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

课程大纲
概述
课时目标:【目的要求】初识一个嵌入式系统,了解微型嵌入式系统的基本概况与发展简史、分类及特点;了解嵌入式系统知识体系及学习方法;了解嵌入式系统常用术语。【重点难点】嵌入式系统的特点及知识体系、嵌入式系统常用术语
1.1 初识嵌入式系统
1.2 嵌入式系统的定义、发展简史、分类及特点
1.3 嵌入式系统的学习困惑、知识体系及学习建议
1.4 微控制器与应用处理器简介
1.5 嵌入式系统常用术语
ARM Cortex-M4微处理器
课时目标:【目的要求】理解寻址方式,理解基本指令系统,记住几个简单指令;归纳基本指令的理解方法;通过汇编环境了解指令对应的机器码,直观的基本理解助记符与机器指令的对应关系。【重点难点】归纳基本指令的理解方法、基本理解助记符与机器指令的对应关系;汇编语言的基本语法
2.1 ARM Cortex-M4微处理器简介
2.2 寻址方式与机器码的获取方法
2.3 基本指令分类解析
2.4 汇编语言的基本语法
存储器映像、中断源与硬件最小系统
课时目标:【目的要求】理解MCU的硬件最小系统,理解CPU中的寄存器,理解微型计算机的存储器映像,以通用嵌入式计算机GEC为例,理解硬件最小系统及软件最小系统的构件化设计方法。【重点难点】从哪里入手认识一个新的MCU,MCU的硬件最小系统、CPU中的寄存器、存器器映像、GEC
3.1 STM32L系列MCU概述
3.2 STM32L4的引脚图与硬件最小系统
3.3 由MCU构建通用嵌入式计算机
GPIO及程序框架
课时目标:【目的要求】理解工程框架及各部分作用;理解第一个程序的运行过程;理解软件干预硬件的基本方法;通过实例完成第一个工程的入门,学会下载程序与调试程序的基本方法【重点难点】第一个程序的运行过程;GPIO构件;第一个汇编语言工程
4.1 GPIO通用基础知识
4.2 软件干预硬件的方法
4.3 认识工程框架
4.4 GPIO构件的制作过程
4.5 第一个汇编语言工程:控制小灯闪烁
4.6 实验一 熟悉实验开发环境及GPIO编程
嵌入式硬件构件与底层驱动构件基本规范
课时目标:【目的要求】理解软件构件基本概念及构件设计中所需遵循的基本原则;理解硬件构件及底层软件构件的重用与移植方法。【重点难点】底层驱动构件的封装规范;理解可移植与可复用的重要性,如何做到可移植与可复用
5.1 嵌入式硬件构件
5.2 嵌入式底层驱动构件的概念与层次模型
5.3 底层驱动构件的封装规范
5.4 硬件构件及其驱动构件的复用与移植方法
串行通信模块及第一个中断程序结构
课时目标:【目的要求】了解串行通信的基本原理,了解UART驱动构件使用及设计方法;掌握ARM Cortex-M4中断机制及STM32L431中断编程步骤。【重点难点】UART驱动构件使用及设计方法、中断的产生,中断处理函数的作用,学会处理其他中断的方法。
6.1 异步串行通信的通用基础知识
6.2 基于构件的串行通信编程方法
6.3 UART构件的制作过程
6.4 中断机制及中断编程步骤
6.5 实验二 串口通信及中断实验
定时器相关模块
课时目标:【目的要求】理理解定时接口模块的输入捕捉功能、输出比较功能、脉宽调制输出功能并了解其基本原理。掌握定时器的各种不同的使用方法,并学会将这些方法运用到具体的应用中。【重点难点】定时器的各种不同的使用方法,脉宽调制输出的编程方法。
7.1 定时器通用基础知识
7.2 STM32L431中的定时器
7.3 脉宽调制
7.4 输入捕捉与输出比较
7.5 实验三 定时器及PWM实验
Flash在线编程、ADC与DAC
课时目标:【目的要求】理解并掌握Flash在线编程、模/数转换ADC、模/数转换DAC的基本原理与编程方法。【重点难点】Flash在线编程以扇区为单位,跨扇区处理问题;模/数转换的技术指标;模/数转换的滤波问题与物理量回归问题。
8.1 Flash在线编程
8.2 ADC
8.3 DAC
8.4 实验四 ADC实验
SPI、I2C与TSC模块
课时目标:【目的要求】理解并掌握串行外设接口SPI、集成电路互联总线I2C和触摸感应输入TSC模块的基本原理与编程方法。【重点难点】SPI的相位及极性设置问题;I2C的通信技术要点;TSC的基本原理。
9.1 串行外设接口SPI模块
9.2 集成电路互联总线I2C模块
9.3 触摸感应控制器TSC模块
9.4 实验五 SPI通信实验
CAN总线、DMA与位带操作
课时目标:【目的要求】理解并掌握CAN总线、DMA与位带操作的基本原理与编程方法。【重点难点】CAN的原理性电路与基础实践。
10.1 CAN总线
10.2 DMA
10.3 位带操作
系统时钟与其他功能模块
课时目标:【目的要求】理解时钟系统与看门狗模块基本原理与编程方法;了解其他模块【重点难点】时钟系统与看门狗模块基本原理与编程方法。
11.1 时钟系统
11.2 复位模块与看门狗模块
11.3 电源控制模块与CRC校验模块
11.4 实验六 综合实验
应用案例
课时目标:【目的要求】了解嵌入式系统的基本应用,理解学习深度与广度的关系,认识到学无止境。【重点难点】实际嵌入式系统的开发的复杂性。
12.1 嵌入式系统稳定性问题
12.2 外接传感器及执行部件的编程方法
12.3 实时操作系统的简明实例
12.4 嵌入式人工智能的简明实例
12.5 NB-IoT的应用简介
12.6 4G、Cat1、Wi-Fi及WSN的应用
展开全部
预备知识

必须具备以下知识:

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-硬件与软件:如何平衡?

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

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

苏州大学
3 位授课老师
王宜怀

王宜怀

教授、博士生导师

张建

张建

副教授

刘长勇

刘长勇

副教授

推荐课程

【DeepSeek适用】小白玩转AI大模型应用开发

林粒粒

196人参加

小白玩转 Python 数据分析

林粒粒

75人参加
下载
下载

下载App