ASCII码协议和自由口协议有什么区别

电子说

1.3w人已加入

描述

1:ASCII协议跟ASCII字符一点关系都没有?

2:ASCII协议只是使用了OSI的第一层,也就是说ASCII协议可以加载到任何协议中,比如TCP等协议对吗?

3:Modubs ASCII协议和ASCII协议又有什么关系呢?他的报文结构是不是就是固化好的呢?用户不能修改?

4:ASCII协议的校验也是可以随便定义的吗?

个人认为自由口是相对于专用口而言的。以300/400为例,x15-2DP的CPU,一般有两个通讯口(485)一个是MPI、一个是Profibus-DP,通信协议是固定的,所以就是专用口(其实400的MPI只是默认为MPI,好像也能改成DP,但只能是这两种通信协议)。而200的一个或者两个通讯口(485)号称叫自由口,通信协议可以使用内置的MPI/PPI,也可以通过库来使用USS、Modbus-RTU等二进制通信协议,还可以自己编程实现其他二进制通信协议和ASCII通信协议。

485上的通信协议有两类:二进制类和ASCII类,这两种通信协议的本质差别就是数据帧的起始如何判断。ASCII型的通信协议是用的起始字节、结束字节,这导致了有些字节是不能出现在通讯的数据之中,所以ASCII型通信协议的效率要比二进制型通信协议慢一半以上(相同波特率下);二进制型通信协议是靠总线上的空闲时间超过一定数量的“字节”(其实是指的通讯这些字节的时间)来确定下一个字节就是数据帧的“帧头”。二进制型通信协议的效率比ASCII的要高一倍以上,所以那些著名的通信协议,基本上都是二进制型的,比如Profibus-DP、Modbus-RTU、USS等等。

补充:

1、ASCII就是使用ASCII码的通信协议。

2、ASCII肯定不能加入二进制通信协议,因为没有意义。

3、Modbus-ASCII是ASCII类型通信协议的一种。结构是固定的,但内容是用户自己定义的。4、如果是你自己的ASCII的校验当然可以随便定义,但收发两端(最好所有节点)必须一致。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分