串口网络编程
联系。因此,个人计算机向主计算机传输数据时,同时要考
虑硬件和软件握手。
19
例如:在个人计算机通过调制解调器向主计算机发送数据时, 只有在调制解调器DSR(有时可能使用CD)线电位变高,且没 有收到来自主计算机的“停止传输”软件信号时,才送出数 据。
一些计算机会自动监测硬件握手信号,所以应用程序只
需要处理软件握手信号即可。但这种情况并不等于硬件握手 不存在,依然是软硬结合的握手。
在数据传输中,如果发送端的发送速度大于接收端的接收速
度,同时接收端处理数据的速度不够快,那么接收端的缓冲 区必定在一定时间后溢出,从而造成以后发送过来的数据不 能进入缓冲区而丢失。 15
发送端何时可以继续发送数据,何时必须暂停发送,从而让 接收端有时间处理数据,则必须靠握手信号来解决这个问题。 例如,打印机和计算机进行通信时,一些打印机的打印速度 可能跟不上计算机发送数据的速度,就必须通过握手信号通
在这里选择COM。
(3) 在弹出的窗口中设置相关的参数,如图3-1所示。
23
图3-1 超级终端参数设置
24
(4) 单击“确定”按钮后,就会出现一个工作窗口,这说 明已经连接到需要连接的设备上。 设置完成后,会出现连接提示,包括连接时间、终端类 型、连接参数等。如果串口不存在,或已被其他设备使用,
10
只有当DSR和DTR都处于有效(ON)状态时,才能在DTE 和DCE之间进行传输操作。若DTE要发送数据,则预先将 DTR线置成有效(ON)状态,等CTS线上收到有效(ON)状态的 回答后,才能在TXD线上发送串行数据。这种顺序的规定对
半双工的通信线路特别有用,因为半双工的通信确定DCE已
由接收端向改为发送端向,这时线路才能开始发送。从计算 机的角度来看这些引脚的通信状况,流进计算机端的,可以
动化的实现技术变得简单化。
21
3.2.1 串行通信软件工具
除了用户自己动手编写串口通信软件之外,目前也有一
些现成的串口通信软件工具。
1.超级终端程序
超级终端程序是Windows操作系统自带的串口通信软件,
用户可以选择“开始/程序/附件/通信/超级终端”命令来调用 它。使用超级终端程序需要对其进行设置,设置步骤如下: (1) 首先按照“开始/程序/附件/通信”顺序,执行“超级 终端”操作(对应系统目录“C:\Program Files\Windows NT”下 的hypertrm.exe应用程序),
8
通过RS-232C接口连接调制解调器(Modem)可远距离地与其他 计算机通信;将RS-232C接口转换为RS-422或RS-485接口, 可实现一台个人计算机与多台现场设备之间的通信。 RS-232的每一引脚都有它的作用,也有其信号流动的方向,
各引脚的信号功能描述见表3-1。原来的RS-232是用来连接调
度提高到10 Mb/s,速率低于100 kb/s时的传输距离延长到
4000英尺(1英尺=0.3048 m),并允许在一条平衡总线上连接 最多10个接收器。RS-422是一种单机发送、多机接收的单向、
平衡传输规范。
12
3.RS-485
为扩展应用范围,EIA又于1983年在RS-422基础上制定
了RS-485标准,增加了多点、双向通信能力,即允许多个发 送器连接到同一条总线上,同时增加了发送器的驱动能力和
232/422/485,其技术简单成熟,性能可靠,所要求的软硬件
环境和条件都很低,是一种最简单的建立网络连接的方式。
3
3.1.1 串行通信的模式
通过单线传输信息是串行数据通信的基础,数据通常是
在两个站(点对点)之间进行传输的。按照数据流的方向,串 行通信可分成三种传输模式:单工、半双工、全双工。
1.单工模式
第3章 串口网络编程
3.1 串行通信概述 3.2 串口通信程序设计
3.3 串口通信程序设计
小结
1
串口通信是一种通信条件要求最低却十分重要的网络通 信模式,网络设备调试、极端条件下的网络通信都可以通过 串口来实现,特别是对一些便携式、小型设备,串口通信可 能是它们的唯一通信手段。串口通信处于OSI模型的数据链
对于软件握手,现在已经建立了一些标准协议,其中最
常用的是通信协议。通信协议是指通信双方的一种约定,包 括对数据格式、同步方式、传输速度、传输步骤、检/纠错方
式以及控制字符定义等问题进行统一规定,通信双方必须共
同遵守,也叫做通信控制规程或传输控制规程,它属于OSI 七层参考模型中的数据链路层。
18
3.软硬结合握手
可以采用RS-485总线。
14
3.1.3 串行通信握手协议
串行通信需要使用握手协议保持数据收发双方的同步,
握手协议靠握手信号实现。握手信号实际上就是控制信号, 用来控制数据的传输。通过握手信号,发送端可以得知接收
端是否有数据要发送。接收端通过握手信号通知发送端它是
否已经准备好了接收信号。握手信号遵循某种协议。当发送 端和接收端处理数据的速度不一样时,可能会造成数据丢失。
22
会出现一个本次联机的名称设置窗口(第一次使用该应用程序 时,可能还会被要求设置国家、区号等属性参数),在其中输 入名称并选择一个代表图标。此名称通常应使用易记的名称 来命名,以后再进行联机操作时,只要加载该名称,一切其
它的设置就会恢复。
(2) 然后在出现的界面中选择所要连接的设备。可以根据 需要连接相应的设备,可选得选项包括:COM、TCP/IP等,
知计算机暂停发送数据。通常,串行通信握手的协议可以是
硬件握手、软件握手或二者的结合,具体如下所述。
16
1.硬件握手
在硬件握手中,发送端通过将某一条导线拉到高电平或
者低电平,以表示发送端可以发送数据。接收端已经准备好 接收数据之后,也把某一个导线拉到高电平或者是低电平,
以通知发送端,发送端一直在检测这个信号。接收端可以在
机)和数据通信设备(DCE,如Modem)的接口标准。RS-232C 是PC与通信工业中应用最广泛的一种串行接口,PC上的
COM1和COM2大多是RS-232C接口。
利用RS-232C串行通信接口可实现两台个人计算机之间 点对点的通信;通过RS-232C接口可与其他外设(如打印机、
逻辑分析仪、智能调节仪、PLC等)近距离串行连接
20
3.2 串口通信程序设计
现在的产品若要自动化,一定要提供一个能与计算机进
行通信的通道。最简单的方式就是在产品内部烧上一颗单芯 片,利用单芯片上的串行通信功能进行自动化的工作,由于
计算机中的串口是必备的通道,且从价格及技术上来说是最
能被厂商所接受的,因此,市面上很多自动化产品也就加上 了串行通信的功能,从而扩大了产品的使用领域,使产品自
在使用个人计算机器进行基于串口的远程配置的情 况),一般会采用软硬结合的握手。这种握手同时采用了硬件
握手和软件握手:一方面,个人计算机与调制解调器、主计
算机与调制解调器之间,使用硬件握手方法进行联系;另一 方面,主计算机和个人计算机之间将使用软件握手方法进行
目前,常用的串口标准有RS-232C、RS-422、RS-485标
准。
1.RS-232C
RS-232C是美国电子工业协会(Electronic Industry
Association,EIA)于1962年公布并于1969年修订的串行接口 标准,它已经成为了国际上通用的标准。1987年1月,RS232C经修改后,正式改名为EIA-232D。由于标准修改内容并 不多,因此现在很多厂商仍使用旧的。RS-232C标准(协议)的 全称是EIA-RS-232C标准,
信息传输效率也较低。
5
3.全双工模式
全双工数据通信分别由两根可以在两个不同的站点同时
发送和接收的传输线进行传输,通信双方都能在同一时刻进 行发送和接收操作。在全双工模式中,每一端都有发送器和
接收器,有两条传输线,可在交互式应用和远程监控系统中
使用,信息传输效率较高。
6
3.1.2 串口的基本参数与标准
路层,通信协议简单、编程接口函数数量较少,适合作为进
行网络编程技术的入门学习内容。 本章由串口通信的基本原理、接口入手,介绍串口通信
的API函数;并以主机与单片机、主机间的通信为实例,介
绍串口网络编程的方法。
2
3.1 串行通信概述
串行总线是一种目前经常使用的通信方式,单片机、
PLC、测试仪器、PC、打印机、交换机、路由器、防火墙、 工业控制设备都带有串口总线。串行接口包括RS-
看做数字输入;而流出计算机端的,则可以看做数字输出。
从工业应用的角度来看,所谓的输入就是用来“监测”的, 而输出就是用来“控制”的。
11
2.RS-422
RS-422由RS-232发展而来,是为了弥补RS-232的不足而
提出的。为了改进RS-232抗干扰能力差、通信距离短、传输 速度低等缺点,RS-422定义了一种平衡通信接口,将传输速
单工模式的数据传输是单向的。通信双方中,一方固定 为发送端,另一方则固定为接收端。信息只能沿一个方向传 输,使用一根传输线。单工模式一般用在只向一个方向传输 数据的场合。例如计算机与打印机之间的通信是单工模式, 因为只有计算机向打印机传输数据,而没有相反方向的数据 传输。在某些通信信道中,存在单工无线发送等单工模式。 4
任何时候把这个信号变为无效,甚至是在接收一个数据块的 过程中。当发送端检测到这个信号变为无效之后,就必须停
止本次发送,直到这个信号变为有效为止。
17
2.软件握手
在软件握手中,以数据线上特定的数据信号来代替实际
的硬件电路电平变化。这种方法用在直接连接或者通过调制 解调器连接的两台计算机之间进行双向通信的场合。
2.半双工模式
半双工通信中使用同一根传输线,既可发送数据又可接