查看: 2019|回复: 0

[报名/申请] 【飞思卡尔“新”礼三重奏】 huihui的方案

[复制链接]

该用户从未签到

2

主题

2

帖子

0

新手上路

Rank: 1

积分
10
最后登录
1970-1-1
发表于 2013-8-26 00:09:07 | 显示全部楼层

【飞思卡尔“新”礼三重奏】 huihui的方案

我们打算试用Kinetis E 系列 MCU 开发板在电动车的表盘控制上。
通过FRDM-KE02Z控制来实现测速、电量检测、防盗装置、和车体平衡装置和表盘的显示。
1.系统结构
由表盘进行车速、电机转速、电流和电池组电压的指针指示,LCD控制器可以控制字段式LCD显示总里程、小计里程和电机故障信息内置定时捕捉模块可以进行车速/电机转速脉冲的捕捉与统计,内置ADC进行电机温度等模拟量的采集。下面以车速信号检测为例介绍下仪表盘电路设计。
2.车速信号检测 车速是仪表盘需要显示的关键信息,根据汽车原理和拓扑结构,车速信号来源是者车速传感器。车速传感器输出0-12V的脉冲信号,其信号频率大小与车速值大小成线性关系,随车速增加而增加,通过整形电路将车速传感器信号转换为TTL电平,然后通过定时捕捉模块捕捉脉冲信号的上升沿或下降沿,进行统计分析即可得到车速大小。

3车速信号检测软件设计 车速信号整形后得到TTL脉冲,FRDM-KE02Z的定时捕捉模块以中断的方式捕捉脉冲的沿变化,在中断处理函数中进行脉冲个数累加。设计脉冲统计结构体和一200ms的周期定时器,采用“滑动时间窗口脉冲统计法”进行车速的计算,脉冲统计结构体设计如下: typedef struct{   uint8_t   bank;   uint16_t  cnt;  }s_PulseCnt; 在上述结构体中,cnt表示脉冲个数,bank表示数据是否有效。滑动时间窗口脉冲统计法设计如下: 定义成员个数为6的脉冲统计结构体数组Speed_pulse[6],周期性存储车速脉冲个数,脉冲率等价于一秒内的脉冲个数,则有公式如下:   脉冲频率=(Speed_pulse[5].cnt-Speed_pulse[0].cnt)   (2-1) 车速=脉冲频率*FACTOR                       (2-2)   FACTOR由变速比和轮胎直径共同决定。 当下计算的车速表示过去1秒内的平均车速,在下一个200ms到达后,将下标为1到5的结构体变量依次“滑动复制”到下标为0到4的结构体变量中,然后更新下标为5的结构体变量,此时根据公式2-1和公式2-2进行计算得到的车速为0.2秒-1.2秒之间的平均速度。这种方式计算得到的车速实时性更强,而且车速变化更加平滑,反映在指针的变化上也更加平稳平滑,能得到更佳的视觉体验,其代码实现如下: void SpeedDetect(void) {    uint16_t i,j;   uint16_t Carspeed_pulse_frequency=0;   if(1==Speed_detect_enable){     if(1==Timer[SPEED_PULSE_ACCUMU_200MS].overflow_flag){       for(i=0;i
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-9-14 14:12 , Processed in 0.076732 second(s), 18 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表