Releases: XeiTongXueFlyMe/J1939
Releases · XeiTongXueFlyMe/J1939
Version 2.1.0 稳定发布版
协议特性:
- 易移植(不针对特定的CAN硬件,只要满足CAN2.0B即可)
- 轻量级(可适应低端的MCU)
- 支持多任务调用接口(接口可用于嵌入式操作系统)
- 双模式(轮询或者中断,逻辑更加简单明了)
- 不掉帧(数据采用收发列队缓存)
- 多路CAN硬件
重大改动(与Version 1 稳定发布版对比)
- 【增加】J1939协议栈对多路CAN硬件的支持(1~4路)
- 【增加】软件滤波器
- 【增加】增加请求和响应API
- 【增加】增加web版的J1939使用说明
- 【增加】重做了J1939_Read_Message()API函数接口
- 【增加】重做了J1939_Send_Message()API函数接口
- 【删除】重做了J1939_EnqueueMessage()API函数接口
- 【删除】重做了J1939_DequeueMessage()API函数接口
- 【删除】地址竞争(打算后面重做)
- 【删除】动态地址配置(打算后面重做)
- 【优化】优化了J1939协议栈调度
- 【优化】优化了J1939消息对象
- 【优化】优化了J1939初始化过程,及初始化代码
- 【优化】优化了由于不同单片机的编译方式不同,出现的位反转,导致代码移植不成功,但是移植接口处的位反转还得自己注意修改。
- 【重做】重做了备注风格
- 【重做】重做API函数的调用逻辑(改动导致V1与V2使用不兼容的原因)
- 【重做】重做了移植函数
- 【重做】重做了J1939_TP_RX_Message()API函数接口
- 【重做】重做了J1939_Poll()API函数接口
- 【重做】重做了J1939_Initialization()API函数接口
支持的API接口
- J1939_Initialization()
- J1939_ISR(void)
- J1939_Poll()
- J1939_Read_Message( J1939_MESSAGE *MsgPtr, CAN_NODE _Can_Node);
- J1939_Send_Message( J1939_MESSAGE *MsgPtr, CAN_NODE _Can_Node);
- J1939_TP_TX_Message(j1939_uint32_t PGN, j1939_uint8_t DA, j1939_uint8_t *data, j1939_uint16_t data_num, CAN_NODE _Can_Node)
- J1939_TP_RX_Message(TP_RX_MESSAGE *msg, CAN_NODE _Can_Node)
- J1939_Request_PGN(j1939_uint32_t pgn ,j1939_uint8_t DA, CAN_NODE _Can_Node)
- J1939_Create_Response(j1939_uint8_t data[],j1939_uint16_t dataLenght,j1939_uint32_t PGN,void (*dataUPFun)(),CAN_NODE _Can_Node)
本版本为V2.1.0发布前的测试版本。
可能出现的问题:
- 地址竞争,动态地址分配等J1939网络功能占时不能使用。
- 中断模式占时不能使用
协议特性:
- 易移植(不针对特定的CAN硬件,只要满足CAN2.0B即可)
- 轻量级(可适应低端的MCU)
- 支持多任务调用接口(可用于嵌入式操作系统)
- 双模式(轮询或者中断,逻辑更加简单明了)
- 不掉帧(数据采用收发列队缓存)
- 多路CAN硬件
重大改动
- 【增加】J1939协议栈对多路CAN硬件的支持
- 【增加】软件滤波器
- 【增加】增加请求和响应API
- 【增加】增加web版的J1939使用说明
- 【优化】优化了J1939消息对象
- 【重做】重做API函数的调用逻辑(改动导致V1与V2使用不兼容的原因)
- 【重做】重做了移植函数
- 【重做】重做了J1939_TP_RX_Message()API函数接口
支持的API接口
- J1939_Initialization(BOOL)
- J1939_ISR(void)
- J1939_Poll(unsigned long ElapsedTime)
- J1939_DequeueMessage(J1939_MESSAGE *MsgPtr)
- J1939_EnqueueMessage(J1939_MESSAGE *MsgPtr)
- J1939_TP_TX_Message(unsigned int PGN,unsigned char SA,char *data,unsigned short data_num)
- J1939_TP_RX_Message(TP_RX_MESSAGE *msg,CAN_NODE _Can_Node)
- J1939_Request_PGN(j1939_uint32_t pgn ,j1939_uint8_t DA, CAN_NODE _Can_Node)
- J1939_Create_Response(j1939_uint8_t data[],j1939_uint16_t dataLenght,j1939_uint32_t PGN,void (*dataUPFun)(),CAN_NODE _Can_Node)
J1939协议栈V1.1.0
J1939协议栈API
- J1939_Initialization(BOOL)
- J1939_ISR(void)
- J1939_Poll(unsigned long ElapsedTime)
- J1939_DequeueMessage(J1939_MESSAGE *MsgPtr)
- J1939_EnqueueMessage(J1939_MESSAGE *MsgPtr)
- J1939_TP_TX_Message(unsigned int PGN,unsigned char SA,char *data,unsigned short data_num)
- J1939_TP_RX_Message(char *data,unsigned short data_num)
J1939第一个发布版本
协议特性:
- 易移植(不针对特定的CAN硬件,只要满足CAN2.0B即可)
- 轻量级(可适应低端的MCU)
- 支持多任务调用接口(可用于嵌入式操作系统)
- 双模式(轮询或者中断,逻辑更加简单明了)
- 不掉帧(数据采用收发列队缓存)
功能:
- 消息广播
- 消息请求
- 消息确认,响应
- 群功能
- 专用传输A
- 专用传输B
- 地址声明竞争
- 远程地址配置
- 自动分配地址
- 多帧传输协议TP
API接口
- J1939_Initialization(BOOL)
- J1939_ISR(void)
- J1939_Poll(unsigned long ElapsedTime)
- J1939_DequeueMessage(J1939_MESSAGE *MsgPtr)
- J1939_EnqueueMessage(J1939_MESSAGE *MsgPtr)
- J1939_TP_TX_Message(unsigned int PGN,unsigned char SA,char *data,unsigned short data_num)
- J1939_TP_RX_Message(char *data,unsigned short data_num)