这是车辆电子控制技术的一个课程作业:
备注:禁止任何形式的抄袭,如发现抄袭无论被抄袭者还是抄袭者,该作业一律0分。
发动机转速信采集与控制的设计
作业分析:为完成此项目,首先要确定硬件系统,从而利于进行软件的设计;第二了解SAEJ1939通讯协议,以便进行发动机油门踏板信号和发动机转速信号的解析;第三进行软件编程,实现对硬件系统的初始化,通过CAN总线接收油门踏板信号与转速信号的数值,控制电路实现对发动机稳定转速1600rpm的控制。
(一)硬件系统设计
系统核心MCU采用MC9S12XDP512单片机,负责采集传感信号,实现CAN总线通讯,输出信号控制输出电路。整车硬件系统采用MC9S12XDP512单片机,由频率量采样电路、模拟量采样电路、驱动电路、CAN总线通讯电路组成,通讯速率250kps。
图1 硬件系统原理
频率量采样电路实现对发动机转速、空气流量传感器等具有脉冲输出的功能信号的采集,同时也能实现对开在信号的采集。
模拟量采样电路可以实现对怠速、点火、启动、空档、空调等开关信号的采集,也能实现对空气流量传感器、曲轴、凸轮轴、节气门等位置传感器信号的采集,还能实现对进气、冷却液等热电阻温度传感器信号的采集。
驱动电路实现对电磁喷油器的PWM控制,对电动汽油泵继电器的通断控制。
CAN总线接口电路实现与整车总线的连接,采集发动机转速、油门的开度信号;实现数据的上传;实现软件升级下载。
1. 供电电路设计
图2 供电电路设计
设定车载供电为24V,电压波动范围是16V至32V。如果车载供电电压为12V,则将LM2937-12的输入与输出短接即可。在此电路设计中增加输入电压钳位保护,利用SMCJ36A将输入电压保护在36V以下,实现对LM2575的保护;利用SMAJ6.0A将单片机工作电压保护在6V以下,防止在调试时操作不当,由于电压过高损坏单片机。
车载传感器可由VCC或+12VDC、+24VDC供电。
2. CAN总线电路设计
图3 CAN总线电路设计
相对而言,PCA82C251相对其它芯片TJA1050、TJA1040、具有更广范围的供电电压,因此选用82C51。这终端电阻设置在总线拓扑的首尾,并在CANH和CANL上,通常而言总线距离在500m内这两个电阻为120Ω,由于车辆内部总线长度不会超过500m,因此装甲车辆的CAN总线的终端电阻为120Ω。
在总线上,串联两个5.1欧的电阻,起到限流作用,保护82C51,同时增加保护二极管PESD1CAN。
3. 模拟量采样电路设计
图4 模拟量采样电路设计
模拟量输入与开关信号输入共用电路。实现对0-5V信号的AD转换,以及0-24V开关信号的检测。此电路也可实现对频率量的检测,只需将电路与单片机的输入捕捉通道连接即可,对MC9S12而言,接到PT通道即可。
4. 驱动电路设计
图5 额定电流3.7A最大瞬态电流12A驱动电路设计
驱动电路设计了两类,一类是驱动小电流负载的,额定电流为3.7A,但实际中会降额使用,一般不大于2A电流的负载会使用这个电路,对于喷油的电磁阀是适用的。当负载电流大时,可以使用图6的驱动电路。
图6 额定电流44A最大瞬态电流90A驱动电路设计
这两个驱动电路,均具有状态反馈功能,控制信号加上后,是否输出24V,这是可以通过反馈的开关信号检测的。这有利于实现故障诊断功能。
利用软件Altium Designer(16.0)完成了四层板的设计,如图7所示。
图7 四层板设计(隐藏了中间两层)
(二)信号解析
根据作业要求,要确认SAEJ1939协议中发动机油门踏板和发动机转速信号的形式,因此查《SAE-J1939-71协议》查到如下相关章节:
5.3.6电子发动机控制器#2:EEC2
传输循环率: | 50ms | |||||
数据长度: | 8 字节 | |||||
数据页面: | 0 | |||||
PDU格式: | 240 | |||||
PDU特定: | 3 | |||||
默认优先值: | 3 | |||||
参数数编号: | 61443(00F00316) | |||||
字节 | 1 | 状态—EEC1 | 8-7 | 未定义 | ||
6-5 | 道路速度极限状态 5.2.6.76 | |||||
4-3 | AP 换低挡装置开关 5.2.2.5 | |||||
2-1 | AP低空转开关 5.2.2.4 | |||||
2 | 加速器踏板(AP)位置 5.2.1.8 | |||||
3 | 当前载入百分比 5.2.1.7 | |||||
4 | 远程加速器 5.2.1.59 | |||||
5-8 | 未定义 | |||||
5.3.7电子发动机控制器#1:EEC1
传输循环率: | 由发动机速度决定 | |||||
数据长度: | 8 字节 | |||||
数据页面: | 0 | |||||
PDU格式: | 240 | |||||
PDU特定: | 4 | |||||
默认优先值: | 3 | |||||
参数数编号: | 61444(00F00416) | |||||
字节 | 1 | 状态—EEC1 | 8-5 | 未定义 | ||
4-1 | 发动机/减速器扭矩模式 5.2.2.1 | |||||
2 | 主动轮命令发动机—扭矩百分比 5.2.1.4 | |||||
3 | 实际发动机—扭矩百分比 5.2.1.5 | |||||
4-5 | 发动机速度 5.2.1.9 | |||||
6 | 针对发动机控制的控制设备源地址 5.2.5.298 | |||||
5.2.1.8加速踏板位置
这是指加速踏板的实际位置和最大踏板位置的比值。虽然它是用于输入对传动系统的要求,但它也可以为传动和ASR算法提供关于驱动器操作的预设信息。
数据长度: | 1字节 |
分辨率: | 0.4%/位递增,从0 % 开始计算 |
数据范围: | 0%到100% |
类型: | 测量值 |
可疑参数编号: | 91 |
参考: | 5.3.6 |
5.2.1.9发动机转速
这是指转过720度最小曲轴角的速度除以气缸的数目所得到的实际发动机转速。
数据长度: | 2字节 |
分辨率: | 0.125 rpm/位递增,从0 rpm开始计算(高位字节分辨率=32 rpm/位) |
数据范围: | 0到8031.875 rpm |
类型: | 测量值 |
可疑参数编号: | 190 |
参考: | 5.3.7 |
J1939是一种支持闭环控制的在多个ECU之间高速通信的网络协议冈。主要运用于载货车和客车上。它是以CAN2.0为网络核心。表1介绍了CAN2.0的标准和扩展格式,及J1939协议所定义的格式。表1则给出了J1939年的一个协议报文单元的具体格式。可以看出,J1939标识符包括:PRIORTY(优先权位);R(保留位);DP(数据页位);PDU FORMAAT(协议数据单元);PDU SPECIFIC(扩展单元)和SOURCE ADDRESS(源地址)。而报文单元还包括64位的数据场。
表1 CAN2.0的标准和扩展格式及J1939协议所定义的格式
CAN扩展帧格式 | SOF | 11位标识符 | SRR | IDE | 18位扩展标识符 | |||||
J1939帧格式 | 帧起始位 | 优先权3位 | R位(保) | 数据页DP | PF格式6位 | SRR位 | 扩展标识 | PF | PS格式(8位) | 源地址(8位) |
CAN | 1 | 2~4 | 5 | 6 | 7~12 | 13 | 14 | 15 16 | 17~24 | 25~32 |
帧位置 | 28~26 | 25 | 24 | 23~18 | 17 16 | 15~8 | 7~0 | |||
由表1:可得到如下计算CAN总线帧标识符的公式:
CAN_ID = [占3位的优先级(P)00B]H‘+’[参数组编号(PGN)D]H‘+’[源地址]H
注:B为二进制;D为十进制;H为16进制,最终均强制转换为16进制。
‘+’代表字符串按顺序联接在一起。
对于油门位置信息:优先级3,参数组编号61443D,源为00H,即来源于发动机1则
AcceleratorPedalPosition=[01100B]H‘+’[61443D]H‘+’[00H]H
=0CH‘+’F003H‘+’00H
=0CF00300H
因此可以得到:
油门位置 | 发动机转速 | |
所在参数组 | 61443(0x00f003) | 61444(0x00f004) |
参数在数据场的位置 | 第2字节 | 第4-5字节 |
参数范围 | 0%至100% | 0到8031.875转/分钟 |
分辨率 | 0.4% | 0.125转/分钟 |
29位标识符为 | 0CF00300H | 0CF00400H |
(三)软件设计
1. 硬件的资源分配
在设计软件之前,一定先进行硬件的资源分配,即进行信号采集,通讯,控制输出等的通道配置。如表2。
表2 控制器硬件资源分配
序号 | 内容 | 模块 | 输入/输出控制位 | 备注 |
1 | CAN通讯 | CAN0 | 采集油门与转速信号 | |
2 | 点火开关 | AD0 | AN00发动机熄火 | 采集点火开关信号 |
3 | 油泵上电继电器 | PP口 | PTP_PTP0 | PTP0=1时,油泵上电 |
4 | 电动汽油泵档位控制 | PP口 | PTP_PTP1 | 上电常位低速运行; PTP1=1时,高速运行 |
5 | 喷油器控制 | PP口 | PTP_PTP2 | PTP2=1时,喷油 |
发布评论