历史上的今天
返回首页

历史上的今天

今天是:2025年01月17日(星期五)

正在发生

2018年01月17日 | 51单片机串行口扩展法

2018-01-17 来源:eefocus

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机则必须增加电平转换芯片如MAX202 、MAX232 等。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,此时母串口5的波特率为57600bps,串口0~4的波特率为9600bps。 
下面是与上述硬件电路相关的接口程序,该程序用A51汇编语言编制,程序仅说明了中断方式下对子串口0(TX0、RX0)的操作,其它子串口类似。 
TBLOCK DATA 20H 
RBLOCK DATA 30H 
LENGTH DATA 14H 
… 
TXR_REV_SEND: CLR ES 
JBC RI,RECEIVE 
CLR TI 
MOV A,@R0 
CLR P2.0 ; 写数据到"SBUF"前必须先置欲发送子串口的地址 
CLR P2.1 
CLR P2.2 
MOV SBUF,A 
DJNZ R2,NEXT 
SJMP $ 
NEXT: INC R0 
RETI 
RECEIVE: MOV A,P2 
AND A,#31H ;判断是否为子串口0 
JNZ ELSE 
MOV A,SBUF 
MOV @R1,A 
INC R1 
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的程序段: 
MOV A,#36H ; 计数器0输出方波控制字 
MOV DPTR,#0FFFFH ; 指向控制字寄存器 
MOVX @DPTR,A 
MOV DPTR,#0FFFCH ; 指向0计数器地址 
MOV A,#0DH 
MOVX @DPTR,A 
MOV A,#0 
MOVX DPTR,A 
SETB P1.0 
;操作8251的程序段: 
… 
START: MOV DPTR,#7FFFH ;8251控制、命令口地址 
MOV A,#5EH ;一个停止位,奇校验,8位数据,异步*16 
MOVX @DPTR,A ;写入方式字 
MOV A,#15H 
MOVX @DPTR,A ;命令字,启动发送和接收器 
… 
LOOP: SJMP LOOP ;等待8251中断 
8251_INT: ;现场保护 
MOV DPTR,#7FFFH 
MOV A,@DPTR 
JB ACC.0,TX_INT 
JB ACC.1,RX_INT 
INT_EXIT: ;恢复现场 
RETI 
;发送数据 
TX_INT: MOV DPTR,#7FFEH ;8251数据口地址 
MOV A,20H 
MOVX @DPTR,A 
… 
AJMP INT_EXIT 
;接收数据 
RX_INT: MOV DPTR,#7FFEH 
MOVX A,@DPTR 
MOV 30H,A 
… 
AJMP INI_EXIT 

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

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

参考文献 

[1] 孙和平,杨宁,白晶 单片微机原理与接口技术 冶金工业出版社 2003.1 
[2] 胡汉才 单片机 原理及其接口技术 清华大学出版社 1996.7 
[3] SP2538数据手册 成都视普科技有限公司 2003.2.12 


推荐阅读

史海拾趣

汇科公司的发展小趣事

随着市场的不断发展和变化,汇科公司始终将技术创新作为发展的核心驱动力。2012年,汇科第一台球磨机节电柜研发成功,并成功申请国家专利,这标志着公司在节能环保技术领域取得了重要突破。随后,公司又成功研发了柱塞泵节电柜、新一代全智能球磨机节电柜等产品,这些产品不仅提升了公司的市场竞争力,也推动了整个电子行业的发展。

GTE Microcircuits公司的发展小趣事
复合放大器因其高性能特点,在通信、音频、医疗、测试测量等多个领域有广泛应用。例如,在通信系统中用于信号放大和处理;在音频设备中用于提高音质和音量;在医疗设备中用于生物电信号的放大等。
康奈特(CNNT)公司的发展小趣事

康奈特(CNNT)公司在电子行业的光学镜片领域一直保持着领先地位。早期,公司面临着镜片透光性、耐磨性等技术瓶颈。为了突破这些限制,康奈特投入大量研发资源,成功研发出了一种新型镜片材料,大幅提升了镜片的性能。这一创新不仅为公司赢得了市场认可,也为整个行业树立了新的技术标杆。

Denyo Europa Gmbh公司的发展小趣事

Denyo Europa Gmbh公司始终认为企业是社会的一部分,应该承担起相应的社会责任。公司积极参与各种公益活动,为当地社区的发展贡献力量;同时,公司还关注弱势群体的需求,为他们提供力所能及的帮助。这种对社会责任的担当精神,使公司在社会中树立了良好的企业形象。

Axiohm公司的发展小趣事

随着环保意识的日益增强,Axiohm公司积极响应国家绿色发展的号召,将环保理念融入产品设计和生产过程中。公司投入大量资金研发环保材料和生产工艺,成功推出了一系列绿色电子产品。这些产品不仅符合环保标准,还具有良好的性能价格比,受到了消费者的广泛好评。Axiohm因此赢得了业界的赞誉和政府的支持。

AVX公司的发展小趣事

AVX公司的历史可以追溯到XXXX年,当时它由一群热衷于电子技术的工程师创立。在创立初期,AVX主要专注于电容器的研发与生产,凭借其独特的技术和卓越的品质,很快在市场中脱颖而出。随着业务的扩展,AVX逐渐在电感器、电阻器等领域也取得了显著进展,为公司的后续发展奠定了坚实的基础。

问答坊 | AI 解惑

WINCE下电话与IE共存问题!

嘿 各位:    现在我想在WINCE6.0下面做一个电话与IE共存的软件,想要做到当如果在下载数据或是浏览网页的时候有电话打进来需要挂住数据通道,电话接完后可以很快的浏览网页或是下载数据,以前我采用的方式是RAS函数库+AT指令方式,当想 ...…

查看全部问答>

关于CE下线程执行优先级的问题

{ ...... // 启动线程,开始播放声音, 并将线程的优先权设置为最高,希望它立即去执行 HANDLE m_hThread = CreateThread(NULL, 0, TOPlaySoundThread, NULL, 0, NULL); SetThreadPriority( m_hThread,THREAD_PRIORITY_TIME_CRITICAL); Sleep( ...…

查看全部问答>

请教高手printf和vprintf的问题

环境Vxworks 5.5.1 在相同的地方,如果使用printf可以正确打印,但是使用vprintf就会报如下错误:     CPU: Motorola MPC82xx ADS - HIP7    Runtime Name: VxWorks Runtime Version: 5.5.1     BSP version: 1 ...…

查看全部问答>

有关噪音传感器的问题

大师们好!     有谁能给我提供一些噪音传感器的商品介绍。加入测马路上的噪音应该用到什么样子灵敏度的噪音,有没有推荐的。     只有mic加放大器够用么?…

查看全部问答>

怎么使得CComboBox默认是上拉?

一般来说只要到屏幕底端有足够空间,就下拉. 如果没有足够空间就上拉. 那么应该存在的上拉这个功能. 我想让它自动默认的为上拉,该怎么做? 如果不行,也可以这样,让下拉菜单不要长出我的对话框的底端也可以…

查看全部问答>

LPC1114数据寄存器

最近又看了一下LPC1114的数据寄存器的内容。数据寄存器允许从被设置为输入的引脚上读取数据,往被设置输出的引脚写值。每个端口数据寄存器占用地址空间的0-0X3FFC,地址位13:2用于屏蔽。如图1:  原先一直对这个数据屏蔽作用搞不太懂,现在 ...…

查看全部问答>

求 邦华330 无线扩音器电路原理图!

邦华330改进版、 最新功能:数字收音,USB、SD读卡功能,数字显示屏,卡座功能           技术参数:   1.电源:AC220V 内置DC12V/1.2AH 蓄电池,外接VDC   2.频率范围:VHF165-265MHz   3.振 ...…

查看全部问答>

卖点多余下来的零散东西

大家好,最近整理了一下,整理出好多打样有没有使用,多余的东西。有继电器、各种芯片、可燃气体传感器等等好多种类,但是每种数量都很少,这里就不一一列举了。如果你需要,可以QQ我,告诉我你要的一些常用的东西,我尽量帮你找,一次性处理,想收 ...…

查看全部问答>

版主jishuaihu, 小小白, 江汉大学南瓜帮忙看看

https://bbs.eeworld.com.cn/thread-308442-1-1.html 此贴貌似冒的人看啊!给新人一点帮助嘛!…

查看全部问答>

电化学酒精传感器

各位朋友,那位大哥了解这个内传感器,找遍了国内做传感器的都没有做这个传感器,小弟愚昧到目前还没有这类传感器的具体型号.各位在传感器行业做了很久,应该有所了解有个项目要做个酒精检测仪器不能用常见那个半导体气敏传感器!现在头大啊!求各位帮帮 ...…

查看全部问答>