水电电工知识
电工知识|串行通讯的一些认识
2017-05-26  浏览:76
水电之家讯:1、串行通讯只有一个传输通道,每个时刻只能表达一种状态。不管什么介质,不管是什么信号,我们用1表示一种状态,用0表示另一种状态。
2、只用1和0两种状态,是不能表达更多信息的。好在有一个物理量,对每个系统来讲是统一的,那就是时间。我们现在很容易做到不同系统之间的定时误差控制在PPM数量级。1和0在时间上进行有序的组合,就可表达近乎无限的信息。
3、任何一个信号,如果不赋给它一些特点的意义,实际上没什么用。两个系统要通过信号交换信息,必须对信号有一个共同的约定,这就是我们通常所说的协议。
4、最基本的协议是物理层面的(那个OSI的七层协议模型,第一层就是物理层协议)。RS232、RS485、RS422,这些是物理层面的一些协议。
5、我们现在要谈的是异步串行通讯。异步,发达方和接收方之间,没有额外的通道来传送信息何时传送与接收。每个信息单元的起止时间,发送方编在信息中,由接收方自已解码并同步。
6、好。现在来讲一下传送一个字节的过程。在没有传送信息时,传输线处于空闲状态。规定:空闲状态为1。发送方(TX)准备发送,驱动传输线让它由1变为0,并持一位的时间长度,我们把这一位叫做起始位。接收方(RX),检测到传输线由1变0,意味着可能有信息要传了,RX就持续检测,以验证这个0是不是持续了规定的一位时间长度,若是个合法的起始位,就按约定的定时方式,把后续的传输线状态,接收为1个字节。TX在发完起始位后,就发字节中的第一个位(bit),并依次把字节中的所有位发完,每bit均持续相同的一位时长。然后再发校验位(如果约定发/收方都采用的话)、停止位。
7、停止位,这个要说一下。我们知道起始位是0,而这个停止位,规定是1,和传输线的空闲状态1是相同的。停止位规定的时长比较乱,有1位停止位(也就持续时间占1个位长)、1.5位、和2位停止位,其它时长的停止位好象没见过。停止位的作用,其一是作为一字节单元的成员,给接收方定时用的,也就是下一个字节,在停止位之后才开始。另一个作用,可供检查字节传送的完整性。因为停止位是规定为1状态的,若在停止位的时间里测到了非1状态,表示这个字节传送有问题,有可能被接收方丢弃,传送失败。
8、若收发双方的停止位不相同,怎么办?这个在论坛上经常有人问。好,我们来分析一下。若TX是2个停止位,RX要求是1个停止位,很好,TX多发的一个停止位,会被RX看作是空闲状态(也可认为是字符间隔),没有任何问题。若反过来,TX是1个停止位,RX要求是2个停止位,有问题吗?一般问题是很大的,但也有可能可以正常通讯。这要看TX是怎么发字节的。有些系统,硬件上,发送电路比较简单,没有缓冲机构,一个字节必须完整发送后,才准备下一个字节的数据,而这个准备需要花一些时间的,这就给传送的时序上,停止位之后,有了空闲时间,相当于停止位得到了延长。所以我曾经发过一个贴子说,S7200的发送改为单字节发送,每个字节之间有意插入一些延时,人为造成空闲时间,以充当停止位,但这个方法说归说,我并没有试过。可惜的是,现在的系统,硬件都做得很完美了,包括S7200,TX是有缓冲的,在一个字节还未发完前就可以接受下一个要发送的字节,硬件上保证一个字节发完后可以立即启动下一个字节发送,前后两字节间除了停止位,没有额外的间隙,这种情况下,接收方就要命了,RX认为还在收停止位时,下一个字节的起始位就来了,没办法完整接收,通讯就失败了。
9、波特率。两边设为一致就可以了。波特率不一致,铁定不能通讯。但允许有少量的误差。停止位实际上还用来调节这个误差的。比如1个停止位,RX并不死板要求停止位是完整的1个位时长,实际只要停止位超过0.5个位长就算是合格了。波特率,就是每秒最快能传送的位数,包括了起始位、停止位这些辅助位。实际每秒能传送的最快字节数,要看这些辅助位的多少。比如一个11位结构的字节单元:1起始位+8字节位+1校验位+1停止位,字节最快传送速率为band/11。好象还有一个概念,叫比特率,也就是有效的位传送速率,比特率=8*(band/11),也就是比特率比波特率要小的。
10、RS232的TX和RX是两根独立的线,收/发可以同时进行,所以叫作全双工异步串行通讯。按我们日常两人交谈的经验,总是A说B听,当B要说时,A就停下来听B说。如果A、B同时说,这是吵架,要达到相互交流就难了。同样,通讯若同时收发,一般人会白白死掉很多脑细胞而写出的程序通讯效果还是很差。所以,即使RS232能双向同时, 一般使用时也是收、发不同时的。
11、RS485。RS232不错了,但局限性大大的。RS485收发同线,允许多少RS485并联使用,电气采用差分传送信号,可以抗干扰。S7200就属于RS485。RS485设备同一时间只能发或再改,收发是分时的,所以叫做准双向。尽管S7200中可以同时缓冲8个NETR和NETW,实际在RS485层面,还是一个一个分时完成的(由系统程序根据PPI协议协调)。RCV和XMT完全由用户程序控制,你就不能同时让两个都执行,否则就是哄抢资源而被S7200当成错误处理。
12、RS422,介于RS232和RS485。RS422和RS232一样收、发线独立,但电气上采用和RS485一样的差分信号。所以RS422能多机通讯,比RS232传得远,但比RS485浪费硬件资源。RS422只要软件上采用准双向的规则,通过发收线合并,可以简化为RS485,和RS485设备通讯。但RS485却不能复杂化成RS422使用。

水电之家为您提供最全面的管材,管件,水电,电线,电工,管材水电品牌的装修知识点和各种管材水电的导购与在线购买服务,拥有最便宜的管材水电价格和最优质的售后服务,每天都有秒杀的抢购活动哦!敬请登陆水电之家:http://shuidian.jc68.com/
更多»您可能感兴趣的文章:
更多»有关 电工 的产品:
  • 水电电工资讯
  • 发表评论 | 0评
  • 评论登陆
  • 移动社区 天花之家 木门之家 灯具之家 铁艺之家 幕墙之家 五金头条 楼梯头条 墙纸头条 壁纸头条 玻璃头条 老姚之家 灯饰之家 电气之家 全景头条 照明之家 防水之家 防盗之家 区快洞察 建材 枣庄建材 临沂建材 南昌建材 上饶建材 抚州建材 宜春建材 吉安建材 赣州建材 鹰潭建材 新余建材 九江建材 萍乡建材 景德镇陶瓷 石家庄建材 衡水建材 廊坊建材 沧州建材 承德建材 建材之家 企业之家 720全景
    (c)2015-2017 BYBC.CN SYSTEM All Rights Reserved