[请教]几个关于485的问题 点击:753 | 回复:4



wangzm

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 3回
  • 年度积分:0
  • 历史总积分:59
  • 注册:2004年7月19日
发表于:2004-07-17 10:46:00
楼主
我想利用单片机和485接口建立一个多主的多机通信系统,要求与版上zhaoqm发的帖子中提到的基本一致,初次接触485,有很多问题,望各位热心网友帮忙: 1,有些文献中提到用偏置电阻保证A、B两端电压差>200mV,并且在软件上也要作如下处理:“在进入正常的数据通信之前,由数据发送节点预先将总线驱动为大于200mV,并保持一段时间。”请问这是如何实现的? 2,在用半双工通信时,如果将接收使能端-RE接地,通过控制DE来控制发送,那么,在本节点发送完一个字节之后,是否可以接收到自己发的这个字节呢?如果能,又怎么区分其他节点发送过来的应答字节? 3,利用外部中断和时钟判断总线是否空闲,是不是只要开外部中断,而时钟溢出采用查询方式就可以?在外部中断子程序里面改变空闲标志位,时钟溢出后判断标志位就可以得知总线是否空闲?这个思路可行么?



GaryLin

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 1186回
  • 年度积分:0
  • 历史总积分:1263
  • 注册:2003年4月15日
发表于:2004-07-19 10:03:00
1楼
2. 有些 chip 可以同时发送与接收, 请查阅您的 chip 规格书. 若是同时有其它 device 发信号出来, 信号会冲突!

wangzm

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 3回
  • 年度积分:0
  • 历史总积分:59
  • 注册:2004年7月19日
发表于:2004-07-19 15:36:00
2楼
关于二,我用的是MAX485芯片,确实可以收到所谓的“echo”,而且没有发现别人提到的 使能端切换前 不加延时 导致的错误。 更奇怪的是:我用单步执行仿真的时候,中断标志RI竟然比TI先被置“1”,这在物理上应该说是不可能的啊。 关于第一个问题,有文献提到在正式传输之前对串行口做几次空操作,清楚端口的非法数据和命令。不明白这个空操作是怎么实现的?

wangzm

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 3回
  • 年度积分:0
  • 历史总积分:59
  • 注册:2004年7月19日
发表于:2004-07-19 15:42:00
3楼
另外,是不是 所有节点都是单片机的情况 比 PC机利用485和单片机通信的情况 麻烦会少一些? 编程语言的选择上有什么原则么?我看到很多人都用VB实现而且总会有些调试麻烦,我用汇编语言的话也会有相同的麻烦么?

GaryLin

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 1186回
  • 年度积分:0
  • 历史总积分:1263
  • 注册:2003年4月15日
发表于:2004-07-19 18:00:00
4楼
编程语言, 一般选择自己熟悉的即可. 在调试上会出问题, 通常是 timing 没处理好. RS-485 一般是 1 个主机对 1 或多个从机. 在多个主机的环境下, 就会有信号冲突的问题. 虽然可以透过 busy/receiving 检测与重送等方式来解决, 但相对的架构就变复杂了. 调试上也更加麻烦.

热门招聘
相关主题

官方公众号

智造工程师