1、第第 5 章章 VB 与串口通信与串口通信接口技术是工业实时控制和数据采集中非常重要的计算机应用技术,它可实现 CPU 与存储器、I/O 设备、控制设备、测量设备、通信设备、 A/D 及 D/A 转换器等的信息交换。VB 是程序设计人员在 Windows 环境下最常用的开发串口通信程序的编程语言。利用 VB 开发串口通信程序主要有两种方法:一是使用 MSComm 串口控件,二是调用Windows API 函数。在实践中,使用 VB 串口控件 MSComm 实现通信的方法比调用 API 函数的方法更加方便、快捷,而且用较少的代码可以实现相同的功能,从而使编程效率大大提高。5.1 串行接口简介串行
2、接口一般包括 RS232/422/485,其技术简单成熟,性能可靠,价格低廉;所要求的软/硬件开发环境都很低,广泛应用于计算机及相关领域,如调制解调器(Modem) 、串行打印机、各种监控模块、PLC、摄像头云台、数控机床、单片机及相关智能设备,甚至路由器也不例外(通过串口设置参数) 。在计算机测控系统中,主控机一般采用 PC 或 IPC,通过串口与测控模块相连,测控模块再连接相应的传感器和执行器,如此形成一个简单的双层结构的计算机测控系统。这种结构主要用于单独的中小型企业或部门,如果属于综合型企业或部门,如电力系统监控,高速公路监控和收费系统,则可以此为基础结构进行扩充,用集线器将众多双层监
3、控系统连接起来,再用交换机将若干集线器连接起来,统一接上路由器,从而与 Internet 互联,如此即可形成一个庞大的计算机测控网络。由此可见,尽管现代计算机的新接口层出不穷,各种网络应用也日新月异,其规模也越来越大,但是,其基础结构却有不少是串行通信系统,串行通信也成了其中的核心技术。5.1.1 串口通信的基本概念1并行通信与串行通信终端与其他设备(例如,其他终端、计算机和外部设备)通过数据传输进行通信。数据传输可以通过两种方式进行:并行通信和串行通信。(1)并行通信。在 计 算 机 和 终 端 之 间 的 数 据 传 输 通 常 是 靠 电 缆 或 信 道 上 的 电 流 或 电 压 变
4、化 实 现 的 。 如果 一 组 数 据 的 各 数 据 位 在 多 条 线 上 同 时 被 传 送 , 这 种 传 输 方 式 被 称 为 并 行 通 信 , 如 图 5-1所 示 。Visual Basic 数据采集与串口通信测控应用实战 132 0 1 1 0 1 发送端 接收端 图 5-1 并行通信并行数据传送的特点是:各数据位同时传送,传送速度快、效率高,多用在实时、快速的场合。并行传送的数据宽度可以是 1 位128 位,甚至更宽,但是有多少数据位就需要多少根数据线,因此,传送的成本较高。在集成电路芯片的内部、同一插件板上各部件之间以及同一机箱内各插件板之间的数据传送都是并行的。并行
5、数据传送只适用于近距离的通信,通常小于 30m。(2)串行通信。串行通信是指通信的发送方和接收方之间数据信息的传输是在单根数据线上,以每次一个二进制的 0、1 为最小单位逐位进行传输,如图 5-2 所示。 0 1 1 0 1 发送端 接收端 0 1 1 0 1 并 /串 转 换 串 /并 转 换 101 图 5-2 串行通信串行数据传送的特点是,数据传送按位顺序进行,最少只需要一根传输线即可完成,节省传输线。与并行通信相比,串行通信还有较为显著的优点:传输距离长,可以从几米到几千米;在长距离内串行数据传送速率会比并行数据传送速率快;串行通信的通信时钟频率容易提高;串行通信的抗干扰能力十分强,其
6、信号间的互相干扰完全可以忽略。但是串行通信传送速度比并行通信慢得多,并行通信时间为 T,则串行时间为 NT。正是由于串行通信的接线少、成本低,因此它在数据采集和控制系统中得到了广泛的应用,产品也多种多样。2串行通信的工作模式通过单线传输信息是串行数据通信的基础。数据通常是在两个站(点对点)之间进行第 5 章 VB 与串口通信 133 传送,按照数据流的方向可分成 3 种传送模式:单工、半双工和全双工。(1)单工形式。单工形式的数据传送是单向的。通信双方中,一方固定为发送端,另一方则固定为接收端。信息只能沿一个方向传送,使用一根传输线。如图 5-3 所示。 发送器 接收器 地 线 图 5-3 单
7、工形式单工形式一般用在只向一个方向传送数据的场合。例如,计算机与打印机之间的通信是单工形式,因为只有计算机向打印机传送数据,而没有相反的数据传送。还有在某些通信信道中,如单工无线发送等。(2)半双工形式。半双工通信使用同一根传输线,既可发送数据又可接收数据,但不能同时发送和接收。在任何时刻只能由其中的一方发送数据,另一方接收数据。因此半双工形式既可以使用一条数据线,也可以使用两条数据线。如图 5-4 所示。 地 线 发 送 器接 收 器 发 送 器 接 收 器 图 5-4 半双工形式半双工通信中每一端需有一个收/发切换电子开关,通过切换来决定数据向哪个方向传输。因为有切换,所以会产生时间延迟。
8、信息传输效率较低些。但是对于像打印机这样单方向传输的外围设备,用半双工方式就能满足要求了,不必采用全双工方式,可省一根传输线。(3)全双工形式。全双工数据通信分别由两根可以在两个不同的站点同时发送和接收的传输线进行传送,通信双方都能在同一时刻进行发送和接收操作。如图 5-5 所示。 地 线 发 送 器接 收 器 接 收 器 发 送 器 Visual Basic 数据采集与串口通信测控应用实战 134 图 5-5 全双工形式在全双工方式中,每一端都有发送器和接收器,有两条传送线,可在交互式应用和远程监控系统中使用,信息传输效率较高。3异步传输与同步传输串行传输中,数据是一位一位按照到达的顺序依次
9、传输的,每位数据的发送和接收都需要时钟来控制。发送端通过发送时钟确定数据位的开始和结束,接收端需要在适当的时间间隔对数据流进行采样来正确地识别数据。接收端和发送端必须保持步调一致,否则就会在数据传输中出现差错。为了解决以上问题,串行传输可以采用以下两种方法:异步传输和同步传输。(1)异步传输。异步传输方式中,字符是数据传输单位。在通信的数据流中,字符间异步,字符内部各位间同步。异步通信方式的“异步”主要体现在字符与字符之间通信没有严格的定时要求。异步传输中,字符可以是连续地、一个个地发送,也可以是不连续地,随机地进行单独发送。在一个字符格式的停止位之后,立即发送下一个字符的起始位,开始一个新的
10、字符的传输,这叫做连续的串行数据发送,即帧与帧之间是连续的。断续的串行数据传送是指在一帧结束之后维持数据线的“空闲”状态,新的起始位可在任何时刻开始。一旦传送开始,组成这个字符的各个数据位将被连续发送,并且每个数据位持续的时间是相等的。接收端根据这个特点与数据发送端保持同步,从而正确地恢复数据。收/发双方则以预先约定的传输速率,在时钟的作用下,传送这个字符中的每一位。(2)同步传输。在同步传输方式中,比特块以稳定的比特流的形式传输,数据被封装成更大的传输单位,称为帧。每个帧中含有多个字符代码,而且字符代码与字符代码之间没有间隙以及起始位和停止位。和异步传输相比,数据传输单位的加长容易引起时钟漂
11、移。为了保证接收端能够正确地区分数据流中的每个数据位,收发双方必须通过某种方法建立起同步的时钟。可以在发送器和接收器之间提供一条独立的时钟线路,由线路的一端(发送器或者接收器)定期地在每个比特时间中向线路发送一个短脉冲信号,另一端则将这些有规律的脉冲作为时钟。这种技术在短距离传输时表现良好,但在长距离传输中,定时脉冲可能会和信息信号一样受到破坏,从而出现定时误差。另一种方法是,通过采用嵌有时钟信息的数据编码位向接收端提供同步信息。4硬件握手与软件握手握手信号实际上是控制信号,用来控制数据的传送。通过握手信号,发送方可以通知接收方是否有数据要发送。接收方通过握手信号通知发送方它是否已经准备好了接
12、收信号。握手信号遵循某种协议。当 发 送 方 和 接 收 方 处 理 数 据 的 速 度 不 一 样 时 , 可 能 会 造 成 数 据 丢 失 。 在 传 输 中 , 如 果 发送 方 的 发 送 速 度 大 于 接 收 方 的 接 收 速 度 , 同 时 接 收 方 处 理 数 据 的 速 度 不 够 快 的 话 , 那 么 接 收端 的 缓 冲 区 必 定 在 一 定 时 间 后 溢 出 , 从 而 造 成 以 后 发 送 过 来 的 数 据 不 能 进 入 缓 冲 区 而 丢 失 。发 送 方 何 时 可 以 继 续 发 送 数 据 , 何 时 必 须 暂 停 发 送 , 从 而 让
13、接 收 方 有 时 间 处 理 数 据 , 这 称 为第 5 章 VB 与串口通信 135 流 量 控 制 , 必 须 靠 握 手 信 号 来 解 决 这 个 问 题 。 例 如 , 打 印 机 和 计 算 机 进 行 通 信 时 , 一 些 打 印机 打 印 速 度 可 能 跟 不 上 计 算 机 发 送 数 据 的 速 度 , 就 必 须 要 通 过 握 手 信 号 通 知 计 算 机 暂 停 发 送数 据 。(1)硬件握手。在硬件握手中,发送方通过将某一个导线拉到高电平或者低电平,来表示发送方可以发送数据。接收方已经准备好接收数据之后,也把某一个导线拉到高电平或者是低电平,来通知发送方,
14、发送方一直在检测这个信号。接收方可以在任何时候把这个信号变为无效,甚至是在接受一个数据块的过程中。当发送方检测到这个信号变为无效之后,就必须停止本次发送,直到这个信号变为有效。(2)软件握手。在软件握手中,以数据线上的数据信号来代替实际的硬件电路。这种方法用在直接连接或者通过调制解调器连接的两台计算机之间进行双向通信的场合。对于软件握手现在已经建立了一些标准协议,其中最常用的是通信协议。通信协议是指通信双方的一种约定,约定包括对数据格式、同步方式、传送速度、传送步骤、检纠错方式以及控制字符定义等问题作出统一规定,通信双方必须共同遵守,也叫做通信控制规程或称传输控制规程,它属于 OSI 七层参考
15、模型中的数据链路层。(3)硬件和软件结合的握手方法。如果使用计算机或终端通过调制解调器和主计算机进行通信,那么调制解调器使用硬件握手方法和计算机联系,主计算机和调制解调器之间也使用硬件握手方法,主计算机和计算机之间将使用软件握手方法进行联系。因此,计算机必须要编程,仅当调制解调器的DSR(有时可能使用 CD)线电位变高和软件停止信号没有收到时,软件才送出一个通知信号。一些计算机自动监测硬件握手信号,这些计算机等待硬件握手信号变高以后送出一个字符,所以程序只需要处理软件握手信号。5串口通信的基本参数串行端口的通信方式是将字节拆分成一个接着一个的位再传送出去。接到此电位信号的一方再将此一个一个的位
16、组合成原来的字节,如此形成一个字节的完整传送。在传输进行的过程中,双方明确传送信息的具体方式,否则双方就没有一套共同的译码方式,从而无法了解对方所传过来的信息的意义。因此双方为了进行通信,必须遵守一定的通信规则,这个共同的规则就是通信端口的初始化。通信端口的初始化必须对以下几项参数进行设置。(1)数据的传输速度。串行通信的传输受到通信双方硬件配备性能及通信线路的特性控制,收、发双方必须按照同样的速率进行串行通信,即收、发双方采用同样的波特率。我们通常将传输速度称为波特率,指的是串行通信中每一秒所传送的数据位数,单位是 bit/s。我们经常可以看到仪器或 Modem 的规格书上都写着 19 20
17、0bit/s、38 400bit/s,所指的就是传输速度。就仪器或工业场合来说,4 800bit/s、9 600bit/s 是最常见的传输速度,现在的个人计算机所提供的串行端口的传输速度都可以达到 15 200bit/s(甚至达到 921 600bit/s) ,若传输距离较近而设备也提供时,使用最高的传输速度也可以。Visual Basic 数据采集与串口通信测控应用实战 136 例如,在某异步串行通信中,每传送一个字符需要 8 位,如果采用波特率 4 800bit/s 进行传送,则每秒可以传送 600 个字符。(2)数据的传送单位。一般串行通信端口所传送的数据是字符型,若用来传输文件,则会使
18、用二进制的数据型。当使用字符型时,工业界使用到的有 ASCII 字符码及 JIS 字符码;ASCII 码使用了 8 位形成一个字符,而 JIS 码则以 7 位形成一个字符。我们可以发现,欧美的设备多使用 8 位的字节,而日本的设备多使用 7 位为一个字节。以实际的 RS-232 传输上看来,由于工业界常使用的 PLC 大多只是传送文字码,因此只要 7 位就可以将 ASCII 码的 0127 码表达出来(2 7=128,共有 128 种组合方式) ,所有的可见字符也落在此范围内,所以只要 7 个数据位就够了。不同的情况下(看所使用的协议) ,会使用到不同的传送单位。使用多少位合成一个字节必须先行
19、确定。(3)起始位与停止位。由 于 异 步 串 行 传 输 中 并 没 有 使 用 同 步 脉 冲 作 基 准 , 故 接 收 端 完 全 不 知 道 发 送 端 何 时 将进 行 数 据 的 传 送 。 发 送 端 准 备 要 开 始 传 送 数 据 时 , 发 送 端 会 在 所 送 出 的 字 符 前 后 分 别 加 上高 电 位 的 起 始 位 ( 逻 辑 0) 及 低 电 位 的 停 止 位 ( 逻 辑 1) , 它 们 分 别 是 所 谓 的 起 始 位 和 停 止位 。 也 就 是 说 , 当 发 送 端 要 开 始 传 送 数 据 时 , 便 将 传 输 线 上 的 电 位 由
20、 低 电 位 提 升 至 高 电 位 ,而 当 传 送 结 束 后 , 再 将 电 位 降 至 低 电 位 。 接 收 端 会 因 起 始 位 的 触 发 ( 因 电 压 由 低 电 位 升 至高 电 位 ) 而 开 始 接 收 数 据 , 并 因 停 止 位 的 通 知 ( 因 电 压 维 持 在 低 电 位 ) 而 明 确 数 据 的 字 符信 号 已 经 结 束 ; 当 加 入 了 起 始 位 及 停 止 位 才 比 较 容 易 达 到 多 字 符 的 接 收 能 力 。 起 始 位 固 定为 1 位 , 而 停 止 位 则 有 1、 1.5、 2 位 等 多 种 选 择 , 如 何 选
21、 择 呢 ? 只 要 通 信 双 方 协 议 通 过 即可 , 没 有 强 制 规 定 。(4)校验位。为了预防错误的产生,使用校验位作为检查的机制。校验位是用来检查所传送数据的正确性的一种核对码,又分成奇校验与偶校验两种,分别是检查字符码中 1 的数目是奇数或偶数。以偶校验为例, “A”的 ASCII 码是 41H(十六进制) ,将它以二进制表示时,是01000001,其中 1 的数目是 2,因此校验位便是 0,使 1 的数目保持偶数。同样的,校验位是奇校验时, “A”的校验位便是 1,使 1 的数目保持在奇数。接收者重新计算奇偶校验位,如果新的计算值正确,那么表示正常。如果新的计算值错误,
22、那么接收端就会收到一些指示,表示此次接收的数据有误。5.1.2 RS-232C 串口通信标准RS-232C 是 美 国 电 子 工 业 协 会 ( Electronic Industry Association) , EIA 于 1962 年 公 布 ,并 于 1969 年 修 订 的 串 行 接 口 标 准 。 它 已 经 成 为 国 际 上 通 用 的 标 准 。 1987 年 1 月 , RS-232C 经 修 改 后 , 正 式 改 名 为 EIA-232D。 由 于 标 准 修 改 得 并 不 多 , 因 此 现 在 很 多 厂 商 仍用 旧 的 名 称 。RS-232C 标准(协议
23、)的全称是 EIA-RS-232C 标准,其中 RS(Recommended Standard)代表推荐标准, 232 是标识号,C 代表 RS-232 的最新一次修改(1969 年) ,它适合于数据传输速率在 020 000bit/s 范围内的通信。这个标准对串行通信接口的有关问题,如信号电平、信号线功能、电气特性、机械特性等都作了明确规定。第 5 章 VB 与串口通信 137 目前 RS-232C 已成为数据终端设备(Data Terminal Equipment,DTE,如计算机)和数据通信设备(Data Communication Equipment,DCE,如 Modem)的接口标准
24、。RS-232C 是PC 机与通信工业中应用最广泛的一种串行接口,在 IBM PC 机上的 COM1、COM2 接口,就是 RS-232C 接口。利用 RS-232C 串行通信接口可实现两台个人计算机的点对点的通信;通过 RS-232C 接口可与其他外设(如打印机、逻辑分析仪、智能调节仪、PLC 等)近距离串行连接;通过RS-232C 接口连接调制解调器可远距离地与其他计算机通信;将 RS-232C 接口转换为 RS-422 或 RS-485 接口,可实现一台个人计算机与多台现场设备之间的通信。1接口连接器由于 RS-232C 并未定义连接器的物理特性,因此,出现了 DB-25 和 DB-9
25、各种类型的连接器,其引脚的定义也各不相同。现在计算机上一般只提供 DB-9 连接器,都为公头。相应的连接线上的串口连接器也有公头和母头之分,如图 5-6 所示。作为多功能 I/O 卡或主板上提供的 COM1 和 COM2 两个串行接口的 DB-9 连接器,它只提供异步通信的 9 个信号针脚,如图 5-7 所示,各针脚的信号功能描述如表 5-1 所示。公 头 母 头 678912345DCRXDTDTR DSRTSCTSRIGN图 5-6 公头与母头串口连接器 图 5-7 DB9 串口连接器表 5-1 9 针串行口的针脚功能针 脚 符 号 通 信 方 向 功 能1 DCD 计算机调制解调器 载波
26、信号检测2 RXD 计算机调制解调器 接收数据3 TXD 计算机调制解调器 发送数据4 DTR 计算机调制解调器 数据终端准备好5 GND 计算机 = 调制解调器 信号地线6 DSR 计算机调制解调器 数据装置准备好7 RTS 计算机调制解调器 请求发送8 CTS 计算机调制解调器 清除发送9 RI 计算机调制解调器 振铃信号指示RS-232 的每一支脚都有它的作用,也有它信号流动的方向。原来的 RS-232 是设计用来连接调制解调器作传输之用的,因此它的脚位意义通常也和调制解调器传输有关。从功能来看,全部信号线分为 3 类,即数据线(TXD、RXD) 、地线(GND )和联络控制线(DSR
27、、DTR 、RI、DCD、RTS、CTS ) 。Visual Basic 数据采集与串口通信测控应用实战 138 以下是这 9 支脚的相关说明。 DCD-此脚位是由调制解调 器(或其他 DCE,以下同)控制。当电话接通之后,传送的信号被加载在载波信号上面,调 制解调器利用此脚位通知计算机检测到载波,而当 载波被检测到时才可保证此时是处于连接的状态。一般情况下,如果计算机没有收到此信号,仍会有所响应,并将调制解调器挂起。 RXD-此脚位负责将传送过 来的远程信息进行接收。在接收的过程中,由于信息是以数字形式传送的,读者可以在调 制解调器的 RXD 指示灯上看到明灭交错,这是由于0、1 交替导致的
28、结果,也就是 电位高低所产生的现象。 TXD-此脚位 负责将计算机打算传送出去的信息传送出去。在传送的过程中,由于信息是以数字形式传送的,读者可以在 调制解调器的 TXD 指示灯上看到明灭交错,这是由于 0、1 交替导致的结果,也就是 电位高低所产生的现象。 DTR-此脚位由计算机(或其他 DTE,以下同)控制,用以通知调制解调器可以进行传输。高电位时表示计算机已经准备就绪,随 时可以接收信息。 GND-此脚位为地线,作为计算机与调制解调器之间的参考基准。两端设备的地线准位必须一样,否则会产生地回路,使得信号因准位的不同而 产 生偏移,也会导致结果失常。RS-232 信息在传输上是采用 单向式
29、的信号传送方式,其特点是信号的电压基准由参考地线提供,因此传输双方的地 线必须连接在一起,以避免基准不同而造成信息的错误。 DSR-此脚位由调制解调器控制,调制解调器用这支脚位的高电位通知计算机一切均准备就绪,可以把信息传送过 来。 RTS-此脚位由计算机控制,用以通知 调制解调器马上传送信息到计算机。而当 调制解调器收到此信号后,便会将它在电话线上收到的信息传送给计算机,在此之前若有信息传送到调制解调器则会暂存在缓冲区中。 CTS-此脚位由调制解调器控制,用以通知 计算机打算传送的信息已经到达调制解调器。当计算机收到此脚位信号后,便把准 备送出的信息送到调制解调器,而 调制解调器则将计算机送
30、过来的信息通过电话线路送出。 RI-调 制 解 调 器 通 知 计 算 机 有 电 话 进 来 ,是 否 接 听 电 话 则 由 计 算 机 决 定 。如 果 计 算 机设 置 调 制 解 调 器 为 自 动 应 答 模 式 ,则 调 制 解 调 器 在 听 到 一 定 的 铃 响 后 便 会 自 动 接 听电 话 。上 述 控 制 信 号 线 何 时 有 效 , 何 时 无 效 的 顺 序 表 示 了 接 口 信 号 的 传 送 过 程 。 例 如 , 只有 当 DSR 和 DTR 都 处 于 有 效 ( ON) 状 态 时 , 才 能 在 DTE 和 DCE 之 间 进 行 数 据 传 送
31、操 作 。 若 DTE 要 发 送 数 据 , 则 预 先 将 DTR 线 置 成 有 效 ( ON) 状 态 , 等 CTS 线 上 收 到有 效 ( ON) 状 态 的 回 答 后 , 才 能 在 TXD 线 上 发 送 串 行 数 据 。 这 种 顺 序 的 规 定 对 半 双 工的 通 信 线 路 特 别 有 用 , 因 为 半 双 工 的 通 信 确 定 DCE 已 由 接 收 方 向 改 为 发 送 方 向 , 这 时线 路 才 能 开 始 发 送 。可以从表 5-1 了解到硬件线路上的方向。另外值得一提的是,如果从计算机的角度来看这些脚位的通信状况的话,流进计算机端的,可以看为数
32、字输入;而流出计算机端的,则可以看为数字输出。数字输入与数字输出的关系是什么呢?从工业应用的角度来看,所谓的输入就是用来“监测” ,而输出就是用来“控制”的。第 5 章 VB 与串口通信 139 2串口电气特性首先需要说明的是,RS-232-C 标准最初是为远程通信数据终端设备(Data Terminal Equipment,DTE)与数据通信设备(Data Communication Equipment,DCE)而制定的,因此这个标准的制定,并未考虑计算机系统的应用要求。但目前它又广泛地被借来用于计算机(更准确的说,是计算机接口)与终端或外设之间的近端连接标准。显然,这个标准的有些规定和计算
33、机系统是不一致的,甚至是相矛盾的。有了对这种背景的了解,我们对 RS-232C标准与计算机不兼容的地方就不难理解了。 其次是,RS-232C 标准中所提到的“发送”和“接收” ,都是站在 DTE 立场上,而不是站在 DCE 的立场来定义的。由于在计算机系统中,往往是 CPU 和 I/O 设备之间传送信息,两者都是 DTE,因此双方都能发送和接收数据。EIA-RS-232C 对电气特性、逻辑电平和各种信号线功能都作了规定。在 TXD 和 RXD 上:逻辑 1 为3V15V; 逻辑 0 为+315V 。在 RTS、CTS、DSR、DTR 和 DCD 等控制线上:信号有效(接通,ON 状态,正电压)
34、为+3V+15V。信号无效(断开,OFF 状态,负电压)为3V 15V。以 上 规 定 说 明 了 RS-232C 标 准 对 逻 辑 电 平 的 定 义 。 对 于 数 据 ( 信 息 码 ) : 逻 辑“1”的 电 平 低 于 3V, 逻 辑 “0”的 电 平 高 于 + 3V。 对 于 控 制 信 号 : 接 通 状 态 ( ON)即 信 号 有 效 的 电 平 高 于 +3V, 断 开 状 态 ( OFF) 即 信 号 无 效 的 电 平 低 于 3V, 也 就 是 当传 输 电 平 的 绝 对 值 大 于 3V 时 , 电 路 可 以 有 效 地 检 查 出 来 , 介 于 3 +3
35、V 之 间 的 电 压 无意 义 , 低 于 15V 或 高 于 +15V 的 电 压 也 认 为 无 意 义 , 因 此 , 实 际 工 作 时 , 应 保 证 电 平 在( 3 15) V 之 间 。RS-232C 是用正负电压来表示逻辑状态的,与 TTL 以高低电平表示逻辑状态的规定不同,因此,为了能够同计算机接口或终端的 TTL 器件连接,必须在 RS-232C 与 TTL 电路之间进行电平和逻辑关系的变换,实现这种变换的方法可用分立元件,也可用集成电路芯片。目前较为广泛地使用集成电路转换器件,如 MCl488、SN75150 芯片可完成 TTL 电平到 EIA电平的转换,而 MCl4
36、89 和 SN75154 可实现 EIA 电平到 TTL 电平的转换。现在常用的 RS-232C/TTL 转换芯片是 MAX232。MAX232 内部有电压倍增电路和转换电路,只需+5V 电源便可完成 TTL 与 EIA 双向电平转换。5.1.3 串口通信线路连接1近距离通信线路连接当两台 RS-232 串口设备通信距离较近时(15m)时,需附加调制解调器( Modem) 。在 RS-232 的 应 用 中 , 很 少 严 格 按 照 RS-232 标 准 。 其 主 要 原 因 是 , 许 多 定 义 的 信 号 在大 多 数 的 应 用 中 并 没 有 用 上 。 在 许 多 应 用 中
37、, 例 如 Modem, 只 用 了 9 个 信 号 ( 两 条 数 据 线 、6 条 控 制 线 、 一 条 地 线 ) ; 在 其 他 一 些 应 用 中 , 可 能 只 需 要 5 个 信 号 ( 两 条 数 据 线 、 两 条 握手 线 、 一 条 地 线 ) ; 还 有 一 些 应 用 , 可 能 只 需 要 数 据 线 , 而 不 需 要 握 手 线 , 即 只 需 要 3 个Visual Basic 数据采集与串口通信测控应用实战 140 信 号 线 。 因 为 在 控 制 领 域 , 在 近 距 离 通 信 时 常 采 用 RS-232, 所 以 这 里 只 对 近 距 离 通
38、 信 的 线路 连 接 进 行 讨 论 。当通信距离较近时,通信双方不需要 Modem,可以直接连接,这种情况下,只需使用少数几根信号线。最简单的情况,在通信中根本不需要 RS-232C 的控制联络信号,只需 3根线(发送线、接收线、信号地线)便可实现全双工异步串行通信。图 5-8(a)所示是两台串口通信设备之间的最简单连接(即三线连接) ,图中的 2 号接收脚与 3 号发送脚交叉连接是因为在直连方式时,把通信双方都当作数据终端设备看待,双方都可以发送也可接收。在这种方式下,通信双方的任何一方,只要请求发送 RTS 有效和数据终端准备好 DTR 有效就能开始发送和接收。 1 2 3 456 7
39、 8 9 5 4 3 2 1 6 7 8 9 1 2 3 5 6 7 8 9DTE甲 DTE乙 (a) (b) 4图 5-8 串口设备最简单的连接如果只有一台计算机,而且也没有两个串行通信端口可以使用,则将第 2 脚与第 3 管脚短路,如图 5-8(b)所示,那么由第 3 脚的输出信号就会被传送到第 2 脚而送到同一串行端口的输入缓冲区,程序只要再由相同的串行端口上作读取的操作,即可将数据读入,同样可以形成一个测试环境。2远距离通信线路连接一般 PC 采用 RS-232 通信接口,当 PC 与串口设备通信距离较远时,二者不能用电缆直接连接,可采用 RS-485 总线。当 PC 与 多 台 具 有 RS-232 接 口 的 设 备 远 距 离 通 信 时 , 可 使 用 RS-232/RS-485 型 通 信接 口 转 换 器 , 将 计 算 机 上 的 RS-232 通 信 口 转 为 RS-485 通 信 口 , 在 信 号 进 入 设 备 前 再 使用 RS-485/RS-232 转 换 器 将 RS-485 通 信 口 转 为 RS-232 通 信 口 , 再 与 设 备 相 连 , 如 图 5-9 所 示 。