转自中国电子技术信息网的关于如何处理RS485竞争 点击:1280 | 回复:1



zhaoqm

    
  • 精华:1帖
  • 求助:0帖
  • 帖子:12帖 | 59回
  • 年度积分:0
  • 历史总积分:156
  • 注册:2002年11月17日
发表于:2003-12-29 13:58:00
楼主
〖文章转载或出处〗≡中国电子技术信息网≡ 网址:www.CETINet.com ******************************************************************** 485总线上怎么处理竞争问题 方法很多很多,先要看你的总线结构: 一主多从, 多主多从, 全主全从, 无主等。 再看你的实时性要求,可靠性要求;还要看你的总线介质是什么,又要看你的网络数据流量和特征(如是否突发)等。 常用的协议:1,CSMA/CD(竟争)如以太网(无主) 2,TOKEN BUS 令牌(无主) 3,主从(探寻或点叫)(主从) 4,全主全从(本人研制开发用于STI 系列PLC) 5,改进型CSMA/CD 如CAN 总线(硬件实现)(无主) 缺点:优先权码低的可能很难发出。 “中断方式”属于“4,全主全从”,“查询方式”则为“3,主从(探寻或点叫)”,而“2,TOKEN BUS 令牌”也不失为很好的方案,“1,CSMA/CD(竟争)”对软件资源开销较大,初次使用不易做好,“5,改进型CSMA/CD 如CAN 总线(硬件实现)”则把软开销转化为硬开销,增加成本。若要详细了解,应找“数据通信”或“现场总线”相关的书籍看看。 通常,容量/数据流量较少的总线,建议采用“全主全从”方式,实时性强,效率高,编程简单,碰撞的概率较低; 有一定容量的总线,建议采用“主从(探寻或点叫)”方式,实时性还行(相当于分时),编程不难,效率较差,总线时刻在忙却不会碰撞; 总线节点较多时建议采用“TOKEN BUS 令牌”方式,实时性居中,效率较高,总线时刻在忙却不会碰撞,但编程较难且有一些必要细节,一时无法说清,最好看书。 ********************************************************************* 请高手们帮我解答一些疑问,谢谢! 我要做的485通信中,通信数据量很少,主要是从机向主机(计算机)发送数据,大概一小时发送一次吧,从机之间不要通信,共50个节点。 我初步设想如下: 主机(计算机)处于等待状态,要求发送数据的从机向主机请求,等待主机应答允许后,再行发送数据,然后主机确认接收,完成一次数据传送。 依据上面引文所说的原则,宜采用全主全从方式,可是全主全从是什么概念呢?要是有两个从节点同时发送请求,那又会出现什么后果?处于接收状态的计算机能否收到信息?虽然这样的情况会比较少,但是应该如何解决?(初次接触485,以前做过CAN所以可能有些想法是错误的,请高手们指出) 采用轮询方式对于计算机来说还是不太合适,从节点太多。 期待高手们的指点!! 万分感激!



GaryLin

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 1186回
  • 年度积分:0
  • 历史总积分:1263
  • 注册:2003年4月15日
发表于:2003-12-29 13:58:00
1楼
建议将 --从机向主机请求, 待主机应答-- 的动作略过, 因为, 少一次通信就少一次碰撞冲突的机会. Step-1. 从机送出 主机(目的)站号/来源(从机)站号/通信编号/从机数据 给主机. Step-2. 主机回应 从机(目的)站号/通信编号/OK 给从机. 则通信编号重覆, 则表示上次回覆的 OK 弄丢了. 再回应一次 Step-2 (此次则不将数据重覆记录). Step-3. 若从机未收到 Step-2 的回应, 则表示冲突发生. 随机 delay 一段时间后, 重作 Step-1 的通信 (使用原通信编号/序号). 因为, 随时有冲突的发生, 所以通信中的 command/data 一定要加入 CRC/Checksum 之类的检查.

热门招聘
相关主题

官方公众号

智造工程师