QQ登录

只需一步,快速开始

查看: 560|回复: 0
打印 上一主题 下一主题

通过波形分析方法调试UART数据收发

[复制链接]
跳转到指定楼层
1#
发表于 2010-2-25 11:38:32 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
经常遇到初学者,对单片机串行通讯出了问题不知道如何办的情况。其实最有效的调试方法是用示波器观察收发数据的波形。通过观察波形可以确定以下情况: 是否有数据接收或发送; 数据是否正确; 波特率是否正确;一、串行数据的格式
- F2 ]) g8 k. O7 V7 n异步串行数据的一般格式是:起始位+数据位+停止位,其中起始位1 位,数据位可以是5、6、7、8位,停止位可以是1、1.5、2位。
5 L0 f, u# Y8 f4 _# ]5 Q0 o/ o: f6 R起始位是一个值为0的位,所以对于正逻辑的TTL电平,起始位是一位时间的低电平;停止位是值为1的位,所以对于正逻辑的TTL电平,停止位是高电平。对于负逻辑(如RS-232电平)则相反。
6 E$ |* C5 b7 u7 O1 w# L9 y 例如,对于16进制数据55aaH,当采用8位数据位、1位停止位传输时,它在信号线上的波形如图1(TTL电平)和图2(RS-232电平)所示。
6 a. K3 h5 p4 `, [. D0 D5 y, x6 S
" k( W; V+ p$ u% a% s图1 TTL电平的串行数据帧格式(55aah)
4 w, q0 P+ W  }+ _7 o0 | ' X& G8 e! a  B  R: h
图2 RS-232电平的串行数据帧格式(55aah)
. n& P$ i* `/ Z  X( [: |% c8 g. F二、根据波形图计算波特率6 D' f) a: j/ {! ?& j# U
如图3是图1在示波器中的显示示意,其中灰色线是示波器的时间分度线,此时假设是200ms/格。# O* @, _  v5 e: j
, V! W/ H1 ^: Z
图3 波特率计算示意图
& T' M  c- ?' u3 q3 W9 p: { 可以看了,第一个字节的10位(1位起始位,8位数据位和1位停止位)共占约1.05ms,这样可计算出其波特率约为:
' H0 t6 d% u2 B  O+ L0 ^5 n9 t6 u10bit / 1.05ms X 1000 ≈ 9600 bit/s
% z" D  d4 H% n8 T* p' b/ p 如果上图中的时间轴是100ms/格,同样可以计算出波特率应是19200bit/s。8 L' t, u/ R5 U" s& D4 V2 ]! P1 q
当通讯不正常,又能观察到波形时,就可根据上述方法,从波形图计算一下波特率是否正确。
' N6 |; g5 {* f6 ]& ~+ Q1 t& N5 F5 K三、根据波形图判断RS-485收发数据的正确与否" _7 W  I0 l# I0 s1 h! l. }
RS-485是一种半双工的串行通讯方式,485电平芯片所以要正确接收和发送数据,必需保证控制信号和数据的同步,否则要么发送数据丢失,要么接收数据可能丢失。" {4 D: g- k+ y  A$ ~
RS-485发送数据时的正确时序如图4所示。* Z. V0 }, P1 |, d+ W' g- p: T
- o2 m7 Z: S& y! h3 m, [
图4 RS-485的正确发送数据时序 % n$ F2 S: V" C) D. s/ T
在图4中,发送控制信号的宽度基本与数据信号的宽度一致,所以能保证发送数据的正确和发送后及时转为接收。 0 z" U9 ]! E5 b1 f* O" {
图5 和图6 分别是控制信号太短和控制信号太长的情况。
  ?1 P5 a2 ]' @- Y2 E ( Z4 O# z9 {9 O
图5 RS-485控制信号太短时的时序0 E/ [1 q! u1 A. ^2 c- A' W4 t5 o4 J3 v
' ^8 S. N4 e9 l
图6 RS-485控制信号太短时的时序 ; J1 m& z8 J+ ~0 a5 l: |
在图5中,由于控制信号关闭过早,则第二个字节的后两位将发送错误;在图6中,由于控制信号关闭过迟,使485芯片在发送数据后,不能及时转到接收状态,此时总线若有数据过来,则本单元将不能正确接收。
) @, s+ v% ~& C# M: X4 t 总结:只要掌握上述波形分析方法,任何异步串行数据的接收和发送问题,基本都可以得到解决。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖 顶 踩
内乡社区网免责声明:本文来源于网络、媒体投稿和用户自行发帖,与内乡社区网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。如果本文内容有侵犯你的权益,请发送信息至702079960@qq.com,我们会及时处理。点击进入客服处理点击进入客服处理
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|内乡社区网 ( 豫ICP备12007913号-2 

GMT+8, 2025-1-31 07:57

Discuz! X3.3

© 2001-2018 Comsenz Inc.

快速回复 返回顶部 返回列表