原创 MCS-51单片机的串行通信口

2009-8-12 18:44 2108 9 9 分类: MCU/ 嵌入式
来源 CEPARK网站http://www.cepark.com/Index.html  作者: hnrainMCS-51单片机内部有一个全双工的串行通信口,即串行接收和发送缓冲器(SBUF),这两个在物理上独立的接收发送器,既可以接收数据也可以发送数据。但接收缓冲器只能读出不能写入,而发送缓冲器则只能写入不能读出,它们的地址为99H。这个通信口既可以用于网络通信,亦可实现串行异步通信,还可以构成同步移位寄存器使用。如果在传行口的输入输出引脚上加上电平转换器,就可方便地构成标准的RS-232接口。下面我们分别介绍。
(`.E+Jxn6buT43093
5J%V'^ a#}l43093    [1]. 基本概念
])[N&f0{9g ~D43093电子园51单片机学习网9g(Soj$|G-SZi*q
    数据通信的传输方式
QwO,D4b v e43093    常用于数据通信的传输方式有单工、半双工、全双工和多工方式。
q8B&bugK@x%AT9J43093电子园51单片机学习网D%J1}T a
    6136_200904270939001ZX5V.gif单工方式:数据仅按一个固定方向传送。因而这种传输方式的用途有限,常用于串行口的打印数据传输与简单系统间的数据采集。
6KGd"J;Y43093
2D;|`G |)d43093    6136_200904270939001ZX5V.gif半双工方式:数据可实现双向传送,但不能同时进行,实际的应用采用某种协议实现收/发开关转换。电子园51单片机学习网 I a N v \0s1@
电子园51单片机学习网n,l3ziG*`s t
    6136_200904270939001ZX5V.gif全双工方式:允许双方同时进行数据双向传送,但一般全双工传输方式的线路和设备较复杂。
4ph.^Z[R43093电子园51单片机学习网0h bw j e|
    6136_200904270939001ZX5V.gif多工方式:以上三种传输方式都是用同一线路传输一种频率信号,为了充分地利用线路资源,可通过使用多路复用器或多路集线器,采用频分、时分或码分复用技术,即可实现在同一线路上资源共享功能,我们盛之为多工传输方式。
电子园51单片机学习网5e M1p p^,G
电子园51单片机学习网-j+i/d!v+A Vi|6q`

    串行数据通信两种形式电子园51单片机学习网c$}5HR];~L9~
    6136_200904270939001ZX5V.gif异步通信电子园51单片机学习网Y$[rTEb&X(~'@)F
    在这种通信方式中,接收器和发送器有各自的时钟,它们的工作是非同步的,异步通信用一帧来表示一个字符,其内容如下:一个起始位,仅接着是若干个数据位,图2是传输45H的数据格式。电子园51单片机学习网A/lh"W*VJ&p

AS!L&v?/`43093    6136_200904270939001ZX5V.gif同步通信电子园51单片机学习网 [2D5^8CDK"IusT
    同步通信格式中,发送器和接收器由同一个时钟源控制,为了克服在异步通信中,每传输一帧字符都必须加上起始位和停止位,占用了传输时间,在要求传送数据量较大的场合,速度就慢得多。同步传输方式去掉了这些起始位和停止位,只在传输数据块时先送出一个同步头(字符)标志即可。电子园51单片机学习网9T8fo'a_ A9@
电子园51单片机学习网[%}H'\6p t;Xh6e
    同步传输方式比异步传输方式速度快,这是它的优势。但同步传输方式也有其缺点,即它必须要用一个时钟来协调收发器的工作,所以它的设备也较复杂。

    6136_200904270939001ZX5V.gif串行数据通信的传输速率
:g`!d8im*g*A43093    串行数据传输速率有两个概念,即每秒转送的位数bps(Bit per second)和每秒符号数—波特率(Band rate),在具有调制解调器的通信中,波特率与调制速率有关。
7T%m2G-}IGxU&G(cL43093
N(S+O_o8|43093    [2]. MCS-51的串行口和控制寄存器电子园51单片机学习网i b?)vET b,ec

)Q,[*LQ%\K$]43093    串行口控制寄存器
#FT2Ya u}7Bn#]*OG43093

    MCS-51单片机串行口寄存器结构如图3所示。SBUF为串行口的收发缓冲器,它是一个可寻址的专用寄存器,其中包含了接收器和发送器寄存器,可以实现全双工通信。但这两个寄存器具有同一地址(99H)。MCS-51的串行数据传输很简单,只要向发送缓冲器写入数据即可发送数据。而从接收缓冲器读出数据即可接收数据。电子园51单片机学习网aMy*B2D XfG1c

K*[ vhM43093    此外,从图中可看出,接收缓冲器前还加上一级输入移位寄存器,MCS-51这种结构目的在于接收数据时避免发生数据帧重叠现象,以免出错,部分文献称这种结构为双缓冲器结构。而发送数据时就不需要这样设置,因为发送时,CPU是主动的,不可能出现这种现象。

    6136_200904270939001ZX5V.gif串行通信控制寄存器
WKi0ni(x:\ e43093    在上一节我们已经分析了SCON控制寄存器,它是一个可寻址的专用寄存器,用于串行数据的通信控制,单元地址是98H,其结构格式如下:电子园51单片机学习网B_8qF Y(SB I'}S3K
电子园51单片机学习网n3C[K}%~-m%NfI

  表1  SCON寄存器结构
SCOND7D6D5D4D3D2D1D0
SM0SM1SM2RENTB8RB8TIRI
位地址9FH9EH8DH9CH9BH9AH99H98H

0o:xd&eKXT rv ]z43093
    下面我们对各控制位功能介绍如下:
!` Npj*y5w43093    (1).SM0、SM1:串行口工作方式控制位。电子园51单片机学习网/rX6P@:c,Sk8EB
        SM0,SM1    工作方式电子园51单片机学习网~-hIbI k$~9W8]
            00      方式0
5F oyj?/O0T},Q2x43093            01      方式1电子园51单片机学习网MMa;lO Bv
            10      方式2电子园51单片机学习网+Dj,b3r"Fqbv
            11      方式3

T1d P_4R:zoD43093
vx[&I9Y&} a43093    (2).SM2:多机通信控制位。
FV5t(V8m"\EK^G6k43093    多机通信是工作于方式2和方式3,SM2位主要用于方式2和方式3。接收状态,当串行口工作于方式2或3,以及SM2=1时,只有当接收到第9位数据(RB8)为1时,才把接收到的前8位数据送入SBUF,且置位RI发出中断申请,否则会将接受到的数据放弃。当SM2=0时,就不管第位数据是0还是1,都难得数据送入SBUF,并发出中断申请。电子园51单片机学习网+BJb_j y
    工作于方式0时,SM2必须为0。
电子园51单片机学习网`3qq {f

I+[ WCp0t%b-d43093    (3).REN:允许接收位。电子园51单片机学习网U9}N(P qN ST)P
    REN用于控制数据接收的允许和禁止,REN=1时,允许接收,REN=0时,禁止接收。
(s:x6xa/quKmmu43093电子园51单片机学习网qfp2^a#Kb1C'o
    (4).TB8:发送接收数据位8。
)X:y7~3s^Io43093    在方式2和方式3中,TB8是要发送的——即第9位数据位。在多机通信中同样亦要传输这一位,并且它代表传输的地址还是数据,TB8=0为数据,TB8=1时为地址。
m!ZO s'Y"n.|)B U{c43093
9Q1_*R @jT^&h+z?.I43093    (5).RB8:接收数据位8。电子园51单片机学习网1~$g5Yc8u;?
    在方式2和方式3中,RB8存放接收到的第9位数据,用以识别接收到的数据特征。
duN)` tR43093
Q9hLF)^0~$Sr[$y a43093    (6).TI:发送中断标志位。
`4E9nG!L43093    可寻址标志位。方式0时,发送完第8位数据后,由硬件置位,其它方式下,在发送或停止位之前由硬件置位,因此,TI=1表示帧发送结束,TI可由软件清“0”。电子园51单片机学习网c+nr+b(l

*V[E)p5u#HsG43093    (7).RI:接收中断标志位。
O0mT5O2V sedr `43093    可寻址标志位。接收完第8位数据后,该位由硬件置位,在其他工作方式下,该位由硬件置位,RI=1表示帧接收完成。电子园51单片机学习网3M1I/Q}(mQ
电子园51单片机学习网h&VE9e"Cw$d

    6136_200904270939001ZX5V.gif电源管理寄存器PCON电子园51单片机学习网:[ t'xB5}mM
    PCON主要是为CHMOS型单片机的电源控制而设置的专用寄存器,单元地址是87H,其结构格式如下:
$R J)y7X_43093
0W ~W w0w ya-T43093

  表2  PCON电源管理寄存器结构
PCOND7D6D5D4D3D2D1D0
位符号SMOD---GF1GF0PDIDL

    在CHMOS型单片机中,除SMOD位外,其他位均为虚设的,SMOD是串行口波特率倍增位,当SMOD=1时,串行口波特率加倍。系统复位默认为SMOD=0。电子园51单片机学习网2mfA5|RcDY#d

s+G$}-V*Ce,tj @,s43093

    6136_200904270939001ZX5V.gif中断允许寄存器IE
5K Q@,U;Ys7Ia-oU43093    中断允许寄存器在前一节中已阐述,这里重述一下对串行口有影响的位ES。ES为串行中断允许控制位,ES=1允许串行中断,ES=0,禁止串行中断。
2np s)U w jN T'ql43093电子园51单片机学习网[i0C/v:x

  表3  IE中断允许控制寄存器结构
位符号EA--ESET1EX1ET0EX0
位地址AFHAEHADHACHABHAAHA9HA8H
PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
9
关闭 站长推荐上一条 /3 下一条