如何构建专属自己的CAN-bus应用层协议

简介:

随着CAN-bus相关芯片价格的下降,内置CAN控制器MCU的增多,CAN-bus当前已经进入了众多早期由于成本问题无法使用的领域,成为极具生命力的现场总线,今天我们就来探讨如何构建专属自己的CAN-bus应用层协议。

在CAN-bus网络上,CAN报文以广播的形式发送,CAN报文不包含地址信息,是否处理接收到的CAN报文由接收点的软件确定。CAN-bus只提供可靠的报文传输服务,CAN报文的使用由应用者定义, 所以CAN网络中的节点要相互通信就必须制定一个统一的规则。CAN应用层协议就是这样一个规则。

这个规则,定义了CAN报文中帧ID及帧数据的使用方式,如将帧ID定义为需要处理该帧数据的CAN节点地址等。根据应用场合的不同,国际上出现了多种CAN应用层协议,常见的CAN-bus应用层协议如下:

接下来,我们看一下如何构建CAN-bus应用层协议

构建一个现场总线网络,需要解决的关键技术问题有:

总线传输信息的速度、容量、优先等级、节点容量等;

高电磁干扰环境下的可靠数据传输;

最大传输距离时延时大小的确定;

网络的容错技术;

网络的监控和故障诊断功能。

要解决以上问题,需要充分考虑现场总线网络所采用的总线类型,因为以上问题和总线的性能特点是密切相关的,那么我们就看一下CAN-bus总线的上述特性:

CAN-bus网络传输速度最高可达1Mbps,并采用无损仲裁,通过报文标识符指示报文优先级;

CAN-bus采用差分信号传输,并采用可靠的数据校验和错误检测机制;

CAN-bus采用帧传输,每个报文允许传输最多8个字节,帧结构有严格规定,能够确定最大传输延时;

CAN-bus具有可靠的错误机制和检测机制,发送的信息遭到破坏后可以重新发送;节点在错误严重的情况下,具有自动退出总线的功能;

可以通过制定严禁的CAN-bus应用层协议解决网络监控和诊断。

CAN报文的分配

包含报文标识符的分配和报文数据的分配,报文格式的定义,实质是将CAN报文的分配规则进行详细的描述。

报文ID的定义:

CAN2.0A帧:11位ID

CAN2.0B帧,29位ID

报文数据的定义:每帧报文最多包含8字节数据

CAN网络数据通信的实现

在CAN网络中,通过报文的标识符进行信息的区分,因此通过报文的各种标识符分配来达到建立信息链接的目的。

CAN应用层协议:面向节点和面向报文的协议

数据通信协议基本上可以划分为“面向节点的协议”和“面向报文的协议”两种类型,如下图:

制定一个CAN应用层协议

为了给读者演示CAN应用层协议的开发和使用方法,下面定义一个简单的CAN应用协议栈,该协议栈中只用到CAN标准帧中的数据帧,帧ID中的11个位的分配和使用方法如下表所列,协议中另外还定义了功能参数长度变量FunDataLen的功能参数数组FunData,该数组在需要时可以为某些特定功能函数提供足够的控制参数。


本文作者:佚名          

来源:51CTO

目录
相关文章
|
3月前
|
存储 XML 移动开发
应用层协议设计 ProtoBuf
应用层协议设计 ProtoBuf
|
3月前
|
存储 XML JSON
Protobuf应用层协议设计
Protobuf应用层协议设计
46 0
|
5月前
|
存储 XML JSON
应用层协议设计及ProtoBuf
应用层协议设计及ProtoBuf
51 0
|
10月前
|
芯片
|
物联网 数据安全/隐私保护
【蓝牙mesh】access层(接入层)协议介绍
Model ID 是一个16Bit 或者32Bit的一个数值。用来表示设备的某个功能模块,比如onoff model, lightness model。那16Bit的Model ID 和 32Bit的Model ID有什么区别呢?16Bit的Model ID 是有蓝牙技术联盟分配的。如下图是Sig制定的几个Model ID32Bit的Model ID是由各个厂商自定义的Model ID。
116 0
【蓝牙mesh】access层(接入层)协议介绍
|
中间件
SOA通信架构和SOME/IP-SD的主要功能
SOA通信架构和SOME/IP-SD的主要功能
SOA通信架构和SOME/IP-SD的主要功能
|
网络协议 程序员 数据安全/隐私保护
协议/协议分层(详解)
协议/协议分层(详解)
683 0
协议/协议分层(详解)
|
网络协议 数据安全/隐私保护 网络架构
Internet协议栈 TCP/IP模型 、以太网封装以及解封装过程、物理层、链路层、网络层、传输层、应用层的作用 OSI七层模型
物理层、链路层、网络层、传输层、应用层分别所做的事,作用,每层都需要下一层来提供服务,也就是下一层的功能使都是为了更好的服务上一层。 TCP/IP参考模型,ISO/OSI参考模型
Internet协议栈 TCP/IP模型 、以太网封装以及解封装过程、物理层、链路层、网络层、传输层、应用层的作用 OSI七层模型
|
Linux API 数据处理
USB协议架构分析
USB协议架构分析
|
存储 Unix
【协议解读】AXI协议中的几个重要概念
本文以解读AXI协议中的多交易操作部分为目的而展开介绍,首先介绍了AXI协议基本概念中与多交易操作相关的概念,之后对多交易操作所涉及的“outstanding”、“out of order”和“interleaving”等重要概念做了基本解读。
【协议解读】AXI协议中的几个重要概念