内乡社区网_菊乡信息网_分类信息免费发布_ 内乡社区网_ 出租转让_售房卖房_内乡门户网站_内乡信息网_求职招聘_旅游交友_招生_生活便利_内乡同城_内乡黄页_菊乡信息网_ 内乡社区网
标题:
通过波形分析方法调试UART数据收发
[打印本页]
作者:
xmxm76
时间:
2010-2-25 11:38
标题:
通过波形分析方法调试UART数据收发
经常遇到初学者,对单片机串行通讯出了问题不知道如何办的情况。其实最有效的调试方法是用示波器观察收发数据的波形。通过观察波形可以确定以下情况: 是否有数据接收或发送; 数据是否正确; 波特率是否正确;一、串行数据的格式
0 J& ?9 N( V, C
异步串行数据的一般格式是:起始位+数据位+停止位,其中起始位1 位,数据位可以是5、6、7、8位,停止位可以是1、1.5、2位。
6 l9 L2 O5 I f6 O3 N* L' V& K1 P
起始位是一个值为0的位,所以对于正逻辑的TTL电平,起始位是一位时间的低电平;停止位是值为1的位,所以对于正逻辑的TTL电平,停止位是高电平。对于负逻辑(如RS-232电平)则相反。
/ s. s9 s3 Q7 i7 ~
例如,对于16进制数据55aaH,当采用8位数据位、1位停止位传输时,它在信号线上的波形如图1(TTL电平)和图2(RS-232电平)所示。
4 X% U& R, |& \, M- o: h/ l
(, 下载次数: 1)
上传
点击文件名下载附件
下载积分: 积分 2
' V) D2 H' h7 o0 N' v# {! Z. F
图1 TTL电平的串行数据帧格式(55aah)
. L- q* ~' F/ \ g! T) U$ C
(, 下载次数: 1)
上传
点击文件名下载附件
下载积分: 积分 2
. n4 o9 o/ D+ s* k
图2 RS-232电平的串行数据帧格式(55aah)
# Y# Y: e- e- N' @1 F; ]6 b/ U
二、根据波形图计算波特率
5 D! C5 q$ e( M+ F
如图3是图1在示波器中的显示示意,其中灰色线是示波器的时间分度线,此时假设是200ms/格。
9 _, t8 k( v6 a& f5 ^( U
(, 下载次数: 1)
上传
点击文件名下载附件
下载积分: 积分 2
) y/ H, e1 s8 l
图3 波特率计算示意图
7 p8 Z/ |8 h* E( @( Z: h
可以看了,第一个字节的10位(1位起始位,8位数据位和1位停止位)共占约1.05ms,这样可计算出其波特率约为:
9 `1 g! Q3 s- p9 T1 i' P
10bit / 1.05ms X 1000 ≈ 9600 bit/s
$ X4 k$ Q$ b7 t1 s9 w R" W: X
如果上图中的时间轴是100ms/格,同样可以计算出波特率应是19200bit/s。
3 R+ r3 h1 E5 S# w* L% z9 o
当通讯不正常,又能观察到波形时,就可根据上述方法,从波形图计算一下波特率是否正确。
: y3 C, |/ d0 ^3 [ V r& V8 J
三、根据波形图判断RS-485收发数据的正确与否
7 K) H2 U0 P, o: ]5 w2 o) |
RS-485是一种半双工的串行通讯方式,485电平芯片所以要正确接收和发送数据,必需保证控制信号和数据的同步,否则要么发送数据丢失,要么接收数据可能丢失。
5 A+ \7 m% n; }9 k! X
RS-485发送数据时的正确时序如图4所示。
; Y/ E; Z, O- ~& G: p% i; X, i
(, 下载次数: 1)
上传
点击文件名下载附件
下载积分: 积分 2
$ |7 S8 R7 U# N7 D$ @0 I
图4 RS-485的正确发送数据时序
2 s1 `! U' |; g% r
在图4中,发送控制信号的宽度基本与数据信号的宽度一致,所以能保证发送数据的正确和发送后及时转为接收。
" }- ^; @) ]' G4 Q5 F3 l* b, ]
图5 和图6 分别是控制信号太短和控制信号太长的情况。
3 z- G* _" `5 d1 D
(, 下载次数: 1)
上传
点击文件名下载附件
下载积分: 积分 2
" b2 R: g+ ~4 g
图5 RS-485控制信号太短时的时序
& @( `& C1 |0 v1 X: z! C5 {
(, 下载次数: 1)
上传
点击文件名下载附件
下载积分: 积分 2
+ q% X5 K" p0 x+ F+ v6 h! ^
图6 RS-485控制信号太短时的时序
; [- c0 R2 `% _7 W% j' j, [7 \
在图5中,由于控制信号关闭过早,则第二个字节的后两位将发送错误;在图6中,由于控制信号关闭过迟,使485芯片在发送数据后,不能及时转到接收状态,此时总线若有数据过来,则本单元将不能正确接收。
) Z& i; O4 S% s8 j6 t/ U4 h; f
总结:只要掌握上述波形分析方法,任何异步串行数据的接收和发送问题,基本都可以得到解决。
欢迎光临 内乡社区网_菊乡信息网_分类信息免费发布_ 内乡社区网_ 出租转让_售房卖房_内乡门户网站_内乡信息网_求职招聘_旅游交友_招生_生活便利_内乡同城_内乡黄页_菊乡信息网_ 内乡社区网 (https://bbs.neixiangshequ.cn/)
Powered by Discuz! X3.3