MFC 485总线通信总结1

最近有一个项目,需要读取9个表测量值,每个表都支持485通信,而一般PC并没有这么多串口,所以采用485总线形式,一主多从,读取各个表测量值。

我是一个初学者,在这里总结记录一下,若有不足之处,请大家多多补充,互相学习进步。

先简单介绍下RS485通信,对于初学者这些知识点容易疏忽。

  1. 常用RS485总线为两线制,半双工。
    即串口某一刻只能做一件事,收数据或者发数据,收发数据不能同时

  2. 传输时间
    RS485串口使用前要设置波特率,比如9600bps,那么发送一个8字节的指令,需要
    8X8/9600X1000=6.67ms
    测量表返回一个21字节内容需要:21X8/9600X1000=17.5ms
    所以使用485总线发送指令时,中间要间断一段时间,这个时间除了发送字节时间外,还包括测量表反应时间等其他时延,这个可以通过做实验测出。即主机自发送一条读指令到完整接收从机返回内容间时间。

  3. RS485总线采用轮询方式依序读取
    以一主八从为例,主机每隔一段时间发一次指令,比如50ms,这个50ms包括主机发送指令时间和接收从机返回内容时间。即主机接收完一个从机数据再发下一条指令,而不是只管发,不等收。可以把两线(AB)比作独木桥,同一时间只能一个方向人过,如果主机发送指令时间间隔短 ,势必会与从机返回数据发送碰撞。

  4. Modbus-RTU 协议
    目前大部分RS485总线传输协议都是Modbus-RTU 协议,具体协议内容网上很多,这里不再详述。
    这里讲一下CRC校验码,CRC校验码是由前面数据计算得来,当从机地址发生改变时,指令CRC校验码需要重新计算。网上有在线CRC计算,很快。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值