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

时间: 2024-07-29 01:14:03

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

《计算机网络:自顶向下方法(原书第6版)》一2.1 应用层协议原理

2.1 应用层协议原理 假定你对新型网络应用有了一些想法.也许这种应用将为人类提供一种伟大的服务,或者将使你的教授高兴,或者将带给你大量的财富,或者只是在开发中获得乐趣.无论你的动机是什么,我们现在考察一下如何将你的想法转变为一种真实世界的网络应用. 研发网络应用程序的核心是写出能够运行在不同的端系统和通过网络彼此通信的程序.例如,在Web应用程序中,有两个互相通信的不同的程序:一个是运行在用户主机(桌面机.膝上机.平板电脑.智能电话等)上的浏览器程序:另一个是运行在Web服务器主机上的Web服

http协议-应用层协议还原的方法?

问题描述 应用层协议还原的方法? 在已经截获到应用层数据包的情况下,例如http协议数据包,我想对http协议进行还原,有现成的机制,能够提供接口,供我使用的吗?

常用应用层协议HTTP、RTSP、RTMP比较

HTTP(超文本传输协议).RTSP(Real Time Streaming Protocol实时流传输协议).RTMP(Routing Table Maintenance Protocol路由选择表维护协议)是应用层协议,理论上都可以做直播.点播,实际上直播多采用RTMP和RTSP.点播则多用RTSP和HTTP. 一.常用领域: HTTP(HTTPS)所有数据都作为文本处理,广泛应用于网络访问,是公有协议,有专门机构维护. RTSP流媒体协议,多用在监控领域视频直播点播:是公有协议,有专门机构

是否该构建专属私有云的团队?

云计算需要独特的IT技能.我们应该做出怎样的人员改变,来构建和维护一个成功的私有云呢? 有很多理由可以将业务迁移到私有云,包括增加灵活性.敏捷性和成本节省.然而,对于组织很重要的一点事要准备很多与私有云项目相关的变动,包括技术和IT人员的变动. 让IT和云成员满足你当下以及未来所有的需求很重要.在采用私有云时,计划阶段的错误会导致你的云失败.设计.实施.管理和维护私有云是一个复杂的过程,而且是日常系统管理范围之外的.为了合适地运行私有云环境,而且确保为业务增加价值,IT团队成员需要扩展系统知识.

在J2ME平台上构建你的邮件程序

程序 在J2ME平台上构建你的邮件程序Jacky Pan Table of Contents1. 教程的介绍和程序的安装 2. 程序的结构 3. 界面的设计 4. 账户的管理 5. MIDlet和Servlet的网络连接 6. Servlet和JavaMail 7. 简单的XML 8. 小结 1.教程的介绍和程序的安装 本教程讲述了如何在J2ME平台上编写一个简单的邮件应用程序,包括界面的设计,邮件的发送/接受,邮件账户的创建/修改/删除,后台Servlet的编写. 为了运行本教程所带的演示程序

中小型企业专属 华三全新F100防火墙

本文讲的是 :  中小型企业专属 华三全新F100防火墙  , [IT168 导购]随时代科技的发展进步,眼下传统防火墙已满足不了当今企业的深入融合的需求,根据中小型企业.园区网互联网出口以及广域网分支市场需求,面对当今传统防火墙的逐渐暴露的种种问题,华三公司推出了新一代高性能防火墙产品-华三 SecPath F100-A-G2防火墙. ▲SecPath F100-A-G2防火墙 华三 SecPath F100-A-G2应用了先进的最新64位多核高性能处理器和高速存储器,采用华三公司拥有自主知识

IPtables如何加载layer7匹配应用层数据包

此篇iptables-layer7部分距离上篇博文有一段时间了,主要是这两天双休日宅在寝室,寝室又木有空调,一想到添加layer7功能要添加内核模块.重新编译内核.那漫长的等待...就感到烦躁不已啊...于是就偷懒了两天... 这里再废话一下,大家有立志于学习linux的童鞋可以关注下http://mageedu.blog.51cto.com/  自己看,强大不需要解释 不扯这些了...进入正题. 要让iptables实现应用层的过虑,首先要给内核和应用层的iptables定义工具分别打上lay

Swift教程_零基础学习Swift完整实例(六)_swift完整实例(构建控制层)

4.构建控制层 本章节主要来构建个功能的控制层,为之前已经创建好的storyboard中页面的自定义controller添加对应功能. 1.TabBarViewController 该控制器按照需求通过数据层服务类PKOElementDataService所构建的实现了PKOTableDataSourceProtocol与UITableViewDataSource协议的4类数据集dataSource,并将他们赋值给tab种所展示view的控制器,即PKOElementTableViewContr

如何根据需求定义应用层通信协议。比如需求为:LED亮度控制,播放内容

问题描述 如何根据需求定义应用层通信协议.比如需求为:LED亮度控制,播放内容 LED显示中有亮度控制,播放内容,声音控制等需求,现在根据需求如何定义计算机和LED显示设备之间的应用层协议.麻烦能否详细说明一下.主要不理解如何根据需求定协议.谢谢了.