51单片机的串行口扩展方法.pdf_第1页
51单片机的串行口扩展方法.pdf_第2页
51单片机的串行口扩展方法.pdf_第3页
51单片机的串行口扩展方法.pdf_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

沈阳单片机开发网 帮您精确掌握电子器件的使用细节 51 单片机的串行口扩展方法 51 单片机的串行口扩展方法 摘 要 摘 要 在以单片机为核心的多级分布式系统中 常常需要扩展单片机的串行通信口 本文 分别介绍了基于SP2538专用串行口扩展芯片及Intel8251的两种串行口扩展方法 并给出了实际的硬件电路原理及相应的通信程序段 关键词 关键词 串口扩展 单片机 SP2538 Intel8251 1 引言 1 引言 在研究采场瓦斯积聚模拟试验台的过程中 笔者设计了主从式多机采控系统结构 主从 式多机控制系统是实时控制系统中较为普遍的结构形式 它具有可靠性高 结构灵活等优点 当选用单串口 51 单片机构成这种主从式多机系统时 51 单片机一方面可能要和主机 Computer 通信 一方面又要和下位机通信 这时就需要扩展串行通道 本文具体介绍了两 种串行通道的扩展方法 2 串行口的扩展方法 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 具有内置的上电复位电 路和可关闭的看门狗监控电路 上位机写命令字 0 x10 可实现喂狗 写命令字 0 x15 关闭看门 狗 初次上电后看门狗处于激活状态或写命令字 0 x20 激活看门狗监控功能 上位机可通过 芯片复位指令 0 x35 在任何时候让芯片进行指令复位 也可通过芯片睡眠指令 0 x55 在任何时 候让芯片进入微功耗睡眠模式以降低系统功耗 初次上电后芯片不会自行进入睡眠模式 但 只能由上位机通过母串口任意发送一个字节数据将其唤醒 其他子串口不具备这一功能 图 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 1 沈阳单片机开发网 帮您精确掌握电子器件的使用细节 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 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 3 沈阳单片机开发网 帮您精确掌握电子器件的使用细节 AJMP INT EXIT 接收数据 RX INT MOV DPTR 7FFEH MOVX A DPTR MOV 30H A AJMP INI EXIT 图 2 用 8251 扩展串行通道的硬件电路原理 3 结束语 3 结束语 以单片机为核心的多级分布式系统的应用越来越广泛 上面讨论的两种串行口的扩展方 法为此类多串口应用领域提供了一个良好的解决方案 笔者在实

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论