技术论坛

 回复:SMART 的MOUBUS通讯问题

返回主题列表
作者 主题
逍遥剑客
游侠

经验值:434
发帖数:59
精华帖:1
楼主    2017-08-05 20:16:04
主题:SMART 的MOUBUS通讯问题

如题,我现在用的CPU是 ST20,用自带的PORT0端口连接多个温控器,对它们的温度参数进行读写


不过我对编写通讯程序没经验,哪位大神帮忙指点一下,现在只写了一个从站的,能够勉强实现了,如果要接10个以上的从站,感觉以自己的能力有点力不从心了。


一个从站需要2个读取指令和2个写入指令,要读写的参数分在不连续的寄存器编号中(距离超过120了),读取只要1秒读一次就行了,写入的话,是给每一个从站分配一个输入点:如果操作人员按下按钮,就写入一组设定值,再按一次,就写入下一组设定值,4组设定值循环执行。一般情况就写一个SV和PID三个参数。

  因为读写指令只能一个一个执行,而且从站(温控器)还要求读(写)完一个(组)参数后,要等至少2ms,才能执行下一个读写,所以这里就有一个指令排队的问题,读取是按时间进行的,1秒读一次,而写入是要有人按下按钮才会执行。

看到手册上的例程只有一个从站的两条指令,中间也没有时间间隔,用上一条指令的完成标志位启动下一条指令的使能位。

如果我要接10个以上的从站,怎样让多个读写指令高效简洁又互不影响,我目前还不知道怎么做,哪位大神帮忙指点一下? 不胜感激!


逍遥剑客
游侠

经验值:434
发帖数:59
精华帖:1
11楼    2017-08-13 12:09:43
精华帖  主题:回复:SMART 的MOUBUS通讯问题

通过这几天的不断测试,尤其是用了示波器对通讯端口的波形观察了以后,现在已经对这个通讯过程有了比较清晰的认识,也发现了很多可以改进的地方,包括硬件和软件方面的。

首先是硬件上的,之前看到有人说要加终端电阻,还有人说波特率低或者传输距离远的不用加,加了也是有利有弊,自己并不了解终端电阻实际的作用,后来自己做了测试,看了波形,才明白,这个终端电阻太重要了!不加电阻,那个波形惨不忍睹,我都感觉有点不可思议,这样糟糕的波形,竟然也能通讯,后来加了电阻,那个波形就漂亮了,然后也就知道怎样从软件上提高通讯效率。

我之前读取一组6个寄存器的指令至少要60ms,现在只要11ms就能完成了。那么之前讨论的浪费时间,此时已经不重要了,就好比省钱和挣钱,之前挣1000块钱要工作60小时,再怎么省,日子都过得紧巴巴的,现在挣同样的钱只要11小时,那么不需要很节省,也能余下不少钱。

这张图就是调整之后的波形,堪称完美,左边那组信号是主站发送帧,右边是从站响应帧。



yanxiao
版主

经验值:28601
发帖数:12143
精华帖:46
14楼    2017-08-14 00:26:41
精华帖  主题:回复:SMART 的MOUBUS通讯问题

楼主说,这个波形好的,是因为有终端电阻。

当通讯空闲时,所有的在线的发送器都处于高阻态,所以线路的电平是由终端电阻的偏置决定的。

如果空闲时AB间的电压为0,可以说他的终端电阻没有偏置作用,也许是没有5V电压接入,也许只有1个电阻接AB间。

您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。