首页 | 供应信息 | 采购信息 | PDF资料 | 技术资料 | 行业资讯 | 产品展示 | 人才市场 进入会员区
   技术文章分类:单片机/DSP 嵌入式系统 测试仪表 电源技术 接口电路 存储器 传感与控制 通信网络 无线通信 模拟技术 显示与光电 EDA/PLD 汽车电子 消费电子 电子综合
   电子综合工具:PDF资料大全 电子缩略语 IC型号替换 IC厂家 电子电路图 技术参数 设计应用 解决方案
技术资料 行业资讯 PDF资料 IC价格 IC替换 缩略语 IC供应 IC采购
  您所在的位置: IC37首页 > 技术资料 > 单片机/DSP > 51单片机的串行口扩展方法
51单片机的串行口扩展方法
类别:单片机/DSP  
 
        

    

    

    摘要:在以单片机为核心的多级分布式系统中,常常需要扩展单片机的串行通信口,本文分别介绍了基于SP2538专用串行口扩展芯片及Intel8251的两种串行口扩展方法,并给出了实际的硬件电路原理及相应的通信程序段。

    关键词:串口扩展;单片机;SP2538;Intel8251

    1 引言

    在研究采场瓦斯积聚模拟试验台的过程中,笔者设计了主从式多机采控系统结构。主从式多机控制系统是实时控制系统中较为普遍的结构形式,它具有可靠性高,结构灵活等优点。当选用单串口51单片机构成这种主从式多机系统时,51单片机一方面可能要和主机Computer通信,一方面又要和下位机通信,这时就需要扩展串行通道。本文具体介绍了两种串行通道的扩展方法。

    2 串行口的扩展方法

    常用的标准51单片机内部仅含有一个可编程的全双工串行通信接口,具有UART的全部功能。该接口电路不仅能同时进行数据的发送和接收,也可作为一个同步移位寄存器使用。当以此类型单片机构成分布式多级应用系统时,器件本身的串口资源就不够用了。笔者在实际开发中,查阅了有关资料,总结出如下两种常用而有效的串行通道扩展方法。

    2.1 基于SP2538的扩展方法

    SP2538是专用低功耗串行口扩展芯片,该芯片主要是为解决当前基于UART串口通信的外围智能模块及器件较多,而单片机或DSP原有的UART串口又过少的问题而推出的。利用该器件可将现有单片机或DSP的单串口扩展至5个全双工串口。使用方法简单、高效。

    在应用SP2538扩展串行通道时,母串口波特率K1=2880*Fosc_in,单位是MHz,且Fosc_in小于20.0MHz, 在SP2538输入时钟Fosc_in =20.0MHz时母串口可自适应上位机的56000bps和57600bps两种标准波特率输入。子串口波特率K2=480*Fosc_in。

    母串口和所有子串口都是TTL电平接口,可直接匹配其他单片机或TTL数字电路,如需连接PC机则必须增加电平转换芯片如MAX202MAX232 等。SP2538具有内置的上电复位电路和可关闭的看门狗监控电路。上位机写命令字0x10可实现喂狗,写命令字0x15关闭看门狗,初次上电后看门狗处于激活状态或写命令字0x20激活看门狗监控功能。上位机可通过芯片复位指令0x35在任何时候让芯片进行指令复位,也可通过芯片睡眠指令0x55在任何时候让芯片进入微功耗睡眠模式以降低系统功耗。初次上电后芯片不会自行进入睡眠模式,但只能由上位机通过母串口任意发送一个字节数据将其唤醒,其他子串口不具备这一功能。

    图(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-p.htm" target="_blank" title="20.0MHZ货源和PDF资料">20.0MHZ,此时母串口5的波特率为57600bps,串口0~4的波特率为9600bps。

    下面是与上述硬件电路相关的接口程序,该程序用A51汇编语言编制,程序仅说明了中断方式下对子串口0(TX0、RX0)的操作,其它子串口类似。

    TBLOCK DATA20H

    RBLOCK DATA30H

    LENGTH DATA14H

    …

    TXR_REV_SEND: CLRES

    JBCRI,RECEIVE

    CLRTI

    MOVA,@R0

    CLRP2.0 ; 写数据到"SBUF"前必须先置欲发送子串口的地址

    CLRP2.1

    CLRP2.2

    MOVSBUF,A

    DJNZ R2,NEXT

    SJMP $

    NEXT: INCR0

    RETI

    RECEIVE:MOVA,P2

    ANDA,#31H;判断是否为子串口0

    JNZELSE

    MOVA,SBUF

    MOV@R1,A

    INCR1

    RETI

    

    

    

    图(1) AT89C52与SP2538的电路连接

    2.2 基于Intel8251的串行口扩展方法

    上面基于SP2538的串口扩展方法可以说是一种串行的扩展方法,这里基于Intel8251的扩展方法则是一种并行的方法。Intel8251是一种通用的同步/异步发送器(USART),它的工作方式可以通过编程设置。能够以同步或异步串行通信方式工作,能自动完成帧格式。

    Intel8251具有独立的接收/发送器。在异步方式下,用于产生8251内部时序的时钟CLK输入至少应为发送或接收时钟的4.5倍。接收/发送(RXC/TXC)时钟应为波特率的1倍、16倍或64倍(由8251的工作方式字设定)。

    图(2)是用Intel8251扩展一个串行通道的电路原理,图中,11.0592MHZ晶振经ALE6分频后于 、组合,产生1.8432MHZ的时钟频率,分别作为8251与8253的时钟输入,若设定8251通信波特率为9600bps,波特率因子为16,则需要 153.6KHZ的接收/发送时钟频率,该频率可由8253的OUT0产生。

    下面的A51程序段说明了如何设置8253使其产生153.6KHZ的方波,以及如何用8251收/发数据:

   设置8253的程序段:

    MOVA,#36H ; 计数器0输出方波控制字

    MOVDPTR,#0FFFFH; 指向控制字寄存器

    MOVX @DPTR,A

    MOVDPTR,#0FFFCH; 指向0计数器地址

    MOVA,#0DH

    MOVX @DPTR,A

    MOVA,#0

    MOVX DPTR,A

    SETB P1.0

   操作8251的程序段:

    …

    START: MOVDPTR,#7FFFH;8251控制、命令口地址

    MOVA,#5EH;一个停止位,奇校验,8位数据,异步*16

    MOVX @DPTR,A;写入方式字

    MOVA,#15H

    MOVX @DPTR,A;命令字,启动发送和接收器

    …

    LOOP: SJMP LOOP ;等待8251中断

    8251_INT: ;现场保护

    MOVDPTR,#7FFFH

    MOVA,@DPTR

    JBACC.0,TX_INT

    JBACC.1,RX_INT

    INT_EXIT: ;恢复现场

    RETI

   发送数据

    TX_INT:MOVDPTR,#7FFEH ;8251数据口地址

    MOVA,20H

    MOVX @DPTR,A

    …

    AJMP INT_EXIT

   接收数据

    RX_INT:MOVDPTR,#7FFEH

    MOVX A,@DPTR

    MOV30H,A

    …

    AJMP INI_EXIT

    

    

    

    图(2)用8251扩展串行通道的硬件电路原理

    3 结束语

    以单片机为核心的多级分布式系统的应用越来越广泛,上面讨论的两种串行口的扩展方法为此类多串口应用领域提供了一个良好的解决方案。笔者在实际中采用基于SP2538的扩展方法,设计了采场瓦斯积聚模拟试验台的多级分布式采控系统,效果良好。

    参考文献

    [1] 孙和平,杨宁,白晶 单片微机原理与接口技术 冶金工业出版社 2003.1

    [2] 胡汉才 单片机原理及其接口技术 清华大学出版社 1996.7

    [3] SP2538数据手册 成都视普科技有限公司 2003.2.12

    

    

 
我要投稿 注册会员
客服咨询热线:0755-26000950 0755-26007355
 相关技术资料
·pic16单片机应用之mp..  2008-1-9
·基于单片机的某车型CAN总..  2008-1-7
·基于ARM的FPGA加载配..  2008-1-7
·基于单片机的电热水器定时控..  2007-11-15
·一种基于单片机的汽车电子点..  2007-11-15
·基于单片机的电子导游系统设计  2007-11-8
·51单片机边沿触发中断响应..  2007-11-8
·如何选择细纱机主电机使其更..  2007-11-5
·单片机编程技巧  2007-9-14
·空压机变频改造技术资料  2007-9-3
·运用定点DSP实现MPEG..  2007-8-7
·基于TMS320C6000..  2007-8-9
·一种用于图像认证的无失真半..  2007-7-29
·TMS320F206定点D..  2007-8-9
·多DSP系统互连方案分析  2007-8-9
·C5402 DSP自举引导..  2007-8-9
·具有高可靠性的高速连续数据..  2007-8-9
·基于DSP的实时MPEG-..  2007-8-7
·带ARM核的双CPU数字信..  2007-8-9
·基于TMS320VC540..  2007-8-9
 
 热门IC
LTC1263IS8  PIP2250  CY7C4255-15AC  AD8574AR  MC68MH360FE33E  SN65LV1021DB  UPD416C-2  CY2071A  CS561  TS87C54X2-MCB  24LC65  TLC27M4CDR  LTC1098ACS8  MMSZ4679T1  A3568C  BSR56  UPA1603C  STR9012  GM5120-BD  M5M44400CJ-6  ICL7663ACSA  LTC1174HVCN8-5  EPF10K50SFC256-3  SMCJ16CA  MMSF4N01HDR2  CXA2055P  AK4518VF  M52005P  M7533H  MB8168-55  EPM3128ATC144-7N  MC10E446FN  LTC6800HMS8  HD74LS175P  ATF22V10B-15PC  BR24L01AF-WE2  TC9138AP  MSM5105  BUL146  SN74LVC161284DGGR  RF3110  TDA7370  XC62FP2502PR  LP2985AIM5-2.5  SI7842DP-T1  DS90LV032ATMTC  KM62256BLP-10  TLC7725IDR  MOC213R2  MAX1793EUE33