当前位置: 首页 > news >正文

J1939基础通信


一、AUTOSAR基础

1. J1939协议介绍

  • 协议定位:基于CAN总线的网络协议,用于解决传统CAN通信多字节数据传输的局限性。
  • 应用场景:适用于传输超8字节数据的场景(如汽车17字节VIN码传输)。

(1)数据传输问题

在这里插入图片描述

  • 传统方案缺陷:分次发送易数据重组失败、消耗CAN ID资源、私定协议难统一推广。
  • 解决方案:引入网络传输层,使应用层无需感知数据重组/发送细节。

(2)J1939协议特征

在这里插入图片描述

  • 基本属性:由SAE下属委员会制定,用于中重型道路车辆电子部件通信。
  • 技术特性
    • 物理层:250Kb/s比特率,采用CAN 2.0扩展ID(29位)。
    • 通信方式:支持带地址的广播(BAM)与点对点(CMDT)通信。
    • ID结构:含优先级、PGN(参数组编号)、SPN(特定参数编号)和地址信息。
    • 协议栈:覆盖物理层、数据链路层、应用层、网络传输层,具备故障诊断和网络管理功能。
    • 数据支持:支持多字节变量与多包报文收发。

2. CANoe仿真演示

(1)BAM广播传输

  • 传输机制:首帧“网络控制帧”通知节点,再连续发3个TPDT数据帧完成传输。
  • 特点:一对多发送,4帧传21字节,接收节点无需确认。

(2)CMDT点对点传输

  • 传输流程:发送方通知接收方→接收方确认容量→发送方发首包→接收方请求下包→循环传输→接收方确认完成。
  • 特点:点对点通信,8帧传21字节,每包需接收方确认,可靠性高但效率低。

3. J1939协议概念

  • 网络地址:每个节点需分配唯一网络地址标识。
  • 帧类型:控制帧(网络管理/控制)、数据帧(实际数据传输)。
  • 多包机制:支持大数据分片发送,接收端需重组。
  • 传输方式:BAM(广播)、CMDT(点对点定向)。
  • 关键参数:优先级(报文传输顺序)、PGN(参数组编号)、SPN(信号参数编号)、TP CM(传输协议连接管理)、TP DT(传输协议数据帧)。

4. 传输层配置

(1)AUTOSAR标准下的J1939协议概述

  • 协议定位:CAN总线应用层+传输层协议。
  • 学习建议:先读J1939标准文档,再结合示例理解。
  • 实现方式:AUTOSAR多模块协同实现。

(2)J1939 TP模块的位置与功能

  • OSI层级:传输层,介于应用层与数据链路层之间。
  • 模块位置:上层为COM模块,下层为CAN IF模块。
  • 核心功能:处理需TP层重组的所有报文。

(3)J1939 TP与普通CAN发送的比较

  • 普通CAN路径:COM → PDU R → CAN IF → CAN
  • J1939路径:COM → PDU R → J1939TP → CAN IF → CAN
  • 区别:J1939在PDU R与CAN IF间增加TP处理模块。

(4)N PDU与SDU的概念

  • SDU(Service Data Unit):PDU容器内、需TP层处理的实际数据载荷。
  • N PDU(Network PDU):组织管理网络传输、承载网络数据的新增网络传输层协议数据单元。

(5)OSI模型下应用层与J1939 TP模块的协调

  • 职责划分:应用层不关心信号重组,TP模块全权负责。
  • 协作方式:通过N PDU协同。

(6)J1939 TP模块与CAN IF模块及数据链路层的关系

  • 数据流程:TP模块传N PDU给CAN IF→CAN IF在数据链路层处理→配置CAN ID等参数→经CAN控制器发往总线。
  • 与普通CAN区别:数据来自TP模块(非COM模块)。

(7)J1939 TP模块的构成

  • 由J1939TP(本章重点)、NMR(网络管理)、DCM(诊断通信)等模块共同构成完整协议实现。

5. 实际应用场景

在这里插入图片描述

  • 主要领域:卡车控制器、BMS(电池管理系统)开发。
  • 工具建议:用ISO AB工具配置时,建议25寸以上显示器(AutoSar配置树长,125%放大倍率体验佳)。

6. 系统信息描述

(1)J1939网络描述

  • 工程结构:AutoSar工程中,System Editor的network目录有专门描述J1939网络的文件夹。
  • 网络组成:含VCU(整车控制器)和VCU controller,描述VCU用J1939收发的报文。

(2)报文处理方式

  • 报文示例:PGN100、PGN300报文均为80字节。
  • 传输方式
    • 超8字节:需J1939TP模块,用BAM/CMDT方式。
    • ≤8字节:仅需COM到CANIF定义CAN帧。
  • 教学目的:选超8字节报文案例,覆盖完整J1939配置流程。
  • 配套资料:提供AR XML、DBC文件供学习。

7. ARXML文件迁移

(1)建立网络描述的步骤

  • 文件定位:SRG工程中找到GL3网络描述,双击打开对应ARXML文件。
  • 目标文件:VCU Start工程中选dbc system description下的ARXML存储AUTOSAR元素。
  • 分窗验证:分窗显示时悬停窗口确认工程归属。

(2)移植outs package和ecu下的网络描述

  • 整体移植:将右侧outs package整体移植到左侧工程。
  • 关键组件:需同时移植ECU下的network controller和网络描述。
  • 文件管理:移植后及时关闭右侧DBC文件ARXML。

(3)移植后元素的命名更改

  • 命名适配:检查移植后元素命名与当前工程适配性,修改不匹配名称。
  • 验证方式:System Editor查看visual star工程,确认GL39网络移植成功。
  • 控制器检查:展开controller检查移植后的网络控制器。

(4)移植后多出的控制器及系统信息描述复用

  • 新增控制器:移植后会多出J1939网络专用控制器。
  • 替代方案:DBC导入、工具独立创建J1939网络、复制旧工程ARXML系统描述到新工程。

(5)BSW层配置前的建议

  • 关键检查:Signal Frame配置、ECU下VCU的connectorcontroller定义。
  • 命名规范:J1939系统信息描述名称需按工程需求明确定义。
  • 配置前提:系统信息描述清晰,BSW层才能准确检索AUTOSAR元素。
  • 错误预防:命名不规范易导致控制器/信号选择错误。

8. BSW层配置

(1)配置准备

  • 系统信息检查:配置前查看signal、pdu frame及VCU下connector/controller
  • 命名规范:修改控制器/connector名称,避免BSW层配置时找不到元素。

(2)ECUC模块配置

  • 模块添加:ECU Navigator→BSW Models→Com Stack中创建J1939TP模块。
  • 配置差异:比CAN通信多J1939TP模块。

(3)PDU描述建立

  • 文件管理:为J1939通信单独建AR XML文件,用分裂视窗显示。
  • 工程结构:ECUC模块由3个AR XML文件共同描述。

(4)SDU与NPDU区分

  • SDU特点:连接J1939TP与COM、经PDUR传输、支持超8字节(如示例中PG100 - 400为80字节)。
  • NPDU特点:协调J1939TP与CAN IF、单帧控制、PDU长度固定8字节。
  • 命名规范:SDU前缀注sdu,NPDU注明方向/类型(如点对点CMD T帧)。

(5)COM模块配置

  • 配置要点:与CAN配置类似,信号映射对象从IPDU变为SDU,暂未涉及网络传输层。

(6)信号映射示例

  • 命名规则:加J1939前缀和PGN编号区分。
  • 引用建立reference中选系统描述的对应signal。
  • 验证方式:正确引用后invalid符号消失。

二、IPDU信号承载

  • 信号承载:需用IPDU承载信号,是传输基础框架。
  • 配置关联:IPDU配置与CAN配置高度一致。

1. PG100配置

  • 文件位置:配置信息在PG100.TX文件中。
  • 配置一致性:与CAN配置基本一致。

(1)SDU引用

  • 关键区别CompDU ID Reference需引用ECUC中建立的SDU。
  • 参考文件:引用CAN部分JL39.A_RX_MAIL文件描述的SDU。
  • 注意事项:这是与CAN配置的唯一区别,需特别区分。

(2)信号映射

  • 映射方法PG100.TX中的帧信号已映射到IPDU。
  • 接收配置:与CAN配置完全类似,可参照经验设置。

三、PDUR路由配置

1. 路由表建立

  • 核心操作:PDUR模块中直接进入路由表建立路径,按模块层级配置。

(1)J115TP模块检查

  • 验证步骤:确认PDUR BS W Models中已加入J115TP模块。
  • 常见问题:新建GSL TP模块时“找不到模块”,需重新选模块。
  • 解决方法:消除in bed I符号后重建连接。

(2)ARXML文件导入

  • 文件类型:导入基于E_CUC_CAN_JL3架构的A RX Mail文件。
  • 冲突处理:新建GSL TP模块与已有PDUR描述冲突时,重建映射关系。
  • 引用规范:正确引用E_CUC中的SDU(非IPDU)。

2. 路由规则配置

  • 关键配置:源PDU引E_CUC中的SDU,目标PDU映射到J SMTP模块的SDU,重点关注PGN100的SDU引用。
  • 配置差异:转换的是SDU(非CAN通信的IPDU)。

四、JL35TP模块配置

1. 通用功能配置

  • 配置原则:所有设置需正确引用E_CUC元素。

(1)功能开放设置

  • 配置影响:影响后续Configuration配置、config.h宏定义、生成C代码实现。
  • 版本控制:建议开放版本号API便于追踪。

(2)主函数周期设置

  • 周期参数Main Function周期设1毫秒,Timeout周期传100毫秒参数。
  • 注意事项:需按实际需求调整,不同设置会改变代码结构。

五、JL39TP配置重点

1. 收发通道配置

(1)DAM发送方式

  • 发送方式选择:新建通道时明确用DAM(广播)或CMDT(点对点)。
  • 关键参数:最大包数建议255,选BAM(广播)协议,BAM方式下直接配TBCMNPDU(无需接收TPCM)。
  • 注意事项:与General配置保持一致,动态block功能示例中不用,参数参考标准文档。
  • BAM特性:发1条TPCM后连续发3帧TPDT;NPDU选工具自动生成ID(如NPDUT叉);SDU连接PDUR与J235TP。

(2)CMDT发送方式

① TPRXFCNPDU配置
  • 配置要点:选CMDT协议,配置接收节点反馈的网络连接管理帧,工具配置可能需多次尝试确认。
  • 网络管理帧选择:正确选发送的网络管理帧。
② PGN消息配置
  • 配置要点:声明非动态长度,设PGN值(如PGN300),用network SDU(不直接用NPDU),为消息配对应SDU。

六、J1939协议配置

1. PG300消息配置

  • PDU配置补充:需手动补全PG300对应的PDU、I-Signal、PDUR配置(演示未展示但必做)。
  • COM配置导入:COM和PDUR配置从已有工程导入,已预先建立。

2. 接收通道配置

(1)BAM接收配置

  • 协议差异:接收与发送通道配置不同,需分别配接收/发送地址。
  • 数值格式:首次配填十进制(如87),无效则试十六进制,工具不区分数值格式需自行确认。

(2)NPDU配置

  • 广播特性:配置接收发送PDU的网络连接帧。
  • 方向验证:注意J235TP到PDUR的引用方向,错误会导致功能异常。

(3)DT帧配置

  • 工具问题:配置时工具可能异常跳转,需重配至成功。
  • 数值确认:确认用十六进制还是十进制。

3. SDU引用配置

  • 引用路径:必须从J235TP到PDUR引用。
  • 方向验证:注意引用方向,错误会导致功能异常。

4. CMDT通道配置

(1)网络管理帧发送

  • 主动特性:CMDT需主动发网络管理帧,注意十六进制字节配置。

(2)NPDU配置

  • 双重功能:接收的CMDT通道需给另一个GSL TB模块发网络管理,用到T叉的CM DT模块。

(3)工具跳转处理

  • 配置验证:每次配置后确认是否正确装载,工具可能配置失败需反复检查。

5. SDU配置

  • 接收PG配置:配置接收的RX PG(如零叉四零零)。
  • 模块连接:RS PG和T SPG中引用SDU与COM模块连接。

6. 配置完成总结

(1)NPDU处理要点

  • 网络管理PDU:需注意N PDU处理方式。
  • ECUC引用:必须在ECUC模块中引用带N PDU属性的PDU。

(2)ECUC模块引用

  • SDU选择:选ECUC模块中的SDU引用。
  • 通道差异:BAM、CMDT接收通道需区分N PDU和SDU处理方式。

七、AUTOSAR框架配置

1. OSI模型应用

(1)CANIF模块配置

  • 配置对象差异:J1935通信需配NPDU(非普通IPDU),是与常规CAN配置的主要区别。
  • 报文限制:PGN100、PGN300超8字节,不能用单帧CAN报文发送。
① NPDU配置对象
  • 传输机制:用TPCM(网络连接管理)、TPDT(网络数据传递)分帧传输。
  • 实际配置:建立DTC_M、CM_CMDT、DT_CMDT等网络管理/数据发送帧。
② 网络管理帧使用
  • 帧类型标识:EC表网络管理,FF表广播地址。
  • 地址示例:“56”表VCU节点地址(发送源地址为56节点)。
③ TPCM配置示例
  • CANID配置:J1939协议CAN ID含优先级、PGN组、地址,需严格按协议填;选扩展帧格式,ID type为static静态。
④ 地址含义解析
  • 广播示例:“ECECFF56”表VCU(56节点)向所有节点广播网络管理连接;前四位ECEC为功能码,FF为目标地址(广播),56为源地址。
⑤ 上层协议选择
  • 关键参数Uplayer选项必选“J1939TP”协议类型。
  • 映射关系:CANIF配置需映射到CAN模块的发送buffer和HTH。

2. CAN模块映射

  • 配置一致性:除上述特殊点,其余与普通CAN发送配置相同,可参考标准CAN模块配置方法。

八、课程总结

1. J1939协议介绍

  • 协议定位:基于CAN的传输层协议,在AUTOSAR框架实现。
  • 典型应用:重型车辆、工程机械通信系统。

2. 典型配置案例

  • 演示工具:CANoe仿真BAM、CMDT发送案例。
  • 配置工具:ISO AB工具完成实际配置。

3. AUTOSAR实现模块

  • 模块组成:AUTOSAR多模块协同实现J1939协议。
  • 模型对应:结合OSI模型,重点关注传输层。

4. 配置经验总结

  • 配置要点:结合CAN配置经验,对比J1939与普通CAN配置异同。
  • 核心区别:关注NPDU配置、CAN ID特殊含义、上层协议选择等关键差异。

九、知识小结

知识点核心内容考试重点/易混淆点难度系数
J1939协议基础基于CAN总线的中重型车辆电子部件通信协议与标准CAN的区别(多字节传输/地址广播/优先级机制)⭐⭐⭐
协议架构含物理层/数据链路层/应用层/网络传输层四层结构网络传输层的“数据重组”作用⭐⭐⭐⭐
BAM传输模式广播式传输(1控制帧+3数据帧传21字节)控制帧与数据帧的时序关系⭐⭐⭐
CMDT传输模式点对点传输(8帧传21字节,含握手)网络控制帧的交互流程⭐⭐⭐⭐
AUTOSAR实现J1939TP模块位于COM与CANIF之间SDU与NPDU的映射关系⭐⭐⭐⭐⭐
配置流程ECU配置→COM层映射→PDU路由→J1939TP通道配置NPDU与CANID的绑定规则⭐⭐⭐⭐
典型应用场景车辆17字节VIN码、重型车辆控制报文传输单帧/多帧传输的选择标准⭐⭐⭐
协议特征250kbps速率/扩展帧ID/地址广播/优先级嵌入PGN与SPN的编码规则⭐⭐⭐⭐
工具演示CANoe仿真BAM与CMDT传输过程网络控制帧的触发条件⭐⭐⭐
错误处理超时重传(默认100ms)动态block配置注意事项⭐⭐⭐⭐

http://www.dtcms.com/a/473435.html

相关文章:

  • 前端开发与后端开发的区别是什么?
  • 模块使用教程(基于STM32)——蓝牙模块
  • BaseLine与BackBone
  • 多视图几何--密集匹配--视差平面推导
  • 官网和商城结合的网站网站推广合同模板
  • 微软新模型UserLM:如何为AI助手打造一个“真实世界”模拟器
  • Linux中页面分配alloc_pages相关函数
  • Qt---布局管理器
  • 基于单片机的图书馆智能座位管理平台
  • 中国机械工业建设集团有限公司网站高端网站建设论坛
  • Envoy Gateway + ext_authz 做“入口统一鉴权”,ABP 只做资源执行
  • vscode免密码认证ssh连接virtual box虚拟机
  • 3.6 JSON Mode与JSON Schema
  • React Native::关于react的匿名函数
  • 基于JETSON ORIN+FPGA+GMSL AI相机的工业双目视觉感知方案
  • 常规的鱼眼镜头有哪些类型?能做什么?
  • 虚实之间:AR/VR开发中的性能优化艺术
  • 新手要如何让网站被收录公司查询信息查询
  • PostgreSQL 的 hstore、arrays 数据类型
  • Java集合体系 —— Set篇
  • 硅基计划5.0 MySQL 贰 SQL约束三大范式
  • 设计模式——工厂模式
  • 变色龙哈希与隐私保护
  • 栈和队列:“单端吞吐”VS”双端通行“(第十讲)
  • ros2系统在ubuntu18.04环境下的环境搭建
  • 个人网站展示dw网站制作
  • 鸿蒙NEXT系列之精析NDK UI API(节点增删和属性设置)
  • 10个免费货源网站郑州网络科技公司有哪些
  • Spring 源码学习(十三)—— RequestMappingHandlerAdapter
  • 虚幻引擎虚拟制片入门教程 之 3D渲染基础知识:模型、材质、贴图、UV等