首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

CAN协议 J1939「建议收藏」

转自:http://blog.sina.com.cn/s/blog_bf97bd7e0102wl2y.html 这几天在公司看了SAE推行的 J1939标准(SAE:美国汽车工程协会),这里整理下学习要点...有几个概念先介绍下: 帧 (Frame):组成一个完整信息的一系列有序的数据位; 其中CAN帧以帧起始(SOF)开始,以帧结束(EOF)结尾; 标准帧:定义为11位标识符 扩展帧:定义为29位标识符 报文...(Message):一个或多个具有相同参数组编号(PGN)的CAN数据帧;(一个或多个 CAN数据帧具有相 同PGN号,就是报文) 包(Packet):一个单一的CAN数据帧就是1个包;(一个报文包含参数组的长度小于等...于8字节,也称为包) 多包报文:当具有相同参数组编号(PGN)的所有数据需要使用多个CAN数据帧来传输时使 用的一种J1939报 文。...数据扩展页(EDP)和数据页(P)关系: 扩展数据页位 (EDP) 数据页位 (DP) 功能描述 0 0 SAE J1939 第0页PGN 0 1 SAE J1939 第1页PGN 1 0 SAE J1939

1.3K20
您找到你想要的搜索结果了吗?
是的
没有找到

SAE J1939在恩智浦MPCxxx上实现

摘要 本篇笔记主要记录基于恩智浦MPC5744P的SAE J1939协议栈开发,接口设计,以之前总结的CAN驱动设计为基础。 准备工作 准备一个CAN驱动可以正常工作的工程。...CAN 的高层协议,J1939 是基于CAN2.0B的扩展帧,29位标识符,支持单帧和多帧收发通信。本次设计主要实现SAE J1939 数据链路层和网络管理层。...J1939CAN接口 接口函数 基于上次做好的CAN驱动提供一个发送函数,一个接收处理函数,作为与J1939协议栈的接口,来完成J1939所有功能的实现和应用。...接收接口用于获取总线上的CAN报文帧,然后交由J1939的处理函数解析。这里发送函数未列出。...测试 SAE J1939协议是CAN的高层协议,是一种广泛应用于重型车,特种车,农机,以及非路面设备车辆等。

78730

车用总线技术 | J1939协议实用指南与J1939数据记录方案

J1939属于“更高层的协议” J1939是基于CAN的,CAN提供了基本的“物理层”和“数据链路层”,这是OSI模型的最低层。 基本上CAN只允许在CAN总线上进行简单通信,但仅此而已。...因此, J1939 IoT(物联网)记录器的安全性越来越受到重视。同时,OEM将会从传统CAN逐渐转向CAN FD ,向具有可变数据域速率的J1939协议过渡。...示例:解析J1939中SPN 190(发动机转速) 假设您记录了原始的J1939报文,如下所示: CAN ID 数据字节 0CF00401 FF FF FF 68 13 FF FF FF 通过将CAN...J1939 DBC文件可用于解码大多数重型车辆上的数据。原始的J1939数据可以用CAN总线数据记录器记录,并在支持DBC转换的CAN软件工具(例如PCAN-Explorer6软件)中进行分析。...连接器与非接触式读取 要将CAN分析仪接到用J1939通信的机器(例如卡车)上时,通常可以使用9针J1939连接器。

3.7K20

ubuntu读取can口数据_嵌入式LinuxCAN接口调试

By Toradex秦海 1).简介 CAN(Controller Area Network)总线是嵌入式设备最为常用的接口之一,常用于汽车以及工业自动化等嵌入式领域,因此本文就基于嵌入式Linux演示使用...Linux系统通过SocketCAN层提供CAN支持,使得可以使用类似操作socket API函数来操作CAN总线,具体关于SocketCAN说明请见这里。 b)....————————– 5).总结 利用SocketCAN可以非常方便的在Linux下使用CAN总线,另外CAN总线也支持同时发送并接收,这里就不做演示了。...Linux系统通过SocketCAN层提供CAN支持,使得可以使用类似操作socket API函数来操作CAN总线,具体关于SocketCAN说明请见这里。 b)....————————– 5).总结 利用SocketCAN可以非常方便的在Linux下使用CAN总线,另外CAN总线也支持同时发送并接收,这里就不做演示了。

4K30

J1939入门(一)

J1939基于德国Bosch公司在上世纪80年代开发的控制器局域网络(Controller Area Network,CAN), CAN总线。...CAN总线描述了一种车辆各控制单元之间不分主从节点的通信网络, 各控制单元之间通过报文通信。...J1939描述了CAN总线的一种网络应用,包括CAN网络物理层定义、数据链路层定义、应用层定义、网络层定义、故障诊断、和网络管理。...在SAE J1939协议中,不仅仅指定了传输类型、报文结构及其分段等,而且报文内容本身也做了精确的定义, 下面对它们详细进行描述。 SAE J1939 不同于在乘用车行业的CAN通信协议。...简单来说, 对所有要发送的数据, 该软件包负责将应用软件里的数据进行转换、分解、然后把CAN数据帧发送到J1939 网络; 对所有要接收的数据, 该软件包负责从J1939 网络接收、转换、重组, 然后提供给应用软件

2.2K10

基于STM32F46xxx的J1939程序开发

1,熟悉SAE J1939标准,熟悉ST STM32Cube_FW_F4_V1.21.0结构和接口以及例程 2,装有IAR的电脑 3,带有CAN 收发器的板子,因为开发板上的只有CAN接口,不带收发器,...协议栈,如果熟悉J1939的话会很容易移植到ST芯片上。...完成后可以先编译测试确保驱动没有问题,包含我们之前曾经多次开发过的J1939的协议栈代码,修改接口参数,主要是修改J1939的发送和接收处理函数内容, ?...至此我们已经成功在STM32F446上实现了J1939通信。...总共给大家介绍过多次有关J1939程序的开发,前后在NXP KV46系列,K64系列,KEA系列等MCU上实现J1939协议栈,今天完成在ST平台上的开发,有相关项目需求的客户欢迎联系, SAE J1939

1.5K20

SAE J1939协议(一)

车辆网络实例 2、 SAE J1939数据链路层 SAE J1939CAN2.0B为基础,通过CAN总线进行数据通信。...2.1 消息/帧格式(1) 消息格式需适应CAN网络的要求变化。需要指出的是,当CAN规范和SAE J1939有差异之处时,参照SAE J1939CAN文档规定,在消息路由选择中不使用节点地址。...某些CAN网络中正确的应用并不一定适用于SAE J1939。...SAE J1939网络定义中规定,节点寻址是用来防止多节点使用同样的CAN网络标识符字段,许多SAEJ1939中的附加要求在CAN网络中并没有规定。...SAE J1939消息帧格式 SAE J1939CAN的仲裁场与控制场 参数群编号( PGN) 在CAN数据帧的数据场中需要指明参数群时所使用的编号, PGN是表示成24位。

83420

SAE J1939协议学习笔记

国三标准规定柴油机必须遵循SAE J1939协议,SAE J1939是在CAN总线基础上定义的,它的数据链路层规定了CAN总线使用29bit的扩展标识符和扩展数据帧,CAN通信速率为250Kbps。...这里不讨论SAE J1939协议的物理层,只专注软件层面。 SAE J1939协议将CAN 2.0B的29bit扩展帧标识符进行的分段定义: 最高的三位为Priority(优先级)字段。...SAE J1939协议发送小于等于8字节的报文时使用一个CAN帧就可以,发送长度大于8字节的报文是需要分成多个CAN帧的。这里只讨论数据长度小于等于8字节时的报文。...SAE J1939CAN扩展帧定义: 可以看出来SAE J1939协议其实就是在CAN协议的基础上封装了一层,相比较计算机网络的7层协议来说已经简单很多了,可能这就是SAE J1939协议的设计目的...当然了,除了可以读取来自ECU的数据,我们还能够写数据到发动机中去,按照SAE J1939协议设置好CAN帧的优先级、PGN、源地址和数据,发送给ECU即可。

1K10

基于STM32F103xxx的J1939程序开发

准备工作 1), 熟悉SAE J1939标准,熟悉ST STM32CubeMX, 和STM32Cube_FW_F1_V1.8.0结构 2), 装有IAR的电脑 3), 带有CAN 收发器的板子,因为开发板上的只有...熟悉ST的Cube架构 ST官方提供Cube帮助工程师快速开发产品原型,类似于软件SDK,包含所有外设驱动,还有例程,之前多次讲过在NXP平台芯片上做J1939协议栈,如果熟悉J1939的话会很容易移植到...我们使用SysTick 1ms来作为系统的时基,生成的工程里只有CAN的初始化代码,需要我们添加中断函数,并且启动CAN。可以重新建立两个文件来完成CAN的相关代码。...添加完CAN驱动后,确认编译没有问题,且驱动收发正常,这时候开始动手移植我们之前多次成功在其他平台上移植的J1939协议栈。 4....协议栈移植 添加j1939相关文件到工程,其实移植主要修改几个函数,需要熟悉J1939的PDU结构,不熟悉J1939的可以自己查找相关文档,或者去听听我在发烧友学院的课程 ?

1.6K20

你搞懂J1939的连接管理协议了吗?

正如CAN的高层协议J1939标准所规定,传输协议功能是数据链路层的一部分,主要完成消息的拆装和重组以及连接管理,稍微了解一点CAN通信的童鞋应该知道,长度大于8字节的消息无法使用单个CAN数据帧来传输...标准定义数据域的第一个字节作为多包消息的编号,例如,1,2,3......最大的数据长度为255 * 7 = 1785字节,也就是说J1939的多帧最多可以传送1785个字节。...void j1939tp_update_rx_rtscts( uint8_t index ),涉及标准的内容很多,不能给大家一一列举,如果你想深入理解J1939的应用和开发一定好好看标准。...目前J1939已经越来越多的在使用,像重卡,公交,校车,拖车,重型机械设备,发电,船舶,舰艇,农机,等等,我们已经在多种芯片上实现了J1939通讯。...如有相关项目欢迎联系,保证保量高质量为您提供J1939的通讯。

1.8K30

SAE J1939 – 简短介绍

由于现有J1708/J1587协议对于CAN报文标识符从11向29位扩展的兼容性需求,就要求J1939CAN模块的开发和相应协议的实施中支持此种报文格式。...图表:在ISO/OSI参考模型中的SAE J1939 物理层 SAE J1939协议基于CAN总线,并且将其作为物理层使用(控制器局域网,ISO 11998-1和ISO 11998-2)。...有如下规格说明: SAE J1939/11 定义了CAN高速总线连接,符合ISO/DIS 11898,带屏蔽双绞线和接地。...数据链路层 SAE J1939/21描述了通过基于CANCAN 2.0B规范进行的数据通讯。特殊的是,这种“扩展的模式”用于通讯;”标准的模式”仅用于供应商特定的应用。...CAN标识符 J1939报文基于CAN 2.0B规范,并且使用特定的”扩展帧”。它们使用29位的标识符而不是通常的11位标识符。J1939-21使用这个29位标识符定义区域,如下所示。

1.6K10

详解CAN的高层协议(完)

CAN做为应用比较广泛的通信总线,受到了越来越多的客户喜欢和青睐,广泛应用于工业和汽车,常见的高层协议有CANopen,J1939,DeviceNet等,在公众号曾经分享过超过15篇有关CAN的高层协议...J1939的有关内容,今天起我们将连续分6次推文来详细介绍CAN的高层协议J1939的基础和应用以及开发,应该算是比较全面系统的介绍,希望对大家有帮助,如果对你有帮助,欢迎关注嵌入式程序猿公众号。...SAE J1939通信是基于CAN通信的一种高层协议,广泛应用于商用车,各种卡车,重型建筑车辆,发电机组,农业机械,森林防火车辆,以及特种车辆,现在也被广泛应用移植于工业控制。...SAEJ1939 协议是由汽车工程协会(SAE)定义的,基于传输可靠性能优越的CAN-bus总线,常用250Kbps,500Kbps的通讯速率。...在协议中,报文内容本身做了精确的定义, SAE J1939协议由美国SAE( Society of AutomotiveEngineers)组织维护和推广。

42020

详解CAN的高层协议(五)

CAN做为应用比较广泛的通信总线,受到了越来越多的客户喜欢和青睐,广泛应用于工业和汽车,常见的高层协议有CANopen,J1939,DeviceNet等,在公众号曾经分享过超过15篇有关CAN的高层协议...J1939的有关内容,今天起我们将连续分6次推文来详细介绍CAN的高层协议J1939的基础和应用以及开发,应该算是比较全面系统的介绍,希望对大家有帮助,如果对你有帮助,欢迎关注嵌入式程序猿公众号。...SAE J1939通信是基于CAN通信的一种高层协议,广泛应用于商用车,各种卡车,重型建筑车辆,发电机组,农业机械,森林防火车辆,以及特种车辆,现在也被广泛应用移植于工业控制。...SAEJ1939 协议是由汽车工程协会(SAE)定义的,基于传输可靠性能优越的CAN-bus总线,常用250Kbps,500Kbps的通讯速率。...今天我们来看J1939驱动开发,主要搞懂以下问题 数据链路层 网络管理层 驱动架构 数据结构 模块化设计 应用数据处理 ? ? ? ? ? ? ?

33020

你想要快速学习和开发J1939吗?

SAE J1939CAN的一种高层协议,像CANOpen,Devicenet都属于CAN的高层协议,因为J1939算是比较简单的一种,广泛应用于重卡,农林,船舶,以及一些非高速路面机械,像挖掘机,压路机...,柴油发电机,有的军工产品也是采用基于J1939的协议做一些修改。...因为SAE J1939的协议文档不是免费的,而且正版的价格不菲,一套SAE J1939最新的文档需要700多美元 ?...跟CAN相关的分析解析仪器和产品也很贵,对许多初学者带来了很高的门槛,尤其是初次接触这协议得下很大功夫才能熟悉,我记得小猿初次接触是几年前了,当时也是反复的看了协议很多遍,才理清了脉络,然后开始写代码,...抽空对之前做的J1939的部分代码做了些优化和修改 ? 其实只要你对标准协议熟悉了,你自己一样可以写出J1939的协议栈,应用于你的项目和工程。

73230

J1939协议之通俗易懂—-简介

在许多方面,J1939标准类似于旧版J1708和J1587标准,但J1939标准协议建立在CAN(控制器区域网络,ISO11898)上。 物理层(J1939/11)描述了针对客车的电气接口。...J1939主要特性 J1939协议标准基于CAN的高层协议 J1939协议应用于重型车辆 J1939协议传送速度稳定在250kbps 报文格式及使用方法(J1939/21) MJ1939标准定义的大部分报文均旨在广播...J1939使用CAN 2.0B协议中定义的29位标识符,如图1所示。含有指定目标地址的报文(“PDU 1”)与旨在广播的报文(“PDU 2”)使用的标识符略有不同。...SOF,SRR和IDE位由CAN标准定义,这里忽略。RTR位(远程请求位)在J1939中总是设置为0。 J1939协议中使用的29位标识符结构如下。...我们来看一条内容如下的J1939报文: CAN标识符: 0xCF00401 数据字节: 0xFF FF 82 DF 1A FF FF FF CAN-ID 提供了什么信息?

2.9K30
领券