收藏 分销(赏)

通用串口通信.doc

上传人:s4****5z 文档编号:8801034 上传时间:2025-03-02 格式:DOC 页数:48 大小:420.50KB 下载积分:10 金币
下载 相关 举报
通用串口通信.doc_第1页
第1页 / 共48页
通用串口通信.doc_第2页
第2页 / 共48页


点击查看更多>>
资源描述
两片51单片机互相通信的串行通信程序(一个发送程序,一个接收程序) 作者:佚名  来源:不详  录入:Admin  更新时间:2008-7-26 20:01:31  点击数:2 【字体: 】 系统晶振是 11.0592 MHz ;51单片机发送单片机程序 ;此程序用Proteus仿真通过 ;此程序在硬件上测试通过 ;2007-05-27 ;附有简化电路图 ;为了使初学者能看懂,程序与图尽可能的简单扼要 ;实验现象为,发送端的P1口的哪个键被接下,接收端的哪个灯对应着亮 ;如果把两个单片机的T和R通过无线模块(如基于MCP2120芯片的模块)来扩充,便可做成无线通信                     ORG                 0000H                     AJMP                START                     ORG                 0040H START:                     MOV                 SP,#60H                            MOV                 SCON,#50H                   ;串口 方式 1                     MOV                 TMOD,#20H                   ;T1 方式2                     MOV                 TL1,#0FDH                   ;波特率 9600 的常数                     MOV                 TH1,#0FDH                     SETB                TR1                       MOV                 r5,#00h                    WAIT:                     MOV               p1,#0ffh                     MOV               a ,p1                     MOV               r5,a                     lcall delay                      ;读键盘,这里去抖动,还要加几句话                     MOV               a ,p1                      nop                     CJNE                A,5,WAIT                ;是否有键输入                     MOV                 SBUF,a                      ;串口输出键盘输入的值                     NOP SS:                 JBC                 TI,WAIT                     ;是否发送完毕                     SJMP                SS DELAY:                                      ;延时子程序                     PUSH                0                           ;保存现场                     PUSH                1                     MOV                 0,#06H DELAY1: MOV                 1,#0H                     DJNZ                1,$                     DJNZ                0,DELAY1                     POP                 1                           ;恢复现场                     POP                 0                     RET                     END ;系统晶振是 11.0592 MHz ;51单片机接收单片机程序 ;此程序用Proteus仿真通过 ;此程序在硬件上测试通过 ;2007-05-27 ;附有简化电路图 ;为了使初学者能看懂,程序与图尽可能的简单扼要 ;实验现象为,发送端的P1口的哪个键被接下,接收端的哪个灯对应着亮 ;如果把两个单片机的T和R通过无线模块(如基于MCP2120芯片的模块)来扩充,便可做成无线通信                     ORG                 0000H                     AJMP                START                     ORG                 0040H START:                            MOV                 SCON,#50H                   ;串口 方式 1                     MOV                 TMOD,#20H                   ;T1 方式 2                     MOV                 TL1,#0FDH                   ;波特率 9600 的常数                     MOV                 TH1,#0FDH                     SETB                TR1                              WAIT:                     JBC                 RI,DIS_REC                  ;是否接收到数据                            sjmp                wait DIS_REC:                     MOV                 A,SBUF                      ;读串口接收到的数据                             MOV                 p1,a                     SJMP                wait                     end PC机与多MCS-51单片机间的串行通信设计   作者:北京工业大学 许丽佳 陈阳舟   来源:电子工程师    点击数:1023   更新时间:2006-5-30 您可以添加到网摘 让更多人关注此文章:     摘 要:主要讲解了IBM-PC机与MCS-51单片机多机系统的通信原理,给出了其硬件接口框图,并详细地分析了系统的多机通信软件设计。   关键词:单片机,分布式系统,串行通信   1 引 言   在测控系统和工程应用中,常遇到多项任务需同时执行的情况,因而主从式多机分布式系统成为现代工业广泛应用的模式。它们大多由IBM-PC微机和MCS-51单片机组成。单片机功能强、体积小、价格低廉、开发应用方便,尤其具有全双工串行通讯的特点,在工业控制、数据采集、智能仪器仪表、家用电器方面都有广泛的应用。同时,IBM-PC机正好补充单片机人机对话和外围设备薄弱的缺陷。各单片机独立完成数据采集处理和控制任务,同时通过通信接口将数据传给PC机,PC机将这些数据进行处理、显示或打印,把各种控制命令传给单片机,以实现集中管理和最优控制。   故IBM-PC机(上位机)与各MCS-51单片机(下位机)之间的通信显得尤其重要。本文主要探讨它们之间的远距离串行通信接口和软件程序设计。   2 硬件设计接口   RS-232-C串行通信接口是美国电气工业协会(EIA)与BELL公司等一起开发的一种标准通信协议,现在它在终端、外设与计算机中被广泛采用。该标准规定了21个信号和25个引脚,但在智能仪器与计算机之间的通信中常用2个信号及3个引脚(2脚数据输入,3脚数据输出,7脚信号地)。它采用双极性的负逻辑信号,0逻辑信号为+3V至12V,1逻辑信号为-3V至-12V,它的传输速率最大为20kbit/s,传输距离仅为15m。由于RS-232主要是完成电平移位、转换和信号反相等,所以它有自己的电平转换与驱动芯片,如MC1488(发送)与MC1489(接受)。IBM-PC机有两个标准的RS-232串行口,其电平采用的是EIA电平,而MCS-51单片机的串行通信是由TXD(发送数据)和RXD(接收数据)来进行全双工通信的,它们的电平是TTL电平,为了PC机与MCS-51机之间能可靠地进行串行通信,需要用电平转换芯片。由于MC1488和MC1489需要±12V、+5V电源供电,故采用MAXIM公司生产的低功耗、单电源的MAX232芯片,因为它自身带有电源电压变换器,可以把+5V电源变换成RS-232输出电平所需的±10V电压,能实现RS-232的技术指标,并只需要+5V的电源,为串行通信带来了较好的性能和低廉的价格。MAX232的接口电路图如图2所示。      PC机采用可编程串行异步通信控制器8251A来实现,通过对INS8251A初始化可以控制串行数据传送格式和速度及其工作方式,使得它与单片机的通信方式一致,从而实现PC机与单片机之间的通信。MCS-51和8251A的连接图见图3。         由于远距离数据传输,在系统中用了两片MAX485芯片进行数据传送,还采用了两级光电隔离来提高系统的抗干扰能力。单片机和PC机之间的RS-232通信硬件接口电路框图如图4所示。   3 串行通信的软件程序设计   3.1 主从式多机通信原理   MCS-51用于多机通信时必须工作在方式2或方式3。以方式3为例,每发送一帧数据为11位:1位起始位(0),8位数据位和1位停止位(1),附加的第9位数据在非多机系统中为奇偶校验位,在发送端有SCON的TB8产生,在接收端传送到SCON的RB8。它还可设定为“0”或“1”作为在多机通信中区分数据帧(0标志)还是地址帧(1标志)的标志。在MCS-51多机系统中有以下协议:所有的各从机均处于听命状态,即SM2=1,以便接收主机发来的地址,当接收到一帧信息的RB8为“1”时,表示主机发送来的是地址信息,所有的从机均发生接收中断,否则中断屏蔽。当一从机进入相应的中断服务程序,把接收到的地址和本机的地址比较,如果相符合就令其SM2=0,并向主机发回本机地址以作应答,该从机就与主机联通,准备接收主机发来的命令或数据信息,而其他的未被寻址从机保持SM2=1并退出各自的中断服务程序。这样,只有SM2=0的从机才能接收到主机发送来的数据信息,顺利实现地址帧和数据帧的分离。被寻址从机在通信完成后重新使SM2=1,并退出中断服务程序,等待下次通信。      3.2 多机通信协议   要实现单片机和PC机的正常通信,必须正确设定它们两者之间的通信方式,保证双方都用相同的波特率、起始位、停止位、奇偶校验位,并且要建立双方通信的应答信号。   单片机既可工作在同步移位寄存器方式下也可工作在UART(通用异步收发器)下。串行口的通信方式是由特殊功能寄存器SCON来控制的。其各控制定义如下:      SM0,SM1:工作模式设定位;SM2:允许使用方法2、3多机通信控制位;RB8:接收数据第9位;TB8:发送数据第9位;TI:发送中断标志;RI:接收中断标志。本文中工作方式为3,即9位UART定时器T1作为波特率发生器,工作在方式2,若选定波特率为1200bps,则计数初值为0E8H(SMOD=0,时钟频率Fosc为11.059MHz)。   PC机的异步通信接口为INTEL8251A,它可设定1位、1.5位或2位停止位,数据可在5~8位之间选择,通信频率为0~9.6Kbps,有奇偶校验、帧校验、溢出校验三种方式。可通过对它写入一定的方式控制字、命令控制字从而进行初始化。它与MCS-51的连接如前面所示,则它的数据口地址为0F0H,控制口地址为0F1H。它的工作状态寄存于其状态字寄存器中,可由MCS-51的CPU读取。通信协议如下:(1)串行通信波特率为1200bps;(2)帧格式为8位数据位,一位起始位,一位可编程的第9位(即发送和接收的地址/数据位的标志位),一位停止位;(3)主机和从机遵循主从原则,主机用呼叫方式选择从机,数据在主机和从机之间双向传递,各从机之间的相互通信需通过主机作为中介;(4)主从机之间还应传送一些供它们识别的命令和状态字,如以00H表示主机发送从机接收命令,以01H表示从机发送主机接收命令等。   3.3 通信程序设计思路及其实现   程序主要包括主机程序(由主机主程序和通信子程序组成)、从机主程序和其中断服务程序组成。主机程序主要完成对8251A的初始化以及主机与从机之间的通信,主机程序框图见图5。而从机主程序主要完成对串行口的初始化、波特率的设置(应与8251A的波特率一致),它的中断程序主要用来完成MCS-51单片机与PC机的数据通信。从机中断服务程序框图见图6。      这里简单介绍8251A的初始化程序,设8251A工作于异步通信方式,波特率系数×1,字符长度为8位,偶校验,所以方式字为7DH,又设8251A为全双工方式,出错标志复位,故其命令控制字为27H,其相应的初始化程序如下:   MOV R0,#0F0H               4 结束语   本系统软硬件在IBM PC/XT机和DICE系列的MCS-51单片机上进行过调试,运行良好,验证了其在 仿真平台的控制,现已用于实际系统,且特别适用于从机实时性要求较高的中小型工控系统。   参考文献   1 何立民.单片机应用文集(2).北京:北京航空航天大学出版社,1993   2 何立民.单片机高级教程.北京:北京航空航天大学出版社,2000   3 胡汉才.单片机原理及其接口技术.北京:清华大学出版社,1996   4 陈荣保,肖本贤,李钢.基于MODEM和单片机的远程通讯系统设计与实现.微电子学与计算机,1999(1)5 何飞跃。基于MCS-51单片机的LCU与上位机的通信.微计算机信息,1999(1) 单片机C51串口中断接收和发送测试例程(含通信协议的实现)   通信协议: 第1字节,MSB为1,为第1字节标志,第2字节,MSB为0,为非第一字节标志,其余类推……,最后一个字节为前几个字节后7位的异或校验和。   测试方法:可以将串口调试助手的发送框写上 95 10 20 25,并选上16进制发送,接收框选上16进制显示,如果每发送一次就接收到95 10 20 25,说明测试成功。 //这是一个单片机C51串口接收(中断)和发送例程,可以用来测试51单片机的中断接收 //和查询发送,另外我觉得发送没有必要用中断,因为程序的开销是一样的 #include <reg51.h> #include <string.h> #define INBUF_LEN 4 //数据长度 unsigned char inbuf1[INBUF_LEN]; unsigned char checksum,count3; bit read_flag= 0 ; void init_serialcomm( void ) { SCON = 0x50 ; //SCON: serail mode 1, 8-bit UART, enable ucvr TMOD |= 0x20 ; //TMOD: timer 1, mode 2, 8-bit reload PCON |= 0x80 ; //SMOD=1; TH1 = 0xF4 ; //Baud:4800 fosc=11.0592MHz IE |= 0x90 ; //Enable Serial Interrupt TR1 = 1 ; // timer 1 run // TI=1; } //向串口发送一个字符 void send_char_com( unsigned char ch) { SBUF=ch; while (TI== 0 ); TI= 0 ; } //向串口发送一个字符串,strlen为该字符串长度 void send_string_com( unsigned char *str, unsigned int strlen) { unsigned int k= 0 ; do { send_char_com(*(str + k)); k++; } while (k < strlen); } //串口接收中断函数 void serial () interrupt 4 using 3 { if (RI) { unsigned char ch; RI = 0 ; ch=SBUF; if (ch> 127 ) { count3= 0 ; inbuf1[count3]=ch; checksum= ch- 128 ; } else { count3++; inbuf1[count3]=ch; checksum ^= ch; if ( (count3==(INBUF_LEN- 1 )) && (!checksum) ) { read_flag= 1 ; //如果串口接收的数据达到INBUF_LEN个,且校验没错, //就置位取数标志 } } } } main() { init_serialcomm(); //初始化串口 while ( 1 ) { if (read_flag) //如果取数标志已置位,就将读到的数从串口发出 { read_flag= 0 ; //取数标志清0 send_string_com(inbuf1,INBUF_LEN); } } } RS-232、RS-422与RS-485标准及应用   一、RS-232、RS-422与RS-485的由来   RS-232、RS-422与RS-485都是串行数据接口标准,最初都是由电子工业协会(EIA)制订并发布的,RS-232在1962年发布,命名为EIA-232-E,作为工业标准,以保证不同厂家产品之间的兼容。RS-422由RS-232发展而来,它是为弥补RS-232之不足而提出的。为改进RS-232通信距离短、速率低的缺点,RS-422定义了一种平衡通信接口,将传输速率提高到10Mb/s,传输距离延长到4000英尺(速率低于100kb/s时),并允许在一条平衡总线上连接最多10个接收器。RS-422是一种单机发送、多机接收的单向、平衡传输规范,被命名为TIA/EIA-422-A标准。为扩展应用范围,EIA又于1983年在RS-422基础上制定了RS-485标准,增加了多点、双向通信能力,即允许多个发送器连接到同一条总线上,同时增加了发送器的驱动能力和冲突保护特性,扩展了总线共模范围,后命名为TIA/EIA-485-A标准。由于EIA提出的建议标准都是以“RS”作为前缀,所以在通讯工业领域,仍然习惯将上述标准以RS作前缀称谓。   RS-232、RS-422与RS-485标准只对接口的电气特性做出规定,而不涉及接插件、电缆或协议,在此基础上用户可以建立自己的高层通信协议。因此在视频界的应用,许多厂家都建立了一套高层通信协议,或公开或厂家独家使用。如录像机厂家中的Sony与松下对录像机的RS-422控制协议是有差异的,视频服务器上的控制协议则更多了,如Louth、Odetis协议是公开的,而ProLINK则是基于Profile上的。 二、RS-232串行接口标准   目前RS-232是PC机与通信工业中应用最广泛的一种串行接口。RS-232被定义为一种在低速率串行通讯中增加通讯距离的单端标准。RS-232采取不平衡传输方式,即所谓单端通讯。   收、发端的数据信号是相对于信号地,如从DTE设备发出的数据在使用DB25连接器时是2脚相对7脚(信号地)的电平,DB25各引脚定义参见图1。典型的RS-232信号在正负电平之间摆动,在发送数据时,发送端驱动器输出正电平在+5~+15V,负电平在-5~-15V电平。当无数据传输时,线上为TTL,从开始传送数据到结束,线上电平从TTL电平到RS-232电平再返回TTL电平。接收器典型的工作电平在+3~+12V与-3~-12V。由于发送电平与接收电平的差仅为2V至3V左右,所以其共模抑制能力差,再加上双绞线上的分布电容,其传送距离最大为约15米,最高速率为20kb/s。RS-232是为点对点(即只用一对收、发设备)通讯而设计的,其驱动器负载为3~7kΩ。所以RS-232适合本地设备之间的通信。其有关电气参数参见表1。 规定 RS232 RS422 R485 工作方式 单端 差分 差分 节点数 1收、1发 1发10收 1发32收 最大传输电缆长度 50英尺 400英尺 400英尺 最大传输速率 20Kb/S 10Mb/s 10Mb/s 最大驱动输出电压 +/-25V -0.25V~+6V -7V~+12V 驱动器输出信号电平 (负载最小值) 负载 +/-5V~+/-15V +/-2.0V +/-1.5V 驱动器输出信号电平 (空载最大值) 空载 +/-25V +/-6V +/-6V 驱动器负载阻抗(Ω) 3K~7K 100 54 摆率(最大值) 30V/μs N/A N/A 接收器输入电压范围 +/-15V -10V~+10V -7V~+12V 接收器输入门限 +/-3V +/-200mV +/-200mV 接收器输入电阻(Ω) 3K~7K 4K(最小) ≥12K 驱动器共模电压 -3V~+3V -1V~+3V 接收器共模电压 -7V~+7V -7V~+12V 表1 三、RS-422与RS-485串行接口标准 1.平衡传输   RS-422、RS-485与RS-232不一样,数据信号采用差分传输方式,也称作平衡传输,它使用一对双绞线,将其中一线定义为A,另一线定义为B,如图2。   通常情况下,发送驱动器A、B之间的正电平在+2~+6V,是一个逻辑状态,负电平在-2~6V,是另一个逻辑状态。另有一个信号地C,在RS-485中还有一“使能”端,而在RS-422中这是可用可不用的。“使能”端是用于控制发送驱动器与传输线的切断与连接。当“使能”端起作用时,发送驱动器处于高阻状态,称作“第三态”,即它是有别于逻辑“1”与“0”的第三态。 接收器也作与发送端相对的规定,收、发端通过平衡双绞线将AA与BB对应相连,当在收端AB之间有大于+200mV的电平时,输出正逻辑电平,小于-200mV时,输出负逻辑电平。接收器接收平衡线上的电平范围通常在200mV至6V之间。参见图3。 2.RS-422电气规定   RS-422标准全称是“平衡电压数字接口电路的电气特性”,它定义了接口电路的特性。图5是典型的RS-422四线接口。实际上还有一根信号地线,共5根线。图4是其DB9连接器引脚定义。由于接收器采用高输入阻抗和发送驱动器比RS232更强的驱动能力,故允许在相同传输线上连接多个接收节点,最多可接10个节点。即一个主设备(Master),其余为从设备(Salve),从设备之间不能通信,所以RS-422支持点对多的双向通信。接收器输入阻抗为4k,故发端最大负载能力是10×4k+100Ω(终接电阻)。RS-422四线接口由于采用单独的发送和接收通道,因此不必控制数据方向,各装置之间任何必须的信号交换均可以按软件方式(XON/XOFF握手)或硬件方式(一对单独的双绞线)实现。   RS-422的最大传输距离为4000英尺(约1219米),最大传输速率为10Mb/s。其平衡双绞线的长度与传输速率成反比,在100kb/s速率以下,才可能达到最大传输距离。只有在很短的距离下才能获得最高速率传输。一般100米长的双绞线上所能获得的最大传输速率仅为1Mb/s。   RS-422需要一终接电阻,要求其阻值约等于传输电缆的特性阻抗。在矩距离传输时可不需终接电阻,即一般在300米以下不需终接电阻。终接电阻接在传输电缆的最远端。   RS-422有关电气参数见表1 3.RS-485电气规定   由于RS-485是从RS-422基础上发展而来的,所以RS-485许多电气规定与RS-422相仿。如都采用平衡传输方式、都需要在传输线上接终接电阻等。RS-485可以采用二线与四线方式,二线制可实现真正的多点双向通信,参见图6。   而采用四线连接时,与RS-422一样只能实现点对多的通信,即只能有一个主(Master)设备,其余为从设备,但它比RS-422有改进, 无论四线还是二线连接方式总线上可多接到32个设备。参见图7。   RS-485与RS-422的不同还在于其共模输出电压是不同的,RS-485是-7V至+12V之间,而RS-422在-7V至+7V之间,RS-485接收器最小输入阻抗为12k剑鳵S-422是4k健;旧峡梢运礡S-485满足所有RS-422的规范,所以RS-485的驱动器可以用在RS-422网络中应用。   RS-485有关电气规定参见表1。   RS-485与RS-422一样,其最大传输距离约为1219米,最大传输速率为10Mb/s。平衡双绞线的长度与传输速率成反比,在100kb/s速率以下,才可能使用规定最长的电缆长度。只有在很短的距离下才能获得最高速率传输。一般100米长双绞线最大传输速率仅为1Mb/s。   RS-485需要2个终接电阻,其阻值要求等于传输电缆的特性阻抗。在矩距离传输时可不需终接电阻,即一般在300米以下不需终接电阻。终接电阻接在传输总线的两端。 四、RS-422与RS-485的网络安装注意要点   RS-422可支持10个节点,RS-485支持32个节点,因此多节点构成网络。网络拓扑一般采用终端匹配的总线型结构,不支持环形或星形网络。在构建网络时,应注意如下几点: 1.采用一条双绞线电缆作总线,将各个节点串接起来,从总线到每个节点的引出线长度应尽量短,以便使引出线中的反射信号对总线信号的影响最低。图8所示为实际应用中常见的一些错误连接方式(a,c,e)和正确的连接方式(b,d,f)。a,c,e这三种网络连接尽管不正确,在短距离、低速率仍可能正常工作,但随着通信距离的延长或通信速率的提高,其不良影响会越来越严重,主要原因是信号在各支路末端反射后与原信号叠加,会造成信号质量下降。 2.应注意总线特性阻抗的连续性,在阻抗不连续点就会发生信号的反射。下列几种情况易产生这种不连续性:总线的不同区段采用了不同电缆,或某一段总线上有过多收发器紧靠在一起安装,再者是过长的分支线引出到总线。 总之,应该提供一条单一、连续的信号通道作为总线。 五、RS-422与RS-485传输线上匹配的一些说明   对RS-422与RS-485总线网络一般要使用终接电阻进行匹配。但在短距离与低速率下可以不用考虑终端匹配。那么在什么情况下不用考虑匹配呢?理论上,在每个接收数据信号的中点进行采样时,只要反射信号在开始采样时衰减到足够低就可以不考虑匹配。但这在实际上难以掌握,美国MAXIM公司有篇文章提到一条经验性的原则可以用来判断在什么样的数据速率和电缆长度时需要进行匹配:当信号的转换时间(上升或下降时间)超过电信号沿总线单向传输所需时间的3倍以上时就可以不加匹配。例如具有限斜率特性的RS-485接口MAX483输出信号的上升或下降时间最小为250ns,典型双绞线上的信号传输速率约为0.2m/ns(24AWG PVC电缆),那么只要数据速率在250kb/s以内、电缆长度不超过16米,采用MAX483作为RS-485接口时就可以不加终端匹配。   一般终端匹配采用终接电阻方法,前文已有提及,RS-422在总线电缆的远端并接电阻,RS-485则应在总线电缆的开始和末端都需并接终接电阻。终接电阻一般在RS-422网络中取100Ω,在RS-485网络中取120Ω。相当于电缆特性阻抗的电阻,因为大多数双绞线电缆特性阻抗大约在100~120Ω。这种匹配方法简单有效,但有一个缺点,匹配电阻要消耗较大功率,对于功耗限制比较严格的系统不太适合。   另外一种比较省电的匹配方式是RC匹配,如图9。利用一只电容C隔断直流成分可以节省大部分功率。但电容C的取值是个难点,需要在功耗和匹配质量间进行折衷。   还有一种采用二极管的匹配方法,如图10。这种方案虽未实现真正的“匹配”,但它利用二极管的钳位作用能迅速削弱反射信号,达到改善信号质量的目的。节能效果显著。 六、RS-422与RS-485的接地问题   电子系统接地是很重要的,但常常被忽视。接地处理不当往往会导致电子系统不能稳定工作甚至危及系统安全。RS-422与RS-485传输网络的接地同样也是很重要的,因为接地系统不合理会影响整个网络的稳定性,尤其是在工作环境比较恶劣和传输距离较远的情况下,对于接地的要求更为严格。否则接口损坏率较高。很多情况下,连接RS-422、RS-485通信链路时只是简单地用一对双绞线将各个接口的“A”、“B”端连接起来。而忽略了信号地的连接,这种连接方法在许多场合是能正常工作的,但却埋下了很大的隐患,这有下面二个原因: 1.共模干扰问题:正如前文已述,RS-422与RS-485接口均采用差分方式传输信号方式,并不需要相对于某个参照点来检测信号,系统只需检测两线之间的电位差就可以了。但人们往往忽视了收发器有一定的共模电压范围,如RS-422共模电压范围为-7~+7V,而RS-485收发器共模电压范围为-7~+12V,只有满足上述条件,整个网络才能正常工作。当网络线路中共模电压超出此范围时就会影响通信的稳定可靠,甚至损坏接口。以图11为例,当发送驱动器A向接收器B发送数据时,发送驱动器A的输出共模电压为V OS ,由于两个系统具有各自独立的接地系统,存在着地电位差V GPD 。那么,接收器输入端的共模电压V CM 就会达到V CM =V OS +V GPD 。RS-422与RS-485标准均规定V OS ≤3V,但V GPD 可能会有很大幅度(十几伏甚至数十伏),并可能伴有强干扰信号,致使接收器共模输入V CM 超出正常范围,并在传输线路上产生干扰电流,轻则影响正常通信,重则损坏通信接口电路。 2.(EMI)问题:发送驱动器输出信号中的共模部分需要一个返回通路,如没有一个低阻的返回通道(信号地),就会以辐射的形式返回源端,整个总线就会像一个巨大的天线向外辐射电磁波。   由于上述原因,RS-422、RS-485尽管采用差分平衡传输方式,但对整个RS-422或RS-485网络,必须有一条低阻的信号地。一条低阻的信号地将两个接口的工作地连接起来,使共模干扰电压V GPD 被短路。这条信号地可以是额外的一条线(非屏蔽双绞线),或者是屏蔽双绞线的屏蔽层。这是最通常的接地方法。   值得注意的是,这种做法仅对高阻型共模干扰有效,由于干扰源内阻大,短接后不会形成很大的接地环路电流,对于通信不会有很大影响。当共模干扰源内阻较低时,会在接地线上形成较大的环路电流,影响正常通信。笔者认为,可以采取以下三种措施: (1) 如果干扰源内阻不是非常小,可以在接地线上加限流电阻以限制干扰电流。接地电阻的增加可能会使共模电压升高,但只要控制在适当的范围内就不会影响正常通信。 (2) 采用浮地技术,隔断接地环路。这是较常用也是十分有效的一种方法,当共模干扰内阻很小时上述方法已不能奏效,此时可以考虑将引入干扰的节点(例如处于恶劣的工作环境的现场设备)浮置起来(也就是系统的电路地与机壳或大地隔离),这样就隔断了接地环路,不会形成很大的环路电流。 (3) 采用隔离接口。有些情况下,出于安全或其它方面的考虑,电路地必须与机壳或大地相连,不能悬浮,这时可以采用隔离接口来隔断接地回路,但是仍然应该有一条地线将隔离侧的公共端与其它接口的工作地相连。参见图12。 七、RS-422与RS-485的网络失效保护   RS-422与RS-485标准都规定了接收器门限为±200mV。这样规定能够提供比较高的噪声抑制能力,如前文所述,当接收器A电平比B电平高+200mV以上时,输出为正逻辑,反之,则输出为负逻辑。但由于第三态的存在,即在主机在发端发完一个信息数据后,将总线置于第三态,即总线空闲时没有任何信号驱动总线,使AB之间的电压在-200~+200mV直至趋于0V,这带来了一个问题:接收器输出状态不确定。如果接收机的输出为0V,网络中从机将把其解释为一个新的启动位,并试图读取后续字节,由于永远不会有停止位,产生一个帧错误结果,不再有设备请求总线,网络陷于瘫痪状态。除上述所述的总线空闲会造成两线电压差低于200mV的情况外,开路或短路时也会出现这种情况。故应采取一定的措施避免接收器处于不确定状态。   通常是在总线上加偏置,当总线空闲或开路时,利用偏置电阻将总线偏置在一个确定的状态(差分电压≥-200mV)。如图13。将A上拉到地,B下拉到5V,电阻的典型值是1kΩ,具体数值随电缆的电容变化而变化。   上述方法是比较经典的方法,但它仍然不能解决总线短路时的问题,有些厂家将接收门限移到-200mV/-50mV,可解决这个问题。例如Maxim公司的MAX3080系列RS-485接口,不仅省去了外部偏置电阻,而且解决了总线短路情况下的失效保护问题。 八、RS-422与RS-485的瞬态保护   前文提到的信号接地措施,只对低频率的共模干扰有保护作用,对于频率很高的瞬态干扰就无能为力了。由于传输线对高频信号而言就是相当于电感,因此对于高频瞬态干扰,接地线实际等同于开路。这样的瞬态干扰虽然持续时间短暂,但可能会有成百上千伏的电压。   实际应用环境下还是存在高频瞬态干扰的可能。一般在切换大功率感性负载如电机、变压器、继电器等或闪电过程中都会产生幅度很高的瞬态干扰,如果不加以适当防护就会损坏RS-422或RS-485通信接口。对于这种瞬态干扰可以采用隔离或旁路的方法加以防护。 1.隔离保护方法
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服