单片机多机应用系统网络设计摘要本文介绍单片机多机应用系统网络设计现有的一些技术,并简要说明现有技术的优、缺点,并结合实际实践,鲜明提出观点,根据缺陷,给出解决问题的方案,对实际工作有一定的指导作用。关键字:多机通信过程,网络结构的改进,多机通信协议,容错技术,单片机通信结点的改进I单片机多机应用系统网络设计随着计算机系统网络化的发展,计算机和外界的信息交换显得越来越重要,单片机的应用也从单机向网络发展,由计算机和单片机构成的多机网络系统已成为单片机技术发展的一个重要方向。二者的结合,充分发挥了单片机在实时数据采集和数据管理上的优点。单片机在计算机的网络通讯与数据传输、工业自动化过程的实时控制和数据处理等都有广泛地应用,已渗透到我们生活的各个领域。许多应用都涉及到单片机多机通信。然而,单片机对网络数据的处理方式不同于通用计算机系统,目前单片机通信存在通信网络模式简单,数据的通信速率低,没有容错技术等缺点。在一定程度上阻碍了单片机在网络方面的应用。因此,采用单片机技术与计算机网络技术相结合的办法,对单片机多机通信系统进行研究,在设计单片机网络的通信协议的基础上进行重新设计,实现单片机多机可靠通信。在目前单片机组成的嵌入式控制系统中,所谓的多机通信是指上位机与下位机之间的主从模式的通信,一个单片机系统为主机,n个应用系统为从机,从机之间不能进行通信。目前单片机通信存在通信网络模式简单,数据的通信速率低,没有容错技术等缺点。MCS-51单片机串行接口SBUF,由SCON控制为用于多机通信的工作方式2,3。当SM2=1,出现两种情况:接收到第9位数据为1时,数据才装入SBUF,并置RI=1,向CPU发出中断请求;如果接收到第9位数据为0时,则不发生中断,信息被丢失。若SM2=0,则接收到的第9位数据无论是0还是1,都产生RI=1中断标志,接收到的数据装入SBUF中。多机通信过程安排如下:(1)使所有的从机SM2=1,处于接收地址状态;(2)主机发一帧地址信息,从机接收到地址帧后,将与本从机的地址进行比较。是本机,使SM2=0,地址不符合的从机,保持SM2=1,退出本次通信;(3)主机发送的数据或命令,以第九位为0表示。主从模式的多机通信的拓扑结构,主机的RXD与所有从机的TXD端相连,而主机的TXD与所有的从机的RXD端连接,如图1所示。1图1主从多机通信拓扑结构1、网络结构的改进主从模式的多机通信在拓扑结构中,主机只有一个且固定不变,从机是多个,它们之间不能通信。在新的多机通信网络中,没有真正的主机和从机之分,所有的结点都是平权的。总线也是两条,一根作为主机发送信息,从机接收;另一根是从机发送信息,主机接收。每一个结点的机器既是从机,又是潜在的主机。非主动通信状态时,为从机状态。需要通信时,改变连线的接法,并使自己变为主机状态。主机状态:它的TXD端与所有从机的RXD连接,它的RXD与所有从机的TXD连接,以便发送从机地址,与从机建立通信联系,完成交流信息的目的。本次通信完毕后,自动降为从机状态,并且线路的连接方式也变成从机连接。从机状态:它的TXD与所有从机的TXD连载一条总线上,连接到主机的RXD端,它的RXD连接到主机的TXD。其拓扑结构如图2所示。图2多机串行通信拓扑结构说明:(1)任一个结点机器,不主动通信时,处于从机状态,要求通信时,跃迁2为主机状态。行使主机通信形式和权利;(2)结点机器的TXD,RXD与总线的连接有两种方式:主机连接、从机连接。由机器的状态来决定,也就是说,连接方式与机器的状态相适应,受机器状态的控制。逻辑电路接口式连接:用三态门74HC126。非门用74HC04实现连接转换功能。用P1。0控制三态门,当P1。0=0时,其TXD接主机的RXD,它的RXD接主机的TXD,结点成为从机状态;当P1。0=1时,其TXD连接所有从机的RXD,它的RXD连接所有从机TXD,该结点成为主机状态。连接变换电路图如图3所示。图3由三态门构成多机串行通信智能连接电路多机通信协议:(1)在初始化或复位时,每个结点都使P1。0=0,SM2=1,处于只接收地址帧(串行帧的第9位为1),对数据帧(串行口的第9位为0)则不做响应的从机状态。(2)需要通信的结点机器,检测到总线空时,置SM2=0,P1。0=1,跃迁为主机状态,发送一个地址帧,其中含8位地址数据,第9位为标志位。(3)当从机接收到主机发来的地址帧后,将所接收的地址与本机地址相比较,若地址与本机地址相符,便使SM2=0,以便接收主机后发来的数据P命令,对于地址不相符合的从机,仍保持SM2=1状态,故不能接收主机随后发来的数据信息。(4)主机发送数据或控制指令,其数据帧第9位置0,表示发送的是数据。(5)当主机改为与另外从机联系时,可再发出地址帧来寻找其它从机。而先前被寻址过的从机在分析出主机是对其它从机寻址时,恢复其SM2=1,等待主机的再一次寻址。主机也可以通过发送一个复位指令,使所有从机处于等待寻3址状态。(6)通信结束后,置P1。0为0,SM2位为1,退回到从机状态。2、RS485总线改善信道RS485串行接口和传统的RS232串行接口相比有以下特点:RS485的电气特性:逻辑“1”以两线间的电压差为+2~+6V表示,逻辑“0”以两线间的电压差为-2~-6V表示。接口信号电平比RS232C低。不易损坏接口电路的芯片,且该电平信号与TTL电平兼容,可方便的TTL电路连接。RS485的数据最高传输速率为10Mbps。RS485接口是采用平衡驱动器、差分接收器的组合,抗共模干扰能力强,即抗噪声干扰性好。RS485接口的最大传输距离为1219。5m(标准值),实际上可达3000m。RS485接口在总线上允许连接多达128个接收器,即具有多站能力,这样用户利用单一的RS485接口方便的建立起设备网络。因RS485接口具有上述优点,使其得到广泛的应用。半双工通信:采用一对平衡差分信号线,R为TTL/CMOS接收端;RE为其使能端,低电平有效。D为TTL/CMOS的发送端,DE为其使能端,高电平有效。A、B为一对平衡线,RS485通过它来接收和发送信号。每个端口的RS485收发器的接收使能端接低电平,保证端RS485总线上的数据都能通过RS485的接收驱动器,送到每个终端的微处理器的串行输入口;RS485收发器的发送使能端由每个终端的并行口控制,每个终端在需要发送数据时,才使发送使能拉高,将数据通过RS485的发送驱动器,送到RS485总线上,如图4所示。图4基于RS-485总线的单片机多机通信原理图RS485实现全双工通信:采用两对平衡差分信号线,R为TTL/CMOS接收4端;RE为其使能端,低电平有效。D为TTL/CMOS的发送端,DE为其使能端,高电平有效。A、B为一对平衡线,RS485通过它来接收和发送信号。总线采用RS-485模式,用MAX88完成收发功能。如距离较远时,在中途进行接收并放大。多机通信网络电路如图5所示。图5基于RS-485总线的单片机多机通信原理图多机竞争总线的问题:在通信系统中,有多个单片机同时要求通信时,就出现多主争用总线问题。解决的方法:(1)通信过程中,设有启始和结束标志符,如果通信正在进行,除正在通信的结点外,其它所有的结点置为从机状态;(2)在测量总线是空状态之后,才允许请求通信的机器由从机状态升为主机状态;(3)联络从机过程中,五次不成,就退出本次通信。避免无效通信占用过长的时间,影响通信质量。3、容错技术在单片机组成的嵌入式控制系统中,利用单片机的串行口,可实现单机对单机的通信、或者实现一个主机与多台从机的通信,利用MODEN实现远距离的信息传输。基于RS485总线可实现网络化自由通信。但单片机多用在工业控制现场,其通信受到各种各样的干扰信号的干扰,由于单片机的内存及操作系统不允许装载复杂的通信容错程序。针对单片机通信的特点,介绍一种简单可行的差错纠错的编码方法:5单片机串行通信以8位数据或九位,一个启始位,一个停止位的通信模型。通信数据量不会太大等特点。采用混合纠错检错的方法。首先采用Hamming(7,4)模型编码。即在7位编码中,其中4位是有效数据,3位是冗余校验码。设D3D2D1D0是4位有效数据,P2P1P0是3位校验码,将D3D2D1D0分成三组,P2,P1,P0分别是3组的校验位,G2G1G0为检错信息,当G2G1G0=000时,传送没有错。G2G1G0的值就指明7位编码中第i位传错,对该位求反,即可完成纠错。(7,4)校验码的格式,见表1:D3D2D1P2D0P1P0。7位(7,4)D3D2D1P2D0P1P0校验码分成三组:第一组:检错信息G0,含有:D3、D1、D0、P0,其中:P0=D3⊕D1⊕D0,G0=P0⊕D3⊕D1⊕D0。第二组:检错信息G1,含有:D3、D2、D0、P1,其中:P1=D3⊕D2⊕D0,G1=P1⊕D3⊕D2⊕D0。第三组:检错信息G2,含有:D3、D2、D1、P2,其中:P2=D3⊕D2⊕D1,G2=P2⊕D3⊕D2⊕D1。单片机在发送数据前,先按汉明编码格式,把要发送的数据变成汉明码,即8位编码中,有4位数据。所以一个字节有效数据分成低4位、高4位,然后编成汉明码后,发送到缩机。接收机收到数据后,对数据进行差错和纠错。即首先计算出G2G1G0检错信息字的值,由信息检错字知道那一位出错,对该位求反,即可完全纠错。错位与信息字G2G1G0的关系见表2。表1B7B6B5B4B3B2B1B0D3D2D1P2D0P1P0表2纠错信息G2G1G0出错位求反纠错000正确001P0-P0010P1-P1011D0-D0100P2-P2101D1-D16110D2-D2111D3-D3汉明校验码可以查出信息中的一位错,并能知道是那位错,可以纠正。如果两位出错,仅靠汉明码不能进行差错和纠错。利用第八位作为奇偶验位,可以查出两位错,但不能纠错。对单片机通信结点进行改进,适合快速通信的RS-485网络技术。并用汉明校验码使单片机数据通信具有容错功能,提高单片机通信数据传输速率,减少误码率。使单片机可以在多机应用网络系统中更可靠的运行。参考文献:《单片机原理及应用》,主编:万文略重庆大学出版社《单片机多机通信协议的设计》,主编:林雪梅微计算机信息《单片机实用技术》,主编:陈汝全电子工业出版社7