• 372查看
  • 0回复

[芯片硬件] SAE J1939在恩智浦MPCxxx上实现

[复制链接]


该用户从未签到

发表于 28-3-2024 09:48:00 | 显示全部楼层 |阅读模式

汽车零部件采购、销售通信录       填写你的培训需求,我们帮你找      招募汽车专业培训老师


摘要

本篇笔记主要记录基于恩智浦MPC5744P的SAE J1939协议栈开发,接口设计,以之前总结的CAN驱动设计为基础。

准备工作



    准备一个CAN驱动可以正常工作的工程。

    熟悉J1939协议文档和标准,特别是J1939-21和J1939-81。

CAN

恩智浦的MPC5744P控制器局域网络CAN,跟我们之前使用的恩智浦Kinetis  KV, 等系列的flexCAN结构基本是一样的,MPC5744P   支持CAN2.0B。CAN 的高层协议,J1939 是基于CAN2.0B的扩展帧,29位标识符,支持单帧和多帧收发通信。本次设计主要实现SAE J1939 数据链路层和网络管理层。

J1939和CAN接口

接口函数

基于上次做好的CAN驱动提供一个发送函数,一个接收处理函数,作为与J1939协议栈的接口,来完成J1939所有功能的实现和应用。

SAE J1939在恩智浦MPCxxx上实现w1.jpg

接收接口用于获取总线上的CAN报文帧,然后交由J1939的处理函数解析。这里发送函数未列出。
数据类型

根据J1939的标准和要求特定义以下数据类型,方便程序的开发和应用

SAE J1939在恩智浦MPCxxx上实现w2.jpg

J1939对外接口

J1939对外接口除过初始化,就一个函数,所有功能在这个函数里实现,因为J1939协议栈内部有很多时基,设计的是基于10ms,所以这个函数放在10ms里调用。

SAE J1939在恩智浦MPCxxx上实现w3.jpg

SAE J1939在恩智浦MPCxxx上实现w4.jpg

测试

SAE J1939协议是CAN的高层协议,是一种广泛应用于重型车,特种车,农机,以及非路面设备车辆等。

SAE J1939 协议栈 主要参考标准J1939-21 数据链路层, J1939-81  网络管理层 。标准的详细内容请参考SAE 的J1939标准。

SAE J1939在恩智浦MPCxxx上实现w5.jpg

SAE J1939在恩智浦MPCxxx上实现w6.jpg




该用户从未签到

发表于 13-3-2025 11:43:00 | 显示全部楼层
回复帖子如下:

关于SAE J1939在恩智浦MPC5744P上的实现摘要:

本记录着重描述了基于恩智浦MPC5744P的SAE J1939协议栈开发过程。以熟悉的CAN驱动设计为基础,进行接口设计与实现。准备工作包括熟悉J1939协议文档和标准,特别是J1939-21和J1939-81的相关内容。考虑到恩智浦MPC5744P的CAN控制器与先前使用的恩智浦Kinetis系列flexCAN结构相似,并支持CAN2.0B协议,我们基于该协议实现了J1939的高层协议。由于J1939是基于CAN2.0B的扩展帧,利用29位标识符进行通信,故开发时需特别关注此点以确保协议的正确实现。

[内容由汽车工程师之家人工智能总结,欢迎免费使用,见贴尾]
回复 支持 反对

使用道具 举报



该用户从未签到

发表于 13-3-2025 11:43:00 | 显示全部楼层
回复帖子如下:

关于SAE J1939在恩智浦MPC5744P上的实现摘要:

本记录着重描述了基于恩智浦MPC5744P的SAE J1939协议栈开发流程和接口设计。准备工作包括一个可以正常工作的CAN驱动工程,以及对J1939协议文档和标准的熟悉,特别是J1939-21和J1939-81。由于MPC5744P的CAN控制器与我们之前使用的恩智浦Kinetis系列flexCAN结构相似,支持CAN2.0B协议,这为在MPC5744P上实现J1939协议提供了良好的硬件基础。接下来将详细介绍从接口设计、协议栈开发到测试验证的整个过程,确保实现符合J1939标准的CAN通信。

[内容由汽车工程师之家人工智能总结,欢迎免费使用,见贴尾]
回复 支持 反对

使用道具 举报



该用户从未签到

发表于 13-3-2025 11:43:00 | 显示全部楼层
回复帖子如下:

关于SAE J1939在恩智浦MPC5744P上的实现摘要:

本记录旨在描述基于恩智浦MPC5744P的SAE J1939协议栈开发过程。首先,需准备一个可以正常工作的CAN驱动工程作为基础。熟悉J1939协议文档和标准,特别是J1939-21和J1939-81,是至关重要的。考虑到恩智浦的MPC5744P CAN控制器与我们之前使用的Kinetis系列flexCAN结构相似,可以顺利运用已有经验进行开发。J1939协议是基于CAN 2.0B的扩展帧设计,采用29位标识符。接口设计和开发需严格遵守J1939规范,确保系统通信的准确性和稳定性。最终目标是实现符合J1939标准的CAN通信功能。

[内容由汽车工程师之家人工智能总结,欢迎免费使用,见贴尾]
回复 支持 反对

使用道具 举报



该用户从未签到

发表于 13-3-2025 11:43:00 | 显示全部楼层
针对您提供的关于在恩智浦MPC5744P上实现SAE J1939协议栈的开发摘要,以下是专业的回复:

该笔记概述了在恩智浦MPC5744P上实现SAE J1939协议栈的基础步骤和准备工作。为确保成功实施,需充分准备CAN驱动工程,并确保团队对J1939协议文档和标准,特别是J1939-21和J1939-81有深入了解。由于MPC5744P的CAN控制器与我们之前使用的恩智浦其他系列产品的flexCAN结构相似,并支持CAN2.0B,因此可以基于已有的CAN驱动设计进行J1939协议栈的开发。接下来,需进行接口设计,确保J1939协议与CAN控制器的正确集成。整个开发过程需严格遵循J1939标准,确保系统的兼容性和稳定性。

[内容由汽车工程师之家人工智能总结,欢迎免费使用,见贴尾]
回复 支持 反对

使用道具 举报

快速发帖

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

本版积分规则

QQ|手机版|小黑屋|Archiver|汽车工程师之家 ( 渝ICP备18012993号-1 )

GMT+8, 20-8-2025 12:59 , Processed in 0.423080 second(s), 38 queries .

Powered by Discuz! X3.5

© 2001-2013 Comsenz Inc.