XCP协议在以太网上实现的配置
1. XCP协议在以太网上实现
(1)背景与需求
- 带宽限制问题:CAN 2.0标准最大带宽仅1M,即使CAN FD标准也小于10M,实际使用中仅采集几个高速数据就可能占满总线带宽。
- 应用场景需求:复杂标定工作中,XCP协议在CAN线上运行受带宽限制,需频繁调整数据采集对象和周期。
- 解决方案:将XCP协议移植到以太网上,利用以太网更高带宽满足实际需求。
(2)配置设备窗口
- 物理连接差异:XCP on IP使用以太网与控制器连接,区别于XCP on CAN的CAN总线连接。
- 配置一致性:除物理总线类型不同外,其他配置部分与XCP on CAN基本一致。
(3)启动工程并配置
- 工程相似性:工程结构与XCP on CAN高度类似,启动后可正常获取ECU数据。
- 实时修改能力:支持实时修改信号参数(如正弦波振幅),数据采集功能正常。
- 带宽优势:以太网XCP可采集大量数据(采样周期短至1毫秒),仅占用19%以太网带宽,远优于CAN网络。
- 报文差异:以太网报文突破CAN的8字节限制,大幅提升通信带宽和时效性。
- 功能实现:同一应用层协议在CAN和以太网总线均能实现XCP功能,但以太网提供更高灵活性。
2. XCP协议的网络层级关系
(1)层级划分
- 应用层到传输层:由BSW的XCP模块及其内部XCP on IP传输层协议实现;
- 网络层:由SOAD模块和TCP/IP模块实现;
- 数据链路层:由BSW的ETHIF模块实现;
- 物理层:由ETH Controller(ETH驱动)实现。
(2)配置差异
- 相比XCP on CAN,XCP on IP新增网络层配置;
- 需定义ECU的socket连接、网络地址传输协议等CAN通信中无相关的配置项。
(3)数据传输流程
- 发送过程:XCP模块→XCP on IP→SOAD→TCP/IP→ETHIF→ETH Net;
- 接收过程:ETH Net→ETHIF→TCP/IP→SOAD→XCP模块;
- PDU转换:SOAD模块将套接字内容转换为PDU,实现AUTOSAR BSW层与以太网通信的交互。
3. 实际操作
(1)配置步骤
- 必要模块检查:开始前确认xcpiip相关模块已创建,包括叉CP核心模块、TCP/IP、so AD either if和eth模块;
- 配置顺序原则:采用自底向上方式,先在底层声明上层可用的元素;
- 复用性说明:若已完成以太网通信配置,eth和if模块无需额外修改;
- 新增需求:需在TCP/IP模块的网络层新建socket链接,供xCP模块使用。
(2)TCP协议配置
① TCP协议的config创建
- 创建流程:在TCP IP模块中新建TCP协议的config,系统自动填充默认内容;
- 配置继承:沿用以太网章节已完成的general配置(含IPV4地址、socket owner和UDP配置)。
② TCP协议的config配置
- 关键参数设置:
- 拥塞控制:禁用TCP congestion avoidance enabled;
- 延迟确认:关闭delay acknowledgement enable;
- 动态重传:禁用TCP dynamic re tx timer enable;
- 上界值:upper bound设为60(默认值过小);
- 快速恢复:启用fast recovery enable;
- 挥手超时:TCP fee wait to time out设为3;
- 保活机制:keep alive probes设为5,最大重连次数3;
- 缓冲区:最大发送buffer per socket设为1500(原4096过大);
- 分段生命周期:tc pm sl设为5秒(需小于默认值);
- 接收窗口:receive window max设为1500;
- 重传超时:retransmission timeout设为1;
- 同步重置:TCP同步最大重置次数设为5。
③ 参数配置的依据与建议
- 网络适配原则:
- TTL设置:根据网络规模确定,示例给10;
- 用户超时:user timeout从0调整为15;
- ZWP配置:启用z WP,max retries从255降为100;
- 调试建议:参数需结合具体网络场景调整,可参考工程实例验证;
- 性能影响:参数配置直接影响通信表现,调试阶段需与配置联动检查。
④ TCP协议站的配置说明
- 全局性说明:当前配置针对整个TCP协议栈,与具体功能通道无关;
- 通道关联:具体通道配置在socket配置阶段完成;
- 完整性检查:确认TCP模块已提供TCP和UDP传输协议配置。
⑤ IP地址的配置
- 地址复用:可继续使用以太网通信的IP地址;
- 新增规则:如需为xCP单独配置地址,需在TCP模块新增声明;
- 地址绑定:必须为TCP模块声明控制器网络地址,才能正常使用传输协议;
- 元素检查:配置完成后确认所有必要元素已完备。
⑥ SOAD模块衔接
- Socket创建:需在SOAD模块新增供xCP使用的socket连接;
- 连接声明:需指定使用的TCP/UDP协议及远程通信站的地址端口;
- 配置重点:SOAD BSW modules的配置是主要工作内容。
(3)SOAD配置
① 配置SOAD BSW模块
- 模块声明:需要声明X7P模块来使用SOED模块;
- 新建模块:在以太网通信建立PDUR模块后,需要新建X7P模块。
② 配置SOAD主要工作
配置Routing Group
- 建立目的:方便初始化时快速使能和关闭路由;
- 配置内容:
- 建立4个Routing Group:以太网通信收/发、XCP通信收/发;
- ID保持默认不配置;
- 初始化时enable选择“是”。
配置Socket Connection Groups
- 命名规范:为区分XCP通信,修改以太网通信的UDP0名称;
- 配置步骤:
- 先创建所需元素;
- ID不进行引用;
- header enable选择FALSE;
- 端口号在0-65535之间随机选择,本地端口暂定为13406。
配置Socket Connections
- 远程配置:
- 定义同一网段内的远程地址和端口;
- 声明使用的通信协议;
- 活动时间:设置为7200(较长持续时间);
- XCP UDP配置:
- 选择local IP address assignment;
- 使用远程IP(需结合以太网网络层知识填写),暂定为10000端口;
- 声明UDP连接方式;
- 监听模式选择FALSE;
- TCP配置参考:可参考COM的TCP配置方式;
- PDU关联:需将SOAD与AUTOSAR层BSW中的PDU进行关联。
③ 配置ECU模块
- 创建a rx mail文件存储e cuc:
- 专用文件创建:以太网通信部分需专门创建a rx mail文件,存储与以太网通信相关的e cuc配置数据;
- 存储位置:使用分裂式窗口在工程导航栏中找到对应存储位置;
- x CP模块下的配置:
- 配置位置选择:将e cuc配置放置在x CP模块下管理;
- 模块间通信:考虑xsp模块与so AD模块之间的信息交换需求。
④ 交换xsp模块到so AD模块的信息
- 通信协议规划:未来可能使用TCP两路和UDP两路通信;
- PDU创建数量:需创建四个PDU满足通信需求。
⑤ 配置的命名与长度选择
- 命名重要性:配置时需特别注意命名规范;
- 长度选择:选择1024作为标准长度配置,其余配置按此标准类推。
⑥ 配置的耐心与工具跳转问题
- 工具特性:配置工具常出现不知名跳转,需保持耐心;
- 写入过程:完成配置后工具需将内容写入AR XML文件,检索元素耗时较长;
- 等待提示:切换配置选项时触发写入过程,需适当等待。
⑦ 配置的保存与返回so ED模块
- 保存操作:完成e cuc配置后及时保存;
- 后续操作:返回so ED模块继续其他配置。
⑧ 灵活使用筛选功能
- 元素管理:配置元素增多后,需灵活使用筛选功能提高效率;
- 操作技巧:合理运用筛选快速定位所需配置项。
⑨ 配置SOAD Tx Pdu Route
- 配置层级:需先完成第一级目录配置,才能进入第二级目录配置;
- 核心功能:建立XCP模块使用SOAD发送的socket连接。
⑩ 进入第二级目录的配置
- 声明内容:需声明整个socket的route destination;
- 配置顺序:完成第一级目录配置后自动进入此阶段。
⑪ 引用socket connection group
- 关键步骤:必须引用预先建立的socket connection group;
- 配置目的:为后续路由配置建立基础连接框架。
⑫ 增加routing group
- 后续操作:增加路由组后需完成UDP的TX配置;
- 配置关联:路由组与之前引用的socket连接组形成完整通信链路。
⑬ 完成udp的tx的配置
- 配置重点:主要完成UDP传输协议的发送端配置;
- 验证方式:通过数据包发送测试验证配置正确性。
⑭ 建立主机发送的以太网连接
- 连接类型:建立SOAD socket roots形式的以太网连接;
- 功能定位:作为主机发送数据的物理层通道。
⑮ 新建元素并命名
- 操作步骤:新建两个配置元素并命名;
- 配置原则:名称需具描述性且符合命名规范。
⑯ 引用socket connection group并声明地址
- 第一层配置:再次引用socket connection group;
- 地址声明:明确指定链接的目标地址参数。
⑰ 选择rx user、type、pdu reference和routing group
- 关键参数:
- RX User选择XCP;
- Type选择IF;
- PDU Reference选择ECUC中建立的接收PDU;
- Routing Group选择UDP;
- 配置顺序:完成此步骤后进入TCP配置阶段。
⑱ 新建文件夹并引用x CP所使用的TCP的pdu
- 文件夹要求:需新建蓝色文件夹;
- 引用注意:必须选择RX PDU而非TX PDU;
- 错误处理:引用错误需及时更正。
⑲ 引用routing group并完成so AD部分的配置
- 最终步骤:正确引用routing group完成全部配置;
- 配置验证:确认XCP NI P网络层配置完整;
- 后续工作:准备进入上一级配置阶段。
⑳ 配置传输层和应用层
- 配置位置:所有传输层和应用层配置均在XCP模块中进行;
- 前期准备:已完成XCP模块的General配置和Events Channel配置。
配置TCP
- 协议声明:第一条transport layer声明给TCP使用;
- 关键参数:
- Max CTO/DT0:设置为255以突破总线限制(默认值8偏小);
- Transport Layer Tab:选择Internet TCP;
- 一致性协议:选择ODT(On-Demand Transmission);
- PDU配置:
- 新建TCP的RX PDU和TX PDU;
- 映射Event Channel到XCP通道;
- 核心映射:需将ECUC中定义的SOAD映射到XCP的PDU。
配置UDP
- 协议声明:第二条transport layer声明XCP协议运行在UDP上;
- 配置流程:
- 完成UDP基础配置;
- 建立对应的RX PDU和TX PDU;
- 配置TX Package Type时需多选:Response Error Event、Server选项;
- 注意事项:保持其他参数默认配置。
二、知识小结
知识点 | 核心内容 | 考试重点/易混淆点 | 难度系数 |
---|---|---|---|
XCP协议基础 | XCP协议是用于标定和测量的通信协议,支持CAN和以太网等不同总线 | CAN总线带宽限制(最大1M) vs 以太网带宽优势 | ⭐⭐ |
XCP on CAN的局限性 | 在CAN总线上,XCP协议受限于带宽,仅能进行有限的数据采集和标定 | 带宽占满问题:高速DAQ可能耗尽总线资源 | ⭐⭐⭐ |
XCP on IP的优势 | 以太网实现(XCPoIP)大幅提升带宽和灵活性,支持更复杂的数据传输 | 以太网报文突破8字节限制,支持高频率采样(如1ms周期) | ⭐⭐ |
XCPoIP的协议栈架构 | 分层实现:应用层(XCP模块)→传输层(XCPoIP)→网络层(SoAd/TCPIP)→数据链路层(EthIf) | 新增网络层配置:需定义Socket连接、IP地址等 | ⭐⭐⭐⭐ |
TCP/IP协议栈配置 | 关键参数调整(如TCP重传超时、窗口大小)以优化XCP通信性能 | 动态重传计时器 vs 固定超时值的选择 | ⭐⭐⭐ |
SoAd模块配置 | 建立Socket连接组(UDP/TCP),关联XCP模块与底层协议栈 | PDU路由映射:需与ECUC模块定义的PDU严格对应 | ⭐⭐⭐⭐ |
XCP模块扩展配置 | 新增传输层(TCP/UDP),配置最大报文长度(如255字节突破CAN限制) | ODT一致性模式 vs 流模式选择 | ⭐⭐⭐ |
实操演示对比 | 以太网XCP实现:同时采集多通道数据(带宽占用仅19%) vs CAN带宽瓶颈 | Trace窗口对比:以太网报文长度灵活性显著提升 | ⭐⭐ |