独闷闷网

 找回密码
 立即注册
搜索
查看: 310|回复: 0
收起左侧

[原创] 51单片机如果不启用串口方式2的第九位数RB8或TB8能多机通讯吗?已解答。

[复制链接]
发表于 2016-5-29 14:24:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
★坚鸿-深圳:
绝大多数的单片机串口是可以实现全双工的功能的,只是我以前的项目都没有利用上这个功能,现在手上的项目可能要涉及两个单片机之间全双工的通信,今天一大早查了相关资料,发现了一个知识点,跟大家分享一下。

串口全双工.png

        以前我就纳闷,51单片机串口通信的方式2在多机通讯时,这个第九位数据RB8到底有什么作用?在多机通讯时完全用方式1不用RB8也可以多机通讯呀,此时类似485方式的半双工通讯。刚刚重新看了一遍数据手册,终于发现了用第九位RB8和不用有什么区别。有什么区别?
     其实还是那句话,在多机通讯时,即使不用第九位RB8也是可以多机通讯,就像我们平时常用的串口方式1也可以实现多机通讯。但是问题来了,那么用了第九位RB8又有什么区别?区别是:
(1)不用第九位RB8时,主机发送的数据,所有的从机都能接受到信息,并且所有的从机都会产生一个接收中断。
(2)用第九位RB8时,主机发送的数据,所有的从机都能接受到信息,但是不是所有的从机都会产生一个接收中断,而是此时从机可以在产生中断之前通过硬件的方式过滤了不是呼叫本机地址的信息,这样只有一台地址匹配的从机产生中断,其它不匹配的从机是不会产生中断的,说白了,仅仅起到一个硬件上自动过滤不匹配地址的信息的作用,从而让无关的从机不用产生接受中断,起到“不打扰”无关从机的作用。
(3)至于为什么用了第九位RB8时候能够通过硬件自动过滤信息,这个原理网上资料很多,大家可以百度找找,我不多说。

结论:我仍然感觉这个第九位RB8还是一个鸡肋,因此实际上很少人会在项目中用这个功能(我本人也没有在项目上用过这个功能),当不用第九位RB8时候就像485通讯的半双工,虽然每次主机发的数据所有从机都会收到并且产生中断,但是响应不响应还是可以通过软件的方式检查地址是否匹配再做决定。

乐于分享,勇于质疑!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|独闷闷网 ( 粤ICP备12007667号-2 )

GMT+8, 2018-6-25 00:58 , Processed in 0.104774 second(s), 21 queries .

快速回复 返回顶部 返回列表