打印

UART的疑问

[复制链接]
2208|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
coke|  楼主 | 2011-3-12 21:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
UART通讯中, MCU使用1bit起始位 + 9bit数据 + 1bit停止位格式. 如果波特率设置为每bit数据传输的时间为10uS. 那么每个包所需要花费11*10 = 110uS.  UART通讯中,高电平表示空闲状态。 如果某时有一个150uS或200uS时间宽度的低电平出现在MCU的RX线上,MCU会出现什么情况? 是将这个150uS或200uS的时间宽度的低电平看做是一个数据0x00还是??

相关帖子

沙发
HWM| | 2011-3-13 10:23 | 只看该作者
re LZ:

UART 由“空闲状态”(高电平)遇下降沿转入低电平(起始位)后开始启动其内的时钟(速度由波特率定)。一般是一位采三次样,直至结束位后时钟停止。如此,自己分析一下“150uS或200uS时间宽度的低电平”会后什么结果。

这里要注意的是,由波特率确定的UART内部的“采样时间定时器”同步于开始位,因此只要波特率误差在一个UART传输周期内(起始位至停止位)不导致采样错位,就不会出错。

使用特权

评论回复
板凳
刘前辈| | 2011-3-13 10:49 | 只看该作者
本帖最后由 刘前辈 于 2011-3-13 10:54 编辑

LZ忽略了一件事:一个包是以由高到低的起始位开始,由1+9位之后的高电平停止位截止。也就是说:一个数据包必然是由2端的高电平封装的。
而数据包和数据包之间的空隙必然是由停止位电平(高电平)填充。

所以,“一个150uS或200uS时间宽度的低电平出现在MCU的RX线上,”对于正常波特率的UART来说,是异常状态——不正常状态。好像UART可以通过软件设置发送这种“异常信号”,它的意思是:“这一帧前面的包发送作废,重新帧开始。”  ——UART一帧数据有多个包构成,不像HDLC,一帧只有一个包。

“MCU会出现什么情况? ”  UART将会触发“异常中断”,唤醒MCU进行ISR处理。

所以,问问发送方,具体通信协议。
否则,就是通信软硬件有故障。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

104

主题

316

帖子

2

粉丝