8738|9

93

帖子

1

TA的资源

一粒金砂(中级)

楼主
 

RS485通信协议为什么会规定几个字节而不是确定的数据呢? [复制链接]

RS485通信协议为什么会规定几个字节而不是确定的数据呢?比如"地址域A0A1A2A3 4个,命令字节1个,长度字节1个,数据区(标识符2个,数据)"这都是什么意思呢?
此帖出自51单片机论坛

最新回复

确定字节数是为了提高容错性。字节数肯定会有范围的限制。可以参考一下,通信中,出现的长度的范围。   详情 回复 发表于 2015-4-17 20:49
点赞 关注
 

回复
举报

449

帖子

0

TA的资源

纯净的硅(中级)

推荐
 
RS485通信协议?RS485只是一种通信总线,不负责协议。各厂家根据自己的需要制定自己的协议。你看的是哪个厂家自己订的协议吧?
此帖出自51单片机论坛

点评

不管是谁定的协议,定义字节是什么意思呢?  详情 回复 发表于 2015-4-16 15:37
 
 
 

回复

93

帖子

1

TA的资源

一粒金砂(中级)

板凳
 
Aragorn 发表于 2015-4-16 15:15
RS485通信协议?RS485只是一种通信总线,不负责协议。各厂家根据自己的需要制定自己的协议。你看的是哪个厂家自己订的协议吧?

不管是谁定的协议,定义字节是什么意思呢?
此帖出自51单片机论坛

点评

协议嘛,大概由两部分组成,第一部分就是信息部分,就是要告诉对方你的目的,想要干什么;第二部分大概就是安全机制,用来检查所收到的信息在通信过程中是否出错。所以你可能发现一些协议通常由以下部分组成:  详情 回复 发表于 2015-4-16 16:37
 
 
 

回复

449

帖子

0

TA的资源

纯净的硅(中级)

4
 
hu柏拉图的永恒 发表于 2015-4-16 15:37
不管是谁定的协议,定义字节是什么意思呢?

协议嘛,大概由两部分组成,第一部分就是信息部分,就是要告诉对方你的目的,想要干什么;第二部分大概就是安全机制,用来检查所收到的信息在通信过程中是否出错。所以你可能发现一些协议通常由以下部分组成:


1. 起始符、结束符:起始符是标识一帧数据的开始,结束符标识一帧数据的结束,如果没有起始符和结束符,你很难知道有效帧是从什么时候开始和什么时候结束的,这样容易造成沟通错误;

2. 校验域:接收到完整的帧后,要计算校验,并和校验域相比较,如果相等说明通信正确,如果不相等说明通信过程中出现错误;


3. 命令域:命令域属于信息部分,主要是告诉对方你的目的,比如你想读对方的数据,那么命令可能是字符R;如果你想向对方写入数据,命令可能是字符W;如果你想让对方停止运行,命令可能是字符S。命令是双方约定好的,像那些贩毒的都有一套暗语,什么表示什么意思,要干什么,大概就是如此;

4. 数据域:就是通信所携带的数据部分,比如你要向对方写入数据,那么被写入的数据就放在数据域中,如果是读取的数据,那么返回的数据也会放在数据域中



大概一个简单的协议就包含这些,当然每个厂家所订的协议都不一样。比如有些厂家就没有结束符,有些在帧中添加一个帧长度说明符。但不管是哪种协议,大体上就包含信息部分和安全机制部分。每一个所定义的字符都有它的作用,可能是标识帧的开始和结束、也可能是校验用处、也可能是说明一帧的长度、也可能是双方约定的命令,等等。
此帖出自51单片机论坛
 
 
 

回复

3471

帖子

11

TA的资源

五彩晶圆(高级)

5
 
比如"地址域A0A1A2A3 4个,命令字节1个,长度字节1个,数据区(标识符2个,数据),
可能就是这样的,
地址域,从设备的地址,每个设备有自己的地址。只有地址符合才接收数据。
命令字,这个要看具体情况。最简单的是读写控制。
长度字节,确定数据的长度。
数据区,传递的具体的数据。
此帖出自51单片机论坛

点评

非常感谢各位,协议的各个部分为什么要确定字节数,字节数可以随便定义吗?  详情 回复 发表于 2015-4-17 09:37
 
 
 

回复

1万

帖子

142

TA的资源

版主

6
 
没有什么''RS485通信协议'',协议有很多,也可以自己制定,485不过是载体。协议是约定的通信规则,任何协议都有其目的性。楼主遇到的是典型的一主多从式协议的帧结构。
此帖出自51单片机论坛
 
个人签名上传了一些书籍资料,也许有你想要的:https://download.eeworld.com.cn/user/chunyang
 
 

回复

93

帖子

1

TA的资源

一粒金砂(中级)

7
 
ienglgge 发表于 2015-4-16 21:01
比如"地址域A0A1A2A3 4个,命令字节1个,长度字节1个,数据区(标识符2个,数据),
可能就是这样的,
地址域,从设备的地址,每个设备有自己的地址。只有地址符合才接收数据。
命令字,这个要看具体情况。最简单的是读写控制。
长度字节,确定数据的长度。
数据区,传递的具体的数据。

非常感谢各位,协议的各个部分为什么要确定字节数,字节数可以随便定义吗?
此帖出自51单片机论坛

点评

确定字节数是为了提高容错性。[/backcolor]字节数肯定会有范围的限制。可以参考一下,通信中,出现的长度的范围。[/backcolor]  详情 回复 发表于 2015-4-17 20:49
协议的主要目的之一是保证通讯的可靠性,确定字节数是为了校验的时候保证不出差错。  详情 回复 发表于 2015-4-17 10:37
 
 
 

回复

1792

帖子

0

TA的资源

五彩晶圆(初级)

8
 
字节数当然可以随便定义,确定字节数是为了“合法性”,只有符合这个字节数的数据才是“合法”数据的前提
想必手机号码不会有10位或12位的吧?
此帖出自51单片机论坛
 
 
 

回复

1944

帖子

32

TA的资源

纯净的硅(高级)

9
 
hu柏拉图的永恒 发表于 2015-4-17 09:37
非常感谢各位,协议的各个部分为什么要确定字节数,字节数可以随便定义吗?

协议的主要目的之一是保证通讯的可靠性,确定字节数是为了校验的时候保证不出差错。
此帖出自51单片机论坛
 
 
 

回复

3471

帖子

11

TA的资源

五彩晶圆(高级)

10
 
hu柏拉图的永恒 发表于 2015-4-17 09:37
非常感谢各位,协议的各个部分为什么要确定字节数,字节数可以随便定义吗?

确定字节数是为了提高容错性。字节数肯定会有范围的限制。可以参考一下,通信中,出现的长度的范围。
此帖出自51单片机论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表