1、摘 要在多机通信领域由于单片机具备灵活高效多机通信功能和价格优势,应用越来越广泛,但由于单片机收发信号都是TTI 电平,驱动能力和抗干扰性有限,实用中常配合其他总线实现互联,RS-485总线就是其中之一。RS-485总线是平衡差分传播,抗干扰性好,最远可传播4000 m,可互联多达128个单片机,非常适台构成多机通信系统。在多机通信中,最重要是保证通信有条不紊地进行,因而需要严格通信合同和完善通信软件,本文将重点简介应用于某大型工程单片机多机通信协议和通信软件设计办法。本文简介一种运用单片机自身所提供串行通讯口,采用自定义串行通信合同,加上总线驱动器如MAX481、MAX483、MAX485、
2、MAX487等组合成简朴RS485通讯网络,完毕单片机间多机通讯。 核心词:单片机;串行通信;RS485总线: 多机通信合同 AbstractIn computer communication field. Because of the single chip microcomputer has flexible and efficient computer communication function and price advantage,used more and more widely,but because of the single chip microcomputer to se
3、nd and receive signals are TTI level,drive and anti-interference ability is limited,practical cooperation with other bus realize in Internet,RS-485 bus is one of them. RS-485 bus is a balanced differential transmission,anti-jamming of the good and as far as 4000 m could be transmitted,interconnected
4、 as many as 128 single chip microcomputer,very comfortable a composition computer communication system. In computer communication,the most important is to ensure that communications in an orderly way,and therefore need to strict communication protocol and perfect communication software,this paper wi
5、ll focus on introduces applied in a large project single-chip computer communication association Put the communication software design method. This paper introduces a microcontroller itself provide the serial communication mouth,use custom serial communication protocol,plus the bus drives as MAX481,
6、MAX483,MAX485,MAX487 combined into simple RS-485 communication network,finish between the single chip computer communication. Keywords:SCM;Serial communication;RS-485 bus:computer communication agreement目 录第1章 绪论11.1 课题研究背景与意义11.2 单片机多机通信发展1第2章 总体简介32.1 系统构成32.2 RS-48532.3 多机通信原理4第3章 硬件设计及原理63.1 80C
7、51单片机硬件构造63.2 最小应用系统设计73.2.1 时钟电路73.2.2 复位电路83.3 总线驱动芯片9第4章 系统问题及其解决124.1 通信规则124.2 总线匹配134.3 硬件抗干扰办法134.3.1 RO及DI端配备上拉电阻134.3.2 地线与接地144.3.3 电磁干扰(EMI)问题144.3.4 瞬态保护154.3.5 总线隔离164.4 软件抗干扰办法164.4.1 指令冗余164.4.2 拦截技术164.4.3 软件“看门狗”技术17第5章 软件设计195.1 系统构造195.2 通信合同195.2.1 信息格式195.2.2 定期与重发205.2.3 通信过程20
8、5.3 通信软件设计215.3.1 从机通信软件设计215.3.2 主机通信软件设计23第6章 程序设计246.1 主机程序如下:246.2 从机1程序如下:266.3 从机2程序如下:27第7章 系统仿真29结束语31致 谢32参照文献33第1章 绪论1.1 课题研究背景与意义单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具备数据解决能力中央解决器CPU随机存储器RAM、只读存储器ROM、各种I/O口和中断系统、定期器/计时器等功能(也许还涉及显示驱动电路、脉宽调制电路、模仿多路转换器、A/D转换器等电路)集成到一块硅片上构成一种小而完善计算机系统当前单片机渗入到咱们生活各个领域,
9、几乎很难找到哪个领域没有单片机踪迹。导弹导航装置,飞机上各种仪表控制,计算机网络通讯与数据传播,工业自动化过程实时控制和数据解决,广泛使用各种智能IC卡,民用豪华轿车安全保障系统,录象机、摄象机、全自动洗衣机控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域机器人、智能仪表、医疗器械了。 单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备智能化管理及过程控制等领域随着计算机技术发展及工业自动化水平提高,在许多场合采用单机控制已不能满足现场规定,因而必要采用多机控制形式,而多机控制重要通过各种单片机之间串行通信实现。串行通信作为单片机之间惯用通信办法之一,由
10、于其通信编程灵活、硬件简洁并遵循统一原则,因而其在工业控制领域得到了广泛应用。构成较大规模检测、控制系统,经常要采用各种单片机,构成可以通信多机系统。Mcs一51系列单片机为实现多机通信联网设计了以便串行通信接口功能。将各种Mcs一51单片机构成串行总线形式互相通道,通过写单片机串行控制方式寄存器,将串行口置成方式2或方式3,就可以实现主机与分机之间串行通信。这种多机系统构造简朴,应用广泛,但它只能实现由主机呼喊分机,然后实现主机与分机之间全双工串行通信。咱们在监控系统中规定既有主机与分机积极通信,又有分机与主机积极通信,这种构造多机系统就无法满足规定。多机协同工作已是单片机发展一种重要趋势,
11、当前单片机多机通信重要方式依然是主从式多机通信系统。单片机多机通信目是实现分布式解决系统,单片机多机通信方式有诸各种,应用前景辽阔,非常具备研究意义!1.2 单片机多机通信发展随着科技发展,单片机已不是一种陌生名词,它浮现是近代计算机技术发展史上一种重要里程碑,由于单片机诞生标志着计算机正式形成了通用计算机系统和嵌入式计算机系统两大分支。单片机单芯片微小体积和低成本,可广泛地嵌入到如玩具、家用电器、机器人、仪器仪表、汽车电子系统、工业控制单元、办公自动化设备、金融电子系统、舰船、个人信息终端及通讯产品中,成为当代电子系统中最重要智能化工具。 所涉及市场占有率最高是MCS51系列,由于世界上诸多
12、知名IC生产厂家都生产51兼容芯片。生产MCS51系列单片机厂家如美国AMD公司、ATMEL公司、INTEL公司、WINBOND公司、PHILIPS公司、ISSI公司、TEMIC公司及南韩LG公司、日本NEC、西门子公司等。到当前为止,MCS51单片机已有数百个品种,还在不断推出功能更强新产品。当代单片机普遍具备通信接口,可以很以便地与计算机进行数据通信,为在计算机网络和通信设备间应用提供了极好物质条件,当前通信设备基本上都实现了单片机智能控制,从手机,电话机、小型程控互换机、楼宇自动通信呼喊系统、列车无线通信、再到寻常工作中随处可见移动电话,集群移动通信,无线电对讲机等。单片机通信领域应用一
13、方面从两片单片机之间通信发展起来,日后有了主从式多机通信并得到了广泛应用,又浮现了以单片机作为下位机与以PC机作为上位机通信应用,上位机用VB或VC+等面向对象程序设计语言编写通信收发程序,也得到了广泛应用。虽然,单片机多机通信已有较长研究历史了,但其形式大多是主从式,很少是平权式。第2章 总体简介2.1 系统构成本设计采用MCS-51系列中80C51单片机。80C51是一款八位单片机,它易用性和多功能性受到了广大使用者好评。它是第三代单片机代表。新一代单片机最重要技术特点是向外部接口电路扩展,以实现Microcomputer完善控制功能为己任,将某些外部接口功能单元如A/DPWMPCA(可编
14、程计数器阵列)WDT(监视定期器)高速I/O口计数器捕获/比较逻辑等。这一代单片机中,在总线方面最重要进展是为单片机配备了芯片间串行总线,为单片机应用系统设计提供了更加灵活方式。Philips公司还为这一代单片机80C51系列8C592单片机引入了具备较强功能设备间网络系统总线-CAN(Controller Area Network BUS).新一代单片机为外部提供了相称完善总线构造,为系统扩展与配备打下了良好基本。菲利浦公司研发LPC900系列单片机是一种基于80C51内核高速、低功耗Flash单片机,重要集成了字节方式I2C总线、SPI接口、UART通信接口、实时时钟、E2PROM、A/D
15、转换器、ISP/IAP在线编程和远程编程方式等一系列有特色功能部件。本文中系统构成使用了P89LPC932单片机。P89LPC932是一款单片封装微控制器,合用于许多规定高集成度、低成本场合。它采用了高性能解决器构造,指令执行时间只需要2-4个时钟周期,6倍于原则80C51器件。2.2 RS-485RS485原则接口是单片机系统种惯用一种串行总线之一。RS-485通信方式RS-485原则是由EIA(电子工业协会)和TIA(通讯工业协会)共同制定和开发。RS-485作为一种多点差分数据传播电气规范,已成为业界最广泛应用原则通信接口之一。理论上,RS-485原则最多接入32个设备(受芯片驱动能力影
16、响),可以工作在半双工或全双工模式下,最大传播距离约为1219米,最大传播速率约为10Mbps1。然而普通RS-485网络采用平衡双绞线作为传播媒体,平衡双绞线长度与传播速率成反比,只有在20Kbps传播速率下,才也许达到最大传播距离。普通15米长双绞线最大传播速率仅为1Mbps。但是对于速率规定不是很高控制系统来说已经足够了。RS-485采用平衡发送和差分接受方式来实现通信:在发送端TXD将串行口TTL电平信号转换成差分信号A、B两路输出,经传播后在接受端将差分信号还原成TTL电平信号。两条传播线普通使用双绞线,又是差分传播,因而有极强抗共模干扰能力,接受敏捷度也相称高。同步,最大传播速率和
17、最大传播距离也大大提高。如果以10Kbps速率传播数据时传播距离可达12m,而用100Kbps时传播距离可达1.2km。如果减少波特率,传播距离还可进一步提高。此外RS-485实现了多点互连,最多可达256台驱动器和256台接受器,非常便于多器件连接。不但可以实现半双工通信,并且可以实现全双工通信。 2.3 多机通信原理在多机通信中,每台从机均分派有一种从机地址,主机与从机之间进行串行通信时,普通是主机先呼喊某从机地址,唤醒被叫从机后,主、从两机之间进行数据互换。而未被呼喊从机则继续进行各自工作。可是,如果在主机与某被呼喊从机进行数据互换过程中,其她从机如果不采用相应数据辨认技术,则这些从机就
18、会由于串行通信线上有数据传播而时时被打断,影响正常工作。运用单片机串口工作方式2、方式3可以较好解决上述问题。在多机通信过程中,从机一方面要解决是如何辨认主机发送是地址信息还是数据信息。当发送是地址信息时,各从机都响应串口中断,接受主机下发一帧地址数据。而当主机发送数据帧时,无关从机可不响应串口中断。解决办法是:当主机发送一帧地址信息时,应保持这帧数据第9位为1。从机按照工作方式2或工作方式3运营时,将串口寄存器SCON中控制位SM2置为1,当所接受一帧数据第9位为1,因此从机产生串口中断,接受这一帧地址数据并与各自从机地址进行比较,以判断主机与否要与本机通信。接受到地址数据与从机地址相等达到
19、为被呼喊从机,该从机将串口控制寄存器SCON中控制位SM2清为0,去接受主机发送来数据帧(数据帧第9位为0),此时不论接受到第9位数据与否为1或0,都要产生串口中断,这就保证了主机与被呼喊从机间正常数据通信。数据通信结束后,该从机又重新将串行口控制寄存器SCON中控制位SM2置为1,为下一次与主机进行通信做好准备。其她从机则始终在SM2=1下继续自己工作,不会由于主、从机之间数据通信而被打断。多机通信实现,重要靠主、从机对的地设立与判断多机通信控制位SM2和发送或接受第9位数据(TB8或RB8)。当主机给从机发送信息时,要依照发送信息性质来设立TB8,发送地址信号时,设立TB8=1;发送数据或
20、命令时,设立TB8=0。当从机SM2为1时,该从机只接受地址帧(RB8位为1),对数据帧(RB8位为0)将不予理睬。而当SM2为0时,该从机接受所有发送来信息。多机通信过程如下:(1) 使所有从机SM2置1,处在只接受地址帧状态(即从机复位);(2) 主机发送一地址帧信息,其中包括8位地址,第9位为地址、数据标志位,第9位置1表达发送是地址;(3) 从机接受到地址帧后,各自中断CPU,把接受到地址与本地址作比较;(4) 地址相符从机,使SM2清零以接受主机随后发来所有信息,对于地址不相符从机,仍保持SM2=1状态,对主机随后发送数据不予理睬,直到主机发送来新地址帧;(5) 主机发送数据或控制信
21、息给被寻址从机;(6) 被寻址从机,因SM2=0,可以接受主机发送过来所有数据,当从机接受数据结束时,置位SM2,返回接受地址帧状态(复位状态);(7) 当主机改为与此外从机联系时,可再发地址帧寻址其从机,而先前被寻址过从机恢复SM2=1。第3章 硬件设计及原理一种单片机应用系统硬件电路设计包具有两某些内容:一是系统扩展,即单片机内部功能单元,如ROMRAMI/O口定期/记数器中断系统等能量不能满足应用系统规定期,必要在片外进行扩展,选取恰当芯片,设计相应电路。二是系统配备,既按照系统功能规定配备外围设备,如键盘显示屏打印机A/DD/A转换器等,要设计适当接口电路。3.1 80C51单片机硬件
22、构造80C51单片机是把那些作为控制应用所必须基本内容都集成在一种尺寸有限集成电路芯片上2。如果按功能划分,它由如下功能部件构成,即微解决器、数据存储器、程序存储器、并行I/O口、串行口、定期器/计数器、中断系统及特殊功能寄存器。它们都是通过片内单一总线连接而成,其基本构造仍旧是CPU加上外围芯片老式构造模式。但对各种功能部件控制是采用特殊功能寄存器集中控制方式。微解决器:该单片机中有一种8位微解决器,与通用微解决器基本相似,同样涉及了运算器和控制器两大某些,只是增长了面向控制解决功能,不但可解决数据,还可以进行位变量解决。数据存储器:片内为128个字节,片外最多可外扩至64k字节,用来存储程
23、序在运营期间工作变量、运算中间成果、数据暂存和缓冲、标志位等,因此称为数据存储器。程序存储器:由于受集成度限制,片内只读存储器普通容量较小,如果片内只读存储器容量不够,则需用扩展片外只读存储器,片外最多可外扩至64k字节。 中断系统:具备5个中断源,2级中断优先权。定期器/计数器:片内有2个16位定期器/计数器, 具备四种工作方式。串行口:1个全双工串行口,具备四种工作方式。可用来进行串行通讯,扩展并行I/O口,甚至与各种单片机相连构成多机系统,从而使单片机功能更强且应用更广。 P1口、P2口、P3口、P4口:为4个并行8位I/O口。特殊功能寄存器:共有21个,用于对片内个功能部件进行管理、控
24、制、监视。事实上是某些控制寄存器和状态寄存器,是一种具备特殊功能RAM区。由上可见,80C51单片机硬件构造具备功能部件种类全,功能强等特点。特别值得一提是该单片机CPU中位解决器,它事实上是一种完整1位微计算机,这个一位微计算机有自己CPU、位寄存器、I/O口和指令集。1位机在开关决策、逻辑电路仿真、过程控制方面非常有效;而8位机在数据采集,运算解决方面有明显长处。MCS-51单片机中8位机和1位机硬件资源复合在一起,两者相辅相承,它是单片机技术上一种突破,这也是MCS-51单片机在设计精美之处。3.2 最小应用系统设计80C51是片内有ROM/EPROM单片机,因而,这种芯片构成最小系统简
25、朴可靠。用80C51单片机构成最小应用系统时,只要将单片机接上时钟电路和复位电路即可,如图3-1 80C51单片机最小系统所示。由于集成度限制,最小应用系统只能用作某些小型控制单元。其应用特点:(1) 有可供顾客使用大量I/O口线。(2) 内部存储器容量有限。(3) 应用系统开发具备特殊性。图3-1 80C51单片机最小系统3.2.1 时钟电路80C51虽然有内部振荡电路,但要形成时钟,必要外部附加电路。80C51单片机时钟产生办法有两种。内部时钟方式和外部时钟方式。本设计采用内部时钟方式,运用芯片内部振荡电路,在XTAL1、XTAL2引脚上外接定期元件,内部振荡电路便产生自激振荡。本设计采用
26、最惯用内部时钟方式,即用外接晶体和电容构成并联谐振回路。振荡晶体可在1.2MHZ到12MHZ之间选取。电容值无严格规定,但电容取值对振荡频率输出稳定性、大小、振荡电路起振速度有少量影响,CX1、CX2可在20pF到100pF之间取值,但在60pF到70pF时振荡器有较高频率稳定性。因此本设计中,振荡晶体选取6MHZ,电容选取65pF。时钟电路如图3-2。 图3-2 80C51时钟电路在设计印刷电路板时,晶体和电容应尽量接近单片机芯片安装,以减少寄生电容,更好保证振荡器稳定和可靠地工作。为了提高温度稳定性,应采用NPO电容。3.2.2 复位电路80C51复位是由外部复位电路来实现。复位引脚RST
27、通过一种斯密特触发器用来抑制噪声,在每个机器周期S5P2,斯密特触发器输出电平由复位电路采样一次,然后才干得到内部复位操作所需要信号。复位电路普通采用上电自动复位和按钮复位两种方式。最简朴上电自动复位电路中上电自动复位是通过外部复位电路电容充电来实现。只要Vcc上升时间不超过1ms,就可以实现自动上电复位。时钟频率用6MHZ时C取22uF,R取1K。除了上电复位外,有时还需要按键手动复位。本设计就是用按键手动复位。按键手动复位有电平方式和脉冲方式两种。其中电平复位是通过RST端经电阻与电源Vcc接通而实现。按键手动复位电路见图3-3。时钟频率选用6MHZ时,C取22uF,R2取200,R1取1
28、K。图3-3 80C51复位电路 在这种简朴复位电路中,干扰容易串入复位端,在大多数状况下不会导致单片机错误复位,但会引起内部某些寄存器错误复位。这时可在复位引脚上接一种去耦电容。如果干扰严重,或整个系统干扰严重,引起单片机复位,可采用屏蔽办法解决,如加屏蔽网或移动位置等。 在实际应用中,为了保证复位电路可靠地工作,常将RC电路接施密特电路后接入单片机复位端,特别适合于应用系统现场干扰大,电压波动大工作环境,如图3-4所示抗干扰复位电路。 图3-4 抗干扰复位电路3.3 总线驱动芯片 MAX481、MAX483、MAX485、MAX487-MAX491以及MAX1487是用于RS-485与RS
29、-422通信低功耗收发器,每个器件中都具备一种驱动器和一种接受器。MAX483、MAX487、MAX488以及MAX489具备限摆率驱动器,可以减小EMI,并减少由不恰当终端匹配电缆引起反射,实现最高250kbps 无差错数据传播。MAX481、MAX485、MAX490、MAX491、MAX1487驱动器摆率不受限制,可以实现最高2.5Mbps传播速率。这些收发器在驱动器禁用空载或满载状态下,吸取电源电流在120(A 至500(A 之间。此外,MAX481、MAX483与MAX487具备低电流关断模式, 仅消耗0.1A。所有器件都工作在5V单电源下。驱动器具备短路电流限制,并可以通过热关断电
30、路将驱动器输出置为高阻状态,防止过度功率损耗。接受器输入具备失效保护特性,当输入开路时,可以保证逻辑高电平输出。MAX487与MAX1487具备四分之一单位负载接受器输入阻抗, 使得总线上最多可以有1 2 8 个MAX487/MAX1487收发器。使用MAX488-MAX491可以实现全双工通信,而MAX481、MAX483、MAX485、MAX487与MAX1487则为半双工应用设计。MAX481/MAX483/MAX485/MAX487-MAX491以及MAX1487是用于RS-485与RS-422通信低功耗收发器。MAX481、MAX485、MAX490、MAX491以及MAX1487可
31、以以最高2.5Mbps 数据速率发送并接受数据;而MAX483、MAX487、MAX488以及MAX489则用于最高250kbps数据速率。MAX488-MAX491是全双工收发器,MAX481、MAX483、MAX485、MAX487以及MAX1487是半双工收发器。此外,MAX481、MAX483、MAX485、MAX487、MAX489、MAX491以及MAX1487中包括驱动器使能(DE)与接受器使能(RE)控制引脚,被禁用时,驱动器或接受器输出为高阻态。 与原则RS-485 驱动器( 最多32 个收发器) 单位负载( 12k输入阻抗) 相比,MAX487与MAX1487具备48k输入
32、电阻,1/4单位负载接受器输入阻抗,在一条总线上容许最多挂接128个收发器。MAX487/MAX1487与其她RS-485收发器任意组合可以容许32个收发器或更少收发器连接在同一条总线上。MAX481/MAX483/MAX485与MAX488-MAX491具备原则12k接受器输入阻抗。惯用RS485总线驱动芯片有MAX485、MAX3080、MAX3088、SN75176,MAX485、MAX3080、MAX3088芯片均有一种发送器和一种接受器,非常适合伙为RS485总线驱动芯片,其中MAX3080、MAX3088可以在一条通讯线上连接256只,MAX3088达到10Mbps通讯速率,下面以
33、MAX485为例简介其逻辑表。 MAX485及其逻辑如图3-5所示。图3-5 MAX485芯片RS485方式构成多机通信原理在由单片机构成多机串行通信系统中,普通采用主从式构造:从机不积极发送命令或数据,一切都由主机控制。并且在一种多机通信系统中,只有一台单机作为主机,各台从机之间不能互相通讯,虽然有信息互换也必要通过主机转发。采用RS485构成多机通信原理框图,如图3-6所示。图3-6 MAX485典型半双工RS-485网络第4章 系统问题及其解决4.1 通信规则 由于MAX485通讯是一种半双工通讯,发送和接受共用同一物理信道。在任意时刻只容许一台单机处在发送状态。因而规定应答单机必要在侦
34、听到总线上呼喊信号已经发送完毕,并且没有其他单机发出应答信号状况下,才干应答。半双工通讯对主机和从机发送和接受时序有严格规定。如果在时序上配合不好,就会发生总线冲突,使整个系统通讯瘫痪,无法正常工作。要做到总线上设备在时序上严格配合,必要要遵从如下几项原则: (1) 复位时,主从机都应当处在接受状态。 MAX485芯片发送和接受功能转换是由芯片 RE* ,DE端控制。RE*=1,DE=1时,MAX485发送状态;RE*=0,DE=0时,MAX485处在接受状态。普通使用单片机一根口线连接RE*,DE端。在上电复位时,由于硬件电路稳定需要一定期间,并且单片机各端口复位后处在高电平状态,这样就会使
35、总线上各个分机处在发送状态,加上上电时各电路不稳定,也许向总线发送信息。因而,如果用一根口线作发送和接受控制信号,应当将口线反向后接入MAX485控制端,使上电时MAX485处在接受状态。 此外,在主从机软件上也应附加若干解决办法,如:上电时或正式通讯之前,对串行口做几次空操作,清除端口非法数据和命令。 (2) 控制端RE*,DE信号有效脉宽应当不不大于发送或接受一帧信号宽度。 在全双工通讯过程中,发送和接受信号分别在不同物理链路上传播,发送端始终为发送端,接受端始终为接受端,不存在发送、接受控制信号切换问题。在RS485半双工通讯中,由于MAX485发送和接受都由同一器件完毕,并且发送和接受
36、使用同一物理链路,必要对控制信号进行切换。控制信号何时为高电平,何时为低电平,普通以单片机TXC(发送完毕标记),RXC(接受完毕标记)信号作参照。 发送时,检测TXC与否建立起来,当TXC为高电平后关闭发送功能转为接受功能; 接受时,检测RXC与否建立起来,当RXC为高电平后,接受完毕,又可以转为发送。 在理论上虽然行得通,但在实际联调中却浮现传播数据时对时错现象。依照查证关于资料,并借助示波器重复测试,才发现一种值得注意问题,咱们可以查看单片机时序: 单片机在串行口发送数据时,只要将8位数据位传送完毕,TXC标志即建立,但此时应发送第九位数据位(若发送地址帧时)和停止位尚未发出。如果在这是
37、关闭发送控制,势必导致发送帧数据不完整。如果单片机多机通讯采用较高波特率,几条操作指令延时就也许超过2位(或1位)数据发送时间,问题或许不会浮现。但是如果采用较低波特率,如9600,发送一位数据需104s左右,单靠几条操作指令延时远远不够,问题就明显地暴露出来。接受数据时也同样如此,单片机在接受完8个数据位后就建立起RXC信号,但此时尚未接受到第九位数据位(若接受地址帧时)和停止位。因此,接受端必要延时不不大于2位数据位时间(1位数据位时间=1/波特率),再作应答,否则会发生总线冲突。 (3) 总线上所连接各单机发送控制信号在时序上完全隔开。 为了保证发送和接受信号完整和对的,避免总线上信号碰
38、撞,对总线使用权必要进行分派才干避免竞争,连接到总线上单机,其发送控制信号在时间上要完全隔离。 总之,发送和接受控制信号应当足够宽,以保证完整地接受一帧数据,任意两个单机发送控制信号在时间上完全分开,避免总线争端。 4.2 总线匹配 总线匹配有两种办法,一种是加匹配电阻,位于总线两端差分端口VA与VB之间应跨接120匹配电阻,以减少由于不匹配而引起反射、吸取噪声,有效地抑制了噪声干扰。但匹配电阻要消耗较大电流,不合用于功耗限制严格系统。 此外一种比较省电匹配方案是RC 匹配运用一只电容C 隔断直流成分,可以节约大某些功率,但电容C取值是个难点,需要在功耗和匹配质量间进行折衷。除上述两种外尚有一
39、种采用二极管匹配方案,这种方案虽未实现真正匹配,但它运用二极管钳位作用,迅速削弱反射信号达到改进信号质量目,节能效果明显。 4.3 硬件抗干扰办法4.3.1 RO及DI端配备上拉电阻 异步通信数据以字节方式传送,在每一种字节传送之前,先要通过一种低电平起始位实现握手。为防止干扰信号误触发RO(接受器输出)产生负跳变,使接受端MCU进入接受状态,建议RO外接10k上拉电阻。 保证系统上电时RS-485芯片处在接受输入状态 。对于收发控制端DE建议采用MCU引脚通过反相器进行控制,不适当采用MCU引脚直接进行控制,以防止MCU上电时对总线干扰。 4.3.2 地线与接地 电子系统接地是一种非常核心而
40、又经常被忽视问题,接地解决不当经常会导致不能稳定工作甚至危及系统安全。对于RS-485网络来讲也是同样,没有一种合理接地系统也许会使系统可靠性大打折扣,特别是在工作环境比较恶劣状况下,对于接地规定更为严格。关于RS-485网络接地问题很少有资料提及,在设计者中也存在着诸多误区,致使通信可靠性减少、接口损坏率较高。一种典型错误观点就是以为RS-485通信链路不需要信号地,而只是简朴地用一对双绞线将各个接口A、B端连接起来。这种解决办法在某些状况下也可以工作,但给系统埋下了隐患,重要有如下两方面问题: 共模干扰问题:确,RS-485接口采用差分方式传播信号,并不需要相对于某个参照点来检测信号,系统
41、只需检测两线之间电位差就可以了。但应当注意是,收发器只有在共模电压不超过一定范畴(-7V至+12V)条件下才干正常工作。当共模电压超过此范畴就会影响通信可靠,直至损坏接口。当发送器A向接受器B发送数据时,发送器A输出共模电压为VOS,由于两个系统具备各自独立接地系统,存在着地电位差VGPD。那么,接受器输入端共模电压就会达到VCM=VOS+VGPD。RS-485原则规定VOS3V,但VGPD也许会有很大幅度(十几伏甚至数十伏),并也许伴有强干扰信号,致使接受器共模输入VCM超过正常范畴,并在信号线上产生干扰电流,轻则影响正常通信,重则损坏接口。 4.3.3 电磁干扰(EMI)问题 驱动器输出信
42、号中共模某些需要一种返回通路,如果没有一种低阻返回通道(信号地),就会以辐射形式返回源端,整个总线就会像一种巨大天线向外辐射电磁波。因而,尽管是差分传播,对于RS-485网络来讲,一条低阻信号地还是必不可少。一条低阻信号地将两个接口工作地连接起来,使共模干扰电压VGPD被短路。这条信号地可以是额外一对线(非屏蔽双绞线)、或者是屏蔽双绞线屏蔽层。值得注意是,这种做法仅对高阻型共模干扰有效,由于干扰源内阻大,短接后不会形成很大接地环路电流,对于通信不会有很大影响。当共模干扰源内阻较低时,会在接地线上形成较大环路电流,影响正常通信。笔者以为,可以采用如下三种办法: A、若干扰源内阻不是非常小,可以考
43、虑在接地线上加限流电阻限制干扰电流。接地电阻增长也许会使共模电压升高,但只要控制在恰当范畴内就不会影响正常通信; B、采用浮地技术,隔断接地环路。当共模干扰内阻很小时上述办法已不能奏效,此时可以考虑将引入干扰节点(例如处在恶劣工作环境现场仪表)浮置起来(也就是系统电路地与机壳或大地隔离),这样就隔断了接地环路,不会形成很大环路电流; C、采用隔离接口。有些状况下,出于安全或其她方面考虑,电路地必要与机壳或大地相连,不能悬浮,这时可以采用隔离接口来隔断接地回路,但是依然应当有一条地线将隔离侧公共端与其他接口工作地相连。 4.3.4 瞬态保护 前面提到接地办法只对低频率共模干扰有保护作用,对于频率
44、很高瞬态干扰就无能为力了。由于引线电感作用,对于高频瞬态干扰来讲,接地线实际等同于开路。这样瞬态干扰也许会有成百上千伏电压,但持续时间很短。在切换大功率感性负载(电机、变压器、继电器等)、闪电等过程中都会产生幅度很高瞬态干扰,如果不加以恰当防护就会损坏接口。对于这种瞬态干扰可以采用隔离或旁路办法加以防护。 隔离保护方案:这种方案事实上将瞬态高压转移到隔离接口中电隔离层上,由于隔离层高绝缘电阻,不会产生损害性浪涌电流,起到保护接口作用。普通采用高频变压器、光耦等元件实现接口电气隔离,已有器件厂商将所有这些元件集成在一片IC中,使用起来非常简便,如Maxim公司MAX1480/MAX1490,隔离
45、电压可以到2500V。这种方案长处是可以承受高电压、持续时间较长瞬态干扰,实现起来也比较容易,缺陷是成本较高。 旁路保护方案:这种方案运用瞬态抑制元件(如TVS、MOV、气体放电管等)将危害性瞬态能量旁路到大地,长处是成本较低,缺陷是保护能力有限,只能保护一定能量以内瞬态干扰,持续时间不能很长,并且需要有一条良好连接大地通道,实现起来比较困难。 实际应用中可以将两者结合起来灵活运用。隔离接口对大幅度瞬态干扰进行隔离,而旁路元件保护隔离接口不被过高瞬态电压击穿。 4.3.5 总线隔离 RS-485总线为并接式二线制接口,一旦有一只芯片故障就也许将总线“拉死”,因而对其二线口VA、VB与总线之间应
46、加以隔离。普通在VA、VB与总线之间各串接一只410PTC电阻,同步与地之间各跨接5VTVS二极管,以消除线路浪涌干扰。此外应当合理选用芯片。例如,对外置设备为防止强电磁(雷电)冲击,建议选用防雷击芯片。 4.4 软件抗干扰办法4.4.1 指令冗余 CPU取指令过程是先取操作码,再取操作数。当PC受干扰浮现错误,程序便脱离正常轨道“乱飞”,当乱飞到某双字节指令,若取指令时刻落在操作数上,误将操作数当作操作码,程序将出错。若“飞” 到了三字节指令,出错机率更大。 在核心地方人为插入某些单字节指令,或将有效单字节指令重写称为指令冗余。普通是在双字节指令和三字节指令后插入两个字节以上NOP。这样虽然
47、乱飞程序飞到操作数上,由于空操作指令NOP存在,避免了背面指令被当作操作数执行,程序自动纳入正轨。此外,对系统流向起重要作用指令如RET、RETI、LCALL、LJMP、JC等指令之前插入两条NOP,也可将乱飞程序纳入正轨,保证这些重要指令执行。4.4.2 拦截技术 所谓拦截,是指将乱飞程序引向指定位置,再进行出错解决。通惯用软件陷阱来拦截乱飞程序。因而先要合理设计陷阱,另一方面要将陷阱安排在恰当位置。 (1)软件陷阱设计 当乱飞程序进入非程序区,冗余指令便无法起作用。通过软件陷阱,拦截乱飞程序,将其引向指定位置,再进行出错解决。软件陷阱是指用来将捕获乱飞程序引向复位入口地址0000H指令。普通在EPROM中非程序区填入如下指令作为软件陷阱:NOPNOPLJMP 0000H其机器码为000000。