|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
* O3 r+ }0 \# r6 R. z* [; n" c[摘要]本文阐述了主从式多机通讯的原理,提出了一种基于RS-422串行通信接口的方案和软件设& p( u9 S8 R6 s# R7 _+ r2 k
计方法.针对计算机与8051系列单片机串行口的通讯特点,设置计算机中通讯控制寄存器,使计算机满足单片+ r1 ~5 p a) y" u
机多机通讯的格式,实现了计算机和单片机的多机通讯.该方法已在实际应用中被广泛采用,并可推广应用于 S3 Z9 {5 b2 i5 ~0 P+ |
其他系统,对其他系统的硬件电路设计及程序设计具有一定的参考价值./ T3 h3 E4 H Z2 M+ t
[关键词] 单片机;多机通讯;RS-422接口;8051
7 Y; w( B: W* J9 ~" U% J引言
' X9 }0 H' \0 y7 i6 m随着计算机技术和通讯技术的发展,在工业过程控制、数据采集等领域,出现了利用计算机和单片6 N1 t+ S/ G; R. U, p8 B
机组成的主从式多机系统,以实现集中监控.在这些系统中,单片机一般是充当从机(下位机),直接用
# i. S7 H, S! M: S& e于对所控制对象进行实时数据的采集、简单计算、判断和处理;而主机(.上位机)则多采用微机(如Penti-( k; N5 d2 h$ g8 b" n
um系列),主要负责对各单片机进行综合管理,以实现测控系统的自动检测与控制.当从机数过多,主
1 M8 k: @8 G) h H8 O/ _+ S+ c* h机要不停地查询或响应从机的中断,并要在--定时间内等待和接收数据,因而严重影响到上位机的工作3 r' Y( B1 \! W( N
效率.因此,如何根据系统的实际工作环境条件,选择恰当的通信接口和协议,合理设计通信硬件和软$ j( N, u; B& l' o; k
件,获得高可靠性、强抗干扰和容错能力,成为衡量此类系统好坏的最重要因素[".! j% X: d* g# H4 b8 M6 X8 y
2
* i" {. K# V) C- x( i: v6 H8 d主从式多机通讯原理
6 i/ ?/ Y, g8 y# N& H+ R2.18051单片机通讯设置寄存器- [# |' h5 g! V8 j7 O
1)定时/计数器工作方式寄存器TMODI2]9 f9 s, [. t$ [& G
TMOD为T1、T2的工作方式寄存器,其格式如图1所示. h$ _7 t1 c. @1 N' J
图1 TMOD 寄存器的定义
6 B; E0 J% E: _4 O7 O& H5 N工作方式选择位定义如表1所示. ! j! ^/ P& ~8 @! E5 y. M V+ V1 U
2)串行口控制寄存器SCON' i( g- K, g/ W6 R. U6 L0 H( ^1 {
SCON用来控制串行口的工作方式和状态,可以位寻址,字节地址为98H.单片机复位时,所有位全3 w+ S, v7 \" m7 [0 v! ]- V
为0,其格式如图2所示.& |$ S; {& u0 c$ ?' U
2 C4 w% L- r, Z$ y5 G J# E, W2 w2.2 8051 单片机通讯功能3 U6 P2 `: C8 m" c( A
8051系列单片机内部有一个功能很强的全双工串行口(UART),有两个独立的接收、发送缓冲器:% l$ h* j$ @: g( A% r3 q+ G; Q$ x- E
SBUF,可同时发送和接收数据.发送缓冲器只能写人数据,不能读出;接收缓冲器只能读出,不能写人,
' m; [ z1 k& v: u8 |两个缓冲器占有一个地址99H.根据表2可知,串行口有4种工作方式,其中方式2和方式3是用于多.. y8 f9 _; b# p& R1 s9 M
机通讯的工作方式,由SCON控制, SM2在方式2和方式3时,作为主、从式多机通讯的控制位,可实现+ Y7 f1 x V, b# c, E
主从通讯(3].
% l% j, y1 l W# J1)发送/ v5 Q* ?/ r2 T- l
发送时,先根据通信协议由软件设置TB8 ,然后用指令将要发送的数据写人SBUF,启动发送器.写
5 }, w- L1 a- J4 u! u" Q* A. rSBUF的指令,除了将8位数据送人SBUF外,同时还将TB8装人发送移位寄存器的第9位,并通知发送, i; Y0 }; `& a, k1 s/ x
控制器进行- -次发送.一帧信息即从TXD发送,在送完-帧信息后,TI被自动置1,在发送下一帧信息
& _" C k4 H0 `之前,TI必须由中断服务程序或查询程序清0.0 H G8 \' H$ I1 [* g
2)接收
+ a0 f) Y1 y6 ~, c: `# D. W当REN=1时,允许串行口接收数据.数据由RXD端输人.当接收器采样到RXD端的负跳变,并判4 {% H- A4 t7 G
断起始位有效后,开始接收- -帧信息.当接收器接收到第9位数据后,若同时满足以下两个条件:RI =0;
9 w7 X3 f9 [% `+ dSM2 =0或接收到的第9位数据为1,则接收数据有效,8位数据送人SBUF ,第9位送人RB8 ,并置RI=
7 e- A" g2 @, q. t' r) r7 D% s7 O1 ;若不满足上述两个条件,则信息丢失.
2 N: T# B' l6 S% p2.3 8051 系列单片机主从式多机通讯原理
: B* t: J% D* |6 E9 z7 a" h ^# R主从式多机通讯系统是由1台主机和多台从机组成的,主机发送信息可被多个从机接收,而从机只
& p. G; y% {5 ^, N2 c0 f0 ~# A* |* j能对主机发送信息,从机间不能互相通讯.其原理如图3所示.
8 t4 w5 y; y/ h8 A) \+ `5 i1 ]在通讯之前,先将主机地址发送给各从机,接着发送数据或命令.一般可做如下约定:主机要发送地
+ n& I: X! K3 D8 V: B9 V6 w/ T
5 J1 X3 C1 F: A$ a" `+ ?
8 k+ b Y; u( k+ J9 I+ v5 _+ c. G* D
附件下载:- h1 }# a# ^% k* F
2 Z4 t8 b/ E! ?7 _* o2 ]) m
|
|