如何构建专属自己的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

目录
相关文章
|
4月前
|
传感器 监控 网络协议
modbus协议的定义-钡铼技术
Modbus协议是一种广泛应用于工业自动化和控制系统中的开放通信协议,由Modicon公司于1979年发布。该协议定义了消息结构,支持RS232、RS485和TCP/IP等多种电气接口和传输介质,具备开放性、简单性和适应性强等特点。Modbus采用主从通信模式,支持ASCII、RTU和TCP三种传输模式,确保数据传输的可靠性和准确性。其主要作用包括设备通信、监控与控制以及提供标准化接口,简化系统集成并适用于多种应用场景。
|
5月前
|
网络协议
Tcp硬件设备数据规范
Tcp硬件设备数据规范
47 0
|
8月前
|
存储 网络协议 Linux
【Linux 网络】网络基础(一)(局域网、广域网、网络协议、TCP/IP结构模型、网络传输、封装和分用)-- 详解(下)
【Linux 网络】网络基础(一)(局域网、广域网、网络协议、TCP/IP结构模型、网络传输、封装和分用)-- 详解(下)
|
8月前
|
存储 网络协议 安全
【Linux 网络】网络基础(一)(局域网、广域网、网络协议、TCP/IP结构模型、网络传输、封装和分用)-- 详解(上)
【Linux 网络】网络基础(一)(局域网、广域网、网络协议、TCP/IP结构模型、网络传输、封装和分用)-- 详解(上)
|
8月前
|
存储 XML 移动开发
应用层协议设计 ProtoBuf
应用层协议设计 ProtoBuf
|
存储 网络协议 物联网
C语言代码封装MQTT协议报文,了解MQTT协议通信过程
MQTT是一种轻量级的通信协议,适用于物联网(IoT)和低带宽网络环境。它基于一种“发布/订阅”模式,其中设备发送数据(也称为 “发布”)到经纪人(称为MQTT代理),这些数据被存储,并在需要时被转发给订阅者。这种方式简化了网络管理,允许多个设备在不同的网络条件下进行通信(包括延迟和带宽限制),并支持实时数据更新。它是开放的,可免费使用并易于实施。
472 0
|
网络协议 数据安全/隐私保护 网络架构
Internet协议栈 TCP/IP模型 、以太网封装以及解封装过程、物理层、链路层、网络层、传输层、应用层的作用 OSI七层模型
物理层、链路层、网络层、传输层、应用层分别所做的事,作用,每层都需要下一层来提供服务,也就是下一层的功能使都是为了更好的服务上一层。 TCP/IP参考模型,ISO/OSI参考模型
Internet协议栈 TCP/IP模型 、以太网封装以及解封装过程、物理层、链路层、网络层、传输层、应用层的作用 OSI七层模型
|
网络协议 网络架构
1.2.1计算机网络(分层结构、协议、接口、服务、ISO/OSI、TCP/IP)
分层结构、协议、接口、服务 1.为什么要分层? 2.怎么分层? 3.正式认识分层结构 4.概况总结 参考模型 ISO/OSI参考模型--怎么 来的? IS0/OSI参考模型 1.应用层 2.表示层​ 3.会话层 4.传输层 5.网络层 6.数据链路层 7.物理层 OSI参考模型与TCP/IP参考模型 OSI参考模型与TCP/IP参考模型相同点 OSI参考模型与TCP/IP参考模型不同点 5层参考模型
1.2.1计算机网络(分层结构、协议、接口、服务、ISO/OSI、TCP/IP)
|
安全 数据格式 XML
应用层/安全层/传输层如何进行协议选型?
应用层/安全层/传输层如何进行协议
945 0
|
Linux 芯片 内存技术
SPI协议及其工作原理浅析【转】
转自:http://www.laoliu-soft.net/category/tech_chap/tech_linux/ 一、概述. SPI, Serial Perripheral Interface, 串行外围设备接口, 是 Motorola 公司推出的一种同步串行接口技术.
1382 0

热门文章

最新文章

下一篇
开通oss服务