0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于SAE J1939 CAN接口实现车辆网络通信系统的设计

电子设计 来源:单片机与嵌入式系统应用 作者:谢俊红,林轶 2021-03-31 09:16 次阅读

作者:谢俊红,林轶,陈三鉴,黄土琛

引言

随着车辆电子化和自动化程度的提高,车辆上的ECU日益增多。为了提高信号的利用率,要求在不同的ECU间,大量的数据状态信息能够实现共享,大量的控制信号能够实时交换。这样,传统线束已远远不能满足这种需求。

CAN总线及基于CAN的车辆网络通信协议提供了解决上述问题的途径。SAE J1939协议是美国汽车工程师协会(SAE)在CAN2.0B协议基础上制定的重型货车和客车网络通信协议,是目前汽车电子网络中应用最广泛的应用层协议之一。该协议使用多路复用技术为车辆各传感器、执行器和控制器提供建立在CAN总线基础上的标准化高速网络连接,在不同的ECU间实现高速数据共享,以有效减少线束数量并提高车辆电子控制系统的灵活性、可靠性、可维修性。

目前,车辆的ECU产品大都带有SAE J1939 CAN接口。针对具有SAE J1939 CAN接口的ECU产品(如发动机、变速器及其缓速器和ABS等ECU),自定义若干ECU,集成实现基于SAE J1939协议的车辆网络,完成自定义ECU的信息采集和各ECU间的信息交换。

1 车辆网络拓扑结构

具有SAE J1939 CAN接口的ECU产品接上仪表板连成网络后,已基本满足车辆驾驶的要求。为了使自定义ECU对外通信尽量不影响ECU产品间的通信,整个网络分为两个网段,必要时可合并成一个网段。网段A包含信息交互ECU,发动机ECU,变速器及其缓速器ECU,ABS ECU;网段B包括信息交互ECU,发动机外围、I桥及II桥ECU,分动器ECU,III桥及IV桥ECU。信息交互ECU用两个CAN端口分别与两个网段连接,具有报文转发功能。车辆网络拓扑结构如图1所示。

基于SAE J1939 CAN接口实现车辆网络通信系统的设计

2 车辆网络通信设计

按照SAE J1939协议,车辆网络通信设计包括以下几方面内容:

◆物理层与SAEJI939-11兼容;

◆数据链路层与SAE J1939-21兼容;

◆网络层与SAE J1939-31兼容;

◆应用层与SAE J1939-71兼容;

◆应用层诊断与SAE J1939-73兼容;

◆网络管理层与SAE J1939-81兼容。

2.1 物理层

物理层实现网络上所有ECU的电气连接。物理介质采用特征阻抗为120 Ω的屏蔽双绞线,CAN_H为黄色、CAN_L为绿色。网段尽可能使用线性拓扑结构,其波特率为250 kbps。网段干线两端均以120 Ω电阻做终端匹配。ECU使用短支线与网段干线连接,在网段中采用不相等布置以防止产生驻波。

位时间内实现同步、网络延时补偿及采样点位置确定等总线管理功能,其段组成如图2所示。同步是相位缓冲段1加长或相位缓冲段2缩短,其上限为同步跳转带宽 (SJW)。采样点尽量位于(但不超过)位时间的7/8,能实现传播延迟和时钟误差最佳折中。时钟频率为16 MHz时,推荐分频因子=4、SJw=ltq、TSEGl=13tq、TSEG2=2tq(tq为时钟周期)。

2.2 数据链路层

数据链路层在物理层之上提供了可靠的数据传输功能,实现了应用层报文的数据交换。通过数据链路层的组织,实现了发送数据帧必须具有的同步、顺序控制、错误控制和流控制等功能。

数据链路层通过协议数据单元(PDU)组织数据帧中的协议相关信息。PDU由数据帧中29位ID和O~8字节数据场组成,其数据结构如图3所示。P场决定报文优先级;R位保留;DP位是数据页位;PF场决定PDU格式(PDUl或PDU2);PS场为PDU细节,由PF场决定是目标地址DA还是对PF、的组扩展GE;SA为源地址。

数据链路层提供的报文有命令报文、请求报文、广播/响应报文、应答报文及组功能报文。此外,数据链路层还实现了传输协议功能,用于将大于8字节报文进行打包重组、连接管理,分为广播公告的BAM协议和点对点会话的RTS/CTS协议。

2.3 网络层

网络层定义了为不同网段间提供互联功能的设备需求和服务。当多个网段存在时需要网络互联ECU,其功能包括报文转发、报文过滤、报文地址转换、报文重组及数据库管理。网络层功能对于特定ECU来说是可选的,网络中仅信息交互ECU用到网络层功能。

2.4 应用层

应用层定义了针对车辆应用的信号(参数)和报文(参数组)。应用层通过参数描述信号,给每个参数分配了一个19位的可疑参数编号(SPN);通过参数组描述报文,给每个参数组分配了一个24位的参数组编号(PGN)。SPN用来标识与ECU相关的故障诊断元素、部件或参数组中参数;PGN用来唯一标识一个特定参数组。除已分配的参数和参数组外,用户还可通过分配未使用的SPN给自定义参数和定义专有报文对应用层进行补充。

2.5 应用层诊断

应用层诊断定义了诊断报文DMl-19,其作用如表1所列。这19种报文在网络中并不都可用。目前,网络中仅用到报文DMl、DM2、DM3及DMll。

表l中的诊断故障代码(DTC)为4字节,由19位可疑参数编号(SPN)、5位故障失效模式(FMI)、7位故障发生次数(OC)以及1位SPN转换方式(CM)组成,如图4所示。

2.6 网络管理层

网络管理层通过提供地址分配管理和网络错误管理的定义和过程描述,来唯一识别网络上的控制器。其功能包括:请求网络上控制器的地址和名字、为控制器声明一个地址、公告不能声明的地址和命令其他控制器使用新的地址等。

3 车辆网络信息交互设计

车辆网络信息交互选用的液晶显示器为8寸、640×480像素、RS-232通信,具有6个无源P9接口薄膜按键,其显示布局如图5所示。图中左半部分:上部为红色信号指示灯及其报警提示,其下为其他颜色信号指示灯:中部为仪表模拟模式下表盘指针或数字模式下数字,其下为小仪表报警提示;下部为组成员数据及各组报警提示。图中右半部分:上部为日期时间、环温/气压、单/全里程,其下为诊断指示灯及DMl来源、菜单;下部为信息分页,包括基本信息、各ECU 产品未处理的信息、DMl及DM2内容、DMl及DM2下载应答、DM3应答、DMll应答、单里程清零应答和日期时间交互修改等。

液晶显示器的功能有:在指定位置显示8×16英文字符,在指定位置画线,在指定位置显示预置位图,在指定位置按指定方式自动显示日期时间、读取年月日、读取时分秒、设置日期时间、显示/关闭光标、打开/关闭背光。当进行不同程度的报警时,通过蜂鸣器发出的缓和或尖锐两种不同的声音进行提示。

4 车辆网络软件设计

4.1 信息交互ECU

信息交互ECU选用Freescale公司S12X系列中的MC;9S12XDP512作为主芯片,使用了嵌入式操作系统uC/()S-II。S12X的从CPU——中断协处理器XGate,处理μC/OS-II时钟节拍中断并作任务切换,提高了系统的实时性,减轻了主CPU的负荷。XGate还用于处理与液晶显示器串口通信、与PC串口通信、查询键盘的有效输入,并管理报警蜂鸣器。

信息交互ECU在μC/0S-II下创建了5个任务:系统初始任务、指示灯任务、仪表数据任务、键盘相关任务、J1939处理任务。系统初始任务打开 RTI中断,上电自检,打开日期时间显示;指示灯任务周期性地显示信号指示灯及红色信号指示灯报警提示,显示诊断指示灯及DMl来源,处理报警事件;仪表数据任务周期性地按选定模式显示仪表及小仪表报警提示,显示组成员数据及组报警提示,显示环温/气压及单/全里程,并处理报警事件;键盘相关任务在有效输入下根据按键及菜单进行分页显示切换、系统设置修改等;JI939处理任务周期性地遍历两个端口的协议栈进行报文收发、报文转发和提取应答等。

4.2 其余自制ECU

其余自制ECU选用Freescale公司S12系列中的M(29S12DGl28作为ECU主芯片。上电初始化后,在无限循环下先遍历协议栈,对请求报文进行响应,然后采集数据更新报文。程序采集传感器信息,周期性地更新应用层报文。程序根据采集的信号、数据生成DTC,周期性地更新应用层诊断报文,根据DTC数目决定是否发送及是否用传输协议。程序半固定数据如DTC信息、里程信息等均保存在EEPROM中,每次上电导入,发生变化后实时更新。

结语

通过对具备SAE J1939 CAN接口的ECU产品CAN总线功能进行分析,自定义若干ECU,集成实现基于SAE J1939协议的车辆网络。在实验室对比CAN卡、上车对比仪表板进行试验研究的结果表明,所集成的车辆网络工作稳定、信息量丰富、能实时反映故障诊断信息,解决了车辆仪表盘信息量较少和故障诊断实时性不足的问题。

双核单片机的从CPU可提高μC/OS-II的实时性,降低了主CPU的负荷。此外,SAEJ1939协议的完备通信策略和成熟的通信机制,使得协议完全可以在修改应用层和应用层诊断相关定义之后,推广应用到其他工业环境类似的CAN通信领域,如列车控制、工厂控制等。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 控制系统
    +关注

    关注

    41

    文章

    5950

    浏览量

    108589
  • 接口
    +关注

    关注

    33

    文章

    7616

    浏览量

    148379
  • 通信系统
    +关注

    关注

    6

    文章

    1066

    浏览量

    53048
收藏 人收藏

    评论

    相关推荐

    基于J1939协议的组合仪表的设计与实现

    为基础的能够使汽车中各个电控单元间实现自由通信网络控制系统,并制定了J1939 协议。2CAN
    发表于 05-17 11:45

    德国MicroControl公司的SAE J1939产品简价

    德国MicroControl公司的SAE J1939产品简价
    发表于 12-23 09:45

    DSP28335实现J1939协议???

    请问DSP28335自带CAN模块能否用来实现J1939协议通信
    发表于 09-10 20:38

    J1939基础入门知识分享

    通信J1939描述了CAN总线的一种网络应用,包括CAN网络物理层定义、数据链路层定义、应用层
    发表于 04-11 07:00

    基于SAE J1939协议的发动机总线数据模拟器开发设计

    在车载网络的开发过程中,需要发动机节点向总线网络发送报文,为了降低成本,提高开发效率,模拟发动机。基于SAE J1939协议巾车辆应用层子标
    发表于 07-12 06:33

    基于LabVIEW和J1939协议的CAN总线通讯平台构建

    最近在公司搭建J1939协议的CAN通讯,查了资料,非常不错,可以学习一下
    发表于 04-24 09:58

    SAE J1939 协议源代码分享

    发现一个刚开源的J1939协议栈,亲们相关地址如下:源代码下载地址github下载地址:https://github.com/XeiTongXueFlyMe/J1939源代码分析网址:http
    发表于 07-30 11:39

    SAE J1939协议分析指南

    SAE J1939协议是由汽车工程协会(SAE)定义的,SAE J1939协议在商用车辆、舰船、
    发表于 03-13 13:50 189次下载

    基于SAE J1939协议的发动机模拟系统开发

    1 引言    CAN总线以其优异性能在汽车局域网中占有重要地位。IS011992,IS011783以及SAE J1939都是基于CAN总线的汽车
    发表于 05-16 10:55 2917次阅读
    基于<b class='flag-5'>SAE</b> <b class='flag-5'>J1939</b>协议的发动机模拟<b class='flag-5'>系统</b>开发

    基于SAE J1939协议的车辆网络通信

    目前,车辆的ECU产品大都带有SAE J1939 CAN接口。针对具有SAE
    发表于 09-24 00:49 5496次阅读
    基于<b class='flag-5'>SAE</b> <b class='flag-5'>J1939</b>协议的<b class='flag-5'>车辆</b><b class='flag-5'>网络通信</b>

    CAN高层协议J1939的基础和应用以及开发介绍

    协议J1939的有关内容,今天起我们将连续分6次推文来详细介绍CAN的高层协议J1939的基础和应用以及开发,应该算是比较全面系统的介绍,希望对大家有帮助。
    的头像 发表于 04-02 10:45 4099次阅读
    <b class='flag-5'>CAN</b>高层协议<b class='flag-5'>J1939</b>的基础和应用以及开发介绍

    基于恩智浦MPC5744P的SAE J1939协议栈开发

    的,MPC5744P 支持CAN2.0B。CAN 的高层协议,J1939 是基于CAN2.0B的扩展帧,29位标识符,支持单帧和多帧收发通信
    的头像 发表于 09-24 16:15 7801次阅读
    基于恩智浦MPC5744P的<b class='flag-5'>SAE</b> <b class='flag-5'>J1939</b>协议栈开发

    新功能发布 | TSMaster如何实现J1939多帧报文收发

    前言众所周知,J1939协议是由美国汽车工程师协会(SAE)定义的一组标准。J1939标准用于卡车、公共汽车和移动液压等重型车辆。如今大多数车辆
    的头像 发表于 09-06 10:01 969次阅读
    新功能发布 | TSMaster如何<b class='flag-5'>实现</b><b class='flag-5'>J1939</b>多帧报文收发

    【看点】浅析SAE-J1939CAN2.0B之间的关系

    一什么是SAE-J1939SAE-J1939(以下简称J1939)是美国汽车工程协会(SAE)的推荐标准,广泛用于是商用车(重卡、大客车等道路车辆
    的头像 发表于 01-06 09:52 862次阅读
    【看点】浅析<b class='flag-5'>SAE-J1939</b>与<b class='flag-5'>CAN</b>2.0B之间的关系

    CAN总线之J1939地址定义

    SAE J1939(以下简称J1939)是美国汽车工程协会(SAE)的推荐标准,广泛用于是商用车(重卡、大客车等道路车辆和工程机械、农业机械
    的头像 发表于 08-15 10:47 1898次阅读
    <b class='flag-5'>CAN</b>总线之<b class='flag-5'>J1939</b>地址定义