串行通信概念01讲解
- 格式:doc
- 大小:5.64 MB
- 文档页数:24
串行通信基础知识本节简要概括了串行通信中的相关概念,为学习PC 机与MCU 的串行通信做准备。
1. 基本概念我们知道,“位”(bit )是二进制数字的简称,是可以拥有两种状态的最小二进制值,分别用“0”和“1”表示。
在计算机中,通常一个信息单位用8位二进制表示,称为一个“字节”(byte )。
串行通信的特点是:数据以字节为单位,按位的顺序从一条传输线上发送出去。
这里至少涉及到以下几个问题:第一,每个字节之间是如何区分的?第二,发送一位的持续时间是多少?第三,怎样知道传输是正确的?第四,可以传输多远?等等。
这些问题属于串行通信的基本概念。
串行通信分为异步通信与同步通信两种方式,本节主要给出异步串行通信的一些常用概念。
正确理解这些概念,对串行通信编程是有益的。
① 异步串行通信的格式在MCU 的英文芯片手册上,通常说SCI 采用的是NRZ 数据格式,英文全称是:“standard non-return-zero mark/space data format ”,可以译为:“标准不归零传号/空号数据格式”。
这是一个通信术语,“不归零”的最初含义是:用负电平表示一种二进制值,正电平表示另一种二进制值,不使用零电平。
“mark/space ”即“传号/空号”分别是表示两种状态的物理名称,逻辑名称记为“1/0”。
对学习嵌入式应用的读者而言,只要理解这种格式只有“1”、“0”两种逻辑值就可以了。
图3.3.1给出了8位数据、无校验情况的传送格式。
这种格式的空闲状态为“1”,发送器通过发送一个“0”表示一个字节传输的开始,随后是数据位(在MCU 中一般是8位或9位,可以包含校验位)。
最后,发送器发送1到2位的停止位,表示一个字节传送结束。
若继续发送下一字节,则重新发送开始位,开始一个新的字节传送。
若不发送新的字节,则维持“1”的状态,使发送数据线处于空闲。
从开始位到停止位结束的时间间隔称为一帧(frame )。
所以,也称这种格式为帧格式。
1 串行通信的概念在机器设备中,通信就是设备之间的数据交换。
人类之间使用诸如电话,书信等方式进行,而机器设备之间则大都是采用电信号。
最常见的信号传递就是使用电压的改变来达到表示不同状态的目的。
如,高电位代表了一种状态,低电位又代表了另一种状态,在组合了很多电位状态后就形成了设备之间的数据交换。
而最简单的信息传递方式,应该是使用一条信号线路来传送电压的变化而达到传送信息的目的,只要准备沟通的双方事先定义好什么样的状态代表什么样的意思,那么通过一条线就可以让双方进行数据交换。
在计算机内部,所有的数据都是使用位来存储的,每一位都是电位的一个状态(计算机中以0、1表示);计算机内部使用组合在一起的8位代表一般使用的字符、数字及一些符号,例如,010100001就表示一个字符。
一般来说,必须传递这些字符、数字及符号才能算是数据交换,如果上面所讨论的使用一条线路来传送信息的话,8个位就一条线路上连续变化8个状态才算是完成了一个字符的传递,这种一次只能传递一个位的通讯方法就是—串行通信;换个角度来说,如果我们可以使用多个线路来传送数据,这些就可以更快一点传送完毕,因此,还有所谓的并行传输,如果并行传输使用了8条信号线就可以一次将一个字符全部传送完毕,其速度理论上是串行通信的8倍。
计算机的发展已经有很长时间了,其中,串行通信存在的时间也相当久了,其应用领域也相当广泛,到如今,市场上很都产品都使用了串行通信技术作为产品对外数据交换的桥梁。
--------为何串行通信受到如此大的重视呢?我想,主要是因为这个技术简单且易实现的特性。
串行通信以RS-232和RS-485为代表,二者各有其使用领域,使用的范畴也不尽相同,但二者都属于串行通信的方法。
串行通信端口(Serial Communication Port)在系统控制的范畴中一直扮演着极其重要的角色,它不仅没有因为时代的进步而淘汰,反而在规格上越来越先进,应用也越来越广泛。
现在,串行通信端口是计算机上的标准配置,而其用途在不同的环境中有不同的用法。
RS-232通信端口是每台计算机上的必要配置,通常有COM1和COM2两个端口,新一代的计算机9引脚的接头接出所有的RS-232通信端口。
每一个引脚都有其特定的名称和用途,它们在计算机和接线上的位置和定义如图:由于串行通信的简单易用,在工业上也使用了串行通信作为数据交换的手段,但在工业环境中常有噪声干扰传输线路,在用RS-232作传输时经常受到外界的电气干扰而使信号发生错误;此外RS-232的最大传输距离在不另加缓冲器的情况下只有15米。
为了解决上述问题,RS-485的通信方式就应运而生了。
RS-232的信号标准电位是参考地线而来的,如果有噪声进入到传输线路中的话,可能会产生干扰,干扰信号在地线和信号上都会产生影响,原始信号加上干扰信号后依然传送到接收端,而地线部分的信号则被地电位给抵消了,因此,信号便发生了扭曲,当然整个信号就不对了。
而RS-485的信号传送出去之前会先分解成正负两条线路,当到达接收端后,再将信号相减还原成原来的信号,所以使用RS-485可以有效的防止噪声干扰,因此在实际的工业现场中比较适合使用这种通讯方式。
串行通信的信号定义和编码由于计算机无法分辨所谓的数字和文字,在其内部所有的数据都是0和1,任何数据都是0和1的组合。
只有信号定义正确才能对传递的数据有相同的认识。
所有电子仪器的基础均来自“开”、“关”两个状态的改变,我们可以将它们表示成0、1或是“高电位”、“低电位”,将很多的0与1组合成一大串的数列后,就可以定义它们所代表的意义了。
当然,RS-232也有相关的电气标准定义,是大家共同遵守的。
在RS-232的标准中,电压在+3V~+15V称之为0,一般用途是On,电压在-3V~-15V之间称为1,一般用途是OFF。
对应字符计算机上的RS-232的“高电位”约9伏,而“低电位”则是约-9伏,如此正负9伏的改变,被记录成0与1的状态。
因此,RS-232串行通信以正负9伏代表0、1的状态,这个范围是符合规定的。
由于两台设备之间的信息传递是在一连串的高低电位之间进行,每一个电位可当成一个状态,这个状态可能是0或1,计算机将每一个0或1称之为一个位。
而8个位则组成一个字节,8个位共有2的8次方(256)种数值,其数值从0~255,而在计算机中有一个ASCII 码对照表,将此256种组合情况分别代表256个字符或句柄,而通信的过程就是着256个字符或句柄的交换。
一般个人计算机或欧美仪器,都会使用到256个字符,工业上最普遍的自动控制仪器(PLC)在它上面传输的数据几乎都是可见字符,也就是说,所传输的数据或句柄都会落在ASCII码前128个字符以内,针对128以上的ASCII码,日本重新加以定义,将这些不可见的字符的位置留给假名使用,日本将这种改编过的码与原来的128之前码合在一起指定了JIS码。
利用实现定义好的ASCII码,通信双方所传输的高低电位组合成一个字节后,便可以在ASCII码中找到相应的字符,比如,传输的字节是下面的电位信号01001100(这是以二进制表示的)与之对应的十六进制是4C,十进制数是76,按此数值在ASCII码中查找,发现它所代表的字符是L,其他的字符也是这样换算过来的。
工作模式通讯是由双方的数据相互交换形成,而交换当然是借助一定的线路才能达到的。
计算机在传输数据时,在传输线路上数据的流动情况可分为3种情况:单工,数据流动只有一个方向;半双工,数据的流动是双向的,但在同一时间内只能一个方向进行;;全双工,同时具有两个方向的传输能力。
就串行通讯而言,RS-232使用的是全双工模式,RS-422和485则分别使用全双工,半双工。
(如下图:)串行通信的传输速度和通信端口的初始化串行基本上是用来做异步传输,既然是异步传输,双方并没有一个可参考的同步时钟作为基准;但如果没有一个参考的话,双方所传输的高低电位到底代表几个位就不得而知了,要使得双方的数据读取正常,就要考虑到传输速度—波特率(BPS )指的是每一秒传送的位数。
通信双方获得相同的通信速度是首先要做的事情。
既然是通信,双方当然要说明白到底是如何传输数据或命令的,否则如果双方没有一个共同的译码方式,恐怕都无法了解对方所传过来的数据意义。
因此,双方必须遵守一定的通信规则。
这就是端口的初始化,它有以下几项:1,数据的传送单位;串行通信端口所传送的数据是字符型的,工业界使用的有ASCII 码和JIS 码。
ASCII 码中8个位形成一个字符,而JIS 码则以7个位形成一个字符。
2,起始位和停止位;当双方准备开始传输数据时,传输端会在所发送出的字符前后分别加上低电位的起始位和高电位的停止位。
接收端会按此设置正确的接收字符;起始位固定为1个位,而停止位则有1、1.5、2个位等多种选择。
3,校验位的检查;校验位是用来检查所传送数据正确性的一种核对码,在这之中又分为奇校验位和偶校验位两种方式,分别是检查字符串中1的数目是奇数或偶数。
如:A 的ASCII 码是41H (十六进制)将它以二进制表示时,是01000001,其中1的个数是两个,以偶校验为列,校验位便是0,使1的个数保持偶数,以奇校验为列的话,校验位便是1,使1的个数保持为奇数。
如图:原状态10001111 1的个数是5个如果偶校验位: 100011111如果奇校验位: 100011110上位链接系统即Hostlink系统是对于FA系统一种即优化又经济的通信方式,它适合一台上位机与一台或多台PLC进行链接。
上位机可对PLC传送程序,并监控PLC的数据区,以及控制PLC的工作情况。
HOSTLINK系统允许一台上位机通过上位机链接命令向HOSTLINK系统的PLC发送命令,PLC处理来自上位机的每条指令,并把结果传回上位机。
系统特点:通信:即可采用RS-232C方式,又可采用RS-422方式。
RS-232C方式是基于1:1的通信,距离为15m。
RS-422方式是实现1:N的通信,即一台上位机与多台PLC进行通信,最多可有32台PLC连接到上位机,通信距离最大可达500m.上位机监控:上位机可对PLC的程序进行传送或读取,并可对PLC数据区进行读写操作双重检查系统:所有通信都将作奇偶检验和帧检验,从而能估计出通信中的错误.系统配置:RS-232C链接(1:1):-使用PLC自带的RS-232C口.-使用上位链接单元.-使用通信板.RS-422链接(1:N):-CPM1-CIF11为外设口转RS-422口的适配器.-NT-AL001为RS-232C与RS-422转换的适配器.-B500-AL001为分支器,其功能是将一路RS-422信号转成两路RS-422信号.-上位机链接模块为C200H-LK202,是带RS-422端口的模块.-也可用通信板进行连接.计算机和PLC(Omron)串行通信的实现这是我这次毕业设计中的其中一个题目,在FA中它属于上位通讯的范畴。
首先介绍现有硬件:普通个人PC一台,其上配有COM1,COM2两端口;CPM1A 一块,带手持编程器;一段传输线。
第一步工作是硬件的连接,就是要将PLC与计算机连接起来。
-4-首先是RS-232C 电缆的制作(如,下图) :第二步是了解并掌握(OMRON )PLC 的上位通信协议。
1,命令和响应格式命令格式:@ --- 必须以@开头机号---上位机识别所连PLC 的机号,CPM1A 中在(DM6653)中设定识别码---2个字符的命令码正文---设定命令的参数FCS---2个字符的校验码*和CR 码---表示命令结束的2个字符。
CR 码用(CHR (13))表示------------响应格式:格式与命令格式完全一样@、机号、设备码的返回值和命令相同结束码---返回命令的执行状态正文---仅在读出数据时返回-----------FCS 的计算范围:@----- 正文-----------FCS 的计算;将@到正文的最后一个字符进行依位异或运算,再将所得的结果换成2个16进制的字符。
(下图是FCS 的计算过程)ASCII码8位二进制码@--→41 ---→01000000XOR1---→31 ---→00110001XOR0---→30 ---→00110000XORR---→52 ---→01010010XORR---→52 ---→01010010XOR0---→30 ---→00110000XOR0---→30 ---→00110000- - XOR- - -- - -0---→30 ---→00110000XOR1---→31 ---→00110000计算结果------→01000001 ----------→16进制数--→42 2, 上位通信命令参考RR -----读出I/O区指定通道开始的指定通道数量的内容。