基于STM32F407主控芯片的发动机转速/相位发生器设计方法分享

2023-10-17  

摘要
STM32F407包含Cortex-M4内核,共有14路TIM资源,其中TIM2和TIM5具有32位计数功能,其他为16位计数功能。本文将以TIM2实现发动机转速/相位发生器的设计,并通过串口屏幕显示。文章给出了具体的电路的硬件设计及软件设计流程,并给出设计说明。经实践证明,该发生器据有可靠、稳定、精确的特性。


发动机转速传感器是一种感应式传感器,获取发动机转速和曲轴准确角度位置(输入系统)。在飞轮上安装有一个单独用于发动机转速传感器的信号轮。


信号轮被设计成一个带有很多齿段的轮,共分成60个齿段.每当信号轮转过传感器,就会产生一个交流电压,其频率随看转速而变化。频率即是转速的高低.为了识别曲轴位置,信轮在两个齿段之间有一段空隙.发动机转速传感器用于识别发动机转速.它与霍尔传感器一起识别发动机1缸点火上止点,从而确定喷油时间和点火正时。


相位传感器是凸轮轴位置传感器和曲轴位置传感器的统称,是发动机点火时刻的判断重要依据。凸轮轴相位传感器是用于检测凸轮轴转动位置的一种传感器,也是一个一个气缸判别定位装置,向ECU输入凸轮轴位置信号,是点火控制的主控信号。曲轴位置传感器是电喷发动机特别是集中控制系统中最重要的传感器,也是点火系统和燃油喷射系统共用的传感器。其功能是检测发动机曲轴转角和活塞上止点,并将检测信号及时送至发动机电脑,用以控制点火时刻(点火提前角)和喷油正时。同时,曲轴位置传感器亦是测量发动机转速的信号源。


发动机转速与相位传感器的波形关系大约如下:

fc6732e6-94a4-11ed-bfe3-dac502259ad0.png

图1:转速与相位关系图

1 系统介绍

系统将旋变解码器处理的旋变编码器的信号通过RS485送入STM32主控制器,主控制器根据不同的信号做出判断,从而控制驱动输出不同的转速和相位信号,并通过RS232控制串口屏幕显示。如下图2系统图、图3转速发生电路原理图、图4相位发生电路原理图、图5显示屏幕电路原理图:

fc8bf932-94a4-11ed-bfe3-dac502259ad0.png

图2:系统图

fcaccf18-94a4-11ed-bfe3-dac502259ad0.png

fcd24806-94a4-11ed-bfe3-dac502259ad0.png

fced218a-94a4-11ed-bfe3-dac502259ad0.png

fd0ac834-94a4-11ed-bfe3-dac502259ad0.png

fd29dcf6-94a4-11ed-bfe3-dac502259ad0.png

图3:转速发生电路原理图

fd4f7f6a-94a4-11ed-bfe3-dac502259ad0.png

fd7b6bd4-94a4-11ed-bfe3-dac502259ad0.png

fd96db8a-94a4-11ed-bfe3-dac502259ad0.png

fdb7307e-94a4-11ed-bfe3-dac502259ad0.png

图4:相位发生电路原理图

fdcfa546-94a4-11ed-bfe3-dac502259ad0.png

图5:显示屏幕电路原理图

1.1 旋变编码器

选择市面常用的KY-040旋变编码器(如图2),有5个功能针脚,分别位CLK(时钟)、DT(数据)、SW(开关)、+(电源)和GND.其中+,GND分别外接电源5V和GND即可。SW一般按下电压为低电平,CLK与DT实现旋变编码功能。

fdefa544-94a4-11ed-bfe3-dac502259ad0.png

图6:KY-040旋变编码器

1.2 旋变解码器

本文选择深圳市俞霖科技的YL69-485(8通道解码器)来实现,如图6:

fe1918b6-94a4-11ed-bfe3-dac502259ad0.png

图7:YL69-485

YL69-485初始设定如下

1)获取厂家的上位机软件【TEST安装文件setup.exe】,点击【确定】

fe413508-94a4-11ed-bfe3-dac502259ad0.png

2)点击【开始安装】,点击【确定】、【继续】

fe53e7e8-94a4-11ed-bfe3-dac502259ad0.png

fe761638-94a4-11ed-bfe3-dac502259ad0.png

3)跳出的对话框全部选择【是】,最后点击【确定】

fe95a174-94a4-11ed-bfe3-dac502259ad0.png

feb6997e-94a4-11ed-bfe3-dac502259ad0.png

4)硬件设置,开关打到【初始化init】后下断电后再上电。

注:每次重新设地址都需重新上下电

fed891dc-94a4-11ed-bfe3-dac502259ad0.png

5)打开【Test.exe]程序

ff0356d8-94a4-11ed-bfe3-dac502259ad0.png

6)选择设备所在的端口, 波特率设置为9600点击【打开串口/Open】

ff261a7e-94a4-11ed-bfe3-dac502259ad0.png

7)模块地址/ID】更改为目标地址,【波特率】设置位115200,点击【设置/Set]

注:打开串口后灯由灰色变成绿色,表示连接成功

ff4614fa-94a4-11ed-bfe3-dac502259ad0.png

8)如Response有值反馈,表示设置成功。如Response无反馈,表示不成功,可重新上下电重复⑥⑦

ff669928-94a4-11ed-bfe3-dac502259ad0.png

9)地址设置成功后,开关拨到【正常】,重新上下电

ff911004-94a4-11ed-bfe3-dac502259ad0.png

10)设置编码器工作模式为0(具体说明参照YL69说明书)

依次选择【串口选择】、【波特率选择】设置为1152000,【打开串口】、【在这里输入字符命令】填入 $41300000000(cr),然后单击【发送命令】

ffc5416c-94a4-11ed-bfe3-dac502259ad0.png

Response有应答表示设置成功,重新上下电

ffe83082-94a4-11ed-bfe3-dac502259ad0.png

11)依次选择【串口选择】、【打开串口】、【在这里输入字符命令】填入 $414 (cr),然后单击【发送命令】

Response反馈!00000000表示工作模式0设置成功

000beba8-94a5-11ed-bfe3-dac502259ad0.png


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。