《基于构件化的嵌入式系统设计》 课件 项目1 GPIO基础应用-实现闪灯和开关状态检测与控制功能_第1页
《基于构件化的嵌入式系统设计》 课件 项目1 GPIO基础应用-实现闪灯和开关状态检测与控制功能_第2页
《基于构件化的嵌入式系统设计》 课件 项目1 GPIO基础应用-实现闪灯和开关状态检测与控制功能_第3页
《基于构件化的嵌入式系统设计》 课件 项目1 GPIO基础应用-实现闪灯和开关状态检测与控制功能_第4页
《基于构件化的嵌入式系统设计》 课件 项目1 GPIO基础应用-实现闪灯和开关状态检测与控制功能_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

嵌入式系统设计

为了实现嵌入式系统设计的可移植和可复用,嵌入式硬件和嵌入式软件均采用构件化的设计思想,即对嵌入式硬件和嵌入式软件进行封装,供系统设计者调用,并倡导嵌入式软件分层设计的理念,以大幅度降低嵌入式技术学习难度和开发难度。

本书特色:项目任务驱动,突出学以致用,注重实践创新。每个项目且均采用了“通用知识”→“嵌入式构件设计”→“应用层程序设计”→“学以致用与创新”的学习流程。采用“搭积木”的思想,逐步提高嵌入式系统设计能力。

本书可作为高等学校电子信息类、计算机类、自动化类等专业的嵌入式系统设计教材,也可作为嵌入式技术培训教材,还可供从事嵌入式技术开发的工程技术人员参考。项目1:GPIO基础应用—实现闪灯和开关状态检测与控制功能项目2:利用定时中断实现频闪灯项目3:GPIO和定时器的综合应用—实现数码管显示、键盘测控、测温功能项目4:利用

UART

实现上位机和下位机的通信项目5:利用

Timer

实现PWM和输入捕获功能项目6:利用

ADC

设计简易数字电压表项目7:利用

SPI

实现多机串行通信项目8:利用

CAN

实现多机通信教

项目1:GPIO基础应用——实现闪灯和开关状态检测与控制功能【项目导读】在现代生活中,灯光除了用于照明,还广泛用于氛围营造(如城市景观灯、舞台变幻灯、广告霓虹灯等)或状态指示(如交通信号灯、设备状态指示灯等)。在嵌入式系统中,LED小灯是必备的状态指示设备。另外,在现实生活的很多场合中,通过开关(switch)控制用电设备。通过对微控制器编程,可以控制小灯的状态(点亮或熄灭),也可以检测开关的状态(闭合或断开),从而实现软件干预硬件。【学习目标】(1)熟悉嵌入式系统的概念、组成以及嵌入式技术学习方法。(2)熟悉嵌入式芯片STM32F103C8T6资源和硬件最小系统。(3)理解GPIO(通用输入/输出)的通用知识,掌握微控制器GPIO底层驱动构件的使用方法。(4)掌握小灯、开关等应用外设的嵌入式硬件构件和嵌入式软件构件的设计方法和使用方法。(5)熟悉嵌入式软件最小系统的工程文件组织方法,并能进行闪灯、流水灯和开关检测与控制功能的应用层程序设计。(6)掌握嵌入式软件集成开发环境KeilMDK及目标程序下载软件J-Flash的使用方法,为后续学习奠定良好的基础。*(7)熟悉微控制器GPIO底层驱动构件源文件的设计方法。任务1.1熟悉嵌入式系统和课程学习方法1.1.1嵌入式系统的概念和组成1、通用计算机和嵌入式计算机

微型计算机具有很大的通用性,所以又称通用计算机。

测控领域的计算机系统是嵌入到应用系统中,以计算机技术为基础,软、硬件可裁剪,适应应用系统对功能、成本、体积、可靠性、功耗严格要求的专用计算机系统,即嵌入式计算机系统,简称嵌入式系统(EmbeddedSystem)。

通俗地说,除了通用计算机(如台式计算机和笔记本计算机)外,所有包含CPU的系统都是嵌入式系统,其中其中以32位/64位ARM微处理器为核心的嵌入式系统应用越来越广泛。任务1.1熟悉嵌入式系统和课程学习方法1.1.1嵌入式系统的概念和组成1、通用计算机和嵌入式计算机

目前,ARM主要有以下3个系列的内核,对应不同的应用领域:(1)Cortex-A内核的应用处理器(ApplicationProcessor,AP),主要面向智能手机、平板电脑、智能终端等多媒体领域。(2)Cortex-R内核的实时处理器(Real-TimeProcessor,RTP),主要面向汽车电子等对实时性要求很高的领域。(3)Cortex-M内核的微控制器(MicroControllerUnit,MCU,国内也称为单片机),主要面向工业控制、农业控制、智能仪器仪表、智能家电、机电产品和汽车电子等领域。【知识巩固】简述通用计算机与嵌入式计算机的区别。任务1.1熟悉嵌入式系统和课程学习方法1.1.1嵌入式系统的概念和组成2、以MCU为核心的嵌入式系统(1)MCU的基本结构

MCU的基本含义:在一块芯片上集成了CPU、ROM、RAM、定时/计数器、中断系统、看门狗及通用输入输出(GPIO)、模/数(A/D)转换、数/模(D/A)转换、串行通信I/O等多种输入输出接口的比较完整的数字处理系统。CPU与其他部件交互是通过MCU内部总线实现的。任务1.1熟悉嵌入式系统和课程学习方法1.1.1嵌入式系统的概念和组成2、以MCU为核心的嵌入式系统(2)以MCU为核心的嵌入式系统的基本组成任务1.1熟悉嵌入式系统和课程学习方法1.1.1嵌入式系统的概念和组成【知识巩固】(1)简述MCU的基本含义。(2)画出以MCU为核心的嵌入式系统组成框图。1.1.2

嵌入式系统的知识体系和学习建议任务1.1熟悉嵌入式系统和课程学习方法

嵌入式硬件构件设计主要包括MCU硬件最小系统(硬件核心构件)设计和应用外设硬件构件(小灯LIGHT、蜂鸣器BZ、开关SW、键盘KB、数码管LED、液晶LCD等)设计。

嵌入式软件构件设计采用分层设计思想,自下而上依次是“底层驱动构件”、“应用外设软件构件”和“应用层软件构件”共3层软件设计。为了实现嵌入式系统设计的可移植和可复用,大幅度降低嵌入式技术学习难度和开发难度,嵌入式硬件和软件均需采用“构件化”设计。

其中底层驱动构件和应用外设软件构件都包括对应的.h头文件和.c源文件,而应用层软件构件包括总头文件includes.h、主程序源文件main.c和中断服务程序源文件isr.c。

通用软件构件与CPU和MCU基本无关,是服务于以上3层软件设计的。

随着技术的发展,MCU的硬件集成度越来越高,使得嵌入式硬件设计难度不断降低,因此嵌入式软件设计在整个嵌入式系统开发中所占的分量越来越大。1.1.2

嵌入式系统的知识体系和学习建议

嵌入式软件设计主要采用C语言及少量的汇编语言。

任务1.1熟悉嵌入式系统和课程学习方法1.1.2

嵌入式系统的知识体系和学习建议

嵌入式软件设计与调试是在嵌入式硬件的基础上协同进行的,其过程是在PC上利用嵌入式软件开发环境(如KeilMDK、IAR等)进行程序的编辑、编译和连接,生成工程对应的目标代码;最后将生成的目标代码通过写入器下载到嵌入式芯片中运行与调试。任务1.1熟悉嵌入式系统和课程学习方法MCU写入器任务1.2熟悉MCU资源和硬件最小系统1.2.1

STM32F1系列MCU简介

内核:ARMCortex-M3、32位。

特点:

CPU最高工作频率为72MHz,支持单周期乘法和硬件除法工作电压范围为2.0~3.6V,工作温度范围为-40~85℃

支持使用内部时钟

使用外部时钟

支持SWD和JTAG调试

STM32F103C8T6资源:

封装形式:

LQFP48,共有48个引脚

片内存储器:64KB的Flash存储器;20KB的SRAM

片内外设:

GPIO(可用引脚为34个)、4个16位Timer、2个12位ADC、

3个UART、2个SPI、2个I2C、1个CAN、1个USB、1个看门狗等

性价比高:

可满足工业、医疗和消费类市场等多种应用需求,可完全替代传统的8位/16位MCU。任务1.2熟悉MCU资源和硬件最小系统

(1)片内Flash存储映射(0x0800_0000~0x0800_FFFF),共64KB,一般被用来存储中断向量、程序代码、常数等,其中前236B为中断向量区(将在2.2.1节中具体介绍)。

(2)片内SRAM存储映射(0x2000_0000~0x2000_4FFF),共20KB,一般被用来存储全局变量、静态变量、临时变量(堆栈空间)等。1、MCU的存储映射

ARMCortex-M处理器直接寻址空间为4GB,地址范围为0x0000_0000~0xFFFF_FFFF。

存储映射,是指将4GB空间看作存储器,对各类物理资源(Flash存储器、SRAM、外设等)在4GB空间内进行统一编址,CPU可通过直接地址访问物理资源。

(3)外设(GPIO、UART、Timer、ADC等)寄存器存储映射,只需了解,实际应用中,可直接使用芯片头文件中给出的相关宏定义。1.2.2

MCU存储映射、引脚功能与硬件最小系统任务1.2熟悉MCU资源和硬件最小系统2、MCU的引脚功能1.2.2

MCU存储映射、引脚功能与硬件最小系统任务1.2熟悉MCU资源和硬件最小系统2、MCU的引脚功能

(1)硬件最小系统引脚:需要服务的引脚,包括电源、复位、晶振、程序写入接口(SWD)等引脚。1.2.2

MCU存储映射、引脚功能与硬件最小系统

从需求和供给的角度,将MCU引脚分为硬件最小系统引脚和I/O端口资源类引脚两大类。任务1.2熟悉MCU资源和硬件最小系统2、MCU的引脚功能

I/O引脚一般具有多个复用功能,详见表1-4。在实际应用时只能使用其中的一个功能。在嵌入式系统设计中,需要根据所使用的外设(含片内外设),对MCU的引脚资源进行统筹规划,以免多个外设使用相同的引脚而相互冲突。

(2)I/O端口资源类引脚:对外提供服务。

STM32F103C8T6具有A、B、C、D四个端口,37个I/O引脚。若使用内部时钟,则除去硬件最小系统所使用的的SWD接口的2个引脚(PA13、PA14)和启动方式所使用的1个引脚(PB2),在实际应用中,可有34个对外提供服务的通用I/O引脚。

从需求和供给的角度,将MCU引脚分为硬件最小系统引脚和I/O端口资源类引脚两大类。1.2.2

MCU存储映射、引脚功能与硬件最小系统任务1.2熟悉MCU资源和硬件最小系统3、MCU的硬件最小系统

MCU硬件最小系统是可以使MCU内部程序正常运行的最小规模的电路,主要包括MCU和电源、晶振、复位、写入调试器接口等外围电路。1.2.2

MCU存储映射、引脚功能与硬件最小系统任务1.2熟悉MCU资源和硬件最小系统【知识巩固】(1)MCU的Flash存储器和RAM分别存储哪些内容?(2)从需求和供给的角度,可将MCU的引脚分为几类?(3)简述MCU硬件最小系统的含义和组成。任务1.3

掌握MCU的GPIO底层驱动构件使用方法

GPIO(GeneralPurposeInputOutput

),通用输入/输出,它是I/O的最基本形式。1.3.1

GPIO的通用知识1、GPIO概念

MCU的大多数GPIO引脚可以通过编程来设定其工作方式为输入或输出,称之为双向GPIO。

某个引脚作为通用输入引脚,MCU可以通过读取其内部寄存器的值“1”或“0”,以确定该引脚的输入状态是高电平还是低电平,即开关量输入。

某个引脚作为通用输出引脚,MCU可以通过向其内部寄存器写“1”或“0”,以控制该引脚输出高电平或低电平,即开关量输出。

若MCU的某个引脚通过一个电阻接电源(VCC),则该电阻被称为“上拉电阻”。

若MCU的某个引脚通过一个电阻接地(GND),则该电阻被称为“下拉电阻”。1.3.1

GPIO的通用知识2、上拉电阻、下拉电阻与输入引脚的基本接法任务1.3

掌握MCU的GPIO底层驱动构件使用方法【思考】MCU是如何判断开关状态的?

作为通用输出引脚,MCU内部程序向该引脚输出高电平或低电平驱动外部设备工作,即开关量输出。输出引脚O1和O2分别采用了直接驱动和放大驱动方式。1.3.1

GPIO的通用知识3、输出引脚的基本接法任务1.3

掌握MCU的GPIO底层驱动构件使用方法【思考】

MCU控制LED小灯和蜂鸣器的原理?

为了实现程序的可移植和可复用,减小重复劳动,MCU底层驱动程序封装成构件。GPIO底层驱动构件由gpio.h头文件和gpio.c源文件组成,若要使用GPIO底层驱动构件,只需将这两个文件添加到所建工程的04_Driver(MCU底层驱动构件)文件夹中,即可实现对GPIO引脚的操作。见工程文件:..EmbeddedSource\03-Software\STM32F103\STM32F103.uvprojx

其中,gpio.h头文件主要包括相关头文件的包含、一些必要的宏定义、对外接口函数的声明,而gpio.c源文件则是对外接口函数的具体实现,初学者不必深究。

用户只要熟悉gpio.h头文件的内容,即可使用GPIO底层驱动构件进行编程,实现通过GPIO对不同外设进行检测或控制的功能(如检测开关的状态、控制小灯的亮灭等)。1.3.2

MCU的GPIO底层驱动构件使用方法任务1.3

掌握MCU的GPIO底层驱动构件使用方法任务1.4嵌入式构件化设计及闪灯的实现

为了实现嵌入式系统设计在不同MCU和不同应用场合中的可移植和可复用,降低嵌入式技术学习难度和开发难度,嵌入式硬件和软件均需采用“构件化”设计。现以小灯构件设计为例,说明嵌入式硬件构件和软件构件的设计方法。1.4.1

小灯硬件构件和软件构件的设计及使用方法1、小灯硬件构件的设计及使用方法a)小灯硬件构件b)小灯硬件构件与MCU的引脚连接

图中虚线框内的粗体标识为硬件构件的接口注释,以便于理解该接口的含义和功能;虚线框外的正体标识为硬件构件的接口网标,具有电气连接特性,表示硬件构件的接口与MCU的引脚相连接。硬件构件在不同应用系统中移植和复用时,仅需修改接口网标。1.4.1

小灯硬件构件和软件构件的设计及使用方法2、小灯软件构件的组成、设计及使用方法

小灯软件构件由

light.h

头文件

light.c

源文件组成,若要使用小灯软件构件,只需将这两个文件添加到所建工程的05_App(应用外设软件构件)文件夹中即可实现对小灯的控制。

其中,light.h

头文件主要包括相关头文件的包含、小灯硬件构件相关的宏定义、小灯构件对外接口函数的声明。light.c

源文件是小灯构件对外接口函数的具体实现。见工程文件:..EmbeddedSource\03-Software\STM32F103\STM32F103.uvprojx用户只要熟悉light.h头文件的内容,即可使用小灯软件构件进行编程。任务1.4嵌入式构件化设计及闪灯的实现【学以致用】根据

light.h头文件,写出实现下列功能的函数调用语句。

(1)将小灯LIGHT1初始化为熄灭状态。

(2)控制小灯LIGHT1点亮。

(3)改变小灯LIGHT1的状态。1.4.2

嵌入式软件最小系统设计——实现闪灯1、嵌入式软件最小系统

在嵌入式基础实践中,一般以“MCU控制小灯闪烁”作为入门实验,对应的程序框架称为“嵌入式软件最小系统”(具体解释详见表1-5)。

在此框架下可通过添加其他软件构件和修改应用层程序(工程源程序)完成不同功能的软件设计。

对初学者,学习重点是:①熟悉04_Driver(MCU底层驱动构件)、05_App(应用外设软件构件)和

06_Soft(通用软件构件)这几个文件夹中的头文件内容,掌握对外接口函数的调用方法;②根据系统功能需求,进行应用层程序设计和优化,即设计07_Source(应用层软件构件)文件夹中的文件。见工程文件:..EmbeddedSource\03-Software\STM32F103\STM32F103.uvprojx

其中,“04底层驱动构件”、“05应用外设软件构件”、“06通用软件构件”、“07应用层软件构件”的文件都是由本构件的.h和.c文件组成。

任务1.4嵌入式构件化设计及闪灯的实现2、公共要素软件构件的组成及使用方法

公共要素软件构件由common.h头文件和

common.c源文件组成,使用时,需将这两个文件添加到所建工程的06_Soft(通用软件构件)文件夹中。用户只要熟悉common.h头文件的内容,即可掌握该软件构件的使用方法。见工程文件:..EmbeddedSource\03-Software\STM32F103\STM32F103.uvprojx1.4.2

嵌入式软件最小系统设计——实现闪灯任务1.4嵌入式构件化设计及闪灯的实现3、闪灯的应用层程序设计

在嵌入式软件最小系统框架下,设计07_Source(应用层软件构件)的文件,以实现小灯闪烁的效果。1)工程总头文件includes.h:包含04、05、06文件夹中的头文件2)主程序源文件main.c:

小灯初始化,在主循环中实现闪灯效果在工程文件中分析代码并编程:..EmbeddedSource\03-Software\STM32F103\STM32F103.uvprojx1.4.2

嵌入式软件最小系统设计——实现闪灯任务1.4嵌入式构件化设计及闪灯的实现【思路总结】画出小灯闪烁的程序执行流程图。(1)编译工程文件,生成MCU可执行的代码文件(.hex文件)(2)将编译生成的.hex文件下载至目标MCU中,运行程序【学以致用与创新】请通过修改主程序的代码,分别完成:(1)改变小灯闪烁的频率。(2)控制其他小灯闪烁。(3)实现流水灯的效果。任务1.4嵌入式构件化设计及闪灯的实现1.4.2

嵌入式软件最小系统设计——实现闪灯4、闪灯效果的测试任务1.5开关状态检测与控制功能的设计与实现1.5.1

开关硬件构件和软件构件的设计及使用方法1、开关硬件构件的设计及使用方法a)开关硬件构件

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论