【汽车电子】关于XCP协议开源实现XCPlite-5.3的分析与使用

一、引言

【源码地址】:XCPlite-5.3

vector官网,一共给出了XCP协议的三个实现版本,三个实现版本之间的实现内容如下:

  • XCPlite : 基于ASAM XCP V1.4 实现的XCP轻量版
  • XCP Professional Driver : 包含了ASAM规范的有用扩展,并支持基于工具的配置。可用于Vector CANbedded基础软件
  • MICROSAR XCP: 包含上面一个版本的所有功能特性,并基于AUTOSAR规范。可用于Vector MICROSAR基本软件。

本文对github上由vector开源的XCP协议实现版本XCPlite-5.3进行简要分析。

二、编译运行

(1)编译环境安装:
	 sudo apt-get install cmake g++
(2)资源获取:
	 git  clone  https://github.com/vectorgrp/XCPlite.git
(3)编译
	cd  XCPlite
	git  checkout V5.3
	cd  C_Demo
	mkdir   build && cd  build
	cmake  ..
	make
(4)运行
 		 ./C_Demo.out -bind 192.168.1.110 -port 5555 -tcp
         -bind : serverip  当前IP
         -port: 固定 5555
         -tcp : tcp/udp

三、CANoe下的XCP工具使用

使用CANoe的XCP工具与XCPlite模块通信搭建。(VN5650的使用的以太网口配置,参照北汇培训文档)

1、CANoe导入xcplite生成的a2l文件

2、导入时选择基于TCP的连接

3、A2L下 网络参数调整 HOST: 初次导入需要IP调整(C_demo 作为TCP server)

4 、在XCPlite启动的前,需要选择 测量 参数 , 被选择参数 后续可以更改 采样方式

5.启动 CANOE 的 xcp(确保网络配置已完成),执行

四、源码分析

4.1 概述

该版本基于ASAM XCP Protocol Layer V1.4实现。

支持以下命令:

  1. GET_COMM_MODE_INFO
  2. GET_ID GET_VERSION
  3. SET_MTA UPLOAD
  4. SHORT_UPLOAD
  5. DOWNLOAD
  6. SHORT_DOWNLOAD
  7. GET_CAL_PAGE
  8. SET_CAL_PAGE
  9. BUILD_CHECKSUM
  10. GET_DAQ_RESOLUTION_INFO
  11. GET_DAQ_PROCESSOR_INFO
  12. GET_DAQ_EVENT_INFO
  13. GET_DAQ_LIST_INFO
  14. FREE_DAQ
  15. ALLOC_DAQ
  16. ALLOC_ODT
  17. ALLOC_ODT_ENTRY
  18. SET_DAQ_PTR
  19. WRITE_DAQ
  20. WRITE_DAQ_MULTIPLE
  21. GET_DAQ_LIST_MODE
  22. SET_DAQ_LIST_MODE
  23. START_STOP_SYNCH
  24. START_STOP_DAQ_LIST
  25. GET_DAQ_CLOCK
  26. GET_DAQ_CLOCK_MULTICAST
  27. TIME_CORRELATION_PROPERTIES

限制:

  • 不支持8位和16位CPU,仅支持在32位或64位Linux和Windows平台上进行测试
  • 不支持Motorola字节序(大端)
  • 不符合misra规范
  • ODT的总数限制为64K
  • ODT条目的总数限制为64K
  • 固定的DAQ+ODT 2字节DTO头
  • 固定的32位时间戳
  • 仅支持动态DAQlist分配
  • 不支持恢复
  • 不支持事件过载指示
  • DAQ不支持预分频器
  • 不支持ODT优化
  • 不支持Seed & key
  • 不支持Flash programming

4.2 项目结构

这份源码给出了XCP的c语言实现版本和c++实现版本,结合项目实际情况,本章节对C++实现版本进行分析:

一级目录 二级目录   文件说明
XCPLite-5.3  
  CPP_Demo  
  CANape CANape配置
CMakeLists.txt  
main_cfg.h 该文件由main_cfg.h.in生成,定义了一些关于XCP协议层与传输层以及A2L,默认ip地址与端口方面的宏
main_cfg.h.in 配置文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Pyrojewel_js

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值