UDS on CAN (DoCAN) - ISO 15765

发布时间:2026/8/24 15:31:13

UDS on CAN (DoCAN) - ISO 15765
定义ISO15765-2 标准主要内容是Transport protocol and network layer services即传输层和网络层的服务根据ISO7层模型此层的下一层级是数据链路层和物理层上一个层级是会话层和应用层。网络层负责在不同网络间传输数据包并处理数据的路由选择使数据能够从源地址传输到目的地址。其存在的目的是为了解决ISO 11898协议中定义的经典CAN数据链路层与ISO14229协议中定义的应用层彼此之间数据长度不统一的问题。经典CAN数据链路层最大能够支持8个字节但ISO 14229并不仅仅是为了CAN总线设计的最大容量达到4095个字节。比如VIN码是17个字节CAN总线必然需要传递3帧才能传完VIN码那么如何科学、快捷、安全地将多个字节通过经典CAN来进行传输就成了一个需要解决的问题ISO 15765-2 协议由此诞生。基于CAN的UDS诊断服务通过network protocol data unit网络协议数据单元即N_PDU来实现而别的数据传输且两个网络实体时间的通信必须遵循N_PDU的格式和定义N_PDUN_PDU的格式主要由3部分组成N_AI, N_PCI, N_Data地址信息协议控制信息数据N_AIN_PCIN_DATAN_AI表示网络地址信息即通信双方都需要知道跟谁通信地址是什么在CAN里面就表示CAN ID常规寻址对于11位CANIDN_AI映射到CANID但没有规定N_AI与CANID的具体映射关系常规固定寻址对于29位CANID与混合寻址编排方式类似完整定义了N_AI如何映射到29位CANID上扩展寻址对于11位CANIDN_AI中的N_TA映射到CAN数据帧的第一个字节N_AI中的其它域映射到CANID混合寻址11位或者29位CANID仅用于远程寻址N_PCI表示协议控制信息规定了N_PDU所携带的数据的组织形式N_Data表示网络数据即N_PDU所携带的数据内容N_AI和N_Data很容易理解就是地址信息和数据信息重点在于怎样合理的把数据发送出去也就是以什么样的形式发送这就涉及到N_PCI的定义对于CAN网络通信由于标准CAN的传输数据上限为8个字节对于需要传输数据比较大的情况往往就需要通过网络层的N_PDU来控制保证数据合理、高效、完整的传输到目标接收方那么可以将N_PUD分为4种数据帧单帧SF首帧FF连续帧CF流控帧FC其中不同帧种的N_AI, N_PCI, N_Data定义又有所不同对于一组数据需要以什么样的形式发出取决于该数据的长度单帧当数据的长度小于等于7Byte时就以单帧的形式进行发出单帧的N_PCI为0000用16进制表示就是0在第一个字节中高四位表示N_PCI低四位表示数据长度即单帧的第一个字节为0xx为单帧的数据长度首帧当数据的长短大于7Byte时就需要以首帧连续帧的形式发出首帧的N_PCI为0001用16进制表示就为1即首帧的第一二个字节为1xxxx xx为首帧的数据长度低四位第2个Byte用于表示首帧的数据长度连续帧对于连续帧跟在首帧之后的数据帧其N_PCI为0010用16进制表示就为2低四位表示连续帧的序号SNSequence Number即连续帧的第一个字节为2xx为连续帧的序号123···最长为15使用这个机制的目的就是为了让发送方按顺序发送CF并且接收方在接收CF的时候能根据 SN 来判断 数据帧 是否按照正确顺序来接收从而做出相应的判断。而对于接收方来说是否能够一次性接收大量数据取决于接收方发给发送方的流控帧流控帧流控帧的N_PCI为0011用16进制表示就为3即流控帧的第一个字节为3x其中流控帧中包含了需要告诉发送方的一些信息比如Byte1的低四位表示Frame status(FS)表示接收方对发送方的数据传输能力的反馈主要有三种0000表示继续发送(CTS)即正常接收和数据处理0001表示等待时间(WT)即接收方需要暂停数据传输通知发送方继续等待新的流控帧(N_PDU)的到来并重新设置 N_BS 定时器0002表示溢出overflow接收方的缓冲区已满无法接收更多数据Byte2的BS定义表示接收端在发送下一帧流控帧之前允许发送端连续发送的最大连续帧个数当值为00时表示发送端不用拆分数据发送端应该不停地发送剩下的数据当值为01-FF时用于指示发送方在没有接收到下一帧流控帧期间能发送的最大数目的连续帧。Byte3的Stmin定义表示发送端发送连续帧的最小间隔时间。00-7F间隔时间范围为0ms-127ms网络层时间参数S:send发送方R:receive接收方N_As: 发送方发送完首帧的时间主要取决CAN速率N_Br: 接收方接收到首帧发出流控制帧的时间Developer设计N_Cs: 发送方接收到流控制帧发出连续帧的时间Developer设计帧的传输单帧单帧的传输比较简单数据的第一个字节为数据的长度后面的字节为具体的数据内容例如22 10 20空闲位用0xFF填充填充不一定都是0xFF具体看OEM厂商定义Byte0Byte1Byte2Byte3Byte4Byte5Byte6Byte70x030x220x100x200xFF0xFF0xFF0xFF多帧多帧的情况就比较复杂接收端收到首帧后需要发送流控帧给发送端告知发送端自己在发送下一次流控帧之前能够接受的最大数量的连续帧BS告知不要发太多以及两个连续帧之间的最小间隔时间STmin告知不要发的太快发送端在收到流控帧的要求后按照要求继续发送连续帧接收端也不断接收连续帧若接收端已经收满BS数量的连续帧且与首帧中包含的数据长度对于发现还没接受满则会继续发送流控帧以此类推。物理寻址和功能寻址物理寻址可以理解为ecu设备之间点对点的通信支持网络层所有消息类型功能寻址类似于广播形式功能寻址为单帧请求ECU应该忽略所有非单帧的功能寻址信息like 首帧单帧0x0X首帧0x1X连续帧0x2X流控帧0x3X

相关新闻

STM32与LP5812实现高效RGB LED灯光控制方案

STM32与LP5812实现高效RGB LED灯光控制方案

2026/8/24 3:22:26

1. 项目背景与核心价值在智能硬件和交互式设备设计中,灯光效果已经成为提升用户体验的关键要素之一。从游戏外设的沉浸式光效到智能家居的环境氛围调节,动态可编程的RGB LED系统正在重新定义人机交互的视觉语言。LP5812作为一款专为RGB LED设计的驱动芯片…

解锁Unreal Engine 5体积渲染新境界:OpenVDB与NanoVDB完整指南

解锁Unreal Engine 5体积渲染新境界:OpenVDB与NanoVDB完整指南

2026/8/23 19:56:09

解锁Unreal Engine 5体积渲染新境界:OpenVDB与NanoVDB完整指南 【免费下载链接】unreal-vdb This repo is a non-official Unreal plugin that can read OpenVDB and NanoVDB files in Unreal. 项目地址: https://gitcode.com/gh_mirrors/un/unreal-vdb 想要…

TP-Link智能插座终极指南:Python自动化控制完整实战

TP-Link智能插座终极指南:Python自动化控制完整实战

2026/8/22 11:09:31

TP-Link智能插座终极指南:Python自动化控制完整实战 【免费下载链接】tplink-smartplug TP-Link WiFi SmartPlug Client and Wireshark Dissector 项目地址: https://gitcode.com/gh_mirrors/tp/tplink-smartplug TP-Link智能插座(如HS-100和HS-1…

6.24华为OD机试真题 新系统 - 云服务安全策略最优选择 (JavaPyCC++JsGo)

6.24华为OD机试真题 新系统 - 云服务安全策略最优选择 (JavaPyCC++JsGo)

2026/8/24 15:24:14

云服务安全策略最优选择 2026 华为OD机试真题 6月24日华为OD上机新系统考试真题 100 分题型 点击查看华为 OD 机试真题完整目录:2026最新华为OD机试新系统卷 双机位C卷 真题题库目录|全覆盖题库 逐点算法考点详解 题目描述 在云服务中,有…

阿里Qwen-UI-Agent撬动算力生意

阿里Qwen-UI-Agent撬动算力生意

2026/8/24 15:24:14

很多人以为,阿里这次组织架构调整,把云智能集团和平头哥合并,是为了“造芯”。但截至本文成稿,阿里官方并未宣布平头哥并入云智能集团——市场流传的“合并”更可能是一种战略协同信号。这次调整真正要讲的,是一张“入…

Ubuntu 网络不可达问题排查与解决指南

Ubuntu 网络不可达问题排查与解决指南

2026/8/24 15:24:14

1. 问题现象 在 Ubuntu 系统中,你可能会遇到“网络不可达”的错误,具体表现为: 无法通过浏览器访问任何网站。终端执行 ping 或 curl 命令时,返回“Network is unreachable”错误。系统托盘网络图标显示断开连接或受限连接。无法…

Hive的介绍和部署

Hive的介绍和部署

2026/8/24 15:24:14

一、Hive简介 Hive 是一个框架,可以通过编写sql的方式,自动的编译为MR任务的一个工具。 在这个世界上,会写SQL的人远远大于会写java代码的人,所以假如可以将MR通过sql实现,这个将是一个巨大的市场,FaceBook…

Minecraft-Region-Fixer:一条命令完成区块数据修复的完整指南

Minecraft-Region-Fixer:一条命令完成区块数据修复的完整指南

2026/8/24 15:24:14

Minecraft-Region-Fixer:一条命令完成区块数据修复的完整指南 【免费下载链接】Minecraft-Region-Fixer Python script to fix some of the problems of the Minecraft save files (region files, *.mca). 项目地址: https://gitcode.com/gh_mirrors/mi/Minecraft…

通义千问本地部署只需4步:用 FlashAI 免费离线跑通大模型

通义千问本地部署只需4步:用 FlashAI 免费离线跑通大模型

2026/8/24 15:14:14

通义千问本地部署只需4步:用 FlashAI 免费离线跑通大模型 【免费下载链接】通义千问 FlashAI一键本地部署通义千问大模型整合包 项目地址: https://ai.gitcode.com/FlashAI/qwen 想在本地电脑上跑起通义千问,又怕折腾环境、担心数据外传&#xff…

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

2026/8/23 0:02:09

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

2026/8/23 0:02:09

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

2026/8/23 0:02:09

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

OpenModScan:免费跨平台 Modbus 主站调试工具,让现场通讯验证一键搞定

OpenModScan:免费跨平台 Modbus 主站调试工具,让现场通讯验证一键搞定

2026/8/24 0:03:28

OpenModScan:免费跨平台 Modbus 主站调试工具,让现场通讯验证一键搞定 【免费下载链接】OpenModScan Open ModScan is a Free Modbus Master (Client) Utility 项目地址: https://gitcode.com/gh_mirrors/op/OpenModScan OpenModScan 是一款开源免…

WechatHook 终极指南:5大核心能力详解,3分钟看懂微信自动化

WechatHook 终极指南:5大核心能力详解,3分钟看懂微信自动化

2026/8/24 0:03:28

WechatHook 终极指南:5大核心能力详解,3分钟看懂微信自动化 【免费下载链接】WechatHook Enjoy hooking wechat by Xposed....Accessibility...and so on... 项目地址: https://gitcode.com/gh_mirrors/we/WechatHook WechatHook 是一个基于 Xpos…

如何在ThinkPad X390上安装macOS:OpenCore EFI完整指南

如何在ThinkPad X390上安装macOS:OpenCore EFI完整指南

2026/8/24 0:03:28

如何在ThinkPad X390上安装macOS:OpenCore EFI完整指南 【免费下载链接】ThinkpadX390-Opencore-EFI macOS Catalina & Big Sur & Monterey on ThinkPad X390 (Hackintosh) 项目地址: https://gitcode.com/gh_mirrors/th/ThinkpadX390-Opencore-EFI …

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/22 2:02:26

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/22 4:13:47

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/22 1:32:34

告别游戏崩溃:XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…