UART数据收发原理.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
UART数据收发原理

UART数据收发的原理 初学者对单片机串行通讯出了问题不知道如何办的情况。其实最有效的调试方法是用示波器观察收发数据的波形。通过观察波形可以确定以下情况: 1.是否有数据接收或发送; 2.数据是否正确; 3.波特率是否正确; 一、串行数据的格式 异步串行数据的一般格式是:起始位+数据位+停止位,其中起始位1 位,数据位可以是5、6、7、8位,停止位可以是1、1.5、2位。 起始位是一个值为0的位,所以对于正逻辑的TTL电平,起始位是一位时间的低电平;停止位是值为1的位,所以对于正逻辑的TTL电平,停止位是高电平。对于负逻辑 如RS-232电平 则相反。 例如,对于16进制数据55AAH,当采用8位数据位、1位停止位传输时,它在信号线上的波形如图1 TTL电平 和图2 RS-232电平 所示。 图1 TTL电平的串行数据帧格式 55AAH 图2 RS-232电平的串行数据帧格式 55AAH 二、根据波形图计算波特率 如图3是图1在示波器中的显示示意,其中灰色线是示波器的时间分度线,此时假设是200ms/格。 图3 波特率计算示意图 可以看了,第一个字节的10位 1位起始位,8位数据位和1位停止位 共占约1.05ms,这样可计算出其波特率约为: 10bit / 1.05ms X 1000 ≈ 9600 bit/s 如果上图中的时间轴是100ms/格,同样可以计算出波特率应是19200bit/s。 当通讯不正常,又能观察到波形时,就可根据上述方法,从波形图计算一下波特率是否正确。 三、根据波形图判断RS-485收发数据的正确与否 RS-485是一种半双工的串行通讯方式,485电平芯片所以要正确接收和发送数据,必需保证控制信号和数据的同步,否则要么发送数据丢失,要么接收数据可能丢失。 RS-485发送数据时的正确时序如图4所示。 图4 RS-485的正确发送数据时序 在图4中,发送控制信号的宽度基本与数据信号的宽度一致,所以能保证发送数据的正确和发送后及时转为接收。 图5 和图6 分别是控制信号太短和控制信号太长的情况。 图5 RS-485控制信号太短时的时序 图6 RS-485控制信号太短时的时序 在图5中,由于控制信号关闭过早,则第二个字节的后两位将发送错误;在图6中,由于控制信号关闭过迟,使485芯片在发送数据后,不能及时转到接收状态,此时总线若有数据过来,则本单元将不能正确接收。 总结:只要掌握上述波形分析方法,任何异步串行数据的接收和发送问题,基本都可以得到解决。

文档评论(0)

sb9185sb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档