|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
- B, I) X6 _- I' { l摘要:介绍了在同一系统内,Mcs51系列两单片机之间采用单向并行通信接口、主从双向并行通干言: N# v: d. x' A% }2 b
接口、无主从双向并行通信接口实现双机互连的方法,分析了在每一种通信接口工作方式下数据传
4 v U; D# c7 {/ `, V! f2 `送的特点,这三种并行通信接口为单片机应用系统扩充硬件资源的设计提供了新的途径。
/ X3 Y# l7 J4 \6 t7 \% K/ Z
% _2 h A7 T, B: }由于Mcs51系列单片机具有性能稳定、工作可
/ p) ~# `3 | e! Z( f靠、价格低廉等特点,因此其应用相当广泛。一个
4 Z3 A# _7 P1 I* d" fMcs5l系列的单片机(如Ahne培g。a)内部包含有
! n3 w0 F" ~9 r4 yRAM、F1ASH RoM、两个或者三个16位的定时器/计
/ g! c6 Q; z2 ^" y$ v数器、·个通用异步串行通信控制器(uART)等多种2 d6 a4 C& h! ~& Q5 C. l. I
资源。但即便如此,在一些相对复杂的单片机应用
: z( y2 `9 l& }$ {; M% b" N系统中,仅仅一个单片机的资源还是不够的,因而常
; ?7 h/ ]" [$ e* U3 ?常需要扩充I/O接口、定时器/计数器、串行通信接- {& Z$ @$ {2 F* t. u# {7 \
口、RAM、ROM等。采用通用的标准器件进行扩充足
% w( z/ e" {" A6 u- d! K2 f; E通常的做法,但将单片机本身作为一个通用的扩充2 B4 e- y1 I+ @! _
器件来使用,也不失为一个好的方法。在这种情况
+ n( L' {8 t' J9 R. q. @, d下,一个系统巾就使用r两个或两个以上的单片机," l0 p' U# K4 f1 W9 |
而单片机之间就要通过互连来进行数据通信。2 ?, P8 n3 O% @& k6 Q* H
Mcs51系列的单片机(以下简称单片机)都带有串+ |1 h4 G$ ~. _7 B) L
f1,利用串口进行互连通信极为方便,其各种连接方# x Q! N6 _( _7 {
式在许多书籍和资料上都有介绍,在此不再重述。
5 x: q0 e% \$ B- x: J6 W8 g+ A但如果系统要求扩充的资源是对外连接的串口,或9 L" b+ _4 e4 P8 R/ J! j6 { n
对相互之间的数据传送有一定的速度要求,则单片
+ Q f+ j6 \* v7 N3 G4 d& I, D机的串口就不能用作系统内两单片机的通信接口$ Y, n& q$ x$ g$ v8 N; c2 U( x3 l Q: H
了。所幸的是,单片机的并行端口也能相互连接来6 M3 `1 M S& b+ C ^; t
进行数据通信。根据单片机端口内部结构的特点,
8 L- M# F. @0 n/ X
* n, C1 b2 |% R这些端口的端口线可以直接相连,从而使两单片机# e1 m5 m, ~2 t1 B- f
之间并行通信接r1的实现不用另外的硬件电路设" P( O8 C- w4 P: L/ u, M
计。基于这种情况,设计时,可根据不同的使用要
* ?6 ~: G2 [0 Z9 |0 [. B求,来采用不同的并行连接方法。下面介绍在两个$ z' N+ Q& k. f- m9 C3 D: F+ ?
单片机之间进行三种并行通信接口的实现方法。,
$ M8 J+ V% l U2 p' f4 dl 单向并行通信接口的实现
9 h5 F/ ?* j6 ~% M4 }3 o! _在应用中,如果只需一个单片机向另一个单片/ b5 V4 }5 A! F; \6 \
机传送数据,则可以采用单向并行通信接口力式,这, V+ i' Q+ J+ e" B$ V7 P" {. S
种方式较为简单。图l所示为单向并行通信接口的
7 J" l/ N& ]8 e4 S组成方法。图中,单片机A为数据发送方,单片机B E# F* W) @, y x1 _# A
为数据接收方,8位端|_】可以是P0~3的任何一
; y4 b' F1 q1 Y' ~ n& X个。数据传送的流程是:单片机A将数据送到端口
1 G1 k3 _& b5 E B; `+ O1 g, M后,通过m信号中断单片机B,单片机l{进人中断% _ G% i* F l" o: y5 l' }) f
并从端口读取数据,读完后,利用Bu盯信号进行应
8 X& X# W9 N7 H3 t. K: b% T9 ]5 _% b) r4 X; a
答,单片机A在检查到端口线CHK上的应答信号
4 I8 c% v* P5 C, B1 g& ^后,就可以发送下一个数据了。以上是采用中断方& n4 H# W4 u! D: l1 ^5 x3 k
式进行数据传送的具体方法。当然,单片机B也可& M A# n+ E; Q( }# v
以采用查询方式接收数据。利用单向并行通信接口# {$ [4 R& Y% S
方法的优点是可以充分利用单片机的资源来扩充整) p* d' b* g4 z( }/ [7 D
个系统的串行通信接口、并行接口1、定时器等部件。
# p+ N4 j( \4 W) A2 v$ b7 }2
( H' G8 S& N6 z5 S N主从并行通信接口的实现 S p4 K+ }# i
主从并行通信接口的特点是两单片机之间能够9 t; L, J, {" B
通过并行通信接I1将数据发送到对方,但这种方法9 g1 b- s0 p1 i% T& u; M4 G
必须有一个单片机处在主机状态,另一个单片机处
3 y: h% J) d# J- K+ {. ~ Z在从机状态。图2为主从并行通信接口的原理图。单 w! u/ L0 j* h7 V" W
: }( |# s ]+ s* ]片机A是主机,单片机B是从机,该接口使用了-一( r; G& h! H& c! X
个8位端口(如P0或P1)和4根控制信号线。& X6 ^) O: i/ s" `, h* ~
在主从工作方式下,该接口的工作方式有主机
1 }9 {0 V: E2 e; P1 J发送从机接收和主机接收从机发送等两种情况。
6 _4 [/ `: Q/ u2.1主机发送从机接收方式的主机工作流程; f$ a. j* z. w0 s0 L+ d1 x/ ^+ K
主发从收方式的工作流程如下:2 w$ I; X4 h3 L" u$ g$ b
(1)主机设置数据传送方向控制位DIR为0,以9 t" L; H1 s T) Q& n @
表示主机有数据发送到从机;
1 F1 w) n' U# \! {5 a& G* \9 M2 `* E! T(2)主机在STB端口产生一个负脉冲,以使从机( L0 Y; Q- ?9 [6 E. c- `
进人中断,并准备接收数据;
7 B- m' x/ X/ H( g(3)主机将数据送8位数据端口,再设定ACK/ { a% s3 y& z: O
信号表示数据有效;$ | h$ C6 F/ s/ ` W1 ^- p3 s/ ~
(4)主机检查CHK端口,等待从机从8位端口
$ C' S8 O: t5 g5 S( J# ~- e% v取走数据;
* i. {0 h. t2 D$ R, u) ?(5)数据发送完成返回。: a. f. x& g; O# f6 T. @
2.2主机接收从机发送时的主机工作流程
- D7 z( ]" p. |6 @! Q s主机接收从机发送方式时的工作流程如下:
3 R( j$ S7 ^7 |8 J(1)主机设置数据传送方向控制位DUR为1,以9 L( L) ]$ ?$ c
表示主机将从从机读取数据;$ l1 u$ g. U/ H t+ B
(2)主机在SIB端口产生一个负脉冲,以使从机" |. A/ T5 R6 n# A( f* ^
进入中断,并准备发送数据;
" S; y9 l/ k6 Y3 F(3)主机检查CHK端口,等待从机将数据送到8
, G# r/ h1 v; k, a' C位端口上;2 T: f/ U5 L8 c
9 a* m4 U) L. z- Z8 Y; h- i. M' P1 P& `
+ b* o* n8 W5 S) K' a
' W [) T9 ?8 D/ E0 H% K a" Q+ ~# }3 w# l! M* W
附件下载: ' C s; M$ [4 A
) d( _4 l" a. b: |2 B8 m: W+ w |
|