聊聊AUTOSAR:基于DaVinci的XCP开发与配置

标定,主要是指使用标准的计量仪器,对所使用仪器的准确度或精度进行检测是否符合标准,一般大多用于精密度较高的仪器,而汽车就属于精密度较高的“庞然大物”。

汽车标定,主要是指在整车功能确定后,对整车性能进行优化的过程,整车性能优化主要包括动力、驾驶、排放、耐久等方向。

标定功能在汽车电子开发过程中,是不可或缺的一环。为了更好地满足动力等需求,需要模拟各种车况,调校相关参数数据,进行在线标定,再将标定后的参数存储到ECU中。标定起初多为CCP标定,即通信方式只有CAN通信。随着需求的不断增加,CAN通信已渐渐不能满足通信所需,XCP标定由此出现。它是在CCP标定的基础上,支持更多的通信方式,X代表了协议栈中的多样性,如以太网、FlexRay等,以满足日益增长的标定需求。

XCP标定功能的开发非常重要,但涉及的流程很多,很多工程师初次接触时总是一头雾水,因此,本文将基于AUTOSAR架构进行XCP On Can功能介绍,为开发流程和开发方向提供参考,同时基于Vector的MICROSAR Classic软件包来说明开发及主要配置流程,而不去过多叙述XCP协议栈原理。

MICROSAR Classic软件包的主要使用工具为DaVinci Configurator Classic 和 DaVinci Developer Classic,而XCP标定功能开发主要围绕DaVinci Configurator Classic软件包的配置及调试展开说明,该软件包提供配置工具及BSW代码包,完成XCP标定功能。

XCP主要为主从通信模式,上位机为主节点,下位机即ECU为从节点。

 通过《AUTOSAR_SWS_XCP》规范文件,可了解到XCP标定的通信序列图。XCP on CAN涉及到的主要模块为XCP模块、CanIf模块及Can模块完成标定过程中的数据发送和接收。

 根据XCP on CAN 标定功能的开发流程,整理出几个所需方向,我们将按照相关流程展开叙述。

  1. CAN功能开发
  • CAN模块配置
  • 导入DBC文件

在DaVinci Configurator工具栏中,找到Input Files,打开后,点击Open the Input Files Assistant,在里面添加所需DBC文件。

添加成功后,需注意ECU Instance的选择,确认好DBC文件后,点击Update the configuration完成更新。

  • 波特率及通道配置

选择CAN模块CAN的通道,同时配置波特率。

  • CanTrcv及Port配置

配置CAN收发器及CAN硬件引脚。

 

  • CanIf模块配置
  • PDU配置

XCP协议栈主要关联XCP的PDU,PDU配置存在于CanIf模块,PDU的配置有2种方式,一种为DBC配置好,导入自动生成。另一种,可以在EcuC模块手动添加模块后,在CanIf模块添加所需PDU。

 

2.XCP协议栈配置

XCP协议栈配置主要集中在XCP模块DaVinci Configurator Classic的SIP包中,加载XCP模块,开启配置。

 

 

 XCP通信功能中,主要包括CTO和DTO两种数据包方式,传输数据方式也就是常用到的Polling和DAQ模式。Polling模式主要就是主节点发送指令,从节点根据指令应答,DAQ模式则是从节点上传数据。

 

  • DAQ功能配置
  • EventChannel配置

XCP Event都会关联DAQ List,DAQ List会放置所需上传的数据,数据以ODT存放,每一个ODT包含一条数据的地址和长度。多个ODT组成了DQA List。

XCP模块中,添加XCP Event Channel,需重点关注Time Unit和Time Cycle,上传数据的周期需要在这个两个配置选项完成。

 

 配置完成后,可添加代码,调用XCP_Event函数,周期性调用需要上传的数据,完成功能。

  • 周期函数配置

配置XCP功能相关函数,周期执行XCP协议栈功能。

  • 传输协议配置
  • XCP on Can

选择XCP协议栈通信方式,基于CAN的XCP标定。

 

  • XCPPdu配置

 

 

  • 指令功能配置 
  • 切页配置

 

 

  • 开启DAQ功能选项

 

 

  • 开启标定功能选项

 

  • 开启CRC功能选项

 

 

3.观测量及标定量地址分配

在linker文件中,分配观测量ram地址、标定量flash地址和标定量ram地址。

4.上位机环境搭建

上位机环境可使用Vector标定工具软件CANape,本文将用CANape工具进行上位机环境搭建。

CANape需A2L文件,A2L文件包含上位机与ECU通信所用的数据、地址、长度及通信信息,如XCP on Can等。

  • A2L观测量与标定量地址批量更新

A2L文件中,包含非常多的观测量及标定量数据,它们的地址如果需要变更,手动修改不是最佳的方案,可通过工具软件批量修改,节省时间。

ASAP2 Studio Editor中,可批量修改A2L变量地址,先点击Load Map File,加载elf文件,导入变量地址。

 导入成功后,点击Update,点击start进行地址批量更新。

 使用CANape创建标定工程,配置通信环境,添加database(A2L),选择CAN的硬件通道。

  • 添加观测量及观测周期

在观测量Data窗口,右键添加观测量,选择需要的观测量,并在measurement mode选择是Polling还是DAQ模式。

需要注意的是,DAQ模式需要在Event List里面添加,添加周期需和XCP模块配置中的Event Channel对应,即上位机应添加ECU所支持的周期列表。

  • 添加标定量

XCP标定功能由ECU控制器功能及上位机软件组成,上位机软件通过CAN通信,查看观测量及调整标定量,并将标定量参数保存。

5.标定功能测试

  • 测试环境准备

准备好上位机标定工程包、ECU软件包及hex烧写工具或bootloader。

  • 开始标定

点击Start,开始建立通信,并调用观测量,调整观测周期,同时测试功能,调整标定量参数。

  • 完成标定

功能调试完成后,保存所需标定量参数,保存为.par文件。

 

  • 将标定参数存入hex文件

在CANape中,打开vCDMstudio,打开.par文件,打开标定量参数,打开hex文件,批量选中.par文件中的标定量,右键Copy into,可将标定量数据,批量导入到hex对应的地址中去。

 

完成后,将hex文件烧录到ECU中,标定量参数已保存至Flash中。

ECU软件上电后,读取标定参数,开启ECU软件功能。

XCP标定在汽车电子开发中,需求很大,掌握XCP标定功能开发及工具使用,对于汽车电子开发人员具有比较重要的意义,希望本次介绍的XCP标定开发及流程,可以为大家提供明确的方向和思路,更加快速掌握XCP标定内容。

DOTRUST

VX|dotrustech

联系我们|market@dotrustech.com

  • 6
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值