这是车辆电子控制技术的一个课程作业:
设计一个电控系统(硬件和软件),该系统可按照SAEJ1939采集发动机油门踏板和发动机转速信号,如果监测到的发动机转速超过1600rpm,则控制发动机转速稳定工作在1600rpm
要求:画出电路原理PCB图(自行选择单片机、接口电路绘图软件)给出相关的源程序(编程语言不限)。
备注:禁止任何形式的抄袭,发现抄袭无论被抄袭者还是抄袭者,该作业一律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
字节
状态—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
字节
状态—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时,喷油