485总线学习笔记

来源:互联网 发布:照片书制作软件 编辑:程序博客网 时间:2024/05/25 08:12

最近做了一个项目,用到了485总线,现在把我遇到的问题以及解决方法记录下来,供以后参考.

我用的485总线芯片是75176.

     485总线是半双工的,任何时刻总线上只能有一点处于发送状态,其他点处于接收状态,否则会出现总线错误.通过实验,我发再其实两边也都可以是接收状态的,当哪一边需要发送数据只要使能75176为发送状态即可,发送完之后再将75176设置为接收状态.这时问题出现了,如果A点发送完数据然后将75176设置为接收状态,如果需要立即发送数据,A又立即将使能75176为发送状,然后发送数据,这时B点将收不到数据.经过我反复实验发现A发送完数据,将75176设置为接收状态,然后再延时一段时间(我的大概是1S),B 点才能正确收到数据.B点也一样,发送完数据后要延时一段时间,A才能正确收到数据.

    我不知道其用485总线的朋友有没有碰到这个问题,希望用过的朋友发表一下意见.


续:

由于485是简单的半双工的总线,没有像以太网一样有CSMA-CD机制确保任何一节点随时都能主动发数据,485一般都是主从的方式,从机不能主动发数据,只有主机需要从机发数据时,从机才能发,如果任何一485节点都能主动发数据,那两个节点同时发数据时有会有冲突(232和422是全双工的,没有这个问题).CPU控制485芯片发数据之后,需要延时一段时间(ms级的延时),因为硬件也是有延时的,不可能将数据写到发送寄存器之后,数据马上就传到了接收方,所以需要一些延时,才能将485芯片从发送状态改为接收状态。

原创粉丝点击