单片机]RS-485半双工延时问题 http://www.chinafix.com.cn/thread-137012-1-1.html

RS485半双工切换为什么要加延时(非尾字不能发的问题)?

http://bbs.21ic.com/icview-317805-1-1.html


使用RS-485要注意的一个问题
为了让主机可以比较“从容”地切换到接收状态,从机接收到报文后不应该马上回答,而要至少等待双方约定的一个时间(比如2-5ms),这其实也应当是RS-485通信的一个参数。
使用全双工RS-422就没有这个问题。
有一些RS232到RS485的接口转换器需要用RTS信号来控制发送和接收状态切换,由于PC机很难像单片机那样精确地判断最后一位从移位寄存器发出去了(单片机对有的UART可以用中断,或者笨笨地定时+查询标志等方法),所以经常发生下位机收不好最后一个字节或者上位机收不好第一各字节的情况。有人采取上位机正常报文后面加无用字符(比如0xFF)的办法来凑合。
虽然现在有RS232到RS485的收发自动切换的转接器,但它内部其实是用单稳态触发器来实现的,为了适应不同波特率,切换仍然有一个延迟,波特率较高的时候下位机回答太快仍然有可能第一个字节出错。
所说的20ms只是一个举例,根据波特率等情况当然可以适当改变。但是,正规的RS485规约应该要规定这个帧间空闲间隔的(比如IEC870-5规定是33bit)。
实际通信的实时性主要由轮询的间隔以及超时的处理来决定,附加几毫秒的延时并不很重要。实际使用RS485通信最常遇到倒就是收发切换的问题,要想解决好,一是上位机从发到收的切换要尽量快(尽可能使用UART硬件自动控制RTS、发送完成中断或者精确定时),二是下位机要略位“宽容”一点。

RS485半双工切换为什么要加延时(非尾字不能发的问题)? [复制链接]   未结帖(20)

lzwujucong 当前离线
最后登录
2012-7-8
在线时间
4小时0分
注册时间
2011-2-21
阅读权限
10
精华
0
积分
6
帖子
2
本月在线
0小时0分
  • 串个门
  • 加好友
  • 打招呼
  • 发消息

lzwujucong

实习生

实习生, 积分 6, 距离下一级还需 44 积分
积分
6
帖子
2
本月在线
0小时0分

专家等级:

结帖率:0%

电梯直达

1#

lzwujucong 发表于 2012-3-19 18:47:30 | 只看该作者 | 倒序浏览 | 返回版面

0

在网上看到很多即时切换的原理图,这个需要硬件的支持,我现在在试RS485通讯,等待最后一个字发完后,切换成接收,这里必需要有2~5ms的延时时间才正确,按我的理解脚位设置低电频后应该已经退出总线了。这个延时到底是总线上的需要还是哪里的需要?

相关帖子

  • 延时的问题
  • 有关延时的问题
  • ucos中的延时问题
  • 延时电路的问题
  • 延时函数问题
  • 请高手帮忙解决延时问题
  • 延时程序问题
  • 延时函数好像有点问题
  • 双工通信问题
  • verilog非阻塞赋值的仿真/综合问题 -下

模块电源《常见故障分析》免费下载!——广州金升阳科技有限公司 在线观看泰克最新测试设备介绍     玩转C2000,抽取数码相机赢大奖!

分享0 收藏0 举报

sxiaoguang 当前离线
最后登录
2012-3-23
在线时间
6小时15分
注册时间
2007-3-22
阅读权限
20
精华
0
积分
890
帖子
281
本月在线
0小时0分
  • 串个门
  • 加好友
  • 打招呼
  • 发消息

sxiaoguang

初级技术员

初级技术员, 积分 890, 距离下一级还需 -790 积分
积分
890
帖子
281
本月在线
0小时0分

专家等级:

结帖率:0%

2#

sxiaoguang 发表于 2012-3-19 20:39:26 | 只看该作者 | 返回版面

检测停止位???

举报

lzwujucong 当前离线
最后登录
2012-7-8
在线时间
4小时0分
注册时间
2011-2-21
阅读权限
10
精华
0
积分
6
帖子
2
本月在线
0小时0分
  • 串个门
  • 加好友
  • 打招呼
  • 发消息

lzwujucong

实习生

实习生, 积分 6, 距离下一级还需 44 积分
积分
6
帖子
2
本月在线
0小时0分

专家等级:

结帖率:0%

3#

lzwujucong 发表于 2012-3-20 13:41:26 | 只看该作者 | 返回版面

可以确定停止位已经发送完成,软件控制收发切换的,必需有个时间延时,实际上测试如果不加切换延时会造成接收都是乱码,弄不明白为什么需要这个延时。

举报

sjnh 当前离线
最后登录
2013-2-26
在线时间
609小时40分
注册时间
2004-6-21
阅读权限
90
精华
0
积分
2351
帖子
388
本月在线
3小时30分
  • 串个门
  • 加好友
  • 打招呼
  • 发消息

sjnh

初级工程师

初级工程师, 积分 2351, 距离下一级还需 649 积分
积分
2351
帖子
388
本月在线
3小时30分

专家等级:

结帖率:100%

4#

sjnh 发表于 2012-3-21 13:23:47 | 只看该作者 | 返回版面

不用加延时,我一直这样用了10年了,没出现问题
你说的延时是不是这个原因:
如S3C44B0X没有移位完成中断,只有缓冲区空中断,产生中断时,还有一个字节的数据在移位寄存器中正在输出,所以要加延时判断是否完成输出,只有完成最后一个位后才能切换方向
而这个延时时间根据bps能计算出来

举报

chunyang 当前离线
最后登录
2013-2-26
在线时间
1905小时10分
注册时间
2002-11-26
阅读权限
150
精华
25
积分
139608
帖子
28442
本月在线
5小时0分
  • 串个门
  • 加好友
  • 打招呼
  • 发消息

chunyang

超级版主

积分
139608
帖子
28442
本月在线
5小时0分

专家等级:

结帖率:98%

5#

chunyang 发表于 2012-3-21 23:13:53 | 只看该作者 | 返回版面

最好加延时,因为485内电路切换本身需要时间,总线上的分布电容会延长这一时间,特别是对那些总线没有静态偏置或偏置量不足时的情况。
二姨家最好的广告位招租啦
有技术问题请在论坛里发帖,站内信、QQ、邮件等仅供业务或私人用途使用,不对技术问题单独解答。
欢迎访问 春阳频道

举报

sjnh 当前离线
最后登录
2013-2-26
在线时间
609小时40分
注册时间
2004-6-21
阅读权限
90
精华
0
积分
2351
帖子
388
本月在线
3小时30分
  • 串个门
  • 加好友
  • 打招呼
  • 发消息

sjnh

初级工程师

初级工程师, 积分 2351, 距离下一级还需 649 积分
积分
2351
帖子
388
本月在线
3小时30分

专家等级:

结帖率:100%

6#

sjnh 发表于 2012-3-22 09:07:24 | 只看该作者 | 返回版面

最好加延时,因为485内电路切换本身需要时间,总线上的分布电容会延长这一时间,特别是对那些总线没有静态偏置或偏置量不足时的情况。 chunyang 发表于 2012-3-21 23:13

你说的延时是接收设备接收完数据然后返回时加延时吧?这个是要加的
不然按你说的切换需要时间,如果再加延时不更慢了

举报

jeaper 当前离线
最后登录
2013-2-5
在线时间
45小时20分
注册时间
2008-8-29
阅读权限
50
精华
0
积分
338
帖子
108
本月在线
0小时15分
  • 串个门
  • 加好友
  • 打招呼
  • 发消息

jeaper

资深技术员

资深技术员, 积分 338, 距离下一级还需 162 积分
积分
338
帖子
108
本月在线
0小时15分

专家等级:

结帖率:100%

7#

jeaper 发表于 2012-3-30 13:03:35 | 只看该作者 | 返回版面

这个延时应该是由发送到接收状态切换时加的。因为485总线默认在接收状态,发送只是在需要的时候进行。

【RS-485收发切换】使用RS-485要注意的一个问题相关推荐

  1. RS485 硬件自收发切换的实现

    RS485抗噪音抗干扰能力强.传输距离远.支持多点通信,是工控行业首选串行接口.485规定的电气特性为2线,半双工多点通信.采用两线差分信号传输数据,具有抗共模干扰的能力.由于是半双工模式,因此通讯时 ...

  2. 海思3559 485收发

    根据原理图,控制485状态的是GPIO12_2管脚 查找Hi3559AV100_PINOUT_CN.xlxs文档,发现这个管脚功能是复用的, 需将其功能设为GPIO12_2 首先编译himm 调用hi ...

  3. 485通讯的校验和_232/485转CAN 智能协议转换器

    ▼更多精彩推荐,请关注我们▼ 一.产品概述 SG_CAN_Modbus是一款用于CAN-Bus现场总线与RS-232总线或RS-485总线之间数据转换的协议型转换器,支持标准Modbus  RTU协议 ...

  4. 串口232,485转以太网模块 串口232,485转以太网模块 TCP/IP 串口协议转换模块

    串口232,485转以太网模块 串口232,485转以太网模块 TCP/IP 串口协议转换模块                                                      ...

  5. CC1101魔幻的收发切换机制

    调试了好几天的CC1101收发切换,终于成功,记录一下. 切记,一切都要靠自己,其他人都不可靠,包括你看完我这篇博客,也还是要自己好好研究实验.(给技术支持打电话,人家只管硬件问题,软件自己搞~~没招 ...

  6. 本篇文章使用vue结合element-ui开发tab切换vue的不同组件,每一个tab切换的都是一个新的组件。

    本篇文章使用vue结合element-ui开发tab切换vue的不同组件,每一个tab切换的都是一个新的组件. 1.vue如何使用element-ui 上一篇文章已经分享了如何在vue中使用eleme ...

  7. dsp28335 sci中用fifo完成485收发通信_STM32学习笔记—CAN总线收发数据常见问题分析

    CAN,Controller Area Network(控制器局域网络),在汽车电子.工业控制领域的应用比较多,通常用于局域组网. 这是第9篇学习分享文章,<STM32学习笔记>之CAN总 ...

  8. 【RS码1】系统RS码编码原理及MATLAB实现(不使用MATLAB库函数)

    关注公号[逆向通信猿]更精彩!!! 基础知识 要想搞懂本节知识,需要先熟悉掌握以下前几篇博客 [多元域乘法]多项式乘法电路原理及MATLAB详解 [多元域除法]多项式除法电路原理及MATLAB详解 R ...

  9. c语言485通讯源程序,51单片机485通信实验C语言源代码实现

    #include #include sbit RS485=P3^7;   //定义485的使能脚 bit SendFlag; unsigned int ReData,SenData; /******* ...

最新文章

  1. IOS时间传递机制简记
  2. python 数据比对 函数_1行代码实现Python数据分析:图表美观清晰,自带对比功能丨开源...
  3. c#实现 改进弧长法判断点在多边形里面
  4. Android dex分包方案 (多dex)
  5. wxWidgets:显示如何从 DLL 使用 wx 的示例
  6. yield next和yield* next的区别
  7. java nio.2群发_JAVA NIO TCP SOCKET 聊天群发
  8. SVN禁止提交部分文件
  9. h.264 SODB RBSP EBSP的区别
  10. Linux网络-数据包的接收流程(基于RTL8139网卡驱动程序)
  11. easyexcel设置下拉选项不能覆盖_Wi-Fi经常掉线 这个设置要修改
  12. linux识别科学计数法,Linux下科学计数法(e)转化为数字的方法 [shell中几种数字计算说明]...
  13. 20165332第六周学习总结
  14. 日常琐事的记录,每周六晚做一次总结整理
  15. php李炎恢笔记,李炎恢PHP笔记2
  16. FTP上传文件提示550错误原因分析。
  17. [Linux Audio Driver] SM6350平台音频bring up ( 一 )
  18. 组合电路中的竞争与冒险
  19. python飞机大战没有运行界面_python3实现飞机大战
  20. 安全合规--53--数据分类分级标准汇总

热门文章

  1. 关于我的家乡html网页设计完整版 以家乡为主题的网页设计与实现
  2. 十款Blog编辑软件
  3. 高手程序员vs菜鸟程序员,有了对比才有伤害
  4. #猜拳游戏 3局两胜 # 剪刀(0) 石头(1) 步 (2)
  5. [半监督学习] Virtual Adversarial Training: A Regularization Method for Supervised and SSL
  6. fence设备安装与配置,fence与pacemaker集群
  7. 我与搜狗输入法的情缘
  8. Hisilicon Hi3536RBCV100 编解码处理器
  9. 今天遇到res\layout\activity_easy_bid.xml.r8010:0: error: Resource entry activ
  10. 【FPGA】Verilog 实践:半加器与全加器 | 半减器与全减器 | Code Converter