Skip to content

Releases: XeiTongXueFlyMe/J1939

Version 2.1.0 稳定发布版

20 Jan 03:35
Compare
Choose a tag to compare

协议特性:

  • 易移植(不针对特定的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发布前的测试版本。

08 Dec 08:15
Compare
Choose a tag to compare

可能出现的问题:

  • 地址竞争,动态地址分配等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

22 Nov 06:53
Compare
Choose a tag to compare

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第一个发布版本

10 Nov 01:26
Compare
Choose a tag to compare
Pre-release

协议特性:

  • 易移植(不针对特定的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)