原创 51单片机的串行口扩展方法

2009-8-13 08:44 1095 8 8 分类: MCU/ 嵌入式

摘要:在以单片机为核心的多级分布式系统中,常常需要扩展单片机的串行通信口,本文分别介绍了基于SP2538专用串行口扩展芯片及Intel8251的两种串行口扩展方法,并给出了实际的硬件电路原理及相应的通信程序段。
{O(K'Vo8f\"E!M(j44606关键词:串口扩展;单片机;SP2538;Intel8251电子园51单片机学习网*~;~ljiyr


v |@j0z,U44606电子园51单片机学习网9| P0C&fG4k&C(pxA}
1 引言电子园51单片机学习网)e L6C{e)y
   电子园51单片机学习网^ ?R0M5^ `\
    在研究采场瓦斯积聚模拟试验台的过程中,笔者设计了主从式多机采控系统结构。主从式多机控制系统是实时控制系统中较为普遍的结构形式,它具有可靠性高,结构灵活等优点。当选用单串口51单片机构成这种主从式多机系统时,51单片机一方面可能要和主机Computer通信,一方面又要和下位机通信,这时就需要扩展串行通道。本文具体介绍了两种串行通道的扩展方法。

9rU*{~N\44606电子园51单片机学习网 o8};ur5b*Tw

2 串行口的扩展方法电子园51单片机学习网 N3uDT&m
   
.v\biv44606    常用的标准51单片机内部仅含有一个可编程的全双工串行通信接口,具有UART的全部功能。该接口电路不仅能同时进行数据的发送和接收,也可作为一个同步移位寄存器使用。当以此类型单片机构成分布式多级应用系统时,器件本身的串口资源就不够用了。笔者在实际开发中,查阅了有关资料,总结出如下两种常用而有效的串行通道扩展方法。电子园51单片机学习网Kh{P:|9B
2.1 基于SP2538的扩展方法电子园51单片机学习网,Opb2i.s(M(O
    SP2538是专用低功耗串行口扩展芯片,该芯片主要是为解决当前基于UART串口通信的外围智能模块及器件较多,而单片机或DSP原有的UART串口又过少的问题而推出的。利用该器件可将现有单片机或DSP的单串口扩展至5个全双工串口。使用方法简单、高效。电子园51单片机学习网({FY?X:T
在应用SP2538扩展串行通道时,母串口波特率K1=2880*Fosc_in,单位是MHz,且Fosc_in小于20.0MHz, 在SP2538输入时钟Fosc_in =20.0MHz时母串口可自适应上位机的56000bps和57600bps两种标准波特率输入。子串口波特率K2=480*Fosc_in。电子园51单片机学习网)J7_ o:Lk~9Q
    母串口和所有子串口都是TTL电平接口,可直接匹配其他单片机或TTL数字电路,如需连接PC机则必须增加电平转换芯片如MAX202 、MAX232 等。SP2538具有内置的上电复位电路和可关闭的看门狗监控电路。上位机写命令字0x10可实现喂狗,写命令字0x15关闭看门狗,初次上电后看门狗处于激活状态或写命令字0x20激活看门狗监控功能。上位机可通过芯片复位指令0x35在任何时候让芯片进行指令复位,也可通过芯片睡眠指令0x55在任何时候让芯片进入微功耗睡眠模式以降低系统功耗。初次上电后芯片不会自行进入睡眠模式,但只能由上位机通过母串口任意发送一个字节数据将其唤醒,其他子串口不具备这一功能。
!DIC4HV$y.w2|o44606图(1)是AT89C52单片机与SP2538的电路连接,图中,AT89C52的全双工串口与SP2538的母串口5相连,该串口同时也作为命令/数据口。SP2538的ADRI0、ADRI1、ADRI2分别与AT89C52的P2.3、P2.4、P2.5口相连,可用于选择发送数据是选择相应的串口0~4;ADRO0、ADRO1、ADRO2与P2.0、P2.1、P2.2相连,用于判断接收的数据来自哪一个串口。SP2538的时钟频率选为20.0MHZ,此时母串口5的波特率为57600bps,串口0~4的波特率为9600bps。
|(D;v|;X)l44606    下面是与上述硬件电路相关的接口程序,该程序用A51汇编语言编制,程序仅说明了中断方式下对子串口0(TX0、RX0)的操作,其它子串口类似。
%_$g.Oi V&A44606TBLOCK  DATA   20H电子园51单片机学习网~8c8z)? Mw y4P,mI
RBLOCK  DATA   30H
hx7K+[4v| m44606LENGTH  DATA   14H电子园51单片机学习网A?aRTs9WL
               …
%JgUCx44606TXR_REV_SEND:  CLR   ES
&g(iNOXi*g@44606               JBC   RI,RECEIVE
l?o7Ce Z-cRs+h44606               CLR   TI
B)EG0uw5e-S.y9m44606               MOV   A,@R0
l2l)g9PF.m*e44606               CLR   P2.0  ; 写数据到"SBUF"前必须先置欲发送子串口的地址电子园51单片机学习网l N-P%d!i {8KDF F
               CLR   P2.1
UW'^+@T {;w)ua44606               CLR   P2.2电子园51单片机学习网5|7U*Z`/HX1L:A
               MOV   SBUF,A电子园51单片机学习网U*z1rW}xWG`0l
               DJNZ  R2,NEXT电子园51单片机学习网+ubI,q!E`u"d;Jp
               SJMP  $电子园51单片机学习网2P&i9XTW$BH O
NEXT:          INC   R0电子园51单片机学习网 O3kO1V~6X
               RETI
9Rlw9F*s7H44606RECEIVE:       MOV   A,P2电子园51单片机学习网q#y6mD,_2v'Y*Z
               AND   A,#31H   ;判断是否为子串口0电子园51单片机学习网 gC"U iP%tX%dE"\
               JNZ   ELSE电子园51单片机学习网)J&wP%nmk#Bf
               MOV   A,SBUF
m_%Y;_qxbq+d5i44606               MOV   @R1,A电子园51单片机学习网nZ w ? c
               INC   R1电子园51单片机学习网5j9FE_"ICs(M
               RETI
O})e\ LT[%Py+a44606 

K^M5d @){s.}+j3s44606

H6az{rT44606
OS3xdwyh44606图(1) AT89C52与SP2538的电路连接

0{L2}K6G-Ir,W"K44606电子园51单片机学习网NX-H2{ld

2.2 基于Intel8251的串行口扩展方法电子园51单片机学习网0\e`A%gX
    上面基于SP2538的串口扩展方法可以说是一种串行的扩展方法,这里基于Intel8251的扩展方法则是一种并行的方法。Intel8251是一种通用的同步/异步发送器(USART),它的工作方式可以通过编程设置。能够以同步或异步串行通信方式工作,能自动完成帧格式。电子园51单片机学习网V,WxQ0H]-z
    Intel8251具有独立的接收/发送器。在异步方式下,用于产生8251内部时序的时钟CLK输入至少应为发送或接收时钟的4.5倍。接收/发送(RXC/TXC)时钟应为波特率的1倍、16倍或64倍(由8251的工作方式字设定)。电子园51单片机学习网0CG{ xK]%AU
    图(2)是用Intel8251扩展一个串行通道的电路原理,图中,11.0592MHZ晶振经ALE6分频后于 、 组合,产生1.8432MHZ的时钟频率,分别作为8251与8253的时钟输入,若设定8251通信波特率为9600bps,波特率因子为16,则需要153.6KHZ的接收/发送时钟频率,该频率可由8253的OUT0产生。
-F r m0j$hDt44606    下面的A51程序段说明了如何设置8253使其产生153.6KHZ的方波,以及如何用8251收/发数据:
4`yNHwyn*Z;OW\9{44606;设置8253的程序段:
*`&znGVe;w:JAL44606MOV   A,#36H         ; 计数器0输出方波控制字
Xy i3On\44606                   MOV   DPTR,#0FFFFH   ; 指向控制字寄存器
F'L"@L2klKB$@^l44606MOVX  @DPTR,A电子园51单片机学习网,Ch~[-x/fZP-a+d,\V
MOV   DPTR,#0FFFCH   ; 指向0计数器地址电子园51单片机学习网qJ0EZ$u N.z?(Sl
                   MOV   A,#0DH电子园51单片机学习网-Z vy-|Rl:|-ry
                   MOVX  @DPTR,A电子园51单片机学习网d d]j!gi.dp'`+^'\
                   MOV   A,#0电子园51单片机学习网sJBg|7MI3v8?;L2Y
                   MOVX  DPTR,A
u:U/F{ PC44606                   SETB  P1.0
B[:|?1T!_D7@Ty44606;操作8251的程序段:电子园51单片机学习网Xv ?y~vm
                   …
5|}A;_J44606       START:      MOV   DPTR,#7FFFH   ;8251控制、命令口地址
*@2t&GN)]&s'ZQ%Gv9F"j44606                   MOV   A,#5EH        ;一个停止位,奇校验,8位数据,异步*16
"PB-a9vN#]44606                   MOVX  @DPTR,A       ;写入方式字
4MAT%a{*I E b6x44606                   MOV   A,#15H电子园51单片机学习网'k,Ju M\Z lB@
                   MOVX  @DPTR,A       ;命令字,启动发送和接收器电子园51单片机学习网|,DKiDXr"[
                   …
3i-_X3Jr*r2E44606        LOOP:      SJMP  LOOP          ;等待8251中断
[I+L0{e44606        8251_INT:  ;现场保护电子园51单片机学习网!|\uM5VfN3E2T
                   MOV   DPTR,#7FFFH电子园51单片机学习网i%X-@Y)@ a
                   MOV   A,@DPTR
%o8Y'Fb `XQ;Og44606                   JB    ACC.0,TX_INT电子园51单片机学习网-V/NIkge_
                   JB    ACC.1,RX_INT电子园51单片机学习网 Uk LGR[
        INT_EXIT:  ;恢复现场
"j,[mT6m7w(AP44606                   RETI
N3pn,^"Y3h S44606        ;发送数据
/c-Se,M;tPI9O Wr44606TX_INT:    MOV   DPTR,#7FFEH     ;8251数据口地址电子园51单片机学习网`:c sNt0e
                   MOV   A,20H
4\.q"o qL0S8n(S;b(@c l#g44606                   MOVX  @DPTR,A电子园51单片机学习网&}!U-wXj
                   …电子园51单片机学习网~h*F Kx8X%G:Y
                   AJMP  INT_EXIT电子园51单片机学习网"I1y"}P u$}hw
        ;接收数据
J_Jore44606RX_INT:    MOV   DPTR,#7FFEH
fS}tK j44606                   MOVX  A,@DPTR电子园51单片机学习网4Xd.KjY UR
                   MOV   30H,A电子园51单片机学习网Q0I/WV UB
                   …电子园51单片机学习网S,p4]}G,Qq
                   AJMP  INI_EXIT电子园51单片机学习网YlM Idv{/k Ek
     
Zn*q3o+YSGT44606 电子园51单片机学习网SfgTz9N
图(2)用8251扩展串行通道的硬件电路原理
:S ])f d%Mc)KkPr[44606                 电子园51单片机学习网.lpa:y p@x[1pZ
3 结束语
,ZO4Xg HK44606    以单片机为核心的多级分布式系统的应用越来越广泛,上面讨论的两种串行口的扩展方法为此类多串口应用领域提供了一个良好的解决方案。笔者在实际中采用基于SP2538的扩展方法,设计了采场瓦斯积聚模拟试验台的多级分布式采控系统,效果良好。电子园51单片机学习网7{9H]n } FZ+a'\Wvr

电子园51单片机学习网2b0E~"t-G!z

参考文献电子园51单片机学习网A OlwDR^


|bJ|${6\44606[1] 孙和平,杨宁,白晶  单片微机原理与接口技术  冶金工业出版社  2003.1电子园51单片机学习网)L G5WZ Z? M
[2] 胡汉才  单片机原理及其接口技术  清华大学出版社  1996.7电子园51单片机学习网QB[.A$~M m)jv-_
[3] SP2538数据手册  成都视普科技有限公司  2003.2.12

,ZCZW0_5V3\SyK44606
PARTNER CONTENT

文章评论0条评论)

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