2024年3月31日发(作者:)
2020.
11
网络信息工程
基于
CANoe
和
IS015765
的
ECU
在线升级设计
陈佳臻
(
浙江商业职业技术学院
,
浙江杭州
,
310053
)
摘要
:
针对常见的基于
CAN
总线的
ECU
在线升级方案的缺陷
,本文提出了基于
CANoe
软件
、
ISO
15765
统一诊断服务的
ECU
在线升级方案
,
在基于
STM8
单片机上的倒车雷达系统上实现了该在线升级方案
。基于
CANoe
的验证方案大大提高
了
PC
端程序开发效率
。
经过测试验证
,
证明了系统的正确性和可靠性
。
关键词
:
ECU
在线升级
;
CAN
总线;故障诊断
ECU
Online
Update
Based
on
CANoe
and
ISO
15765
Chen
Jiazhen
(Zhejiang
Business
College,
Hangzhou
Zhejiang,
310053)
Abstract
:
Aiming
at
the
shortcomings
of
common
ECU
online
upgrade
solutions
based
on
CAN
bus,
this
paper
proposes
an
ECU
online
upgrade
solution
based
on
CANoe
software
and
ISO
15765
unified
diagnostic
service,
and
an
online
upgrade
solution
based
on
IS015765
unified
diagnostic
service
on
STM8
microcontroller.
The
verification
scheme
based
on
CANoe
greatly
improves
the
efficiency
of
PC-side
program
development.
The
field
test
proves
the
correctness
and
reliability
of
the
system.
Keywords
:
ECU
online
upgrade
;
CAN
bus;
fault
diagnosis
1
背景与相关研究
在
CAN
总线应用早期阶段
,
各个汽车零部件厂商在设
计在线升级功能时
,
一般使用私有通信协议,这会导致升级
系统的可靠性和通用性的问题
m
図。
目前
,
CAN
总线以及基
于
CAN
总线的协议已经有多个国际标准
。
IS015765
以及
IS014229
是使用最为广泛的诊断协议⑻皿
。
本文诊断倒车雷
达系统
,
基于
ISO
15675
协议完成了故障诊断功能以及
ECU
在线升级功能
。
其中基于该协议的
ECU
在线升级功能是其中
的难点
,
本文重点围绕该部分功能的设计和测试验证过程
。
设计基于该协议的在线升级功能
,
会提高在线升级的可靠性
和通用性
。该解决方案克服了没有标准诊断协议之前的私有
协议造成的可靠性低
,
通用性差等缺点
。
本文后续总共分成
5
个部分进行说明
,
第
2
节介绍系统
图
1
系统硬件框图
ECU
的硬件架构
,
第
3
节说明
MCU
中的软件设计
。
第
4
节介绍
基于
CAN
总线的统一故障诊断服务以及在线升级所涉及到服
务以及流程
。
第
5
节介绍
PC
端基于
CANoe
需要完成的上位机
软件设计
。
3
MCU
软件设计
该倒车雷达系统通过
LIN
总线接口连接车辆前后共
8
个超声波传感器探头,控制各个探头的休眠
,
启动
,
距离测量
等
。
CAN
总线接入车内低速
CAN
网络,系统在正常工作时
,
通过
CAN
总线接收车速
,
档位等信息
,
控制倒车雷达系统的
2
倒车雷达硬件设计
倒车雷达系统
MCU
釆用意法半导体公司的
STM8A5189,
启动
,
距离探测,
并且将接收到的障碍物距离信息发送到
CAN
总线网络中
,
由车辆仪表显示以及通过蜂鸣器进行距离提
该芯片拥有
64KB
Flash
ROM,
4KB
RAM,
拥有
CAN/LIN
总线控
制器
,
满足倒车雷达系统对通信接口的硬件需求以及
CAN
协
议栈对
ROM
和
RAM
空间大小的需求
。
示
。
CAN
总线接口同时也是倒车雷达系统的故障诊断接口
,
当系统接收到特定的
CAN
总线诊断协议报文时,
系统进入故
障诊断模式
,
停止处理倒车雷达系统正常功能报文,只处理
CAN
总线驱动器使用
NXP
公司的
UJA1065
。
该芯片同时
集成了电源管理
,
硬件看门狗以及
LIN
总线驱动器
,
可以减少
系统外设
,
提高系统可靠性
。
配置
EEPR0M
芯片
BR24L04
芯片
,
诊断仪下发的报文并且反馈处理结果给诊断仪
。
在基于
CAN
总线的故障诊断功能中
,
提供在线升级功能
用于保存擦写比较频繁的配置信息
。
是其中的一个重点功能。
具有了在线升级功能之后
,
在系统
网络信患工程
商用之后可以通过诊断仪更新倒车雷达系统的功能固件
,
从
2020.
11
断服务
,
借助于
CAN
报文格式实现
,
其中包含了超出
CAN
报文
传输长度的数据块分帧方法
、
流控制方法和数据帧的重组以
及时序等处理方法
。
而完成系统的功能更新
。
对保存在
Flash
中的程序进行擦写时
,
由于
Flash
处于
编程状态时无法从中读取程序和指令,此时只能从添加了写
4.
1
在线更新涉及的诊断服务
保护的
Flash
部分读取程序执行
。
因此将
ECU
的
Flash
内保
存的程序分为两部分
,
Application
分区和
BootLoader
分
区
。
Application
分区保存倒车雷达
ECU
正常业务的代码
,
系统绝大部分时间运行该分区的程序
;
BootLoader
分区则
IS014229
协议将诊断仪与汽车
ECU
之间的数据交互定
义为请求和响应的方式。
客户端
(
诊断仪
)
发送一个请求
,
服
务器
(
ECU
)
针对该请求执行相关操作并且反馈一个响应
。
其
中,客户端的请求都包含一个带参数的服务码
。
其中涉及到
在线更新相关的诊断服务
ID
及功能如表
1
所示
。
是用于保存基于
CAN
网络的在线升级的程序
。
该分区的代码
设置写保护
,
只能通过专用编程工具写入
,
在对
Flash
进行
擦写编程时该部分不会受到影响
。
为了将不同功能的代码保
存在
Flash
不同区域
,
可以通过在
C
代码中对全局变量以及
函数设置
#pragma
section
属性
,
对代码进行分段,然后通
过配置连接文件
*•
lkf
分别指定这两段的起始地址
,
从而将
不同功能的代码分别存放
Flash
的不同位置
。
另外
,
由于在线升级过程中涉及到系统重启和跳转等,
为了保证系统可以在正确的在两个分区正确切换
,
在软件设
计过程中,通过在
EEPR0M
中设置/清除特定标志来控制
。
表
1
在线更新涉及到的诊断服务
服务功能
服务
ID
开始诊断会话服务,
切换不同诊断模式
0x10
0x11
系统复位
,
在
bootloader
和工作模式之间切换
故障码控制服务
0x85
通信控制服务
0x28
安全访问控制
0x27
例程控制
0x31
请求下载
0x34
传输数据
0x36
请求输出结束
0x37
其中
0x36
(
传输数据
)
服务由于需要传输的数据远远
超过了单个
CAN
报文可以容纳的长度
,
因此使用多帧形式传
系统的启动过程以及状态迁移过程如下
。
4
基于统一故障诊断的在线升级服务与流程
IS014229
定义故障诊断系统的通用需求
。该协议按照
ISO
的
0SI
分层模型建立
,
统一诊断服务
(
应用层
)
位于第
7
层,而通信服务则位于第
1-6
层
。
该协议为诊断系统定义了
诊断仪和
ECU,
对二者之间的通信以及诊断服务需求进行了
规范化的通用定义
。
该协议所定义的诊断服务和通信规范可
以在各种现场总线实现
。
IS01576
是基于
CAN
总线协议对
输,其余诊断服务釆用单帧形式传输
。
4.2
在线更新流程中的会话模式及诊断服务流程
IS014229
定义了
3
种会话模式,分别时
:
缺省会话
,
扩
展会话模式和编程会话模式
。
在不同的会话模式
,
可以使用
的诊断协议有所不同
。
IS014229
中的一种实现
,
具体包括
:
网络层
,
会话层和应用
层
。
IS015765
协议将
IS014229
中定义的应用层所的故障诊
在基于诊断协议的在线更新过程中
,
系统首先从缺省会
话模式切换到扩展会话模式
,
完成故障码设置服务,停止故
障码更新
,然后通过通信控制服务
,
关闭诊断
业务报文的发送和接收,
然后切换到编程会
话模式
。
在编程会话模式,通过安全访问服务对
测试仪进行身份认证
,
认证通过之后,打开和
在线更新相关的服务权限。
为了保证可靠性,
在开始在线更新服务之前
,
首先通过程序控
制服务
,
发送擦除
Flash
数据服务
,
清除过去
的数据
。数据清除成功之后
,
通过请求下载服
务发送需要更新的数据地址和大小,
ECU
对
写入地址和大小进行校验
。
地址和写入数据
的大小在合法范围内通过数据传输服务和数
据传输结束服务服务完成
ECU
固件程序的下
载
,
Flash
写入和固化
。
最后使用
ECU
复位服
务
,
重新启动
ECU,
使其进入到正常应用当中
。
ECU
的会话模式切换以及各个会话模式下依
次执行的诊断服务如图
3
所示
。
5
PC
端设计与验证
为了在配套的诊断仪开发完成之前对
ECU
中的在线升级功能进行验证
。
PC
端验证
申耳测说
2020.
11
网络信息工程
软件基于
Vector
公司的
CANoe
软件以
及配套的
CAN
总线板块开发
[6][7][8]
»该软
件提供了
CAPL
编程语言以及配套的
CAN
总线诊断协议的接口
,
可以直接通过相
关的接口实现各种
CAN
诊断协议的报文
的发送
,
接收
,
分帧和时序控制等
,
从而
降低了
PC
端的验证程序开发工作量和
难度
。
为了验证
ECU
中代码的正确性
,
在
PC
上用
CANoe
软件作为诊断仪
,
通过
CANoe
自带的
CAPL
脚本语言完成两个任务
,
sl9
文件解析和
诊断请求命令下发
。
图
4
设计的诊断节点及对应的
CAPL
代码
过修改添加虚拟
CAN
节点使能相关功能
。
PC
段
CANoe
节点
设计
,
CAPL
脚本以及数据流程如图
4
所示
。
6
总结
本文介绍了基于
CANoe
和
ISO
15675
CAN
总线诊断协议
的倒车雷达
ECU
在线应用程序更新的整体端到端方案
,
并且
在汽车倒车雷达系统的诊断诊断以及在线升级中基于
STM8
单片机进行了具体实施
。
详细介绍了诊断服务在单片机内部
的程序分区以及处理流程
,
以及基于
CANoe
自带
CAPL
编程语
言的文件解析和诊断请求发送与响应流程
。
基于
ISO
15765
的在线升级方案便于和各类诊断仪适配
。
基于
CANoe
进行验
证
,
节省了上位机编程的工作
,
具有开发效率高的优势
。
参考文献
[1]
佟国祥
,
付礼
,
刘欢.基于
CAN
总线的
STM32
应用编
程及实现.信息技术
[J].2O15,
13(10)
:
49-52.
5.1
s19
文件解析
[2]
戚长城,
杨延相
,
张平
,
刘昌文.总线式
ECU
两级
stm8a5819
生成的二进制格式为
sl9
格式
。
PC
端测试
程序需要解析待烧写
S19
文件,
从
S19
文件从
S1
类型的记录
Bootlaoder
的设计与实现
[J].
计算机工程
,
2015,
41
⑺:
95-99.
⑶崔书超
,
柴智
,
南金瑞
.
基于
CAN
总线的纯电动汽车故
障诊断系统
[J].
车辆与动力技术
,2012,
2
:
44-47
中找到
Application
分区的起始地址和程序
。
将下载起始地址封装在请求下载
0x34
服务报文中
,
将
需要更新的程序封装在数据传输
0x36
服务中
。
在封装过程
中
,
优先将程序按照
Flash
的块编程大小封装传输
,
从而提高
⑷周涛
.ISO
15765
协议的研究与实现
[D],
合肥
:
合肥工业
大学
,2011.
编程效率
。
如果发现
S8
或者
S9
类型的记录,
则表示读取到了
文件结尾
,
S19
文件解析完毕
。
⑸
闫旭琴
,
王知学
,
李建新
.CANoe
软件在车载诊断中的应
用
[J].
应用科学
,
2009,
12
:
88-90.
⑹闫旭琴
,
王知学
,
李建新
,成巍.基于
CAN
总线的车载设
备软件升级系统
[J].
山东科学
,
2010,
23(3)
:
12-15.
5.
2
基于
CANoe
的诊断报文通信
第二个任务是按照在线更新下载流程发送相关诊断服
[7]
张丽
,
方成
,
李建秋
,
黄海燕.基于
ISO
15765
的柴油
机故障诊断接口开发
[J],
车用发动机
,
2009,
8(4)
:
务请求
,
并根据收到的反馈下发后续诊断服务请求
。
从而控
制
ECU
从正常工作模式进入到诊断模式
,
以及从诊断模式的
缺省会话模式进入到编程模式
,最后将解析好的
S19
二进制文
16-19.
⑻
胡建文
,
冒晓建
,
唐航波
,
祝柯卿
,
王俊席
,
卓斌.基于
件数据发送到
ECU,
控制
ECU
将二进制内容写入到
FLASH
当中
。
15765
协议的手持式发动机故障诊断一开发
[J],
机电
一体化
,
20
13.
5:50-55.
CANoe
诊断相关接口存在与
osek_tp.
dll
当中
,
可以通
(上接第
138
页)
136-141.
⑷祝殉
,
马文静.布卢姆教育目标分类理论对大学英语阅读
教学的启示
[J],
中国大学教育
,
2014
⑼
:
67-71.
⑸纪德奎
,
郭子超
.
学科核心素养培育中课堂教学目标转换
[2]
白雪峰.布卢姆教育目标分类理论与初中数学教学设计
[J].
课程与教学设计
,
32-34.
[3]
Lorin
W.
Anderson
等.布卢母教育目标分类学修订版
[M],
外语教学与研究出版社
,2018
⑻
:
50-68.
的困境与突破
[J],
中国教育学刊
,
2020
⑵
:
4-8.
甲耳测适
更多推荐
诊断,服务,系统,升级,功能,总线,协议,模式
发布评论