文献综述引言从计算机问世开始,串口通信技术就开始发展采用计算机进行控制的各种设备 通常都使用串口通信技术与计算机通信随着现代信息技术的飞速发展和计算机网络 的普遍,实现计算机通信的方式越来越多考虑到现有网络和设备的状况,新技术的 使用目前只能在部分领域和地区使用而占主导地位的串行通信技术因其连接简单、 使用灵活方便、数据传递可靠,造价低廉等优点,在工业监控、数据采集、智能控制 和实时控制系统中得到普遍应用[1]接下来将对串行通信做简要介绍,包括串行通信的 方式、接口标准和通信协议1 串行通信简介串行通信是指通信的发送端和接收端之间数据信息的传输是在单根数据线上,以每次一个二进制的 0、1为最小单位逐位进行传输,如图 1所示111100011001101C11收11XlU师0011图 1 串行通信串行数据传输[2]的特点是:数据传输按位顺序进行,仅需一根传输线即可完成节省 传输线与并行通信相比,串行通信还有较为明显的优点:传输距离长,可以从几米 到几千米;串行通信的通信时钟频率容易提高;串行通信的抗干扰能力十分强,其信 号间的相互干扰完全可以忽略但是串行通信的传输速度比并行通信慢得多正是串行通信的连线少、成本低,因此它在数据采集和控制系统中得到了广泛的 应用,产品也是多种多样。
1.1 串行通信的工作模式通过单线传输信息是串行数据通信的基础数据通常是在两个站(点对点)之间进行 传输,按照数据流的方向可分为三种传输模式[3]:单工、半双工、全双工1. 单工通信单工模式的数据传输是单向的通信双方中,一方固定为发送端,另一方则固定 为接收端信息只能沿一个方向传输,使用一根传输线单工模式一般用在只向一个方向传输数据的场合例如计算机与打印机之间的通 信是单工模式,因为只有计算机向打印机传输数据,而没有相反方向的数据传输还 有在某些通信信道中,如单工无线发送等2. 半双工通信半双工使用同一根传输线,既可发生数据又可接收数据,但不能同时进行发送和 接收在任何时刻只能由其中的一方发送数据,另一方接收数据因此半双工模式既可 以使用一条数据线,也可以使用两条数据线半双工通信中每一端需有一个收发切换电子开关,通过切换来决定数据向哪个方 向传输因为有切换,所以会产生时间延迟,信息传输效率低些3. 全双工通信全双工数据通信分别由两根可以在两个不同的站点同时发送和接收的传输线进行 传输,通信双方都能在同一时刻进行发送和接收操作在全双工模式中,每一端都有发送器和接收器,有两条传输线,可在交互式应用 和远程监控系统中使用,信息传输效率较高。
1.2 串口通信的方式串口进行通信的方式有两种:同步通信方式和异步通信方式同步通信方式要求 通信双方以相同的时钟频率进行,而且准确协调,通过共享一个单个时钟或定时脉冲 源保证发送方和接收方的准确同步,效率较高;异步通信方式不要求双方同步,收发 方可采用各自的时钟源,双方遵循异步的通信协议,以字符为数据传输单位,发送方 传送字符的时间间隔不确定,发送效率比同步传送效率低1. 同步通信方式同步通信的通信双方必须先建立同步,即双方的时钟要调整到同一个频率收发 双方不停地发送和接收连续的同步比特流但这时还有两种不同的同步方式一种是 使用全网同步,用一个非常精确的主时钟对全网所有结点上的时钟进行同步另一种 是使用准同步,各结点的时钟之间允许有微小的误差,然后采用其他措施实现同步传 输同步通信的好处是传输效率高,传输线布置简单、经济,但同步设备复杂,要获 得精准的同步时钟较困难2. 异步通信方式 异步通信是一种很常用的通信方式异步通信在发送字符时,所发送的字符之间 的时间间隔可以是任意的当然,接收端必须时刻做好接收的准备(如果接收端主机的 电源都没有加上,那么发送端发送字符就没有意义,因为接收端根本无法接收)。
发送 端可以在任意时刻开始发送字符,因此必须在每一个字符的开始和结束的地方加上标 志,即加上开始位和停止位,以便使接收端能够正确地将每一个字符接收下来异步 通信的好处是通信设备简单、便宜,但传输效率较低(因为开始位和停止位的开销所占 比例较大)1.3 串口通信的重要参数串口的通信方式是将字节拆分成一个接着一个的位后再进行传输接到此电位信 号的一方将此一个一个的位组合成原来的字节,如此形成一个字节的完整传输在传输进行的过程中,双方明确传输信息的具体方式,否则双方就会没有一套共 同的译码方式,从而无法了解对方所传输过来的信息的意义因此双方为了进行通信 必须遵守一定的通信规则这个共同的规则就是串口的初始化串口的初始化必须对以 下几项参数进行设置1•波特率:这是一个衡量通信速度的参数它表示每秒钟传送的bit的个数例如 300波特表示每秒钟发送300个bit当我们提到时钟周期时,我们就是指波特率例如 果协议需要4800波特率,那么时钟是4800Hz这意味着串口通信在数据线上的采样 率为4800Hz通常线的波特率为14400, 28800和36600波特率可以远远大于这 些值,但是波特率和距离成反比2. 数据位:这是衡量通信中实际数据位的参数。
当计算机发送一个信息包,实际的 数据不会是8位的,标准的值是5、7和8位如何设置取决于你想传送的信息比如, 标准的ASCII码是0〜127(7位)扩展的ASCII码是0〜255(8位)如果数据使用简单 的文本(标准 ASCII 码),那么每个数据包使用 7 位数据每个包是指一个字节,包括 开始/停止位,数据位和奇偶校验位由于实际数据位取决于通信协议的选取,术语“包” 指任何通信的情况3. 停止位:用于表示单个包的最后一位典型的值为1, 1.5和2位由于数据是 在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出 现了小小的不同步因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟 同步的机会适用于停止位的位数越多,不同时钟同步的容忍程度越大,但是数据传 输率同时也越慢4. 校验位:在串口通信中一种简单的检错方式有四种检错方式:偶、奇、高和低 当然没有校验位也是可以的对于偶和奇校验的情况,串口会设置校验位(数据位后面 的一位),用一个值确保传输的数据有偶个或者奇个逻辑高位例如,如果数据是011, 那么对于偶校验,校验位为 0,保证逻辑高的位数是偶数个如果是奇校验,校验位位 1,这样就有3 个逻辑高位。
高位和低位不真正的检查数据,简单置位逻辑高或者逻辑 低校验这样使得接收设备能够知道一个位的状态,有机会判断是否有噪声干扰了通 信或者是否传输和接收数据是否不同步2 串行接口标准简介在进行串行通信的线路连接时,通常要解决两个问题一是计算机与外设之间要 共同遵守的某种约定,这种约定称为物理接口标准,它包括电缆的机械特性、电气特 性、信号功能及传输过程的定义EIA RS-232、RS-422及RS-485标准所包含的接口 电缆及连接器均属此类二是按接口标准设置计算机与外设之间进行串行通信的接口 电路下面介绍常见的几种接口标准2.1 EIA RS-232c 标准目前RS-232⑶是PC机与通信工业中应用最广泛的一种串行接口它是个人计算 机上的通讯接口之一,由电子工业协会(Electronic Industries Association, EIA)所制定 的异步传输标准接口通常 RS-232 接口以9个接脚 (DB-9) 或是25个接脚 (DB-25) 的型态出现在一般个人计算机上,一般会有两组RS-232接口,分别称为COM1和 COM2RS-232-C是美国电子工业协会EIA(Electronic Industry Association)制定的一种串行 物理接口标准。
RS是英文“推荐标准”的缩写,232为标识号,C表示修改次数oRS-232-C 总线标准设有 25 条信号线,包括一个主通道和一个辅助通道在多数情况下主要使用主通道,对于一般双工通信,仅需几条信号线就可实现, 如一条发送线、一条接收线及一条地线RS-232-C 标准规定的数据传输速率为每秒 50、75、100、150、300、600、1200、 2400、4800、9600、19200 波特RS-232-C 标准规定,驱动器允许有 2500pF 的电容负载,通信距离将受此电容限 制,例如,采用150pF/m的通信电缆时,最大通信距离为15m;若每米电缆的电容量 减小,通信距离可以增加传输距离短的另一原因是RS-232属单端信号传送,存在共 地噪声和不能抑制共模干扰等问题,因此一般用于20m以内的通信串行通信接口标准经过使用和发展,目前已经有几种但都是在RS-232标准的基 础上经过改进而形成的所以,以RS-232C为主来讨论RS-323C标准是美国EIA(电 子工业联合会)与BELL等公司一起开发的1969年公布的通信协议它适合于数据传 输速率在0〜20000b/s范围内的通信这个标准对串行通信接口的有关问题,如信号线 功能、电器特性都作了明确规定。
由于通行设备厂商都生产与RS-232C制式兼容的通 信设备,因此,它作为一种标准,目前已在微机通信接口中广泛采用在讨论RS-232C接口标准的内容之前,先说明两点:首先, RS-232-C 标准最初是远程通信连接数据终端设备 DTE(Data Terminal Equipment)与数据通信设备DCE(Data Communication Equipment)而制定的因此这个 标准的制定,并未考虑计算机系统的应用要求但目前它又广泛地被借来用于计算机 (更准确的说,是计算机接口)与终端或外设之间的近端连接标准显然,这个标准的有 些规定即和计算机系统是不一致的,甚至是相矛盾的有了对这种背景的了解,我们 对 RS-232C 标准与计算机不兼容的地方就不难理解了其次,RS-232C标准中所提到的“发送”和“接收”,都是站在DTE立场上,而不 是站在DCE的立场来定义的由于在计算机系统中,往往是CPU和I/O设备之间传送信 息,两者都是DTE,因此双方都能发送和接收2.2 RS-422 标准RS-422由RS-232发展而来,它是为弥补RS-232之不足而提出的为改进RS-232 通信距离短、速率低的缺点,RS-422定义了一种平衡通信接口,将传输速率提高到 10Mb/s,传输距离延长到4000英尺(速率低于100kb/s时),并允许在一条平衡总线上连 接最多10个接收器。
RS-422是一种单机发送、多机接收的单向、平衡传输规范,被命 名为 TIA/EIA-422-A 标准2.3 RS-485 标准为扩展应用范围,EIA又于1983年在RS-422基础上制定了 RS-485标准,增加了多点、 双 向通信能力,即允许多个发送器连接到同一条总线上,同时增加了发送器的驱动能 力和冲突保护特性,扩展了总线共模范围,后命名为TIA/EIA-485-A标准3 串行通信的通信协议所谓通信协议[4,5]是指通信双方的一种约定约定包括对数据格式、同步方式、传 送速度、传送步骤、检纠错方式以及控制字符定义等问题做出统一规定,通信双方必 须共同遵守因此,也叫做通信控制规程,或称传输控制规程,它属于ISO'S OSI七层 参考模型中的数据链路层[6]串行通信协议分为同步协议和异步协议下面着重讨论面 向字符的同步协议3.1 异步通信协议的实例——起止式异步协议起止式异步协议的特点是一个字符一个字符地传输,并且传送一个字符总是以起 始位。