1、每一帧收发停止位(或第9位)的延时问题
    在RS-485半双工通讯中,一般以单片机的TI,RI信号作收发切换控制信号,发送时,检测TI是否建立起来,当TI为高电平后关闭发送功能转为接收功能,接收时,检测RI是否建立起来,当RI为高电平后,接收完毕,又可以转为发送。因此,必须控制端RE*,DE的信号的有效脉宽应该大于发送或接收一帧信号的宽度。

从上面的时序图可知:单片机在串行口发送数据时,只要将8位数据位传送完毕,TI标志即建立,但此时应发送的第九位数据位(若发送地址帧时)和停止位尚未发出。如果在这时关闭发送控制,势必造成发送帧数据不完整。
    接收数据时也同样如此,单片机在接收完8个数据位后就建立起RI信号,但此时还未接收到第九位数据位(若接收地址帧时)和停止位。所以,接收端必须延时大于2位数据位的时间(1位数据位时间=1/波特率),再作应答,否则会发生总线冲突。
    总之,发送和接收控制信号应该足够宽,以保证完整地接收一帧数据,任意两个单机的发送控制信号在时间上完全分开,避免总线争端。

注:延时T秒的取值
(1) 传送地址帧时,T>2X(1/波特率),可以选取T=2.5X(1/波特率)。
(2) 传送数据帧时,T>1X(1/波特率),可以选取T=1.5X(1/波特率)。

2、实际的软件流程:

可看到软件流程并没有在 每一帧收发停止位(或第9位)后实现延时,而是在(数据包的)最后一个字节(帧)上延时。这样能保障数据帧的正确(完整性)和稳定性吗?

3、半双工总线收发切换延时问题
   为了可靠的工作,在485总线状态切换时需要做适当延时,再进行数据的收发。具体的做法是在数据发送状态下,先将控制端置“1”,延时1ms左右的时间,再发送有效的数据,一包数据发送结束后再延时1ms后,将控制端置“0”。这样的处理会使总线在状态切换时,有一个稳定的工作过程。

参考链接

https://blog.csdn.net/lj9010/article/details/52317761

嵌入式:485 半双工通信延时相关推荐

  1. 嵌入式学习——串口通信小试

    嵌入式学习--串口通信小试 目录 嵌入式学习--串口通信小试 1.了解串口协议和RS-232.485标准,以及RS-232.485电平与TTL电平的区别 1.1 什么是串口协议 1.2 RS-232标 ...

  2. c#串口通信(三)--半双工通信的数据接收

    上文提到了如何简单发送和接收串口数据. 在实际操作中,对于半双工通信(一问一答),如果需要一次发送多个指令,用DataReceived事件判断是否接收完毕,再发送下一条数据,不是很好的选择. 个人采用 ...

  3. stm32---RS485半双工通信

    典型的串口通信标准有 RS232 和 RS485,RS232 是全双工点对点的通信,而 RS485 是半双工通信(2 线制),可以一点对多点进行组网,而且 RS485 是用缆 线两端的电压差值来表示传 ...

  4. 什么是单工通信、半双工通信、全双工通信?3种通信方式的区别是什么?

    串行通信中包括有3种数据传送方式,传送方式研究的是 对象 和方向性. 单工通信:单向传送,只能是一个方向传送. 比如:A传送到传送B,并且只能A传送给B. 全双工通信:双向传送,在某一时刻,双方可以同 ...

  5. 树莓派python网络通信_Python3使用Socket实现树莓派与计算机半双工通信,实现聊天功能...

    项目中需要实现PC与树莓派通信完成控制,寻找一遍后,发现现例子大多比较简单,可以实现一次收发过程,第二次数据发送就会出现问题.观察发现少一个循环,无法保持联通状态,代码修改后可以简单的实现半双工通信, ...

  6. 单工通信/半双工通信/全双工通信,串行传输/并行传输,同步传输/异步传输的区别

    学习通信的时候,这几个名词单工通信/半双工通信/全双工通信,串行传输/并行传输,同步传输/异步传输我一直都很迷,现在我总结一下,也是加深我的记忆了 1.按照信息在信道中的传输方向分为: a.单工通信: ...

  7. 进程间通讯 --- 管道(半双工通信)

    管道: 一个进程输出数据到另一个进程数据输入的通道.(半双工通信:同一时间,只能一端读另一端写,因为只有一条信道) 有名管道(命令管道): 在磁盘上会存在一个管道文件标识,但管道文件不占用磁盘bloc ...

  8. 单工通信、半双工通信和全双工通信的区别

    对于点对点之间的通信,按照消息传送的方向与时间关系,通信方式可分为单工通信.半双工通信及全双工通信三种. 一.单工通信 单工通信(Simplex Communication)是指消息只能单方向传输的工 ...

  9. 半双工通信和全双工通信的区别

    半双工通信和全双工通信的区别 对于点对点之间的通信,按照消息传送的方向与时间关系,通信方式可分为单工通信.半双工通信及全双工通信三种. 单工通信 单工通信(Simplex Communication) ...

最新文章

  1. pip通过阿里源安装
  2. sql 分组统计_leetcode-sql面试题十七篇精讲合集
  3. 通过HTML5 Visibility API检测页面活动状态
  4. SSD Single shot detection 单发多框检测 实现 多尺度锚框 动手学深度学习v2
  5. 服务器组态文件己写保护,组态王常见问题集锦(一)
  6. freyja 将引入另外一项功能大幅提高服务器性能
  7. JavaScript数组方法slice()
  8. lol 8.21服务器维护,《LOL》8.16版本维护到几点 8月21日更新维护内容汇总
  9. WeX5 APP发布及版本升级注意事项
  10. 超有爱的并查集 6666
  11. vue在线预览excel
  12. 多屏互动之Windows与Mac下的非自带的远程桌面应用
  13. c语言gl函数,R语言:gl()函数
  14. kodu_Kodu教您的孩子直观地编程自己的视频游戏
  15. ffmpeg获取音频信息
  16. 华为杯第一届中国研究生网络安全创新大赛-Bit_QR
  17. Windows11 安装教程(ultraiso制作启动盘)
  18. # 7-3 二分法求多项式单根
  19. Java中使用jedis操作redis(使用maven)
  20. 题目:以下选项中关于DOM和SAX的说法错误的是()

热门文章

  1. 保护眼睛的好方法-适合上班族经常面对电脑的GGMM
  2. 苹果历届发布会的邀请函
  3. 华为gt3智能跑步计划体验:心率监测、gps轨迹、训练计划
  4. 【教程】应用侧连接华为云IoT平台
  5. 下载自媒体内容素材,帮你快速创造内容
  6. 小米11不再送充电头了吗?!
  7. 练习:根据车牌信息,统计各省车牌持有量
  8. 转:C++ Applications
  9. Android下拉列表显示
  10. 玩一玩微信公众号开发(二) 管理凭据和自定义菜单