硬汉嵌入式论坛

 找回密码
 立即注册
查看: 707|回复: 12
收起左侧

[CAN/FDCAN] J1939协议栈代码初步捋顺了,准备整理一期专题视频教程分享下

[复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2024-1-2 01:28:45 | 显示全部楼层 |阅读模式



J1939比CANopen好理解,就是函数太多,也就是通信命令太多。

这几天整理下,准备录制一期视频,  H7-TOOL的J1939通用版解析功能也做的差不多了

128.png


回复

使用道具 举报

0

主题

6

回帖

6

积分

新手上路

积分
6
发表于 2024-1-2 08:51:39 | 显示全部楼层
有J1850的吗
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
 楼主| 发表于 2024-1-2 09:08:09 | 显示全部楼层

J1850的玩家不多,等玩家多了,也搞个,这种协议本身都比较简单。
回复

使用道具 举报

23

主题

1403

回帖

1472

积分

至尊会员

积分
1472
发表于 2024-1-2 12:06:39 | 显示全部楼层
cool,想什么来什么
代码不规范,亲人两行泪!
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
 楼主| 发表于 2024-1-3 08:18:13 | 显示全部楼层
批量数据处理解析也可以了

18.png
回复

使用道具 举报

0

主题

14

回帖

14

积分

新手上路

积分
14
发表于 2024-1-3 09:21:02 | 显示全部楼层
1939里最复杂的就是j1939.TP,只要把这个弄明白了.其他的都挺简单的
回复

使用道具 举报

8

主题

26

回帖

55

积分

初级会员

积分
55
发表于 2024-1-3 09:50:55 | 显示全部楼层
以后汽车车身网络对速度安全成本的要求越来越高。CAN总线已经越发吃力。新型的车载以太网技术是未来高速网络部分的应用趋势。博通公司研发的BroadR-Reach技术,采用单对的非屏蔽双绞线进行信号传输,电缆重量减轻,连接成本降低。
回复

使用道具 举报

8

主题

157

回帖

181

积分

初级会员

积分
181
发表于 2024-1-3 09:54:49 | 显示全部楼层
missfox 发表于 2024-1-2 12:06
cool,想什么来什么

您许愿内容是不是:心想事成
回复

使用道具 举报

8

主题

128

回帖

152

积分

初级会员

积分
152
发表于 2024-1-3 15:17:07 | 显示全部楼层
很好奇之前我提到的那个问题, 是我的理解不对还是协议栈真的有问题呀, 硬汉你怎么看?
https://github.com/DanielMartensson/Open-SAE-J1939/issues/25
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
 楼主| 发表于 2024-1-4 08:52:28 | 显示全部楼层
amfy 发表于 2024-1-3 15:17
很好奇之前我提到的那个问题, 是我的理解不对还是协议栈真的有问题呀, 硬汉你怎么看?
https://github.com/ ...

这个函数从测试效果来看,好像没什么问题

[C] 纯文本查看 复制代码
/*
 * Store information about sequence data packages from other ECU who are going to send to this ECU
 * PGN: 0x00EC00 (60416)
 */
void SAE_J1939_Read_Transport_Protocol_Connection_Management(J1939 *j1939, uint8_t SA, uint8_t data[]) {
	j1939->from_other_ecu_tp_cm.control_byte = data[0];
	j1939->from_other_ecu_tp_cm.total_message_size = (data[2] << 8) | data[1];
	j1939->from_other_ecu_tp_cm.number_of_packages = data[3];
	j1939->from_other_ecu_tp_cm.PGN_of_the_packeted_message = (data[7] << 16) | (data[6] << 8) | data[5];
	j1939->from_other_ecu_tp_cm.from_ecu_address = SA;

	/* Check if we got the Request To Send control byte - We need to answer with CTS - Clear To Send */
	if(j1939->from_other_ecu_tp_cm.control_byte == CONTROL_BYTE_TP_CM_RTS){
		j1939->this_ecu_tp_cm = j1939->from_other_ecu_tp_cm; 			/* Copy - We need to have the same data */
		j1939->this_ecu_tp_cm.control_byte = CONTROL_BYTE_TP_CM_CTS;	/* We only need to change the control byte from RTS to CTS */
		SAE_J1939_Send_Transport_Protocol_Connection_Management(j1939, SA);
	}

	/* When we answer with CTS, it means we are going to send the Transport Protocol Data Transfer package */
	if(j1939->from_other_ecu_tp_cm.control_byte == CONTROL_BYTE_TP_CM_CTS){
		SAE_J1939_Send_Transport_Protocol_Data_Transfer(j1939, SA);
	}
}
回复

使用道具 举报

8

主题

128

回帖

152

积分

初级会员

积分
152
发表于 2024-1-4 08:58:29 | 显示全部楼层
eric2013 发表于 2024-1-4 08:52
这个函数从测试效果来看,好像没什么问题

[mw_shl_code=c,true]/*

好吧,可能是我对那个说明文档的理解有问题,
回复

使用道具 举报

1

主题

5

回帖

8

积分

新手上路

积分
8
发表于 2024-1-4 17:29:49 | 显示全部楼层
太爱了,最近的毕设任务刚好就需要学习到J1939
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
 楼主| 发表于 2024-1-5 00:39:14 | 显示全部楼层
整理视频提纲,准备录制视频了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-29 05:15 , Processed in 0.345615 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表