《嵌入式系统设计》课程教学大纲 课程名称:嵌入式系统设计 课程代码:TELE2131 课程学分:2.5 课程名称(中/英):嵌入式系统设计/Embedded System Design 课程学时:27 实验学时:27 课程性质:大类专业课程 开课学期:第6学期 适用专业:电子信息工程、通信工程、电子科学与技术等专业 先修课程:微机原理与接口技术、数字电路、C语言程序设计 后续课程:毕业设计 开课单位:电子信息学院 课程负责人: 大纲执笔人:邓晶 大纲审核人: 一、 课程性质和教学目标(在人才培养中的地位与性质及主要内容,指明学生 需掌握知识与能力及其应达到的水平) 课程性质:嵌入式系统设计是电子信息类专业一门重要的专业选修课程。本课程是一门实践性 很强的课程,课程以理论教学与实验教学并重的方式,培养学生嵌入式技术方面的软硬件设计 能力,并通过该课程的学习扩大学生知识面,为今后的研究和技术工作打下坚实的基础。 教学目标:嵌入式系统设计以ST公司的32位基于ARM Cortex-M3内核的STM32单片机为例, 介绍嵌入式系统的定义、特点和发展:ARM Cortex-M3体系结构:STM32程序设计与片上外围 资源等,通过理论学习、实验、综合设计等环节,使学生了解嵌入式系统的发展状况和应用领 域,掌握嵌入式系统的硬件设计、软件设计和系统综合设计能力,培养学生利用本课程分析和 解决实际问题的能力,为今后从事嵌入式系统方面的应用与研究打下基础。本课程的具体教学 目标如下: 1、掌握嵌入式系统的基础知识:学习ARM Cortex-M3体系结构:学习STM32MCU的结构、STM32 最小系统、片内外设资源和外部引脚,学习嵌入式系统硬件分析和设计方法:【1-2】 2、学习STM32MCU的软件开发技术,掌握利用嵌入式C语言设计STM32程序的方法:【1-2】 3、学习嵌入式系统硬件设计技术,掌握STM32最小系统硬件和外围扩展单元设计,并能够综 合运用嵌入式系统软件和硬件设计技术解决实际工程问题,并能够根据需求设计基于STM32 MCU的嵌入式系统的解决方案:【3-1】 4、学习ARM Kei1集成开发环境的使用方法,熟练使用STM32MCU开发板,并在此基础上完成 规定的必修实验,设计综合性实验。【5-2】
《嵌入式系统设计》课程教学大纲 课程名称:嵌入式系统设计 课程代码:TELE2131 课程学分:2.5 课程名称(中/英):嵌入式系统设计 / Embedded System Design 课程学时:27 实验学时:27 课程性质:大类专业课程 开课学期:第 6 学期 适用专业:电子信息工程、通信工程、电子科学与技术等专业 先修课程:微机原理与接口技术、数字电路、C 语言程序设计 后续课程:毕业设计 开课单位:电子信息学院 课程负责人: 大纲执笔人:邓晶 大纲审核人: 一、 课程性质和教学目标(在人才培养中的地位与性质及主要内容,指明学生 需掌握知识与能力及其应达到的水平) 课程性质:嵌入式系统设计是电子信息类专业一门重要的专业选修课程。本课程是一门实践性 很强的课程,课程以理论教学与实验教学并重的方式,培养学生嵌入式技术方面的软硬件设计 能力,并通过该课程的学习扩大学生知识面,为今后的研究和技术工作打下坚实的基础。 教学目标:嵌入式系统设计以 ST 公司的 32 位基于 ARM Cortex﹣M3 内核的 STM32 单片机为例, 介绍嵌入式系统的定义、特点和发展;ARM Cortex﹣M3 体系结构;STM32 程序设计与片上外围 资源等,通过理论学习、实验、综合设计等环节,使学生了解嵌入式系统的发展状况和应用领 域,掌握嵌入式系统的硬件设计、软件设计和系统综合设计能力,培养学生利用本课程分析和 解决实际问题的能力,为今后从事嵌入式系统方面的应用与研究打下基础。本课程的具体教学 目标如下: 1、 掌握嵌入式系统的基础知识;学习 ARM Cortex﹣M3 体系结构;学习 STM32 MCU 的结构、STM32 最小系统、片内外设资源和外部引脚,学习嵌入式系统硬件分析和设计方法;【1-2】 2、 学习 STM32 MCU 的软件开发技术,掌握利用嵌入式 C 语言设计 STM32 程序的方法;【1-2】 3、 学习嵌入式系统硬件设计技术,掌握 STM32 最小系统硬件和外围扩展单元设计,并能够综 合运用嵌入式系统软件和硬件设计技术解决实际工程问题,并能够根据需求设计基于 STM32 MCU 的嵌入式系统的解决方案;【3-1】 4、 学习 ARM Keil 集成开发环境的使用方法,熟练使用 STM32 MCU 开发板,并在此基础上完成 规定的必修实验,设计综合性实验。【5-2】
二、 课程目标与毕业要求的对应关系(明确本课程知识与能力重点符合标 准哪几条毕业要求指标点)(1.2,3.1,5.2) 毕业要求 指标点 课程目标 1-2能针对电子信息领域的具体对象建立数 教学目标1、2 1、工程知识 学模型并求解,并具备对工程问题进行软硬 件分析与设计的基本能力。 3、设计/开发解决方 3-1能利用专业知识,根据给定的设计指标, 教学目标3 案 设计电子信息领域的单元或过程。 5-2能够选择与使用恰当的仪器、信息资源、 5、使用现代工具 工程工具和专业模拟软件,对复杂工程问题 教学目标4 进行分析,计算与设计。 三、 课程教学内容及学时分配(含课程教学、自学、作业、讨论等内容和要 求,指明重点内容和难点内容)(重点内容:★;难点内容:△) 1、嵌入式系统概述(3学时)(支撑课程目标1、4) 1.1嵌入式系统的基本概念 1.2嵌入式系统的发展、特点和分类 1.3ARM体系结构简介、STM32系列微控制器简介 1.4STM32教学开发板介绍 ☆目标及要求: 1)通过嵌入式系统概述的介绍,使学生掌握嵌入式系统的概念、主要特点、分类和发 展★: 2)了解ARW体系结构和STM32系列微控制器: 3)熟悉STM32教学开发板: 令作业内容: 熟悉STM32教学开发板的电路原理图,各模块的工作原理。 ◇讨论内容: 讨论ARM Cortex-M3系列微处理器的特点和应用,突出嵌入式系统在通信领域和日常 生活中的应用。 令自学拓展: 回顾学过的微机原理与接口技术和数字电路相关知识,复习C语言程序设计方法。 2、STM32MCU的结构与工作原理(6学时)(支撑课程目标1、4) 1.1STM32MCU概述 1.2STM32存储器的组织与映射 1.3STM32MCU的时钟 1.4ST32最小系统 1.5ST32MCU的片上外围资源 ◇目标及要求: 1)通过STM32MCU结构与工作原理的介绍,使得学生掌握其硬件结构,包括CPU组成
二、 课程目标与毕业要求的对应关系(明确本课程知识与能力重点符合标 准哪几条毕业要求指标点)(1.2, 3.1,5.2) 毕业要求 指标点 课程目标 1、工程知识 1-2 能针对电子信息领域的具体对象建立数 学模型并求解,并具备对工程问题进行软硬 件分析与设计的基本能力。 教学目标 1、2 3、设计/开发解决方 案 3-1 能利用专业知识,根据给定的设计指标, 设计电子信息领域的单元或过程。 教学目标 3 5、使用现代工具 5-2 能够选择与使用恰当的仪器、信息资源、 工程工具和专业模拟软件,对复杂工程问题 进行分析,计算与设计。 教学目标 4 三、 课程教学内容及学时分配(含课程教学、自学、作业、讨论等内容和要 求,指明重点内容和难点内容)(重点内容:;难点内容:) 1、 嵌入式系统概述(3 学时)(支撑课程目标 1、4) 1.1 嵌入式系统的基本概念 1.2 嵌入式系统的发展、特点和分类 1.3 ARM 体系结构简介、STM32 系列微控制器简介 1.4 STM32 教学开发板介绍 目标及要求: 1) 通过嵌入式系统概述的介绍,使学生掌握嵌入式系统的概念、主要特点、分类和发 展; 2) 了解 ARM 体系结构和 STM32 系列微控制器; 3) 熟悉 STM32 教学开发板; 作业内容: 熟悉 STM32 教学开发板的电路原理图,各模块的工作原理。 讨论内容: 讨论 ARM Cortex﹣M3 系列微处理器的特点和应用,突出嵌入式系统在通信领域和日常 生活中的应用。 自学拓展: 回顾学过的微机原理与接口技术和数字电路相关知识,复习 C 语言程序设计方法。 2、 STM32 MCU 的结构与工作原理(6 学时)(支撑课程目标 1、4) 1.1 STM32 MCU 概述 1.2 STM32 存储器的组织与映射 1.3 STM32 MCU 的时钟 1.4 STM32 最小系统 1.5 STM32 MCU 的片上外围资源 目标及要求: 1) 通过 STM32 MCU 结构与工作原理的介绍,使得学生掌握其硬件结构,包括 CPU 组成
与工作方式、存储系统、片内外设和外部引脚等相关知识★: 2)掌握STM32MCU存储器的组织与映射△: 3)了解STM32MCU时钟系统与内部资源: 4)熟悉和掌握STM32MCU最小系统的设计★。 ◇作业内容: 强化STM32MCU最小系统的设计,STM32MCU存储器的组织与映射。 女讨论内容: 讨论STM32MCU三种启动模式对存储器的影响,讨论STM32 Bootloader的作用。 女自学拓展: 回顾所学微机原理与接口技术和数字电路相关知识,查阅ST32MCU数据手册。 3、STM32程序设计(3学时)(支撑课程目标2、4) 1.1嵌入式软件层次结构 1.2 ARM Cortex微控制器软件接口标准 1.3STM32固件库及应用 1.4嵌入式C程序的特点 1.5 ARM Kei1集成开发环境简介 ◇目标及要求: 1)了解嵌入式软件的层次结构: 2)熟悉基于CMSIS标准的软件架构; 3)熟悉和掌握常用的STM32固件函数库及应用★: 4)熟练使用ARM Keil集成开发工具★: 令作业内容: 在KeilμVision4中建立一个工程文件,添加必要的STM32相关文件,编译、运行、 通过。 令讨论内容: 通过嵌入式C程序的特点,讨论软件的代码效率问题,即代码容量大小和代码执行速 度。分析若编程时遇到单片机ROM和RAM不够用时,应如何解决? ◇自学拓展: 回顾学过的C语言程序设计相关知识,查阅ST公司提供的利用C语言开发ST32固件 库的相关文档。 4、GPI0原理及应用(3学时)(支撑课程目标3、4) 1.1GPI0的硬件结构和功能 1.2GPI0寄存器 1.3GPI0库函数 1.4GPI0应用举例 ☆目标及要求: 1)了解STM32 MCU GPI0端口的硬件结构、主要功能和工作模式★: 2)了解与STM32 MCU GPI0端口相关的寄存器,熟悉其配置流程和配置方法★; 3)熟悉和掌握STM32 MCU GPI0常用库函数的使用: 4)使用STM32 MCU GPI0端口输出控制LED指示灯单灯和多灯闪烁: 令作业内容: 结合STM32 MCU GPI0的相关知识,编写LED指示灯单灯和多灯闪烁程序,在STM32开
与工作方式、存储系统、片内外设和外部引脚等相关知识; 2) 掌握 STM32 MCU 存储器的组织与映射; 3) 了解 STM32 MCU 时钟系统与内部资源; 4) 熟悉和掌握 STM32 MCU 最小系统的设计。 作业内容: 强化 STM32 MCU 最小系统的设计,STM32 MCU 存储器的组织与映射。 讨论内容: 讨论 STM32 MCU 三种启动模式对存储器的影响,讨论 STM32 Bootloader 的作用。 自学拓展: 回顾所学微机原理与接口技术和数字电路相关知识,查阅 STM32 MCU 数据手册。 3、 STM32 程序设计(3 学时)(支撑课程目标 2、4) 1.1 嵌入式软件层次结构 1.2 ARM Cortex 微控制器软件接口标准 1.3 STM32 固件库及应用 1.4 嵌入式 C 程序的特点 1.5 ARM Keil 集成开发环境简介 目标及要求: 1) 了解嵌入式软件的层次结构; 2) 熟悉基于 CMSIS 标准的软件架构; 3) 熟悉和掌握常用的 STM32 固件函数库及应用; 4) 熟练使用 ARM Keil 集成开发工具; 作业内容: 在 Keil μVision4 中建立一个工程文件,添加必要的 STM32 相关文件,编译、运行、 通过。 讨论内容: 通过嵌入式 C 程序的特点,讨论软件的代码效率问题,即代码容量大小和代码执行速 度。分析若编程时遇到单片机 ROM 和 RAM 不够用时,应如何解决? 自学拓展: 回顾学过的 C 语言程序设计相关知识,查阅 ST 公司提供的利用 C 语言开发 STM32 固件 库的相关文档。 4、 GPIO 原理及应用(3 学时)(支撑课程目标 3、4) 1.1 GPIO 的硬件结构和功能 1.2 GPIO 寄存器 1.3 GPIO 库函数 1.4 GPIO 应用举例 目标及要求: 1) 了解 STM32 MCU GPIO 端口的硬件结构、主要功能和工作模式; 2) 了解与 STM32 MCU GPIO 端口相关的寄存器,熟悉其配置流程和配置方法; 3) 熟悉和掌握 STM32 MCU GPIO 常用库函数的使用; 4) 使用 STM32 MCU GPIO 端口输出控制 LED 指示灯单灯和多灯闪烁; 作业内容: 结合 STM32 MCU GPIO 的相关知识,编写 LED 指示灯单灯和多灯闪烁程序,在 STM32 开
发板上实现LED灯的流水灯效果。 女讨论内容: 讨论当GPI0端口设置为输入时在不同条件下输入模式的选择,当GPI0端口设置为输 出时在不同条件下输出模式的选择和输出速度的选择。 自学拓展: 回顾学过的C语言程序设计的相关知识,复习C语言程序的调试和分析方法。 5、ExIT原理及应用(3学时)(支撑课程目标3、4) 1.1STM32中断通道 1.2ST32中断过程 1.3NVIC硬件结构及软件配置 1.4EXIT硬件结构及软件配置 1.5EXIT应用举例 ◇目标及要求: 1)了解和熟悉STM32MCU中断系统的特点、中断向量表的概念: 2)了解和熟悉ST32MCU中断的过程、中断优先级、中断嵌套的规则★: 3)熟悉和掌握EXTI配置、NWIC配置、中断服务程序的编写,外部中断控制的应用★。 令作业内容: 结合EXIT外部中断知识,编写EXIT外部中断处理程序,在ST32开发板上实现由按 键控制触发外部中断导致LED灯的状态改变。 ◇讨论内容: 讨论ST32中断优先级中占先优先级和副优先级差异与联系,以及优先级的设置:讨 论STM32EXTI中断通道和中断源的映射关系。 ◇自学拓展: 回顾学过的中断服务函数设计的相关知识,体会中断服务函数的调用与普通函数调用 的区别。 6、USART原理及应用(3学时)(支撑课程目标3、4) 1.1 USART功能和结构 1.2 USART帧格式、波特率设置 1.3 USART中断请求 1.4 USART寄存器与库函数 1.5 USART应用举例 女目标及要求: 1)了解和熟悉STM32 MCU USART的特点、功能、结构和工作过程★: 2)熟悉和掌握USART波特率的计算与设置: 3)熟悉和掌握USART寄存器的配置与库函数的使用★: ◇作业内容: 结合USART的知识,编写USART同步/异步串行通信程序,PC上位机通过串口下传一个 字符给STM32开发板,STM32开发板收到后再回传给PC上位机。 令讨论内容: 讨论TTL电平和RS232电平的差异,如何实现TTL和RS232电平之间的转换。 个自学拓展: 回顾学过的数字电路相关知识,复习电平转换、各种接口时序等知识
发板上实现 LED 灯的流水灯效果。 讨论内容: 讨论当 GPIO 端口设置为输入时在不同条件下输入模式的选择,当 GPIO 端口设置为输 出时在不同条件下输出模式的选择和输出速度的选择。 自学拓展: 回顾学过的 C 语言程序设计的相关知识,复习 C 语言程序的调试和分析方法。 5、 EXIT 原理及应用(3 学时)(支撑课程目标 3、4) 1.1 STM32 中断通道 1.2 STM32 中断过程 1.3 NVIC 硬件结构及软件配置 1.4 EXIT 硬件结构及软件配置 1.5 EXIT 应用举例 目标及要求: 1) 了解和熟悉 STM32 MCU 中断系统的特点、中断向量表的概念; 2) 了解和熟悉 STM32 MCU 中断的过程、中断优先级、中断嵌套的规则; 3) 熟悉和掌握 EXTI 配置、NVIC 配置、中断服务程序的编写,外部中断控制的应用。 作业内容: 结合 EXIT 外部中断知识,编写 EXIT 外部中断处理程序,在 STM32 开发板上实现由按 键控制触发外部中断导致 LED 灯的状态改变。 讨论内容: 讨论 STM32 中断优先级中占先优先级和副优先级差异与联系,以及优先级的设置;讨 论 STM32 EXTI 中断通道和中断源的映射关系。 自学拓展: 回顾学过的中断服务函数设计的相关知识,体会中断服务函数的调用与普通函数调用 的区别。 6、 USART 原理及应用(3 学时)(支撑课程目标 3、4) 1.1 USART 功能和结构 1.2 USART 帧格式、波特率设置 1.3 USART 中断请求 1.4 USART 寄存器与库函数 1.5 USART 应用举例 目标及要求: 1) 了解和熟悉 STM32 MCU USART 的特点、功能、结构和工作过程; 2) 熟悉和掌握 USART 波特率的计算与设置; 3) 熟悉和掌握 USART 寄存器的配置与库函数的使用; 作业内容: 结合 USART 的知识,编写 USART 同步/异步串行通信程序,PC 上位机通过串口下传一个 字符给 STM32 开发板,STM32 开发板收到后再回传给 PC 上位机。 讨论内容: 讨论 TTL 电平和 RS232 电平的差异,如何实现 TTL 和 RS232 电平之间的转换。 自学拓展: 回顾学过的数字电路相关知识,复习电平转换、各种接口时序等知识
7、定时器原理及应用(3学时)(支撑课程目标3、4) 1.1ST32定时器概述 1.2通用定时器TIMx功能和结构 1.3通用定时器TIMx寄存器和库函数 1.4通用定时器TIMx应用举例 ◇目标及要求: 1)了解和掌握STM32通用定时器的功能、结构与工作原理: 2)了解和掌握定时器寄存器的配置,定时时间的计算★: 3)了解和掌握定时器中断、定时器的计数模式★: 4)掌握STM32通用定时器的编程与应用。 ◇作业内容: 结合ST32通用定时器知识,编写定时器TIM2中断处理程序,在STM32开发板实现: 利用定时器TIM2产生中断,在中断服务程序中,LED指示灯以2Hz频率闪烁。 ☆讨论内容: 引入STM32定时器PWM的概念,讨论PWM的用途,如何编程实现PWM输出。 ◇自学拓展: 回顾微机原理与接口技术的相关知识,讨论如何利用STM32通用定时器实现电子时钟 的设计。 8、ADC原理及应用(3学时)(支撑课程目标3、4) 1.1ADC的功能及结构 1.2ADC的工作模式与中断 1.3ADC寄存器和库函数 1.4ADC应用举例 ◇目标及要求: 1)了解和掌握ST32ADC的硬件结构与工作原理: 2)了解和掌握STM32ADC的基本参数、功能与工作模式★: 3)了解和掌握ADC初始化配置、ADC中断与ADC编程★: ◇作业内容: 结合STM32ADC知识,在STM32开发板实现:在PB0端口连接一个可变电阻器,改变 分压值,编写ADC程序,每隔100ms读取一次ADC转换的结果,显示在显示器上。 女讨论内容: 讨论STM32内部温度传感器的特点与结构,如何编程实现环境温度的检测。 令自学拓展: 回顾微机原理与接口技术的相关知识,讨论如何利用STM32ADC进行数据采集系统的 设计。 9、实验(27学时)(支撑课程目标1,2,3,4) 序 实验项目 学时 实验 每组 必修/ 号 名称 目的要求 分配 类型 人数 选修 STM32程序 熟悉STM32教学开发板,熟悉STM32基本 的编写、调 固件库的应用,熟悉ST32软件开发环境, 3 验证性 1 必修 试和分析 用C语言编写并调试STM32程序
7、 定时器原理及应用(3 学时)(支撑课程目标 3、4) 1.1 STM32 定时器概述 1.2 通用定时器 TIMx 功能和结构 1.3 通用定时器 TIMx 寄存器和库函数 1.4 通用定时器 TIMx 应用举例 目标及要求: 1) 了解和掌握 STM32 通用定时器的功能、结构与工作原理; 2) 了解和掌握定时器寄存器的配置,定时时间的计算; 3) 了解和掌握定时器中断、定时器的计数模式; 4) 掌握 STM32 通用定时器的编程与应用。 作业内容: 结合 STM32 通用定时器知识,编写定时器 TIM2 中断处理程序,在 STM32 开发板实现: 利用定时器 TIM2 产生中断,在中断服务程序中,LED 指示灯以 2Hz 频率闪烁。 讨论内容: 引入 STM32 定时器 PWM 的概念,讨论 PWM 的用途,如何编程实现 PWM 输出。 自学拓展: 回顾微机原理与接口技术的相关知识,讨论如何利用 STM32 通用定时器实现电子时钟 的设计。 8、 ADC 原理及应用(3 学时)(支撑课程目标 3、4) 1.1 ADC 的功能及结构 1.2 ADC 的工作模式与中断 1.3 ADC 寄存器和库函数 1.4 ADC 应用举例 目标及要求: 1)了解和掌握 STM32 ADC 的硬件结构与工作原理; 2)了解和掌握 STM32 ADC 的基本参数、功能与工作模式; 3)了解和掌握 ADC 初始化配置、ADC 中断与 ADC 编程; 作业内容: 结合 STM32 ADC 知识,在 STM32 开发板实现:在 PB0 端口连接一个可变电阻器,改变 分压值,编写 ADC 程序,每隔 100ms 读取一次 ADC 转换的结果,显示在显示器上。 讨论内容: 讨论 STM32 内部温度传感器的特点与结构,如何编程实现环境温度的检测。 自学拓展: 回顾微机原理与接口技术的相关知识,讨论如何利用 STM32 ADC 进行数据采集系统的 设计。 9、 实验(27 学时)(支撑课程目标 1,2,3,4) 序 号 实验项目 名称 目的要求 学时 分配 实验 类型 每组 人数 必修/ 选修 1 STM32 程序 的编写、调 试和分析 熟悉 STM32 教学开发板,熟悉 STM32 基本 固件库的应用,熟悉 STM32 软件开发环境, 用 C 语言编写并调试 STM32 程序。 3 验证性 1 必修