摘要
本篇笔记主要记录基于恩智浦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所有功能的实现和应用。

接收接口用于获取总线上的CAN报文帧,然后交由J1939的处理函数解析。这里发送函数未列出。
数据类型
根据J1939的标准和要求特定义以下数据类型,方便程序的开发和应用

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


测试
SAE J1939协议是CAN的高层协议,是一种广泛应用于重型车,特种车,农机,以及非路面设备车辆等。
SAE J1939 协议栈 主要参考标准J1939-21 数据链路层, J1939-81 网络管理层 。标准的详细内容请参考SAE 的J1939标准。

编辑:jq
-
CAN
+关注
关注
59文章
3097浏览量
473551 -
数据链路层
+关注
关注
0文章
63浏览量
12439 -
接口函数
+关注
关注
0文章
11浏览量
8414
原文标题:SAE J1939在恩智浦MPCxxx上实现
文章出处:【微信号:InterruptISR,微信公众号:嵌入式程序员】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
2026最新CAN转Modbus网关评测:IPCSUN捷宸电子PBC0022如何搞定J1939与私有协议?
重型车辆J1939通信协议是什么
恩智浦EasyEVSE开发平台荣膺绿色出行奖
恩智浦亮相RT-Thread 20周年开发者大会
Profinet 转 SAE J1939 网关 实现重型车智能控制 西门子 PLC 渣土自卸车改造案例
恩智浦推出全新eIQ Agentic AI框架
Amphenol ER系列SAE J1772充电电缆及插座设计解析
STM32已经用标准库写好的代码,怎么导入RT THREAD?
恩智浦MCX E系列5V MCU发布
从手写代码到AUTOSAR工具链:J1939Tp应用篇
恩智浦完成对TTTech Auto的收购
STM32已经用标准库写好的代码,怎么导入RT THREAD?
米尔诚邀您参加2025恩智浦NXP峰会
基于恩智浦MPC5744P的SAE J1939协议栈开发
评论