送分100分:关于串口通讯的小问题。

COMUSB 2010-02-04 02:24:51
串口通讯时,比如我发送了10个字节,接收端是如何接收这每一位的数据的,又是如何区分开每个位,并把它划归到相应的字节中的。谢谢。
...全文
62 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
COMUSB 2010-02-04
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 arnold9009 的回复:]
区分每一位是通过采样,串口模块检测到起始位之后,按照设定的波特率进行采样来获取传输的数据;

每个字节的前后都有起始位和停止位,串口模块通过这两个标志来判断字节的开始和结束

[/Quote]

请问这个采样,是一个位传输的时间段内多次采样,还是只采一次。

再就是能不能不用采样这样的很模糊的概念,直接用什么器件导通,使什么获得高电平这样的描述更容易理解一些。
skynet000 2010-02-04
  • 打赏
  • 举报
回复
Uart在通讯的过程中会加入一些它的协议。一个byte的数据会加上起始位,停止位,校验位等等。就可能有多个bit。
至于这些byte传输。在线路上瞬间还只能是一个单一电平来传输的。

简单举例说传送一个0x84这个字节(就不说起始,停止位之类的)
Uart控制器的发送先发送1,TX线为high,间隔单位时间后,再发送0,TX线为low,间隔单位时间后,再发送0,Tx线为low,,依次类推了。
这个单位时间就是1/波特率了。

Arnold9009 2010-02-04
  • 打赏
  • 举报
回复
区分每一位是通过采样,串口模块检测到起始位之后,按照设定的波特率进行采样来获取传输的数据;

每个字节的前后都有起始位和停止位,串口模块通过这两个标志来判断字节的开始和结束
博说医械研发 2010-02-04
  • 打赏
  • 举报
回复
串口通信中可以设置5、6、7、8等数据位,但是在实际的UART模块操作过程中向TXD寄存器写数据的时候是按照字节写的,读RXD的时候也是按照字节来读的,传送过程中是先传高位还是先传低位没研究过,但是是串口通信的规范,相应模块会自动处理,你发送10个字节先送的值先发送和先接收到。
博说医械研发 2010-02-04
  • 打赏
  • 举报
回复
这个应该是UART模块自动处理的。

6,120

社区成员

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

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