打印

一个基于485总线通信顺序的问题

[复制链接]
2609|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yuse|  楼主 | 2009-11-20 21:34 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yuse 于 2009-11-20 21:35 编辑

是个基于485的多点测温系统,也是按照chunyang等前辈推荐给我的方案,我打算在每个节点放一个小2051mcu和18b20。

因为系统需要pc机显示和报警、设置等,所以我打算把pc机,主单片机,100多个分机全部挂接在总线上。不知道通信顺序最好应该怎样,我是想让pc就负责接收显示数据,然后主单片机进行报警、设置和向分机发送地址接收数据等。

但是假如我让主单片机发送分机地址给分机的话那么pc机也会误收到这些信息,不知道最好的方案应该怎样呢。

QQ截图未命名.jpg (16.3 KB )

QQ截图未命名.jpg

相关帖子

沙发
chunyang| | 2009-11-21 14:55 | 只看该作者
485不是这样的拓扑形式,一根线从头到尾串接即可。

使用特权

评论回复
板凳
yuse|  楼主 | 2009-11-21 15:59 | 只看该作者
恩 这个图确实有问题,因为我是想除了pc机只用来显示数据 我还想有一个主单片机可以负责用来给分机发送地址和进行报警等功能。那这个顺序最好怎样来呢?不知道我的想法是不是有问题,我让主单片机发送分机地址给分机的话那么pc机也会误收到这些信息。不知道最好的方案应该怎样呢? 2# chunyang

使用特权

评论回复
地板
chunyang| | 2009-11-21 16:04 | 只看该作者
主机轮询就可以了,楼主去我的Blog看看有关485和Modbus协议的有关内容,协议是关键。

使用特权

评论回复
5
yuse|  楼主 | 2009-11-21 16:13 | 只看该作者
好的谢谢,我先去看看,也就是说主单片机循环与各分机通讯,再与pc机通讯。循环下去...是这个意思吧 4# chunyang

使用特权

评论回复
6
teddeng| | 2009-11-22 16:10 | 只看该作者
楼主真好玩,嘿嘿。

使用特权

评论回复
7
yuse|  楼主 | 2009-11-22 18:28 | 只看该作者
呵呵 看了下modbus,对于我有难度啊..... 因为我的传输非常简单,每次就是传个更新后的温度值,所以我想能不能自己写个简单点的程序通信?比如主机发送地址1,从机检查是否是自己地址 就用很简单的几句程序如;
  
void serial (void) interrupt 4 using 1
{
                ES=0;
                RI=0;
               
                if(SBUF==0x01)
                {
                    .....
                }....

使用特权

评论回复
8
xwj| | 2009-11-22 19:24 | 只看该作者
唉,
根本就不需要什么modbus,制定个简单协议即可。

但你LS那样的方法是绝对不行的哦~

使用特权

评论回复
9
yuse|  楼主 | 2009-11-22 20:32 | 只看该作者
本帖最后由 yuse 于 2009-11-22 22:05 编辑
唉,
根本就不需要什么modbus,制定个简单协议即可。

但你LS那样的方法是绝对不行的哦~
xwj 发表于 2009-11-22 19:24
恩 刚发现粗心了确实不行,容易产生混乱,xwj老师可否给我一些指点信息,第一次接触协议不知道从何下手 目前正在研究modbus

使用特权

评论回复
10
chunyang| | 2009-11-25 16:18 | 只看该作者
关键是理会其思想而非简单的照搬,Modbus是个严谨的碰撞式会话协议,这类协议非常适合小型一主多从网络使用,这和嘈杂环境中人与人的不允许出错的交流过程完全相同,先从这个角度思考更有助于你理解协议的精髓。

使用特权

评论回复
11
ztm521314| | 2010-5-7 13:33 | 只看该作者
楼主您好,小弟是刚刚学单片机,正要做一个“基于RS485的主从控制系统”毕业设计,您可以给我发一下您的程序和资料吗?
谢谢。。。我的邮箱:ztm521314@126.com

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

152

主题

453

帖子

0

粉丝