串行通信与可编程8251A接口芯.ppt

上传人:xt****7 文档编号:4260441 上传时间:2020-01-04 格式:PPT 页数:100 大小:1.90MB
返回 下载 相关 举报
串行通信与可编程8251A接口芯.ppt_第1页
第1页 / 共100页
串行通信与可编程8251A接口芯.ppt_第2页
第2页 / 共100页
串行通信与可编程8251A接口芯.ppt_第3页
第3页 / 共100页
点击查看更多>>
资源描述
第8章串行通信与可编程8251A接口芯片 8 1串行通信基础 8 28251A芯片引脚 内部结构和工作过程 8 38251A方式控制字及初始化编程 8 4项目扩展与工程应用 8 1串行通信基础 8 1 1项目1 两台微机之间进行通信 8 1 2知识讲解 第8章串行通信与可编程8251A接口芯片 8 1串行通信基础 8 1 1项目1 两台微机之间进行通信 1 项目要求与目的 1 项目要求 利用 串口调试助手 软件 实现两台微机与微机之间进行通信 2 项目目的 了解微机与微机之间的通信方法 了解 串口调试助手 软件的使用 了解9针RS 232C接口的连线与制作方法 第8章串行通信与可编程8251A接口芯片 2 项目电路连接与说明 1 项目电路连接 如图8 3所示的粗线为需要接的连线 两台微机之间通过9针RS 232C接口相连 2 项目说明 本实验需要一根9针串口线将两台微机相连 首先用串口线把两台微机连接好 各自打开从网上下载的 串口调试助手 设置好串口 波特率双方设置一致 例如设置为1200 在一台微机发送区输入数据 16进制或十进制 效果如图8 1所示 就可在另一台微机的接收区看到相应的数据 16进制或十进制 效果如图8 2所示 第8章串行通信与可编程8251A接口芯片 图8 2串口调试助手接收区看数据效果图 第8章串行通信与可编程8251A接口芯片 图8 1串口调试助手发送区看数据效果图 3 项目电路原理框图 项目电路原理框图如图8 3所示 电路由两台微机之间和9针RS 232C接口连线等组成 图8 3电路原理框图 第8章串行通信与可编程8251A接口芯片 8 1 2知识讲解 1 概述 通信是指计算机与外部设备之间或计算机与计算机之间的信息交换 通信的基本方式可以分为并行通信和串行通信两种 并行通信是指数据的每位同时传输 如第5章所述的8255A与外设间的数据交换就是采用的并行通信方式 这种方式的数据传输速度快 但是在使用时所需要的通信线多 随着传输距离的增加 通信成本增加 可靠性下降 因此并行通信适合短距离传输 串行通信则是把需要传输的数据按照一定的数据格式一位一位的按顺序传输 串行通信的信号在一根信号线上传输 发送时 把每个数据中的各个二进制位一位一位地发送出去 发送一个字节后再发送下一个字节 接收时 从信号线上一位一位地接收 并把它们拼成一个字节传输给CPU进行处理 第8章串行通信与可编程8251A接口芯片 串行通信只需一对传输线 并且可以利用现有的电话线作为传输介质 这样可以降低传输线的成本 特别是在远距离传输时 这一优点更为突出 但在进行串行通信时需要进行并 串和串 并之间的转换 主要应用于接口与外部设备 计算机与计算机之间 例如鼠标 键盘和接口 2 单工 半双工和全双工通信 串行通信按照数据流的传送方式可以分为单工 半双工和全双工 如图8 4所示 1 单工通信 如图8 4 a 所示 在单工通信方式中 信号只能在单一通信信道上向同一个方向传输 任何时候都不能改变信号的传送方向 如电视信号 2 半双工通信 如图8 4 b 所示 在半双工通信方式中 信号可以双向传送 但必须交替进行 同一个时刻只能向一个方向传送数据 如对讲机 第8章串行通信与可编程8251A接口芯片 3 全双工通信 如图8 4 c 所示 在全双工通信方式中 信号可以同时双向传送 在全双工通信方式中数据的接收与发送分别由两条不同的传输信道来完成 全双工通信信道也可以用于单工通信或半双工通信 如上网 图8 4数据传输方式 第8章串行通信与可编程8251A接口芯片 3 串行通信方式 按照串行数据的时钟控制方式 串行通信可分为同步通信和异步通信两类 1 同步通信 在数据块传输时为了提高传输速度 通常采用同步通信传输方式 同步通信不是用起始位来标识字符的开始 而是用一串特定的二进制序列 称为同步字符 去通知接收器串行数据第一位何时到达 串行数据信息以连续的形式发送 每个时钟周期发送一位数据 数据信息间不留空隙 数据信息后是两个错误校验字符 同步通信采用的同步字符的个数不同 存在着不同的格式结构 具有一个同步字符的数据格式称为单同步数据格式 有二个同步字符的数据格式称为双同步数据格式 如图8 5所示 在同步传输中 要求用时钟来实现发送端与接收端之间的同步 第8章串行通信与可编程8251A接口芯片 2 异步传输方式 发送或接收一个信息字符所需的一切数据和控制信息 都在单根通信线上移动 而且每次只移动一位 异步串行通信数据格式如图8 6所示 起始位 位于字符帧开头 只占一位 为逻辑0低电平 用于向接收设备表示发送端开始发送一帧信息 第8章串行通信与可编程8251A接口芯片 数据位 紧跟起始位之后 用户根据情况可取5位 6位 7位或8位 低位 D0 在前高位 D7 在后 第8章串行通信与可编程8251A接口芯片 奇偶校验位 位于数据位之后 仅占一位 用来表征串行通信中采用奇校验还是偶校验 由用户决定 停止位 位于字符帧最后 为逻辑1高电平 通常可取1位 1 5位或2位 用于向接收端表示一帧字符信息已经发送完 也为发送下一帧作准备 在串行通信中 两相邻字符帧之间可以没有空闲位 也可以有若干空闲位 这由用户来决定 例如用ASCII编码字符位7位加一位奇偶校验位 一个起始位以及一个停止位共10位 如图8 7所示传输F字符的ASCII码1000110波形 图8 7传送F字符的帧格式 第8章串行通信与可编程8251A接口芯片 需要说明的是逻辑 0 1 通常有四种标准 TTL标准 RS 232C标准 20mA电流环标准和60电流环标准 TTL标准 用 5V电平表示逻辑 1 用0V电平表示逻辑 0 这里采用的是正逻辑 RS 232C标准 用 5V 15V之间的任意电平表示逻辑 1 用 5V 15V之间的任意电平表示逻辑 0 这里采用的是负逻辑 20mA电流环标准 线路中存在20mA电流表示逻辑 1 不存在20mA电流表示逻辑 0 60电流环标准 线路中存在60mA电流表示逻辑 1 不存在60mA电流表示逻辑 0 第8章串行通信与可编程8251A接口芯片 4 通信速率 通信速率是反映数据传输速度的快慢 通信速率主要有数据传输速率和波特率两个指标 1 数据传输速率 数据传输速率是指每秒钟传输二进制数的位数 即比特率 以位 秒 bps或bit s简称b s 为单位 数据传输速率反应了串行通信的速率 也反应了对传输通道的要求 传输速率越高 要求传输通道的频带越宽 以字符为单位传送时数据传输速率等于每秒传送的字符数与每个字符位数的乘积 例如每秒传送120个字符 每个字符包含10位 一个起始位 7个数据位 一个奇偶校验位 一个停止位 则数据传输速率为 120字符 每秒 10位 字符 1200bps 第8章串行通信与可编程8251A接口芯片 2 波特率 波特率是指每秒传送的符号数 每次传送一位时 波特率大小与数据传输速率相等 波特率通常简称波特 用符号Baud或B表示 在计算机中 一个符号的含义为高低电平 它们分别代表逻辑 1 或逻辑 0 所以每个符号所含的信息刚好为1比特 因此在计算机通信中 常常把比特率称为波特率 即 1波特 Baud 1比特 bit 秒 1位 秒 1bps 一般计算机异步通信的波特率在50bps 9600bps之间 波特率与串行接口内的时钟频率并不一定相等 时钟频率可以选为波特率的1倍 16倍或64倍 由于异步通信双方各自使用自己的时钟信号 要是时钟频率等于波特率 则双方的时钟频率稍有偏差或初始相位不同就容易产生接收错误 采用较高频率的时钟 在一位数据内有16个或64个时钟 捕捉信号的正确性就容易得到保证 第8章串行通信与可编程8251A接口芯片 5 串行通信接口标准 在计算机系统中 常用的串行通信接口标准有 RS 232C RS 449 RS 422A RS 423A RS 485 20mA电流环等总线接口标准 1 RS 232C总线 RS 232C是使用最早 应用最多的一种异步串行通信总线标准 它是美国电子工业协会 EIA 1962年公布 1969年最后修定而成的 其中 RS表示RecommendedStandard 232是该标准的标识号 C表示最后一次修定 RS 232C串行接口总线适用于 设备之间的通信距离不大于15m 传输速率最大为20kb s 第8章串行通信与可编程8251A接口芯片 RS 232C信息格式标准 RS 232C采用串行格式 如图8 8所示 该标准规定 信息的开始为起始位 信息的结束为停止位 信息本身可以是5 6 7 8位再加一位奇偶校验位 如果两个信息之间无信息 则写 1 表示空 图8 8RS 232C信息格式标准 目前在IBMPC机上的COM1 COM2接口 就是RS 232C接口 第8章串行通信与可编程8251A接口芯片 RS 232C机械特性 RS 232C标准规定使用符合ISO2110标准的25芯D型连接器 如图8 9 a 所示 RS 232C总线标准有25条信号线 其中 4条数据线 11条控制线 3条定时线 7条备用和未定义线 目前大多数PC机的RS 232C接口不再使用25芯D型连接器 而配备有主要功能相同的9芯D型连接器 如图8 9 b 所示 25芯D型连接器与9芯D型连接器的引脚对应如表8 1所示 图8 9RS 232C连接器示意图 第8章串行通信与可编程8251A接口芯片 表8 1DB 25与DB 9引脚对应关系 第8章串行通信与可编程8251A接口芯片 尽管RS 232C使用20条信号线 在近距离通信时常常只需三条连接线 即 发送数据 接收数据 和 信号地 发送方和接收方的 发送数据 接收数据 端交叉连接 传输线采用屏蔽双绞线即可实现 如图8 10所示 当使用RS 232C进行远距离传送数据时 就必须配合调制解调器 modem 和电话线进行通信 其连接及通信原理如图8 11所示 图8 10三线制连接原理图 图8 11远距离串行通信原理图 第8章串行通信与可编程8251A接口芯片 RS 232C电气特性 由于RS 232C是在TTL集成电路之前制定的 所以它的电平不是 5V和地 RS 232C标准规定了数据和控制信号的电压范围 它使用负逻辑 将 5V 15V规定为逻辑 1 5V 15V规定为逻辑 0 RS 232C电平转换电路 RS 232C电平与通常的TTL电平不兼容 所以两者之间必须加电平转换电路 常用的电平转换芯片有MC1488 MC1489和MAX232 MC1488 MC1489工作电压需要 15V 而MAX232工作电压只需要5V就可以 第8章串行通信与可编程8251A接口芯片 符合所有的RS 232C技术规范 只要单一 5V电源供电 具有升压 电压极性反转能力 能够产生 10V和 10V电压V V 低功耗 典型供电电流5mA 内部集成2个RS 232C驱动器 内部集成2个RS 232C接收器 MAX232是单电源双RS 232C发送 接收芯片 如图8 12所示 芯片引脚如图8 12 a 所示 采用16脚双列直插式封装 采用单一 5V电源供电 外接只需4个电容 便可以构成标准的RS 232C通信接口 如图8 12 b 所示 由于硬件电路简单 所以被广泛采用 MAX232主要特性如下 第8章串行通信与可编程8251A接口芯片 图8 12MAX232实现TTL电平与RS 232电平转换 第8章串行通信与可编程8251A接口芯片 2 RS 449接口标准 RS 232C虽然使用很普遍 但由于采用非平衡传输方式 易受地线干扰 而且传输距离短 传输速率慢 为了实现更远距离和更高传输速率 采用RS 449接口标准 EIA1977年公布的电子工业标准接口RS 449 在很多方面可代替RS 232C应用 两者的主要差别是信号在导线上的传输方法不同 RS 232C是利用传输信号与公共地之间的电压差 而RS 449接口是利用信号导线之间的信号电压差 由于它克服了RS 232C互不兼容的25芯连接器以及接口处信号间易串扰等缺陷 最大传输距离达1200米 信号最高传输速率为100kb s RS 449规定了两种接口标准连接器 一种为37芯 另一种为9芯 由于RS 449系统用平衡信号差传输高速信号 所以噪声低 它还可以多点或者使用公用线通信 故RS 449通信电缆可与多个设备并联 第8章串行通信与可编程8251A接口芯片 3 RS 422A接口标准 采用了平衡差分传输技术 提高了共模抑制能力 大大减小了地线电位差引起的麻烦 优点 RS 422A比RS 232C传输距离长 速度快 传输速率最大可达10Mb s 在此速率下 电缆的允许长度为12m 如果采用低速率传输 最大距离可达1200m RS 422A的接口电路如图8 13所示 发送器SN75174将TTL电平转换为标准的RS 422A电平 接收器SN75175将RS 422A接口信号转换为TTL电平 图8 13RS 422A接口标准 第8章串行通信与可编程8251A接口芯片 4 RS 423A接口标准 RS 423A规定为单端线 而且与RS 232C兼容 参考电平为地 该标准的主要优点是在接收端采用了差分输入 而差分输入对共模干扰信号有较高的抑制作用 这样就提高了通信的可靠性 RS 423A驱动器在90m长的电缆上传送数据的最大速率为100kb s 若降低到l000b s 则允许电缆长度为1200m 如图8 14所示是RS 423A接口标准的连接示意图 图8 14RS 423A接口标准 第8章串行通信与可编程8251A接口芯片 5 RS 485接口标准 RS 485是一种多发送器的电路标准 它扩展了RS 422A的性能 允许双导线上一个发送器驱动32个负载设备 负载设备可以是被动发送器 接收器和收发器 RS 485电路允许共用电话线通信 电路结构是在平衡连接电缆两端有终端电阻 在平衡电缆上挂发送器 接收器和组合发收器 RS 485标准没有规定在何时控制发送器发送或接收机接收数据 RS 485最小型由两条信号电路线组成 每条连接电路必须有接地参考点 这电缆能支持32个发送接收器对 为了避免地面漏电流的影响 每个设备一定要接地 电缆应包括连至每个设备地的第三信号参考线 若用屏蔽电缆 屏蔽应接到设备的机壳 典型的RS 232到RS422 485转换芯片有 MAX481 483 485 487 488 489 490 491 SN75175 176 184等 它们均只需单一 5v电源供电即可工作 接口示意图如图8 15所示 图8 15RS 485接口示意图 第8章串行通信与可编程8251A接口芯片 6 20mA电流环串行接口 20mA电流环是目前串行通信中广泛使用的一种接口电路 其原理如图8 16所示 由于20mA电流环是一种异步串行接口标准 所以在每次发送数据时必须以无电流的起始状态作为每一个字符的起始位 接收端检测到起始位时便开始接收字符数据 电流环串行通信接口的最大优点是低阻传输线对电气噪声不敏感 而且易实现光电隔离 因此在长距离通信时要比RS 232C优越得多 图8 1620mA电流环接口原理图 第8章串行通信与可编程8251A接口芯片 7 通信接口选择 通信速度和通信距离 这两个指标具有相关性 适当降低传输速度 可以提高通信距离 反之亦然 例如 采用RS 232C标准进行单向数据传输时 最大的传输速度为20kb s 最大的传输距离为15m 而采用RS 422A标准时 最大的传输速度可达10Mb s 最大的传输距离为300m 适当降低传输速度 传输距离可达1200m 抗干扰能力 在一些工业测控系统中 通信环境十分恶劣 因此在通信介质选择 接口标准选择时 要充分考虑抗干扰能力 并采取必要的抗干扰措施 例如在长距离传输时 使用RS 422A标准 能有效地抑制共模信号干扰 使用20mA电流环技术 能大大降低对噪声的敏感程度 在高噪声污染的环境中 通过使用光纤介质可减少噪声的干扰 通过光电隔离可以提高通信系统的安全性 第8章串行通信与可编程8251A接口芯片 8 28251A芯片引脚 内部结构和工作过程 8 2 18251A 自发自收 通信 8 2 2知识讲解 第8章串行通信与可编程8251A接口芯片 8 2 1项目2 8251A 自发自收 通信 1 项目要求与目的 1 项目要求 实验板上的8251提供通信 8253提供8251通信的波特率 编制程序实现8251串行口 自发自收 通信 即在实验程序运行之前 某个特定地址存储区域的内容为 全0 而运行实验程序后 该存储器的内容即为 特定信息 2 项目目的 了解串行口通信的协议 数据格式 了解8251和8253芯片性能及编程 第8章串行通信与可编程8251A接口芯片 2 项目电路连接与说明 1 项目电路连接 如图8 17所示的粗线为需要接的连线 连线说明为 8251的片选孔用导线接至译码处208H 20FH插孔 8251的CLK接至1MHz插孔 8251的Txclk和Rxclk接至8253的OUT1插孔 8251的RXD与TXD接通 短接 8253的片选孔用导线接至译码处200H 207H插孔 CLK1接至1MHz插孔 GATE1接到 5V插孔 2 项目说明 操作步骤如下 实验连线按照项目电路连接完毕 录入程序 编译连接以 单步方式 将光标执行到MAIN程序的第3条指令 即LEASI SBUF 的位置 第8章串行通信与可编程8251A接口芯片 打开 数据段窗口 观察第03H 17H地址中的内容 注意此时03H 0CH地址的内容为01H 0AH 它对应于程序中数据区SBUF的内容 而0DH 17H地址的内容均为00H 它对应于程序中数据区RBUF 此时的内容 将光标定位到MAIN程序最后一条指令 即HLT 的位置 执行 执行到光标所在处 的动作 执行对上述 数据段窗口 的 刷新操作 再观察0DH 17H地址的内容 此时它应为01H 0AH 若达到了上述目标 就表示 本项目达到了目的 实验成功 第8章串行通信与可编程8251A接口芯片 3 项目电路原理框图 8251A 自发自收 通信电路原理框图如图8 17所示 电路由8086CPU芯片 8251芯片 8253芯片等组成 第8章串行通信与可编程8251A接口芯片 4 项目程序设计 1 程序流程图 8251A 自发自收 通信程序流程图如图8 18所示 图8 18程序流程图 第8章串行通信与可编程8251A接口芯片 2 程序清单 上位PC机与8251A串行口通信程序清单如下所示 STACKSEGMENTSTACKSTACKENDSDATASEGMENTDATAENDSCODESEGMENT ASSUMECS CODE DS DATA SS STACKSTART PUSHCS POPDSMOVDX 203H 设置8253计数1工作方式3 方波 MOVAL 56H 01010110HOUTDX ALMOVAL 52 方波 26个高电平 26个低电平 MOVDX 201H 给8253计数器1送初值OUTDX AL 波特率1MHz 52 16 1200b sMOVDX 209H 奇地址是控制端口 初始化8251XORAL AL 清AXMOVCX 03 向8251控制端口送3个0 第8章串行通信与可编程8251A接口芯片 DELAY CALLOUT1 调子程序 向外发送一字节的子程序 LOOPDELAY 循环3次MOVAL 40H 写操作命令字 向8251控制端口送40H 使其复位 内部复位 CALLOUT1 调子程序 向外发送一字节的子程序 MOVAL 4EH 方式控制字 01001110B设置为波特率因子为16 8个数据位 一个停止位 CALLOUT1MOVAL 27H 写操作命令字 00100111B向8251送控制字允许其发送和接收CALLOUT1 NEXT MOVDX 209H 奇地址是控制端口 INAL DXTESTAL 02 状态控制字 检查接收器是否准备好JZNEXT 没有准备好 等待 循环 MOVDX 208H 偶地址是数据端口INAL DX 准备好 接收 数据在AL里PUSHAX 保存数据MOVCX 40H S51 LOOPS51 延时WAITI MOVDX 209H 第8章串行通信与可编程8251A接口芯片 INAL DXTESTAL 01 发送器是否准备好JZWAITI 没有准备好 等待 循环 MOVDX 208H 偶地址是数据端口POPAXOUTDX ALJMPNEXT OUT1PROCNEAR 向外发送一字节的子程序 OUTDX ALPUSHCXMOVCX 400HGG LOOPGG 延时POPCXRETOUT1ENDPCODEENDSENDSTART 第8章串行通信与可编程8251A接口芯片 8 2 2知识讲解 1 概述 可编程串行接口芯片有多种型号 常用的有Intel公司生产的8251A Motorola公司生产的6850 6952 8654 ZILOG公司生产的SIO及TNS公司生产的8250等 这些芯片结构和工作原理大同小异 不必一一介绍 下面以Intel公司生产的8251A为例介绍可编程串行通信接口的基本工作原理 内部结构 编程方法及应用 2 8251A芯片引脚 8251A是一个采用NMOS工艺制造的28条引脚双列直插式芯片 全部输入输出与TTL电平兼容 单一 5V电源 单一TTL电平时钟 8251A芯片引脚信号分配如图8 19所示 第8章串行通信与可编程8251A接口芯片 图8 198251A引脚信号图 第8章串行通信与可编程8251A接口芯片 8251A的28条引脚按其信号分为两组 1 8251A与CPU相连的信号线 D0 D7 双向数据线 与系统的数据总线相连 CLK 20脚 时钟信号输入线 用于产生8251A的内部时序 CLK的周期为0 42us 1 35us 为了电路可靠 CLK的时钟频率至少应是发送 接收时钟的30倍 同步方式 或4 5倍 异步方式 RESET 21脚 芯片的复位信号 当该信号处于高电平时 8251A各寄存器处于复位状态 收 发线路上均处于空闲状态 通常该信号与系统的复位线相连 11脚 片选信号 低电平有效 C 12脚 控制 数据信号 根据C 信号是1还是0 来判别当前数据总线上信息流是控制字还是与外设交换的数据 当C 1 传输的是命令 控制 状态等控制字 C 0 传输的是数据 通常将此端与地址线的A0相连 于是8251A占有两个端口地址 偶地址是数据端口 奇地址是控制端口 第8章串行通信与可编程8251A接口芯片 13脚 读信号 低电平有效 有效时 CPU正在从8251读取数据 10脚 写信号 低电平有效 有效时 CPU正在向8251写入数据 综上所述 C 信号配合起来可以决定8251A的操作 如表8 2所示 表8 2 C 的编码和对应操作 第8章串行通信与可编程8251A接口芯片 TxRDY 15脚 发送器准备好信号 输出 高电平有效 当8251A处于允许发送状态 即TxEN被置位 为低电平 并且发送缓冲器为空时 则TxRDY输出高电平 表明当前8251A已经作好了发送准备 因而CPU可以往8251A传送一个数据 在中断方式下 TxRDY可作为向CPU发出的中断请求信号 在查询方式下 则TxRDY作为状态寄存器中的D0位状态信息供CPU检测 当8251A从CPU接收了一个数据后 TxRDY输出线变为低电平 同时TxRDY状态位被复位 RxRDY 14脚 接收器准备好信号 输出 高电平有效 当RXRDY 1表示接收缓冲器已装有输入的数据 通知CPU取走数据 若用查询方式 可从状态寄存器D1位检测这个信号 若用中断方式 可用该信号作为中断申请信号 通知CPU输入数据 RXRDY 0表示输入缓冲器空 SYNDET BRKDET 16脚 同步或中止符检测信号 高电平有效 在同步方式下 SYNDET是同步检测信号 该信号既可工作在输入状态也可工作在输出状态 内同步工作时 该信号为输出信号 第8章串行通信与可编程8251A接口芯片 当SYNDET 1 表示8251A已经监测到所要求的同步字符 若为双同步 此信号在传输第二个同步字符的最后一位的中间变高 表明已经达到同步 外同步工作时 该信号为输入信号 当从SYNDET端输入一个高电平信号 接收控制电路会立即脱离对同步字符的搜索过程 开始接收数据 在异步方式下 BRKDET作为中止符检测信号 当8251A检测到对方发送的中止用来表示字符时 则从该端输出一个高电平 同时将状态寄存器的SYNDET BRKDET位置 1 TXEMPTY 18脚 发送移位寄存器空信号 当TXEMPTY 0时 发送移位寄存器已经满 当TXEMPTY 1时 发送移位寄存器空 CPU可向8251A的发送缓冲器写入数据 2 8251A与外部或调制解调器相连的信号线 RxD 3脚 数据接收端 用来接收由外设输入的串行数据 低电平为 0 高电平为 1 进入8251A后转变为并行方式 第8章串行通信与可编程8251A接口芯片 25脚 接收时钟信号 输入 在同步方式时 等于波特率 在异步方式时 可是波特率的1倍 16倍或64倍 TxD 19脚 数据发送端 输出串行数据输往外部设备 9脚 发送时钟信号 外部输入 对于同步方式 的时钟频率应等于发送数据的波特率 对于异步方式 由软件定义的发送时钟可是发送波特率的1倍 1 16倍 16 或64倍 64 24脚 数据终端准备好信号 输出 低电平有效 此信号有效时 表示接收方准备好接收数据 通知发送方 该信号可用软件编程方法控制 设置命令控制字的D1 1 执行输出指令 使线输出低电平 22脚 数据装置准备好信号 输入 低电平有效 它是对的回答信号 表示发送方准备好发送 可通过执行输入指令 读入状态控制字 检测D7位是否为1 23脚 发送方请求发送信号 输出 低电平有效 可用软件编程方法 设置命令控制字的D5 1 执行输出指令 使线输出低电平 第8章串行通信与可编程8251A接口芯片 17脚 清除发送信号 输入 低电平有效 它是对RTS的回答信号 表示接收方作好接收数据的准备 当 0时 命令控制字的TxEN 1 且发送缓冲器为空时 发送器可发送数据 3 8251A的内部结构 8251A的内部结构如图8 20所示 共有5个部分 第8章串行通信与可编程8251A接口芯片 图8 208251A的内部结构图 数据总线缓冲器 双向 三态缓冲器 用来与CPU传输数据信息 命令信息 状态信息 接收器 包括接收缓冲器 接收移位寄存器及接收控制器三部分 串行接口收到的数据 转变成并行数据后 存放在该缓冲器中 以供CPU读取 发送器 包含发送缓冲器 发送移位寄存器 发送控制器三部分 是一个分时使用的双功能缓冲器 一方面 CPU把发送的并行数据存放在该区中 准备由串行接口向外发送 另一方面 命令字也存放在这里 以指挥串行口工作 读 写逻辑电路 用来接收CPU的控制信号 以控制数据的传输方向 调制解调器控制电路 用来简化8251A和调制解调器的连接 提供与调制解调器的联络信号 4 8251A的工作过程 1 接收器的工作过程 当控制命令字的 允许接收 位RxE D2位 和 准备好接收数据 位DTR D1位 有效时 接收控制器开始监视RxD线 第8章串行通信与可编程8251A接口芯片 外设数据从RxD端逐位进入接收移位寄存器中 接收中对同步和异步两种方式采用不同的处理过程 异步方式时 当发现RxD线上的电平由高电平变为低电平时 认为是起始位到来 然后接收器开始接收一帧信息 接收到的信息经过删除起始位和停止位 把已转换成的并行数据置入接收数据缓冲器 同步方式时 每出现一个数据位移位寄存器就把它移一位 把移位寄存器数据与程序设定的存于同步字符寄存器中的同步字符相比较 若不相等重复上述过程 直到与同步字符相等后 则使SYNDET 1 表示已达到同步 这时在接收时钟的同步下 开始接收数据 RxD线上的数据送入移位寄存器 按规定的位数将它组装成并行数据 再把它送至接收数据缓冲器中 当接收数据缓冲器接收到由外设传送来的数据后 发出 接收准备就绪 RxRDY信号 通知CPU取走数据 第8章串行通信与可编程8251A接口芯片 2 发送器的工作过程 当操作命令寄存器中的TxEN 1 D0位 且引脚 0时 才能开始发送过程 接收来自CPU的数据并存入发送缓冲器 发送缓冲器存有待发送的数据后 使引脚TxRDY变为低电平 表示发送缓冲器满 当调制解调器做好接收数据的准备后 向8251A输入一个低电平信号 使 低电平有效 引脚有效 在编写初始化命令时 使操作命令控制字的TxEN位 D0位 为高 让发送器处于允许发送的状态下 满足以上 条件时 若采用同步方式 发送器将根据程序的设定自动送一个 单同步 或两个 双同步 同步字符 然后由移位寄存器从数据输出线TxD串行输出数据块 若采用异步方式 由发送控制器在其首尾加上起始位及停止位 然后从起始位开始 经移位寄存器从数据输出线TxD串行输出 待数据发送完毕 使TxEMPTY有效 高电平 CPU可向8251A发送缓冲器写入下一个数据 第8章串行通信与可编程8251A接口芯片 8 38251A方式控制字及初始化编程 8 3 1 上位PC机与8251A串行口通信 8 3 2 知识讲解 第8章串行通信与可编程8251A接口芯片 8 3 1项目3 上位PC机与8251A串行口通信 1 项目要求与目的 1 项目要求 利用上位PC机与实验板上的8251A进行通信 实验板上的8251A提供通信 8253提供8251A通信的波特率 编制程序实现 上位PC机与实验板上的8251A串行口进行通信 2 项目目的 了解串行口通信的协议 数据格式 了解通信电缆的制作 掌握PC机与下位机的通信方法 掌握8251和8253芯片性能及编程 第8章串行通信与可编程8251A接口芯片 2 项目电路连接与说明 1 项目电路连接 如图8 22所示的粗线为需要接的连线 连线说明为 上位PC机通过9针RS 232C与实验箱9针RS 232C接口相连 8251的片选孔用导线接至译码处208H 20FH插孔 8251的CLK接至1MHz插孔 8251的Txclk和Rxclk接至8253的OUT1插孔 8251的RXD接通信接口的RXD插孔 8251的TXD接通信接口的TXD插孔 8253的片选孔用导线接至译码处200H 207H插孔 CLK1接至1MHz插孔 GATE1接到 5V插孔 2 项目说明 本实验需要一根9针串口线将实验箱的串口与PC机串口相连 第8章串行通信与可编程8251A接口芯片 首先用串口线把实验箱与PC机连接好 实验连线按照项目电路连接完毕 录入程序 编译连接运行后 打开从网上下载的 串口调试助手 设置好串口 波特率设置为1200 可看到在发送区输入数据 就可在接收区看到显示的数据如图8 21所示 图8 21串口调试助手效果图 第8章串行通信与可编程8251A接口芯片 3 项目电路原理框图 项目电路原理框图如图8 22所示 电路由上位机PC机 8086CPU芯片 8251芯片 8253芯片 8255A芯片 开关和发光二极管LED等组成 图8 22电路原理框图 第8章串行通信与可编程8251A接口芯片 4 项目程序设计 1 程序流程图 上位PC机与8251A串行口通信程序流程图如图8 23所示 图8 23程序流程图 第8章串行通信与可编程8251A接口芯片 2 程序清单 上位PC机与8251A串行口通信程序清单如下所示 STACKSEGMENTSTACKSTACKENDSDATASEGMENTDATAENDSCODESEGMENTASSUMECS CODE DS DATA SS STACKSTART PUSHCSPOPDSMOVDX 203H 设置8253计数1工作方式3 方波 MOVAL 56H 01010110BOUTDX ALMOVAL 52 方波 26个高电平 26个低电平 MOVDX 201H 给8253计数器1送初值OUTDX AL 波特率1MHz 52 16 1200b s 第8章串行通信与可编程8251A接口芯片 MOVDX 209H 奇地址是控制端口 初始化8251XORAL AL 清AXMOVCX 03 向8251控制端口送3个0DELAY CALLOUT1 调子程序 向外发送一字节的子程序 LOOPDELAY 循环3次MOVAL 40H 写操作命令字 向8251控制端口送40H 使其复位 内部复位 CALLOUT1 调子程序 向外发送一字节的子程序 MOVAL 4EH 方式控制字 01001110B设置为波特率因子为16 8个数据位 1个停止位CALLOUT1MOVAL 27H 写操作命令字 00100111B向8251送控制字允许其发送和接收CALLOUT1NEXT MOVDX 209H 奇地址是控制端口 第8章串行通信与可编程8251A接口芯片 INAL DXTESTAL 02 状态控制字检查接收器是否准备好 D1位 1准备好 JZNEXT D1 0 没有准备好 等待 循环 MOVDX 208H 偶地址是数据端口INAL DX 准备好 接收 数据在AL里PUSHAX 保存数据MOVCX 40HS51 LOOPS51 延时WAITI MOVDX 209H 奇地址是控制端口INAL DXTESTAL 01 发送器是否准备好 D0 1吗 JZWAITI D0 0 没有准备好 等待 循环 MOVDX 208H 偶地址是数据端口 第8章串行通信与可编程8251A接口芯片 POPAXOUTDX ALJMPNEXTOUT1PROCNEAR 向外发送一字节的子程序OUTDX ALPUSHCXMOVCX 400HGG LOOPGG 延时POPCXRETOUT1ENDPCODEENDSENDSTART 第8章串行通信与可编程8251A接口芯片 8 3 2知识讲解 1 8251A的方式控制字 8251A芯片在工作前要先对其初始化 以确定其工作方式 三种控制字 分别为工作方式控制字 操作命令控制字和状态控制字 8251A方式控制字各位的定义如图8 24所示 第8章串行通信与可编程8251A接口芯片 图8 248251A方式控制字 方式控制字决定8251A是工作在异步方式还是同步方式 在异步方式时 关于传送的数据位的位数 停止位的位数图 传送速率等的约定 在同步方式时 是双同步还是单同步等约定 B2 B1两位有两个作用 一是确定通信方式是同步还是异步方式 另一个是确定异步通信方式的传送的速率 如 64表示时钟频率是发送或接收波特率的64倍 其它类推 2 操作命令字 使8251A处于发送或接收数据状态 通知外设准备接收或发送数据 都是通过CPU执行输出命令发出相应的操作命令字来实现的 操作命令控制字各位的定义如图8 25所示 第8章串行通信与可编程8251A接口芯片 图8 258251A操作命令字 第8章串行通信与可编程8251A接口芯片 TXEN位 发送允许位 TxEN 1允许发送 TxEN 0禁止发送 该位可以作为是否允许TxD线向外设串行发送数据 DTR位 数据终端准备就绪 DTR 1 使DTR有效 表示终端设备已经准备好 DTR 0使DTR无效 RXE位 允许接收位 决定是否允许RxD线接收外部输入的串行数据 RxE 1 允许接收 RxE 0禁止接收 SBRK位 发断缺字符位 SBRK 1 强迫TxD为低电平 输出连续的空号 SBRK 0 正常操作 正常通信时 SBRK位应为0 ER位 清除错误标志位 该位是针对状态控制字的D3 D4和D5位进行操作的 D3 D4 D5位分别表示奇偶错 帧错和溢出错 ER 1 使错误标志位复位 ER 0 不复位 RTS位 发送请求位 RTS 1 使RTS有效 RTS 0 置RTS无效 第8章串行通信与可编程8251A接口芯片 IR位 内部复位信号 IR 1 迫使8251A复位 使8251A回到接收工作方式控制字的状态 EH位 进入收索方式 EH只对同步方式有效 EH 1 启动收索同步字符 EH 0 不收索同步字符 因此对于同步工作方式 一旦允许接收 RxE 1 还必须使EH 1 并且ER 1 清除全部错误标志 才能开始收索同步字符 3 状态字 CPU通过输入指令读取状态字 了解8251A传送数据时所处的状态 作出是否发出命令 是否继续下一个数据传送的决定 状态字存放在状态寄存器中 CPU只能读状态寄存器 而不能对它写入内容 状态字各位表示的意义如图8 26所示 第8章串行通信与可编程8251A接口芯片 图8 268251A状态寄存器 第8章串行通信与可编程8251A接口芯片 TxRDY位 发送器准备好 此状态位TxRDY与引脚TxRDY的意义有些区别 此状态位TxRDY 1 反映当前发送缓冲器已空 而对于TxRDY引脚 必须在发送缓冲器空 状态位TxRDY位为1 控制字中TxEN 1 并且外设或调制解调器接收数据方可以接收下一个数据时 才能使TxRDY引脚有效 RxRDY位 接收器准备好 RxRDY位为1表明接收缓冲器已装有输入数据 CPU可以取走该数据 引脚端RxRDY为高 也表明接收缓冲器已装有输入数据 RxRDY位与8251A芯片的RxRDY引脚状态相同 RxRDY引脚可供CPU查询 也可作为对CPU的中断申请信号 申请CPU取走数据 TxEMPTY位 发送器空 TxEMPTY位和SYNDET BRKDET位与8251A的同步引脚的状态完全相同 可供CPU查询 PE位 奇偶错 当奇偶错被检测出来时 PE置1 PE有效并不禁止8251A工作 它由工作命令字中的ER位复位 第8章串行通信与可编程8251A接口芯片 OE位 溢出错 当前一字符尚未被CPU取走 后一个字符已变位有效 则OE置1 OE有效不禁止8251A的操作 但是被溢出的字符丢掉了 OE被工作命令字的ER位复位 FE位 帧出错 只用于异步方式 若在任一字符的结尾没有检测到规定的停止位 则FE置1 由命令字的ER位复位 不影响8251的操作 SYNDET BRKDET位 同步方式位为SYNDET 异步方式为BRKDET 在异步方式 若接收到断缺字符 则BRKDET置1 在同步方式 若接收到同步字符 则BRKDET置1 DSR位 数据装置准备好 该反映8251芯片的DSR引脚是否有效 若DSR引脚有效 则DSR置1 即用来检测调制解调器或外设发送方是否准备好要发送的数据 第8章串行通信与可编程8251A接口芯片 4 初始化编程 在传送数据前要对8251A进行初始化 才能确定发送方与接收方的通信格式 以及通信的时序 从而保证准确无误地传送数据 由于三个控制字没有特征位 且工作方式控制字和操作命令控制字放入同一个端口 因而要求按一定顺序写入控制字 不能颠倒 正确顺序如图8 27所示 方式控制字必须跟在复位命令之后 这样8251A才可重新设置方式控制字 改变工作方式完成其他传送任务 第8章串行通信与可编程8251A接口芯片 图8 278251A初始化流程图 例8 1 编写一段采用查询式接收数据的程序 将8251A定义为异步传送方式 波特率系数为64 7位数据位 采用偶校验 1位停止位 设8251A端口地址为208H 20FH 解 初始化编程如下 MOVDX 209H 8251A控制端口地址 奇地址是8251控制端口 MOVAL 7BH 01111011B写工作方式控制字 波特率系数为64 7位数据位 采用偶校验 1位停止位OUTDX ALMOVAL 14H 00010100B写操作命令控制字 接收数据 正常工作 清除错误标志OUTDX ALLOOP1 INAL DX 读入状态控制字ANDAL 02H AL 00000010BJZLOOP1 采用查询 检查RxRDY是否为1 0转LOOP1 MOVDX 208H 8251A数据端口地址 偶地址是8251数据端口 INAL DX 输入数据 第8章串行通信与可编程8251A接口芯片 例8 2 编写一段使8251A发送数据的程序 数据为88H 将8251A定为异步传送方式 波特率系数为64 7位数据位 采用偶校验 1位停止位 8251A与外设有握手信号 采用查询方式发送数据 设8251A端口地址为208H 20FH 解 初始化编程如下 MOVDX 209H 8251A控制端口地址 奇地址是8251控制端口 MOVAL 7BH 01111011写工作方式控制字 异步 64 7位数据位 偶校验 1位停止位OUTDX ALMOVAL 31H 00110001B写操作命令控制字 发送数据 正常工作 清除错误标志 请求发送OUTDX ALLOOP1 INAL DXTESTAL 01H 检查TxRDY是否为1JZLOOP1 0转LOOP1 MOVDX 208H 8251A数据端口地址MOVAL 88H 输出的数据送ALOUTDX AL 第8章串行通信与可编程8251A接口芯片 例8 3 编写接收数据的初始化程序 要求8251A采用同步传送方式 2个同步字符 内同步 偶校验 7位数据位和同步字符为16H 设8251A端口地址为208H 20FH 解 初始化编程如下 MOVDX 209H 控制口地址送DXMOVAL 38H 00111000B写工作方式控制字 同步方式 7位数据位 偶校验 2个同步字符 内同步MOVDX ALMOVAL 16H 同步字符送ALOUTDX ALOUTDX AL 输入两个同步字符MOVAL 96H 10010110B写操作命令控制字 数据终端准备好 接收数据 正常工作 清除错误标志 为跟踪方式OUTDX AL 例8 4 分析项目1 2 3 4 5工程应用程序 第8章串行通信与可编程8251A接口芯片 8 4项目扩展与工程应用 8 4 1 用1号机控制2号机LED左循环显示 8 4 2 用PC机控制LED显示 第8章串行通信与可编程8251A接口芯片 8 4 1项目4 用1号机控制2号机LED左循环显示 1 项目要求与目的 1 项目要求 利用两台实验箱上的8251A进行通信 即1号机实验板上的8251A与2号机8251A进行通信 实现1号机控制2号机的LED左循环亮 两台实验箱上的8251A提供通信 8253提供8251A通信的波特率 8255控制8只发光二极管和1只开关K0 编制程序实现 当1号机上的开关K0闭合 2号机上的发光二极管LED左循显示 2 项目目的 了解两个8251A之间通信方法 了解8251 8253和8255芯片性能及编程 通过项目了解双机通信编程方法 第8章串行通信与可编程8251A接口芯片 2 项目电路连接与说明 1 项目电路连接 如图8 28所示的粗线为需要接的连线 连线说明如下 1号机的实验箱通过9针RS 232C与2号机实验箱9针RS 232C接口相连 8251的片选孔用导线接至译码处208H 20FH插孔 8251的CLK接至1MHz插孔 8251的Txclk和Rxclk接至8253的OUT1插孔 8251的RXD接通信接口的RXD插孔 8251的TXD接通信接口的TXD插孔 8253的片选孔用导线接至译码处200H 207H插孔 CLK1接至1MHz插孔 GATE1接到 5V插孔 8255的片选孔用导线接至译码处210H 217H插孔 开关K0用导线接至8255的PA0 第8章串行通信与可编程8251A接口芯片 2号机的8251的片选孔用导线接至译码处208H 20FH插孔 8251的CLK接至1MHz插孔 8251的Txclk和Rxclk接至8253的OUT1插孔 8251的RXD接通信接口的RXD插孔 8251的TXD接通信接口的TXD插孔 8253的片选孔用导线接至译码处200H 207H插孔 CLK1接至1MHz插孔 GATE1接到 5V插孔 8255的片选孔用导线接至译码处210H 217H插孔 发光二极管LED的L0 L7分别用导线接至8255的PA0 PA7 2 项目说明 本实验需要一根9针串口线将两台实验箱的串口相连 首先用串口线把两台实验箱连接好 实验连线按照项目电路连接完毕 各自录入程序 编译连接运行后 当1号机K0闭合时就可看到2号机的发光二极管LED左循显示 第8章串行通信与可编程8251A接口芯片 3 项目电路原理框图 项目电路原理框图如图8 28所示 电路由1号机8086CPU芯片 8251芯片 8253芯片 8255A芯片和开关等组成 2号机也由8086CPU芯片 8251芯片 8253芯片 8255A芯片和发光二极管LED等组成 用1号机控制2号机LED左循环显示 图8 28用1号机控制2号机LED左循环显示电路原理框图 第8章串行通信与可编程8251A接口芯片 4 项目程序设计 1 程序流程图 用1号机控制2号机LED左循环显示程序流程图如图8 29所示 a 发送程序流程图 b 接收程序流程图图8 29用1号机控制2号机LED左循环显示程序流程图 第8章串行通信与可编程8251A接口芯片 2 程序清单 用1号机控制2号机LED左循环显示程序清单如下所示 1号机发送程序清单如下 STACKSEGMENTSTACKSTACKENDSDATASEGMENTDATAENDSCODESEGMENTASSUMECS CODE DS DATA SS STACKSTART PUSHCSPOPDSMOVDX 213H 初始化8255 MOVAL 90H PA口输入 方式0OUTDX ALMOVDX 203H 设置8253计数1工作方式3 方波 MOVAL 56H 01010110BOUTDX AL 第8章串行通信与可编程8251A接口芯片 MOVAL 52MOVDX 201H 给8253计数器1送初值OUTDX AL 波特率1MHz 52 16 1200b sMOVDX 209H 奇地址是8251控制端口 初始化8251XORAL AL清零MOVCX 03 向8251控制端口送3个0DELAY CALLOUT1 调子程序 向外发送一字节的子程序 LOOPDELAY 循环3次MOVAL 40H 写操作命令字 向8251控制端口送40H 使其复位 内部复位 CALLOUT1 调子程序 向外发送一字节的子程序 MOVAL 4EH 8251方式控制字 01001110B设置为波特率因子为16 8个数据位 1个停止位CALLOUT1MOVAL 27H 8251写操作命令字 00100111B向8251送控制字允许其发送和接收 第8章串行通信与可编程8251A接口芯片 CALLOUT1BG MOVDX 209H 8251控制口INAL DXTESTAL 01 发送器是否准备好 发送器有数据吗 JZBG 没有准备好 等待 循环 MOVDX 210H 8255PA地址INAL DX 读开关的状态TESTAL 01H K0闭合吗 JNZBG K0 0转移BGMOVAL 0FFH 发一个标识 FFH MOVDX 208H 偶地址是数据端口OUTDX AL 把开关的状态发送给2号机JMPBGOUT1PROCNEAR 向外发送一字节的子程序OUTDX ALPUSHCXMOVCX 400H 第8章串行通信与可编程8251A接口芯片 GG LOOPGG 延时POPCXRETOUT1ENDPCODEENDSENDSTART 2号机接收程序清单如下所示 STACKSEGMENTSTACKSTACKENDSDATASEGMENTDATAENDSCODESEGMENTASSUMECS CODE DS DATA SS STACKSTART PUSHCSPOPDSMOVDX 213H 初始化8255MOVAL 83H PA口输出 方式0OUTDX ALMOVDX 210H PA口地址 第8章串行通信与可编程8251A接口芯片 MOVBL 0FEH 置LED显示初值MOVAL BLOUTDX ALMOVDX 203H 设置8253计数1工作方式3 方波 MOVAL 56H 01010110BOUTDX ALMOVAL 52MOVDX 201H 给8253计数器1送初值OUTDX AL 波特率1MHz 5
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!