摘要
本篇笔记主要记录基于恩智浦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标准。
上一篇:基于恩智浦MPC5744P的CAN驱动开发和测试
下一篇:基于MPC5744P的MACL和EB的开发编译和配置
推荐阅读最新更新时间:2024-11-09 12:34
推荐帖子
- BB-Black做胎儿监护仪
- 以AM3359为CPU,外接各种功能。用MT41K256M16HA-125:E作为DDR模块;K9F4G08U0M用作NAND;SGTL5000XNAA3/R2作为声卡;再外接上7寸的触摸屏,网卡和SD等模块。这种硬件设计思路符合胎儿监护仪的需求。BB-Black做胎儿监护仪
- 超爱洁 DSP 与 ARM 处理器
- [求助]Socket问题
- 小弟最近初学Socket编程,自己在windowsmobile6.0上编了一个读取服务端时间的例子,不能成功;因为初学,其中肯定有很多错误,请大家指教。谢谢!1.先创建两个菜单按钮;一个server,一个client;2.这两个按钮的单击事件分别创建一个线程,线程的回调函数是ServerMain和ClientMain3.先点击“server”按钮,启动server线程4.在单击“client”按钮,启动client线程问题:为什么没有读到服务器端事件??代码如下:“ser
- shdh6015 嵌入式系统
- STM32MINI开发板
- 因本人工作了,刚买几个月的STM32mini正点原子的开发板转让给本论坛的朋友们,自从买了之后一个月就去深圳实习了,一直也没用过,现在也没时间弄了,STM32是嵌入式学习开发必备,淘宝价格太贵,都是拿来学习之用,有意者联系QQ122149787,可全方位拍图片观察,也可录制相关视频观看,资料齐全,放心STM32MINI开发板这样就放弃,可惜了。dcexpert发表于2015-4-822:26这样就放弃,可惜了。 只是把开发板卖掉,会抽空继续学习买了吗,我想买
- 枫叶之星98 stm32/stm8
- CD4046输入阻抗约为100M欧是指从哪个管脚的输入阻抗呢?
- 我自己觉得应该是14号信号输入管脚。但也没有依据。所有资料都是说输入阻抗100M欧,请问,但从这句话就可以判断是从哪个管脚的输入阻抗吗?如果是14号,是否要接上VDD以后它的输入阻抗才是100M欧?CD4046输入阻抗约为100M欧是指从哪个管脚的输入阻抗呢?“输入阻抗”,当然是指输入引脚上的啦。应该是指14脚的当然是在偏置了以后~~~~~不过它是MOS输入,不偏置也差不多,不过较大的电压摆幅会被钳位它的输入都是MOS输入,全都是高阻抗的
- laoyuyin 嵌入式系统
- NIOS II 软核中EPCS配置芯片的存储操作
- 用CYCLONEFPGA做的视频图像叠加板需要存储一些用户配置信息,而EPCS4配置芯片除了存储FPGA配置信息和NIOSII程序外,还有很多存储空间剩余未使用,刚好可以用来做用户配置信息存储。折腾了挺长时间,看了不少文档,都只是提到可以用ALTERA提供的HAL函数来调用EPCS相关的函数。最后只能硬着头皮看“altera_avalon_epcs_flash_controller.c”函数(路径为:\\altera\72\ip\sopc_builder_ip\altera_avalo
- fish001 DSP 与 ARM 处理器
- 困惑!
- 我用的是F449的学习版,我先把直流发生器关了(SCG0=1)这时FLL+停止工作了,也把(XT2OFF=0)关断了,并且MCLK也没有选择LFXT1CLK(即:FLL_CTL1=0x54),为什么程序还能运行呢?请大家指点一下,谢谢!这时MCLK的时钟源来至哪儿。困惑!内部DCO启动被自动选为MCLK的时钟源。DCO时钟源可是我已经关了DCO了啊,是不是存在我关了XT2和LFXT1的情况下关不了DCO呢?再请教! 引用: 可
- tjhm 微控制器 MCU
设计资源 培训 开发板 精华推荐
- SSM2306、2W无滤波器D类立体声音频放大器的典型应用立体声差分输入配置电路
- 具有 400mA 突发钳位、fSW = 1MHz 同步降压型稳压器的 LTC3621IDCB-5 2.5V Vout 的典型应用
- EV1340QI 5A同步高集成DC-DC DDR2/3/QDR存储器端接和低VIN典型应用电路
- 使用 Microchip Technology 的 TS8388B 的参考设计
- LT1947 的典型应用 - 可调输出 TFT-LCD 三重开关稳压器
- AM3G-0512SZ 12V 3 瓦直流转直流转换器的典型应用
- LTM4650EY-1A 的典型应用电路 典型 4.5 至 15 Vin、1.5V 和 1.2V at 25A 输出降压稳压器
- MPU6050姿态解算STM32源码
- LTC1569-7、3V 交流耦合、具有多个截止频率的单端滤波器
- LTC6601-1,宽带有源滤波器解决信号处理精度和匹配问题