485总线学习笔记

最近做了一个项目,用到了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芯片从发送状态改为接收状态。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值