第10章串行接口8251ppt.ppt_第1页
第10章串行接口8251ppt.ppt_第2页
第10章串行接口8251ppt.ppt_第3页
第10章串行接口8251ppt.ppt_第4页
第10章串行接口8251ppt.ppt_第5页
已阅读5页,还剩174页未读 继续免费阅读

下载本文档

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

文档简介

1 第十章 8251A 2 第10章串行通信接口 教学重点异步通信协议和RS232C接口8251的内部结构和编程异步通信程序 3 10 1串行通信基础 串行通信 用一根信号线将数据逐位顺序传送串行通信的优势 通信线路少 在远距离通信时可以极大地降低成本 适合于远距离数据传送 也常用于速度要求不高的近距离数据传送PC系列机上有两个串行异步通信接口 键盘 鼠标器 显示器与主机间亦采用串行数据传送 4 串行通信的种类 串行异步通信 不传送时钟信号串行同步通信 传送时钟信号自同步 发送时将传送数据与时钟进行编码 接收时解码单同步双同步外同步 另用一根时钟线专门用来传送时钟信号 5 1 同步通信 通信双方使用同一时钟 以数据块 帧 为传输单位双方使用同一时钟 主控方提供时钟 被控方接收时钟 外同步 时钟信号另外安排一根传输线自同步 发送时将时钟信号与数据混合编码 接收时译码出时钟数据格式 每个数据块前加1 2个同步字符 同步头 进行帧同步 一般采用CRC循环冗余校验码 6 同步通信的数据传输效率和传输速率较高 但硬件电路比较复杂串行同步通信主要应用在网络当中 最常使用的同步通信协议有高级数据链路控制协议 HDLC 同步字符 数据 数据 数据 校验 同步字符 7 同步通信的数据格式 同步字符 数据场 同步字符1 同步字符2 CRC1 数据场 CRC2 CRC1 CRC2 单同步格式 双同步格式 标志符 01111110 地址符 8位 数据场 CRC1 CRC2 SDLC格式 标志符 01111110 数据场 CRC1 CRC2 外同步格式 标志符 01111110 地址符 8位 控制符 8位 数据信息 CRC1 CRC2 标志符 01111110 HDLC格式 8 1 单同步和双同步 又称为内同步 单同步和双同步信息格式中的同步字符是由用户确定的 选择一个特殊的8位二进制码作为同步字符 单 选择两个特殊的8位二进制码作为同步字符 双同步 这一个或两个同步字符作为一帧的开始 全帧包括多个字符 9 2 外同步外同步与单同步 双同步的差别在于数据块前面没有同步字符 而是用数据块外的同步信号表示数据传送开始 10 3 SDLC 同步数据链 是以01111110作为标志符 作为数据块传送起始和结束标志 跟在起始标志符之后的第二字节是一个8位地址符 接收器将收到的地址符同已存入的地址符相比较 相同 就接收数据 11 2 异步通信 通信双方使用各自的时钟 串行通信时的数据 控制和状态信息都使用同一根信号线传送收发双方必须遵守共同的通信协议 通信规程 传送速率信息格式位同步帧同步数据校验错误处理串行异步通信以字符为单位进行传输数据格式 起止式异步通信协议 12 起止式异步通信协议 起始位 每个字符开始传送的标志 起始位采用逻辑0电平 起始位 附加位 停止位 空闲位 数据位 低位 高位 字符 1 0 1 1 1 数据位 数据位紧跟着起始位传送 由5 8个二进制位组成 低位先传送 附加位 该位可用于校验或数据标识 可选择奇检验 偶校验或无校验位 停止位 表示该字符传送结束 停止位为逻辑1电平 可选择1 1 5 2位 空闲位 传送字符之间的逻辑1电平 表示没有进行传送 13 要传送一个字符K 若数据格式约定为 字符K用7位ASCII码表示 1位偶校验位 1位起始位 共10位 则异步方式传送字符K时 在串行传输线上的波形如下图所示 将其写成ASCII码 即把它的最低有效位写在右边时为1001011 4B 0110100101 起始位 偶校验 停止位 字符K的传输波形 14 数据传输速率 数据传输速率也称比特率 BitRate 每秒传输的二进制位数bps字符中每个二进制位持续的时间长度都一样 为数据传输速率的倒数当进行二进制数码传输 且每位时间长度相等时 比特率还等于波特率 BaudRate 过去 串行通信 异步 的数据传输速率限制在50bps到9600bps之间 现在 串行通信可以达到115200bps或更高 1 波特率 15 例1 设一个串行字符由1位起始位 7位数据位 1位奇偶校验位和1位停止位构成 每秒钟传送120个字符 则数据传送的波特率为 10位 字符 120字符 S 120位 S 1200波特传送每位信息所占用的时间为 1S 1200 0 833ms关于同步传送的传输率也为1200波特 用4个同步字符作为信息帧头部 字符中不设奇偶校验位 被传送的字符和同步字符均为7位 那么传送100个字符所用的时间为7 4 100 1200 0 6067秒 这就是说每秒的字符数可达100 0 6067 165个 可见 在相同的传输下 同步字符的实际字符传输要比异步时高 16 2 发送 接收时钟在异步串行中 发送端需要用一定频率的时钟来决定发送每一个数据所占的时间长度 称为位宽度 接收端也要用一定的频率的时钟来测定每一位输入数据的位宽度 在异步通信中 总是根据数据传输的波特率来确定收 发时钟的频率 通常 收 发时钟的频率总是取位传输率 即波特率 的16倍 32倍或64倍 这有利于在位信号的中间对每位数据进行采样减少读数错误 收 发时钟频率与波特率间的关系 收 发时钟频率 n 波特率收 发波特率 收 发时钟 n 其中n 1 16 64 17 式中n叫波特率系数或波特率因子 它的取值可为1 16 32或64 但对可编程串行接口芯片8251A来说 n不能取32 只能取1 16或64 由上可知 在实际应用中 可根据所需要的传输波特率和选取的波特率因子n来确定收 发时钟的频率 例 若要求传输速率为2400波特 则 当取n 1时 收 发时钟频率为2 4KHz当取n 16时 收 发时钟频率为38 4KHz当取n 64时 收 发时钟频率为153 6KHz 3 传输距离与传输速率的关系通过串口不产生信号畸变和失真的条件下 所能传送的最大距离与传输速率的电气性能有关 18 对于同一种传输线 传输距离是随传输率的增加而减少 图8 40所示为使用每英尺有50pf分布电容的非平衡双屏蔽线时 传输距离随波特率变化的曲线 100 500 200 1000 2000 5000 100 500 1000 5000 10000 19 3 传输制式 全双工 站A 站B 站A 站B 站A 站B 半双工 单工 20 4 远距离传输和调制解调器 串行数据的远传提高电平摆幅 RS232 C标准采用平衡式传输 RS422 RS485采用电流信号 20mA电流环利用电话线和声频信号 调制 解调调制 Modulating 和解调 Demodulating 把数字信号转换为电话线路上可传送的模拟信号将电话线路上的模拟信号转换为数字信号调制解调器 MODEM 具有调制和解调功能的联合装置 21 计算机串行通信是一种数字 0 和 1 的通信 它要求信号传输介质具有较宽的通频带 而远距离串行通信经常借用电话线作为传输介质 电话线频带较窄 约在30 3000Hz之间 如下图所示 当数字信号直接通过电话线传送时 在30 3000Hz之外的部分信号丢失 造成严重的信号畸变 f K 30 3000 电话线频带图 22 23 调制方法有多种 下图所示的FSK移频键控是目前使用最广泛的一种调制方法 输出 频率1 频率2 K1 K2 R1 R2 R3 A 24 10 2串行接口标准RS 232C 美国电子工业协会EIA制定的通用标准串行接口1962年公布 1969年修订1987年1月正式改名为EIA 232D设计目的是用于连接调制解调器现已成为数据终端设备DTE与数据通信设备DCE的标准接口DTE 数据终端设备 例如计算机DCE 数据通信设备 数传机 例如调制解调器 可实现远距离通信 也可近距离连接两台微机属于网络层次结构中的最低层 物理层 25 DTE DCE DCE DTE 调制解调器 调制解调器 计算机 计算机 电话线 RS 232C接口 RS 232C接口 RS 232C接口的使用场合 26 10 2 1RS 232C的引脚定义 232C接口标准使用一个25针连接器绝大多数设备只使用其中9个信号 所以就有了9针连接器232C接口信号面向使用调制解调器的串行异步通信 可支持两个通信信道 主信道 用于数据传送次信道 次信道为辅助串行通道 主要提供通道控制 但其传输速率比主信道要低得多 其他跟主信道相同 通常较少使用 27 RS 232C的引脚 1 TxD 发送数据 终端 数传机 串行数据的发送端RxD 接收数据 终端 数传机 串行数据的接收端 28 RS 232C的引脚 2 RTS 请求发送 终端 数传机 当数据终端设备准备好送出数据时 就发出有效的RTS信号 用于通知数据通信设备准备接收数据CTS 清除发送 允许发送 终端 数传机 当数据通信设备已准备好接收数据终端设备的传送数据时 发出CTS有效信号来响应RTS信号RTS和CTS是数据终端设备与数据通信设备间一对用于数据发送的联络信号 29 RS 232C的引脚 3 DTR 数据终端准备好 终端 数传机 通常当数据终端设备一加电 该信号就有效 表明数据终端设备准备就绪DSR 数据装置准备好 终端 数传机 通常表示数据通信设备 即数据装置 已接通电源连到通信线路上 并处在数据传输方式DTR和DSR也可用做数据终端设备与数据通信设备间的联络信号 例如应答数据接收 30 RS 232C的引脚 4 GND 信号地为所有的信号提供一个公共的参考电平CD 载波检测 DCD 终端 数传机 当本地调制解调器接收到来自对方的载波信号时 该引脚向数据终端设备提供有效信号RI 振铃指示 终端 数传机 当调制解调器接收到对方的拨号信号期间 该引脚信号作为电话铃响的指示 保持有效 31 RS 232C的引脚 5 保护地 机壳地 起屏蔽保护作用的接地端 一般应参照设备的使用规定 连接到设备的外壳或大地TxC 发送器时钟控制数据终端发送串行数据的时钟信号RxC 接收器时钟控制数据终端接收串行数据的时钟信号 32 10 2 2RS 232C的连接 微机利用232C接口连接调制解调器 用于实现通过电话线路的远距离通信微机利用232C接口直接连接进行短距离通信 这种连接不使用调制解调器 所以被称为零调制解调器 NullModem 连接 33 连接调制解调器 电话线 MODEM 微机 23456782022 23456782022 MODEM 23456782022 微机 23456782022 34 不使用联络信号的3线相连方式 微机 TxD RxD GND 微机 为了交换信息 TxD和RxD交叉连接 程序中不必使RTS和DTR有效 也不检测CTS和DSR是否有效 TxD RxD 35 伪 使用联络信号的3线相连方式 RTS和CTS各自互接 DTR和DSR各自互接 表明请求传送总是允许 数据装置总准备好 微机 DSR DTR TxD RxD RTS CTS GND 微机 TxD RxD DSR DTR RTS CTS 36 使用联络信号的多线相连方式 通信比较可靠 所用连线较多 不如前者经济 微机 DSR DTR TxD RxD RTS CTS GND 微机 DSR DTR TxD RxD RTS CTS 37 10 2 3RS 232C的电气特性 232C接口采用EIA电平 负逻辑 0 电平为 3V 15V 1 电平为 3V 15V实际常用 12V或 15V 标准TTL电平 正逻辑 1 电平 2 4V 5V 0 电平 0V 0 8V 相互转换 38 10 3RS 449 RS 422 423和RS 485 10 3 1RS 449RS 449是1977年公布的新串行总线标准 与RS 232C兼容 1 传送速率高 可达90Kbps 可不使用MODEM 2 可使用多点或公用线通信 传送距离在1200米 3 利用信号线之间的信号电压差进行传输 并且躁声低 4 提供了两种标准连接 一种是37脚 一种是9脚以适应不同的需要 39 10 3 2RS 422 423 1 RS 422 1 采用平衡式双端线传输信号 即采用了平衡发送器和差动接收器 见下图所示 2 传输速度快 传输距离长 最大传输速率可达10Mbps 在此速率下传送可达120米 3 当速率降至90Kbps 最大传送距离为1200米 TTL TTL 平衡发送器 RS 422 RS 422 平衡式 40 2 RS 423 采用非平衡式传输 使用单端 非平衡 发送器和差动接收器 见下图所示 1 采用不平衡信号差传输和差动式接收 增加其抗干扰性 2 比RS 232C有大的传输距离和更高的传输速度 RS 423在90米长电缆上传送数据最大速率可达100Kbps 若速率降到11Kbps 则允许电缆长度为1200米 3 RS 423标准规定 逻辑 1 电平为 200mv 6V逻辑 0 电平为 200mv 6VRS 423允许在传送线上连接多个接收器 此时 1 为 4 6V 逻辑 0 为 4 6V 41 无公共地 TTL TTL RS 423 单端发送器 差动接收器 RS 423 非平衡式 42 10 3 3RS 485 RS 485总线标准是对RS 423标准在性能上扩展 它是一种多发送器的串行总线标准 RS 485允许双导线上一个发送器可驱动多达32个负载设备 这些负载设备可以是接收器 被动发送器或收发器 RS 485标准总线的显著特点主要表现在 1 一个发送器可驱动多个负载设备 特别适合现场测控网络结构应用 2 平衡连接电缆应采用屏蔽电缆 电缆的两端点分别接终端电阻 3 挂接在平衡电缆上每个设备均要接地 电缆的屏蔽层要与电缆设备的机壳相连 43 10 3 420mA电流环 20mA电流环是一种未正式颁布而又使用十分广泛的串行总线标准 1 20mA电流环的主要特点 1 20mA电流环使用电流信号的 有 和 无 来表示逻辑 1 和逻辑 0 2 20mA电流环属串行异步通信接口标准 发送数据时必须以无电流的起始位作为传送字符的起始位 3 由于20mA电流通常选用高电压大电阻产生 所以低电阻传输导线对电气躁声不敏感 大大增强了20mA电流环的抗干扰能力 容易实现光电隔离 2 20mA电流环串行接口的实现实用20mA电流环接口方法见下图所示 44 TTL输入 1 2 3 4 5 6 8 3 2 8 5V 5V 56K 100 50 VCC TIL110光偶合器 SN7414 1 275452 TTL数据输出 20mA电流环接口电路 发送端由SN75452将TTL电平数据转换成20mA环路电流 远距离串行传输线上流过的是20mA电流信号 在接收经光电隔离并转换成TTL电平信号 10 4可编程串行通信接口8251A 8251A的基本性能8251A的基本工作原理8251A的对外信号8251A的编程8251A编程举例8251A的使用实例 10 4 18251A的基本性能 可以工作在同步或异步方式 在同步方式时 能用5 6 7或8位代表字符能自动检测同步字符允许奇偶校验 在异步方式下能用5 6 7或8位代表字符 用1位作为奇偶校验 能增加1个启动位能增加1个 1 5个或2个停止位 10 4 28251A的基本工作原理 8251A的编程结构8251A的功能结构8251A的发送和接收 1 8251A的编程结构具体编程结构和外部连接如下图 2 8251A的功能结构 接收控制电路的功能 复位后寻找启动位 消除假启动干扰 对接收到的信息进行奇偶校验 检测停止位 发送控制电路功能 在异步方式下 为数据加上起始位 校验位和停止位 在同步方式下 插入同步字符和校验位 读写控制逻辑电路功能 接收WR 写入数据和控制字接收RD 读取数据或状态字接收C D控制 数据信号 双功能信号 C D 0 选择8251A数据端口C D 1 选择8251A控制端口接收CLK 完成内部定时 接收RESET 图8 498251A的内部结构 3 8251A的发送和接收 1 异步接收方式 2 异步发送方式下图为8251A工作在异步方式时的数据传输格式 3 同步接收方式 4 同步发送方式下图为8251A工作在同步方式时的数据传输格式 10 4 38251A的对外信号 8251A和CPU之间的连接信号8251A与外部设备之间的连接信号 1 8251A和CPU之间的连接信号 1 片选信号CS为低电平时 8251A被选中 2 数据信号D7 D0与系统的数据总线相连 3 读写控制信号RD为读信号 WR为写信号 C D为控制 数据信号 4 收发联络信号TXRDY为发送器准备好信号TXE发送器空信号RXRDY接收器准备好信号SYNDET同步检测信号 2 8251A与外部设备之间的连接信号 1 收发联络信号DTR数据终端准备好信号DSR数据设备准备好信号RTS请求发送信号CTS清除请求发送信号 2 数据信号TXD发送器数据信号端RXD接收器数据信号端 10 4 48251A的编程 8位接口和16位数据总线的连接问题8251A的初始化模式寄存器的格式控制寄存器的格式状态寄存器的格式 1 关于8位接口芯片和16位数据总线的连接问题 解决方法 硬件上 将总线的A1与芯片的A0相连软件上 用连续的偶地址代替奇偶地址 2 8251A的初始化 8251A初始化的约定 复位后 用奇地址写入的值送模式寄存器 若为同步模式 接着往奇地址端口输出的字节为同步字符 此后 除复位命令 往奇地址写入的值将送到控制寄存器 往偶地址端口写入的值送到数据输出寄存器 8251A的初始化流程图 3 模式寄存器的格式 下图为8251A模式寄存器的格式 a 异步模式 b 同步模式 8251 方式选择控制字 异步方式 同步方式 当B2B1 00时为同步方式 当B2B1 00时工作于异步方式若为异步方式 由B2B1确定波特率系数 即波特率因子 此时 收发时钟 RXC和TXC 频率 波特率和波特率因子三者有以下关系 收 发时钟频率 收 发波特率 波特率因子或收 发波特率 收 发时钟频率 波特率因子例如 若收发波特率为1200 波特率因子为16 则收发时钟频率为1200 16 19 2KHz 例 某异步通信中 其数据格式为 1位起始位 1位停止位 7位数据位 奇校验 波特率系数为16 则其异步方式选择控制字为 01011010B 5AHMOVDX 3F9H 8251A的控制口地址MOVAL 5AH 异步方式选择控制字OUTDX AL 异步方式写入控制口 在同步通信中 设帧数据格式为 字符长度8位 双同步且内同步 偶校验 则同步方式选择控制字为 00111100B 3CH 将方式控制字写入控制口的程序段为 MOVDX 3F9H 8251A控制口地址MOVAL 3CH 同步方式选择控制字OUTDX AL 同步方式字写入控制口 4 控制寄存器的格式 8251A操作命令字格式 PE奇偶错误标志OE溢出错误标志FE帧格式错误标志 1允许发送0禁止发送 1允许接收0禁止接收 0正常工作 例 某异步通信中 要求8251A内部复位 允许接收 允许发送 全部错误标志复位 则操作命令字为 00010101 15H 该操作命令字写入控制口的程序段为 MOVDX 3F9H 8251A的控制口地址MOVAL 40H 使内部复位操作命令字OUTDX ALMOVAL 15H 允许接收 允许发送 错误标志复位的操作命令字OUTDX AL 5 状态寄存器的格式 8251A的状态字格式 例 若要检查8251A的发送器是否准备好 则可用下列程序段实现 MOVDX 3F1H 状态口地址K INAL DX 读状态字ANDAL 01H 查状态位D0 1 TXRDY 1 JZK 发送未准备好 则等待MOVDX 03F2H 8251A数据口MOVAL AAH 发送字符送ALOUTDX AL 发送字符写入8251A 又例 若要检查接收是否发生错误 则可用下列程序段实现 MOVDX 03F1H 8251A的状态口INAL DX 读状态字TESTAL 38H 查状态位PE OE FE是否为1JNZERROR 若其中有一位为 1 则转出错处理 10 4 58251A编程举例 异步模式下的初始化程序举例同步模式下的初始化程序举例利用状态字进行编程的举例 1 异步模式下的初始化程序举例 MOVAL 0FAHOUT42H AL 设置模式字 为异步模式 波特率因子为16 用7个数据位 偶校验 2个停止位MOVAL 37HOUT42H AL 设置控制字 使发送启动 接收启动 并设置有关信号 0 0 1 0 1 1 1 1 37H 1 1 1 1 1 1 0 0 FAH 2 同步模式下的初始化程序举例 MOVAL 38HOUT42H AL 设置模式字为同步模式 2个同步字符 7个数据位 偶校验MOVAL 16HOUT42H ALOUT42H AL 两个同步字符均为16H MOVAL 97HOUT42H AL 设置控制字 并启动 初始化编程举例 P308 例1 设8251A工作与异步方式 波特率系数为16 每个字符为8位 奇校验 1个停止位 允许接收 允许发送 并且发送准备就绪 全部错误标志复位 请按上述要求对8251A进行初始化 设控制口地址为0F41H 数据口地址为0F40H 方式选择控制字为 01011110B 5EH操作命令字为 00110111B 37H初始化程序如下 MOVDX 0F41H 8251A控制口地址MOVAL 5EH 方式选择控制字 异步 OUTDX AL波特率16 8位数据位 奇校验 1个停止位MOVAL 37H 操作命令字 允许发送 接收OUTDX AL错误标志复位 发送准备就绪 例2 设8251A工作于同步方式 且内同步 双同步 同步字符为16H 每个字符7个数据位 奇校验 允许接收 允许发送 同步检测 全部错误标志复位 控制口地址为0F41H 数据口地址为0F40H 请按上述要求对8251A进行初始化 方式控制字为 00011000B 18H操作命令字为 10010101B 95H 程序如下 MOVDX 0F41H 8251A控制口地址MOVAL 18H 方式字 双内同步 奇校 7个数据位OUTDX AL 方式字写入控制口MOVAL 16H 同步字符OUTDX AL 送入第一同步字符 16H OUTDX AL 送入第二同步字符MOVAL 95H 操作命令字OUTDX AL 操作命令字写入控制口 3 利用状态字进行编程的举例 MOVAL 0FAHOUT42H AL 设置模式字 异步模式 波特率因子为16 7个数据位 2个停止位 偶校验MOVAL 35HOUT42H AL 设置控制字 并启动 MOVDI 0 变址寄存器初始化MOVCX 80 共收取80个字符BEGIN INAL 42HTESTAL 02HJZBEGIN 读状态字并测试INAL 40H 读取字符MOVDX OFFSETBUFFERMOV DX DI AL 传输字符INCDI 修改缓冲区指针INAL 42H 读取状态字TESTAL 38H 测试有无错误 JNZERRORLOOPBEGIN 如没有错 则接收下1个字符JMPEXIT 如满80个字符 则结束ERROR CALLERR OUT 调用出错处理程序EXIT 10 4 68251A的使用实例 下图为用8251A作为CRT接口的实际例子 8251A的初始化程序段 INIT XORAX AX AX清零MOVCX 0003MOVDX 00DAH OUT1 CALLKKKLOOPOUT1 往控制端口DAH送3个0 MOVAL 40HCALLKKK 往控制端口送40H复位MOVAL 4EHCALLKKK 设置模式字 异步模式 波特率因子为16 8位数据 1位停止位MOVAL 27HCALLKKK 往设置命令字启动 KKK OUTDX AL 将数据输出到指定端口PUSHCXMOVCX 0002ABC LOOPABC 等待输出动作完成POPCX 恢复CX内容RET 往CRT输出一个字符的程序段 CHAROUT MOVDX 0DAHSTATE INAL DX 输入状态字TESTAL 01JZSTATE 不断测试状态位MOVDX 0D8H 数据端口地址送DXPOPAX AX中为要输出的字符OUTDX AL 往端口中输出一个字符 8251A的应用举例 例1 8086CPU利用8251A作串行接口实现与CRT终端间的串行传送 8251A作为8086CPU与CRT终端间的接口如图8 57所示 ALE信号有效时 将CPU送来的地址锁存 地址线A0接C D端用于选择8251A的数据口或控制口 波特率发生器输出频率为76 8KHz 向8251A提供规定的收 发时钟 RXC和TXC 由于8251A输入输出都是TTL电平 而CRT是RS 232电平 所以要通过1488及1489进行电平转换 8251A工作方式的确定 异步方式 1个停止位 8位数据位 偶校验 波特率系数为16 CPU用查询方式将缓冲区字符 HELLO 送CRT上显示 显示字符存放在数据段 首地址为2000H 控制口地址为04F2H 数据口地址为04F0H 方式选择控制字为01111110B 7EH操作命令字为00110011B 33H 地址锁存器 地址译码器 A7 A1 A0 EN STB CS C D RD WR CLK 8251A 8086 AD15 AD0 ALE M IO RD WR CLK 电平转换 CRT终端 波特率发生器 RXD TXD DTR DSR TXC RXC D7 0 图8 578086与CRT终端接口连接 EDATASEGMENTDISBUFDB48H 45H 4CH 4FH 0DH 0AH HELLO字符的ASCII码EDATAENDSMAIN MOVDX 04F2H 8251A的控制口MOVAL 40H 内部复位 软件复位 OUTDX ALMOVAL 7EH 方式选择控制字OUTDX AL MOVAL 33H 操作命令字OUTDX ALMOVBX 2000H 显示缓冲区首地址MOVCX 07H 显示字符个数WAT MOVDX 04F2H 8251A的状态口INAL DX 读状态字TESTAL 80H 查数据装置是否准备就绪 即查DSRJZWAT 未准备就绪 等待MOVDX 04F0H 8251A数据口 MOVAL BX 从显示缓冲区取数据OUTDX AL 将显示字符送8251A数据口INCBX 修改显示缓冲区地址DECCX 字符个数减1JNZWAT 未传送完 继续送CRT显示HLT 例2 利用8251A串行接口芯片通过RS 232C标准串行总线连接甲 乙两台8086微机实现双机串行通信 由甲机向乙机传送256个字符数据 通信有关约定如下 双方采用异步 半双工方式 通信时均认为对方已准备就绪 通信数据格式为 每个字符7个数据位 2个停止位 偶校验 波特率系数为16 CPU与8251A之间采用查询方式交换数据 8251A的数据口地址为3F0H 控制口地址为3F2H 发送数据存放的数据区首地址为2000H接收数据的有效地址为4000H 收 发时钟RXC和TXC由8253的通道1提供 输出频率为153 6KHz 8253工作于方式3 输入时钟CLK 频率为2MHz 它由CPU8MHz的主时钟经分频后得到 分频 分频 波特率发生器 波特率发生器 电平变换 电平变换 D7 D0 TXD RXD RXD TXD GND GND TXD RXD TXD RXD D7 D0 D7 D0 RD RD WR WR A1 RD WR A1 RESET RESET RET RET CLK CLK CLK 8086CPU 8086CPU 8251A 8251A D7 D0 EIA TTL EIA TTL 图8 58双机串行通信硬件连接 C D 发送端与接送端的方式选择控制字为11111010B FAH 发送端操作命令字为00010001B 11H 接送端操作命令字为14H 发送端的发送程序如下 BEGIN T MOVDX 3F2H 8251A的控制口地址MOVAL 40H 内部复位 软件复位 OUTDX ALMOVAL FAH 方式选择控制字 异步 7数 2OUTDX AL 位停 偶校验 波特率系数16 MOVAL 11H 操作命令字 错误复位 允许发OUTDX AL 送MOVDI 2000H 发送数据区首地址MOVCX FFH 发送数据字符个数NEX T MOVDX 3F2H 8251A控制口地址INAL DX 读状态TESTAL 01H 查状态位TXRDY是否有效 JZNEXT T 发送未准备好 继续查询等待 MOVDX 3F0H 发送准备好 送8251A数据口地址 准备发送数据MOVAL DI 从发送区取一字符送ALOUTDX AL 向8251A输出一个数据INCDI 修改发送区地址指针LOOPNEXT T 未发送完 继续发送HLT 送完 暂停 接收端的接收程序如下 BEGIN R MOVDX 3F2H 8251A控制口地址MOVAL 50H 内部复位 错误标志复位OUTDX ALMOVAL FAH 方式选择控制字 同发送方式OUTDX ALMOVAL 14H 操作命令字 错误标志MOVSI 4000H 接收数据缓冲区首地址MOVCX 0FFH 接收数据个数 NEXT R MOVDX 3F2H 8251A控制口地址INAL DX 读状态字TESTAL 02H 查RXRDY是否有效JZNEXT R 接收未准备好 继续查询等待TESTAL 38H 查是否出错JNZERROR 若错则转出错处理MOVDX 3F0H 8251A数据口地址 INAL DX 从8251A读入一个数据MOV SI AL 将接收的数据送内存缓冲区INCSI 修改接收缓冲区地址指针LOOPNEXT R 数据未接收完 继续接收HLT 全部接收完毕 暂停 使用8251A串行接口应用实验一 基本要求 实验目的掌握8251A接口芯片实现微机间的同步和异步通信 掌握8251A芯片与微机的接口技术和编程方法 实验内容 实验原理图见系统所示 8251A的片选地址为050 05F 8251A的C D接A0 因此 8251的数据口地址为050H 命令 状态口地址是051H 8251A的CLK接系统时钟的2分频输出PCLK 2 385MHz 图中接收时钟RXC和发送时钟TXC连在一起接到8253A的OUT1 8253A的OUT1输出频率不小于79 5KHz 本实验采用8251A异步方式发送 波特率为9600 因此8251A发送器时种输入端TXC输入一个153 6KHz的时钟 9600 16 这个时钟由8253A的OUT1产生 8253A的CLK1接1 8432MH 它的12分频正好是153 6KHz 故8253A计数器1设置为工作方式3 方波频率发生 其计数初值为000CH 本实验发送字符的总长度为10位 1个起始位 0 8个数据位 D0在前 1个停止位 1 发送数据为55H 反复发送 以便用示波器观察TXD的波形 用查询8251A状态字的第0位 TXRDY 来判断1个数据是否发送完毕当TXRDY 1时 发送数据缓冲器空 实验步骤 1 按原理图连好实验线路 2 运行实验程序 在系统显示 DVCC 86JH 状态下 按任意键 系统显示命令提示符 按GO键 显示器显示 1000XX 输入F000 B400按EXEC键 显示器显示 8251 1 用示波器探头测TXD波形 以判断起始位 数据位以及停止位的位置 注 本实验只在单机状态下做 连上位机实验 选做 连线同基本要求一样 实验程序如下 CODESEGMENTASSUMECS CODE 定义代码段CONTPORTEQU00DFH 定义8279命令地址DATAPORTEQU00DEH 定义8279数据地址SECOPORTEQU0051H 定义串行口8251命令口地址SEDAPORTEQU0050H 定义串行口8251数据口地址DATAEQU0500H 定义代码段起始地址 START JMPSERIALSERIAL CALLFORMAT MOVSI DATACALLLEDDISP DISP8251 1WATTXD MOVDX SECOPORT 读8251状态口INAL DXTESTAL 01HJZWATTXD 未准备好等待MOVAL 55H 准备好 数据55送8251数据口地址MOVDX SEDAPORTOUTDX ALJMPWATTXD 循环 LEDDISP MOVAL 90HMOVDX CONTPORTOUTDX ALMOVBYTEPTRDS 0600H 00LED1 CMPBYTEPTRDS 0600H 07HJALED2MOVBL DS 0600H MOVBH 0HMOVAL CS BX SI MOVDX DATAPORTOUTDX ALADDBYTEPTRDS 0600H 01HJNZLED1LED2 RET FORMAT MOVBX 0MOVWORDPTRDS BX 0500H 4006HADDBX 2MOVWORDPTRDS BX 0500H 4040HADDBX 2MOVWORDPTRDS BX 0500H 6D06HADDBX 2MOVWORDPTRDS BX 0500H 7F5BHRETCODEENDSENDSTART 第10章串行通信接口8251A习题 一 填空1 8251能检测的错误有三种 2 在异步方式下 使用比波特率高N倍的收发时钟频率的目的是 3 当用8251以查询方式发送数据 应检测状态位 进行数据接收时应查询 4 常用来实现RS 232C电平与TTL电平相互转换的电路是 5 设8251A工作于异步方式 收发时钟频率为38 4KHz 波特率为2400 数据格式为7位数据位 1位停止位 偶校验 则8251A的方式字为 6 在串行通信中 设波特率为4800 每个数据占10位 则传输2KB数据所需要的时间为 7 在串行通信中数据传送方向可分为三种 8 8251A工作在同步方式 波特率为 异步传送时波特率为 二 选择1 8251的操作命令字的作用是 A 决定串行传送数据格式B 决定数据收 发时间C 决定传送方向和数据格式D 以上都不对2 若传输率为2400 收 发时钟 RxC TxC 频率为38 4KHz 则波特率因子为 A 1B 16C 32D 643 8251的方式字 模式字 的作用是 A 决定8251的通信方式B 决定8251的数据传送方向C 决定8251的通信方式和数据格式D 以上三种都不对 4 设串行异步通信的数据格式是 1个起始位 7个数据位 1个校验位 1个停止位 若传输率为1200 则每秒钟传输的最大字符数为 A 10个B 110个C 120个D 240个5 在数据传输率相同的情况下 同步字符传输的速度要高于异步字符传输 其原因是 A 字符间无间隔B 双方通信同步C 发生错误的概率少D 附加的辅助信息总量少6 异步通信中 收发双方必须保持 A 收发时钟相同B 停止位相同C 数据格式和波特率相同D 以上都正确 三 计算题 1 在RS 232C串行接口电路中 波特率为1200 每个字符对应1个起始位 8个数据位 1个奇校验位 2个停止位 试求传送1K字节数据最少需要多少时间 画出连续发送数据0A6H时传输线上的波形 2 若8251A的异步方式字为7AH 则发送的字符格式如何 为使接收和发送的波特率分别为600b s和2400b s 则收发时钟 RxC和TxC 的频率分别应为多少 四 应用题 1 按下列要求对8251A进行初始化 并加适当注释 1 要求异步方式工作 波特率系数为64 偶校验 7位数据位 1位停止位 2 允许接收 允许发送 全部错误标志复位 内部复位 3 查询8251A的状态字 当发送准备就绪时 则通过8251A发送数据 否则等待 设8251A的控制口地址为 1F2H 数据口地址为1F0H 三 计算题答案 1 答计算公式如下传输时间 数据量 每秒钟传输的字符数 数据量 波特率 每字符位数 数据量 波特率 起始位 数据位 奇校验位 停止位 式中数据量为题中要传输出的数据量 设传输时间为T 则有 T 1024 1200 1 8 1 2 1024 100 10 24 秒 连续发送数据0A6H时传输线上的波形 注意串行传输时 从最低位开始传送 最后传送最高位 2 8251A的方式字 7AH 0111 1010B 因为方式字中 D1D0为10 所以 8251A的波特率系数为 16 根据计算公式 收发频率 波特率 波特率系数有如下计算 接收频率 600 16 9600Hz发送频率 2400 16 38400Hz 四 应用题答案答 根据已知条件设置8251的方式选择字 同步异步选择 因为题目要求异步方式工作 且波特率系数为64 所以 D1D0 11字符长度选择 因为题目要求7位字符长度 所以 D3D2 10 奇偶校验选择 因为题目要求偶校验 所以 D5D4 11停止位选择 因为题目要求1位停止位 所以 D7D6 01最后 方式选择字为 0111 1011B 7BH 根据已知条件设置8251的工作命令字 设置8251复位字 在发送复位命令时 D6 1 复位字为 40H设置8251的操作命令字 因为题目要求允许发送 所以 D0 1因为题目要求允许接收 所以 D2 1 因为题目要求全部错误标准复位 所以 D4 1 注意 在发送命令字时 D6 1 最后 操作命令字为 0001 0101B 15H根据题意编写的8251A初始化程序如下 设要发送的数据变量为N 127 128 129 10 58250 130 10 5 18250的内部结构 8250实现了起止式串行异步通信协议 支持全双工通信 通信字符可选5 6 7 8位数据位停止位可选1 1 5 2位可选择奇校验 偶校验 不校验或校验位强制为 1 0 具有奇偶校验错 帧错和溢出等错错误检测电路8250支持的数据传输速率为50 9600bps 131 CPU 发送保持寄存器 发送移位寄存器 同步控制 8250 SOUT 1 串行数据的发送 并行数据 加入起始位 校验位 停止位 串行数据 双缓冲寄存器结构 保证数据的连续发送 132 2 接收时对起始位的检测 起始检测 确定已检测到起始位 采样数据 起始位 时钟 RCLK 数据线 SIN T 16T 16T 8T 数据接收时钟频率是数据传输频率的16倍 正确识别起始位 防止因干扰引起的误识别 133 3 串行数据的接收 并行数据 检测接收错误 删除起始位 校验位 停止位 串行数据 CPU 接收缓冲寄存器 接收移位寄存器 同步控制 8250 SIN 双缓冲寄存器结构 保证数据的连续接收 134 4 接收错误的处理 奇偶错误PE ParityError 若接收到的字符的 1 的个数不符合奇偶校验要求帧错误FE FrameError 若接收到的字符格式不符合规定 如缺少停止位 溢出错误OE OverrunError 若接收移位寄存器接收到一个数据 并送至输入缓冲器时 CPU还未取走前一个数据 就会出现数据溢出若接收缓冲器的级数多 则溢出错误的几率就少 135 10 5 28250的引脚 连接CPU的部分连接外设的部分注意 8250不是Intel公司的产品 所以该芯片引脚名称与前面学习的8253 8255等Intel产品有所不同 但是引脚功能却是类似的 1 D 0 D 1 D 2 D 3 RCLK SIN SOUT DOSTR DOSTR 40 21 V CC RI RLSD DSR CTS MR OUT 1 DTR OUT INTR NC A 0 ADS 30 25 35 CS 0 CS 1 CS 2 BAUDOUT XTAL 1 GND CSOUT 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 D 4 D 5 D 6 D 7 XTAL 2 22 23 24 26 27 28 29 31 32 33 34 36 37 38 39 A 1 A 2 DDIS DISTR DISTR RTS 136 1 处理器接口引脚 1 数据线D0 D7 在CPU与8250之间交换信息地址线A0 A2 寻址8250内部寄存器片选线 包括3个片选输入信号CS0 CS1 CS21个片选输出信号CSOUT 当3个片选输入都有效时 才选中8250芯片 同时CSOUT输出高电平有效 地址选通信号 ADS 当该信号低有效时 锁存上述地址线和片选线的输入状态 保证读写期间的地址稳定 137 1 处理器接口引脚 2 读控制线数据输入选通DISTR 高有效 和 DISTR 低有效 中一个信号有效 CPU从8250内部寄存器读出数据相当于I O读信号写控制线数据输出选通DOSTR 高有效 和 DOSTR 低有效 中一个有效 CPU就将数据写入8250内部寄存器相当于I O写信号8250读写控制信号有两对 每对信号作用完全相同 只不过有效电平不同而己 138 1 处理器接口引脚 3 驱动器禁止信号DDIS CPU从8250读取数据时 DDIS引脚输出低电平 用来禁止外部收发器对系统总线的驱动 其他时间 DDIS为高电平主复位线MR 硬件复位信号中断请求线INTRPT 8250有4级中断 共10个中断源 当任一个未被屏蔽的中断源有请求时 INTRPT均输出高电平向CPU请求中断 139 2 时钟信号 时钟输入引脚XTAL1 8250的基准工作时钟时钟输出引脚XTAL2 基准时钟信号的输出端波特率输出引脚 BAUDOUT 基准时钟经8250内部波特率发生器分频后产生发送时钟接收时钟引脚RCLK 接收外部提供的接收时钟信号 若采用发送时钟作为接收时钟 则只要将RCLK引脚和 BAUDOUT引脚直接相连 140 3 串行异步接口引脚 8250 数据装置准备好 DSR 数据终端准备好 DTR 发送数据SOUT 接收数据SIN 请求发送 RTS 允许发送 CTS 信号地GND 载波检测 RLSD 振铃指示 RI 9个最常用的信号 82509个信号的名称与RS232 C信号的名称稍有不同 141 4 输出线 OUT1和 OUT2 两个可由用户定义用途的输出信号由调制解调器控制寄存器的D2和D3位控制其输出使用时 一般低电平有效 复位时恢复为高 142 8250的内部结构 数据 缓冲器 读写 控制 逻辑 MODEM 控制逻辑 A 0 A 1 D 0 D 7 接收数据 寄存器 A 2 DISTR DISTR DOSTR DDIS MR XTAL 1 2 DOSTR CSOUT INTR CS 0 CS 1 CS 2 ADS OUT 1 OUT 2 DSR CTS RTS DTR RLSD RI 接收移位 寄存器 接收器 控制逻辑 发送数据 寄存器 发送移位 寄存器 SIN RCLK BAUDOUT SOUT 发送控制 逻辑 片 内 总 线 143 10 5 38250的寄存器 8250内部有9种可访问的寄存器 其中 除数寄存器是16位的 占用两个地址连续的8位端口内部寄存器通过引脚A0 A2来进行寻址 利用通信线路控制寄存器的最高位 即除数寄存器访问位DLAB 来区别共用两个端口地址的不同寄存器 表11 3 DLAB 1 拟访问除数寄存器的高8位及低8位DLAB 0 拟访问其他控制或状态寄存器 144 1 接收缓冲寄存器RBR 存放串行接收后转换成并行的数据 CPU 接

温馨提示

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

评论

0/150

提交评论