基于RS485总线的多机通信系统设计
- 格式:doc
- 大小:194.00 KB
- 文档页数:15
RS-485RS485 接口RS485 采用差分信号负逻辑,+2V~+6V 表示“1”,- 6V~- 2V 表示 “0”。
RS485 有两线制和四线制两种接线,四线制是全双工通讯方式,两 线制是半双工通讯方式。
在 RS485 通信网络中一般采用的是主从通信方式, 即一个主机带多个从机。
很多情况下,连接 RS-485 通信链路时只是简单地 用一对双绞线将各个接口的“A”、“B”端连接起来。
而忽略了信号地的 连接,这种连接方法在许多场合是能正常工作的,但却埋下了很大的隐患, 这有二个原因:(1)共模干扰问题: RS-485 接口采用差分方式传输信号方 式,并不需要相对于某个参照点来检测信号,系统只需检测两线之间的电 位差就可以了。
但人们往往忽视了收发器有一定的共模电压范围,RS-485 收发器共模电压范围为-7~+12V,只有满足上述条件,整个网络才能正常 工作。
当网络线路中共模电压超出此范围时就会影响通信的稳定可靠,甚 至损坏接口。
(2)EMI 问题:发送驱动器输出信号中的共模部分需要一个返 回通路,如没有一个低阻的返回通道(信号地),就会以辐射的形式返回 源端,整个总线就会像一个巨大的天线向外辐射电磁波。
RS485 同 RS232 连接由于 PC 机默认的只带有 RS232 接口,有两种方法可以得到 PC 上位机 的 RS485 电路:(1)通过 RS232/RS485 转换电路将 PC 机串口 RS232 信号 转换成 RS485 信号,对于情况比较复杂的工业环境最好是选用防浪涌带隔 离珊的产品。
(2)通过 PCI 多串口卡,可以直接选用输出信号为 RS485 类 型的扩展卡。
RS485 电缆在低速、短距离、无干扰的场合可以采用普通的双绞线,反之,在高 速、长线传输时,则必须采用阻抗匹配(一般为 120Ω)的 RS485 专用电缆 (STP-120Ω(for RS485 & CAN) one pair 18 AWG),而在干扰恶劣的 环境下还应采用铠装型双绞屏蔽电缆(ASTP-120Ω(for RS485 & CAN) one pair 18 AWG)。
毕业设计(论文)文献综述题目:RS485总线集线器设计专业:电子信息工程1前言在当今信息通讯高速发展的阶段,人们在充分享受网络给人类带来的喜悦。
随着网络的普及和发展,使得各种控制设备网络化成为可能。
自动化监控、安全防护、门禁考勤及工业自动化系统得到迅速普及和应用。
在工业控制设备之间中长距离通信的诸多方案中,RS-485系统总线因硬件设计简单、控制方便、成本低廉等优点广泛应用于工厂自动化、工业控制、小区监控、水利自动测控等领域。
由于标准制定时间早,RS485总线应用广泛,特别在国内具有很强的影响力。
目前许多厂家生产的设备大多提供接口,并以此为标准。
例如许多集中式水表采集器、集中式电表生产厂家的产品都内置RS458芯片,提供信号输出接口。
现在新开发的各种产品,厂家还是习惯于沿用这种标准。
其次,与应用普遍且为计算机标准配置的接口的转换器或设备十分常见和通用,这更增加了总线的应用广泛性。
总线技术实现成本低廉,传输距离较远,通讯可靠,抗干扰能力强,可实现多点通一讯现在的通用技术已可以带到个节点。
另外,一标准只对接口的电气特性做出规定,而不涉及接插件、电缆或协议,在此基础上用户可以建立自己的高层通信协议,因此较其它标准更具有灵活性。
在工业控制及测量领域较为常用的网络之一就是物理层采用RS-485通信接口所组成的工控设备网络。
由于RS-485具有物理连接方便、抗干扰能力强、传输距离远等特点,采用这种通信接口可以十分方便地将许多设备组成一个控制网络。
由于RS-485通信接口控制芯片的成本低廉且技术成熟,所以现在许多仪表生产厂商都可以开发出支持RS-485通信接口的仪表,并通过这个接口实现多个仪表的组网及数据上传功能。
对于RS-485通信接口的应用大体可分成以下三个方面:(1)特殊用途测量仪表。
由于现在的专用测量仪表已逐步智能化,其检测输出的信号不再是一个单一的值,采用通常的4~20mA的电流信号已不能满足数据传输的要求。
工业485电路设计工业485电路设计是指在工业领域中使用的一种串行通信协议,它具有高可靠性、抗干扰能力强等特点,被广泛应用于自动化控制系统、电力系统、通信设备等领域。
本文将从工业485电路的基本原理、设计要点、典型应用等方面进行探讨。
一、工业485电路的基本原理工业485电路是基于RS-485标准的一种串行通信协议。
RS-485是一种差分信号传输标准,它采用了两根信号线进行数据传输,分别为正负两个信号线。
正信号线传输的是正逻辑电平,负信号线传输的是负逻辑电平。
由于采用了差分信号传输,工业485电路具有抗干扰能力强的特点,可以在噪声较大的工业环境中稳定运行。
二、工业485电路的设计要点1. 电路供电稳定:工业485电路的供电电压应稳定可靠,通常采用稳压电源进行供电。
2. 信号线布线合理:485通信线路的长度一般不超过1200米,应尽量减少信号线的长度,避免信号衰减。
3. 电路地线设计:485电路地线要与信号线分开设计,避免共地引起的干扰。
4. 电路保护措施:应在电路中设置过电压保护、过流保护等措施,保证电路的稳定性和安全性。
5. 选择合适的驱动芯片:工业485电路的驱动芯片应具备较高的驱动能力和抗干扰能力,常用的驱动芯片有MAX485、SN75176等。
三、工业485电路的典型应用1. 自动化控制系统:工业485电路常用于自动化控制系统中,实现各个控制设备之间的数据传输和通信。
通过485总线可以连接各个子设备,实现集中控制和监测。
2. 电力系统:工业485电路在电力系统中的应用广泛,可以用于电力监测、电力调度、电能计量等方面的数据传输和通信。
3. 通信设备:工业485电路也可以用于通信设备中,实现设备之间的数据传输和通信。
例如,工业以太网交换机、工业无线路由器等设备都可以采用工业485通信接口。
四、工业485电路的设计案例以某工业自动化控制系统为例,该系统包括多个控制设备和监测设备,需要实现设备之间的数据传输和通信。
• 203•导入相应的序号,切片处理要用的图像。
向视频接口内传输数据信息,依次采用DMD 控制设备、高速投影机、DLP 和散射屏等设备进行处理和投影。
电机驱动是支持图像信息高速处理的重要前提条件,转速传感器通过电机的驱动对转台的速度和角度进行探测,同时向控制器传输探测信号,从而闭环式控制转台。
4 计算机图像畸变矫正4.1 矫正畸变技术人员基于计算机视觉算法,能够灵活利用计算机的特点处理畸变图像,通过投影设备完成垂直投影时,垂轴放大率在视场变化的干扰下会渐渐变大,造成装置内的素点出现比较明显的偏移。
一旦偏移距离过大,图像就会发生畸变,针对这种情况技术人员要及时采取图像处理技术将畸变消除,让图像能恢复原状,避免因畸变而影响使用。
目前经常遇到的需要处理的畸变问题以径向畸变和切向畸变为主,但是使用后者造成的图像畸变其实并不明显,所以在处理图像畸变时主要针对的是径向畸变,其类型可分为两种,即桶型畸变与枕型畸变。
通常认为导致图形畸变的原因是空间状态发生扭曲,也就是我们所说的曲线畸变。
以往技术人员运用二次多项式矩阵来求解畸变系数,然而当面对图像畸变复杂的情况时,该方法并不奏效。
若多项式次数增高,处理畸变时要用到的矩阵的逆也要增大,那么随后编程、求解和计算的难度都会加大。
基于BP 神经网络矫正畸变,能适当提高精度。
而基于计算机视觉算法,可以深化矫正畸变的方式,即采用卷积神经网络处理图像畸变。
相比于传统技术,这种新技术具有与生物神经网络相似的权值共享网络结构,让网络模型的复杂程度与难度得以降低,权值数量减少,识别与泛化畸形图像的能力提高。
4.2 处理畸变图像卷积神经网络是一种人工神经网络,能够优化图像处理技术。
卷积神经网络的权值共享性与稀疏连接性都比较好,而且只需简单操作就能完成训练,也容易学习,在处理畸变图像方面是一种非常适合的连接方式。
在处理畸变图像时,网络输入主要是输入多维图像,图像能够一次性进入网络内,不必再次对图像数据进行提取,比传统的识别算法更加简单。
RS485总线多主方式对等传输数据摘要:利用以太网的冲突检测方式在RS485总线上连接的多个设备之间采用多主方式对等传输数据,并给出了这种方法的硬件设计方案和软件流程。
关键词:RS485总线对等网冲突检测目前以RS485总线为基础组建的各类网络中,多采用主从式通信。
但在一些组网中,采用对等式的通信方式更符合设计要求,效率更高。
例如在一套由人机接口、红外控制模块(用于遥控家电)、三表集抄模块、安防模块和家居网关服务终端(与互联网及电话相联)等组成的智能家居服务系统中,该家居系统内部采用什么样的数据传输方式,怎样可靠和高效地传输数据,对整个家居系统的正常运转至关重要。
因为总线上发起通信的数据有外界的遥控指令、人机接口处传来的控制和查询指令以及一些模块主动上传的指令(如报警),这些指令大多数是随机的,若采用主从式难以符合要求,而采用多主方式的对等网可以符合数据传输的要求,使数据及时发送。
同时由于各个设备是对等的关系,实行分布式控制,所以一个模块损坏,不会影响其他模块工作,因此不存在主站损坏导致整个通信线路瘫痪的问题,从而使通信的可靠性大大增加。
1多主式对等网数据传输方案的选择在采用多主方式后,挂接在总线上的各设备之间是对等的关系,各节点在发送数据时存在总线竞争问题,需要考虑设备之间的优先发送数据问题以及传送效率问题。
要解决总线竞争问题,可以考虑用以太网的冲突检测方案或令牌总线方案。
在以太网的冲突检测方案中,当总线上有不同节点同时发送数据时,会由于信号叠加而造成信号紊乱,即信号的冲突。
要避免这种情况,节点在发送数据前要侦听一下总线是否忙,不忙时才发送,以减少冲突。
当发生冲突时,可以用二进制指数退避算法来解决冲突。
令牌总线方案是通过令牌的传送来控制每个节点发送的时间,从而解决总线的竞争。
它虽然不存在冲突问题,但要不断地传送令牌,某一节点要发送数据,必须等到获得令牌才能发送,这会延误重要数据的发送,并加大数据量和等待时间。
RS485通信原理图及程序实例详解RS232 标准是诞⽣于 RS485 之前的,但是 RS232 有⼏处不⾜的地⽅:接⼝的信号电平值较⾼,达到⼗⼏ V,使⽤不当容易损坏接⼝芯⽚,电平标准也与TTL 电平不兼容。
传输速率有局限,不可以过⾼,⼀般到⼀两百千⽐特每秒(Kb/s)就到极限了。
接⼝使⽤信号线和 GND 与其它设备形成共地模式的通信,这种共地模式传输容易产⽣⼲扰,并且抗⼲扰性能也⽐较弱。
传输距离有限,最多只能通信⼏⼗⽶。
通信的时候只能两点之间进⾏通信,不能够实现多机联⽹通信。
针对 RS232 接⼝的不⾜,就不断出现了⼀些新的接⼝标准,RS485 就是其中之⼀,它具备以下的特点:采⽤差分信号。
我们在讲 A/D 的时候,讲过差分信号输⼊的概念,同时也介绍了差分输⼊的好处,最⼤的优势是可以抑制共模⼲扰。
尤其当⼯业现场环境⽐较复杂,⼲扰⽐较多时,采⽤差分⽅式可以有效的提⾼通信可靠性。
RS485 采⽤两根通信线,通常⽤ A 和 B 或者 D+和D-来表⽰。
逻辑“1”以两线之间的电压差为+(0.2~6)V 表⽰,逻辑“0”以两线间的电压差为-(0.2~6)V 来表⽰,是⼀种典型的差分通信。
RS485 通信速率快,最⼤传输速度可以达到 10Mb/s 以上。
RS485 内部的物理结构,采⽤的是平衡驱动器和差分接收器的组合,抗⼲扰能⼒也⼤⼤增加。
传输距离最远可以达到 1200 ⽶左右,但是它的传输速率和传输距离是成反⽐的,只有在 100Kb/s 以下的传输速度,才能达到最⼤的通信距离,如果需要传输更远距离可以使⽤中继。
可以在总线上进⾏联⽹实现多机通信,总线上允许挂多个收发器,从现有的 RS485芯⽚来看,有可以挂 32、64、128、256 等不同个设备的驱动器。
RS485 的接⼝⾮常简单,与 RS232 所使⽤的 MAX232 是类似的,只需要⼀个 RS485转换器,就可以直接与单⽚机的 UART 串⼝连接起来,并且使⽤完全相同的异步串⾏通信协议。
云南大学学报(自然科学版),2007,29(S2):259~262CN53-1045/N ISSN0258-7971 Journal of Yunnan U niversityΞ基于RS-485总线主从通信协议及其实现彭 娜,黎 英,林庆超,张英华(云南大学信息学院,云南昆明 650091)摘要:RS-485总线是工业现场控制系统常用的组网方法.本文中详细讨论了一种基于RS-485总线通信协议的设计,具有可靠、灵活,相比其它的主从通信协议设计可以实现即插即用功能.关键词:RS-485;主从通信协议;协议数据单元中图分类号:TP366 文献标识码:A 文章编号:0258-7971(2007)S2-0259-04 计算机技术、自动化技术和通信技术是现代信息科学技术的重要组成部分,是现代科学技术中的核心先导技术.计算机控制是计算机技术与自动控制理论及自动化技术紧密结合并应用于实际的结果.20世纪90年代高性能计算机、网络技术及多媒体技术的发展,使计算机应用向网络化、综合化、集成化、智能化发展,使自动控制技术更广泛地应用于工业、交通、服务等各行各业,而且控制的形式也越来越复杂.许多单机控制系统已逐渐向多机联网的方向发展,如:数据采集、消防、门禁、消费等控制系统,这就需要将各单机控制系统进行组网以进行相互通信,从简单的集中式控制逐渐向复杂的分布式、多控制端形式发展,出现了以网络通信技术为基础的新的控制形式.串行通信作为一种简单、廉价的通信方式在控制工程中广泛应用,其中RS -485总线型多CPU网络控制系统得到了推广与发展[1].1 硬件设计RS-485通信协议是工业控制中使用最为广泛的双向、平衡传输线标准,它支持多点联接,允许创建多达32个接点的网络,并可以在网络中增加另外32个模块;由于RS-485标准支持半双功通信,只需2根线就可以进行数据的发送和接收,同时具有抑制共模干扰的能力.在由单片机构成的多机串行通信系统中,采用主从式结构:子机不主动发送命令或数据,一切都由主机控制.并且在一个多机通信系统中,只有1台单片机作为主机,各台子机之间不能相互通讯,即使有信息交换也必须通过主机转发[2],RS-485构成的多机通信原理框图如图1.2 通信协议设计协议数据单元分为2种格式:通用帧格式(表1);特殊帧格式(表2)表1 通用帧格式T ab11 G eneral frame format地址功能数据长度数据CRC1B1B1B1-16B2B表2 特殊帧格式T ab12 S pecial frame format地址功能结束符1B1B0X00其中第1种格式为通用帧,第2种数据帧当主机检测与之连接从机的地址或者报接收数据出错时才用的格式.主从式通信方式,即主控制器采用循环查询的方式于各子控制器通信,子控制器相互间不直接通信,而是通过主控制器间接地相互通信.Ξ收稿日期:2007-09-20作者简介:彭 娜(1983- ),女,云南人,硕士生,主要从事低压电力载波通信协议方面的研究.通讯作者:黎 英(1963- ),男,云南人,教授,博士,主要从事嵌入式系统研究.主节点向从节点发送3种类型的请求:(1)广播模式 主节点向所有从节点发送请求.主节点发送的广播请求无需响应,所有的从机都必须接受,地址为0X00为广播请求保留[3].(2)查询地址模式 定期检测与主节点连接的从节点的地址,实现即插即用功能.主机发送一简单的数据帧来检测与之连接的从节点的地址.在本系统中设置的是主节点轮询完所有从节点3次,进行1次检测从节点的地址,主节点从地址0开始询问从节点,在等待一段时间(这段时间为数据往返1次的时间)后收到从节点的应答,则该从节点地址存在,将这个地址存入address[]中,如果在等待一段时间后没有收到应答信号,则认为此地址为空,将地址加1继续询问,直到地址为最大地址(最大地址指的是允许范围内可接最多的从机数量,如可最多可接32台从机,则最大地址为0X 20).图1 RS -485多机通信原理框图Fig 11 RS -485multi -SC M communication principle图2 查询地址模式流程图Fig 12 Demand address m ode flow -chart(3)单址通信模式 主节点寻址一个单独的从节点.从节点收到并处理请求之后,向主节点返回一个消息(应答).在这里一个会话包括2个消息:主节点的请求,从节点的应答.每个从节点的地址必须是独一无二的.主节点一次分别询问每一个从节点,主节点先发送握手信号给从节点,如果该从节点有数据要通信,则返回给主节点应答信号,这样从节点和主节点就建立起连接,然后交换数据,完毕后再继续询问下一台从节点;如果该从节点没有数据要通信,则不用应答主节点,主节点在固定的时间段(固定的时间段内是指数据往返1次所需的时间)内没有收到应答信号,则直接询问下一台从节点.数据的交换过程(包括建立连接和交换数据)采用一问一答的方式,主控制器询问了子控制器,子控制器才给予应答,收到应答后,数据交换才继续进行下去.这样的方式可以避免多个子控制器间没有次序的62云南大学学报(自然科学版) 第29卷数据通信,扰乱整个网络上数据的传输.本系统采用的是一问一答的可靠连接方式,在数据帧的传递过程中,如果等待对方应答超时,或者没有接收到正确数据(在指令数据帧格式中,还定义了CRC 校验字段,每一帧指令数据帧发送前,通过计算填入该字段,接收后读出该字段并进行验证),要求对方重发1次,如果再次等待应答超时或者没有接收到正确的应答,则认为此次通信失败.主机和从机的流程图分别如图3,4.图3 主机流程图Fig 13 H ost flow -chart3 小 结在系统中用AT ME L 系列单片机和RS -485通信芯片S N75176组网,波特率采用250K bps 进行通信.在实验系统中采用上述主从通信协议,主机轮询从机的方式进行通信.主机先检测与之连接从机的地址,检测之后与这些从机进行通信,轮询通信完3次后,再一次检测与之连接从机的地址,如果有新添加的从机,主机就可以在这次检测中检测到其地址,如果有拔出的从机,主机在检测中可以发现拔出从机的地址为空,则从通信从机地址中将这个地址删除.在实验中添加从机和拔出从机都不会影响整个通信,在最大从机允许范围内从机可随意添加或者删除,实现了即插即用功能.并且在整个系统中采用的是轮询方式,当与其中一台从机通信时发生故障,采取重发一次机制,如果仍然有错误,则结束与此台从机的本轮通信,开始与下一台从机通信,所以当个别从机发生故障的时候并不影响通信.162第S2期 彭 娜,等:基于RS -485总线主从通信协议及其实现图4 从机流程图Fig 14 Subordinate flow -chart参考文献:[1] 范辉.RS -485总线与C AN 总线应用比较[J ].上海电机学院学报,2005,8(5):54256.[2] 王天义,杨建中.一种新型RS -485接口芯片在远程多机通讯中的应用[J ].仪器仪表标准化与计量,2004(5):38240.[3] 王琦,秦娟英,周伟.用RS -485构成总线型多点数据采集系统[J ].计算机自动测量与控制,2000,8(6):45247.[4] 阳宪惠.现场总线技术及其应用[M].北京:清华大学出版社,1999.[5] 史兴安,姜智忠,RS -485串行总线在实时控制中的应用[J ].微电子学与计算机,2001(2):49251.[6] 马朝,詹卫前,耿德根.Atmega8原理及应用手册[M].北京:清华大学出版社,2002.[7] 王苒,汤冬谊.基于RS485主从通信协议的实现[J ].现代电子技术,2003(24):67271.Achievement of master -slave communication architecture based on RS -485PE NG Na ,LI Y ing ,LI N Qing 2chao ,ZH ANG Y ing 2hua(School of In formation Engineering ,Y unnan University ,K unming 650091,China )Abstract :RS -485bus is used to group netw ork in industry control system.The thesis discusses a design of RS-485bus based communication protocol.The protocol is reliable ,flexible and can im plement PnP (plug and play )com pare to other master -slave communication protocols.K ey w ords :RS -485;master -slave communication protocol ;protocol data unit262云南大学学报(自然科学版) 第29卷。
基于RS 485的远程控制系统设计作者:孙宇翔,全厚德来源:《现代电子技术》2009年第19期摘要:在信息化条件下,根据战场模式和战场环境的变化,采用新思路和新方法提出一种能够实现远程控制功能的系统的设计方案。
该系统基于RS 485通信协议,采用单片机作为逻辑芯片,具有实时性强、编程简单、成本低、工作可靠的特点。
关键词:C8051F020单片机;RS 485;MAX485;串行通信中图分类号:TN91文献标识码:A文章编号:1004-373X(2009)19-049-04Design of Long-distance Control System Based on RS 485SUN Yuxiang,QUAN Houde(Ordnance Engineering College,Shijiazhuang,050003,China)Abstract:Basing on transformation of the mode and the surroundings of battlefield,a scheme by using new notion and new method to realize the long-distance control system in the information-based condition.The system is based on RS 485,adopts C8051F020 as the logic element,the characteristics of which are shown as follows: real-time system,easy to program,low cost and working reliably.Keywords:C8051F020;RS 485;MAX485;serial communication0 引言某型防空指挥系统是一个以微型计算机为核心的模块化和节点化设计的网络系统。
______________________________________________________________________________________________________________ 精品资料 2.2 RS-485 RS-485标准接口是单片机系统种常用的一种串行总线之一。RS-485通信方式RS-485标准是由EIA(电子工业协会)和TIA(通讯工业协会)共同制订和开发的。RS-485作为一种多点差分数据传输的电气规范,已成为业界最广泛应用的标准通信接口之一。理论上,RS-485标准最多接入32个设备(受芯片驱动能力的影响),可以工作在半双工或全双工模式下,最大传输距离约为1219米,最大传输速率约为10Mbps[1]。然而通常RS-485网络采用平衡双绞线作为传输媒体,平衡双绞线的长度与传输速率成反比,只有在20Kbps的传输速率下,才可能达到最大传输距离。一般15米长的双绞线最大传输速率仅为1Mbps。不过对于速率要求不是很高的控制系统来说已经足够了。 RS-485采用平衡发送和差分接收方式来实现通信:在发送端TXD将串行口的TTL电平信号转换成差分信号A、B两路输出,经传输后在接收端将差分信号还原成TTL电平信号。两条传输线通常使用双绞线,又是差分传输,因此有极强的抗共模干扰的能力,接收灵敏度也相当高。同时,最大传输速率和最大传输距离也大大提高。如果以10Kbps速率传输数据时传输距离可达12m,而用100Kbps时传输距离可达1.2km。如果降低波特率,传输距离还可进一步提高。另外RS-485实现了多点互连,最多可达256台驱动器和256台接收器,非常便于多器件的连接。不仅可以实现半双工通信,而且可以实现全双工通信。 2.3 多机通信原理 在多机通信中,每台从机均分配有一个从机地址,主机与从机之间进行串行通信时,通常是主机先呼叫某从机地址,唤醒被叫从机后,主、从两机之间进行数据交换。而未被呼叫的从机则继续进行各自的工作。可是,如果在主机与某被呼叫从机进行数据交换过程中,其他从机如果不采取相应的数据识别技术,则这些从机就会因为串行通信线上有数据传输而时时被打断,影响正常的工作。利用单片机的串口工作方式2、方式3可以很好解决上述问题。在多机通信过程中,从机首先要解决的是如何识别主机发送的是地址信息还是数据信息。当发送的是地址信息时,各从机都响应串口中断,接收主机下发的一帧地址数据。而当主机发送数据帧时,无关从机可不响应串口中断。解决的方法是:当主机发送一帧地址信息时,应保持这帧数据的第9位为1(即TB8=1)。从机按照工作方式2或工作方式3运行时,将串口寄存器SCON中的控制位SM2置为1,当所接收的一帧数据的第9位为1,所有从机都产生串口中断,接收这一帧地址数据并与各自的从机地址进行比较,以判断主机是否要与本机通信。接收到的地址数据与从机地址相等达到为被呼叫从机,该从机将串口控制寄存器SCON中的控制位SM2清为0,______________________________________________________________________________________________________________ 精品资料 去接收主机发送来的数据帧(数据帧的第9位为0),此时不管接收到的第9位数据是否为1或0,都要产生串口中断,这就保证了主机与被呼叫从机间的正常数据通信。数据通信结束后,该从机又重新将串行口控制寄存器SCON中的控制位SM2置为1,为下一次与主机进行通信做好准备。其他从机则一直在SM2=1下继续自己的工作,不会因为主、从机之间的数据通信而被打断。 多机通信的实现,主要靠主、从机正确地设置与判断多机通信控制位SM2和发送或接收的第9位数据(TB8或RB8)。当主机给从机发送信息时,要根据发送信息的性质来设置TB8,发送地址信号时,设置TB8=1;发送数据或命令时,设置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) 主机发送数据或控制信息给被寻址的从机; (6) 被寻址的从机,因SM2=0,可以接收主机发送过来的所有数据,当从机接收数据结束时,置位SM2,返回接收地址帧状态(复位状态); (7) 当主机改为与另外从机联系时,可再发地址帧寻址其从机,而先前被寻址过的从机恢复SM2=1。
第4章 系统问题及其解决 4.1 通信规则 由于MAX485通讯是一种半双工通讯,发送和接收共用同一物理信道。在任意时刻只允许一台单机处于发送状态。因此要求应答的单机必须在侦听到总线上呼叫信号已经发送完毕,并且没有其它单机发出应答信号的情况下,才能应答。半双工通讯对主机和从机的发送和接收时序有严格的要求。如果在时序上配合不好,就会发生总线冲突,使整个系统的通讯瘫痪,无法正常工作。要做到总线上的设备在时序上的严格配合,必须要遵从以下几项原则: ______________________________________________________________________________________________________________ 精品资料 (1) 复位时,主从机都应该处于接收状态。 MAX485芯片的发送和接收功能转换是由芯片的 RE* ,DE端控制的。RE*=1,DE=1时,MAX485发送状态;RE*=0,DE=0时,MAX485处于接收状态。一般使用单片机的一根口线连接RE*,DE端。在上电复位时,由于硬件电路稳定需要一定的时间,并且单片机各端口复位后处于高电平状态,这样就会使总线上各个分机处于发送状态,加上上电时各电路的不稳定,可能向总线发送信息。因此,如果用一根口线作发送和接收控制信号,应该将口线反向后接入MAX485的控制端,使上电时MAX485处于接收状态。 另外,在主从机软件上也应附加若干处理措施,如:上电时或正式通讯之前,对串行口做几次空操作,清除端口的非法数据和命令。 (2) 控制端RE*,DE的信号的有效脉宽应该大于发送或接收一帧信号的宽度。 在全双工通讯过程中,发送和接收信号分别在不同的物理链路上传输,发送端始终为发送端,接收端始终为接收端,不存在发送、接收控制信号切换问题。在RS-485半双工通讯中,由于MAX485的发送和接收都由同一器件完成,并且发送和接收使用同一物理链路,必须对控制信号进行切换。控制信号何时为高电平,何时为低电平,一般以单片机的TXC(发送完成标记),RXC(接收完成标记)信号作参考。 发送时,检测TXC是否建立起来,当TXC为高电平后关闭发送功能转为接收功能; 接收时,检测RXC是否建立起来,当RXC为高电平后,接收完毕,又可以转为发送。 在理论上虽然行得通,但在实际联调中却出现传输数据时对时错的现象。根据查证有关资料,并借助示波器反复测试,才发现一个值得注意的问题,我们可以查看单片机的时序: 单片机在串行口发送数据时,只要将8位数据位传送完毕,TXC标志即建立,但此时应发送的第九位数据位(若发送地址帧时)和停止位尚未发出。如果在这是关闭发送控制,势必造成发送帧数据不完整。如果单片机多机通讯采用较高的波特率,几条操作指令的延时就可能超过2位(或1位)数据的发送时间,问题或许不会出现。但是如果采用较低波特率,如9600,发送一位数据需104μs左右,单靠几条操作指令的延时远远不够,问题就明显地暴露出来。接收数据时也同样如此,单片机在接收完8个数据位后就建立起RXC信号,但此时还未接收到第九位数据位(若接收地址帧时)和停止位。所以,接收端必须延时大于2位数据位的时间(1位数据位时间=1/波特率),再作应答,否则会发生总线冲突。 (3) 总线上所连接的各单机的发送控制信号在时序上完全隔开。 为了保证发送和接收信号的完整和正确,避免总线上信号的碰撞,对总线的使用权______________________________________________________________________________________________________________ 精品资料 必须进行分配才能避免竞争,连接到总线上的单机,其发送控制信号在时间上要完全隔离。 总之,发送和接收控制信号应该足够宽,以保证完整地接收一帧数据,任意两个单机的发送控制信号在时间上完全分开,避免总线争端。
第5章 软件设计 5.1 系统结构 该多机通信系统的系统结构图如图5-1所示,系统采用半双工主从通信方式,主机可以读取从机的数据或写数据到从机,并将数据送终端进行显示;从机主要负责对分布的电子设备进行监测或控制,用中断的方式接收主机发来的命令并做出回应。
图5-1 系统结构图 5.2 通信协议
5.2.1 信息格式 该协议的信息格式如下: (1)编码格式;二进制代码。 (2)波特率:9600 b/s。 (3)通信方式:半双工。 (4)每个字符由u 位组成; 1位:起始位(0); 8位:数据位; 1位:地址/数据识别位(1为地址,o为数据); l位:停止位(1)。