串口通信的基本知识_第1页
串口通信的基本知识_第2页
串口通信的基本知识_第3页
全文预览已结束

下载本文档

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

文档简介

串口通信的基本知识 串口通信的基本概念 1 什么是串口 2 什么是 RS 232 3 什么是 RS 422 4 什么是 RS 485 5 什么是握手 1 什么是串口 串口是计算机上一种非常通用设备通信的协议 不要与通用串行总线 Universal Serial Bus 或者 USB 混淆 大多数计算机包含两个基于 RS232 的串口 串口 同时也是仪器仪表设备通用的通信协议 很多 GPIB 兼容的设备也带有 RS 232 口 同时 串口通信协议也可以用于获取远程采集设备的数据 串口通信的概念非常简单 串口按位 bit 发送和接收字节 尽管比按字节 byte 的并行通信慢 但是串口可以在使用一根线发送数据的同时用另一根线接 收数据 它很简单并且能够实现远距离通信 比如 IEEE488 定义并行通行状态时 规定设备线总常不得超过 20 米 并且任意两个设备间的长度不得超过 2 米 而对于串口而言 长度可达 1200 米 典型地 串口用于 ASCII 码字符的传输 通信使用 3 根线完成 1 地线 2 发送 3 接收 由于串口通信是异步的 端口能够在一根线上发送数据同 时在另一根线上接收数据 其他线用于握手 但是不是必须的 串口通信最重要的参数是波特率 数据位 停止位和奇偶校验 对于两个进行通行的端口 这 些参数必须匹配 a 波特率 这是一个衡量通信速度的参数 它表示每秒钟传送的 bit 的个数 例如 300 波特表示每秒钟发送 300 个 bit 当我们提到时钟周期时 我们就是指 波特率例如如果协议需要 4800 波特率 那么时钟是 4800Hz 这意味着串口通信在数据线上的采样率为 4800Hz 通常电话线的波特率为 14400 28800 和 36600 波特率可以远远大于这些值 但是波特率和距离成反比 高波特率常常用于放置的很近的仪器间的通信 典型的例子就是 GPIB 设备的通信 b 数据位 这是衡量通信中实际数据位的参数 当计算机发送一个信息包 实际的数据不会是 8 位的 标准的值是 5 7 和 8 位 如何设置取决于你想传送 的信息 比如 标准的 ASCII 码是 0 127 7 位 扩展的 ASCII 码是 0 255 8 位 如果数据使用简单的文本 标准 ASCII 码 那么每个数据包使用 7 位数据 每个包是指一个字节 包括开始 停止位 数据位和奇偶校验位 由于实际数据位取决于通信协议的选取 术语 包 指任何通信的情况 c 停止位 用于表示单个包的最后一位 典型的值为 1 1 5 和 2 位 由于数据是在传输线上定时的 并且每一个设备有其自己的时钟 很可能在通信中两台 设备间出现了小小的不同步 因此停止位不仅仅是表示传输的结束 并且提供计算机校正时钟同步的机会 适用于停止位的位数越多 不同时钟同步的容忍程 度越大 但是数据传输率同时也越慢 d 奇偶校验位 在串口通信中一种简单的检错方式 有四种检错方式 偶 奇 高和低 当然没有校验位也是可以的 对于偶和奇校验的情况 串口会设置 校验位 数据位后面的一位 用一个值确保传输的数据有偶个或者奇个逻辑高位 例如 如果数据是 011 那么对于偶校验 校验位为 0 保证逻辑高的位 数是偶数个 如果是奇校验 校验位位 1 这样就有 3 个逻辑高位 高位和低位不真正的检查数据 简单置位逻辑高或者逻辑低校验 这样使得接收设备能够 知道一个位的状态 有机会判断是否有噪声干扰了通信或者是否传输和接收数据是否不同步 2 什么是 RS 232 RS 232 ANSI EIA 232 标准 是 IBM PC 及其兼容机上的串行连接标准 可用于许多用途 比如连接鼠标 打印机或者 Modem 同时也可以接工业仪器仪 表 用于驱动和连线的改进 实际应用中 RS 232 的传输长度或者速度常常超过标准的值 RS 232 只限于 PC 串口和设备间点对点的通信 RS 232 串口通 信最远距离是 50 英尺 DB 9 针连接头 1 2 3 4 5 6 7 8 9 从计算机连出的线的截面 RS 232 针脚的功能 数据 TXD pin 3 串口数据输出 RXD pin 2 串口数据输入 握手 RTS pin 7 发送数据请求 CTS pin 8 清除发送 DSR pin 6 数据发送就绪 DCD pin 1 数据载波检测 DTR pin 4 数据终端就绪 地线 GND pin 5 地线 其他 RI pin 9 铃声指示 3 什么是 RS 422 RS 422 EIA RS 422 A Standard 是 Apple 的 Macintosh 计算机的串口连接标准 RS 422 使用差分信号 RS 232 使用非平衡参考地的信号 差分传输使 用两根线发送和接收信号 对比 RS 232 它能更好的抗噪声和有更远的传输距离 在工业环境中更好的抗噪性和更远的传输距离是一个很大的优点 4 什么是 RS 485 RS 485 EIA 485 标准 是 RS 422 的改进 因为它增加了设备的个数 从 10 个增加到 32 个 同时定义了在最大设备个数情况下的电气特性 以保证足够 的信号电压 有了多个设备的能力 你可以使用一个单个 RS 422 口建立设备网络 出色抗噪和多设备能力 在工业应用中建立连向 PC 机的分布式设备网络 其他数据收集控制器 HMI 或者其他操作时 串行连接会选择 RS 485 RS 485 是 RS 422 的超集 因此所有的 RS 422 设备可以被 RS 485 控制 RS 485 可以用超过 4000 英尺的线进行串行通行 DB 9 引脚连接 1 2 3 4 5 6 7 8 9 从计算机连出的线的截面 RS 485 和 RS 422 的引脚的功能 数据 TXD pin 8 TXD pin 9 RXD pin 4 RXD pin 5 握手 RTS pin 3 RTS pin 7 CTS pin 2 CTS pin 6 地线 GND pin 1 5 什么是握手 RS 232 通行方式允许简单连接三线 Tx Rx 和地线 但是对于数据传输 双方必须对数据定时采用使用相同的波特率 尽管这种方法对于大多数应用已经 足够 但是对于接收方过载的情况这种使用受到限制 这时需要串口的握手功能 在这一部分 我们讨论三种最常用的 RS 232 握手形式 软件握手 硬件握 手和 Xmodem a 软件握手 我们讨论的第一种握手是软件握手 通常用在实际数据是控制字符的情况 类似于 GPIB 使用命令字符串的方式 必须的线仍然是三根 Tx Rx 和地线 因为控制字符在传输线上和普通字符没有区别 函数 SetXModem 允许用户使能或者禁止用户使用两个控制字符 XON 和 OXFF 这些字符在通信 中由接收方发送 使发送方暂停 例如 假设发送方以高波特率发送数据 在传输中 接收方发现由于 CPU 忙于其他工作 输入 buffer 已经满了 为了暂时停止传输 接收方发送 XOFF 典 型的值是十进制 19 即十六进制 13 直到输入 buffer 空了 一旦接收方准备好接收 它发送 XON 典型的值是十进制 17 即十六进制 11 继续通信 输入 buffer 半满时 LabWindows 发送 XOFF 此外 如果 XOFF 传输被打断 LabWindows 会在 buffer 达到 75 和 90 时发送 XOFF 显然 发送方必须遵循 此守则以保证传输继续 b 硬件握手 第二种是使用硬件线握手 和 Tx 和 Rx 线一样 RTS CTS 和 DTR DSR 一起工作 一个作为输出 另一个作为输入 第一组线是 RTS Request to Send 和 CTS Clear to Send 当接收方准备好接收数据 它置高 RTS 线表示它准备好了 如果发送方也就绪 它置高 CTS 表示它即将发 送数据 另一组线是 DTR Data Terminal Ready 和 DSR Data Set Ready 这些现主要用于 Modem 通信 使得串口和 Modem 通信他们的状态 例如 当 Modem 已经准备好接收来自 PC 的数据 它置高 DTR 线 表示和电话线的连接已经建立 读取 DSR 线置高 PC 机开始发送数据 一个简单的规则是 DTR DSR 用于表示系统通信就绪 而 RTS CTS 用于单个数据包的传输 在 LabWindows 函数 SetCTSMode 使能或者禁止使用硬件握手 如果 CTS 模式使能 LabWindows 使用如下规则 当 PC 发送数据 RS 232 库必须检测 CTS 线高后才能发送数据 当 PC 接收数据 如果端口打开 且输入队列有空接收数据 库函数置高 RTS 和 DTR 如果输入队列 90 满 库函数置低 RTS 但使 DTR 维持高电平 如果端口队列近乎空了 哭喊数置高 RTS 但使 DRT 维持高电平 如果端口关闭 库函数置低 RTS 和 DTR c XModem 握手 最后讨论的握手叫做 XModem 文件传输协议 这个协议在 Modem 通信中非常通用 尽管它通常使用在 Modem 通信中 XModem 协议 能够直接在其他遵循这个协议的设备通信中使用 在 LabWindows 中 实际的 XModem 应用对用户隐藏了 只要 PC 和其他设备使用 XModem 协议 在文 件传输中就使用 LabWindows 的 XModem 函数 函数是 XModemConfig XModemSend 和 XModemReceive XModem 使用介于如下参数的协议 start of data end of data neg ack wait delay start delay max tries packet size 这些参数需要通信双方认 定 标准的 XModem 有一个标准的定义 然而 可以通过 XModemConfig 函数修改 以满足具体需要 这些参数的使用方法由接收方发送的字符 neg ack 确定 这通知发送方其准备接收数据 它开始尝试发送 有一个超时参数 start delay 当超时的尝试超过 max ties 次数 或者收到接收方发送的 start of data 发送方停止尝试 如果从发送方收到 start of data 接收方将读取后继信息数据包 包中含有包的数目 包数目的补码作为错误校验 packet size 字节大小的实际数据包 和进一步错误检查的求和校验值 在读取数据后 接收方会调用 wait delay 然后想发送方发送响应 如果发送方没有 收到响应 它会

温馨提示

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

评论

0/150

提交评论