UDSONIP学习
1. 仿真设置
- 仿真界面连接方式:DOIP(DoIP)的诊断仪与各控制器通过以太网连接,以太网上还包含其他节点(如DHCP协议服务器、基于TRS协议的多IP实例)。
2. 多IP的诊断仪与控制器连接
- 连接方式:通过以太网实现,依赖DHCP协议服务器为节点分配IP地址。
3. 启动仿真
(1)链接建立过程的第一个阶段
- 总线数据协商:总线上各节点通过速率协商机制声明自身支持的传输速率(单位:比特每秒),完成连接基础参数同步。
- DHCP IP分配:参与通信的节点通过DHCP服务器获取唯一网络地址(IP)。
- ARP协议使用:节点获取IP后,通过ARP协议建立ARP表,记录各节点的MAC地址与IP地址的映射关系,确保数据准确路由。
(2)链接建立过程的第二个阶段
- DOIP发现:基于UDP协议的应用层报文,实现诊断仪(Tester)与ECU的多IP(DoIP)连接建立。
- 端口使用:诊断仪通过13400端口广播报文,与每个DoIP实体建立独立连接。
(3)链接建立过程的第三个阶段
- UDS协议阶段:UDS协议运行在多IP(DoIP)连接之上,基于TCP/IP协议完成诊断仪与ECU的双向诊断数据交换。
(4)诊断的应用
- 应用类型:支持会话切换、安全访问、通信控制(Communication Control)等核心诊断功能。
- 与CAN的相似性:应用层诊断服务的使用逻辑和表现与UDS on CAN高度一致,但以太网在数据传输速率上有显著提升。
(5)诊断的交互
- 交互基础:基于以太网的TCP/IP协议(网络层),需明确IP地址和端口(Port)的映射关系。
- 速率提升:以太网的比特每秒传输速率相较于CAN标准协议(最高1M),可提升几倍至几十倍,尤其在ECU固件更新(刷写)场景优势明显。
4. UDS on IP的OSI 7层模型
OSI层级 | UDS on IP(以太网)实现 | UDS on CAN实现 | 关键标准/协议 |
---|---|---|---|
应用层 | 遵循ISO 14229标准(具体为ISO 14229-5) | 遵循ISO 14229标准(具体为ISO 14229-3) | ISO 14229(统一诊断服务) |
会话层 | 共享ISO 14229-2标准 | 共享ISO 14229-2标准 | ISO 14229-2(会话层规范) |
传输层+网络层 | 采用ISO 13400-2(DoIP协议) | 采用ISO 15765-2(CAN TP协议) | ISO 13400-2/ISO 15765-2 |
数据链路层+物理层 | 以太网标准(如IEEE 802.3) | CAN总线标准(如ISO 11898) | IEEE 802.3/ISO 11898 |
5. AUTOSAR架构下的诊断模块
(1)DOIP的配置
① 配置工程
- 配置重点:理解ISO 13400协议(即DoIP标准)的核心逻辑。
- AUTOSAR架构:
- 应用层与UDS on CAN共享统一标准(ISO 14229),仅细节存在差异,均通过DCM模块负责诊断通信管理。
- 传输层由DoIP模块处理网络协议,通过SoAd(Socket Adaptor)和TCP/IP协议栈完成数据收发。
② 配置元素
PDU配置
- PDU类型与功能:
udp so AD to do IP
:连接UDP协议下的SoAd模块与DoIP模块。udp discovery
:连接SoAd模块与DoIP模块,用于DoIP实体的发现流程。TCP连接
:用于DoIP模块的诊断数据传输(核心数据通道)。p dur连接
:通过PDUR模块连接DoIP模块与DCM模块,实现诊断数据路由。
- PDU长度设置:
- 以太网通信通用PDU:1024字节。
- UDS UDP discovery(发现阶段):256字节。
- 数据传输阶段PDU:1024字节。
- PDU总数:共需创建10个PDU——6个用于连接SoAd模块与DoIP模块,4个用于连接DoIP模块与DCM模块。
③ TCP/IP部分配置内容
SoAd模块配置
- 模块声明:在BSW Modules中添加DoIP模块,并声明其为SoAd模块的上层(Up Layer)。
- Socket建立:
- 包含UDP的广播Socket、DoIP的TCP通信Socket。
- 需建立2路Socket连接:1路UDP连接(发现阶段)、1路TCP连接(数据传输阶段)。
- Rules配置:需建立3条规则,第一条规则专门配置DoIP的discovery(发现)流程。
- 参考建议:可参考示例工程,结合以太网通信部分的配置逻辑进行细节调整。
二、DCM模块配置
1. 基于以太网通信
(1)Buffer配置
- CAN与以太网对比:在UDS on CAN中已配置2条收发Buffer;基于以太网的UDS需额外新增2条Buffer,且Buffer空间更大(适配以太网大数据量传输)。
(2)协议配置
- DSM链接协议:在DSL Protocol(Diagnostic Session Layer Protocol)下新建DSM(Diagnostic Session Manager)链接协议。
- UDSonIP链接:建立UDSonIP链接,遵循ISO 14229-5协议,Protocol ID需选择“UDSonIP”进行声明。
(3)子配置项
- PDU组成:包含Rx Protocol(接收PDU)和Tx Protocol(发送PDU),两者均与DoIP模块关联。
- 模块连接:与DoIP模块的通信通过PDUR模块实现,发送对象配置为“DcmToPdur”。
- 配置参考:可复用UDSonCAN的配置逻辑,重点关注以太网特有的参数(如Buffer大小、协议ID)。
(4)连接细节
- Rx通道:Rx Frame PDU直接连接至DCM模块,确保诊断请求数据正确接收。
- Tx通道:需仔细检查Tx通道的配置参数(如端口号、IP映射),避免数据发送异常。
三、PDU模块配置
1. PDU模块的BSW modules配置
(1)模块进入与注意事项
- 进入方式:在ECU Navigator中进入PDUR模块配置界面。
- 注意事项:需重点关注PDUR模块在BSW Modules中的层级关系,确保与上层DCM、下层DoIP模块的路由逻辑连贯。
(2)多IP(DoIP)模块的新增
- 操作步骤:在PDUR模块的BSW Modules配置中,新增DoIP模块,作为PDUR的下层数据接收/发送节点。
(3)路由表的创建
- 创建位置:在PDUR模块的“routing tables”(路由表)目录下创建路由规则。
- 路由表功能与数量:
- 功能:建立DoIP模块与DCM模块之间的双向数据路由(1条接收路由、1条发送路由)。
- 数量:共需创建2个路由表,分别对应“DoIP→DCM”(接收)和“DCM→DoIP”(发送)。
- 完成标志:完成路由表及关联元素的建立后,PDUR模块的基础路由框架搭建完成。
四、DOIP模块配置
1. DOIP General配置
配置项 | 建议配置值 | 说明与依据 |
---|---|---|
Alive check响应超时 | 0.5秒 | 可根据诊断协议标准调整,默认值符合多数场景需求 |
Development error检测 | True(开启) | 便于开发阶段定位配置或通信错误 |
DHCP选项使用 | 按需开启 | 参考TC VIP协议书:TC397工程开启,TC12工程未使用 |
实体状态表示(MA xb max byte field use) | 开启 | 用1字节表示DoIP实体状态,符合协议精简性要求 |
GID无效模式 | 255 | 默认无效值,遵循DoIP协议规范 |
非活动计时器 | 300秒(较长值) | 避免短时间无通信导致连接误断开 |
主机名最大长度 | 125 | 满足多数诊断仪上位机名长度需求 |
最大请求字节数 | 1024字节 | 与ECUC配置的PDU长度保持一致,避免数据截断 |
最大测试连接数 | 10 | 支持多诊断仪同时连接(按需调整) |
UDP连接限制(单消息) | 1 | 控制单条UDP消息的连接数,保证通信稳定性 |
节点类型 | DOIP node | 作为被诊断实体(ECU侧),需选择此类型 |
车辆通告间隔 | 0.5秒 | 符合DoIP协议标准的通告频率 |
最大通告重复次数 | 3次 | 确保诊断仪能稳定接收车辆通告消息 |
版本信息API | 按需开启 | 便于追踪DoIP模块版本,调试阶段建议开启 |
Wing ID主控 | True,模式255 | 开启主控模式,模式值遵循默认无效配置 |
- 配置依据:严格参照诊断执行标准(如ISO 13400)或OEM提供的开发规范。
- 调试建议:初步配置完成后,可根据实际通信测试结果(如连接稳定性、数据传输速率)微调参数。
2. DOIP config said配置
(1)基础配置项
- Power mode回调:如需通过Power mode触发DoIP状态切换,需填入对应的回调函数;无需求时可留空。
- RB general配置:
Further action by independent function
:设为True(开启)。- 建议开启全部3个功能选项,确保DoIP模块的功能完整性。
(2)连接配置
目标地址定义
- 需根据诊断环境需求准确填写
Target address
(目标地址),注意区分“DoIP地址”与“TCP/IP网络地址”的概念差异(DoIP地址为诊断层标识,TCP/IP地址为网络层标识)。
TCP连接引用
- 需正确引用ECUC中定义的PDU,核心配置项为“发送PDU”和“接收PDU”的引用,确保数据能在DoIP与TCP/IP栈间正常流转。
UDP连接特点
- 连接数量:需建立2路UDP连接——1路用于discovery(发现)阶段,1路用于test equipment(诊断仪)交互阶段。
- 配置方式:与TCP连接配置逻辑一致,需分别引用对应的RX PDU和TX PDU。
- 协议选择原因:
- 发现阶段用UDP:协议简单、广播效率高,适合快速定位DoIP实体。
- 数据传输用TCP:提供可靠传输(重传、校验),避免诊断数据丢失;TCP连接建立过程较复杂,不适合发现阶段。
(3)路由激活配置
- 硬线信号激活:需配置1条
routing activation
(路由激活)规则,用于激活诊断仪与ECU的DoIP连接。 - 编号规则:用“0”表示第一条路由激活标识,后续新增路由按顺序递增编号。
(4)诊断仪信息配置
- 基本参数:
- 诊断仪字数:设为1(单诊断仪场景)。
Test source address
(测试源地址):设为2(DoIP协议定义的标准概念地址)。
- 激活关联:需声明诊断仪使用的具体
routing activation
编号(如第一条路由对应编号0),确保诊断仪请求能正确触发路由。
五、知识小结
知识点 | 核心内容 | 技术对比/易混淆点 | 关键参数/标准 |
---|---|---|---|
UDS协议实现方式 | UDS可在CAN总线和以太网上实现,应用层逻辑统一,传输层协议不同 | CAN总线(低带宽) vs 以太网(高带宽) | CAN:ISO 15765-2;以太网:ISO 13400-2 |
DoIP协议栈架构 | 应用层统一ISO 14229,传输层用DoIP(以太网)/CAN TP(CAN),会话层共享ISO 14229-2 | UDSonCAN(ISO 14229-3) vs UDSonIP(ISO 14229-5) | ISO 14229-2(会话层) |
以太网诊断优势 | 传输速率显著提升,支持大数据量传输(如固件刷写) | 1000Mbps(以太网) vs 1M(CAN) | 刷写速度提升10-100倍 |
DoIP连接建立流程 | 三阶段:DHCP分配IP→UDP发现→TCP数据传输 | UDP(发现,快) vs TCP(传输,可靠) | DHCP/ARP/UDP/TCP协议 |
AUTOSAR架构实现 | DoIP模块为传输层核心,DCM模块统一管理应用层,需配置10个PDU实现链路 | DCM模块复用(CAN/以太网) vs 传输层模块差异 | 10个PDU(6个SoAd-DoIP,4个DoIP-DCM) |
DoIP核心配置项 | General配置含Alive超时、最大连接数、PDU长度等,需与ECUC配置一致 | 单字节状态表示 vs 多字节状态表示 | 最大请求字节数:1024;最大连接数:10 |
Socket配置要求 | 需建立6条通信链路,区分UDP发现通道与TCP数据通道 | UDP通道(256B) vs TCP通道(1024B) | 3条Rules配置(含1条发现规则) |
诊断会话管理 | DCM模块新增UDSonIP协议栈配置,Protocol ID需选择ISO 14229-5 | CAN Buffer(小) vs 以太网Buffer(大) | 新增2条以太网Buffer |
车辆通信拓扑 | 包含DHCP Server、TRDP节点,通过ARP协议建立MAC-IP映射 | 以太网多节点 vs CAN总线节点 | ARP表(MAC-IP映射) |