关于异步通信的起始位和停止位

emily_lee0108 2013-12-19 05:26:01
有个问题一直都很疑惑,在异步通信中,要加上起始位和停止位来标志一个数据的开始和停止,比如说开始的时候是检测高低电平的变换,这里我就有疑问了,,,数据位的01的不同也有电位的高低变换啊,那怎么区别是起始位停止位还是数据位啊~~~求大神指教,在此谢过~~~~
...全文
2718 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zyzhang365 2013-12-24
  • 打赏
  • 举报
回复
基本作用是为了成帧和同步。串口是异步的,各自有自己的时钟。 有空闲状态,所以需要START位;停止位的作用之一是便于接收端处理数据,否则接收缓冲区可能溢出,以前的器件可没现在这么快。另外一个原因,串口是异步的,TX和RX各自有自己的时钟,虽然名义上波特率要求相同,但又不可能完全相同,所以随着时间积累,时钟误差也会不断积累,停止位能起到字节间消除时钟误差累积的作用。 串口发送和接收不是一个时钟传输一个位,而是多个时钟(通常16个)传送一个位。这也是为什么有1.5个停止位的原因。 串口是最早的串行通讯方式,协议其实规定了很多内容,IEEE规范叫RS232 (Recommended-standard 232xx)。
of123 2013-12-24
  • 打赏
  • 举报
回复
引用 2 楼 emily_lee0108 的回复:
[quote=引用 1 楼 wangfan027 的回复:] 因为数据位数是事先约定好的,比如说常用的1起始8数据1停止 收到起始位后,后面的8个都认为是数据,如果是在发送这个8个数据位途中,发送端重启了,又重新发送起始位,那接收端就会接收到一个错误的数据
那既然已经知道后面八位是数据,那么又何必设置停止位呢[/quote] 停止位常常用来检测帧错误,即检查双方的时钟是否同步。如果检测到帧错误,那么采样到的数据位有可能也是错的。
mangoalx 2013-12-21
  • 打赏
  • 举报
回复 3
是这样的,比如0做起始位,那么1就做停止位。你必须有个1到0的跳变来表示发送开始(起始位),所以发送结束后总是需要一个停止位来先回到1的
drlsdrls 2013-12-20
  • 打赏
  • 举报
回复
引用 2 楼 emily_lee0108 的回复:
[quote=引用 1 楼 wangfan027 的回复:] 因为数据位数是事先约定好的,比如说常用的1起始8数据1停止 收到起始位后,后面的8个都认为是数据,如果是在发送这个8个数据位途中,发送端重启了,又重新发送起始位,那接收端就会接收到一个错误的数据
那既然已经知道后面八位是数据,那么又何必设置停止位呢[/quote] 理论上说是不用,但是几十年前就是这样规定的,就这样用了呗
dceacho 2013-12-20
  • 打赏
  • 举报
回复
引用 2 楼 emily_lee0108 的回复:
[quote=引用 1 楼 wangfan027 的回复:] 因为数据位数是事先约定好的,比如说常用的1起始8数据1停止 收到起始位后,后面的8个都认为是数据,如果是在发送这个8个数据位途中,发送端重启了,又重新发送起始位,那接收端就会接收到一个错误的数据
那既然已经知道后面八位是数据,那么又何必设置停止位呢[/quote] 可以认为是为了保险
Mr. Code 2013-12-19
  • 打赏
  • 举报
回复
引用
引用 1 楼 wangfan027 的回复: 因为数据位数是事先约定好的,比如说常用的1起始8数据1停止 收到起始位后,后面的8个都认为是数据,如果是在发送这个8个数据位途中,发送端重启了,又重新发送起始位,那接收端就会接收到一个错误的数据 那既然已经知道后面八位是数据,那么又何必设置停止位呢
没有停止位你怎么知道下一个字节的开始位什么时候开始?
emily_lee0108 2013-12-19
  • 打赏
  • 举报
回复
引用 1 楼 wangfan027 的回复:
因为数据位数是事先约定好的,比如说常用的1起始8数据1停止 收到起始位后,后面的8个都认为是数据,如果是在发送这个8个数据位途中,发送端重启了,又重新发送起始位,那接收端就会接收到一个错误的数据
那既然已经知道后面八位是数据,那么又何必设置停止位呢
dceacho 2013-12-19
  • 打赏
  • 举报
回复
因为数据位数是事先约定好的,比如说常用的1起始8数据1停止 收到起始位后,后面的8个都认为是数据,如果是在发送这个8个数据位途中,发送端重启了,又重新发送起始位,那接收端就会接收到一个错误的数据

27,508

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧