- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于 CAN 总线的 modbus 通信设计
摘要:CAN 总线是由德国 BOSCH 公司开发了的,其主要用于汽车计算机
制系统,而在工业控制领域较少适用,在工业领域用的最多的是RS485 总线。CAN
总线较 RS485 总线具有网络各节点之间的数据通信实时性强,开发周期短,
已形成国际标准的现场总线等优点。因此 CAN 总线是比较有前途的现场总
线之一,在工业控制领域代替 RS485 是有可能的。
为了能简单地应用 CAN 总线代替 RS485 总线,如果采用比如 CANopen
等协议使得设备变得复杂化,那么有没有简单点的协议?很多做过工业设
备的工程师都熟悉 MODBUS 协议,在 RS485 总线上跑的最多的协议就是
MODBUS ,如果我们在 CAN 总线上运行 MODBUS 协议,那么做过 RS485
的工程师就能很快地转移过来,减少了开发难度。所以本文就以 CAN 总线
上跑 MODBUS 协议为目的对数据网络层协议进行设计。
概念:MODBUS 有主从概念,CAN 总线支持多主,在这里我们把主机叫做客户
端,从机叫做服务器。在 CAN 总线上采用客户端服务器的概念。
在进行协议介绍前先对 CAN MODBUS 进行简单的介绍。
MODBUS :阅读过 MODBUS 协议的人都知道 modbus 有 ASCII 和 RTU
模式,其中 RTU 模式用的较多,一个数据包在网络上传输我们必须知道包
的开始和结束,在 RTU 模式中数据包是以至少 3.5 个字符的静默时间开
始和结束的,如果信息结束前存在超过 1.5 个字符以上的间隔时间则出错。
为了检测这些时间间隔,在程序上将变得很被动。ASCII 虽然有专用的开始
结束标志符,但是 ASCII 需要把一个字节数据传换为两个字符发送所以其
效率低。所以还是得采用 RTU 模式,但得根据 CAN 总线的特点解决数据
包开始结束标志的定义。
CAN 总线:CAN 总线的数据传输是以帧为单位的,一个帧包含标识符、
数据段 CRC 等,标识符表示该帧的发送优先级,数据段包含实际的数据,
数据长度从 1 到 8 字节,CRC 对该帧进行校验,因为帧中包含了数据校验
功能,所以在 CAN 上跑 modbus 就不需要再对数据进行 CRC 校验。在这里
我们看到 CAN 总线是有优先级这个概念,但是没有出现像 modbus 这样有
地址的概念,CAN 总线上标识符段表示的是该帧的优先级,它面向的是数
据,而 modbus 面向的是设备,每个数据包中都有地址,如果我们把地址放
在 CAN 帧的数据段中那么所有设备都必须接收每一帧,然后对数据进行解
析,如果网络负载比较大的是时候,这对设备不利。CAN 控制器一般都能
对特定的标识符段进行过滤,那么我们为什么不能把标识符段作为设备的
地址,然后设备对特定的标识符进行过滤,这样就减少了设备的负担。但
是如果标识符段作为目的地址,那么 CAN 总线上就不能有两个主机,应为
CAN 总线规定不能有两个相同标识符的帧同时发送。既然标识符符不能作
为目的地址,那么就实现不了设备对数据的过滤。我的解决办法是把帧的
标识符段分为两部分,一部分为发送方地址,另一部分为接收方地址,其
中接收方地址在标识符的高端。这样我们就能通过表标识符段知道这帧数
据是谁发给谁的,对于接收方它通过设置过滤器只接收表识符高端数据为
自己地址的帧,这样就解决了CAN 总线中地址的概念。这个地址还表示的
设备的优先级,地址越小优先级就越高,接收方地址和发送方地址就决定
这帧的发送优先级。标识符段分为标准帧和扩展帧,标准帧的标识符为 11bit,
扩展帧的标识符为 29bit ,按照接收方地址加发送方地址的分配方法标准帧
的地址范围为 0~31 ,共计 32 个地址,如果用扩展帧的来分配地址范围为
0~16383 ,共计 16384 个地址。
标识符
接收方地址 发送方地址
因为一帧最多能发送 8 字节数据,因此要发送超过 8 字节的数据就必须
使用多帧,为了能适应多任务环境,我们在把帧的数据段的前两自己数据
用作特殊用途:第一字节表示帧数据的 ID ,其 bit7 为 1:表示服务器返回
的数据帧,为 0 :表示客户端请求的数据帧;第二字节表示着一帧在
您可能关注的文档
最近下载
- 2026中国能建全球校园招聘笔试模拟试题及答案解析.docx VIP
- 2026中国能建投资集团校园招聘笔试备考试题及答案解析.docx VIP
- 注塑技术员个人简历范文.pdf VIP
- 2025中国能建葛洲坝规划设计总院招聘9人考试备考试题及答案解析.docx VIP
- 护理组织管理体系及职责分工.pdf VIP
- 外卖平台用户粘性与2025年餐饮业盈利增长潜力报告.docx
- 水电水利规划设计总院招聘9人笔试备考题库及答案解析.docx VIP
- 自我探索与心理成长智慧树知到期末考试答案章节答案2024年浙江大学.docx VIP
- 留置场看护辅警考试题库(附答案).docx VIP
- 2026水电水利规划设计总院有限公司秋季招聘10人笔试备考试题及答案解析.docx VIP
原创力文档


文档评论(0)