第9章 串行通信接口技术.ppt_第1页
第9章 串行通信接口技术.ppt_第2页
第9章 串行通信接口技术.ppt_第3页
第9章 串行通信接口技术.ppt_第4页
第9章 串行通信接口技术.ppt_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

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

文档简介

第9章串行通信接口技术 9 1串行通信概述9 1 1串行通信基本概念9 1 2串行通信基本方式9 1 3数据传送的工作方式9 1 4RS 232串行通信标准9 1 5其它串行通信标准 USB 1394 9 2串行接口芯片165509 2 116550的内部结构9 2 216550的引脚信号9 2 316550的内部寄存器及其初始化编程9 316550的应用举例 双微机串行通信 9 316550的应用举例 9 1串行通信概述 9 1 1串行通信基本概念系统与外设之间的信息交换过程称为通信 根据系统与外设之间的连线结构和数据发送方式的不同 通信方式分为并行通信和串行通信两种基本方式 并行通信中 数据的各位同时传送称为并行通信 优点是速度快 效率高 缺点是有多少数据位就需多少根数据线 而且还要收发时钟信号和片选信号 因此传送成本高 且只适用于近距离 相距数米或十数米 的通信 如图9 1 a 所示串行通信中 数据的各位逐位按顺序传送称为串行通信 优点是所需传输线少 适合远距离传输 几米到几千米 成本低 抗干扰能力强 缺点是传送速度慢 如图9 1 b 所示 图9 1串行通信与并行通信的区别 9 1 2串行通信基本方式串行通信可分为异步传送和同步传送两种方式 下面分别说明 1 异步传送方式异步传送方式采用每个字符都按照一个独立的整体进行发送 字符的间隔时间可以任意变化 即每个字符作为独立的信息单位 帧 可以随机地出现在数据流中 所谓 异步 就是指通信时两个字符之间的间隔事先不能确定 也没有严格的定时要求 异步传送方式规定字符由起始位 startbit 数据位 databit 奇偶校验位 parity 和停止位 stopbit 组成 一个字符一个字符地传输 每个字符一位一位地传输 并且传输一个字符时 总是以 起始位 开始 以 停止位 结束 字符之间没有固定的时间间隔要求 每一个字符的前面都有一位起始位 表示一个字符的开始 接收方可以用起始位使自已的接收时钟与数据同步 字符本身由5 7位数据位组成 接着字符后面是一位校验位 也可以没有校验位 最后是一位或一位半或二位停止位 停止位后面是不定长的空闲位 如图9 2所示 图9 2异步串行通信格式 在异步传送中 CPU与外部设备之间的通信遵循以下规定 1 字符格式 字符格式是指字符的编码形式及其规定 例如 规定每个串行字符由4个部分组成 1个起始位 5 8个数据位 1个奇偶校验位以及1 2个停止位 2 传输速率 传输速率是指每秒钟传送的二进制位数 通常称为波特率 BandRate 国际上规定了标准波特率系列 最常用的标准波特率是 110 300 600 1200 l800 2400 4800 9600 115200 19200波特等 3 字符速率 字符速率是指每秒钟传送的字符数 它与波特率是两个相关但表达的意义不相同的概念 例如 若异步通信的数据格式由1位起始位 8位数据位 1位奇偶校验位 2位停止位组成 波特率为9600b s 则每秒钟能够最多传送9600 1 8 1 2 800个字符 采用异步通信格式的优点是 控制简单 不需收发双方时钟频率保持完全一致 可以有偏差 纠错方便 其缺点是一旦传输出错 则需要重发 传输效率低 信息冗余大 例9 1 异步传输8位ASCII码 如果需要数据传输速率为200字符 秒 使用1位起始位 1位奇偶校验位和2位停止位 则 波特率应该是多少 有效数据位传输位是多少 传输效率是多少 答 波特率是 8位数据位 1位起始位 1位校验位 2位 停止位 200 2400b s 有效数据位传输位是 8 200 1600b s 传输效率是 1600 2400 66 7 2 同步传送方式异步通信中 降低了传输效率 因此在大批量数据传送时 为了提高速度 就要设法去掉这些标志 而采用同步传送方式 同步通信是一种数据连续传输的串行通信方式 通信时 发送方把需要发送的多个字节数据和校验信息连接起来 组成数据块 发送时 发送方只需在数据块前插入1 2个特殊的同步字符 然后按特定速率逐位输出 发送 数据块内的各位数据 接收方在接收到特定的同步字符后 也按相同速率接收数据块内的各位数据 显然 在这种通信方式中 数据块内各字节数据之间没有间隔 传输效率高 但发送 接收双方必须保持同步 使用同一时钟信号 且数据块长度越大 对同步要求就越高 因此 同步通信设备复杂 发送方能自动插入同步字符 接收方能自动检测出同步字符 且发送 接收时钟相同 即除了数据线 地址线外 还需要时钟信号线 成本高 一般只用在高速数字通信系统中 典型的同步通信数据格式如下 图9 3同步串行通信格式 同步传送速度高于异步传送速度 但它要求由时钟来实现发送端及接收端之间的同步 所以 硬件电路比较复杂 通常用于计算机之间的通信 或计算机到CRT等外设之间的通信 9 1 3数据传送的工作方式串行通信中 按照同一时刻数据流的方向可分为三种基本传送模式 单工传送 半双工传送和全双工传送 1 单工 simplex 方式单工传送方式仅支持在一个方向上的数据传送 如图9 4 a 所示 由设备A传送到设备B 即在这种传送模式中 A只作为发送器 B只作为接收器 反之不可 2 半双工 Half duplex 方式半双工传送方式支持在设备A和设备B之间交替相互地传送数据 如图9 4 b 所示 即设备A发送数据到设备B时 B为接收器 接受完后设备B也可以做发送器发送数据到设备A A为接收器 由于A B之间仅一根数据传送线 它们都有独立的发送器和接收器 所以在同一个时刻只能进行一个方向的传送 3 全双工 Full duplex 方式全双工传送方式支持数据在两个方向同时相互传送 如图9 4 C 所示 即设备A可发送数据到设备B B也可以发送数据到设备A 它们都有独立的发送器和接收器 并有两条传送线 图9 4数据传输方式 a 单工 b 半双工 c 全双工 9 1 4RS 232串行通信标准1 串行接口RS 232C标准RS 232C是美国电子工业协会EIA于1962年发布 并于1969年修订的串行接口标准 已成为国际上通用的标准 RS是英文 推荐标准 的缩写 232为标识号 C表示修改次数 RS 232 C总线标准采用DB25连接器 设有25条信号线 包括一个主通道和一个辅助通道 在多数情况下主要使用主通道 串行接口目前最普遍的用途是连接鼠制解调器以及工业自动化控制中 常被称为异步通信适配器接口 串行接口插座也可以采用简化的DB9连接器 目前RS 232C已成为数据终端设备DTE与数据通信设备DCE的接口标准 不仅在远距离通信中要经常用到它 就是两台计算机或设备之间的近距离串行连接也普遍采用RS 232C接口 2 RS 232C引脚定义串行通信RS 232是一种总线标准 这个标准仅保证硬件兼容而没有软件兼容 RS 232C标准接口的引脚排列如图9 5所示 简化标准接口的引脚排列如图9 6所示 图9 5RS 232C标准DB25接口的引脚排列 图9 6RS 232C简化DB9接口的引脚排列 3 引脚功能RS 232C最初设计为计算机 称为数据终端设备DTE DataTerminalEquipment和数据通信设备DCE DataCommunicationEquipment 如MODEM 的连接 引脚功能见表9 1 表9 1RS 232C标准接口的引脚功能定义 4 RS 232C的连接通过PC机的可以连接外围设备 如调制解调器 鼠标等 RS 232C广泛用于数字终端设备 如计算机与调制解调器之间的接口 以实现通过电话线路进行远距离通信 如图9 7所示 尽管RS 232C使用20个信号线 绝大多数情况下 微型计算机 计算机终端和一些外部设备都配有RS 232C串行接口 在它们之间进行短距离通信时 无需电话线和调制解调器就可以直接相连 如图9 8所示 图9 8 a 是最简单的只用3线实现相连的通信方式 从中可见 为了交换信息 TXD和RXD应当交叉连接 因为不使用联络信号 所以程序中不必使RTS和DTR有效 也不应检测CTS和DSR是否有效 图9 8 b 中RTS和CTS互接 以满足全双工通信的联络控制要求 异步串行通信若采用图9 8 a 或图9 8 b 所示的3线连接方式 应注意传输的可靠性 因为发送方根本无法知道接收方什么时候可以接收数据 所以在软件设计时应发送一个字符 等待接收方确认之后 如回送一个响应字符 再发送下一个字符 图9 7使用Modem的RS 232C接口 图9 8不用Modem的RS 232C接口 9 8 a 虽然使用了联络信号 但实际上通信双方并未真正相连 图9 8 c 是另一种利用RS 232C直接互连的通信方式 这种方式下的通信更加可靠 但所用连线较多 由于上述连接不使用调制解调器 所以也称为零调制解调器连接 NullModem 5 RS 232C的电气特性为了保证数据正确地传送 必要使所用的信号电平保持一致 为满足此要求 RS 232C标准规定了数据和控制信号的电压范围 由于RS 232C是在TTL集成电路之前制定的 所以它的电平不是 5V和地 它规定 高电平为 3 15V 低电平为 15 3V 在实际应用中 常采用 12V或 15V RS 232C可承受 25V的信号电压 另外 要注意RS 232C数据线TXD和RXD使用负逻辑 即高电平表示逻辑0 用符号SPACE 空号 表示 低电平表示逻辑1 用符号MARK 传号 表示 其它控制线均为正逻辑 高电平有效 为ON状态 低电平无效 为OFF状态 由于发送器 接收器芯片使用TTL电平 但RS 232C却使用上述EIA电平 所以为满足EIA电气特性 必须在发送器 接收器与RS 232C接口之间使用转换器件 如SN75150 MC1488等芯片完成TTL电平到EIA电平的转换 而SN75154 MCI489等芯片可完成EIA电平到TTL电平的转换 电平转换器不仅可以由晶体管分立元件构成 也可以直接使用集成电路 目前美信的MAX232芯片使用较多 该芯片使用单端 5V电源供电实现电平转换 引脚含义说明如下 Vcc 16脚 正 5V电源端 GND 15脚 地 VS 2脚 VS 2Vcc 1 5V 8 5V VS 6脚 VS 2Vcc 1 5V 11 5V C2 C2 4 5脚 一般接1 F的电解电容 C1 C1 1 3脚 一般接1 F的电解电容 输入输出引脚分两组 基本含义见表9 2 在实际使用时 若只需要一路SCI 可以使用其中的任何一组 图9 9电平转换电路 6 RS 232C的缺点 RS 232C既是一种协议标准 又是一种电气标准 缺点如下 1 传输速率不够快 最高速率为20kb s 不能适应高速的同步通信 2 传输距离不够远标准规定各装置之间电缆长度不超过50英尺 约15m 实际上 RS 232C能够实现90英尺或200英尺的传输 但在使用前 一定要先测试信号的质量 以保证数据的正确传输 3 RS 232C接口易产生串扰RS 232C接口采用不平衡的发送器和接收器 每个信号只有一根导线 两个传输方向仅有一个信号线地线 电气性能不佳 易在信号间产生串扰 9 1 5其它串行通信标准 USB 1394 随着外围设备日益丰富 人们期盼能简单易行地对外设进行扩充 希望能获得一个高性价比的标准接口 执行灵活的协议 广泛接纳各种设备 串行通信总线USB提供了外设共享接口 解决了个人计算机与周边设备的通用连接 USB和IEEE1394实现了多媒体可视化动态视频与音频信息的实时数据传输 尤其USB 适合低 中 高速外设的通用连接 价廉易用 许多人都期待其实现对计算机外设接口的大一统 1 USB UniversalSerialBUS 通用串行总线 传统的接口电路每增加一种设备 就需要为它准备一种接口或插座 还要为它们准备各自的驱动程序 这些接口 插座 驱动程序各不相同 给使用和维护带来了困难 由Intel等公司开发的USB总线采用通用的连接器 采用热插拔技术以及相应的软件 使得外设的连接和使用大大地简化 受到了普遍欢迎 目前已经成为流行的外设接口 1 USB总线的特点USB是一种即插即用的新型串接口 全称是通用串行总线 UniversalSerialBus USB总线具有以下特点 1 为所有的USB外设提供了单一的 易于操作的连接类型 简化了用户在判断哪个插头对应哪个插槽的任务 2 排除了对鼠标 调制解调器 键盘和打印机不同接口的需求 采用4线电缆 2根作为数据传输线 其余2根用来为设备提供电源 减少了硬件设计的复杂性 3 支持热插拔 在不用关机的情况下可以安全地插上和断开USB设备 其它外部设备连接标准 如SCSI等必须在关掉主机的情况下才能连接或移除外设 4 PNP PlagandPlay 即插即用 当插入USB设备的时候 主计算机设备检测该外设并巳通过加载相关的驱动程序对该设备进行配置 5 USB在设备供电方面提供了灵活性 USB直接连接的设备可以通过USB电缆提供5V 90mA的电源供USB设备使用 而带电源的USBHub使得每个接口可以提供500mA的电流 6 USBV1 1规范提供全速12Mbps的模式和低速1 5Mbps的模式 USBV2 0规范提供高达480Mbps的数据传输速率 可以适应各种不同类型的外设 7 针对突然发生的非连续传输设备 如音频和视频设备 USB在满足带宽的情况下才进行该类型的数据传输 8 为了适应各种不同类型外围设备的要求 USB根供了四种不同的数据传输类型 9 USB使得多个外围设备可以跟主机通信 最多支持127个设备 电脑的USB接口有限 必须使用USBHub增加分支 根据USB规范 USBHub最多提供7个分支 2 数据传输类型USB总线上的每个设备都有一个由主机分配的惟一地址 由主机通过集线器在一个自动识别过程中分配 USB总线上的数据传输是一种 主 从式 的传输 所有的传输都由USB主机发起 USB设备仅在主机对它提出要求时才进行传输 根据USB设备自身的使用特点和系统资源的不同要求 USB规范中规定了4种不同的数据传输方式 1 同步 isochronous 方式传输 提供了确定的带宽和间隔时间 以固定的传输速率 连续不断地在主机与USB设备之间传输数据 在传送数据发生错误时 USB并不处理这些错误 数据发生错误时 USB并不处理这些错误而是继续传送新的数据 它被用于时间严格并具有较强容错性的流数据传输或者用于要求恒定的数据传输率的即时应用中 2 中断传输方式 Interrupt 该方式传送的数据量很小 但这些数据需要及时处理 以达到实时效果 此方式主要用于定时查询设备是否有中断数据要传输 3 控制传输方式 Control 双向传输 数据量通常较小 用来处理主机到USB设备的数据传输 包括设备控制指令 设备状态查询及确认命令 4 批 Bulk 传输方式 应用在数据大量传输和接受数据上 同时又没有带宽和间隔时间要求的情况下 要求保证传输正确无误的数据 3 USB总线的电气特性和机械特性1 电气特性 USB总线通过一条4芯电缆传送电源和数据 电缆以点到点方式在设备之间连接 USB接口的4条连接线是VBUS GND D 和D VBUS和GND这一对线用来向设备提供电源 在源端 VBUS通常为 5V USB主机和USB设备中通常包含电源管理部件 D 和D 是发送和接收数据的半双工差分信号线 时钟信号也被编码在这对数据线中传输 每个分组中都包含同步字段 以便接收端能够同步于比特时钟 2 机械特性USB连接器分为A系列和B系列两种 A系列用于和主机连接 B系列用于和USB设备的连接 这两种连接器有不同的结构 不会造成误连接 4 USB总线的拓朴结构总线拓扑结构如图9 9所示 主要有以下几个部件 1 USB主机在整个USB系统中只允许有一个主机 主计算机系统的USB接口称之为USB主控制器 这里USB主控制器可以是硬件 固件或软件的联合体 而根集线器是集成在主机系统中的 它可以提供一个或更多的接入端口 2 USB设备USB设备是USB协议的具体实现 这里从协议的角度再来讲述一下USB设备 主要包括集线器 提供用以访问USB总线的更多的接入点 功能部件 向系统提供特定的功能 如ISDN连接设备 鼠标 显示器等 图9 9USB的拓扑结构 5 USB系统的构成USB规范将USB分为5个部分 各部分的主要功能如下 1 控制器 主要负责执行由控制器驱动程序发出的命令 2 控制器驱动程序 在控制器与USB设备之间建立通信信道 3 USB芯片驱动程序 提供对USB的支持 4 USB设备 包括与PC相连的USB外围设备 分为两类 一类设备本身可再接其他USB外围设备 另一类设备本身不可再连接其他外围设备 前者称为集线器 Hub 后者称为设备 或者说 集线器带有连接其他外围设备的USB端口 而设备则是连接在计算机上用来完成特定功能并符合USB规范的设备单元 如鼠标和键盘等 5 USB设备驱动程序 就是用来驱动USB设备的程序 通常由操作系统或USB设备制造商提供 如平常所说的Modem驱动程序和打印机驱动程序等 2 1394USB总线价格低廉 性能优良 已经广泛用于各种外设接口 如键盘 鼠标 扫描仪 Modem 打印机 移动存储 游戏杆等 视频音像等多媒体数据传输要求超高速的传输率 这类数据对时间反应极为敏感 USB1 x不能适应这种超高速传输 IEEE1394高速串行总线 又称Firewire串行总线 正好满足了这种高端需求 1 IEEE1394功能 1394是10多年前由IEEE制定的高速数据传输串行总线标准 1394的数据传输率为90Mbps 200Mbps 400Mbps和800Mbps 适用于消费类电子设备 IEEE1394标准支持的数据传输率将达到1 6Gbps和3 2Gbps 适用于高吞吐量的数据传输 IEEE1394总线接口适用于DVD播放机 数字电视 数字机顶盒 便携式摄录像机和数字卫星接收装置等 IEEE1394性能如下 1 支持实时同步数据传输和传统的异步传输 同步传输速率高 能提供实时应用的宽频带 2 1394支持对等网络通信 即1394总线可以实现类似网络的功能 3 支持即插即用 支持带电的热插拔 4 1394标准本身包含了数据桥功能 连接时不需要集线器 最多允许连接63个外设 易于整合 5 为外设提供电源 与USB相似 可通过总线向远端的设备提供电能 每个节点既可以作为电能的提供者 也可以作为电能的消耗者 6 允许系统自动优化外设之间的数据传输 可对未经压缩的数字图象进行实时送 7 电缆芯线 6根 其中数字信号线4根 电源线2根 8 传输距离 4 5米 IEEE1394价格昂贵 主要面向视频图像的高端应用 2 IEEE1394三层协议1394标准包含一组3层 物理层 链路层 业务层 协议 来规范主机与外设通过串行总线的交互方法 1 物理层规定了传输媒体和连接器的电气和信号特性 物理层把二进制数据转换成数字电信号 并对传输数据的设备提供仲裁服务 物理层定义的数据传输速度为25 400Mbps 1394a 在物理层对所有连接设备进行配置 一个结点被指定为根结点 其它结点以父 子关系组织树的拓扑结构 根结点作为中央仲裁器 离树根近的结点具有较高的优先级 离树根距离相同的结点 其ID数越低优先级越高 优先级相同的总线请求 按先来先服务方式处理 此外 还补充了公平仲裁和紧急仲裁两种附加功能 2 链路层定义了以包形式进行的数据传输 在链路层将数据打包 包有包头和数据部分 包头有发送端和接收端的标识符 以及包头类型信息 CRC校验和特定参数 数据部分包括用户传输的数据与CRC组成的数据块 链路层支持异步和等步2种类型传输 异步传输适用于无固定速率要求的数据传输 默认采用公平仲裁 当数据缓冲区一半已满或有严格的等待要求时可使用紧急仲裁 传输单个包的过程称为子动作 每个子动作过程为 经仲裁后某设备获得父 子关系组织树的拓扑结构 根结点作为中央仲裁器 离树根近的结点具有较高的优先级 离树根距离相同的结点 其ID数越低优先级越高 优先级相同的总线请求 按先来先服务方式处理 此外 还补充了公平仲裁和紧急仲裁2种附加功能 总线控制权 发送端发送数据包 经串行总线传输 目标端收到数据包并进行译码 回送一个响应包 带有接收状况的代码 传送包和响应包之间有一小段响应间隙 每个子动作之间也有间隙 以保证其它结点在响应包回传前不进行仲裁 等步传输以顺序定长的包形式在规则区间传输 用于有规则地产生或接收数据的设备 等步传输使用简单寻址 保证数据在特定的时间内以一定的传输速率投递数据 与异步包相比 等步包头部较短 包括传输数据的长度和头部CRC 等步传输指定一个结点为周期主结点 周期主结点周期性地向所有其它结点发送一个周期开始包 宣布等步传输周期开始 在这个周期中只有等步包可以发送 每个等步数据源请求总线 经仲裁获胜结点立即发送一个包 当前的等步包传输结束 没有响应回送 其它的等步数据源立即接受总线仲裁 竞争下一个等步包传输 相邻两个等步包之间有段时间延迟 称为等步间隔 小于子动作间隔 所有等步源传输完毕 总线保持足够长的空闲后出现动作间隔 告知异步源 可以竞争总线了 此后 各数据源再竞争使用总线 3 业务层定义请求响应协议 这是最高层 面向应用 隐藏了1394较低层的细节 Microsoft公司和Intel公司推出的PC 99规范中规定 新型的PC系统中应具有两个USB端口和一个1394端口 其中一个要支持移动功能 Windows98以后的操作系统都支持USB和1394技术标准 9 2串行接口芯片1655016550是美国国家半导体公司 NationalSemiconductor 生产的一个通用的异步接收器 发送器UART芯片 型号为NS16550 它与IBM早期推出的个人计算机IBMPC XT所使用的UART芯片INS8250兼容 但最高波特率提高到1 5Mb s 且具有接收器和发送器FIFO first infirst out先进先出 缓冲区 每个FIFO缓冲区长度均为16个字节 目前16550在PC机的外围芯片组中得到了广泛的应用 16550有16个字节的FIFO发送和接收数据缓冲器 它可以连续发送或接收16个字节的数据 16550的最大通信速率可达115200bps 是高速系统通信接口的理想器件 现在32位PC芯片组中使用的是与l6550兼容的逻辑电路 16550的主要性能特点包括 芯片内部包含发送控制电路和接收控制电路 可实现全双工通信 支持异步通信 16550的数据传输速率可在50 115200bps范围内选择 只持控制MODEM功能和完整的状态报告功能 16550增加了FIFO模式 MODEM功能和完整的状态报告功能 16550增加了FIFO模式 MODEM功能和完整的状态报告功能 16550增加了FIFO模式 NS16550与INS8250相比 内部结构 引脚信号和工作方式完全兼容 不同之处主要有两点 1 8250的发送和接收数据缓冲器只有一个字节 每发送或接收一个字节都要求CPU来干预 而16550有16个字节的FIFO发送和接收数据缓冲器 它可以连续发送或接收16个字节的数据 2 8250的最大通信速率为19200bps 而16550的最大通信速率可达115200bps 因此它是高速系统通信接口的理想器件 INS8250和NS16550的主要性能特点如下 芯片内部包含发送控制电路和接收控制电路 可实现全双工通信 支持异步通信 8250的数据传输速率可在50 19200bps范围内选择 16550的数据传输速率可在50 115200bps范围内选择 具有控制MODEM功能和完整的状态报告功能 16550增加了FIFO模式 9 2 116550的内部结构16550的内部结构如图9 11所示 16550的内部由以下几部分组成 1 数据总线缓冲器 连接16550与CPU数据总线 2 选择和读 写控制逻辑 接收来自CPU的地址 片选和控制信息 产生内部各端口的读写操作命令 3 发送器 由发送保持寄存器 发送移位寄存器和发送同步控制组成 待发送的数据写入发送保持寄存器 发送保持寄存器的内容自动转存到发送移位寄存器 在发送器时钟的控制下 由SOUT引脚发送出去 4 接收器 由接收移位寄存器 接收缓冲寄存器和接收同步控制器组成 在接收时钟控制下 由SIN引脚输入的串行数据逐位存入移位寄存器 转换后的并行数据存入接收缓冲寄存器 等待CPU读取 调制 解调器控制电路 提供一组控制信号 直接与调制解调器相连 完成远程通信任务 6 通信线控制寄存器和通信线状态寄存器 控制寄存器保存CPU写入的通信数据格式 状态寄存器提供串行数据发送和接收时的状态7 波特率发生控制电路 由波特率发生器 分频系数寄存器组成 16550对18 432MHz的输入时钟进行分频 产生所要的发送器和接收器时钟信号 分频系数在初始化时分两次写入除数寄存器的高8位和低8位 分频系数可由下式算出 除数 18432000 波特率 16 8 中断控制逻辑 由中断允许寄存器 中断识别寄存器和中断控制逻辑3部分组成 实现中断优先权管理 中断申请等功能 9 2 216550的引脚信号16550的引脚排列如图9 12所示 图9 1216550外部引脚示意图 1 数据线 D0 D7 八位双向三态数据线 与CPU的数据总线连接 用于实现16550与CPU之间的通信 包括数据 控制字及状态信息的双向传输 2 地址线 用来实现让CPU对16550片内寄存器的寻址 含有 1 CS0 CS1 CS2 片选信号 当输入的CS0 CS1为高电平 CS2为低电平时 16550芯片被CPU选中 2 A0 A2 片内寄存器选择线 CPU用此来选择要访问的16550的内部寄存器中的某一个 3 ADS 地址选通信号 用于锁存三个片选信号和A2 A0的输入状态 若在对16550读写过程中 A2 A0稳定 例如用在Intel微处理器上 ADS可直接接地 3 读 写控制逻辑线 1 RD RD 读控制信号 两者可任意用一个 用于控制16550内部寄存器中读出数据或状态信息 2 WR WR 写控制信号 两者可任意用一个 用于控制向16550内部的寄存器写入命令字或数据 3 DDIS 驱动器禁止信号输出 每当CPU从16550读取数据时 DDIS 0 其余时候均为高电平 禁止挂在CPU与16550之间的数据线上的收发器与16550通信 4 Xin Xout 时钟信号输入引脚 有2种方式可以通过这2引脚产生接到Xin引脚上 16550的内部基准时钟 一种方式是将石英晶体振荡器直接连接在这两个引脚之间 另一种是将外部时钟信号连石英晶体振荡器直接连接在这两个引脚之间 另一种是将外部时钟信号连接到Xin引脚上 5 MR 主复位信号 用于对16550复位操作 一般应将此引脚连接到系统RESET信号上 使16550与系统同时复位 6 INTR 中断请求信号 由此引脚向CPU申请中断 7 OUT1 OUT2 用户自定义的输出信号 可由用户编程来改变这两个引脚输出电平 作何用途 由用户自己设计 8 BAUDOUT 波特输出信号 是16550内部发送器的波特率发生器产生的发送时钟信号 9 RCLK 接收器时钟输入 此信号将作为16650接收器的基准时钟信号 一般将其与BAUDOUT连接在一起 则16550通信中的发送波特率与接收波特率是相同的 9 RXRDY 接收器就绪 输出信号 11 TXRDY 发送器就绪 输出信号 4 串行数据输入 输出线 1 SIN SOUT 串行数据信号 分别用于接收串行数据和发送串行数据 2 RTS 请求发送 输出 表明16550希望发送数据给Modem 3 CTS 允许发送 输入 是对RTS的应答信号 表明Modem已作好接收数据的准备 16550可以发送数据 4 DTR 数据终端准备好 输出 通知Modem 表明16550已准备就绪 5 DSR 数据通信装置准备好 输入 是对DTR的应答信号 表明Modem已准备就绪 6 DCD 载波检测 输入 表明Modem已收到数据载波信号 7 RI 振铃指示 输入 表明Modem已收到电话线上的振铃信号 9 2 316550的内部寄存器及其初始化编程从用户的角度来看 16550内部有11个可寻址访问的功能寄存器 但只用3根寄存器选择线A2 A0来寻址 因此必然有两个寄存器共用一个端口地址的情可寻址访问的功能寄存器 但只用3根寄存器选择线A2 A0来寻址 因此必然有两个寄存器共用一个端口地址的情况 对它们的区分是由DLAB位 除数锁存器访问 和读 写信号来实现的 如表9 3所示 表中DLAB是通信线控制寄存器的最高位 D7 x表示取值任意 0或1均可 按照其用途 可以将表9 3中的寄存器分为如下3组 表9 316550的内部功能寄存器 内部寄存器分为3部分 数据传输部分 包括发送保持寄存器和接收缓冲寄存器 工作方式 参数设置部分 包括通信线控制寄存器 除数寄存器 MODEM控制寄存器和中断允许寄存器 状态寄存器部分 包括通信线状态寄存器 MODEM状态寄存器和中断识别寄存器 1 发送保持寄存器 3F8H 2F8H 该寄存器用于保存CPU送来的并行数据 送到发送移位寄存器 发送移位寄存器在发送器时钟的作用下 把并行数据转换成串行数据从SOUT引脚输出 只有在发送保持寄存器空时 CPU才可以向发送保持寄存器写入下一个要发送的数据 2 接收缓冲寄存器 3F8H 2F8H 该寄存器用于在接收时钟的作用下 从SIN引脚输入的串行数据被送到接收移位寄存器 去掉起始位 校验位和停止位后 串行数据转换成并行数据并存入接收缓冲寄存器 等待CPU接收 3 通信线控制寄存器 3FBH 2FBH 该寄存器用于用来设置串行异步通信的数据格式 如图9 13所示 通信线控制寄存器具体各位的功能定义如下 D7位 DLAB寻址位D7 1 访问除数寄存器D7 0 访问接收缓冲器 发送保持寄存器 D6位 D6 1 发送方连续发送长时间中止信号 空号 空号发送的时间超过一个完整的字符传送时间时 接收方就认为发送方已中止发送 D3 D5位 选择奇偶校验方式 D2位 规定一帧数据中停止位的位数 D0位 D1位 定义一帧数据中数据位的位数 图9 13通信线控制寄存器 4 中断识别寄存器 FIFO控制寄存器 3FAH 2FAH 16550内部有4级中断 但只有一根中断请求信号 中断发生后 CPU通过查询中断识别寄存器来辨别中断类型 FIFO控制寄存器和中断识别寄存器占用相同的端口地址 中断发生时读出该寄存器的内容 它作为中断识别寄存器来使用 写入FIFO控制字时 作为FIFO控制寄存器 具体位的含义如图9 14 图9 14中断识别寄存器 5 通信线状态寄存器 3FDH 2FDH 通信线状态寄存器如图图9 15所示 图9 15通信线状态寄存器 6 中断允许寄存器 3F9H 2F9H 中断允许寄存器各位如图图9 16 该寄存器的低4位代表中断允许控制位 置1 则允许相应的中断源请求中断 否则禁止中断 图9 16中断允许寄存器 7 MODEM控制寄存器 3FCH 2FCH 该寄存器用于设置与调制解调器连接的联络信号 具体位的功能定义如下 D7 D5位规定为0 D4位 1 正常发送 接收 0 内部循环方式 D0 D3位的状态直接控制相关引脚的输出电平 D0 1 使引脚DTR 0 DTR 信号有效 D1 1 使引脚RTS 0 RTS 信号有效 D2 1 使引脚OUT1 0 该引脚留给用户使用 D3 1 使引脚OUT2 0 使16550能送出中断请求 图9 17MODEM状态寄存器 8 MODEM状态寄存器 3FEH 2FEH MODEM状态寄存器如图图9 17 9 除数寄存器 3F8H 3F9H 2F8H 2F9H 16550发送或接收的移位时钟 是在它的基准时钟 18 432MHz 基础上分频而来的 根据所需的波特率来确定分频系数 并在初始化时存入除数寄存器 下表给出了9种波特率所需设置的除数寄存器的值 计算机硬件或软件复位后 要对16550进行初始化 主要包括 1 对通信线控制寄存器进行设置 确定异步通信的数据格式 2 设置除数寄存器 确定通信速率 3 对FIFO控制寄存器 中断允许寄存器和MODEM控制寄存器进行设置 1 80H送通信线控制寄存器 使寻址位D7 1 2 除数高8位 低8为分别送除数寄存器高8位 低8位 确定通信速率 3 将D7 0的命令字写入通信线控制寄存器 确定串行异步通信一帧数据帧4 设置FIFO控制寄存器 3FAH FIFO控制寄存器与中断识别寄存器的地址都是3FAH 读出时是中断识别寄存器 写入时是FIFO控制寄存器 5 设置中断允许寄存器 3F9H 2F9H 设置成查询方式 中断允许寄存器中的命令字为0 设置为中断方式 设置中断允许寄存器中的相应位为1 该位所控制的中断请求允许中断 6 设置MODEM控制寄存器 3FCH 2FCH D4 0 设置16550为正常接收 发送方式 D4 1 设置16550工作在内部循环自检方式 D3 0 16550工作在查询方式 D3 1 16550工作在中断方式 例9 2 设16550的端口地址为3F8 3FFH 即为PC机的COM1串行口地址 欲使16550以9600波特率进行串行通信 字符格式为7个数据位 2个停止位 奇校验方式 允许所有中断 则相应的初始化程序为 MOVDX 03FBH DX指向16550的通信线控制寄存器地址MOVAL 80H 置DLAB 1OUTDX ALMOVDX 03F8H 除数寄存器 低字节 地址MOVAL 78H 对应波特率为9600的除数为0078HOUTDX AL 送除数低字节INCDX 指向除数寄存器 高字节 地址MOVAL 0OUTDX AL 送除数高字节MOVAL 0EH 通信控制寄存器控制字 0 DLAB 7位数据MOVDX 03FBH 奇校验 2个停止位OUTDX AL MOVDX 03FAH DX指向FIFO控制寄存器MOVAL 87H FIFO控制字 允

温馨提示

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

评论

0/150

提交评论