《汽车计算机基础》 课件 2 汽车嵌入式技术基础_第1页
《汽车计算机基础》 课件 2 汽车嵌入式技术基础_第2页
《汽车计算机基础》 课件 2 汽车嵌入式技术基础_第3页
《汽车计算机基础》 课件 2 汽车嵌入式技术基础_第4页
《汽车计算机基础》 课件 2 汽车嵌入式技术基础_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

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

文档简介

第7单元:闪灯的设计与实现第8单元:开关状态指示灯的设计与实现第9单元:利用定时中断实现频闪灯第10单元:利用PWM实现小灯亮度控制第11单元:利用UART实现上位机和下位机的通信第12单元:利用ADC设计简易数字电压表汽车嵌入式技术基础篇

第7单元

闪灯的设计与实现

在汽车中,灯光除了用于照明,还被广泛用于状态指示(如交通信号灯、汽车指示灯、设备状态指示灯等)。在嵌入式系统中,LED小灯是必备的状态指示设备。【单元导读】

单元学习目标:通过编程,使微控制器点亮一个LED小灯,在此基础上再实现流水灯的效果。第7单元

闪灯的设计与实现

单元学习任务:(1)熟悉嵌入式系统的组成以及嵌入式技术学习方法。(2)熟悉车规级微控制器KEA128的芯片资源和硬件最小系统。(3)理解通用输入/输出(GPIO)的通用知识,掌握GPIO底层驱动构件头文件的使用方法。(4)掌握小灯硬件构件和软件构件的使用方法。(5)掌握在嵌入式软件最小系统的框架下实现LED小灯闪烁的应用层程序设计方法,并在此基础上,自行完成流水灯的应用层程序设计。(6)掌握嵌入式软件集成开发环境KeilMDK及目标程序下载软件J-Flash的使用方法,以便为后续的学习奠定良好的基础。任务7.1熟悉嵌入式系统的组成及嵌入式技术学习方法7.1.1嵌入式系统的组成

目前,ARM主要有以下3个系列的内核,对应不同的应用领域:(1)Cortex-A内核的应用处理器(ApplicationProcessor,AP),主要面向智能手机、平板电脑、智能终端等多媒体领域;(2)Cortex-R内核的实时处理器(Real-TimeProcessor,RTP),主要面向汽车电子等对实时性要求很高的领域;(3)Cortex-M内核的微控制器(MicroControllerUnit,MCU,国内也称为单片机),主要面向汽车电子、工业控制、农业控制、智能仪器仪表、智能家电、机电产品等测控领域。

在绪论中,曾介绍过嵌入式系统的概念。目前,以32位/64位ARM微处理器为核心的嵌入式系统应用越来越广泛。1、ARM微处理器的分类7.1.1嵌入式系统的组成2、MCU的基本结构

MCU的基本含义:在一块芯片上集成了CPU、ROM、RAM、定时/计数器、中断系统、看门狗及通用输入输出(GPIO)、模/数(A/D)转换、数/模(D/A)转换、串行通信I/O等多种输入输出接口的比较完整的数字处理系统。CPU与其他部件交互是通过MCU内部总线实现的。任务7.1熟悉嵌入式系统的组成及嵌入式技术学习方法7.1.1嵌入式系统的组成3、以MCU为核心的嵌入式系统的基本组成任务7.1熟悉嵌入式系统的组成及嵌入式技术学习方法7.1.2嵌入式系统的知识体系和学习建议任务7.1熟悉嵌入式系统的组成及嵌入式技术学习方法

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

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

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

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

随着技术的发展,MCU的硬件集成度越来越高,使得嵌入式硬件设计难度不断降低,因此嵌入式软件设计在整个嵌入式系统开发中所占的分量越来越大。7.1.2嵌入式系统的知识体系和学习建议任务7.1熟悉嵌入式系统的组成及嵌入式技术学习方法

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

嵌入式软件设计与调试是在嵌入式硬件的基础上协同进行的,其过程是在PC上利用嵌入式软件开发环境(如KeilMDK、IAR等)进行程序的编辑、编译和连接,生成工程对应的目标代码;最后将生成的目标代码通过写入器下载到嵌入式芯片中运行与调试。MCU写入器任务7.2熟悉KEA128资源和硬件最小系统KinetisEA(简称KEA)系列MCU是恩智浦公司开发的基于ARMCortex-M0+(简称CM0+)内核的车规级MCU。任务7.2熟悉KEA128资源和硬件最小系统

片内Flash区(0x0000_0000~0x0001_FFFF),共128KB,一般被用来存放中断向量、程序代码、常数等,其中前192B为中断向量表(中断函数的入口地址)。

片内RAM区(0x1FFF_F000~0x2000_2FFF),共16KB,一般被用来存储全局变量、静态变量、临时变量(堆栈空间)等。1、KEA128的存储映像

KEA128把CM0+内核之外的模块用类似存储器编址的方式统一分配地址。在4GB的存储映像空间内,分布着片内Flash、RAM、系统配置寄存器及其他外设等,以便CPU通过直接地址进行访问。任务7.2熟悉KEA128资源和硬件最小系统2、KEA128的引脚功能

从需求和供给的角度,把MCU的引脚分为硬件最小系统引脚和I/O端口资源类引脚两大类。(1)硬件最小系统引脚:需要服务的引脚,包括电源、复位、晶振、程序写入接口(SWD)等引脚。任务7.2熟悉KEA128资源和硬件最小系统2、KEA128的引脚功能

从需求和供给的角度,把MCU的引脚分为硬件最小系统引脚和I/O端口资源类引脚两大类。(2)I/O端口资源类引脚:对外提供服务。

I/O引脚一般具有多个复用功能,详见附录D的KEA128引脚功能分配表,在实际应用时只能使用其中的一个功能。在嵌入式系统设计中,需要根据所使用的外设(含片内外设)对MCU的引脚资源进行统筹规划,以免多个外设使用相同的引脚而相互冲突。任务7.2熟悉KEA128资源和硬件最小系统3、KEA128的硬件最小系统

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

需要说明的是,若使用MCU内部的时钟作为系统时钟源,则外部晶振电路可省略。【课后作业】同步练习7-1:巩固知识。任务7.3

掌握GPIO底层驱动构件的使用方法7.3.1GPIO的通用知识1、GPIO概念

GPIO(GeneralPurposeInputOutput

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

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

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

某个引脚作为通用输出引脚,MCU可以通过向其内部寄存器写“1”或“0”,以控制该引脚输出高电平或低电平,即开关量输出。7.3.1GPIO的通用知识2、上拉电阻、下拉电阻与输入引脚的基本接法任务7.3

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

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

若MCU的某个引脚通过一个电阻接地(GND),则该电阻被称为“下拉电阻”。7.3.1GPIO的通用知识3、输出引脚的基本接法任务7.3

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

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

掌握GPIO底层驱动构件的使用方法7.3.2KEA128的GPIO底层驱动构件及使用方法

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

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

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

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

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

任务7.4小灯构件化设计及闪灯的实现

小灯软件构件由

light.h

头文件

light.c

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

其中,light.h

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

源文件是小灯构件对外接口函数的具体实现。见工程文件:..EmbeddedSource\03-Software\KEA128\KEA128.uvprojx用户只要熟悉light.h头文件的内容,即可使用小灯软件构件进行编程。7.4.2嵌入式软件最小系统设计——实现闪灯1、嵌入式软件最小系统任务7.4小灯构件化设计及闪灯的实现

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

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

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

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

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

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

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

小灯初始化,在主循环中实现闪灯效果在工程文件中分析代码并编程:..EmbeddedSource\03-Software\KEA128\KEA128.uvprojx7.4.3程序的下载与测试1.编译工程文件,生成MCU可执行的代码文件(.hex文件)任务7.4小灯构件化设计及闪灯的实现2.将编译生成的.hex文件下载至目标MCU中,运行程序【同步练习7-2】请通过修改主程序的代码,分别完成:(1)改变小灯闪烁的频率;(2)控制其他小灯闪烁;(3)实现流水灯的效果。第7单元:闪灯的设计与实现第8单元:开关状态指示灯的设计与实现第9单元:利用定时中断实现频闪灯第10单元:利用PWM实现小灯亮度控制第11单元:利用UART实现上位机和下位机的通信第12单元:利用ADC设计简易数字电压表汽车嵌入式技术基础篇

第8单元

开关状态指示灯的设计与实现【单元导读】

在汽车上有很多开关(switch),可以通过开关控制用电设备。例如,在大众车系中,汽车ECU(J519)通过获取车灯开关的状态而控制对应的车灯。

单元学习任务和目标:在第7单元的基础上,实现通过指示灯反映开关状态的功能。在本单元中,重点掌握开关硬件构件和开关软件构件的设计及使用方法,并在此基础上学会开关检测与控制功能的应用层程序设计方法。任务8.1掌握开关硬件构件和软件构件的设计及使用方法1、开关硬件构件的设计及使用方法a)开关硬件构件b)开关硬件构件与MCU的引脚连接2、开关软件构件的设计及使用方法

任务8.1掌握开关硬件构件和软件构件的设计及使用方法

开关软件构件由

sw.h头文件

sw.c

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

其中,sw.h

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

源文件是开关构件对外接口函数的具体实现。见工程文件:..EmbeddedSource\03-Software\KEA128\KEA128.uvprojx用户只要熟悉sw.h

头文件的内容,即可使用开关软件构件进行编程。任务8.2开关状态指示灯的应用层程序设计

利用小灯软件构件和开关软件构件,编程实现开关状态检测与控制功能:开关SW1闭合时,小灯LIGHT1亮;SW1断开时,小灯LIGHT1灭。任务8.2开关状态指示灯的应用层程序设计见工程文件:..EmbeddedSource\03-Software\KEA128\KEA128.uvprojx

在嵌入式软件最小系统框架下,设计07_Source(应用层软件构件)的文件,以实现开关状态检测与控制功能。1)工程总头文件includes.h:包含04、05、06文件夹中的头文件2)主程序源文件main.c:

初始化,在主循环中查询开关状态,并控制小灯亮、灭【同步练习8】

实现:多路开关状态指示功能,即4个开关SW1、SW2、SW3、SW4的状态分别由小灯LIGHT1、LIGHT2、LIGHT3、LIGHT4指示。第7单元:闪灯的设计与实现第8单元:开关状态指示灯的设计与实现第9单元:利用定时中断实现频闪灯第10单元:利用PWM实现小灯亮度控制第11单元:利用UART实现上位机和下位机的通信第12单元:利用ADC设计简易数字电压表汽车嵌入式技术基础篇

第9单元利用定时中断实现频闪灯

在第7单元中,利用软件延时Delay_ms函数(循环计数)实现闪灯的效果。

该方式有两大缺点:

①软件延时一般用于粗略延时的场合;

②执行延时子程序期间,CPU一直被占用而不能做其他事情,从而降低了CPU的利用率。【单元导读】第9单元利用定时中断实现频闪灯

为此,可使用MCU内部可编程的定时/计数器实现延时。用户根据需要设置定时时间,并启动定时/计数器计数,当定时时间到时,它将自动产生一个定时输出信号(通常是中断请求信号)告知CPU,使CPU转去执行定时中断服务程序,从而实现某些定时功能(如改变小灯的状态)。定时/计数器在计数期间,与CPU并行工作,不占用CPU的工作时间。该方式通过简单的程序设置即可实现准确的定时。单元学习任务和目标:(1)理解定时器的定时原理。(2)理解中断的通用知识,熟知使用非内核中断的嵌入式应用层程序构成。(3)熟悉MCU内部定时器的功能特性,掌握MCU内部定时器底层驱动构件头文件的使用方法。(4)学会利用MCU内部定时中断实现频闪灯或流水灯的应用层程序设计方法。任务9.1理解中断的通用知识1、中断的含义

中断,是指MCU在正常运行程序时,由于MCU内核异常(内核中断)或

MCU各功能模块发出请求事件(非内核中断),使MCU停止正在运行的程序,而转去处理异常(使芯片复位或使MCU做出其他处理)或

执行处理内核外部事件的程序(中断服务程序)。2、中断源

引起MCU中断的事件称为中断源。MCU的中断源分为两类:内核中断源和非内核中断源。KEA128的中断源见表9-1。任务9.1理解中断的通用知识4、使用非内核中断的嵌入式应用层程序设计方法

(1)在main.c文件的主程序中,进行非内核中断模块初始化,并使能模块中断(使CPU能够响应模块发出的中断请求,转去执行中断服务函数)。

(2)在isr.c文件中,设计中断服务程序函数,在中断服务函数中实现某些中断功能(如改变小灯状态等)。3、使用非内核中断的嵌入式应用层程序构成

使用中断的嵌入式应用层程序,共有两条独立的程序运行线:

(1)main.c文件中的主程序运行线;

(2)isr.c文件中的中断服务程序运行线。任务9.2利用FTM定时中断实现频闪灯定时器本质上是一个对计数时钟进行周期统计的计数器。

上图中,计数器采用增1计数。计数器从初值0开始计数,每经过一个计数时钟周期,计数器的值就加1,若计数器的值达到终值4,则在下一个时钟到来时,计数器溢出,计数器的值恢复至初值0,然后进行下一轮的加1计数,如此重复。

定时器每一轮的定时时间t=

计数次数×计数时钟周期

上图中,一轮的计数次数是5,若计数时钟频率为1kHz(计数时钟周期为1ms),则一轮的定时时间为5ms。任务9.2利用FTM定时中断实现频闪灯对于n位(二进制)定时/计数器,计数器的终值最大值为2n-1,结合上图,定时/计数器一轮计数次数最大值为2n。n位定时/计数器一轮的最大定时时间t:

t=2n×计数时钟周期

=2n/计数时钟频率

f若

f=

时钟源频率/分频系数,则

t=2n/(时钟源频率/分频系数)

【同步练习9-1】计算定时时间范围。

任务9.2利用FTM定时中断实现频闪灯

当计数器溢出时,定时器可向CPU发出中断请求信号,使CPU暂停当前的工作,而转去执行中断服务程序,在中断服务程序中实现具体的定时功能(如改变小灯的状态等)。任务9.2利用FTM定时中断实现频闪灯

KEA128芯片的FTM(FlexTimer)是一个具有基本定时、脉宽调制(PWM)、输入捕捉和输出比较等多种功能的综合定时器。KEA128芯片中有3个FTM模块,分别是FTM0、FTM1和FTM2,它们均是16位定时器。本单元只学习FTM模块的基本定时功能,其PWM功能将在第10单元介绍。任务9.2利用FTM定时中断实现频闪灯9.2.1FTM基本定时底层驱动构件的使用方法

FTM基本定时底层驱动构件由ftm_timer.h头文件和ftm_timer.c源文件组成,若要使用FTM基本定时底层驱动构件,只需将这两个文件添加到所建工程的04_Driver(MCU底层驱动构件)文件夹中即可实现对FTM定时器的操作。见工程文件:..EmbededSource\03-Software\KEA128\KEA128.uvprojx

用户只要熟悉ftm_timer.h头文件的内容,即可使用FTM基本定时底层驱动构件进行编程。

其中,ftm_timer.h头文件主要包括相关头文件的包含、相关的宏定义、对外接口函数的声明;而ftm_timer.c源文件是对外接口函数的具体实现,初学者不必深究。任务9.2利用FTM定时中断实现频闪灯9.2.2利用FTM定时中断实现频闪灯的应用层程序设计

在嵌入式软件最小系统框架下,设计07_Source(应用层软件构件)的文件,以实现小灯闪烁的效果。1)工程总头文件includes.h:

包含04、05、06文件夹中的头文件2)主程序源文件main.c:

定义全局变量;初始化;使能定时器中断;

在主循环中,根据全局变量的值,改变小灯的状态在工程文件中分析代码并编程:..EmbeddedSource\03-Software\KEA128\KEA128.uvprojx3)中断服务程序源文件isr.c:声明全局变量;实现定时功能(更新全局变量的值)

【同步练习9-2】通过修改main.c的代码,分别完成:

①改变小灯闪烁的频率。

②控制其他小灯闪烁。

③实现流水灯的效果。汽车计算机基础

配套教材:索明何、汪东明

等编著多资源、立体化、新形态教材《汽车计算机基础》机械工业出版社,2023ISBN:978-7-111-72416-2

本书结合汽车技术电动化、智能化、网联化、共享化的“四化”发展和汽车类专业特点,按照“由简到难、循序渐进”的原则,共设置了“绪论”“汽车程序设计基础篇”“汽车嵌入式技术基础篇”“车载网络技术基础篇”4部分内容。通过本书的学习,可以从整体上加深理解汽车电子控制系统的组成和工作原理,对汽车电子控制技术和智能网联汽车技术学习奠定良好的汽车计算机基础。

本书特色:任务驱动,理实一体,学以致用。内容组织由简到难、循序渐进,灵活采用对比法、类比法、启发法、实验法等多种教学方法,有效降低教学难度和学习难度。

本书可作为高职院校汽车类专业的汽车计算机基础教材,也可供从事相关技术的工程人员参考。第7单元:闪灯的设计与实现第8单元:开关状态指示灯的设计与实现第9单元:利用定时中断实现频闪灯第10单元:利用PWM实现小灯亮度控制第11单元:利用UART实现上位机和下位机的通信第12单元:利用ADC设计简易数字电压表汽车嵌入式技术基础篇

第10单元利用PWM实现小灯亮度控制

脉宽调制(PulseWidthModulation,PWM)信号是一个高电平和低电平重复交替的输出信号,PWM广泛应用于电动机转速控制、车灯亮度控制等领域。当车灯开关闭合时,如果MCU通过PWM控制车灯逐渐点亮,则可以延长车灯的寿命。【单元导读】

单元学习任务和目标:首先理解PWM的通用知识,包括PWM的相关概念、技术指标及应用场合;然后掌握PWM底层驱动构件头文件的使用方法;最后学会利用PWM实现小灯亮度控制的应用层程序设计方法。任务10.1理解PWM的通用知识

PWM信号是一个高电平和低电平重复交替的输出信号。

目前经常使用的PWM信号主要是通过MCU编程实现的。利用MCU输出PWM信号时,需要一个产生PWM信号的时钟源,设其周期为TCLK。1、

PWM的基本概念与技术指标任务10.1理解PWM的通用知识1、

PWM的基本概念与技术指标(1)周期:持续的时钟周期个数。

TPWM=8

TCLK(2)脉宽:一个PWM周期内PWM信号

处于高电平的时间。

图(a):2

TCLK

图(b):4

TCLK

图(c):6

TCLK(3)占空比:脉宽/周期,百分比

图(a):25%

图(b):50%

图(c):75%任务10.1理解PWM的通用知识(4)极性:决定了PWM信号的有效电平

正极性:PWM信号的有效电平为高电平,平时电平(空闲电平)为低电平;

负极性:PWM信号的有效电平为低电平,平时电平(空闲电平)为高电平。1、

PWM的基本概念与技术指标任务10.1理解PWM的通用知识2、

PWM的应用场合

(1)利用PWM为其他设备产生类似于时钟的信号。例如,PWM可用来控制灯以一定的频率闪烁。

(2)利用PWM控制输入到某个设备的平均电流或电压。例如,PWM可用来控制直流电动机转速。

(3)利用PWM控制命令字编码。例如,用不同的脉宽代表不同的命令,控制无线遥控车做不同的动作(左转、右转、前进等)。1、KEA128的FTM_PWM模块

在KEA128芯片中,可利用FTM定时器实现PWM功能,其中FTM的FTM0和FTM1各有2个通道,FTM2有6个通道。可以配置为FTM通道的引脚见表10-1,具体使用的引脚,可参照ftm_pwm.h头文件中的相关宏定义。任务10.2掌握FTM_PWM底层驱动构件的使用方法任务10.2掌握FTM_PWM底层驱动构件的使用方法2、KEA128的FTM_PWM底层驱动构件及使用方法【同步练习10-1】计算PWM信号周期的合理范围。

FTM_PWM底层驱动构件由ftm_pwm.h头文件和ftm_pwm.c源文件组成,若要使用FTM_PWM底层驱动构件,只需将这两个文件添加到所建工程的04_Driver(MCU底层驱动构件)文件夹中,即可实现对FTM_PWM的操作。见工程文件:..EmbeddedSource\03-Software\KEA128\KEA128.uvprojx

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

用户只要熟悉ftm_pwm.h头文件的内容,即可使用FTM_PWM底层驱动构件进行编程。任务10.3利用PWM实现小灯亮度控制的应用层程序设计

在嵌入式软件最小系统框架下,设计07_Source(应用层软件构件)的文件,以实现:利用PWM控制与PWM通道引脚相连接的小灯的亮度。1)工程总头文件includes.h:

包含04、05、06文件夹中的头文件2)主程序源文件main.c:

初始化(PWM)在工程文件中分析代码并编程:..EmbeddedSource\03-Software\KEA128\KEA128.uvprojx【同步练习10-1】

(1)将ftm_pwm_init函数中的占空比参数依次改为100、75、50、25、0,分别运行其对应的程序,观察小灯亮度的变化情况。

(2)使用ftm_pwm.h文件中的ftm_pwm_update函数,分别实现频闪灯和小灯逐渐变亮的效果。第7单元:闪灯的设计与实现第8单元:开关状态指示灯的设计与实现第9单元:利用定时中断实现频闪灯第10单元:利用PWM实现小灯亮度控制第11单元:利用UART实现上位机和下位机的通信第12单元:利用ADC设计简易数字电压表汽车嵌入式技术基础篇

第11单元利用UART实现上位机和下位机的通信

为了实现上位机PC和下位机MCU之间的通信,可采用UART、USB、Ethernet等多种通信方式,其中UART是最简单的通信方式,也是学习其他通信方式的基础。

单元学习任务和目标:

(1)理解UART的通用知识,包括UART硬件、UART通信的数据格式和数据通信的波特率。(2)掌握UART底层驱动构件头文件的使用方法。(3)掌握PC和MCU的串口通信与调试方法,重点掌握UART应用层程序设计方法,包括主程序设计和UART接收中断服务程序设计。(4)掌握通过UART实现利用格式化输出函数(printf)向PC输出数据的方法。【单元导读】任务11.1理解UART的通用知识

UART(UniversalAsynchronousReceiver/Transmitter,通用异步收发器)可实现异步串行通信功能。有时还将UART称为SCI(SerialCommunicationInterface,串行通信接口),简称串口。1、UART硬件

MCU的UART通信一般只需3根线:发送线TxD、接收线RxD和地线GND。

MCU可通过TTL-USB转换器连接到PC的USB接口,在PC上安装相应的驱动软件,就可实现MCU与PC之间的串口通信。2、UART通信的数据帧格式

UART通信的特点:数据以字节为单位,按位的顺序(如最低位优先)从一条传输线上发送出去。

(1)发送1位起始位——逻辑“0”,用于通知接收方通信同步。

(2)依次发送8位数据D0~D7(低位在前、高位在后)。

(3)发送1位奇偶校验位(可选),便于接收方检测数据发送是否正确。

(4)发送1~2位停止位——逻辑“1”,用于通知接收方该帧数据已发送完成。

若发送方无数据发送,则通信线路上保持空闲状态——逻辑“1”。若发送方发送下一个UART数据帧,则要重新发送起始位,然后发送一字节的新数据。任务11.1理解UART的通用知识3、数据通信的波特率

波特率:每秒钟传输二进制数码的位数,单位是bit/s。波特率越高,数据传输的速度就越快。只有通信双方的波特率相同时才可以正常通信。

串口通信常用的波特率:1200、1800、2400、4800、9600、19200、38400、57600、115200等(bit/s)。任务11.2掌握UART底层驱动构件的使用方法1、KEA128的UART模块

KEA128芯片中共有3个UART模块:UART0、UART1和UART2。每个UART模块的发送数据引脚为UART_TX,接收数据引脚为UART_RX。可以配置为UART模块的引脚见表11-1,具体使用的引脚,可参照uart.h头文件中的相关宏定义。任务11.2掌握UART底层驱动构件的使用方法2、KEA128的UART底层驱动构件及使用方法

UART具有初始化、发送和接收三种基本操作。其中,UART发送是主动任务,不必采用中断方式;而UART接收是被动任务,为了确保及时接收到对方发送来的每帧数据,一般采用中断方式。

UART底层驱动构件由uart.h头文件和uart.c源文件组成,若要使用UART底层驱动构件,只需将这两个文件添加到所建工程的04_Driver(MCU底层驱动构件)文件夹中,即可实现对UART的操作。见工程文件:..EmbeddedSource\03-Software\KEA128\KEA128.uvprojx

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

用户只要熟悉uart.h头文件的内容,即可使用UART底层驱动构件进行编程。任务11.3掌握PC与MCU的串口通信与调试方法11.3.1UART通信的应用层程序设计

在嵌入式软件最小系统框架下,设计07_Source(应用层软件构件)的文件,以实现:上位机PC

下位机MCU之间的串口通信。1)工程总头文件includes.h:包含04、05、06文件夹中的头文件2)主程序源文件main.c:

定义字符数组(存放待发送的字符型数据);

初始化;使能UART接收中断;

在主循环中,MCU通过UART使用发送函数向PC发送数据在工程文件中分析代码并编程:..EmbeddedSource\03-Software\KEA128\KEA128.uvprojx3)中断服务程序源文件isr.c:在UART接收中断服务程序中,MCU使用UART接收函数

接收PC发来的数据,并向PC回送接收到的字符任务11.3掌握PC与MCU的串口通信与调试方法11.3.2UART通信的测试方法

(1)将USB-TTL转换器TTL端的RX、TX、GND端子分别与MCU的TX、RX、GND引脚(参照uart.h中的引脚宏定义)相连接,将USB-TTL转换器的USB端与PC的USB接口连接;

(2)打开PC串口调试软件,打开串口,并且设置与MCU的UART相同的波特率;

(3)运行MCU程序,通过PC串口调试窗口查看MCU发送给PC的信息;

(4)在PC串口调试窗口中写入字符或字符串并发送给MCU,在串口调试窗口中查看是否有MCU回送到PC的信息;

(5)调试结束后,先在PC串口调试软件中关闭串口,然后将USB-TTL转换器从PC的USB接口断开。任务11.3掌握PC与MCU的串口通信与调试方法11.3.3使用printf函数输出数据1、通过UART使用printf函数的方法

使用printf函数时,需要将printf软件构件对应的printf.h头文件和printf.c源文件添加到所建工程的06_Soft(通用软件构件)文件夹中。在printf.h头文件中,添加了以下两条预处理命令:

任务6.3学习PC与MCU的串口通信与调试方法2、通过UART使用printf函数输出数据的应用层程序设计【同步练习11】

通过PC串口调试窗口向MCU发送不同的字符,控制小灯的状态。1)工程总头文件includes.h:包含04、05、06文件夹中的头文件2)主程序源文件main.c:

定义局部变量(存放待发送的数据);

初始化;MCU通过UART使用printf函数向PC发送数据在工程文件中分析代码并编程:..EmbeddedSource\03-Software\KEA128\KEA128.uvprojx11.3.3使用printf函数输出数据第7单元:闪灯的设计与实现第8单元:开关状态指示灯的设计与实现第9单元:利用定时中断实现频闪灯第10单元:利用PWM实现小灯亮度控制第11单元:利用UART实现上位机和下位机的通信第12单元:利用ADC设计简易数字电压表汽车嵌入式技术基础篇

第12单元利用ADC设计简易数字电压表

在汽车测控系统中,往往需要通过模/数转换器(AnalogtoDigitalConverter,ADC)将模拟输入量转换为数字量,以供MCU接收和处理。单元学习任务和目标:(1)理解ADC的通用知识,包括ADC的相关概念和最简单的A/D转换采样电路。(2)熟悉MCU的ADC主要特性和引脚,掌握ADC底

温馨提示

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

评论

0/150

提交评论