<3>主从式多机系统设计要点
在设计主从式多机系统时,除了掌握单片及应用系统的设计方法外,还必须注意以下几个方面:
主机和从机的功能划分
在设计一个多机系统时,应着眼于整个系统的功能,设法提高整个系统的性能价格比,因此合理规定主机和从机的功能是十分重要的。
系统的有些功能,例如数据的计算分析,可以由各个从机来完成,只把结果送给主机,也可以把原始数据直接送给主机、由主机处理。这两种方法对中央处理机的工作时间、存储器的容量以及主机和从机之间需传送的信息量会产生影响。在确定主从机功能的同时,应从系统的实时行要求、主机和从机的工作量、主从机之间的距离和现场操作需求来考虑。
通讯方式
多机系统和单机系统在硬件上的最大不同是需要通讯口。通讯可采用各种方法来
实现,对于距离在几米以上的系统,一般均采用串行通讯。它又分为同步和异步两种方式,前者速度快,通讯距离较近,后者速度慢,但通讯距离远。一般的工业控制和数据采集系统,在数据传输量不大的情况下,采用异步方式比较方便。通讯的物理物理媒介也有许多种,如采用无线电通讯或电话线通讯,这是一般采用异步方式,并应加入调制解调器,它的通讯距离最远可达几十公里以上;如果采用电缆通讯,可采用RS –232或RS-422、RS-456等方式,后二者可采用一般的双绞线进行通讯,具有传输距离远、抗干扰能力强等优点,在通讯距离较远时,应采用 RS-485等接口方式
(3)主机选择
多机系统的主机应根据应用要求和现有条件来选择。如果该系统需要有外部存储设
备以存储各种数据时,应采用由磁盘驱动器地主机,特别是在存储数据量较大时,应采用由硬盘的主机。如果主机需执行较多的实时控制功能,则应选择可配备实时操作系统的主机。一般情况下,可采用等通用的个人计算机。由于一般的个人计算机配有串行接口,如果主从机采用通讯时,应该再加入通讯处理机,它与主机用相连,与各从机用同步通讯方式相连。
(4) 通讯规程选择
这里的通讯规程主要是指主机之间的通讯约定,它包括从机寻址方式、通讯检验及
通讯应答等方式等。一般主机和多台从机通讯时,只使用一套公共的的通讯线路,主机应能和指定的任何一个从机通讯,也能向全部从机发命令。因为一台主机只能和一台从机通讯,所以有一个怎样寻址从机的问题。对MCS-51单片机,它们的串行口由主从机通讯方式,允许发送地址或数据。但是如果通讯距离较远或现场有干扰时,就不宜采用此方法。因为MCS-51等的主从机通讯方式中,地址与数据的区别只是发送的最后一位
不同,如果有干扰改变了了这位的状态,会打乱整个系统的运行。这是可采用在命令中
增加几位地址地方法。在有干扰时,主从机通讯应加入检验,对异步通讯,可采用字符或字节的奇偶校验加上一帧信息的累加和校验。
(5) 从机设计方法
从机是一个独立地控制器或数据采集装置,它的设计方法基本上与一般的单片机系统相同,只是需增加通讯口硬件和通讯处理软件。为了减少通讯量,从机常用于完成对一个子系统的控制或数据采集。每台从机所需完成地功能一般比较多,而且是综合性地,这是它的结构比较复杂,再加上通讯处理软件需与控制或数据采集并行进行,所以在多机系统的从机中,应该配备实时多任务操作系统
。
总线驱动器芯片SN75176
常用的RS-485总线驱动芯片有SN75174,SN75175,SN75176。SN75176芯片
有一个发送器和一个接收器,非常适合作为RS-485总线驱动芯片。
图1 SN75176芯片及其逻辑关系
5、RS-485方式构成的多机通信原理
在由单片机构成的多机串行通信系统中,一般采用主从式结构:从机不主动发送命令或数据,一切都由主机控制。并且在一个多机通信系统中,只有一台单机作为主机,各台从机之间不能相互通讯,即使有信息交换也必须通过主机转发。采用RS-485构成的多机通讯原理框图,如图所示。
图2 采用RS-485构成的多机通讯原理框图
在总线末端接一个匹配电阻,吸收总线上的反射信号,保证正常传输信号干净、无毛刺。匹配电阻的取值应该与总线的特性阻抗相当。 当总线上没有信号传输时,总线处于悬浮状态,容易受干扰信号的影响。将总线上差分信号的正端A+和+5电源间接一个10K的电阻;正端A+和负端B-间接一个10K的电阻;负端B-和地间接一个10K的电阻,形成一个电阻网络。当总线上没有信号传输时,正端A+的电平大约为3.2V,负端B-的电平大约为1.6V,即使有干扰信号,却很难产生串行通信的起始信号0,从而增加了总线抗干扰的能力。
程序流程框图:
发送流程图 接收流程图
盘及显示电路
三、测试分析
1、温度测量
仪器:Pt100,电热炉,测试数据如下:(单位:℃)
实际温度 0 100 200 300 400
测量温度 0 100.3 200.5 300.2 400
误 差 0 0.3 0.5 0.2 0
误差分析:采用分段线性补偿,大大减小误差。
环境温度下降时测试
仪器:电风扇,温度计,电炉。测试数据如下:
实际温度 50 150 200 350.5
测量温度 50.2 150.4 200.3 350.8
误 差 0.2 0.4 0.3 0.3
四、结论
1、应用89C52、89C51单片机,不仅便于数据的采集和处理,还扩展了各种
功能。通过A/D57412位逐位逼近式代三态输出的A/D转换,可以检测的温度范围是:0℃ ~4