|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
5 E5 ~! N$ E# S, l
摘要:美国Dallas公司在单线数字温度传感器上普遍采用了1 -Wire技术,本文介绍如何利用该技术,实现在8051: b7 l7 H$ ]1 x+ p5 J
单片机之间的单线通信。
0 T% g2 w/ }" v* M关键词:单线;时隙;通信;单片机
) n* `* {( w! Y& n0 a; h% @在构成一个较大规模的单片机应用系统中,不可避
% l2 [* P' t) {; T R+ g免地要采用多机系统,经常涉及到系统间的信息交换。在+ e. `& l" T5 d" T9 w
通信速率要求不高的情况下,我们希望进行通信的双方
) z! e8 V1 V+ @- h# P0 u1 \占用尽可能少的端口连线。美国Dallas公司生产的单线
+ T1 X3 }% |) m5 ]: k7 T8 [数字温度传感器DS1820仅用1根口线进行信息交换,该, ?& n4 P) {+ F, b1 K. w
技术可以很方便地应用到单片机系统间的通信上来。; h( _2 [6 i: R; g
1发送和接收
+ j5 K# c {3 U! p, m0 }8 }5 I单线通信的数据交换仅在1根总线上完成,对主
% s! o+ \- M. Z$ [. [( I& e% Q0 f机和从机必须有严格的时序要求,可以借助“时隙”传9 V y* U7 x( b4 x. c, g
输来实现数据的发送与接收。
. o6 |/ c2 O. p; |如图1 (a),主机向从机发送一位信息时,先由主
5 A' C0 X* K2 T Y, f; G _- n! u9 y6 e机将总线由高(“1”)拉低(“0”) 1~15 μs,然后根
4 x1 [, f5 j& ?2 H% Y2 c1 ]8 j据发送的信息是“1”还是“0”,置总线为相应的逻辑( | ~. [& H& w( `! J$ {) |
“1”或“0”,持续时间大于45~60 μs后释放总线。从
, Z5 b: w0 n* B) E机检测到总线由高变低后,在15~60μs的时间窗内采$ ^, h4 H; d! n% M# H) Q1 X
样总线,若为高,则收到“1”, 否则收到“0”。主机' [ b' ~. x( V5 k
发送一位的总时间要求大于60μs,以便为最坏情况提
( V# P( X$ s0 R! ~ b供足够的时间裕量。
2 J* w. n' M, V L( ]" R B1 `当主机需要接收数据时,采用如图1 (b)的时隙,
# N3 g, ]8 [1 H; D* C先由主机将总线拉低1~15μs,然后释放。从机检测到
* G, U+ e, `6 z! d5 N总线由高变低后置总线为逻辑“1”或“0”,持续时间
, [& s7 w K; T9 P. v) P3 x( c不少于15 μs。主机在释放总线的15 μs 时间内采样总
' H2 \' l& G5 l* ] v7 e: s线,以接收从机发送的“1”或“0”, 同样,要求接收
+ a- J5 h q f0 A& q. t
1 a5 q+ m1 \1 H: j6 V# O( f& o6 ]/ z3 o$ F
7 d: I! q( U. P) C% d# M* `
附件下载:4 ]# `8 B; M: ~8 J4 ^5 d
3 a; z+ t* o% Z0 b0 ~, G ?3 k1 e |
|