单片机串行数据传输技术在工业数据监测中的应用.doc_第1页
单片机串行数据传输技术在工业数据监测中的应用.doc_第2页
单片机串行数据传输技术在工业数据监测中的应用.doc_第3页
单片机串行数据传输技术在工业数据监测中的应用.doc_第4页
单片机串行数据传输技术在工业数据监测中的应用.doc_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

1 单片机串行数据传输技术在单片机串行数据传输技术在 工业数据监测中的应用工业数据监测中的应用 串行通信基础知识 2 1通信基础 从广义上来说 通信就是信息的传递或交换 一台计算机与另一台计算机之间的信 息交换传递 计算机与外部设备之间的信息交换等都是通信的一种 1 数据通信的方式主要有并行数据通信和串行数据通信 本设计主要研究的是串行数 据通信 通常情况下 都是由信息传送的距离远近来选择其通信方式的 短距离的数据 通信一般采用并行的方式 最常见的例子是计算机和外部设备之间的通信 如打印机 CPU 存储器模块和设备控制器之间的通信 而一般当通信距离大于 30 米的时候就要采 用串行通信了 如公用电话系统 互联网 MCS 51 系列单片机是具有串行和并行二种基 本通信方式的 2 并行通信是指数据的各个位同时传送 可以以字或字节为单位并行进行 同时在两 个设备之间传输 发送设备将这些数据位通过对应的数据线传送给接收设备 还可附加 一位数据校验位 接收设备可同时接收到这些数据 不需要做任何变换就可直接使用 并行通信的主要优点是速度快 但应用到长距离的连接时就无优点可言了 首先 在长 距离上使用多条线路要比使用一条线路昂贵 另外一个问题涉及到比特传输所需要的时 间 短距离时 多个信道上同时传输的比特几乎总是能够同时收到 但长距离时 由于 分布参数的影响 传输波形会变差 从而影响数据传输的可靠性 并行通信方式连接如 图 2 1 2 串行通信使用一对数据信号线 数据在一对数据信号线上一位一位顺序传输 每一 位数据都占据一个固定的时间长度 2 其优点是串行通信的收 发双方只需要有一条传输 信道 一对传送线 比较便宜又易于实现 而且用在长距离连接中也比并行通信更加可 靠 其缺点是每次只能传输一个比特位 所以传输速度比较慢 串行通信方式连接如图 2 2 2 2 图 2 1 并行通信方式连接图 图 2 2 串行通信方式连接图 2 2串行通信的基本通信方式 串行通信的数据是逐位传送的 发送方发送的每一位都具有因定的时间间隔 这就 要求接收方也要按照发送方同样的时间间隔来接收每一位 不仅如此 接收方还要确定 一个信息组的开始和结束 为此 串行通信对传送数据的格式作了严格的规定 不同的 串行通信方式具有不同的数据格式 1 下面简单介绍一下常用的两种基本串行通信方式 同步通信和异步通信及其数据格式 1 同步通信 所谓同步通信是指在约定的通信速率下 发送端和接收端的时钟信号频率始终保持 一致 同步 的通信 这就保证了通信双方在发送和接收数据时具有完全一致的定时关 系 1 同步通信把许多字符组成一个信息组 或称为信息帧 每帧的开始用同步字符来指 示 由于发送和接收的双方采用同一时钟 所以在传送数据的同时还要传送时钟信号 以便接收方可以用时钟信号来确定每个信息位 同步通信要求在传输线路上始终保持连续的字符位流 若计算机没有数据传输 则 线路上要用专用的 空闲 字符或同步字符填充 同步通信传送信息的位数几乎不受限制 通常一次通信传的数据有几十到几千个字 节 通信效率较高 但它要求在通信中保持精确的同步时钟 所以其发送器和接收器比 较复杂 成本也较高 一般用于传送速率要求较高的场合 用于同步通信的数据格式有许多种 下面主要介绍的是单同步字符格式和双同步字 符格式 其数据格式如下图 在数据开始传送前 用同步字符 单或双 来表示 检测 到规定的同步字符 可以是用户约定或者采用 ASC 码中规定的 SYN 代码 后 就按顺 序来传送数据 直到此段数据传送完 此过程中时钟信号也要同时传送 同步通信的优 点是可以提高传送速率 达 56kb s 或更高 但硬件比较复杂 3 图 2 3 同步通信数据格式 2 异步通信 异步通信是指通信中两个字符之间的时间间隔是不固定的一种串行通信方式 而在 一个字符内各位的时间间隔是固定的 数据是一帧一帧 包含一个字符代码或一个字节 数据 传送的 其传送一帧的数据格式如下 图 2 4 异步通信数据格式 从图中可以看出 在帧格式中 字符由起始位 start bit 数据位 data bit 奇偶校验 位 parity 和停止位 stop bit 组成 起始位表示一个字符的开始 停止位则表示一个字符的 结束 这种用起始位开始 停止位结束所构成的一串信息称为帧 frame 注意 异步通 信中的 帧 与同步通信中 帧 是不同的 异步通信中的 帧 只包含一个字符 而同步通信 中 帧 可包含几十个到上千个字符 在传送一个字符时 由一位的低电平起始位开始 起始位还被用作同步接收端的时钟信号 以保证以后的接收能正确进行 接着传送数据 位 它可以是 5 位 D0 D4 6 位 7 位或 8 位 D0 D7 在传输时 按低位在前 高 位在后的顺序传送 奇偶校验位用于检验数据的传送是否正确 也可以没有 可由程序 来指定 最后传送的是高电平的停止位 停止位可以是 1 位 1 5 位或 2 位 停止位结束 到下一个字符的起始位之间的空闲位要由 2 位 逻辑 1 来填充 只要不发送下一个字符 线路上就始终为空闲位 存在空闲位正是异步通信的特征之一 从以上叙述可以看出 在异步通信中 每接收一个字符 接收方都要重新与发送方 同步一次 所以接收端的时钟信号并不需要严格地与发送方同步 只要它们在一个字符 的传输时间范围内能保持同步即可 这意味着时钟信号漂移的要求要比同步信号低得多 硬件成本也要低的多 但是异步传送一个字符 要增加大约 20 的附加信息位 所以传 送效率比较低 异步通信方式简单可靠 也容易实现 故广泛地应用于各种微型机系统 中 2 3串行通信的传送方式 串行通信的传送方式有三种 一种是单工 或单向 配置 信号只能向一个方向传 4 输 任何时候都不能改变信号的传送方向 另一种是半双工 或半双向 配置 允许数 据向两个方向中的任一方向传送 但必须是交替进行 一个时间只能向一个方向传送 第三种传输方式是全双工 全双向 配置 允许同时双向传送数据 因此 全双工配置 是一对单向配置 它要求两段的通信设备都具有完整和独立的发送和接收能力 其结构 图如下所示 图 2 5 串行通信传送方向图 2 4波特率 在信息传输通道中 携带数据信息的信号单元叫码元 每秒钟通过信道传输的码元 数称为码元传输速率 简称波特率 也就是数据的传送速率 它表示的意思是每秒钟传 送二进制代码的位数 单位是 b s 例如数据的传送速率是 150b s 每个字符包括 11 个代 码位 1 个起始位 1 个终止位 1 个奇偶检验位 8 个数据位 此时的波特率就为 11 150b s 1650b s 每一位代码的传送时间是波特率的倒数 如上面的就是 td 1 1650 0 606ms 波特 率是衡量传输通道频宽的指标 但它和数据的速率并不一样 因为数据的速率是单单数 据位传送的速率 如上的就为 8 150 1200b s 异步通信的传送速率在 50 到 19200 波 特之间 常用于计算机到 CRT 终端 以及双机 多机之间的通信等 2 2 5串行通信协议 数据通信是机器之间的通信 通信系统中规定了一个统一的通信标准 即如何通信 何时通信 都必须在通信的实体之间达成大家通用的协定 这些协定就被称为通信协议 也就是说所谓通信协议是对数据的传送方式的规定 包括数据格式定义数据位定义等 而串行通信的包括同步通信协议和异步通信协议两种 因为本设计的讨论的主要是异步 串行通信 所以在此只详细给出异步串行通信的协议 5 1 起始位 在发送设备要发送数据时 首先发出的是一个逻辑 0 信号 它就是整个传送过程的 起始位 它在通信线路上传送 当接收设备接到这个信号后 就开始接收数据位 这个 位的作用就是使设备同步 通信双方必须在传送数据位前协调同步 2 数据位 设备在接收到起始位后 接着收到的就是数据位 MCS 51 系列单片机串行口一般采 用的就是 8 位或 9 位的数据传送 这些数据在移位寄存器中构成传送数据字符 传送过 程都是从低位开始发送 到了接收设备中就依次被转换成并行数据 3 奇偶校验位 紧跟在数据位后面的是奇偶校验位 其作用是用于有限差错检测 双方应在通信前 应约好有一致的校验方式 选择奇校验 组成数据位和奇偶位的逻辑 1 的个数就必须是 奇数 而选择偶校验 逻辑 1 的个数必须是偶数 4 停止位约定 停止位其实是一个字符数据的结束标志 典型的值为 1 1 5 和 2 位 由于数据是在 传输线上定时的 并且每一个设备有其自己的时钟 很可能在通信中两台设备间出现了 小小的不同步 因此停止位不仅仅是表示传输的结束 并且提供计算机校正时钟同步的 机会 适用于停止位的位数越多 不同时钟同步的容忍程度越大 但是数据传输率同时 也越慢 一般情况 设备在接收到停止位之后 直到下一个字符数据的起始位到来之前 通信线路上都处于逻辑 1 状态 5 波特率设置 通信线路上所有的位信号都保持一致的信号持续时间 每一位的宽度都由数据传送 速率确定 也就是我们说的波特率 假如数据以每秒 250 个二进制位在通信线路上传送 那么它的波特率就是 250b s 3MCS 51 系列单片机简介 包括 AT89C51 3 1MCS 51 系列单片机简介 MCS 51 系列单片机是美国 INTE 公司于 1980 年推出的产品 与 MCS 48 系列单片机 相比 它的结构更先进 功能更强 在原来的基础上增加了更多的电路单元和指令 指 令数达 111 条 MCS 51 系列单片机可以算是相当成功的产品 一直到现在 MCS 51 系 列或其兼容的单片机仍是应用的主流产品 各高校及专业学校的培训教材仍与 MCS 51 单 片机作为代表进行理论基础学习 3 本设计也以这一代表性的机型进行系统的设计 MCS 51 系列单片机主要包括 8031 8051 和 8751 等通用产品 其主要功能如下 6 图 3 1 MCS 51 系列单片机 8 位 CPU 4kbytes 程序存储器 ROM 128bytes 的数据存储器 RAM 32 条 I O 口线 111 条指令 大部分为单字节指令 21 个专用寄存器 2 个可编程定时 计数器 5 个中断源 2 个优先级 一个全双工串行通信口 外部数据存储器寻址空间为 64kB 外部程序存储器寻址空间为 64kB 逻辑操作位寻址功能 双列直插 40PinDIP 封装 单一 5V 电源供电 4 MCS 51 系列单片机以其典型的结构和完善的总线专用寄存器的集中管理 众多的逻 辑位操作功能及面向控制的丰富的指令系统 堪称为一代 名机 为以后的其它单片机的 发展奠定了基础 正因为其优越的性能和完善的结构 导致后来的许多厂商多沿用或参 考了其体系结构 有许多世界大的电气商丰富和发展了 MCS 51 系列单片机 象 PHILIPS Dallas ATMEL 等著名的半导体公司都推出了兼容 MCS 51 系列的单片机产品 下表是 MCS 51 系列单片机的主要分类及功能特性 表 3 1 MCS 51 系列单片机的主要分类及功能特性 系列典型芯 片 I O 口定时 计数器中断 源 串行通 信口 片内 RAM片内 ROM说 明 80C31 4x8 位2x16 位 51 128 字节无 80C51 4x8 位2x16 位 51 128 字节4kB 掩膜 ROM 87C51 4x8 位2x16 位 51 128 字节 4kBEPROM 51 系 列 89C51 4x8 位2x16 位 51 128 字节 4kBEEPROM 80C32 4x8 位2x16 位 61 256 字节无 52 系 列 80C51 4x8 位2x16 位 61 256 字节8kB 掩膜 ROM 7 87C52 4x8 位2x16 位 61 256 字节 4kBEPROM 89C52 4x8 位2x16 位 61 256 字节 4kBEEPROM MCS 51 系列单片机具有比较大的寻址空间 地址线宽达 16 条 即外部数据存储器 和程序存储器的寻址范围达 216 64kB 这作为单片机控制来说已是比较大的 这同时具 备对 I O 口的访问能力 由于 MCS 51 系列单片机集成了几乎完善的 8 位中央处理单元 处理功能强 中央处 理单元中集成了方便灵活的专用寄存器 硬件的加 减 乘 除法器和布尔处理机及各 种逻辑运算和指令 这给应用提供了极大的便利 5 它把微型计算机的主要部件都集成在一块芯片上 使得数据传送距离大大缩短 可 靠性更高 运行速度更块 由于属于芯片化的微型计算机 各功能部件在芯片中的布局 和结构达最优化 抗干扰能力加强 工作亦相对稳定 因此 在工业测控系统中 使用 单片机是最理想的选择 下图是 MCS 51 系列单片机的内部结构示意图 图 3 2 MCS 51 结构框图 ATMEL 公司推出的 AT89Cxx 系列兼容 MCS 51 系列单片机的单片机 完美地将 Flash 非易失闪存技术 EEPROM 与 80C51 内核结合起来 仍采用 C51 的总体结构和指令 系统 Flash 的可反复擦写程序存储器能有效地降低开发费用 并能使单片机作多次重复 使用 下面就详尽介绍本设计用的 AT89C51 单片机 8 3 2AT89C51 简介 AT89C51 是一种带 4K 字节闪烁可编程可擦除只读存储器 FPEROM Falsh Programmable and Erasable Read Only Memory 的低电压 高性能 CMOS8 位单片机 该 器件采用 ATMEL 高密度非易失存储器制造技术制造 与工业标准的 MCS 51 指令集和输 出管脚相兼容 由于将多功能 8 位 CPU 和闪烁存储器组合在单个芯片中 ATMEL 的 AT89C51 是一种高效微控制器 为很多嵌入式控制系统提供了一种灵活性高且价廉的方 案 6 下图是其引脚图 其结构框图与上面介绍的 MCS 51 系列的单片机一样 图 3 2 AT89C51 芯片引脚图 3 2 1 AT89C51 主要特性 与 MCS 51 兼容 4K 字节可编程 FLASH 存储器 寿命 1000 次写 擦循环 全静态工作 0Hz 24KHz 三级程序存储器保密锁定 128 8 位内部 RAM 32 条可编程 I O 线 两个 16 位定时器 计数器 6 个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路 6 9 3 2 2 管脚说明及应用 1 电源接地引脚 Vcc 供电电压 5V GND 接地 2 I O 引脚 P0 口 P0 口为一个 8 位漏级开路双向 I O 口 每脚可驱动 8 个 TTL 逻辑门电路 当 P1 口的管脚第一次写 1 时 被定义为高阻输入 P0 在访问外部程序数据存储器时 它可以分时转换地址和数据总线复用 在本设计的 Flash 编程时 P0 口作为原码输入口 当 Flash 进行校验时 P0 输出原码 此时 P0 外部电阻必须被拉高 P1 口 P1 口是一个内部带上拉电阻的 8 位双向 I O 口 P1 口缓冲器能接收输出 4 个 TTL 门电流 P1 口管脚写入 1 后 被内部上拉电阻拉高为高电平 可用作输入 在 本设计的 Flash 编程和校验时 P1 口作为低八位地址接收 P2 口 P2 口为一个带内部上拉电阻的 8 位准双向 I O 口 P2 的输出缓冲级可驱动 4 个 TTL 门电路 当 P2 口被写 1 时 其管脚被内部上拉电阻拉高 并作为输入口 这时 P2 口的管脚被外部信号拉低 并输出一个电流 这就是由于内部上拉电阻的缘故 P2 口 当用于外部程序存储器或 16 位地址外部数据存储器进行存取时 P2 口输出地址的高八位 P2 口在本设计的 Flash 编程和校验时接收高八位地址信号和控制信号 P3 口 P3 口管脚是一组带有内部上拉电阻的 8 位准双向 I O 口 可接收输出 4 个 TTL 门电路 当 P3 口写入 1 后 它们被内部上拉电阻拉高为高电平 并用作输入 作 为输入端时 由于外部下拉为低电平 P3 口将用上拉电阻输出电流 ILL P3 口也可作为 AT89C51 的一些特殊功能口 其第二功能如下所示 P3 0 RXD 串行输入口 P3 1 TXD 串行输出口 P3 2 外部中断 0 0INT P3 3 外部中断 1 1INT P3 4 T0 定时器 0 外部输入 P3 5 T1 定时器 1 外部输入 P3 6 外部数据存储器写选通 WR P3 7 外部数据存储器读选通 RD P3 口同时为闪烁编程和编程校验接收一些控制信号 3 控制线引脚 RST 复位输入 当振荡器复位器件时 要保持 RST 脚两个机器周期的高电平时间 ALE 当访问外部存储器时 地址锁存允许的输出电平用于锁存地址的低 8PROG 位字节 在不访问外部存储器时 ALE 端以不变的频率周期输出正脉冲信号 此频率为 振荡器频率的 1 6 因此它可用作对外部输出的脉冲或用于定时目的 要注意的是 每当 10 访问外部数据存储器时 将跳过一个 ALE 脉冲 如想禁止 ALE 的输出可在 SFR 中的 8EH 单元上 D0 位置位 此时 ALE 只有在执行 MOVX 和 MOVC 指令时才起作用 另 外 该引脚被略微拉高 如果单片机在执行外部程序时 应设置 ALE 位无效 而在本设 计的 FLASH 编程期间 此引脚 用于输入编程脉冲 PROG 外部程序存储器的选通信号 在由外部程序存储器取指期间 每个机器周期PSEN 两次有效 但在访问外部数据存储器时 这两次有效的信号将无效 PSENPSEN Vpp 当位保持低电平时 则在此期间只能访问外部程序存储器 0000H EAEA FFFFH 不管是否有内部程序存储器 注意加密方式 1 时 将内部锁定为 RESET EA 当端保持高电平时 将执行内部程序存储器的指令 在本设计的 FLASH 编程期间 EA 此引脚也用于施加 12V 编程电源 Vpp 4 时钟引脚 XTAL1 反向振荡放大器的输入及内部时钟发生器的输入端 XTAL2 振荡器反相放大器的输出端 3 2 3 AT89C51 振荡器特性 AT89C51 中有一个用于构成内部振荡器高增益反相放大器 引脚 XTAL1 和 XTAL2 分别为反向放大器的输入端和输出端 这个放大器与作为反馈元件的片外石英晶体或陶 瓷谐振器一起构成自振荡器 这就是片内时钟方式 本设计就是采用这种连接方式 具 体的连接电路将在后面的分析中阐述 另一种就是外部时钟方式 其连接图如 3 3 所示 XTAL2 引脚不接 由于输入至内 部时钟信号要通过一个二分频触发器 因此对外部时钟信号的脉宽无任何要求 但必须 保证脉冲的高低电平要求的宽度 图 3 3 外连接震荡器图 3 2 4 AT89C51 芯片编程擦除 AT89C51 内部有 4K 字节的 FLASH PEROM 这个存储阵列出厂时就处于擦除状态 11 即存储单元内容均为 FFH 用户可以随时进行编程操作 可接高电压 12V 和低电压 Vcc 编程方式 低电压方式适合用户在线编程系统 而高电压编程模式可与通用 EPROM 编程器兼容 5 而在编程之前必须使用擦除的方式将芯片的内容清除 整个 PEROM 阵列和三个加密位的电擦除可通过正确的控制信号组合 并保持 ALE 管脚处于低电平 10ms 来完成 在芯片擦操作中 代码阵列全被写 1 且在任何非空存储 字节被重复编程以前 该操作必须被执行 本次设计中由于要多次对程序的测试 所以就要对本芯片的多次编程和程序的擦除 4AT89C51 单片机串行口 4 1串行口的结构 串行通信是 CPU 与外界进行信息交换的一种方式 AT89C51 单片机内部有一个全双 工的串行接口 AT89C51 单片机只能处理 8 位的并行数据 所以在进行串行数据的发送 时 要把并行数据转换为串行数据 而在接收数据时 只有把接收的串行数据转换成并 行数据 单片机才能进行处理 7 能实现这种转换的设备 称为通用异步接收发送器 Universal Asynchronous Receiver Transmitter 这种设备已集成到单片机内部 称为串行接口电路 8 下面就简 单介绍下串行口的主要部件 发送器 并 串数据格式转换 添加标识位和校验位 一帧发送结束 设置结束标 志 申请中断 接收器 串 并数据格式转换 检查错误 去掉标识位 保存有效数据 设置接收 结束标志 申请中断 控制器 接收编程命令和控制参数 设置工作方式 同步 异步 字符格式 波特率 校验方式 数据位与同步时钟比例等 下图是串行口结构图 12 图 4 1 串行口结构图 1 数据缓冲器 SBUF 串行口中有两个物理空间上各自相互独立的发送缓冲器和接收缓冲器 发送 SBUF 和接收 SBUF 共用一个地址 99H 发送缓冲器只写不读 而接受缓冲器只读不写 接收缓 冲区是双缓冲的 9 发送 SBUF 存放待发送的 8 位数据 写入 SBUF 将同时启动发送 发送指令 MOV SBUF A 接收 SBUF 存放已接收成功的 8 位数据 供 CPU 读取 接收数据指令 MOV A SBUF 2 串行口控制 状态寄存器 SCON 98H 如下图所示 其字节地址是 98H 位地址 98H 9FH 包括方式选择位 接收发送控 制位及状态标志位 SCON 9FH 9EH 9DH 9CH 9BH 9AH 99H 98H SM0SM1SM2RENTB8RB8TIRI 图 4 2 SCON 的各位定义 SM0 SM1 选择串行口 4 种工作方式 其功能如表 4 1 SM2 多机通信控制位 主要用于方式 2 和方式 3 当接收机的 SM2 1 时可以利用 收到的 RB8 来控制是否激活 RI RB8 0 时不激活 RI 收到的信息丢弃 RB8 1 时收 到的数据进入 SBUF 并激活 RI 进而在中断服务中将数据从 SBUF 读走 当 SM2 0 时 不论收到的 RB8 为 0 和 1 均可以使收到的数据进入 SBUF 并激活 RI 即此时 RB8 不具有控制 RI 激活的功能 通过控制 SM2 可以实现多机通信 在方式 0 时 SM2 必须是 0 在方式 1 时 若 SM2 1 则只有接收到有效停止位时 RI 才置 1 REN 允许接收控制位 REN 1 允许接收 REN 0 禁止接收 TB8 发送的第 9 位数据位 可用作校验位和地址 数据标识位 由软件置位或复位 RB8 接收的第 9 位数据位或停止位 TI 发送中断标志 发送一帧结束 TI 1 必须软件清零 13 RI 接收中断标志 接收一帧结束 RI 1 必须软件清零 表 4 1 串行口工作方式 SM0 SM1 工作方式功能波特率 0 0 方式 08 位同步移位寄存器 fosc 12 0 1 方式 110 位 UART 8 位数据 可变 1 0 方式 211 位 UART 9 位数据 fosc 64 或 fosc 32 1 1 方式 311 位 UART 9 位数据 可变 3 特殊寄存器 PCON PCON 主要是为 CHMOS 型单片机的电源控制而设置的专用寄存器 不可以位寻址 字节地址为 87H 在 HMOS 的 8051 单片机中 PCON 除了最高位以外 其它位都是虚设 的 PCON 87H 图 4 3 PCON 各位定义 SMOD PCON 7 波特率选择位 在串行口方式 1 方式 2 方式 3 时 波特率与 SMOD 有关 当 SMOD 1 时 波特率提高一倍 复位时 SMOD 0 4 2AT89C51 串行口的工作方式 AT89C51 的串行口有 4 种工作方式 通过 SCON 中的 SM1 SM0 位来决定 下面就 详尽介绍这四种方式的相关内容 4 2 1 方式 0 在方式 0 下 串行口作同步移位寄存器用 其波特率固定为 fosc 12 串行数据从 RxD P3 0 端输入或输出 同步移位脉冲由 TxD P3 1 送出 这种方式常用于扩展 I O 口 1 发送 当一个数据写入串行口发送缓冲器 SBUF 时 串行口将 8 位数据以 fosc 12 的波特率 从 RxD 引脚输出 低位在前 发送完置中断标志 TI 为 1 请求中断 在再次发送数据 之前 必须由软件清 TI 为 0 具体接线图如图 4 4 所示 其中 74LS164 为串入并出移位 寄存器 图 4 4 方式 0 用于扩展 I O 口输出 SMOD 14 图 4 5 方式 0 用于扩展 I O 口输入 2 接收 在满足 REN 1 和 RI 0 的条件下 串行口即开始从 RxD 端以 fosc 12 的波特率输入数 据 低位在前 当接收完 8 位数据后 置中断标志 RI 为 1 请求中断 在再次接收数据 之前 必须由软件清 RI 为 0 具体接线图如图 4 5 所示 其中 74LS165 为并入串出移 位寄存器 串行控制寄存器 SCON 中的 TB8 和 RB8 在方式 0 中未用 值得注意的是 每当发送 或接收完 8 位数据后 硬件会自动置 TI 或 RI 为 1 CPU 响应 TI 或 RI 中断后 必须由用 户用软件清 0 方式 0 时 SM2 必须为 0 下图是方式 0 的时序图 发送时序 写入 SBUF RXD输出 TXD TI D0D1D2D3D4D5D6D7 写REN 1 RI 0 RXD输入 RI 接收时序 a b 图 4 6 方式 0 时序 4 2 2 方式 1 如果双方都是工作在方式 1 下 此时 串行口为波特率可调的 10 位通用异步接口 UART 发送或接收一帧信息 包括 1 位起始位 0 8 位数据位和 1 位停止位 1 其帧格式 如下图所示 15 图 4 7 方式 1 帧格式 1 发送 发送时 数据从 TxD 端输出 当数据写入发送缓冲器 SBUF 后 启动发送器发送 当发送完一帧数据后 置中断标志 TI 为 1 方式 1 所传送的波特率取决于定时器 1 的溢 出率和 PCON 中的 SMOD 位 2 接收 接收时 由 REN 置 1 允许接收 串行口采样 RxD 当采样由 1 到 0 跳变时 确认 是起始位 0 开始接收一帧数据 当 RI 0 且停止位为 1 或 SM2 0 时 停止位进入 RB8 位 同时置中断标志 RI 否则信息将丢失 所以 方式 1 接收时 应先用软件清除 RI 或 SM2 标志 使其为 0 其时序图如下 写入SBUF 采样 a 发送时序图 TXD数据 输出 TI D0D1D2D3D4D5D6 D7停止位 起始位 RXD 输入数据 b 接收时序图 D0D1D2D3D4D5D6 停止位 起始位 RI 检测 负跳变 D7 图 4 8 方式 1 时序图 16 4 2 3 方式 2 和方式 3 方式 2 下 串行口为 11 位 UART 传送波特率与 SMOD 有关 发送或接收一帧数据 包括 1 位起始位 0 8 位数据位 1 位可编程位 用于奇偶校验 和 1 位停止位 1 其帧格式 如下图所示 图 4 9 方式 2 和方式 3 帧格式 1 发送 发送时 先根据通信协议由软件设置 TB8 然后用指令将要发送的数据写入 SBUF 启动发送器 写 SBUF 的指令 除了将 8 位数据送入 SBUF 外 同时还将 TB8 装入发送 移位寄存器的第 9 位 并通知发送控制器进行一次发送 一帧信息即从 TxD 发送 在送 完一帧信息后 TI 被自动置 1 在发送下一帧信息之前 TI 必须由中断服务程序或查询 程序清 0 2 接收 当 REN 1 时 允许串行口接收数据 数据由 RxD 端输入 接收 11 位的信息 当接 收器采样到 RXD 端的负跳变 并判断起始位有效后 开始接收一帧信息 当接收器接收 到第 9 位数据后 若同时满足以下两个条件 RI 0 和 SM2 0 或接收到的第 9 位数据为 1 则接收数据有效 8 位数据送入 SBUF 第 9 位送入 RB8 并置 RI 1 若不满足上述 两个条件 则信息丢失 发 送 时 序 TXD输出 TI RXD输入 接 收 时 序 RI D0D1D2D3D4D5D6TB8停止位 起始位 D7 D0D1D2D3D4D5D6RB8 停止位 起始位 D7 检测负跳 变 写入 SBUF 17 图 4 10 方式 2 和方式 3 时序 方式 3 为波特率可变的 11 位 UART 通信方式 除了波特率以外 方式 3 和方式 2 完 全相同 4 3AT89C51 串行口的波特率 在串行通信中 收发双方对传送的数据速率 即波特率要有一定的约定 通过论述 我们已经知道 AT89C51 单片机的串行口通过编程可以有 4 种工作方式 其中 方式 0 和方式 2 的波特率是固定的 方式 1 和方式 3 的波特率可变 由定时器 1 的溢出率决定 9 下面分别加以分析 1 方式 0 和方式 2 在方式 0 中 波特率为时钟频率的 1 12 即 fosc 12 固定不变 在方式 2 中 波特率取决于 PCON 中的 SMOD 值 当 SMOD 0 时 波特率为 fosc 64 当 SMOD 1 时 波特率为 fosc 32 即波特率 osc SMOD f 64 2 2 方式 1 和方式 3 在方式 1 和方式 3 下 波特率由定时器 1 的溢出率和 SMOD 共同决定 即 波特率 T1 溢出率 32 2SMOD 其中 定时器 1 的溢出率取决于单片机定时器 1 的计数速率和定时器的预置值 计 数速率与 TMOD 寄存器中的 C 位有关 当 C 0 时 T1 被选择为定时器方式 计数TT 速率为 fosc 12 当 C 1 时 T1 被选择为计数器方式 计数速率为外部输入时钟频率 T 实际上 当定时器 1 做波特率发生器使用时 通常是工作在模式 2 本次设计用到的 就是这种模式 即自动重装载的 8 位定时器 此时 TL1 作计数用 自动重装载的值在 TH1 内 设计数的预置值 初始值 为 X 那么每过 256 X 个机器周期 定时器溢出一 次 为了避免因溢出而产生不必要的中断 此时应禁止 T1 中断 溢出周期为 256 12 X fosc 溢出率为溢出周期的倒数 所以当串行口工作在方式 1 和方式 3 时 18 波特率 256 1232 2 X fosc SMOD 下表是常用波特率和各参数关系 本设计用的波特率是 9 6K 对应参数如下表 表 4 2 定时器 1 产生的常用波特率 定时器 T1 波特率 foscSMOD C T 模式初始值 方式 0 1MHz 方式 2 375K 方式 1 3 62 5K 19 2K 9 6K 4 8K 2 4K 1 2K 137 5K 110 110 12 MHz 12 MHz 12 MHz 11 059MHz 11 059MHz 11 059MHz 11 059MHz 11 059MHz 11 986MHz 6MHz 12 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 2 2 2 2 2 2 1 FFH FDH FDH FAH F4H E8H 1DH 72H FEEBH 5串行通信总线标准 接口技术 总线标准是指国际工业界正式公布或推荐的把各种不同的模块组成微机系统时必须 遵守的规范 具体来讲 它是指芯片之间 插件板之间及微机系统之间 通过总线进行 连接和传输信息时 应遵守的一些协议和规范 接口标准是指外设接口的规范和定义 它涉及外设接口的信号线定义 传输速率 传输方向 拓朴结构 电气和机械特性等方面 而所谓的标准接口 就是明确定义几条信号线 使接口电路标准化 通用化 借用 串行通信标准接口 不同的数据通信设备可以很容易实现它们之间的串行通信连接 1 10 下面详尽介绍的是串行通信的标准接口 采用标准接口后 能方便地将各种单片机 计算机 外设 其他仪器有机地连接起 来 进行串行通信 其中 RS 232C 是在异步串行通信中应用最广泛的 但只适用于短距 离或带 MODEM 的场合 其他的还有 RS 422 RS 423 RS 485 等 11 为了保证通信时 的高可靠性 在选择接口标准时 必须注意 1 通信速度和通信距离 一般的标准串行接口的电气特性 都有满足可靠传输时 的最大通信速度和传送距离指标 但一般情况 这两个指标间存在相关性 适当地缩减 通信距离 就可以提高通信速度 反之亦然 而在本设计中用到的都是距离相对较短的 串行通信 所以其通信速度也会相对快些 2 抗干扰能力 一般的标准接口 在其使用范围内都有一定的抗干扰能力 用来 保证信号的可靠传输 如若在一些通信环境恶劣的工业监控系统中 在选择的时候就要 充分注意其抗干扰能力 并采取相关措施 而在高噪声污染环境中 使用光纤介质可以 减少噪声干扰提高通信的安全性 12 下面就详尽介绍 RS 232C 和 RS 485 19 5 1RS 232C 接口 5 1 1RS 232C 基本知识 由美国电子工业协会 EIA 1969 年推荐使用的 RS 232C 是所有串行通信总线接口 中最常用的 RS 232C 的全名是 数据终端设备 DTE 和数据通讯设备 DCE 之间串行二进制 数据交换接口技术标准 显示终端 外设 计算机等都属于 DTE 而 MODEM 则属于 DCE 8 RS 232C 标准 协议 的全称是 EIA RS 232C 标准 其中 EIA Electronic Industry Association 代表美国电子工业协会 RS recommeded standard 代表推荐标准 232 是标识号 C 代表 RS232 的最新一次修改 1969 在这之前还有 RS232B RS232A 它规定连接电缆和机械 电气特性 信号功能及传送过程 12 例如 目前在 IBM PC 机上的 COM1 COM2 接口 就是 RS 232C 接口 下面的是 RS 232C 的主要引脚定义和功能表 表 5 1 RS 232C 的引脚定义和功能表 引脚序号信号名称符号流向功能 1 保护地 接设备外壳 安全地线 2 发送数据 TXDDTE DCE DTE 发送串行数据 Transmit Data 3 接收数据 RXDDTE DCE DTE 接收串行数据 Receive Data 4 请求发送 RTSDTE DCE DTE 请求 DCE 将线路切换到发送方式 Require to Send 5 允许发送 CTSDTE DCE DCE 告诉 DTE 线路已接通可以发送数据 Clear to Send 6 数据设备准备 好 DSRDTE DCE DCE 准备好 Data Set Ready 7 信号地 信号公共地 Ground 8 载波检测 DCDDTE DCE DCE 接收到远程载波 Data Carry Detected 20 数据终端准备 好 DTRDTE DCE DTE 准备好 Data Terminal Ready 22 振铃指示 RIDTE DCE 表示 DCE 与线路接通 出现振铃 5 1 2RS 232C 的电气特性 RS 232C 总线标准设有 25 条信号线 包括一个主通道和一个辅助通道 在多数情况 下主要使用主通道 对于一般双工通信 仅需几条信号线就可实现 如一条发送线 一 条接收线及一条地线 RS 232C 标准规定的数据传输速率为每秒 50 75 100 150 300 600 1200 2400 4800 9600 19200 波特 RS 232C 标准规定 驱动器允许有 2500pF 的电容负载 通信距离将受此电容限制 例如 采用 150pF m 的 通信电缆时 最大通信距离为 15m 若每米电缆的电容量减小 通信距离可以增加 传 输距离短的另一原因是 RS 232C 属单端信号传送 存在共地噪声和不能抑制共模干扰等 问题 因此一般用于 20m 以内的通信 2 下面是其的电气特性表 20 表 5 2 RS 232C 电气特性表 驱动器输出电平 3k 7k 逻辑 1 5V 1 逻辑 0 5V 15V 不带负载时的驱动器输出电平 25V 25V 驱动器时的输出阻抗 300 输出短路电流 0 5A 驱动器转换速率 30V s 接收器输入阻抗 3k 7k 接收器输入电压的允许范围 25V 25V 输入开路时接收器的输出 逻辑 1 输入经 300 接地时接收器的输出 逻辑 1 3V 输入时接收器的输出 逻辑 0 3V 输入时接收器的输出 逻辑 1 最大负载电容 2500pF RS 232C 的逻辑电平是对称的 与 TTL MOS 的逻辑电平完全不同 因此它们之间 的连接必须通过电平转换 实现这种变换的方法可用分立元件 也可用集成电路芯片 本设计用的是集成芯片 MAX 232 5 1 3RS 232C 的机械特性 1 DB 25 连接器 图 5 1 DB 25 连接器 PC 和 XT 机采用 DB 25 型连接器 DB 25 连接器定义了 25 根信号线 分为 4 组 异步通信的 9 个电压信号 含信号地 SG 2 3 4 5 6 7 8 20 22 20mA 电流环信号 9 个 12 13 14 15 16 17 19 23 24 空 6 个 9 10 11 18 21 25 保护地 PE 1 个 作为设备接地端 1 脚 10 2 DB 9 连接器 本设计用 21 图 5 2 DB 9 连接器 由于 DB 25 引脚太多 应用复杂 而对于本次设计涉及到的串行通信只需用到其中 的少数引脚 所以就用简化版的 DB 25 即 DB 9 现在的大多数的串行通信接口都是比 较多的用 DB 9 连接器 作为提供多功能 I O 卡或主板上 COM1 和 COM2 两个串行接口 的连接器 它只提供异步通信的 9 个信号 DB 25 型连接器的引脚分配与 DB 9 型引脚信 号完全不同 下表是引脚信号表 表 5 3 DB 9 连接器引脚信号表 引脚编号信号名功能 I O 1DCD 载波检测 In 2RXD 接收数据 In 3TXD 发送数据 Out 4DTR 数据终端准备发送 Out 5SG 信号地线 6DSR 数据准备完成 In 7RTS 发送请求 Out 8CTS 发送清除 In 9RI 振铃指示 In 电缆长度 在通信速率低于 20kb s 时 RS 232C 所直接连接的最大物理距离为 15m 50 英尺 最大直接传输距离说明 RS 232C 标准规定 若不使用 MODEM 在码元畸变小于 4 的 情况下 DTE 和 DCE 之间最大传输距离为 15m 50 英尺 可见这个最大的距离是在码 元畸变小于 4 的前提下给出的 为了保证码元畸变小于 4 的要求 接口标准在电气特 性中规定 驱动器的负载电容应小于 2500pF 9 5 1 4RS 232C 近距离通信 用 RS 232C 进行连接系统时有近程和远程通信方式之分 一般情况将传输距离小于 15m 的通信称为近程通信 可用 RS 232C 电缆直接相连 而传输距离大于 15m 的远程通 信则要采用 MODEM 由于本设计主要涉及的是短距离 不超过 15m 的通信 在此只 研究短距离通信 当两台 PC 机或 PC 机与外设进行串行通信时 如果是近距离的一般就省去了 DCE 而 将两个 DTE 直接连接起来的零 MODEM 连接 这种情况下 只需使用少数几根信号线 最简单的情况 在通信中根本不需要 RS 232C 的控制联络信号 只需三根线 发送线 接收线 信号地线 便可实现全双工异步串行通信 下面分别介绍两种 标准和简单 的连接方式 1 零 Modem 标准连接方式 如果想在直接连接时 而又考虑到 RS 232C 的联络控制信号 则采用零 MODEM 方 式的标准连接方法 零 Modem 的标准连线 7 线制 如下图所示 22 图 5 3 RS 232C 近距离通信标准连线图 从上两图中可以看出 RS 232C 接口标准定义的所有信号线都用到了 并且是按照 DTE 和 DCE 之间信息交换协议的要求进行连接的 只不过是把 DTE 自己发出的信号线 送过来 当作对方 DCE 发来的信号 因此 又把这种连接称为双叉环回接口 双方的握手信号关系如下 当甲方的 DTE 准备好 发出 DTR 信号 该信号直接联至乙方的 RI 振铃信号 和 DSR 数传机准备好 即只要甲方准备好 乙方立即产生呼叫 RI 有效 并同时准 备好 DSR 尽管此时乙方并不存在 DCE 数传机 甲方的 RTS 和 CTS 相连 并与乙方的 DCD 互连 即 一旦甲方请求发送 RTS 便立即得到允许 CTS 同时 使乙方的 DCD 有效 即检测到载波信号 甲方的 TXD 与乙方的 RXD 相连 一发一收 2 零 Modem 的最简连线 3 线制 图 5 4 RS 232C 近距离通信最简连线图 上图是零 MODEM 方式的最简单连接 即三线连接 图中的 2 号线与 3 号线交叉连 接是因为在直连方式时 把通信双方都当作数据终端设备看待 双方都可发也可收 在 23 这种方式下 通信双方的任何一方 只要请求发送 RTS 有效和数据终端准备好 DTR 有效 就能开始发送和接收 这是本设计用的连接方式 由于进行短距离的串行数据通信调试研究所用到的方式 比较简便 这里考虑选用的是零 MODEM 最简单连线方式 5 2RS 485 标准总线接口 RS 232C 是一个比较早修订的标准 随着技术和社会的发展 在许多工业控制 工业 监测场合对串行通信的接口要求更高了 而考虑到传输距离 传输速度 抗干扰能力等 这里还重点介绍了另一种接口标准 RS 485 它是 RS 422A 的变型 所以在介绍 RS 485 之前 先简单介绍下 RS 422A 5 2 1RS 422A 接口 RS 422A 标准是 EIA 公布的 平衡电压数字接口电路的电气特性 标准 它改善了 RS 232C 的电气特性 也考虑了与 RS 232C 的兼容性 1 RS 422A 标准给出了对电缆 驱动器的要求 规定了双端电气接口形式 其标准是 双端线传送信号 通过传输线驱动器 把逻辑电平变成电位差 完成始端的信息传送 通过传输线接收器 由电位差转化成逻辑电平 实现终端的信息接受 它比 RS 232C 传 输信号距离长 速度快 速率在 90000b s 10Mb s 时 传输距离可达 120m 1200m 8 RS 422A 一般有四线接口 实际上还有一根信号地线 共 5 根线 图 5 5 是其 DB 9 连接器引脚定义 由于接收器采用高输入阻抗和发送驱动器比 RS 232C 更强的驱动能力 故允许在相同传输线上连接多个接收节点 最多可接 10 个节点 即一个主设备 Master 其余为从设备 Salve 从设备之间不能通信 所以 RS 422 支持点对多的双向通信 RS 422 四线接口由于采用单独的发送和接收通道 因此不必控制数据方向 各装置之间任何 必须的信号交换均可以按软件方式 XON XOFF 握手 或硬件方式 一对单独的双绞线 实现 图 5 5 RS 422A 的 DB 9 连接器引脚图 RS 422A 需要一终接电阻 要求其阻值约等于传输电缆的特性阻抗 在矩距离传输 时可不需终接电阻 即一般在 300 米以下不需终接电阻 终接电阻接在传输电缆的最远 端 24 5 2 2RS 485 标准接口

温馨提示

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

评论

0/150

提交评论