232和485的接口区别,以及CRC校验原理.doc_第1页
232和485的接口区别,以及CRC校验原理.doc_第2页
232和485的接口区别,以及CRC校验原理.doc_第3页
232和485的接口区别,以及CRC校验原理.doc_第4页
232和485的接口区别,以及CRC校验原理.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

232与485的区别一、什么是RS-232 接口?(1) RS-232 的历史和作用在串行通讯时,要求通讯双方都采用一个标准接口,使不同的设备可以方便地连接起来进行通讯。RS-232-C接口(又称EIA RS-232-C)是目前最常用的一种串行通讯接口。(“RS-232-C”中的“-C”只不过表示RS-232的版本,所以与“RS-232”简称是一样的)它是在1970 年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。它的全名是数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换接口技术标准该标准规定采用一个25 个脚的DB-25 连接器,对连接器的每个引脚的信号内容加以规定,还对各种信号的电平加以规定。后来IBM的PC 机将RS-232 简化成了DB-9 连接器,从而成为事实标准。而工业控制的RS-232 口一般只使用RXD、TXD、GND 三条线。(2)RS-232 接口的电气特性在RS-232-C 中任何一条信号线的电压均为负逻辑关系。即:逻辑1为-3 到-15V;逻辑0为+3 到+15V 。RS-232-C 最常用的9 条引线的信号内容如下所示DB-9123456789DB-25 832 20764522定义DCD RXD TXD DTR GND DSR RTS CTS RI(3) RS-232 接口的物理结构RS-232-C 接口连接器一般使用型号为DB-9 插头座,通常插头在DCE端,插座在DTE端.PC 机的RS-232 口为9 芯针插座。而波士RS-232/RS-485转换器的RS-232 为DB-9 孔插头。一些设备与PC 机连接的RS-232 接口,因为不使用对方的传送控制信号,只需三条接口线,即发送数据TXD、接收数据RXD和信号地GND。RS-232 传输线采用屏蔽双绞线。(4)RS-232 传输电缆长度由RS-232C 标准规定在码元畸变小于4%的情况下,传输电缆长度应为50 英尺,其实这个4%的码元畸变是很保守的,在实际应用中,约有99%的用户是按码元畸变10-20%的范围工作的,所以实际使用中最大距离会远超过50英尺,美国DEC公司曾规定允许码元畸变为10%而得出下面实验结果。其中1 号电缆为屏蔽电缆,型号为DECP.NO.9107723 内有三对双绞线,每对由22# AWG 组成,其外覆以屏蔽网。2 号电缆为不带屏蔽的电缆。型号为DECP.NO.9105856-04是22#AWG 的四芯电缆。DEC 公司的实验结果波特率bps1号电缆传输距离(米) 2号电缆传输距离(米)110 1500 900300 1500 9001200 900 9002400 300 1504800 300 759600 75 75经过许多年来RS-232 器件以及通信技术的改进,RS-232 的通信距离已经大大增加。波士电子的RS-232 增强器可以将普通的RS-232 口的通信距离直接延长到1000米。二、什么是RS-485 接口?1. RS-485 的电气特性: 发送端:逻辑1以两线间的电压差为+(2 至6) V 表示;逻辑0以两线间的电压差为-(2 至6)V 表示。接收端:A比B高200mV以上即认为是逻辑1,A 比B 低200mV 以上即认为是逻辑0。2. RS-485(或 RS-422)的接线:3. RS-485 的数据最高传输速率为10Mbps。但是由于RS-485 常常要与PC 机的RS-232口通信,所以实际上一般最高115.2Kbps。又由于太高的速率会使RS-485 传输距离减小,所以往往为9600bps 左右或以下。4. RS-485 接口是采用平衡驱动器和差分接收器的组合,抗噪声干扰性好。5. RS-485接口的最大传输距离标准值为1200米(9600bps时),实际上可达3000米,RS-485 接口在总线上是允许连接多达128个收发器、即RS-485 具有多机通信能力,这样用户可以利用单一的RS-485 接口方便地建立起设备网络。因RS-485 接口具有良好的抗噪声干扰性,长的传输距离和多站能力等上述优点就使其成为首选的串行接口。因为RS485 接口组成的半双工网络,一般只需二根信号线,所以RS485 接口均采用屏蔽双绞线传输。RS-485 的国际标准并没有规定RS485 的接口连接器标准、所以采用接线端子或者DB-9、DB-25 等连接器都可以。波士RS-485 接口是事实工业标准。6. 采用RS485 接口时,传输电缆的长度如何考虑?答: 在使用RS485 接口时,对于特定的传输线经,从发生器到负载其数据信号传输所允许的最大电缆长度是数据信号速率的函数,这个长度数据主要是受信号失真及噪声等影响所限制。最大电缆长度与信号速率的关系曲线是使用24AWG 铜芯双绞电话电缆(线径为0。51mm),线间旁路电容为52。5PF/M,终端负载电阻为100 欧时所得出。(引自GB11014-89附录A)。当数据信号速率降低到90Kbit/S 以下时,假定最大允许的信号损失为6dBV 时, 则电缆长度被限制在1200M。实际上,在实用时是完全可以取得比它大的电缆长度。当使用不同线径的电缆。则取得的最大电缆长度是不相同的。例如:当数据信号速率为600Kbit/S时,采用24AWG 电缆,最大电缆长度是200m,若采用19AWG 电缆(线径为0.91mm)则电缆长度将可以大于200m; 若采用28AWG 电缆(线径为0.32mm)则电缆长度只能小于200m。RS-485的远距离通信建议采用屏蔽电缆,并且将屏蔽层作为地线。三、什么是RS RS-422 接口?RS-422 的电气性能与RS-485完全一样。主要的区别在于:RS-422 有4 根信号线:两根发送(Y、Z)、两根接收(A、B)。由于RS-422 的收与发是分开的所以可以同时收和发(全双工)。RS-485 有2 根信号线:发送和接收都是A 和B。由于RS-485 的收与发是共用两根线所以不能够同时收和发(半双工)。能否将RS-422 的Y-A 短接作为RS-485 的A、将RS-422 的Z-B 短接作为RS-485 的B呢?回答:不一定。条件是RS-422 必须是能够支持多机通信的。波士电子的所有接口转换器的RS-422 口都能够支持全双工多机通信,所以可以这样简单转换为RS-485。四、RS RS-485 比RS RS-232 232-C 接口相比有何特点?答: 由于RS-232 接口标准出现较早,难免有不足之处,主要有以下四点:(1) 接口的信号电平值较高,易损坏接口电路的芯片,又因为与TTL 电平不兼容故需使用电平转换电路方能与TTL 电路连接。(2) 传输速率较低,在异步传输时,波特率为20Kbps。现在由于采用新的UART 芯片16C550 等,波特率达到115.2Kbps。(3) 接口使用一根信号线和一根信号返回线而构成共地的传输形式, 这种共地传输容易产生共模干扰,所以抗噪声干扰性弱。(4) 传输距离有限,最大传输距离标准值为50 米,实际上也只能用在15米左右。(5)RS-232 只允许一对一通信,而RS-485 接口在总线上是允许连接多达128个收发器。(6)深圳市天地华杰科技有限公司专业生产的TD-1204集线器可以解决485总线连接方式。(7)TD-1204是一款RS-485集线器(又称RS-485总线分割集中器,RS-485HUB)。是深圳市天地华杰科技有限公司为了解决复杂电磁场环境下RS-485总线大系统中星型布线而专业设计。该RS485集线器采用双向透明传输,RS485集线器它能够把一路RS-485或一路RS-232总线分割为4路RS-485总线,或者把四路RS-485信号汇集到一路RS-485或一路RS-232总线上来。并且每个端口都独立具有光隔、短路、开路保护功能。在系统发生故障的时候,内置的控制器能够及时的切断有故障的端口。使RS485集线器保证每一端口都起到独立工作,达到互不干扰的效果。每个端口可同时连接32个接点,可延长1200米RS-485信号。是改变RS-485总线布线中单一结构的最好选择什么是CRC校验_来吧默认分类 2008-06-16 22:37:36 阅读2081 评论0 字号:大中小订阅 什么是CRC校验2006-12-31 16:10CRC校验采用多项式编码方法被处理的数据块可以看作是一个二进制多项式,例如,10110101可以看作是27+25+24+22+20,多项式乘除法运算过程与普通代数多项式的乘除法相同多项式的加减法运算以2为模,加减时不进,错位,和逻辑异或运算一致采用CRC校验时,发送方和接收方用同一个生成多项式g(x),并且g(x)的首位和最后一位的系数必须为1CRC的处理方法是:发送方以g(x)去除t(x),得到余数作为CRC校验码校验时,以计算的校正结果是否为0为据,判断数据帧是否出错CRC校验可以100地检测出所有奇数个随机错误和长度小于等于k(k为g(x)的阶数)的突发错误所以CRC的生成多项式的阶数越高,那么误判的概率就越小CCITT建议:2048kbit/s的PCM基群设备采用CRC-4方案,使用的CRC校验采用16位CRC校验在IBM的同步数据链路控制规程SDLC的帧校验序列FCS中,使用CRC-16g(x)的位数越高,检错能力就越强由于CRC-32的可靠性,把CRC-32用于重要数据传输十分合适,所以在通信计算机等领域运用十分广泛在一些UART通信控制芯片(如MC6582Intel8273和Z80-SIO)内,都采用了CRC校验码进行差错控制;以太网卡芯片MPEG解码芯片中,也采用CRC-32进行差错控制(转自/forum/viewthread.php?tid=5470&sid=3rrqVomR)CRC校验码的基本思想是利用线性编码理论,在发送端根据要传送的k位二进制码序列,以一定的规则产生一个校验用的监督码(既CRC码)r位,并附在信息后边,构成一个新的二进制码序列数共(k+r)位,最后发送出去在接收端,则根据信息码和CRC码之间所遵循的规则进行检验,以确定传送中是否出错在数据存储和数据通讯领域,CRC无处不在:著名的通讯协议X.25的FCS(帧检错序列)采用的是CRC.CCITT,ARJLHA等压缩工具软件采用的是CRC32,磁盘驱动器的读写采用了CRC16,通用的图像存储格式GIFTIFF等也都用CRC作为检错手段CRC的本质是模-2除法的余数,采用的除数不同,CRC的类型也就不一样通常,CRC的除数用生成多项式来表示最常用的CRC码的生成多项式有CRC16,CRC32.以CRC16为例,16位的CRC码产生的规则是先将要发送的二进制序列数左移16位(既乘以216)后,再除以一个多项式,最后所得到的余数既是CRC码,如下式所示,其中K(X)表示n位的二进制序列数,G(X)为多项式,Q(X)为整数,R(X)是余数(既CRC码)K(X)16=G(x)Q(x)+R(x)求CRC码所采用模2加减运算法则,既是不带进位和借位的按位加减,这种加减运算实际上就是逻辑上的异或运算,加法和减法等价,乘法和除法运算与普通代数式的乘除法运算是一样,符合同样的规律生成CRC码的多项式如下,其中CRC-16和CRC-CCITT产生16位的CRC码,而CRC-32则产生的是32位的CRC码接收方将接收到的二进制序列数(包括信息码和CRC码)除以多项式,如果余数为0,则说明传输中无错误发生,否则说明传输有误,关于其原理这里不再多述用软件计算CRC码时,接收方可以将接收到的信息码求CRC码,比较结果和接收到的CRC码是否相同CCITT推荐的高级数据链路控制规程HDLC的帧校验序列FCS中,使用CCITT-16即CRC16,其生成多项式为G(x)=x16+x12+x5+1,CRC-32CRC校验码的算法分析CRC校验码的编码方法是用待发送的二进制数据t(x)除以生成多项式g(x),将最后的余数作为CRC校验码其实现步骤如下:设待发送的数据块是m位的二进制多项式t(x),生成多项式为r阶的g(x)在数据块的末尾添加r个0,数据块的长度增加到m+r位,对应的二进制多项式为用生成多项式g(x)去除,求得余数为阶数为r-1的二进制多项式y(x)此二进制多项式y(x)就是t(x)经过生成多项式g(x)编码的CRC校验码用以模2的方式减去y(x),得到二进制多项式就是包含了CRC校验码的待发送字符串从CRC的编码规则可以看出,CRC编码实际上是将代发送的m位二进制多项式t(x)转换成了可以被g(x)除尽的m+r位二进制多项式,所以解码时可以用接受到的数据去除g(x),如果余数位零,则表示传输过程没有错误;如果余数不为零,则在传输过程中肯定存在错误许多CRC的硬件解码电路就是按这种方式进行检错的同时可以看做是由t(x)和CRC校验码的组合,所以解码时将接收到的二进制数据去掉尾部的r位数据,得到的就是原始数据为了更清楚的了解CRC校验码的编码过程,下面用一个简单的例子来说明CRC校验码的编码过程由于CRC-32CRC-16CCITT和CRC-4的编码过程基本一致,只有位数和生成多项式不一样为了叙述简单,用一个CRC-4编码的例子来说明CRC的编码过程设待发送的数据t(x)为12位的二进制数据100100011100;CRC-4的生成多项式为g(x)=,阶数r为4,即10011首先在t(x)的末尾添加4个0构成,数据块就成了1001000111000000然后用g(x)去除,不用管商是多少,只需要求得余数y(x)下表为给出了除法过程除数次数被除数/g(x)/结果余数010010001110000001001110000001001100001001110000001100111000000100000010011000001000000210000001100100110001100从上面表中可以看出,CRC编码实际上是一个循环移位的模2运算对CRC-4,我们假设有一个5bits的寄存器,通过反复的移位和进行CRC的除法,那么最终该寄存器中的值去掉最高一位就是我们所要求的余数所以可以将上述步骤用下面的流程描述:/reg是一个5bits的寄存器把reg中的值置0.把原始的数据后添加r个0.While(数据未处理完)BeginIf(reg首位是1)reg=regXOR0011.把reg中的值左移一位,读入一个新的数据并置于register的0bit的位置Endreg的后四位就是我们所要求的余数这种算法简单,容易实现,对任意长度生成多项式的G(x)都适用在发送的数据不长的情况下可以使用但是如果发送的数据块很长的话,这种方法就不太适合了它一次只能处理一位数据,效率太低为了提高处理效率,可以一次处理4位8位16位32位由于处理器的结构基本上都支持8位数据的处理,所以一次处理8位比较合适为了对优化后的算法有一种直观的了解,先将上面的算法换个角度理解一下在上面例子中,可以将编码过程看作如下过程:由于最后只需要余数,所以我们只看后四位构造一个四位的寄存器reg,初值为0,数据依次移入reg0(reg的0位),同时reg3的数据移出reg有上面的算法可以知道,只有当移出的数据为1时,reg才和g(x)进行XOR运算;移出的数据为0时,reg不与g(x)进行XOR运算,相当与和0000进行XOR运算就是说,reg和什么样的数据进行XOR移出的数据决定由于只有一个bi

温馨提示

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

评论

0/150

提交评论