机械必威体育网址

标题: 关于串口通信的若干问题 [打印本页]

作者: Pa.Galileo    时间: 2014-8-7 11:24
标题: 关于串口通信的若干问题
背景:串口通信的格式由起始位(1位,为0),数据位(5到8位),校验位(1位,奇偶校验),停止位(1位或2位,为1)构成。
. r: h$ R. k& u! F6 s/ T
, p" b7 Y' N/ O& q问题1:在串口通信中,数据位中会出现0或1,那是如何判断起始位和停止位的(起始位为0,停止位位1)?即如何判断数据开始传输或者停止。5 z- a! v& f& x: q% {$ k+ @
问题2:在PLC通信中,数据位可以选择7位或者8位,那个数据位的选择是不是随意的?6 ]0 ?* G3 Z( J
问题3:在PLC通信中,停止位可以选择1位或者2位,那个停止位的选择是不是随意的?

8 Y& J: V" D2 q8 b2 b1 p3 V2 x) O  T' \! w  }
提出以上问题的哲学背景:存在就有一定的道理,在使用串口通信时,数据位和停止位该如何选择呢?随意的吗?
) ^0 u; G$ d# b; L
作者: 志文168    时间: 2014-8-7 12:20
拉低数据(也就是写0)表示有数据开始要传了,讲白了就是告诉接收方我要发信息了,要传多少位,比如8位,这就是为什么要设置数据位的原因了,传了8位之后拉高(写1)表示空闲状态,以便进行下一次通信开始的判断。在传信过程中,,也就是数据位小于8的情况,,无论是0还是1都是不会终止通信的。一般情况下,,只要收发端设置成一样就可以,,至于数据位8位吧
作者: Pa.Galileo    时间: 2014-8-7 12:23
志文168 发表于 2014-8-7 12:20 6 I' P! ?$ D# C$ S
拉低数据(也就是写0)表示有数据开始要传了,讲白了就是告诉接收方我要发信息了,要传多少位,比如8位,这 ...
3 o# S& }- z2 p3 {& v, B# [! ]
那我在数据传送过程中,如何判断0是起始位还是数据位?
9 q/ z  E) k9 y, L5 |
作者: 志文168    时间: 2014-8-7 12:30
所以就有在上一次通信完毕之后将数据线拉高了,只仔细看一下串口通信的时序图吧,,可以加深理解
作者: 志文168    时间: 2014-8-7 12:31
如果你只是用的话也不用去研究,,直接设好就可以了,,PLC通信还是比较好弄的
作者: Pa.Galileo    时间: 2014-8-7 12:39
志文168 发表于 2014-8-7 12:31 : Z7 J! M% D) w1 U0 m8 Q  k7 @& r
如果你只是用的话也不用去研究,,直接设好就可以了,,PLC通信还是比较好弄的

& T5 v2 M; M5 x& g恩,我太会钻牛角尖了。比如,我会纠结停止位选择2位好,还是选择1位好,它们对传输有什么影响?停止位选择1位,会不会传输的快一点。# ^6 p& X4 c# A5 |/ l+ u" ^' q& N& N

作者: 志文168    时间: 2014-8-7 13:12
快慢这个不用担心,,影响可不计,,,主要是解决干扰问题和通信稳定性,,试试不就知道了么,不用纠结呀,,搞机械的搞电子的都一样,,




欢迎光临 机械必威体育网址 (//www.szfco.com/) Powered by Discuz! X3.4